summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source')
-rw-r--r--macros/latex/contrib/koma-script/source/Makefile35
-rw-r--r--macros/latex/contrib/koma-script/source/japanlco.dtx363
-rw-r--r--macros/latex/contrib/koma-script/source/koma-script-source-doc.dtx785
-rw-r--r--macros/latex/contrib/koma-script/source/scraddr.dtx325
-rw-r--r--macros/latex/contrib/koma-script/source/scrdoc.dtx71
-rw-r--r--macros/latex/contrib/koma-script/source/scrdocstrip.tex25
-rw-r--r--macros/latex/contrib/koma-script/source/scrextend.dtx243
-rw-r--r--macros/latex/contrib/koma-script/source/scrhack.dtx776
-rw-r--r--macros/latex/contrib/koma-script/source/scrjura.dtx1261
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-addressfiles.dtx164
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-basics.dtx3348
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx661
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx173
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx469
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-floats.dtx1480
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx1133
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx539
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-index.dtx379
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-language.dtx1075
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx1006
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx514
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx995
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx1206
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx3618
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx1042
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx771
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx382
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-sections.dtx5743
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-title.dtx774
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx1165
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx1310
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-variables.dtx413
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-version.dtx233
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx512
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx1480
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer.dtx1202
-rw-r--r--macros/latex/contrib/koma-script/source/scrlfile-hook.dtx121
-rw-r--r--macros/latex/contrib/koma-script/source/scrlfile-patcholdlatex.dtx445
-rw-r--r--macros/latex/contrib/koma-script/source/scrlfile.dtx189
-rw-r--r--macros/latex/contrib/koma-script/source/scrlogo.dtx133
-rw-r--r--macros/latex/contrib/koma-script/source/scrmain.ins71
-rw-r--r--macros/latex/contrib/koma-script/source/scrsource.tex199
-rw-r--r--macros/latex/contrib/koma-script/source/scrtime.dtx363
-rw-r--r--macros/latex/contrib/koma-script/source/scrwfile.dtx318
-rw-r--r--macros/latex/contrib/koma-script/source/tocbasic.dtx701
45 files changed, 17738 insertions, 20473 deletions
diff --git a/macros/latex/contrib/koma-script/source/Makefile b/macros/latex/contrib/koma-script/source/Makefile
index 4834e309db..d62b078a5d 100644
--- a/macros/latex/contrib/koma-script/source/Makefile
+++ b/macros/latex/contrib/koma-script/source/Makefile
@@ -1,6 +1,6 @@
# ======================================================================
# Makefile
-# Copyright (c) Markus Kohm, 2002-2021
+# Copyright (c) Markus Kohm, 2002-2022
#
# This file is part of the LaTeX2e KOMA-Script bundle.
#
@@ -16,23 +16,6 @@
# The Current Maintainer and author of this work is Markus Kohm.
#
# This work consists of all files listed in manifest.txt.
-# ----------------------------------------------------------------------
-# Makefile
-# 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.
# ======================================================================
NOCHANGELOG = 1 # We do not longer make or package the ChangeLog
@@ -71,7 +54,7 @@ define makepdffromdtx
$(RM) -v $@; \
exit 1; \
fi; \
- $(GREP) Rerun $(basename $<).log || oncemore=false; \
+ $(GREP) "Rerun to" $(basename $<).log || oncemore=false; \
newchecksum=`$(CKSUM) $(basename $<).aux`; \
[ "$$newchecksum"="$$checksum" ] || oncemore=true; \
checksum="$$newchecksum"; \
@@ -143,7 +126,7 @@ CLS_MAIN = scrbook.cls \
CLS_MAIN_DTX = scrkernel-basics.dtx \
scrkernel-bibliography.dtx \
- scrkernel-circularletters.dtx \
+ scrkernel-addressfiles.dtx \
scrkernel-compatibility.dtx \
scrkernel-floats.dtx \
scrkernel-fonts.dtx \
@@ -216,15 +199,18 @@ $(CLS_MAIN): $(CLS_MAIN_DVI) $(CLS_MAIN_INS) $(MAKE_FILES)
scrsource.pdf: scrsource.tex $(CLS_MAIN_DTX) $(MAKE_FILES) scrdoc.cls
$(makepdffromdtx)
-scrdoc.cls: scrdoc.dtx
+scrdoc.cls: scrdoc.dtx koma-script-source-doc.cls
$(SSYMLINK) scrdoc.dtx scrdoc.cls
+koma-script-source-doc.cls: koma-script-source-doc.dtx scrlogo.dtx
+ $(TEXUNPACK) koma-script-source-doc.dtx
+
# ----------------------------------------------------------------------
-CLS_FILES = scrdoc.cls $(CLS_MAIN)
+CLS_FILES = scrdoc.cls koma-script-source-doc.cls $(CLS_MAIN)
CLS_DVIS = $(CLS_MAIN_DVI)
-CLS_SRC = $(CLS_MAIN_SRC)
+CLS_SRC = $(CLS_MAIN_SRC) koma-script-source-doc.dtx
NODIST_GENERATED = $(CLS_DVIS) $(CLS_FILES) $(ALPHA_DOC)
@@ -256,6 +242,9 @@ tdsdist:dist
# extract dist and make all
$(UNTARGZ) $(DISTDIR).tar.gz
chmod -R a+w $(DISTDIR)
+ # If we use a local Makefile.cfg this should be copied too,
+ # but it should not become part of the tds distribution.
+ $(CP) Makefile.cfg $(DISTDIR)/Makefile.cfg
ifdef PREPARERELEASE
developer/scripts/preparerelease.sh 2 $(notdir $(DISTDIR))
endif
diff --git a/macros/latex/contrib/koma-script/source/japanlco.dtx b/macros/latex/contrib/koma-script/source/japanlco.dtx
index 1703f901da..c794644aef 100644
--- a/macros/latex/contrib/koma-script/source/japanlco.dtx
+++ b/macros/latex/contrib/koma-script/source/japanlco.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{77}
% \iffalse meta-comment
% ======================================================================
% japanlco.dtx
-% Copyright (c) Markus Kohm, 2008-2019
+% Copyright (c) Markus Kohm, 2008-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% japanlco.dtx
-% Copyright (c) Markus Kohm, 2008-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: japanlco.dtx 3256 2019-10-10 07:06:49Z kohm $
+%%% From File: $Id: japanlco.dtx 3690 2022-02-10 09:59:31Z kohm $
%<Ni&EARLY&LOW&head>%%% (run: Ni,EARLY,LOW,head)
%<Ni&EARLY&LOW&body>%%% (run: Ni,EARLY,LOW,body)
%<Ni&EARLY&HIGH&head>%%% (run: Ni,EARLY,HIGH,head)
@@ -69,57 +32,96 @@
%<Kaku&LATE&LOW&head>%%% (run: Kaku,LATE,LOW,head)
%<Kaku&LATE&LOW&body>%%% (run: Kaku,LATE,LOW,body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-10-10 09:06:49 +0200 (Thu, 10 Oct 2019) $
+ \filedate$Date: 2022-02-10 10:59:31 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1962 $
+ \filerevision$Revision: 3690 $
\endgroup
\ProvidesFile{japanlco.dtx}[\filedate\space\filerevision\space
KOMA-Script (letter class options)]
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english]{babel}
+\ifx\documentclass\undefined
+ \ifx\ifTopLevel\undefined
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2007}
+ \generate{\usepreamble\defaultpreamble
+ \file{NipponEL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,LOW,head}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,LOW,body}%
+ }%
+ \file{NipponEH.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,head}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,body}%
+ }%
+ \file{NipponLL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,LATE,LOW,head}%
+ \from{japanlco.dtx}{lco,Ni,LATE,LOW,body}%
+ }%
+ \file{NipponLH.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,LATE,HIGH,head}%
+ \from{japanlco.dtx}{lco,Ni,LATE,HIGH,body}%
+ }%
+ \file{NipponRL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,head}%
+ \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,body}%
+ }%
+ \file{KakuLL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Kaku,LATE,LOW,head}%
+ \from{japanlco.dtx}{lco,Kaku,LATE,LOW,body}%
+ }%
+ }%
+ \@@input scrstrop.inc
+ \fi
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
\usepackage{graphicx}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{japanlco.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{This is \fileversion\ of file \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+ \DocInput{japanlco.dtx}
\end{document}
%</dtx>
% \fi
%
% \changes{v2.98}{2007/11/13}{first version based on lco files from Gernot
-% Hassenplfug}
+% Hassenpflug}
+% \changes{v3.36}{2022/01/21}{switch over to \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/01/21}{using \cs{setplength} and \cs{addtoplength}
+% instead of \cs{@setplength} and \cs{@addtoplength}}
+% \changes{v3.36}{2022/02/02}{self-extracting}
+% \changes{v3.36}{2022/02/02}{extended documentation}
+%
+% \GetFileInfo{japanlco.dtx}
+% \title{\href{https://komascript.de}{\KOMAScript} \partname\
+% \texttt{\filename}}
+% \date{Version \fileversion{} of \filedate}
+% \author{Markus Kohm}
+% \maketitle
+% \tableofcontents
%
% \section{Option Files for Japanese Letters}
%
-% Gernot Hassenpflug wrote a lot of lco files for use of Japanese envelope
-% formats. Markus Kohm, the author of \KOMAScript, addapted them to an
-% extended version of \textsf{scrlttr2} and wrote a dtx file with the moste
-% recent lco files. Table~\ref{tab:japan.envelopes} shows all lco files of the
-% supported envelopes with their datas.
+% Gernot Hassenpflug wrote a lot of \file{lco}-files for use of Japanese
+% envelope formats. Markus Kohm, the author of \KOMAScript, adapted them to
+% an extended version of \cls*{scrlttr2} and wrote a \file{dtx}-file with the
+% moste recent \file{lco}-files. Table~\ref{tab:japan.envelopes} shows all
+% \file{lco}-files of the supported envelopes with their datas.
%
% \begin{table}
-%^^A x=22, w=90, y=12, h=45 NipponEL
-%^^A x=22, w=90, y=12, h=55 NipponEH
-%^^A x=25, w=90, y=12, h=45 NipponLL
-%^^A x=25, w=90, y=12, h=55 NipponLH
-%^^A x=98, w=90, y=28, h=45 NipponRL
-%^^A x=25, w=90, y=24, h=45 KakuLL
% \begin{tabular}{@{}llllllll@{}}
% \hline
-% lco file & \multicolumn3{l}{Envelope} & \multicolumn4{l@{}}{Window} \\
+% \file{lco}-file & \multicolumn3{l}{Envelope} & \multicolumn4{l@{}}{Window} \\
% & Name & Length & Width & H-pos & V-pos & Width & Height\\
% \cline{1-3}\cline{4-8}
% \texttt{NipponEL} &
@@ -148,7 +150,10 @@
% \label{tab:japan.envelopes}
% \end{table}
%
-%\iftrue
+% \iftrue
+% The following pages show images of example envelopes. For more information
+% see the English \file{scrguien.pdf} or the German \file{scrguide.pdf}.
+%
% \newcommand\japanenvelope[7]{%
% \begingroup
% \setlength{\unitlength}{1mm}%^^A
@@ -202,20 +207,18 @@
% \fi
%\fi
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex}
%
-% \iffalse
+% \section{Implementation}
+% \begin{macrocode}
%<*lco>
-% \fi
-%
-% \subsubsection{The File Header}
+% \end{macrocode}
%
-% \iffalse
-%<*head>
-% \fi
+% \subsection{The File Header}
%
% Declaration of the file.
% \begin{macrocode}
+%<*head>
\ProvidesFile{%
%<Ni> Nippon%
%<Kaku> Kaku%
@@ -224,13 +227,16 @@
%<RIGHT> R%
%<LOW> L%
%<HIGH> H%
-}[\KOMAScriptVersion\space Japanese letter-class-option]
+}[%
+%!KOMAScriptVersion
+Japanese letter-class-option]
% \end{macrocode}
%
-% \begin{macro}{\LCOWarningNoLine}
-% \begin{macro}{\LCOWarning}
+% \begin{command}{\LCOWarningNoLine}
+% \begin{command}{\LCOWarning}
% We need macros that are similar to |\ClassWarningNoLine| or
% |\PackageWarningNoLine| and |\ClassWarning| or |\PackageWarning|
+% \begin{macrocode}
\providecommand*\LCOWarningNoLine[2]{%
\LCOWarning{#1}{#2\@gobble}%
}
@@ -241,20 +247,19 @@
Letter class option #1 Warning: #2%
}%
}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
%</head>
-%<*body>
-% \fi
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
%
-% \subsubsection{Main-Part}
+% \subsection{Main-Part}
%
% Check the class.
-% \changes{v3.25a}{2018/04/17}{check not only for \textsf{scrlttr2} but also
-% for \textsf{scrletter}}%^^A
+% \changes{v3.25a}{2018/04/17}{check not only for \cls*{scrlttr2} but also
+% for \pkg*{scrletter}}%^^A
% \begin{macrocode}
+%<*body>
\@ifundefined{scr@fromname@var}{%
\LCOWarningNoLine{%
%<Ni> Nippon%
@@ -288,62 +293,128 @@
% \end{macrocode}
%
% All the values
-% \changes{v3.03}{2009/03/04}{set term of variablen \texttt{fromzipcode}}
+% \begin{variable}{fromzipcode}
+% \changes{v3.03}{2009/03/04}{set term of variable \texttt{fromzipcode}}
% \begin{macrocode}
\setkomavar*{fromzipcode}{J}
% \end{macrocode}
-%^^A x=22, w=90, y=12, h=45 NipponEL
-%^^A x=22, w=90, y=12, h=55 NipponEH
-%^^A x=25, w=90, y=12, h=45 NipponLL
-%^^A x=25, w=90, y=12, h=55 NipponLH
-%^^A x=98, w=90, y=28, h=45 NipponRL
-%^^A x=25, w=90, y=24, h=45 KakuLL
+% \end{variable}
+% \begin{pseudolength}{foldmarkhpos,
+% tfoldmarkvpos,tfoldmarklength,
+% mfoldmarkvpos,mfoldmarklength,
+% bfoldmarkvpos,bfoldmarklength,
+% foldmarkvpos,lfoldmarkhpos}
+% The fold marks. All of them are universal for Japanese \file{lco}-files.
+% \begin{macrocode}
+\setplength{foldmarkhpos}{3.5mm}
+\setplength{tfoldmarkvpos}{83mm}
+\setplength{tfoldmarklength}{4mm}
+\setplength{mfoldmarkvpos}{116mm}
+\setplength{mfoldmarklength}{2mm}
+\setplength{bfoldmarkvpos}{232mm}
+\setplength{bfoldmarklength}{2mm}
+\setplength{foldmarkvpos}{3.5mm}
+\setplength{lfoldmarkhpos}{202mm}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrhpos,toaddrvpos,toaddrwidth,toaddrheight}
+% The size and position of the address window. These values are the main
+% difference of the envelopes. The original values (all in cm) by Gernot:
+% \begin{center}
+% \begin{tabular}{lcccc}
+% \hline
+% Type & x & w & y & h \\
+% \hline
+% NipponEL & 22 & 90 & 12 & 45 \\
+% NipponEH & 22 & 90 & 12 & 55 \\
+% NipponLL & 25 & 90 & 12 & 45 \\
+% NipponLH & 25 & 90 & 12 & 55 \\
+% NipponRL & 98 & 90 & 28 & 45 \\
+% KakuLL & 25 & 90 & 24 & 45 \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+%<EARLY>\setplength{toaddrhpos}{22mm}
+%<LATE>\setplength{toaddrhpos}{25mm}
+%<RIGHT>\setplength{toaddrhpos}{-22mm}
+\setplength{toaddrwidth}{90mm}
+%<Ni&!RIGHT>\setplength{toaddrvpos}{12mm}
+%<Ni&RIGHT>\setplength{toaddrvpos}{28mm}
+%<Kaku>\setplength{toaddrvpos}{24mm}
+%<LOW>\setplength{toaddrheight}{40mm}
+%<HIGH>\setplength{toaddrheight}{50mm}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrindent,backaddrheight,
+% specialmailindent,specialmailrightindent}
+% These are also inside the address window and same for all Japanese
+% envelopes.
+% \begin{macrocode}
+\setplength{toaddrindent}{\z@}
+\setplength{backaddrheight}{5mm}
+\setplength{specialmailindent}{\fill}
+\setplength{specialmailrightindent}{1em}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{locwidth,locheight}
+% The location field also depends on the address field.
% \begin{macrocode}
-\@setplength{foldmarkhpos}{3.5mm}
-\@setplength{tfoldmarkvpos}{83mm}
-\@setplength{tfoldmarklength}{4mm}
-\@setplength{mfoldmarkvpos}{116mm}
-\@setplength{mfoldmarklength}{2mm}
-\@setplength{bfoldmarkvpos}{232mm}
-\@setplength{bfoldmarklength}{2mm}
-\@setplength{foldmarkvpos}{3.5mm}
-\@setplength{lfoldmarkhpos}{202mm}
-%<!Ni|!RIGHT>\@setplength{refvpos}{69mm}
-%<Ni&RIGHT>\@setplength{refvpos}{84mm}
-\@setplength{refaftervskip}{\baselineskip}
-%<EARLY>\@setplength{toaddrhpos}{22mm}
-%<LATE>\@setplength{toaddrhpos}{25mm}
-%<RIGHT>\@setplength{toaddrhpos}{-22mm}
-\@setplength{toaddrwidth}{90mm}
-%<Ni&!RIGHT>\@setplength{toaddrvpos}{12mm}
-%<Ni&RIGHT>\@setplength{toaddrvpos}{28mm}
-%<Kaku>\@setplength{toaddrvpos}{24mm}
-%<LOW>\@setplength{toaddrheight}{40mm}
-%<HIGH>\@setplength{toaddrheight}{50mm}
-\@setplength{toaddrindent}{\z@}
-\@setplength{backaddrheight}{5mm}
-\@setplength{specialmailindent}{\fill}
-\@setplength{specialmailrightindent}{1em}
-\@setplength{locwidth}{\z@}
-%<Ni>\@setplength{locheight}{55mm}%
-%<Kaku>\@setplength{locheight}{45mm}%
-\@setplength{firstheadvpos}{8mm}
-\@setplength{firstheadwidth}{\paperwidth}
+\setplength{locwidth}{\z@}
+%<Ni>\setplength{locheight}{55mm}%
+%<Kaku>\setplength{locheight}{45mm}%
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{refvpos,refwidth,refaftervskip}
+% While the position of the reference line also depends on the address field,
+% the space below it is fix. The zero of \plen{revwidth} is a magic. See
+% \file{scrkernel-notepaper.dtx} for more information.
+% \begin{macrocode}
+%<!Ni|!RIGHT>\setplength{refvpos}{69mm}
+%<Ni&RIGHT>\setplength{refvpos}{84mm}
+\setplength{refaftervskip}{\baselineskip}
+\setplength{refwidth}{\z@}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{firstheadvpos,firstheadwidth}
+% The header also depends on the address field. This is the reason we have
+% not defined it first, despite it is the first field.
+% \begin{macrocode}
+\setplength{firstheadvpos}{8mm}
+\setplength{firstheadwidth}{\paperwidth}
\ifdim \useplength{toaddrhpos}>\z@
- \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
+ \addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
\else
- \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
+ \addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
\fi
-\@setplength{firstfootwidth}{\useplength{firstheadwidth}}
-\@setplength{firstfootvpos}{\paperheight}
-\@addtoplength{firstfootvpos}{-16mm}
-\@setplength{refwidth}{\z@}
-\@setplength{sigindent}{\z@}
-\@setplength{sigbeforevskip}{2\baselineskip}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{firstfootwidth,firstfootvpos}
+% The width of the footer depends on the width of the header. The position
+% depends on the paper height.
+% \begin{macrocode}
+\setplength{firstfootwidth}{\useplength{firstheadwidth}}
+\setplength{firstfootvpos}{\paperheight}
+\addtoplength{firstfootvpos}{-16mm}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{sigindent,sigbeforevskip}
+% Values of the signature
+% \begin{macrocode}
+\setplength{sigindent}{\z@}
+\setplength{sigbeforevskip}{2\baselineskip}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{command}{\raggedsignature}
+% The signature is centered, but maybe this should be changed to
+% \cs{raggedright}?
+% \begin{macrocode}
\let\raggedsignature=\centering
% \end{macrocode}
+% \end{command}
%
-% Additional settings:
+% \begin{option}{fromalign}
+% The default alignment of the sender is in the location field.
% \begin{macrocode}
\ifcase\@alignfrom
\KOMAoptions{fromalign=locationright}%
@@ -353,18 +424,22 @@
\KOMAoptions{fromalign=locationright}%
\fi
% \end{macrocode}
+% \end{option}
%
-% \iffalse
+% \begin{macrocode}
%</body>
%</lco>
-% \fi
+% \end{macrocode}
%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% end of file `japanlco.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:
diff --git a/macros/latex/contrib/koma-script/source/koma-script-source-doc.dtx b/macros/latex/contrib/koma-script/source/koma-script-source-doc.dtx
new file mode 100644
index 0000000000..d1ce7326c5
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/koma-script-source-doc.dtx
@@ -0,0 +1,785 @@
+% \iffalse meta-comment
+% ==========================================================================
+% komascript-source.doc.dtx
+% Copyright (c) Markus Kohm, 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.
+% --------------------------------------------------------------------------
+% Note: This is a self unpacking dtx-file, so you have to run:
+% tex koma-script-source-doc.dtx
+% to unpack the file(s), but
+% lualatex-dev koma-script-source-doc.dtx
+% mkindex koma-script-source-doc
+% lualatex-dev koma-script-source-doc.dtx
+% mkindex koma-script-source-doc
+% lualatex-dev koma-script-source-doc.dtx
+% to generate the manual. Before generation of the manual it is
+% recommended to install or at least unpack KOMA-Script.
+% ==========================================================================
+%%
+%<+drv>\ProvidesFile{koma-script-source-doc.drv}
+%<+class>\ProvidesClass{koma-script-source-doc}
+%<*ins>
+\expandafter\expandafter\expandafter\ifx\csname ProvidesFile\endcsname\relax
+ \def\ProvidesFile#1[#2]{}
+\fi
+%</ins>
+%<*dtx>
+\ProvidesFile{koma-script-source-doc.dtx}
+%</dtx>
+%<+ins>\ProvidesFile{koma-script-source-doc.ins}
+[2022-03-10 v0.91 KOMA-Script source documentation]
+%<*dtx>
+\ifx\documentclass\undefined
+%</dtx>
+%<*ins>
+ \input docstrip.tex
+ \ifToplevel{\keepsilent\askforoverwritefalse}
+ \generate{%
+% \file{koma-script-source-doc.drv}{%
+% \from{koma-script-source-doc.dtx}{drv}%
+% }
+% \file{koma-script-source-doc.ins}{%
+% \from{koma-script-source-doc.dtx}{ins}%
+% }
+ \file{koma-script-source-doc.cls}{%
+ \from{koma-script-source-doc.dtx}{class}%
+ \from{scrlogo.dtx}{logo,forcedefine}%
+ }%
+ }
+%</ins>
+%<*dtx>
+\else
+ \let\endbatchfile\relax
+\fi
+%</dtx>
+%<*dtx|ins>
+\endbatchfile
+%</dtx|ins>
+%<*drv>
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{libertinus}
+\usepackage{babel}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{d.\,i.},
+ idxgroup = Documentation items,
+ printtype = \textit{d.\,i.},
+]{DocItem}{docitem}
+\begin{document}
+\DocInput{koma-script-source-doc.dtx}
+\end{document}
+%</drv>
+% \fi^^A meta-comment
+%
+% \changes{v0.0}{2022/01/15}{start of the new class}
+% \changes{v0.1}{2022/01/15}{first self documenting test}
+% \changes{v0.6}{2022/02/02}{force definition of \KOMAScript{} logo}
+% \changes{v0.6}{2022/02/02}{\pkg{hyperref} hook for \KOMAScript{} logo moved
+% to \file{scrlogo.dtx}}
+%
+% \DoNotIndex{\actualchar}
+%
+% \GetFileInfo{\jobname.dtx}
+% \title{\href{https://komascript.de}{\KOMAScript} Source Documentation\\
+% Using\\
+% \cls*{koma-script-source-doc}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Version \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% From 2002 up to end of 2021 \cls*{scrdoc} was the class, that has been used
+% for the sources of \KOMAScript{} and several other packages of the
+% \KOMAScript{} author. This class was more or less a ugly hack to use a
+% modified and extended version of \cls{ltxdoc}, the source documentation
+% class of The \LaTeX{} Team. There has been advisement to redesign this
+% class for years, but as changing the source documentation class is more a
+% work of month than of days, I've always put it on the back burner.
+%
+% In January 2022, The \LaTeX{} Team switched over from \pkg{doc} version 2 to
+% version 3. The new version is compatible on user interface level, but as
+% expected not on implementation level. So the extensions made in \cls*{scrdoc}
+% result in several error messages. For such cases The \LaTeX{} Team has the
+% fallback solution to use an old \pkg{doc}. But this can only be used, if you
+% load \pkg{doc} yourself using either |\usepackage| or
+% |\RequirePackage|. If class \cls{ltxdoc} is used, the fallback does not
+% exist.
+%
+% A first workaround for \cls*{scrdoc} was a typical hacker solution, that
+% forces \cls{ltxdoc} to use an old version of \pkg{doc} and to fix the
+% resulting issues after loading \cls{ltxdoc}. But this does only work as long
+% as new releases of \cls{ltxdoc} are compatible with the \pkg{doc} release of
+% 2021.
+%
+% So in January 2022, it was really time for a new \KOMAScript{} source
+% documentation class. This new class does not use internal commands of
+% \cls{ltxdoc} any longer but uses the extended interface of \pkg{doc} version
+% 3 to define further documentation items.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Prerequisites}
+% \label{sec:prerequisites}
+%
+% Class \cls*{koma-script-source-doc} needs at least class \cls{ltxdoc} version
+% 2.1d which depends on package \pkg{doc} version 3, because it used several
+% of the new features of that \pkg{doc} release. This is part of
+% \texttt{latex-base-dev} 2022-06-01 pre-release~1 distributed on
+% \href{https://www.ctan.org}{CTAN} on 14th January 2022 and therefore will be
+% part of \LaTeX{} 2022-06-01. If you still use an older \LaTeX{} you cannot
+% use class \cls*{koma-script-source-doc}.
+%
+%
+% \section{Basic Settings}
+% \label{sec:basicsettings}
+%
+% For \KOMAScript{} we use some basic settings:
+% \begin{itemize}
+% \item Generation of the indexing of new commands is generally enabled by
+% \pkg{doc}. We do not use \cs{EnableCrossrefs}, because this would not
+% allow to disable this feature using \cs{DisableCrossrefs}. It is also
+% recommended not to generally use \cs{EnableCrossrefs} in the
+% \file{dtx}-file.
+% \item We use \cs{CodeLineIndex} to have code line numbers for the
+% indexing. This could be problematic sometimes. In this case, you should
+% use \cs{PageIndex} and \cs{CodelineNumbered} to use page numbers in the
+% index but nevertheless add line numbers to the code.
+% \item For \KOMAScript{} code we usually record the changes. So we use
+% \cs{RecordChanges} and option \opt{reportchangedates} This is the only
+% real changelog we do. However, if your \file{dtx}-file contains the user
+% manual, it would be recommended to list the main changes like new features
+% and incompatibilities as a section either at the very beginning or the end
+% of the user manual.
+% \item \DescribeOption{indexlatex} For \KOMAScript{} sources I do not like to
+% index all the \LaTeX{} interface commands and internal
+% commands\footnote{This does only work for those \LaTeX{} macros, already
+% internally listed. The list should be generated automatically after each
+% \LaTeX{} release. Unfortunately, currently it is build step by step with
+% every new \KOMAScript{} release instead.}. You can changes this, using
+% option \opt{indexlatex}. You can also use explicit \opt{indexlatex=false}
+% to again not index the \LaTeX{} kernel macros.
+% \item You also should use \cs{GetFileInfo}\marg{dtx-filename} to get
+% information like \cs{filedate} and \cs{fileversion} from the
+% \cs{ProvidesFile} command of the \file{dtx}-file. Sometimes it may even be
+% better to use the generated package or class as argument.
+% \end{itemize}
+%
+%
+% \section{Simple Formatting Commands}
+% \label{sec:simpleformatting}
+%
+% \DescribeCommand{\file}
+% \DescribeCommand{\opt}
+% \DescribeCommand{\optvalue}
+% \DescribeCommand{\env}
+% \DescribeCommand{\cnt}
+% \DescribeCommand{\fnt}
+% \DescribeCommand{\len}
+% \DescribeCommand{\var}
+% \DescribeCommand{\plen}
+% \DescribeCommand{\pstyle}
+% \DescribeCommand{\dhook}
+% There are some very simple formatting commands. They all expect one
+% mandatory argument \meta{object name}. The default formatting is to use
+% \cs{texttt}. The commands are mentioned for the name of a file, option,
+% value of an option, environment, \LaTeX{} counter, font, length (either
+% dimension or skip), variable (usually \KOMAScript{} variables used by
+% \cls*{scrlttr2} or \pkg*{scrletter}), pseudo-length (of \cls*{scrlttr2} or
+% \pkg*{scrletter}), page style, or do hook.
+%
+% \DescribeCommand{\cls}
+% \DescribeCommand{\pkg}
+% The commands:
+% \begin{quote}
+% \cs{cls}\oarg{hyper link}\marg{package name}\hfill and\hfill
+% \cs{pkg}\oarg{hyper link}\marg{class name}
+% \end{quote}
+% do not only print the name of a class or package, but also generate a hyper
+% link. For this the commands have a first optional argument. If this is
+% empty, no link will be generated. If it is not empty, it has to be the
+% link. If it is not used an automatic package link to the
+% \href{https://www.ctan.org/pkg}{CTAN} package with the same name will be
+% generated. There are also star variants \cs{cls*} and \cs{pkg*}, that do not
+% produce any link. For links with special characters like \texttt{\char`\#}
+% it is recommended to use \cs{href} and the star variant.
+% \begin{center}
+% Examples:\hspace{0pt plus 1filll}\null\\[-\baselineskip]
+% \cs{cls}|{scrbook}| \textrightarrow{} \cls{scrbook}\\
+% \cs{cls*}|{scrbook}| \textrightarrow{} \cls*{scrbook}\\
+% \cs{cls}|[https://koma-script.de]{koma-script-source-doc}|
+% \textrightarrow{} \cls[https://koma-script.de]{koma-script-source-doc}\\
+% \cs{pkg}|[]{scrlayer}| \textrightarrow{} \pkg[]{scrlayer} \\
+% \cs{href}|{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguien.pdf#cha:typearea}{\pkg*{typearea}}|
+% \textrightarrow{}
+% \href{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguien.pdf#chapter.2}{\pkg*{typearea}}
+% \end{center}
+%
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% \subsection{Class Options}
+%
+% We use \pkg{l3keys2e} for the options. Using \pkg*{scrkbase} would be nice
+% too, but it cannot be used until \KOMAScript{} is available, to the
+% emergency fallback to using the standard class \cls*{article} wouldn't make
+% sense in this case.
+% \begin{macrocode}
+\RequirePackage{l3keys2e}
+\ExplSyntaxOn
+% \end{macrocode}
+% \begin{option}{indexlatex}
+% \changes{v0.3}{2022/01/17}{new option}
+% The option to switch on/off the indexing of \LaTeX{} interface and internal
+% macros (and also \TeX{} primitives). The pre-setting is \texttt{false}. The
+% default of the option is \texttt{true}.
+% \begin{macrocode}
+\newif \ifkdoc@indexlatex \kdoc@indexlatexfalse
+\keys_define:nn {kdoc}
+ {
+ indexlatex .choice:,
+ indexlatex / true .code:n = { \legacy_if_set_true:n { kdoc@indexlatex } },
+ indexlatex / false .code:n = { \legacy_if_set_false:n { kdoc@indexlatex } },
+ indexlatex .default:n = { true },
+ }
+% \end{macrocode}
+% \end{option}
+% \begin{macrocode}
+\ExplSyntaxOff
+\ProcessKeysOptions {kdoc}
+% \end{macrocode}
+%
+%
+% \subsection{Base Class and Packages}
+%
+% \changes{v0.2}{2022/01/16}{emergency fallback to \cls*{article}}
+% \changes{v0.3}{2022/01/17}{new basic defaults}
+% \changes{v0.3}{2022/01/17}{\cs{DoNotIndex} of several \LaTeX{} kernel
+% macros}
+% \changes{v0.3a}{2022/01/21}{using an old \pkg{doc} is fatal}
+% Currently we use base class \cls{ltxdoc} at least version 2021/12/07
+% v2.1d. In future this could change. In this case we would need to load
+% package \pkg{doc} at least version 2022/06/01 v3.0g. However, we also want
+% \cls{ltxdoc} to use \KOMAScript{} class \cls*{scrartcl} instead of standard
+% class \cls*{article}. But if \KOMAScript{} has not been made, we cannot use
+% a \KOMAScript{} class or package to compile the source. So in this case
+% we use an emergency fallback.
+% \begin{macrocode}
+\IfFileExists{scrartcl.cls}{%
+ \declare@file@substitution{article.cls}{scrartcl.cls}
+ \PassOptionsToClass{fontsize=10pt}{scrartcl}
+}{%
+ \ClassWarningNoLine{koma-script-source-doc}{%
+ Usually this class should be used with KOMA-Script\MessageBreak
+ scrartcl. But as that class is not available we use\MessageBreak
+ standard class article as emergency fallback.\MessageBreak
+ It is recommended to repeat this LaTeX run after\MessageBreak
+ build/installation of a complete KOMA-Script%
+ }%
+}
+\LoadClassWithOptions{ltxdoc}[2021/12/07]
+\IfPackageAtLeastTF{doc}{2022/06/01}{}{%
+ \ClassError{koma-script-source-doc}{old package `doc' detected}{%
+ This class needs `doc' v3. It cannot be used with\MessageBreak
+ `doc' v2. `doc' v3 is available at LaTeX developer\MessageBreak
+ release from at least January 2022}%
+ \csname fi\endcsname\csname @@end\endcsname\end\endinput
+}
+\SetupDoc{reportchangedates}
+\CodelineIndex
+\RecordChanges
+\ifkdoc@indexlatex\else
+ \DoNotIndex{\.,\\,\ ,\@,\@Alph,\@M}
+ \DoNotIndex{\@abstrtfalse,\@abstrttrue,\@addtoreset,\@afterheading}
+ \DoNotIndex{\@afterindentfalse,\@alph,\@arabic}
+ \DoNotIndex{\@beginparpenalty}
+ \DoNotIndex{\@car,\@cdr,\@centercr}
+ \DoNotIndex{\@dblfloat,\@dotsep}
+ \DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty}
+ \DoNotIndex{\@float,\@fontswitch}
+ \DoNotIndex{\@gobbletwo}
+ \DoNotIndex{\@hangfrom,\@highpenalty}
+ \DoNotIndex{\@ifnextchar,\@ifundefined,\@itempenalty}
+ \DoNotIndex{\@latex@warning}
+ \DoNotIndex{\@m,\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse}
+ \DoNotIndex{\@mparswitchtrue}
+ \DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@nomath}
+ \DoNotIndex{\@plus}
+ \DoNotIndex{\@Roman,\@roman}
+ \DoNotIndex{\@tempa,\@tempcnta,\@tempdima,\@tempskipka}
+ \DoNotIndex{\@tempswafalse,\@tempswatrue}
+ \DoNotIndex{\@tempb,\@tempcntb,\@tempdimb,\@tempskipkb}
+ \DoNotIndex{\@tempswbfalse,\@tempswbtrue}
+ \DoNotIndex{\@tempc,\@tempcntc,\@tempdimc,\@tempskipkc}
+ \DoNotIndex{\@tocrmarg,\@topnewpage,\@topnum,\@twocolumnfalse}
+ \DoNotIndex{\@twocolumntrue,\@twosidefalse,\@twosidetrue}
+ \DoNotIndex{\@whiledim,\@whilenum}
+ \DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength}
+ \DoNotIndex{\addvspace,\advance,\AtBeginDocument}
+ \DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet}
+ \DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth}
+ \DoNotIndex{\cdot,\centering,\changes,\cleardoublepage,\clearpage}
+ \DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\cs}
+ \DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction}
+ \DoNotIndex{\declare@file@substitution}
+ \DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs}
+ \DoNotIndex{\divide,\DoNotIndex}
+ \DoNotIndex{\ifdim,\else,\fi,\empty,\em,\EnableCrossrefs,\end}
+ \DoNotIndex{\end@dblfloat}
+ \DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage}
+ \DoNotIndex{\everypar,\ExecuteOptions,\expandafter}
+ \DoNotIndex{\fboxrule,\fboxsep}
+ \DoNotIndex{\g@addto@macro,\gdef,\global}
+ \DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss}
+ \DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi}
+ \DoNotIndex{\ifnum,\ifodd,\ifx,\fi,\fi,\fi}
+ \DoNotIndex{\include,\input,\InputIfFileExists,\item,\itshape}
+ \DoNotIndex{\kern,\kernel@ifnextchar}
+ \DoNotIndex{\leavevmode,\leftmark,\leftskip,\let,\lineskip}
+ \DoNotIndex{\list,\long,\LoadClass,\LoadClassWithOptions}
+ \DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright,\mathbf,\mathcal}
+ \DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak}
+ \DoNotIndex{\month}
+ \DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
+ \DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
+ \DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number}
+ \DoNotIndex{\numberline,\normalcolor}
+ \DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule}
+ \DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
+ \DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
+ \DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges}
+ \DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand}
+ \DoNotIndex{\ProvidesClass}
+ \DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
+ \DoNotIndex{\renewcommand,\RenewDocElement,\RequirePackage}
+ \DoNotIndex{\reserved@a,\reserved@b,\reserved@c,\reset@font}
+ \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily}
+ \DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength}
+ \DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
+ \DoNotIndex{\string}
+ \DoNotIndex{\TeX,\textbf,\textit,\textrm,\textsf,\texttt,\textup}
+ \DoNotIndex{\the,\thispagestyle,\triangleright,\ttfamily}
+ \DoNotIndex{\twocolumn,\typeout}
+ \DoNotIndex{\undefined,\usecounter}
+ \DoNotIndex{\vfil,\vfill,\vspace}
+ \DoNotIndex{\wd,\xdef,\year,\z@}
+\fi
+% \end{macrocode}
+%
+% \changes{v0.2}{2022/01/16}{do not fail if \pkg*{typearea} has not been
+% loaded}
+% The left margin is highly used, but the right margin is not. So it is a kind
+% of \opt{mpinclude} but with the left instead of the right margin. A simple
+% solution for this is to move the whole page content to the right. But we do
+% so only, if \cls*{koma-script-source-doc} is used with \cls*{scrartcl}.
+% \begin{macrocode}
+\ifdefined\AfterCalculatingTypearea
+ \AfterCalculatingTypearea{%
+ \addtolength{\oddsidemargin}
+ {.5\dimexpr\oddsidemargin+1in\relax}%
+ \setlength{\marginparwidth}
+ {\dimexpr \oddsidemargin+1in-2\marginparsep\relax}%
+ \setlength{\marginparpush}{0pt}%
+ }
+ \KOMAoption{DIV}{9}
+\fi
+% \end{macrocode}
+%
+% Because \pkg{doc} uses a late hook to load \pkg{hyperref} there may be a
+% problem with package \pkg{auxhook} used by \pkg{hyperref}. So we load it
+% early to avoid such problems.
+% \begin{macrocode}
+\RequirePackage{auxhook}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\index@prologue,\glossary@prologue}
+% \changes{v0.5}{2022/01/31}{generating ToC entry}
+% \begin{macro}{\kssd@section@hack}
+% \changes{v0.5}{2022/01/31}{new}
+% We want to have an entry to the table of contents for the index and the
+% glossary. So we patch the default prologues. This is not a perfect solution,
+% but it works and makes it possible to still define a complete new prologue
+% using \cs{IndexPrologue} resp. \cs{GlossaryPrologue} as documented for
+% \pkg{doc}.
+% \begin{macrocode}
+\expandafter\def\expandafter\index@prologue\expandafter{%
+ \expandafter\kssd@section@hack\index@prologue}
+\expandafter\def\expandafter\glossary@prologue\expandafter{%
+ \expandafter\kssd@section@hack\glossary@prologue}
+\newcommand*{\kssd@section@hack}{%
+ \let\ksdd@markboth\markboth
+ \def\markboth##1##2{%
+ \@ifundefined{addsectiontocentry}{%
+ \@ifundefined{addxcontentsline}{%
+ \addcontentsline{toc}{section}{\numberline{}##1}%
+ }{%
+ \addxcontentsline{toc}{section}{##1}%
+ }%
+ }{%
+ \addsectiontocentry{}{##1}%
+ }%
+ \let\markboth\ksdd@markboth
+ \markboth{##1}{##2}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Simple Formatting Macros}
+%
+% These are very simply defined macros for names of
+% \begin{command}{\file}
+% files,
+% \begin{macrocode}
+\newcommand*{\file}{\texttt}
+% \end{macrocode}
+% \begin{command}{\cls}
+% \changes{v0.8}{2022/02/08}{using \cs{textsf}}
+% \changes{v0.9}{2022/02/09}{using \cs{pkg} for automatic link generation}
+% classes,
+% \begin{macrocode}
+\newcommand*{\cls}{\pkg}
+% \end{macrocode}
+% \begin{command}{\pkg}
+% \changes{v0.8}{2022/02/08}{using \cs{textsf}}
+% \changes{v0.9}{2022/02/09}{automatic link generation}
+% packages (note: we cannot use \cs{ExplSyntaxOn}/\cs{ExplSyntaxOff}, because
+% \cs{href} would generate a file link),
+% \begin{macrocode}
+\NewDocumentCommand{\pkg}{sO{https://www.ctan.org/pkg/#3}m}{%
+ \IfBooleanTF{#1}{\@gobble}{%
+ \csname tl_if_blank:nTF\endcsname{#2}{\@gobble}{\href}%
+ }%
+ {#2}{\textsf{#3}}%
+}
+% \end{macrocode}
+% \begin{command}{\opt}
+% options,
+% \begin{macrocode}
+\newcommand*{\opt}{\texttt}
+% \end{macrocode}
+% \begin{command}{\optvalue}
+% option values,
+% \begin{macrocode}
+\newcommand*{\optvalue}{\texttt}
+% \end{macrocode}
+% \begin{command}{\env}
+% environments,
+% \begin{macrocode}
+\newcommand*{\env}{\texttt}
+% \end{macrocode}
+% \begin{command}{\len}
+% \changes{v0.6}{2022/02/02}{added}
+% lengths,
+% \begin{macrocode}
+\newcommand*{\len}{\cs}
+% \end{macrocode}
+% \begin{command}{\cnt}
+% counters,
+% \begin{macrocode}
+\newcommand*{\cnt}{\texttt}
+% \end{macrocode}
+% \begin{command}{\fnt}
+% fonts,
+% \begin{macrocode}
+\newcommand*{\fnt}{\texttt}
+% \end{macrocode}
+% \begin{command}{\var}
+% \changes{v0.6}{2022/02/02}{added}
+% variables,
+% \begin{macrocode}
+\newcommand*{\var}{\texttt}
+% \end{macrocode}
+% \begin{command}{\plen}
+% \changes{v0.6}{2022/02/02}{added}
+% pseudo-lengths,
+% \begin{macrocode}
+\newcommand*{\plen}{\texttt}
+% \end{macrocode}
+% \begin{command}{\pstyle}
+% \changes{v0.8}{2022/02/08}{added}
+% page styles,
+% \begin{macrocode}
+\newcommand*{\pstyle}{\texttt}
+% \end{macrocode}
+% \begin{command}{\dhook}
+% \changes{v0.91}{2022/03/10}{added}
+% do hooks.
+% \begin{macrocode}
+\newcommand*{\dhook}{\texttt}
+% \end{macrocode}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+%
+%
+% \subsection{Documentation Items}
+% \label{sec:documentationitems}
+%
+% \KOMAScript{} has several additional items beside macros and environments.
+% The old \cls*{scrdoc} class provides macros, environments, options, lengths,
+% counters, variables and fonts. But now we also distinguish internal macros
+% vs. users commands and internal lengths vs. user lengths. In this
+% documentation we additionally provide documentation items.
+%
+% \begin{docitem}{Macro}
+% \begin{command}{\DescribeMacro}
+% \begin{environment}{macro}
+% An internal macro.
+% \begin{macrocode}
+\RenewDocElement[%
+ macrolike = true,
+ toplevel = false,
+ idxtype = ,
+ idxgroup = TeX macros (internal)\actualchar\TeX{} macros (internal),
+ printtype = \textit{intern}
+]{Macro}{macro}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{Command}
+% \begin{command}{\DescribeCommand}
+% \begin{environment}{command}
+% User command.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = true,
+ toplevel = true,
+ idxtype = ,
+ idxgroup = Commands,
+ printtype = ,
+]{Command}{command}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{Env}
+% \begin{command}{\DescribeEnv}
+% \begin{environment}{environment}
+% Environments.
+% \begin{macrocode}
+\RenewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{env.} ,
+ idxgroup = Environments,
+ printtype = \textit{env.}
+]{Env}{environment}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{Option}
+% \begin{command}{\DescribeOption}
+% \begin{environment}{option}
+% Options.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{opt.},
+ idxgroup = Options,
+ printtype = \textit{opt.}
+]{Option}{option}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{ILength}
+% \begin{command}{\DescribeILength}
+% \begin{environment}{ilength}
+% An internal length.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = true,
+ toplevel = false,
+ idxtype = ,
+ idxgroup = Lengths (internal),
+ printtype = \textit{ilen.}
+]{ILength}{ilength}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{Length}
+% \begin{command}{\DescribeLength}
+% \begin{environment}{length}
+% User length.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = true,
+ toplevel = true,
+ idxtype = \textit{len.},
+ idxgroup = Lengths (user),
+ printtype = \textit{len.},
+]{Length}{length}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{Counter}
+% \begin{command}{\DescribeCounter}
+% \begin{environment}{counter}
+% User counter.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{cnt.},
+ idxgroup = Counters,
+ printtype = \textit{cnt.},
+]{Counter}{counter}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{KOMAfont}
+% \begin{command}{\DescribeKOMAfont}
+% \begin{environment}{fontelement}
+% \KOMAScript{} font element
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{font},
+ idxgroup = KOMA-Script font elements\actualchar\KOMAScript{} font elements,
+ printtype = \textit{font},
+]{KOMAfont}{fontelement}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{KOMAvar}
+% \begin{command}{\DescribeKOMAvar}
+% \begin{environment}{variable}
+% \KOMAScript{} variable (used by \cls*{scrlttr2} and \pkg*{scrletter}).
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{var.},
+ idxgroup = KOMA-Script variables\actualchar\KOMAScript{} variables,
+ printtype = \textit{var.},
+]{KOMAvar}{variable}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{PLength}
+% \changes{v0.6}{2022/02/02}{added}
+% \begin{command}{\DescribePLength}
+% \changes{v0.6}{2022/02/02}{added}
+% \begin{environment}{peudolength}
+% \changes{v0.6}{2022/02/02}{added}
+% \KOMAScript{} pseudo-lengths (used by \cls*{scrlttr2} and \pkg*{scrletter}).
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{plen.},
+ idxgroup = KOMA-Script pseudo-lengths\actualchar\KOMAScript{} pseudo-lengths,
+ printtype = \textit{plen.},
+]{PLength}{pseudolength}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{PageStyle}
+% \changes{v0.8}{2022/02/08}{added}
+% \begin{command}{\DescribePageStyle}
+% \changes{v0.8}{2022/02/08}{added}
+% \begin{environment}{pgstyle}
+% \changes{v0.8}{2022/02/08}{added}
+% Page style.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{pgstyle},
+ idxgroup = page styles,
+ printtype = \textit{style}
+]{PageStyle}{pgstyle}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{docitem}{DoHook}
+% \changes{v0.91}{2022/03/10}{added}
+% \begin{command}{\DescribeDoHook}
+% \changes{v0.91}{2022/03/10}{added}
+% \begin{environment}{dohook}
+% \changes{v0.91}{2022/03/10}{added}
+% Page style.
+% \begin{macrocode}
+\NewDocElement[%
+ macrolike = false,
+ toplevel = true,
+ idxtype = \textit{do hook},
+ idxgroup = do hooks,
+ printtype = \textit{dohook}
+]{DoHook}{dohook}
+% \end{macrocode}
+% \end{environment}
+% \end{command}
+% \end{docitem}
+%
+% \begin{macrocode}
+%</class>
+% \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:
diff --git a/macros/latex/contrib/koma-script/source/scraddr.dtx b/macros/latex/contrib/koma-script/source/scraddr.dtx
index e1c03e46d8..f01483bf59 100644
--- a/macros/latex/contrib/koma-script/source/scraddr.dtx
+++ b/macros/latex/contrib/koma-script/source/scraddr.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{146}
% \iffalse meta-comment
% ======================================================================
% scraddr.dtx
-% Copyright (c) Markus Kohm, 2006-2019
+% Copyright (c) Markus Kohm, 2006-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scraddr.dtx
-% Copyright (c) Markus Kohm, 2006-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scraddr.dtx 3262 2019-10-10 08:25:29Z kohm $
+%%% From File: $Id: scraddr.dtx 3688 2022-02-10 08:26:37Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{scraddr.dtx}
@@ -64,7 +27,7 @@
%<driver>\ProvidesFile{scraddr.drv}
%<scraddr>\ProvidesPackage{scraddr}
%<*dtx|scraddr|driver>
- [2013/09/30 v1.1c KOMA-Script
+ [2022/01/24 v1.1d KOMA-Script
%</dtx|scraddr|driver>
%<scraddr> package]
%<*dtx|driver>
@@ -72,8 +35,8 @@
%</dtx|driver>
%<*dtx>
\ifx\documentclass\undefined
- \input docstrip.tex
- \@@input scrdocstrip.tex
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
\@@input scrstrip.inc
\KOMAdefVariable{COPYRIGHTFROM}{2006}
\generate{\usepreamble\defaultpreamble
@@ -89,54 +52,44 @@
\endbatchfile
%</dtx>
%<*driver>
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scraddr.dtx}
-\title{Das scraddr\thanks{Diese Datei hat die Versionsnummer
- \fileversion, letzte Änderung vom \filedate.}-Paket zur
- Auswertung von Adressdateien}
-\author{Markus Kohm \and Jens-Uwe Morawski}
-\date{\filedate}
-
+\documentclass{koma-script-source-doc}
+\usepackage[USenglish]{babel}
\begin{document}
- \maketitle
- \tableofcontents
\DocInput{scraddr.dtx}
\end{document}
%</driver>
% \fi
%
-% \changes{v1.1a}{2002/05/19}{Erste Version, die von \texttt{scrlettr}
-% losgelöst ist.}
-%
-% \section{Anleitung}
-%
-% \subsection{Rechtliches}
-% Es wird keinerlei Haftung übernommen für irgendwelche Schäden,
-% die aus der Benutzung der Programme und Dateien des hier
-% beschriebenen Paketes folgen.
-%
-% \subsection{Das \textsf{KOMA-Script} Paket}
-%
-% Das gesamte \textsf{KOMA-Script} Paket besteht aus mehreren Teilen.
-% Der Teil |scrclass.dtx| beinhaltet die Haupt-classes |scrartcl.cls|,
-% |scrreprt.cls| und |scrbook.cls| und |scrlttr2.cls| sowie das von
-% diesen benötigte package |typearea.sty|.
-%
-% Das ursprünglich in |scrlettr.dtx| enthaltene
-% \texttt{scraddr}-Paket liegt nun hier als |scraddr.dtx| separat
-% vor. Dies wurde erforderlich, das ansonsten in |scrlettr.dtx| nur
-% noch obsolete Teile enthalten sind.
-%
-% Die Anleitung zu diesem Paket ist in der Anleitung zu
-% \textsf{KOMA-Script} zu finden. Diese liegt in Deutsch und in
-% Englisch vor.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \section{Implementierung}
+% \changes{v1.1a}{2002/05/19}{first version, separated from \cls{scrlettr}}
+% \changes{v1.1d}{2022/01/24}{switched from \cls{scrdoc} to
+% \cls{koma-script-source-doc}}
+% \changes{v1.1d}{2022/01/24}{whole implementation documentation in English}
+%
+% \GetFileInfo{scraddr.dtx}
+% \title{Parsing Address Files \\
+% Using Package \pkg*{scraddr}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}
+% \and Jens-Uwe Morawski}
+% \date{Version \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% Address files are not only of interest for letters using the \KOMAScript{}
+% class \cls*{scrlttr2} or the \KOMAScript{} package \pkg*{scrletter}. Other
+% applications such as the creation of address books or telephone directories
+% are also quite common. In addition, it can also be useful to access not only
+% the addressee's record in a letter, but also other records in an address
+% file. This is exactly the task of the \pkg*{scraddr} package.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user manual of \pkg*{scraddr} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation}
%
%\iffalse
% \begin{macrocode}
@@ -151,40 +104,34 @@
%</scraddr>
%\fi
%
+% \changes{v1.0}{1996/01/22}{New package \pkg*{scraddr}}
%
-% \changes{v1.0}{1996/01/22}{Neues Package scraddr.}
% \begin{macrocode}
%<*scraddr>
% \end{macrocode}
-% Dieses Paket liest beliebige - auch mehrere - Adressdateien im oben
-% beschriebenen Format ein und legt für jeden Eintrag eine Reihe von
-% Markos an. Bedingung dafür ist, dass das achte Element jedes
-% |\adrentry|-Eintrags - der Kürzeleintrag - nichtleer ist.
-% Dies gilt in gleicher Weise auch für das neunte Element neuerer
-% |\addrentry|-Einträge.
-% Im Falle von
-% identischen Kürzeleinträgen überschreiben spätere Einträge
-% frühere. Die Inhalte können dann über spezielle Befehle ermittelt
-% werden.
-%
-% \subsection{Optionen}
%
-% \begin{option}{adrFreeIVempty}
-% \changes{v1.1a}{2002/05/19}{Neue Option}
-% \begin{option}{adrFreeIVshow}
-% \changes{v1.1a}{2002/05/19}{Neue Option}
-% \begin{option}{adrFreeIVwarn}
-% \changes{v1.1a}{2002/05/19}{Neue Option}
-% \begin{option}{adrFreeIVstop}
-% \changes{v1.1a}{2002/05/19}{Neue Option}
-% \begin{macro}{\@adrFIVerror}
-% \changes{v1.1a}{2002/05/19}{Neue (intern)}
-% Die neuen Optionen dienen der Wahl, ob die Verwendung von
-% \verb|\FreeIV| für einen Eintrag, der mit \verb|\adrentry|
-% definiert wurde, ignoriert wird, durch eine Ausgabe im Text
-% angezeigt wird, zu einer Warnung oder einem Fehler führt. Im Makro
-% wird die Einstellung gespeichert. Voreingestellt ist
-% \texttt{adrFreeIVshow}.
+% \subsection{Options}
+%
+% Preliminary note: \pkg*{scraddr} is a very, very old package from the early
+% days of \KOMAScript. Therefore it does not support \emph{key=value} options
+% as other \KOMAScript{} packages do.
+%
+% \begin{option}{adrFreeIVempty}
+% \changes{v1.1a}{2002/05/19}{new}
+% \begin{option}{adrFreeIVshow}
+% \changes{v1.1a}{2002/05/19}{new}
+% \begin{option}{adrFreeIVwarn}
+% \changes{v1.1a}{2002/05/19}{new}
+% \begin{option}{adrFreeIVstop}
+% \changes{v1.1a}{2002/05/19}{new}
+% \begin{macro}{\@adrFIVerror}
+% \changes{v1.1a}{2002/05/19}{new}
+% The options allow the choice whether \cs{FreeIV}, defined by \cs{adrentry},
+% should be ignored, output, result in a warning or an error message. Default
+% is \opt{adrFreeIVshow}. The selected choice is stored as a number in
+% \cs{@adrFIVerror} (0 = \opt{adrFreeIVempty}, 1 = \opt{adrFreeIVshow},
+% 2 = \opt{adrFreewarn}, 3 = \opt{adrFreeIVstop}). Unknown values should
+% be handled as \opt{adrFreeIVstop} too, but are not recommended.
% \begin{macrocode}
\newcommand*{\@adrFIVerror}{}
\DeclareOption{adrFreeIVempty}{\renewcommand*{\@adrFIVerror}{0}}
@@ -198,25 +145,21 @@
% \end{option}
% \end{option}
%
-% \changes{v1.0a}{2001/08/07}{\cs{ExecuteOption}\cs{relax} korrigiert}
-% \changes{v1.1a}{2002/05/19}{Option \texttt{adrFreeIVshow} ist
-% Voreinstellung}
+% \changes{v1.0a}{2001/08/07}{\cs{ExecuteOption}\cs{relax} fixed}
+% \changes{v1.1a}{2002/05/19}{\texttt{adrFreeIVshow} is default}
% \begin{macrocode}
\ExecuteOptions{adrFreeIVshow}
\ProcessOptions\relax
% \end{macrocode}
%
-% \subsection{Adressdatei einlesen}
-% \begin{macro}{\InputAdressFile}
-% Mit Hilfe des Befehls |\InputAddressFile| wird die angegebene
-% Adressdatei eingelesen und in Adressmakros gewandelt, die dann beliebig
-% verwendet werden können. Die Adressmakros werden global generiert.
-% Andere Makros insbesondere die Definitionen von |\adrentry| und
-% |\addrentry| bleiben erhalten.
-% \changes{v1.1}{2002/05/18}{Erweitert auf \cs{addrentry}
-% Einträge}
-% \changes{v1.1b}{2002/06/02}{Falls erforderlich werden auch
-% \cs{addrchar} und \cs{adrchar} definiert}
+% \subsection{Reading address files}
+% \begin{command}{\InputAdressFile}
+% This command reads the address file given as mandatory argument. While
+% reading global internal macros are generated for every \cs{adrentry} or
+% \cs{addrentry}. To do so, these two macros are redefined locally only.
+% \changes{v1.1}{2002/05/18}{extended by \cs{addrentry} handling}
+% \changes{v1.1b}{2002/06/02}{\cs{addrchar} and \cs{adrchar} are defined also
+% if undefined}
% \begin{macrocode}
\newcommand{\InputAddressFile}[1]{\begingroup
\ifcase\@adrFIVerror
@@ -255,8 +198,7 @@
\expandafter\gdef\csname ##9.FIV\endcsname{##8}
\fi}
% \end{macrocode}
-% Existiert die Datei nicht, so wird ein Fehler ausgegeben, ansonsten
-% wird die Ladeaktion angezeigt.
+% Not existing files result in an error message. Found files are only noted.
% \begin{macrocode}
\InputIfFileExists{#1.adr}
{\typeout{Load addressfile: #1.adr.}}
@@ -266,120 +208,89 @@
available}}
\endgroup}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \subsection{Zugriff auf die Elemente der eingelesenen Adressdatei}
+% \subsection{Using an element of an address file}
%
-% Da keine Vorschriften existieren, wie genau das Kürzel aufgebaut sein
-% muss, können innerhalb des Kürzels theoretisch auch solche Zeichen
-% enthalten sein, die für Makronamen normalerweise ungeeignet sind.
-% Deshalb existiert ein Satz von Befehlen, über den auf die zu einem
-% Kürzel gehörenden Elemente zugegriffen werden kann. Dabei wird davon
-% ausgegangen, dass die Adressdatei dem zuvor vorgeschlagenen Aufbau
-% entspricht.
+% Selecting the elements by names instead of cryptic macros, could be
+% easier. So we use well named macros for the selection. All these macros have
+% exactly one mandatory argument: the \meta{shortcut} which is argument 8 of
+% \cs{adrentry} resp. argument 9 of \cs{addrentry} in the address file.
%
-% \begin{macro}{\Name}
-% Der Name wird aus dem Vornamen (Firstname) und Nachnamen (Lastname)
-% zusammengesetzt, wobei einfach ein Leerzeichen dazwischen geklemmt
-% wird.
+% \begin{command}{\Name}
+% The \cs{Name} is a combination of \cs{Firstname} and \cs{Lastname} with a
+% normal word separator space in between.
% \begin{macrocode}
\newcommand*{\Name}[1]{\FirstName{#1}\ \LastName{#1}}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\FirstName}
-% Der Vorname (Firstname) ist mit \emph{Kürzel}|.FN| codiert.
+% \end{command}
+% \begin{command}{\FirstName}
+% Firstname or given from internal macro \cs{\meta{shortcut}.FN}.
% \begin{macrocode}
\newcommand*{\FirstName}[1]{\csname #1.FN\endcsname}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\LastName}
-% Der Nachname (Lastname) ist mit \emph{Kürzel}|.LN| codiert.
+% \end{command}
+% \begin{command}{\LastName}
+% Lastname from internal macro \cs{\meta{shortcut}.LN}.
% \begin{macrocode}
\newcommand*{\LastName}[1]{\csname #1.LN\endcsname}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\Address}
-% Die Adresse (Address) ist mit \emph{Kürzel}|.A| codiert.
+% \end{command}
+% \begin{command}{\Address}
+% Address from internal macro \cs{\meta{shortcut}.A}.
% \begin{macrocode}
\newcommand*{\Address}[1]{\csname #1.A\endcsname}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\Telephone}
-% Die Telephonnummer (Telephone/Phone) ist mit \emph{Kürzel}|.P|
-% codiert.
+% \end{command}
+% \begin{command}{\Telephone}
+% Telephone number from internal macro \cs{\meta{shortcut}.P}.
% \begin{macrocode}
\newcommand*{\Telephone}[1]{\csname #1.P\endcsname}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\FreeI}
-% \begin{macro}{\FreeII}
-% Es existieren zwei freie Einträge, die mit \emph{Kürzel}|.FI| und
-% \emph{Kürzel}.|FII| codiert sind.
+% \end{command}
+% \begin{command}{\FreeI,\FreeII}
+% Two free entries from internal macros \cs{\meta{shortcut}.FI} and
+% \cs{\meta{shortcut}.FII}.
% \begin{macrocode}
\newcommand*{\FreeI}[1]{\csname #1.FI\endcsname}
\newcommand*{\FreeII}[1]{\csname #1.FII\endcsname}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\Comment}
-% \begin{macro}{\FreeIII}
-% Das dritte freie Element ist über zwei Makros erreichbar.
-% Das Makro |\Comment| dient zur Kompatibilität mit älteren
-% |\adrentry|-Einträgen, da hier der vorletzte Parameter als
-% Kommentar gekennzeichnet war.
-% Das Makro |\FreeIII| ist passend zur Definition des Makros
-% |\addrentry| benannt.
-% Die Daten sind im Makro mit \emph{Kürzel}|.FIII| kodiert.
-% \changes{v1.1}{2002/05/18}{Erweitert auf addrentry Einträge}
+% \end{command}
+% \begin{command}{\Comment,\FreeIII}
+% The third free element is available by two commands, because originally it
+% was specified as \meta{comment}. It is stored in the internal macro
+% \cs{\meta{shortcut}.FIII}.
+% \changes{v1.1}{2002/05/18}{extended to \cs{addrentry}}
% \begin{macrocode}
\newcommand*{\Comment}{}
\newcommand*{\FreeIII}[1]{\csname #1.FIII\endcsname}
\let\Comment\FreeIII
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\FreeIV}
-% Das letzte Makro gibt ebenfalls Zugriff auf ein freies Element, das mit
-% \emph{Kürzel}|.FIV| codiert ist. Dies wurde ebenfalls für
-% neue |\addrentry| Einträgen eingeführt. Bei älteren |\adrentry|
-% Einträgen, führt die Benutzung dieses Macros zu einer Warnung im Text.
-% \changes{v1.1}{2002/05/18}{Erweitert auf addrentry Einträge}
+% \end{command}
+% \begin{command}{\FreeIV}
+% Forth free entry from internal macro \cs{\meta{shortcut}.FIV} only available
+% with \cs{addrentry} but not woth \cs{adreentry}.
+% \changes{v1.1}{2002/05/18}{extended to \cs{addrentry}}
% \begin{macrocode}
\newcommand*{\FreeIV}[1]{\csname #1.FIV\endcsname}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \subsection{Ende des Pakets}
+% \subsection{Ende of package}
% \begin{macrocode}
%</scraddr>
% \end{macrocode}
%
-% \IndexPrologue{\clearpage
-% \section*{Index}
-% \markboth{Index}{Index}
-% Die kursiven Zahlen geben die Seiten an, auf denen
-% der entsprechende Eintrag beschrieben ist.
-% Die unterstrichenden Zahlen geben die Stelle der
-% Definition des Eintrags an.
-% Alle anderen Zahlen benennen Stellen, an denen der
-% entsprechende Eintrag verwendet ist.
-% \vspace{1em}\noindent}
-%
-% \GlossaryPrologue{\section*{Änderungsverzeichnis}
-% \markboth{Änderungsverzeichnis}{Änderungsverzeichnis}
-% \addcontentsline{toc}{section}{Änderungsverzeichnis}
-% Die erste Version des \textsf{KOMA-Script} Pakets
-% stammt vom 7.\,Juli~1994. Es werden nur die
-% Änderungen ab diesem Zeitpunkt dokumentiert.\par%
-% \vspace{1em}\noindent}
-%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% Ende der Datei `scraddr.dtx'
+% 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:
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrdoc.dtx b/macros/latex/contrib/koma-script/source/scrdoc.dtx
index ccb4e42cc7..99096df899 100644
--- a/macros/latex/contrib/koma-script/source/scrdoc.dtx
+++ b/macros/latex/contrib/koma-script/source/scrdoc.dtx
@@ -1,6 +1,6 @@
% ======================================================================
% scrdoc.dtx
-% Copyright (c) Markus Kohm, 2002-2017
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrdoc.dtx
-% Copyright (c) Markus Kohm, 2002-2017
+% Copyright (c) Markus Kohm, 2002-2022
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
@@ -39,10 +39,66 @@
% Do not use this class for anything because it may change
% incompatible from distribution to distribution
%
+\newcommand*{\UseOldscrdoc}{%
+ \def\reserved@a{scrsource}\edef\reserved@b{\jobname}%
+ \@onelevel@sanitize\reserved@a
+ \@onelevel@sanitize\reserved@b
+ \ifx\reserved@a\reserved@b
+ \AtBeginDocument{%
+ \ClassWarning{scrdoc}{%
+ Using emergency fallback definitions to make\MessageBreak
+ several new commands and environments of\MessageBreak
+ `koma-script-source-doc' available with\MessageBreak
+ deprecated `scrdoc'}%
+ \newcommand*{\cls}{\@ifstar\Class\Class}%
+ \newcommand*{\pkg}{\@ifstar\Package\Package}%
+ \newcommand*{\file}{\File}%
+ \newcommand*{\opt}{\Option}%
+ \newcommand*{\optvalue}{\texttt}%
+ \newcommand*{\fnt}{\texttt}%
+ \newenvironment{length}{\Length}{\endLength}%
+ \newenvironment{counter}{\Counter}{\endCounter}%
+ \newenvironment{fontelement}{\KOMAfont}{\endKOMAfont}%
+ \newenvironment{variable}{\KOMAvar}{\endKOMAvar}%
+ \newenvironment{command}{\macro}{\endmacro}%
+ \newcommand*{\MaybeStop}{\StopEventually}%
+ \newcommand*{\href}[2]{##2}%
+ }%
+ \fi
+}
+\ifdefined\IfFormatAtLeastTF
+ \IfFormatAtLeastTF{2022/06/01}{%
+ \IfFileExists{doc-2021-06-01.sty}{%
+ \renewcommand*{\UseOldscrdoc}{%
+ \ProvidesClass{scrdoc}[2022/01/16 v0.1zz
+ emulating deprecated class scrdoc using koma-script-source-doc]
+ \LoadClassWithOptions{koma-script-source-doc}
+ \RequirePackage{hologo}
+ \DeclareRobustCommand*{\eTeX}{\hologo{eTeX}}%
+ \NewCommandCopy\Class\cls
+ \NewCommandCopy\Package\pkg
+ \NewCommandCopy\Option\opt
+ \NewCommandCopy\File\file
+ \NewCommandCopy\Macro\cs
+ \NewCommandCopy\endLength\endlength
+ \NewCommandCopy\Length\length
+ \NewCommandCopy\endCounter\endcounter
+ \NewCommandCopy\Counter\counter
+ \NewCommandCopy\endKOMAfont\endfontelement
+ \NewCommandCopy\KOMAfont\fontelement
+ \NewCommandCopy\endKOMAvar\endvariable
+ \NewCommandCopy\KOMAvar\variable
+ \setcounter{IndexColumns}{2}%
+ \endinput
+ }%
+ }{}%
+ }{}%
+\fi
+\UseOldscrdoc
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{scrdoc}[%
- 2016/04/12 v0.1e KOMA-Script source documentation class]
+ 2022/02/09 v0.1i KOMA-Script source documentation class]
% Load standard LaTeX documentation class, passing all options to it
% but use scrartcl instead of article.
@@ -90,7 +146,16 @@
}%
\newcommand*{\marginline}{\marginpar}%
}
+% scrdoc is incompatible with ltxdoc v3 and doc v3. Several changes will
+% be needed to improve this. However, currently a kind of emergency
+% workaround can be used.
+\IfFileExists{doc-2021-06-01.sty}{%
+ \RequirePackage{scrlfile}%
+ \ReplaceInput{doc.sty}{doc-2021-06-01.sty}%
+ \PassOptionsToClass{nocfg}{ltxdoc}%
+}{}
\LoadClassWithOptions{ltxdoc}
+\@ifundefined{cs}{\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}}{}
% Use two columns at index
\setcounter{IndexColumns}{2}
diff --git a/macros/latex/contrib/koma-script/source/scrdocstrip.tex b/macros/latex/contrib/koma-script/source/scrdocstrip.tex
index 0c96d0f00d..c0f1078361 100644
--- a/macros/latex/contrib/koma-script/source/scrdocstrip.tex
+++ b/macros/latex/contrib/koma-script/source/scrdocstrip.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrdocstrip.tex
-% Copyright (c) Markus Kohm, 2013-2018
+% Copyright (c) Markus Kohm, 2013-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -16,24 +16,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrdocstrip.tex
-% Copyright (c) Markus Kohm, 2013-2018
-%
-% 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.
% ======================================================================
+% $Id: scrdocstrip.tex 3725 2022-02-26 12:17:09Z kohm $
\expandafter\ifx\csname scrdocstripversion\endcsname\relax
\let\KOMAbatchfile\batchfile
@@ -276,7 +260,10 @@
\def\KNL{^\empty^J\perCent^^J}
\def\XKNL{^\empty^J\perCent|^^J}
\def\genericWarning#1#2{%
- \string\immediate\string\write17{\KNL
+ \string\expandafter\string\ifx\string\csname\space scrWMSG\string\endcsname\string\relax^^J%
+ \space\space\string\def\string\scrWMSG{\string\immediate\string\write17}^^J%
+ \string\fi^^J%
+ \string\scrWMSG{\KNL
+----------------------------------------------------------------------\KNL
| WARNING (`#1'):\XKNL
+----------------------------------------------------------------------\KNL
diff --git a/macros/latex/contrib/koma-script/source/scrextend.dtx b/macros/latex/contrib/koma-script/source/scrextend.dtx
index 63718bf10e..0be97835df 100644
--- a/macros/latex/contrib/koma-script/source/scrextend.dtx
+++ b/macros/latex/contrib/koma-script/source/scrextend.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{74}
% \iffalse meta-comment
% ======================================================================
% scrextend.dtx
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrextend.dtx
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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: scrextend.dtx 3453 2020-02-25 07:33:30Z kohm $
+%%% From File: $Id: scrextend.dtx 3773 2022-03-29 06:27:55Z kohm $
%<preidentify>%%% (run: preidentify)
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
@@ -63,57 +26,66 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2020-02-25 08:33:30 +0100 (Tue, 25 Feb 2020) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1962 $
+ \filerevision$Revision: 3773 $
\endgroup
\ProvidesFile{scrextend.dtx}[\filedate\space\filerevision\space
KOMA-Script package source
(extend other classes)]
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrextend.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Version \fileversion\ von Datei
- \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+\documentclass{koma-script-source-doc}
+\usepackage[USenglish]{babel}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+ \DocInput{scrextend.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v3.00}{2008/05/01}{new package}
+% \changes{v3.36}{2022/01/31}{switched from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/01/31}{whole implementation documentation in English}
%
-% \changes{v3.00}{2008/05/01}{neues Paket}
+% \GetFileInfo{scrextend.dtx}
+% \title{Extending Non-\href{https://komascript.de}{\KOMAScript} Classes by
+% some \href{https://komascript.de}{\KOMAScript} Class Features using
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrextend}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The purpose of this package is to provide \KOMAScript{} class features to
+% other classes, i.\,e., the standard classes too. On the other hand it does
+% not make sense to nor should you load this package, if you are using a
+% \KOMAScript{} class.
+% \end{abstract}
%
-% \section{Erweiterungen für andere Klassen}
+% \tableofcontents
%
-% Dieses Paket dient dazu, einige Möglichkeiten von \KOMAScript{} auch anderen
-% Klassen zur Verfügung zustellen. Dafür darf dieses Paket nicht mit einer
-% \KOMAScript-Klasse verwendet werden.
+% \section{User Manual}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% You can find the user manual of \pkg{scrextend} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
%
-% \subsection{Vorbereitung noch vor der Identifizierung des Pakets}
+% \MaybeStop{\PrintIndex}
%
-% Die Vorbereitung ist einfach. Es wird nur getestet, ob bereits eine
-% \KOMAScript-Klasse geladen ist. Falls dem so ist, wird eine Warnung
-% ausgegeben und dafür gesorgt, dass das Paket nicht weiter abgearbeitet wird.
+% \section{Implementation}
%
-% \iffalse
-%<*preidentify>
-% \fi
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Before the identification of the package}
%
-% \changes{v3.30}{2020/02/25}{\cs{PackageWarningNoLine} statt
-% \cs{PackageWarning} mit angehängtem \cs{@gobble}}%^^A
+% Just before the identification of the package, we have to take care, that it
+% is not loaded with a \KOMAScript{} class. If so, we output a warning an
+% terminate.
+%
+% \changes{v3.30}{2020/02/25}{Using \cs{PackageWarningNoLine} instead of
+% \cs{PackageWarning} with final \cs{@gobble}}
% \begin{macrocode}
+%<*preidentify>
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname KOMAClassName\endcsname\relax\else
\PackageWarningNoLine{scrextend}{%
@@ -125,44 +97,76 @@
}%
\expandafter\endinput
\fi
+%</preidentify>
% \end{macrocode}
%
-% \iffalse
-%</preidentify>
-%<*identify>
-% \fi
%
-% \subsection{Identifizierung des Pakets}
+% \subsection{Package identification}
+%
+% We use the major \KOMAScript{} version for this package, because it uses
+% several main parts of the classes of the same version.
%
% \begin{macrocode}
+%<*identify>
\ProvidesPackage{scrextend}[%
%!KOMAScriptVersion
package (extend other classes with features of KOMA-Script classes)%
]
+%</identify>
% \end{macrocode}
%
-% \iffalse
-%</identify>
-%<*prepare>
-% \fi
%
-% \subsection{Vorbereitung vor den Optionen}
-%
-% \begin{macro}{\scr@ext@activate}
-% \begin{macro}{\scr@ext@activateable}
-% \begin{macro}{\scr@ext@addto@activateable}
-% \begin{sloppypar}
-% Einige Dinge werden nur dann definiert, wenn dies gefordert ist. Dazu werden
-% die entsprechenden Definitionen in das zweite Argument von
-% \cs{scr@ext@activateable}\marg{Kürzel} gepackt, wodurch sie als
-% \cs{scr@ext@activate@}\meta{Kürzel} definiert werden, und anschließend
-% \cs{csname}~\texttt{scr@ext@immediate@}\meta{Kürzel}\cs{endcsname}
-% ausgeführt. Um das dann zu aktivieren wird
-% \cs{scr@ext@activate}\marg{Kürzel} aufgerufen (beispielsweise innerhalb
-% einer Option). Mit \cs{scr@ext@addto@activateable} können Aktivierungen
-% entsprechend um weitere Definitionen erweitert werden.
-% \end{sloppypar}
+% \subsection{Preparation of options}
+%
+% The preparation state is used before the option handling. To allow
+% definition of optional features. Such definitions are used in other parts of
+% the \KOMAScript{} classes. For example \file{scrkernel-title.dtx} defines
+% the \optvalue{title} \opt{feature}.
+%
+% Note: The method used here is very fragile, i.\,e., the definition of
+% feature code with arguments needs to be adapted for \pkg{scrextend}. So
+% there is a big fat
+% \begin{description}
+% \item[ToDo:] Reimplementation of the optional features should simplify the
+% definition of such features a lot in other files. Best would be to have a
+% kind of start command and a kind of end command without the need to change
+% anything in between, if the package instead of a class is defined. But
+% this is hard to reach, because of usage of \cs{ClassError}
+% vs. \cs{PackageError}, \cs{ClassWarning} vs. \cs{PackageWarning}. So at
+% least these commands have to be dependent. Nevertheless the need to
+% change, e.g., |#1| into |##1|, |#2| into |##2| etc. for \pkg{scrextend} is
+% annoying. Moreover the whole usage of \cs{scr@extend@activate@\dots} and
+% \cs{sr@extend@immediate@\dots} is very complicated and currently I'm even
+% not sure, that is always works as expected. Maybe a less complicated
+% feature implementation could be found.
+% \end{description}
+%
+% \begin{macro}{\scr@ext@activate,\scr@ext@activateable,
+% \scr@ext@addto@activateable}
+% One special feature of this package is, to provide some \KOMAScript{}
+% features only, if they have been activated explicitly. To do so
+% \begin{quote}
+% \cs{scr@ext@activateable}\marg{feature}\marg{definition}
+% \end{quote}
+% is used. This macro defines \cs{scr@ext@activate@\meta{feature}}. There is
+% also a
+% \begin{quote}
+% \cs{scr@ext@addto@activateable}\marg{feature}\marg{definition}
+% \end{quote}
+% that does append \meta{definition} to the already existing code of
+% \cs{scr@act@activate@\meta{feature}}, if it already exists, or define it
+% new, if is does not exist already.
+% \begin{quote}
+% \cs{scr@ext@activate}\marg{feature}
+% \end{quote}
+% is used to \emph{activate} a \meta{feature}. That means: If there is a
+% \cs{scr@ext@activate@\meta{feature}} it is executed and afterwards
+% \cs{scr@ext@activate@\meta{feature}} is destroyed making it \cs{relax}. But
+% if there is not yet a \cs{scr@ext@activate@\meta{feature}} a
+% \cs{scr@ext@immediate@\meta{feature}} is defined. The definition of this
+% is, to redefine itself to be \cs{scr@ext@activate@\meta{feature}}.
% \begin{macrocode}
+%<*prepare>
\newcommand*{\scr@ext@activate}[1]{%
\scr@ifundefinedorrelax{scr@ext@activate@#1}{%
\@namedef{scr@ext@immediate@#1}{%
@@ -184,28 +188,22 @@
\expandafter\g@addto@macro\csname scr@ext@activate@#1\endcsname
}%
}
+%</prepare>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \iffalse
-%</prepare>
-%<*option>
-% \fi
%
-% \subsection{Optionen}
+% \subsection{Options}
%
-% Das Paket kennt eine universelle Option, um aktivierbare Möglichkeiten zu
-% aktivieren. Diese Option steht aber nur während dem Laden des Pakets zur
-% Verfügung!
+% Now, after the preparation, the universal option that enables optional
+% features can defined. This option can be used while loading the package
+% only. Later activation of features is currently not supported.
%
% \begin{option}{extendedfeature}
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/09}{Speicherung des Werts in der internen
-% Liste}%^^A
+% \changes{v3.12}{2013/03/05}{using state signaling with \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/09}{internal value storage}
% \begin{macrocode}
+%<*option>
\KOMA@key{extendedfeature}{%
\scr@ext@activate{#1}%
\AtEndOfPackage{%
@@ -228,19 +226,24 @@
\def\FamilyKeyState{Option `extendedfeature' too late}%
}%
}
+%</option>
% \end{macrocode}
% \end{option}
%
-% \iffalse
-%</option>
-% \fi
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrextend.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:
+
diff --git a/macros/latex/contrib/koma-script/source/scrhack.dtx b/macros/latex/contrib/koma-script/source/scrhack.dtx
index 1a75956680..dc1ea8b087 100644
--- a/macros/latex/contrib/koma-script/source/scrhack.dtx
+++ b/macros/latex/contrib/koma-script/source/scrhack.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrhack.dtx
-% Copyright (c) Markus Kohm, 2008-2021
+% Copyright (c) Markus Kohm, 2008-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -20,48 +20,8 @@
%
% To create `scrhack.sty' run `tex scrhack.dtx'. Using LaTeX instead
% of TeX would generate the implementation documentation.
-% ----------------------------------------------------------------------
-% scrhack.dtx
-% Copyright (c) Markus Kohm, 2008-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.
-%
-% `scrhack.sty' kann durch den Aufruf `tex scrhack.dtx' erzeugt
-% werden. Bei Verwendung von LaTeX statt TeX wird hingegen die
-% Implementierungsdokumentation erzeugt.
% ======================================================================
-% \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: scrhack.dtx 3602 2021-06-03 17:24:02Z kohm $
+%%% 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
@@ -70,9 +30,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-06-03 19:24:02 +0200 (Thu, 03 Jun 2021) $
+ \filedate$Date: 2022-02-10 10:59:31 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1962 $
+ \filerevision$Revision: 3690 $
\endgroup
\ProvidesFile{scrhack.dtx}[\filedate\space\filerevision\space
%</dtx>
@@ -168,83 +128,79 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\usepackage[T1]{fontenc}
-\usepackage{lmodern}
-\newcommand*{\Environment}[1]{\texttt{\mbox{#1}}}
-\CodelineIndex
-\RecordChanges
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
-\GetFileInfo{scrhack.dtx}
-\DocInput{scrhack.dtx}
+ \DocInput{scrhack.dtx}
\end{document}
%</dtx>
%\fi
%
-% \selectlanguage{english}
-%
-% \let\PName\meta
-% \let\Parameter\marg
-% \providecommand*{\PParameter}[1]{\texttt{\{#1\}}}
-% \providecommand*{\Counter}[1]{\texttt{\mbox{#1}}}
-% \providecommand*{\Option}[1]{\texttt{#1}}
-% \providecommand*{\OptionValue}[2]{\texttt{\mbox{#1=}\linebreak[3]\mbox{#2}}}
-% \let\PValue\texttt
-%
-% \title{\KOMAScript{} \partname\ \texttt{\filename}%
-% \thanks{This file is version \fileversion\ of \texttt{\filename}.}}
-% \date{\filedate}
-% \author{Markus Kohm\thanks{mailto:komascript(at)gmx.info}}
+% \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
+% 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 \Package{scrhack} contains all those improvement
-% proposals for other packages. This means, \Package{scrhack} redefines
-% macros of packages from other authors! The redefinitions are only
-% activated, if those packages were loaded. Users may prevent
-% \Package{scrhack} from redefining macros of individual packages.
+% 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
%
-% \selectlanguage{ngerman}
-% \StopEventually{\PrintIndex\PrintChanges}
-% \changes{v3.03}{2009/03/12}{erste Version des Pakets}%^^A
+% \section{User Manual}
%
-% \section{Implementation of \Package{scrhack}}
+% You can find the user manuals of \pkg*{scrhack} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
%
-% \changes{v3.04b}{2009/08/05}{Die Reihenfolge von Anweisungen und Optionen
-% grundlegend geändert, um das Paket \textsf{scrhack} unabhängiger von der
-% Reihenfolge beim Laden von Paketen zu machen.}%^^A
+% \MaybeStop{\PrintIndex}
%
-% \subsection{Optionen}
+% \section{Implementation of \pkg*{scrhack}}
%
-% \iffalse
-%<*package&option>
-% \fi
+% \changes{v3.04b}{2009/08/05}{order of commands/macros and options changed}
%
-% Das Paket bedient sich \cs{KOMAoptions} etc. aus \textsf{scrkbase} (dieses
-% wird übrigens direkt per \texttt{scrkbase.dtx} geladen).
+% \subsection{Optionen}
%
-% Per Option kann gewählt werden, welche Manipulationen geladen werden
-% sollen. Alle diese Optionen können jedoch nur bis zum Laden des
-% entsprechenden Pakets oder dem Laden von \textsf{scrhack} gesetzt
-% werden (es zählt, was später kommt). Anschließend sind sie wirkungslos.
+% The package uses \cs{KOMAoptions} of \pkg*{scrkbase}, which is loaded by
+% (virtual) \file{scrkbase.ins}.
%
-% \subsection{Verwendete Anweisungen}
+% 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.
%
-% \iffalse
-%</package&option>
+%
+% \subsection{Used Macros and Commands}
+% \label{sec:macros}
+% \begin{macrocode}
%<*package&body>
-% \fi
+% \end{macrocode}
%
% \begin{macro}{\scr@ifexpected}
-% Wenn die im ersten Argument angegebene Anweisung nach Ausführung der im
-% zweiten Argument angegebenen Anweisungen unverändert ist, dann soll das
-% dritte Argument ausgeführt werden, sonst das vierte.
+% 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
@@ -261,16 +217,29 @@
% \end{macro}
%
% \begin{macro}{\scr@hack@load}
-% Wenn die Datei mit dem Namen des zweiten Arguments und der Endung des ersten
-% Arguments so geladen wurde, dass \LaTeX{} eine Versionsinfo dazu gespeichert
-% hat, dann soll zusätzlich der entsprechende Hack geladen werden.
+% 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}
-% Allerdings wird jeder Hack nur genau einmal geladen:
+% Load a hack only once.
% \begin{macrocode}
\expandafter\ifx\csname ver@#2.hak\endcsname\relax
\expandafter\expandafter\expandafter\@firstoftwo
@@ -291,45 +260,42 @@
% \end{macrocode}
% \end{macro}
%
-% \iffalse
+% \begin{macrocode}
%</package&body>
-% \fi
-%
-% \subsection{Der \textsf{hyperref}-Hack}
+% \end{macrocode}
+%
+% \subsection{The \pkg*{hyperref} hack}
%
-% \textsf{hyperref} setzt den Anker zu der Stern-Variante einer Ãœberschrift
-% hinter die Überschrift, während es bei der nicht Stern-Variante den Anker
-% auch dann vor die Ãœberschrift setzt, wenn die Ãœberschrift aufgrund von
-% \texttt{secnumdepth} nicht nummeriert wird. Der Hack setzt den Anker
-% einheitlich vor die Ãœberschrift.
+% 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}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}%^^A
+% \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>
-%<*package&body>
% \end{macrocode}
-% \changes{v3.04b}{2009/11/09}{\textsf{hyperref}-Hack wird früher geladen}%^^A
-% \changes{v3.17}{2015/03/09}{Neuere \textsf{hyperref}-Version deaktiviert
-% ggf. Option \texttt{hyperref}}%^^A
-% \changes{v3.18}{2015/05/22}{Neuere \KOMAScript-Versionen deaktivieren
-% ggf. Option \texttt{hyperref}}%^^A
-% Hier muss ein wenig trickreicher gearbeitet werden, weil \textsf{hyperref}
-% die Treiberdatei per \cs{AtEndOfPackage} lädt und der Hack erst danach
-% installiert werden darf. Mit \cs{AfterPackage*} alleine, würde der Hack aber
-% vor dem Laden der Treiberdatei installiert. Dafür können wir aber sicher
-% sein, dass ein innerhalb von \cs{AfterPackage*} aufgerufenes
-% \cs{AtEndOfPackage} garantiert nach dem Laden der Treiberdatei ausgeführt
-% wird. Das funktioniert auch noch, wenn \textsf{hyperref} bereits geladen
-% wurde. In dem Fall wird der Code einfach nach dem Ende von \textsf{scrhack}
-% statt nach dem Ende von \textsf{hyperref} ausgeführt.
+% \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
@@ -361,16 +327,13 @@
% \end{option}
%
%
-% \begin{macro}{\@schapter}
-% \begin{macro}{\@spart}
-% \begin{macro}{\@ssect}
-% Eigentlich wird hier gar nicht \texttt{hyperref.sty} verändert, sondern
-% diverse Treiberdateien. Sobald das Paket \textsf{hyperref} geladen ist, ist
-% auch die passende Treiberdatei geladen und außerdem sind alle
-% Treiberdateien, die entsprechende Definitionen vornehmen, gleichermaßen
-% betroffen. Also kann der entsprechende Patch einfach erfolgen, wenn hyperref
-% geladen ist (was bereits von \cs{scr@hack@load} getestet wurde). Es muss
-% also nur noch sichergestellt werden, dass die umzudefinierenden Macros
+% \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>
@@ -477,26 +440,24 @@
%</hyperref&body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
%
-% \subsection{Der \textsf{floatrow}-Hack}
+% \subsection{The \pkg*{floatrow} hack}
%
-% Das \textsf{floatrow}-Paket verwendet das Makro \cs{float@listhead} zum
-% Setzen der Ãœberschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
-% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
-% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
-% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+% 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.
%
-% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{floatrow}
-% nach.
+% 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}{Signalisierung mit \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}
-% \changes{v3.34}{2021/06/03}{Deaktivierung des \textsf{float}-Hacks}
+% \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}
@@ -517,17 +478,16 @@
% \end{option}
%
%
-% \begin{macro}{\DeclareNewFloatType}
-% Ãœber die Anweisung \cs{DeclareNewFloatType} wird eine neue Gleitumgebung
-% definiert. Hier muss die neue Erweiterung aus dem dritten Argument
-% \textsf{tocbasic} bekannt gemacht werden.
-% \begin{macro}{\listof}
-% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
-% ausgegeben. Hier muss schlicht die entsprechende Anweisung von
-% \textsf{tocbasic} verwendet werden.
+% \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}
-% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
-% Definition zurückgesetzt.
+% 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}{%
@@ -557,14 +517,11 @@
\RequirePackage{tocbasic}%
\PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}%
% \end{macrocode}
-% Eigentlich wäre es besser, wie im \textsf{float}-Hack einen Test
-% vorzuschalten, ob die Dateiendung bereits in Gebrauch ist. Aber das würde
-% voraussetzen, dass die Reihenfolge der Anweisungen geändert wird. Dazu
-% stecke ich aber im Code von \textsf{floatrow} zu wenig
-% drin. (\emph{\foreignlanguage{english}{Note: It would be better to first
-% test, if the new extension is already in use like done at the
-% \textsf{float} hack. But I don't know the \textsf{floatrow} code good
-% enough to make such a change!}})
+% \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}%
@@ -574,16 +531,6 @@
{\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}%
-% \end{macrocode}
-% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}%^^A
-% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
-% \cs{@dottedtocline} definiert:
-% \begin{verbatim}
-% \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
-% \end{verbatim}
-% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
-% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
-% \begin{macrocode}
\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}}}%
@@ -598,9 +545,6 @@
\@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
\@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
\@ifundefined{l@#1}{%
-% \end{macrocode}
-% Siehe die Anmerkung zur Verwendung von \cs{DeclareTOCStyleEntry} oben.
-% \begin{macrocode}
\DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
{default}{#1}%
}{}%
@@ -632,26 +576,24 @@
%</floatrow&body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Der \textsf{float}-Hack}
+% \subsection{The \pkg*{float} hack}
%
-% Das \textsf{float}-Paket verwendet das Makro \cs{float@listhead} zum
-% Setzen der Ãœberschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
-% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
-% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
-% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+% 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.
%
-% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{float}
-% nach.
+% 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}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}%^^A
+% \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}%
@@ -670,19 +612,18 @@
% \end{option}
%
%
-% \begin{macro}{\newfloat}
+% \begin{command}{\newfloat}
% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by
-% \cs{Ifattoclist}}%^^A
-% Ãœber die Anweisung \cs{newfloat} wird eine neue Gleitumgebung
-% definiert. Hier muss die neue Erweiterung aus dem dritten Argument
-% \textsf{tocbasic} bekannt gemacht werden.
-% \begin{macro}{\listof}
-% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
-% ausgegeben. Hier muss schlicht die entsprechende Anweisung von
-% \textsf{tocbasic} verwendet werden.
+% \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}
-% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
-% Definition zurückgesetzt.
+% 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}{%
@@ -746,16 +687,6 @@
\@ifundefined{ext@#1}{\float@error{#1}}{%
\@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
\@ifundefined{l@#1}{%
-% \end{macrocode}
-% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}%^^A
-% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
-% \cs{@dottedtocline} definiert:
-% \begin{verbatim}
-% \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
-% \end{verbatim}
-% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
-% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
-% \begin{macrocode}
\DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
{default}{#1}%
}{}%
@@ -787,26 +718,25 @@
%</float&body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
%
-% \subsection{Der \textsf{listings}-Hack}
+% \subsection{The \pkg*{listings} hack}
%
-% Das \textsf{listings}-Paket verwendet das Makro \cs{float@listhead} zum
-% Setzen der Ãœberschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
-% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
-% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
-% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+% 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.
%
-% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{listings}
-% nach.
+% 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}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}%^^A
+% \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}
@@ -826,13 +756,14 @@
%
%
% \begin{macro}{\scr@do@hack@listings}
-% \begin{macro}{\lstlistoflistings}
-% Ãœber dieses Macro wird das Verzeichnis der Listings gesetzt. Die gesamte
-% Funktionalität dafür kann \Package{tocbasic} überlassen werden.
+% \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}
-% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
-% Definition zurückgesetzt. Da \Package{listings} ihre Definition mit
-% \Macro{AtBeginDocument} verzögert, muss dies hier ebenfalls geschehen.
+% 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}{%
@@ -863,13 +794,13 @@
}%
}%
% \end{macrocode}
-% \changes{v3.30}{2020/04/01}{setzen von \cs{@captype} ergänzt}%^^A
-% Ab Version~3.30 wird zusätzlich \cs{lst@makecaption} um das Setzen von
-% \cs{@captype} auf \texttt{lstlisting} ergänzt. Dadurch wird auch die
-% Verwendung von \cs{raggedlstlistingcaption} ermöglicht, falls dieses
-% definiert wird. Die Umdefinierung erfolgt in Form einer Erweiterung der
-% Definition aus \textsf{listings}. Das sollte so lange funktionieren, solange
-% die Anweisung in \textsf{listings} keine Argumente hat.
+% \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{%
@@ -917,22 +848,28 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{command}
% \end{macro}
%
%
%
-% \subsection{Der \textsf{nomencl}-Hack}
+% \subsection{The \pkg*{nomencl} hack}
%
-% Das \textsf{nomencl}-Paket harmoniert eigentlich nur in einer Kleinigkeit
-% bezüglich des Eintrags in das Inhaltsverzeichnis nicht sehr gut mit
-% \KOMAScript-Klassen bzw. Paket \textsf{tocbasic}. Allerdings kann es von den
-% Vorteilen von \textsf{tocbasic} auch in weiterer Hinsicht profitieren.
+% 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}.
%
-% Dieser Hack rüstet weitgehende \textsf{tocbasic}-Unterstützung für
-% \textsf{nomencl} nach. Dafür wird Paket \textsf{xpatch} verwendet.
+% 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}{neue Option für neuen Hack}%^^A
+% \changes{v3.23}{2017/03/31}{added}
% \begin{macrocode}
%<*package&option>
\RequirePackage{xpatch}%
@@ -949,19 +886,22 @@
}
%</package&body>
% \end{macrocode}
-% \end{option}%^^A nomencl
-%
-% \begin{macro}{\thenomenclature}
-% \changes{v3.23}{2017/03/31}{Umgebung \texttt{thenomenclature} wird
-% gepatcht}%^^A
-% Statt die Fallunterscheidung aus der Originaldefinition direkt hier
-% nachzubilden, patchen wir diese komplett heraus und ersetzen sie durch eine
-% neue Anweisung.
+% \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 \Package{nomencl} > 5.0 this should be all.
+% 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'}%
@@ -988,8 +928,8 @@
\PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
}{%
% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{new \textsf{nomencl} 5.0}%^^A
-% From \textsf{nomencl} 5.0 another code is used if the nomenclature is a
+% \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}{%
@@ -1009,7 +949,7 @@
\PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
}{%
% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \textsf{nomencl}}%^^A
+% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \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:
@@ -1031,8 +971,8 @@
\PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
}{%
% \end{macrocode}
-% \changes{v3.25}{2019/01/23}{emergency patch added}%^^A
-% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}%^^A
+% \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}
@@ -1062,14 +1002,14 @@
}
%</nomencl&body>
% \end{macrocode}
-% \end{macro}%^^A \thenomenclature
+% \end{command}^^A \thenomenclature
%
% \begin{macro}{\scr@hack@nomencl@head}
-% \changes{v3.23}{2017/03/31}{Überschrift für \texttt{thenomenclature} unter
-% Verwendung von \textsf{tocbasic}}%^^A
-% \changes{v3.31}{2020/07/08}{internal \cs{list@fname} eliminated}%^^A
-% Im Gegensatz zu Gleitumgebungen benötigen wir hier keine Gruppe, weil
-% \texttt{thenomenclature} bereits die Gruppe bereitstellt.
+% \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}{%
@@ -1079,20 +1019,19 @@
}
%</nomencl&body>
% \end{macrocode}
-% Es ist ggf. noch zu beachten, dass von den ganzen Haken, die
-% \textsf{tocbasic} bereitstellt, für dieses Verzeichnis natürlich nur die
-% Überschriftenhaken zum Einsatz kommen. Verzeichnishaken können zwar
-% definiert werden, kommen aber nie zur Anwendung.
-% \end{macro}%^^A \scr@hack@nomencl@head
+% \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}{Reaktion auf \cs{if@intoc}}
-% Natürlich muss jetzt noch auf \textsf{nomencl}'s Option \texttt{intoc}
-% reagiert werden, also entsprechend der Option das \textsf{tocbasic}
-% Feature \texttt{totoc} passend gesetzt werden. Etwaige Änderungen des
-% Features sind also erst nach dem Laden von \textsf{nomencl} und
-% \textsf{scrhack} möglich. Spätere Änderungen von \cs{if@intoc} werden
-% außerdem nicht berücksichtigt.
+% \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
@@ -1103,19 +1042,18 @@
% \end{macro}
%
%
-% \subsection{Der \textsf{setspace}-Hack}
+% \subsection{The \pkg*{setspace} hack}
%
-% Das \textsf{setspace}-Paket verwendet \cs{@ptsize} auf ungünstige Art, indem
-% es davon ausgeht, dass es immer eine ganze Zahl enthält. Das ist aber bei
-% \KOMAScript{} keineswegs zwingend. Außerdem ist der Wert für \texttt{11pt}
-% falsch, weil \LaTeX{} in diesem Fall tatsächlich eine 10,95\,pt-Schrift mit
-% einem Zeilenabstand von 13,6\,pt einstellt. Damit wäre der korrekte Wert für
-% \cs{onehalfspacing} beispielsweise:
+% 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 \]
-% Tatsächlich stellt \textsf{setspace} aber einen Wert von 1,213 ein, was
-% einer effektiven Schriftgröße von 11\,pt entsprechen würde. Ebenso stellt es
-% den aktuellen Abstand bei \cs{onehalfspacing} nicht relativ zur aktuellen
-% Schriftgröße ein, sondern zur Grundschriftgröße. Damit erhält man bei
+% 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}
@@ -1126,7 +1064,7 @@
% baselineskip: \the\baselineskip
% \end{document}
% \end{verbatim}
-% einen anderen Abstand als bei
+% results in another \len{baselineskip} than:
% \begin{verbatim}
% \documentclass[11pt]{article}
% \usepackage{setspace}
@@ -1137,15 +1075,14 @@
% baselineskip: \the\baselineskip
% \end{document}
% \end{verbatim}
-% obwohl beide Male dieselbe Schriftgröße verwendet wird. Streng genommen
-% müsste also bei jeder Änderung der Schriftgröße der Wert Abstand angepasst
-% werden. So weit geht dieser Hack nicht. Stattdessen wird der Wert abhängig
-% von der tatsächlichen Schriftgröße und dem tatsächlichen Basisabstand beim
-% Aufruf der Anweisungen eingestellt. Das ergibt immerhin in den obigen
-% Beispielen gleiche Ergebnisse.
+% 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}{Neu}%^^A
+% \changes{v3.17}{2015/04/16}{added}
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{setspace}{@scrhack@setspace}
@@ -1164,10 +1101,10 @@
% \end{option}
%
%
-% \begin{macro}{\onehalfspacing}
-% \changes{v3.17}{2015/04/16}{Neu}%^^A
-% Ãœber diese Anweisung wird der eineinhalbzeilige Satz eingestellt. Ein auf
-% drei Nachkommastellen genauer Wert erscheint mir ausreichend genau.
+% \begin{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}{%
@@ -1193,11 +1130,11 @@
Maybe you are using a unsupported setpace version}%
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\doublespacing}
-% \changes{v3.17}{2015/04/16}{Neu}%^^A
-% Ãœber diese Anweisung wird der zweizeilige Satz eingestellt. Ein auf
-% drei Nachkommastellen genauer Wert erscheint mir ausreichend genau.
+% \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{%
@@ -1223,28 +1160,26 @@
}
%</setspace&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Der \textsf{lscape}-Hack}
-% \changes{v3.18a}{2015/07/07}{Neuer \textsf{lscape}-Hack}%^^A
+% \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}.
%
-% Das \textsf{lscape}-Paket setzt innerhalb der
-% \texttt{landscape}-Umgebung die Länge \cs{textheight} auf den Wert
-% von \cs{textwidth} obwohl es auf der anderen Seite \cs{textwidth}
-% nicht auf den Wert von \cs{textheight} setzt. Das ist inkonsequent. Da
-% David~Carlisle außerdem angibt, dass \cs{textwidth} nicht verändert wird,
-% weil das zu Problemen führen konnte, ist es unverständlich, dass
-% \cs{textheight} verändert wird, obwohl das ebenfalls zu Problemen führen
-% kann, beispielsweise für \textsf{showframe} oder \textsf{scrpage}. Daher
-% verändere ich die Definition so, dass auch \cs{textheight} unverändert
-% bleibt. Dabei muss allerdings auch \textsf{pdflscape} berücksichtigt
-% werden. Das ist am einfachsten mit \textsf{xpatch}.
%
% \begin{option}{lscape}
-% \changes{v3.18a}{2015/07/07}{Neue Option für neuen Hack}%^^A
-% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
-% geladen}%^^A
+% \changes{v3.18a}{2015/07/07}{added}
+% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
% \begin{macrocode}
%<*package&option>
\RequirePackage{xpatch}%
@@ -1264,25 +1199,25 @@
% \end{macrocode}
% \end{option}
%
-% \begin{macro}{\landscape}
-% \changes{v3.18a}{2015/07/07}{Neu}%^^A
-% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
-% geladen}%^^A
-% Ãœber diese Anweisung wird die \texttt{landscape}-Umgebung von
-% \textsf{lscape} gestartet. Genau diese muss gepatcht werden. Dafür wird das
-% Paket \textsf{xpatch} benötigt. Da der Patch nur geladen wird, wenn die
-% Option dafür gesetzt ist, kann die Option daher nur ein- und ausgeschaltet
-% werden, wenn sie bis zum Laden des Pakets aktiviert wurde.
+% \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}
-% \changes{v3.18a}{2015/08/11}{Patchen von \cs{@outputpage}}%^^A
-% Es gibt allerdings in der Tat eine Stelle, an der ein verändertet Wert von
-% \cs{textheight} benötigt wird. Das ist wenn innerhalb von \cs{@outputpage}
-% der Wert von \cs{@colht} reinitialisiert wird. Also wird das entsprechend
-% auch noch hinein gepatcht.
+% \begin{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
@@ -1299,17 +1234,17 @@
\@scrhack@lscapefalse
}
% \end{macrocode}
-% \begin{Length}{\scrh@LT@textheight}
-% \changes{v3.18a}{2015/08/11}{neue Länge (intern)}%^^A
+% \begin{ilength}{\scrh@LT@textheight}
+% \changes{v3.18a}{2015/08/11}{new}
% \begin{macrocode}
\newlength{\scrh@LT@textheight}
%</lscape&body>
% \end{macrocode}
-% \end{Length}%^^A \scrh@LT@textheight
-% \end{macro}%^^A \landscape
+% \end{ilength}^^A \scrh@LT@textheight
+% \end{macro}^^A \@outputpage
+% \end{command}^^A \landscape
%
%
-% \selectlanguage{english}
% \subsection{The standard classes sections hack}
% \label{sec:standardsections}
% The \emph{standard classes sections hack} differs from each other
@@ -1337,15 +1272,11 @@
}
%</package&body>
% \end{macrocode}
-% \end{option}%^^A standardsections
-%
-% \begin{macro}{\part}
-% \begin{macro}{\chapter}
-% \begin{macro}{\section}
-% \begin{macro}{\subsection}
-% \begin{macro}{\subsubsection}
-% \begin{macro}{\paragraph}
-% \begin{macro}{\subparagraph}
+% \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
@@ -1379,7 +1310,8 @@
}{}
\scr@ifundefinedorrelax{chapter}{%
% \end{macrocode}
-% It seems to be an article class, so we use the code from \textsf{article}.
+% 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}}{}%
@@ -1737,13 +1669,7 @@
}%
}% End of the derived code.
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\@startsection}
% \KOMAScript{} classes redefine this internal \LaTeX{} kernel macro. In this
@@ -1762,11 +1688,9 @@
\fi
}
% \end{macrocode}
-% \end{macro}%^^A \@startsection
+% \end{macro}^^A \@startsection
%
-% \begin{macro}{\@sect}
-% \begin{macro}{\@ssect}
-% \begin{macro}{\@xsect}
+% \begin{macro}{\@sect,\@ssect,\@xsect}
% All these should be resetted to their original definitions stored in
% \cs{scr@latex@\dots}.
% \begin{macrocode}
@@ -1798,18 +1722,12 @@
\fi
}
% \end{macrocode}
-% \end{macro}%^^A \@xsect
-% \end{macro}%^^A \@ssect
-% \end{macro}%^^A \@sect
-%
-% \begin{macro}{\DeclareSectionCommand}
-% \begin{macro}{\RedeclareSectionCommand}
-% \begin{macro}{\DeclareNewSectionCommand}
-% \begin{macro}{\ProvideSectionCommand}
-% \begin{macro}{\DeclareSectionCommands}
-% \begin{macro}{\RedeclareSectionCommands}
-% \begin{macro}{\DeclareNewSectionCommands}
-% \begin{macro}{\ProvideSectionCommands}
+% \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
@@ -1831,25 +1749,17 @@
\let\ProvideSectionCommands\undefined
}
% \end{macrocode}
-% \begin{macro}{\scr@chapter@before@hyperref@patch}
-% \begin{macro}{\scr@chapter@after@hyperref@patch}
-% Now, definitions without respecting \textsf{hyperref} are used, so
-% \textsf{hyperref} should again be able to patch them. So the hack should
+% \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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}%^^A \DeclareSectionCommand
+% \end{command}
%
% \begin{macro}{\scr@osectarg}
% The \KOMAScript{} classes use this macro to store how to use the optional
@@ -1887,11 +1797,10 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@activate@xsection
-% \end{macro}%^^A \scr@osectarg
+% \end{macro}^^A \scr@activate@xsection
+% \end{macro}^^A \scr@osectarg
%
-% \begin{macro}{\partformat}
-% \begin{macro}{\chapterformat}
+% \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.
@@ -1911,14 +1820,10 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \chapterformat
-% \end{macro}%^^A \partformat
-%
-% \begin{macro}{\sectionformat}
-% \begin{macro}{\subsectionformat}
-% \begin{macro}{\subsubsectionformat}
-% \begin{macro}{\paragraphformat}
-% \begin{macro}{\subparagraphformat}
+% \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}
@@ -1963,17 +1868,11 @@
\renewcommand*{\subparagraphformat}{\thesubparagraph\quad}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\partlineswithprefixformat}
-% \begin{macro}{\chapterlineswithprefixformat}
-% \begin{macro}{\chapterlinesformat}
-% \begin{macro}{\sectionlinesformat}
-% \begin{macro}{\sectioncatchphraseformat}
+% \begin{command}{\partlineswithprefixformat,
+% \chapterlineswithprefixformat,\chapterlinesformat,
+% \sectionlinesformat,\sectioncatchphraseformat}
% These \KOMAScript{} commands are not used any longer.
% \begin{macrocode}
\scr@ifundefinedorrelax{partlineswithprefixformat}{}{%
@@ -1997,11 +1896,7 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \sectioncatchphraseformat
-% \end{macro}%^^A \sectionlinesformat
-% \end{macro}%^^A \chapterlinesformat
-% \end{macro}%^^A \chapterlineswithprefixformat
-% \end{macro}%^^A \partlineswithprefixformat
+% \end{command}^^A \partlineswithprefixformat …
%
% \begin{option}{headings}
% The \KOMAScript{} option does not make sense any longer. So it is
@@ -2016,10 +1911,10 @@
\KOMA@kav@removekey{.\KOMAClassFileName}{headings}%
}
% \end{macrocode}
-% \end{option}%^^A headings
+% \end{option}^^A headings
%
% \begin{macro}{\scr@class@titlesec@warning}
-% The warning about loading \textsf{titlesec} has to be changes, because we do
+% 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{%
@@ -2033,32 +1928,27 @@
}
%</standardsections&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@class@titlesec@warning
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \scr@class@titlesec@warning
%
-% \subsection{Optionen ausführen}
+% \subsection{Executing options}
%
-% Zum Schluss noch die Optionen ausführen. Im Paket wird diese Anweisung
-% allerdings vor den Anweisungen der Hacks und den Anweisungen aus dem
-% Abschnitt »Verwendete Anweisungen« stehen.
+% 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
-%
-% end of file `scrhack.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% mode: flyspell
-%%% coding: utf-8
-%%% ispell-local-dictionary: "en_GB"
-%%% TeX-master: t
-%%% End:
-
-% LocalWords: eineinhalbzeilige
+% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrjura.dtx b/macros/latex/contrib/koma-script/source/scrjura.dtx
index 9b9d1b3032..8fe4bc4532 100644
--- a/macros/latex/contrib/koma-script/source/scrjura.dtx
+++ b/macros/latex/contrib/koma-script/source/scrjura.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{1932}
% \iffalse meta-comment
% ======================================================================
% scrjura.dtx
-% Copyright (c) Markus Kohm, 2007-2019
+% Copyright (c) Markus Kohm, 2007-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,49 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% The KOMA-Script bundle consists of all files listed in manifest.txt.
-% This work `scrjura' consists of the files `scrjura.dtx' and
-% `scrlogo.dtx'.
-% ----------------------------------------------------------------------
-% scrjura.dtx
-% Copyright (c) Markus Kohm, 2007-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt
-% genannt sind.
-% Das Werk `scrjura' besteht aus den Dateien `scrjura.dtx' und
-% `scrlogo.dtx'.
% ======================================================================
-% \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^^A meta-comment
-%%% From File: $Id: scrjura.dtx 3390 2019-11-18 17:09:35Z kohm $
+%%% From File: $Id: scrjura.dtx 3773 2022-03-29 06:27:55Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -70,12 +28,13 @@
%<*dtx>
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-11-18 18:09:35 +0100 (Mon, 18 Nov 2019) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1962 $
+ \filerevision$Revision: 3773 $
\endgroup
-\def\LaTeXformat{LaTeX2e}
-\ifx\fmtname\LaTeXformat\def\MainBodyWork{%
+\expandafter\ifx\csname ProvidesFile\endcsname\relax
+\def\ProvidesFile#1[#2]{}
+\fi
\ProvidesFile{scrjura.dtx}[\filedate\space\filerevision\space
%</dtx>
%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
@@ -90,102 +49,94 @@
]
%</dtx|(package&identify)>
%<*dtx>
-\IfFileExists{scrdoc.cls}{%
- \documentclass[parskip=half-]{scrdoc}
-}{%
- \documentclass{ltxdoc}
-}
-\providecommand*{\DescribeOption}{\DescribeMacro}
-\providecommand*{\DescribeCounter}{\DescribeMacro}
-\usepackage[ngerman]{babel}
-\usepackage[T1]{fontenc}
-\usepackage{lmodern}
-\IfFileExists{scrjura.sty}{%
- \usepackage{scrjura}
-}{}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrjura.dtx}
-\DocInput{\filename}
-\end{document}
+\ifx\documentclass\undefined
%</dtx>
+%<*ins>
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2007}
+ \generate{\usepreamble\defaultpreamble
+ \file{scrjura.ins}{%
+ \from{scrjura.dtx}{ins}%
+ }%
+ \file{scrjura.sty}{%
+ \from{scrjura.dtx}{package,identify}%
+ \from{scrjura.dtx}{package,init}%
+ \from{scrjura.dtx}{package,options}%
+ \from{scrjura.dtx}{package,postoptions}%
+ \from{scrjura.dtx}{package,body}%
+ \from{scrjura.dtx}{package,final}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+ }%
+ \@@input scrstrop.inc
+%</ins>
%<*dtx>
-}\else\let\MainBodyWork\relax\fi
-
-\MainBodyWork
-
-\def\batchfile{scrjura.dtx}
+\else
+ \let\endbatchfile\relax
+\fi
+%</dtx>
+%<*ins>
+\endbatchfile
+%</ins>
+%<*dtx>
+\documentclass{koma-script-source-doc}
+\usepackage[USenglish]{babel}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+ \DocInput{scrjura.dtx}
+\end{document}
%</dtx>
-%<ins>\def\batchfile{scrjura.ins}
-%<*dtx|ins>
-\input scrdocstrip.tex
-\@@input scrkernel-version.dtx
-\@@input scrstrip.inc
-\KOMAdefVariable{COPYRIGHTFROM}{2007}
-
-% ---------- File generation -------------------------------------------
-
-\generate{\usepreamble\defaultpreamble
- \file{scrjura.ins}{%
- \from{scrjura.dtx}{ins}%
- }%
- \file{scrjura.sty}{%
- \from{scrjura.dtx}{package,identify}%
- \from{scrjura.dtx}{package,init}%
- \from{scrjura.dtx}{package,options}%
- \from{scrjura.dtx}{package,postoptions}%
- \from{scrjura.dtx}{package,body}%
- \from{scrjura.dtx}{package,final}%
- \from{scrlogo.dtx}{logo}%
- }%
-}%
-
-% ---------- end of docstrip process -----------------------------------
-
-\@@input scrstrop.inc
-
-\let\byebye\endinput
-\ifToplevel{\expandafter\let\expandafter\byebye\csname bye\endcsname}
-\byebye
-
-%</dtx|ins>
% \fi
%
-% \title{\KOMAScript{} \partname\ \texttt{\filename}%
-% \thanks{Diese Datei ist Version \fileversion\ von \texttt{\filename}.}}
-% \date{\filedate}
-% \author{Markus Kohm\thanks{Paketautor, mailto:komascript(at)gmx.info}\and
-% Dr.\,Alexander
-% Willand\thanks{Autor der Anleitung, mailto:alexander.willand(klammeraffe)t-online.de}}
-% \begin{document}
+% \changes{v3.36}{2022/01/25}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+%
+% \GetFileInfo{scrjura.dtx}
+% \title{\KOMAScript{} in the Law Office\\
+% with Package \pkg*{scrjura}}
+% \date{Version \fileversion{} of \filedate}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
% \maketitle
% \begin{abstract}
-% Das scrjura-Paket ist für die Kautelarjurisprudenz gedacht. Es soll für
-% Anwälte und Notare eine flexible Hilfe bei der Abfassung von Verträgen,
-% Satzungen und juristischen Kommentaren bieten. Es ist in Zusammenarbeit
-% mit Dr.\,Alexander Willand entstanden, bzw. noch immer in Entstehung
-% begriffen.
+% The \pkg*{scrjura} package is intended for cautelar jurisprudence. It is
+% intended to provide flexible help for lawyers and notaries in drafting
+% contracts, statutes and legal commentaries. It has been developed in
+% cooperation with Dr.\,Alexander Willand, and is still in the process of
+% development.
% \end{abstract}
%
+% \tableofcontents
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \section{User Manual}
%
-% \section{Implementierung}
+% You can find the user manual of \pkg*{scrjura} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
%
-% \iffalse
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
%<*package>
-% \fi
+% \end{macrocode}
+%
+% \changes{v0.7b}{2014/11/11}{General renaming of ``Paragraph'' into
+% ``Clause''}
%
-% \changes{v0.7b}{2014/11/11}{Generelle Umbenennung von "`Paragraph"' in
-% "`Clause"' für alle Befehle, Zähler und Optionen}%^^A
+% \subsection{Cooperation with \pkg*{hyperref}}
%
+% If \pkg{hyperref} has already loaded before \pkg*{scrjura} the package cannot
+% work correctly. So we throw an error. Maybe it would be a good idea to make
+% this error fatal. But currently it is only an error.
% \begin{macrocode}
%<*init>
\@ifpackageloaded{hyperref}{%
\PackageError{scrjura}{Package hyperref already loaded}{%
- If you want to use package scrjura with package hyperref, you have to
- use\MessageBreak
- package scrjura before package hyperref.\MessageBreak
+ If you want to use package scrjura with package hyperref, you have
+ to\MessageBreak
+ load package scrjura before package hyperref.\MessageBreak
To solve the problem, you just should move the loading of package
hyperref\MessageBreak
behind the loading of package scrjura.}%
@@ -193,50 +144,68 @@
%</init>
% \end{macrocode}
%
-% Es wird das Paket \textsf{scrkbase} benötigt, weil alles weitere darauf
-% aufbaut.
+% \subsection{Prerequisites}
+%
+% We need package \pkg*{scrkbase}. We could load this also together with
+% \pkg*{tocbasic}, which is loaded later. But loading it on its own, we can
+% require a minimum version.
% \begin{macrocode}
%<*init>
\RequirePackage{scrkbase}[2013/03/26]
%</init>
% \end{macrocode}
%
-% Außerdem wird \textsf{tocbasic} benötigt, weil einige wenige Befehle davon
-% verwendet werden.
+% And now, \pkg*{tocbasic}.
% \begin{macrocode}
%<*init>
\RequirePackage{tocbasic}
%</init>
% \end{macrocode}
%
+% \subsection{Options}
+%
% \begin{option}{contract}
-% Mit der Option |contract| wird das gesamte Dokument zu einem Vertrag. Man
-% darf dann keine der von diesem Paket bereit gestellten Umgebungen mehr
-% innerhalb des Dokuments verwenden! Realisiert wird dies, indem ganz am
-% Ende von |\begin{document}| noch |\contract| ausgeführt wird.
+% \begin{macro}{\if@documentcontract,
+% \@documentcontractfalse,\@documentcontracttrue}
+% \changes{v3.36}{2022/01/25}{switched to a \KOMAScript{} option}
+% Option \opt{contract} can be used to make the whole document to be a
+% contract. But in this case you are not allowed to reuse the \env{contract}
+% environment in the document. Now it is allowed to stop or restart the
+% contract. With older \LaTeX{} this is done by adding \cs{contract} to the
+% end of \cs{document}. With an up to date \LaTeX{} we us a hook.
% \begin{macrocode}
%<*options>
-\DeclareOption{contract}{%
- \g@addto@macro\document\contract%
+\KOMA@ifkey{contract}{@documentcontract}
+\IfLTXAtLeastTF{2020/10/01}{%
+ \AddToHook{begindocument/end}{%
+ \RelaxFamilyKey[.scrjura.sty]{KOMA}{contract}%
+ \if@documentcontract\expandafter\contract\fi
+ }%
+}{%
+ \g@addto@macro\document{%
+ \RelaxFamilyKey[.scrjura.sty]{KOMA}{contract}%
+ \if@documentcontract\expandafter\contract\fi
+ }%
}
%</options>
% \end{macrocode}
+% \end{macro}
% \end{option}
%
% \begin{option}{juratotoc}
-% Mit dieser Option wird die Verzeichnisebene für Inhaltsverzeichniseinträge
-% auf einen gewünschten Wert oder 2 oder 10000 gesetzt.
-% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}%^^A
+% Allow to set the toc level of the entries. Value \optvalue{true} is the same
+% like \optvalue{2}, value \optvalue{false} is the same like \cs{maxdimen}.
+% \changes{v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{v0.9a}{2015/03/09}{internal value storage}
% \begin{macro}{\if@juratotoc}
-% \changes{v0.6}{2011/09/29}{Schalter durch Zähler überflüssig}
-% \begin{Counter}{juratoclevel}
-% \changes{v0.6}{2011/09/29}{Zählerdefinition verschoben}%^^A
-% \changes{v3.27}{2019/02/25}{Zähler entfernt}%^^A
+% \changes{v0.6}{2011/09/29}{replaced by counter}
+% \begin{counter}{juratoclevel}
+% \changes{v0.6}{2011/09/29}{definition moved}
+% \changes{v3.27}{2019/02/25}{removed}
% \begin{macro}{\toclevel@cpar}
-% \changes{v0.7}{2013/06/09}{neue für \textsf{hyperref}}%^^A
-% \changes{v3.27}{2019/02/25}{wird von \textsf{tocbasic} erledigt}%^^A
+% \changes{v0.7}{2013/06/09}{new, because of \pkg{hyperref}}
+% \changes{v3.27}{2019/02/25}{handled by \pkg*{tocbasic}}
% \begin{macrocode}
%<*options>
\KOMA@key{juratotoc}[true]{%
@@ -256,30 +225,19 @@
%</options>
% \end{macrocode}
% \end{macro}
-% \end{Counter}
+% \end{counter}
% \end{macro}
% \end{option}
%
-% \begin{option}{juratocnumberwidth}
-% \changes{v0.6}{2011/09/29}{neu}%^^A
-% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}%^^A
-% \begin{option}{juratocindent}
-% \changes{v0.6}{2011/09/29}{neu}%^^A
-% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}%^^A
-% \begin{macro}{\cpar@numberwidth}
-% \changes{v0.6}{2011/09/29}{neu (intern)}%^^A
-% \changes{v3.27}{2019/02/25}{ersetzt durch Verwendung von
-% \cs{DeclareTOCStyleEntry}}%^^A
-% \begin{macro}{\cpar@indent}
-% \changes{v0.6}{2011/09/29}{neu (intern)}
-% \changes{v3.27}{2019/02/25}{ersetzt durch Verwendung von
-% \cs{DeclareTOCStyleEntry}}%^^A
-% Der Einzug und die Breite der Nummer für Inhaltsverzeichniseinträge kann
-% über diese beiden Optionen bestimmt werden.
+% \begin{option}{juratocnumberwidth,juratocindent}
+% \changes{v0.6}{2011/09/29}{new}
+% \changes{v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{v0.9a}{2015/03/09}{internal value storage}
+% \begin{ilength}{\cpar@numberwidth,\cpar@indent}
+% \changes{v0.6}{2011/09/29}{new}
+% \changes{v3.27}{2019/02/25}{replaced by usage of \cs{DeclareTOCStyleEntry}}
+% Indent and number width of the toc entries.
% \begin{macrocode}
%<*options>
\KOMA@key{juratocnumberwidth}{%
@@ -296,18 +254,16 @@
\KOMA@kav@add{.scrjura.sty}{juratocindent}{1.5em}%
%</options>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{ilength}
% \end{option}
%
% \begin{option}{juratitlepagebreak}
-% \changes{v0.5b}{2010/04/05}{neue Option}
-% Mit dieser Option wird der Schalter |\if@juratitlepagebreak| auf |\iftrue|
-% gesetzt.
-% \begin{macro}{\if@juratitlepagebreak}
-% Mit diesem Schalter wiederum wird erreicht, dass in den Ãœberschriften von
-% Paragraphen ein Seitenumbruch erlaubt wird.
+% \changes{v0.5b}{2010/04/05}{new}
+% The options sets the boolean \cs{if@juratitlepagebreak}.
+% \begin{macro}{\if@juratitlepagebreak,
+% \@juratitlepagebreaktrue,\@juratitlepagebreakfalse}
+% If the boolean is \cs{iftrue} page breaks inside clause headings are
+% allowed (which is not recommended).
% \begin{macrocode}
%<*options>
\KOMA@ifkey{juratitlepagebreak}{@juratitlepagebreak}
@@ -317,14 +273,13 @@
% \end{option}
%
% \begin{option}{parnumber}
-% \changes{v0.6}{2011/09/29}{neue Option}%^^A
-% \changes{v0.6a}{2012/10/15}{Meldung bei falschen Werten korrigiert}%^^A
-% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Die (automatische) Absatznummerierung lässt sich nun auch per Option ein-
-% und ausschalten.
+% \changes{v0.6}{2011/09/29}{new}
+% \changes{v0.6a}{2012/10/15}{value mistake message changed}
+% \changes{v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{v0.9a}{2015/03/09}{internal value storage}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
+% The options switches the (automatic) paragraph numbering.
% \begin{macrocode}
%<*options>
\newif\ifparnumber
@@ -354,21 +309,19 @@
% \end{macrocode}
% \end{option}
%
-% \begin{option}{clausemark}
-% \changes{v0.9h}{2016/04/11}{\texttt{paragraphmark} umbenannt in
-% \texttt{clausemark}}%^^A
-% \begin{option}{paragraphmark}
-% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}%^^A
-% \begin{option}{markright}
-% \begin{option}{markboth}
-% \begin{macro}{\Clausemark}
-% \changes{v0.5e}{2011/08/31}{Beachtung von \cs{MakeMarkcase}}
-% Mit diesen Optionen wird |\Clausemark| so umdefiniert, dass es entweder
-% ein |\markright| oder ein |\markboth| ausführt. Im Gegensatz zu
-% |\chaptermark| etc. erwartet |\Clausemark| neben dem Titel auch noch
-% die zu verwendende Nummer (das könnte bei Bedarf noch geändert werden!)
+% \begin{option}{paragraphmark,clausemark}
+% \changes{v0.9h}{2016/04/11}{\opt{paragraphmark} renamed to \opt{clausemark}}
+% \changes{v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{v0.9a}{2015/03/09}{internal value storage}
+% \begin{option}{markright,markboth}
+% \changes{v0.7}{2013/11/04}{deprecated}
+% \begin{command}{\Clausemark}
+% \changes{v0.5e}{2011/08/31}{support for \cs{MakeMarkcase}}
+% The options are used to activate either \cs{markright} or \cs{markboth} for
+% clauses. \cs{Clausemark} expects not only the title but also the
+% number. So it differs from, e.g., \cs{chaptermark}, which uses the counter
+% automatically. But maybe I will change this some time.
% \begin{macrocode}
%<*options>
\newcommand*{\Clausemark}[1]{}
@@ -431,36 +384,30 @@
}
%</options>
% \end{macrocode}
-% \end{macro}
-% \end{option}
-% \end{option}
+% \end{command}
% \end{option}
% \end{option}
%
% \begin{option}{ref}
-% \changes{v0.5d}{2010/06/07}{neue Einstellungen \texttt{nopar},
-% \texttt{nosentence}, \texttt{OnlyParagraph}}%^^A
-% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}%^^A
-% \begin{option}{parcitename}
-% \begin{option}{sentencecitename}
-% Die Form, in der Absätze und Sätze referenziert werden. Es gibt eine lange,
-% eine abgekürzte und eine nummerische Form.
-%
-% \begin{macro}{\parcite@fromat}
-% \begin{macro}{\sentencecite@fromat}
-% In der Voreinstellung wird das lange Format verwendet. Es gilt:
-% 0 = lang, 1 = kurz, 2 = numerisch, -1 = gar nicht
+% \changes{v0.5d}{2010/06/07}{new values \optvalue{nopar},
+% \optvalue{nosentence}, \optvalue{OnlyParagraph}}
+% \changes{v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{v0.9a}{2015/03/09}{internal value storage}
+% \begin{option}{parcitename,sentencecitename}
+% \changes{v0.5d}{2010/06/07}{deprecated}
+% The formatting of the references of paragraphs and sentences. There are a
+% long a short and a numeric form.
+% \begin{macro}{\parcite@format,\sentencecite@format}
+% Default is the long form. Corresponding values of the two helper macros are:
+% 0 = long, 1 = short, 2 = numerical, -1 = nothing.
% \begin{macrocode}
%<*options>
\newcommand*{\parcite@format}{0}
\newcommand*{\sentencecite@format}{0}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-%
-% Per Option kann die Voreinstellung verändert werden.
+% The options can be used to change the default.
% \begin{macrocode}
\KOMA@key{ref}{%
\begingroup
@@ -549,32 +496,22 @@
% \end{macrocode}
% \end{option}
% \end{option}
-% \end{option}
%
-% Optionen ausführen.
+% Execute the options.
% \begin{macrocode}
%<*postoptions>
\KOMAProcessOptions\relax
%</postoptions>
% \end{macrocode}
%
-% \begin{macro}{\Paragraph}
-% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
-% melden}%^^A
-% \begin{macro}{\SubParagraph}
-% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
-% melden}%^^A
-% \begin{macro}{\refParagraph}
-% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
-% melden}%^^A
-% \begin{macro}{\refParagraphN}
-% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
-% melden}%^^A
-% \begin{macro}{\DeprecatedParagraph}
-% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
-% melden}%^^A
-% \begin{macro}{\ParagraphCompatibilityHacks}
-% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen verbleiben}%^^A
+% \subsection{Deprecated paragraph commands}
+%
+% All these commands are deprecated and now generate error messages instead of
+% code.
+%
+% \begin{command}{\Paragraph,\SubParagraph,\refParagraph,\refParagraphN,
+% \DeprecatedParagraph,\ParagraphCompatibilityHacks}
+% \changes{1.0}{2014/11/22}{throw error for deprecated commands but only once}
% \begin{macrocode}
%<*body>
\providecommand*{\DeprecatedParagraph}{%
@@ -626,18 +563,16 @@
\providecommand*{\refParagraphN}{\DeprecatedParagraph\refParagraphN}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \ParagraphCompatibilityHacks
-% \end{macro}%^^A \DeprecatedParagraph
-% \end{macro}%^^A \refParagraphN
-% \end{macro}%^^A \refParagraph
-% \end{macro}%^^A \SubParagraph
-% \end{macro}%^^A \Paragraph
+% \end{command}
+%
+%
+% \subsection{Contracts, clauses, paragraphs and sentences}
+%
%
% \begin{macro}{\scrjura@env@type}
-% \changes{v0.5d}{2010/04/28}{neu (intern)}%^^A
-% \changes{v0.7b}{2014/11/03}{\cs{jura@env@type} umbenannt}%^^A
-% Dieses Makro wird in Abhängigkeit der gerade aktiven
-% \textsf{scrjura}-Umgebung definiert.
+% \changes{v0.5d}{2010/04/28}{new}
+% \changes{v0.7b}{2014/11/03}{renamed}
+% This macro shows the currently active \pkg*{scrjura} environment.
% \begin{macrocode}
%<*body>
\newcommand*{\scrjura@env@type}{}
@@ -645,15 +580,18 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\ellipsispar}
-% \changes{v0.7}{2013/05/02}{neu}%^^A
-% \changes{v0.7b}{2014/11/03}{\cs{thecontractAbsoluteClause}
-% flexibilisiert}%^^A
-% \begin{macro}{\parellipsis}
-% \changes{v0.7}{2013/05/02}{neu}%^^A
-% \changes{v0.9g}{2016/03/25}{in die \texttt{aux}-Datei nur bei
-% \cs{if@filesw} schreiben}%^^A
-% Paragraphen auslassen aber mit zählen.
+%
+% \begin{command}{\ellipsispar}
+% \changes{v0.7}{2013/05/02}{new}
+% \changes{v0.7b}{2014/11/03}{\cs{thecontractAbsoluteClause} made more
+% flexible}
+% \changes{v0.9g}{2016/03/25}{write to \file{aux}-file only \cs{if@filesw}}
+% \begin{command}{\parellipsis}
+% \changes{v0.7}{2013/05/02}{new}
+% Count one or more paragraphs given by the optional argument but print
+% \cs{parellipsis} instead of a real paragraph. The default is either
+% \cs{dots} or \cs{textellipsis} if available.
+% \changes{v0.7}{2013/05/02}{new}
% \begin{macrocode}
%<*body>
\newcommand*{\ellipsispar}[1][1]{%
@@ -677,39 +615,34 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
% \begin{environment}{contract}
-% \begin{macro}{\contract}
-% \changes{v0.5d}{2010/04/28}{fehlende Fehlermeldung ergänzt}%^^A
-% \changes{v0.5d}{2010/04/28}{Umgebung definiert sich nicht mehr selbst
-% um}%^^A
-% \changes{v0.5d}{2010/04/28}{\cs{jura@env@type} wird gesetzt}%^^A
-% \begin{Counter}{contractClause}
-% \begin{macro}{\thecontractClause}
-% \changes{v0.9b}{2015/05/01}{muss unbedingt den Zähler \texttt{Clause}
-% statt \texttt{contractClause} verwenden}%^^A
+% \changes{v0.5d}{2010/04/28}{missing error message added}
+% \changes{v0.5d}{2010/04/28}{not self-redefining any more}
+% \changes{v0.5d}{2010/04/28}{defining \cs{jura@env@type}}
+% \changes{v3.36}{2022/01/25}{defining an environment (because of hooks)}
+% \begin{counter}{contractClause}
+% \begin{command}{\thecontractClause}
+% \changes{v0.9b}{2015/05/01}{must use counter \cnt{Clause} instead of
+% \cnt{contractClause}}
% \begin{macro}{\contract@Clauseformat}
-% \begin{macro}{\Clauseformat}
-% \changes{v0.6b}{2013/04/16}{\cs{paragraphformat} umdefiniert}%^^A
-% \begin{Counter}{contractSubClause}
-% \changes{v0.9b}{2015/05/01}{muss unbedingt den Zähler \texttt{SubClause}
-% statt \texttt{contractSubClause} verwenden}%^^A
-% \begin{macro}{\thecontractSubClause}
-% \begin{Counter}{contractAbsoluteClause}
-% \changes{v0.7}{2013/04/18}{neuer (interner) Zähler über alle Paragraphen,
-% um ggf. die Zählung neu beginnen zu können}%^^A
-% Die Umgebung \texttt{contract} wird als Anweisung \cs{contract}
-% definiert. Nichts desto trotz handelt es sich dabei um eine Umgebung und
-% sollte sie immer als Umgebung verwendet werden!
-% Die Umgebung kann nicht geschachtelt werden. Sie darf aber enden und dann
-% erneut verwendet werden. Die Paragraphen werden jedoch über alle Verträge
-% hinweg nummeriert. Das Ende eines Vertrags ist also genau genommen nur eine
-% Unterbrechung.
+% \begin{command}{\Clauseformat,\paragraphformat}
+% \changes{v0.6b}{2013/04/16}{redefinition of \cs{paragraphformat}}
+% \begin{counter}{contractSubClause}
+% \changes{v0.9b}{2015/05/01}{must use counter \cnt{SubClause} instead of
+% \cnt{contractSubClause}}
+% \begin{command}{\thecontractSubClause}
+% \begin{counter}{contractAbsoluteClause}
+% \changes{v0.7}{2013/04/18}{new (internal) counter for all clauses to make
+% it possible to reset the users clause counter}
+% It is not allowed to nest the \env{contract} environments, but you can end
+% them and start them new. But this would not end the contract and start a new
+% contract but only delay it for some other code.
% \begin{macrocode}
%<*body>
-\newcommand*{\contract}{%
+\newenvironment{contract}{%
\ifx\scrjura@env@type\@empty
\let\@doendpe\scrjura@doendpe
\let\Clause\contract@paragraph
@@ -727,7 +660,7 @@
a `\scrjura@env@type' environment or after loading\MessageBreak
package `scrjura' with option `\scrjura@env@type'!}%
\fi
-}
+}{}
\let\if@scrjura@skiphyperref\iftrue
\let\cl@Clause\@empty
\let\cl@SubClause\@empty
@@ -743,22 +676,21 @@
\newcounter{contractAbsoluteClause}
%</body>
% \end{macrocode}
-% \end{Counter}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
+% \end{counter}
+% \end{command}
+% \end{counter}
+% \end{command}
% \end{macro}
+% \end{command}
+% \end{counter}
% \end{environment}
%
-% \begin{macro}{\DeclareNewJuraEnvironment}
-% \changes{v0.9}{2014/11/12}{Neue Anweisung}
+% \begin{command}{\DeclareNewJuraEnvironment}
+% \changes{v0.9}{2014/11/12}{new}
% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Verwendet \cs{@defjuraenvironment} um eine neue juristische Umgebung zu
-% definieren.
+% \cs{kernel@ifnextchar}}
+% Using \cs{@defjuraenvironment} to define a new juristic environment. This
+% can be done only in document preamble.
% \begin{macrocode}
%<*body>
\newcommand*{\DeclareNewJuraEnvironment}[1]{%
@@ -781,14 +713,14 @@
\@onlypreamble\DeclareNewJuraEnvironment
% \end{macrocode}
% \begin{macro}{\@defjuraenvironment}
-% \changes{v0.9}{2014/11/04}{Neue (interne) Anweisung}%^^A
-% \changes{v3.25}{2017/12/08}{neue Option \texttt{ClauseFont}}%^^A
-% \changes{v3.25}{2017/12/08}{\cs{reserved@defjuraenvironment} wird wieder
-% \cs{relax}}%^^A
-% \changes{v3.25}{2017/12/08}{Umstellung von globalen auf lokale Optionen}%^^A
-% Diese Anweisung dient dazu, weitere Umgebungen einfach definieren zu können.
-% Dabei werden optional diverse Optionen unterstützt. Näheres ist der
-% Anleitung zu entnehmen.
+% \changes{v0.9}{2014/11/04}{new}
+% \changes{v3.25}{2017/12/08}{new command options \opt{ClauseFont}}
+% \changes{v3.25}{2017/12/08}{\cs{reserved@defjuraenvironment} set back to
+% \cs{relax}}
+% \changes{v3.25}{2017/12/08}{using local instead of global command options}
+% This command is used to define a new \pkg*{scrjura} environment like
+% \env{contract}. Several options are provided (see the user manual for
+% details).
% \begin{macrocode}
\DefineFamily{KOMAarg}
\DefineFamilyMember{KOMAarg}
@@ -796,7 +728,7 @@
\long\def\@defjuraenvironment#1[#2]#3#4{%
\let\reserved@defjuraenvironment\relax
% \end{macrocode}
-% Die Zähler definieren:
+% The counters:
% \begin{macrocode}
\newcounter{#1Clause}%
\newcounter{#1AbsoluteClause}%
@@ -832,14 +764,14 @@
\csname #1@Clauseformat\endcsname[1]{\Clauseformat{##1}}%
}{}%
% \end{macrocode}
-% \changes{v0.9c}{2015/05/13}{\cs{the\dots Clause} definiert}%^^A
-% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} statt
-% \cs{csname}\dots\cs{endcsname}}%^^A
+% \changes{v0.9c}{2015/05/13}{defining \cs{the\dots Clause}}
+% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} instead of
+% \cs{csname}\dots\cs{endcsname}}
% \begin{macrocode}
\expandafter\renewcommand\expandafter*\csname the#1Clause\endcsname{%
\protect\@nameuse{#1@Clauseformat}{\arabic{#1Clause}}}%
% \end{macrocode}
-% Umgebung:
+% Environment:
% \begin{macrocode}
\newenvironment{#1}{%
\par
@@ -875,10 +807,9 @@
\contract@everypar
}{}%
% \end{macrocode}
-% Jetzt wird noch ein Font-Alias für \texttt{Clause} gesetzt. Ist kein Font
-% und kein Alias-Font für die neue Umgebung definiert, so wird
-% \texttt{contract.Clause} verwendet.
-% \changes{v3.25}{2017/12/08}{Fontalias korrigiert}%^^A
+% Font alias for \fnt{Clause}. If neither a font not an alias is defined for
+% the new environment \fnt{contract.Clause} is used.
+% \changes{v3.25}{2017/12/08}{Font alias fixed}
% \begin{macrocode}
\IfExistskomafont{#1.Clause}{%
\IfIsAliaskomafont{#1.Clause}{%
@@ -904,28 +835,21 @@
%</body>
% \end{macrocode}
% \end{macro}%^^A \@dewjuraenvironment
-% \end{macro}%^^A \DeclareNewJuraEnvironment
+% \end{command}%^^A \DeclareNewJuraEnvironment
%
% \begin{macro}{\contract@paragraph}
-% Das ist das Macro, das in Verträgen |\Clause| zur Verfügung stellt.
-% Ein Vertrag besteht aus mehreren Paragraphen. Jeder Paragraph hat einige
-% optionale Elemente, die (auf dem Umweg über scrkbase) über das
-% keyval-Paket geregelt werden.
-% \begin{option}{title}
-% \begin{option}{head}
-% \begin{option}{entry}
-% \changes{v0.6}{2011/09/30}{Option veraltet}
-% \begin{option}{tocentry}
-% \changes{v0.6}{2011/09/30}{neue Option}
-% \begin{option}{nohead}
-% \begin{option}{noentry}
-% \changes{v0.6}{2011/09/30}{Option veraltet}
-% \begin{option}{notocentry}
-% \changes{v0.6}{2011/09/30}{neue Option}
-% Der Titel, der Kolumnentitel und der Verzeichniseintrag des
-% Paragraphen. Der Titel setzt dabei zunächst auch die anderen beiden. Man
-% kann die beiden aber auf leer setzen. Insbesondere aber kann man sie mit
-% den |no|-Optionen auch abschalten.
+% This is the \cs{Clause} used by contracts. A contract consists (usually) of
+% several clauses. Each clause has optional elements managed by
+% \meta{key}=\meta{value} pairs handled by \pkg*{scrkbase} and last but not
+% least by \pkg{keyval}.
+% \begin{option}{title,head,nohead}
+% \begin{option}{entry,noentry}
+% \changes{v0.6}{2011/09/30}{deprecated}
+% \begin{option}{tocentry,notocentry}
+% \changes{v0.6}{2011/09/30}{new}
+% Title, running head and toc entry of the clause. The title is the default
+% for running head and toc entry. But you can also use an empty value for
+% each of them or use the \opt{no\dots} options to switch them off.
% \begin{macrocode}
%<*body>
\define@key{contract}{title}{%
@@ -953,26 +877,18 @@
% \end{option}
% \end{option}
% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
% \begin{option}{number}
-% Die Nummer kann mit dieser Option frei gestaltet werden. Es sind jedoch
-% keine Paragraphen ohne Nummer erlaubt. Wird keine Nummer angegeben, so
-% wird die Nummer automatisch gesetzt.
+% The number can be changed manually. But clauses without numbers are not
+% allowed. So if you use an empty value, the number is automatically set.
% \begin{macrocode}
\define@key{contract}{number}{\def\contract@number{#1}}
% \end{macrocode}
% \end{option}
-% \begin{macro}{\contract@preskip}
-% \begin{macro}{\contract@postskip}
-% \begin{option}{preskip}
-% \begin{option}{postskip}
-% Ãœber diese beiden Optionen kann der Abstand vor und nach einem Pragraphen
-% gesetzt werden. Wird nichts angegeben, so wird die globale Voreinstellung
-% verwendet, die übrigens mit |\setkeys{contract}{...}| gesetzt werden
-% kann.
+% \begin{macro}{\contract@preskip,\contract@postskip}
+% \begin{option}{preskip,postskip}
+% The options are used to specify the distance before and after the
+% clause. The preset value of these options are the global settings done by
+% |\setkeys{contract}{…}|.
% \begin{macrocode}
\newcommand*{\contract@preskip}{2\baselineskip}
\newcommand*{\contract@postskip}{\baselineskip}
@@ -980,59 +896,54 @@
\define@key{contract}{postskip}{\def\contract@postskip{#1}}
% \end{macrocode}
% \end{option}
-% \end{option}
-% \end{macro}
% \end{macro}
% \begin{option}{dummy}
-% Ãœber dies Option wird der Schalter |\ifcontract@dummy| auf |\iftrue|
-% gesetzt.
+% The option switches the boolean \cs{ifcontract@dummy}.
% \begin{macro}{\ifcontract@dummy}
-% Ist der Schalter |\iftrue|, dann wird der Paragraph nicht gesetzt. Es ist
-% jedoch darauf zu achten, dass Absätze und Sätze des Paragraphen auf diese
-% Weise nicht entfernt werden können. Werden jedoch Paragraphen gelöscht, so
-% kann man damit das Loch in der Nummerierung erzeugen.
+% If the boolean is \cs{iftrue} the clause will not be printed. But note: you
+% cannot use this to remove the paragraphs or sentences of the clause. But you
+% can use this option to generate holes in the numbering without manually
+% manipulating the counters.
% \begin{macrocode}
\newif\ifcontract@dummy
\define@key{contract}{dummy}[true]{\csname contract@dummy#1\endcsname}
% \end{macrocode}
% \end{macro}
% \end{option}
+% \begin{fontelement}{contract.Clause}
% \begin{macro}{\contract@paragraph@font}
-% \changes{v3.25}{2017/12/08}{Es wird Element \texttt{Clause} statt
-% \texttt{contract.Clause} verwendet}%^^A
-% Eigentlich müsste die Anweisung \cs{contract@paragraph@format} heißen. Da
-% sie jedoch für irgendwelche Tricks verwendet wurde. will ich das ungern
-% ändern. Ebenso müsste die Anweisung eigentlich je nach Vertragsumgebung
-% neu definiert und dann jene Defintion verwendet werden.
+% \changes{v3.25}{2017/12/08}{using element \fnt{Clause} instead of
+% \fnt{contract.Clause}}
+% Correctly this macro should be named \cs{contract@paragraph@format}. But it
+% is already used by some users for ugly tricks. So I will not rename it to
+% avoid problems for existing documents. Additionally it would be better to
+% use a new macro per environment. However the same reason not to change this.
% \begin{macrocode}
\newkomafont{contract.Clause}{\sffamily\bfseries\large}
\newcommand*{\contract@paragraph@font}{\usekomafont{Clause}%
\@hangfrom}
% \end{macrocode}
% \end{macro}
-% \begin{Counter}{@AbsClause}
+% \end{fontelement}
+% \begin{counter}{@AbsClause}
% \begin{macro}{\theH@AbsClause}
-% \begin{macro}{\theHClause}
-% \begin{macro}{\theHSubClause}
+% \begin{command}{\theHClause,\theHSubClause}
% \begin{macrocode}
-% \textsf{hyperref}-Code, der noch nicht getestet ist!
+% Here we have some not good tested code for \pkg{hyperref}.
\newcounter{@AbsClause}
\newcommand*{\theH@AbsClause}{P-\arabic{@AbsClause}}
\newcommand*{\theHClause}{\theH@AbsClause}
\newcommand*{\theHSubClause}{\theH@AbsClause}
% \end{macrocode}
+% \end{command}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
-% Zunächst wird vorübergehend auf manuelle Absatznummern umgeschaltet, weil
-% natürlich innerhalb der Überschrift keine Nummer gesetzt werden
-% soll. Trotzdem werden generell die Absatznummern eingeschaltet. Dann werden
-% die Optionen initialisiert und ausgeführt.
-% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteClause} wird
-% erhöht}%^^A
-% \changes{v0.7b}{2014/11/03}{\texttt{contractAbsoluteClause}
-% flexibilisiert}%^^A
+% \end{counter}
+% For the headings we use manual paragraph numbering, because we don't want
+% any paragraph numbering inside the heading. After initializing the options
+% they are processed.
+% \changes{v0.7}{2013/04/18}{increase counter \cnt{contractAbsoluteClause}}
+% \changes{v0.7b}{2014/11/03}{more flexible
+% \cnt{\meta{environment}AbsoluteClause}}
% \begin{macrocode}
\newcommand*{\contract@paragraph}[1]{%
\stepcounter{\scrjura@env@type AbsoluteClause}%
@@ -1044,9 +955,9 @@
\contract@dummyfalse
\ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
% \end{macrocode}
-% Wenn es kein Blindparagraph ist, werden Vorbereitung für nach der
-% Überschrift getroffen und der vertikale Abstand eingefügt.
-% \changes{v0.6a}{2012/10/08}{fehlendes \cs{par} ergänzt}
+% Unless this is a dummy clause, the headings will be initialized and vertical
+% skips will be done.
+% \changes{v0.6a}{2012/10/08}{missing \cs{par} added}
% \begin{macrocode}
\ifcontract@dummy\else
\par
@@ -1054,13 +965,13 @@
\addvspace{\contract@preskip}%
\fi
% \end{macrocode}
-% Wenn die Nummer nicht manuell gesetzt wurde, wird die nächste Nummer
-% verwendet. Im anderen Fall muss die Nummer gesetzt und auch dafür gesorgt
-% werden, dass sowohl ein Label als auch hyperref diese Nummer verwenden.
-% \changes{v0.6b}{2013/04/16}{Verwendung von \cs{contract@Clauseformat}
-% auch bei manueller Nummerierung der Paragraphen.}%^^A
-% \changes{v0.9c}{2015/05/13}{\cs{thecontractClause} durch
-% umgebungsabhängiges Macro ersetzt.}%^^A
+% If there isn't a manual number, we use the next number. If there is a manual
+% number, this number is printed and we take care that labels and
+% \pkg{hyperref} also use the manual number.
+% \changes{v0.6b}{2013/04/16}{using \cs{contract@Clauseformat} for manual
+% numbers too}
+% \changes{v0.9c}{2015/05/13}{\cs{thecontractClause} replaced by
+% environment-dependent macro}
% \begin{macrocode}
\ifx\contract@number\relax
\let\p@Clause\@empty
@@ -1073,8 +984,8 @@
\cl@Clause
\endgroup
% \end{macrocode}
-% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} statt
-% \cs{csname}\dots\cs{endcsname}}%^^A
+% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} instead of
+% \cs{csname}\dots\cs{endcsname}}
% \begin{macrocode}
\protected@edef\theClause{%
\protect\@nameuse{\scrjura@env@type @Clauseformat}{\contract@number}%
@@ -1093,15 +1004,14 @@
\typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
\fi
% \end{macrocode}
-% Zwecks Vereinfachung wird ab hier so getan, als wäre es ein Unterabschnitt.
+% For simplification we use the code of clauses for sub-clauses.
% \begin{macrocode}
\let\theSubClause\theClause
% \end{macrocode}
-% Außer für Blindparagraphen wird dann die Überschrift gesetzt, die
-% Verzeichniseinträge vorgenommen und der Kolumnentitel angepasst.
-% \changes{v0.7}{2013/04/28}{Abstand nach der Nummer als Bestandteil der
-% Nummer setzen}%^^A
-% \changes{v0.9i}{2017/02/23}{Verwendung von \cs{ext@toc}}%^^A
+% Unless for dummy clauses, the heading is printed, the toc entry is done
+% and also the running head.
+% \changes{v0.7}{2013/04/28}{distance behind the number is part of the number}
+% \changes{v0.9i}{2017/02/23}{usage of \cs{ext@toc}}
% \begin{macrocode}
\ifcontract@dummy\else
\begingroup
@@ -1121,8 +1031,7 @@
\par
\endgroup\nobreak\vskip\contract@postskip
% \end{macrocode}
-% Zum Schluss wird noch dafür gesorgt, dass auch die Absätze korrekt
-% nummeriert werden können etc.
+% Last but not least paragraph numbering is initialized.
% \begin{macrocode}
\scrjura@afterheading
\fi
@@ -1204,9 +1113,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\AutoPar}
-% \begin{macro}{\ManualPar}
-% Automatische oder manuelle Absatznummern für alle Umgebungen aktivieren.
+% \begin{command}{\AutoPar,\ManualPar}
+% Switching between automatic or manual paragraph numbers for all
+% \pkg*{scrjura} environments.
% \begin{macrocode}
%<*body>
\newcommand*{\AutoPar}{%
@@ -1218,15 +1127,17 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\scrjura@afterheading}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@afterheading} umbenannt}%^^A
-% \changes{v0.7b}{2014/11/03}{benötigt kein Argument mehr}%^^A
-% \changes{v3.27}{2019/02/25}{\cs{CheckCommand} für \cs{@afterheading}}%^^A
-% Entspricht |\afterheading| mit Erweiterungen für automatischen
-% Absatznummern.
+% \begin{macro}{\scrjura@afterheading,\jura@afterheading}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@afterheading} renamed}
+% \changes{v0.7b}{2014/11/03}{no argument}
+% \changes{v3.27}{2019/02/25}{\cs{CheckCommand} for \cs{@afterheading}}
+% Similar to \cs{afterheading} but with automatic paragraph numbers.
+% \begin{description}
+% \item[ToDo:] Test if this can be done using \LaTeX{} hooks, depending on the
+% \LaTeX{} release.
+% \end{description}
% \begin{macrocode}
%<*body>
\CheckCommand*{\@afterheading}{%
@@ -1263,33 +1174,30 @@
\AutoPar
}
% \end{macrocode}
-% \begin{macro}{\scrjura@everypar}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@everypar} umbenannt}%^^A
-% Die Anweisung, die am Anfang von jedem Absatz auszuführen ist, um die
-% Nummer zu setzen. Außerhalb der Umgebungen ist das nichts.
+% \begin{macro}{\scrjura@everypar,\jura@everypar}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@everypar} renamed}
+% The macro to be used at the very beginning of every paragraph to add the
+% number. To be used only inside \pkg*{scrjura} environments, so empty outside.
% \begin{macrocode}
\newcommand*{\scrjura@everypar}{}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@doendpe}
-% Diese Anweisung wird von \LaTeX{} verwendet, um am Ende von Umgebungen die
-% kurz-, mittel- und langwirkenden Absatzaktionen zurückzusetzen. Damit hier
-% nicht die automatische Absatznummerierung abgeschaltet wird, wird sie neu
-% eingefügt.
+% \LaTeX{} used this macro, to reset all paragraph actions at the end of
+% environments. To avoid unwanted switching-off of the paragraph number it
+% will be reinitialized.
% \begin{macro}{\scrjura@doendpe}
% \begin{macro}{\IncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{wird temporär benötigt}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v0.9e}{2015/11/03}{used temporary}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
% \begin{macro}{\@gobble@IncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{wird temporär benötigt}%^^A
+% \changes{v0.9e}{2015/11/03}{used temporary}
% \begin{macro}{\EndIncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{wird temporär benötigt}%^^A
-% Seit \LaTeX{} 2015/01/01 ist \cs{@doendpe} abhängig von
-% \textsf{latexrelease} etwas anders definiert. Das wird hier
-% berücksichtigt. Damit das auch noch mit älteren Versionen von \LaTeX{}
-% funktioniert, ohne dass man extra \textsf{latexrelease} nachinstalliert,
-% wird hier ein wenig getrickst. Die Änderungen werden aber so temporär wie
-% möglich gehalten.
+% \changes{v0.9e}{2015/11/03}{used temporary}
+% From \LaTeX{} 2015/01/01 a different definition of \cs{@doendpe} is used. So
+% we also have to use different versions depending on the release. We do so
+% with some tricks. Maybe this should be replaced by usage of
+% \cs{IfLTXAtLeastTF} from already loaded \pkg*{scrbase}.
% \begin{macrocode}
\providecommand*{\IncludeInRelease}[3]{%
\PackageInfo{scrjura}{temporary definition of \string\IncludeInRelease}%
@@ -1355,17 +1263,16 @@
% \end{macro}%^^A \@gobble@IncludeInRelease
% \end{macro}%^^A \IncludeInRelease
% \end{macro}%^^A \scrjura@doendpe
-% \end{macro}%^^A \doendpe
+% \end{macro}%^^A \@doendpe
% \end{macro}%^^A \scrjura@everypar
%
+% \subsection{Entry to table of contents}
% \begin{macro}{\l@cpar}
-% Verzeichnis-Eintrag für einen Vertrags-Paragraphen.
-% \changes{v3.27}{2019/02/25}{Verwendung von \textsf{tocbasic}}%^^A
-% Da der Zähler \texttt{juratoclevel} bisher nicht dokumentiert war und auch
-% bisher syntaktisch falsche Werte zu Fehlermeldungen geführt haben, können
-% wir uns voll auf \textsf{tocbasic} stützen.
-% Die Definition muss in den init-Teil, damit die Optionen die Einstellungen
-% ändern können:
+% Toc entry of contract clauses.
+% \changes{v3.27}{2019/02/25}{usage of \pkg*{tocbasic}}
+% This is done using \pkg*{tocbasic}. The definition has to be part of the
+% initialization of the package, otherwise package options wouldn't be able to
+% change the setting.
% \begin{macrocode}
%<*init>
\DeclareTOCStyleEntry[%
@@ -1377,9 +1284,11 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\scrjura@separator}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@separator} umbenannt}%^^A
-% Wird verwendet, damit Leerzeichen am Anfang oder Ende entfernt werden können.
+% \subsection{Numbering of paragraphs and sentences}
+%
+% \begin{macro}{\scrjura@separator,\jura@separator}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@separator} renamed}
+% Used to make it possible to remove white spaces at the beginning or end.
% \begin{macrocode}
%<*body>
\DeclareRobustCommand*{\scrjura@separator}[1]{#1}
@@ -1387,17 +1296,16 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\scrjura@usetype}
-% \changes{v0.5d}{2010/04/28}{neu (intern)}%^^A
-% \changes{v0.7b}{2014/11/03}{\cs{jura@usetype} umbenannt}%^^A
-% In der Voreinstellung macht das erst einmal gar nichts, außer dass es robust
-% ist und \cs{jura@@usetype} aufruft.
-% \begin{macro}{\scrjura@@usetype}
-% \changes{v0.5d}{2010/04/28}{neu (intern)}%^^A
-% \changes{v0.7b}{2014/11/03}{\cs{jura@@usetype} umbenannt}%^^A
-% Das wiederum ist nicht robust und kann dadurch einfacher umdefiniert
-% werden. In der Voreinstellung macht das dann wirklich nichts, außer das
-% Argument zu fressen.
+% \begin{macro}{\scrjura@usetype,\jura@usetype}
+% \changes{v0.5d}{2010/04/28}{new}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@usetype} renamed}
+% By default it is robust but does only call \cs{scrjura@@usetype} with the
+% only argument.
+% \begin{macro}{\scrjura@@usetype,\jura@@usetype}
+% \changes{v0.5d}{2010/04/28}{new}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@@usetype} renamed}
+% This second command is not robust and can easily be redefined. But by
+% default it also does nothing but eating the argument.
% \begin{macrocode}
%<*body>
\DeclareRobustCommand*{\scrjura@usetype}[1]{\scrjura@@usetype{#1}}
@@ -1408,29 +1316,26 @@
% \end{macro}
%
% \begin{macro}{\contract@everypar}
-% |\scrjura@everpar| für Verträge.
-% \begin{macro}{\ifparnumber}
-% \changes{v0.6}{2011/09/29}{Definition des Schalters in die Definition der
-% Option verschoben}%^^A
-% \begin{Counter}{par}
-% \begin{macro}{\thepar}
-% \begin{macro}{\theHpar}
-% \begin{macro}{\parformat}
-% \changes{v0.7}{2013/06/07}{neues Font-Element \texttt{parnumber}}%^^A
-% \begin{macro}{\parformatseparation}
-% \changes{v0.9f}{2016/02/06}{neue Anweisung}%^^A
+% The \cs{scrjura@everpar} used by contracts.
+% \begin{macro}{\ifparnumber,\parnumbertrue,\parnumberfalse}
+% \changes{v0.6}{2011/09/29}{moved the definition into the definition of the
+% option}
+% \begin{counter}{par}
+% \begin{command}{\thepar,\theHpar}
+% \begin{command}{\parformat}
+% \changes{v0.7}{2013/06/07}{new font element \fnt{parnumber}}
+% \begin{command}{\parformatseparation}
+% \changes{v0.9f}{2016/02/06}{new}
% \begin{macro}{\p@par}
-% \changes{v0.5d}{2010/04/28}{\cs{jura@usetype} mit Argument
-% \cs{jura@env@type} eingefügt}%^^A
-% \begin{macro}{\withoutparnumber}
-% \changes{v3.25}{2017/12/19}{neu}%^^A
-% Der Schalter gibt an, ob überhaupt mit Absatznummern gearbeitet werden
-% soll. Sind Absatznummern deaktiviert, werden auch keine manuellen
-% Absatznummern gesetzt. Die Absätze werden dann auch nicht gezählt. Ansonsten
-% werden die Absätze mit |\thepar| nummeriert. Wichtig ist, dass der
-% Absatzzähler mit den Paragraphen und den Unterparagraphen zurückgesetzt
-% wird. Außerdem muss beim Zitieren als Elternobjekt der Paragraph mit
-% ausgegeben werden.
+% \changes{v0.5d}{2010/04/28}{added \cs{jura@usetype} with argument
+% \cs{jura@env@type}}
+% \begin{command}{\withoutparnumber}
+% \changes{v3.25}{2017/12/19}{new}
+% The boolean defines if paragraph numbers have to be used. If they are
+% deactivated also manual paragraph numbers are deactivated and the paragraphs
+% are not counted. Otherwise the paragraphs are numbered using \cs{thepar}. It
+% is important to reset the paragraph counter with every clause and
+% sub-clause. And for labels the parent object the clause has to be used.
% \begin{macrocode}
%<*body>
\newcounter{par}
@@ -1445,33 +1350,29 @@
\newcommand*{\withoutparnumber}{}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \changes{v0.5c}{2010/04/26}{erstes Argument von \cs{newmaxpar} und zweites
-% Argument von \cs{getmaxpar} ist \texttt{contract} nicht
-% \texttt{contractpars}}
-% \changes{v0.5c}{2010/04/26}{\cs{contract@Clauseformat} expandiert beim
-% Schreiben zu seinem Argument}
-% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteClause} wird
-% verwendet}
-% \changes{v0.7}{2013/05/23}{Satznummer bei manuell nummerierten Absätzen
-% auf 0 statt 1 initialisiert, weil \cs{Sentence} die Nummer als erstes
-% hochzählt.}
-% \changes{v0.7}{2013/05/23}{Absatznummer von \cs{thisparnumber} beachtet}
-% \changes{v0.7}{2013/06/06}{Im Fall von nicht rein nummerischen
-% Absatznummern die Absätze auf jeden Fall nummerieren}
-% \changes{v0.7b}{2014/11/03}{\texttt{contractAbsoluteClause}
-% flexibilisiert}%^^A
-% \changes{v0.9f}{2016/02/06}{\cs{nobreakspace} durch
-% \cs{parformatseparation} ersetzt}%^^A
-% \changes{v0.9g}{2016/03/25}{in die \texttt{aux}-Datei nur bei
-% \cs{if@filesw} schreiben}%^^A
+% \end{command}
+% \end{macro}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{counter}
+% \end{macro}
+% \changes{v0.5c}{2010/04/26}{first argument of \cs{newmaxpar} and second
+% argument of \cs{getmaxpar} is \meta{contract} not \meta{contractpars}}
+% \changes{v0.5c}{2010/04/26}{\cs{contract@Clauseformat} expands while writing
+% to its own argument}
+% \changes{v0.7}{2013/04/18}{using counter \cnt{contractAbsoluteClause}}
+% \changes{v0.7}{2013/05/23}{initializing sentence number for manually
+% numbered paragraphs to 0 instead of 1, because first action of
+% \cs{Sentence} is increasing the number}
+% \changes{v0.7}{2013/05/23}{recognize paragraph number of \cs{thisparnumber}}
+% \changes{v0.7}{2013/06/06}{if paragraph numbers are not completely numerical
+% always set the number}
+% \changes{v0.7b}{2014/11/03}{more flexible replacement of
+% \cnt{contractAbsoluteClause}}
+% \changes{v0.9f}{2016/02/06}{\cs{nobreakspace} replaced by
+% \cs{parformatseparation}}
+% \changes{v0.9g}{2016/03/25}{writing to \file{aux}-file \cs{if@filesw}}
% \begin{macrocode}
%<*body>
\newcommand*{\contract@everypar}{%
@@ -1528,14 +1429,12 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\thisparnumber}
-% \changes{v0.7}{2013/05/23}{neue Anweisung}
-% \begin{macro}{\scrjura@special@par}
-% \changes{v0.7}{2013/05/23}{neue Anweisung (intern)}
-% \begin{macro}{\scrjura@special@reset@par}
-% \changes{v0.7}{2013/05/23}{neue Anweisung (intern)}
-% Mit dieser Anweisung kann man eine Absatznummer manuell vergeben. Allerdings
-% muss die Nummer voll expandierbar sein!
+% \begin{command}{\thisparnumber}
+% \changes{v0.7}{2013/05/23}{new}
+% \begin{macro}{\scrjura@special@par,\scrjura@special@reset@par}
+% \changes{v0.7}{2013/05/23}{new}
+% You can use this for manual paragraph numbering. But the number has to be
+% fully expandable!
% \begin{macrocode}
%<*body>
\newcommand*{\thisparnumber}[1]{%
@@ -1547,16 +1446,16 @@
\let\scrjura@special@reset@par\relax
%</body>
% \end{macrocode}
-% \end{macro}%^^A \scrjura@special@reset@par
% \end{macro}%^^A \scrjura@special@par
-% \end{macro}%^^A\thisparnumber
+% \end{command}%^^A\thisparnumber
%
%
-% \begin{macro}{\refL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \subsection{Referencing}
+%
+% \begin{command}{\refL}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@L}
-% Das gleiche wie |\ref| aber zwingend mit der Langform.
+% Similar to \cs{ref} but always the long form.
% \begin{macrocode}
%<*body>
\newcommand*{\refL}{\kernel@ifstar {\ref@L*}{\ref@L{}}}
@@ -1569,13 +1468,12 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refS}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@S}
-% Das gleiche wie |\ref| aber zwingend mit der Kurzform.
+% Similar to \cs{ref} but always the short form.
% \begin{macrocode}
\newcommand*{\refS}{\kernel@ifstar {\ref@S*}{\ref@S{}}}
\newcommand*{\ref@S}[2]{%
@@ -1587,13 +1485,12 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@N}
-% Das gleiche wie |\ref| aber zwingend mit der numerischen Form.
+% Similar to \cs{ref} but always the numerical form.
% \begin{macrocode}
\newcommand*{\refN}{\kernel@ifstar {\ref@N*}{\ref@N{}}}
\newcommand*{\ref@N}[2]{%
@@ -1605,15 +1502,14 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refClause}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refClause}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@Clause}
-% Zitiert nur den Paragraphen eines Paragraphen, eines Absatzes oder eines
-% Satzes. Für mehr Kompatibilität mit hyperref gibt es mit hyperref auch eine
-% Sternform. Ohne hyperref produziert diese nur Unsinn.
+% Reference only the clause of a clause, paragraph or sentence. For better
+% compatibility with \pkg{hyperref} there is also a star version if
+% \pkg{hyperref} is used. Without \pkg{hyperref} the star version is nonsense.
% \begin{macrocode}
\newcommand*{\refClause}{%
\kernel@ifstar {\ref@Clause*}{\ref@Clause{}}
@@ -1624,7 +1520,7 @@
\else
\begingroup
% \end{macrocode}
-% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen.
+% Copy all parts of the reference but the first one to \cs{@tempb}.
% \begin{macrocode}
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\def
@@ -1634,14 +1530,14 @@
\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
% \end{macrocode}
-% Den ersten Teil der Referenz in |\@tempa| ablegen.
+% Copy the first part of the reference to \cs{@tempa}.
% \begin{macrocode}
\def\@tempc##1##2\@nil{##1}%
\let\scrjura@separator\@gobble
\protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
\csname r@#2\endcsname\noexpand\@nil}%
% \end{macrocode}
-% Den ersten Teil von |\@tempa| in |\@tempa| ablegen.
+% Copy the first part of \cs{@tempa} to \cs{@tempb}.
% \begin{macrocode}
\protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
\@tempa\@nil}%
@@ -1655,16 +1551,16 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refClauseN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refClauseN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@ClauseN}
-% Zitiert nur den Paragraphen eines Paragraphen, eines Absatzes oder eines
-% Satzes. Für mehr Kompatibilität mit hyperref gibt es mit hyperref auch eine
-% Sternform. Ohne hyperref produziert diese nur Unsinn.
-% \begin{macrocode}
+% Reference only the clause number of a clause, a paragraph or a sentence.
+% For improved compatibility with \pkg{hyperref} there is also a star version
+% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
+% nonsense.
+% \begin{macrocode}
\newcommand*{\refClauseN}{%
\kernel@ifstar {\ref@ClauseN*}{\ref@ClauseN{}}
}
@@ -1676,15 +1572,15 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refPar}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refPar}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@Par}
-% Zitiert nur den Absatz eines Absatzes oder eines Satzes. Für mehr
-% Kompatibilität mit hyperref gibt es mit hyperref auch eine Sternform. Ohne
-% hyperref produziert diese nur Unsinn.
+% References only the paragraph of a paragraph or sentence.
+% For improved compatibility with \pkg{hyperref} there is also a star version
+% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
+% nonsense.
% \begin{macrocode}
\newcommand*{\refPar}{%
\kernel@ifstar {\ref@Par*}{\ref@Par{}}
@@ -1695,7 +1591,7 @@
\else
\begingroup
% \end{macrocode}
-% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen.
+% Copy all parts of the reference but the first one to \cs{@tempb}.
% \begin{macrocode}
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\def
@@ -1705,14 +1601,14 @@
\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
% \end{macrocode}
-% Den ersten Teil der Referenz in |\@tempa| ablegen.
+% Copy the first part of the reference to \cs{@tempa}.
% \begin{macrocode}
\def\@tempc##1##2\@nil{##1}%
\let\scrjura@separator\@gobble
\protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
\csname r@#2\endcsname\noexpand\@nil}%
% \end{macrocode}
-% Den zweiten Teil von |\@tempa| in |\@tempa| ablegen.
+% Copy the second part of \cs{@tempa} to \cs{@tempa} ablegen.
% \begin{macrocode}
\def\@tempc##1##2##3\@nil{##2}%
\protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
@@ -1732,14 +1628,13 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refParL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refParL}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@ParX}
+% The same but long.
% \begin{macrocode}
-% Das Gleiche zwingend lang.
\newcommand*{\refParL}{%
\kernel@ifstar {\ref@ParX0*}{\ref@ParX0{}}
}
@@ -1752,27 +1647,25 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refParS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Das Gleiche zwingend kurz.
+% \begin{command}{\refParS}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% The same but short.
% \begin{macrocode}
\newcommand*{\refParS}{%
\kernel@ifstar {\ref@ParX1*}{\ref@ParX1{}}
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refParN}
+% \begin{command}{\refParN}
% \begin{macro}{\ref@ParN}
% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \cs{kernel@ifnextchar}}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@@ParN}
-% Das Gleiche zwingend nummerisch.
+% The same but numerical.
% \begin{macrocode}
\newcommand*{\refParN}{%
\kernel@ifstar {\ref@ParN2*}{\ref@ParN2{}}
@@ -1794,15 +1687,15 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refSentence}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refSentence}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@Sentence}
-% Zitiert nur den Satz eines Satzes. Für mehr
-% Kompatibilität mit hyperref gibt es mit hyperref auch eine Sternform. Ohne
-% hyperref produziert diese nur Unsinn.
+% Reference only the sentence of a sentence.
+% For improved compatibility with \pkg{hyperref} there is also a star version
+% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
+% nonsense.
% \begin{macrocode}
\newcommand*{\refSentence}{%
\kernel@ifstar {\ref@Sentence*}{\ref@Sentence{}}
@@ -1813,7 +1706,7 @@
\else
\begingroup
% \end{macrocode}
-% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen.
+% Copy all parts of the reference to \cs{@tempb}.
% \begin{macrocode}
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\def
@@ -1823,14 +1716,14 @@
\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
% \end{macrocode}
-% Den ersten Teil der Referenz in |\@tempa| ablegen.
+% Copy the first part of the reference to \cs{@tempa}.
% \begin{macrocode}
\def\@tempc##1##2\@nil{##1}%
\let\scrjura@separator\@gobble
\protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
\csname r@#2\endcsname\noexpand\@nil}%
% \end{macrocode}
-% Den dritten Teil von |\@tempa| in |\@tempa| ablegen.
+% Copy the third part of \cs{@tempa} to \cs{@tempa}.
% \begin{macrocode}
\def\@tempc##1##2##3##4\@nil{##3}%
\protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
@@ -1850,14 +1743,13 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refSentenceL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\refSentenceL}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\ref@SentenceX}
+% The same but long.
% \begin{macrocode}
-% Das Gleiche zwingend lang.
\newcommand*{\refSentenceL}{%
\kernel@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}}
}
@@ -1870,51 +1762,47 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refSentenceS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Das Gleiche zwingend kurz.
+% \begin{command}{\refSentenceS}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% The same but short.
% \begin{macrocode}
\newcommand*{\refSentenceS}{%
\kernel@ifstar {\ref@SentenceX1*}{\ref@SentenceX1{}}
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\refSentenceN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Das Gleiche zwingend nummerisch.
+% \begin{command}{\refSentenceN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% The same but numeric.
% \begin{macrocode}
\newcommand*{\refSentenceN}{%
\kernel@ifstar {\ref@SentenceX2*}{\ref@SentenceX2{}}
}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\contract@sentence}
-% \changes{v0.7a}{2014/01/28}{auf \cs{textsuperscript} umgestellt}%^^A
-% \changes{v0.7a}{2014/01/28}{\cs{nobreak}\cs{hskip}\cs{z@} eingefügt, um
-% die Trennung des ersten Worts nach der Satzmarkierung zu ermöglichen}%^^A
-% Sätze nummerieren.
-% \begin{Counter}{sentence}
-% \begin{macro}{\thesentence}
-% \begin{macro}{\theHsentence}
+% \changes{v0.7a}{2014/01/28}{using \cs{textsuperscript}}
+% \changes{v0.7a}{2014/01/28}{\cs{nobreak}\cs{hskip}\cs{z@} added to allow
+% hyphenation of the first word after the sentence mark}
+% Numbering of sentences.
+% \begin{counter}{sentence}
+% \begin{command}{\thesentence,\theHsentence}
% \begin{macro}{\p@sentence}
-% \changes{v3.27}{2019/10/09}{Anpassung an \LaTeX{} 2019-10-01}%^^A
-% Der Zähler wird für die Nummerierung der Sätze verwendet. Dabei ist wichtig,
-% dass beim Zitieren der Sätze als Elternobjekt der Absatz mit ausgegeben
-% wird. Die Methode, mit der ursprünglich dafür gesorgt wurde, dass
-% \cs{thesentence} als Argument von \cs{p@sentence} verwendet werden konnte,
-% funktioniert leider seit \LaTeX{} 2019-10-01 nicht mehr und führt seither zu
-% einer Fehlermeldung. Daher musste der Code an der Stelle an die
-% Neudefinition von \cs{refstepcounter} in \LaTeX{} 2019-10-01 angepasst
-% werden und verwendet ab dieser \LaTeX-Version \cs{labelformat}. Wie ich dazu
-% stehe, dass neuerdings \LaTeX{} kein Problem damit hat, existierende Pakete
-% zu beschädigen, lassen wir dabei besser unausgeprochen.
+% \changes{v3.27}{2019/10/09}{adaption for \LaTeX{} 2019-10-01}
+% The counter is used for numbering the sentences. It is important to add the
+% paragraph as parent object to labels. The original method to make it
+% possible to use \cs{thesentence} as an argument of \cs{p@sentence} does not
+% work any longer using \LaTeX{} 2019-10-01 or newer. It would result in an
+% error message. So the code has to be adapted to the new definition of
+% \cs{refstepcounter} in \LaTeX{} 2019-10-01. From this version it uses
+% \cs{labelformat}. Don't ask me, what I think about the fact, that every new
+% versions of \LaTeX{} can break existing packages and package authors have to
+% find out such incompatibilities on their own.
% \begin{macrocode}
%<*body>
\newcounter{sentence}[par]
@@ -1930,16 +1818,14 @@
}
\newcommand*{\contract@sentence}{%
% \end{macrocode}
-% \changes{v0.9e}{2015/11/04}{erst den Absatz beginnen, dann die Nummer
-% setzen}%^^A
-% \changes{v3.26}{2018/07/20}{neues Element \texttt{sentencenumber}}%^^A
-% \changes{v3.26}{2018/07/20}{neue Formatierung \cs{sentencenumberformat}}%^^A
-% Bei der Nummerierung ist wichtig, dass am Anfang des Absatzes die
-% Satznummer nicht erhöht wird, weil das der Absatz bereits erledigt. Damit
-% das funktioniert muss aber vor der Ausgabe erst einmal der Absatz begonnen
-% werden. Befinden wir uns allerdings unmittelbar hinter einer
-% \texttt{minipage}, einer Liste oder einer \cs{parbox} tun wir so, als wären
-% wir nicht am Anfang des Absatzes.
+% \changes{v0.9e}{2015/11/04}{first start the paragraph then print the number}
+% \changes{v3.26}{2018/07/20}{new font element \fnt{sentencenumber}}
+% \changes{v3.26}{2018/07/20}{new formatting \cs{sentencenumberformat}}
+% For the numbering it is important not to increase the paragraph number at
+% the very beginning, because the paragraph already does so. To make this
+% work, the paragraph has to start before we print the number. But immediately
+% after a \env{minipage}, a list or a \cs{parbox} we should behave as not
+% being at the beginning of a paragraph.
% \begin{macrocode}
\ifvmode
\if@endpe
@@ -1954,26 +1840,28 @@
\nobreak\hskip\z@
}
% \end{macrocode}
-% \begin{macro}{\sentencenumberformat}
-% \changes{v3.26}{2018/07/20}{neu}%^^A
-% Formatierung und Schrift können über \cs{sentencenumberformat} und Element
-% \texttt{sentencenumber} geändert werden. Voreinstellung für
-% \cs{sentenceformat} ist \cs{textsuperscript}.
+% \begin{fontelement}{sentencenumber}
+% \begin{command}{\sentencenumberformat}
+% \changes{v3.26}{2018/07/20}{new}
+% Formatting an font can be changed using font element \fnt{sentencenumber}
+% and command \cs{sentencenumberformat}. The last has the preset
+% \cs{textsuperscript}.
% \begin{macrocode}
\newkomafont{sentencenumber}{}
\newcommand*{\sentencenumberformat}{\textsuperscript{\thesentence}}
%</body>
% \end{macrocode}
+% \end{command}
+% \end{fontelement}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
+% \end{command}
+% \end{counter}
% \end{macro}
%
-% \begin{macro}{\parciteformat}
-% \changes{v0.5d}{2010/04/28}{Argument verschoben}
-% Zitierstil für Absätze.
+% \begin{macro}{\par@cite}
+% \begin{command}{\parciteformat}
+% \changes{v0.5d}{2010/04/28}{argument moved}
+% Reference style for paragraphs.
% \begin{macrocode}
%<*body>
\DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}}
@@ -1990,11 +1878,13 @@
{#1}%
}
% \end{macrocode}
+% \end{command}
% \end{macro}
%
-% \begin{macro}{\sentenceciteformat}
-% \changes{v0.5d}{2010/04/28}{Argument verschoben}
-% Zitierstil für Sätze. In der Voreinstellung ist das |\@arabic|.
+% \begin{macro}{\sentence@cite}
+% \begin{command}{\sentenceciteformat}
+% \changes{v0.5d}{2010/04/28}{argument moved}
+% Reference style for sentences. Preset is \cs{@arabic}.
% \begin{macrocode}
\DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}}
\newcommand*{\sentenceciteformat}[1]{%
@@ -2010,15 +1900,13 @@
{#1}%
}
% \end{macrocode}
+% \end{command}
% \end{macro}
%
-% \begin{macro}{\parlongformat}
-% \begin{macro}{\parshortformat}
-% \begin{macro}{\parnumericformat}
-% \begin{macro}{\sentencelongformat}
-% \begin{macro}{\sentenceshortformat}
-% \begin{macro}{\sentencenumericformat}
-% Formatierung in den sechs Formen.
+% \begin{command}{\parlongformat,\parshortformat,\parnumericformat,
+% \sentencelongformat,\sentenceshortformat,
+% \sentencenumericformat}
+% The six formattings.
% \begin{macrocode}
\newcommand*{\parlongformat}[1]{\parname~#1}
\newcommand*{\parshortformat}[1]{\parshortname~#1}
@@ -2028,25 +1916,18 @@
\newcommand*{\sentencenumericformat}[1]{\@arabic{\number #1\relax}.}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+%
+% \subsection{Language dependent names}
%
-% \begin{macro}{\parname}
-% \begin{macro}{\parshortname}
-% \begin{macro}{\sentencename}
-% \begin{macro}{\sentenceshortname}
+% \begin{command}{\parname,\parshortname,\sentencename,\sentenceshortname}
% \begin{macro}{\scrjura@lang@error}
-% \changes{v0.7}{2013/09/19}{Verwendung von \cs{PackageError} an Stelle von
-% \cs{PackageErrorNoLine}}%^^A
-% \changes{v3.24}{2017/05/29}{Anpassung an Sprachänderung
-% (\texttt{usenglish} und \texttt{ukenglish} statt \texttt{USenglish} und
-% \texttt{UKenglish}) in \textsf{babel}~3.10}%^^A
-% Der Name eines Absatzes und eines Satzes. Die englischen Namen wurden von
-% »m.eik« beigesteuert.
+% \changes{v0.7}{2013/09/19}{Usage of \cs{PackageError} instead of
+% \cs{PackageErrorNoLine}}
+% \changes{v3.24}{2017/05/29}{adaption for language name bug in
+% \pkg{babel}~3.10}
+% The names of paragraphs and sentences and their short versions. The English
+% names are donated by ``m.eik''.
% \begin{macrocode}
%<*body>
\newcommand*{\parname}{Paragraph}
@@ -2088,23 +1969,19 @@
%</body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+%
+% \subsection{Using values from last \LaTeX{} run}
%
-% \begin{macro}{\newmaxpar}
-% \changes{v0.6b}{2013/04/16}{\cs{\#1@Clauseformat} expandiert zu seinem
-% Argument}%^^A
-% \begin{macro}{\getmaxpar}
-% \changes{v0.6}{2011/09/30}{Argument 3 muss mit \cs{protected@edef}
-% expandiert werden}%^^A
-% \changes{v0.5c}{2010/04/26}{\cs{protected@edef} durch \cs{edef}
-% ersetzt}%^^A
-% \changes{v0.5c}{2010/04/26}{\cs{\#2@Clauseformat} expandiert zu seinem
-% Argument}%^^A
-% Noch zwei Hilfsmakros, um Zähler in der aux-Datei zwischenzuspeichern und
-% auch dann Werte zu holen, wenn sie nicht in der aux-Datei stehen.
+% \begin{command}{\newmaxpar}
+% \changes{v0.6b}{2013/04/16}{\cs{\#1@Clauseformat} expands to its argument}
+% \begin{command}{\getmaxpar}
+% \changes{v0.6}{2011/09/30}{argument no 3 is expanded using
+% \cs{protected@edef}}
+% \changes{v0.5c}{2010/04/26}{\cs{protected@edef} replaced by \cs{edef}}
+% \changes{v0.5c}{2010/04/26}{\cs{\#2@Clauseformat} expands to its argument}
+% Two helper macros, to save a counter in a \file{aux}-file and get the value
+% back or another value of it is not in the \file{aux}-file.
% \begin{macrocode}
%<*body>
\newcommand*{\newmaxpar}[3]{%
@@ -2128,12 +2005,12 @@
\@tempa
}
% \end{macrocode}
-% \changes{v0.7b}{2014/11/10}{Notfallcode in die \texttt{aux}-Datei}%^^A
-% \changes{v0.9g}{2015/03/25}{in die \texttt{aux}-Datei nur bei
-% \cs{if@filesw} schreiben}%^^A
-% Da manche Anwender \texttt{scrjura} aus einem Dokument entfernen, ohne die
-% \texttt{aux}-Dateien zu löschen, sehen wir eine Notlösung vor, um
-% Fehlermeldungen wegen nicht definiertem \cs{newmaxpar} zu vermeiden.
+% \changes{v0.7b}{2014/11/10}{added fallback code to \file{aux}-file}
+% \changes{v0.9g}{2015/03/25}{write to \file{aux}-file \cs{if@filesw}}
+% Because some users remove \pkg*{scrjura} from their documents without
+% deleting the \file{aux}-file, we add a fallback definition of \cs{newmaxpar}
+% to the \file{aux}-file. This avoids error messages because of undefined
+% \cs{newmaxpar}.
% \begin{macrocode}
\AtBeginDocument{%
\if@filesw
@@ -2144,20 +2021,22 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
% \iffalse
%</package>
% \fi
%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% end of file `scrjura.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% coding: utf-8
-%%% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-addressfiles.dtx b/macros/latex/contrib/koma-script/source/scrkernel-addressfiles.dtx
new file mode 100644
index 0000000000..8cdaa70be6
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-addressfiles.dtx
@@ -0,0 +1,164 @@
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-addressfiles.dtx
+% Copyright (c) Markus Kohm, 2006-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.
+% ======================================================================
+%%% From File: $Id: scrkernel-addressfiles.dtx 3697 2022-02-11 09:48:02Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*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-11 10:48:02 +0100 (Fr, 11. Feb 2022) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 3697 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-addressfiles.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (circular letters)]%
+ }%
+\reserved@a
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+\DocInput{scrkernel-addressfiles.dtx}
+\end{document}
+%</dtx>
+% \fi
+%
+% \changes{v2.95}{2006/03/22}{first version by splitting of \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/11}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/11}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-addressfiles.dtx}
+% \title{Circular Letters and Address Files as Part of
+% \href{https://komascript.de}{\KOMAScript} Class \cls*{scrlttr2} and
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrletter}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \filename{} is used to generate \cls*{scrlttr2} and \pkg*{scrletter}. It
+% provides features for handling address files with well defined address
+% data. This can be used to print circular letters from one master document.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation of the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation of the Address File Feature}
+%
+% \begin{macrocode}
+%<*letter>
+% \end{macrocode}
+%
+% \subsection{Options}
+% We do not have any options for this feature
+%
+%
+% \subsection{Macros and commands for address files}
+%
+% \begin{command}{\adrentry}
+% \changes{v2.8q}{2002/05/19}{\cs{adrentry} uses new \cs{addrentry}}
+% \changes{v3.36}{2022/02/11}{deprecated}
+% \begin{command}{\addrentry}
+% \changes{v2.8n}{2001/09/06}{added}
+% The basic feature of \cs{addrentry} is to read nine arguments. The first
+% argument is interpreted as family name, the second as first name. The first
+% name is optional, the family name should be given. Alternatively the first
+% argument can be a company name or similar (and the second can be
+% empty). The third argument should be the postal address. Then a command with
+% the name of the ninth argument is defines, containing name and address as
+% expected by \cls*{scrlttr2}'s or \pkg*{scrletter}'s \env{letter}
+% environment. To be able to do so, only character sequence characters should
+% be used for argument number 9. For more information about the recommended
+% meaning of the other arguments, see one of the \KOMAScript{} manuals.
+% \cs{adrentry} is the former version of \cs{addrentry}. It does only have eight
+% argument. So it sets an empty argument number 8. This implementation does
+% read only seven arguments immediately. The last argument is read by
+% \cs{addrentry}.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\adrentry}[7]{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ command `\string\adrentry' is deprecated.\MessageBreak
+ You should use `\string\addrentry' with additional\MessageBreak
+ empty 8th argument}%
+ \addrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{}}
+\newcommand*{\addrentry}[9]{\def\@tempa{#1}\ifx \@tempa\@empty \else
+ \def\@tempa{#2}\ifx \@tempa\@empty
+ \expandafter\def\csname #9\endcsname{#1\\#3}%
+ \else
+ \expandafter\def\csname #9\endcsname{#2 #1\\#3}%
+ \fi \fi}
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
+% \begin{command}{\adrchar}
+% \changes{v2.8q}{2002/05/19}{\cs{adrchar} used new \cs{addrchar}}
+% \changes{v3.36}{2022/02/11}{deprecated}
+% \begin{command}{\addrchar}
+% \changes{v2.8n}{2001/09/06}{added}
+% Address files should be organized in alphabetic order. To be able to
+% generate dictionaries or lists of the addresses, it is useful mark the
+% beginning of a new letter. We have \cs{addrchar} to do so. The argument is
+% the new letter, but ignored by the default implementation. The default of
+% deprecated \cs{adrchar} is to use \cs{addrchar}.
+% \begin{macrocode}
+\newcommand*{\adrchar}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ command `\string\adrchar' is deprecated.\MessageBreak
+ You should use `\string\addrchar'}
+ \addrchar}
+\newcommand*{\addrchar}[1]{}
+%</body>
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
+%
+% \begin{macrocode}
+%</letter>
+% \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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
index 9c8358b466..6c9a8c0302 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-basics.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,26 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-basics.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.
% ======================================================================
-%
-%%% From File: $Id: scrkernel-basics.dtx 3606 2021-06-08 08:28:35Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 3773 2022-03-29 06:27:55Z kohm $
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<body>%%% (run: body)
@@ -46,14 +28,14 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2021-06-08 10:28:35 +0200 (Tue, 08 Jun 2021) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 1638 $
- \xdef\fileinfo{\filedate\space\filerevision\space}
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
- \noexpand\ProvidesFile{scrkernel_basics.dtx}%
+ \noexpand\ProvidesFile{scrkernel-basics.dtx}%
[\filedate\space\filerevision\space
+ KOMA-Script
}
\reserved@a
%</dtx>
@@ -94,83 +76,103 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-basics.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Revision \fileversion\ von Datei
- \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-basics.dtx}
\end{document}
%</dtx>
-% \fi
-%
-% \selectlanguage{ngerman}
-%
-% \changes{v1.0}{2002/07/06}{Beginn der ersten Version}
-% \changes{v3.12}{203/03/05}{Verwendung von \cs{@tempa}, \cs{@tempb},
-% \cs{@tempc} eliminiert}
-% \changes{v3.32}{2020/09/11}{\textsf{scrlfile} wird nicht mehr geladen}
-%
-% \section{Grundlegenden \KOMAScript-Erweiterungen}
-%
-% Neue Versionen von \KOMAScript{} machen zunehmend Gebrauch vom
-% \textsf{keyval}-Paket. Das \textsf{keyval}-Paket ist Bestandteil des
-% \textsf{graphics}-Pakets und muss als solches auf allen
-% \TeX-Systemen mit \LaTeX{} enthalten sein. Es genügt jedoch in
-% einigen Punkten nicht den Anforderungen von \KOMAScript{}. Deshalb
-% werden hier Erweiterungen vorgenommen, die von \KOMAScript-Klassen
-% und \KOMAScript-Paketen verwendet werden können.
-%
-% Darüber hinaus werden immer mehr Teile von \KOMAScript{} von mehr als einem
-% Paket oder von Paketen und Klassen verwendet. Diese grundlegenden Dinge
-% wurden daher in zwei Pakete, \textsf{scrbase} (für Dinge, die auch von
-% anderen Klassen und Paketen genutzt werden können) und \textsf{scrkbase}
-% (für Dinge, die \KOMAScript vorbehalten bleiben), ausgegliedert. Dadurch
-% werden die Pakete und Klassen selbst kleiner und die können trotzdem
-% unabhängig voneinander verwendet werden. Selbstverständlich kann man dieses
-% Paket auch ohne den Rest von \KOMAScript{} zum Einsatz bringen.
-%
-% \selectlanguage{english}
+% \fi^^A meta-comment
+%
+% \changes{v1.0}{2002/07/06}{starting implementation}
+% \changes{v3.12}{203/03/05}{usage of \cs{@tempa}, \cs{@tempb}, \cs{@tempc}
+% eliminated}
+% \changes{v3.36}{2022/02/16}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/21}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-basics.dtx}
+% \title{Basic Funktionality Used by Almost all
+% \href{https://komascript.de}{\KOMAScript} Classes and Packages}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% New versions of \KOMAScript{} make increasing use of the \pkg{keyval}
+% package. The \pkg{keyval} package is part of the \pkg{graphics} package
+% and as such must be included on all \TeX{} systems with \LaTeX{}. However,
+% it does not meet the requirements of \KOMAScript{} in some
+% respects. Therefore, extensions are made here which can be used by
+% \KOMAScript classes and \KOMAScript packages.
+%
+% In addition, more and more parts of \KOMAScript{} are used by more than
+% one package or by packages and classes. These basic things have therefore
+% been split into two packages, \pkg*{scrbase} (for things that can also be
+% used by other classes and packages) and \pkg*{scrkbase} (for things that
+% are reserved for \pkg*{scrkbase}). This makes the packages and classes
+% themselves smaller and they can still be used independently. Of course you
+% can also use this package without the rest of \KOMAScript{}.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation of package \pkg*{scrbase} and the
+% commands implemented in \file{scrkernel-basics.dtx} in the \KOMAScript{}
+% manual, either the German \file{scrguide} or the English \file{scrguien}.
+%
+%
% \subsection{Functions not yet in the Manual}
%
-% \DescribeMacro\IfLTXAtLeastTF
-% \marginpar{\raggedleft\tiny New: 2021-01-31}%
+% Some user commands are not documented in the \KOMAScript{} manuals, e.g.,
+% because they are not stable enough to be used by average users or more or
+% less for internal usage only. Some are only not documented in the
+% \KOMAScript{} manual, because nobody has done it yet.
+%
+% \DescribeCommand\IfLTXAtLeastTF
+% \marginpar{\raggedleft\tiny Added: 2021-01-31}%
% This is the same like \cs{IfFormatAtLeast} of \LaTeX{} from 2020/10/01, but
% works also with older \LaTeX{} kernels.
%
-% \selectlanguage{ngerman}
-% \StopEventually{\PrintIndex\PrintChanges}
+% \DescribeCommand\Ifislengthprimitive
+% \marginpar{\raggedleft\tiny Added: 2015/10/19\\Renamed: 2022/02/17}%
+% \cs{Ifislengthprimitive}\marg{macro}\marg{then code}\marg{else code}
+% expands the \meta{macro} and tests if the result can be used as a length
+% primitive. If this is the case the \meta{then code} is executed, otherwise
+% the \meta{else code}. Note, that this command can be false negative,
+% because, i.e., with \LuaLaTeX{} there can be primitives, that are like length,
+% but that are not known by \cs{Ifislengthprimitive}.
+%
+% \DescribeCommand\Ifisdefchar
+% \marginpar{\raggedleft\tiny Added: 2015/10/19\\Renamed: 2022/02/17}%
+% \cs{Ifislengthprimitive}\marg{macro}\marg{then code}\marg{else code}
+% expands the \meta{macro} and tests if the result is a \cs{char}. If this is
+% the case the \meta{then code} is executed, otherwise the \meta{else code}.
+% Note, that this command can be false positive, if the \cs{char} value is
+% incorrect.
%
-% \iffalse
-%<*load>
-% \fi
%
-% \subsection{Laden des Pakets}
-% Wer das Paket lädt, tut das allerdings in der Regel sogar bereits
-% vor der Definition der Optionen mit:
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation of \pkg*{scrbase} and \pkg*{scrkbase}}
+%
+% \subsection{Loading \pkg*{scrkbase}}
+% Who ever loads ths package, always wants the same version of the already
+% used \KOMAScript version.
% \begin{macrocode}
+%<*load>
\RequirePackage{scrkbase}[\KOMAScriptVersion]
+%</load>
% \end{macrocode}
%
-% \iffalse
-%</load>
-%<*prepare>
-% \fi
%
-% \subsection{\eTeX-Test}
-% \changes{v3.02c}{2009/02/19}{Fehlermeldung, wenn nicht \eTeX{} verwendet
-% wird}
+% \subsection{\eTeX{} test}
+% \changes{v3.02c}{2009/02/19}{error message without \eTeX}
%
% \begin{macrocode}
+%<*prepare>
%<*base>
\begingroup
\def\reserved@b{}%
@@ -200,59 +202,56 @@
% \end{macrocode}
%
%
-% \subsection{Der abhängige Teil lädt den unabhängigen Teil}
+% \subsection{The \KOMAScript-only package loads the universal package}
%
+% Once again the same version is wanted.
% \begin{macrocode}
%<koma>\RequirePackage{scrbase}[\KOMAScriptVersion]
% \end{macrocode}
%
-% \subsection{Laden von \textsf{scrlfile}}
+% \subsection{Package \pkg*{scrlfile}}
%
-% \textsf{scrlfile} wird benötigt, um auf das Laden anderer Pakete reagieren
-% zu können. Dazu gehört beispielsweise \textsf{polyglossia} wegen dessen
-% unzureichender Behandlung unterschiedlicher Sprachvarianten. Welche Version
-% davon geladen wird, ist allerdings ziemlich egal.
+% We need to react on the loading other packages like \pkg{polyglossia}. For
+% this we use \pkg*{scrlfile}. But we can use any version.
%
% \begin{macrocode}
%<base>\RequirePackage{scrlfile}
% \end{macrocode}
%
-% \subsection{Laden von \textsf{keyval}}
+% \subsection{Package \pkg*{keyval}}
%
-% Hier wird nicht nur das Paket geladen, was ruckzuck mit:
+% The \KOMAScript{} key handling bases on package \pkg{keyval}.
% \begin{macrocode}
%<base>\RequirePackage{keyval}
% \end{macrocode}
-% erledigt ist.
%
-% \subsection{Schutz vor Umdefinierung von
-% \LaTeX-Kern-Anweisungen durch
-% andere Pakete}
-% Einige Pakete wie \textsf{amsgen} definieren \LaTeX-Kern-Anweisungen so um,
-% dass sie nicht mehr korrekt funktionieren. Ich muss dann leider dafür
-% sorgen, dass \KOMAScript{} damit keine Probleme hat. Die Klassen sind dabei
-% in der günstigen Situation, dass sie ggf. einfach die vorhandene Definition
-% testen und übernehmen können. Die Pakete müssen hingegen dummer Weise selbst
-% dafür sorgen, dass es irgendwie funktioniert.
+%
+% \subsection{Using protected kernel macros}
+% Some package like \pkg{amsgen} redefine internal \LaTeX{} kernel macros, but
+% break them for other purposes than the own. So I have to make them work
+% again. The \KOMAScript{} classes have less problems with this, because most
+% of these packages cannot be loaded before a class. So the classes can simply
+% copy the original macro, before it is redefined. But I do not know, when a
+% package is loaded. So I have to implement the whole macro again with another
+% name (and can only hope, that such packages do not damage them also).
%
% \begin{macro}{\kernel@ifstar}
-% \changes{v3.20}{2016/04/12}{neu (intern)}
-% Ich hoffe ja, dass der \LaTeX-Kern zukünftig diese Anweisung definiert und
-% das dann auch funktioniert. Damit es aber auch mit älteren \LaTeX-Versionen
-% geht, sorge ich hier vor.
+% \changes{v3.20}{2016/04/12}{added}
+% I hope, the \LaTeX{} kernel will define this in future and other packages do
+% not redefine like they do with \cs{@ifstar}. So I use \cs{providecommand} to
+% not redefine the kernel macro, if it does exist.
% \begin{macrocode}
%<base>\providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}}
% \end{macrocode}
-% \end{macro}%^^A \kernel@ifstar
+% \end{macro}^^A \kernel@ifstar
%
-% \selectlanguage{english}
%
% \subsection{Improved \LaTeX{} kernel commands}
% The \LaTeX{} kernel already provides some useful commands, but some can be
% improved.
%
-% \begin{macro}{\rloop}
-% \changes{v3.30}{2020/03/07}{new}
+% \begin{command}{\rloop}
+% \changes{v3.30}{2020/03/07}{added}
% The \cs{loop} \dots \cs{repeat} of the \LaTeX{} kernel cannot be used inside
% a \cs{loop} \dots \cs{repeat} without extra code for preserving
% \cs{iterate}. So here is a re-entrant version that is also long. This
@@ -273,9 +272,9 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\IfLTXAtLeastTF}
+% \begin{command}{\IfLTXAtLeastTF}
% \changes{v3.33}{2021/01/21}{new}
% This is the same like \cs{IfFormatAtLeastTF} of the current \LaTeX{} kernel,
% but does also work, if \cs{IfFormatAtLeastTF} is not defined because of
@@ -289,21 +288,20 @@
\@onlypreamble\IfLTXAtLeastTF
%</base>
% \end{macrocode}
-% \end{macro}
-% \selectlanguage{ngerman}
+% \end{command}
%
%
-% \subsection{Test von Anweisungen}
+% \subsection{Testing macros}
%
% \begin{macro}{\scr@ifundefinedorrelax}
-% \changes{v2.95c}{2006/08/12}{neu (intern)}%^^A
-% \changes{v2.97b}{2007/03/08}{vermurkste Logik korrigiert}%^^A
-% \changes{v2.97c}{2007/04/18}{vermurkste Funktion korrigiert}%^^A
-% \changes{v2.97c}{2007/04/18}{von \cs{scr@ifundefined} umbenannt}
-% \changes{v3.02c}{2009/02/19}{Sonderbehandlung für nicht \eTeX entfernt}%^^A
-% Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber
-% ein undefiniertes Makro nicht als \cs{relax}. Es muss bereits hier definiert
-% werden, weil es gleich verwendet wird.
+% \changes{v2.95c}{2006/08/12}{added}
+% \changes{v2.97b}{2007/03/08}{broken logic fixed}
+% \changes{v2.97c}{2007/04/18}{broken functionality fixed}
+% \changes{v2.97c}{2007/04/18}{\cs{scr@ifundefined} renamed}
+% \changes{v3.02c}{2009/02/19}{special treatment of \eTeX{} removed}
+% This macro is like \cs{@ifundefined}, but does not define the test macro
+% \cs{relax} if it was undefined before. Note: With up-to-date \LaTeX{} this
+% is the same with the original \cs{@ifundefined}.
% \begin{macrocode}
%<*base>
\newcommand{\scr@ifundefinedorrelax}[1]{%
@@ -319,51 +317,44 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifundefinedorrelax
+% \end{macro}^^A \scr@ifundefinedorrelax
%
%
-% \subsection{Erweiterung von Meldungen}
+% \subsection{Extending messages}
%
-% \begin{macro}{\PackageErrorNoLine}
-% \changes{v3.12}{2013/09/19}{neu}%^^A
-% \changes{v3.28}{2019/11/23}{unsinnige Anweisung entfernt}%^^A
-% Wie Falk richtig angemerkt hat, ist die Anweisung sinnlos, weil
-% \cs{PackageError} gar keine Zeilennummer anhängt. Verwendet wurde die
-% Anweisung nur in einem veralteten Paket.
-% \end{macro}
+% \begin{command}{\PackageErrorNoLine}
+% \changes{v3.12}{2013/09/19}{added}
+% \changes{v3.28}{2019/11/23}{nonsense command removed}
+% Falk correctly stated, that \cs{PackageError} already does not show a line
+% number. So we do not need this command.
+% \end{command}
%
%
-% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Basis)}
+% \subsection{Definition of the \KOMAScript{} \pkg*{keyval} basis}
%
-% Üblicherweise verwendet \KOMAScript{} für alle
-% \textsf{keyval}-Schlüssel die gleiche Bereichskennung
-% "`\texttt{KOMA}"'. Dadurch ist es möglich, dass Pakete die Schlüssel
-% der Klassen umdefinieren und dass jeder Teil von \KOMAScript{} die
-% Schlüssel jedes anderen Teils ausführen kann -- sobald sie definiert
-% sind.
+% \KOMAScript{} could use \pkg{keyval} keys with the same set of keywords
+% ``\texttt{KOMA}'' to make it possible, that packages can redefine keys of
+% classes and other packages. However this would be dangerous and can easily
+% break. So we split the set of keywords in an family of keywords and family
+% member of keywords and define commands to process the keywords either of a
+% member or a whole family.
%
-% \begin{macro}{\DefineFamily}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\DefineFamilyMember}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \begin{macro}{\DefineFamilyKey}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \changes{v3.12}{2013/03/04}{Setzen von \cs{FamilyKeyState}}
+% \begin{command}{\DefineFamily,\DefineFamilyMember,\DefineFamilyKey}
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
% \begin{macro}{\scr@if@family}
-% \changes{v3.00}{2008/04/30}{Neu (intern)}%^^A
+% \changes{v3.00}{2008/04/30}{added}
% \begin{macro}{\scr@if@familymember}
-% \changes{v3.00}{2008/04/30}{Neu (intern)}%^^A
-% \changes{v3.27}{2019/07/19}{das leere Mitglied existiert immer}%^^A
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.27}{2019/07/19}{the empty member exists by default}
% \begin{macro}{\scr@define@family@key}
-% \changes{v3.00}{2008/04/30}{Neu (intern)}%^^A
+% \changes{v3.00}{2008/04/30}{added}
% \begin{macro}{\scr@define@family@key@nodefault}
-% \changes{v3.00}{2008/04/30}{Neu (intern)}%^^A
-% \changes{v3.18a}{2015/07/03}{fehlendes \% ergänzt}%^^A
-% Familie, Familienmitglied und \textsf{keyval}-Schlüssel für ein
-% Familienmitglied definieren. Dabei wird als Familienmitglied per Default der
-% (Datei-)Name des aktuellen Pakets bzw. der aktuellen Klasse verwendet.
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.18a}{2015/07/03}{missing \% added}
+% Family, member of a family and \pkg{keyval} key for a member of a
+% family. The default of the member of a family is always the file name of a
+% class or package (while reading the file).
% \begin{macrocode}
%<*base>
\newcommand*{\DefineFamily}[1]{%
@@ -455,20 +446,18 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@define@family@key@nodefault
-% \end{macro}%^^A \scr@define@family@key
-% \end{macro}%^^A \scr@if@familymember
-% \end{macro}%^^A \scr@if@family
-% \end{macro}%^^A \DefineFamilyKey
-% \end{macro}%^^A \DefineFamilyMember
-% \end{macro}%^^A \DefineFamily
-%
-% \begin{macro}{\RelaxFamilyKey}
-% \changes{v3.15}{2014/12/03}{neue Anweisung}%^^A
-% Undefiniert einen Schlüssel. Irgendwelche Hilfsmakros werden dabei nicht
-% angetastet. Stattdessen wird nur der Schlüssel selbst und ggf. ein
-% Defaultwert als \cs{relax} definiert, so dass er nicht mehr verwendet werden
-% kann.
+% \end{macro}^^A \scr@define@family@key@nodefault
+% \end{macro}^^A \scr@define@family@key
+% \end{macro}^^A \scr@if@familymember
+% \end{macro}^^A \scr@if@family
+% \end{command}^^A \DefineFamily,\DefineFamilyMember,\DefineFamilyKey
+%
+%
+% \begin{command}{\RelaxFamilyKey}
+% \changes{v3.15}{2014/12/03}{added}
+% Sometimes it is useful to be able to \emph{un-define} a key. This will not
+% un-define all helper macros but only the key and a default value will become
+% \cs{relax}.
% \begin{macrocode}
%<*base>
\newcommand*{\RelaxFamilyKey}[3][.\@currname.\@currext]{%
@@ -481,28 +470,20 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\FamilyKeyState}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%^^A
-% \begin{macro}{\FamilyKeyStateProcessed}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%^^A
-% \begin{macro}{\FamilyKeyStateUnknown}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%
-% \begin{macro}{\FamilyKeyStateUnknownValue}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%
-% \begin{macro}{\FamilyKeyStateNeedValue}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%
-% \cs{FamilyKeyState} gibt den Status der Verarbeitung eines Schlüssels
-% an. In der Voreinstellung wird der Status beim Aufruf des Schlüssels auf
-% \cs{FamilyKeyStateUnknown} gesetzt, was anzeigt, dass der Zustand
-% unbekannnt ist, der Schlüssel aber möglicherweise verarbeitet
-% wurde. Daneben gibt es den Zustand \cs{FamilyKeyStateProcessed}, der
-% anzeigt, dass der Schlüssel komplett verarbeitet wurde. Alternativ kann
-% das Makro einen Text enthalten, der ggf. Teil einer Fehlermeldung, einer
-% Warnung oder einer Information über Probleme bei der Verarbeitung wird. Es
-% ist zu beachten, dass \cs{FamilyKeyState} nur unmittelbar nach der
-% Verarbeitung gültig ist.
+% \end{command}^^A \RelaxFamilyKey
+%
+% \begin{command}{\FamilyKeyState,\FamilyKeyStateProcessed,\FamilyKeyStateUnknown,
+% \FamilyKeyStateUnknownValue,\FamilyKeyStateNeedValue}
+% \changes{v3.12}{2013/03/04}{added}
+% \cs{FamilyKeyState} is the state of processing a key. The initial state is
+% \cs{FamilyKeyStateUnknown}, so the state is indeed unknown. If a key has
+% been processed by the definition code and everything is OK, you should run
+% \cs{FamilyKeyStateProcessed}. This will set \cs{FamilyKeyState} also to
+% \cs{FamilyKeyStateProcessed} to indicate, the key has been processed
+% successfully. If the value assigned to the key is unknown, you should run
+% \cs{FamilyKeyStateUnknownValue}. And if the value is needed but no value has
+% been assigned, \cs{FamilyKeyStateNeedValue} is the correct choice. Note:
+% \cs{FamilyKeyState} is valid only immediately after processing a key.
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyKeyState}{}
@@ -521,35 +502,25 @@
\let\FamilyKeyState\FamilyKeyStateUnknown
%</base>
% \end{macrocode}
-% \end{macro}%^^A \FamilyKeyStateNeedValue
-% \end{macro}%^^A \FamilyKeyStateUnknownValue
-% \end{macro}%^^A \FamilyKeyStateUnknown
-% \end{macro}%^^A \FamilyKeyStateProcessed
-% \end{macro}%^^A \FamilyKeyState
+% \end{command}^^A \FamilyKeyState … \FamilyKeyStateNeedValue
%
-% \begin{macro}{\FamilyOfKey}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%^^A
-% \begin{macro}{\FamilyMemberOfKey}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%^^A
-% Geben innerhalb der Verarbeitung eines Schlüssels dessen Familie bzw. das
-% zugehörige Familienmitglied an.
+% \begin{command}{\FamilyOfKey,\FamilyMemberOfKey}
+% \changes{v3.12}{2013/03/04}{added}
+% While processing a key, this is the family and the member of family.
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyOfKey}{}
\newcommand*{\FamilyMemberOfKey}{}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \FamilyMemberOfKey
-% \end{macro}%^^A \FamilyOfKey
+% \end{command}^^A \FamilyOfKey,\FamilyMemberOfKey
%
% \begin{macro}{\KOMA@key}
-% \changes{v2.97c}{2007/04/19}{neues optionales Argument}%^^A
-% \changes{v3.17}{2015/02/24}{rudimentäre Funktionalität zur Speicherung von
-% Optionen}%^^A
-% \begin{macro}{\KOMA@key@familylist}
-% \textsf{keyval}-Schlüssel für \KOMAScript{} werden mit \cs{KOMAkey}
-% definiert, damit auch die Familie korrekt gesetzt und ggf. der Liste der
-% Familien (\cs{KOMA@key@familylist}) hinzugefügt wird.
+% \changes{v2.97c}{2007/04/19}{optional argument added}
+% \changes{v3.17}{2015/02/24}{rudimentary value storage}
+% \pkg{keyval} keys of \KOMAScript{} are defined with \cs{KOMAkey} to setup
+% the family to ``\texttt{KOMA}'' automatically. Additionally the value
+% storage is initialized.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@key}[1][.\@currname.\@currext]{%
@@ -560,12 +531,12 @@
%</koma>
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\KOMA@kav@add}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Dieses Makro speichert ein \texttt{key=value}-Paar in der internen Liste.
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/24}{added}
+% This macro stores a \texttt{\meta{key}=\meta{value}} pair in a internal
+% list. The first argument is the family member, the second the \meta{key} and
+% the third the \meta{value}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@add}[3]{%
@@ -580,10 +551,11 @@
% \end{macro}
%
% \begin{macro}{\KOMA@kav@xadd}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Dieses Makro speichert ein zuvor expandiertes \texttt{key=value}-Paar in der
-% internen Liste.
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/24}{added}
+% This macro stores a \texttt{\meta{key}=\meta{value}} pair in a internal
+% list after expanding both, the \meta{key} and the \meta{value}. The first
+% argument is the family member, the second the \meta{key} and the third the
+% \meta{value}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@xadd}[3]{%
@@ -600,10 +572,10 @@
% \end{macro}
%
% \begin{macro}{\KOMA@kav@remove}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Dieses Makro entfernt ein ganz bestimmtes \texttt{key=value}-Paar aus der
-% internen Liste.
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/24}{added}
+% This macro removes a \texttt{\meta{key}=\meta{value}} pair from the internal
+% list. The first argument is the family member, the second the \meta{key} and
+% the third the \meta{value}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@remove}[3]{%
@@ -632,10 +604,10 @@
% \end{macro}
%
% \begin{macro}{\KOMA@kav@removekey}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Dieses Makro entfernt alle \texttt{key=value}-Paar mit einem gegebenen
-% \texttt{key} aus der internen Liste.
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/24}{added}
+% This macro removes all \texttt{\meta{key}=\meta{value}} pairs of a given
+% \meta{key} from the internal list. The first argument is the family member,
+% the second the \meta{key}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@removekey}[2]{%
@@ -664,14 +636,13 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\KOMA@kav@replacevalue}
-% \begin{macro}{\KOMA@kav@xreplacevalue}
-% \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}%^^A
-% Diese Makros dienen dazu, den Wert Schlüssels in der internen Liste
-% auszutauschen. Das erste (optionale) Argument ist das Mitglied, das zweite
-% ist der Name des Schlüssels, das dritte der neue Wert. Es setzt den Status
-% \cs{FamilyKeyStateProcessed} voraus. Anderenfalls tut es nichts!
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macro}{\KOMA@kav@replacevalue,\KOMA@kav@xreplacevalue}
+% \changes{v3.17}{2015/02/25}{added}
+% If \cs{FamilyKeyState} is \cs{FamilyKeyStateProcessed},
+% these macros replace a \texttt{\meta{key}=\meta{value}} pair in the internal list.
+% The first argument is the family member, the second the \meta{key} and the
+% third is the new \meta{value}. \cs{KOMA@kav@xreplacevalue} expands both, the
+% \meta{key} and the \meta{value}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@replacevalue}[3]{%
@@ -697,15 +668,13 @@
%</koma>
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\KOMA@kav@replacebool}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Dieses Makro dient dazu, den Wert eines if-Schlüssels in der internen Liste
-% auszutauschen. Das erste (optionale) Argument ist das Mitglied, das zweite
-% ist der Name des Schlüssels, das dritte der Name des Schalters. Es setzt den
-% Status \cs{FamilyKeyStateProcessed} voraus. Anderenfalls tut es nichts!
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/24}{added}
+% If \cs{FamilyKeyState} is \cs{FamilyKeyStateProcessed},
+% this macro replaces the value of a if key in the internal list.
+% The first argument is the family member, the second the \meta{key} and the
+% third is the boolean switch (\cs{if\dots} statement) representing the new value.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@replacebool}[3]{%
@@ -729,11 +698,10 @@
% \end{macro}
%
% \begin{macro}{\KOMA@kav@defall}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Dieses Makro liefert eine \texttt{key=value}-Liste aller gespeicherten Paare.
-% Das erste Argument ist die zu definierende Anweisung, das zweite ist das
-% Mitglied.
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/24}{added}
+% This macro defines a macro/command with the \texttt{\meta{key}=\meta{value}}
+% list of all stored pairs. The first argument is the macro/command to be
+% defined with the list. The second is the family member.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@defall}[2]{%
@@ -762,14 +730,12 @@
% \end{macro}
%
% \begin{macro}{\KOMA@kav@defone}
-% \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Dieses Makro liefert alle aktuellen Werte eine Schlüssels aus der
-% \texttt{key=value}-Liste aller gespeicherten Paare. Falls es mehr als einen
-% Wert gibt, so werden diese \cs{KOMAoption}-tauglich verknüpft. Das erste
-% Argument ist die zu definierende Anweisung, das zweite ist das Mitglied
-% und das dritte der Schlüssel.
-% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \changes{v3.17}{2015/02/25}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% This macro defines a macro/command with all stored values of a \meta{key}
+% from the internal list of \texttt{\meta{key}=\meta{value}} pairs.
+% The first argument is the macro/command to be defined. The second is the
+% family member and the third is the \meta{key}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@defone}[3]{%
@@ -800,9 +766,8 @@
% \end{macro}
%
% \begin{macro}{\KOMA@internal@error}
-% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}%^^A
-% Einfach nur eine Meldung über einen internen Fehler mit der Bitte um einen
-% entsprechenden Bug-Report.
+% \changes{v3.17}{2015/02/24}{added}
+% General internal error message with the recommendation to report a bug.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@internal@error}[2]{%
@@ -821,29 +786,25 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{Optionen}
+% \subsection{Options}
%
-% Ab Version 2.97c sollen sowohl globale KOMA-Optionen als auch die
-% KOMA-Optionen der jeweiligen Datei als auch die normalen Optionen in der
-% Reihenfolge ausgeführt werden, in der sie angegeben wurden -- zuerst die
-% globalen Optionen, dann die lokalen. Dabei werden nur die Optionen
-% verwendet, die auch für das jeweilige Paket bzw. die jeweilige Klasse
-% definiert wurden.
+% From version 2.97c \KOMAScript{} processes all options in the order they
+% have been set and no longer in the order they have been defined. This is
+% much more intuitive for users. Packages first process the global options
+% then the local options.
%
% \begin{macro}{\@globaloptionslist}
-% \changes{v2.96}{2006/11/26}{new}%^^A
-% \changes{v2.96}{2006/11/26}{Klassenoptionen durchsuchen}%^^A
-% \changes{v3.20}{2016/02/06}{Entscheidung später treffen}%^^A
-% Die Liste der globalen Optionen wird teilweise benötigt. Weil
-% \textsl{xkeyval} dämlicherweise glaubt, es müsse alle Optionen mit
-% Gleichheitszeichen aus der Liste der Klassenoptionen entfernen
-% (seltsamerweise aber nicht die (x)keyval-Optionen, die ohne Wert aufgerufen
-% werden, weil ihr Defaultwert verwendet werden soll), wird hier ein eigenes
-% Makro definiert. Bis \KOMAScript{} 3.19a wurde auch genau hier die Zuweisung
-% durchgeführt. Wenn aber \textsf{scrbase} noch vor \cs{documentclass} geladen
-% wird, dann ist \cs{@classoptionslist} natürlich noch nicht gültig. Deshalb
-% wird die Zuweisung, seit \KOMAScript{} 3.20 in \cs{FamilyProcessOptions}
-% durchgeführt.
+% \changes{v2.96}{2006/11/26}{added}
+% \changes{v2.96}{2006/11/26}{process class options}
+% \changes{v3.20}{2016/02/06}{delay decisions}
+% The lost of global options is sometimes needed. But because \pkg{xkeyval}
+% has the opinion it should remove all options with equal char from the list
+% of class options, we define out own macro with a copy of the class
+% options. Until \KOMAScript{} 3.19a the copy has been done here. But if
+% \pkg*{scrbase} is loaded before \cs{documentclass} this is too early. From
+% \KOMAScript{} 3.20 the assignment has been moved to
+% \cs{FamilyProcessOptions}. And from \KOMAScript{} 3.33 the normal class
+% option list is only used if the raw option list is not available.
% \begin{macrocode}
%<*base>
\newcommand*{\@globaloptionslist}{}
@@ -851,38 +812,27 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\scr@removeunused}
-% \changes{v3.10}{2011/09/12}{neu (intern)}%
-% \changes{v3.12}{2013/03/04}{entfernt}%^^A
-% \end{macro}%^^A \scr@removeunused
-% \begin{macro}{\scr@optiontest}
-% \changes{v2.97c}{2007/04/18}{neu (intern)}%
-% \changes{v3.12}{2013/03/04}{entfernt}%
-% \begin{macro}{\scr@pti@ntest}
-% \changes{v2.97c}{2007/04/18}{neu (intern)}%
-% \changes{v3.12}{2013/03/04}{entfernt}%
-% \end{macro}%^^A \scr@pti@ntest
-% \end{macro}%^^A \scr@optiontest
-%
-% \begin{macro}{\FamilyProcessOptions}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}
-% \changes{v3.11a}{2012/06/11}{Klassen melden falsche Werte nicht
-% selbst als Fehler, sondern informieren nur darüber}
-% \changes{v3.12}{2013/03/04}{Fehlerbehandlung}
-% Es ist zu beachten, dass falsche Werte für Optionen grundsätzlich nicht in
-% der Verarbeitung der Optionen per Info, Warnung oder Fehler gemeldet werden
-% sollten, sondern über setzen von \cs{FamilyKeyState}. Erst, wenn auch andere
-% Familienmitglieder den Wert nicht verarbeiten können, ergibt sich daraus
-% ggf. eine Meldung, die dann von der Verarbeitung hier erzeugt wird.
-% Es wird darauf hingewiesen, dass diese Anweisung nicht reentrant ist. Das
-% bedeutet, dass man es innerhalb der eigenen Ausführung nicht erneut aufrufen
-% darf.
-% \selectlanguage{english}%
+% \begin{macro}{\scr@removeunused,\scr@optiontest,\scr@pti@ntest}
+% \changes{v2.97c}{2007/04/18}{added}
+% \changes{v3.12}{2013/03/04}{removed}
+% \end{macro}^^A \scr@removeunused,\scr@optiontest,\scr@pti@ntest
+%
+% \begin{command}{\FamilyProcessOptions}
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.11a}{2012/06/11}{classes do not report errors for unknown values}
+% \changes{v3.12}{2013/03/04}{error handling}
% \changes{v3.33}{2021/03/02}{new version using raw options lists of \LaTeX{}
-% 2021/05/01}
-% Note, we use 2021/05/01 instead of the official \LaTeX{} release date,
-% because there were relevant earlier \LaTeX{} developer releases with that
-% date.
+% 2021/05/01}
+% Note: Wrong values should not result in errors or warnings and only seldom
+% in information. The best is to signal all kind of errors via
+% \cs{FamilyKeyState}. Only values, that cannot be handled by any family
+% member have to be reported. This is done inside \cs{FamilyProcessOptions}
+% depending on \cs{FamilyKeyState} of each member.
+% Note also: This command is not re-entrant. So it cannot be used while
+% processing another option.
+% Note also: We use 2021/05/01 instead of the official \LaTeX{} release date,
+% to detect a \LaTeX{} kernel version with raw option lists, because there
+% were relevant earlier \LaTeX{} developer releases with that date.
% \begin{macrocode}
%<*base>
\IncludeInRelease{2021/05/01}{\FamilyProcessOptions}%
@@ -948,7 +898,7 @@
% If this is not a class, we first have to process all raw class options.
% \changes{v3.33}{2021/03/12}{switched to fast test like \LaTeX{} 2021/06/01}
% \changes{v3.34}{2021/05/30}{use \cs{@raw@classoptionslist} only, if defined}
-% Note, if \Package{scrbase} or a depending package is loaded before the class,
+% Note, if \pkg*{scrbase} or a depending package is loaded before the class,
% \cs{@raw@classoptionslist} should not be processed.
% \begin{macrocode}
\ifx\@currext\@clsextension\else
@@ -1044,7 +994,6 @@
\EndIncludeInRelease
% \end{macrocode}
% And here the old version for old \LaTeX{} kernel version:
-% \selectlanguage{ngerman}%
% \begin{macrocode}
\IncludeInRelease{0000/00/00}{\FamilyProcessOptions}%
{Usage of raw or classic option list}
@@ -1061,11 +1010,10 @@
}%
\fi
% \end{macrocode}
-% \changes{v3.18}{2015/06/17}{new hooks before processing the options}%^^A
-% Ab Version~3.18 werden hier außerdem zwei Haken ausgeführt. Der erste gilt
-% dabei für alle Klassen und Pakete einer Familie und löscht sich nicht
-% selbst. Der zweite dagegen gilt nur ein einziges Mal für dieses eine
-% Mitglied.
+% \changes{v3.18}{2015/06/17}{new hooks before processing the options}
+% From version 3.18 we execute two hooks. The first one is valid for all
+% classes and packages of a family. This is multi-time hook, not deleting
+% itself. The second one is valid only one time for one member.
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@before@process@options@#2@hook}{}{%
\@nameuse{scr@before@process@options@#2@hook}%
@@ -1076,22 +1024,21 @@
\relax
}%
% \end{macrocode}
-% \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie
-% statt des Mitglieds}%^^A
-% Jetzt \cs{AtEndOfFamilyOptions} samt Haken initialisieren.
+% \changes{v3.23}{2017/02/16}{fix: the after hook uses the family instead of
+% the member}
+% Initialization of \cs{AtEndOfFamilyOptions} inclusive hook.
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@after@options@#2@hook}{%
\@namedef{scr@after@options@#2@hook}{%
% \end{macrocode}
-% Die erste Aktion im Haken wird sein, den Haken selbst zu löschen.
+% The first hook action is to delete the hook.
% \begin{macrocode}
\@namedef{scr@after@options@#2@hook}{}%
}%
}{%
\expandafter\edef\csname scr@after@options@#2@hook\endcsname{%
% \end{macrocode}
-% Die erste Aktion im Haken wird sein, die jetzige Form des Hakens wieder
-% herzustellen.
+% The first action in the hook is to reactivate the current hook.
% \begin{macrocode}
\noexpand\@namedef{scr@after@options@#2@hook}{%
\unexpanded\expandafter\expandafter\expandafter
@@ -1100,52 +1047,47 @@
}%
}%
% \end{macrocode}
-% \changes{v3.23}{2017/02/16}{neuer Haken für \cs{AtEndOfFamilyOptions*}}%^^A
-% Seit Version 3.23 wird hier auch der neuen Haken vor
-% \cs{AtEndOfFamilyOptions*} initialisiert und ausgeführt. Erkannt wird die
-% oberste Ebene hier einfach an der Definition von \cs{AtEndOfFamilyOptions},
-% weil das schneller geht als die Erkennung über die Definition des Hakens
-% selbst (wie sie in \cs{FamilyOptions} verwendet werden muss).
+% \changes{v3.23}{2017/02/16}{new hook added for \cs{AtEndOfFamilyOptions*}}
+% From version 3.23 there is one more hook before \cs{AtEndOfFamilyOptions*}
+% to be initialized and executed. We can detect the topmost level comparing
+% the definition of \cs{AtEndOfFamilyOptions}. This is faster than by the
+% definition of the hook itself (we have to do so in \cs{FamilyOptions}).
% \begin{macrocode}
\ifx\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
\@namedef{scr@after@options@#2@hook@topmost}{%
% \end{macrocode}
-% Auch dieser Haken wird so definiert, dass er sich bei seiner Ausführung als
-% erstes selbst löscht. Das ist auch für rekursive Aufrufe wichtig, um tiefere
-% Ebenen eindeutig von der höchsten Ebene unterscheiden zu können.
+% The hook definitions also contains the hook deletion. This is important for
+% recursive calls, to distinguish lower levels from the topmost level.
% \begin{macrocode}
\@namedef{scr@after@options@#2@hook@topmost}{}%
}%
% \end{macrocode}
-% Der Top-Haken wird außerdem zusammen mit dem Zurücksetzen der Definition von
-% \cs{AtEndOfFamilyOptions} in den Haken der (obersten) Ebene
-% eingefügt.
+% The top hook is added to the hook of the (topmost) level, while resetting
+% the definition of \cs{AtEndOfFamilyOptions}.
% \begin{macrocode}
\expandafter\l@addto@macro\csname scr@after@options@#2@hook\endcsname{%
\let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
\@nameuse{scr@after@options@#2@hook@topmost}%
}%
% \end{macrocode}
-% Natürlich darf nicht vergessen werden, den Befehl für das Befüllen der
-% beiden Haken nun von der direkten Ausführung eben auf das Befüllen der Haken
-% umzustellen.
+% Don't forget to change the command to fill one of the hooks from immediate
+% execution to adding code to the corresponding hook.
% \begin{macrocode}
\let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions
\fi
% \end{macrocode}
-% Jetzt geht es weiter mit der Adaption des Codes aus \cs{ProcessOptions}.
+% Continue the adaption of code from \cs{ProcessOptions}.
% \begin{macrocode}
\let\ds@\@empty
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
\ifx\@currext\@clsextension\else
% \end{macrocode}
-% Bei Klassen ist die aktuelle Optionenliste gleichzeitig die globale
-% Optionenliste. Daher dürften Klassen nicht auch noch die globale Optionliste
-% verarbeiten. Paket verarbeiten jedoch auch die globale Optionenliste, geben
-% dazu jedoch keine Fehler oder Warnungen aus.
-% \changes{v3.18}{2015/06/17}{Behandlung von undefiniertem
-% \cs{@globaloptionslist}}%^^A
-% \changes{v3.20}{2016/02/06}{\cs{@globaloptionslist} immer neu zuweisen}%^^A
+% Within classes the current option list is same like the global option
+% list. So classes are not allowed to process the global option list
+% additionally to the local one. But packages do process the global option
+% list, but do not report errors or warnings about these options.
+% \changes{v3.18}{2015/06/17}{handling of not defined \cs{@globaloptionslist}}
+% \changes{v3.20}{2016/02/06}{\cs{@globaloptionslist} assignment always}
% \begin{macrocode}
\let\@globaloptionslist\@classoptionslist
\scr@ifundefinedorrelax{XKV@classoptionslist}{%
@@ -1161,10 +1103,10 @@
\scr@ifundefinedorrelax{@globaloptionslist}{}{%
\@for\CurrentOption:=\@globaloptionslist\do{%
% \end{macrocode}
-% Die Optionen werden in der Reihenfolge verarbeitet, in der sie als globale
-% Optionen angegeben wurden. Dabei werden nur Optionen verarbeitet, die nicht
-% leer sind und die im aktuellen Paket bekannt sind. Das sind also keine
-% \textsf{keyval}-Optionen, sondern normale \LaTeX-Optionen.
+% The options are processed in the order they have been set into the global
+% option list. But only these options are processed, that are not empty and
+% that are known by the current package. So these are only classic options not
+% \pkg{keyval} options.
% \begin{macrocode}
\ifx\CurrentOption\@empty\else
\@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}%
@@ -1173,13 +1115,11 @@
\expandafter\let\csname ds@\CurrentOption\endcsname\@empty
\else
% \end{macrocode}
-% Wenn die Option keine \LaTeX-Option ist, kann sie noch immer eine
-% \textsf{keyval}-Option sein. In diesem Fall wird geprüft, ob das
-% Mitglied (\#1) eine Option in der Familie (\#2) hat. Wenn das der Fall ist,
-% wird die Option unmittelbar ausgeführt und zwar einmal ohne Mitglied (also
-% Optionen, die global der Familie gehören) und dann mit Mitglied. Im Fall
-% einer unbekannnten Option oder eines unbekannten Wertes, geschieht hier gar
-% nichts.
+% But if they are not classic options, they could be \pkg{keyval} options. In
+% this case we test, if member (\texttt{\#1}) of family (\texttt{\#2}) has
+% such an option. If this is the case, the options is executed once with
+% member and once again with member. In case of an unknown key or value
+% nothing else happens.
% \begin{macrocode}
\scr@ifprocess@curroption{#1}{#2}{%
\@expandtwoargs\@removeelement\CurrentOption
@@ -1191,25 +1131,24 @@
}%
\fi
% \end{macrocode}
-% Sowohl für Klassen als auch für Pakete werden nun die aktuellen Optionen
-% abgearbeitet. In diesem Fall ist zu beachten, dass nicht definierte Optionen
-% oder unbekannte Werte für Optionen unmittelbar zu einem Fehler führen, wenn
-% es sich um ein Paket handelt. Bei Klassen landet die Option hingegen in der
-% Liste der nicht benutzten globalen Optionen.
+% Now, processing local options of classes and packages follows. In this case
+% unknown options (keys) or values of packages immediately can result in error
+% messages. But in classes they are only added to the list of unused global
+% options.
% \begin{macrocode}
\@for\CurrentOption:=\@curroptions\do{%
% \end{macrocode}
-% \changes{v3.26}{2018/10/22}{Optionen werden für Tests etc. nicht mehr
-% vollständig expandiert}%^^A
-% \changes{v3.26}{2018/10/22}{\cs{@use@ption} wird für key-value-Optionen
-% nicht mehr aufgerufen}%^^A
-% Ab \KOMAScript~3.26 wird für den Test, ob eine Option als normale Option
-% existiert, die Option nicht mehr komplett expandiert. Da die wirklich
-% notwendige Expansion bereits erfolgt ist, verhindert das Fehler wegen
-% angeblich fehlendem \cs{endcsname}. Gleichzeitig wird für key-value-Optionen
-% \cs{@use@ption} nicht mehr aufgerufen, da das darin enthaltene
-% |\csname ds@\CurrentOption\endcsname| dasselbe Problem hat. Stattdessen wird
-% die Option nur noch aus der Liste der nicht verwendeten Optionen entfernt.
+% \changes{v3.26}{2018/10/22}{options are not fully expanded for the tests}
+% \changes{v3.26}{2018/10/22}{\cs{@use@ption} is not used for
+% \texttt{\meta{key}\quotechar=\meta{value}} options}
+% From \KOMAScript~3.26 the options are not fully expanded to test, if it is a
+% classic option. The essential expansion already has been done. So removing
+% the full expansion avoids errors because of missing
+% \cs{endcsname}. Additionally using \cs{@use@option} hat been removed for all
+% \texttt{\meta{key}=\meta{value}} options, because this would result in the
+% same error because of the |\csname ds@\CurrentOption\endcsname|, that is
+% used inside \cs{@use@option}. Instead of \cs{@use@option} we just remove the
+% option from the list of unused options.
% \begin{macrocode}
\edef\reserved@a{\expandafter\detokenize\expandafter{\CurrentOption}}%
\scr@ifundefinedorrelax{ds@\reserved@a}{%
@@ -1219,9 +1158,11 @@
}\@use@ption
}%
% \end{macrocode}
-% Fast zum Schluss wird wir im \LaTeX-Kern der Optionencode für alle
-% deklarierten \LaTeX-Optionen gelöscht und dafür gesorgt, dass nach dem Paket
-% keine unverarbeiteten Optionen mehr vorhanden sind.
+% Almost at the end we delete the options code of all declared options. This
+% is the same as with the \LaTeX{} kernel command
+% \cs{ProcessOptions*}. Additionally at the end of the package (not
+% \pkg*{tocbasic} but the package, that is using the command) all unprocessed
+% options are processed.
% \changes{v3.33}{2021/02/15}{prepared for \LaTeX{} 2020/10/01}
% \begin{macrocode}
\@for\CurrentOption:=\@declaredoptions\do{%
@@ -1236,23 +1177,20 @@
\AtEndOfPackage{\let\@unprocessedoptions\relax}%
}%
% \end{macrocode}
-% Jetzt muss noch der Hook ausgeführt und wieder gelöscht werden.
-% \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie
-% statt des Mitglieds}%^^A
+% Last but not least the hook has to be executed and (self-)deleted.
+% \changes{v3.23}{2017/02/16}{fix using family instead of member}
% \begin{macrocode}
\@nameuse{scr@after@options@#2@hook}%
}
\EndIncludeInRelease
\@onlypreamble\FamilyProcessOptions
% \end{macrocode}
-% \begin{macro}{\BeforeFamilyProcessOptions}
-% \changes{v3.18}{2015/06/17}{neu}
-% Über diese Anweisung kann man Code unmittelbar vor Ausführung von
-% \cs{FamilyProcessOptions} ausgeführt werden. Dabei muss zur Verwendung
-% des Hakens weder das Mitglied noch die Familie existieren. Man kann dies
-% also beispielsweise auch verwenden, um unmittelbar vor der Ausführung der
-% Optionen eines Pakets oder einer Klasse einzugreifen noch bevor das Paket
-% oder die Klasse geladen ist.
+% \begin{command}{\BeforeFamilyProcessOptions}
+% \changes{v3.18}{2015/06/17}{added}
+% Add code to the hook used immediately before executing the options via
+% \cs{FamilyProcessOptions}. Neither the family nor the member need to
+% exist. So you are able to already add code to the hook before the class or
+% package has been loaded.
% \begin{macrocode}
\newcommand*{\BeforeFamilyProcessOptions}[3][.\@currname.\@currext]{%
\scr@ifundefinedorrelax{scr@before@process@options@#2#1@hook}{%
@@ -1263,23 +1201,20 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \BeforeFamilyProcessOptions
-% \begin{macro}{\AtEndOfFamilyOptions}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung}%^^A
-% \changes{v3.23}{2017/02/16}{Sternvariante}%^^A
-% Mit dieser Option kann innerhalb der Ausführung einer Option Material auf
-% das Ende der aktuellen \cs{FamilyProcessOptions}, \cs{FamilyExecuteOptions},
-% \cs{FamilyOptions} oder \cs{FamilyOption} verzögert werden. Als einziges
-% Argument wird der zu verzögernde Code erwartet, der an \cs{l@addto@macro}
-% delegiert wird. Die Normalvariante verzögert bei verschachtelten
-% \cs{FamilyOptions} bis zum Ende der aktuellen Schachtet, die Sternvariante
-% bis zum Ende der äußeren Schachtel.
+% \end{command}^^A \BeforeFamilyProcessOptions
+% \begin{command}{\AtEndOfFamilyOptions}
+% \changes{v3.12}{2013/03/04}{added}
+% \changes{v3.23}{2017/02/16}{star variant added}
+% Inside the code of an option you can delay execution of code till the end of
+% the current \cs{FamilyProcessOptions}, \cs{FamilyExecuteOptions},
+% \cs{FamilyOptions} or \cs{FamilyOption}. The only argument is the code. The
+% argument is delegated to \cs{l@addto@macro} (instead of reading it
+% directly). The non-star variant delays only till the end of the current
+% level. The star-variant delays till the end of all levels.
% \begin{macro}{\scr@AtEndOfFamilyOptions}
-% \changes{v3.12}{2013/05/29}{Neue Anweisung (intern)}%^^A
-% \begin{macro}{\scr@@AtEndOfFamilyOptions}
-% \changes{v3.23}{2017/02/16}{Neue Anweisung (intern)}%^^A
-% \begin{macro}{\scr@AtEndOfFamilyOptions@immediate}
-% \changes{v3.23}{2017/02/16}{Neue Anweisung (intern)}%^^A
+% \changes{v3.12}{2013/05/29}{added}
+% \begin{macro}{\scr@@AtEndOfFamilyOptions,\scr@AtEndOfFamilyOptions@immediate}
+% \changes{v3.23}{2017/02/16}{added}
% \begin{macrocode}
\newcommand*{\scr@AtEndOfFamilyOptions}{%
\kernel@ifstar {\scr@@AtEndOfFamilyOptions{@topmost}}%
@@ -1295,32 +1230,24 @@
\newcommand*{\AtEndOfFamilyOptions}{}
\let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
% \end{macrocode}
-% \end{macro}%^^A \scr@AtEndOfFamilyOptions@immediate
-% \end{macro}%^^A \scr@@AtEndOfFamilyOptions
-% \end{macro}%^^A \scr@AtEndOfFamilyOptions
-% \end{macro}%^^A \AtEndOfFamilyOptions
+% \end{macro}^^A \scr@@AtEndOfFamilyOptions,\scr@AtEndOfFamilyOptions@immediate
+% \end{macro}^^A \scr@AtEndOfFamilyOptions
+% \end{command}^^A \AtEndOfFamilyOptions
% \begin{macro}{\scr@ifprocess@curroption}
-% \changes{v3.13}{2014/01/04}{\cs{CurrentOption} innerhalb von \cs{setkeys}
-% in Klammern gesetzt}%^^A
-% Dieses Makro führt eine aktuelle \textsf{keyval}-Option für das angegebene
-% Mitglied (\#1) der angegebenen Familie (\#2) aus. Falls die Option keinen
-% entsprechenden Wert hat, wird das vierte Argument ausgeführt, anderenfalls
-% nicht. Es ist zu beachten, dass vor der Option des Mitglieds die
-% Familien-Option auszuführen ist. Ggf. benötigt das Mitglied dann keine
-% entsprechende Option.
+% \changes{v3.13}{2014/01/04}{brackets around \cs{CurrentOption} inside \cs{setkeys}}
+% This macro executes the current \pkg{keyval} option for member
+% \texttt{\#1} of family \texttt{\#2}. If the option does not know the value,
+% the forth argument is used. Otherwise it is ignored. Note, before the member
+% option the family option is executed. If this is successful the member does
+% not need to know the option.
% \begin{macrocode}
\newcommand*\scr@ifprocess@curroption[2]{%
% \end{macrocode}
-% \changes{v3.26}{2018/10/22}{\cs{scr@sp@def} statt \cs{def} für das Abtrennen
-% des Schlüssels}%^^A
-% Da am 21. Oktober 2018 eine Diskussion begann, die darauf hindeutet, dass
-% das Entfernen der Leerzeichen in der Optionenliste sich jederzeit ändern
-% könnte, wird hier (und an einer weiteren Stelle) nun \cs{scr@sp@def}
-% verwendet, um den Schlüssel zu erhalten. Allerdings genügt dies nicht, falls
-% irgendwann tatsächlich gar keine Leerzeichen mehr entfernt werden. Dann
-% müsste nämlich der komplette Parser umgeschrieben werden. Ich bin alles
-% andere als begeistert von der Tatsache, dass hier im \LaTeX-Kern Jahrzehnte
-% altes Verhalten ohne Rücksicht auf Verluste zur Disposition gestellt wird.
+% \changes{v3.26}{2018/10/22}{using \cs{scr@sp@def} instead of \cs{def} for
+% splitting the key}
+% Because white spaces are not always and forever removed from the option
+% list, here \cs{scr@sp@def} is used to eliminate unwanted white spaces before
+% the key, before and after the equal sign and at the end of the value.
% \begin{macrocode}
\def\reserved@a##1=##2\@nil{\scr@sp@def\reserved@a{##1}}%
\expandafter\reserved@a\CurrentOption=\@nil
@@ -1388,26 +1315,14 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\scr@sp@def}
-% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
-% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}%^^A
-% \changes{v3.26b}{2019/01/17}{\cs{long}}%^^A
-% \begin{macro}{\scr@sp@d}
-% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
-% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}%^^A
-% \begin{macro}{\scr@sp@b}
-% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
-% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}%^^A
-% \changes{v3.26b}{2019/01/17}{\cs{long}}%^^A
-% \begin{macro}{\scr@sp@c}
-% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
-% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}%^^A
-% \changes{v3.26b}{2019/01/17}{\cs{long}}%^^A
-% Die Hilfsanweisung \cs{scr@sp@def} definiert eine Anweisung (erstes
-% Argument) mit einer Tokenliste (zweites Argument) und entfernt dabei
-% führende und abschließende Leerzeichen. Die Anweisung stammt ursprünglich
-% aus \textsf{keyval}. Der Rest sind Hilfsanweisungen für die Implementierung
-% der Hilfsanweisung.
+% \begin{macro}{\scr@sp@d,\scr@sp@b,\scr@sp@c,\scr@sp@def}
+% \changes{v3.26}{2018/08/29}{moved from \file{tocbasic.dtx} to
+% \file{scrkernel-basics.dtx} and renamed}
+% \changes{v3.26b}{2019/01/17}{\cs{long}}
+% The helper macro \cs{scr@sp@def} defines a macro (\texttt{\#1}) to contain a
+% token list (\texttt{\#2}) and removes tailing spaces at the beginning an the
+% end. The original definition was from \pkg{keyval}. The other macros are
+% helpers to realize \cs{scr@sp@def}.
% \begin{macrocode}
\def\@tempa#1{%
\long\def\scr@sp@def##1##2{%
@@ -1424,67 +1339,62 @@
\long\def\scr@sp@c#1\@nil#2\relax#3{\@temptokena{#1}\edef#3{\the\@temptokena}}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@sp@c
-% \end{macro}%^^A \scr@sp@b
-% \end{macro}%^^A \scr@sp@d
-% \end{macro}%^^A \scr@sp@def
-% \end{macro}%^^A \scr@process@curroption
-% \end{macro}%^^A \FamilyProcessOptions
-%
-% \begin{macro}{\KOMAProcessOptions}
-% \changes{v2.97c}{2007/04/18}{neu}%
-% \changes{v3.00}{2008/04/30}{kein optionales Argument mehr}%
-% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch
-% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der
-% sie verwendet wurden aus -- zuerst globale Optionen, dann lokale
-% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem
-% Unterschied, dass eben auch die keyval-Optionen abgearbeitet
-% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen
-% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen
-% keyval-Optionen ausgeführt.
+% \end{macro}^^A \scr@sp@d,\scr@sp@b,\scr@sp@c,\scr@sp@def
+% \end{macro}^^A \scr@process@curroption
+% \end{command}^^A \FamilyProcessOptions
+%
+% \begin{command}{\KOMAProcessOptions}
+% \changes{v2.97c}{2007/04/18}{added}
+% \changes{v3.00}{2008/04/30}{no optional argument}
+% This command executes all options, not only classic declared by
+% \cs{DeclareOption} or \cs{DeclareOption*}, but also \pkg{keyval} options in
+% the order these options have been used (not declared). For packages first
+% the global options, than the local options. For classes global and local
+% options are the same and only local options are processed. This is similar
+% to the \LaTeX{} kernel command \cs{ProcessOptions*} (with the difference of
+% processing \pkg{keyval} options too). Family options are always executed
+% before member options.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}}
\@onlypreamble\KOMAProcessOptions
%</koma>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\scr@trim@spaces}
-% \changes{v3.12}{2013/11/06}{neu (intern)}
-% \changes{v3.26}{2018/08/29}{von \texttt{scrkernel-language.dtx} nach
-% \texttt{scrkernel-basics.dtx} verschoben}
+% \changes{v3.12}{2013/11/06}{added}
+% \changes{v3.26}{2018/08/29}{moved from \file{scrkernel-language.dtx} to
+% \file{scrkernel-basics.dtx}}
% \changes{v3.33}{2021/03/02}{moved to preparation section}
-% Diese Hilfsanweisung entfernt führende und abschließende
-% Leerzeichen. Argument ist die Anweisung, deren Inhalt von den Leerzeichen
-% befreit werden soll. Gedacht ist das ganze für die Listenverarbeitung mit
-% Hilfe von \cs{@for}. Als Argument wird ein Makro übergeben, in dessen
-% Definition führende und abschließende space-Tokens entfernt werden sollen.
+% Helper macro to remove white spaces from the beginning or the end. This is
+% useful for list processing with \cs{@for} to remove spaces before or after
+% commas. The argument is a macro with the string to be trimmed and the result
+% is stored again in this macro.
% \begin{macrocode}
%<*base>
\newcommand\scr@trim@spaces[1]{%
\expandafter\scr@sp@def\expandafter#1\expandafter{#1}%
}
%</base>
+%</prepare>
% \end{macrocode}
-% \end{macro}%^^A \scr@trim@space
+% \end{macro}^^A \scr@trim@space
%
-% \iffalse
-%</prepare>
-%<*option>
-% \fi
%
% \begin{option}{internalonly}
-% \changes{v2.96}{2006/11/26}{neu}%^^A
-% \changes{v2.97c}{2007/06/20}{geht auch ohne Argument}%^^A
-% \changes{v3.27a}{2019/11/04}{\cs{FamilyKeyStateProcessed} ergänzt}%^^A
-% \changes{v3.27a}{2019/11/04}{nur innerhalb des Pakets definiert}%^^A
-% \changes{v3.27a}{2019/11/04}{temporär in den Klassen definiert}%^^A
-% \changes{v3.28}{2019/11/18}{Option ist veraltet}%^^A
+% \changes{v2.96}{2006/11/26}{added}
+% \changes{v2.97c}{2007/06/20}{no argument needed}
+% \changes{v3.27a}{2019/11/04}{\cs{FamilyKeyStateProcessed} added}
+% \changes{v3.27a}{2019/11/04}{defined only inside the package}
+% \changes{v3.27a}{2019/11/04}{defined temporary inside the classes}
+% \changes{v3.28}{2019/11/18}{deprecated}
% \begin{macro}{\dont@let@as@internal@defined}
-% \changes{v2.96}{2006/11/26}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{entfernt}%^^A
+% \changes{v2.96}{2006/11/26}{added}
+% \changes{v3.28}{2019/11/18}{removed}
+% \end{macro}
% \begin{macrocode}
+%<*option>
%<*base>
\DefineFamily{KOMA}
\DefineFamilyMember{KOMA}
@@ -1497,10 +1407,10 @@
}
%</base>
% \end{macrocode}
-% Da \textsf{scrbase} von den Klassen bereits vor der Verarbeitung der
-% Optionen geladen wird, wird die Option zwar verarbeitet aber dann trotzdem
-% als unbekannt gemeldet. Das kann man notdürftig beheben, indem die Klasse
-% vorrübergehend eine Dummy-Option erhält.
+% If \pkg*{scrbase} has been loaded before the class, the option will be
+% reported as unused, despite it already has been processed. We could solve
+% this using a dummy option inside the classes. However, because the option is
+% deprecated the following code should never been used.
% \begin{macrocode}
%</option>
%<*load&class&neveruse>
@@ -1511,29 +1421,24 @@
%</load&class&neveruse>
%<*option>
% \end{macrocode}
-% \end{macro}
% \end{option}
%
%
-% \changes{v2.96}{2006/08/20}{Optionen werden abgearbeitet}%^^A
-% \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions}%^^A
-% abgearbeitet}
+% \changes{v2.96}{2006/08/20}{processing options}
+% \changes{v2.97c}{2007/04/18}{using \cs{KOMAProcessOptions} for processing options}
% \begin{macrocode}
%<koma>\KOMAProcessOptions\relax
%<base>\FamilyProcessOptions{KOMA}\relax
-% \end{macrocode}
-%
-% \iffalse
%</option>
%<*body>
-% \fi
+% \end{macrocode}
+%
%
-% \subsection{Ein wenig zusätzliche Mathematik für \eTeX}
+% \subsection{Some additional math missing from \eTeX}
%
-% \begin{macro}{\XdivY}
-% \changes{v3.05a}{2010/03/10}{Neu}%^^A
-% Ergebnis ist erster Argument durch zweites abgerundet auf die nächst
-% kleinere ganze Zahl.
+% \begin{command}{\XdivY}
+% \changes{v3.05a}{2010/03/10}{added}
+% \meta{X} divided by \meta{Y} and rounded to the lower integer.
% \begin{macrocode}
%<*base>
\newcommand*{\XdivY}[2]{%
@@ -1541,11 +1446,11 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\XmodY}
-% \changes{v3.05a}{2010/03/10}{Neu}%^^A
-% Ergebnis ist erstes Argument modulo zweites Argument.
+% \begin{command}{\XmodY}
+% \changes{v3.05a}{2010/03/10}{added}
+% \meta{X} modulo \meta{Y} (rest of integer division \meta{X} divided by \meta{Y}).
% \begin{macrocode}
%<*base>
\newcommand*{\XmodY}[2]{%
@@ -1553,13 +1458,12 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \subsection{Häufig benötigte Befehle}
+% \subsection{Often needed commands and macros}
%
-% \selectlanguage{english}%^^A
% \begin{macro}{\scr@ForEachTrimmedListElement}
-% \changes{v3.27}{2019/04/16}{new (internal)}%^^A
+% \changes{v3.27}{2019/04/16}{new (internal)}
% Executes \cs{\#2\{\meta{element}\}} for each \meta{element} of the comma
% separated list \#1. Spaces before for after \meta{element} are eliminated
% and empty elements are ignored.
@@ -1581,17 +1485,13 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ForEachTrimmedListElement
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \scr@ForEachTrimmedListElement
%
-% \begin{macro}{\if@atdocument}
-% \changes{v2.95}{2002/12/05}{neuer Schalter}%^^A
-% \begin{macro}{\@atdocumenttrue}
-% \begin{macro}{\@atdocumentfalse}
-% Dieser Schalter wird bei \cs{begin}\texttt{\{document\}} wahr. Er
-% wird von \KOMAScript{} für Befehle verwendet, die sich
-% unterschiedlich verhalten, je nachdem, ob sie in der Präambel oder
-% danach aufgerufen werden.
+% \begin{macro}{\@atdocumenttrue,\@atdocumentfalse,\if@atdocument}
+% \changes{v2.95}{2002/12/05}{added}
+% The boolean switch becomes true while |\begin{document}|. \KOMAScript{} uses
+% it for commands and macros, which are different in the document preamble and
+% the document body.
% \begin{macrocode}
%<*base>
\newif\if@atdocument
@@ -1601,50 +1501,40 @@
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\let@as@internal@defined}
-% \changes{v2.95}{2002/08/19}{neu (intern)}%^^A
-% \changes{v2.95c}{2006/08/12}{Warnung bei Umdefinierung}%^^A
-% \changes{v2.96}{2006/11/26}{Herausreichen von internen Makros als
-% Benutzermakros kann verhindert werden}%^^A
-% \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann
-% generell verhindert werden}%^^A
-% \changes{v3.10}{2010/10/26}{\cs{ignorespaces} beim \cs{document}-Patch
-% ergänzt}
-% \changes{v3.13a}{2014/08/13}{potentielle Leerzeichen durch Zeilenumbruch
-% beseitigt}%^^A
-% \changes{v3.28}{2019/11/18}{entfernt}%^^A
+% \changes{v2.95}{2002/08/19}{added}
+% \changes{v2.95c}{2006/08/12}{warning while redefining}
+% \changes{v2.96}{2006/11/26}{making user commands from internal macros can
+% be banned for single macros}
+% \changes{v2.97c}{2007/06/20}{making user commands from internal macros can
+% generally banned}
+% \changes{v3.10}{2010/10/26}{\cs{ignorespaces} at \cs{document} patch added}
+% \changes{v3.13a}{2014/08/13}{unwanted white spaces removed}
+% \changes{v3.28}{2019/11/18}{removed}
% \end{macro}
%
-% \begin{macro}{\ifundefinedorrelax}
-% \changes{v2.95}{2002/08/21}{neu}%^^A
-% \changes{v2.95c}{2006/08/12}{über interne Anweisung definiert}%^^A
-% \changes{v2.97c}{2007/06/20}{umbenannt von \cs{ifundefined}}%^^A
-% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifundefinedorrelax}}%^^A
-% \changes{v3.29}{2020/01/17}{fix of missing backslash}%^^A
-% \begin{macro}{\Ifundefinedorrelax}%^^A
-% Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber
-% ein undefiniertes Makro nicht als \cs{relax}.
+% \begin{command}{\ifundefined,\ifundefinedorrelax,\Ifundefinedorrelax}
+% \changes{v2.95}{2002/08/21}{added}
+% \changes{v2.95c}{2006/08/12}{using an internal macro to define it}
+% \changes{v2.97c}{2007/06/20}{\cs{ifundefinedorrelax} replaces \cs{ifundefined}}
+% \changes{v3.28}{2019/11/18}{\cs{ifundefinedorrelax} renamed to
+% \cs{Ifundefinedorrelax}}
+% \changes{v3.29}{2020/01/17}{fix of missing backslash}
+% Same as \cs{scr@ifundefinedorrelax} but at user level.
% \begin{macrocode}
%<*base>
\newcommand*{\Ifundefinedorrelax}{\scr@ifundefinedorrelax}%
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ifnotundefined}
-% \changes{v2.95}{2002/08/21}{neu}%^^A
-% \changes{v2.95c}{2006/08/12}{nutzt \eTeX{} wenn möglich}%^^A
-% \changes{v3.02c}{2009/02/19}{\eTeX{} ist zwingend}%^^A
-% \changes{v3.28}{2019/11/18}{umdefiniert in \cs{Ifnotundefined}}%^^A
-% \begin{macro}{\Ifnotundefined}
-% \changes{v3.28}{2019/11/18}{neu Umbenennung von \cs{ifnotundefinded}}%^^A
-% Dieses Makro arbeitet genau umgekehrt zu \cs{ifundefined}. Manchmal
-% ist es ganz nützlich, auch das zu haben. Dieses Makro heißt nicht
-% \cs{ifdefined}, weil \eTeX\ bereits ein solches Primitiv bietet.
+% \begin{command}{\ifnotundefined,\Ifnotundefined}
+% \changes{v2.95}{2002/08/21}{added}
+% \changes{v2.95c}{2006/08/12}{using \eTeX{} if possible}
+% \changes{v3.02c}{2009/02/19}{\eTeX{} is mandatory}
+% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} renamed to \cs{Ifnotundefined}}
+% This is the opposite to \cs{Ifundefinedorrelax}. Sometimes it is useful.
% \begin{macrocode}
%<*base>
\providecommand*{\ifnotundefined}{%
@@ -1665,18 +1555,16 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ifstr}
-% \changes{v2.95}{2004/07/20}{if- und then-Teil werden nicht gefressen}%^^A
-% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef}
-% ersetzt}%^^A
-% \changes{v3.28}{2019/11/18}{umbenannt in \cs{IfStr}}%^^A
-% \begin{macro}{\Ifstr}
-% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifstr}}%^^A
-% Dieses Makro vergleicht zwei Tokenfolgen. Eigentlich müsste es also
-% eher \cs{ifequal} oder ähnlich heißen.
+% \begin{command}{\ifstr,\Ifstr}
+% \changes{v2.95}{2004/07/20}{\meta{if code} and \meta{then code} delegated
+% after the command execution}
+% \changes{v3.04b}{2010/01/29}{\cs{edef} replaced by \cs{protected@edef}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr} (but still
+% available as deprecated command)}
+% This command compares two fully expanded token lists. So an alternative name
+% would be \cs{Ifxequal}.
% \begin{macrocode}
%<*base>
\providecommand*{\ifstr}{%
@@ -1698,16 +1586,14 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\Ifstrstart}
-% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifstrstart}}%^^A
-% \begin{macro}{\ifstrstart}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Falls die Expansion des ersten Arguments mit der Expansion des zweiten
-% Arguments beginnt, wird das dritte Argument ausgeführt, sonst das vierte.
+% \begin{command}{\ifstrstart,\Ifstrstart}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart} (but
+% still available as deprecated command)}
+% If the expansion of the first argument starts with expansion of the second
+% one use the third argument, otherwise the fourth.
% \begin{macrocode}
%<*base>
\providecommand*{\ifstrstart}{%
@@ -1727,8 +1613,8 @@
}
% \end{macrocode}
% \begin{macro}{\@ifstrstart}
-% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A
-% Hilfsmakro, damit die Argumente vollständig expandiert werden können.
+% \changes{v3.12}{2013/11/05}{added}
+% Helper.
% \begin{macrocode}
\newcommand*{\@ifstrstart}[2]{%
\def\reserved@a ##1#2##2\@nil{%
@@ -1742,16 +1628,15 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \@ifstrstart
-% \end{macro}%^^A \ifstrstart
-% \end{macro}%^^A \Ifstrstart
+% \end{macro}^^A \@ifstrstart
+% \end{command}^^A \ifstrstart,\Ifstrstart
%
-% \begin{macro}{\IfArgIsEmpty}
-% \changes{v3.19}{2015/08/29}{neu}%^^A
-% \changes{v3.27}{2019/03/11}{\cs{long}}%^^A
-% \changes{v3.27}{2019/07/19}{wird bereits vor den Optionen benötigt}%^^A
-% Falls das erste Argument tatsächlich leer ist, wird das zweite Argument
-% ausgeführt sonst das dritte.
+% \begin{command}{\IfArgIsEmpty}
+% \changes{v3.19}{2015/08/29}{added}
+% \changes{v3.27}{2019/03/11}{\cs{long}}
+% \changes{v3.27}{2019/07/19}{needed already to process options}
+% If the first argument is absolutely empty execute the second one, otherwise
+% the third one.
%</body>
%<*prepare>
%<*base>
@@ -1767,25 +1652,35 @@
%</base>
%</prepare>
%<*body>
-% \end{macro}%^^A \IfArgIsEmpty
+% \end{command}^^A \IfArgIsEmpty
%
%
-% \begin{macro}{\ifislengthprimitive}
-% \changes{v3.20}{2015/10/19}{neu}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem Primitiv
-% expandiert, das als Länge verwendet werden kann, wird das erste Argument
-% ausgeführt, sonst das zweite.
+% \begin{command}{\ifislengthprimitive,\Ifislengthprimitive}
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.36}{2022/02/17}{\cs{ifislengthprimitive} renamed to
+% \cs{Ifislengthprimitive} (but still defined as deprecated)}
+% If the first argument expands to a primitive, that can be used as a length,
+% execute the second argument, otherwise the third one.
% \begin{macrocode}
%<*base>
-\newcommand*{\ifislengthprimitive}[1]{%
+\providecommand*{\ifislengthprimitive}{%
+ \PackageWarning{scrbase}{Usage of deprecated command
+ `\string\ifislengthprimitive'.\MessageBreak
+ The command has been renamed because of a\MessageBreak
+ recommendation of The LaTeX Project Team.\MessageBreak
+ Please replace `\string\ifislengthprimitive' by `\string\Ifislengthprimitive'%
+ }%
+ \Ifislengthprimitive
+}
+\newcommand*{\Ifislengthprimitive}[1]{%
\IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifislengthprimitive#1\@nil}%
}
% \end{macrocode}
% \begin{macro}{\scr@ifislengthprimitive}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf diverse Primitive prüft.
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Helper macro to test against several length like \TeX{} primitives.
% \begin{macrocode}
\newcommand*{\scr@ifislengthprimitive}[1]{%
\begingroup
@@ -1809,19 +1704,17 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifislengthprimitive
-% \end{macro}%^^A \ifislengthprimitive
+% \end{macro}^^A \scr@ifislengthprimitive
+% \end{command}^^A \ifislengthprimitive,\Ifislengthprimitive
%
%
-% \begin{macro}{\ifisdimen}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisdimen}}%^^A
-% \begin{macro}{\Ifisdimen}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisdimen}}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem
-% \cs{dimen}-Register (und zu nichts weiterem!) expandiert, wird das erste
-% Argument ausgeführt, sonst das zweite.
+% \begin{command}{\ifisdimen,\Ifisdimen}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisdimen} renamed to \cs{Ifisdimen} (but
+% still defined as deprecated command)}
+% If the first argument expands to a \cs{dimen} register (and nothing else),
+% execute the second argument, otherwise the third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisdimen}{%
@@ -1838,9 +1731,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisdimen}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf ein \cs{dimen}-Register prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{dimen} register.
% \begin{macrocode}
\newcommand*{\scr@ifisdimen}[1]{%
\begingroup
@@ -1857,13 +1750,13 @@
#1%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisdimen
+% \end{macro}^^A \scr@ifisdimen
% \begin{macro}{\scr@TestDimenAssignTillNil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
-% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
-% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
-% Argument wird in jedem Fall komplett aufgebraucht.
+% \changes{v3.20}{2015/10/19}{added}
+% Argument \texttt{\#1} delimited by \cs{@nil} is assigned to a temporary
+% length. If this uses the argument completely, the argument \texttt{\#2} behind
+% \cs{@nil} will executed, otherwise argument \texttt{\#3}. In any case
+% \texttt{\#1} will removed from the input totally.
% \begin{macrocode}
\newcommand*\scr@TestDimenAssignTillNil{}
\def\scr@TestDimenAssignTillNil#1\@nil{%
@@ -1872,17 +1765,13 @@
\@tempdima=#1\relax\@nnil
}
% \end{macrocode}
-% \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillNnil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillNnil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Die Hilfsmakros lesen ein durch \cs{@nnil} begrenztes Argument. Falls dieses
-% Argument nur aus einer Folge von \cs{relax} besteht, wird das erste Argument
-% nach \cs{@nnil} ausgeführt, sonst das zweite.
+% \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillNnil,\scr@IfArgIsRelaxAfterRelaxTillNnil}
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% The helper macros read an argument delimited by \cs{@nnil}. If this
+% arguments consists of a number of \cs{relax} only, the second argument (first
+% behind \cs{@nnil}) will be execute, otherwise the third (second behind \cs{@nnil}).
% \begin{macrocode}
\newcommand*\scr@AfterEndGroupIfArgIsRelaxTillNnil{}
\def\scr@AfterEndGroupIfArgIsRelaxTillNnil#1\@nnil{%
@@ -1902,42 +1791,31 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@IfArgIsRelaxAfterRelaxTillNnil
-% \end{macro}%^^A \scr@IfArgIsRelaxTillNnil
-% \end{macro}%^^A \scr@TestSkipAssignTillNil
-% \begin{macro}{\scr@secondoftwoAfterNil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% Das Hilfsmakro liest ein durch \cs{@nil} begrenztes Argument und führt dann
-% das zweite Argument nach \cs{@nil} aus. Dabei wird auch Sorge dafür getrage,
-% dass das Argument eventuell leer sein könnte, was normalerweise dazu führen
-% würde, dass \cs{@nil} zum Argument selbst wird.
-% \begin{macro}{\scr@@secondoftwoAfterNil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% Zu diesem Zweck wird ein zweites Hilfsmakro benötigt.
+% \end{macro}^^A \scr@IfArgIsRelaxTillNnil,\scr@IfArgIsRelaxAfterRelaxTillNnil
+% \end{macro}^^A \scr@TestSkipAssignTillNil
+% \begin{macro}{\scr@@secondoftwoAfterNil,\scr@secondoftwoAfterNil}
+% \changes{v3.20}{2015/10/19}{added}
+% The helper macros reads arguments \texttt{\#1} delimited by \cs{@nil} and
+% executes \texttt{\#3}. We have to take care for the case of an empty first
+% argument, which would make \cs{@nil} to be the argument. Because of this we
+% need two helpers.
% \begin{macrocode}
\newcommand*{\scr@secondoftwoAfterNil}{\scr@@secondoftwoAfterNil\@empty}
\newcommand*{\scr@@secondoftwoAfterNil}{}
\def\scr@@secondoftwoAfterNil#1\@nil{\@secondoftwo}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@@secondoftwoAfterNil
-% \end{macro}%^^A \scr@secondoftwoAfterNil
-% \end{macro}%^^A \Ifisdimen
-% \end{macro}%^^A \ifisdimen
-%
-% \begin{macro}{\ifisskip}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.18a}{2015/07/07}{\cs{baselineskip} und \cs{parskip} werden als
-% skips akzeptiert}%^^A
-% \changes{v3.20}{2015/10/19}{\cs{baselineskip} und \cs{parskip} sind keine
-% skips}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisskip}}%^^A
-% \begin{macro}{\Ifisskip}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisskip}}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem
-% \cs{skip}-Register (und zu nichts weiterem!) expandiert, wird das erste
-% Argument ausgeführt, sonst das zweite.
+% \end{macro}^^A \scr@@secondoftwoAfterNil,\scr@secondoftwoAfterNil
+% \end{command}^^A \ifisdimen,\Ifisdimen
+%
+% \begin{command}{\ifisskip,\Ifisskip}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.18a}{2015/07/07}{\cs{baselineskip} and \cs{parskip} are skips}
+% \changes{v3.20}{2015/10/19}{\cs{baselineskip} and \cs{parskip} are not skips}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisskip} renamed to \cs{Ifisskip}}
+% If the first argument expands to a \cs{skip} register (and nothing else),
+% execute the second argument, otherwise the third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisskip}{%
@@ -1954,9 +1832,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisskip}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf ein \cs{skip}-Register prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{skip} register.
% \begin{macrocode}
\newcommand*{\scr@ifisskip}[1]{%
\begingroup
@@ -1973,13 +1851,13 @@
#1%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisskip
+% \end{macro}^^A \scr@ifisskip
% \begin{macro}{\scr@TestSkipAssignTillNil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
-% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
-% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
-% Argument wird in jedem Fall komplett aufgebraucht.
+% \changes{v3.20}{2015/10/19}{added}
+% Argument \texttt{\#1} delimited by \cs{@nil} is assigned to a temporary
+% \cs{skip}. If this uses the argument completely, the argument \texttt{\#2} behind
+% \cs{@nil} will executed, otherwise argument \texttt{\#3}. In any case
+% \texttt{\#1} will removed from the input totally.
% \begin{macrocode}
\newcommand*\scr@TestSkipAssignTillNil{}
\def\scr@TestSkipAssignTillNil#1\@nil{%
@@ -1989,19 +1867,15 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@TestSkipAssignTillNil
-% \end{macro}%^^A \Ifisskip
-% \end{macro}%^^A \ifiskip
+% \end{macro}^^A \scr@TestSkipAssignTillNil
+% \end{command}^^A \ifiskip,\Ifisskip
%
-% \begin{macro}{\ifiscount}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifiscount}}%^^A
-% \begin{macro}{\Ifiscount}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifiscount}}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem
-% \cs{count}-Register (und zu nichts weiterem!) expandiert, wird das erste
-% Argument ausgeführt, sonst das zweite.
+% \begin{command}{\ifiscount,\Ifiscount}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifiscount} renamed to \cs{Ifiscount}}
+% If the first argument expands to a \cs{count} register (and nothing else),
+% execute the second argument, otherwise the third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifiscount}{%
@@ -2018,9 +1892,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifiscount}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf ein \cs{count}-Register prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{count} register.
% \begin{macrocode}
\newcommand*{\scr@ifiscount}[1]{%
\begingroup
@@ -2037,13 +1911,13 @@
#1%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@ifiscount
+% \end{macro}^^A \scr@ifiscount
% \begin{macro}{\scr@TestSkipCountTillNil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
-% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
-% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
-% Argument wird in jedem Fall komplett aufgebraucht.
+% \changes{v3.20}{2015/10/19}{added}
+% Argument \texttt{\#1} delimited by \cs{@nil} is assigned to a temporary
+% counter. If this uses the argument completely, the argument \texttt{\#2} behind
+% \cs{@nil} will executed, otherwise argument \texttt{\#3}. In any case
+% \texttt{\#1} will removed from the input totally.
% \begin{macrocode}
\newcommand*\scr@TestCountAssignTillNil{}
\def\scr@TestCountAssignTillNil#1\@nil{%
@@ -2053,23 +1927,19 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@TestCountAssignTillNil
-% \end{macro}%^^A \Ifiscount
-% \end{macro}%^^A \ifiscount
+% \end{macro}^^A \scr@TestCountAssignTillNil
+% \end{command}^^A \ifiscount,\Ifiscount
%
%
-% \begin{macro}{\ifisdimexpr}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisdimexpr}}%^^A
-% \begin{macro}{\Ifisdimexpr}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisdimexpr}}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer
-% \cs{dimexpr} (und zu nichts weiterem!) expandiert, wird das erste
-% Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
-% wichtigen Punkt von \cs{ifisdimen}: Sollte das ganze zwar als \cs{dimexpr}
-% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
-% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{command}{\ifisdimexpr,\Ifisdimexpr}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisdimexpr} renamed to \cs{Ifisdimexpr}}
+% If the first argument expands to a \cs{dimexpr},
+% execute the second argument, otherwise the third one. There is an important
+% difference to \cs{Ifisdimen}: If the argument begins with \cs{dimexpr} but
+% is not a valid \emph{dimension expression} \cs{Ifisdimexpr} detects a
+% \cs{dimexpr}, but using this expression later will result in an error.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisdimexpr}{%
@@ -2086,9 +1956,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisdimexpr}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf eine \cs{dimexpr} prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{dimexpr}.
% \begin{macrocode}
\newcommand*{\scr@ifisdimexpr}[1]{%
\begingroup
@@ -2106,23 +1976,19 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisdimexpr
-% \end{macro}%^^A \Ifisdimexpr
-% \end{macro}%^^A \ifisdimexpr
+% \end{macro}^^A \scr@ifisdimexpr
+% \end{command}^^A \ifisdimexpr,\Ifisdimexpr
%
%
-% \begin{macro}{\ifisglueexpr}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisglueexpr}}%^^A
-% \begin{macro}{\Ifisglueexpr}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisglueexpr}}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer
-% \cs{glueexpr} (und zu nichts weiterem!) expandiert, wird das erste
-% Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
-% wichtigen Punkt von \cs{ifisskip}: Sollte das ganze zwar als \cs{glueexpr}
-% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
-% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{command}{\ifisglueexpr,\Ifisglueexpr}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisglueexpr} renamed to \cs{Ifisglueexpr}}
+% If the first argument expands to a \cs{glueexpr},
+% execute the second argument, otherwise the third one. There is an important
+% difference to \cs{Ifisskip}: If the argument begins with \cs{glueexpr} but
+% is not a valid \emph{glue expression} \cs{Ifisglueexpr} detects a
+% \cs{göueexpr}, but using this expression later will result in an error.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisglueexpr}{%
@@ -2139,9 +2005,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisglueexpr}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf eine \cs{glueexpr} prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{glueexpr}.
% \begin{macrocode}
\newcommand*{\scr@ifisglueexpr}[1]{%
\begingroup
@@ -2159,23 +2025,19 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisglueexpr
-% \end{macro}%^^A \Ifisglueexpr
-% \end{macro}%^^A \ifisglueexpr
+% \end{macro}^^A \scr@ifisglueexpr
+% \end{command}^^A \ifisglueexpr,\Ifisglueexpr
%
%
-% \begin{macro}{\ifisnumexpr}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisnumexpr}}%^^A
-% \begin{macro}{\Ifisnumexpr}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisnumexpr}}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer
-% \cs{numexpr} (und zu nichts weiterem!) expandiert, wird das erste
-% Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
-% wichtigen Punkt von \cs{Ifiscount}: Sollte das ganze zwar als \cs{numexpr}
-% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
-% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{command}{\ifisnumexpr,\Ifisnumexpr}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisnumexpr} renamed to \cs{Ifisnumexpr}}
+% If the first argument expands to a \cs{numexpr},
+% execute the second argument, otherwise the third one. There is an important
+% difference to \cs{Ifiscount}: If the argument begins with \cs{numexpr} but
+% is not a valid \emph{numerical expression} \cs{Ifisnumexpr} detects a
+% \cs{numexpr}, but using this expression later will result in an error.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisnumexpr}{%
@@ -2192,9 +2054,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisnumexpr}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf eine \cs{numexpr} prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{numexpr}.
% \begin{macrocode}
\newcommand*{\scr@ifisnumexpr}[1]{%
\begingroup
@@ -2212,29 +2074,37 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisnumexpr
-% \end{macro}%^^A \Ifisnumexpr
-% \end{macro}%^^A \ifisnumexpr
+% \end{macro}^^A \scr@ifisnumexpr
+% \end{command}^^A \ifisnumexpr,\Ifisnumexpr
%
%
-% \begin{macro}{\ifisdefchar}
-% \changes{v3.20}{2015/10/19}{neu}%^^A
-% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem mit
-% \cs{chardef} definierten Wert (und zu nichts weiterem!) expandiert, wird das
-% erste Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
-% wichtigen Punkt von \cs{Ifiscount}: Sollte das ganze zwar wie ein \cs{char}
-% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
-% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{command}{\ifisdefchar,\Ifisdefchar}
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.36}{2022/02/17}{\cs{ifisdefchar} renamed to \cs{Ifisdefchar}}
+% If the first argument expands to a value defined using \cs{chardef},
+% execute the second argument, otherwise the third one. Note: If the expanded
+% argument begins with \verb|\char"| but is not a valid \emph{character value}
+% \cs{Ifisdefchar} detects a valid value, but using this value later will
+% result in an error.
% \begin{macrocode}
%<*base>
-\newcommand*{\ifisdefchar}[1]{%
+\providecommand*{\ifisdefchar}{%
+ \PackageWarning{scrbase}{Usage of deprecated command
+ `\string\ifisdefchar'.\MessageBreak
+ The command has been renamed because of a\MessageBreak
+ recommendation of The LaTeX Project Team.\MessageBreak
+ Please replace `\string\ifisdefchar' by `\string\Ifisdefchar'%
+ }%
+ \Ifisdefchar
+}
+\newcommand*{\Ifisdefchar}[1]{%
\IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdefchar#1\@nil}%
}
% \end{macrocode}
% \begin{macro}{\scr@ifisdefchar}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf eine \cs{char} prüft
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro, that tests a macro recursive to expand to a \cs{char}.
% \begin{macrocode}
\newcommand*{\scr@ifisdefchar}[1]{%
\begingroup
@@ -2252,17 +2122,15 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisdefchar
-% \end{macro}%^^A \ifisdefchar
+% \end{macro}^^A \scr@ifisdefchar
+% \end{command}^^A \ifisdefchar,\Ifisdefchar
%
%
-% \begin{macro}{\ifiscounter}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifiscounter}}%^^A
-% \begin{macro}{\Ifiscounter}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifiscounter}}%^^A
-% Falls die Expansion des ersten Arguments ein \LaTeX-Zähler ist, wird das
-% zweite Argument ausgeführt, sonst das dritte.
+% \begin{command}{\ifiscounter,\Ifiscounter}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.28}{2019/11/19}{\cs{ifiscounter} renamed to \cs{Ifiscounter}}
+% If the first argument expands to a \LaTeX{} counter, execute the second
+% argument, otherwise the third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifiscounter}{%
@@ -2285,19 +2153,16 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \Ifiscounter
-% \end{macro}%^^A \ifiscounter
+% \end{command}^^A \ifiscounter,\Ifiscounter
%
%
-% \begin{macro}{\ifisinteger}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A
-% \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisinteger}}%^^A
-% \begin{macro}{\Ifisinteger}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisinteger}}%^^A
-% Falls die Expansion des ersten Arguments eine (positive oder negative) ganze
-% Zahl ist, wird das zweite Argument ausgeführt, sonst das dritte.
+% \begin{command}{\ifisinteger,\Ifisinteger}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.12a}{2014/01/24}{white space removed}
+% \changes{v3.20}{2015/10/19}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisinteger} renamed to \cs{Ifisinteger}}
+% If the first argument expands to a (positive or negative) integer, execute
+% the second argument, otherwise the third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisinteger}{%
@@ -2314,10 +2179,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisinteger}
-% \changes{v3.20}{2015/10/19}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% Hilfsmacro, das ggf. rekusiv auf ein Vorzeichen oder eine positive Zahl
-% prüft.
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% Helper macro to test recursive to a algebraic sign or a number without sign.
% \begin{macrocode}
\def\scr@ifisinteger#1{%
\begingroup
@@ -2386,16 +2250,16 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@ifisinteger
-% \end{macro}%^^A \Ifisinteger
-% \end{macro}%^^A \ifisinteger
+% \end{macro}^^A \scr@ifisinteger
+% \end{command}^^A \ifisinteger,\Ifisinteger
%
%
% \begin{macro}{\scr@ifrelax@to@nnil}
-% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A
-% Hilfsmakro, zur Verwendung beispielsweise nach Zuweissungen. Falls alles bis
-% zum ersten \cs{@nnil} aus genau einem \cs{relax} besteht, wird das erste
-% Argument ausgeführt, sonst das zweite.
+% \changes{v3.12}{2013/11/05}{added}
+% Helper macro to be used after an assignment. If everything until the first
+% \cs{@nnil} is exactly one \cs{relax}, the second argument (first after the
+% \cs{@nnil}) will be executed, otherwise the third argument (second after the
+% \cs{@nnil}).
% \begin{macrocode}
%<*base>
\newcommand*{\scr@ifrelax@to@nnil}{}
@@ -2413,16 +2277,14 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\ifisdimension}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A
-% \changes{v3.20}{2015/10/20}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisdimension}}%^^A
-% \begin{macro}{\Ifisdimension}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisdimension}}%^^A
-% Falls die stufenweise Expansion des ersten Arguments eine (positive oder
-% negative) Länge ist, wird das zweite Argument ausgeführt, sonst das
-% dritte.
+% \begin{command}{\ifisdimension,\Ifisdimension}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.12a}{2014/01/24}{white space removed}
+% \changes{v3.20}{2015/10/20}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisdimension} renamed to \cs{Ifisdimension}}
+% If the step by step expansion of the first argument results in a (positive
+% or negative) length, the second argument will be executed, otherwise the
+% third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisdimension}{%
@@ -2439,16 +2301,15 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisdimension}
-% \changes{v3.20}{2015/10/20}{neu (intern)}
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% \changes{v3.28}{2019/11/23}{Vorzeichenfall \texttt{+} korrigiert}%^^A
-% Eigentlich wäre dieses Hilfsmakro extrem aufwändig, da eine Dimension recht
-% komplex aufgebaut sein darf. Ich habe aber beschlossen, hier mit einer
-% Heuristik zu Werke zu gehen: Wenn das Argument mit einer beliebigen Anzahl
-% Vorzeichen, gefolgt von max. einem Punkt, Komma oder einer Ziffer oder
-% gefolgt einem der für Längen zulässigen Primitiv beginnt, dann probieren wir
-% eine Zuweisung. Ist diese syntaktisch nicht korrekt, kann ein Fehler die
-% Folge sein. Das mag unschön sein, vereinfacht den Test aber erheblich!
+% \changes{v3.20}{2015/10/20}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% \changes{v3.28}{2019/11/23}{arithmetic plus sign fixed}
+% To make this command absolutely correct without false positive and false
+% negative results, it would be very complicated. Instead we use a heuristic:
+% If the argument consists of a arbitrary number of arithmetic signs followed
+% by at most one dot, comma or digit or followed by something, that is a valid
+% lengths primitive, we try an assignment. Invalid assignments can result in
+% errors. This is not the best solution but makes things a lot easier.
% \begin{macrocode}
\newcommand*{\scr@ifisdimension}[1]{%
\begingroup
@@ -2530,11 +2391,12 @@
}
% \end{macrocode}
% \begin{macro}{\scr@TestDimenionAssignTillNil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
-% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
-% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
-% Argument wird in jedem Fall komplett aufgebraucht.
+% \changes{v3.20}{2015/10/19}{added}
+% Argument \texttt{\#1} delimited by \cs{@nil} is assigned to a temporary
+% length. If this uses the argument completely, the argument \texttt{\#2} behind
+% \cs{@nil} will executed, otherwise argument \texttt{\#3}. In any case
+% \texttt{\#1} will removed from the input totally. The difference to
+% \cs{scr@TestDimenAssignTillNil} is the \texttt{pt} test.
% \begin{macrocode}
\newcommand*\scr@TestDimensionAssignTillNil{}
\def\scr@TestDimensionAssignTillNil#1\@nil{%
@@ -2543,14 +2405,10 @@
\@tempdima=#1pt\@nnil
}
% \end{macrocode}
-% \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillptNnil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
-% \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillptNnil}
-% \changes{v3.20}{2015/10/19}{neu (intern)}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A
+% \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillptNnil,\scr@IfAfterEndgroupArgIsRelaxTillptNnil}
+% \changes{v3.20}{2015/10/19}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
% Die Hilfsmakros lesen ein durch \cs{@nnil} begrenztes Argument. Falls dieses
% Argument nur aus einer Folge von \cs{relax} besteht, wird das erste Argument
% nach \cs{@nnil} ausgeführt, sonst das zweite.
@@ -2574,24 +2432,20 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@IfArgIsRelaxAfterRelaxTillptNnil
-% \end{macro}%^^A \scr@IfArgIsRelaxTillptNnil
-% \end{macro}%^^A \scr@DimensionSkipAssignTillNil
-% \end{macro}%^^A \scr@ifisdimension
-% \end{macro}%^^A \Ifisdimension
-% \end{macro}%^^A \ifisdimension
-%
-%
-% \begin{macro}{\ifisglue}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A
-% \changes{v3.20}{2015/10/21}{Reimplementierung}%^^A
-% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisglue}}%^^A
-% \begin{macro}{\Ifisglue}
-% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisglue}}%^^A
-% Falls die stufenweise Expansion des ersten Arguments eine (positive oder
-% negative) Länge mit Leim ist, wird das zweite Argument ausgeführt, sonst das
-% dritte.
+% \end{macro}^^A \scr@IfArgIsRelaxAfterRelaxTillptNnil,\scr@IfAfterEndgroupArgIsRelaxTillptNnil
+% \end{macro}^^A \scr@DimensionSkipAssignTillNil
+% \end{macro}^^A \scr@ifisdimension
+% \end{command}^^A \ifisdimension,\Ifisdimension
+%
+%
+% \begin{command}{\ifisglue}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.12a}{2014/01/24}{white space removed}
+% \changes{v3.20}{2015/10/21}{re-implemented}
+% \changes{v3.28}{2019/11/19}{\cs{ifisglue} renamed to \cs{Ifisglue}}
+% If the step-by-step expansion of the first argument results in a (positive
+% or negativ) length with glue, the second argument is executed, otherwise the
+% third one.
% \begin{macrocode}
%<*base>
\providecommand*{\ifisglue}{%
@@ -2608,19 +2462,17 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifisglue}
-% \changes{v3.20}{2015/10/21}{neu (intern)}
-% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in
-% \cs{Ifstrstart}}%^^A
-% \changes{v3.28}{2019/11/23}{Vorzeichenfall \texttt{+} korrigiert}%^^A
-% \changes{v3.28}{2019/11/23}{im Plusfall \cs{ifisdimension} durch
-% \cs{ifisglue} ersetzt}%^^A
-% Eigentlich wäre dieses Hilfsmakro extrem aufwändig, da Leim recht
-% komplex aufgebaut sein darf. Ich habe aber beschlossen, hier mit einer
-% Heuristik zu Werke zu gehen: Wenn das Argument mit einer beliebigen Anzahl
-% Vorzeichen, gefolgt von max. einem Punkt, Komma oder einer Ziffer oder
-% gefolgt einem der für Leim zulässigen Primitiv beginnt, dann probieren wir
-% eine Zuweisung. Ist diese syntaktisch nicht korrekt, kann ein Fehler die
-% Folge sein. Das mag unschön sein, vereinfacht den Test aber erheblich!
+% \changes{v3.20}{2015/10/21}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% \changes{v3.28}{2019/11/23}{arithmetic plus sign fixed}
+% \changes{v3.28}{2019/11/23}{in plus case \cs{ifisdimension} replaced by
+% \cs{ifisglue}}
+% To make this command absolutely correct without false positive and false
+% negative results, it would be very complicated. Instead we use a heuristic:
+% If the argument consists of a arbitrary number of arithmetic signs followed
+% by at most one dot, comma or digit or followed by something, that is a valid
+% primitive for skips, we try an assignment. Invalid assignments can result in
+% errors. This is not the best solution but makes things a lot easier.
% \begin{macrocode}
\newcommand*{\scr@ifisglue}[1]{%
\begingroup
@@ -2702,11 +2554,12 @@
}
% \end{macrocode}
% \begin{macro}{\scr@TestGlueAssignTillNil}
-% \changes{v3.20}{2015/10/21}{neu (intern)}
-% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
-% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
-% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
-% Argument wird in jedem Fall komplett aufgebraucht.
+% \changes{v3.20}{2015/10/21}{added}
+% Argument \texttt{\#1} delimited by \cs{@nil} is assigned to a temporary
+% \cs{skip}. If this uses the argument completely, the argument \texttt{\#2} behind
+% \cs{@nil} will executed, otherwise argument \texttt{\#3}. In any case
+% \texttt{\#1} will removed from the input totally. The difference to
+% \cs{scr@TestSkipAssignTillNil} is the \texttt{pt} test.
% \begin{macrocode}
\newcommand*\scr@TestGlueAssignTillNil{}
\def\scr@TestGlueAssignTillNil#1\@nil{%
@@ -2716,35 +2569,31 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@TestGlueAssignTillNil
-% \end{macro}%^^A \scr@ifisglue
-% \end{macro}%^^A \Ifisglue
-% \end{macro}%^^A \ifisglue
+% \end{macro}^^A \scr@TestGlueAssignTillNil
+% \end{macro}^^A \scr@ifisglue
+% \end{command}^^A \ifisglue,\Ifisglue
%
%
-% \begin{macro}{\ifnumber}
+% \begin{command}{\ifnumber,\Ifnumber}
% \changes{v3.12}{2013/10/30}{using \cs{aftergroup} instead of
-% \cs{endgroup}\cs{expandafter}}%^^A
-% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A
-% \changes{v3.27}{2019/08/26}{leere Argumente werden korrekt behandelt}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A
-% \begin{macro}{\Ifnumber}
-% \changes{v3.28}{2019/11/18}{Neu aus Umbenennung von \cs{ifnumber}}%^^A
-% Dieses Makro testet, ob ein übergebener Parameter eine positive,
-% ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter
-% ausgeführt, sonst der dritte.
+% \cs{endgroup}\cs{expandafter}}
+% \changes{v3.12a}{2014/01/24}{white space removed}
+% \changes{v3.27}{2019/08/26}{empty arguments fixed}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} renamed to \cs{Ifnumber}}
+% If the first argument is a positive integer, the second argument is
+% executed, otherwise the third.
% \begin{macrocode}
%<*base>
\providecommand*{\ifnumber}{%
% \end{macrocode}
-% Die Warnung darf nicht ausgegeben werden, wenn \textsf{babelbib} geladen
-% wurde, weil das Paket die Anweisung ebenfalls definiert, aber nur, wenn sie
-% nicht bereits definiert war. Dabei werden übrigens teilweise Makronamen mit
-% dem Präfix \cs{scr@} definiert, was ich gar nicht lustig finde. Überhaupt
-% geht das böse in die Hose, wenn \textsf{babelbib} vor \texttt{scrbase}
-% geladen wird, was ja durchaus passieren kann. Möglichweise werde ich daher
-% die Sonderbehandlung an dieser Stelle auch wieder entfernen, sobald ich die
-% Anleitung von \textsf{babelbib} auf \textsf{biblatex} umgestellt habe.
+% Note: We must not output the warning if package \pkg{babelbib} has been
+% loaded, because the package defines the same command but only, if it has not
+% been defined already. Unfortunately and against all conventions, it even
+% defines internal macros of \pkg*{scrbase} with prefix \cs{scr@}. This is
+% very dangerous and would result in errors, if \pkg{babelbib} is loaded
+% before \pkg*{scrbase}. Maybe I will remove this special treatment of
+% \pkg{babelbib} after switching over to \pkg{biblatex} for the \KOMAScript{}
+% manuals.
% \begin{macrocode}
\scr@ifundefinedorrelax{ver@babelbib.sty}{%
\PackageWarning{scrbase}{Usage of deprecated command
@@ -2757,7 +2606,7 @@
\Ifnumber
}
\newcommand\Ifnumber[1]{%
- \begingroup\@tempswafalse\let\scr@next\test@number
+ \begingroup\@tempswafalse\let\scr@next\scr@test@number
\IfArgIsEmpty{#1}{}{\expandafter\scr@next#1\scr@next}%
\if@tempswa
\aftergroup\@firstoftwo
@@ -2767,18 +2616,14 @@
\endgroup
}
% \end{macrocode}
-% \begin{macro}{\test@number}
-% Für den eigentlichen Test wird der erste Parameter Token für Token
-% gescannt und beurteilt.
+% \begin{macro}{\test@number,\scr@test@number}
+% \changes{v3.36}{2022/02/17}{\cs{test@number} renamed to \cs{scr@test@number}}
+% For the real test scan the first argument token by token.
% \begin{macrocode}
-\newcommand*{\test@number}[1]{%
+\newcommand*{\scr@test@number}[1]{%
\ifx \scr@next#1%
\let\scr@next\relax
\else
-% \end{macrocode}
-% Dabei wird für einen schnelleren Vergleich die Tatsache genutzt, dass
-% Ziffernzeichen immer im selben durchgängigen Bereich liegen
-% \begin{macrocode}
\@tempcnta=\expandafter\expandafter\expandafter\number
\expandafter`#1\relax
\ifnum \@tempcnta>47
@@ -2787,9 +2632,7 @@
\else\@tempswafalse\fi
\else\@tempswafalse\fi
% \end{macrocode}
-% Das zeichenweise Scannen und Parsen kann natürlich nicht einfach
-% abgebrochen werden. Stattdessen ist der Parameterrest noch zu
-% entfernen.
+% Remove the rest, if a non-digit has been found.
% \begin{macrocode}
\if@tempswa\else\let\scr@next\gobble@till@scr@next\fi
\fi
@@ -2797,26 +2640,22 @@
}
% \end{macrocode}
% \begin{macro}{\gobble@tillscr@@next}
-% Das geschieht mit einem einzigen "`Leermacro"'.
+% Use a delimited \emph{empty} macro.
% \begin{macrocode}
\newcommand*{\gobble@till@scr@next}{}
\def\gobble@till@scr@next#1\scr@next{}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \gobble@tillscr@next
+% \end{macro}^^A \test@number, \scr@test@number
+% \end{command}^^A \ifnumber,\Ifnumber
%
-% \begin{macro}{\ifintnumber}
-% \changes{v3.12}{2013/10/30}{neu}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifintnumber} umbenannt in
-% \cs{Ifintnumber}}%^^A
-% \begin{macro}{\Ifintnumber}
-% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifintnumber}}
-% Ist das erste Argument eine positive oder negative ganze Zahl, to wird das
-% zweite Argument ausgeführt, sonst das dritte. Wie bei \TeX{} auch sind
-% beliebig viele Vorzeichen erlaubt.
+% \begin{command}{\ifintnumber,\Ifintnumber}
+% \changes{v3.12}{2013/10/30}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifintnumber} renamed to
+% \cs{Ifintnumber}}
+% If the first argument is a positive or negative integer, execute the second
+% argument, otherwise the third one. There are multiple arithmetic signs allowed.
% \begin{macrocode}
%<*base>
\providecommand*{\ifintnumber}{%
@@ -2840,7 +2679,7 @@
}
% \end{macrocode}
% \begin{macro}{\scr@test@sign}
-% \changes{v3.12}{2013/10/30}{neu (intern)}%^^A
+% \changes{v3.12}{2013/10/30}{added}
% \begin{macrocode}
\newcommand*{\scr@test@sign}[1]{%
\ifx \scr@next#1
@@ -2850,7 +2689,7 @@
\else
\ifx #1+%
\else
- \def\scr@next{\let\scr@next\test@number\scr@next #1}%
+ \def\scr@next{\let\scr@next\scr@test@number\scr@next #1}%
\fi
\fi
\fi
@@ -2858,17 +2697,13 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@test@sign
+% \end{command}^^A \ifintnumber,\Ifintnumber
%
-% \begin{macro}{\ifdimen}
-% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifdimen}}%^^A
-% \begin{macro}{\Ifdimen}
-% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifdimen}}%^^A
-% Dieses Makro testet, ob ein übergebener Parameter eine Dimension
-% ist und führt in Abhängigkeit davon den zweiten oder dritten
-% Parameter aus.
+% \begin{command}{\ifdimen,\Ifdimen}
+% \changes{v3.28}{2019/11/18}{renamed to \cs{Ifdimen}}
+% If the first argument is a dimension number, the second argument will be
+% executed, otherwise the third.
% \begin{macrocode}
%<*base>
\providecommand*{\ifdimen}{%
@@ -2881,8 +2716,8 @@
\Ifdimen
}
\newcommand{\Ifdimen}[1]{%
- \begingroup\@tempswatrue\let\scr@next\test@posdimen
- \expandafter\test@dimen#1\scr@next
+ \begingroup\@tempswatrue\let\scr@next\scr@test@posdimen
+ \expandafter\scr@test@dimen#1\scr@next
\if@tempswa
\endgroup\expandafter\@firstoftwo
\else
@@ -2890,23 +2725,22 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\test@dimen}
-% Als erste muss ein Vorzeichen entfernt werden.
+% \begin{macro}{\test@dimen,\scr@test@dimen}
+% \changes{v3.36}{2022/02/17}{\cs{test@dimen} renamed to \cs{scr@test@dimen}}
+% We have to remove the arithmetic signs.
% \begin{macrocode}
-\newcommand*{\test@dimen}[1]{%
+\newcommand*{\scr@test@dimen}[1]{%
\ifx -#1\else\ifx +#1\else
- \def\scr@next{\let\scr@next\test@posdimen\scr@next#1}\fi\fi
+ \def\scr@next{\let\scr@next\scr@test@posdimen\scr@next#1}\fi\fi
\scr@next
}
% \end{macrocode}
-% \begin{macro}{\test@posdimen}
-% Dann muss getestet werden, ob es sich beim Rest um eine Dimension
-% handelt. Dabei werden der Einfachheit halber mehrere Dezimalkomma
-% und -punkte erlaubt. Natürlich könnte man es auch wirklich richtig
-% machen, aber das wäre nochmal etwas aufwendiger. Ist das wirklich
-% notwendig?
+% \begin{macro}{\test@posdimen,\scr@test@posdimen}
+% \changes{v3.36}{2022/02/17}{\cs{test@posdimen} renamed to \cs{scr@test@posdimen}}
+% Is the rest a dimension. Despite this is not correct, we allow more than one
+% decimal point or decimal comma. Should this be changed?
% \begin{macrocode}
-\newcommand*{\test@posdimen}[1]{%
+\newcommand*{\scr@test@posdimen}[1]{%
\ifx \scr@next#1%
\@tempswafalse\let\scr@next\relax
\else
@@ -2915,37 +2749,33 @@
\expandafter\expandafter\expandafter\number\expandafter`#1\relax
\ifnum \@tempcnta>47
\ifnum \@tempcnta<58
- \else\def\scr@next{\test@dimunt#1}\fi
- \else\def\scr@next{\test@dimunt#1}\fi
+ \else\def\scr@next{\scr@test@dimunt#1}\fi
+ \else\def\scr@next{\scr@test@dimunt#1}\fi
\fi\fi
\fi
\scr@next
}
% \end{macrocode}
-% \begin{macro}{\test@dimunt}
-% \begin{macro}{\test@trueunt}
-% Außer einer Gleitkomma- bzw. Gleitpunktzahl muss auch noch die Einheit
-% behandelt werden. Dabei sind sowohl die neun Standardeinheiten als auch
-% deren "`true"'-Variante zu berücksichtigen. Deshalb wird zuerst ein
-% eventuelles "`\texttt{true}"' weggeworfen.
+% \begin{macro}{\test@dimunt,\test@trueunt,\scr@test@dimunt,\scr@test@trueunt}
+% Last but not least the unit has to be tested. We have standard units and
+% true units. So we first cut of a ``\texttt{true}''.
% \begin{macrocode}
-\newcommand*{\test@dimunt}{}
-\def\test@dimunt#1\scr@next{%
- \expandafter\test@trueunt#1truetrue\test@trueunt
+\newcommand*{\scr@test@dimunt}{}
+\def\scr@test@dimunt#1\scr@next{%
+ \expandafter\scr@test@trueunt#1truetrue\scr@test@trueunt
}
-\newcommand*{\test@trueunt}{}
-\def\test@trueunt#1true#2true#3\test@trueunt{%
+\newcommand*{\scr@test@trueunt}{}
+\def\scr@test@trueunt#1true#2true#3\scr@test@trueunt{%
\edef\reserved@a{#1}%
- \ifx\reserved@a\@empty\test@@ifdimunt{#2}\else\test@@ifdimunt{#1}\fi
+ \ifx\reserved@a\@empty\scr@test@@dimunt{#2}\else\scr@test@@dimunt{#1}\fi
}
% \end{macrocode}
-% \begin{macro}{\test@@ifdimunt}
-% \changes{v3.21}{2016/05/27}{elf bis zwölf Einheiten nicht neun}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Anschließend wird dann getestet, ob es sich um eine der elf bis zwölf
-% üblichen Einheiten handelt.
+% \begin{macro}{\test@@ifdimunt,\scr@test@@dimunt}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Currently we know eleven or twelve units. Unit \texttt{px} is only valid
+% with PDF output.
% \begin{macrocode}
-\newcommand*\test@@ifdimunt[1]{%
+\newcommand*\scr@test@@dimunt[1]{%
\@tempswafalse
\Ifstr{#1}{pt}{\@tempswatrue}{%
\Ifstr{#1}{pc}{\@tempswatrue}{%
@@ -2975,36 +2805,36 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \test@@ifdimunt,\scr@test@@dimunt
+% \end{macro}^^A \test@dimunt,\test@trueunt,\scr@test@dimunt,\scr@test@trueunt
+% \end{macro}^^A \scr@test@posdimen
+% \end{macro}^^A \scr@test@dimen
+% \end{command}^^A \ifdimen,\Ifdimen
%
%
-% \begin{macro}{\ifpdftex}
-% \changes{v2.95}{2002/08/19}{neu}%^^A
-% \changes{v3.28}{2019/11/18}{entfernt}%^^A
+% \begin{command}{\ifpdftex}
+% \changes{v2.95}{2002/08/19}{added}
+% \changes{v3.28}{2019/11/18}{removed}
+% \end{command}
% \begin{macro}{\scr@ifpdftex}
-% \changes{v2.95}{2002/08/19}{neu (intern)}%^^A
-% \changes{v3.30}{2020/03/06}{veralteten Befehl \cs{ifnotundefined} durch
-% \cs{Ifnotundefined} ersetzt}%^^A
-% If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} verwendet wird.
+% \changes{v2.95}{2002/08/19}{added}
+% \changes{v3.30}{2020/03/06}{\cs{ifnotundefined} replaced by \cs{Ifnotundefined}}
+% If \pdfTeX{} is used, execute the first argument, otherwise the
+% second. Note, we do not read the arguments but delegate them to
+% \cs{Ifnotundefined}.
% \begin{macrocode}
%<*base>
\newcommand{\scr@ifpdftex}{\Ifnotundefined{pdftexversion}}
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\scr@ifluatex}
-% \changes{v3.21}{2016/05/27}{neu (intern)}%^^A
-% \changes{v3.30}{2020/03/06}{veralteten Befehl \cs{ifnotundefined} durch
-% \cs{Ifnotundefined} ersetzt}%^^A
-% If-the-else-Konstrukt, um zu testen, ob lua\TeX{} verwendet wird.
+% \changes{v3.21}{2016/05/27}{added}
+% \changes{v3.30}{2020/03/06}{\cs{ifnotundefined} replaced by \cs{Ifnotundefined}}
+% If \LuaTeX{} is used, execute the first argument, otherwise the
+% second. Note, we do not read the arguments but delegate them to
+% \cs{Ifnotundefined}.
% \begin{macrocode}
%<*base>
\newcommand{\scr@ifluatex}{\Ifnotundefined{luatexversion}}
@@ -3013,9 +2843,10 @@
% \end{macro}
%
% \begin{macro}{\scr@ifpdforluatex}
-% \changes{v3.21}{2016/05/27}{neu (intern)}%^^A
-% If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} oder lua\TeX{} verwendet
-% wird.
+% \changes{v3.21}{2016/05/27}{added}
+% If either \LuaTeX{} or \pdfTeX{} is used, execute the first argument,
+% otherwise the second. Note, we do not read the arguments but delegate them
+% to \cs{@firstoftwo} and \cs{@secondoftwo}.
% \begin{macrocode}
%<*base>
\newcommand*{\scr@ifpdforluatex}{%
@@ -3025,42 +2856,41 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\ifVTeX}
-% \changes{v2.95}{2002/08/19}{neu}%^^A
-% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}}%^^A
-% \changes{v3.28}{2019/11/18}{entfernt}%^^A
-% \begin{macro}{\scr@ifVTeX}
-% \changes{v2.95}{2002/08/19}{neu}%^^A
-% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{scr@ifvtex}}
-% \changes{v3.30}{2020/03/06}{veralteten Befehl \cs{ifnotundefined} durch
-% \cs{Ifnotundefined} ersetzt}%^^A
-% If-then-else-Konstrukt, um zu testen, ob V\TeX{} verwendet wird.
+% \begin{command}{\ifvtex,\ifVTeX}
+% \changes{v2.95}{2002/08/19}{added}
+% \changes{v2.97c}{2007/06/20}{\cs{ifvtex} renamed to \cs{ifVTeX}}
+% \changes{v3.28}{2019/11/18}{removed}
+% \end{command}
+% \begin{macro}{\scr@ifvtex,\scr@ifVTeX}
+% \changes{v2.95}{2002/08/19}{added}
+% \changes{v2.97c}{2007/06/20}{\cs{scr@ifvtex} renamed to \cs{scr@ifVTeX}}
+% \changes{v3.30}{2020/03/06}{\cs{ifnotundefined} replaced by \cs{Ifnotundefined}}
+% If \VTeX{} is used, execute the first argument, otherwise the
+% second. Note, we do not read the arguments but delegate them to
+% \cs{Ifnotundefined}.
% \begin{macrocode}
%<*base>
\newcommand{\scr@ifVTeX}{\Ifnotundefined{VTeXversion}}
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\ifpdfoutput}
-% \changes{v2.7g}{2001/04/17}{neu}%^^A
-% \changes{v2.8q}{2001/10/19}{\cs{pdfoutput} wird nicht mehr zu
-% \cs{relax}, wenn zuvor undefiniert}
-% \changes{v2.8q}{2001/10/19}{darf bereits definiert sein}%^^A
-% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}}%^^A
-% \changes{v3.28}{2019/11/18}{Umbenannt in \cs{Ifpdfoutput}}%^^A
-% \begin{macro}{\Ifpdfoutput}
-% \changes{v3.28}{2019/11/18}{Neu aus Umbenennung von \cs{ifpdfoutput}}%^^A
+% \begin{command}{\ifpdfoutput,\Ifpdfoutput}
+% \changes{v2.7g}{2001/04/17}{added}
+% \changes{v2.8q}{2001/10/19}{\cs{pdfoutput} does not become \cs{relax} if it
+% was undefined before}
+% \changes{v2.8q}{2001/10/19}{\cs{ifpdfoutput} is only defined if new}
+% \changes{v2.8q}{2001/10/19}{usage of \cs{scr@ifpdfoutput}}
+% \changes{v3.28}{2019/11/18}{\cs{ifpdfoutput} renamed to \cs{Ifpdfoutput}}
% \begin{macro}{\scr@ifpdfoutput}
-% \changes{v2.8q}{2001/10/19}{neu (intern)}%^^A
-% \changes{v2.8q}{2001/11/13}{funktioniert}%^^A
-% \changes{v2.95}{2002/08/21}{berücksichtigt V\TeX}%^^A
-% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}%^^A
-% \changes{v3.21}{2016/05/27}{lua\TeX{} nach 0.85 berücksichtigt}%^^A
-% If-then-else-Konstrukt, um abhängig davon, ob als \texttt{pdf}
-% ausgegeben wird oder nicht, Befehle auszuführen. Dieses Makro wird
-% für die Deklaration der Option \texttt{pagesize} benötigt.
+% \changes{v2.8q}{2001/10/19}{added}
+% \changes{v2.8q}{2001/11/13}{full functional}
+% \changes{v2.95}{2002/08/21}{knowing \VTeX}
+% \changes{v2.95}{2004/07/20}{expandable}
+% \changes{v3.21}{2016/05/27}{works for \LuaTeX{} after version 0.85}
+% If the output (currently) produces a PDF, the first argument is executed,
+% otherwise the second one. This macro is used inside the implementation of
+% option \opt{pagesize}, so we cannot remove it or declare it as deprecated.
% \begin{macrocode}
%<*base>
\newcommand{\scr@ifpdfoutput}{%
@@ -3103,21 +2933,19 @@
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ifpsoutput}
-% \changes{v2.95}{2002/08/21}{neu}%^^A
-% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifpsoutput}}%^^A
-% \begin{macro}{\Ifpsoutput}
-% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifpsoutput}}%^^A
+% \begin{command}{\ifpsoutput,\Ifpsoutput}
+% \changes{v2.95}{2002/08/21}{added}
+% \changes{v3.28}{2019/11/18}{renamed to \cs{Ifpsoutput}}
% \begin{macro}{\scr@ifpsoutput}
-% \changes{v2.95}{2002/08/21}{neu (intern)}%^^A
-% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}%^^A
-% \changes{v3.30}{2020/03/06}{veralteten Befehl \cs{ifnotundefined} durch
-% \cs{Ifnotundefined} ersetzt}%^^A
-% If-then-else-Konstrukt, um abhängig davon, ob früher oder später
-% \texttt{ps} ausgegeben wird oder nicht, Befehle auszuführen.
+% \changes{v2.95}{2002/08/21}{added}
+% \changes{v2.95}{2004/07/20}{expandable}
+% \changes{v3.30}{2020/03/06}{\cs{ifnotundefined} replaced by \cs{Ifnotundefined}}
+% If the output is (currently) expected to be PS some time, the first argument
+% is executed, otherwise the second one. This macro is used inside the
+% implementation of option \opt{pagesize}, so we cannot remove it or declare
+% it as deprecated.
% \begin{macrocode}
%<*base>
\newcommand*{\scr@ifpsoutput}{%
@@ -3152,20 +2980,18 @@
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ifdvioutput}
-% \changes{v2.95}{2002/08/21}{neu}%^^A
-% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifdvioutput}}%^^A
-% \begin{macro}{\Ifdvioutput}
-% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifdvioutput}}%^^A
+% \begin{command}{\ifdvioutput,\Ifdvioutput}
+% \changes{v2.95}{2002/08/21}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifdvioutput} renamed to \cs{Ifdvioutput}}
% \begin{macro}{\scr@ifdvioutput}
-% \changes{v2.95}{2002/08/21}{neu (intern)}%^^A
-% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}%^^A
-% \changes{v3.23}{2017/02/14}{lua\TeX{} nach 0.85 berücksichtigt}%^^A
-% If-then-else-Konstrukt, um abhängig davon, ob \texttt{dvi}
-% ausgegeben wird oder nicht, Befehle auszuführen.
+% \changes{v2.95}{2002/08/21}{added}
+% \changes{v2.95}{2004/07/20}{expandable}
+% \changes{v3.23}{2017/02/14}{works for \LuaTeX{} after version 0.85}
+% If the output (currently) produces a DVI, the first argument is executed,
+% otherwise the second one. This macro is used inside the implementation of
+% option \opt{pagesize}, so we cannot remove it or declare it as deprecated.
% \begin{macrocode}
%<*base>
\newcommand*{\scr@ifdvioutput}{%
@@ -3208,20 +3034,24 @@
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\scr@smashdp}
-% \changes{v2.97c}{2007/09/17}{neu (intern)}%^^A
-% \changes{v3.02a}{2009/01/23}{\cs{smash} nicht direkt verwenden, weil
-% \textsf{amsmath} das inkompatibel umdefiniert}
-% Gibt Material aus, erzeugt dabei aber nur Höhe und Breite, jedoch keine
-% Tiefe.
+% \changes{v2.97c}{2007/09/17}{added}
+% \changes{v3.02a}{2009/01/23}{using own definition instead of \cs{smash}}
+% \changes{v3.36}{2022/02/18}{as robust as \cs{smash}}
+% Generate a box and output it with height and width but no depth. Note: Using
+% internal macros \cs{finsm@sh}, \cs{mathsm@sh} and \cs{makesm@ash} from the
+% \LaTeX{} kernel is a very ugly hack and dangerous. Using \cs{smash} itself
+% would be problematic, because \pkg{amsmath} redefines it and the new
+% definition is not fully compatible. But maybe a better definition could be
+% found depending on, whether \pkg{amsmath} has been loaded or not.
% \begin{macrocode}
%<*base>
-\newcommand*{\scr@smashdp}[1]{%
+\DeclareRobustCommand{\scr@smashdp}[1]{%
+ \relax
\begingroup
- \def\finsm@sh{\dp\z@\z@\box\z@}%
+ \def\finsm@sh{\dp\z@\z@ \leavevmode\box\z@}%
\ifmmode
\expandafter\mathpalette\expandafter\mathsm@sh
\else
@@ -3234,11 +3064,11 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\IfRTL}
-% \changes{v3.24}{2017/05/04}{neu}
-% Die Anweisung testet, ob wir uns gerade im Von-Rechts-Nach-Links-Modus von
-% Paketen wie \textsf{bidi} befinden. Ist das der Fall, wird das erste
-% Argument ausgeführt, sonst das zweite.
+% \begin{command}{\IfRTL}
+% \changes{v3.24}{2017/05/04}{added}
+% \changes{v3.36}{2022/02/18}{white space removed}
+% If we are in the right-to-left mode of a package like \pkg{bidi} the first
+% argument will be used otherwise the second one.
% \begin{macrocode}
%<*base>
\newcommand*{\IfRTL}{%
@@ -3249,16 +3079,17 @@
\else
\expandafter\@secondoftwo
\fi
- }
+ }%
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \IfRTL
-% \begin{macro}{\IfLTR}
-% \changes{v3.24}{2017/05/04}{neu}
-% Die Anweisung testet, ob wir uns gerade nicht im
-% Von-Rechts-Nach-Links-Modus von Paketen wie \textsf{bidi} befinden. Ist
-% das der Fall, wird das erste Argument ausgeführt, sonst das zweite.
+% \end{command}^^A \IfRTL
+% \begin{command}{\IfLTR}
+% \changes{v3.24}{2017/05/04}{added}
+% \changes{v3.36}{2022/02/18}{white space removed}
+% If we are not in the right-to-left mode of a package like \pkg{bidi} any
+% kind of left-to-right mode is assumed and the first argument is used,
+% otherwise the second one.
% \begin{macrocode}
%<*base>
\newcommand*{\IfLTR}{%
@@ -3269,15 +3100,15 @@
\else
\expandafter\@firstoftwo
\fi
- }
+ }%
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \IfLTR
+% \end{command}^^A \IfLTR
%
-% \begin{macro}{\PackageInfoNoLine}
-% \changes{v2.97d}{2007/10/03}{neu}%^^A
-% Arbeitet wie \cs{PackageInfo} aber ohne Ausgabe der Zeilennummer.
+% \begin{command}{\PackageInfoNoLine}
+% \changes{v2.97d}{2007/10/03}{added}
+% Like \cs{PackageInfo} but without output of line number at the end.
% \begin{macrocode}
%<*base>
\providecommand*{\PackageInfoNoLine}[2]{%
@@ -3285,11 +3116,11 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ClassInfoNoLine}
-% \changes{v2.98c}{2008/02/15}{neu}%^^A
-% Arbeitet wie \cs{ClassInfo} aber ohne Ausgabe der Zeilennummer.
+% \begin{command}{\ClassInfoNoLine}
+% \changes{v2.98c}{2008/02/15}{added}
+% Like \cs{ClassInfo} but without output of line number at the end.
% \begin{macrocode}
%<*base>
\providecommand*{\ClassInfoNoLine}[2]{%
@@ -3297,16 +3128,12 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\@removefromreset}
-% \changes{v3.15}{2014/11/21}{neue Anweisung, kompatibel mit
-% \textsf{remreset} und \textsf{chngcntr}}%^^A
-% Dieser alte Bekannte aus dem Paket \textsf{remreset} wird auch von
-% \KOMAScript{} benötigt. Es ist einfacher, ihn selbst zu definieren, als sich
-% auf andere Pakete zu verlassen. Ab \LaTeX~2018-04-01 ist das aber auch
-% Bestandteil von \LaTeX. Deshalb ist es in jedem Fall sinnvoll die Definition
-% nur vorzunehmen, wenn es nicht definiert ist.
+% \changes{v3.15}{2014/11/21}{added}%
+% For \LaTeX{} releases before 2018/04/01 and without using a package like
+% \pkg{remreset} or \pkg{chngcntr} we still need \cs{@removefromreset}.
% \begin{macrocode}
%<*base>
\providecommand*\@removefromreset[2]{%
@@ -3323,12 +3150,11 @@
% \end{macrocode}
% \end{macro}
%
-% \selectlanguage{english}%
-% \begin{macro}{\IfActiveMkBoth}
-% \changes{v3.26}{2018/09/03}{new}%^^A
+% \begin{command}{\IfActiveMkBoth}
+% \changes{v3.26}{2018/09/03}{added}
% \begin{macro}{\if@scrActiveMkBoth}
-% \changes{v3.26}{2018/09/03}{new}%^^A
-% \changes{v3.27}{2019/07/26}{handling for \cs{marks}}%^^A
+% \changes{v3.26}{2018/09/03}{added}
+% \changes{v3.27}{2019/07/26}{handling for \cs{marks}}
% This command test, whether or not \cs{@mkboth} does change a mark or not.
% \begin{macrocode}
%<*base>
@@ -3355,31 +3181,27 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A\if@scrActiveMkBoth
-% \end{macro}%^^A\IfActiveMkBoth
-% \selectlanguage{ngerman}%
-%
-% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Hauptteil)}
-%
-% \begin{macro}{\FamilyExecuteOptions}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}%^^A
-% \changes{v3.04b}{2010/02/02}{\cs{scr@key@atlist} und \cs{scr@key@name}%^^A
-% vor Überschreiben in \cs{setkeys} geschützt}%^^A
-% \changes{v3.12}{2013/03/04}{neue Implementierung}%^^A
-% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet
-% werden}%^^A
-% \changes{v3.14}{2014/10/17}{das dritte Argument wird \cs{long}%^^A
-% verarbeitet}%^^A
+% \end{macro}^^A \if@scrActiveMkBoth
+% \end{command}^^A \IfActiveMkBoth
+%
+%
+% \subsection{Definition of the \KOMAScript{} \pkg*{keyval} main handling}
+%
+% \begin{command}{\FamilyExecuteOptions}
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.04b}{2010/01/29}{\cs{edef} replaced by \cs{protected@edef}}
+% \changes{v3.04b}{2010/02/02}{prevent overwriting of \cs{scr@key@atlist} and
+% \cs{scr@key@name} in \cs{setkeys}}
+% \changes{v3.12}{2013/03/04}{re-implemented}
+% \changes{v3.12}{2013/03/04}{can be used after document preamble}
+% \changes{v3.14}{2014/10/17}{third argument is \cs{long}}
% \begin{macro}{\@FamilyExecuteOptions}
-% \changes{v3.14}{2014/10/17}{Neue streng interne Anweisung}%^^A
-% \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie
-% statt des Mitglieds}%^^A
-% \changes{v3.27}{2019/10/02}{Fehlermeldungen verbessert}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Entspriche \cs{ExecuteOptions} jedoch \textsf{keyval}-Optionen. Insbesondere
-% ist die Anweisung reentrant! Es ist jedoch zu beachten, dass der hook lokal
-% zum jeweiligen Aufruf ist.
+% \changes{v3.14}{2014/10/17}{new}
+% \changes{v3.23}{2017/02/16}{fix: hook after uses family instead of member}
+% \changes{v3.27}{2019/10/02}{improved error message}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Similar to \cs{ExecuteOptions} but with \pkg{keyval} options. The command
+% also is re-entrant. Note: The hooks are local to every usage.
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyExecuteOptions}[2][.\@currname.\@currext]{%
@@ -3405,11 +3227,10 @@
\scr@ifundefinedorrelax{KV@#2@\scr@key@name}{%
\scr@ifundefinedorrelax{KV@#2#1@\scr@key@name}{%
% \end{macrocode}
-% \changes{v3.20}{2015/11/18}{Besondere Behandlung der
-% \texttt{@else@}-Option}%^^A
-% Es existiert zwar weder eine Familienoption noch eine Mitgliedsoption, aber
-% vielleicht existiert ja die Spezialoption \texttt{@else@}, die in einem
-% solchen Fall die eigentliche Option als Wert erhält.
+% \changes{v3.20}{2015/11/18}{special treatment of \opt{@else@} option}
+% Neither family nor member option found. But maybe special option
+% \opt{@else@} exists. In this case the current option is set as value of
+% \opt{@else@}.
% \begin{macrocode}
\scr@ifundefinedorrelax{KV@#2#1@@else@}{%
\PackageError{scrbase}{%
@@ -3427,10 +3248,9 @@
}{%
\scr@execute@elseoption{#2#1}%
% \end{macrocode}
-% Im Gegensatz zu anderen Optionen bedeuten bei der \texttt{@else@}-Option
-% alle von \cs{FamilyKeyStateProcessed} abweichenden Ergebnisse, dass die
-% Option nicht korrekt verarbeitet werden konnte und deshalb die ursprüngliche
-% Option als Fehler zu melden ist.
+% In difference to other options, for \opt{@else@} all states different from
+% \cs{FamilyKeyStateProcessed} have to be reported as error of the
+% current/original option.
% \begin{macrocode}
\ifx\FamilyKeyState\FamilyKeyStateProcessed\else
\PackageError{scrbase}{%
@@ -3457,13 +3277,12 @@
\scr@execute@option{#2}%
\Ifstr{#1}{}{}{%
% \end{macrocode}
-% \changes{v3.20}{2015/11/18}{Memberoptionstest nach Familyoptionsausführung
-% korrigiert}%^^A
-% Auch wenn eine Familienoption ausgeführt wurde, muss eine existierende
-% Mitgliederoption ggf. noch ausgeführt werden. Existiert sie nicht, wird
-% ebenfalls eine existierende \texttt{@else@}-Option ausgeführt. Allerdings
-% führen in diesem Fall von \cs{FamilyKeyStateProcessed} abweichende
-% Ergebnisse nicht zu einer Fehlermeldung.
+% \changes{v3.20}{2015/11/18}{member option test after execution of family
+% option fixed}
+% If a family option has been found and executed an existing member option
+% still has to be executed. If no member option exists, also an existing
+% \opt{@else@} option of the member has to been used. But in this case, the
+% states different from \cs{FamilyKeyStateProcessed} are not errors.
% \begin{macrocode}
\scr@ifundefinedorrelax{KV@#2#1@\scr@key@name}{%
\scr@ifundefinedorrelax{KV@#2#1@@else@}{}{%
@@ -3488,16 +3307,15 @@
%</base>
% \end{macrocode}
% \begin{macro}{\scr@show@key@state@error}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}%^^A
-% \changes{v3.27}{2019/10/02}{Fehlermeldungen verbessert}%^^A
-% Zeige abhängig von \cs{FamilyKeyState} eine Fehlermeldung. Alle
-% Informationen zu dem Fehler müssen in \cs{FamilyMemberOfKey}
-% (Familienmitglied oder \cs{@empty}), \cs{FamilyOfKey} (Familie oder
-% \cs{@empty}), \cs{scr@key@atlist} (Option, wie sie in der Liste stand),
-% \cs{scr@key@name} (Name der Option) und \cs{scr@key@value} (Wert der
-% Option) stehen. Es ist zu beachten, dass \cs{scr@key@atlist} und
-% \cs{scr@key@value} ebenfalls Macros enthalten können. Deshalb werden diese
-% Werte ggf. über \cs{detokenize} ausgegeben.
+% \changes{v3.12}{2013/03/04}{added}
+% \changes{v3.27}{2019/10/02}{improved error message}
+% Show depending on \cs{FamilyKeyState} a error message. All information to
+% the error has to be set to \cs{FamilyMemberOfKey} (member or \cs{@empty}),
+% \cs{FamilyOfKey} (family or \cs{@empty}), \cs{scr@key@atlest} (option as it
+% was in the option list), \cs{scr@key@name} (\meta{key} of the option), and
+% \cs{scr@key@value} (\meta{value} of the option). Note: \cs{scr@key@atlist}
+% and \cs{scr@key@value} can contain macros and will be output using
+% \cs{detokenize}.
% \begin{macrocode}
%<*base>
\newcommand*{\scr@show@key@state@error}{%
@@ -3534,16 +3352,21 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@show@key@state@error
-% \end{macro}%^^A \@FamilyExecuteOptions
-% \end{macro}%^^A \FamilyExecuteOptions
-%
-% \begin{macro}{\KOMAExecuteOptions}
-% \changes{v2.97c}{2007/04/19}{Neue Anweisung}%^^A
-% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr}%^^A
-% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet
-% werden}%^^A
-% Liste von Optionen für ein Mitglied der Familie \texttt{KOMA} ausführen.
+% \end{macro}^^A \scr@show@key@state@error
+% \end{macro}^^A \@FamilyExecuteOptions
+% \end{command}^^A \FamilyExecuteOptions
+%
+% \begin{command}{\KOMAExecuteOptions}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.00}{2008/04/30}{no optional argument}
+% \changes{v3.12}{2013/03/04}{can be used after the document preamble}
+% Executes a \meta{list of options} (\texttt{\#3}) of a \meta{member} (optional
+% \texttt{\#1}) of a \meta{family} (\texttt{\#2}). The default for the
+% \meta{member} is \file{.\cs{@currname}.\cs{@currext}}. Note: If
+% \cs{KOMAExcuteOptions} is not used while loading a class or package, the
+% optional first argument is not optional, but has to be set correctly! And
+% because filenames can be changed, it is recommended to \emph{always} use the
+% optional argument to set a definite \meta{member}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAExecuteOptions}[1][.\@currname.\@currext]{%
@@ -3551,25 +3374,26 @@
}
%</koma>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\FamilyOptions}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \changes{v3.12}{2013/03/02}{Neue Implementierung}%^^A
-% \changes{v3.12}{2013/03/02}{\cs{scr@after@options@\#1@hook}}%^^A
-% \changes{v3.14}{2014/10/17}{zweites Argument wird \cs{long} behandelt}%^^A
+% \begin{command}{\FamilyOptions}
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.12}{2013/03/02}{re-implemented}
+% \changes{v3.12}{2013/03/02}{\cs{scr@after@options@\#1@hook}}
+% \changes{v3.14}{2014/10/17}{second argument is \cs{long}}
% \begin{macro}{\@FamilyOptions}
-% \changes{v3.14}[2014/10/17]{Neue streng interne Anweisung}%^^A
-% \changes{v3.27}{2019/10/02}{Fehlermeldungen verbessert}%^^A
+% \changes{v3.14}[2014/10/17]{added}
+% \changes{v3.27}{2019/10/02}{improved error message}
% \begin{macro}{\Family@Options}
-% \changes{v3.00}{2008/04/30}{Neues Makro (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt}%^^A
-% \end{macro}%^^A \FamilyOptions
-% Es werden Schlüssel einer Familie verwendet. Existiert ein Schlüssel nicht,
-% oder ist der Wert für alle Schlüssel unbekannt, so wird ein Fehler
-% ausgegeben. Diese Anweisung selbst ist reentrant, das heißt sie kann auch
-% innerhalb der Ausführung von Optionen aufgerufen werden. Es sei jedoch
-% erwähnt, dass der hook dabei nur die jeweilige Anweisung umfasst.
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.12}{2013/03/04}{removed}
+% \end{macro}^^A \Family@Options
+% Used to set the options of a family. The first argument (\texttt{\#1}) is
+% the \meta{family} and the second (\texttt{\#2}) a \meta{list of options}. If
+% a \meta{key} or a \meta{value} to a \meta{key} in the \meta{list of options}
+% does not exist, an error is reported. The command itself is re-entrant, so
+% it can be used inside the definition of an option. But in this case the hook
+% is local to the local usage of the command.
% \begin{macrocode}
%<*base>
\newcommand{\FamilyOptions}[1]{\@FamilyOptions{#1}}
@@ -3587,24 +3411,22 @@
}%
}%
% \end{macrocode}
-% \changes{v3.23}{2017/02/16}{neuer Haken für \cs{AtEndOfFamilyOptions*}}%^^A
-% Seit Version 3.23 wird hier auch der neuen Haken vor
-% \cs{AtEndOfFamilyOptions*} initialisiert. Zunächst findet eine Art
-% Vorinitialisierung statt, bei der der Haken lediglich leer definiert wird,
-% falls er noch nicht existiert. Falls er nämlich existiert, kann an einem
-% leeren Haken die oberste Ebene erkannt werden.
+% \changes{v3.23}{2017/02/16}{\cs{AtEndOfFamilyOptions*} hook added}
+% From version 3.23 the new hook before \cs{AtEndOfFamilyOptions*} has to be
+% initialized. First step is a kind of pre-initialization: The hook is
+% defined empty, if it does not already exist. So if the hook exists empty we
+% can now recognize the top level of using \cs{FamilyOptions}.
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@after@options@#1@hook@topmost}{%
\@namedef{scr@after@options@#1@hook@topmost}{}%
}{}%
% \end{macrocode}
-% Dann wird an einem leeren Haken die oberste Ausführungsebene erkennt. In
-% diesem Fall wird zum einen die Ausführung des Hakens in den normalen
-% Ebenen-Haken (das ist dann automatische der oberste Ebenen-Haken)
-% eingehängt und zum anderen der Haken selbst so initialisiert, dass er sich
-% bei seiner Ausführung als erstes selbst löscht. Gleichzeitig ist der Haken
-% selbst dadurch nicht mehr leer, so dass sich tiefere Ebenen von der höchsten
-% eindeutig unterscheiden.
+% Now, if we recognize the top level, because of an empty hook, the execution
+% of the hook to the normal level hook (which is the top level hook in this
+% case) is added. Additionally the self destruction code is added to the very
+% beginning of the hook. Because of the self destruction hook the hook itself
+% it no longer empty. So deeper levels distinguish from the top level. Because
+% the hook is not empty any longer.
% \begin{macrocode}
\expandafter\ifx\csname scr@after@options@#1@hook@topmost\endcsname\@empty
\expandafter\l@addto@macro\csname scr@after@options@#1@hook\endcsname{%
@@ -3616,70 +3438,64 @@
\fi
% \end{macrocode}
% \begin{description}
-% \item[Anmerkung:] Es wird nicht auf \textsf{xkeyval} und den dortigen Befehl
-% \cs{setkeys+} gesetzt, weil dieser die Optionen nicht in der Reihenfolge
-% der Optionen, sondern in der Reihenfolge der Familien ausführt. Das passt
-% mir aber hier gar nicht.
+% \item[Note:] We do not use \pkg{xkeyval} and its \cs{setkeys+}, because this
+% would not execute the options in the order of the options but in the order
+% of the families, which is not intuitive and therefore not what we want.
% \end{description}
-% In einer Schleife über alle Optionen werden die Optionen zunächst in Option
-% und Wert aufgespaltet.
+% We use a loop over all \meta{option}s in the \meta{list of options} to
+% split each \meta{option} into \meta{key} and \meta{value}.
% \begin{macrocode}
\@for\scr@key@atlist:=#2\do{%
% \end{macrocode}
-% \changes{v3.08}{2010/11/05}{leere Argumente in der Optionenliste}%
-% Auf vielfachen Wunsch und entgegen meiner Ãœberzeugung, sind auch leere
-% Argumente in der Optionenliste erlaubt. Die erste Form wäre, wenn zwei
-% Kommas diret aufeinander folgen:
+% \changes{v3.08}{2010/11/05}{empty options in the list are ignored}
+% Despite they do not make any sense empty \emph{options} are allowed and
+% ignored. This would at first mean two consecutive commas.
% \begin{macrocode}
\ifx\scr@key@atlist\@empty\else
% \end{macrocode}
-% Die zweite Möglichkeit wäre, dass noch Leerzeichen zwischen den Komma
-% übrig bleiben:
+% But there also can be white spaces between the commas.
% \begin{macrocode}
\ifx\scr@key@atlist\space\else
\expandafter\scr@key@split@name@value\scr@key@atlist==\@nil
% \end{macrocode}
-% Die dritte Möglichkeit, dass auch noch ein Gleichheitszeichen übrig
-% gelassen wurde, werde ich aber nicht abfangen. Irgendwann müssen die
-% Anwender auch mal ihre Fehler einsehen und korrigieren!
-%
-% Wir haben jetzt also eine Option und diese aufgespaltet in Schlüssel und
-% Wert.
-% \changes{v3.12}{2013/03/04}{der Gesamtstatus wird gespeichert}%^^A
-% Jetzt speichern wir den Gesamtstatus einfach, indem der Fehlerspeicher
-% gelöscht wird. Bei \cs{relax} wird er nicht weiter benötigt und es liegt
-% ebenso wie bei \cs{@empty} kein auszugebender Fehler vor. Bei anderen
-% Werten, enthält er Fehler, die zu melden sind.
+% The third possibility would be a single equal sign. But in my opinion this
+% would be a mistake and therefore an error. So now, we have an \opt{option}
+% splitted into a \meta{key} and a \meta{value} (which can be empty).
+% \changes{v3.12}{2013/03/04}{storing the overall state}
+% Now, we are storing the overall state by emptying the error storage. If the
+% error storage is \cs{relax} it is not needed any longer. Both, \cs{relax}
+% and \cs{@empty} means no error. All other cases the error storage contains
+% all the errors to be reported.
% \begin{macrocode}
\let\scr@key@run@errors\@empty
% \end{macrocode}
-% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}
-% \changes{v3.09a}{2011/06/07}{weniger Expansion durch sinnvollen Gebrauch
-% von \cs{unexpanded}}
-% Dann wird in einer Schleife über alle Familienmitglieder festgestellt, ob
-% die Option bei einem Mitglied bekannt ist und ggf. ausgeführt. Hier ist
-% wichtig, dass keines der internen Macros vom Aufruf verändert wird. Außerdem
-% muss der Status und die daraus resultierenden Meldungen aufgesammelt
-% werden. Hilfreich ist, dass \cs{\meta{Familie}@key@familylist} eine Liste
-% aus Familie + Mitglied ist und nicht nur aus dem Namen der Mitglieder.
-% \changes{v3.27}{2019/07/19}{Fix: Familienoptionen werden zuerst
-% ausgeführt}%^^A
+% \changes{v3.04b}{2010/01/29}{\cs{edef} replaced by \cs{protected@edef}}
+% \changes{v3.09a}{2011/06/07}{less number of expansions by improved usage of
+% \cs{unexpanded}}
+% Next a loop over the members is used, to detect members, that have the
+% \meta{key}. In this case the member option is executed. Note: The execution
+% of an option must not change any of the internal macros with the \meta{key},
+% \meta{value}, \meta{option} or \meta{list of options}
+% information. Additionally the states and the resulting messages have to been
+% collected. Here it is useful to have \cs{\meta{family}@key@familylist}, a
+% list of family + member and not only of members.
+% \changes{v3.27}{2019/07/19}{family options are executed first}
% \begin{macrocode}
\scr@key@found@false
\edef\reserved@a{#1,\csname #1@key@familylist\endcsname}%
\@for\reserved@a:=\reserved@a\do{%
\scr@ifundefinedorrelax{KV@\reserved@a @\scr@key@name}{%
% \end{macrocode}
-% \changes{v3.27}{2019/07/19}{Behandlung für \texttt{@else@}-Optionen}%^^A
-% Wenn das Familiemitglied keine entsprechende Option besitzt, kann es noch
-% immer eine \texttt{@else@}-Option besitzen. In diesem Fall wird selbige
-% ausgeführt. Die Ausführung hat aber nur dann Einfluss auf den
-% Fehlerspeicher, wenn sie erfolgreich war. In diesem Fall wird der
-% Fehlerspeicher gelöscht. Ausnahme ist, wenn das aktuelle Mitglied die
-% Familie selbst ist. In diesem Fall wird die \texttt{@else@}-Option nicht
-% hier ausgeführt. Das erledigen wir später und nur in dem Fall, dass
-% tatsächlich kein Mitglied eine solche Option oder eine
-% \texttt{@else@}-Option hatte.
+% \changes{v3.27}{2019/07/19}{treatment of \opt{@else@} options}
+% If a family member does not have the current option, there still may be a
+% \opt{@else@} option. In this case the \opt{@else@} option gets the current
+% \meta{option} as value and is executed. But this changes the error storage
+% only, if it was successful. In this case, the error storage has to become
+% empty. But the \opt{@else@} must not be executed here, if the current member
+% is the empty one, which represents the family itself. This will be done
+% later and only, if no one of the members have had the option itself or a
+% \opt{@else@} option. So the family \opt{@else@} option is only used, if the
+% option has not been successfully processed by any member in any kind.
% \begin{macrocode}
\Ifstr{\reserved@a}{#1}{}{%
\scr@ifundefinedorrelax{KV@\reserved@a @@else@}{}{%
@@ -3692,8 +3508,8 @@
}%
}{%
% \end{macrocode}
-% Wurde hingegen eine Option für ein Familienmitglied gefunden, so wird sie
-% ausgeführt und bei Bedarf der Fehlerspeicher angepasst.
+% If the option has been found for a member, it is executed and the error
+% storage is updated.
% \begin{macrocode}
\expandafter\scr@execute@option\expandafter{\reserved@a}%
\scr@key@found@true
@@ -3731,9 +3547,9 @@
\ifx\scr@key@run@errors\relax\else
\ifx\scr@key@run@errors\@empty\else
% \end{macrocode}
-% \changes{v3.28}{2019/11/23}{Fehlermeldungen und Infos korrigiert}%^^A
-% Jetzt muss gegebenenfalls noch eine \texttt{@else@} Option behandelt und
-% abhängig davon entweder ein Fehler oder eine Info ausgegeben werden.
+% \changes{v3.28}{2019/11/23}{error messages and info fixed}
+% Now, an existing \opt{@else@} option has to be used and either an error or
+% info has to be shown.
% \begin{macrocode}
\scr@ifundefinedorrelax{KV@#1@@else@}{%
\PackageError{scrbase}{%
@@ -3828,16 +3644,13 @@
}
% \end{macrocode}
% \begin{macro}{\scr@execute@option}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}%^^A
-% \changes{v3.13}{2014/06/30}{fehlendes \cs{expandafter} in \cs{PackageInfo}
-% ergänzt}%^^A
-% \changes{v3.13a}{2014/08/13}{Leerzeichen durch fehlendes Prozentzeichen
-% beseitigt}%^^A
-% \changes{v3.23}{2017/02/16}{den \cs{AtEndOfFamilyOptions} Haken hier zu
-% sichern nützt nichts}%^^A
-% Es wird die bereits gesplittete Option ausgeführt, ohne dass die dabei
-% wesentlichen Macros (aber nicht \cs{reserved@a}!) verändert werden. Das
-% erste Argument ist bereits der Besitzer in \textsf{keyval}-Syntax.
+% \changes{v3.12}{2013/03/04}{added}
+% \changes{v3.13}{2014/06/30}{missing \cs{expandafter} in \cs{PackageInfo} added}
+% \changes{v3.13a}{2014/08/13}{white spaces removed}
+% \changes{v3.23}{2017/02/16}{it does not help to save the
+% \cs{AtEndOfFamilyOptions} hook}
+% A split \opt{option} is executed, without changing any relevant macros (but
+% \cs{reserved@a}). The first argument is the complete set in \pkg{keyval} syntax.
% \begin{macrocode}
\newcommand*{\scr@execute@option}[1]{%
\protected@edef\reserved@a{%
@@ -3880,44 +3693,43 @@
}
% \end{macrocode}
% \begin{macro}{\scr@KV@err}
-% \changes{v3.12a}{2013/03/04}{missing internal command added}%^^A
+% \changes{v3.12a}{2013/03/04}{missing internal command added}
% We just have to signal, that the option needs a value, that is missing.
% \begin{macrocode}
\newcommand*{\scr@KV@err}[1]{%
\FamilyKeyStateNeedValue
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@KV@err
% \begin{macro}{\scr@key@run@errors}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}%^^A
-% Wird innerhalb von \cs{FamilyOptions} benötigt, um die Fehlermeldungen
-% aufzusammeln, aber erst auszugeben, wenn tatsächlich kein Mitglied die
-% Option verarbeiten konnte. Wir definieren das hier, damit oben die
-% Wiederherstellung korrekt funktioniert.
+% \changes{v3.12}{2013/03/04}{added}
+% Needed by \cs{FamilyOptions} to collect the error messages, but report the
+% error only, if no member has successfully processed the option. We define it
+% here to make the re-definition in the previous code does work without error.
% \begin{macrocode}
\newcommand*{\scr@key@run@errors}{}
% \end{macrocode}
-% \end{macro}%^^A \scr@key@run@errors}
-% \end{macro}%^^A \scr@execute@option
+% \end{macro}^^A \scr@key@run@errors}
+% \end{macro}^^A \scr@execute@option
% \begin{macro}{\scr@execute@elseoption}
-% \changes{v3.20}{2015/11/18}{neu (intern)}%^^A
-% \changes{v3.25}{2017/11/16}{Gruppe eingefügt}%^^A
-% \changes{v3.25}{2017/11/16}{\cs{scr@key@name@else} und
-% \cs{scr@key@value@else} neu}%^^A
-% \changes{v3.27}{2019/03/10}{missing percent added to avoid spaces}%^^A
-% Ist eine Spezialoption mit dem Namen \texttt{@else@} definiert, so wird
-% diese von \cs{FamilyExecuteOptions} genau dann ausgeführt, wenn keine
-% passende Option gefunden wurde. Dafür dient dieses Makro, dessen Argumente
-% und Aufrufstatus genau \cs{scr@execute@option} entspricht. Es soll auch
-% genau dasselbe tun, außer dass es nicht die Option selbst aufruft, sondern
-% die Option als Wert an die \texttt{@else@}-Option übergibt. Es muss also
-% temporär \cs{scr@key@atlist}, \cs{scr@key@name} und \cs{scr@key@value}
-% geändert werden, bevor \cs{scr@execute@option} ausgeführt wird. Da
-% allerdings die Originalwerte ggf. von der \texttt{@else@}-Option ausgewertet
-% werden sollen, wird das originale \cs{scr@key@atlist} zum Wert der
-% \texttt{@else@}-Option. Damit diese nicht erneut aufgespaltet werden muss,
-% werden die originalen \cs{scr@key@name} und \cs{scr@key@value} zusätzlich in
-% \cs{scr@key@name@else} und \cs{scr@key@value@else} gespeichert.
+% \changes{v3.20}{2015/11/18}{added}
+% \changes{v3.25}{2017/11/16}{group added}
+% \changes{v3.25}{2017/11/16}{\cs{scr@key@name@else} and
+% \cs{scr@key@value@else} added}
+% \changes{v3.27}{2019/03/10}{missing percent added to avoid spaces}
+% If a special option \opt{@else@} has been defined, it is executed by
+% \cs{FamilyExecuteOptions} if and only if no other suitable option has been
+% found. This is done by \cs{scr@execute@elseoption}. The argument and
+% resulting state are exactly the same as with \cs{scr@execute@option}. It
+% also have to do the same, but it does not call the option, but the
+% \opt{@else@} option. The option itself is used as \meta{value} of the
+% \opt{@else@} option. So temporary \cs{scr@key@atlist}, \cs{scr@key@name} and
+% \cs{scr@key@value} have to be changed, before calling
+% \cs{scr@execute@option}. To avoid once again splitting the \meta{value} into
+% an internal \meta{key} and \meta{value} the original \cs{scr@key@name} and
+% \cs{scr@key@value} are copied to \cs{scr@key@name@else} and
+% \cs{scr@key@value@else}. These can be used inside the code of the
+% \opt{@else@} option.
% \begin{macrocode}
\newcommand*{\scr@execute@elseoption}[1]{%
\begingroup
@@ -3956,27 +3768,27 @@
}\reserved@a
}
% \end{macrocode}
-% \end{macro}%^^A \scr@execute@elseoption
-% \begin{macro}{\ifscr@key@found@}
-% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)}%^^A
-% \changes{v3.00}{2008/04/30}{umbenannt von \cs{ifKOMA@key@found}}%^^A
-% \begin{macro}{\scr@key@atlist}
-% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}%^^A
-% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@atlist}}%^^A
-% \begin{macro}{\scr@key@name}
-% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}%^^A
-% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@name}}%^^A
-% \begin{macro}{\scr@key@value}
-% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}%^^A
-% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@value}}%^^A
-% \begin{macro}{\scr@key@split@name@value}
-% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}%^^A
-% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von
-% Leerzeichen}%^^A
-% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@split@name@value}}%^^A
-% \changes{v3.13}{2014/10/17}{\cs{long}}%^^A
-% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@sp@def} statt
-% \cs{KV@@sp@def}}%^^A
+% \end{macro}^^A \scr@execute@elseoption
+% \begin{macro}{\KOMA@key@foundtrue,\KOMA@key@foundfalse,\ifKOMA@key@found,
+% \scr@key@found@true,\scr@key@found@false,\ifscr@key@found@}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.00}{2008/04/30}{\cs{ifKOMA@key@found} renamed to \cs{ifscr@key@found}}
+% \begin{macro}{\KOMA@key@at@list,\scr@key@atlist}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.00}{2008/04/30}{\cs{KOMA@key@atlist} renamed to \cs{scr@key@atlist}}
+% \begin{macro}{\KOMA@key@name,\scr@key@name}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.00}{2008/04/30}{\cs{KOMA@key@name} renamed to \cs{scr@key@name}}
+% \begin{macro}{\KOMA@key@value,\scr@key@value}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.00}{2008/04/30}{\cs{KOMA@key@value} renamed to \cs{scr@key@value}}
+% \begin{macro}{\KOMA@key@split@name@value,\scr@key@split@name@value}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v2.97e}{2007/11/10}{using \cs{KV@@sp@def} to remove white spaces}
+% \changes{v3.00}{2008/04/30}{\cs{KOMA@key@split@name@value} renamed to
+% \cs{scr@key@split@name@value}}
+% \changes{v3.13}{2014/10/17}{\cs{long}}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@sp@def} instead of \cs{KV@@sp@def}}
% \begin{macrocode}
\newif\ifscr@key@found@
\newcommand*{\scr@key@atlist}{}
@@ -3989,30 +3801,29 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \scr@key@split@name@value
-% \end{macro}%^^A \scr@key@value
-% \end{macro}%^^A \scr@key@name
-% \end{macro}%^^A \scr@key@atlist
-% \end{macro}%^^A \@FamilyOptions
-% \end{macro}%^^A \FamilyOptions
-%
-% \begin{macro}{\FamilyOption}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \changes{v3.26b}{2019/01/09}{Tyischen Fehler abgefangen}%^^A
+% \end{macro}^^A \scr@key@split@name@value
+% \end{macro}^^A \scr@key@value
+% \end{macro}^^A \scr@key@name
+% \end{macro}^^A \scr@key@atlist
+% \end{macro}^^A \@FamilyOptions
+% \end{macro}^^A \ifscr@key@found@
+% \end{command}^^A \FamilyOptions
+%
+% \begin{command}{\FamilyOption}
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.26b}{2019/01/09}{handling of typical user mistakes}
% \begin{macro}{\@FamilyOptions}
-% \changes{v3.14}[2014/10/17]{Neue streng interne Anweisung}%^^A
-% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@sp@def} statt
-% \cs{KV@@sp@def}}%^^A
+% \changes{v3.14}[2014/10/17]{added}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@sp@def} instead of \cs{KV@@sp@def}}
% \begin{macro}{\Family@Option}
-% \changes{v3.00}{2008/04/30}{Neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt}%^^A
-% \end{macro}
-% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}
-% Im Gegensatz zu \cs{FamilyOptions} kann man mit dieser Anweisung nur eine
-% einzige Option setzen. Dafür kann man gleich mehrere durch Komma getrennte
-% Argumente für diese Option setzen. Das erste obligatorische Argument ist
-% wieder die Familie, das zweite obligatorische Argument ist die Option, das
-% dritte, obligatorische Argument ist die Liste der Werte für diese Option.
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.12}{2013/03/04}{removed}
+% \end{macro}^^A \Family@Option
+% \changes{v3.04b}{2010/01/29}{\cs{edef} replaced by \cs{protected@edef}}
+% In opposite to \cs{FamilyOptions} this command sets only one \meta{option}
+% (\texttt{\#2}) of a \meta{family} (\texttt{\#1}). But you can set it to a
+% \meta{list of values} (\texttt{\#3}). The values are set in the order of the
+% \meta{list of values}.
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyOption}[2]{%
@@ -4063,20 +3874,21 @@
\newcommand{\@FamilyOption}[3]{%
\expandafter\scr@sp@def\expandafter\scr@key@name\expandafter{#2}%
% \end{macrocode}
-% Der einfachste Weg ist nun schlicht, die Liste der Werte durchzugehen und so
-% nach und nach eine Liste von Werten für \cs{FamilyOptions} zu erzeugen.
+% The most simply solution is to walk through the \meta{list of values} and
+% generate a \meta{list of options} for \cs{FamilyOptions}.
% \begin{macrocode}
\let\reserved@a\@empty
\@for\reserved@b:=#3\do{%
% \end{macrocode}
-% \changes{v3.08}{2010/11/05}{leere Argumente in der Werteliste}%^^A
-% Auf vielfachen Wunsch und entgegen meiner Ãœberzeugung, sind auch leere
-% Argumente in der Werteliste erlaubt, werden jedoch ignoriert:
+% \changes{v3.08}{2010/11/05}{allow empty values}
+% Empty elements in the \meta{list of values} are ignored. Note: This is not
+% really the correct solution but several users expect it. So for a real empty
+% value you need to use |{}|.
% \begin{macrocode}
\ifx\reserved@b\@empty\else
% \end{macrocode}
-% \changes{v3.12}{2012/03/04}{auch Leerzeichenargumente werden ignoriert}%^^A
-% Auch Argumente, die nur aus einem Leerzeichen bestehen, werden ignoriert:
+% \changes{v3.12}{2012/03/04}{ignore white space values}
+% The same for white space values.
% \begin{macrocode}
\ifx\reserved@b\space\else
\edef\reserved@a{\unexpanded\expandafter{\reserved@a},%
@@ -4090,34 +3902,32 @@
%</base>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\KOMAoptions}
-% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen}%^^A
-% \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten}%^^A
-% \changes{v3.12}{2013/03/04}{Hook-Mechanismus von \cs{FamilyOptions}%^^A
-% verwendent}
-% Simple kleine Abkürzung.
+% \begin{command}{\KOMAoptions}
+% \changes{v2.96}{2006/08/20}{hook after options added}
+% \changes{v2.97c}{2007/04/19}{process options of all members}
+% \changes{v3.12}{2013/03/04}{using hooks of \cs{FamilyOptions}}
+% Nice little shortcut.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAoptions}{\FamilyOptions{KOMA}}
%</koma>
% \end{macrocode}
% \begin{macro}{\KOMA@options}
-% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt}%^^A
-% \end{macro}%^^A \KOMA@options
-% \end{macro}%^^A \KOMAoptions
-%
-% \begin{macro}{\KOMAoptionsOf}
-% \changes{v3.17}{2015/02/25}{neue Anweisung}%^^A
-% Mit dieser Anweisung können die aktuell gesetzten \KOMAScript-Optionen
-% eines Pakets oder einer Klasse abgefragt werden, sobald ein Paket oder eine
-% Klasse das unterstützt. Das erste (optionale) Argument gibt dabei eine
-% Anweisung an, die für die Optionenliste ausgeführt werden soll. Das zweite
-% (nicht optionale Argument) ist der Name eines KOMA-Script-Pakets oder einer
-% KOMA-Script-Klasse einschließlich Dateiendung.
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.12}{2013/03/04}{removed}
+% \end{macro}^^A \KOMA@options
+% \end{command}^^A \KOMAoptions
+%
+% \begin{command}{\KOMAoptionsOf}
+% \changes{v3.17}{2015/02/25}{added}
+% Ask for the currently set options of a supporting \KOMAScript{} class or
+% package. The optional first argument (\texttt{\#1}) is a command or macro,
+% that will be execute with the list of options as an argument. The second
+% argument (\texttt{\#2}) is the filename of a \KOMAScript{} class or package
+% (with extension). Without optional argument, the \meta{list of options} are
+% be printed.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAoptionsOf}[2][\@firstofone]{%
@@ -4135,17 +3945,17 @@
}
%</koma>
% \end{macrocode}
-% \end{macro}%^^A \KOMAoptionsOf
+% \end{command}^^A \KOMAoptionsOf
%
-% \begin{macro}{\KOMAoptionOf}
-% \changes{v3.17}{2015/02/26}{neue Anweisung}%^^A
-% Mit dieser Anweisung kann eine aktuell gesetzte \KOMAScript-Option
-% eines Pakets oder einer Klasse abgefragt werden, sobald ein Paket oder eine
-% Klasse das unterstützt. Das erste (optionale) Argument gibt dabei eine
-% Anweisung an, die für die Optionenliste ausgeführt werden soll. Das zweite
-% (nicht optionale Argument) ist der Name eines KOMA-Script-Pakets oder einer
-% KOMA-Script-Klasse einschließlich Dateiendung, das dritte (nicht optionale
-% Argument) ist der Name der Option, die abgefragt werden soll.
+% \begin{command}{\KOMAoptionOf}
+% \changes{v3.17}{2015/02/26}{added}
+% Ask for the current values of one option of a supporting \KOMAScript{} class
+% or package. Again the optional first argument (\texttt{\#1}) is a command or
+% macro, that will be execute with the list of values as an argument. The second
+% argument (\texttt{\#2}) is the filename of a \KOMAScript{} class or package
+% (with extension). The third argument (\texttt{\#3}) is the name of an
+% option of the class resp. package. Without optional argument, the \meta{list of
+% values} are be printed.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAoptionOf}[3][\@firstofone]{%
@@ -4168,33 +3978,32 @@
}
%</koma>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\post@kopt@hook}
-% \changes{v3.12}{2013/03/04}{entfernt}%^^A
-% \end{macro}%^^A \post@kopt@hook
-% \begin{macro}{\AfterKOMAoptions}
-% \changes{v3.12}{2013/03/04}{Verwendung von \cs{AtEndOfFamilyOptions}}%^^A
-% \changes{v3.23}{2017/02/16}{kein \cs{let}}%^^A
-% Eine Option kann dafür sorgen, dass nach den Optionen noch etwas passiert.
+% \changes{v3.12}{2013/03/04}{removed}
+% \end{macro}^^A \post@kopt@hook
+% \begin{command}{\AfterKOMAoptions}
+% \changes{v3.12}{2013/03/04}{using \cs{AtEndOfFamilyOptions}}
+% \changes{v3.23}{2017/02/16}{\cs{newcommand} instead of \cs{let}}
+% An option can process code after executing all options of the current
+% \cs{KOMAoptions}.
% \begin{macrocode}
%<*koma>
\newcommand*{\AfterKOMAoptions}{\AtEndOfFamilyOptions}
%</koma>
% \end{macrocode}
-% \end{macro}%^^A \AfterKOMAoptions
+% \end{command}^^A \AfterKOMAoptions
%
% \begin{macro}{\l@addto@macro}
-% \changes{v2.8p}{2001/09/22}{neu (intern)}
-% Damit \cs{AfterKOMAoptions} lokal möglich ist, wird eine lokal arbeitende
-% Variante von \cs{g@addto@macro} benötigt, wie sie hier vorgestellt wird.
-% \changes{v2.95}{2006/06/02}{korrigiert, damit es sich bezüglich
-% Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro}%^^A
-% verhält}
-% \changes{v3.12}{2013/04/20}{veraltete \eTeX-freie Version entfernt}%^^A
-% \changes{v3.12}{2013/04/20}{Warnung, falls eine inkompatible Definition
-% von \cs{l@addto@macro} entdeckt wird}
-% \changes{v3.23}{2017/02/16}{in den Optionen-Teil verschoben}%^^A
+% \changes{v2.8p}{2001/09/22}{added}
+% \changes{v2.95}{2006/06/02}{changed to handle macros with arguments same
+% like \cs{g@addto@macro}}
+% \changes{v3.12}{2013/04/20}{removed non-\eTeX{} implementation}
+% \changes{v3.12}{2013/04/20}{warn, if \cs{l@addto@macro} is already defined
+% different from our definition}
+% \changes{v3.23}{2017/02/16}{moved to \texttt{prepare}}
+% We need a local variant of \cs{g@addto@macro}.
% \begin{macrocode}
%</body>
%<*base&prepare>
@@ -4229,14 +4038,13 @@
%</base&prepare>
%<*body>
% \end{macrocode}
-% \end{macro}%^^A \l@addto@macro
+% \end{macro}^^A \l@addto@macro
%
% \begin{macro}{\l@addto@macro@a}
-% \changes{v3.20}{2015/11/20}{neu (intern)}
-% So eine ähnliche Anweisung benötige ich außerdem für den Fall, dass eine
-% Anweisung erweitert werden soll, die genau ein obligatorisches Argument
-% benötigt. Achtung! Diese Anweisung funktioniert deutlich weniger allgemein
-% als \cs{l@addto@macro} und wird deshalb nie offiziell dokumentiert!
+% \changes{v3.20}{2015/11/20}{added}
+% I also need a version for macros with exactly one argument. Note: This macro
+% is dangerous. Sometimes it does not work correctly, so there is not an will
+% not be an official documentation.
% \begin{macrocode}
%<*base>
\begingroup
@@ -4271,12 +4079,12 @@
\endgroup
%</base>
% \end{macrocode}
-% \end{macro}%^^A \l@addto@macro@a
+% \end{macro}^^A \l@addto@macro@a
%
% \begin{macro}{\l@preto@macro}
-% \changes{v3.20}{2015/11/25}{neu (intern)}%^^A
-% In gewisser Weise das gleiche wie \cs{l@appto@macro}, allerdings wird vorn
-% statt hinten angefügt.
+% \changes{v3.20}{2015/11/25}{added}
+% Similar to \cs{l@addto@macro} but adds code at the very beginning instead of
+% appending it a the end.
% \begin{macrocode}
%<*base>
\newcommand\l@preto@macro[2]{%
@@ -4284,14 +4092,13 @@
}%
%</base>
% \end{macrocode}
-% \end{macro}%^^A \l@preto@macro
+% \end{macro}^^A \l@preto@macro
%
% \begin{macro}{\l@preto@macro@a}
-% \changes{v3.20}{2015/11/25}{neu (intern)}
-% So eine ähnliche Anweisung benötige ich außerdem für den Fall, dass eine
-% Anweisung erweitert werden soll, die genau ein obligatorisches Argument
-% benötigt. Achtung! Diese Anweisung funktioniert deutlich weniger allgemein
-% als \cs{l@preto@macro} und wird deshalb nie offiziell dokumentiert!
+% \changes{v3.20}{2015/11/25}{added}
+% I also need a version for macros with exactly one argument. Note: This macro
+% is dangerous. Sometimes it does not work correctly, so there is not an will
+% not be an official documentation.
% \begin{macrocode}
%<*base>
\begingroup
@@ -4326,27 +4133,27 @@
\endgroup
%</base>
% \end{macrocode}
-% \end{macro}%^^A \l@preto@macro@a
+% \end{macro}^^A \l@preto@macro@a
%
-% \begin{macro}{\KOMAoption}
-% \changes{v2.98c}{2008/03/12}{Neue Anweisung}%^^A
-% \changes{v3.12}{2013/03/04}{Einfacher Aufruf von \cs{FamilyOption}}
+% \begin{command}{\KOMAoption}
+% \changes{v2.98c}{2008/03/12}{added}
+% \changes{v3.12}{2013/03/04}{using \cs{FamilyOption}}
+% Simple little shortcut.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAoption}{\FamilyOption{KOMA}}
%</koma>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\FamilyUnknownKeyValue}
-% \changes{v3.10}{2011/09/12}{no error while processing global options}%^^A
+% \begin{command}{\FamilyUnknownKeyValue}
+% \changes{v3.10}{2011/09/12}{no error while processing global options}
% \changes{v3.11a}{2012/05/28}{prevent remove from list of unused global
-% options globally}%^^A
-% \changes{v3.14}{2014/10/17}{\cs{long}}%^^A
-% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}%^^A
-% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an einen
-% Schlüssel. Das erste Argument ist die Familie, das zweite der Schlüssel,
-% das dritte der Wert und das vierte die Liste der möglichen Werte.
+% options globally}
+% \changes{v3.14}{2014/10/17}{\cs{long}}
+% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}
+% Used to report an error because of unknown values. Arguments are
+% \marg{family}\marg{key}\marg{valid values}.
% \begin{macrocode}
%<*base>
\newcommand{\FamilyUnknownKeyValue}[4]{%
@@ -4363,29 +4170,29 @@
}
%</base>
% \end{macrocode}
-% \begin{macro}{\FamilyElseValues}
-% \changes{v3.00}{2008/05/02}{Neue Anweisung}%^^A
-% \changes{v3.12}{2013/03/04}{wird intern nicht mehr verwendet}%^^A
-% Diese Anweisung konnte ursprünglich vor dem Setzen eines Wertes definiert
-% werden, um bei einer etwaigen Fehlermeldung weitere Werte als erlaubt
-% auszugeben. Am Ende von \cs{FamilySetBool} und \cs{FamilySetNumerical}
-% wird die Anweisung automatisch zu \cs{@empty}. Seit Version~3.12 wird
-% diese Anweisung jedoch nicht mehr ausgewertet.
+% \begin{command}{\FamilyElseValues}
+% \changes{v3.00}{2008/05/02}{added}
+% \changes{v3.12}{2013/03/04}{deprecated and not used internally}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyElseValues}{}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \FamilyUnknownKeyValue
-% \end{macro}%^^A \FamilyElseValue
-%
-% \begin{macro}{\FamilyBoolKey}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% Dieses Makro definiert einen Schlüssel für eine Familie. Dieser Schlüssel
-% ist ein Schalter, der über diverse Werte geschaltet werden kann.
-% Das erste, optionale Argument ist das Familienmitglied, das zweite,
-% obligatorische Argument ist die Familie, das dritte der Name des Schlüssels,
-% das vierte der Schalter.
+% \end{command}^^A \FamilyUnknownKeyValue
+% \end{command}^^A \FamilyElseValue
+%
+% \begin{command}{\FamilyBoolKey}
+% \changes{v3.00}{2008/04/30}{added}
+% Defining a new boolean key:
+% \begin{quote}
+% \cs{FamilyBoolKey}\oarg{member}\marg{family}\marg{key}\marg{switch}
+% \end{quote}
+% The default \meta{member} is (once again)
+% \file{.\cs{@currname}.\cs{@currext}} and it is recommended to always use it!
+% \cs{if\meta{switch}} is automatically defined, if it was undefined. In this
+% case the initial value is \opt{false}. The default for using the \meta{key}
+% without argument would be \opt{true}. For other allowed values see
+% \cs{FamilySetBool}.
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyBoolKey}[4][.\@currname.\@currext]{%
@@ -4395,14 +4202,22 @@
\DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetBool{#2}{#3}{#4}{##1}}%
}
% \end{macrocode}
-% \begin{macro}{\FamilySetBool}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
-% \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert}%^^A
-% \changes{v3.27}{2019/07/08}{Leeres Argument ist \texttt{true}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Ãœber diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste
-% Argument die Familie, das zweite der Name des Schlüssels, das dritte der
-% Schalter und das vierte schließlich der gewünschte Wert.
+% \begin{command}{\FamilySetBool}
+% \changes{v3.00}{2008/04/30}{added}
+% \changes{v3.11a}{2012/05/25}{error message fixed}
+% \changes{v3.27}{2019/07/08}{empty argument is \texttt{true}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Setting a boolean key:
+% \begin{quote}
+% \cs{FamilySetBool}\marg{family}\marg{key}\marg{switch}\marg{value}
+% \end{quote}
+% The \meta{family} and the \meta{key} are used for reporting unknown values using
+% \cs{FamilyUnknownKeyValue}. The \meta{switch} is used to use either
+% \cs{\meta{switch}true} or \cs{\meta{switch}false}. It is ignored, if these
+% are not defined, so have to take care, that \cs{if\meta{switch}} already has
+% been defined, e.g., using \cs{FamilyBoolKey}. The \meta{value} can either be
+% \opt{true}, \opt{on} or \opt{yes} for \cs{\meta{switch}true} or
+% \opt{false}, \opt{off} or \opt{no} for \cs{\meta{switch}false}.
% \begin{macrocode}
\newcommand*{\FamilySetBool}[4]{%
\Ifstr{#4}{}{\@nameuse{#3true}\FamilyKeyStateProcessed}{%
@@ -4426,13 +4241,10 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \selectlanguage{english}
-% \begin{macro}{\FamilyInverseBoolKey}
-% \changes{3.27}{2019/07/08}{new}
-% \begin{macro}{\FamilySetInverseBool}
-% \changes{3.27}{2019/07/08}{new}
+% \end{command}
+% \end{command}
+% \begin{command}{\FamilyInverseBoolKey,\FamilySetInverseBool}
+% \changes{3.27}{2019/07/08}{added}
% These are similar to \cs{FamilyBoolKey} and \cs{FamilySetBoolKey} but use
% inverse logic (true sets false and false sets true).
% \begin{macrocode}
@@ -4456,14 +4268,10 @@
}
%</base>
% \end{macrocode}
-% \end{macro}%^^A \FamilySetInverseBool
-% \end{macro}%^^A \FamilyInverseBoolKey
-% \selectlanguage{ngerman}
+% \end{command}^^A \FamilyInverseBoolKey,\FamilySetInverseBool
%
% \begin{macro}{\KOMA@unknown@keyval}
-% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an
-% einen Schlüssel. Das erste Argument ist der Schlüssel, das zweite
-% der Wert und das dritte die Liste der möglichen Werte.
+% Version of \cs{FamilyUnknownKeyValue} with static family |KOMA|.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@unknown@keyval}{\FamilyUnknownKeyValue{KOMA}}
@@ -4472,15 +4280,21 @@
% \end{macro}
%
% \begin{macro}{\KOMA@ifkey}
-% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied}%^^A
-% \changes{v3.17}{2015/03/02}{ersetzt den gespeicherten Wert}%^^A
-% Dieses Makro definiert einen Schlüssel, der einen Schalter an Hand des
-% Wertes setzt. Als Werte sind "`\texttt{true}"', "`\texttt{false}"',
-% "`\texttt{on}"', "`\texttt{off}"', "`\texttt{yes}"' und
-% "`\texttt{no}"' erlaubt. Der Default-Wert für den Schalter ist
-% grundsätzlich "`false"', so dass der Default-Wert für die Verwendung
-% des Schküssels grundsätzlich "`true"' ist. Das erste Argument ist
-% der Name des Schlüssels, der zweite ist der Name des Schalters.
+% \changes{v3.02c}{2009/02/04}{defines the member if needed}
+% \changes{v3.17}{2015/03/02}{replaces the value in the storage}
+% This is an extended version of \cs{FamilyBoolKey} with static family
+% |KOMA|. So the syntax is:
+% \begin{quote}
+% \cs{KOMA@ifkey}\oarg{member}\marg{key}\marg{switch}
+% \end{quote}
+% The default \meta{member} is (once again)
+% \file{.\cs{@currname}.\cs{@currext}} and it is recommended to always use it!
+% \cs{if\meta{switch}} is automatically defined, if it was undefined. The
+% default for using the \meta{key} without argument would be \opt{true}. Note:
+% \meta{member} and \meta{key} are always fully expanded. Depending on a
+% already existing \cs{if\meta{key}} either \opt{\meta{key}=true} or
+% \opt{\meta{key}=false} is added to the value storage. If \cs{if\meta{key}}
+% was not defined, the initialized value is \opt{false}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@ifkey}[2][.\@currname.\@currext]{%
@@ -4504,10 +4318,11 @@
%</koma>
% \end{macrocode}
% \begin{macro}{\KOMA@set@ifkey}
-% Die eigentliche Arbeit bei der ganzen Sache wird von diesem internen
-% Makro erledigt. Dabei wird der Name des Schlüssels zu Argument 1, der
-% Name des Schalters zu Argument 2 und der Wert des Schlüssels wird
-% Argument 3.
+% Simple a shortcut for |\FamilySetBool{KOMA}|. So the syntax is:
+% \begin{quote}
+% \cs{KOMA@set@ifkey}\marg{key}\marg{switch}\marg{value}
+% \end{quote}
+% But all arguments are delegated.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@set@ifkey}{\FamilySetBool{KOMA}}
@@ -4516,21 +4331,21 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\FamilyCounterKey}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
-% unterstützt}%^^A
+% \begin{command}{\FamilyCounterKey}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.15}{2014/12/03}{optional default value}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Dieses Makro definiert einen Schlüssel, der einen \LaTeX-Zähler an Hand
-% des Wertes setzt. Das erste, optionale Argument ist das Familienmitglied,
-% das zweite, obligatorische Argument ist die Familie, das dritte der Name
-% des Schlüssels, das vierte, optionale ist der Säumniswert, das fünfte der
-% Name des \LaTeX-Zählers. Erlaubt sind alle Integer-Werte.
-% \begin{macro}{\Family@@Counter@@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
-% \begin{macro}{\Family@Counter@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
+% \cs{kernel@ifnextchar}}
+% Defining a \meta{key} that sets a \LaTeX{} counter to a \meta{value}.
+% \begin{quote}
+% \cs{FamilyCounterKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{\LaTeX{} counter}
+% \end{quote}
+% \meta{default} and the \meta{value} of the option has to be (almost) any
+% kind of value, that can be assigned to a \LaTeX{} counter. The
+% \meta{counter} is automatically defined, if it was undefined. In this case
+% the initial value is 0.
+% \begin{macro}{\Family@@Counter@@Key,\Family@Counter@Key}
+% \changes{v3.15}{2014/12/03}{added}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyCounterKey}[3][.\@currname.\@currext]{%
@@ -4548,14 +4363,18 @@
\DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetCounter{#2}{#3}{#4}{##1}}%
}
% \end{macrocode}
-% \begin{macro}{\FamilySetCounter}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.23}{2017/02/23}{Leerzeichen durch \cs{relax} ersetzt}%^^A
-% Ãœber diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste
-% Argument die Familie, das zweite der Name des Schlüssels, das dritte der
-% Name des \LaTeX-Zählers, das vierte schließlich der gewünschte Wert.
+% \end{macro}
+% \begin{command}{\FamilySetCounter}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.18a}{2015/07/06}{using \cs{FamilyKeyStateProcessed}}
+% \changes{v3.23}{2017/02/23}{white space replaced by \cs{relax}}
+% Set the value of a \meta{key} defined by \cs{FamilyCounterKey}:
+% \begin{quote}
+% \cs{FamilySetCounter}\marg{family}\marg{key}\marg{counter}\marg{value}
+% \end{quote}
+% Note: Before assigning the \meta{value} to the \meta{counter} tests are
+% done, if the \meta{value} can be used to be assigned to a \LaTeX{}
+% counter. If this fails a unknown value is reported.
% \begin{macrocode}
\newcommand*{\FamilySetCounter}[4]{%
\begingroup
@@ -4589,35 +4408,23 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\FamilyCounterMacroKey}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
-% unterstützt}%^^A
-% Diese Anweisung arbeitet fast wie \cs{FamilyCounterKey}, allerdings wird
-% dabei nicht ein Zähler, sondern ein Marko auf einen Wert definiert. Dabei
-% ist das erste (optionale) Argument das Mitglied, das zweite die Familie, das
-% dritte der Schlüssel, das vierte (optionale) der Säumniswert, das fünfte das
-% Makro.
-% \begin{macro}{\FamilySetCounterMacro}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.15}{2014/12/17}{\cs{aftergroup} vor
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Diese Anweisung arbeitet fast wie \cs{FamilySetCounter}, allerdings wird
-% nicht ein Zähler gesetzt, sondern ein Makro auf einen Wert definiert. Dabei
-% ist das erste Argument die Familie, das zweite der Name des Schlüssels, das
-% dritte das Makro, das vierte schließlich der gewünschte Wert.
-% \begin{macro}{\Family@@Counter@@Macro@@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
-% \begin{macro}{\Family@Counter@Macro@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
+% \end{command}
+% \end{command}
+%
+% \begin{command}{\FamilyCounterMacroKey}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.15}{2014/12/03}{support for optional default}
+% Similar to \cs{FamilyCounterKey}, but it does not use a \LaTeX{} counter to
+% store the value but a macro (or command):
+% \begin{quote}
+% \cs{FamilyCounterMacroKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{macro}
+% \end{quote}
+% The \meta{value} will be assigned to a counter (\cnt{page}) locally and the
+% \meta{macro} is defined using the value of the counter. The \meta{macro}
+% is automatically set to \cs{z@} if it was not already defined. If it was
+% defined, the user is responsible for that it has to be a number.
+% \begin{macro}{\Family@@Counter@@Macro@@Key,\Family@Counter@Macro@Key}
+% \changes{v3.15}{2014/12/03}{added}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyCounterMacroKey}[3][.\@currname.\@currext]{%
@@ -4634,14 +4441,24 @@
\ifdefined#4\else\let#4\z@\fi
\DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetCounterMacro{#2}{#3}{#4}{##1}}%
}
-\newcommand*{\FamilySetCounterMacro}[4]{%
- \begingroup
% \end{macrocode}
-% An dieser Stelle wird nun der immer definierte Zähler page als lokaler
-% Zähler verwendet. Das ist nur möglich, weil \cs{FamilySetCounter} nicht
-% global mit \cs{setcounter} arbeitet, sondern lokal mit einer Zuweisung an
-% \cs{value}.
+% \end{macro}^^A \Family@@Counter@@Macro@@Key,\Family@Counter@Macro@Key
+% \begin{command}{\FamilySetCounterMacro}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.15}{2014/12/17}{\cs{aftergroup} before \cs{FamilyKeyStateProcessed}}
+% \changes{v3.18a}{2015/07/06}{fixed usage of \cs{FamilyKeyStateProcessed}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}
+% Similar to \cs{FamilySetCounter} but using a macro (or command) instead of a
+% \LaTeX{} counter:
+% \begin{quote}
+% \cs{FamilySetCounterMacro}\marg{family}\marg{key}\marg{macro}\marg{value}
+% \end{quote}
+% Note, that the \meta{value} is locally assigned to a counter (\cnt{page})
+% before defining the \meta{macro} using the value of the counter.
% \begin{macrocode}
+\newcommand*{\FamilySetCounterMacro}[4]{%
+ \begingroup
\FamilySetCounter{#1}{#2}{page}{#4}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\edef\reserved@a{%
@@ -4661,25 +4478,24 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \FamilySetCounterMacro
+% \end{command}^^A \FamilyCounterMacroKey
%
-% \begin{macro}{\FamilyLengthKey}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
-% unterstützt}%^^A
+% \begin{command}{\FamilyLengthKey}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.15}{2014/12/03}{optional default value}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Dieses Makro definiert einen Schlüssel, der eine \LaTeX-Länge an Hand
-% des Wertes setzt. Das erste, optionale Argument ist das Familienmitglied,
-% das zweite, obligatorische Argument ist die Familie, das dritte der Name
-% des Schlüssels, das vierte der name der \LaTeX-Länge.
-% \begin{macro}{\Family@@Length@@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
-% \begin{macro}{\Family@Length@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
+% \cs{kernel@ifnextchar}}
+% Defining a \meta{key} that sets a \LaTeX{} length to a \meta{value}.
+% \begin{quote}
+% \cs{FamilyLengthKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{\LaTeX{} length}
+% \end{quote}
+% \meta{default} and the \meta{value} of the option has to be (almost) any
+% kind of value, that can be assigned to a \LaTeX{} length, a \TeX{} dimension
+% or a \TeX{} skip. The \meta{\LaTeX{} length} is automatically defined, if it
+% was undefined. In this case the initial value is 0.
+% \begin{macro}{\Family@@Length@@Key,\Family@Length@Key}
+% \changes{v3.15}{2014/12/03}{added}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyLengthKey}[3][.\@currname.\@currext]{%
@@ -4697,27 +4513,34 @@
\DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetLength{#2}{#3}{#4}{##1}}%
}
% \end{macrocode}
-% \begin{macro}{\FamilySetLength}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.15}{2015/01/02}{\cs{ifglueexpr} hinzugefügt}%^^A
-% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.20}{2016/04/27}{Expansion vor dem Test}%^^A
-% Ãœber diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste
-% Argument die Familie, das zweite der Name des Schlüssels, das dritte der
-% Name der \LaTeX-Länge, das vierte schließlich der gewünschte Wert.
+% \begin{command}{\FamilySetLength}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.15}{2015/01/02}{\cs{ifglueexpr} added}
+% \changes{v3.18a}{2015/07/06}{usage of \cs{FamilyKeyStateProcessed} fixed}
+% \changes{v3.20}{2016/04/27}{expansion before testing}
+% Set the value of a \meta{key} defined by \cs{FamilyLengthKey}:
+% \begin{quote}
+% \cs{FamilySetLength}\marg{family}\marg{key}\marg{\LaTeX{} length}\marg{value}
+% \end{quote}
+% Note: Before assigning the \meta{value} to the \meta{\LaTeX{} length} it is
+% fully expanded and tests are done, if the \meta{value} can be used to be
+% assigned to a \LaTeX{} length. If this fails a unknown value is reported. If
+% the expansion or the assignment fails a \TeX{} error happens.
% \begin{macrocode}
\newcommand*{\FamilySetLength}[4]{%
\begingroup
\protected@edef\reserved@a{#4}%
% \end{macrocode}
-% Zusammen mit \cs{@defaultsunits} (siehe unten) wäre hier das sinnvoll:
+% Together with \cs{@defaultsunits} (see below) following code, could be used:
% \begin{macrocode}
%<*neveruse>
\expandafter\Ifiscount\expandafter{\reserved@a}{%
\aftergroup\@firstoftwo
}{%
%</neveruse>
+% \end{macrocode}
+% But currently we don't use it!
+% \begin{macrocode}
\expandafter\Ifisdimen\expandafter{\reserved@a}{%
\aftergroup\@firstoftwo
}{%
@@ -4725,13 +4548,16 @@
\aftergroup\@firstoftwo
}{%
% \end{macrocode}
-% Zusammen mit \cs{@defaultsunits} (siehe unten) wäre hier das sinnvoll:
+% Together with \cs{@defaultsunits} (see below) following code, could be used:
% \begin{macrocode}
%<*neveruse>
\expandafter\Ifisnumexpr\expandafter{\reserved@a}{%
\aftergroup\@firstoftwo
}{%
%</neveruse>
+% \end{macrocode}
+% But currently we don't use it!
+% \begin{macrocode}
\expandafter\Ifisdimexpr\expandafter{\reserved@a}{%
\aftergroup\@firstoftwo
}{%
@@ -4755,13 +4581,18 @@
%</neveruse>
\endgroup
% \end{macrocode}
-% TODO: An der Stelle wäre etwas wie:
+% \begin{description}
+% \item[ToDo:] Maybe something like:
% \begin{macrocode}
%<*neveruse>
{\@defaultunits#3=#4pt\relax\@nnil\FamilyKeyStateProcessed}
%</neveruse>
-% schön. Aber aus irgend einem Grund habe ich mich seinerzeit dafür
-% entschieden, die einfacher Form zu wählen:
+% \end{macrocode}
+% would be nice. But there are reasons I've decided not to use
+% this. Unfortunately I cannot remember the reason (and because of this I've
+% added the code as \texttt{neveruse}). So the simple assignment is used
+% instead:
+% \end{description}
% \begin{macrocode}
{#3=#4\FamilyKeyStateProcessed}%
{%
@@ -4776,34 +4607,35 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\FamilyLengthMacroKey}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
-% unterstützt}%^^A
-% \begin{macro}{\FamilySetLengthMacro}
-% \changes{v3.12}{2013/11/05}{neu}%^^A
-% \changes{v3.14a}{2014/11/24}{fix: \cs{@tempskipa} statt \cs{@temskipa}}%^^A
-% \changes{v3.15}{2014/12/17}{\cs{aftergroup} vor
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.15}{2015/01/02}{\cs{ifglueexpr} hinzugefügt}%^^A
-% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} ersetzt durch
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.20}{2016/04/27}{interne Verwendung von \cs{FamilySetLength}}%^^A
-% Diese Anweisungen arbeitet fast wie \cs{FamilyLengthKey} und
-% \cs{FamilySetLengt}, allerdings wird nicht eine Länge gesetzt, sondern
-% ein Makro auf einen Wert definiert. Dabei ist das erste Argument die
-% Familie, das zweite der Name des Schlüssels, das dritte das Makro, das
-% vierte schließlich der gewünschte Wert.
-% \begin{macro}{\Family@@Length@@Macro@@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
-% \begin{macro}{\Family@Length@Macro@Key}
-% \changes{v3.15}{2014/12/03}{neu (intern)}%^^A
+% \end{command}^^A \FamilySetLength
+% \end{macro}^^A \Family@@Leng{\FamilyLengthKey}th@@Key,\Family@Length@Key
+% \end{command}^^A FamilyLengthKey
+%
+% \begin{command}{\FamilyLengthMacroKey}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.15}{2014/12/03}{support for optional default}
+% \begin{command}{\FamilySetLengthMacro}
+% \changes{v3.12}{2013/11/05}{added}
+% \changes{v3.14a}{2014/11/24}{fix: \cs{@tempskipa} instead of \cs{@temskipa}}
+% \changes{v3.15}{2014/12/17}{\cs{aftergroup} before
+% \cs{FamilyKeyStateProcessed}}
+% \changes{v3.15}{2015/01/02}{\cs{ifglueexpr} added}
+% \changes{v3.18a}{2015/07/06}{usage of \cs{FamilyKeyStateProcessed} fixed}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}
+% \changes{v3.20}{2016/04/27}{using \cs{FamilySetLength}}
+% Similar to \cs{FamilyLengthKey}, but it does not use a \LaTeX{} counter to
+% store the value but a macro (or command):
+% \begin{quote}
+% \cs{FamilyLength MacroKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{macro}
+% \end{quote}
+% The \meta{value} will be assigned to a length (\len{@tempskipa}) locally and
+% the \meta{macro} is defined using the value of the length. The \meta{macro}
+% is automatically set to \cs{z@} if it was not already defined. If it was
+% defined, the user is responsible for that it has to be a valid length. Usage
+% of \cs{dimexpr} is recommended for such a definition.
+% \begin{macro}{\Family@@Length@@Macro@@Key,\Family@Length@Macro@Key}
+% \changes{v3.15}{2014/12/03}{added}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyLengthMacroKey}[3][.\@currname.\@currext]{%
@@ -4841,27 +4673,21 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \Family@@Length@@Macro@@Key,\Family@Length@Macro@Key
+% \end{command}^^A \FamilySetLengthMacro
+% \end{command}^^A \FamilyLengthMacroKey
%
%
-% \begin{macro}{\FamilyUseLengthMacroKey}
-% \changes{v3.20}{2016/04/27}{neu}%^^A
-% \begin{macro}{\FamilySetUseLengthMacro}
-% \changes{v3.20}{2016/04/27}{neu}%^^A
-% Diese Anweisungen arbeitet fast wie \cs{FamilyLengthKey} und
-% \cs{FamilySetLengt}, allerdings wird das Makro nicht als den Wert des Werts,
-% sondern als den Wert selbst definiert. Eine Expansion des Werts findet nur
-% für die Prüfung statt. Änderungen am Wert wirken sich also ggf. weiterhin
-% aus. Dabei ist das erste Argument die Familie, das zweite der Name des
-% Schlüssels, das dritte das Makro, das vierte schließlich der gewünschte
-% Wert.
-% \begin{macro}{\Family@@UseLength@@Macro@@Key}
-% \changes{v3.20}{2016/04/27}{neu (intern)}%^^A
-% \begin{macro}{\Family@USeLength@Macro@Key}
-% \changes{v3.20}{2016/04/27}{neu (intern)}%^^A
+% \begin{command}{\FamilyUseLengthMacroKey,\FamilySetUseLengthMacro}
+% \changes{v3.20}{2016/04/27}{added}
+% These are almost the same like \cs{FamilyLengthMacroKey} and
+% \cs{FamilySetLengthMacro}. But there is one important difference: Instead of
+% setting the \meta{macro} to the value of the temporary length, that has been
+% used for a test assignment, the \meta{macro} is defined as \meta{value}. So
+% later changes valid for the expansion and value of \meta{value} will indeed
+% change the value of \meta{macro}, when it is used.
+% \begin{macro}{\Family@@UseLength@@Macro@@Key,\Family@USeLength@Macro@Key}
+% \changes{v3.20}{2016/04/27}{added}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyUseLengthMacroKey}[3][.\@currname.\@currext]{%
@@ -4900,33 +4726,29 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \Family@@UseLength@@Macro@@Key,\Family@USeLength@Macro@Key
+% \end{command}^^A \FamilyUseLengthMacroKey,\FamilySetUseLengthMacro
%
%
-% \begin{macro}{\FamilyNumericalKey}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A
+% \begin{command}{\FamilyNumericalKey}
+% \changes{v3.00}{2008/04/30}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
+% This is a mapping of symbolic values to numerical values:
+% \begin{quote}
+% \cs{FamilyNumericalKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{macro}\marg{mapping list}
+% \end{quote}
+% The \meta{mapping list} is:
+% \begin{quote}
+% \texttt{\marg{symbol$_1$}\marg{value$_1$},\marg{symbol$_2$}\marg{value$_2$}\dots}
+% \end{quote}
+% There is no need for \meta{value$_n$} and \meta{value$_m$} to be mutual
+% exclusive. So several symbols can be mapped to the same value.
% \begin{macro}{\Family@Numerical@Key}
-% \changes{v3.00}{2008/05/28}{Neu (intern)}%^^A
-% \changes{v3.08b}{2011/03/31}{fehlendes Argument bei \cs{ifundefined}}
-% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches Makro
-% auf einen bestimmten Wert setzt. Dabei können auch verschiedene symbolische
-% Werte auf denselben nummerischen Wert abgebildet werden. Das erste,
-% optionale Argument ist das Familienmitglied, das zweite, obligatorische
-% Argument ist die Familie, das dritte, obligatorische Argument ist der Name
-% der Option, das vierte, optionale Artument ist der Defaultwert für den
-% Schlüssel, das fünfte, obligatorische Argument ist der Name des Makros, das
-% (in der Voreinstellung als 0) definiert werden soll, das sechste,
-% obligatorische Argument ist die Liste der symbolischen und nummerischen
-% Werte. Die Liste hat die Form:
-% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots
-% Das interne Makro wird benötigt, um das vierte, optionale Argument zu
-% ermöglichen. Dabei ist dann das erste Argument nicht mehr optional, sondern
-% obligatorisch.
+% \changes{v3.00}{2008/05/28}{added}
+% \changes{v3.08b}{2011/03/31}{fixed: missing argument to \cs{ifundefined}}
+% The internal macro is used to handle the optional \meta{default} (because
+% currently we are not using \pkg{xparse}).
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyNumericalKey}[3][.\@currname.\@currext]{%
@@ -4944,15 +4766,15 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\FamilySetNumerical}
+% \end{macro}
+% \begin{command}{\FamilySetNumerical}
% \changes{v3.11a}{2012/05/28}{call of \cs{FamilyUnknownKeyValue} outside of
-% local group}%^^A
-% \changes{v3.25}{2017/12/04}{komplett leere Listenelemente werden
-% ignoriert}%^^A
-% Die eigentliche Arbeit dabei wird von diesem Makro erledigt. Dabei
-% wird die Familie zu Argument 1, der Name des Schlüssels zu Argument 2, der
-% Name des Makros, das definiert werden soll zu Argument 3, die Liste zu
-% Argument 4 und der Wert, auf den gesetzt werden soll, zu Argument 5.
+% local group}
+% \changes{v3.25}{2017/12/04}{handling of completely empty list elements}
+% Set the value of \meta{key} defined by \cs{FamilyNumericalKey}:
+% \begin{quote}
+% \cs{FamilySetNumerical}\marg{family}\marg{key}\marg{macro}\marg{mapping list}\marg{value}
+% \end{quote}
% \begin{macrocode}
\newcommand*{\FamilySetNumerical}[5]{%
\begingroup
@@ -4988,27 +4810,21 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \FamilySetNumerical
+% \end{command}^^A \FamilyNumericalKey
%
% \begin{macro}{\KOMA@ncmdkey}
-% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied}%^^A
-% \changes{v3.17}{2015/03/16}{neu implementiert mit Speicherung der
-% Werte und optionalem erstem Argument}%^^A
-% \begin{macro}{\KOMA@@ncmdkey}
-% \changes{v3.17}{2015/03/16}{neu (intern)}%^^A
-% \begin{macro}{\KOMA@@@ncmdkey}
-% \changes{v3.17}{2015/03/16}{neu (intern)}%^^A
-% Wie \cs{FamilyNumericalKey} mit zwei entscheidenden Unterschieden:
+% \changes{v3.02c}{2009/02/04}{defining the member (if needed)}
+% \changes{v3.17}{2015/03/16}{re-implemented with value storage and optional default}
+% \begin{macro}{\KOMA@@@ncmdkey,\KOMA@@ncmdkey}
+% \changes{v3.17}{2015/03/16}{added}
+% Like \cs{FamilyNumericalKey} with two important differences:
% \begin{itemize}
-% \item Die Familien ist immer \texttt{KOMA} und entfällt daher als zweites
-% Argument.
-% \item Der gespeicherte Wert wird ausgetauscht. Daher kann es nicht nur für
-% Optionen verwendet werden, bei denen die Werte exklusiv sind.
+% \item The family is not an argument but always |KOMA|.
+% \item The values will in the internal value storage is replaced (on success).
% \end{itemize}
-% Wichtig: Die Voreinstellung muss anschließend noch in jedem Fall mit
-% \cs{KOMA@kav@add} gesetzt werden!
+% Important: Don't forget to add the default to the internal value storage,
+% e.g., using \cs{KOMA@kav@add}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@ncmdkey}[2][.\@currname.\@currext]{%
@@ -5037,41 +4853,33 @@
%</koma>
% \end{macrocode}
% \begin{macro}{\KOMA@set@ncmdkey}
-% Die eigentliche Arbeit dabei wird wahlweise von diesem Makro erledigt. Dabei
-% wird der Name des Schlüssels zu Argument 1, der Name des Makros,
-% das definiert werden soll zu Argument 2, die Liste zu Argument 3 und
-% der Wert, auf den gesetzt werden soll, zu Argument 4. Dabei wird allerdings
-% kein gespeicherter Wert ersetzt!
+% The corresponding set command similar to \cs{FamilySetNumerical} but again
+% the family is not an argument but always |KOMA|.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}}
%</koma>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \KOMA@set@ncmdkey
+% \end{macro}^^A \KOMA@@@ncmdkey,\KOMA@@ncmdkey
+% \end{macro}^^A \KOMA@ncmdkey
%
%
-% \begin{macro}{\FamilyStringKey}
-% \changes{v3.08}{2010/11/05}{Neue Anweisung}%^^A
-% \changes{v3.08b}{2011/03/31}{\cs{Family@String@Key} und
-% \cs{Family@@String@@Key} vertauscht}%^^A
+% \begin{command}{\FamilyStringKey}
+% \changes{v3.08}{2010/11/05}{added}
+% \changes{v3.08b}{2011/03/31}{\cs{Family@String@Key} and
+% \cs{Family@@String@@Key} switched}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\Family@String@Key}
-% \changes{v3.08}{2010/11/05}{Neu (intern)}%^^A
-% \begin{macro}{\Family@@String@@Key}
-% \changes{v3.08}{2010/11/05}{Neu (intern)}%^^A
-% Ein ähnliches Makro definiert einen Schlüssel, der ein Makro auf einen
-% beliegigen Wert setzt. Das erste, optionale Argument ist das
-% Familienmitglied, das zweite, obligatorische Argument ist die Familie, das
-% dritte, obligatorische Argument ist der Name der Option, das vierte,
-% optionale Artument ist der Defaultwert für den Schlüssel, das fünfte,
-% obligatorische Argument ist das Makros, das (in der Voreinstellung
-% als leer) definiert werden soll. Die internen Makro werden benötigt, um das
-% vierte, optionale Argument zu ermöglichen. Dabei ist dann das erste Argument
-% nicht mehr optional, sondern obligatorisch.
+% \cs{kernel@ifnextchar}}
+% Defining a \meta{key} that defines a \meta{macro} to be a \meta{value}.
+% \begin{quote}
+% \cs{FamilyStringKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{macro}
+% \end{quote}
+% \meta{default} and the \meta{value} of the option should be a string (but
+% currently every value is accepted). The definition is done using
+% \cs{def}. So it doesn't matter whether the \meta{macro} is already defined.
+% \begin{macro}{\Family@String@Key,\Family@@String@@Key}
+% \changes{v3.08}{2010/11/05}{added}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyStringKey}[3][.\@currname.\@currext]{%
@@ -5087,28 +4895,24 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \Family@String@Key,\Family@@String@@Key
+% \end{command}^^A \FamilyStringKey
%
%
-% \begin{macro}{\FamilyCSKey}
-% \changes{v3.25}{2017/12/08}{Neue Anweisung}%^^A
+% \begin{command}{\FamilyCSKey}
+% \changes{v3.25}{2017/12/08}{added}
+% This is similar to \cs{FamilyStringKey} but instead of a \meta{macro} a
+% \meta{command sequence} is used:
+% \begin{quote}
+% \cs{FamilyCSKey}\oarg{member}\marg{family}\marg{key}\oarg{default}\marg{command sequence}
+% \end{quote}
+% Because of this, \cs{@namedef} instead of \cs{def} is used to define the
+% corresponding \cs{\meta{command sequence}}.
% \begin{macro}{\Family@CS@Key}
-% \changes{v3.25}{2017/12/08}{Neu (intern)}%^^A
+% \changes{v3.25}{2017/12/08}{added}
% \begin{macro}{\Family@@CS@@Key}
-% \changes{v3.25}{2017/12/08}{Neu (intern)}%^^A
-% \changes{v3.26}{2018/11/06}{Es wird wirklich diese Anweisung (statt erneut
-% \cs{Family@@String@@Key}) definiert}%^^A
-% Ein ähnliches Makro definiert einen Schlüssel, der eine Befehlssequenz auf
-% einen beliegigen Wert setzt. Das erste, optionale Argument ist das
-% Familienmitglied, das zweite, obligatorische Argument ist die Familie, das
-% dritte, obligatorische Argument ist der Name der Option, das vierte,
-% optionale Artument ist der Defaultwert für den Schlüssel, das fünfte,
-% obligatorische Argument ist der Name des Makros, das (in der Voreinstellung
-% als leer) definiert werden soll. Die internen Makro werden benötigt, um das
-% vierte, optionale Argument zu ermöglichen. Dabei ist dann das erste Argument
-% nicht mehr optional, sondern obligatorisch.
+% \changes{v3.25}{2017/12/08}{added}
+% \changes{v3.26}{2018/11/06}{fix: don't overwrite \cs{Family@@String@@Key}}
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyCSKey}[3][.\@currname.\@currext]{%
@@ -5124,25 +4928,25 @@
}
%</base>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \Family@@CS@@Key
+% \end{macro}^^A \Family@CS@Key
+% \end{command}^^A \FamilyCSKey
%
%
% \begin{macro}{\KOMA@DeclareDeprecatedOption}
-% \changes{v3.01a}{2008/11/20}{neu (intern)}%^^A
+% \changes{v3.01a}{2008/11/20}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\KOMA@@DeclareDeprecatedOption}
-% \changes{v3.01a}{2008/11/20}{neu (intern)}%^^A
-% \begin{macro}{\KOMA@@@DeclareDeprecatedOption}
-% \changes{v3.01a}{2008/11/20}{neu (intern)}%^^A
-% Mit Hilfe dieses Makros kann eine Option definiert werden, die
-% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel
-% verwendet. Das erste Argument ist optional und muss dann der Paketname
-% sein. Ist es nicht gesetzt, so wird stattdessen die Klasse
-% \cs{KOMAClassName} angenommen. Das zweite Argument ist der Name der
-% Option. Das vierte Argument ist das Setzen des gewünschten Schlüssels.
+% \cs{kernel@ifnextchar}}
+% Used to define a deprecated \meta{classic option} by an up-to-date
+% \meta{\pkg*{keyval} option}.
+% \begin{quote}
+% \cs{KOMA@DeclareDeprecatedOption}\oarg{package name}\marg{classic
+% option}\marg{\pkg*{keyval} option}
+% \end{quote}
+% If the \meta{package name} is omitted, \cs{KOMAClassName} is used to report
+% a class warning instead of a package warning.
+% \begin{macro}{\KOMA@@DeclareDeprecatedOption,\KOMA@@@DeclareDeprecatedOption}
+% \changes{v3.01a}{2008/11/20}{added}
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@DeclareDeprecatedOption}{%
@@ -5158,13 +4962,19 @@
}
% \end{macrocode}
% \begin{macro}{\KOMA@UseDeprecatedOption}
-% \changes{v3.01a}{2008/11/20}{neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{Test für \texttt{version!=first}}%^^A
-% \changes{v3.12a}{2014/01/22}{vertauschte Logic für
-% \texttt{version!=first} korrigiert}%^^A
-% \changes{v3.22}{2016/07/29}{diverse \cs{detokenize} eingefügt}%^^A
-% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind
-% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels.
+% \changes{v3.01a}{2008/11/20}{added}
+% \changes{v3.12}{2013/03/04}{test to use \opt{version\quotechar=first}}
+% \changes{v3.12a}{2014/01/22}{test fixed}
+% \changes{v3.22}{2016/07/29}{added several \cs{detokenize}}
+% One more helper:
+% \begin{quote}
+% \cs{KOMA@UseDeprecatedOption}\marg{warning command}\marg{classic
+% option}\marg{\pkg*{keyval} option}
+% \end{quote}
+% Note: \meta{warning command} should either be
+% |\ClassWarningNoLine{\KOMAClassName}| or
+% \cs{PackageWarningNoLine}\marg{package name}. But you could also use
+% \cs{ClassInfoNoLine} or \cs{PackageInfoNoLine}.
% \begin{macrocode}
\newcommand*{\KOMA@UseDeprecatedOption}[3]{%
\begingroup
@@ -5201,26 +5011,27 @@
}
%</koma>
% \end{macrocode}
-% \end{macro}%^^A \KOMA@UseDeprecatedOption
-% \end{macro}%^^A \KOMA@@@DeclareDeprecatedOption
-% \end{macro}%^^A \KOMA@@DeclareDeprecatedOption
-% \end{macro}%^^A \KOMA@DeclareDeprecatedOption
+% \end{macro}^^A \KOMA@UseDeprecatedOption
+% \end{macro}^^A \KOMA@@DeclareDeprecatedOption,\KOMA@@@DeclareDeprecatedOption
+% \end{macro}^^A \KOMA@DeclareDeprecatedOption
%
%
% \begin{macro}{\KOMA@DeclareStandardOption}
-% \changes{v3.01a}{2008/11/21}{neu (intern)}%^^A
+% \changes{v3.01a}{2008/11/21}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\KOMA@@DeclareStandardOption}
-% \changes{v3.01a}{2008/11/21}{neu (intern)}%^^A
-% \begin{macro}{\KOMA@@@DeclareStandardOption}
-% \changes{v3.01a}{2008/11/21}{neu (intern)}%^^A
-% Mit Hilfe dieses Makros kann eine Option definiert werden, die
-% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel
-% verwendet. Das erste Argument ist optional und muss dann der Paketname
-% sein. Ist es nicht gesetzt, so wird stattdessen die Klasse
-% \cs{KOMAClassName} angenommen. Das zweite Argument ist der Name der
-% Option. Das vierte Argument ist das Setzen des gewünschten Schlüssels.
+% \cs{kernel@ifnextchar}}
+% This is similar to \cs{KOMA@DeclareDeprecatedOption} but is used for
+% standard options, which means options known by the standard classes.
+% \begin{quote}
+% \cs{KOMA@DeclareStandardOption}\oarg{package name}\marg{classic
+% option}\marg{\pkg*{keyval} option}
+% \end{quote}
+% For compatibility these options are not reported as deprecated, but an info
+% is added to the \file{log} file about the usage and how it could be replaced
+% by a \pkg*{keyval} option.
+% \begin{macro}{\KOMA@@DeclareStandardOption,\KOMA@@@DeclareStandardOption,
+% \KOMA@UseStandardOption}
+% \changes{v3.01a}{2008/11/21}{added}
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@DeclareStandardOption}{%
@@ -5234,12 +5045,6 @@
\newcommand*{\KOMA@@@DeclareStandardOption}[3]{%
\DeclareOption{#2}{\KOMA@UseStandardOption{#1}{#2}{#3}}%
}
-% \end{macrocode}
-% \begin{macro}{\KOMA@UseStandardOption}
-% \changes{v3.01a}{2008/11/21}{neu (intern)}%^^A
-% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind
-% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels.
-% \begin{macrocode}
\newcommand*{\KOMA@UseStandardOption}[3]{%
\begingroup
\edef\reserved@a{\noexpand\endgroup
@@ -5260,61 +5065,44 @@
%</koma>
% \end{macrocode}
% \begin{macro}{\scr@sr@co}
-% \changes{v2.96}{2006/08/20}{neu (intern)}%^^A
-% \changes{v3.12a}{2014/01/22}{beseitigt}%^^A
-% \end{macro}%^^A \scr@sr@co
-% \end{macro}%^^A \KOMA@UseStandardOption
-% \end{macro}%^^A \KOMA@@@DeclareStandardOption
-% \end{macro}%^^A \KOMA@@DeclareStandardOption
-% \end{macro}%^^A \KOMA@DeclareStandardOption
+% \changes{v2.96}{2006/08/20}{added}
+% \changes{v3.12a}{2014/01/22}{removed}
+% \end{macro}^^A \scr@sr@co
+% \end{macro}^^A \KOMA@@@DeclareStandardOption … \KOMA@UseStandardOption
+% \end{macro}^^A \KOMA@DeclareStandardOption
%
%
% \begin{macro}{\KOMA@DeclareObsoleteOption}
-% \changes{v2.96}{2006/08/20}{\cs{CurrentOption wir geschützt}}
-% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}%^^A
-% \begin{macro}{\KOMA@@DeclareObsoleteOption}
-% \changes{v2.98c}{2008/02/18}{neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}%^^A
-% \begin{macro}{\KOMA@@@DeclareObsoleteOption}
-% \changes{v2.98c}{2008/02/18}{neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}%^^A
-% \begin{macro}{\KOMA@iv@DeclareObsoleteOption}
-% \changes{v2.98c}{2008/02/18}{neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}%^^A
-% \begin{macro}{\KOMA@UseObsoleteOption}
-% \changes{v2.97c}{2007/04/19}{neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}%^^A
-% \end{macro}%^^A \KOMA@UseObsoleteOption
-% \end{macro}%^^A \KOMA@iv@DeclareObsoleteOption
-% \end{macro}%^^A \KOMA@iii@DeclareObsoleteOption
-% \end{macro}%^^A \KOMA@ii@DeclareObsoleteOption
-% \end{macro}%^^A \KOMA@i@DeclareObsoleteOption
-%
-%
-% \begin{macro}{\KOMA@newdeprecatedcommand}
-% \changes{v3.12}{2013/03/04}{renamed \cs{KOMA@newobsoletecommand} into
-% \cs{KOMA@newdeprecatedcommand}}
-% Mit Hilfe dieses Makros kann ein Makro definiert werden, das
-% eigentlich obsolete ist. Das Makro verwendet dann schlicht einen
-% Schlüssel. Das erste Argument ist optional und muss dann entweder
-% \cs{PackageInfo}, \cs{PackageInfoNoLine}, \cs{PackageWarning} oder
-% \cs{PackageWarningNoLine} sein. Das zweite Argument ist das Makro.
-% Das dritte Argument ist das Setzen des gewünschten Schlüssels. Das
-% definierte Makro selbst hat Schaltercharakter, ist also nicht
-% \cs{long} und versteht auch keine Argumente.
+% \changes{v2.96}{2006/08/20}{\cs{CurrentOption} protected}
+% \changes{v3.12}{2013/03/04}{removed}
+% \begin{macro}{\KOMA@@DeclareObsoleteOption,\KOMA@@@DeclareObsoleteOption,
+% \KOMA@iv@DeclareObsoleteOption,\KOMA@UseObsoleteOption}
+% \changes{v2.98c}{2008/02/18}{added}
+% \changes{v3.12}{2013/03/04}{removed}
+% \end{macro}^^A \KOMA@@DeclareObsoleteOption … \KOMA@UseObsoleteOption
+% \end{macro}^^A \KOMA@DeclareObsoleteOption
+%
+%
+% \begin{macro}{\KOMA@newobsoletecommand,\KOMA@newdeprecatedcommand}
+% \changes{v3.12}{2013/03/04}{\cs{KOMA@newobsoletecommand} renamed to
+% \cs{KOMA@newdeprecatedcommand}}
+% Defines a deprecated command or \meta{macro}, represented by a
+% \meta{\pkg*{keyval} option}:
+% \begin{quote}
+% \cs{KOMA@newdeprecatedcommand}\oarg{warning
+% command}\marg{macro}\marg{\pkg*{keyval} option}
+% \end{quote}
+% Note: This can be used only for macros and commands, that behave as a
+% selector. Macros or commands with arguments are not supported.
+% \begin{macro}{\KOMA@UseDeprecatedCommand,\KOMA@UseDeprecatedCommand}
+% \changes{v2.97c}{2007/04/19}{added}
+% \changes{v3.12}{2013/03/04}{\cs{KOMA@UseObsoleteCommand} renamed to
+% \cs{KOMA@UseDeprecatedCommand}}
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@newdeprecatedcommand}[3][\@gobbletwo]{%
\newcommand*{#2}{\KOMA@UseDeprecatedCommand{#1}{\string#2}{#3}}%
}
-% \end{macrocode}
-% \begin{macro}{\KOMA@UseDeprecatedCommand}
-% \changes{v2.97c}{2007/04/19}{neu (intern)}%^^A
-% \changes{v3.12}{2013/03/04}{renamed \cs{KOMA@UseObsoleteCommand} into
-% \cs{KOMA@UseDeprecatedCommand}}
-% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind
-% dieselben.
-% \begin{macrocode}
\newcommand*{\KOMA@UseDeprecatedCommand}[3]{%
#1{%
scrkbase%
@@ -5327,26 +5115,25 @@
}
%</koma>
% \end{macrocode}
-% \end{macro}%^^A \KOMA@UseDeprecatedCommand
-% \end{macro}%^^A \KOMA@newdeprecatedcommand
+% \end{macro}^^A \KOMA@UseDeprecatedCommand
+% \end{macro}^^A \KOMA@newdeprecatedcommand
%
%
-% \selectlanguage{english}
-% \subsection{Do Hook Mechanism}
+% \subsection{Do hook mechanism}
% \label{sec:dohook}
%
-% \changes{v3.27}{2019/02/02}{Do hook mechanism added}%^^A
+% \changes{v3.27}{2019/02/02}{Do hook mechanism added}
% From \KOMAScript~v3.27 there is a new general hook mechanism called ``do
% hook mechanism''. This mechanism is mentioned to provide extended hooks for
% package authors. All hooks newly implemented in \KOMAScript{} \emph{should}
% use this new mechanism.
%
%
-% \begin{macro}{\ForDoHook}
-% \changes{v3.27}{2019/02/05}{New}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.30}{2020/03/07}{\cs{loop}\dots\cs{repeat} inside group}%^^A
-% \changes{v3.30}{2020/03/07}{using \cs{rloop} instead of \cs{loop}}%^^A
+% \begin{command}{\ForDoHook}
+% \changes{v3.27}{2019/02/05}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.30}{2020/03/07}{\cs{loop}\dots\cs{repeat} inside group}
+% \changes{v3.30}{2020/03/07}{using \cs{rloop} instead of \cs{loop}}
% Arguments:
% \begin{description}
% \item[\meta{specificator}:]
@@ -5385,9 +5172,9 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\SplitDoHook}
-% \changes{v3.27}{2019/02/04}{New}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\SplitDoHook}
+% \changes{v3.27}{2019/02/04}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Arguments:
% \begin{description}
% \item[\meta{specificator}:]
@@ -5412,12 +5199,12 @@
}
% \end{macrocode}
% \begin{macro}{\scr@hooksplit@specificator}
-% \changes{v3.27}{2019/02/02}{New internal}%^^A
+% \changes{v3.27}{2019/02/02}{added}
% Split of the first string of the specificator argument, append it to
% \cs{scr@hookname} and store the rest in \cs{scr@hookargument}. The argument
% must not be empty!
% \begin{macro}{\scr@@hooksplit@specificator}
-% \changes{v3.27}{2019/02/02}{New internal}%^^A
+% \changes{v3.27}{2019/02/02}{added}
% \begin{macrocode}
\newcommand*{\scr@hooksplit@specificator}[3]{%
\expandafter\scr@@hooksplit@specificator\expandafter#1\expandafter#2#3/\@nil
@@ -5435,11 +5222,11 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
-% \begin{macro}{\ExecuteDoHook}
-% \changes{v3.27}{2019/02/02}{New}%^^A
+% \begin{command}{\ExecuteDoHook}
+% \changes{v3.27}{2019/02/02}{added}
% Arguments:
% \begin{description}
% \item[\meta{specificator}:]
@@ -5477,10 +5264,10 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\AddtoDoHook}
-% \changes{v3.27}{2019/02/02}{New}%^^A
+% \begin{command}{\AddtoDoHook}
+% \changes{v3.27}{2019/02/02}{added}
% Arguments:
% \begin{description}
% \item[\meta{specificator}:]
@@ -5506,11 +5293,11 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\AddtoOneTimeDoHook}
-% \changes{v3.27}{2019/02/02}{New}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\AddtoOneTimeDoHook}
+% \changes{v3.27}{2019/02/02}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Arguments:
% \begin{description}
% \item[\meta{specificator}:]
@@ -5535,21 +5322,20 @@
}%
}
%</base>
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \selectlanguage{ngerman}
-%
-% \iffalse
-%</body>
-% \fi
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-basics.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx b/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
index a00422db94..a2c58a9e4e 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{421}
% \iffalse meta-comment
% ======================================================================
% scrkernel-bibliography.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-bibliography.dtx
-% Copyright (c) Markus Kohm, 2002-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-bibliography.dtx 3390 2019-11-18 17:09:35Z kohm $
+%%% From File: $Id: scrkernel-bibliography.dtx 3773 2022-03-29 06:27:55Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-11-18 18:09:35 +0100 (Mon, 18 Nov 2019) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-bibliography.dtx}%
@@ -74,66 +36,95 @@
(bibliography)]%
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-bibliography.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}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-bibliography.dtx}
\end{document}
%</dtx>
-% \fi
-% \selectlanguage{ngerman}
+% \fi^^A meta-comment
+%
+% \changes{v2.95}{2002/06/30}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/21}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/21}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-bibliography.dtx}
+% \title{Bibliography and References with
+% \href{https://komascript.de}{\KOMAScript} Classes and Packages}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-bibliography.dtx} provides the usual functionality for the
+% bibliography or references. In comparison with the standard classes
+% several additions are available. Nevertheless it is fully compatible with
+% the known features of the standard classes.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation of the commands implemented in
+% \file{scrkernel-bibliography.dtx} in the \KOMAScript{} manual, either the
+% German \file{scrguide} or the English \file{scrguien}.
+%
%
-% \changes{v2.95}{2002/06/30}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \MaybeStop{\PrintIndex}
%
-% \section{Literaturverzeichnis}
+% \section{Implementation of Bibliography or References}
%
-% Das Literaturverzeichnis unterscheidet sich bei \KOMAScript{} nicht
-% wesentlich von den Standardklassen.
+% Bibliography or references are not available with the \KOMAScript{} letter
+% class.
+% \begin{macrocode}
+%<*!letter>
+% \end{macrocode}
%
-% Briefe haben kein Literaturverzeichnis.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \subsection{Bibliography styles}
%
-% \iffalse
-%<*!letter>
-% \fi
+% \KOMAScript{} provides styles for the bibliography or references. This is
+% similar to the redefinition of \cs{@openbib@code} and \cs{newblock} with the
+% standard classes, but much more configurable.
%
-% \iffalse
-%<*option>
-% \fi
-% \subsection{Anweisungen, die für die Optionen benötigt werden}
-%
-% Einige Anweisungen werden über Optionen verändert. Dazu müssen sie aber
-% bereits vor der Abarbeitung der Optionen definiert sein.
-%
-% \subsubsection{Literaturverzeichnisstile}
-%
-% \begin{macro}{\newbibstyle}
-% \changes{v2.98c}{2008/02/15}{Neu}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung des Werts für Option
-% \texttt{bibliography}}%^^A
-% Neue Literaturverzeichnisstile müssen mit dieser Anweisung definiert werden,
-% wenn sie von der Fehlermeldung korrekt angezeigt werden sollen. Das erste,
-% optionale Argument ist der Name eines Elternstils. Das zweite
-% Argument ist der Name des Stils. Das dritte Argument ist Code für den
-% Stil. Darin sollten normalerweise Umdefinierungen für \cs{@openbib@code},
-% \cs{newblock}, \cs{bib@beginhook}, \cs{bib@endhook} enthalten sein. Die
-% genannten Makros werden am Anfang des Stils zurückgesetzt. Danach wird der
-% Elternstil geladen und dann die eigenen Definitionen.
+% \begin{command}{\newbibstyle}
+% \changes{v2.98c}{2008/02/15}{added}
+% \changes{v3.17}{2015/03/12}{using internal storage of options \opt{bibliography}}
+% Defining new bibliography style:
+% \begin{quote}
+% \cs{newbibstyle}\oarg{parent style}\marg{style name}\marg{style code}
+% \end{quote}
+% The command defines an internal command \cs{scr@bibstyle@\meta{style name}},
+% that can be used to activate a bibliography style. If the \meta{parent
+% style} is given, the code of the \meta{parent style} is executed before the
+% \meta{style code}.
+% \begin{macro}{\@openbib@code}
+% \changes{v2.3g}{1996/01/14}{added}
+% \changes{v2.98c}{2008/02/15}{earlier definition}
+% Typically the \meta{style code} redefines the macro \cs{@openbib@code} and
+% \cs{newblock}.
+% The \cs{@openbib@code} is executed at the very beginning of a
+% bibliography. Originally it has been used to implement the standard option
+% \opt{openbib}. \KOMAScript{} uses it for compatibility for all bibliography
+% styles.
+% \begin{command}{\newblock}
+% \changes{v2.3g}{1996/01/14}{initialization changed}
+% \changes{v2.98c}{2008/02/15}{earlier definition}
+% The command \cs{newblock} is used inside bibliography entries to mark a
+% \emph{new block}. Usually such new blocks are inserted after the author and
+% after the title. But the user or \BibTeX{} style is free to use it different.
+% Both are initialized empty (before the code of a parent
+% style is executed.
+% \begin{macro}{\bib@beginhook,\bib@endhook}
+% \changes{v2.98c}{2008/02/15}{added}
+% Also \cs{bib@beginhook} and \cs{bib@endhook} are initialized empty. So
+% activation of a new bibliography style always removes the hook
+% code. Redefining an already existing style is not supported and results in
+% an error.
% \begin{macrocode}
+%<*option>
\newcommand{\newbibstyle}[3][]{%
\scr@ifundefinedorrelax{scr@bibstyle@#2}{%
\scr@ifundefinedorrelax{scr@bibstyle@#1}{%
@@ -154,11 +145,12 @@
\let\bib@endhook\@empty
% \end{macrocode}
% \begin{macro}{\scr@current@bibstyle}
-% \changes{v3.17}{2015/03/12}{Neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Das Makro \cs{scr@current@bibstyle} wird benötigt, um den aktuellen Wert von
-% Option \texttt{bibliography} korrigieren zu können. Es wird direkt vom Stil
-% definiert, der auch die Korrektur des Optionenwerts durchführt.
+% \changes{v3.17}{2015/03/12}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.36}{2022/02/21}{add expanded name to list}
+% To be able to change the current value of option \opt{bibliography} we need
+% to know the current style and save it in \cs{scr@current@bibstyle}. We also
+% have to correct the value in the storage by activating a style.
% \begin{macrocode}
\@ifundefined{scr@current@bibstyle}{}{%
\Ifstr{\scr@current@bibstyle}{}{}{%
@@ -176,7 +168,11 @@
\csname scr@bibstyle@#1\endcsname
#3%
}%
- \g@addto@macro\scr@bibstylelist{, `#2'}%
+ \ifx\scr@bibstylelist\@empty
+ \edef\scr@bibstylelist{`#2'}%
+ \else
+ \edef\scr@bibstylelist{\scr@bibstylelist, `#2'}%
+ \fi
}%
}{%
\ClassError{\KOMAClassName}{bibliography style `#2' already exists}{%
@@ -189,54 +185,39 @@
}
% \end{macrocode}
% \begin{macro}{\scr@bibstyle@}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
-% Nur ein Dummy, wenn kein Elternstil existiert.
+% \changes{v2.98c}{2008/02/15}{added}
+% Dummy of the empty parent style.
% \begin{macrocode}
\newcommand*{\scr@bibstyle@}{}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\bib@beginhook}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
-% \begin{macro}{\bib@endhook}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
-% Die beiden Haken, wie sie durch den Literaturverzeichnisstil vorgegeben
-% werden.
+% \end{macro}^^A \scr@bibstyle@
+% The hook macros are reserved.
% \begin{macrocode}
\newcommand*{\bib@beginhook}{}
\newcommand*{\bib@endhook}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \bib@beginhook,\bib@endhook
% \begin{macro}{\scr@bibstylelist}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
-% Liste der mit \cs{newbibstyle} definierten und daher bekannten
-% Literaturverzeichnisstile.
-% \begin{macro}{\@openbib@code}
-% \changes{v2.3g}{1996/01/14}{Neu (intern)}%^^A
-% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%^^A
-% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und
-% normalerweise ursprünglich für die \texttt{openbib}-Funktionalität verwendet
-% wurde. Inzwischen wird er für die komplette Stilauswahl verwendet.
-% \begin{macro}{\newblock}
-% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert}%^^A
-% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%^^A
-% \begin{macrocode}
-\newcommand*{\scr@bibstylelist}{\@gobble}
+% \changes{v2.98c}{2008/02/15}{added}
+% \changes{v3.36}{2022/02/21}{\cs{@gobble} removed}
+% \cs{scr@bibstylelist} is a printable comma-separated list of all known
+% styles. Single quotes are used to quote the single styles. It is designated
+% to be used in messages.
+% \begin{macrocode}
+\newcommand*{\scr@bibstylelist}{}
+% \end{macrocode}
+% And also \cs{@openbib@code} and \cs{newblock} are reserved.
+% \begin{macrocode}
\newcommand*{\@openbib@code}{}
\newcommand*{\newblock}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\scr@bibstyle@openstyle}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
-% Vordefiniert sind zwei Stile. Mit dem Bibliographystil \texttt{openstyle}
-% kann eine alternative Darstellung der Literatureinträge aktiviert
-% werden. Dabei fügt \cs{newblock} keinen horizontalen Abstand mehr ein,
-% sondern beginnt einen neuen Absatz (in Form einer neuen Zeile).
-% \begin{macro}{\scr@bibstyle@oldstyle}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%^^A
-% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung.
+% \end{macro}^^A \scr@bibstylelist
+% \begin{macro}{\scr@bibstyle@openstyle,\scr@bibstyle@oldstyle}
+% \changes{v2.98c}{2008/02/15}{added}
+% The bibliography style \texttt{openstyle} corresponds to standard option
+% \opt{openbib}. The \cs{newblock} starts a new paragraph.
+% Style \texttt{oldstyle} is the default style where \cs{newblock} inserts a
+% small horizontal distance only.
% \begin{macrocode}
\newbibstyle{openstyle}{%
\renewcommand*{\@openbib@code}{%
@@ -252,31 +233,33 @@
}
\scr@bibstyle@oldstyle
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@bibstyle@openstyle,\scr@bibstyle@oldstyle
+% \end{command}^^A \newblock
+% \end{macro}^^A \@openbib@code
+% \end{command}^^A \newbibstyle
%
%
-% \subsubsection{Ãœberschrift des Literaturverzeichnisses}
+% \subsection{Bibliography heading}
%
% \begin{macro}{\bib@heading}
-% \changes{v2.3h}{1995/01/21}{neu (intern)}%^^A
-% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt}%^^A
-% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet}%^^A
-% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
-% \texttt{thebibliography}-Umgebung verschoben}%^^A
-% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% \changes{v3.12}{2012/02/06}{\cs{ifbib@leveldown} wird beachtet}%^^A
-% \changes{v3.13b}{2014/10/10}{running head with \texttt{leveldown}%^^A
-% fixed}%^^A
-% \changes{v3.25}{2017/10/13}{use always \cs{@mkright} and \cs{@mkdouble}}%^^A
-% \changes{v3.25}{2017/10/13}{using \cs{bibliography@heading}}%^^A
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.6c}{2000/06/10}{printing preamble}
+% \changes{v2.7b}{2001/01/05}{using \cs{setchapterpreamble}}
+% \changes{v2.7j}{2001/06/27}{printing preamble moved to \env{thebibliography}}
+% \changes{v2.98c}{2008/02/15}{defined ealier}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.12}{2012/02/06}{using \cs{ifbib@leveldown}}
+% \changes{v3.13b}{2014/10/10}{running head with \texttt{leveldown} fixed}
+% \changes{v3.25}{2017/10/13}{using always \cs{@mkright} and \cs{@mkdouble}}
+% \changes{v3.25}{2017/10/13}{using \cs{bibliography@heading}}
% \begin{macro}{\bibliography@heading}
-% \changes{v3.25}{2017/10/13}{neu (intern)}
-% \changes{v3.26}{2018/09/03}{Verwendung von \cs{addsecmark}
-% oder \cs{subsectionmark} statt \cs{@mkright}}%^^A
-% Befehl zum Setzen der Ãœberschrift des Literaturverzeichnisses.
+% \changes{v3.25}{2017/10/13}{added}
+% \changes{v3.26}{2018/09/03}{using \cs{addsecmark} or \cs{subsectionmark}
+% instead of \cs{@mkright}}
+% \cs{bib@heading} runs the more generic \cs{bibliography@heading} with text
+% \cs{refname} resp. \cs{bibname}. This indirect approach has been
+% implemented, to that \pkg{biblatex} can simply call \cs{bibliography} with
+% different texts for multiple bibliographies.
% \begin{macrocode}
\newcommand*{\bib@heading}{%
%<article> \bibliography@heading{\refname}%
@@ -300,46 +283,78 @@
\fi
}%
% \end{macrocode}
-% \end{macro}
-% \end{macro}%
+% \end{macro}^^A \bibliography@heading
+% \end{macro}^^A \bib@heading
%
%
-% \subsection{Optionen für das Literaturverzeichnis}
+% \subsection{Options}
%
% \begin{option}{bibliography}
-% \changes{v2.98c}{2008/02/15}{Neu}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% \changes{v3.12}{2013/02/06}{neuer Wert \texttt{leveldown}}%^^A
-% \changes{v3.12}{2013/02/06}{neuer Wert \texttt{standardlevel}}%^^A
-% \changes{v3.12}{2013/03/05}{an die Änderungen in \textsf{scrbase}%^^A
-% angepasst}%^^A
-% \changes{v3.12}{2013/09/28}{Verwendung von \cs{addxcontentsline} statt
-% \cs{addcontentsline}}%^^A
-% \changes{v3.12}{2013/09/28}{Es werden keine Kapiteleinträge in andere
-% Verzeichnisse geschrieben.}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}%^^A
-% \changes{v3.25}{2017/10/13}{use always \cs{@mkright} and
-% \cs{@mkdouble}}%^^A
-% \changes{v3.25}{2017/10/13}{redefines \cs{bibliography@heading} instead of
-% \cs{bib@heading}}%^^A
-% Dies ist der Generalschlüssel für alle Optionen, die das
-% Literaturverzeichnis betreffen. Neu ist, dass verschiedene Stile definiert
-% werden können. Desweiteren kann man \texttt{totoc} und
-% \texttt{totocnumbered} wieder mit \texttt{nottotoc} aufgeben.
-% \begin{macro}{\ifbib@leveldown}
-% \changes{v3.12}{2013/02/06}{neuer Schalter (intern)}%^^A
-% Für den ab Version~3.12 neuen Wert \texttt{leveldown} und dessen
-% Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt.
+% \changes{v2.98c}{2008/02/15}{added}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.12}{2013/02/06}{new value \opt{leveldown}}
+% \changes{v3.12}{2013/02/06}{new value \opt{standardlevel}}
+% \changes{v3.12}{2013/03/05}{adapted to changes of \pkg*{scrbase}}
+% \changes{v3.12}{2013/09/28}{using \cs{addxcontentsline} instead of
+% \cs{addcontentsline}}
+% \changes{v3.12}{2013/09/28}{do not write chapter entries to other directories}
+% \changes{v3.17}{2015/03/12}{using internal value storage}
+% \changes{v3.25}{2017/10/13}{using always \cs{@mkright} and \cs{@mkdouble}}
+% \changes{v3.25}{2017/10/13}{redefining \cs{bibliography@heading} instead of
+% \cs{bib@heading}}
+% \KOMAScript provides several configurations for the bibliography or
+% references using a single option.
+% \begin{macro}{\bib@leveldownfalse,\bib@leveldowntrue,\ifbib@leveldown}
+% \changes{v3.12}{2013/02/06}{added}
+% The boolean \cs{ifbib@leveldown} is used to allow the
+% bibliography/references have a lower heading level.
% \begin{macrocode}
\newif\ifbib@leveldown
+% \end{macrocode}
+% \end{macro}
+% The supported values for option \opt{bibliography} are:
+% \begin{macrocode}
\KOMA@key{bibliography}{%
\scr@ifundefinedorrelax{scr@bibstyle@#1}{%
\KOMA@set@ncmdkey{bibliography}{@tempa}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=notoc}:] (default) don't add the bibliography/references to the
+% table of contents.
+% \end{description}
+% \begin{macrocode}
{notoc}{0},{nottotoc}{0},{plainheading}{0},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=totoc}:] add the bibliography/references to the table of
+% contents, but do not number it.
+% \end{description}
+% \begin{macrocode}
{totoc}{1},{toc}{1},{notnumbered}{1},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=numbered}:] number the bibliography/references and so also add
+% it to the table of contents.
+% \end{description}
+% \begin{macrocode}
{numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},%
{numberedtoc}{2},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=leveldown}:] don't use the top heading level (chapters with
+% \cls*{scrbook} or \cls*{scrreprt}, sections with \cs*{scrartcl}) but one
+% level lower (sections with \cls*{scrbook} or \cls*{scrreprt}, subsection
+% with \cs*{scrartcl}) for the bibliography/references.
+% \end{description}
+% \begin{macrocode}
{leveldown}{3},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=standardlevel}:] use the top heading level (chapters with
+% \cls*{scrbook} or \cls*{scrreprt}, sections with \cs*{scrartcl}) for the
+% bibliography/references.
+% \end{description}
+% \begin{macrocode}
{standardlevel}{4}%
}{#1}%
\ifcase \@tempa\relax % notoc
@@ -375,11 +390,11 @@
%<*article>
\ifbib@leveldown
% \end{macrocode}
-% \changes{v3.23}{2017/02/23}{Verwendung von \cs{ext@toc}}%^^A
-% \changes{v3.25}{2017/10/13}{Verwendung von \cs{addsubsectiontocentry} statt
-% \cs{addxcontentsline}}%^^A
-% Ab Version 3.23 wird das von \textsf{tocbasic} bereitgestellte
-% \cs{ext@toc} statt dem hart codierten \texttt{toc} verwendet.
+% \changes{v3.23}{2017/02/23}{using \cs{ext@toc}}
+% \changes{v3.25}{2017/10/13}{using \cs{addsubsectiontocentry} instead of
+% \cs{addxcontentsline}}
+% From version 3.23 \cs{ext@toc} of \pkg*{tocbasic} is used instead of hard
+% coded |toc|.
% \begin{macrocode}
\subsection*{%
\addsubsectiontocentry{}{##1}%
@@ -447,6 +462,15 @@
\bib@leveldownfalse
\fi
}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=\meta{style}}:] all other values are names of styles.
+% \begin{description}
+% \item[ToDo:] Here we should test for valid style names and report an
+% unknown value for unknown styles.
+% \end{description}
+% \end{description}
+% \begin{macrocode}
\FamilyKeyStateProcessed
\edef\reserved@a{%
\noexpand\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}%
@@ -456,131 +480,120 @@
}%
}
% \end{macrocode}
-% \end{macro}
% \end{option}
%
% \begin{option}{openbib}
-% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue},
-% \cs{@openbibfalse}) entfernt}
-% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu
-% implementiert}%^^A
-% \changes{v2.98c}{2008/02/15}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% Mit dieser Option kann eine alternative Darstellung der
-% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen
-% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz
-% (in Form einer neuen Zeile).
+% \begin{macro}{\@openbibfalse,\@openbibtrue,\if@openbib}
+% \changes{v2.3g}{1996/01/14}{removed}
+% \end{macro}
+% \changes{v2.3g}{1996/01/14}{re-implemented}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/21}{standard instead of obsolete}
+% The standard option \opt{openbib} is mapped to \opt{bibliography=openstyle}.
% \begin{macrocode}
\KOMA@DeclareStandardOption{openbib}{bibliography=openstyle}
% \end{macrocode}
% \end{option}
%
% \begin{option}{bibtotoc}
-% \changes{v2.3h}{1995/01/21}{neue Option}%^^A
-% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt}
-% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt}
-% \changes{v2.7}{2001/01/03}{Klammerung korrigiert}%^^A
-% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
-% thebibliography-Umgebung verschoben}%^^A
-% \changes{v2.98c}{2008/02/15}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} added}
+% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} added}
+% \changes{v2.7}{2001/01/03}{braces fixed}
+% \changes{v2.7j}{2001/06/27}{preamble printing moved to \env{thebibliography}}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{bibtotocnumbered}
-% \changes{v2.3h}{1995/01/21}{neue Option}%^^A
-% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt}
-% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt}
-% \changes{v2.7}{2001/01/03}{Klammerung korrigiert}%^^A
-% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird
-% verwendet}
-% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}}
-% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
-% thebibliography-Umgebung verschoben}%^^A
-% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}%^^A
-% \changes{v2.98c}{2008/02/15}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Die Option \texttt{bibtotoc} sorgt dafür, dass das
-% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird.
-% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem
-% normalen Kapitel einschließlich Nummerierung.
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} added}
+% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} added}
+% \changes{v2.7}{2001/01/03}{braces fixed}
+% \changes{v2.7b}{2001/01/05}{using \cs{setchapterpreamble}}
+% \changes{v2.7i}{2001/05/17}{\cs{chapter} instead of \cs{addchap}}
+% \changes{v2.7j}{2001/06/27}{preamble printing moved to \env{thebibliography}}
+% \changes{v2.9p}{2003/07/07}{number in running head}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Deprecated options \opt{bibtotoc} and \opt{bibtotocnumbered} are mapped to
+% \opt{bibliography=totoc} resp. \opt{bibliography=totocnumbered}.
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{bibtotoc}{bibliography=totoc}
\KOMA@DeclareDeprecatedOption{bibtotocnumbered}{bibliography=totocnumbered}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-%
-% \iffalse
%</option>
-%<*body>
-% \fi
+% \end{macrocode}
+% \end{option}^^A bibtotocnumbered
+% \end{option}^^A bibtotoc
%
%
-% \subsection{Standardbezeichner}
+% \subsection{Names}
%
-% \begin{macro}{\refname}
-% \begin{macro}{\bibname}
-% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet.
+% \begin{command}{\refname,\bibname}
+% \changes{v3.36}{2022/02/15}{explicit definition for English languages}
+% Depending on the class either \cs{refname} or \cs{bibname} is used.
% \begin{macrocode}
-%<article>\newcommand*\refname{References}
-%<book|report>\newcommand*\bibname{Bibliography}
+%<*body>
+%<*article>
+\newcommand*\refname{References}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\refname{References}
+%</article>
+%<*book|report>
+\newcommand*\bibname{Bibliography}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\bibname{Bibliography}
+%</book|report>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Definitionen für das Literaturverzeichnis}
+% \subsection{Printing the bibliography or references}
%
-% \begin{macro}{\setbibpreamble}
-% \changes{v2.6c}{2000/06/10}{neu}%^^A
-% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} durch \cs{def}
-% ersetzt zur Erhöhung der \textsf{natbib}-Kompatibilität}
+% \begin{command}{\setbibpreamble}
+% \changes{v2.6c}{2000/06/10}{added}
+% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} replaced by \cs{def} for
+% better \pkg{natbib} compatibility}
% \begin{macro}{\bibpreamble}
-% \changes{v2.6c}{2000/06/10}{neue (intern)}%^^A
-% \changes{v2.6d}{2000/07/20}{Makro funktioniert nachdem \cs{let}%^^A
-% durch \cs{newcommand*} ersetzt wurde}
-% \changes{v2.8q}{2002/01/10}{wieder \cs{let}}
-% \cs{bibpreamble} kann vom Benutzer mit \cs{setbibpreamble} auf
-% einen Text gesetzt werden, der nach der Überschrift eingefügt
-% wird. Dasselbe Makro wird von \textsf{natbib} als \cs{relax}
-% definiert; aus Kompatibilitätsgründen wird hier vergleichbar
-% verfahren und \cs{let} bzw. \cs{def} statt \cs{renewcommand}
-% verwendet.
-% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
-% \texttt{thebibliography}-Umgebung verschoben}
-% Außerdem wird ab Version 2.7j die Präambel nicht mehr in
-% \cs{bib@heading} gesetzt, sondern in der
-% \texttt{thebibliography}-Umgebung. Dies dient ebenfalls der
-% Kompatibilität mit natbib. Trotz aller Kompatibilität ist
-% \cs{bibpreamble} als internes Makro zu betrachten.
+% \changes{v2.6c}{2000/06/10}{neue (intern)}
+% \changes{v2.6d}{2000/07/20}{\cs{let} replaced by \cs{newcommand*}}
+% \changes{v2.8q}{2002/01/10}{\cs{newcommand*} replaced by \cs{let}}
+% \changes{v2.7j}{2001/05/27}{preamble printing moved to \env{thebibliography}}
+% \cs{bibpreamble} should be interpreted as an internal macro. The user
+% command name space has been used for compatibility with \pkg{natbib}
+% only. The official \KOMAScript{} user interface is using
+% \begin{quote}
+% \cs{setbibpreamble}\marg{preamble}
+% \end{quote}
+% Also for compatibility \cs{bibpreamble} is not set by \cs{bib@heading} but
+% inside environment \env{theenvironment}.
% \begin{macrocode}
\newcommand*{\bibpreamble}{\relax}
\let\bibpreamble\relax
\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \bibpreamble
+% \end{command}^^A \setbibpreamble
%
-% \begin{Length}{bibindent}
-% Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind
-% 1,5\,em.
+% \begin{length}{bibindent}
+% The indent of entries with option \opt{bibliography=openstyle}. Default is 1.5\,em.
% \begin{macrocode}
\newdimen\bibindent
\bibindent=1.5em
% \end{macrocode}
-% \end{Length}
+% \end{length}
%
% \begin{environment}{thebibliography}
-% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname}
-% vollständig durch \cs{refname} ersetzt}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}}
-% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung
-% leerer Präambeln}%^^A
-% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty}
-% korrigiert}
-% \changes{v2.98c}{2008/02/15}{Neue Haken \cs{bib@before@hook} und
-% \cs{bib@after@hook} eingefügt}
-% Nun werden noch die Umgebung für das Literaturverzeichnis und der
-% Befehl für die einzelnen Einträge definiert.
+% \changes{v2.2a}{1995/02/01}{for \cls*{scrartcl} \cs{bibname} replaced by
+% \cs{refname}}
+% \changes{v2.3h}{1995/01/21}{using \cs{bib@heading}}
+% \changes{v2.8q}{2002/01/10}{handling empty preamble}
+% \changes{v2.9o}{2003/03/06}{fix of comparing \cs{bibpreamble} with \cs{@empty}}
+% \changes{v2.98c}{2008/02/15}{new hooks \cs{bib@before@hook} and
+% \cs{bib@after@hook}}
+% This environment is used to print the bibliography or references. Note: This
+% environment is redefined by almost all bibliography packages like
+% \pkg{natbib} or \pkg{biblatex}. No one of these supports all features of
+% \KOMAScript{}. So if such a package is used, users should consult the
+% package manual instead of using a \KOMAScript{} feature.
% \begin{macrocode}
\newenvironment{thebibliography}[1]{%
\if@bib@break@
@@ -601,9 +614,10 @@
\bib@before@hook
\fi
% \end{macrocode}
-% \begin{macro}{\BreakBibliography}
-% \changes{v2.98c}{2008/02/15}{Neu}%^^A
-% An dieser Stelle wird \cs{BreakBibliography} passend umdefiniert.
+% \begin{command}{\BreakBibliography}
+% \changes{v2.98c}{2008/02/15}{added}
+% Redefining \cs{BreakBibliography} to work with our definition of
+% \env{thebibliography}.
% \begin{macrocode}
\renewcommand{\BreakBibliography}[1]{%
\@bib@break
@@ -612,9 +626,9 @@
\begin{thebibliography}{#1}
}%
% \end{macrocode}
-% \end{macro}
+% \end{command}
% \begin{macrocode}
-% Hier geht es jetzt mit \texttt{thebibliography} weiter.
+% Start the list for the entries.
\list{%
\@biblabel{\@arabic\c@enumiv}%
}{%
@@ -662,39 +676,31 @@
\bib@endhook
}
% \end{macrocode}
-% \begin{macro}{\if@bib@break@}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%^^A
-% \begin{macro}{\no@bib@break}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%^^A
-% \begin{macro}{\@bib@break}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%^^A
-% Dieser Hilfsschalter arbeitet immer global!
+% \begin{macro}{\if@bib@break@,\no@bib@break,\@bib@break}
+% \changes{v2.98c}{2008/02/15}{added}
+% To be used as global switch.
+% \begin{description}
+% \item[ToDo:] Maybe redefine \cs{@bib@break@true} and \cs{@bib@break@false}.
+% \end{description}
% \begin{macrocode}
\newif\if@bib@break@
\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse}
\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\bib@before@hook}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%^^A
-% \begin{macro}{\bib@after@hook}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%^^A
+% \end{macro}^^A \if@bib@break@,\no@bib@break,\@bib@break
+% \begin{macro}{\bib@before@hook,\bib@after@hook}
+% \changes{v2.98c}{2008/02/15}{added}
% \begin{macrocode}
\newcommand*{\bib@before@hook}{}
\newcommand*{\bib@after@hook}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{environment}
+% \end{macro}^^A \bib@before@hook,\bib@after@hook
+% \end{environment}^^A thebibliography
%
-% \begin{macro}{\BreakBibliography}
-% \changes{v2.98c}{2008/02/15}{Neu}%^^A
-% Diese Anweisung unterbricht normalerweise das Literaturverzeichnis für ein
-% paar eigene Anweisungen (z. B. Unterüberschriften). Wenn jedoch nicht das
-% \KOMAScript-Literaturverzeichnis verwendet wird, dann gibt es eine Warnung
-% aus.
+% \begin{command}{\BreakBibliography}
+% \changes{v2.98c}{2008/02/15}{added}
+% The initial definition is a do nothing but warn, because the command makes
+% sense only inside \env{thebibliography}.
% \begin{macrocode}
\newcommand{\BreakBibliography}[1]{%
\ClassWarning{\KOMAClassName}{%
@@ -705,37 +711,36 @@
}%
}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\AfterBibliographyPreamble}
-% \changes{v2.98c}{2008/02/15}{Neu}%^^A
-% \begin{macro}{\AtEndBibliography}
-% \changes{v2.98c}{2008/02/15}{Neu}%^^A
-% Zwei neue Anweisungen, um am Anfang des Literaturverzeichnisses, nach
-% Überschrift und Präambel, und am Ende des Literaturverzeichnisses, nach
-% Abschluss der Liste, Code einschleusen zu können. Das funktioniert natürlich
-% nur so lange, wie keine Paket verwendet wird, das die Umgebung umdefiniert.
+% \end{command}^^A \BreakBibliography
+%
+% \begin{command}{\AfterBibliographyPreamble,\AtEndBibliography}
+% \changes{v2.98c}{2008/02/15}{added}
+% Add code to the two new hooks inside our definition of
+% \env{thebibliography}. So any bibliography package can break this
+% functionality.
+% Note: The hooks are always emptied by selecting a style using
+% \opt{bibliography=\meta{style name}}.
% \begin{macrocode}
\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook}
\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</body>
-% \fi
%
-% \iffalse
+% \begin{macrocode}
%</!letter>
-% \fi
-%
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-bibliography.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx b/macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx
deleted file mode 100644
index c05abcdb07..0000000000
--- a/macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx
+++ /dev/null
@@ -1,173 +0,0 @@
-% \CheckSum{36}
-% \iffalse meta-comment
-% ======================================================================
-% scrkernel-circularletters.dtx
-% Copyright (c) Markus Kohm, 2006-2019
-%
-% This file is part of the LaTeX2e KOMA-Script bundle.
-%
-% This work may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, version 1.3c of the license.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later and of this work.
-%
-% This work has the LPPL maintenance status "author-maintained".
-%
-% The Current Maintainer and author of this work is Markus Kohm.
-%
-% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-circularletters.dtx
-% Copyright (c) Markus Kohm, 2006-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
-% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-circularletters.dtx 3262 2019-10-10 08:25:29Z kohm $
-%<option>%%% (run: option)
-%<body>%%% (run: body)
-%<*dtx>
-% \fi
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\begingroup
- \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $
- \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
- \edef\reserved@a{%
- \noexpand\endgroup
- \noexpand\ProvidesFile{scrkernel-circularletters.dtx}%
- [\filedate\space\filerevision\space
- KOMA-Script source
- (circular letters)]%
- }%
-\reserved@a
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-circularletters.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
-\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
-\end{document}
-%</dtx>
-% \fi
-%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2006/03/22}{%
-% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
-%
-% \section{Serienbriefe und Adressdateien}
-%
-% Die \KOMAScript-Brief-Klasse unterstützt die Verwendung von Adressdateien
-% beispielsweise für Serienbriefe.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
-%<*letter>
-%<*option>
-% \fi
-%
-% \subsection{Option}
-% Die Implementierung ist von Optionen unabhängig.
-%
-%
-% \iffalse
-%</option>
-%<*body>
-% \fi
-%
-% \subsection{Makos für Serienbriefe und Adressdateien}
-%
-% \begin{macro}{\adrentry}
-% \changes{v2.8q}{2002/05/19}{\cs{adrentry} verwendet das neue
-% \cs{addrentry}}
-% \begin{macro}{\adrchar}
-% \changes{v2.8q}{2002/05/19}{\cs{adrchar} verwendet das neue \cs{addrchar}}
-% Serienbriefe werden mit Hilfe der Funktionen |\adrentry| und |\adrchar| und
-% einer Adressdatei realisiert. Darüber hinaus werden mit diesen Befehlen
-% Abkürzungen für Adressen definiert. Durch die Definition mit Hilfe von
-% \cs{addrentry} bzw. \cs{addrchar} müssen vom Anwender für neue Anwendungen
-% nur die neuen Befehle umdefiniert werden.
-% \begin{macrocode}
-\newcommand*{\adrentry}[7]{%
- \addrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{}}
-\newcommand*{\adrchar}{\addrchar}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\addrentry}
-% \changes{v2.8n}{2001/09/06}{Neu}%^^A
-% \begin{macro}{\addrchar}
-% \changes{v2.8n}{2001/09/06}{Neu}%^^A
-% Diese Makros ermöglichen ab Version 2.8n die Verwendung von bis zu 9
-% Argumenten.
-% \begin{macrocode}
-\newcommand*{\addrentry}[9]{\def\@tempa{#1}\ifx \@tempa\@empty \else
- \def\@tempa{#2}\ifx \@tempa\@empty
- \expandafter\def\csname #9\endcsname{#1\\#3}%
- \else
- \expandafter\def\csname #9\endcsname{#2 #1\\#3}%
- \fi \fi}
-\newcommand*{\addrchar}[1]{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
-%</body>
-%</letter>
-% \fi
-%
-% \Finale
-%
-\endinput
-%
-% end of file `scrkernel-circularletters.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx b/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx
index e626ce2194..c56962eaf1 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{228}
% \iffalse meta-comment
% ======================================================================
% scrkernel-compatibility.dtx
-% Copyright (c) Markus Kohm, 2006-2020
+% Copyright (c) Markus Kohm, 2006-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,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-compatibility.dtx
-% Copyright (c) Markus Kohm, 2006-2020
-%
-% 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-compatibility.dtx 3617 2021-10-12 09:21:01Z kohm $
+%%% From File: $Id: scrkernel-compatibility.dtx 3765 2022-03-16 09:25:29Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2021-10-12 11:21:01 +0200 (Tue, 12 Oct 2021) $
+ \filedate$Date: 2022-03-16 10:25:29 +0100 (Mi, 16. Mär 2022) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 1638 $
+ \filerevision$Revision: 3765 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-compatibility.dtx}%
@@ -76,69 +38,73 @@
(compatibility)]
}%
\reserved@a
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-compatibility.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}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-compatibility.dtx}
\end{document}
%</dtx>
-% \fi
-%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2006/03/16}{%
-% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
-%
-%
-% \section{Kompatibilität mit den Standardklassen oder
-% zu früheren Versionen}
-%
-% \KOMAScript{} ist bezüglich der Anwenderschnittstelle von vornherein
-% aufwärtskompatibel mit den Standardklassen. Allerdings unterscheiden sich
-% diverse Voreinstellungen doch sehr erheblich von denen der
-% Standardklassen. In Zukunft soll man beim Laden der Klassen (nicht jedoch
-% später!) mit Option \texttt{emulatestandardclasses} die Voreinstellungen
-% anpassen können. Dabei wird jedoch nicht komplette Umbruchkompatibilität mit
-% den Standardklassen erreicht, sondern nur einige Einstellungen werden
-% angepasst.
-%
+% \fi^^A meta-comment
+%
+% \changes{v2.95}{2006/03/16}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/21}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/21}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-compatibility.dtx}
+% \title{Compatibility with prior Versions of
+% \href{https://komascript.de}{\KOMAScript}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \KOMAScript{} has been designed to be as much compatible with the user
+% interface of the standard classes as possible. Compatibility with internal
+% commands of the standard classes is not possible and therefore sometimes
+% given, but mostly not. Compatibility with the lookalike of the standard
+% classes is not a main purpose of \KOMAScript{}, however with option
+% \opt{emulatestandardclasses} several layout elements can be changed to
+% look similar to the standard classes.
+%
+% Another compatibility topic is compatibility of \KOMAScript{} to prior
+% version of \KOMAScript. Sometimes, \KOMAScript{} has been changed to
+% improve the typography. In most of these cases you can switch back to the
+% results of prior versions with option \opt{version}.
+%
+% All those features are implemented in \file{scrkernel-compatibility.dtx}.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation of the commands implemented in
+% \file{scrkernel-compatibility.dtx} in the \KOMAScript{} manual, either the
+% German \file{scrguide} or the English \file{scrguien}.
+%
%
-% Manchmal ist es sinnvoll, dass sich eine neue Version von \KOMAScript{}
-% etwas anders verhält als frühere Versionen. Gleichzeitig ist es aber für den
-% Anwender manchmal auch notwendig, dass sich neue Versionen ganz genau so
-% verhalten wie frühere. Daher wird eine Option geboten, mit der man die
-% Kompatibilität selbst steuern kann. Voreingestellt ist jeweils maximale
-% Kompatibilität.
+% \MaybeStop{\PrintIndex}
%
-% \StopEventually{\PrintIndex\PrintChanges}
%
+% \section{Implementation of Compatibility Selection}
%
-% \subsection{Optionen für die Kompatibilität mit den Standardklassen}
-% Hier gibt es derzeit nur eine Option, die nur beim Laden aber nicht zur
-% Laufzeit verwendet werden kann:
+% \subsection{Options for compatibility with the standard classes}
+% There is only one such option, which can only be used while loading a
+% \KOMAScript{} class.
%
% \begin{option}{emulatestandardclasses}
-% \changes{v3.12}{2013/11/11}{Neue Option}%^^A
-% \changes{v3.20}{2016/02/16}{\texttt{headings!=standardclasses} auch für
-% \textsf{scrartcl}}%^^A
-% Diese Option muss sich auf diverse andere Einstellungen auswirken und
-% sollte deshalb so früh wie möglich verwendet werden. Vieles ändert sie
-% sofort, manches aber auch erst später.
-% \begin{macro}{\if@scr@emulatestandardclasses}
-% \changes{v3.12}{2013/11/11}{Neuer Schalter (intern)}%^^A
-% Für die späteren Änderungen wird ein Schalter benötigt, der jedoch nicht
-% wie gewohnt geändert werden kann.
+% \changes{v3.12}{2013/11/11}{added}
+% \changes{v3.20}{2016/02/16}{\opt{headings\quotechar=standardclasses} also for
+% \cls*{scrartcl}}
+% Because this option has to change several defaults, it should be used as
+% early as possible. The earliest time is the load time. So it has been
+% defined as a classic option.
+% \begin{macro}{\@scr@emulatestandardclassesfalse,\@scr@emulatestandardclassestrue,
+% \if@scr@emulatestandardclasses}
+% \changes{v3.12}{2013/11/11}{added}
+% We need a boolean switch, but it should be a kind of constant, so the
+% default changing macros are deactivated.
% \begin{macrocode}
%<*option&class&!letter>
\newif\if@scr@emulatestandardclasses
@@ -172,30 +138,29 @@
% \end{option}
%
%
-% \subsection{Option für die Kompatibilität zu früheren Versionen}
-% Die gesamte Kompatibilitätssteuerung erfolgt mit einer einzigen Option, bei
-% der man angibt, zu welcher Version Kompatibilität hergestellt werden
-% soll. Dies bedeutet ggf. dann auch, dass einzelne neuere Möglichkeiten nicht
-% zur Verfügung stehen.
-% \changes{v3.01b}{2008/12/09}{Kompatibilitätseinstellungen werden in Paketen
-% nur definiert, wenn sie noch nicht vorhanden sind}%^^A
+% \subsection{Options for compatibility with prior versions of \KOMAScript}
+% There is also a single option to select compatibility with exactly one
+% \KOMAScript{} version. The compatibility changes are limited to feature
+% changes. Bug changes are not affected. So you would never be able to get
+% exactly the result of the given version using this option. However falling
+% back to compatibility with a prior version usually also deactivates other
+% features of the current version.
+%
+% \changes{v3.01b}{2008/12/09}{compatibility definitions in packages only, if
+% not yet defined}
%
% \begin{option}{version}
-% \changes{v2.9u}{2005/03/05}{Neue Option}%^^A
-% \changes{v2.95}{2006/03/16}{Option kann nur beim Laden der Klasse gesetzt
-% werden}%^^A
+% \changes{v2.9u}{2005/03/05}{added}
+% \changes{v2.95}{2006/03/16}{can be used while loading only}
% \begin{macro}{\scr@compatibility}
-% \changes{v2.9u}{2005/03/05}{Neues Macro}%^^A
-% \changes{v3.01a}{2008/11/20}{Voreinstellung auf \textit{last} geändert}
+% \changes{v2.9u}{2005/03/05}{added}
+% \changes{v3.01a}{2008/11/20}{default is \opt{\quotechar=last}}
% \begin{macro}{\scr@ta@compatibility}
-% \changes{v3.01b}{2008/12/09}{Neues Macro}%^^A
-% In einigen Fällen sind Verbesserungen nicht kompatibel mit früheren
-% Versionen. Deshalb sind solche Verbesserungen nur verfügbar, wenn mit diesem
-% Schalter die neue Version ausgewählt wird. Aber es gilt: Entweder kompatibel
-% oder in allen Dingen neu. Mischmasch machen wir nicht. Die aktuell
-% eingestellte Kompatibilität wird in \cs{scr@compatibility} als Zahl
-% gespeichert. In den Makros \cs{scr@v@\emph{Version}} werden die
-% zugehörigen Nummern gespeichert.
+% \changes{v3.01b}{2008/12/09}{added}
+% Depending on \opt{version=\meta{version}} \cs{scr@compatibility}
+% resp. \cs{scr@ta@compatibility} will be set to an integer. The mapping from
+% \meta{version} to the integer is done with several macros
+% \cs{scr@v@\meta{version}}.
% \begin{macrocode}
%<*init>
%<class>\newcommand*
@@ -250,10 +215,8 @@
}
%<class>\KOMA@kav@add{.\KOMAClassFileName}{version}{last}
% \end{macrocode}
-% Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim
-% Laden gesetzt werden. Danach geht es nicht mehr. Ausnahmsweise wird hier
-% auch nicht mit \cs{FamilyKeyState} signalisiert, sondern direkt ein Fehler
-% ausgegeben.
+% We do not use \cs{FamilyKeyState} if the option is set to late, but
+% immediately report an error.
% \begin{macrocode}
%<class>\AtEndOfClass{%
%<package>\AtEndOfPackage{%
@@ -283,165 +246,167 @@
%<*init>
% \end{macrocode}
% \begin{macro}{\scr@v@first}
-% \changes{v2.9u}{2005/03/05}{Neues Macro}%^^A
+% \changes{v2.9u}{2005/03/05}{added}
% \begin{macro}{\scr@v@2.9}
-% \changes{v2.9u}{2005/03/05}{Neues Macro}%^^A
+% \changes{v2.9u}{2005/03/05}{added}
% \begin{macro}{\scr@v@2.9t}
-% \changes{v2.9u}{2005/03/05}{Neues Macro}%^^A
+% \changes{v2.9u}{2005/03/05}{added}
% \begin{macro}{\scr@v@2.95}
-% \changes{v2.95}{2006/03/23}{Neues Macro}%^^A
+% \changes{v2.95}{2006/03/23}{added}
% \begin{macro}{\scr@v@2.95a}
-% \changes{v2.96a}{2006/11/27}{Neues Macro}%^^A
+% \changes{v2.96a}{2006/11/27}{added}
% \begin{macro}{\scr@v@2.95b}
-% \changes{v2.96a}{2006/11/27}{Neues Macro}%^^A
+% \changes{v2.96a}{2006/11/27}{added}
% \begin{macro}{\scr@v@2.96}
-% \changes{v2.96a}{2006/11/27}{Neues Macro}%^^A
+% \changes{v2.96a}{2006/11/27}{added}
% \begin{macro}{\scr@v@2.96a}
-% \changes{v2.96a}{2006/11/27}{Neues Macro}%^^A
+% \changes{v2.96a}{2006/11/27}{added}
% \begin{macro}{\scr@v@2.97}
-% \changes{v2.97}{2007/03/02}{Neues Macro}%^^A
+% \changes{v2.97}{2007/03/02}{added}
% \begin{macro}{\scr@v@2.97a}
-% \changes{v2.97a}{2007/03/07}{Neues Macro}%^^A
+% \changes{v2.97a}{2007/03/07}{added}
% \begin{macro}{\scr@v@2.97b}
-% \changes{v2.97b}{2007/03/25}{Neues Macro}%^^A
+% \changes{v2.97b}{2007/03/25}{added}
% \begin{macro}{\scr@v@2.97c}
-% \changes{v2.97c}{2007/05/12}{Neues Macro}%^^A
+% \changes{v2.97c}{2007/05/12}{added}
% \changes{v2.97d}{2007/10/09}{Wert geändert}%^^A
% \begin{macro}{\scr@v@2.97d}
-% \changes{v2.97d}{2007/10/03}{Neues Macro}%^^A
+% \changes{v2.97d}{2007/10/03}{added}
% \changes{v2.97d}{2007/10/09}{Wert geändert}%^^A
% \begin{macro}{\scr@v@2.97e}
-% \changes{v2.97e}{2007/11/27}{Neues Macro}%^^A
+% \changes{v2.97e}{2007/11/27}{added}
% \begin{macro}{\scr@v@2.98}
-% \changes{v2.98}{2007/12/24}{Neues Macro}%^^A
+% \changes{v2.98}{2007/12/24}{added}
% \begin{macro}{\scr@v@2.98a}
-% \changes{v2.98a}{2008/01/08}{Neues Macro}%^^A
+% \changes{v2.98a}{2008/01/08}{added}
% \begin{macro}{\scr@v@2.98b}
-% \changes{v2.98b}{2008/01/30}{Neues Macro}%^^A
+% \changes{v2.98b}{2008/01/30}{added}
% \begin{macro}{\scr@v@2.98c}
-% \changes{v2.98c}{2008/02/01}{Neues Macro}%^^A
+% \changes{v2.98c}{2008/02/01}{added}
% \begin{macro}{\scr@v@3.00}
-% \changes{v3.00}{2008/11/04}{Neues Macro}%^^A
+% \changes{v3.00}{2008/11/04}{added}
% \begin{macro}{\scr@v@3.01}
-% \changes{v3.01}{2008/11/14}{Neues Macro}%^^A
+% \changes{v3.01}{2008/11/14}{added}
% \begin{macro}{\scr@v@3.01a}
-% \changes{v3.01a}{2008/11/20}{Neues Macro}%^^A
+% \changes{v3.01a}{2008/11/20}{added}
% \begin{macro}{\scr@v@3.01b}
-% \changes{v3.01b}{2008/11/24}{Neues Macro}%^^A
+% \changes{v3.01b}{2008/11/24}{added}
% \begin{macro}{\scr@v@3.01c}
-% \changes{v3.01c}{2008/12/09}{Neues Macro}%^^A
+% \changes{v3.01c}{2008/12/09}{added}
% \begin{macro}{\scr@v@3.02}
-% \changes{v3.02}{2009/01/01}{Neues Macro}%^^A
+% \changes{v3.02}{2009/01/01}{added}
% \begin{macro}{\scr@v@3.02b}
-% \changes{v3.02b}{2009/01/24}{Neues Macro}%^^A
+% \changes{v3.02b}{2009/01/24}{added}
% \begin{macro}{\scr@v@3.02c}
-% \changes{v3.02c}{2009/01/28}{Neues Macro}%^^A
+% \changes{v3.02c}{2009/01/28}{added}
% \begin{macro}{\scr@v@3.03}
-% \changes{v3.03}{2009/04/01}{Neues Macro}%^^A
+% \changes{v3.03}{2009/04/01}{added}
% \begin{macro}{\scr@v@3.03a}
-% \changes{v3.03a}{2009/04/02}{Neues Macro}%^^A
+% \changes{v3.03a}{2009/04/02}{added}
% \begin{macro}{\scr@v@3.03b}
-% \changes{v3.03b}{2009/04/12}{Neues Macro}%^^A
+% \changes{v3.03b}{2009/04/12}{added}
% \begin{macro}{\scr@v@3.04}
-% \changes{v3.04}{2009/07/07}{Neues Macro}%^^A
+% \changes{v3.04}{2009/07/07}{added}
% \begin{macro}{\scr@v@3.05}
-% \changes{v3.05}{2009/07/08}{Neues Macro}%^^A
+% \changes{v3.05}{2009/07/08}{added}
% \begin{macro}{\scr@v@3.04a}
-% \changes{v3.04a}{2009/07/24}{Neues Macro}%^^A
+% \changes{v3.04a}{2009/07/24}{added}
% \begin{macro}{\scr@v@3.05a}
-% \changes{v3.05a}{2010/03/10}{Neues Macro}%^^A
+% \changes{v3.05a}{2010/03/10}{added}
% \begin{macro}{\scr@v@3.06}
-% \changes{v3.06}{2010/06/17}{Neues Macro}%^^A
+% \changes{v3.06}{2010/06/17}{added}
% \begin{macro}{\scr@v@3.07}
-% \changes{v3.07}{2010/09/14}{Neues Macro}%^^A
+% \changes{v3.07}{2010/09/14}{added}
% \begin{macro}{\scr@v@3.08}
-% \changes{v3.08}{2010/10/28}{Neues Macro}%^^A
+% \changes{v3.08}{2010/10/28}{added}
% \begin{macro}{\scr@v@3.08a}
-% \changes{v3.08a}{2011/01/25}{Neues Macro}%^^A
+% \changes{v3.08a}{2011/01/25}{added}
% \begin{macro}{\scr@v@3.08b}
-% \changes{v3.08b}{2011/02/22}{Neues Macro}%^^A
+% \changes{v3.08b}{2011/02/22}{added}
% \begin{macro}{\scr@v@3.09}
-% \changes{v3.09}{2011/04/02}{Neues Macro}%^^A
+% \changes{v3.09}{2011/04/02}{added}
% \begin{macro}{\scr@v@3.09a}
-% \changes{v3.09a}{2011/04/12}{Neues Macro}%^^A
+% \changes{v3.09a}{2011/04/12}{added}
% \begin{macro}{\scr@v@3.10}
-% \changes{v3.10}{2011/08/30}{Neues Macro}%^^A
+% \changes{v3.10}{2011/08/30}{added}
% \begin{macro}{\scr@v@3.10a}
-% \changes{v3.10a}{2012/03/08}{Neues Macro}%^^A
+% \changes{v3.10a}{2012/03/08}{added}
% \begin{macro}{\scr@v@3.10b}
-% \changes{v3.10b}{2012/03/13}{Neues Macro}%^^A
+% \changes{v3.10b}{2012/03/13}{added}
% \begin{macro}{\scr@v@3.11}
-% \changes{v3.11}{2012/05/15}{Neues Macro}%^^A
+% \changes{v3.11}{2012/05/15}{added}
% \begin{macro}{\scr@v@3.11a}
-% \changes{v3.11a}{2012/05/25}{Neues Macro}%^^A
+% \changes{v3.11a}{2012/05/25}{added}
% \begin{macro}{\scr@v@3.11b}
-% \changes{v3.11b}{2012/07/29}{Neues Macro}%^^A
+% \changes{v3.11b}{2012/07/29}{added}
% \begin{macro}{\scr@v@3.12}
-% \changes{v3.12}{2013/03/05}{Neues Macro}%^^A
+% \changes{v3.12}{2013/03/05}{added}
% \begin{macro}{\scr@v@3.13}
-% \changes{v3.13}{2014/03/19}{Neues Macro}%^^A
+% \changes{v3.13}{2014/03/19}{added}
% \begin{macro}{\scr@v@3.13a}
-% \changes{v3.13a}{2014/08/07}{Neues Macro}%^^A
+% \changes{v3.13a}{2014/08/07}{added}
% \begin{macro}{\scr@v@3.14}
-% \changes{v3.14}{2014/10/28}{Neues Macro}%^^A
+% \changes{v3.14}{2014/10/28}{added}
% \begin{macro}{\scr@v@3.15}
-% \changes{v3.15}{2014/11/20}{Neues Macro}%^^A
+% \changes{v3.15}{2014/11/20}{added}
% \begin{macro}{\scr@v@3.16}
-% \changes{v3.16}{2015/02/08}{Neues Macro}%^^A
+% \changes{v3.16}{2015/02/08}{added}
% \begin{macro}{\scr@v@3.17}
-% \changes{v3.17}{2015/02/08}{Neues Macro}%^^A
+% \changes{v3.17}{2015/02/08}{added}
% \begin{macro}{\scr@v@3.17a}
-% \changes{v3.17a}{2015/05/06}{Neues Macro}
+% \changes{v3.17a}{2015/05/06}{added}
% \begin{macro}{\scr@v@3.17c}
-% \changes{v3.17c}{2015/05/13}{Neues Macro}
+% \changes{v3.17c}{2015/05/13}{added}
% \begin{macro}{\scr@v@3.18}
-% \changes{v3.18}{2015/05/14}{Neues Macro}
+% \changes{v3.18}{2015/05/14}{added}
% \begin{macro}{\scr@v@3.18a}
-% \changes{v3.18a}{2015/07/03}{Neues Macro}
+% \changes{v3.18a}{2015/07/03}{added}
% \begin{macro}{\scr@v@3.19}
-% \changes{v3.19}{2015/07/26}{Neues Macro}
+% \changes{v3.19}{2015/07/26}{added}
% \begin{macro}{\scr@v@3.19a}
-% \changes{v3.19a}{2015/10/03}{Neues Macro}
+% \changes{v3.19a}{2015/10/03}{added}
% \begin{macro}{\scr@v@3.20}
-% \changes{v3.20}{2015/10/06}{Neues Macro}
+% \changes{v3.20}{2015/10/06}{added}
% \begin{macro}{\scr@v@3.21}
-% \changes{v3.21}{2016/05/19}{Neues Macro}
+% \changes{v3.21}{2016/05/19}{added}
% \begin{macro}{\scr@v@3.22}
-% \changes{v3.22}{2016/07/29}{Neues Macro}
+% \changes{v3.22}{2016/07/29}{added}
% \begin{macro}{\scr@v@3.23}
-% \changes{v3.23}{2017/02/04}{Neues Macro}
+% \changes{v3.23}{2017/02/04}{added}
% \begin{macro}{\scr@v@3.23}
-% \changes{v3.24}{2017/04/22}{Neues Macro}
+% \changes{v3.24}{2017/04/22}{added}
% \begin{macro}{\scr@v@3.25}
-% \changes{v3.25}{2017/09/07}{Neues Macro}
+% \changes{v3.25}{2017/09/07}{added}
% \begin{macro}{\scr@v@3.26}
-% \changes{v3.26}{2018/03/31}{Neues Macro}
+% \changes{v3.26}{2018/03/31}{added}
% \begin{macro}{\scr@v@3.26a}
-% \changes{v3.26a}{2018/12/30}{Neues Macro}
+% \changes{v3.26a}{2018/12/30}{added}
% \begin{macro}{\scr@v@3.26b}
-% \changes{v3.26b}{2018/12/30}{Neues Macro}
+% \changes{v3.26b}{2018/12/30}{added}
% \begin{macro}{\scr@v@3.27}
-% \changes{v3.27}{2019/02/02}{Neues Macro}
+% \changes{v3.27}{2019/02/02}{added}
% \begin{macro}{\scr@v@3.27a}
-% \changes{v3.27a}{2019/10/13}{Neues Macro}
+% \changes{v3.27a}{2019/10/13}{added}
% \begin{macro}{\scr@v@3.28}
-% \changes{v3.28}{2019/11/20}{Neues Macro}
+% \changes{v3.28}{2019/11/20}{added}
% \begin{macro}{\scr@v@3.29}
-% \changes{v3.29}{2020/01/06}{Neues Macro}
+% \changes{v3.29}{2020/01/06}{added}
% \begin{macro}{\scr@v@3.30}
-% \changes{v3.30}{2020/02/24}{Neues Macro}
+% \changes{v3.30}{2020/02/24}{added}
% \begin{macro}{\scr@v@3.31}
-% \changes{v3.31}{2020/04/26}{Neues Macro}
+% \changes{v3.31}{2020/04/26}{added}
% \begin{macro}{\scr@v@3.32}
-% \changes{v3.32}{2020/08/06}{Neues Macro}
+% \changes{v3.32}{2020/08/06}{added}
% \begin{macro}{\scr@v@3.33}
-% \changes{v3.33}{2021/01/01}{Neues Macro}
+% \changes{v3.33}{2021/01/01}{added}
% \begin{macro}{\scr@v@3.34}
-% \changes{v3.34}{2021/03/22}{Neues Macro}
+% \changes{v3.34}{2021/03/22}{added}
% \begin{macro}{\scr@v@3.35}
-% \changes{v3.35}{2021/10/12}{Neues Macro}
+% \changes{v3.35}{2021/10/12}{added}
+% \begin{macro}{\scr@v@3.36}
+% \changes{v3.36}{2021/11/17}{added}
% \begin{macro}{\scr@v@last}
-% \changes{v2.9u}{2005/03/05}{Neues Macro}%^^A
+% \changes{v2.9u}{2005/03/05}{added}
% Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die
% höchste vorhandene Nummer):
% \begin{macrocode}
@@ -524,7 +489,8 @@
\@namedef{scr@v@3.33}{18}
\@namedef{scr@v@3.34}{18}
\@namedef{scr@v@3.35}{19}
-\@namedef{scr@v@last}{19}
+\@namedef{scr@v@3.36}{20}
+\@namedef{scr@v@last}{20}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -592,7 +558,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -612,38 +579,32 @@
%</init>
% \end{macrocode}
%
-% \begin{macro}{\scr@v@is@lt}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version jünger als die angegebene ist.
+% \begin{macro}{\scr@v@is@lt,\scr@v@is@gt,\scr@v@is@le,\scr@v@is@ge}
+% \changes{v3.17}{2015/03/10}{added}
+% All these macros are to be used as condition for \cs{ifnum} and compare the
+% currently selected version with a given \meta{version}, e.g.:
+% \begin{quote}
+% \cs{expandafter}\cs{ifnum}\cs{scr@v@is@lt}\marg{version} \meta{true code}
+% \cs{else} \meta{false code} \cs{fi}
+% \end{quote}
+% The conditions are:
+% \begin{quote}\raggedright
+% \cs{scr@v@is@lt} --- current version less than \meta{version} \\
+% \cs{scr@v@is@gt} --- current version greater than \meta{version} \\
+% \cs{scr@v@is@le} --- current version less than or equal to \meta{version} \\
+% \cs{scr@v@is@ge} --- current version greater than or equal to \meta{version} \\
+% \end{quote}
% \begin{macrocode}
%<*option&(class|extend)>
\newcommand*{\scr@v@is@lt}[1]{%
\scr@compatibility<\@nameuse{scr@v@#1}
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@v@is@gt}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version älter als die angegebene ist.
-% \begin{macrocode}
\newcommand*{\scr@v@is@gt}[1]{%
\scr@compatibility>\@nameuse{scr@v@#1}
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@v@is@le}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version jünger als oder die angegebene ist.
-% \begin{macrocode}
\newcommand*{\scr@v@is@le}[1]{%
\numexpr\scr@compatibility-\@ne\relax<\@nameuse{scr@v@#1}
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@v@is@ge}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version älter als oder die angegebene ist.
-% \begin{macrocode}
\newcommand*{\scr@v@is@ge}[1]{%
\numexpr\scr@compatibility+\@ne\relax>\@nameuse{scr@v@#1}
}
@@ -651,38 +612,20 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\scr@ta@v@is@lt}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version jünger als die angegebene ist.
+% \begin{macro}{\scr@ta@v@is@lt,\scr@ta@v@is@gt,\scr@ta@v@is@le,\scr@ta@v@is@ge}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}
+% The same conditions are defined for \pkg*{typearea}.
% \begin{macrocode}
%<*option&package&typearea>
\newcommand*{\scr@ta@v@is@lt}[1]{%
\scr@ta@compatibility<\@nameuse{scr@v@#1}
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@ta@v@is@gt}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version älter als die angegebene ist.
-% \begin{macrocode}
\newcommand*{\scr@ta@v@is@gt}[1]{%
\scr@ta@compatibility>\@nameuse{scr@v@#1}
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@ta@v@is@le}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version jünger als oder die angegebene ist.
-% \begin{macrocode}
\newcommand*{\scr@ta@v@is@le}[1]{%
\numexpr\scr@ta@compatibility-\@ne <\@nameuse{scr@v@#1}
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@ta@v@is@ge}
-% \changes{v3.17}{2015/03/10}{Neu (intern)}%^^A
-% Bedingung, dass die eingestellte Version älter als oder die angegebene ist.
-% \begin{macrocode}
\newcommand*{\scr@ta@v@is@ge}[1]{%
\numexpr\scr@ta@compatibility+\@ne >\@nameuse{scr@v@#1}
}
@@ -691,23 +634,16 @@
% \end{macro}
%
%
-% \subsection{Kompatibilität mit früheren Versionen von \textsf{scrlttr2}}
-% In früheren Versionen von \textsf{scrlttr2} gab es weitere Befehle, die
-% eventuell von \texttt{lco}-Dateien oder Paketen verwendet werden.
-% Gemeldete Inkompatibitlitäten sind nach Möglichkeit zu lösen.
+% \subsection{Compatibility with early versions of \cls*{scrlttr2}}
+% Early version of \cls*{scrlttr2} have had another macro. Because, there may
+% still be \file{lco} files, that use is, it is also defined if compatibility
+% to version before 2.95 has been selected.
%
% \begin{macro}{\@setif}
-% \changes{v2.8q}{2001/10/08}{Neu}%^^A
-% \changes{v2.95}{2006/03/31}{Nur vor Version 2.95}%^^A
-% Dies war ein Makro, mit dem man einen Schalter über die symbolischen
-% Werte \texttt{true}, \texttt{false}, \texttt{on} und \texttt{off} setzen
-% kann. Das erste, optionale Argument war der Name des Schalters ohne Präfix
-% "`\texttt{if}"'. Das zweite Argument war der Name der Option und das dritte
-% der gewünschte Wert. War das optionale Argument nicht gesetzt oder leer, so
-% wurde der Optionenname mit einem vorangestellten "`\texttt{@}"' als Name des
-% Schalters verwendet. Dieses Makro wird nun mit Hilfe von \cs{KOMA@set@ifkey}
-% nachgebildet. Dadurch ist es nicht absolut fehlerkompatibel, das es nun mehr
-% Werte versteht als vorher.
+% \changes{v2.8q}{2001/10/08}{added}
+% \changes{v2.95}{2006/03/31}{only for version settings before 2.95}
+% The deprecated command has been used to set a boolean switch to true or
+% false using one of the values |true|, |false|, |on|, or |off|.
% \begin{macrocode}
%<*class&letter&body>
\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility\relax
@@ -726,11 +662,14 @@
% \end{macro}
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-compatibility.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx b/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx
index 3a4e59b211..eccacb2b25 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-floats.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-floats.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-floats.dtx 3620 2021-10-12 10:27:43Z kohm $
+%%% From File: $Id: scrkernel-floats.dtx 3773 2022-03-29 06:27:55Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-10-12 12:27:43 +0200 (Tue, 12 Oct 2021) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3620 $
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-floats.dtx}%
@@ -73,182 +36,261 @@
(floats)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-floats.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-floats.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/07/01}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/22}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/22}{implementation documentation in English}
%
-% \changes{v2.95}{2002/06/25}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-floats.dtx}
+% \title{Code for the Foats of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The code for floats in \file{scrkernel-floats.dtx} is older than the
+% generic hook mechanism in the \LaTeX{} kernel. Because of this, it
+% currently does not use the kernel hook mechanism. Mostly it is also older
+% then the \KOMAScript{} package \pkg*{tocbasic} to implement and manage
+% floats. So several code has been adapted several times and maybe a general
+% re-implementation would be a good idea.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Gleitumgebungen}
+% \section{User Manual}
%
-% \KOMAScript{} verfügt bezüglich der Gleitumgebungen über einige
-% Features, die über das, was die Standardklassen bieten, hinaus
-% geht. \marginline{Geplant!} Allerdings ist das hier verwendete Interface
-% gnadenlos veraltet und wird deshalb irgendwann ersetzt. Dabei wird
-% höchstwahrscheinlich grundsätzlich auf das \textsf{caption}-Paket aufgebaut
-% werden. Man betrachte dieses Modul daher als grundsätzlich zur Disposition
-% stehend.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% Die einzige Gleitumgebung, über die Briefe derzeit verfügen sind
-% Randnotizen.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \iffalse
-%<*option>
-% \fi
%
-% \iffalse
-%<*class>
-%<*!letter>
-% \fi
+% \section{Implementation of Floats}
+%
+% All this code is for the classes only and not for the \KOMAScript{} letter
+% class, because letter classes usually do not provide floats. If you need
+% letters with floats, just use \KOMAScript{} class \cls*{scrartcl} with
+% \KOMAScript{} package \pkg*{scrletter}.
%
-% \subsection{Einige Anweisungen und Einstellungen für die Optionen}
+% \begin{macrocode}
+%<*class&!letter>
+% \end{macrocode}
+%
+% \subsection{Some macros and configurations for the options}
%
-% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die
-% Optionen abgearbeitet werden.
+% We need some of the macros an settings already when processing the options.
%
-% \begin{macro}{\if@captionabove}
-% \changes{v2.8h}{2001/07/19}{neu}%^^A
-% \changes{v3.09}{2011/03/23}{Initialisierung vor den Optionen}%^^A
-% Ob es sich bei \cs{caption} um eine Unter- oder Ãœberschrift handelt und also
-% \cs{abovecaptionskip} davor und \cs{belowcaptionskip} danach steht
-% oder umgekehrt, wird über diesen Schalter gesteuert. Voreingestellt
-% sind Unterschriften.
+% \begin{macro}{\@captionabovefalse,\@captionabovetrue,\if@captionabove}
+% \changes{v2.8h}{2001/07/19}{added}
+% \changes{v3.09}{2011/03/23}{moved before definition of options}
+% Boolean switch to decide whether a \cs{caption} has to behave like
+% \cs{captionabove} or \cs{captionbelow}. The default is \cs{captionbelow}.
% \begin{macrocode}
+%<*option>
\newif\if@captionabove\@captionabovefalse
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \if@captionabove
%
-% \begin{macro}{\if@tablecaptionabove}
-% \changes{v2.8h}{2001/07/19}{neu Option}%^^A
-% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen
-% verschoben}
-% \changes{v2.98c}{2008/02/18}{Definition erfolgt etwas früher}%^^A
-% \begin{macro}{\@tablecaptionabovetrue}
-% \begin{macro}{\@tablecaptionabovefalse}
-% Die Einstellung, ob es Tabellenüber- oder -unterschriften sind, wird in
-% einem Schalter gespeichert.
+% \begin{macro}{\@tablecaptionabovefalse,\@tablecaptionabovetrue,\if@tablecaptionabove}
+% \changes{v2.8h}{2001/07/19}{added}
+% \changes{v2.8k}{2001/08/15}{moved from \pkg*{typearea} into the classes}
+% \changes{v2.98c}{2008/02/18}{moved before definition of options}
+% Boolean switch to decide whether a \cs{caption} inside a \env{table}
+% environment has to behave like \cs{captionabove} or \cs{captionbelow}. The
+% default is \cs{captionbelow}.
% \begin{macrocode}
\newif\if@tablecaptionabove\@tablecaptionabovefalse
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \if@tablecaptionabove
%
-% \begin{macro}{\if@figurecaptionabove}
-% \changes{v3.09}{2011/03/23}{neu Option}%^^A
-% \begin{macro}{\@figurecaptionabovetrue}
-% \changes{v3.09}{2011/03/23}{neu (intern)}%^^A
-% \begin{macro}{\@figurecaptionabovefalse}
-% \changes{v3.09}{2011/03/23}{neu (intern)}%^^A
-% Die Einstellung, ob es Abbildungsüber- oder -unterschriften sind, wird in
-% einem Schalter gespeichert.
+% \begin{macro}{\@figurecaptionabovefalse,\@figurecaptionabovetrue,\if@figurecaptionabove}
+% \changes{v3.09}{2011/03/23}{added}
+% Boolean switch to decide whether a \cs{caption} inside a \env{figure}
+% environment has to behave like \cs{captionabove} or \cs{captionbelow}. The
+% default is \cs{captionbelow}.
% \begin{macrocode}
\newif\if@figurecaptionabove\@figurecaptionabovefalse
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \if@figurecaptionabove
%
-% \selectlanguage{english}
-% \begin{macro}{\ifonelinecaptions}
-% \changes{v2.8q}{2001/11/17}{new boolean}
+% \begin{macro}{\onelinecaptionsfalse,\onelinecaptionstrue,\ifonelinecaptions}
+% \changes{v2.8q}{2001/11/17}{added}
% \changes{v2.98c}{2008/03/03}{earlier definition}
-% \begin{macro}{\onelinecaptionstrue}
-% \begin{macro}{\onelinecaptionsfalse}
% The boolean is used to distinguish whether or not use a special handling of
% captions with one text line only. The name of the boolean is traditionally
% but nevertheless should seen as internal.
% \begin{macrocode}
\newif\ifonelinecaptions\onelinecaptionstrue
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \selectlanguage{ngerman}
+% \end{macro}^^A \ifonelinecaptions
%
% \begin{macro}{\scap@pos}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}%^^A
-% Hier wird gespeichert, ob die Beschreibung bei |captionbeside| links oder
-% rechts vom Rest stehen soll. Voreingestellt ist rechts davon
-% (\emph{\textbf{r}ight}). Andere Möglichkeiten sind \emph{\textbf{l}eft},
-% \emph{\textbf{o}uter}, \emph{\textbf{i}nner}.
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v2.98c}{2008/03/03}{earlier definition}
+% Environment \env{captionbeside} supports several horizontal placements for
+% the caption beside the object:
+% \begin{description}
+% \item[\texttt{i}:] caption inner beside the object, which means left beside
+% on odd pages and right beside on even pages (note: single-sided documents
+% have only odd pages),
+% \item[\texttt{l}:] caption left beside the object,
+% \item[\texttt{o}:] caption outer beside the object, which means right beside
+% on odd pages and left beside on even pages (note: single-sided documents
+% have only odd pages),
+% \item[\texttt{r}:] caption right beside the object.
+% \end{description}
+% The default is right beside.
% \begin{macrocode}
\newcommand*{\scap@pos}{r}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scap@pos
%
% \begin{macro}{\scap@valign}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}%^^A
-% Hier wird gespeichert, ob bei |captionbeside| die beiden Boxen (siehe
-% Definition der Umgebung) \emph{\textbf{t}op}, \emph{\textbf{b}ottem} oder
-% \emph{\textbf{c}enter} ausgerichtet werden sollen. Andere Buchstaben
-% sind nicht erlaubt. Voreingestellt ist \emph{\textbf{b}ottem}.
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v2.98c}{2008/03/03}{earlier definition}
+% Environment \env{captionbeside} support different vertical alignments
+% for the object box:
+% \begin{description}
+% \item[\texttt{c}:] centered,
+% \item[\texttt{b}:] bottom,
+% \item[\texttt{t}:] top.
+% \end{description}
+% The default is bottom.
% \begin{macrocode}
\newcommand*{\scap@valign}{b}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scap@valign
%
-% \subsection{Optionen für Titel von Gleitumgebungen}
+% \subsection{Options for the captions}
%
% \begin{option}{captions}
-% \changes{v2.98c}{2008/02/18}{Neuer Zentralschalter für caption}%^^A
-% \changes{v3.09}{2011/04/02}{Neue Werte (\texttt{heading},
-% \texttt{signature}, \texttt{figureheading},
-% \texttt{figuresignature})}%^^A
-% \changes{v3.17}{2015/03/11}{Beachtung der Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/11}{Verwendung der internen Werteliste}%^^A
-% Dies ist nun die zentrale Option für Einstellungen zu \cs{caption}. Als
-% besondere Schwierigkeit ergibt sich dabei jedoch, dass das Paket
-% \textsf{caption} einige Sonderbehandlungen für \KOMAScript{} enthält, die
-% darauf angewiesen sind, dass die alte Optionenschnittstelle verwendet
-% wird. Erfreulicherweise funktioniert das aber ab Version~3.1g über eine
-% Erweiterung der Schalter-Umschaltbefehle (|\@tablecaptionabovetrue|,
-% |\@tablecaptionabovefalse|, |\onelinecaptionstrue|,
-% |\onelinecaptionsfalse|), so dass lediglich dafür georgt werden muss,
-% dass diese weiterhin verwendet werden.
+% \changes{v2.98c}{2008/02/18}{new \pkg*{keyval} option}
+% \changes{v3.09}{2011/04/02}{new values \opt{heading}, \opt{signature},
+% \opt{figureheading}, \opt{figuresignature}}
+% \changes{v3.17}{2015/03/11}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/11}{using internal value storage}
+% This is the general option for the settings of captions. Because of
+% compatibility with package \pkg{caption}, several of the macros, that are
+% used to handle the values to the option, cannot be renamed and have to be
+% used. This makes it difficult to change anything here. However, the
+% currently provides values are:
% \begin{macrocode}
\KOMA@key{captions}{%
\KOMA@set@ncmdkey{captions}{@tempa}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=heading}:] change the \cs{caption} default to \cs{captionabove}.
+% \end{description}
+% \begin{macrocode}
{heading}{0},{above}{0},{top}{0},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=signature}:] change the \cs{caption} default to \cs{captionbelow}.
+% \end{description}
+% \begin{macrocode}
{signature}{1},{below}{1},{bot}{1},{bottom}{1},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=tableheading}:] change the \cs{caption} default inside
+% \env{table} environments to \cs{captionabove}.
+% \end{description}
+% \begin{macrocode}
{tableheading}{2},%
{tableabove}{2},{abovetable}{2},{abovetabular}{2},{topattable}{2},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=tablesignature}:] change the \cs{caption} default inside
+% \env{table} environment to \cs{captionbelow}.
+% \end{description}
+% \begin{macrocode}
{tablesignature}{3},%
{tablebelow}{3},{belowtable}{3},{belowtabular}{3},{bottomattable}{3},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=figureheading}:] change the \cs{caption} default inside
+% \env{figure} environments to \cs{captionabove}.
+% \end{description}
+% \begin{macrocode}
{figureheading}{4},{figureabove}{4},{abovefigure}{4},{topatfigure}{4},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=figuresignature}:] change the \cs{caption} default inside
+% \env{figure} environment to \cs{captionbelow}.
+% \end{description}
+% \begin{macrocode}
{figuresignature}{5},{figurebelow}{5},{belowfigure}{5},{bottomatfigure}{5},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=oneline}:] special treatment for one line captions.
+% \end{description}
+% \begin{macrocode}
{oneline}{6},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=oneline}:] no special treatment for one line captions.
+% \end{description}
+% \begin{macrocode}
{nooneline}{7},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=rightbeside}:] change horizontal \env{captionbeside} placement
+% to right beside (see \cs{scap@pos} above).
+% \end{description}
+% \begin{macrocode}
{rightbeside}{8},{besideright}{8},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=leftbeside}:] change horizontal \env{captionbeside} placement
+% to left beside (see \cs{scap@pos} above).
+% \end{description}
+% \begin{macrocode}
{leftbeside}{9},{besideleft}{9},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=innerbeside}:] change horizontal \env{captionbeside} placement
+% to inner beside (see \cs{scap@pos} above).
+% \end{description}
+% \begin{macrocode}
{innerbeside}{10},{besideinner}{10},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=outerbeside}:] change horizontal \env{captionbeside} placement
+% to outer beside (see \cs{scap@pos} above).
+% \end{description}
+% \begin{macrocode}
{outerbeside}{11},{besideouter}{11},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=topbeside}:] change vertical \env{captionbeside} alignment
+% to top (see \cs{scap@valign} above).
+% \end{description}
+% \begin{macrocode}
{topbeside}{12},{besidetop}{12},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=centeredbeside}:] change vertical \env{captionbeside} alignment
+% to centered (see \cs{scap@valign} above).
+% \end{description}
+% \begin{macrocode}
{centeredbeside}{13},{besidecentered}{13},%
{middlebeside}{13},{besidemiddle}{13},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=bottombeside}:] change vertical \env{captionbeside} alignment
+% to bottom (see \cs{scap@valign} above).
+% \end{description}
+% \begin{macrocode}
{bottombeside}{14},{besidebottom}{14}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
@@ -352,251 +394,174 @@
\KOMA@kav@add{.\KOMAClassFileName}{captions}{rightbeside}
\KOMA@kav@add{.\KOMAClassFileName}{captions}{bottombeside}
% \end{macrocode}
-% \end{option}
+% \end{option}^^A captions
%
-% \begin{option}{tablecaptionabove}
-% \changes{v2.8h}{2001/07/19}{neue Option}%^^A
-% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen
-% verschoben}
+% \begin{option}{tablecaptionabove,tablecaptionbelow}
+% \changes{v2.8h}{2001/07/19}{added}
+% \changes{v2.8k}{2001/08/15}{moved from \pkg*{typearea} into the classes}
% \changes{v2.98c}{2008/02/18}{obsolete}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{tablecaptionbelow}
-% \changes{v2.8h}{2001/07/19}{neue Option}%^^A
-% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen
-% verschoben}
-% \changes{v2.98c}{2008/02/18}{obsolete}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Es besteht nun die Wahl, ob \cs{caption} bei Tabellen für Unter-
-% oder Ãœberschriften voreingestellt ist. Die Defaulteinstellung ist
-% aus Kompatibilitätsgründen die Tabellenunterschrift.
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Implementation of deprecated options by mapping them to corresponding
+% \pkg*{keyval} options.
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{tablecaptionabove}{captions=tableheading}
\KOMA@DeclareDeprecatedOption{tablecaptionbelow}{captions=tablesignature}
% \end{macrocode}
-% \end{option}
-% \end{option}
+% \end{option}^^A tablecaptionabove,tablecaptionbelow
%
-% \selectlanguage{english}
% \begin{option}{origlongtable}
-% \changes{v2.8l}{2001/08/16}{new option}
-% If package \textsf{longtable} is loaded, the classes redefine table titles
+% \changes{v2.8l}{2001/08/16}{added}
+% If package \pkg{longtable} is loaded, the classes redefine table titles
% of that package. However, if the option has been set, this is prevented.
-% \begin{macro}{\if@komalongtable}
-% \changes{v2.8l}{2001/08/16}{new boolean}
-% \begin{macro}{\@komalongtabletrue}
-% \begin{macro}{\@komalongtablefalse}
+% \begin{macro}{\@komalongtablefalse,\@komalongtabletrue,\if@komalongtable}
+% \changes{v2.8l}{2001/08/16}{added}
% The wanted behaviour is stored in a boolean.
% \begin{macrocode}
\newif\if@komalongtable\@komalongtabletrue
\DeclareOption{origlongtable}{\@komalongtablefalse}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \if@komalongtable
+% \end{option}^^A origlongtable
%
-% \begin{option}{onelinecaption}
+% \begin{option}{onelinecaption,noonelinecaption}
% \changes{v2.8q}{2001/11/17}{new option}
% \changes{v2.98c}{2008/03/03}{obsolete}
-% \changes{v2.98c}{2008/03/03}{extra code for \textsf{caption2} removed}
+% \changes{v2.98c}{2008/03/03}{extra code for \pkg{caption2} removed}
% \changes{v3.01a}{2008/11/20}{deprecated}
-% \begin{option}{noonelinecaption}
-% \changes{v2.8q}{2001/11/17}{new option}
-% \changes{v2.98c}{2008/03/03}{obsolete}
-% \changes{v2.98c}{2008/03/03}{extra code for \textsf{caption2} removed}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% Implementation of deprecated options by mapping them to corresponding
+% \pkg*{keyval} options.
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{onelinecaption}{captions=oneline}
\KOMA@DeclareDeprecatedOption{noonelinecaption}{captions=nooneline}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-% \selectlanguage{ngerman}
-%
-%
-% \iffalse
-%</!letter>
-%</class>
%</option>
-%<*body>
-% \fi
-%
-% \subsection{Randnotizen}
-%
-% Randnotizen sind ebenfalls eine Art von Gleitumgebung.
-%
-% \begin{macro}{\marginline}
-% \KOMAScript{} stellt zusätzlich ein Randzeilenmakro zur Verfügung,
-% das je nach gerader oder ungerader Seite in doppelseitigen Layout
-% rechts- oder linksbündig gesetzt werden muss.
-% \changes{v2.4l}{1997/02/06}{Definition mit Hilfe des optionalen
-% Parameters von \cs{marginpar} deutlich vereinfacht}
-% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}%^^A
-% \begin{macrocode}
-\newcommand\marginline[1]{%
- \marginpar[\raggedleft{#1}]{\raggedright #1}%
-}
% \end{macrocode}
-% \end{macro}
+% \end{option}^^A onelinecaption,noonelinecaption
%
-% \iffalse
-%<*class>
-%<*!letter>
-% \fi
%
-% \subsection{Definitionen für Titel von Gleitumgebungen}
+% \subsection{Macros and commands for the captions}
%
-% \begin{macro}{\caption}
-% \changes{v2.2c}{1995/05/25}{Fließtitel auf CJK umgestellt}%^^A
-% Es ist möglich, die Fließumgebungen mit einem Titel und einer
-% Beschreibung zu versehen. Diese wird vom ggf. etwas abgesetzt.
-% \begin{Length}{abovecaptionskip}
-% \begin{Length}{belowcaptionskip}
-% Um wieviel ist in zwei Längenregistern gespeichert:
+% \changes{v2.2c}{1995/05/25}{support for CJK added}
+% The initial feature for defining captions somehow different from the
+% standard classes was a request of Werner Lember to add support for CJK
+% languages. However not everything is changed. For example the usual lengths
+% of the standard classes are still defined, but interpreted somehow different.
+%
+% \begin{length}{\abovecaptionskip,\belowcaptionskip}
+% The distance above and below a caption. The default for captions below the
+% object is 10\,pt above the caption and 0 below. Note: For captions above
+% the object the lengths are switched: \len{abovecaptionskip} is used
+% \emph{below} the caption and \len{belowcaptionskip} is used \emph{above}
+% the caption then.
% \begin{macrocode}
+%<*body>
\newlength{\abovecaptionskip}
\newlength{\belowcaptionskip}
\setlength{\abovecaptionskip}{10\p@}
\setlength{\belowcaptionskip}{0\p@}
% \end{macrocode}
-% \end{Length}
-% \end{Length}
-% \begin{macro}{\captionformat}
-% \changes{v2.3c}{1995/08/06}{neu}%^^A
-% Trennung von Label und Text:
+% \end{length}^^A \abovecaptionskip,\belowcaptionskip
+% \begin{command}{\captionformat}
+% \changes{v2.3c}{1995/08/06}{added}
+% Separator between label (with number) an text only.
% \begin{macrocode}
\newcommand*{\captionformat}{:\ }
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \captionformat
+% \begin{command}{\captionabove,\captionbelow}
+% \changes{v2.8h}{2001/07/19}{added}
% \begin{macro}{\scr@caption}
-% \changes{v2.8h}{2001/07/19}{neu (intern)}%^^A
-% \begin{macro}{\captionabove}
-% \changes{v2.8h}{2001/07/19}{neu}%^^A
-% \begin{macro}{\captionbelow}
-% \changes{v2.8h}{2001/07/19}{neu}%^^A
-% Damit überhaupt zwischen Unter- und Überschriften unterschieden
-% werden kann, muss zunächst das Originalmakro gesichert werden. Dies
-% geschieht erst zu Beginn des Dokuments, damit Pakete ggf. noch ihre
-% eigenen Definitionen von \cs{caption} vornehmen können. Das
-% \textsf{hyperref}-Paket ist so ein Kandidat.
+% \changes{v2.8h}{2001/07/19}{added}
+% We have two different commands \cs{captionabove} and \cs{captionbelow} to
+% distinguish captions above or below the object. Internally both use
+% \cs{scr@caption}, but set either \cs{@captionabovetrue} or
+% \cs{@captionabovefalse}. To allow other packages (e.g. \pkg{hyperref} to
+% redefine \cs{caption} the final definition of \cs{scr@caption} is done in
+% |\begin{document}|. We cannot use \cs{caption} inside \cs{captionabove} or
+% \cs{captionbelow}, because we do use a redefinition of \cs{capion} to use
+% \cs{captionabove} or \cs{captionbelow} via \opt{atbegin} at \cs{DeclareNewTOC}.
% \begin{macrocode}
\newcommand{\scr@caption}{}
\AtBeginDocument{\let\scr@caption\caption}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@caption
% Jetzt ist es möglich durch einfaches Umlegen des Schalters für die
% korrekte Darstellung zu sorgen:
% \begin{macrocode}
\newcommand{\captionabove}{\@captionabovetrue\scr@caption}
\newcommand{\captionbelow}{\@captionabovefalse\scr@caption}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \captionabove,\captionbelow
%
%
% \begin{environment}{captionbeside}
-% \changes{v2.8q}{2001/11/22}{neu}%^^A
-% Um einiges komplizierter als die Beschreibung unter oder über die
-% Tabelle oder Abbildung zu setzen, ist der Versuch, sie daneben zu
-% setzen. Dies funktioniert frundsätzlich auch nicht mit
-% \texttt{longtable}-Tabellen.
-%
+% \changes{v2.8q}{2001/11/22}{added}
+% Placing captions above or below the object inside a float is easy. But to
+% place it beside the object an additional environment is needed. This has to
+% collect the object (environment body) into a box and then print it side by
+% side with a second box with the caption. Note: This cannot work with
+% tables of package \pkg{longtable} or \pkg{supertabular} or similar packages.
+% \begin{quote}\raggedright
+% |\begin{captionbeside}|\oarg{list
+% entry}\marg{caption}\oarg{position}\oarg{with}\oarg{offset}|*|\\
+% \dots\\
+% |\end{captionbeside}|
+% \end{quote}
+% Note: The asterisk is optional and changes the meaning of \meta{offset}.
% \begin{macro}{\scap@caption}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% Die Beschreibung, die der Umgebung als Parameter übergeben wird,
-% muss zwischengespeichert werden. Hier wird lediglich das Makro
-% dafür reserviert.
+% \changes{v2.8q}{2001/11/22}{added}
+% The \meta{caption} is locally stored into helper macro \cs{scap@caption}.
% \begin{macrocode}
\newcommand*{\scap@caption}{}
% \end{macrocode}
-% \end{macro}
-%
+% \end{macro}^^A \scap@caption
% \begin{macro}{\scap@width}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% Die Breite, die Tabelle bzw. Abbildung einschließlich Beschreibung
-% und insgesamt haben dürften. Voreingestellt ist die gesamte
-% verfügbare Breite.
+% \changes{v2.8q}{2001/11/22}{added}
+% The optional \meta{width}, which is the width of the whole environment
+% inclusive caption, is locally stored into helper macro \cs{scap@width}. The
+% default is the while line width.
% \begin{macrocode}
\newcommand*{\scap@width}{\linewidth}
% \end{macrocode}
-% \end{macro}
-%
+% \end{macro}^^A \scap@width
% \begin{macro}{\scap@move}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% Der Wert, um den die Tabelle bzw. Abbildung einschließlich
-% Beschreibung nach rechts bzw. außen verschoben werden.
-% Voreingestellt ist keine Verschiebung.
+% \changes{v2.8q}{2001/11/22}{added}
+% If \cs{scap@width} is not the line width, the environment is horizontal
+% centered by default. But if \meta{offset} is used, this is used as a
+% distance from the left margin. This is locally stored into helper macro
+% \cs{scap@move}.
% \begin{macrocode}
\newcommand*{\scap@move}{\z@}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\scap@currentlabel}
-% \changes{v2.8q}{2001/11/24}{neu (intern)}%^^A
-% Da \cs{caption} innerhalb einer Umgebung (\cs{parbox} und
-% \texttt{captionbeside}) aufgerufen wird, würde ein \cs{label}, das
-% zwar innerhalb der Gleitumgebung aber nach der
-% \texttt{captionbeside}-Umgebung eingefügt wird, nicht die
-% Gleitumgebung, sondern die umgebende Referenzebene
-% referenzieren. Damit das nicht geschieht, wird in der
-% \texttt{captionbeside}-Umgebung in der \cs{parbox} die aktuelle
-% Referenz \cs{@currentlabel} in dem globalen Makro
-% \cs{scap@currentlabel} zwischengespeichert und am Ende der
-% \texttt{captionbeside}-Umgebung mit Hilfe von \cs{aftergroup} nach
-% dem Ende der Umgebung wiederhergestellt. Da die
-% \texttt{captionbeside}-Umgebung ohnehin nicht geschachtelt werden
-% kann, funktioniert das problemlos. Für diese Aktion wird hier ein
-% globales Makro reserviert.
+% \end{macro}^^A \scap@move
+% \begin{macro}{\scap@altfalse,\scap@alttrue,\ifscap@alt}
+% \changes{v2.8q}{2001/11/22}{added}
+% The boolean switch \cs{ifscap@alt} is used to decide if in twoside mode the
+% movement of \cs{scap@move} has to be done from the left or the right margin
+% and to left or to the right.
% \begin{macrocode}
-\newcommand*{\scap@currentlabel}{}
+\newif\ifscap@alt
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ifscap@alt}
-% \changes{v2.8q}{2001/11/22}{neuer Schalter}%^^A
-% \begin{macro}{\scap@alttrue}
-% \begin{macro}{\scap@altfalse}
-% Der Schalter, der angibt, ob die Verschiebung \cs{scap@move} im
-% doppelseitigen Modus aus linken Seiten vom rechten Rand aus nach
-% links erfolgen soll.
+% \end{macro}^^A \ifscap@alt
+% \begin{macro}{\scap@currentlabel}
+% \changes{v2.8q}{2001/11/24}{added}
+% Because of using \cs{caption} inside a box and inside an environment, a
+% label after the \env{captionbeside} environment usually would not reference
+% the caption number. To preserve this after the end of the
+% \env{captionbeside} the current label is locally stored into global
+% \cs{scap@currentlabel} and restored after the end of the environment using
+% \cs{aftergroup}. Note: You can have only one \cs{label} inside!.
% \begin{macrocode}
-\newif\ifscap@alt
+\newcommand*{\scap@currentlabel}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@captionbeside}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@captionbeside}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@@captionbeside}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \end{macro}^^A \scap@currentlabel
+% \begin{macro}{\@@@captionbeside,\@@captionbeside,\@captionbeside}
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
% \begin{macro}{\@@@@captionbeside}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Die Umgebung soll einmal folgende Parameter besitzen:
-% \begin{description}
-% \item[(optional)] Verzeichniseintrag
-% \item[(obligatorisch)] Beschreibung
-% \item[(optional)] lokaler Wert für \cs{scap@pos}
-% \item[(optional)] lokaler Wert für \cs{scap@width}
-% \item[(optional)] lokaler Wert für \cs{scap@move}
-% \item[(*)] lokaler Wert für \cs{ifscap@alt} (Stern gesetzt
-% entspricht \cs{scap@alttrue}
-% \end{description}
-% Wie man sieht, sollte man bei Angabe aller optionalen Parameter auch
-% bewusst den Stern setzen oder darauf verzichten.
-%
-% Damit alle Parameter ausgewertet werden können, werden einige
-% Hilfsmakros benötigt.
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% To handle all the optional arguments and the optional star at the end,
+% several helper macros are needed (because we currently do not use \pkg{xparse}).
% \begin{macrocode}
\newcommand*{\@captionbeside}{}
\long\def\@captionbeside[#1]#2{%
@@ -630,26 +595,21 @@
{\scap@altfalse\c@pti@nb@sid@[{#1}]{#2}}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
+% \end{macro}^^A \@@@@captionbeside
+% \end{macro}^^A \@@@captionbeside … \@captionbeside
% \begin{macro}{\c@pti@nb@sid@b@x}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% Es wird noch eines der kostbaren Boxregister benötigt.
+% \changes{v2.8q}{2001/11/22}{added}
+% We also use our own box register to collect the environment body.
% \begin{macrocode}
\newbox\c@pti@nb@sid@b@x
% \end{macrocode}
% \end{macro}
-%
% \begin{macro}{\c@pti@nb@sid@}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v2.98c}{2008/03/11}{vertikale Ausrichtung korrigiert}%^^A
-% \changes{v3.07a}{2010/11/04}{vertikale Ausrichtung im t- und b-Fall erneut
-% korrigiert}%^^A
-% Hier wird nun die Umgebung eigentlich geöffnet, während zuvor nur
-% die Parameter ausgewertet wurden.
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v2.98c}{2008/03/11}{vertical alignment fixed}
+% \changes{v3.07a}{2010/11/04}{vertical alignment \texttt{t} and \texttt{b} fixed}
+% This is the real beginning of the environment. After collecting all the
+% arguments into local macros.
% \begin{macrocode}
\newcommand{\c@pti@nb@sid@}{}
\long\def\c@pti@nb@sid@[#1]#2{%
@@ -669,22 +629,19 @@
\begin{lrbox}{\c@pti@nb@sid@b@x}%
}
% \end{macrocode}
-% \end{macro}
-%
-% Jetzt endlich können wir uns auf die Umgebung stürzen. Die
-% Umgebung zu starten ist einfach. Es wird ein Doppelargumentmakro
-% ausgeführt.
+% \end{macro}^^A \c@pti@nb@sid@
+% Now we can use all of the helper macros to begin the environment. We use
+% \LaTeX{} kernel macro \cs{@dblarg} to define an argument with first
+% optional argument defaults to mandatory second argument.
% \begin{macrocode}
\newenvironment*{captionbeside}{%
- \@dblarg\@captionbeside%
+ \@dblarg\@captionbeside
}{%
% \end{macrocode}
-% Komplizierter ist die Beendigung der Umgebung. Hier fällt der
-% gesamte Satzaufwand an.
-% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt
-% \cs{if@thispageodd}}
-% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd}
-% ersetzt}%^^A
+% This was easy (because of using all the helper macros), but the end of the
+% environment isn't. Here we do all the calculations for printing.
+% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} replaced by \cs{if@thispageodd}}
+% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}}
% \begin{macrocode}
\end{lrbox}%
\settowidth{\@tempdima}{\usebox\c@pti@nb@sid@b@x}%
@@ -718,7 +675,7 @@
\hspace*{\@tempdimc}%
% \end{macrocode}
% \changes{v2.9p}{2003/12/10}{\cs{@temdima} replaced by
-% \cs{wd}\cs{c@pti@nb@sid@b@x}, because \cs{@temdima} would be changed}
+% \cs{wd}\cs{c@pti@nb@sid@b@x}, because \cs{@temdima} would be changed}
% \begin{macrocode}
\if l\@tempa
\rlap{%
@@ -740,103 +697,72 @@
\aftergroup\scap@currentlabel
}
% \end{macrocode}
-% \end{environment}
+% \end{environment}^^A captionbeside
%
%
-% \begin{macro}{\capfont}
-% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}
-% Die Schriftart der Titel kann eingestellt werden. Dazu dient dieses
-% Makro, das als internes Makro zu verstehen ist,
-% \begin{macro}{\caplabelfont}
-% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}
-% Davon unabhängig kann auch die Schriftart der Titel-Titel
-% ("`Abbildung X:"') eingestellt werden. Auch dieses Makro ist als
-% internes Makro zu verstehen.
+% \begin{fontelement}{caption,captionlabel}
+% We need two font elements for the caption at whole and the label part only.
+% \begin{macro}{\capfont,\caplabelfont}
+% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} added}
+% Originally two user macros has been used to change the fonts. To stay
+% compatible with old \KOMAScript{} and also i.e. with package \pkg{caption},
+% we still define \cs{capfont} and \cs{caplabelfont} as internal storage of
+% the font elements. But already from \KOMAScript{} version 2.8c these should
+% be interpreted as internal macros.
% \begin{macrocode}
\newcommand*\capfont{\normalfont\normalcolor}
\newcommand*\caplabelfont{\normalfont\normalcolor}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\scr@fnt@caption}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{caption}}
-% \begin{macro}{\scr@fnt@captionlabel}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{captionlabel}}
-% Die eigentliche Änderung der Schriftart erfolgt über das Element
-% \texttt{caption} bzw. \texttt{captionlabel}.
+% \end{macro}^^A \capfont,\caplabelfont
+% \begin{macro}{\scr@fnt@caption,\scr@fnt@captionlabel}
+% \changes{v2.8o}{2001/09/14}{added}
+% Because of that non-default for the internal storage the font elements have
+% to be defined \emph{manually} instead of using \cs{newkomafont}.
% \begin{macrocode}
\newcommand*{\scr@fnt@caption}{\capfont}
\newcommand*{\scr@fnt@captionlabel}{\caplabelfont}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@fnt@caption,\scr@fnt@captionlabel
+% \end{fontelement}^^A caption,captionlabel
%
% \begin{macro}{\@makecaption}
-% \changes{v2.3a}{1995/07/08}{\cs{setbox}\cs{tempboxa}\cs{hbox}
-% durch \cs{sbox}\cs{@tempboxa} ersetzt}
-% \changes{v2.3a}{1995/07/08}{Minipage-Flag zurückgesetzt (ist das
-% ok?)}
-% \changes{v2.3f}{1995/12/09}{Fontumschaltung einheitlich für lange
-% und kurze Unter-/Ãœberschriften}%^^A
-% \changes{v2.5g}{1999/10/09}{neben den komplett hängenden
-% Titeln sind nun auch nicht hängende oder teilweise hängende
-% möglich}%^^A
-% Bis Version 2.5f sah die Definition wie folgt aus.
-% \begin{verbatim}
-% \long\def\@makecaption#1#2{%
-% \vskip\abovecaptionskip
-% \sbox\@tempboxa{{\caplabelfont #1\captionformat}{\capfont #2}}%
-% \ifdim \wd\@tempboxa >\hsize
-% \@hangfrom{{\caplabelfont #1\captionformat}}{\capfont #2\par}
-% \else
-% \global \@minipagefalse
-% \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
-% \fi
-% \vskip\belowcaptionskip}
-% \end{verbatim}
-% \begin{macro}{\ifdofullc@p}
-% Nun jedoch wird das ganze etwas komplizierter. Als erstes wird ein
-% Schalter benötigt, der angibt, ob auf die volle Länge des "`Labels"'
-% eingezogen werden soll, oder nicht:
+% \changes{v2.3a}{1995/07/08}{using \cs{sbox} instead of \cs{setbox}}
+% \changes{v2.3a}{1995/07/08}{using \cs{@minipagefalse}}
+% \changes{v2.3f}{1995/12/09}{using same font switching for long and short captions}
+% \changes{v2.5g}{1999/10/09}{supporting partial hanging captions}
+% \begin{macro}{\dofullc@pfalse,\dofullc@ptrue,\ifdofullc@p}
+% The boolean switch \cs{ifdofullc@p} is true for caption texts, that should
+% be full hanging (behind the label part), which is the default.
% \begin{macrocode}
\newif\ifdofullc@p
-% \end{macrocode}
-% wobei die Standardeinstellung der volle Einzug ist, um zum bisherigen
-% Verhalten kompatibel zu bleiben.
-% \begin{macrocode}
\dofullc@ptrue
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \ifdofullc@p
% \begin{macro}{\if@capbreak}
-% \changes{v2.8j}{2001/07/30}{neu}%^^A
-% Außerdem gibt es einen Schalter, der angibt, ob nach dem Label ein
-% Umbruch erfolgen soll. Dies ist normalerweise nicht der Fall.
-% \begin{macrocode}
-\newif\if@capbreak\@capbreakfalse
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\setcapindent}
-% \changes{v2.8j}{2001/07/30}{\cs{if@capbreak} wird verwendet}
-% \changes{v2.8l}{2001/08/17}{\cs{edef}\cs{cap@indent} statt
+% \changes{v2.8j}{2001/07/30}{added}
+% The boolean switch \cs{if@capbreak} is true, if the label should be followed
+% by a line break, which is not the case by default.
+% \begin{macrocode}
+\newif\if@capbreak
+\@capbreakfalse
+% \end{macrocode}
+% \end{macro}^^A \@capbreakfalse
+% \begin{command}{\setcapindent}
+% \begin{macro}{\@@setcaptindent,\@setcapindent}
+% \changes{v2.8j}{2001/07/30}{using \cs{if@capbreak}}
+% \changes{v2.8l}{2001/08/17}{using \cs{edef}\cs{cap@indent} instead of
% \cs{def}\cs{cap@indent}}
-% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von
-% \textsf{caption2} umdefiniert}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} ersetzt}
-% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt}
-% Dann wird weiter ein Befehl benötigt, mit dem der Benutzer die
-% Weite des Einzugs selbst einstellen kann. Da intern für die Weite
-% ein Makro verwendet werden soll, findet hier sicherheitshalber eine
-% Zuweisung an eine Dimension statt. So sollten Fehlermeldungen hier
-% und nicht erst bei Verwendung auftauchen. Natürlich muss hier auch
-% der automatische Einzug abgeschaltet werden. In der Sternform wird
-% außerdem dafür gesorgt, dass zwischen "`Label"' und Beschreibung
-% ein Umbruch erfolgt. In der normalen Version wird stattdessen für
-% Kompatibilität zu früheren Versionen gesorgt.
-% \begin{macro}{\@setcapindent}
-% \begin{macro}{\@@setcaptindent}
-% Für die Implementierung der Sternform werden zwei interne Makros
-% benötigt.
+% \changes{v2.8q}{2001/11/17}{redefined after loading \pkg{caption2}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed}
+% The user can configure the indent using:
+% \begin{quote}
+% \cs{setcapindent}*\marg{indent}
+% \end{quote}
+% The optional asterisk activates a line break between the label and the
+% text. The \meta{indent} is always an indent of the text from the left. A
+% local dimension assignment is done to report errors here and not at
+% usage of \cs{cap@indent}.
% \begin{macrocode}
\newcommand*{\setcapindent}{\kernel@ifstar{\@@setcapindent}{\@setcapindent}}
\newcommand*{\@setcapindent}[1]{%
@@ -855,33 +781,22 @@
\dofullc@pfalse\@capbreaktrue
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\setcaphanging}
-% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von
-% \textsf{caption2} umdefiniert}
-% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt}
-% Andererseits soll es auch möglich sein, nachträglich wieder den
-% automatischen Einzug einzuschalten. Dafür gibt es ein weiteres
-% Makro.
+% \end{macro}^^A \@@setcaptindent,\@setcapindent
+% \end{command}^^A \setcapindent
+% \begin{command}{\setcaphanging}
+% \changes{v2.8q}{2001/11/17}{redefined after loading \pkg{caption2}}
+% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed}
+% Alternatively the user can select the full hanging printing.
% \begin{macrocode}
\newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse}
% \end{macrocode}
-% \end{macro}
-%
-% Nun aber zur neuen Definition der Titel. Zunächst geht alles wie
-% gehabt.
-% \changes{v2.5g}{1999/10/09}{\cs{@makecaption} per \cs{newcommand}
-% definiert statt mit \cs{long}\cs{def}}
-% \changes{v2.8h}{2001/07/19}{Unterscheidung zwischen Ãœber- und
-% Unterschriften}%^^A
-% \changes{v2.8j}{2001/07/30}{\cs{@makecaption} verwendet
-% \cs{@@makecaption}}
-% \changes{v2.8q}{2001/11/17}{die Sonderbehandlung für einzeilige
-% \emph{caption}s ist abschaltbar}
-% \changes{v2.8q}{2001/11/17}{Titel können in ihrer Breite
-% beschränkt werden}%^^A
+% \end{command}
+% Now, we have all to define \cs{@makecaption} as needed by the \LaTeX{} kernel.
+% \changes{v2.5g}{1999/10/09}{using \cs{newcommand}}
+% \changes{v2.8h}{2001/07/19}{support for headings and signatures}
+% \changes{v2.8j}{2001/07/30}{using \cs{@@makecaption}}
+% \changes{v2.8q}{2001/11/17}{special treatment of one line captions is optional}
+% \changes{v2.8q}{2001/11/17}{caption width can be limited}
% \begin{macrocode}
\newcommand{\@makecaption}[2]{%
\if@captionabove
@@ -897,37 +812,29 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\@@makecaption}
-% Tatsächlich gesetzt wird der Titel mit diesem Makro. Dabei muss der
-% erste Parameter entweder \cs{@gobble} oder \cs{@firstofone} sein.
-%
-% \begin{macro}{\cap@width}
-% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A
-% \begin{macro}{\cap@left}
-% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A
-% \begin{macro}{\cap@right}
-% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A
-% Die Breite der mehrzeiligen bzw. die maximale Breite der einzeiligen
-% \emph{caption}s sowie das Makro das links und rechts von der Box mit
-% der mehrzeiligen \emph{caption} aufgerufen wird. In der
-% Voreinstellung wird für Zentrierung gesorgt.
+% \begin{macro}{\cap@width,\cap@left,\cap@right}
+% \changes{v2.8q}{2001/11/17}{added}
+% Multi line captions can printed with a reduced with. If the width is reduced
+% the left an right margin can be changed. The defaults are centering.
% \begin{macrocode}
\newcommand*{\cap@width}{\hsize}
\newcommand*{\cap@left}{\hfill}
\newcommand*{\cap@right}{\hfill}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\setcapwidth}
-% \changes{v2.8q}{2001/11/17}{neu}
-% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt \cs{if@thispageodd}}
-% \changes{v2.97}{2007/02/27}{Mindestbreite für captions ist 0\,pt}
-% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd}
-% ersetzt}
-% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt}
-% Hier wird \cs{cap@width} gesetzt. Dabei werden optional auch
-% \cs{cap@left} und \cs{cap@right} angepasst.
+% \end{macro}^^A \cap@width,\cap@left,\cap@right
+% \begin{command}{\setcapwidth}
+% \changes{v2.8q}{2001/11/17}{added}
+% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} replaced by \cs{if@thispageodd}}
+% \changes{v2.97}{2007/02/27}{minimum width for captions is 0\,pt}
+% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}}
+% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed}
+% The user command:
+% \begin{quote}
+% \cs{setcapwidth}\oarg{alignment}\marg{width}
+% \end{quote}
+% is one choice to set \cs{cap@width} to \meta{width}. The optional
+% \meta{alignment} (as usual |l|, |r|, |o|, or |i|) also changes \cs{cap@left}
+% and \cs{cap@right}.
% \begin{macrocode}
\newcommand*{\setcapwidth}[2][]{%
\begingroup%
@@ -996,14 +903,14 @@
\fi\fi\fi\fi\fi
}
% \end{macrocode}
-% \end{macro}%^^A \setcapwidth
-% \begin{macro}{\setcapdynwidth}
-% \changes{v3.20}{2016/03/31}{neu}
-% Ulrike findet es blöd, dass \cs{setcapwidth} wie \cs{setlength} arbeitet und
-% ist der Meinung, dass das Argument erst zur Laufzeit ausgewertet werden
-% sollte. Also ein neuer Befehl genau dafür. Es sei allerdings darauf
-% hingewiesen, dass Fehler im Argument dann ggf. erst bei jeder
-% \cs{caption}-Anweisung und nicht bereits hier ausgegeben werden!
+% \end{command}^^A \setcapwidth
+% \begin{command}{\setcapdynwidth}
+% \changes{v3.20}{2016/03/31}{added}
+% Ulrike Fischer requested for an alternative, that does not behave like
+% \cs{setlength} and therefore sets the length already at usage of
+% \cs{setcapwidth} but at usage of \cs{cap@width}. This is
+% \cs{setcapdynwidth}. But in this case mistakes can result in errors while
+% usage of \cs{cap@width} too.
% \begin{macrocode}
\newcommand*{\setcapdynwidth}[2][]{%
\def\cap@width{#2}%
@@ -1100,34 +1007,28 @@
\fi\fi\fi\fi\fi
}
% \end{macrocode}
-% \end{macro}%^^A \setcapdynwidth
+% \end{command}^^A \setcapdynwidth
% \begin{macro}{\cap@margin}
-% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A
-% Dieses Makro beinhaltet nicht den Wert der Ränder, sondern das
-% Makro, mit dem innerhalb von \cs{@@makecaption} die Makros
-% \cs{cap@left} und \cs{cap@right} neu definiert werden. Dies
-% geschieht nur, wenn die Ränder mit \cs{setcapmargin} gesetzt
-% werden. Vordefiniert ist also keinerlei Aktion.
+% \changes{v2.8q}{2001/11/17}{added}
+% \cs{cap@margin} is used to recalculate \cs{cap@left} and \cs{cap@right}
+% inside \cs{@@makecaption}, if the margins has been set using
+% \cs{setcapmargin}. Default is no such action.
% \begin{macrocode}
\newcommand*{\cap@margin}{}
\let\cap@margin=\relax%
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\setcapmargin}
+% \end{macro}^^A \cap@margin
+% \begin{command}{\setcapmargin}
% \changes{v2.8q}{2001/11/17}{neu}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} ersetzt}
-% \begin{macro}{\@setcapmargin}
-% \changes{v2.8q}{2001/11/17}{neu (intern)}
-% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt
-% \cs{if@thispageodd}}
-% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd}
-% ersetzt}
-% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt}
-% \begin{macro}{\@@setcapmargin}
-% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A
-% Statt die Breite der \emph{caption} zu setzen, können auch die
-% Ränder gesetzt werden. In der Sternvariante werden im zweiseitigen
-% Modus die Ränder auf linken Seiten vertauscht.
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\@@setcapmargin,\@setcapmargin}
+% \changes{v2.8q}{2001/11/17}{added}
+% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} replaced by \cs{if@thispageodd}}
+% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}}
+% \changes{v3.34}{2021/03/22}{special treatment for \pkg{caption2} removed}
+% Instead of setting of the width of the caption, the left and right margin
+% can be set. The star variant switch left and right depending on odd or even
+% side in two side mode.
% \begin{macrocode}
\newcommand*{\setcapmargin}{\kernel@ifstar{\@setcapmargin}{\@@setcapmargin}}
\newcommand*{\@setcapmargin}[2][\@tempdimb]{%
@@ -1175,41 +1076,32 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% Jetzt aber zum Eigentlichen. Die Breite der \emph{caption} muss nur
-% bestimmte werden, wenn Option \texttt{onelinecaption} verwendet
-% wird. Das bedeutet auch, dass bei \texttt{noonelinecaption} das
-% Problem mit dem Hochzählen der Fußnoten nicht auftritt.
-% \changes{v2.8q}{2002/05/17}{Problem mit doppelten Fußnoten behoben}%
-% \changes{v2.95}{2004/01/30}{Korrekturen für vertikalen Abstand und
-% \textsl{float}-Paket}%
-% \changes{v2.95a}{2006/07/13}{diverse Korrekturen für den vertikalen
-% Abstand u.\,a. bei Verwendung des \textsl{color}-Pakets}%
-% \changes{v2.97c}{2007/06/06}{\cs{unskip}\cs{strut} eingefügt, um die
-% vertikale Ausrichtung im \emph{above}-Fall in eingen Fällen zu
-% verbessern}%
-% \changes{v3.02a}{2009/01/24}{diverse Gruppen- bzw. Argumentklammern ergänzt}%
-% \changes{v3.11c}{2013/06/12}{\cs{capfont} durch
-% \cs{usekomafont{caption}}ersetzt}%
-% \changes{v3.11c}{2013/06/12}{\cs{caplabelfont} durch
-% \cs{usekomafont{captionlabel}}ersetzt}%
-% \changes{v3.12}{2013/06/12}{ein \cs{usekomafont} durch
-% \cs{usesizeofkomafont} ersetzt}
-% \changes{v3.21}{2016/05/31}{Neuimplementierung}
+% \end{macro}^^A \@@setcapmargin,\@setcapmargin
+% \end{command}^^A \setcapmargin
+% \begin{macro}{\@@makecaption}
+% The main job is done by \cs{@@makecaption}. It has an additional first
+% argument, that has to be either \cs{@gobble} or \cs{@firstofone}. This is
+% used to either set a label or not. This is needed for captions of
+% \pkg{longtable}.
+% \changes{v2.8q}{2002/05/17}{avoid double increase of footnote number}
+% \changes{v2.95}{2004/01/30}{fixing vertical skips also with \pkg{float}}
+% \changes{v2.95a}{2006/07/13}{fixing vertical skips with \pkg{color}}
+% \changes{v2.97c}{2007/06/06}{\cs{unskip}\cs{strut} added to fix vertical
+% positions in some \emph{above} cases}
+% \changes{v3.02a}{2009/01/24}{braces fixed}
+% \changes{v3.11c}{2013/06/12}{using \cs{usekomafont}}
+% \changes{v3.12}{2013/06/12}{one \cs{usekomafont} replaced by \cs{usesizeofkomafont}}
+% \changes{v3.21}{2016/05/31}{re-implemented}
% \begin{macrocode}
\newcommand{\@@makecaption}[3]{%
% \end{macrocode}
-% Als erstes werden die Makros für den linken und rechten Rand generiert.
+% Recalculate the margins.
% \begin{macrocode}
\cap@margin
% \end{macrocode}
-% Danach wird der Test vorgenommen, ob der Text einzeilig oder
-% mehrzeilig zu setzen ist und entsprechend gehandelt:
-% \changes{v3.22}{2016/09/01}{Umdefinierung von \cs{stepcounter} und
-% \cs{refstepcounter} auf lokale Erhöhung des Zählers geändert, um Probleme
-% mit \textsf{isodate} zu umgehen}%^^A
+% Test for special treatment of one line captions.
+% \changes{v3.22}{2016/09/01}{local redefinition of \cs{stepcounter} and
+% \cs{refstepcounter} because of \pkg{isodate}}
% \begin{macrocode}
\begingroup
\ifonelinecaptions
@@ -1219,10 +1111,9 @@
\let\@footnotetext=\@gobble
\let\hypertarget\@gobbletwo
% \end{macrocode}
-% \changes{v3.22}{2016/09/01}{Sonderbehandlung für \string\\ u.\,ä. im Text}
-% Falls im Text ein \texttt{\string\\} oder \cs{newline} enthalten ist,
-% wird ein Infotext ausgegeben und dafür gesorgt, dass mehrzeilig gearbeitet
-% wird.
+% \changes{v3.22}{2016/09/01}{special treatment of hard coded line breaks}
+% If there are hard coded line breaks using |\\| or \cs{newline}, we inform
+% the user to use a multi-line caption.
% \begin{macrocode}
\edef\@xnewline{%
\unexpanded{\ClassInfo{\KOMAClassName}{%
@@ -1244,13 +1135,11 @@
}%
\settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}%
% \end{macrocode}
-% \selectlanguage{english}
% \changes{v3.34}{2021/03/22}{fix of maximum line width of single line
% captions}
% Until \KOMAScript~3.34 the test here was wrong, because it used
% \cs{linewidth}, which is still the whole line width not the maximum caption
% width. From \KOMAScript~3.34 \cs{cap@width} is used.
-% \selectlanguage{ngerman}
% \begin{macrocode}
\ifdim\@tempdima>\cap@width
\aftergroup\scr@makemultilinecaption
@@ -1264,15 +1153,12 @@
{#1}{#2}{#3}%
}
% \end{macrocode}
-% \begin{macro}{\scr@makesinglelinecaption}
-% \changes{v3.21}{2016/05/31}{neu (intern)}
-% \begin{macro}{\scr@@makesinglelinecaption}
-% \changes{v3.21}{2016/05/31}{neu (intern)}
-% Diesen Anweisungen übernehmen die komplette Ausgabe von einzeiligen Texten.
-% Das erste Argumen hat \cs{@gobble} oder \cs{@firstofone} zu sein und
-% bestimmt darüber ob das Label ausgegeben wird oder nicht. Der Text wird
-% dagegen immer ausgegeben! Das vierte Argument im internen Makro ist entweder
-% \cs{par} oder leer.
+% \begin{macro}{\scr@@makesinglelinecaption,\scr@makesinglelinecaption}
+% \changes{v3.21}{2016/05/31}{added}
+% The output of single line captions. The first argument once again is
+% \cs{@gobble} (to not show a label) or \cs{@firstofone} (to show the
+% label). Argument two and three are the label (without separator, that is
+% added here) and the caption text.
% \begin{macrocode}
\newcommand{\scr@makesinglelinecaption}[3]{%
{%
@@ -1291,10 +1177,10 @@
\ignorespaces #3\unskip}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@makesinglelinecaption
-% \end{macro}%^^A \scr@makesinglelinecaption
+% \end{macro}^^A \scr@@makesinglelinecaption,\scr@makesinglelinecaption
% \begin{macro}{\scr@makemultilinecaption}
-% \changes{v3.21}{2016/05/31}{neu (intern)}%^^A
+% \changes{v3.21}{2016/05/31}{added}
+% The output of multi line captions. The arguments are same as above.
% \begin{macrocode}
\newcommand{\scr@makemultilinecaption}[3]{%
{%
@@ -1303,11 +1189,10 @@
\cap@left
\vbox{\hsize\cap@width\linewidth\hsize
% \end{macrocode}
-% \changes{v3.25}{2017/11/15}{caption Ausrichtung hinzugefügt}%^^A
-% Bevor wir irgend etwas anderes machen, führen wir an der Stelle die
-% Ausrichtung für die gesamte \emph{caption} einschließlich Label aus. Dabei
-% hat eine vorhandene spezielle Ausrichtung für den Gleitungebungstyp Vorrang
-% vor der allgemeinen Ausrichtung für alle Gleitumgebungen:
+% \changes{v3.25}{2017/11/15}{caption alignment added}
+% First of all we have to use the ragged type depending in the float/caption
+% type. If the float/caption type is unknown we can use the general ragged
+% type only.
% \begin{macrocode}
\scr@ifundefinedorrelax{@captype}{%
\ClassWarning{\KOMAClassName}{%
@@ -1326,10 +1211,8 @@
\@nameuse{ragged\@captype caption}%
}%
% \end{macrocode}
-% Wenn der Schalter \cs{ifdofullc@p} gesetzt ist, wird der Text bezüglich des
-% Labels vollständig hängend gesetzt:
-% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
-% \cs{unskip}\cs{strut}}%^^A
+% Maybe we have to us a full hanging caption.
+% \changes{v3.25}{2017/11/15}{Using \cs{scr@endstrut} instead of \cs{unskip}\cs{strut}}
% \begin{macrocode}
\ifdofullc@p
\@hangfrom{%
@@ -1344,8 +1227,7 @@
}%
{\usekomafont{caption}{#3\scr@endstrut\par}}%
% \end{macrocode}
-% Anderenfalls soll entweder nach dem Label direkt ein Umbruch erfolgen und
-% ein Einzug nur der ersten Zeile zu setzen:
+% Maybe a partial hanging caption with line break after the label.
% \begin{macrocode}
\else
\ifdim\cap@indent<\z@
@@ -1359,8 +1241,7 @@
\hspace*{-\cap@indent}#3\scr@endstrut\par
}}%
% \end{macrocode}
-% Oder es soll nach dem Label ein Umbruch erfolgen und danach alle Zeilen mit
-% dem entsprechenden Einzug gesetzt werden:
+% Or a line break after the label with full hanging.
% \begin{macrocode}
\else
\if@capbreak
@@ -1373,10 +1254,8 @@
\noindent\@hangfrom{\hspace*{\cap@indent}}%
{\usekomafont{caption}{#3\scr@endstrut\par}}%
% \end{macrocode}
-% \changes{v3.27a}{2019/10/21}{fehlende Verwendung von Element
-% \texttt{caption} ergänzt}%^^A
-% Oder es soll gar kein Umbruch erfolgen aber trotzdem alles mit einem
-% gewissen Einzug gesetzt werden:
+% \changes{v3.27a}{2019/10/21}{missing usage of \fnt{caption} added}
+% Or no line break but still with indent.
% \begin{macrocode}
\else
\@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}%
@@ -1394,7 +1273,7 @@
\fi
\fi
% \end{macrocode}
-% Eigentlich fehlt hier nur die einfachste, gar nicht hängende Form:
+% Here we could also add the not hanging version without line break:
% \begin{macrocode}
%<*neverusethis>
% #1{{\usekomafont{caption}{%
@@ -1402,7 +1281,7 @@
% {\usekomafont{capion}{\ignorespaces #3\scr@endstrut\par}%
%</neverusethis>
% \end{macrocode}
-% Die allerdings durch die Form mit Einzug 0 abgedeckt wird.
+% But this is not needed, because it is the same like indent of 0.
% \begin{macrocode}
}%
\cap@right
@@ -1411,16 +1290,20 @@
}\kern-\dp\strutbox
}
% \end{macrocode}
-% \begin{macro}{\setcaptionalignment}
-% \changes{v3.25}{2017/11/15}{neu}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Da es etwas lästig und fehleranfällig ist, die ganzen \cs{raggedcaption}
-% und \cs{ragged\dots caption} von Hand zu definieren, gibt es dafür einen
-% Befehl. Das erste, optionale Argument ist dabei die Gleitungebung für die
-% die Definition erfolgen soll. Ist das Argument nicht leer, wird bei
-% definiertem \cs{@captype} dieses als Gleitumgebung angenommen. Ist das
-% Argument leer wird stattdessen die allgemeine Ausrichtung festgelegt. Das
-% zweite Argument ist ein einzelner Buchstaben, der für die Ausrichtung steht.
+% \begin{command}{\setcaptionalignment}
+% \begin{macro}{\@setcaptionalignment}
+% \changes{v3.25}{2017/11/15}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} replaced by \cs{Ifstr}}
+% It is better for users to not define the \cs{raggedcaption} and
+% \cs{ragged\dots caption} commands themselves to avoid mistakes. So we have
+% \begin{quote}
+% \cs{setcaptionalignment}\oarg{float}\marg{alignment}
+% \end{quote}
+% If \meta{float} is used, \cs{ragged\meta{float}caption} will be changed. If
+% \meta{float} is not used, but \cs{@captype} is defined (and not \cs{relax})
+% \cs{ragged\cs{@captype}caption} is defined. If \meta{float} is empty or
+% \cs{captype} is undefined (or \cs{relax}) and \meta{float} is not used,
+% \cs{raggedcaption} will be changed.
% \begin{macrocode}
\newcommand*\setcaptionalignment{%
\kernel@ifnextchar [%]
@@ -1433,9 +1316,9 @@
}%
\newcommand*\@setcaptionalignment[2][]{%
% \end{macrocode}
-% Wenn das optionale Argument nicht leer ist, sollte es eine bereits
-% definierte Gleitumgebung sein. Anderenfalls wird vorsichtshalber zumindest
-% eine Warnung ausgegeben. Die Ausrichtung wird aber trotzde, definiert.
+% If \meta{float} is not empty it should be the name of a already defined
+% floating environment. Otherwise we report a warning, but nevertheless define
+% the command.
% \begin{macrocode}
\IfArgIsEmpty{#1}{}{%
\expandafter\ifnum
@@ -1448,22 +1331,31 @@
\fi
}%
% \end{macrocode}
-% Danach gehen wir die Buchstaben durch. Erlaubt sind:
+% Depending on \meta{alignment} the command will be changed:
% \begin{description}
-% \item[\texttt{j}] -- Blocksatz (\cs{ragged\dots caption} wird \cs{relax}.
-% \item[\texttt{l}] -- Blocksatz (\cs{ragged\dots caption} wird
-% \cs{raggedright}.
-% \item[\texttt{r}] -- Blocksatz (\cs{ragged\dots caption} wird
-% \cs{raggedleft}.
-% \item[\texttt{c}] -- Blocksatz (\cs{ragged\dots caption} wird
+% \item[\texttt{j}] -- justified (\cs{ragged\dots caption} becomes \cs{relax}).
+% \item[\texttt{l}] -- left aligned (\cs{ragged\dots caption} becomes
+% \cs{raggedright}).
+% \item[\texttt{r}] -- right aligned (\cs{ragged\dots caption} becomes
+% \cs{raggedleft}).
+% \item[\texttt{c}] -- centered (\cs{ragged\dots caption} becomes
% \cs{centering}.
% \end{description}
-% Ist das Paket \textsf{ragged2e} geladen, werden stattdessen die Befehle
-% \cs{LaTeXraggedright}, \cs{LaTeXraggedleft} und \cs{LaTeXcentering}
-% verwendet. Außerdem führen dann die entsprechenden Großbuchstaben zu
-% \cs{justifying}, \cs{RaggedRight}, \cs{RaggedLeft} und
-% \cs{Centering}. Anderenfalls werden die Großbuchstaben wie die
-% Kleinbuchstaben behandelt und geben zusätzlich eine Warnung aus.
+% Note: If \pkg{ragged2e} has been loaded, \cs{LaTeXraggedright},
+% \cs{LaTeXraggedleft} and \cs{LaTeXcentering} are used and the following
+% additional \meta{alignment}s are supported:
+% \begin{description}
+% \item[\texttt{J}] -- justified (\cs{ragged\dots caption} becomes \cs{justifying}).
+% \item[\texttt{L}] -- left aligned (\cs{ragged\dots caption} becomes
+% \cs{RaggedRight}).
+% \item[\texttt{R}] -- right aligned (\cs{ragged\dots caption} becomes
+% \cs{RaggedLeft}).
+% \item[\texttt{C}] -- centered (\cs{ragged\dots caption} becomes
+% \cs{Centering}.
+% \end{description}
+% Without \pkg{ragged2e} the upper case letters are same like lower case
+% letters, but additionally warn. Note: The implementation does also work, if
+% \pkg*{scrlayer-scrpage} has defined \cs{LaTeXraggedright} etc.
% \begin{macrocode}
\def\reserved@a{#2}%
\Ifstr{\reserved@a}{j}{%
@@ -1556,8 +1448,8 @@
}
% \end{macrocode}
% \begin{macro}{\scr@caption@raggede@warning}
-% \changes{v3.25}{2017/11/15}{neu (intern)}%^^A
-% Das ist die oben erwähnte Warnung.
+% \changes{v3.25}{2017/11/15}{added}
+% The warning used above.
% \begin{macrocode}
\newcommand*{\scr@caption@raggede@warning}[2]{%
\begingroup
@@ -1571,42 +1463,35 @@
\endgroup
}
% \end{macrocode}
-% \begin{macro}{\raggedcaption}
-% \changes{v3.25}{2017/11/15}{neu}%^^A
-% Und natürlich wird eine Standardausrichtung benötigt. Ich bevorzuge hier die
-% leere Ausrichtung, weil \LaTeX{} \cs{relax} nicht als definiert erkennt.
+% \begin{command}{\raggedcaption}
+% \changes{v3.25}{2017/11/15}{added}
+% The default alignment is standard alignment (empty means no change).
% \begin{macrocode}
\newcommand*\raggedcaption{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}%^^A \scr@caption@raggede@warning
-% \end{macro}%^^A \setcaptionalignment
-% \end{macro}%^^A \scr@makemultilinecaption
-% \end{macro}%^^A \@@makecaption
-% \end{macro}%^^A \@makecaption
-% \end{macro}%^^A \caption
+% \end{command}^^A \raggedcaption
+% \end{macro}^^A \scr@caption@raggede@warning
+% \end{macro}^^A \@setcaptionalignment
+% \end{command}^^A \setcaptionalignment
+% \end{macro}^^A \scr@makemultilinecaption
+% \end{macro}^^A \@@makecaption
+% \end{macro}^^A \@makecaption
+%
+% \subsection{Special treatment of \texorpdfstring{\pkg*{longtable}}{`longtable'} captions}
%
% \begin{macro}{\LT@makecaption}
-% \changes{v2.8j}{2001/07/30}{neu (intern)}
-% \changes{v2.8k}{2001/08/15}{keine Umdefinierung, wenn das
-% \textsf{caption2}-Paket erkannt oder die Option
-% \texttt{origlongtable} gesetzt wurde}
-% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird über
-% \KOMAScript-Makros bestimmt}
-% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}}
-% \changes{v2.9s}{2004/08/24}{vertikale Abstände durch verschieben von
-% \cs{vskip} korrigiert}
-% \begin{macro}{\LT@array}
-% \changes{v2.8q}{2001/11/18}{neu (intern)}
-% \begin{macro}{\LT@caption}
-% \changes{v2.8q}{2001/11/18}{neu (intern)}
+% \changes{v2.8j}{2001/07/30}{added}
+% \changes{v2.8k}{2001/08/15}{do nothing if \pkg{caption2} has been loaded or
+% option \opt{origlongtable} has been used}
+% \changes{v2.8q}{2001/11/18}{width and alignment by \KOMAScript{}}
+% \changes{v2.8q}{2001/11/18}{using \cs{AfterPackage}}
+% \changes{v2.9s}{2004/08/24}{vertical skips fixed by moving \cs{vskip}}
+% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed}
+% \begin{macro}{\LT@array,\LT@caption}
+% \changes{v2.8q}{2001/11/18}{added}
% \begin{macro}{\scr@caption@before@longtable@warning}
-% \changes{v2.98c}{2008/03/03}{neu (intern)}
-% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt}
-% Ab Version 2.8j wird auf vielfachen Wunsch das
-% \textsf{longtable}-Paket berücksichtigt. Da Pakete aber nach
-% Klassen geladen werden, kann dies erst nach dem Laden des Pakets
-% aktiviert werden. Die Definition entspricht der obigen.
+% \changes{v2.98c}{2008/03/03}{added}
+% The code for \pkg{longtable} has to be delayed until loading the package.
% \begin{macrocode}
\newcommand*{\scr@caption@before@longtable@warning}[1]{%
\ClassWarning{\KOMAClassName}{%
@@ -1634,9 +1519,8 @@
\LT@mcol\LT@cols c{%
\hbox to\z@{\hss\parbox[t]\linewidth{%
% \end{macrocode}
-% \changes{v3.25}{2017/11/15}{\cs{@captype} auf \texttt{table} gesetzt}%^^A
-% Damit \cs{raggedtablecaption} ggf. verwendet wird, wird hier \cs{@captype}
-% explizit auf \texttt{table} gesetzt.
+% \changes{v3.25}{2017/11/15}{\cs{@captype} set to \texttt{table}}
+% To make \cs{raggedtablecaption} available, \cs{@captype} has to be defined.
% \begin{macrocode}
\def\@captype{table}%
\@@makecaption{#1}{#2}{#3}%
@@ -1672,23 +1556,18 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@caption@before@longtable@warning
+% \end{macro}^^A \LT@array,\LT@caption
+% \end{macro}^^A \LT@makecaption
%
-% \begin{macro}{\fs@komaabove}
-% \changes{v2.8j}{2001/07/30}{neu (intern)}%^^A
-% \begin{macro}{\fs@komabelow}
-% \changes{v2.8j}{2001/07/30}{neu (intern)}%^^A
-% \begin{macro}{\floatc@komascript}
-% \changes{v2.8j}{2001/07/30}{neu (intern)}%^^A
-% Ab Version 2.8j werden für das \textsf{float}-Paket zwei float-Stile
-% Namens \texttt{komaabove} und \texttt{komabelow} definiert. Da
-% möglicherweise auch andere Pakete darauf zurückgreifen, wird das
-% unabhängig von der Existenz von \textsf{float} getan. Verwendet wird
-% dies innerhalb von \KOMAScript{} jedoch nicht. Es werden außerdem
-% interne Makros von \textsf{float} verwendet!
+% \subsection{Special treatment of the \texorpdfstring{\pkg*{float}}{`float'} package}
+%
+% \begin{macro}{\fs@komaabove,\fs@komabelow,\floatc@komascript}
+% \changes{v2.8j}{2001/07/30}{added}
+% We define two float style for package \pkg{float}: \texttt{komaabove} and
+% \texttt{komabelow}. However this is done independent of loading \pkg{float},
+% because maybe someone else also uses those styles (but I don't think so).
+% Note: Internal macros of \pkg{float} has to be used for the definitions.
% \begin{macrocode}
\newcommand*{\fs@komaabove}{%
\let\@fs@capt\floatc@komascript
@@ -1704,26 +1583,23 @@
\let\@fs@iftopcapt\iffalse}
\newcommand{\floatc@komascript}{\@@makecaption\@firstofone}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \fs@komabove,\fs@komabelow,\floatc@komascript
%
%
-% \subsection{Verteilung der Gleitumgebungen}
+% \subsection{Where to place floats}
%
-% \begin{Counter}{topnumber}
-% \begin{macro}{\topfraction}
-% \begin{Counter}{bottomnumber}
-% \begin{macro}{\bottomfraction}
-% \begin{Counter}{totalnumber}
-% \begin{macro}{\textfraction}
-% \begin{macro}{\floatpagefraction}
-% \begin{Counter}{dbltopnumber}
-% \begin{macro}{\dbltopfraction}
-% \begin{macro}{\dblfloatpagefraction}
-% Für die Fließumgebungen müssen verschiedene Konstanten definiert
-% werden, die Aufteilung zwischen Text und Fließumgebung und Ähnliches
-% regeln.
+% \begin{counter}{topnumber}
+% \begin{command}{\topfraction}
+% \begin{counter}{bottomnumber}
+% \begin{command}{\bottomfraction}
+% \begin{counter}{totalnumber}
+% \begin{command}{\textfraction}
+% \begin{command}{\floatpagefraction}
+% \begin{counter}{dbltopnumber}
+% \begin{command}{\dbltopfraction}
+% \begin{command}{\dblfloatpagefraction}
+% These are constants used by the \LaTeX{} kernel to decide where to place a
+% float. See the kernel documentation for more information.
% \begin{macrocode}
\setcounter{topnumber}{2}
\renewcommand*\topfraction{.7}
@@ -1736,38 +1612,32 @@
\renewcommand*\dbltopfraction{.7}
\renewcommand*\dblfloatpagefraction{.5}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{Counter}
-%
-%
-% \subsection{Titel ohne Gleitumgebung}
-%
-% \begin{macro}{\captionof}
-% \changes{v3.05}{2009/07/08}{Neue Anweisung}%^^A
-% \changes{v3.09}{2011/03/21}{Verwendung des internen \cs{scr@caption}}
-% \changes{v3.09a}{2011/04/13}{Berücksichtigung von
-% \texttt{captions=tableheading} und \texttt{captions=figureheading}}
-% \begin{macro}{\captionaboveof}
-% \changes{v3.09}{2011/03/21}{Neue Anweisung}%^^A
-% \begin{macro}{\captionbelowof}
-% \changes{v3.09}{2011/03/21}{Neue Anweisung}%^^A
-% Obwohl es inzwischen mehrere Pakete gibt, die diese Anweisung bereit
-% stellen, kommt es doch immer wieder zu Fehlern, weil einige Anwender diese
-% Pakete nicht nutzen. Also habe ich beschlossen, das selbst zu
-% implementieren. Um die Kompatibilität mit \textsf{capt-of} nicht zu stören,
-% wird die Definition vor dme Laden jenes Pakets zurück genommen. Mit dem
-% Paket \textsf{caption} gibt es solche Probleme nicht, da dieses
-% \cs{captionof} ohnehin per \cs{def} definiert. Allerdings berücksichtigt das
-% \cs{captionof} von \textsf{caption} und \textsf{capt-of} eventuell die
-% Einstellungen für darüber oder darunter nicht in gleicher Weise.
+% \end{command}
+% \end{command}
+% \end{counter}
+% \end{command}
+% \end{command}
+% \end{counter}
+% \end{command}
+% \end{counter}
+% \end{command}
+% \end{counter}
+%
+%
+% \subsection{Caption without float}
+%
+% \begin{command}{\captionof}
+% \changes{v3.05}{2009/07/08}{added}
+% \changes{v3.09}{2011/03/21}{using internal \cs{scr@caption}}
+% \changes{v3.09a}{2011/04/13}{handling of
+% \opt{captions\quotechar=tableheading} and \opt{captions\quotechar=figureheading}}
+% \begin{command}{\captionaboveof,\captionbelowof}
+% \changes{v3.09}{2011/03/21}{added}
+% We do not only provide a \cs{captionof} like \pkg{caption} or \pkg{capt-of}
+% but also \cs{captionaboveof} and \cs{captionbelowof}. Users should not
+% additionally use \pkg{capt-of}, but if they do, the definition of that
+% package will be used instead (which is usually not, what the user want, but
+% what they decided to do).
% \begin{macrocode}
\newcommand*{\captionof}[1]{\def\@captype{#1}%
\begingroup\expandafter\expandafter\expandafter\endgroup
@@ -1779,14 +1649,19 @@
\newcommand*{\captionbelowof}{\@captionabovefalse\captionof}
\BeforePackage{capt-of}{\let\captionof\relax}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \captionaboveof,\captionbelowof
+% \end{command}^^A \captionof
%
% \begin{environment}{captionofbeside}
-% \changes{v3.10}{2011/09/02}{Neue Umgebung}%^^A
-% Analog zu \texttt{captionbeside} hier eine Umgebung mit Angabe des
-% Gleitumgebungstyps als erstes Argument.
+% \changes{v3.10}{2011/09/02}{added}
+% The analogue environment to \cs{captionbeside} to be used outside
+% floats.
+% \begin{description}
+% \item[ToDo:] Wouldn't it be a good idea to test for already defined
+% \cs{@captype} inside \env{captionbeside} and then expect an additional first
+% argument \meta{float}? In this case user could simply us \env{captionbeside}
+% the same way as \env{captionofbeside}.
+% \end{description}
% \begin{macrocode}
\newenvironment{captionofbeside}[1]{%
\def\@captype{#1}%
@@ -1798,54 +1673,55 @@
% \end{environment}
%
%
-% \subsection{Standardbezeichner}
+% \subsection{Names}
%
-% \begin{macro}{\figurename}
-% \begin{macro}{\tablename}
-% So heißen die Dinger:
+% \begin{command}{\figurename,\tablename}
+% \changes{v3.36}{2022/02/15}{explicit definition for English languages}
+% The names to be used for the float labels.
% \begin{macrocode}
\newcommand*\figurename{Figure}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\figurename{Figure}
\newcommand*\tablename{Table}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\tablename{Table}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \figurename,\tablename
%
%
-% \subsection{Abbildungsumgebung}
+% \subsection{Defining the \env{figure} environment}
%
-% \begin{environment}{figure}
-% \changes{v2.2c}{1995/05/25}{Abbildungsausgabe auf CJK umgestellt}%^^A
-% \changes{v2.8h}{2001/07/19}{\cs{caption} wird explizit zu
-% \cs{captionbelow}}%^^A
-% \changes{v3.25}{2017/10/10}{Reimplementierung mit \textsf{tocbasic}}%^^A
-% Zunächst werden \texttt{figure}s, also Abbildungen behandelt.
-% \begin{Counter}{figure}
-% \changes{v3.25}{2017/10/10}{Der Zähler wird implizit von
-% \cs{DeclareNewTOC} definiert.}%^^A
-% \end{Counter}
-% Der ganze Rest kann mit \cs{DeclareNewTOC} erledigt werden.
+% \begin{environment}{figure*,figure-,figure}
+% \changes{v2.2c}{1995/05/25}{initial CJK support}
+% \changes{v2.8h}{2001/07/19}{\cs{caption} is \cs{captionbelow}}
+% \changes{v3.25}{2017/10/10}{re-implemented using \pkg*{tocbasic}}
+% \changes{v3.36}{2022/02/22}{define additional non-float}
+% \begin{counter}{figure}
+% \changes{v3.25}{2017/10/10}{implicit by \cs{DeclareNewTOC}}
+% \end{counter}
+% We do the main job using \cs{DeclareNewTOC}:
% \begin{macrocode}
\DeclareNewTOC[%
type=figure,
float,
+ nonfloat,
%<book|report> counterwithin=chapter,
% \end{macrocode}
% \begin{macro}{\fps@figure}
-% Die Standardplatzierung für Abbildungen ist \emph{t}op,
-% \emph{b}ottom, \emph{p}age.
+% Default placement (by \cs{DeclareNewTOC}) \textbf{t}op, \textbf{b}ottom,
+% \textbf{p}age.
% \begin{macrocode}
floatpos=tbp,
+% \end{macrocode}
% \end{macro}
% \begin{macro}{\ftype@figure}
-% Um die verschiedenen \emph{float}-Typen unterscheiden zu können,
-% benötigen sie eine Nummer. Abbildungen bekommen hier willkürlich
-% die Nummer 1.
+% Numerical float type 1 (by \cs{DeclareNewTOC}).
% \begin{macrocode}
floattype=1,
% \end{macrocode}
% \end{macro}
-% \changes{v3.11c}{2013/03/01}{fix: one \cs{caption} change removed}%^^A
-% \changes{v3.20}{2016/04/07}{Interne Umdefinierung von \cs{caption}}%^^A
+% \changes{v3.11c}{2013/03/01}{fix: one \cs{caption} change removed}
+% \changes{v3.20}{2016/04/07}{internal redefinition of \cs{caption}}
% \begin{macrocode}
tocentryindent=1.5em,
tocentrynumwidth=2.3em,
@@ -1855,13 +1731,13 @@
}
% \end{macrocode}
% \begin{macro}{\ext@figure}
-% Die Extension der Datei für das Abbildungsverzeichnis.
+% Extension to be used (by \cs{DeclareNewTOC})
% \begin{macrocode}
]{lof}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\thefigure}
-% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}
+% \begin{command}{\thefigure}
+% \changes{v2.97e}{2007/11/23}{using chapter number in main-matter only}
% \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent}
% \changes{v3.35}{2021/10/12}{use chapter number only of greater than zero}
% \changes{v3.35}{2021/10/12}{redefine \cs{thefigure} only if compatibility is
@@ -1878,65 +1754,51 @@
\fi
%</article>
% \end{macrocode}
-% \end{macro}
+% \end{command}
% \begin{macro}{\fnum@figure}
-% \begin{macro}{\figureformat}
-% \changes{v2.3c}{1995/08/06}{neu}%^^A
-% Die Ausgabe der Abbildungsnummer wird implizit von \cs{DeclareNewTOC} als
-% \iffalse
-%<*ignore>
-% \fi
-% \begin{macrocode}
-\newcommand*{\fnum@figure}{\figureformat}
-\newcommand*{\figureformat}{%
- \figurename~\thefigure
- \csname autodot\endcsname
-}
-% \end{macrocode}
-% \iffalse
-%</ignore>
-% \fi
-% definiert.
-% \end{macro}
+% \begin{command}{\figureformat}
+% \changes{v2.3c}{1995/08/06}{added}
+% The print format of the number (by \cs{DeclareNewTOC}).
+% \end{command}
% \end{macro}
% \end{environment}
%
%
-% \subsection{Tabellengleitumgebung}
+% \subsection{Defining the \env{table} environment}
+%
+% Note: This is almost the same as defining the \env{figure} environment. So
+% read the previous section first.
%
-% \begin{environment}{table}
-% \changes{v2.2c}{1995/05/25}{Tabellenausgabe auf CJK umgestellt}%^^A
-% \changes{v2.8h}{2001/07/19}{bei Tabellen kann der Default für
-% \cs{caption} von Unter- auf Überschriften geändert werden}
-% \changes{v3.25}{2017/10/10}{Reimplementierung mit \textsf{tocbasic}}%^^A
-% Auch verschiebbare Tabellen sind möglich. Das Prinzip ist das
-% gleiche wie bei den Abbildungen.
-% \begin{Counter}{table}
-% \changes{v3.25}{2017/10/10}{Der Zähler wird implizit von
-% \cs{DeclareNewTOC} definiert.}%^^A
-% \end{Counter}
-% Der ganze Rest kann mit \cs{DeclareNewTOC} erledigt werden.
+% \begin{environment}{table*,table-,table}
+% \changes{v2.2c}{1995/05/25}{initial CJK support}
+% \changes{v2.8h}{2001/07/19}{\cs{caption} is \cs{captionbelow}}
+% \changes{v3.25}{2017/10/10}{re-implemented using \pkg*{tocbasic}}
+% \changes{v3.36}{2022/02/22}{define additional non-float}
+% \begin{counter}{table}
+% \changes{v3.25}{2017/10/10}{implicit by \cs{DeclareNewTOC}}
+% \end{counter}
+% We do the main job using \cs{DeclareNewTOC}:
% \begin{macrocode}
\DeclareNewTOC[%
type=table,
float,
+ nonfloat,
%<book|report> counterwithin=chapter,
% \end{macrocode}
% \begin{macro}{\fps@table}
-% Die Standardplatzierung für Tabellen ist \emph{t}op,
-% \emph{b}ottom, \emph{p}age.
+% Default placement (by \cs{DeclareNewTOC}) \textbf{t}op, \textbf{b}ottom,
+% \textbf{p}age.
% \begin{macrocode}
floatpos=tbp,
+% \end{macrocode}
% \end{macro}
% \begin{macro}{\ftype@table}
-% Um die verschiedenen \emph{float}-Typen unterscheiden zu können,
-% benötigen sie eine Nummer. Tabellen bekommen hier willkürlich
-% die Nummer 2.
+% Numerical float type 2 (by \cs{DeclareNewTOC}).
% \begin{macrocode}
floattype=2,
% \end{macrocode}
% \end{macro}
-% \changes{v3.20}{2016/04/07}{Interne Umdefinierung von \cs{caption}}%^^A
+% \changes{v3.20}{2016/04/07}{internal redefinition of \cs{caption}}
% \begin{macrocode}
tocentryindent=1.5em,
tocentrynumwidth=2.3em,
@@ -1946,14 +1808,14 @@
}
% \end{macrocode}
% \begin{macro}{\ext@table}
-% Die Extension der Datei für das Abbildungsverzeichnis.
+% Extension to be used (by \cs{DeclareNewTOC})
% \begin{macrocode}
]{lot}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\thetable}
-% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}%^^A
-% \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent}%^^A
+% \begin{command}{\thetable}
+% \changes{v2.97e}{2007/11/23}{using chapter number in main-matter only}
+% \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent}
% \changes{v3.35}{2021/10/12}{use chapter number only of greater than zero}
% \changes{v3.35}{2021/10/12}{redefine \cs{thefigure} only if compatibility is
% less or equal 2.97d resp. less than 3.35}
@@ -1968,42 +1830,30 @@
\renewcommand*\thetable{\@arabic\c@table}
\fi
%</article>
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
% \begin{macro}{\fnum@table}
-% \begin{macro}{\tableformat}
-% \changes{v2.3c}{1995/08/06}{neu}%^^A
-% Die Ausgabe der Abbildungsnummer wird implizit von \cs{DeclareNewTOC} als
-% \iffalse
-%<*ignore>
-% \fi
-% \begin{macrocode}
-\newcommand*{\fnum@table}{\tableformat}
-\newcommand*{\tableformat}{%
- \tablename~\thetable
- \csname autodot\endcsname
-}
-% \end{macrocode}
-% \iffalse
-%</ignore>
-% \fi
-% definiert.
-% \end{macro}
+% \begin{command}{\tableformat}
+% \changes{v2.3c}{1995/08/06}{added}
+% The print format of the number (by \cs{DeclareNewTOC}).
+% \end{command}
% \end{macro}
% \end{environment}
%
-% \iffalse
-%</!letter>
-%</class>
-%</body>
-% \fi
-%
+% \begin{macrocode}
+%</class&!letter>
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-floats.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx b/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx
index 2e703b4a8a..1fb7cf7601 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-fonts.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-fonts.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-fonts.dtx 3597 2021-05-17 12:54:47Z kohm $
+%%% From File: $Id: scrkernel-fonts.dtx 3723 2022-02-23 14:53:44Z kohm $
%<identify>%%% (run: identify)
%<option>%%% (run: option)
%<body>%%% (run: body)
@@ -65,9 +29,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-05-17 14:54:47 +0200 (Mon, 17 May 2021) $
+ \filedate$Date: 2022-02-23 15:53:44 +0100 (Mi, 23. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1827 $
+ \filerevision$Revision: 3723 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-fonts.dtx}%
@@ -76,7 +40,7 @@
(font size)]
}%
\reserved@a
-% \changes{v3.09}{2011/02/23}{Neues Paket \texttt{scrfontsizes}}
+% \changes{v3.09}{2011/02/23}{new package \pkg*{scrfontsizes}}
%</dtx>
%<*package&generator&identify>
%<package&generator&identify>\ProvidesPackage{scrfontsizes}[%
@@ -84,111 +48,102 @@
%<package&generator&identify> package (font size file generator)]
%</package&generator&identify>
%<*dtx>
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-fonts.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}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-fonts.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
%
-% \changes{v2.95}{2002/06/25}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \changes{v2.95}{2002/06/25}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/22}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/22}{implementation documentation in English}
%
-% \section{Schriftauswahl}
+% \GetFileInfo{scrkernel-fonts.dtx}
+% \title{Code for the Foats of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-fonts.dtx} mainly implements the font selection of
+% \KOMAScript{}. This is not only the selection of the font sizes but also
+% the implementation of font elements. Additionally it provides package
+% \pkg*{scrfontsizes} to generate new font size files.
+% \end{abstract}
+% \tableofcontents
%
-% Dieser Bereich befasst sich mit allem, was zur Schriftauswahl
-% gehört. Die einzelnen Elemente, für die eine Schriftauswahl möglich
-% ist, sind jedoch in den Dateien definiert, in denen diese Elemente
-% auftreten.
+% \section{User Manual}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}. The user documentation of alpha package \pkg*{scrfontsizes}
+% is still missing.
%
-% \iffalse
-%<*option>
-% \fi
%
-% \subsection{Der Generator für Schriftgrößendateien}
+% \MaybeStop{\PrintIndex}
+%
+%
+% \section{Implementation of \KOMAScript{} Font Features}
+%
+% \subsection{Options of the font size files generator package}
+%
+% From version 3.09 there exist package \pkg*{scrfontsizes}, which is currently
+% very rudimentary. However it can used to generate font size files that can
+% be modified by the user afterwards. Currently it does not provide any options.
%
-% \iffalse
-%<*generator>
-% \fi
-% Ab Version 3.09 gibt es einen Generator für neue
-% Schriftgrößendateien. Dieser richtet sich vor allem an Klassenautoren und
-% bietet die Möglichkeit, eine eigene berechnete Schriftgrößendatei als
-% Grundlage für eine spezifisch angepasste Schriftgrößendateie zu erstellen.
-% Optionen besitzt dieser jedoch nicht. Daher reduziert sich der Optionenteil
-% auf ein einfaches
% \begin{macrocode}
+%<*generator&option>
\ProcessOptions\relax
+%</generator&option>
% \end{macrocode}
-% \iffalse
-%</generator>
-% \fi
%
-% \subsection{Option zur Auswahl der Größe der Grundschrift}
+% \subsection{Font size options of the \KOMAScript{} classes}
+%
+% \begin{option}{10pt,11pt,12pt}
+% These options do not exist as explicit options but are handled by
+% \cs{DeclareOption*} via \cs{@pt@scan}.
+% \end{option}
%
-% \iffalse
-%<*class|extend>
-% \fi
-% \begin{option}{10pt}
-% \begin{option}{11pt}
-% \begin{option}{12pt}
-% Diese Optionen existieren nicht mehr als explizite Optionen, sondern
-% werden in \texttt{scrtarea.dtx} über \cs{DeclareOption*}
-% ausgewertet.
% \begin{macro}{\@ptsize}
-% \changes{v2.96}{2006/08/11}{\cs{@ptsize} hat temporär eine andere
-% Bedeutung}%^^A
-% \changes{v3.27}{2019/03/25}{\cs{providecommand} statt \cs{newcommand}}%^^A
-% Wir definieren \cs{@ptsize} als Grundschriftgrößee minus 10\,pt.
-% Hier wird die Standardeinstellung 11\,pt für alle Klassen außer der
-% Briefklasse gewählt. Bis zum Einstellen tatsächlichen Einstellen der
-% Schriftgröße wird in \cs{@ptsize} allerdings die tatsächliche Größe
-% angegeben, damit sich Rundungsfehler nicht so leicht summieren.
-% \begin{macrocode}
-%<*!extend>
+% \changes{v2.96}{2006/08/11}{\cs{@ptsize} different temporary meaning}
+% \changes{v3.27}{2019/03/25}{\cs{providecommand} instead of \cs{newcommand}}
+% The main meaning of \cs{@ptsize} is the base font size minus 10\,pt, or in
+% other words: base font size = \cs{@ptsize} + 10\,pt. But, until the final
+% font size has been set, we use it for the default size. \cs{providecommand}
+% is used to define it, so a wrapper class can define a different default size
+% before loading the final class.
+% \begin{macrocode}
+%<*class&option>
\providecommand*\@ptsize{%
%<!letter> 11%
%<letter> 12%
}
-%</!extend>
+%</class&option>
% \end{macrocode}
% \end{macro}
-% \end{option}
-% \end{option}
-% \end{option}
%
% \begin{macro}{\@pt@scan}
-% \changes{v2.6}{2000/01/04}{neu (intern)}%^^A
+% \changes{v2.6}{2000/01/04}{added}
% \begin{macro}{\@pt@@scan}
-% \changes{v2.6}{2000/01/04}{neu (intern)}%^^A
-% \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} durch
-% \cs{KOMA@UseObsoleteOption} ersetzt}
-% \changes{v2.98c}{2008/03/22}{Verwendung von \cs{KOMA@UseObsoleteOption}%^^A
-% korrigiert}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch
-% \cs{PackageInfoNoLine} ersetzt}
-% \changes{v3.12}{2013/03/04}{Alle Schriftgrößen-Optionen außer
-% \texttt{10pt}, \texttt{11pt} und \texttt{12pt} sind überholt.}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A
-% Das Macro \cs{@pt@scan} wird benötigt, um die Schriftgröße nach der alten
-% Methode zu erkennen.
-% \begin{macrocode}
-%<*!extend>
+% \changes{v2.6}{2000/01/04}{added}
+% \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} replaced by
+% \cs{KOMA@UseObsoleteOption}}
+% \changes{v2.98c}{2008/03/22}{Usage of \cs{KOMA@UseObsoleteOption} fixed}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.12}{2013/03/04}{other font size options than \opt{10pt},
+% \opt{11pt}, \opt{12pt} are deprecated}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} renamed to \cs{Ifnumber}}
+% This macro scans the current option and recognizes classic font size
+% options. It is used with \cs{DeclareOption*}.
+% \begin{macrocode}
+%<*class&option>
\newcommand*{\@pt@scan}{%
\expandafter\@pt@@scan\CurrentOption pt\@pt@@scan%
}
@@ -216,30 +171,29 @@
}{\@headlines}%
}{\@headlines}%
}
-%</!extend>
+%</class&option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@pt@@scan
+% \end{macro}^^A \@pt@scan
%
% \begin{macro}{\@fontsizefilebase}
-% \changes{v2.96}{2006/08/11}{neu (intern)}%^^A
-% \changes{v3.00}{2008/05/01}{Definition für \textsf{scrextend} vorgezogen}
-% Dieses Makro speichert den Präfix der primären
-% Schriftgrößenoptionsdateien. Es wird nur definiert, wenn es nicht bereits
-% definiert ist. Damit können Wrapperklassen komplett andere Größen vorgeben,
-% ohne mit \cs{ReplaceInput} arbeiten zu müssen.
+% \changes{v2.96}{2006/08/11}{added}
+% \changes{v3.00}{2008/05/01}{definition earlier because of \pkg*{scrextend}}
+% This is the prefix for the \KOMAScript{} font size files. Wrapper classes
+% are allowed to change it to use their own font size files.
% \begin{macrocode}
+%<*option&(class|extend)>
\providecommand*{\@fontsizefilebase}{scrsize}
% \end{macrocode}
% \end{macro}
%
% \changes{v3.17}{2015/03/10}{die Schriftgröße wird in der internen
-% Optionenliste gespeichert}%^^A
+% Optionenliste gespeichert}
% \begin{option}{fontsize}
-% \changes{v2.96}{2006/08/11}{Funktion komplett geändert}%^^A
+% \changes{v2.96}{2006/08/11}{Funktion komplett geändert}
% \changes{v2.98c}{2008/03/26}{lädt nach Möglichkeit die zugehörige
-% Schriftgrößendatei}%^^A
-% \changes{v3.12}{2013/03/05}{Status wird mit \cs{FamilyKeyStateProcessed}%^^A
+% Schriftgrößendatei}
+% \changes{v3.12}{2013/03/05}{Status wird mit \cs{FamilyKeyStateProcessed}
% gesetzt.}
% Hier nun die Option, die tatsächlich verwendet wird. Es sei darauf
% hingewiesen, dass damit auch Schriftgrößen wie \texttt{10.3pt} denkbar
@@ -288,51 +242,35 @@
%<extend> scrextend.\scr@pkgextension
}{fontsize}{#1}%
}
+%</option&(class|extend)>
% \end{macrocode}
% \end{option}
%
-% \iffalse
-%</class|extend>
-% \fi
-%
-% \iffalse
-%</option>
-%<*body>
-% \fi
%
-% \subsection{Sicherstellen der Umgebung des Generators}
+% \subsection{Packages required by the font size file generator package}
%
-% \iffalse
-%<*generator>
-% \fi
-% Der Generator benötigt die Anweisung \cs{changefontsizes}, die entweder von
-% einer \KOMAScript-Klasse oder vom Paket \texttt{scrextend} bereitgestellt
-% wird:
+% \pkg*{scrfontsizes} needs command \cs{changefontsizes}. This can either be
+% provided by a \KOMAScript{} class or package \pkg*{scrextend}.
% \begin{macrocode}
+%<*generator&body>
\@ifundefined{changefontsizes}{\RequirePackage{scrextend}}{}
+%</generator&body>
% \end{macrocode}
-% \iffalse
-%</generator>
-% \fi
%
-% \subsection{Einlesen der Schriftgrößendatei}
%
-% \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei
-% funktioniert nun mit diversen Größen}%^^A
-% \changes{v2.98c}{2008/03/26}{Eigene \texttt{scrsize}-Dateien definiert}
+% \subsection{The font size files}
%
-% \iffalse
-%</body>
-%<*10pt|11pt|12pt>
-% \fi
+% \changes{v2.6}{2000/01/04}{reading font size files works independent from size}
+% \changes{v2.98c}{2008/03/26}{using my own \file{scrsize\dots.clo} files}
%
-% Es werden min. drei Schriftgrößendateien benötigt. Ab Version 2.98c
-% verwendet \KOMAScript{} vorzugsweise eigene Dateien, die auch noch zu einem
-% späteren Zeitpunkt geladen werden können. Ansonsten sind diese Dateien
-% weitestgehend dem Quellcode der Standardklassen \texttt{classes.dtx}
-% entnommen.
+% We need at least the font size files for the three base sizes 10\,pt, 11\,pt
+% and 12\,pt. From version 2.98c \KOMAScript{} prefers to use its own files,
+% because these can be loaded without problems after |\begin{document}| and
+% after another font size file has already been loaded. Nevertheless the base
+% sizes are more or less from the standard classes.
%
% \begin{macrocode}
+%<*10pt|11pt|12pt>
\ProvidesFile{%
%<10pt> scrsize10pt.clo%
%<11pt> scrsize11pt.clo%
@@ -344,27 +282,9 @@
]
% \end{macrocode}
%
-% \begin{macro}{\normalsize}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\small}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\footnotesize}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\scriptsize}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\tiny}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\large}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\Large}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\LARGE}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\huge}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\Huge}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% Siehe \texttt{classes.dtx}.
+% \begin{command}{\normalsize,\small,\footnotesize,\scriptsize,\tiny,\large,
+% \Large,\LARGE,\huge,\Huge}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
% \begin{macrocode}
\def\normalsize{%
%<*10pt>
@@ -483,35 +403,14 @@
%</12pt>
\normalsize
% \end{macrocode}
-% \begin{Length}{\footnotesep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\footins}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\floatsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\textfloatsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\intextsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\dblfloatsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\sbltextfloatsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\@fptop}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\@fpsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\@fpbot}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\@dblfptop}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\@dblfpsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\@dblfpbot}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{Length}{\partopsep}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% Siehe \texttt{classes.dtx}.
+% \end{command}
+%
+% \begin{length}{\footnotesep,\footins,\floatsep,\textfloatsep,\intextsep,
+% \dblfloatsep,\sbltextfloatsep,\partopsep}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% \begin{ilength}{\@fptop,\@fpsep,\@fpbot,\@dblfptop,\@dblfpsep,\@dblfpbot}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% The values are same as with the standard classes.
% \begin{macrocode}
%<*10pt>
\setlength\footnotesep {6.65\p@}
@@ -521,13 +420,13 @@
\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\@fptop {0\p@ \@plus 1fil}
\setlength\@fpsep {8\p@ \@plus 2fil}
\setlength\@fpbot {0\p@ \@plus 1fil}
\setlength\@dblfptop {0\p@ \@plus 1fil}
\setlength\@dblfpsep {8\p@ \@plus 2fil}
\setlength\@dblfpbot {0\p@ \@plus 1fil}
-\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
%</10pt>
%<*11pt>
\setlength\footnotesep {7.7\p@}
@@ -537,13 +436,13 @@
\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\@fptop {0\p@ \@plus 1fil}
\setlength\@fpsep {8\p@ \@plus 2fil}
\setlength\@fpbot {0\p@ \@plus 1fil}
\setlength\@dblfptop {0\p@ \@plus 1fil}
\setlength\@dblfpsep {8\p@ \@plus 2fil}
\setlength\@dblfpbot {0\p@ \@plus 1fil}
-\setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@}
%</11pt>
%<*12pt>
\setlength\footnotesep {8.4\p@}
@@ -553,28 +452,18 @@
\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@}
\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\@fptop {0\p@ \@plus 1fil}
\setlength\@fpsep {10\p@ \@plus 2fil}
\setlength\@fpbot {0\p@ \@plus 1fil}
\setlength\@dblfptop {0\p@ \@plus 1fil}
\setlength\@dblfpsep {10\p@ \@plus 2fil}
\setlength\@dblfpbot {0\p@ \@plus 1fil}
-\setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@}
%</12pt>
% \end{macrocode}
-% \begin{macro}{\@listi}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\@listii}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\@listiii}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\@listiv}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\@listv}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% \begin{macro}{\@listvi}
-% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert}
-% Siehe \texttt{classes.dtx}.
+% \begin{macro}{\@listi,\@listii,\@listiii,\@listiv,\@listv,\@listvi}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% The definitions are the same as with the standard classes.
% \begin{macrocode}
\def\@listi{\leftmargin\leftmargini
%<*10pt>
@@ -627,32 +516,39 @@
\def\@listvi {\leftmargin\leftmarginvi
\labelwidth\leftmarginvi
\advance\labelwidth-\labelsep}
-% \end{macrocode}
-% \iffalse
%</10pt|11pt|12pt>
-%<*body>
-% \fi
-%
-% \iffalse
-%<*class|extend>
-% \fi
+% \end{macrocode}
+% \end{macro}^^A \@listi … \@listvi
+% \end{ilength}^^A \@fptop … \@dblfpbot
+% \end{length}^^A \footnotesep … \partopsep
%
-% \begin{macro}{\changefontsizes}
-% \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)}%^^A
-% \changes{v3.08b}{2011/02/22}{drei falsche \cs{def} durch \cs{edef}
-% ersetzt}%^^A
-% \changes{v3.17}{2015/02/23}{wird nur definiert, wenn nicht vorhanden}%^^A
+% \begin{command}{\changefontsizes}
+% \changes{v2.96}{2006/08/11}{added}
+% \changes{v3.08b}{2011/02/22}{three \cs{def} replaced by \cs{edef}}
+% \changes{v3.17}{2015/02/23}{define if undefined only}
+% \changes{v3.17}{2015/02/23}{indirect definition for Falk}
% \begin{macro}{\simple@changefontsizes}
-% \changes{v3.17}{2015/02/23}{auf speziellen Wunsch von Falk}%^^A
-% \changes{v3.17}{2015/03/25}{\cs{par@updaterelative} hinzugefügt}%^^A
-% Diese Anweisung bietet berechnete Schriftgrößen als Fallbacklösung an. Das
-% optionale erste Argument ist dabei der Grundlinienabstand. Das zweite
-% Argument ist die gewünschte Grundschriftgröße.
+% \changes{v3.17}{2015/02/23}{added}
+% \changes{v3.17}{2015/03/25}{\cs{par@updaterelative} added}
+% Fallback calculation of font size settings relative to known 10\,pt values:
+% \begin{quote}
+% \cs{changefontsizes}\oarg{baseline skip}\marg{font size}
+% \end{quote}
+% If the \meta{baseline skip} is given, it is used as \len{baselineskip} for
+% \cs{normalsize} and all other baseline skips are relative to it. If it is
+% not give, it is also calculated.
% \begin{macro}{\scr@setlength}
-% \changes{v3.12}{2013/10/08}{neue Anweisung (intern)}%^^A
-% Setzt die Länge in |#1| auf den Wert |#2| plus |#3| minus |#4|, wobei
-% allerdings für |#2|, |#3| und |#4| Mindestwerte von 1\,pt verwendet werden.
-% \begin{macrocode}
+% \changes{v3.12}{2013/10/08}{added}
+% Command
+% \begin{quote}
+% \cs{scr@setlength}\marg{\LaTeX length}\marg{base dimension}\marg{plus
+% dimension}\marg{minus dimension}
+% \end{quote}
+% sets \meta{\LaTeX length} to \meta{base dimension} \texttt{plus} \meta{plus
+% dimension} \texttt{minus} \meta{minus dimension}. Minimum value for
+% \meta{plus dimension} and \meta{minus dimension} is 1\,pt.
+% \begin{macrocode}
+%<*body&(class|extend)>
\newcommand*\scr@setlength[4]{%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{#1}{#2 \@plus#3 \@minus#4}%
@@ -690,7 +586,7 @@
}
% \end{macrocode}
% \end{macro}
-% \changes{v3.17}{2015/03/10}{e-\TeX-Warnung entfernt}%^^A
+% \changes{v3.17}{2015/03/10}{\eTeX{} warning removed}
% \begin{macrocode}
\providecommand*{\simple@changefontsizes}[2][1.2\@tempdima]{%
\KOMA@kav@removekey{.%
@@ -708,15 +604,13 @@
\def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}%
\expandafter\@tempa\expandafter\@tempb\@tempb\@nnil%
% \end{macrocode}
-% Ab hier ist \cs{@tempdimc} die gewünschte Grundschriftgröße in pt und
-% \cs{@tempb} der Faktor für den Grundlinienabstand auf 2 Stellen hinter dem
-% Komma. Zunächst ist auch \cs{@tempdima} noch die geforderte
-% Grundschriftgröße und \cs{@tempdimb} der geforderte
-% Grundlinienabstand. Allerdings verändern sich \cs{@tempdima} und
-% \cs{@tempdimb} im Laufe der nachfolgenden Definitionen abhängig von der zu
-% definierenden Schriftgröße.
+% Now, \len{@temdimc} is the wanted basic font size in pt. \cs{@tempb} is the
+% factor of the baseline skip rounded to two decimals. \len{@tempdima} is also
+% the basic font size and \len{@tempdimb} the \len{baselineskip}. But
+% \len{@tempdima} and \len{tempdimb} will change in further calculations
+% depending on the wanted font size command.
%
-% Berechnungen für und Definition von \cs{normalsize}:
+% Calculation and definition of \cs{normalsize}:
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\abovedisplayskip}{%
@@ -742,7 +636,7 @@
\let\noexpand\@listi\noexpand\@listI
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{small}:
+% Calculation and definition of \cs{small}:
% \begin{macrocode}
\setlength{\@tempdima}{0.9125\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -770,7 +664,7 @@
\let\noexpand\@listi\noexpand\@listi@small
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{footnotesize}:
+% Calculation and definition of \cs{footnotesize}:
% \begin{macrocode}
\setlength{\@tempdima}{.83334\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -798,7 +692,7 @@
\let\noexpand\@listi\noexpand\@listi@footnotesize
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{scriptsize}:
+% Calculation and definition of \cs{scriptsize}:
% \begin{macrocode}
\setlength{\@tempdima}{.66667\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -807,7 +701,7 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{tiny}:
+% Calculation and definition of \cs{tiny}:
% \begin{macrocode}
\setlength{\@tempdima}{.5\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -816,7 +710,7 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{large}:
+% Calculation and definition of \cs{large}:
% \begin{macrocode}
\setlength{\@tempdima}{1.2\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -825,7 +719,7 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{Large}:
+% Calculation and definition of \cs{Large}:
% \begin{macrocode}
\setlength{\@tempdima}{1.44\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -834,7 +728,7 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{LARGE}:
+% Calculation and definition of \cs{LARGE}:
% \begin{macrocode}
\setlength{\@tempdima}{1.728\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -843,7 +737,7 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{huge}:
+% Calculation and definition of \cs{huge}:
% \begin{macrocode}
\setlength{\@tempdima}{2.074\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -852,7 +746,7 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{Huge}:
+% Calculation and definition of \cs{Huge}:
% \begin{macrocode}
\setlength{\@tempdima}{2.488\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -861,15 +755,15 @@
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Wechsel zu \cs{normalsize} und Berechnung weiterer schriftabhängigen
-% Abstände für diese Schriftgröße.
+% Activation of \cs{normalsize} and calculation of additional font size
+% depending sized.
% \begin{macrocode}
\normalsize
%<!extend> \expandafter\ifnum\scr@v@is@ge{3.17}\@nameuse{par@updaterelative}\fi
% \end{macrocode}
-% Ab hier kann nun \cs{f@size} für die Schriftgröße und \cs{f@baselineskip}
-% für den normalen Grundlinienabstand (ohne \cs{baselinestretch}) verwendet
-% werden. Allerdings ist das keine Länge!
+% After the activation of \cs{normalsize} above, we can use \cs{f@size} and
+% \cs{f@baselineskip}. We cannot use \cs{baselineskip}, because this would be
+% influenced by \cs{baselinestretch}.
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\footnotesep}{.7\@tempdimc}%
@@ -892,7 +786,7 @@
\setlength{\@dblfpbot}{\@fptop}%
\fi
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listi} und \cs{@listI}:
+% Calculation and definition of \cs{@listi} and \cs{@listI}:
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.8333\@tempdimc \@plus .3333\@tempdimc \@minus
@@ -918,7 +812,7 @@
}%
\let\@listI\@listi
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listi@small}:
+% Calculation and definition of \cs{@listi@small}:
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.75\@tempdimc \@plus .25\@tempdimc \@minus
@@ -942,7 +836,7 @@
\if@tempswa\noexpand\@list@extra\fi
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listi@footnotesize}:
+% Calculation and definition of \cs{@listi@footnotesize}:
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.5\@tempdimc \@plus .16667\@tempdimc \@minus
@@ -966,7 +860,7 @@
\if@tempswa\noexpand\@list@extra\fi
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listii}:
+% Calculation and definition of \cs{@listii}:
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
@@ -990,7 +884,7 @@
\if@tempswa\noexpand\@list@extra\fi
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listiii}:
+% Calculation and definition of \cs{@listiii}:
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
@@ -1013,7 +907,7 @@
\if@tempswa\noexpand\@list@extra\fi
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listiv}:
+% Calculation and definition of \cs{@listiv}:
% \begin{macrocode}
\@tempswafalse
\begingroup
@@ -1025,7 +919,7 @@
\if@tempswa\noexpand\@list@extra\fi
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listv}:
+% Calculation and definition of \cs{@listv}:
% \begin{macrocode}
\@tempswafalse
\begingroup
@@ -1037,7 +931,7 @@
\if@tempswa\noexpand\@list@extra\fi
}%
% \end{macrocode}
-% Berechnungen für und Definition von \cs{@listvi}:
+% Calculation and definition of \cs{@listvi}:
% \begin{macrocode}
\@tempswafalse
\begingroup
@@ -1050,13 +944,15 @@
}%
\@listi
% \end{macrocode}
-% Einige Platzierungsabstände sind ebenfalls schriftgrößenabhängig. ^^A
-% \changes{v2.97c}{2007/07/04}{\cs{intextsep} setzen}%^^A
-% \changes{v2.97c}{2007/07/04}{\cs{dblfloatsep} setzen}%^^A
-% \changes{v2.97c}{2007/07/04}{\cs{partopsep} setzen}%^^A
-% \changes{v3.12}{2013/10/08}{Berechnung einiger Größen verändert}%^^A
-% Ab Version~3.12 wird deren Berechnung korrigiert. Viele der Größen sind nun
-% nicht mehr von der Schriftgröße, sondern dem Grundlinienabstand abhängig.
+% \changes{v2.97c}{2007/07/04}{setting \cs{intextsep}}
+% \changes{v2.97c}{2007/07/04}{setting \cs{dblfloatsep}}
+% \changes{v2.97c}{2007/07/04}{setting \cs{partopsep}}
+% \changes{v3.12}{2013/10/08}{calculation of some lengths changed}
+% Calculation and setting of \len{intextsep}, \len{dblfloatsep},
+% \len{partopsep}, \len{footnotesep}, \cs{skip}\len{footins}, \len{footsep},
+% \len{textfloatsep}, \len{@fptop}, \len{@fpsep}, \len{@fpbot},
+% \len{@dblfptop}, \len{@dblfpsep}, \len{@dblfpbot}. Setting of \len{topsep}
+% and \len{parsep} is not needed because part of \cs{@listi}.
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -1083,10 +979,6 @@
\setlength{\@dblfpsep}{\@fpsep}%
\setlength{\@dblfpbot}{\@fptop}%
\scr@setlength{\partopsep}{.2\@tempdimb}{.1\@tempdimb}{.1\@tempdimb}%
-% \end{macrocode}
-% Hinweis: \cs{topsep} und \cs{parsep} werden hier nicht gesetzt, weil dies
-% bereits durch das \cs{@listi} zurvor erfolgte.
-% \begin{macrocode}
\fi
}
\scr@ifundefinedorrelax{changefontsizes}{%
@@ -1099,24 +991,25 @@
because I do not change it%
}%
}
+%</body&(class|extend)>
% \end{macrocode}
-% \end{macro}%^^A \simple@changefontsizes
-% \end{macro}%^^A \changefontsizes
-% \iffalse
-%</class|extend>
-%<*generator>
-% \fi
-% \begin{macro}{\generatefontfile}
-% \changes{v3.09}{2011/02/23}{Neu}%^^A
-% \changes{v3.17}{2015/03/26}{\cs{par@updaterelative} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Dies ist die zentrale Anweisung des neuen Generators. Es wird eine neue
-% Schriftgrößendatei ausgegeben. Der Name dieser Datei setzt sich aus dem
-% ersten obligaorischen Argument gefolgt von der Schriftgröße und der
-% Erweiterung \texttt{.clo} zusammen. Da Schriftgrößendateien, die mit
-% "`\texttt{scrsize}"' beginnen, \KOMAScript{} vorbehalten sind wird dieses
-% erste Argument verweigert.
-% \begin{macrocode}
+% \end{macro}^^A \simple@changefontsizes
+% \end{command}^^A \changefontsizes
+%
+%
+% \begin{command}{\generatefontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% \changes{v3.17}{2015/03/26}{\cs{par@updaterelative} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% The main command of the generator:
+% \begin{quote}
+% \cs{generatefontfile}\marg{base name}\oarg{baseline skip}\marg{font size}
+% \end{quote}
+% It writes a font size file ``\meta{base name}\meta{font
+% size}.clo''. \meta{base name} ``\texttt{scrbase}'' is protected and results
+% in an error message.
+% \begin{macrocode}
+%<*generator&body>
\newcommand*{\generatefontfile}[1]{%
\Ifstr{#1}{scrsize}{%
\ClassError{\KOMAClassName}{%
@@ -1134,26 +1027,16 @@
\@@@generatefontfile
}{%
% \end{macrocode}
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Das zweite Argument ist optional. Ist es angegeben, so gibt es den
-% gewünschten Zeilenabstand an. Ist es nicht angegeben, so wird der
-% Zeilenabstand |\changefontsized| überlassen. Das dritte Argument ist
-% schließlich die gewünschte Schriftgröße.
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
+% Test for optional argument and use proper helper.
% \begin{macrocode}
\kernel@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}%
}%
}
% \end{macrocode}
-% \begin{macro}{\@generatefontfile}
-% \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A
-% \begin{macro}{\@@generatefontfile}
-% \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A
-% Diese beiden Hilfsmakros werden benötigt, um Aufrufe von |\generatefontfile|
-% mit oder ohne optionales, zweites Argument zu behandeln. In jedem Fall wird
-% die gewünschte Schriftgröße innerhalb einer Gruppe mit Hilfe von
-% |\changefontsizes| bestimmt und dann eine Datei mit den dabei ermittelten
-% Einstellungen ausgegeben.
+% \begin{macro}{\@generatefontfile,\@@generatefontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% The helper macros are needed, because we are not using \pkg{xparse} currently.
% \begin{macrocode}
\newcommand*{\@generatefontfile}{}
\def\@generatefontfile#1[#2]#3{%
@@ -1173,37 +1056,28 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\@@@generatorfontfile}
-% \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A
-% Dieses Hilfsmakro wird hingegen im Fehlerfall aufgerufen, um die Ausgabe
-% einer Schriftgrößendatei zu verhindern.
+% \end{macro}^^A \@generatefontfile,\@@generatefontfile
+% \begin{macro}{\@@@generatefontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% Dummy used in error case to eat an optional and a mandatory argument.
% \begin{macrocode}
\newcommand*{\@@@generatefontfile}[2][]{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@@@generatefontfile
% \begin{macro}{\@fontfile}
-% \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A
-% Da später die Verwendung von |\generatefontfile| noch auf die Präambel
-% beschränkt werden wird, ist es kein Problem hier |\@mainaux| für die Ausgabe
-% zu missbrauchen. Das funktioniert aber nur, weil |\@mainaux| erst innerhalb
-% von |\begin{document}| tatsächlich geöffnet wird. Die Dateisparsamkeit an
-% dieser Stelle ist also eigentlich ein ziemlich unsauberer Hack!
+% \changes{v3.09}{2011/02/23}{added}
+% Because \cs{generatefontfile} is allowed in the document preamble only, when
+% the main aux file is not yet opened, we can use \cs{@mainaux} as temporary
+% file handle.
% \begin{macrocode}
\newcommand*{\@fontfile}{}
\let\@fontfile\@mainaux
% \end{macrocode}
% \begin{macro}{\generate@fontfile}
-% \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A
-% \changes{v3.16a}{2015/02/11}{\cs{footnotesize} korrigiert}
-% Es wird nun eine Schriftgrößendatei ausgegeben. Dabei werden die aktuellen
-% Einstellungen verwendet. Dabei wird die Tatsache ausgenutzt, dass diese
-% Anweisung immer innerhalb einer Gruppe aufgerufen wird. Das erste Argument
-% ist der Dateinamenpräfix (also so etwas wie "`\texttt{scrsize}"', das zweite
-% Argument die gewünschte Schriftgröße. Es ist zu beachten, dass alle Werte in
-% der Datei in pt angegeben werden, auch wenn die gewünschte Schriftgröße eine
-% ganz andere Einheit besitzt. Das macht schlicht die Arbeit etwas einfacher.
+% \changes{v3.09}{2011/02/23}{added}
+% \changes{v3.16a}{2015/02/11}{\cs{footnotesize} fixed}
+% Output of the font size file using the current font setting. It has to be
+% used inside a local group!
% \begin{macrocode}
\newcommand*{\generate@fontfile}[2]{%
\def\@ind{\space\space}%
@@ -1451,53 +1325,21 @@
\immediate\closeout\@fontfile
}
\@onlypreamble\generatefontfile
+%</generator&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \iffalse
-%</generator>
-%<*class|extend>
-% \fi
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \generate@fontfile
+% \end{macro}^^A \@fontfile
+% \end{command}^^A \generatefontfile
%
-% Zunächst wird die gewünschte Größe, die in \cs{@ptsize} abgelegt ist, als
-% Länge ermittelt. In \cs{@tempa} wird die ursprünglich gewünschte Größe
-% abgelegt, damit zwischen \texttt{10pt}, \texttt{10} und \texttt{10dd}
-% unterschieden werden kann. In \cs{@tempb} wird hingegen die Größe in pt
-% abgelegt, damit die Standard-Dateien verwendet werden können. Dann wird
-% \cs{@ptsize} schon einmal richtig eingestellt.
-% \begin{macrocode}
-%<*!extend>
+% Now, we want to initially load the font size file into the class. First we
+% have to convert the \cs{@ptsize} to a length. Note, \cs{@ptsize} can already
+% have a unit or the unit is \texttt{pt}. The original value is stored in
+% \cs{@tempa} to be able to use a font size files with the original
+% unit. \cs{@tempb} is the size in \texttt{pt} without the \texttt{pt} to be
+% able to use a standard font size file. After this, \cs{@ptsize} is reduced
+% by 10\,pt and the unit is cut off.
+% \begin{macrocode}
+%<*class&body>
\expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil
\edef\@tempa{\@ptsize}%
\setlength{\@tempdimb}{\@tempdima}%
@@ -1505,11 +1347,9 @@
\addtolength{\@tempdimb}{-10\p@}%
\edef\@ptsize{\strip@pt\@tempdimb}%
% \end{macrocode}
-% Jetzt wird zunächst versucht, ob eine Datei
-% "`\texttt{\cs{fontsizefilebase}\cs{@tempa}.clo}"' vorhanden ist, also eine,
-% bei der die ursprünliche Einheit im Namen angegeben ist. Wenn das der Fall
-% ist, wird diese verwendet. Wenn nicht wird das Ganze für \cs{@tempb} um die
-% Einheit pt erweitert wiederholt.
+% Now, let's try to input a file
+% ``\file{\cs{fontsizefilebase}\cs{@tempa}.clo}''. This is a file with the
+% original unit.
% \begin{macrocode}
\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{%
\ClassInfo{\KOMAClassName}{%
@@ -1517,6 +1357,10 @@
\KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
}{%
+% \end{macrocode}
+% If this is not successful, try
+% ``\file{\cs{fontsizefilebase}\cs{@tempb}pt.clo}''.
+% \begin{macrocode}
\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
\ClassInfo{\KOMAClassName}{%
File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak
@@ -1525,8 +1369,8 @@
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb pt}%
}{%
% \end{macrocode}
-% Wurde bis hier noch keine Datei geladen, wird nun versucht, die
-% Größendateien der Standardklassen zu verwenden.
+% If this is still not successful try a font size file of the standard
+% classes.
% \begin{macrocode}
%<*book>
\InputIfFileExists{bk\@tempb.clo}{%
@@ -1543,46 +1387,43 @@
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb}%
}{%
% \end{macrocode}
-% Sind auch diese Dateien nicht vorhanden, so wird als Fallback eine
-% Berechnung der Schriftgrößen verwendet. Es sei darauf hingewiesen, dass
-% dabei auch \cs{@tempa}, \cs{@tempb} und \cs{@ptsize} neu gesetzt werden.
+% If this is still not successful, use the fallback calculation.
% \begin{macrocode}
\edef\@tempa{%
\noexpand\changefontsizes{\@tempa}%
\noexpand\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
}\@tempa
-% \end{macrocode}
-% Damit sollten nun die Schriftgrößen eingestellt sein.
-% \begin{macrocode}
}%
%<book> }%
}%
}
-%</!extend>
-%</class|extend>
-%</body>
+%</class&body>
% \end{macrocode}
%
%
-% \subsection{"`Alte"' Font-Auswahlbefehle}
+% \subsection{Deprecated old font selection commands}
%
% \begin{option}{enabledeprecatedfontcommands}
-% \changes{v3.20}{2015/10/14}{neue (veraltete) Option}%^^A
-% Diese Option ist bereits bei ihrer Definition veraltet. Sie stellt quasi die
-% nächste Eskalation für die veralteten Font-Auswahlbefehle dar. Man kann mit
-% ihrer Hilfe notfalls noch einmal die alten Befehle zurück holen. Dabei wird
-% in der Voreinstellung weiterhin eine Warnung ausgegeben.
+% \changes{v3.20}{2015/10/14}{added}
+% \changes{v3.20}{2015/10/14}{deprecated}
+% This option is deprecated by specification already when it has been defined
+% first, because it is used to define deprecated old font selection commands,
+% that should not be used any longer. So the usage of this options always
+% results in a warning. It can be used at load time only.
% \begin{macro}{\scr@defineobsoletefonts}
-% \changes{v3.20}{2015/10/14}{neue (veraltete) Anweisung (intern)}%^^A
-% Ãœber diese Anweisung wird eingestellt, ob die veralteten Befehle mit
-% Fehlermeldung, Warnung, Info oder gar nicht gemeldet werden.
-% Negative Werte bedeuten, dass die Befehle nicht definiert werden. Null steht
-% für interne Fehlermeldung. Eins ist eine Warnung. Zwei ist eine Info und
-% darüber hinaus werden die Befehle einfach definiert. Voreingestellt ist
-% derzeit noch Null. In naher Zukunft wird das aber -1 werden.
-% \begin{macrocode}
-%<*option>
-%<*class>
+% \changes{v3.20}{2015/10/14}{added}
+% \changes{v3.20}{2015/10/14}{deprecated}
+% Depending on this command
+% \begin{itemize}
+% \item[0] an internal error message,
+% \item[1] a warning,
+% \item[2] an info message,
+% \item[3] no message
+% \end{itemize}
+% is added to the usage of any deprecated font command. Values less than 0
+% result in not defining the commands anyhow.
+% \begin{macrocode}
+%<*class&option>
\DeclareOption{enabledeprecatedfontcommands}{%
\ClassWarningNoLine{\KOMAClassName}{%
deprecated option `enabledeprecatedfontcommands'.\MessageBreak
@@ -1601,22 +1442,18 @@
\BeforePackage{tex4ht}{%
\let\scr@defineobsoletefonts\thr@@
}
-%</class>
-%</option>
+%</class&option>
% \end{macrocode}
-% \end{macro}%^^A \scr@degineobsoletefonts
-% \end{option}%^^A enabledeprecatedfontscommands
+% \end{macro}^^A \scr@degineobsoletefonts
+% \end{option}^^A enabledeprecatedfontscommands
%
% \begin{macro}{\scr@DeclareOldFontCommand}
-% \changes{v3.12}{2013/10/31}{neu}%^^A
-% \changes{v3.20}{2015/10/14}{veraltet eskaliert}%^^A
-% Diese Anweisung arbeitet prinzipiell wie die \LaTeX-Kern-Anweisung
-% \cs{DeclareOldFontCommand}, wirft aber zusätzlich mit Warnungen um sich, um
-% dem Anwender die Verwendung der alten Befehle zu versauern.
-% \begin{macrocode}
-%<*body>
-%<*class|extend>
-%<*!extend>
+% \changes{v3.12}{2013/10/31}{added}
+% \changes{v3.20}{2015/10/14}{deprecated escalation}
+% The command is similar to \cs{DeclareOldFontCommand} but adds a warning,
+% info, error to the commands.
+% \begin{macrocode}
+%<*class&body>
\newcommand*{\scr@DeclareOldFontCommand}[3]{%
\ifnum\scr@defineobsoletefonts<\z@\else
\ifnum\scr@defineobsoletefonts>\tw@
@@ -1632,13 +1469,12 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ErrorWarningInfo}
-% \changes{v3.20}{2015/10/14}{neu (intern)}%^^A
-% \changes{v3.22}{2016/09/28}{message fixed}%^^A
+% \changes{v3.20}{2015/10/14}{added}
+% \changes{v3.22}{2016/09/28}{message fixed}
% \begin{macrocode}
\DeclareRobustCommand*{\scr@ErrorWarningInfo}[2]{%
% \end{macrocode}
-% Wenn \cs{scr@defineobsoletefonts} Null ist, wird eine Fehlermeldung
-% ausgegeben.
+% \cs{scr@defineobsoletefonts} = 0 means an error message:
% \begin{macrocode}
\ifnum \scr@defineobsoletefonts=\z@
\ClassError{\KOMAClassName}{undefined old font command `\string#1'}{%
@@ -1672,17 +1508,17 @@
\else
\ifcase \scr@defineobsoletefonts
% \end{macrocode}
-% Bei Eins gibt es eine Warnung:
+% \cs{scr@defineobsoletefonts} = 0 means a warning:
% \begin{macrocode}
\or
\expandafter\ClassWarning
% \end{macrocode}
-% Bei Zwei gibt es eine Info:
+% \cs{scr@defineobsoletefonts} = 0 means an info message:
% \begin{macrocode}
\or
\expandafter\ClassInfo
% \end{macrocode}
-% Sonst gibt es nichts:
+% All other values mean no message:
% \begin{macrocode}
\else
\expandafter\@gobbletwo
@@ -1709,43 +1545,21 @@
}%
\fi
}
-%</!extend>
+%</class&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@OldFontErrorWarningInfo
-% \end{macro}%^^A \scr@DeclareOldFontCommand
-%
-% \begin{macro}{\rm}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\sf}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\tt}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\bf}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\it}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\sl}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\sc}
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% \begin{macro}{\sfb}
-% \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch}%^^A
-% \changes{v2.3a}{1995/07/08}{keine Unterscheidung mehr für den
-% Kompatibilitätsmodus}%^^A
-% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A
-% Um die Umstellung von \LaTeX\ auf \LaTeXe\ zu erleichtern, gibt es
-% die alten Font-Auswahlbefehle \cs{rm}, \cs{sf}, \cs{tt}, \cs{bf},
-% \cs{it}, \cs{sl} und \cs{sc} auch in den Klassen. Es ist zu
-% beachten, dass diese Befehle hier nach dem alten
-% Fontauswahlverfahren arbeiten. Es werden also immer alle Parameter
-% zugleich geändert. Somit ist zu empfehlen, dass statt dieser Befehle
-% zukünftig in der Regel die neuen \cs{text\dots}-Befehle verwendet
-% werden.
+% \end{macro}^^A \scr@OldFontErrorWarningInfo
+% \end{macro}^^A \scr@DeclareOldFontCommand
%
-% Der aus der \textsf{Script 2.0}-Familie bekannte Befehl \cs{sfb} ist
-% hier ebenfalls definiert.
-% \begin{macrocode}
-%<*!extend>
+% \begin{command}{\rm,\sf,\tt,\bf,\it,\sl,\sc}
+% \changes{v3.12}{2013/10/13}{deprecated}
+% \begin{command}{\sfb}
+% \changes{v2.2c}{1995/05/25}{not in math mode}
+% \changes{v2.3a}{1995/07/08}{independent from compatibility mode}
+% \changes{v3.12}{2013/10/13}{deprecated}
+% The old font selection commands from \LaTeX~2.09. They are not supported any
+% more. The same for the \pkg*{Script 2.0} command \cs{sfb}.
+% \begin{macrocode}
+%<*class&body>
\scr@DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\scr@DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\scr@DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
@@ -1755,56 +1569,36 @@
\scr@DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\scr@DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{%
\@nomath\sfb}
-%</!extend>
+%</class&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\cal}
-% \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern}%^^A
-% Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun
-% neu und gleich robust deklariert. Dafür fällt \cs{pcal} weg.
-% \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt}%^^A
-% \begin{macro}{\mit}
-% \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern}%^^A
-% Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun
-% neu und gleich robust deklariert. Dafür fällt \cs{pmit} weg.
-% \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt}%^^A
+% \end{command}
+% \end{command}
%
-% Die beiden Befehle \cs{cal} und \cs{mit} war bis zur \LaTeX-Version
-% vom 1.12.1994 patch level 3 noch im Kernal definiert. Jetzt sind die
-% beiden den Klassen überlassen. Hier ist die Definition aus den
-% Standard-classes übernommen.
+% \begin{command}{\cal,\mit}
+% \changes{v2.3}{1995/06/25}{here instead in the \LaTeX{} kernel}
+% \changes{v2.3g}{1996/01/14}{not needed braces removed}
% \begin{macrocode}
-%<*!extend>
+%<*class&body>
\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}
-%</!extend>
+%</class&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</class|extend>
-% \fi
%
-% \subsection{Setzen der Schrift eines Elements}
+% \subsection{Font elements}
%
-% \iffalse
-%<*scrkbase>
-% \fi
%
-% \begin{macro}{\IfExistskomafont}
-% \changes{v3.15}{2014/11/21}{neue Anweisung}%^^A
-% Führe das zweite Argument aus, wenn ein Fontelement existiert, sonst das
-% dritte.
-% \begin{macrocode}
+% \begin{command}{\IfExistskomafont}
+% \changes{v3.15}{2014/11/21}{added}
+% Command
+% \begin{quote}
+% \cs{IfExistskomafont}\marg{font element}\marg{then code}\marg{else code}
+% \end{quote}
+% executes \meta{then code} if the font element \meta{font element} exists
+% either as a real font element or an alias. Otherwise \meta{else code} is used.
+% \begin{macrocode}
+%<*scrkbase&body>
\newcommand*{\IfExistskomafont}[1]{%
\scr@ifundefinedorrelax{scr@fnt@#1}{%
\scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
@@ -1813,12 +1607,16 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \IfExistskomafont
%
-% \begin{macro}{\IfIsAliaskomafont}
-% \changes{v3.25}{2017/12/08}{neue Anweisung}%^^A
-% Führe das zweite Argument aus, wenn ein Fontelement ein Alias is, sonst das
-% dritte.
+% \begin{command}{\IfIsAliaskomafont}
+% \changes{v3.25}{2017/12/08}{added}
+% Command
+% \begin{quote}
+% \cs{IfIsAliaskomafont}\marg{font element}\marg{then code}\marg{else code}
+% \end{quote}
+% executes \meta{then code} if the font element \meta{font element} is an alias.
+% Otherwise \meta{else code} is used.
% \begin{macrocode}
\newcommand*{\IfIsAliaskomafont}[1]{%
\scr@ifundefinedorrelax{scr@fnt@#1}{%
@@ -1828,13 +1626,19 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \IfIsAliaskomafont
%
-% \begin{macro}{\setkomafont}
-% \changes{v2.8o}{2001/09/14}{neu}%^^A
-% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}
-% Mit Hilfe dieses Makros kann die Schriftart von
-% \KOMAScript-Elementen gesetzt werden.
+% \begin{command}{\setkomafont}
+% \changes{v2.8o}{2001/09/14}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% Command
+% \begin{quote}
+% \cs{setkomafont}\marg{element}\marg{font settings}
+% \end{quote}
+% sets the \meta{font settings} of font element \meta{element}. Setting of an
+% unknown font element results in an error. Setting of an alias font element
+% results in an info an the setting of the real element. Note: \meta{font
+% settings} should be only font selection commands.
% \begin{macrocode}
\newcommand*{\setkomafont}[2]{%
\@ifundefined{scr@fnt@#1}{%
@@ -1866,13 +1670,19 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\addtokomafont}
-% \changes{v2.8p}{2001/09/22}{neu}%^^A
-% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}
-% Dieses Makro funktioniert fast wie obiges, allerdings fügt es der
-% vorhandenen Definition etwas an. Dazu wird \cs{l@addto@macro} aus
-% \textsf{scrkbase} verwendet.
+% \end{command}^^A \setkomafont
+%
+% \begin{command}{\addtokomafont}
+% \changes{v2.8p}{2001/09/22}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% Command
+% \begin{quote}
+% \cs{addtokomafont}\marg{element}\marg{font settings}
+% \end{quote}
+% adds the \meta{font settings} to the settings of font element
+% \meta{element}. Setting of an unknown font element results in an
+% error. Setting of an alias font element results in an info an the setting of
+% the real element.
% \begin{macrocode}
\newcommand*{\addtokomafont}[2]{%
\@ifundefined{scr@fnt@#1}{%
@@ -1906,14 +1716,17 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \addtokomafont
%
-% \begin{macro}{\usekomafont}
-% \changes{v2.8p}{2001/09/28}{neu}%^^A
-% \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert}%^^A
-% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}
-% Mit Hilfe dieses Makros kann auf die Schriftart von
-% \KOMAScript-Elementen umgeschaltet werden.
+% \begin{command}{\usekomafont}
+% \changes{v2.8p}{2001/09/28}{added}
+% \changes{v2.96}{2006/08/18}{alias usage fixed}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% Command
+% \begin{quote}
+% \cs{usekomafont}\marg{element}
+% \end{quote}
+% activates the font settings of the font \meta{element}.
% \begin{macrocode}
\newcommand*{\usekomafont}[1]{%
\@ifundefined{scr@fnt@#1}{%
@@ -1943,38 +1756,32 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \usekomafont
%
-% \selectlanguage{english}
-% \begin{macro}{\usesizeofkomafont}
-% \changes{v3.12}{2013/03/30}{new}
-% \changes{v3.17}{2015/04/03}{new more robust implementation}
-% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel
-% change}
-% \begin{macro}{\usefamilyofkomafont}
+%
+% \begin{command}{\usesizeofkomafont}
% \changes{v3.12}{2013/03/30}{new}
% \changes{v3.17}{2015/04/03}{new more robust implementation}
% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \begin{macro}{\useseriesofkomafont}
+% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel change}
+% \begin{command}{\usefamilyofkomafont,\useseriesofkomafont}
% \changes{v3.12}{2013/03/30}{new}
% \changes{v3.17}{2015/04/03}{new more robust implementation}
% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \begin{macro}{\useshapeofkomafont}
+% \begin{command}{\useshapeofkomafont}
% \changes{v3.12}{2013/03/30}{new}
% \changes{v3.16a}{2015/02/20}{fix of macro name}
% \changes{v3.17}{2015/04/03}{new more robust implementation}
% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \begin{macro}{\useencodingofkomafont}
+% \begin{command}{\useencodingofkomafont}
% \changes{v3.12}{2013/03/30}{new}
% \changes{v3.17}{2015/04/03}{new more robust implementation}
% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \begin{macro}{\usefontofkomafont}
+% \begin{command}{\usefontofkomafont}
% \changes{v3.12}{2013/03/30}{new}
% \changes{v3.17}{2015/04/03}{new more robust implementation}
% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel
-% change}
+% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel change}
% Sometimes not the whole font but only single elements of a font is
% wanted.
% \begin{macrocode}
@@ -2023,8 +1830,7 @@
% \changes{v3.12}{2013/03/30}{new (internal)}
% \changes{v3.17}{2015/04/03}{new more robust implementation}
% \changes{v3.24}{2017/05/06}{new more robust implementation}
-% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel
-% change}
+% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel change}
% Helper macro for all commands above despite the first and the last one.
% \begin{macrocode}
\newcommand*{\use@ofkomafont}[2]{%
@@ -2042,25 +1848,13 @@
\selectfont
}
% \end{macrocode}
-% \selectlanguage{ngerman}
% \begin{macro}{\g@scr@usefont}
-% \changes{v3.17}{2015/04/03}{neu (intern)}%^^A
-% \changes{v3.24}{2017/05/06}{entfernt}%^^A
-% \end{macro}%^^A \g@scr@usefont
-% \begin{macro}{\g@scr@f@encoding}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
-% \begin{macro}{\g@scr@f@family}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
-% \begin{macro}{\g@scr@f@series}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
-% \begin{macro}{\g@scr@f@shape}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
-% \begin{macro}{\g@scr@f@size}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
-% \begin{macro}{\g@scr@f@baselineskip}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
-% \begin{macro}{\g@scr@f@linespread}
-% \changes{v3.24}{2017/05/06}{neu (intern)}%^^A
+% \changes{v3.17}{2015/04/03}{added}
+% \changes{v3.24}{2017/05/06}{removed}
+% \end{macro}^^A \g@scr@usefont
+% \begin{macro}{\g@scr@f@encoding,\g@scr@f@family,\g@scr@f@series,\g@scr@f@shape,
+% \g@scr@f@size,\g@scr@f@baselineskip,\g@scr@f@linespread}
+% \changes{v3.24}{2017/05/06}{added}
% \begin{macrocode}
\newcommand*{\g@scr@f@encoding}{}\let\g@scr@f@encoding\f@encoding
\newcommand*{\g@scr@f@family}{}\let\g@scr@f@family\f@family
@@ -2070,55 +1864,44 @@
\newcommand*{\g@scr@f@baselineskip}{}\let\g@scr@f@baselineskip\f@baselineskip
\newcommand*{\g@scr@f@linespread}{}\let\g@scr@f@linespread\f@linespread
% \end{macrocode}
-% \end{macro}%^^A \g@scr@f@linespread
-% \end{macro}%^^A \g@scr@f@family
-% \end{macro}%^^A \g@scr@f@series
-% \end{macro}%^^A \g@scr@f@shape
-% \end{macro}%^^A \g@scr@f@size
-% \end{macro}%^^A \g@scr@f@baselineskip
-% \end{macro}%^^A \g@scr@f@linespread
+% \end{macro}^^A \g@scr@f@encoding … \g@scr@f@linespread
% \begin{macro}{\scr@komafontrelaxlist}
-% \changes{v3.17}{2015/04/03}{neu (intern)}%^^A
-% \changes{v3.24}{2017/05/05}{\cs{uppercase} und \cs{lowercase} entfernt}%^^A
-% \changes{v3.24}{2017/05/05}{\cs{MakeUppercase} und \cs{MakeLowercase} nach
-% \cs{scr@komafontonearglist} verschoben}%^^A
-% Hilfsmakro mit einer |\do|-Liste aller Makros, die in obigen Font-Makros vor
-% der Anwendung des Fonts |\relax| verwenden sollen.
+% \changes{v3.17}{2015/04/03}{added}
+% \changes{v3.24}{2017/05/05}{\cs{uppercase} and \cs{lowercase} removed}
+% \changes{v3.24}{2017/05/05}{\cs{MakeUppercase} and \cs{MakeLowercase} moved to
+% \cs{scr@komafontonearglist}}
+% A \cs{do} list of all macros, that should become \cs{relax} in the previous
+% commands.
% \begin{macrocode}
\newcommand*{\scr@komafontrelaxlist}{%
\do\normalcolor
}
% \end{macrocode}
-% \end{macro}%^^A \scr@komafontrelaxlist
+% \end{macro}^^A \scr@komafontrelaxlist
% \begin{macro}{\scr@komafontgobblelist}
-% \changes{v3.19}{2015/08/20}{neu (intern)}%^^A
-% Wie \cs{scr@komafontrelaxlist} nur dass |\@gobble| statt |\relax| verwendet
-% wird.
+% \changes{v3.19}{2015/08/20}{added}
+% Like \cs{scr@komafontrelaxlist} but with \cs{@gobble} instead of \cs{relax}.
% \begin{macrocode}
\newcommand*{\scr@komafontgobblelist}{%
\do\color
}
% \end{macrocode}
-% \end{macro}%^^A \scr@komafontgobblelist
+% \end{macro}^^A \scr@komafontgobblelist
% \begin{macro}{\scr@komafontonearglist}
-% \changes{v3.24}{2017/05/05}{neu (intern)}%^^A
-% Hilfsmakro mit einer |\do|-Liste aller Makros, die in obige Font-Makros
-% vor der Anwendung des Fonts |\@firstofone| verwenden sollen.
+% \changes{v3.24}{2017/05/05}{added}
+% Like \cs{scr@komafontgobblelist} but with \cs{@firstofone} instead of
+% \cs{@gobble}.
% \begin{macrocode}
\newcommand*{\scr@komafontonearglist}{%
\do\MakeUppercase \do\MakeLowercase
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@komafontonearglist
% \begin{macro}{\scr@prepareforkomafont}
-% \changes{v3.17}{2015/04/03}{neu (intern)}%^^A
-% \changes{v3.19}{2015/08/20}{abarbeiten von \cs{scr@komafontgobblelist}}%^^A
-% \changes{v3.24}{2017/05/05}{abarbeiten von \cs{scr@komafontonearglist}}%^^A
-% Hilfsmakro, das die Vorbereitungen für die obigen Font-Makros trifft. In der
-% Voreinstellung ist das lediglich die Anwendung der |\do|-Liste, so dass die
-% dort angegebenen Makros alle |\relax| bzw. |\@gobble| werden. Da die
-% Anweisung dazu |\do| umdefiniert, sollte die Anweisung immer in einer Gruppe
-% eingeschlossen werden.
+% \changes{v3.17}{2015/04/03}{added}
+% \changes{v3.19}{2015/08/20}{using \cs{scr@komafontgobblelist}}
+% \changes{v3.24}{2017/05/05}{using \cs{scr@komafontonearglist}}
+% Process all the \cs{do} lists. Note: Should be encapsulated into a local group.
% \begin{macrocode}
\newcommand*{\scr@prepareforkomafont}{%
\long\def\do##1{\let##1\relax}\scr@komafontrelaxlist
@@ -2126,71 +1909,59 @@
\long\def\do##1{\let##1\@firstofone}\scr@komafontonearglist
}
% \end{macrocode}
-% \end{macro}%^^A \scr@prepareforkomafont
-% \begin{macro}{\addtokomafontrelaxlist}
-% \changes{v3.17}{2015/04/03}{Neu}
-% Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste
-% hinzuzufügen.
+% \end{macro}^^A \scr@prepareforkomafont
+% \begin{command}{\addtokomafontrelaxlist}
+% \changes{v3.17}{2015/04/03}{added}
+% Adds exactly one macro/command to \cs{scr@komafontrelaxlist}.
% \begin{macrocode}
\newcommand*{\addtokomafontrelaxlist}[1]{%
\l@addto@macro\scr@komafontrelaxlist{\do#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \addtokomafontrelaxlist
-% \begin{macro}{\addtokomafontgobblelist}
-% \changes{v3.19}{2015/08/20}{Neu}
-% Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste
-% hinzuzufügen.
+% \end{command}^^A \addtokomafontrelaxlist
+% \begin{command}{\addtokomafontgobblelist}
+% \changes{v3.19}{2015/08/20}{added}
+% Adds exactly one macro/command to \cs{scr@komafontgobblelist}.
% \begin{macrocode}
\newcommand*{\addtokomafontgobblelist}[1]{%
\l@addto@macro\scr@komafontgobblelist{\do#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \addtokomafontgobblelist
-% \begin{macro}{\addtokomafontonearglist}
-% \changes{v3.24}{2017/05/05}{Neu}
-% Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste
-% hinzuzufügen
+% \end{command}^^A \addtokomafontgobblelist
+% \begin{command}{\addtokomafontonearglist}
+% \changes{v3.24}{2017/05/05}{added}
+% Adds exactly one macro/command to \cs{scr@komafontonearglist}.
% \begin{macrocode}
\newcommand*{\addtokomafontonearglist}[1]{%
\l@addto@macro\scr@komafontonearglist{\do#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \addtokonafontonearglist
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \addtokonafontonearglist
+% \end{macro}^^A \use@ofkomafont
+% \end{command}^^A \usefontofkomafont
+% \end{command}^^A \useencodingofkomafont
+% \end{command}^^A \useshapeofkomafont
+% \end{command}^^A \usefamilyofkomafont,\useseriesofkomafont
+% \end{command}^^A \usesizeofkomafont
%
-% Um dann ein Element zu definieren, definiert man zunächst ein
-% Makro, das die Schriftart enthält. Dann definiert man
-% \cs{scr@fnt@\emph{Elementname}}. Wobei der Inhalt dieses Makros das
-% Makro ist, das die Schriftart speichert. Damit ist das Element
-% definiert. Soll ein Element durch ein anderes Element gesteuert
-% werden, so definiert man stattdessen
-% \cs{scr@fnt@instead@\emph{Elementname}}, wobei der Inhalt des Makros
-% dann der Name jenes anderen Elements ist. Soll beim Ändern der
-% Schrift eines Elements eine zusätzliche Warnung ausgegeben werden,
-% so kann der Text dieser Warnung in
-% \cs{scr@fnt@wrn@\emph{Elementname}} abgelegt werden. Die Warnung wird dann
-% als Befehl mit einem Argument definiert. Also alles
-% eigentlich ganz einfach. Damit es noch einfacher wird, ein paar
-% Hilfsmakros:
%
-% \begin{macro}{\newkomafont}
-% \changes{v2.95}{2004/07/21}{neu}%^^A
-% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}
-% \changes{v3.11c}{2013/02/18}{die Warnung hat ein Argument}%^^A
-% \changes{v3.25}{2017/12/08}{Warnung, wenn bereits als Alias definiert}%^^A
-% Mit \cs{newkomafont} wird ein neues Element definiert. Das erste optionale
-% Argument ist dabei die optionale Warnung. Ist dieses nicht gesetzt oder
-% \cs{relax}, so wird keine Warnung definiert. Das erste obligatorische
-% Argument ist der Name des Elements. Als letztes folgt die Voreinstellung für
-% die Schrift dieses Elements. Als Fontmakro wird übrigens
-% \cs{@\emph{Elementname}font} definiert.
+% \begin{command}{\newkomafont}
+% \changes{v2.95}{2004/07/21}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% \changes{v3.11c}{2013/02/18}{the warning needs an argument}
+% \changes{v3.25}{2017/12/08}{warn if already exists as an alias}
+% Command
+% \begin{quote}
+% \cs{newkomafont}\oarg{warning}\marg{element}\marg{font settings}
+% \end{quote}
+% defines a new font \meta{element} with the given \meta{font settings} as
+% default. The optional \meta{warning} is shown whenever the font setting of
+% the element is changed, but not when the element is used. Internally a macro
+% \cs{@\meta{element}font} is defined with the \meta{font settings}. An
+% additional macro \cs{scr@fnt@\meta{element}} is defined to just execute
+% \cs{@meta{element}font}. But you also can define \cs{scr@fnt@\meta{element}}
+% to use another internal font storage macro. So several elements can share
+% the same font settings.
% \begin{macrocode}
\newcommand*{\newkomafont}[3][\relax]{%
\scr@ifundefinedorrelax{scr@fnt@instead@#2}{}{%
@@ -2211,13 +1982,17 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\aliaskomafont}
-% \changes{v2.95}{2004/07/21}{neu}%^^A
-% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}%^^A
-% \changes{v3.25}{2017/12/08}{Warnung, wenn bereits als Font definiert}%^^A
-% Mit \cs{aliaskomafont} wird hingegen einfach ein Alias definiert. Dieser
-% Befehl kennt zwei Argumente: der Name des Elements und der Names des
-% Elements, das stattdessen verwendet werden soll.
+% \begin{command}{\aliaskomafont}
+% \changes{v2.95}{2004/07/21}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% \changes{v3.25}{2017/12/08}{warning if element is already defined}
+% Another possibility to share fonts is to define an
+% alias by defining \cs{scr@fnt@instead@\meta{element}} with the name of
+% another element. This can be done using
+% \begin{quote}
+% \cs{aliaskomafont}\marg{alias}\marg{element}
+% \end{quote}
+% It defines \marg{alias} to be an alias of \meta{element}.
% \begin{macrocode}
\newcommand*{\aliaskomafont}[2]{%
\scr@ifundefinedorrelax{scr@fnt@#1}{}{%
@@ -2234,24 +2009,20 @@
#2%
}%
}
+%</scrkbase&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
-%</scrkbase>
-% \fi
-%
-% \iffalse
-%</body>
-% \fi
+% \end{command}
+% \end{command}
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-fonts.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx b/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx
index a13091ba47..4866277af2 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-footnotes.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-footnotes.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-footnotes.dtx 3570 2021-02-24 10:08:31Z kohm $
+%%% From File: $Id: scrkernel-footnotes.dtx 3711 2022-02-16 09:57:02Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-02-24 11:08:31 +0100 (Wed, 24 Feb 2021) $
+ \filedate$Date: 2022-02-16 10:57:02 +0100 (Mi, 16. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1962 $
+ \filerevision$Revision: 3711 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-footnotes.dtx}%
@@ -73,60 +36,66 @@
(footnotes)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-footnotes.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-footnotes.dtx}
\end{document}
%</dtx>
-% \fi
-%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2002/07/01}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
-%
-% \section{Fußnoten}
-%
-% Die Fußnotengestaltung in \KOMAScript{} basiert auf einem Hinweis
-% aus dem dokumentierten \LaTeX-Kern.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \fi^^A meta-comment
+%
+% \changes{v2.95}{2002/07/01}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/16}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/16}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-footnotes.dtx}
+% \title{Index Code of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The code for footnotes with \KOMAScript{} classes in
+% \file{scrkernel-footnotes.dtx} is somehow different from the code of the
+% standard classes. It provides several options and other configuration
+% possibilities. The initial change bases on a comment in the documented
+% \LaTeX{} kernel, \file{source2e.pdf}. But this was long ago and almost
+% everything has been changed meanwhile.
+% \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}
%
-% \iffalse
-%<*option>
-% \fi
+% \section{Implementation of Footnotes}
%
-% \subsection{Option}
+% \subsection{Options}
%
% \begin{option}{footnotes}
-% \changes{v2.98c}{2008/02/01}{Neue Option für Mehrfachfußnoten}%^^A
-% \changes{v3.10}{2011/09/13}{\cs{let} durch \cs{def} ersetzt, damit die
-% Option auch als Klassenoption funktioniert}%^^A
-% \changes{v3.12}{2013/03/05}{Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.17}{2015/03/11}{interne Wert-Speicherung}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Mehrfachfußnoten gibt es dann, wenn zu einer Textstelle mehrere Fußnoten
-% hintereinander gesetzt werden. Normalerweise werden die einfach ohne
-% Abstand hintereinander geklatscht. Man kann dann aber die beiden Fußnoten
-% 1 und 2 beispielsweise nicht von der Fußnote 12 unterscheiden. Besser ist
-% es, wenn mehrere Fußnoten automatisch durch ein Trennzeichen getrennt
-% werden. Die Funktion ist \textsf{footmisc} entnommen und sollte inklusive
-% Ein- und Ausschalten auch zusammen mit diesem Paket funktionieren.
+% \changes{v2.98c}{2008/02/01}{new value \opt{multiple}}
+% \changes{v3.10}{2011/09/13}{\cs{let} replaced by \cs{def} fixes the using as
+% a class option}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
+% \changes{v3.17}{2015/03/11}{internal value storage}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Multiple footnotes mean, that there are more than one footnote at the same
+% place in the text. Usually this would result in a sequence of numbers (or
+% other footnote signes) not seperated anyhow. So you would not be able, e.g.,
+% if 12 means footnote number 1 and footnote number 2 or footnote number 12. A
+% better solution is to add automatic separation characters between such
+% footnote marks. The functionality has been made similar and compatible with
+% \pkg{footmisc} version 5.x. So it should be compatible with that
+% package. Even switching on and off should also work in case of using the
+% package.
% \begin{macrocode}
+%<*option>
\KOMA@key{footnotes}{%
\ifx\@footnotemark\scr@saved@footnotemark
\else
@@ -188,18 +157,16 @@
}
% \end{macrocode}
% \begin{macro}{\scr@footmisc@options}
-% \changes{v2.98c}{2008/02/14}{Neuer (intern)}%^^A
-% Für etwas mehr Kompatibilität mit \textsf{footmisc}, wird die aktuelle
-% Einstellung der \texttt{multifootnotes} an das Paket weitergereicht.
+% \changes{v2.98c}{2008/02/14}{added}
+% For better compatibility \opt{footnotes=multiple} will be passed as
+% \opt{multiple} to package \pkg{footmisc} using a \KOMAScript-internal macro.
% \begin{macrocode}
\newcommand*{\scr@footmisc@options}{}
\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\scr@saved@footnotemark}
-% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
-% \begin{macro}{\scr@footnotemark}
-% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
+% \begin{macro}{\scr@saved@footnotemark,\scr@footnotemark}
+% \changes{v2.98c}{2008/02/01}{added}
% \begin{macrocode}
\newcommand*{\scr@saved@footnotemark}{%
\leavevmode
@@ -216,35 +183,27 @@
\csname FN@mf@prepare\endcsname
\ifhmode\spacefactor\@x@sf\fi
\relax}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{option}
-%
-%
-% \iffalse
%</option>
-%<*body>
-% \fi
-%
-% \subsection{Definitionen für Fußnoten}
-%
-% \begin{macro}{\footnoterule}
-% \changes{v2.3a}{1995/07/08}{\cs{@width} verwendet}
-% \changes{v2.8q}{2002/02/06}{\cs{raggedbottom}-Verbesserung
-% eingefügt}
-% \changes{v2.95}{2002/01/07}{\texttt{.05fil} statt
-% \texttt{.005fil}}
-% \changes{v3.06}{2010/04/03}{die neuen Längenmakros werden genutzt}%^^A
-% \changes{v3.07}{2010/09/14}{neues Font-Element \texttt{footnoterule} wird
-% verwendet}
-% Im Fall, dass \cs{raggedbottom} verwendet wird, die Fußnotenlinie
-% nach unten gedrückt. Dies funktioniert nur dann nicht, wenn
-% Abbildungen oder Tabellen mit der Option "`\texttt{b}"' an das Ende
-% der Seite gesetzt werden. \cs{raggedbottom} wird daran erkannt, dass
-% \cs{@textbottom} nicht \cs{relax} ist. Das kann natürlich auch
-% einmal schief gehen, ist dann aber auch nicht ganz so tragisch.
+% \end{macrocode}
+% \end{macro}^^A \scr@saved@footnotemark,\scr@footnotemark
+% \end{option}^^A footnotes
+%
+%
+% \subsection{Commands and macros for footnotes}
+%
+% \begin{command}{\footnoterule}
+% \changes{v2.3a}{1995/07/08}{using \cs{@width}}
+% \changes{v2.8q}{2002/02/06}{\cs{raggedbottom} changed}
+% \changes{v2.95}{2002/01/07}{\texttt{.05fil} instead of \texttt{.005fil}}
+% \changes{v3.06}{2010/04/03}{using new length macros}
+% \changes{v3.07}{2010/09/14}{using new font element \fnt{footnoterule}}
+% \changes{v3.19}{2015/08/24}{not with \pkg*{scrextend}}
+% In case of \cs{raggedbottom} the footnote rule is moved downwards. Note,
+% that this does not work, if there is a bottom placed float. The indication
+% of using \cs{raggedbottom} is, \cs{@textbottom} is not \cs{relax}. This can
+% fail, but nevertheless is an improvement.
% \begin{macrocode}
+%<*body>
%<*class>
\renewcommand*\footnoterule{%
\normalsize\ftn@rule@test@values
@@ -255,10 +214,8 @@
\kern 2.6\p@}
% \end{macrocode}
% \begin{macro}{\ftn@rule@test@values}
-% \changes{v3.06}{2010/04/03}{neu (intern)}%^^A
-% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
-% Test, ob die Einstellungen für die Längen der Fußnotenlinie halbwegs
-% vernünftig sind.
+% \changes{v3.06}{2010/04/03}{added}
+% Plausibility test for the lengths of the rule.
% \begin{macrocode}
\newcommand*{\ftn@rule@test@values}{%
\ifdim\ftn@rule@height <\z@
@@ -293,39 +250,39 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \begin{KOMAfont}{footnoterule}
-% \changes{v3.07}{2010/09/14}{\texttt{footnoterule} ist ein eneues
-% Fontelement}
-% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
-% Damit man die Farbe der Fußnotentrennlinie ändern kann, gibt es nun ein
-% eigenes Element dafür. Die Voreinstellung ist jedoch leer.
+% \end{macro}^^A \ftn@rule@test@values
+% \begin{fontelement}{footnoterule}
+% \changes{v3.07}{2010/09/14}{added}
+% \changes{v3.19}{2015/08/24}{not with \pkg*{scrextend}}
+% To be able to change the color of the rule, we are using a font element. The
+% default is empty.
% \begin{macrocode}
\newkomafont{footnoterule}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
% \begin{macro}{\ftn@rule@width}
-% \changes{v3.06}{2010/04/03}{neu (intern)}%^^A
-% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
-% Die Länge der Fußnotentrennlinie.
+% \changes{v3.06}{2010/04/03}{added}
+% \changes{v3.19}{2015/08/24}{not with \pkg*{scrextend}}
+% The length of the footnote rule.
% \begin{macrocode}
\newcommand*{\ftn@rule@width}{.4\columnwidth}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\ftn@rule@height}
-% \changes{v3.06}{2010/04/03}{neu (intern)}%^^A
-% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
-% Die Höhe der Fußnotentrennlinie (die Tiefe ist immer 0).
+% \changes{v3.06}{2010/04/03}{added}
+% \changes{v3.19}{2015/08/24}{not with \pkg*{scrextend}}
+% The height of the footnote rule (depth is always 0).
% \begin{macrocode}
\newcommand*{\ftn@rule@height}{.4\p@}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\setfootnoterule}
-% \changes{v3.06}{2010/04/03}{neue Anweisung}%^^A
-% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} ersetzt durch \cs{IfArgIsEmpty}}%^^A
-% Das erste, optionale Argument ist die Höhe der Linie, das zweite nicht
-% optionale die Länge.
+% \begin{command}{\setfootnoterule}
+% \changes{v3.06}{2010/04/03}{added}
+% \changes{v3.19}{2015/08/24}{not with \pkg*{scrextend}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} replaced by \cs{IfArgIsEmpty}}
+% The first optional argument (\texttt{\#1}) it the height of the line. If it
+% is missing, the height is not changed. The first mandatory argument
+% (\texttt{\#2}) is the length of the line.
% \begin{macrocode}
\newcommand*{\setfootnoterule}[2][]{%
\IfArgIsEmpty{#1}{}{%
@@ -338,40 +295,44 @@
}
%</class>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \setfootnoterule
+% \end{command}^^A \footnoterule
%
-% \begin{Counter}{footnote}
-% Der Fußnotenzähler wird mit \cs{chapter} zurückgesetzt, die Fußnoten
-% werden also kapitelweise nummeriert.
+% \begin{counter}{footnote}
+% The footnote counter is reset with every \cs{chapter}. So the numbering is
+% per chapter.
% \begin{macrocode}
%<book|report>\@addtoreset{footnote}{chapter}
% \end{macrocode}
-% \end{Counter}
-%
-% \begin{macro}{\deffootnote}
-% \changes{v2.4l}{1997/02/06}{neu}%^^A
-% \changes{v2.95}{2002/07/09}{Absatzeinzug korrigiert}%^^A
-% \changes{v2.9l}{2003/01/28}{\cs{edef}\cs{@tempa} ersetzt}
-% \changes{v2.9q}{2004/01/31}{\cs{ftn@font} erlaubt aus Gr"unden der
-% Kompatibilität mit dem \textsl{footnote} Paket kein Argument mehr}%^^A
-% \changes{v3.22}{2017/01/03}{Neuimplementierung}%^^A
-% \changes{v3.23}{2017/03/27}{neues \cs{raggedfootnote} eingefügt}%^^A
-% Dieses Makro zur Definition der Gestalt von Fußnoten erlaubt einen
-% optionalen und erwartet drei weitere Parameter. Der erste, optionale
-% gibt den Einzug der ersten Zeile des Fußnotentextes vom linken Rand
-% an. Die Fußnotenmarkierungen werden rechtsbündig in diesen Einzug
-% gesetzt. Der zweite, also erste nicht optionale Parameter gibt den
-% Einzug jeder weiteren Zeile des Fußnotentextes vom linken Rand
-% an. Fehlt der optionale Parameter so ist er gleich diesem. Der
-% dritte, also zweite nicht optionale Parameter gibt den zusätzlichen
-% Einzug jedes weiteren Absatzes einer Fußnote an. Der letzte
-% Parameter schließlich bestimmt die Ausgabe der Fußnotenmarkierung in
-% der Fußnote. Diese wird zusätzlich in eine \cs{hbox} gesetzt.
+% \end{counter}
+%
+% \begin{command}{\deffootnote}
+% \changes{v2.4l}{1997/02/06}{added}
+% \changes{v2.95}{2002/07/09}{paragraph indent fixed}
+% \changes{v2.9l}{2003/01/28}{\cs{edef}\cs{@tempa} replaced}
+% \changes{v2.9q}{2004/01/31}{\cs{ftn@font} does not support an argument
+% because of compatibility with \pkg{footnote}}
+% \changes{v3.22}{2017/01/03}{completely new implementation}
+% \changes{v3.23}{2017/03/27}{using \cs{raggedfootnote}}
+% \changes{v3.36}{2022/02/16}{hooks added}
+% This command defines the formatting of footnotes. The arguments are:
+% \begin{description}
+% \item[\oarg{first indent}:] the indent of the text of the first line of the
+% footnote,
+% \item[\marg{indent}:] the indent from the second line of the footnote,
+% \item[\marg{paragraph indent}:] the indent of the first line of a paragraph
+% if the footnote has more than one paragraph.
+% \item[\marg{mark code}:] the code of the footnote mark in the footnote (for
+% the mark in the text see \cs{deffootnotemark}).
+% \end{description}
+% The \meta{mark code} is additionally encapsulated in a \cs{hbox} of
+% with \meta{first indent}. If \meta{first indent} is not given it is set to
+% \meta{indent}.
% \begin{macrocode}
\newcommand\deffootnote[4][]{%
\expandafter\ifnum\scr@v@is@ge{3.22}\relax
\long\def\@makefntext##1{%
+ \ExecuteDoHook{footnote/text/begin}%
\raggedfootnote
\leftskip #2
\l@addto@macro\@trivlist{%
@@ -382,6 +343,7 @@
\hskip \dimexpr #1-#2\relax
}%
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
+ \ExecuteDoHook{footnote/text/end}%
}%
\else
%<class> \ClassInfo{\KOMAClassName}{%
@@ -414,92 +376,75 @@
\fi
% \end{macrocode}
% \begin{macro}{\@@makefnmark}
-% \changes{v2.4l}{1997/02/06}{neu}%^^A
-% Makro zum Setzen der Fußnotenmarkierung in der Fußnote:
+% \changes{v2.4l}{1997/02/06}{added}
+% Used to set the mark at the beginning of the footnote. Here we add the font
+% element.
% \begin{macrocode}
\def\@@makefnmark{\hbox{\ftnm@font{#4}}}%
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@@makefnmark
% \begin{macrocode}
}
% \end{macrocode}
-% \end{macro}%^^A \@@makefnmark
+% \end{command}^^A \deffootnote
%
% \begin{macro}{\raggedfootnote}
-% \changes{v3.23}{2017/03/27}{neue Anweisung}
-% Auf Wunsch von Falk kann man die Ausrichtrung des Fußnotentextes damit
-% beeinflussen. Die Voreinstellung ist leer also keine Änderung der
-% Ausrichtung.
+% \changes{v3.23}{2017/03/27}{added}
+% Falk requested a new feature: Being able to change the
+% alignment/justification of the footnote text. The default is to change
+% nothing.
% \begin{macrocode}
\newcommand*{\raggedfootnote}{}
% \end{macrocode}
-% \end{macro}%^^A \raggedfootnote
-%
-% \begin{macro}{\ftn@font}
-% \changes{v2.8q}{2001/11/16}{neu (intern)}%^^A
-% \begin{macro}{\scr@fnt@footnote}
-% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnote}}
-% \begin{macro}{\ftnm@font}
-% \changes{v2.8q}{2001/11/16}{neu (intern)}%^^A
-% \begin{macro}{\scr@fnt@footnotenumber}
-% \changes{v2.8q}{2001/11/16}{neues Element
-% \texttt{footnotenumber}}
-% \begin{macro}{\scr@fnt@footnotenlabel}
-% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnotelabel}}
-% \begin{macro}{\scr@fnt@instead@footnotetext}
-% \changes{v2.8q}{2001/11/16}{neuer Ersatz für Element
-% \texttt{footnotetext}}
-% Das erste Element gibt die Schrift an, in der die Fußnote gesetzt
-% wird. Davon abweichend kann mit dem zweiten Element die Schriftart
-% für die Fußnotennummer getrennt angegeben werden. Aufgrund der
-% Definition kann bei letzteren auch ein Makro verwendet werden, das ein
-% Argument erwartet.
+% \end{macro}^^A \raggedfootnote
+%
+% \begin{fontelement}{footnotelabel,footnotetext,footnote}
+% \begin{fontelement}{footnotenumber}
+% \changes{v3.36}{2022/02/16}{real alias of \fnt{footnotelabel}}
+% \begin{macro}{\ftn@font,\scr@fnt@footnote,\ftnm@font,\scr@fnt@footnotelabel}
+% \changes{v2.8q}{2001/11/16}{added}
+% There are two new font elements with two aliases. They are not defined using
+% \cs{newkomafont}, because they have to use not the default font commands but
+% another one compatible with \pkg{footnote}.
% \begin{macrocode}
\newcommand*{\ftn@font}{\normalfont}
\newcommand*{\scr@fnt@footnote}{\ftn@font}
\newcommand*{\ftnm@font}{}
-\newcommand*{\scr@fnt@footnotenumber}{\ftnm@font}
+\aliaskomafont{footnotenumber}{footnotelabel}
\newcommand*{\scr@fnt@footnotelabel}{\ftnm@font}
-\newcommand*{\scr@fnt@instead@footnotetext}{footnote}
+\aliaskomafont{footnotetext}{footnote}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\deffootnotemark}
-% \changes{v2.4l}{1997/02/06}{neu}%^^A
-% Makro zur Definition der Fußnotenmarkierung im Text:
+% \end{macro}^^A \fnt@font,\scr@fnt@footnote … \scr@fnt@footnotelabel
+% \end{fontelement}^^A footnotenumber
+% \end{fontelement}^^A footnotelabel,footnotetext,footnote
+%
+% \begin{command}{\deffootnotemark}
+% \changes{v2.4l}{1997/02/06}{added}
+% The definition of the footnote mark in the text can also changed. The
+% default is the usual definition extended by the font element.
% \begin{macrocode}
\newcommand*\deffootnotemark[1]{%
\def\@makefnmark{\hbox{\ftntm@font{#1}}}%
}
% \end{macrocode}
-%
-% \begin{macro}{\ftntm@font}
-% \changes{v2.8q}{2001/11/16}{neu (intern)}%^^A
-% \begin{macro}{\scr@fnt@footnotereference}
-% \changes{v2.8q}{2001/11/16}{neues Element
-% \texttt{footnotereference}}
-% \begin{macro}{\scr@fnt@footnoteref}
-% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnoteref}}
-% Dies ist die Schriftart der Fußnotenreferenz im Text. Auch hier kann
-% ggf. ein Makro verwendet werden, das ein Argument erwartet.
+% \begin{fontelement}{footnotereference}
+% \begin{fontelement}{footnotemark,footnoteref}
+% \changes{v3.36}{2022/02/16}{real alias of \fnt{footnotereference}}
+% \begin{macro}{\ftntm@font,\scr@fnt@footnotereference}
+% \changes{v2.8q}{2001/11/16}{added}
+% The font element of the footnote mark in the text and two aliases.
% \begin{macrocode}
\newcommand*{\ftntm@font}{}
\newcommand*{\scr@fnt@footnotereference}{\ftntm@font}
-\newcommand*{\scr@fnt@footnoteref}{\ftntm@font}
+\aliaskomafont{footnoteref}{footnotereference}
+\aliaskomafont{footnotemark}{footnotereference}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
+% \end{macro}^^A \ftntm@font,\scr@fnt@footnotereference
+% \end{fontelement}^^A footnotemark,footnoteref
+% \end{fontelement}^^A footnotereference
% \begin{macro}{\FN@mf@check}
-% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
-% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird.
+% \changes{v2.98c}{2008/02/01}{added}
+% Detect multiple footnotes by \cs{lastkern} and add the separator.
% \begin{macrocode}
%<package>\providecommand*{\FN@mf@check}{%
%<class>\newcommand*{\FN@mf@check}{%
@@ -510,33 +455,33 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-%
+% \end{macro}^^A \FN@mf@check
% \begin{macro}{\scr@mf@prepare}
-% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
-% Damit |\FN@mf@check| informiert ist, dass es etwas zu tun hat.
+% \changes{v2.98c}{2008/02/01}{added}
+% Add the kern to detect multiple footnotes without change of the resulting kern.
% \begin{macrocode}
\newcommand*{\scr@mf@prepare}{%
\kern-\multiplefootnotemarker
\kern\multiplefootnotemarker\relax
}
-% \end{macro}
+% \end{macrocode}
+% \end{macro}^^A \scr@mf@prepare
% \begin{macro}{\F@mf@prepare}
-% \changes{v2.98c}{2008/02/14}{Neu (intern)}%^^A
-% \changes{v3.25a}{2018/04/17}{Definition wird explizit vorgenommen}%^^A
-% Aus Gründen der Kompatibilität mit \textsf{footmisc} wird das dann
-% vorsoglich auch noch definiert (und zwar als \cs{relax}, wenn es bisher noch
-% nicht definiert ist).
+% \changes{v2.98c}{2008/02/14}{added}
+% \changes{v3.25a}{2018/04/17}{explicit definition}
+% To stay compatible with \pkg{footmisc} we define this too (but \cs{relax}
+% and only if not defined before).
+% \begin{macrocode}
\@ifundefined{FN@mf@prepare}{\let\FN@mf@prepare\relax}{}
% \end{macrocode}
-% \end{macro}
-%
+% \end{macro}^^A \F@mf@prepare
% \begin{macro}{\@footnotetext}
-% \changes{v3.01a}{2008/11/22}{long}%^^A
+% \changes{v3.01a}{2008/11/22}{long}
% \begin{macro}{\scr@saved@footnotetext}
-% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
-% \changes{v3.01a}{2008/11/22}{long}%^^A
-% Auch hier muss dafür gesorgt werden, dass die Markierung erfolgt.
+% \changes{v2.98c}{2008/02/01}{added}
+% \changes{v3.01a}{2008/11/22}{long}
+% We have to add the multiple footnote preparation to the definition of
+% \cs{@footnotetext}.
% \begin{macrocode}
\newcommand{\scr@saved@footnotetext}{}
\let\scr@saved@footnotetext\@footnotetext
@@ -545,9 +490,8 @@
\csname FN@mf@prepare\endcsname
}
% \end{macrocode}
-%
-% Es muss auch dafür gesorgt werden, dass \textsf{footmisc} nicht unnötig
-% mit Warnung um sich wirft.
+% And \pkg{footmisc} should not warn because of a not expected definition of
+% \cs{@footnotemark}.
% \begin{macrocode}
\BeforePackage{footmisc}{%
\ifx\@footnotemark\scr@footnotemark
@@ -556,12 +500,10 @@
\let\@footnotetext\scr@saved@footnotetext
}
% \end{macrocode}
-%
-% \changes{v3.10}{2011/09/12}{Workaround für die zerstörerische Wirkung von
-% \textsf{setspace}}%
-% Außerdem zerstört das Paket \textsf{setspace} die Erweiterung von
-% \cs{@footnotetext}. Deshalb schalten wir sie vor dem Paket lieber gleich ab
-% und reaktivieren sie anschließend wieder:
+% \changes{v3.10}{2011/09/12}{\pkg{setspace} workaround}
+% \pkg{setspace} also needs a workaround, because it redefines
+% \cs{@footnotemark} without respect of other definitions. So we use out
+% definition instead and add a \texttt{footnote/text/begin} do-hook.
% \begin{macrocode}
\BeforePackage{setspace}{%
\let\@footnotetext\scr@saved@footnotetext
@@ -574,52 +516,52 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@saved@footnotetext
+% \end{macro}^^A \@footnotetext
+% \end{command}^^A \deffootnotemark
%
-% \begin{macro}{\multiplefootnoteseparator}
-% \changes{v2.98c}{2008/02/01}{Neu}%^^A
-% Das ist der formatierte Separator!
+% \begin{command}{\multiplefootnoteseparator}
+% \changes{v2.98c}{2008/02/01}{added}
+% The multiple footnote separation marker with all formatting needed.
% \begin{macrocode}
\newcommand*{\multiplefootnoteseparator}{%
\begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\multfootsep}
-% \changes{v2.98c}{2008/02/01}{Neu}%^^A
-% Und hier \textsf{footmisc}-kompatibel unformatiert
+% \begin{command}{\multfootsep}
+% \changes{v2.98c}{2008/02/01}{added}
+% The \pkg{footmisc} compatible separation without formatting.
% \begin{macrocode}
%<class>\newcommand*{\multfootsep}{,}
%<package>\providecommand*{\multfootsep}{,}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\multiplefootnotemarker}
-% \changes{v2.98c}{2008/02/01}{Neu}%^^A
-% \changes{v3.19}{2015/08/24}{im Paket mit \cs{providecommand} definieren}%^^A
-% Das Markierungskerning wieder \textsf{footmisc}-kompatibel.
+% \begin{command}{\multiplefootnotemarker}
+% \changes{v2.98c}{2008/02/01}{added}
+% \changes{v3.19}{2015/08/24}{\pkg*{scrextend} uses \cs{providecommand}}
+% The kerning of the marker also \pkg{footmisc} compatible.
% \begin{macrocode}
%<class>\newcommand*{\multiplefootnotemarker}{3sp}
%<package>\providecommand*{\multiplefootnotemarker}{3sp}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\thefootnotemark}
-% \changes{v2.4l}{1997/02/06}{neu}%^^A
-% Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird:
+% \begin{command}{\thefootnotemark}
+% \changes{v2.4l}{1997/02/06}{added}
+% User level command using \cs{@thefnmark}.
% \begin{macrocode}
%<class>\newcommand*{\thefootnotemark}{\@thefnmark}
%<package>\providecommand*{\thefootnotemark}{\@thefnmark}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur
-% Fußnotengestaltgebung}%^^A
+% \changes{v2.4l}{1997/02/06}{initialization using \cs{deffootnotemark}}
% \begin{macro}{\@makefnmark}
-% \changes{v3.10}{2011/09/27}{\textsf{scrextend} redefines \cs{@makefnmark}
-% to use \cs{thefootnotemark}}%^^A
+% \changes{v3.10}{2011/09/27}{\pkg*{scrextend} redefines \cs{@makefnmark}
+% to use \cs{thefootnotemark}}
% \begin{macrocode}
%<*class>
\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}}
@@ -658,19 +600,15 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{Fußnotenreferenz}
+% \subsection{Referencing footnote labels}
%
-% \begin{macro}{\footref}
-% \changes{v2.98c}{2008/02/01}{Neue Anweisung}
-% \changes{v3.33}{2021/02/24}{classes use \cs{providecommand} because of
+% \begin{command}{\footref}
+% \changes{v2.98c}{2008/02/01}{added}
+% \changes{v3.33}{2021/02/24}{using \cs{providecommand} because of
% \LaTeX{} 2021-05-01}
-% Damit man nicht nur zu diesem Zweck das Paket \textsf{footmisc} laden muss,
-% kann man jetzt auch mit \KOMAScript{} alleine Fußnoten setzen, die
-% Referenzen auf andere Fußnoten sind. Der Code stammt einerseits aus footmisc
-% andererseits auf der Usenet-Gruppe comp.text.tex. Wer den zuerst hatte, ist
-% für mich nicht mehr reproduzierbar. Jedenfalls steht er in footmisc unter
-% LPPL und \KOMAScript{} steht ebenfalls unter LPPL. Das sollte also im
-% Zweifelsfall nicht das Problem sein.
+% \KOMAScript{} 3 provides this command for more more than 13 longer than
+% the \LaTeX{} kernel. It is compatible with \pkg{footmisc} but has also been
+% published for free in the Usenet.
% \begin{macrocode}
\providecommand*{\footref}[1]{%
\begingroup
@@ -678,19 +616,20 @@
\endgroup
\@footnotemark
}
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</body>
-% \fi
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-footnotes.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-index.dtx b/macros/latex/contrib/koma-script/source/scrkernel-index.dtx
index a58dcf853d..34972167b6 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-index.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-index.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{242}
% \iffalse meta-comment
% ======================================================================
% scrkernel-index.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-index.dtx
-% Copyright (c) Markus Kohm, 2002-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-index.dtx 3262 2019-10-10 08:25:29Z kohm $
+%%% From File: $Id: scrkernel-index.dtx 3706 2022-02-15 09:36:50Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $
+ \filedate$Date: 2022-02-15 10:36:50 +0100 (Di, 15. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
+ \filerevision$Revision: 3706 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-index.dtx}%
@@ -74,60 +36,94 @@
(index)]%
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-index.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-index.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2002/07/01}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
-%
-% \section{Index}
-%
-% Der Index unterscheidet sich bei \KOMAScript{} scheinbar nicht
-% wesentlich von dem, was die Standardklassen zu bieten haben. In
-% Wirklichkeit sind die Unterschiede jedoch erheblich.
+% \changes{v2.95}{2002/07/01}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/15}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/15}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-index.dtx}
+% \title{Index Code of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The index code of the \KOMAScript{} classes in \file{scrkernel-index.dtx}
+% is somehow different from the code of the standard classes. It provides
+% several options and other configuration possibilities.
+% \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}
%
-% Briefe haben keinen Index.
+% \section{Implementation of the Index}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% The letter class \cls*{scrlttr2} does not provide an index. All other
+% classes do.
%
-% \iffalse
+% \begin{macrocode}
%<*!letter>
-% \fi
-%
-% \iffalse
-%<*option>
-% \fi
+% \end{macrocode}
%
-% \subsection{Anweisungen und Einstellungen für die Optionen}
%
-% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die
-% Optionen abgearbeitet werden.
+% \subsection{Options}
%
+% \begin{option}{index}
+% \changes{v2.98c}{2008/03/04}{added}
+% \changes{v3.17}{2015/03/12}{internal value storage}
+% \changes{v3.18}{2015/06/15}{new value \opt{numbered}}
+% \changes{v3.18}{2015/06/15}{new value \opt{leveldown}}
+% \changes{v3.18}{2015/06/15}{new value \opt{standardlevel}}
+% \changes{v2.7a}{2001/01/04}{improved link generation with \cls*{scrbook} or
+% \cls*{scrreprt} and \pkg{hyperref}}
+% \changes{v2.98c}{2008/03/04}{redefining \cs{idx@@heading} instead of
+% \cs{idx@@heading}}
+% \changes{v3.18}{2015/06/15}{new value \opt{leveldown}}
+% The option allow several values for several features:
+% \begin{labeling}{\opt{=standardlevel}:}
+% \item[\opt{=default}:] use not numbered heading without ToC entry, but
+% without affecting the heading level;
+% \item[\opt{=totoc}:] use not numbered heading with ToC entry, but
+% without affecting the heading level;
+% \item[\opt{=numbered}:] use numbered heading (with ToC entry), but
+% without affecting the heading level;
+% \item[\opt{=leveldown}:] use a subheading (e.g. \cs{subsection} instead
+% of \cs{section} in \cls*{scrartcl}), without affecting numbered or not and
+% ToC entry or not;
+% \item[\opt{=standardlevel}:] don't use a subheading, without affecting
+% numbered or not and ToC entry or not.
+% \end{labeling}
+% To do so, the option redefines \cs{idx@heading}.
% \begin{macro}{\idx@@heading}
-% \changes{v2.98c}{2008/03/04}{neu (intern)}%^^A
-% \changes{v3.18}{2015/06/15}{Beachtung von \texttt{leveldown}}%^^A
-% Diese Anweisung wird verwendet, um nur die Ãœberschrift zu setzen (nichts
-% weiter!). Sie hat genau ein Argument, nämlich den Text der Überschrift und
-% wird innerhalb von |\idx@heading| verwendet.
+% \changes{v2.98c}{2008/03/04}{added}
+% \changes{v3.18}{2015/06/15}{using \opt{leveldown}}
+% This is the macro to print the heading of the index (nothing else). It has
+% one mandatory argument: the text to be used as heading. There will be one
+% additional code level above this: \cs{idx@heading}, that will be defined in
+% the \texttt{body} run. \cs{idx@heading} has to be defined before, so it can
+% be redefined by the \opt{index} option. In opposite to the standard classes
+% we want to use \cs{chapter} in two column mode. This can be done, because of
+% significant changes of \cs{chapter} definition. Note: If someone uses the
+% standard classes hack of package \pkg*{scrhack} or even another headings
+% package like \pkg*{titlesec} this could fail. But this is not my problem,
+% because usage of such packages and hacks is not recommended at all.
% \begin{macrocode}
+%<*option>
\newcommand*{\idx@@heading}{%
\ifidx@leveldown
%<article> \expandafter\subsection
@@ -138,46 +134,10 @@
\fi*%
}
% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Optionen für den Index}
-%
-% \begin{option}{index}
-% \changes{v2.98c}{2008/03/04}{Neue Option}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}%^^A
-% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{numbered}}%^^A
-% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{leveldown}}%^^A
-% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{standardlevel}}%^^A
-% \begin{macro}{\idx@@heading}
-% Die Option sorgt dafür, dass der Index auch im Inhaltsverzeichnis
-% erscheint. Dazu wird das interne Makro \cs{idx@@heading} umdefiniert, über
-% das die Ãœberschrift gesetzt und der Kolumnentitel angepasst wird.
-% \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt
-% behandelt}%^^A
-% \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl}%^^A
-% wieder zweispaltig}
-% \changes{v2.6c}{2000/06/10}{im Index kann nach der Ãœberschrift
-% eine Präambel gesetzt werden}%^^A
-% \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und
-% \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref}
-% verbessert}
-% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
-% \texttt{theindex}-Umgebung verschoben}
-% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch
-% \cs{if@openright} ersetzt}
-% \changes{v2.98c}{2008/03/04}{statt \cs{idx@heading} wird nun
-% \cs{idx@@heading} umdefiniert}
-% \changes{v3.18}{2015/06/15}{Beachtung von \texttt{leveldown}}%^^A
-% An dieser Stelle muss dafür gesorgt werden, dass im Falle von
-% \textsf{scrbook} und \textsf{scrreprt} das Makro \cs{@schapter}
-% verwendet wird. Damit dies hier möglich ist mussten tiefreifendere
-% Änderungen am \LaTeX-Kernel bzw. am Gliederungsbefehl \cs{chapter}
-% vorgenommen werden.
-% \begin{macro}{\ifidx@leveldown}
-% \changes{v3.18}{2015/06/15}{neuer Schalter (intern)}%^^A
-% Für den ab Version~3.18neuen Wert \texttt{leveldown} und dessen
-% Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt.
+% \begin{macro}{\idx@leveldowntrue,\idx@leveldownfalse,\ifidx@leveldown}
+% \changes{v3.18}{2015/06/15}{added}
+% The boolean switch \cs{ididx@leveldown} is needed to distinguish the heading
+% level to be used (option values \opt{leveldown} and \opt{standardlevel}).
% \begin{macrocode}
\newif\ifidx@leveldown
\KOMA@key{index}{%
@@ -261,86 +221,59 @@
\KOMA@kav@add{.\KOMAClassFileName}{index}{notoc}
\KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \ifidx@leveldown …
+% \end{macro}^^A \idx@@heading
+% \end{option}^^A index
%
% \begin{option}{idxtotoc}
-% \changes{v2.3h}{1995/01/21}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/04}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.3h}{1995/01/21}{new}
+% \changes{v2.98c}{2008/03/04}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{idxtotoc}{index=totoc}
+%</option>
% \end{macrocode}
% \end{option}
%
%
-% \iffalse
-%</option>
-%<*body>
-% \fi
-%
-% \subsection{Definitionen für den Index}
+% \subsection{User commands and macros}
%
+% \begin{command}{\setindexpreamble}
+% \changes{v2.6c}{2000/06/10}{added}
+% \changes{v2.6d}{2000/07/20}{\cs{let} replaced by \cs{newcommand*}}
+% \changes{v2.95}{2002/07/01}{\cs{let} and \cs{def}}
% \begin{macro}{\index@preamble}
-% \changes{v2.6c}{2000/06/10}{neu (intern)}%^^A
-% \begin{macro}{\setindexpreamble}
-% \changes{v2.6c}{2000/06/10}{neu}%^^A
-% \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let}%^^A
-% durch \cs{newcommand*} ersetzt wurde}
-% \changes{v2.95}{2002/07/01}{\cs{let} und \cs{def}}
-% Analog zu \cs{bibpreamble} kann \cs{index@preamble} vom Benutzer mit
-% \cs{setindexpreamble} auf einen Text gesetzt werden, der nach der
-% Indexüberschrift eingefügt wird. Hier wird ein echtes internes Makro
-% verwendet, da nicht auf Kompatibilität geachtet werden muss.
+% \changes{v2.6c}{2000/06/10}{added}
+% The index preamble is placed between the heading an the index itself. The
+% user can define it using \cs{setindexpreamble}. \cs{index@preamble} is the
+% storage. Note: \cs{setindexpreamble} does read the argument itself. This
+% makes it easier to patch the user level command. But because of this it has
+% to long.
% \begin{macrocode}
+%<*body>
\newcommand*{\index@preamble}{}
\let\index@preamble=\relax
\newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\idx@heading}
-% \changes{v2.3h}{1995/01/21}{neu (intern)}%^^A
-% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt behandelt}%^^A
-% \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} wieder
-% zweispaltig}%^^A
-% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} eingefügt}%^^A
-% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
-% \texttt{theindex}-Umgebung verschoben}%^^A
-% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch \cs{if@openright}
-% ersetzt}%^^A
-% \changes{v2.98c}{2008/03/04}{Verwendung von \cs{idx@@heading}}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% \changes{v3.10a}{2012/03/08}{Falsche Klammerung der letzten Änderung
-% behoben}%^^A
-% \changes{v3.12}{2013/09/24}{Index wird nie in andere Verzeichnisse
-% eingetragen (außer Inhaltsverzeichnis)}%^^A
-% \changes{v3.25}{2017/10/13}{\cs{@mkright} und \cs{@mkdouble} verwenden}%^^A
-% Befehl zum Setzen der Ãœberschrift des Indexes. Bis Version 2.7a sah diese
-% Definition so aus:
-% \begin{verbatim}
-% \newcommand*{\idx@heading}{%
-% \if@twoside\cleardoublepage\else\clearpage\fi%
-% \@mkboth{\indexname}{\indexname}%
-% \twocolumn[%
-% %<article> \section*%
-% %<report|book> \@makeschapterhead%
-% {\indexname}\index@preamble]
-% }
-% \end{verbatim}\vspace{-\baselineskip}
-% Dagegen ist grundsätzlich nichts zu sagen. Allerdings gibt es seit
-% Version 2.7b die neue Methode der Kapitel-Präambel, die extra
-% eingeführt wurde, um die \textsf{hyperref}-Links -- insbesondere
-% den des Index -- zumindest bei Verwendung von \texttt{hpdftex.def}
-% zu verbessern. Deshalb wurde die Implementierung entsprechend
-% abgeändert. Außerdem wurde das Setzen der Präambel aus
-% Konsistenzgründen in Version 2.7j übereinstimmten mit der
-% \texttt{thebibliography}-Umgebung in die \texttt{theindex}-Umgebung
-% verschoben.
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.4c}{1996/04/04}{handling of running heads fixed}
+% \changes{v2.4g}{1996/11/04}{two-columned index with \cls*{scrartcl} fixed}
+% \changes{v2.6c}{2000/06/10}{support for index preamble after heading}
+% \changes{v2.7j}{2001/05/27}{output of preamble moved to \env{theindex}}
+% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} replaced by \cs{if@openright}}
+% \changes{v2.98c}{2008/03/04}{using \cs{idx@@heading}}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.10a}{2012/03/08}{brackets from previous change fixed}
+% \changes{v3.12}{2013/09/24}{never make an index entry to the other ToC but
+% the table of contents}
+% \changes{v3.25}{2017/10/13}{using \cs{@mkright} and \cs{@mkdouble}}
% \changes{v3.26}{2018/09/03}{usage of \cs{addsecmark} or \cs{subsectionmark}
-% instead of \cs{@mkright}}%^^A
+% instead of \cs{@mkright}}
+% Macro to make the index heading and preamble.
% \begin{macrocode}
\newcommand*{\idx@heading}{%
%<report|book> \if@openright\cleardoublepage\else\clearpage\fi%
@@ -363,13 +296,13 @@
% \end{macro}
%
% \begin{environment}{theindex}
-% \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt
-% \texttt{plain}}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{idx@heading}}
-% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
-% \texttt{theindex}-Umgebung verschoben}
-% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn nicht leer}%^^A
-% Der Index ist wie üblich definiert.
+% \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} instead of \pstyle{plain}}
+% \changes{v2.3h}{1995/01/21}{using \cs{idx@heading}}
+% \changes{v2.7j}{2001/05/27}{output of preamble added}
+% \changes{v3.19}{2015/08/25}{using \cs{indexpagestyle} only if not empty}
+% This definition is similar to the definition of the standard classes. As
+% addition it supports a preamble text, a variable heading, and resets the
+% paragraph end line fill.
% \begin{macrocode}
\newenvironment{theindex}{%
\if@twocolumn
@@ -380,7 +313,7 @@
\columnseprule \z@
\columnsep 35\p@
%<book|report> \setchapterpreamble{\index@preamble}%
- \idx@heading%
+ \idx@heading
%<article> \index@preamble\par\nobreak
\ifx\indexpagestyle\@empty\else\thispagestyle{\indexpagestyle}\fi
\parindent\z@
@@ -392,16 +325,12 @@
}
% \end{macrocode}
% \begin{macro}{\@idxitem}
-% Hier haben wird den Anfang eines Eintrags in den Index
-% \begin{macro}{\subitem}
-% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart
-% Speicher}
-% \begin{macro}{\subsubitem}
-% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart
-% Speicher}
-% \begin{macro}{\indexspace}
-% und ebenso Unter- und Unteruntereinträge sowie ein vertikaler
-% Abstand.
+% A new index entry
+% \begin{command}{\subitem,\subsubitem}
+% \changes{v2.3g}{1996/01/14}{using \cs{@idxitem} saves memory}
+% sub-entry, sub-sub-entry,
+% \begin{command}{\indexspace}
+% or (vertical) distance.
% \begin{macrocode}
\newcommand*\@idxitem{\par\hangindent 40\p@}
% \begin{macrocode}
@@ -411,38 +340,40 @@
\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{environment}
+% \end{command}^^A \indexspace
+% \end{command}^^A \subitem,\subsubitem
+% \end{macro}^^A \@idxitem
+% \end{environment}^^A theindex
%
%
-% \subsection{Standardbezeichner}
+% \subsection{Language dependent terms}
%
-% \begin{macro}{\indexname}
-% Names des Index:
+% \begin{command}{\indexname}
+% \changes{v3.36}{2022/02/15}{explicit definition for English languages}
+% The name of the index (used by \cs{idx@heading}).
% \begin{macrocode}
\newcommand*\indexname{Index}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\indexname{Index}
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \iffalse
-%</body>
-% \fi
-%
-% \iffalse
+% \begin{macrocode}
%</!letter>
-% \fi
-%
+% \end{macrocode}
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-index.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:
+
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-language.dtx b/macros/latex/contrib/koma-script/source/scrkernel-language.dtx
index 3738ca9b50..aef328c819 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-language.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-language.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{2247}
% \iffalse meta-comment
% ======================================================================
% scrkernel-language.dtx
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-language.dtx
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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-language.dtx 3480 2020-04-13 09:39:03Z kohm $
+%%% From File: $Id: scrkernel-language.dtx 3724 2022-02-25 10:28:44Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2020-04-13 11:39:03 +0200 (Mon, 13 Apr 2020) $
+ \filedate$Date: 2022-02-25 11:28:44 +0100 (Fr, 25. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3480 $
+ \filerevision$Revision: 3724 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-language.dtx}
@@ -73,142 +35,82 @@
KOMA-Script (language)]%
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-language.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-language.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/07/01}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/25}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/25}{whole implementation documentation in English}
%
-% \changes{v2.95}{2002/07/01}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-language.dtx}
+% \title{Easy Changing of Language-Depending Terms with
+% \href{https://komascript.de}{\KOMAScript} \pkg*{scrbase}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% Changing or defining language-depending terms is meanwhile easy, if
+% \pkg{babel} has been loaded. But before it has been loaded or if another
+% language package is used, it is not as easy as it should be. \KOMAScript{}
+% provides several commands to make it easy.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Sprachabhängigkeiten}
+% \section{User Manual}
%
-% Aus verschiedenen Gründen ist es nicht so einfach, neue,
-% sprachabhängige Begriffe zu definieren oder vorhandene
-% umzudefinieren. Mit \KOMAScript{} geht das etwas einfacher.
+% 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}
%
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \subsection{Commands and macros for language depending terms}
%
-% \iffalse
-%<*option>
-% \fi
+% These commands and macros provide very basic features and therefore has been
+% moved to \pkg*{scrbase} with \KOMAScript~3.00.
%
-% \subsection{Option}
-% Für Briefe gibt es die Möglichkeit, zwischen symbolischem und numerischem
-% Datum umzuschalten.
-%
-% \iffalse
-%<*letter>
-% \fi
-%
-% \begin{option}{numericaldate}
-% \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von
-% \texttt{scrdate} und \texttt{orgdate})}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.17}{2015/03/10}{Speicherung des aktuellen Werts}%^^A
-% Es kann zwischen dem Originaldatum, das beispielsweise von
-% \texttt{german.sty} definiert wird, und dem \texttt{scrlttr2}-Datum
-% gewählt werden. Natürlich gibt es diese Optionen nur bei Briefen.
-% \begin{macro}{\if@orgdate}
-% \begin{macro}{\@orgdatetrue}
-% \begin{macro}{\@orgdatefalse}
-% Die Einstellung wird in einem Schalter gespeichert.
-% \begin{macrocode}
-\newif\if@orgdate\@orgdatetrue
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% Dummerweise besitzt der alte Schalter genau die gegenteilige
-% Bedeutung der Option, deshalb muss der Schalter zweimal invertiert
-% werden.
-% \begin{macrocode}
-\KOMA@key{numericaldate}[true]{%
- \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
- \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}%
- \KOMA@kav@replacebool{.%
-%<class> \KOMAClassFileName
-%<package&letter> scrletter.\scr@pkgextension
- }{numericaldate}{@orgdate}%
- \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
-}
-\KOMA@kav@add{.%
-%<class> \KOMAClassFileName
-%<package&letter> scrletter.\scr@pkgextension
-}{orgdate}{true}
-% \end{macrocode}
-% \begin{option}{scrdate}
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
-% \begin{option}{orgdate}
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
% \begin{macrocode}
-\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true}
-\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false}
+%<*package&base&body>
% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
-%
-% \iffalse
-%</letter>
-% \fi
-%
-%
-% \iffalse
-%</option>
-%<*body>
-% \fi
-%
-% \subsection{Definitionen für sprachabhängige Bezeichner}
-%
-% Dieser Teil ist so grundlegend, dass er ab Version~3.00 in das Paket
-% \textsf{scrbase} ausgelagert wird.
-%
-% \iffalse
-%<*package&base>
-% \fi
-%
-% \begin{macro}{\defcaptionname}
-% \changes{3.12}{2013/07/29}{neu}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Für eine Reihe von Sprachen (durch Komma separierte Liste in \#1)
-% wird ein Makro (\#2) auf einen bestimmten Inhalt (\#3) definiert. Die
-% Sternversion verwendet dabei zwingend \cs{extras\meta{Sprache}}, während
-% die Normalversion \cs{captions\meta{Sprache}} verwendet, außer wenn der
-% Begriff bereits in \cs{extras\meta{Sprache}} definiert ist. Falls der
-% Befehl in der Dokumentpräambel aufgerufen wird, wird er verzögert.
+%
+% \begin{command}{\defcaptionname*,\defcaptionname}
+% \changes{3.12}{2013/07/29}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% With
+% \begin{quote}
+% \cs{defcaptionname}\marg{language list}\marg{name command}\marg{term}
+% \end{quote}
+% you can define \meta{name command} for all languages given in the
+% comma-separated \meta{language list} to be \meta{term}. Note: \meta{name
+% command} has to be a command without arguments. For commands with arguments
+% you have to use the mechanisms of, e.g., \pkg{babel} directly. If the
+% \meta{name command} is already defined in \cs{extras\meta{language}}, the
+% new definition will also be added to this macro. Otherwise it will be added
+% to \cs{captions\meta{language}}. The star variant \cs{defcaptionname*}
+% always used \cs{extras\meta{language}}.
% \begin{macrocode}
\newcommand*{\defcaptionname}{%
\kernel@ifstar\scr@def@scaptionname\scr@def@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@def@scaptionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% Die Sternvariante von \cs{defcaptionname}. Die Argumente sind dieselben.
+% \changes{v3.12}{2013/07/30}{added}
+% Because we are not using \pkg{xparse} we need an extra macro for the star
+% variant. The arguments are the same as for \cs{defcaptionname}.
% \begin{macrocode}
\newcommand*{\scr@def@scaptionname}[3]{%
% \end{macrocode}
-% Als erstes findet die Verzögerung bis \cs{begin{document}} statt.
+% Because several language packages define \cs{captions\meta{language}} in
+% |\begin{document}|, we also delay the definition, if the command is used in
+% the document preamble.
% \begin{macrocode}
\if@atdocument
\expandafter\@firstofone
@@ -218,9 +120,8 @@
\fi
{%
% \end{macrocode}
-% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1
-% ab und \dots
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
+% Do a local loop over all languages in the \meta{language list}.
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
% \begin{macrocode}
\begingroup
\let\reserved@b\endgroup
@@ -228,8 +129,8 @@
\@onelevel@sanitize\scr@reserved@a
\@for\scr@reserved@a:=\scr@reserved@a\do{%
% \end{macrocode}
-% \dots\ fügen dabei \cs{extras\meta{Sprache}} die Definition \#3 für \#2
-% hinzu.
+% Inside the loop add definition of \meta{name command} to \meta{term} to
+% \cs{extras\meta{language}}.
% \begin{macrocode}
\scr@trim@spaces\scr@reserved@a
\ifx\scr@reserved@a\@empty
@@ -244,8 +145,9 @@
\def#2{#3}%
}%
% \end{macrocode}
-% Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert
-% werden, dass dies ggf. auch unmittelbar Geltung bekommt.
+% The redefinition of \cs{reserved@b} to not only close the group but also
+% activate the new term if \meta{language} (\cs{reserved@a}) is the current
+% language:
% \begin{macrocode}
\scr@def@activateactivelanguageaftergroup{#2}{#3}%
\fi
@@ -255,30 +157,31 @@
}
% \end{macrocode}
% \begin{macro}{\scr@def@activateactivelanguageaftergroup}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% Wenn die Sprache in \cs{reserved@a} die aktuelle Sprache \cs{languagename}
-% ist oder die Sprachnummer zur Sprache \cs{reserved@a} die aktuelle
-% Sprachnummer \cs{language} ist, dann wird \cs{reserved@b} so umdefiniert,
-% dass es die aktuelle Gruppe beendet und \#1 als \#2 definiert.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% If the language in \cs{reserved@a} is the current language in
+% \cs{languagename} or if the language number of the language in
+% \cs{reserved@a} is the current language number \cs{language}, the definition
+% of \texttt{\#1} as \texttt{\#2} is added to \cs{reserved@b}.
% \begin{macrocode}
\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{%
\@onelevel@sanitize\languagename
\@tempswafalse
-%<trace> \typeout{compare `\languagename' and `\scr@reserved@a'}%
+%<trace> \typeout{comparing `\languagename' and `\scr@reserved@a'}%
\ifx\languagename\scr@reserved@a
\@tempswatrue
\else
% \end{macrocode}
-% \changes{v3.20}{2016/01/05}{Sonderbehandlung für \textsf{polyglossia}}%^^A
-% Bei Verwendung von \textsf{polyglossia} gibt es die Besonderheit, dass alle
-% Deutschen Sprachen als \texttt{german} definiert sind. Die Unterscheidung
-% zwischen Deutsch, Österreichisch und Schweizerisch geschieht über zwei
-% boolsche Schalter. Für die Unterscheidung alte oder neue Rechtschreibung
-% existiert ein weiterer Schalter. Mit ein paar trickreichen Vergleichen kann
-% man das zusätzlich behandeln. Natürlich muss es so gemacht werden, dass es
-% mit babel trotzdem noch funktioniert.
+% \changes{v3.20}{2016/01/05}{special treatment of \pkg{polyglossia}}
+% With \pkg{polyglossia} all German languages are language
+% \texttt{german}. The distinction of German, Swiss and Austrian is done with
+% two boolean switches \cs{if@austrian@locale} and
+% \cs{if@swiss@local}. Additionally the distinction of old and current German
+% is done with boolean switch \cs{if@german@oldspelling}. We cannot use the
+% switches directly, because of the special handling of such switches and
+% because they are only defined with \pkg{polyglossia}. So we compare them
+% with \cs{iffalse} or \cs{iftrue} instead.
% \begin{macrocode}
\edef\scr@reserved@b{\detokenize{german}}%
\ifx\languagename\scr@reserved@b
@@ -290,7 +193,7 @@
\expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
\csname iftrue\endcsname swiss\else german\fi\fi
}%
-%<trace> \typeout{compare also `\scr@reserved@a' and `\scr@reserved@b'}%
+%<trace> \typeout{comparing also `\scr@reserved@a' and `\scr@reserved@b'}%
\@onelevel@sanitize\scr@reserved@b
\ifx\scr@reserved@a\scr@reserved@b \@tempswatrue\fi
\fi
@@ -311,9 +214,13 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ifactivelanguageisoneof}
-% \changes{v3.27}{2019/07/10}{neu (intern)}
-% Ist die aktuelle Sprache eine aus der Liste im ersten Argument, so wird das
-% zweite Argument ausgeführt, sonst das ersten.
+% \changes{v3.27}{2019/07/10}{added}
+% \begin{quote}
+% \cs{scr@ifactivelanguageisoneof}\marg{language list}\meta{then
+% code}\meta{else code}
+% \end{quote}
+% If the current language is one of the comma-separated \meta{language list},
+% the \meta{then code} is executed otherwise \meta{else code}.
% \begin{macrocode}
\newcommand*{\scr@ifactivelanguageisoneof}[1]{%
\begingroup
@@ -356,18 +263,20 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \scr@ifactivelanguageisoneof
-% \end{macro}%^^A \scr@def@activateactivelanguageaftergroup
-% \end{macro}%^^A \scr@def@scaptionname
+% \end{macro}^^A \scr@ifactivelanguageisoneof
+% \end{macro}^^A \scr@def@activateactivelanguageaftergroup
+% \end{macro}^^A \scr@def@scaptionname
% \begin{macro}{\scr@def@captionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% Die Normalvariante von \cs{defcaptionname}, mit denselben Argumenten.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% The non-star variant of \cs{defcaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@def@captionname}[3]{%
% \end{macrocode}
-% Als erstes findet die Verzögerung bis \cs{begin{document}} statt.
+% Because several language packages define \cs{captions\meta{language}} in
+% |\begin{document}|, we also delay the definition, if the command is used in
+% the document preamble.
% \begin{macrocode}
\if@atdocument
\expandafter\@firstofone
@@ -377,9 +286,8 @@
\fi
{%
% \end{macrocode}
-% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1
-% ab und \dots
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
+% Do a local loop over all languages in the \meta{language list}.
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
% \begin{macrocode}
\begingroup
\let\reserved@b\endgroup
@@ -391,8 +299,7 @@
\PackageWarning{scrbase}{empty language at \string\defcaptionname}%
\else
% \end{macrocode}
-% \dots\ testen dabei, ob \#2 bereits in \cs{extras\meta{Sprache}} definiert
-% ist.
+% Test, if \meta{name command} is already defined in \cs{extras\meta{language}}.
% \begin{macrocode}
\@tempswafalse
\begingroup
@@ -400,17 +307,15 @@
\ifcsname extras\scr@reserved@a\endcsname
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \selectlanguage{ngerman}%^^A
% \begin{macrocode}
\expandafter\providecommand\expandafter*%
\csname abx@extras@\scr@reserved@a\endcsname{}%
@@ -419,18 +324,18 @@
\fi
\endgroup
% \end{macrocode}
-% Wenn \#2 bereits in \cs{extras\meta{Sprache}} definiert ist, \dots
+% If \meta{name command} is already defined in \cs{extras\meta{language}}
% \begin{macrocode}
\if@tempswa
% \end{macrocode}
-% \dots\ dann definieren wir es genau hier neu,
+% once again define it in \cs{extras\meta{language}}.
% \begin{macrocode}
\expandafter\g@addto@macro\csname extras\scr@reserved@a\endcsname{%
\def#2{#3}%
}%
\else
% \end{macrocode}
-% \dots\ anderenfalls definieren wir es in \cs{captions\meta{Sprache}} neu.
+% Otherwise define it in \cs{caption\meta{language}}.
% \begin{macrocode}
\expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax
\expandafter\expandafter\expandafter\gdef
@@ -442,8 +347,9 @@
}%
\fi
% \end{macrocode}
-% Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert
-% werden, dass dies ggf. auch unmittelbar Geltung bekommt.
+% The redefinition of \cs{reserved@b} to not only close the group but also
+% activate the new term if \meta{language} (\cs{reserved@a}) is the current
+% language:
% \begin{macrocode}
\scr@def@activateactivelanguageaftergroup{#2}{#3}%
\fi
@@ -452,18 +358,16 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@def@captionname
-% \end{macro}%^^A \defcaptionname
+% \end{macro}^^A \scr@def@captionname
+% \end{command}^^A \defcaptionname
%
-% \changes{v3.20}{2016/01/05}{Neue Sonderbehandlung für
-% \texttt{polyglossia}}%^^A
-% Bei Verwendung von \textsf{polyglossia} haben wir nun bei den Sprachen
-% \texttt{austrian}, \texttt{swiss}, \texttt{ngerman}, \texttt{naustrian} und
-% \texttt{nswiss} das Problem, dass diese dort alle in \cs{captionsgerman}
-% vermischt sind. Es werden also beim Umschalten eventuell gar nicht die
-% richtigen Befehle ausgeführt. Das lässt sich beispielsweise beheben, indem
-% in \cs{init@extra@german} dafür gesorgt wid, dass eben diese doch noch
-% ausgeführt werden:
+% \changes{v3.20}{2016/01/05}{new special treatment of \pkg{polyglossia}}%
+% With \pkg{polyglossia} the languages \texttt{austrian}, \texttt{swiss},
+% \texttt{ngerman}, \texttt{naustrian}, and \texttt{nswiss} are all mixed up
+% to \cs{captionsgerman}. To avoid activation of the language term of the
+% wrong dialect, \cs{init@extra@german} can be changed. Surely this is more or
+% less a hack. But \pkg{polyglossia} seems to not provide a better interface
+% for class and package authors.
% \begin{macrocode}
\AfterPackage*{polyglossia}{%
\scr@ifundefinedorrelax{init@extras@german}{%
@@ -491,37 +395,34 @@
}%
}
% \end{macrocode}
-% Ich bin mir natürlich bewusst, dass dieser Code auch nur wieder ein Hack
-% ist. Ideal ist das so nicht. Aber sehr viel sauberer geht es mit
-% \textsf{polyglossia} unter Beibehaltung der Kompatibilität auch nicht mehr.
%
-% \begin{macro}{\providecaptionname}
-% \changes{v2.8q}{2001/11/08}{neu}%^^A
-% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
-% ist, wird die Anderung sofort aktiviert.}%^^A
-% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert
-% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}%^^A
-% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}%^^A
-% \changes{v3.01b}{2008/12/07}{missing make undefined}%^^A
-% \changes{v3.02c}{2009/02/17}{undefined test improved}%^^A
-% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
-% \cs{defcaptionname}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Wie \cs{defcaptionname}, allerdings wird nur definiert, wenn die Sprache \#1
-% bereits existiert, aber der Begriff \#2 nicht existiert. Unter dieser
-% Einschränkung verwendet die Sternvariante \cs{extras\meta{Sprache}}, während
-% die Normalvariante \cs{captions\meta{Sprache}} verwendet.
+%
+% \begin{command}{\providecaptionname}
+% \changes{v2.8q}{2001/11/08}{added}
+% \changes{v2.9r}{2004/06/16}{immediate activation for current language}
+% \changes{v2.95}{2006/03/10}{sanitizing language test}
+% \changes{v3.00}{2008/05/02}{moved to \pkg*{scrbase}}
+% \changes{v3.01b}{2008/12/07}{missing make undefined}
+% \changes{v3.02c}{2009/02/17}{undefined test improved}
+% \changes{v3.12}{2013/07/30}{re-implemented similar to \cs{defcaptionname}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% This is very similar to \cs{defcaptionname}, but nothing is done if a
+% \meta{language} in the \meta{language list} is unknown or \meta{name
+% command} is already defined for the \meta{language}. With this limitation
+% \cs{providecaptionname} adds \meta{name command} to
+% \cs{captions\meta{language}} always, but the star variant
+% \cs{providecaptionname*} uses \cs{extras\meta{language}}.
% \begin{macrocode}
\newcommand*{\providecaptionname}{%
\kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@provide@scaptionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% The star variant of \cs{providecaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@provide@scaptionname}[3]{%
\if@atdocument
@@ -542,29 +443,27 @@
\string\providecaptionname}%
\else
% \end{macrocode}
-% Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu
-% \cs{extras\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist,
-% aber \#2 selbst noch nicht definiert ist.
+% In opposite to \cs{defcaptionname} add \meta{name command} to
+% \cs{extras\meta{language}} only, if \cs{extras\meta{language}} already
+% exists, but not yet defines \meta{name command}.
% \begin{macrocode}
\begingroup
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \selectlanguage{ngerman}%^^A
% \begin{macrocode}
\expandafter\providecommand\expandafter*%
\csname abx@extras@\scr@reserved@a\endcsname{}%
% \end{macrocode}
-% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}%^^A
+% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}
% Unfortunately some users use \cs{renewcommand} to change a name even if the
% language has not been loaded and the command has not been defined. This
% would result in an error message. So a this point we let \cs{renewcommand}
@@ -606,13 +505,13 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@provide@scaptionname
+% \end{macro}^^A \scr@provide@scaptionname
% \begin{macro}{\scr@provide@captionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% Die Normalvariante von \cs{providecaptionname}, mit denselben Argumenten.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% The non-star variant of \cs{providecaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@provide@captionname}[3]{%
\if@atdocument
@@ -633,25 +532,24 @@
\string\providecaptionname}%
\else
% \end{macrocode}
-% Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu
-% \cs{captions\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist,
-% aber \#2 selbst weder in \cs{extras\meta{Sprache}} noch in
-% \cs{captions\meta{Sprache}} definiert ist.
+% In opposite to \cs{defcaptionname} add \meta{name command} to
+% \cs{captions\meta{language}} only, if \cs{captions\meta{language}} already
+% exists, but neither \cs{extras\meta{language}} nor
+% \cs{captions\meta{language}} defines \meta{name command}.
% \begin{macrocode}
\begingroup
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}%^^A
+% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}
% Unfortunately some users use \cs{renewcommand} to change a name even if the
% language has not been loaded and the command has not been defined. This
% would result in an error message. So a this point we let \cs{renewcommand}
@@ -695,40 +593,37 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@provide@captionname
-% \end{macro}%^^A \providecaptionname
-% \selectlanguage{ngerman}
+% \end{macro}^^A \scr@provide@captionname
+% \end{command}^^A \providecaptionname
+%
%
-% \begin{macro}{\newcaptionname}
-% \changes{v2.8q}{2001/11/08}{neu}%^^A
-% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
-% ist, wird die Anderung sofort aktiviert.}%^^A
-% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert
-% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}%^^A
-% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}%^^A
-% \changes{v3.01b}{2008/12/07}{missing make undefined}%^^A
-% \changes{v3.02c}{2009/02/17}{undefined test improved}%^^A
-% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
-% \cs{defcaptionname}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die
-% Sprache und der Begriff, so wird ein Fehler ausgegeben. Existiert die
-% Sprache aber nicht der Begriff, so wird er definiert. Existiert die Sprache
-% nicht, so wird sie definiert. Unter dieser Prämisse verwendet die
-% Sternversion \cs{extras\meta{Sprache}}, während die Normalversion
-% \cs{captions\meta{Sprache}} verwendet.
+% \begin{command}{\newcaptionname}
+% \changes{v2.8q}{2001/11/08}{added}
+% \changes{v2.9r}{2004/06/16}{immediate activation for current language}
+% \changes{v2.95}{2006/03/10}{sanitizing language test}
+% \changes{v3.00}{2008/05/02}{moved to \pkg*{scrbase}}
+% \changes{v3.01b}{2008/12/07}{missing make undefined}
+% \changes{v3.02c}{2009/02/17}{undefined test improved}
+% \changes{v3.12}{2013/07/30}{re-implemented similar to \cs{defcaptionname}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% This is very similar to \cs{defcaptionname}, but if \meta{language} exists
+% and already defines \meta{language name} an error is reported. If the
+% \meta{language} exists but does not define the \meta{language name}, the
+% definition will be added. If the \meta{language} does not exist, it will be
+% defined. With this limitation \cs{newcaptionname} adds \meta{name command}
+% to \cs{captions\meta{language}} always, but the star variant
+% \cs{newcaptionname*} uses \cs{extras\meta{language}}.
% \begin{macrocode}
\newcommand*{\newcaptionname}{%
\kernel@ifstar\scr@new@scaptionname\scr@new@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@new@scaptionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% Die Sternvariante von \cs{newcaptionname}. Die Argumente sind dieselben.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% The star variant of \cs{newcaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@new@scaptionname}[3]{%
\if@atdocument
@@ -748,23 +643,22 @@
\PackageWarning{scrbase}{empty language at \string\newcaptionname}%
\else
% \end{macrocode}
-% Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert
-% sein.
+% In opposite to \cs{defcaptionname} the \meta{language name} has to be
+% undefined.
% \begin{macrocode}
\begingroup
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}%^^A
+% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}
% Unfortunately some users use \cs{renewcommand} to change a name even if the
% language has not been loaded and the command has not been defined. This
% would result in an error message. So a this point we let \cs{renewcommand}
@@ -804,14 +698,13 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@new@scaptionname
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \scr@new@scaptionname
% \begin{macro}{\scr@new@captionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% Die Normalvariante von \cs{newcaptionname}, mit denselben Argumenten.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% The non-star variant of \cs{newcaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@new@captionname}[3]{%
\if@atdocument
@@ -831,23 +724,22 @@
\PackageWarning{scrbase}{empty language at \string\newcaptionname}%
\else
% \end{macrocode}
-% Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert
-% sein.
+% In opposite to \cs{defcaptionname} the \meta{language name} has to be
+% undefined.
% \begin{macrocode}
\begingroup
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}%^^A
+% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}
% Unfortunately some users use \cs{renewcommand} to change a name even if the
% language has not been loaded and the command has not been defined. This
% would result in an error message. So a this point we let \cs{renewcommand}
@@ -887,43 +779,37 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@new@captionname
-% \end{macro}%^^A \newcaptionname
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \scr@new@captionname
+% \end{command}^^A \newcaptionname
%
-% \begin{macro}{\renewcaptionname}
-% \changes{v2.8q}{2001/11/08}{neu}%^^A
-% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
-% ist, wird die Anderung sofort aktiviert.}%^^A
-% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert
-% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}%^^A
-% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}%^^A
-% \changes{v3.01b}{2008/12/07}{missing make undefined}%^^A
-% \changes{v3.02c}{2009/02/17}{undefined test improved}%^^A
-% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
-% \cs{defcaptionname}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die
-% Sprache nicht, so ist dies ein Fehler. Existiert die Sprache nicht aber der
-% Begriff, so ist dies ebenfalls ein Fehler. Existieren Sprache und Begriff,
-% so wird dieser umdefiniert. Unter dieser Voraussetzung ändert die
-% Sternvariante immer \cs{extras\meta{Sprache}}, während die Normalvariante
-% \cs{captions\meta{Sprache}} ändert, falls der Begriff nicht i
-% \cs{extras\meta{Sprache}} definiert war, und sonst \cs{extras\meta{Sprache}}.
+% \begin{command}{\renewcaptionname}
+% \changes{v2.8q}{2001/11/08}{added}
+% \changes{v2.9r}{2004/06/16}{immediate activation for current language}
+% \changes{v2.95}{2006/03/10}{sanitizing language test}
+% \changes{v3.00}{2008/05/02}{moved to \pkg*{scrbase}}
+% \changes{v3.01b}{2008/12/07}{missing make undefined}
+% \changes{v3.02c}{2009/02/17}{undefined test improved}
+% \changes{v3.12}{2013/07/30}{re-implemented similar to \cs{defcaptionname}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% This is very similar to \cs{defcaptionname}, but if the \meta{language} does
+% not exist or does not already define \meta{language name} an error is reported.
+% So for a \meta{language} that exists and defines \meta{language name}, If the
+% \meta{name command} is already defined in \cs{extras\meta{language}},
+% \cs{renewcaptioname} adds the changed definition to this macro. Otherwise it
+% will be added to \cs{captions\meta{language}}. The star variant
+% \cs{renewcaptionname*} always used \cs{extras\meta{language}}.
% \begin{macrocode}
\newcommand*{\renewcaptionname}{%
\kernel@ifstar\scr@renew@scaptionname\scr@renew@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@renew@scaptionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% \changes{v3.27a}{2019/10/13}{unmittelbare Aktivierung nur für bereits
-% definierte Begriffe}%^^A
-% Die Sternvariante von \cs{renewcaptionname}. Die Argumente sind dieselben.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% \changes{v3.27a}{2019/10/13}{immediate activation only for already defined terms}
+% The star variant of \cs{renewcaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@renew@scaptionname}[3]{%
\if@atdocument
@@ -943,23 +829,21 @@
\PackageWarning{scrbase}{empty language at \string\renewcaptionname}%
\else
% \end{macrocode}
-% Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert
-% sein.
+% In opposite to \cs{defcaptionname} \meta{language name} has to be defined.
% \begin{macrocode}
\begingroup
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}%^^A
+% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}
% Unfortunately some users use \cs{renewcommand} to change a name even if the
% language has not been loaded and the command has not been defined. This
% would result in an error message. So a this point we let \cs{renewcommand}
@@ -998,16 +882,15 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@renew@scaptionname
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \scr@renew@scaptionname
% \begin{macro}{\scr@renew@captionname}
-% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
-% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
-% Dokumentpräambel}%^^A
-% \changes{v3.27a}{2019/10/13}{unmittelbare Aktivierung nur für bereits
-% definierte Begriffe}%^^A
-% Die Normalvariante von \cs{renewcaptionname}, mit denselben Argumenten.
+% \changes{v3.12}{2013/07/30}{added}
+% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}}
+% \changes{v3.27}{2019/07/10}{immediate activation from within document
+% preamble}
+% \changes{v3.27a}{2019/10/13}{immediate activation only for already existing
+% terms}
+% The non-star variant of \cs{renewcaptionname} with the same arguments.
% \begin{macrocode}
\newcommand*{\scr@renew@captionname}[3]{%
\if@atdocument
@@ -1027,23 +910,21 @@
\PackageWarning{scrbase}{empty language at \string\renewcaptionname}%
\else
% \end{macrocode}
-% Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert
-% sein.
+% In opposite to \cs{defcaptionname} \meta{language name} has to exist.
% \begin{macrocode}
\begingroup
\let#2\relax
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
-% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
+% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround}
+% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
-% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
+% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
-% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}%^^A
+% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround}
% Unfortunately some users use \cs{renewcommand} to change a name even if the
% language has not been loaded and the command has not been defined. This
% would result in an error message. So a this point we let \cs{renewcommand}
@@ -1089,28 +970,66 @@
\reserved@b
}%
}
+%</package&base&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@renew@captionname
-% \end{macro}%^^A \renewcaptionname
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \scr@renew@captionname
+% \end{command}^^A \renewcaptionname
%
-% \iffalse
-%</package&base>
-% \fi
%
+% \subsection{Numerical or textual date within letters}
+% For letters \KOMAScript{} provides the option to use either a
+% symbolic/texual date or a numerical date.
%
-% \subsection{Definitionen für ein nummerisches Datum}
-% Bei Briefen kann ein nummerisches oder ein symbolisches Datum verwendet
-% werden.
+% \begin{option}{numericaldate}
+% \changes{v2.8q}{2001/10/07}{added}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.17}{2015/03/10}{using internal value storage}
+% \changes{v3.36}{2022/02/25}{initial storage value fixed}
+% The option allows to switch between the original textual date usually
+% provided by \pkg{babel} (or another language package) and a numerical date.
+% \begin{macro}{\@orgdatefalse,\@orgdatetrue,\if@orgdate}
+% The decission is stored in a boolean switch. For compatibility with
+% \cls[https://www.ctan.org/pkg/koma-script-obsolete]{scrlettr} we are still
+% using \cs{if@orgdate} with inverse meaning.
+% \begin{macrocode}
+%<*letter&option>
+\newif\if@orgdate\@orgdatetrue
+% \end{macrocode}
+% \end{macro}^^A \@orgdatefalse,\@orgdatetrue,\if@orgdate
+% Currently a \cs{KOMA@inverseifkey} does not exist. So we need somemore code
+% to define the option.
+% \begin{macrocode}
+\KOMA@key{numericaldate}[true]{%
+ \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
+ \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&letter> scrletter.\scr@pkgextension
+ }{numericaldate}{@orgdate}%
+ \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package&letter> scrletter.\scr@pkgextension
+}{numericaldate}{true}
+% \end{macrocode}
+% \begin{option}{scrdate,orgdate}
+% \changes{v3.01a}{2008/11/21}{deprecated}
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true}
+\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false}
+%</letter&option>
+% \end{macrocode}
+% \end{option}^^A scrdate,orgdate
+% \end{option}^^A numericaldate
%
-% \iffalse
-%<*letter>
-% \fi
%
% \begin{macro}{\g@addnumerical@date}
-% Dazu ist es notwendig, ggf. das bereits definierte symbolische Datum durch
-% ein nummerisches zu ergänzen.
+% We need to redefine the already existing textual date of a language package
+% by a numerical one.
% \begin{macrocode}
+%<*letter&body>
\newcommand*{\g@addnumerical@date}[2]{%
\@ifundefined{date#1}{%
%<class> \ClassInfo{scrlttr2%
@@ -1127,167 +1046,113 @@
}%
}%
}
+%</letter&body>
% \end{macrocode}
% \end{macro}
%
-% \iffalse
-%</letter>
-% \fi
-%
%
-% \subsection{Festlegungen für einzelne Sprachen}
+% \subsection{Language dependent terms and dates in letters}
%
-% Es folgen nun für einzelne Sprachen konkrete Festlegungen, die für Briefe
-% benötigt werden.
-%
-% \iffalse
-%<*letter>
-% \fi
+% There are also a lot of additional language dependent terms in
+% letters. Several languages are supported.
%
-% \begin{macro}{\captionsenglish}
-% \changes{v3.13}{2014/01/07}{diverse neue Dialekte}%^^A
-% \begin{macro}{\dateenglish}
-% \begin{macro}{\captionsUSenglish}
-% \begin{macro}{\dateUSenglish}
-% \begin{macro}{\captionsamerican}
-% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert}
-% \begin{macro}{\dateamerican}
-% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert}
-% \begin{macro}{\captionsbritish}
-% \changes{v2.4c}{1997/11/25}{british identisch mit english definiert}
-% \begin{macro}{\datebritish}
-% \changes{v2.4c}{1997/11/25}{british identisch mit english definiert}
-% \begin{macro}{\captionsUKenglish}
-% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert}
-% \begin{macro}{\dateUKenglish}
-% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert}
-% \begin{macro}{\captionsaustralian}
-% \changes{v3.13}{2014/03/19}{australian identisch mit english definiert}%^^A
-% \begin{macro}{\dateaustralian}
-% \changes{v3.13}{2014/03/19}{australian identisch mit english definiert}%^^A
-% \changes{v3.27}{2019/06/09}{fixed}%^^A
-% \begin{macro}{\captionsnewzealand}
-% \changes{v3.13}{2014/03/19}{newzealand identisch mit english definiert}%^^A
-% \begin{macro}{\datenewzealand}
-% \changes{v3.13}{2014/03/19}{newzealand identisch mit english definiert}%^^A
-% \begin{macro}{\captionscanadian}
-% \changes{v3.13}{2014/03/19}{canadian identisch mit english definiert}%^^A
-% \begin{macro}{\datecanadian}
-% \changes{v3.13}{2014/03/19}{canadian identisch mit english definiert}%^^A
-% \begin{macro}{\captionsukenglish}
-% \changes{v3.24}{2017/05/29}{ukenglish identisch mit UKenglish definiert}
-% \begin{macro}{\dateukenglish}
-% \changes{v3.24}{2017/05/29}{ukenglish identisch mit UKenglish definiert}
-% \begin{macro}{\captionsusenglish}
-% \changes{v3.24}{2017/05/29}{usenglish identisch mit USenglish definiert}
-% \begin{macro}{\dateusenglish}
-% \changes{v3.24}{2017/05/29}{usenglish identisch mit USenglish definiert}
-% \begin{macro}{\captionsgerman}
-% \changes{v3.13}{2014/01/07}{neue Dialekte}%^^A
-% \begin{macro}{\dategerman}
-% \begin{macro}{\captionsngerman}
-% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}%^^A
-% \changes{v3.12a}{2014/03/08}{außer \texttt{german} verwenden alle
-% deutschen Sprachen »Telefon«}%^^A
-% \begin{macro}{\datengerman}
-% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}%^^A
-% \begin{macro}{\captionsaustrian}
-% \begin{macro}{\dateaustrian}
-% \begin{macro}{\captionsnaustrian}
-% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}%^^A
-% \begin{macro}{\datenaustrian}
-% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}%^^A
-% \begin{macro}{\captionsfrench}
-% \changes{v3.13}{2014/01/07}{diverse neue Dialekte}%^^A
-% \begin{macro}{\datefrench}
-% \begin{macro}{\captionsitalian}
-% \begin{macro}{\dateitalian}
-% \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt}%^^A
-% \begin{macro}{\captionsspanish}
-% \begin{macro}{\datespanish}
-% \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt}%^^A
-% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend}
-% \begin{macro}{\captionscroation}
-% \changes{v2.8q}{2001/05/10}{Neu}%^^A
-% \begin{macro}{\datecroatian}
-% \changes{v2.8q}{2001/05/10}{Neu}%^^A
-% \begin{macro}{\captionsdutch}
-% \changes{v2.8q}{2002/02/01}{Neu}%^^A
-% \begin{macro}{\datedutch}
-% \changes{v2.8q}{2002/02/01}{Neu}%^^A
-% \begin{macro}{\captionsfinnish}
-% \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu
-% Väisänen)}%^^A
-% \changes{v2.9u}{2005/02/07}{Neu}%^^A
-% \begin{macro}{\datefinnish}
-% \changes{v2.9u}{2005/02/07}{Neu}%^^A
-% \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert}%^^A
-% \begin{macro}{\captionsnorsk}
-% \changes{v3.02}{2009/01/01}{Neu}%^^A
-% \begin{macro}{\datenorsk}
-% \changes{v3.02}{2009/01/01}{Neu}%^^A
-% \begin{macro}{\captionsnorsk}
-% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}%^^A
-% \begin{macro}{\datenorsk}
-% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}%^^A
-% \begin{macro}{\captionspolish}
-% \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}%^^A
-% \begin{macro}{\datepolish}
-% \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}%^^A
-% \begin{macro}{\captionsczech}
-% \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}%^^A
-% \begin{macro}{\dateczech}
-% \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}%^^A
-% \begin{macro}{\dateslovak}
-% \changes{v3.13}{2014/02/28}{Neu (Dank Elke Schubert)}%^^A
-% Weil es in früheren Versionen zu Problemen damit gekommen ist,
-% werden diese jedoch erst bei |\begin{document}| definiert. Dabei
-% wird |\providecaptionname| verwendet, so dass sie auch schon vor
-% |\begin{document}| mit |\newcaptionname| anderslautend definiert
-% werden können.
+% \begin{command}{\captionsenglish,\dateenglish}
+% \begin{command}{\captionsUSenglish,\dateUSenglish}
+% \begin{command}{\captionsamerican,\dateamerican}
+% \changes{v2.4c}{1997/11/25}{american defined identical to USenglish}
+% \begin{command}{\captionsbritish,\datebritish}
+% \changes{v2.4c}{1997/11/25}{british defined identical to english}
+% \begin{command}{\captionsUKenglish,\dateUKenglish}
+% \changes{v2.4c}{1997/11/25}{UKenglish defined identical to english}
+% \begin{command}{\captionsaustralian,\dateaustralian}
+% \changes{v3.13}{2014/03/19}{australian defined identical to english}
+% \changes{v3.27}{2019/06/09}{fixed}
+% \begin{command}{\captionsnewzealand,\datenewzealand}
+% \changes{v3.13}{2014/03/19}{newzealand defined identical to english}
+% \begin{command}{\captionscanadian,\datecanadian}
+% \changes{v3.13}{2014/03/19}{canadian defined identical to english}
+% \begin{command}{\captionsukenglish,\dateukenglish}
+% \changes{v3.24}{2017/05/29}{ukenglish defined identical to UKenglish}
+% \begin{command}{\captionsusenglish,\dateusenglish}
+% \changes{v3.24}{2017/05/29}{usenglish defined identical to USenglish}
+% \begin{command}{\captionsgerman,\dategerman}
+% \begin{command}{\captionsngerman,\datengerman}
+% \changes{v2.5}{1999/09/08}{ngerman added identical togerman}
+% \begin{command}{\captionsaustrian,\dateaustrian}
+% \begin{command}{\captionsnaustrian,\datenaustrian}
+% \changes{v3.09}{2011/03/10}{naustrian added identical toaustrian}
+% \begin{command}{\captionsfrench,\datefrench}
+% \begin{command}{\captionsitalian,\dateitalian}
+% \changes{v2.3e}{1996/05/31}{added}
+% \begin{command}{\captionsspanish,\datespanish}
+% \changes{v2.4c}{1997/11/25}{added}
+% \begin{command}{\captionscroation,\datecroatian}
+% \changes{v2.8q}{2001/05/10}{added}
+% \begin{command}{\captionsdutch,\datedutch}
+% \changes{v2.8q}{2002/02/01}{added}
+% \begin{command}{\captionsfinnish,\datefinnish}
+% \changes{v2.9u}{2005/02/07}{added}
+% \changes{v3.01c}{2008/12/29}{activation fixed}
+% \begin{command}{\captionsnorsk,\datenorsk}
+% \changes{v3.02}{2009/01/01}{added}
+% \begin{command}{\captionsswedish,\dateswedish}
+% \changes{v3.08}{2011/01/20}{added (Benjamin Hell)}
+% \begin{command}{\captionspolish,\datepolish}
+% \changes{v3.13}{2014/02/01}{added (Blandyna Bogdol)}
+% \begin{command}{\captionsczech,\dateczech}
+% \changes{v3.13}{2014/02/10}{added (Elke Schubert)}
+% \begin{command}{\dateslovak}
+% \changes{v3.13}{2014/02/28}{added (Elke Schubert)}
+% Because of problems with early versions of the code, we use
+% \cs{AtBeginDocument} and \cs{providecaptionname} to define the terms and
+% dates as late as possible. So users can define them in the document preamble
+% differently. A list of all languages (but not the dialects) can be found in
+% \autoref{tab:letterlanguages}.
% \begin{table}
+% \begin{minipage}{\textwidth}
% \centering
% \begin{tabular}{ll}
-% Sprache & Spender \\\hline\\[-1.6ex]
-% Deutsch & Frank Neukam, Markus Kohm \\
-% English & Frank Neukam, Michael Dewey, Markus Kohm \\
-% Finnisch & Hannu Väisänen \\
-% Französisch & Frank Neukam, Henk Jongbloets \\
-% Holländisch & Henk Jongbloets \\
-% Italienisch & Simone Naldi \\
-% Kroatisch & Branka Lon\v{c}arevi\'{c} \\
-% Norwegisch & Sveinung Heggen \\
-% Polnish & Blandyna Bogdol \\
-% Schwedisch & Benjamin Hell\\
-% Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\
-% Tschechisch & Elke Schubert\\
-% Slovakisch & Elke Schubert\\
-% \end{tabular}
-% \caption{Liste der unterstützten Sprachen und der
-% \emph{Sprachspender}}
+% Language & Contributor \\\hline\\[-1.6ex]
+% German & Frank Neukam, Markus Kohm \\
+% English & Frank Neukam, Michael Dewey, Markus Kohm \\
+% Finnish & Hannu Väisänen \\
+% French & Frank Neukam, Henk Jongbloets \\
+% Dutch & Henk Jongbloets \\
+% Italian & Simone Naldi \\
+% Croatian & Branka Lon\v{c}arevi\'{c} \\
+% Norsk & Sveinung Heggen \\
+% Polish & Blandyna Bogdol \\
+% Swedish & Benjamin Hell\\
+% Spanish & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\
+% Czech & Elke Schubert\\
+% (Slovak)\footnotemark & Elke Schubert\\
+% \end{tabular}%
+% \stepcounter{mpfootnote}\renewcommand*{\thempfootnote}{\arabic{mpfootnote}}%
+% \footnotetext{Note: Slovak is only partially supported: The date
+% exists but the language terms are still missing.}
+% \caption{List of supported languages (but not the dialects) and the
+% contributors}
+% \label{tab:letterlanguages}
+% \end{minipage}
% \end{table}
-% Eine Besonderheit stellt die englische Sprache dar. Es wird
-% versucht, diese als Notersatz immer zu definieren.
+% English is a special case. We try to define it always also as a fallback.
% \begin{macrocode}
+%<*letter&body>
\AtBeginDocument{%
\@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}%
\@ifundefined{dateenglish}{\def\dateenglish{%
+%</letter&body>
% \end{macrocode}
-% \iffalse
-%</letter>
-%<*letter|class>
-% \fi
+% Defining the textual English \cs{today} it the only thing, that has do be
+% done for all classes and also the \pkg*{scrletter} package.
% \begin{macrocode}
+%<*(letter|class)&body>
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}%
-% \end{macrocode}
-% \iffalse
-%</letter|class>
-%<*letter>
-% \fi
-% \begin{macrocode}
+%</(letter|class)&body>
+%<*letter&body>
}%
}{}%
\providecaptionname{american,australian,british,canadian,%
@@ -1561,14 +1426,13 @@
\providecaptionname{swedish}\invoicename{Fakturanummer}%
\providecaptionname{swedish}\subjectname{\"Amne}%
% \end{macrocode}
-% "`Kopia"' oder "`Kopia till"' geht beides -- da im Deutschen die
-% lange Form verwendet wird nehmen wir die auch hier:
+% ``Kopia'' or ``Kopia till''? Both would be possible. Because of using the
+% long form in German, we use it in Swedish too.
% \begin{macrocode}
\providecaptionname{swedish}\ccname{Kopia till}%
% \end{macrocode}
-% "`Bilaga"' ist Singular. Bei mehreren Anlagen schreibt man
-% "`Bilagor"'. Da wir nicht wissen, ob es eine oder mehrere Anlagen sind,
-% haben wir ein kleines Problem und gehen mal von mehreren aus:
+% ``Bilaga'' would be singular. For several enclosures we need
+% ``Bilagor''. We've decided to use the plural.
% \begin{macrocode}
\providecaptionname{swedish}\enclname{Bilagor}% Singular: Bilaga
\providecaptionname{swedish}\headtoname{Till}%
@@ -1581,15 +1445,13 @@
\providecaptionname{swedish}\emailname{E-post}%
\providecaptionname{swedish}\wwwname{Hemsida}%
% \end{macrocode}
-% Für \cs{bankname} gibt es zwei verschiedene Ausdrücke, je nachdem um
-% welche Kontoform es sich handelt: "`Bankgiro"' und "`PlusGiro"'. Beide
-% sind etwa gleich verbreitet, evtl. mit einem leichten Vorteil für
-% Bankgiro.
+% There are two usual terms for banking account, either ``Bankgiro'' or
+% ``PlusGiro''. It's hard to say which one is more usual.
% \begin{macrocode}
\providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro
% \end{macrocode}
-% Statt der ISO-Variante wird hier die traditionelle Variante,
-% "`18/1 2011"', verwendet.
+% We use the traditional date ``18/1 2011'' instead of the also common ISO
+% date.
% \begin{macrocode}
\g@addnumerical@date{swedish}{\number\day/\number\month~\number\year}%
\providecaptionname{polish}\yourrefname{Wasz znak}%
@@ -1650,34 +1512,26 @@
\providecaptionname{slovak}\bankname{Bankov\'{e} spojenie}%
\g@addnumerical@date{slovak}{\number\day.\,\number\month.\,\number\year}%
% \end{macrocode}
-% Zum Schluss findet noch die eigentliche Auswahl statt. Diese orientiert
-% sich nun an der Auswahl nach german.sty~2.5b und verwendet keine festen
-% Sprachzuordnungen mehr. Dafür sind nun keine Erweiterungen für andere
-% Sprachen mehr möglich.
-% \changes{v2.2c}{1995/03/20}{Im Sprachenvergleich fehlten die "`="'
-% hinter \cs{language}}
-% \changes{v2.4c}{1997/11/25}{Sprachauswahl um american, british,
-% UKenglish und spanish erweitert}%^^A
-% \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert}%^^A
-% \changes{v2.5b}{2000/01/20}{Reaktivierung der Sprache geschieht
-% nun via \cs{languagename}, soweit dies möglich ist}
-% \changes{v2.5e}{2000/07/14}{Workaround für Sprache nohyphenation
-% durch Format mit Babel-Erweiterung aber kein Babel package
-% geladen}%^^A
+% Last but not least the activation has to be done.
+% \changes{v2.2c}{1995/03/20}{missing \texttt{\quotechar=} added after
+% \cs{language}}
+% \changes{v2.5b}{2000/01/20}{language reactivation by \cs{languagename} if
+% possible}
+% \changes{v2.5e}{2000/07/14}{workaround for language \texttt{nohyphenation}}
+% First of all we activate English as fallback.
% \begin{macrocode}
\captionsenglish
\dateenglish
% \end{macrocode}
-% \changes{v2.9i}{2002/09/04}{Workaround für den
-% \texttt{hyphen.cfg}-Bug von Babel}
-% \changes{v2.97c}{2007/08/10}{Text einer Warnung geändert}%^^A
-% \changes{v3.18a}{2015/07/03}{\cs{extras\dots} werden auch ausgeführt}%^^A
-% \changes{v3.18a}{2015/07/03}{sprachabhhängige Befehle mit \cs{@nameuse}}%^^A
-% Wird die \texttt{hyphen.cfg} von Babel verwendet, wird aber das
-% \textsl{babel}-Paket nicht geladen, so ist \cs{languagename} häufig
-% nicht korrekt, so dass dann \cs{selectlanguage} mit
-% \cs{languagename} als Argument schief geht. Daher hier ein
-% Workaround für das Problem.
+% \changes{v2.9i}{2002/09/04}{workaround for \file{hyphen.cfg} bug of
+% \pkg{babel}}
+% \changes{v2.97c}{2007/08/10}{warning message changed}
+% \changes{v3.18a}{2015/07/03}{execution \cs{extras\dots}}
+% \changes{v3.18a}{2015/07/03}{using \cs{@nameuse}}
+% If the \file{hyphen.cfg} of \pkg{babel} is used, but \pkg{babel} has not
+% been loaded, \cs{languagename} can be incorrect (depending on the
+% \pkg{babel} version used to generate the \LaTeX{} format). In this case
+% |\selectlanguage{\languagename}| would fail. So we need a workaround.
% \begin{macrocode}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname date\languagename\endcsname\relax
@@ -1869,13 +1723,10 @@
of language `\languagename'%
}%
% \end{macrocode}
-% \changes{v3.12}{2012/12/28}{Workaround für babels geänderte hyphen.cfg}%^^A
-% Irgendwann wurde in babel die hyphen.cfg geändert, so dass das früher sehr
-% gut funktionierende |\expandafter\selectlanguage\expandafter{\languagename}|
-% damit leider nicht mehr funktioniert, wenn babel nicht mehr geladen
-% ist. Deshalb wird nun etwas direkter vorgegangen. Das kann mit einzelnen
-% Sprachpaketen eventuell Nachteile bringen, funktioniert aber aktuell ohne
-% Sprachpaket, mit babel und mit polyglossia.
+% \changes{v3.12}{2012/12/28}{workaround for changed \file{hyphen.cfg} in
+% \pkg{babel}}
+% Unfortunately the workaround does not work any longer after a change of
+% \file{hyphen.cfg} in \pkg{babel}. So we need another workaround.
% \begin{macrocode}
\csname date\languagename\endcsname
\csname captions\languagename\endcsname
@@ -1896,72 +1747,44 @@
\fi
\fi
}
+%</letter&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
-%</letter>
-% \fi
-%
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
%
-% \iffalse
-%</body>
-% \fi
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-language.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx b/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx
index 1759c2990d..fb9d791ef0 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{1774}
% \iffalse meta-comment
% ======================================================================
% scrkernel-letterclassoptions.dtx
-% Copyright (c) Markus Kohm, 2006-2020
+% Copyright (c) Markus Kohm, 2006-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,118 +17,103 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-letterclassoptions.dtx
-% Copyright (c) Markus Kohm, 2006-2020
-%
-% 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-letterclassoptions.dtx 3453 2020-02-25 07:33:30Z kohm $
+%%% From File: $Id: scrkernel-letterclassoptions.dtx 3730 2022-02-26 14:38:06Z kohm $
%<option>%%% (run: option)
%<head>%%% (run: head)
%<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: 2020-02-25 08:33:30 +0100 (Tue, 25 Feb 2020) $
+ \filedate$Date: 2022-02-26 15:38:06 +0100 (Sa, 26. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3453 $
+ \filerevision$Revision: 3730 $
\endgroup
\ProvidesFile{scrkernel-letterclassoptions.dtx}
[\filedate\space \filerevision\space
- KOMA-Script source (letter class options)]
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-letterclassoptions.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+ KOMA-Script source (letter configuration options)]
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-letterclassoptions.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2006/03/22}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/26}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/26}{\cs{@setplength} replaced by \cs{setplength}}
+% \changes{v3.36}{2022/02/26}{\cs{@addtoplength} replaced by \cs{addtoplength}}
+% \changes{v3.36}{2022/02/26}{\cs{@newplength} replaced by \cs{newplength}}
+% \changes{v3.36}{2022/02/26}{whole implementation documentation in English}
%
-% \changes{v2.95}{2006/03/22}{%
-% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
%
-% \section{Optionendateien für Briefe}
+% \GetFileInfo{scrkernel-letterclassoptions.dtx}
+% \title{Handling and Implementation of Letter Configuration Options of
+% \href{https://komascript.de}{\KOMAScript} Letter Class and Package}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The \KOMAScript{} letter class \cls*{scrlttt2} and the \KOMAScript{}
+% letter package \pkg*{scrletter} has something special: the letter
+% configuration option files formerly known as letter class option
+% files. These are used to setup either layouts or user configurations. Both
+% the implementation of these files and the handling of them can be found in
+% \file{scrkernel-letterclassoptions.dtx}.
+% \end{abstract}
+% \tableofcontents
%
-% Bei der Briefklasse tritt eine Besonderheit ein. Hier ist es
-% möglich, spezielle \texttt{lco}-Dateien zu definieren, die über
-% Optionen geladen werden können. Die unterschiedlichen Brieftypen
-% sind ein Fall für solche \emph{\textbf{l}etter \textbf{c}lass
-% \textbf{o}ption} Dateien.
+% \section{User Manual}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% You can find the user documentation the commands and files implemented here
+% in the \KOMAScript{} manual, either the German \file{scrguide} or the
+% English \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
%
-% \iffalse
-%<*letter>
-% \fi
+% \section{Implementation of the Handling of Letter Configuration Options}
%
-% \iffalse
-%<*option>
-% \fi
+% We need this feature only with letter classes and packages.
+%
+% \begin{macrocode}
+%<*(class|package)&letter>
+% \end{macrocode}
%
-% \subsection{Optionen für Letter-Class-Options}
+%
+% \subsection{Options for the letter configuration option files}
%
% \begin{macro}{\lco@test}
-% \changes{v2.95}{2006/03/22}{Neu}%^^A
-% \changes{v2.97c}{2007/09/12}{an neue Optionenabarbeitung angepasst}%^^A
-% Letter-Class-Optionen können auch für jede per |\documentclass| angegebene
-% keyval-Option oder sonstige scan-Option (das sind Optionen, die nicht per
-% |\DeclareOption| definiert wurden) geladen werden. Dabei wird die
-% Abarbeitung der Option nicht unterbrochen. Dazu wird dieses Makro in den
-% scan-Vorgang eingebaut
+% \changes{v2.95}{2006/03/22}{added}
+% \changes{v2.97c}{2007/09/12}{modified for new option handling}
+% \changes{v3.36}{2022/02/26}{deprecated}
+% The \KOMAScript{} letter class \cls*{scrlttr2} allows to load a letter
+% configuration option file by classic class options to \cs{documentclass},
+% \cs{LoadClass} or \cs{PassOptionsToClass}. This is done inside via the
+% general \cs{DeclareOption*}, that is used for several other deprecated (and
+% some standard) options too. \cs{lco@test} simply tests, if
+% \file{\CurrentOption.lco} does exist and in this case load it a the end of
+% the class. Note: The \KOMAScript{} letter package \pkg*{scrletter} does not
+% support loading of letter configuration option files via global or package
+% option. Moreover, from \KOMAScript{} v3.36 loading via class option is also
+% deprecated for \cls*{scrlttr2}.
% \begin{macrocode}
+%<*class&option>
\newcommand*{\lco@test}{%
\IfFileExists{\CurrentOption.lco}{%
- \expandafter
-%<class> \AtEndOfClass
-%<package> \AtEndOfPackage
- \expandafter{%
+ \ClassWarningNoLine{\KOMAClassName}{%
+ loading of LCO via class option
+ `\CurrentOption'.\MessageBreak
+ Note: Loading a LCO via class option is deprecated.\MessageBreak
+ \space\space\space\space\space\space
+ You should use
+ `\string\LoadLetterOption\string{\CurrentOption\string}'\MessageBreak
+ instead%
+ }%
+ \expandafter\AtEndOfClass\expandafter{%
\expandafter\LoadLetterOption\expandafter{\CurrentOption}%
}%
\expandafter\def\expandafter\scr@pti@nerr@r\expandafter{%
@@ -139,41 +123,41 @@
}%
}{}%
}
+%</class&option>
% \end{macrocode}
% \end{macro}
%
-% Als Voreinstellung wird am Ende schon einmal die Datei \texttt{DIN.lco}
-% geladen.
+% \file{DIN.lco} is the default and therefore loaded first at the end of the
+% class or package.
% \begin{macrocode}
+%<*option>
%<class>\AtEndOfClass
%<package>\AtEndOfPackage
{\LoadLetterOption{DIN}}
+%</option>
% \end{macrocode}
%
-% \iffalse
-%</option>
-%<*body>
-% \fi
%
% \subsection{Makros für Letter-Class-Options}
%
-% \begin{macro}{\LoadLetterOption}
-% \changes{v2.8q}{2001/10/08}{Neu}%^^A
-% \changes{v3.14}{2014/10/04}{Leerzeichen werden ignoriert}%^^A
-% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@sp@def} statt
-% \cs{KV@@sp@def}}%^^A
-% Bei der neuen Briefklasse existiert eine Anweisung, mit der eine
-% \emph{\textbf{l}etter-\texttt{c}lass-\texttt{o}ption}-Datei geladen
-% werden kann. Das Laden wird mit entsprechender Information in der
-% \texttt{log}-Datei vermerkt. Damit in der Datei interne Makros
-% verwendet werden können, muss der catcode von "`@"' entsprechend
-% gesetzt sein. Damit der Befehl sowohl in der Präambel als auch in
-% weiteren Optionen-Dateien oder in der Klasse selbst verwendet werden
-% kann, muss der catcode am Ende wieder restauriert werden. Dabei muss
-% etwas trickreich gearbeitet werden, damit tatsächlich eine
-% Schachtelung möglich ist. So erfolgt die Umschaltung des catcodes
-% immer nur beim ersten Aufruf innerhalb einer Schachtel.
+% \begin{command}{\LoadLetterOption}
+% \changes{v2.8q}{2001/10/08}{added}
+% \changes{v3.14}{2014/10/04}{ignoring white spaced}
+% \changes{v3.26}{2018/08/29}{\cs{KV@@sp@def} replaced by \cs{scr@sp@def}}
+% Command
+% \begin{quote}
+% \cs{LoadLetterOption}\marg{letter configuration option}
+% \end{quote}
+% loads \file{\meta{letter configuration option}.lco}. The \cs{catcode} of
+% ``|@|'' is changed to letter for loading the file. But because \file{lco}
+% files can load other \file{lco} files using \cs{LoadLetterOption} this has
+% to be reset only for the outer \cs{LoadLetterOption}.
+% \begin{description}
+% \item[ToDo:] can't we do this more simply just using either some
+% \cs{expandafter} magic or an internal stack?
+% \end{description}
% \begin{macrocode}
+%<*body>
\newcommand*{\LoadLetterOption}[1]{%
\@ifundefined{@restore@catcode@level}%
{\let\@restore@catcode@level=\z@}{}%
@@ -215,14 +199,13 @@
}%
% \end{macrocode}
% \changes{v3.18}{2015/06/03}{manage \cs{RequirePackage} and \cs{usepackage}
-% inside \texttt{lco}-files after \cs{begin\{document\}}}%^^A
-% \changes{v3.28}{2019/11/24}{Tippfehler bezüglich \cs{usepackage}
-% beseitigt}%^^A
-% Ehrlich gesagt, glaube ich nicht, dass das folgende wirklich sinnvoll
-% funktioniert, wie es vermutlich gedacht war. Aber das eigentlich auch egal,
-% weil \cs{usepackage} und \cs{RequirePackage} in \texttt{lco}-Dateien, die im
-% Dokument geladen werden, ohnehin nicht funktioniert. Das sollte man gar
-% nicht erst probieren.
+% inside \texttt{lco}-files after \cs{begin\{document\}}}
+% \changes{v3.28}{2019/11/24}{\cs{usepackage} typo fixed}
+% \begin{description}
+% \item[ToDo:] I don't think, that the following really works. So maybe it
+% should simple be removed to get the usual error message using
+% \cs{RequirePackage} or \cs{usepackage} inside a document.
+% \end{description}
% \begin{macrocode}
\if@atdocument
\edef\reserved@a{%
@@ -256,18 +239,12 @@
}
% \end{macrocode}
% \begin{macro}{\lco@RequirePackage}
-% \changes{v3.18}{2015/06/03}{neue Anweisung (intern)}%^^A
-% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@trim@spaces} statt
-% \cs{KV@@sp@def}}%^^A
-% Da \texttt{lco}-Dateien auch noch nach \cs{begin\{document\}} geladen werden
-% können, wird hier sinnvoll auf die Anforderung von Paketen in diesem Fall
-% reagiert. In der ersten Ausbaustufe wird eine sinnvolle Fehlermeldung
-% ausgegeben. Irgend wann einmal später könnte man sich eventuell noch etwas
-% besseres einfallen lassen.
-% Das erste, optionale Argument sind ggf. Optionen. Diese werden jedoch an
-% dieser Stelle einfach ignoriert. Das zweitem, obligatorische Argument ist
-% eine Liste von Paketen. Das dritte, optionale Argument ist die Version der
-% Pakete, die an dieser Stelle ebenfalls ignoriert wird.
+% \changes{v3.18}{2015/06/03}{added}
+% \changes{v3.26}{2018/08/29}{\cs{KV@@sp@def} replaced by
+% \cs{scr@trim@spaces}}
+% \begin{description}
+% \item[ToDo:] See the note above.
+% \end{description}
% \begin{macrocode}
\newcommand*{\lco@RequirePackage}[2][]{%
\begingroup
@@ -290,16 +267,16 @@
\scr@gobbleopt
}
% \end{macrocode}
-% \end{macro}%^^A \lco@RequirePackage
-% \end{macro}%^^A \LoadLetterOption
-% \begin{macro}{\LoadLetterOptions}
-% \changes{v3.14}{2014/10/04}{Neue Anweisung}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt und damit
-% Leerzeichen zwischen den Einträgen erlaubt}%^^A
-% \changes{v3.26}{2018/08/29}{Behandlung für (nicht mehr mögliche)
-% Leerzeicheneinträge entfernt}%^^A
-% Funktioniert prinzipiell wie \cs{LoadLetterOption}, aber es werden mehrere,
-% durch Komma getrennte Optionen unterstützt.
+% \end{macro}^^A \lco@RequirePackage
+% \end{command}^^A \LoadLetterOption
+%
+% \begin{command}{\LoadLetterOptions}
+% \changes{v3.14}{2014/10/04}{added}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
+% \changes{v3.26}{2018/08/29}{special treatment of space entries not needed
+% any more}
+% Similar to \cs{LoadLetterOption} but with \meta{list of letter configuration
+% options} instead of a single \meta{letter configuration option}.
% \begin{macrocode}
\newcommand*{\LoadLetterOptions}[1]{%
\begingroup
@@ -314,28 +291,24 @@
\reserved@a
}
% \end{macrocode}
-% \end{macro}%^^A \LoadLetterOptions
+% \end{command}^^A \LoadLetterOptions
%
-% \begin{macro}{\LetterOptionNeedsPapersize}
-% \changes{v2.8q}{2001/10/17}{Neu}%^^A
-% Es besteht die Möglichkeit, in \texttt{lco}-Dateien eine bestimmte
-% Papiergröße zu fordern. Dazu wird der Name der \texttt{lco}-Datei
-% und die geforderte Papiergröse als Parameter übergeben. Stimmt die
-% Papiergröße nicht überein, so wird bei \cs{opening} eine Warnung
-% ausgegeben.
+% \begin{command}{\LetterOptionNeedsPapersize}
+% \changes{v2.8q}{2001/10/17}{added}
+% With
+% \begin{quote}
+% \cs{LetterOptionNeedsPapersize}\marg{letter configuration
+% option}\marg{paper size}
+% \end{quote}
+% inside a \meta{letter configuration option} file we can define a \meta{paper
+% size} to be used. This does not change the paper size, but adds a test to
+% \cs{opening}, that warns if another paper size is used.
% \begin{macro}{\@PapersizeWarning}
-% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A
-% \changes{v3.12}{2013/11/05}{Abweichung von 1\,mm nach unten und oben
-% erlaubt}%^^A
-% \changes{v3.23}{2017/02/22}{Verwendung des neuen \cs{PaperNameToSize}}%^^A
-% \begin{macro}{\@@PapersizeWarning}
-% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A
-% \begin{macro}{\LOPNP@size}
-% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A
-% \begin{macro}{\LOPNP@option}
-% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A
-% Zur einfacheren Realisierung wird mit vier internen Hilfsmakros
-% gearbeitet.
+% \changes{v2.8q}{2002/03/25}{added}
+% \changes{v3.12}{2013/11/05}{differences of +/- 1\,mm are tolerated}
+% \changes{v3.23}{2017/02/22}{using \cs{PaperNameToSize}}
+% \begin{macro}{\@@PapersizeWarning,\LOPNP@size,\LOPNP@option}
+% \changes{v2.8q}{2002/03/25}{added}
% \begin{macrocode}
\newcommand*{\LOPNP@option}{}
\newcommand*{\LOPNP@size}{}
@@ -413,54 +386,43 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \begin{macrocode}
\newcommand*{\LetterOptionNeedsPapersize}[2]{%
\edef\LOPNP@size{#2}\edef\LOPNP@option{#1}%
}
-% \end{macrocode}
-% \end{macro}
-%
-% \iffalse
%</body>
-%</letter>
-% \fi
+% \end{macrocode}
+% \end{command}
%
-% \subsection{Die Letter-Class-Optionen}
+% \begin{macrocode}
+%</(class|package)&letter>
+% \end{macrocode}
+%
+% \section{Implementation of the Letter Configuration Option Files}
%
-% Die Letter-Class-Optionen selbst werden wie bereits erwähnt über Dateien
-% realisiert. In den vorgefertigen Dateien für unterschiedliche Arten von
-% Briefen werden in erster Linie Pseudo-Längen passend gesetzt. In einigen
-% Fällen werden aber auch zusätzlich Befehle umdefiniert.
+% Most of the predefined letter configuration option files define a letter
+% layout, e.g, depending on a norm. The main thing in this case is to setup
+% pseudo-lengths. Sometimes additionally macros or commands are (re-)defined.
%
-% \iffalse
+% \begin{macrocode}
%<*lco>
-% \fi
-%
-% \subsubsection{Der Datei Kopf}
-%
-% \iffalse
-%<*head>
-% \fi
+% \end{macrocode}
+%
+% \subsection{The file header}
%
-% Im Kopf ist natürlich die Datei zu deklarieren:
-% \changes{v3.04}{2009/04/21}{neue LCO \texttt{NF} von Jean-Marie Pacquet
-% übernommen und ergänzt}%^^A
-% \changes{v3.04}{2009/06/26}{neue LCO \texttt{USletter2w} in Zusammenarbeit
-% mit Engelbert Buxbaum und Richard Ar\`es geschaffen}%^^A
-% \changes{v3.04}{2009/06/29}{neue LCO \texttt{UScommercial9DW} für Papier im
-% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit
-% zwei Fenstern}%^^A
-% \changes{v3.04}{2009/06/30}{neue LCO \texttt{UScommercial9} für Papier im
-% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit
-% einem Fenster auf Basis von
-% \texttt{http://www.envelopesuperstore.com/}}%^^A
-% \changes{v3.04}{2009/06/26}{seit langem existierende LCO \texttt{visualize}%^^A
-% zur Visualisierung einiger Pseudolängen aufgenommen}%^^A
-% \changes{v3.17}{2015/02/17}{neue LCOs \texttt{DIN5008A} und
-% \texttt{DIN5008B}}%^^A
+% The head has to identify the file:
+% \changes{v3.04}{2009/04/21}{\file{NF.lco} by Jean-Marie Pacquet added}
+% \changes{v3.04}{2009/06/26}{\file{USletter2w.lco} with contribution of
+% Engelbert Buxbaum and Richard Ar\`es}
+% \changes{v3.04}{2009/06/29}{\file{UScommercial9DW-lco} for paper formats
+% letter or legal and envelopes with format no.\,9 with two windows}
+% \changes{v3.04}{2009/06/30}{\file{UScommercial9} for paper formats
+% letter or legal and envelopes with format commercial No.\,9 with one
+% window based on \url{http://www.envelopesuperstore.com/}}
+% \changes{v3.04}{2009/06/26}{long existing \file{visualize.lco} added}
+% \changes{v3.17}{2015/02/17}{\file{DIN5008A.lco} and \file{DIN5008B.lco} added}
% \begin{macrocode}
+%<*head>
\ProvidesFile{%
%<visualize> visualize%
%<DIN> DIN%
@@ -479,7 +441,7 @@
.lco}[\KOMAScriptVersion\space letter-class-option]
% \end{macrocode}
%
-% Manche \texttt{LCO}-Dateien bauen auf anderen auf:
+% Some of the \file{LCO} files need others:
% \begin{macrocode}
%<*5008>
\LoadLetterOption{%
@@ -489,55 +451,51 @@
%</5008>
% \end{macrocode}
%
-% \begin{macro}{\LCOWarningNoLine}
-% \changes{v2.95}{2006/03/24}{Neu}%^^A
-% \begin{macro}{\LCOWarning}
-% \changes{v2.95}{2006/03/24}{Neu}%^^A
-% Außerdem wird ein Makro benötigt, das analog zu |\ClassWarningNoLine| oder
-% |\PackageWarningNoLine| funktioniert.
+% \begin{command}{\LCOWarningNoLine,\LCOWarning}
+% \changes{v2.95}{2006/03/24}{added}
+% These are similar to \cs{PackageWarningNoLine} and \cs{PackageWarning} but
+% for \file{lco} files.
+% \begin{macrocode}
%<*!5008>
\providecommand*\LCOWarningNoLine[2]{%
\LCOWarning{#1}{#2\@gobble}%
}
\providecommand*\LCOWarning[2]{%
\GenericWarning{%
- (#1)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces
+ (#1)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces
}{%
- Letter class option #1 Warning: #2%
+ Letter configuration option #1 Warning: #2%
}%
}
%</!5008>
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
%</head>
-%<*body>
-%<*!visualize>
-% \fi
+% \end{macrocode}
+% \end{command}
+%
%
-% \subsubsection{Der Hauptteil}
+% \subsection{Main part of layout option files}
%
-% Die Maße für einige Optionen wurden nicht von mir selbst recherchiert:
+% The dimensions of some of the options has been researched by others:
% \begin{center}
% \begin{tabular}{ll}
-% \texttt{lco}-Datei & Recherchiert von \\\hline\\[-1.6ex]
-% DIN & mir \\
-% DINmtext & mir \\
-% DIN5008A & mir \\
-% DIN5008B & mir \\
-% KOMAold & mir \\
+% \texttt{lco} file & source \\\hline\\[-1.6ex]
+% DIN & me \\
+% DINmtext & me \\
+% DIN5008A & me \\
+% DIN5008B & me \\
+% KOMAold & me \\
% SNleft & Roger Luethi \\
% SN & Roger Luethi \\
% NF & Jean-Marie Pacquet \\
% USletter2w & Engelbert Buxbaum \\
-% UScommercial9 & mir \\
-% UScommercial9DW & mir \\
-% \end{tabular}{ll}
+% UScommercial9 & me \\
+% UScommercial9DW & me \\
+% \end{tabular}
% \end{center}
%
-% Zunächst wird geprüft, ob überhaupt die richtige Klasse geladen ist.
+% Test for the correct class or package:
% \begin{macrocode}
+%<*body&!visualize>
%<*!5008>
\@ifundefined{scr@fromname@var}{%
\LCOWarningNoLine{%
@@ -552,7 +510,7 @@
%<UScommercial9> UScommercial9%
%<UScommercial9DW> UScommercial9DW%
}{%
- This letter class option file was made only\MessageBreak
+ This letter configuration option file was made only\MessageBreak
to be used with KOMA-Script letter class\MessageBreak
`scrlttr2' or letter package `scrletter'.\MessageBreak
Use with other classes and without that package\MessageBreak
@@ -561,7 +519,7 @@
}{}
% \end{macrocode}
%
-% Dann wird geprüft, ob das richtige Papierformat vorhanden ist.
+% Make sure, the correct paper size has been used:
% \begin{macrocode}
\LetterOptionNeedsPapersize{%
%<DIN> DIN%
@@ -582,11 +540,9 @@
%</USletter2w|UScommercial9|UScommercial9DW>
% \end{macrocode}
%
-% Dann werden die Werte gesetzt.
-% \begin{description}
-% \item[ZIP-Code]
-% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode}%^^A
-% wird gesetzt}
+% And now the dimensions and variables:
+% \begin{variable}{fromzipcode}
+% \changes{v3.03}{2009/03/04}{change of output name added}
% \begin{macrocode}
%<!KOMAold>\setkomavar*{fromzipcode}{%
%<DIN|DINmoretext> D}
@@ -594,29 +550,35 @@
%<NF> F}
%<USletter2w|UScommercial9|UScommercial9DW> US}
% \end{macrocode}
-% \item[Faltmarken]
-% \changes{v2.97e}{2007/11/20}{Die neuen Faltmarken werden berücksichtigt.}%^^A
+% \end{variable}
+% \begin{pseudolength}{foldmarkhpos,tfoldmarkvpos,mfoldmarkvpos,bfoldmarkvpos,
+% lforlmarkhpos}
+% \changes{v2.97e}{2007/11/20}{several new fold marks to setup}
% \begin{macrocode}
-\@setplength{foldmarkhpos}{3.5mm}
-\@setplength{tfoldmarkvpos}{%
+\setplength{foldmarkhpos}{3.5mm}
+\setplength{tfoldmarkvpos}{%
%<DIN|SwissLeft|SN> 105mm}
%<DINmoretext> 87mm}
%<KOMAold> 103.5mm}
%<NF> 99mm}
%<USletter2w|UScommercial9|UScommercial9DW> 3.75in}
-\@setplength{mfoldmarkvpos}{\z@}
-\@setplength{bfoldmarkvpos}{%
+\setplength{mfoldmarkvpos}{\z@}
+\setplength{bfoldmarkvpos}{%
%<DIN|SwissLeft|SN> 210mm}
%<DINmoretext> 192mm}
%<KOMAold> 202.5mm}
%<NF> 198mm}
%<USletter2w> 7.4in}
%<UScommercial9|UScommercial9DW> 7.375in}
-\@setplength{lfoldmarkhpos}{\z@}
+\setplength{lfoldmarkhpos}{\z@}
% \end{macrocode}
-% \item[Anschrift]
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrvpos,toaddrhpos,toaddrwidth,toaddrheight,
+% backaddrheight,specialmainindent,specialmailrightindent}
+% \changes{v3.03}{2009/06/25}{the documentation says, the back-address is part
+% of the address field}
% \begin{macrocode}
-\@setplength{toaddrvpos}{%
+\setplength{toaddrvpos}{%
%<DIN|SN> 45mm}
%<DINmoretext> 27mm}
%<SwissLeft> 35.5mm}
@@ -624,16 +586,16 @@
%<NF> 35mm}
%<USletter2w> 1.8in}
%<UScommercial9|UScommercial9DW> 2.1875in}
-\@setplength{toaddrhpos}{%
+\setplength{toaddrhpos}{%
%<DIN|DINmoretext|SwissLeft> 20mm}
%<SN> -8mm}
%<KOMAold> 1in}
-%<KOMAold>\@addtoplength{toaddrhpos}{\oddsidemargin}
+%<KOMAold>\addtoplength{toaddrhpos}{\oddsidemargin}
%<NF> -10mm}
%<USletter2w> .73in}
%<UScommercial9> 0.6875in}
%<UScommercial9DW> .5625in}
-\@setplength{toaddrwidth}{%
+\setplength{toaddrwidth}{%
%<DIN|DINmoretext> 85mm}
%<SN> 90mm}
%<SwissLeft|NF> 100mm}
@@ -641,47 +603,45 @@
%<USletter2w> 3.11in}
%<UScommercial9> 4.5in}
%<UScommercial9DW> 3.625in}
-% \end{macrocode}
-% \changes{v3.03}{2009/06/25}{Anschriftfeld enthält laut Doku die
-% Rücksendeadresse, also machen wir das jetzt auch so}%^^A
-% \begin{macrocode}
-\@setplength{toaddrheight}{%
+\setplength{toaddrheight}{%
%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF> 45mm}
%<USletter2w> 1.17in}
%<UScommercial9|UScommercial9DW> 1.125in}
%</!5008>
-\@setplength{toaddrindent}{%
+\setplength{toaddrindent}{%
%<DIN|DINmoretext|SN|SwissLeft|KOMAold|USletter2w|UScommercial9|UScommercial9DW> \z@}
-%<*5008>
- 5mm}
-\@setplength{locvpos}{%
- \dimexpr\useplength{toaddrvpos}+\useplength{backaddrheight}}
-%</5008>
-%<*!5008>
+%<5008> 5mm}
%<NF> 10mm}
-\@setplength{backaddrheight}{%
+%<*!5008>
+\setplength{backaddrheight}{%
%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF> 5mm}
%<USletter2w|UScommercial9|UScommercial9DW> \z@}
%<USletter2w|UScommercial9|UScommercial9DW>\KOMAoptions{backaddress=false}
-\@setplength{specialmailindent}{\fill}
-\@setplength{specialmailrightindent}{1em}
+\setplength{specialmailindent}{\fill}
+\setplength{specialmailrightindent}{1em}
%</!5008>
%<*5008>
-\@setplength{specialmailindent}{\useplength{toaddrindent}}
-\@setplength{specialmailrightindent}{\z@}
+\setplength{specialmailindent}{\useplength{toaddrindent}}
+\setplength{specialmailrightindent}{\z@}
%</5008>
% \end{macrocode}
-% \item[Absenderergänzung]
+% \end{pseudolength}
+% \begin{pseudolength}{locvpos,locwidth,lochpos}
% \begin{macrocode}
-\@setplength{locwidth}{%
+%<*5008>
+\setplength{locvpos}{%
+ \dimexpr\useplength{toaddrvpos}+\useplength{backaddrheight}}
+%</5008>
+\setplength{locwidth}{%
%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF|USletter2w|UScommercial9|UScommercial9DW> \z@}
%<5008> 75mm}
-%<5008>\@setplength{lochpos}{10mm}
+%<5008>\setplength{lochpos}{10mm}
%<*!5008>
% \end{macrocode}
-% \item[Kopf]
+% \end{pseudolength}
+% \begin{pseudolength}{firstheadvpos,firstheadhpos,firstheadwidth}
% \begin{macrocode}
-\@setplength{firstheadvpos}{%
+\setplength{firstheadvpos}{%
%<DIN|DINmoretext|SN|SwissLeft> 8mm}
%<KOMAold> 6mm}
%<NF> 15mm}
@@ -689,59 +649,61 @@
%<UScommercial9|UScommercial9DW> .4375in}
%</!5008>
%<*5008>
-\@setplength{firstheadhpos}{%
+\setplength{firstheadhpos}{%
\dimexpr \useplength{toaddrhpos}+\useplength{toaddrindent}}
%</5008>
-\@setplength{firstheadwidth}{%
+\setplength{firstheadwidth}{%
%<KOMAold> \textwidth}
%<NF> 170mm}
%<*DIN|DINmoretext|SN|SwissLeft|UScommercial9>
\paperwidth}
\ifdim \useplength{toaddrhpos}>\z@
- \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
+ \addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
\else
- \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
+ \addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
\fi
%</DIN|DINmoretext|SN|SwissLeft|UScommercial9>
%<5008> \dimexpr 125mm-\useplength{firstheadhpos}}
%<*USletter2w>
\paperwidth}
-\@addtoplength[-]{firstheadwidth}{.68in}
+\addtoplength[-]{firstheadwidth}{.68in}
%</USletter2w>
%<*UScommercial9DW>
\paperwidth}
-\@addtoplength[-]{firstheadwidth}{.25in}
+\addtoplength[-]{firstheadwidth}{.25in}
%</UScommercial9DW>
% \end{macrocode}
-% \item[Fuß]
-% \changes{v2.9u}{2005/03/05}{Der Fuß hat optional eine feste Position 16\,mm
-% über der unteren Papierkante.}%^^A
+% \end{pseudolength}
+% \begin{pseudolength}{firstfootwidth,firstfootvpos}
+% \changes{v2.9u}{2005/03/05}{optional the footer is placed 16\,mm above the
+% lower paper edge}
% \begin{macrocode}
-%<!5008>\@setplength{firstfootwidth}{\useplength{firstheadwidth}}
+%<!5008>\setplength{firstfootwidth}{\useplength{firstheadwidth}}
%<*5008>
-\@setplength{firstfoothpos}{%
+\setplength{firstfoothpos}{%
\dimexpr\useplength{toaddrhpos}+\useplength{toaddrindent}}%
-\@setplength{firstfootwidth}{%
+\setplength{firstfootwidth}{%
\dimexpr \paperwidth-\useplength{toaddrhpos}-\useplength{firstfoothpos}}%
%</5008>
-%<KOMAold>\@setplength{firstfootvpos}{\paperheight}
-%<KOMAold>\@addtoplength{firstfootvpos}{-2cm}
+%<KOMAold>\setplength{firstfootvpos}{\paperheight}
+%<KOMAold>\addtoplength{firstfootvpos}{-2cm}
%<!KOMAold&!NF>\ifnum \scr@compatibility >\@nameuse{scr@v@2.9t}\relax
-%<!KOMAold&!NF> \@setplength{firstfootvpos}{\paperheight}
-%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{-16mm}
+%<!KOMAold&!NF> \setplength{firstfootvpos}{\paperheight}
+%<!KOMAold&!NF> \addtoplength{firstfootvpos}{-16mm}
%<!KOMAold&!NF>\else
-%<!KOMAold&!NF> \@setplength{firstfootvpos}{1in}
-%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\topmargin}
-%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\headheight}
-%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\headsep}
-%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\textheight}
-%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\footskip}
+%<!KOMAold&!NF> \setplength{firstfootvpos}{1in}
+%<!KOMAold&!NF> \addtoplength{firstfootvpos}{\topmargin}
+%<!KOMAold&!NF> \addtoplength{firstfootvpos}{\headheight}
+%<!KOMAold&!NF> \addtoplength{firstfootvpos}{\headsep}
+%<!KOMAold&!NF> \addtoplength{firstfootvpos}{\textheight}
+%<!KOMAold&!NF> \addtoplength{firstfootvpos}{\footskip}
%<!KOMAold&!NF>\fi
-%<NF>\@setplength{firstfootvpos}{266.679mm}
+%<NF>\setplength{firstfootvpos}{266.679mm}
% \end{macrocode}
-% \item[Geschäftszeile]
+% \end{pseudolength}
+% \begin{pseudolength}{refvpos,refaftervskip,refwidth}
% \begin{macrocode}
-%<!(5008&B)>\@setplength{refvpos}{%
+%<!(5008&B)>\setplength{refvpos}{%
%<DIN|SN> 98.5mm}
%<DINmoretext> 80.5mm}
%<5008&A> 79.4mm}
@@ -750,52 +712,45 @@
%<NF> \useplength{tfoldmarkvpos}}
%<USletter2w> 3.1in}
%<UScommercial9|UScommercial9DW> 3.4375in}
-\@setplength{refaftervskip}{%
+\setplength{refaftervskip}{%
%<!KOMAold&!5008> \baselineskip}
%<KOMAold> 2\baselineskip}
%<5008> 8.46mm}
%<*!5008>
% \end{macrocode}
-% Bei der Breite der Geschäftszeile brauchen wir wieder eine Sonderlösung,
-% damit die Option "`wide"' auch später noch gesetzt werden kann. Also
-% verwenden wir hier den Wert 0 als mit der Bedeutung "`ist bei \cs{opening}
-% zu berechnen.
+% The width of the reference line is somehow special, because setting of
+% option \opt{refline=wide} or \opt{refline=narrow} should be possible after
+% loading a \file{lco} file. So we use the initial special value 0 and
+% calculate it inside \cs{opening} if it is still 0.
% \begin{macrocode}
-\@setplength{refwidth}{0pt}
+\setplength{refwidth}{0pt}
% \end{macrocode}
-% \item[Signature]
+% \end{pseudolength}
+% \begin{pseudolength}{sigindent,sigbeforevskip}
% \begin{macrocode}
-\@setplength{sigindent}{0mm}
-\@setplength{sigbeforevskip}{2\baselineskip}
+\setplength{sigindent}{0mm}
+\setplength{sigbeforevskip}{2\baselineskip}
%<DIN|DINmoretext|SN|SwissLeft>\let\raggedsignature=\centering
%<KOMAold|NF|USletter2w|UScommercial9|UScommercial9DW>\let\raggedsignature=\raggedright
% \end{macrocode}
-% \end{description}
+% \end{pseudolength}
% \begin{macro}{\scr@default@firsthead@fromaddress@hook}
-% Einst folgte hier die Definition eines Hooks in der Form
-% \changes{v3.13b}{2014/10/04}{\cs{@firsthead} existiert nicht mehr, daher nun
-% mit einem neu geschaffenen \emph{hook}}%^^A
-% \changes{v3.27}{2019/04/02}{\emph{hook} entfernt}%^^A
-% \begin{macrocode}
-%<*DINmoretext&ignorethis>
-\def\scr@default@firsthead@fromaddress@hook{\def\\{,\ \@gobble}}
-%</DINmoretext&ignorethis>
-% \end{macrocode}
-% Da diese Definition fehlerhaft ist, korrekt wäre etwas wie:
-% \begin{macrocode}
-%<*DINmoretext&ignorethis>
-\def\scr@default@firsthead@fromaddress@hook{%
- \renewcommand*\\[1][]{,\ \ignorespaces}%
-}
-%</DINmoretext&ignorethis>
-% und das in 15 Jahren niemandem aufgefallen ist, wird davon ausgegangen, dass
-% davon nie jemand Gebrauch gemacht hat und wir deshalb einfach darauf
-% verzichten können.
-% \end{macrocode}
+% \changes{v3.13b}{2014/04/02}{added}
+% \changes{v3.27}{2019/04/02}{removed}
% \end{macro}
%
-% Außerdem gibt es noch die Kompatibilitätseinstellungen, die ebenfalls von
-% \texttt{KOMAold} aktiviert werden.
+% \begin{command}{\yourref,\yourmail,\myref,\customer,\invoice,\defaultfields,
+% \toname,\toaddress,\branch,\signature,\fromsig,\name,
+% \fromname,\location,\fromlocation,\backaddress,
+% \frombackaddress,\telephone,\telephonenum,\specialmail,
+% \title,\subject,\place,\fromplace,\ccnameseparator,
+% \enclnameseparator,\foldmarkson,\foldmarksoff,\addrfieldon,
+% \addrfieldoff,\subjecton,\subjectoff,\subjectafteron,
+% \subjectafteroff}
+% \begin{macro}{\@title,\@subject}
+% \begin{variable}{refitemi,refitemii,refitemiii,branch}
+% We have also to do the compatibility commands and variables for
+% \file{KOMAold.lco}.
% \begin{macrocode}
%<*KOMAold>
\def\yourref{\setkomavar{yourref}}
@@ -834,6 +789,12 @@
\def\location{\setkomavar{location}}
\def\fromlocation{\usekomavar{location}}
\def\backaddress{\setkomavar{backaddress}}
+% \end{macrocode}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% Note: This is dangerous if someone uses a new \KOMAScript{} but copies the
+% wrong code.
+% \begin{macrocode}
\def\@tempa{%
\Ifkomavarempty{fromname}{}{%
\strut\ignorespaces\usekomavar{fromname}%
@@ -841,15 +802,6 @@
\Ifkomavarempty{fromaddress}{}{%
\strut\ignorespaces\usekomavar{fromaddress}}%
}
-% \end{macrocode}
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% Aufgrund der Änderung bezüglich \cs{ifkomavarempty}/\cs{Ifkomavarempty} wird
-% hier aus Kompatibilitätsgründen vorerst zweigleisig gefahren. Es kann aber
-% an dieser Stelle tatsächlich zu einer Inkompatibilität kommen, wenn jemand
-% den Code kopiert hat und jetzt eine neue Version von \KOMAScript{}
-% verwendet.
-% \begin{macrocode}
\ifx\@tempa\scr@backaddress@var%
\setkomavar{backaddress}{}
\else
@@ -892,16 +844,20 @@
\@ObsoleteCommand{\subjectafteroff}{subject=beforeopening}}
%</KOMAold>
% \end{macrocode}
+% \end{variable}
+% \end{macro}
+% \end{command}
%
-% Und für \texttt{DIN5008} braucht es dann noch einige zusätzliche
-% Einstellungen:
-% \changes{v3.30}{2020/02/25}{unerwünschtes Leerzeichen am Ende der Warnungen
-% beseitigt}%^^A
+%
+% \begin{pseudolength}{specialmailheight}
+% \begin{macro}{\@PapersizeWarning}
+% For \file{DIN5008a.lco} and \file{DIN5008b.lco} we need additional settings:
+% \changes{v3.30}{2020/02/25}{white spaces and end of warning removed}
% \begin{macrocode}
%</!5008>
%<*5008>
-\@newplength{specialmailheight}
-\@setplength{specialmailheight}{12.7mm}
+\newplength{specialmailheight}
+\setplength{specialmailheight}{12.7mm}
\areaset[5mm]{165mm}{233mm}
\KOMAoptions{%
fromalign=locationleft,
@@ -947,10 +903,12 @@
\endgroup
}
% \end{macrocode}
+% \end{macro}
+% \end{pseudolength}
% \begin{macro}{\backaddr@format}
-% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
-% \cs{unskip}\cs{strut}}%^^A
-% Nicht unterstrichene, mehrzeilig oben ausgerichtete Rücksendeadresse.
+% \changes{v3.25}{2017/11/15}{using \cs{scr@endstrut} instead of
+% \cs{unskip}\cs{strut}}
+% Multi line back address without underline.
% \begin{macrocode}
\renewcommand{\backaddr@format}[1]{\hspace*{\useplength{toaddrindent}}%
\parbox[t][\useplength{backaddrheight}][t]%
@@ -960,9 +918,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\specialmail@format}
-% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
-% \cs{unskip}\cs{strut}}%^^A
-% Mehrzeilig oben ausgerichtete Versandart.
+% \changes{v3.25}{2017/11/15}{using \cs{scr@endstrut} instead of
+% \cs{unskip}\cs{strut}}
+% Multi line special sending.
% \begin{macrocode}
\renewcommand{\specialmail@format}[1]{%
\parbox[t][\useplength{specialmailheight}][t]%
@@ -973,7 +931,8 @@
}
% \end{macrocode}
% \end{macro}
-% Und Schrifteinstellungen:
+% \begin{fontelement}{specialmail,backaddress,addressee,fromname,fromaddress,refvalue}
+% Some font settings.
% \begin{macrocode}
\setkomafont{specialmail}{\sffamily\fontsize{10pt}{12pt}\selectfont}
\setkomafont{backaddress}{\sffamily\fontsize{8pt}{10pt}\selectfont}
@@ -983,33 +942,32 @@
\setkomafont{refvalue}{\sffamily\fontsize{10pt}{12pt}\selectfont}
\let\raggedsignature\raggedright
%</5008>
+%</body&!visualize>
% \end{macrocode}
+% \end{fontelement}
%
-% \iffalse
-%</!visualize>
-%<*visualize>
-% \fi
%
-% \subsection{Makros zur Visualisierung diverser Felder in einem Brief}
+% \subsection{Visualizing several fields of a letter}
%
-% Diese Makros werden nur von \texttt{visualize.lco} verwendet und stellen den
-% Hauptteil dieser LCO dar.
+% These macros are using be \file{visualize.lco} only.
%
-% Das Paket benötigt \textsf{eso-pic}.
-% \changes{v3.18}{2015/06/03}{lade \textsf{eso-pic} unbedingt}%^^A
+% It needs \pkg{eso-pic}.
+% \changes{v3.18}{2015/06/03}{loading \textsf{eso-pic} always}
% \begin{macrocode}
+%<*visualize&body>
\RequirePackage{eso-pic}
% \end{macrocode}
%
-% \begin{macro}{\showfields}
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}%^^A
-% Diese Anweisung erlaubt es, eine Reihe von Felder zu visualisieren. Dazu
-% gibt man die gewünschten Felder als Komma separierte Liste im ersten und
-% einzigen Argument der Anweisung an. Gibt man ein unbekanntes Feld an, so
-% wird nicht etwa ein Fehler, sondern nur eine Warnung ausgegeben. Die
-% Visualisierung erfolgt im Hintergrund. Dies wird mit Hilfe des Pakets
-% \textsf{eso-pic} erreicht. Wichtig ist noch, dass die Anweisung nicht
-% zurückgenommen werden kann.
+% \begin{command}{\showfields}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
+% Command
+% \begin{quote}
+% \cs{showfields}\marg{field list}
+% \end{quote}
+% is used to visualize fields of the note paper. The \meta{field list} is a
+% comma-separated list of field names. Unknown fields do not result in errors
+% but warnings only. The visualization is done in the background using
+% \pkg{eso-pic}. A visualized field cannot be un-visualized.
% \begin{macrocode}
\newcommand*{\showfields}[1]{%
\AtBeginLetter{%
@@ -1035,33 +993,33 @@
}%
}
% \end{macrocode}
-% \begin{KOMAfont}{field}
-% Die Visualisierung erfolgt dabei in einer wählbaren Farbe, die über das
-% Element \cs{field} definiert ist. Voreingestellt ist dabei
-% \cs{normalcolor}.
+% \begin{fontelement}{field}
+% The element is used to change the color. Changing the font doesn't make sense.
% \begin{macrocode}
\newkomafont{field}{\normalcolor}
% \end{macrocode}
-% \end{KOMAfont}
-% \end{macro}
+% \end{fontelement}
+% \end{command}
%
-% \begin{macro}{\showfield}
-% Die Visualisierung der einzelnen Felder erfolgt über eigene Anweisungen des
-% Aufbaus \cs{showfield@\emph{Feldname}}. In der Regel sind die Felder
-% rechteckig. Zur Visualisierung solcher Felder können daher einheitliche
-% Anweisungen verwendet werden. Diese besitzen vier Argumente:
-% \begin{enumerate}
-% \item Abstand vom linken Rand (x-Koordinate des Rahmens)
-% \item Abstand vom oberen Rand (y-Koordinate des Rahmens)
-% \item Breite des Feldes
-% \item Höhe des Feldes; ist dieser Wert negativ gibt es keine feste Höhe,
-% sondern nur eine Art unbestimmte Ausdehnung mit einer Mindesthöhe
-% \end{enumerate}
+% \begin{command}{\showfield}
+% A single field is visualized using:
+% \begin{quote}
+% \cs{showfield}\marg{field name}
+% \end{quote}
+% This uses a macro \cs{showfield@\meta{field name}}. Usually fields are
+% rectangles. Such fields can be visualized always the same way using four
+% parameters: \meta{offset from left}, \meta{offset from top}, \meta{width},
+% \meta{height}. A negative \meta{height} means a minimum of -\meta{height}
+% but maybe more.
%
% \begin{macro}{\showfield@by@frame}
-% Diese Anweisung visualisiert ein rechteckiges Feld durch Rahmen. Bei einer
-% negativen Höhe wird ein unten offener Rahmen gezeichnet, bei dem die
-% vertikalen Linien als Pfeile nach unten ausgeführt werden.
+% To show a field by a frame
+% \begin{quote}
+% \cs{showfield@by@frame}\marg{offset from left}\marg{offset from top}%
+% \marg{width}\marg{height}
+% \end{quote}
+% is used. If \meta{height} is negative, arrows of length -\meta{height} are
+% used and the frame bottom is omitted.
% \begin{macrocode}
\newcommand*{\showfield@by@frame}[4]{%
\thinlines
@@ -1088,9 +1046,12 @@
% \end{macro}
%
% \begin{macro}{\showfield@by@edges}
-% Diese Anweisung visualisert ein rechteckiges Feld, indem es die Ecken des
-% Feldes durch kleine Striche markiert. Bei negativer Höhe entfallen die
-% unteren Eckmarkierungen.
+% To show a field by edge markers
+% \begin{quote}
+% \cs{showfield@by@edges}\marg{offset from left}\marg{offset from top}%
+% \marg{width}\marg{height}
+% \end{quote}
+% is used. If \meta{height} is negative the bottom markers are omitted.
% \begin{macrocode}
\newcommand*{\showfield@by@edges}[4]{%
\thinlines
@@ -1108,19 +1069,21 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\edgesize}
-% Die Länge der Ecklinien wird über dieses Makro bestimmt. Voreingestellt ist
-% 1\,ex.
+% \begin{command}{\edgesize}
+% The size of the edges is 1\,ex by default.
% \begin{macrocode}
\newcommand*{\edgesize}{1ex}
% \end{macrocode}
-% \end{macro}
+% \end{command}
% \end{macro}
%
% \begin{macro}{\showfield@by@rule}
-% Diese Anweisung visualisiert ein rechteckiges Feld, indem es das komplette
-% Feld einfärbt. Es wird hier nicht zwischen unten offenen und geschlossenen
-% Feldern unterschieden.
+% To show a field by a filled frame (without frame border)
+% \begin{quote}
+% \cs{showfield@by@rune}\marg{offset from left}\marg{offset from top}%
+% \marg{width}\marg{height}
+% \end{quote}
+% is used. The absolute value of \meta{height} is used.
% \begin{macrocode}
\newcommand*{\showfield@by@rule}[4]{%
\ifdim #4<\z@
@@ -1132,16 +1095,21 @@
% \end{macrocode}
% \end{macro}
%
-% Die Voreinstellung für die Visualsierung ist mit Rahmen:
+% \begin{command}{\showfield}
+% The default is to use a frame.
% \begin{macrocode}
\newcommand*{\showfield}{}
\let\showfield\showfield@by@frame
% \end{macrocode}
+% \end{command}
%
-% \begin{macro}{\setshowstyle}
-% Dieser Stil der Visualisierung kann per Anweisung umgeschaltet
-% werden. Existiert ein Stil nicht, so wird kein Fehler gemldet, sondern
-% lediglich eine Warnung und der Standardstil verwendet:
+% \begin{command}{\setshowstyle}
+% But the default can changed using
+% \begin{quote}
+% \cs{setshowstyle}\marg{style}
+% \end{quote}
+% A warning (no error!) is reported if \cs{showfield@by@\meta{style}} does not
+% exist. In this case \meta{style} is \texttt{frame} again.
% \begin{macrocode}
\newcommand*{\setshowstyle}[1]{%
\@ifundefined{showfield@by@#1}{%
@@ -1155,12 +1123,12 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
-% Die folgenden Felder werden derzeit unterstützt:
+% Currently following fields are available:
% \begin{macro}{\showfield@test}
-% ein Testfeld \texttt{test} mit den Koordinaten:
+% \texttt{test} is a test field with coordinates:
% $(1\,\mathrm{cm},1\,\mathrm{cm})\times(10\,\mathrm{cm},15\,\mathrm{cm})$
% \begin{macrocode}
\newcommand*{\showfield@test}{%
@@ -1169,9 +1137,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\showfield@head}
-% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos}%^^A
-% beachtet}
-% das Feld \texttt{head} für den Kopfbereich des Briefbogens:
+% \changes{v3.05}{2009/11/09}{using \plen{firstheadhpos}}
+% \texttt{head} is the header of the note paper.
% \begin{macrocode}
\newcommand*{\showfield@head}{%
\ifdim\useplength{firstheadhpos}<\paperwidth
@@ -1199,9 +1166,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\showfield@foot}
-% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos}%^^A
-% beachtet}
-% das Feld \texttt{foot} für den Fußbereich des Briefbogens:
+% \changes{v3.05}{2009/11/09}{using \plen{firstfoothpos}}
+% \texttt{foot} is the footer of the note paper.
% \begin{macrocode}
\newcommand*{\showfield@foot}{%
\ifdim\useplength{firstfoothpos}<\paperwidth
@@ -1229,9 +1195,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\showfield@address}
-% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in
-% \textsf{scrlttr}~3.03b angepasst.}
-% das Feld \texttt{address} für das Feld mit der Anschrift:
+% \changes{v3.07a}{2011/01/10}{implementation adapted for change in
+% \cls*{scrlttr2} 3.03b}
+% \texttt{address} is the address field of the addressee.
% \begin{macrocode}
\newcommand*{\showfield@address}{%
\setlengthtoplength{\@tempskipa}{toaddrhpos}%
@@ -1246,34 +1212,34 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\showfield@location}
-% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in
-% \textsf{scrlttr}~3.03b angepasst.}
-% das Feld \texttt{location} mit der Absenderergänzung:
+% \changes{v3.07a}{2011/01/10}{implementation adapted for change in
+% \cls*{scrlttr2} 3.03b}
+% \texttt{location} is the field with extra information about the sender.
% \begin{macrocode}
\newcommand*{\showfield@location}{%
\begingroup
\ifdim \useplength{locwidth}=\z@%
- \@setplength{locwidth}{\paperwidth}%
+ \setplength{locwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
- \@addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
+ \addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
\else
- \@addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
+ \addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
\fi
- \@addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
+ \addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
\if@bigloc%
- \@setplength[.66667]{locwidth}{\useplength{locwidth}}%
+ \setplength[.66667]{locwidth}{\useplength{locwidth}}%
\else%
- \@setplength[.5]{locwidth}{\useplength{locwidth}}%
+ \setplength[.5]{locwidth}{\useplength{locwidth}}%
\fi%
\fi%
\ifdim \useplength{lochpos}=\z@%
- \@setplength{lochpos}{\useplength{toaddrhpos}}%
+ \setplength{lochpos}{\useplength{toaddrhpos}}%
\fi
\ifdim \useplength{locvpos}=\z@%
- \@setplength{locvpos}{\useplength{toaddrvpos}}%
+ \setplength{locvpos}{\useplength{toaddrvpos}}%
\fi
\ifdim \useplength{locheight}=\z@%
- \@setplength{locheight}{\useplength{toaddrheight}}%
+ \setplength{locheight}{\useplength{toaddrheight}}%
\fi
\setlengthtoplength[-]{\@tempskipa}{lochpos}%
\ifdim \@tempskipa<\z@
@@ -1289,23 +1255,23 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\showfield@refline}
-% das Feld mit der Geschäftszeile:
+% \texttt{refline} is the reference line.
% \begin{macrocode}
\newcommand*{\showfield@refline}{%
\begingroup
\ifdim\useplength{refwidth}=\z@
\if@refwide
- \@setplength{refwidth}{\paperwidth}%
+ \setplength{refwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
- \@setplength{refhpos}{\useplength{toaddrhpos}}%
+ \setplength{refhpos}{\useplength{toaddrhpos}}%
\else
- \@setplength[-]{refhpos}{\useplength{toaddrhpos}}%
+ \setplength[-]{refhpos}{\useplength{toaddrhpos}}%
\fi
- \@addtoplength[-2]{refwidth}{\useplength{refhpos}}%
+ \addtoplength[-2]{refwidth}{\useplength{refhpos}}%
\else
- \@setplength{refwidth}{\textwidth}%
- \@setplength{refhpos}{\oddsidemargin}%
- \@addtoplength{refhpos}{1in}%
+ \setplength{refwidth}{\textwidth}%
+ \setplength{refhpos}{\oddsidemargin}%
+ \addtoplength{refhpos}{1in}%
\fi
\else\ifdim\useplength{refhpos}=\z@
\begingroup
@@ -1322,7 +1288,7 @@
\divide\@tempdima by\@tempdimc
\fi
\edef\@tempa{\noexpand\endgroup
- \noexpand\@setplength{refhpos}{\the\@tempdima}}%
+ \noexpand\setplength{refhpos}{\the\@tempdima}}%
\@tempa
\fi\fi
\showfield{\useplength{refhpos}}{\useplength{refvpos}}%
@@ -1332,19 +1298,24 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\showenvelope}
+% \begin{command}{\showenvelope}
% \begin{macro}{\@showenvelope}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@showenvelope}
-% \begin{macro}{\@@@showenvelope}
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@showenvelope,\@@@showenvelope}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Es kann auch ein Briefumschlag angezeigt werden. Dazu müssen verschiedene
-% Parameter des Umschlags bekannt sein. Der Umschlag wird immer hochkant auf
-% der aktuellen Seite angezeigt. Hierfür wird das Paket \textsf{graphicx}
-% benötigt.
-% \changes{v3.18}{2015/06/03}{lade \textsf{graphicx} unbedingt}%^^A
+% \cs{kernel@ifnextchar}}
+% \changes{v3.18}{2015/06/03}{always loading \pkg{graphicx}}
+% We can also visualize an envelope. Here are several parameters needed.
+% \begin{quote}
+% \cs{showenvelope}\marg{width}\marg{height}\marg{hoffset}\marg{voffset}%
+% \marg{commands}
+% \end{quote}
+% The envelope is shown in portrait format at the current page. Package
+% \pkg{graphicx} is used. The \meta{hoffset} is the horizontal distance of the
+% note paper from the left and right edge of the envelope. The \meta{voffset}
+% is the same for the top and bottom edge. The \meta{commands} is extra code
+% to show the some elements.
% \begin{macrocode}
\RequirePackage{graphicx}
\newcommand*{\showenvelope}{}
@@ -1400,14 +1371,6 @@
}
\def\@@showenvelope(#1,#2)(#3,#4)[#5]{%
% \end{macrocode}
-% Die Argumente sind:
-% \begin{enumerate}
-% \item Breite des Umschlags,
-% \item Höhe des Umschlags,
-% \item Abstand des Briefbogens vom linken und rechten Rand des Umschlags,
-% \item Abstand des Briefbogens vom oberen und unteren Rand des Umschlags,
-% \item optionale weitere Anweisungen, zum Setzen von Elementen.
-% \end{enumerate}
% \begin{macrocode}
\newpage
\vspace*{\fill}
@@ -1508,20 +1471,21 @@
\newpage
}
% \end{macrocode}
-% \begin{KOMAfont}{envelope}
-% Farbe des Umschlagrahmens.
+% \begin{fontelement}{envelope}
+% Used to change the color of the envelope frame (font changes do not make sense).
% \begin{macrocode}
\newkomafont{envelope}{\normalcolor}
% \end{macrocode}
-% \end{KOMAfont}
-% \begin{KOMAfont}{letter}
-% Farbe des getrichelten Briefbogens im Umschlag
+% \end{fontelement}
+% \begin{fontelement}{letter}
+% Used to change the color of the dashed note paper inside the envelope (font
+% changes do not make sende).
% \begin{macrocode}
\newkomafont{letter}{\normalcolor}
% \end{macrocode}
-% \end{KOMAfont}
-% \begin{macro}{\unmeasuredFrame}
-% Ein Rahmen ohne Maßlinien.
+% \end{fontelement}
+% \begin{command}{\unmeasuredFrame}
+% Show a frame without measuring.
% \begin{macrocode}
\newcommand*{\unmeasuredFrame}{}
\def\unmeasuredFrame(#1,#2){%
@@ -1531,12 +1495,10 @@
\put(0,\LenToUnit{#2}){\line(0,-1){\LenToUnit{#2}}}%
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\measuredFrameLB}
-% \begin{macro}{\measuredFrameLT}
-% \begin{macro}{\measuredFrameRB}
-% \begin{macro}{\measuredFrameRT}
-% Die Maßlinien für ein Rechteck.
+% \end{command}
+% \begin{command}{\measuredFrameLB,\measuredFrameLT,\measuredFrameRB,
+% \measuredFrameRT}
+% Show the measuring of a frame.
% \begin{macrocode}
\newcommand*{\measuredFrameLB}{}
\def\measuredFrameLB(#1,#2){%
@@ -1563,15 +1525,12 @@
\put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}%
}
% \end{macrocode}
+% \end{command}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\measureLineV}
-% Vertikale Maßlinie ohne Beschriftung:
+% \end{command}
+% \begin{command}{\measureLineV}
+% Vertical measuring without text.
% \begin{macrocode}
\newcommand*{\measureLineV}[1]{%
\begin{picture}(0,0)
@@ -1582,10 +1541,9 @@
\end{picture}
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\measureLineVL}
-% \begin{macro}{\measureLineVR}
-% Vertikale Maßlinie mit Beschriftung links bzw. rechts.
+% \end{command}
+% \begin{command}{\measureLineVL,\measureLineVR}
+% Vertical measuring with text left or right of the line.
% \begin{macrocode}
\newcommand*{\measureLineVL}[1]{%
\begin{picture}(0,0)
@@ -1602,10 +1560,8 @@
\end{picture}
}
% \end{macrocode}
-% \begin{macro}{\ValPerUnit}
-% \begin{macro}{\unitfactor}
-% Zeige die Längen in \cs{unitlength} mit einer Genauigkeit von
-% 1/\cs{unitfactor} an.
+% \begin{command}{\ValPerUnit,\unitfactor}
+% Shows a length in \len{unitlength} with a accuracy of 1/\cs{unitfactor}.
% \begin{macrocode}
\newcommand*{\ValPerUnit}[1]{%
\begingroup
@@ -1617,12 +1573,9 @@
}
\newcommand*{\unitfactor}{1}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\measureLineH}
-% Horizontale Maßlinie ohne Beschriftung:
+% \end{command}
+% \begin{command}{\measureLineH}
+% Horizontal measuring without text.
% \begin{macrocode}
\newcommand*{\measureLineH}[1]{%
\begin{picture}(0,0)
@@ -1632,10 +1585,9 @@
\end{picture}
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\measureLineHB}
-% \begin{macro}{\measureLineHT}
-% Horizontale Maßlinie mit Beschriftung darunter bzw. oben.
+% \end{command}
+% \begin{command}{\measureLineHB,\measureLineHT}
+% Horizontal measuring with text below or above.
% \begin{macrocode}
\newcommand*{\measureLineHB}[1]{%
\begin{picture}(0,0)
@@ -1654,19 +1606,18 @@
\end{picture}
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{KOMAfont}{measure}
-% Farbe der Maßlinien.
+% \end{command}
+% \begin{fontelement}{measure}
+% Used to change the color of a measuring line (font changes doe not make sense).
% \begin{macrocode}
\newkomafont{measure}{\normalcolor}
% \end{macrocode}
-% \end{KOMAfont}
-% \end{macro}
+% \end{fontelement}
+% \end{command}
%
-% \begin{macro}{\showISOenvelope}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Zeigt einen DIN/ISO C4, C5, DL=C5/6, C6/5 Umschlag.
+% \begin{command}{\showISOenvelope}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Show a DIN/ISO C4, C5, DL=C5/6, or C6/5 envelope, depending on the argument.
% \begin{macrocode}
\newcommand*{\showISOenvelope}[1]{%
\Ifstr{#1}{C4}{%
@@ -1696,11 +1647,11 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\showUScommercial}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Zeige ein US commercial Umschlag der Nummer 9 und 10
+% \begin{command}{\showUScommercial}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Show a US commercial no. 9 or 10 envelope, depending on the argument.
% \begin{macrocode}
\newcommand*{\showUScommercial}[1]{%
\Ifstr{#1}{9}{%
@@ -1714,29 +1665,27 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\showUScheck}
-% Zeige einen US check Umschag.
+% \begin{command}{\showUScheck}
+% Show a US check envelope.
% \begin{macrocode}
\newcommand*{\showUScheck}{%
\showenvelope(8.625in,3.625in)%
}
+%</visualize&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</visualize>
-%<*!visualize>
-% \fi
%
-% \begin{macro}{\showUSletterCixDW}
-% Ein Umschlag im Format commercial No. 9 mit 2 Fenstern,
-% Absenderfenster $3\frac{1}{2}\,\mathrm{in}\times\frac{7}{8}\,\mathrm{in}$,
-% $\frac{5}{16}\,\mathrm{in}$ von links und $2\frac{1}{2}\,\mathrm{in}$ von
-% unten.
+% \begin{command}{\showUSletterCixDW}
+% Show a Us commercial no. 9 envelope with two windows (this is defined in
+% \file{UScommercial9DW.lco} not in \file{visualize.lco}).
+% The sender window is $3\frac{1}{2}\,\mathrm{in}\times\frac{7}{8}\,\mathrm{in}$,
+% $\frac{5}{16}\,\mathrm{in}$ from the left and $2\frac{1}{2}\,\mathrm{in}$
+% from the bottom.
% \begin{macrocode}
-%<*UScommercial9DW>
+%<*!visualize&UScommercial9DW&body>
\newcommand*{\showUSletterCixDW}{%
\showUScommercial9[{%
\thicklines
@@ -1748,22 +1697,23 @@
(3.5in,.875in)%
}]%
}
-%</UScommercial9DW>
+%</!visualize&UScommercial9DW&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</!visualize>
-%</body>
+% \begin{macrocode}
%</lco>
-% \fi
-%
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-letterclassoptions.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx b/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx
index da04fa553c..646532522f 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-listsandtabulars.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-listsandtabulars.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-listsandtabulars.dtx 3563 2021-02-15 18:40:44Z kohm $
+%%% From File: $Id: scrkernel-listsandtabulars.dtx 3708 2022-02-15 15:24:12Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-02-15 19:40:44 +0100 (Mon, 15 Feb 2021) $
+ \filedate$Date: 2022-02-15 16:24:12 +0100 (Di, 15. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
+ \filerevision$Revision: 3708 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-listsandtabulars.dtx}%
@@ -73,71 +36,60 @@
(lists and tabulars)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-listsandtabulars.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}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-listsandtabulars.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/07/01}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/15}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/15}{whole implementation documentation in English}
%
-% \changes{v2.95}{2002/07/01}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-listsandtabulars.dtx}
+% \title{Code of Lists, Tabulars and Similar Objects of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-listandtabulars.dtx} provides mainly code for all kind of
+% lists namely \env{itemize}, \env{enumerate}, \env{description},
+% \env{labeling}, \env{quote}, \env{quotation} and \env{addmargin} for all
+% \KOMAScript{} classes. And because the code for \env{tabbing} and
+% \env{tabular} is only some lines, it is added here too.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Listen und Tabellen}
+% \section{User Manual}
%
-% \KOMAScript{} verfügt über einige zusätzliche Listenumgebungen. Ein
-% Teil dieser Listenumgebungen ist nicht sofort auf den ersten Blick
-% als solche zu erkennen, so wie dies schon bei den Standardklassen
-% beispielsweise mit \texttt{quote} und \texttt{quotation} der Fall
-% ist.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
-%<*option>
-% \fi
+% \MaybeStop{\PrintIndex}
%
-% \subsection{Optionen}
-% Diese Umgebungen werden nicht durch Optionen beeinflusst.
+% \section{Implementation of Lists}
%
+% \subsection{Options}
%
-% \iffalse
-%</option>
-%<*body>
-%<*class>
-% \fi
+% The environments do not depend on options.
%
+% \subsection{List margins}
%
-% \subsection{Ränder in Listen}
-%
-% \begin{Length}{leftmargini}
-% \begin{Length}{leftmarginii}
-% \begin{Length}{leftmarginiii}
-% \begin{Length}{leftmarginiv}
-% \begin{Length}{leftmarginv}
-% \begin{Length}{leftmarginvi}
-% \begin{Length}{leftmargin}
-% \begin{Length}{labelsep}
-% \begin{Length}{labelwidth}
-% Für die Listenumgebungen in verschiedenen Stufen müssen Ränder
-% definiert werden. Hinzu kommen noch die Breite eines Labels und der
-% Abstand nach einem Label.
+% \begin{length}{\leftmargini,\leftmarginii,\leftmarginiii,\leftmarginiv,
+% \leftmarginv,\leftmarginvi,\leftmargin}
+% Usually lists can be nested at most six levels (but usually only four are
+% used). So we have to define six different margins depending on the level
+% (roman number added to \cs{leftmargin}):
% \begin{macrocode}
+%<*body>
+%<*class>
%<*!letter>
\if@twocolumn
\setlength{\leftmargini}{2em}
@@ -158,132 +110,98 @@
\setlength{\leftmarginvi}{1em}
%<!letter>\fi
\setlength{\leftmargin}{\leftmargini}
+% \end{macrocode}
+% \end{length}^^A \leftmargini … \leftmarginvi,\leftmargin
+%
+%
+% \subsection{List labels}
+%
+% \begin{length}{\labelsep,\labelwidth}
+% If a list has a label we need a label width and a horizontal distance after
+% the label.
+% \begin{macrocode}
\setlength{\labelsep}{.5em}
\setlength{\labelwidth}{\leftmargini}
\addtolength{\labelwidth}{-\labelsep}
% \end{macrocode}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-%
-% Weil die Gelegenheit so günstig ist, setzen wir hier auch gleich
-% noch ein paar \emph{penalties} (Erlaubsnispunkte).
+% \end{length}^^A \labelsep,\labewidth
+%
+%
+% \subsection{List penalties}
+%
+% \begin{macro}{\@beginparpenalty,\@endparpenalty,\@itempenatly}
+% Page breaks at the begin an end of lists or items are better than somewhere
+% else but not much.
% \begin{macrocode}
\@beginparpenalty=-\@lowpenalty
\@endparpenalty =-\@lowpenalty
\@itempenalty =-\@lowpenalty
% \end{macrocode}
+% \end{macro}
%
%
-% \subsection{Verschiedene Längen für Tabellen, Arrays und Tabulatoren}
-%
-% Vorbemerkung: Arrays sind im Prinzip Tabellen zur Verwendung im
-% mathemathischen Modus.
-%
-% \begin{Length}{arraycolsep}
-% \begin{Length}{tabcolsep}
-% \begin{Length}{arrayrulewidth}
-% \begin{Length}{doublerulewidth}
-% \begin{Length}{tabbingsep}
-% Bei diesen Längen handelt es sich um die Abstände der Spalten in
-% \texttt{array}- und \texttt{tabular}-Umgebungen, sowie um die Breite
-% und den Abstand der Trennlinien. Hinzu kommt noch der \cs{'} Abstand
-% in \texttt{tabbing}-Umgebungen.
-% \begin{macrocode}
-\setlength\arraycolsep{5\p@}
-\setlength\tabcolsep{6\p@}
-\setlength\arrayrulewidth{.4\p@}
-\setlength\doublerulesep{2\p@}
-\setlength\tabbingsep{\labelsep}
-% \end{macrocode}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-%
-%
-% \subsection{Marken in Listen}
-%
-% \begin{macro}{\theenumi}
-% \begin{macro}{\theenumii}
-% \begin{macro}{\theenumiii}
-% \begin{macro}{\theenumiv}
-% \begin{macro}{\labelenumi}
-% \begin{macro}{\labelenumii}
-% \changes{v2.4m}{1997/02/28}{öffnende Klammer entsprechend Doku
-% entfernt}%^^A
-% \begin{macro}{\labelenumiii}
-% \begin{macro}{\labelenumiv}
-% \begin{macro}{\p@enumii}
-% \begin{macro}{\p@enumiii}
-% \begin{macro}{\p@enumiv}
-% \begin{macro}{\labelitemi}
-% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}
-% \changes{v3.33}{2021/02/15}{Usage of new font element
-% \texttt{labelitemi}}
-% \begin{macro}{\labelitemii}
-% \changes{v2.5g}{1999/10/09}{\cs{textendash} verwendet}
-% \changes{v3.33}{2021/02/15}{Usage of new font element
-% \texttt{labelitemii}}
-% \begin{macro}{\labelitemiii}
-% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}
-% \changes{v3.33}{2021/02/15}{Usage of new font element
-% \texttt{labelitemiii}}
-% \begin{macro}{\labelitemiv}
-% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}
-% \changes{v3.33}{2021/02/15}{Usage of new font element
-% \texttt{labelitemiv}}
-% Für die numerierten Listenumgebungen müssen Marken bzw. Numerierungen
-% festgelegt werden. Dazu wird eine Darstellung der Zähler, ihr Prefix
-% und ihre Labeldarstellung neu definiert.
+% \subsection{List items}
+%
+% \begin{command}{\theenumi,\theenumii,\theenumiii,\theenumiv}
+% There are four levels of \env{enumerate} items with their numbers in Arabic,
+% lower case letters, lowercase Roman numbers, uppercase letters.
% \begin{macrocode}
\renewcommand*\theenumi{\@arabic\c@enumi}
\renewcommand*\theenumii{\@alph\c@enumii}
\renewcommand*\theenumiii{\@roman\c@enumiii}
\renewcommand*\theenumiv{\@Alph\c@enumiv}
+% \end{macrocode}
+% \end{command}
+%
+% \begin{command}{\labelenumi}
+% \begin{command}{\labelenumii}
+% \changes{v2.4m}{1997/02/28}{opening brace removed}
+% \begin{command}{\labelenumiii,\labelenumiv}
+% The printed labels consist of the previously defined numbers followed by a
+% dot or brace.
+% \begin{macrocode}
\newcommand*\labelenumi{\theenumi.}
\newcommand*\labelenumii{\theenumii)}
\newcommand*\labelenumiii{\theenumiii.}
\newcommand*\labelenumiv{\theenumiv.}
+% \end{macrocode}
+% \end{command}
+% \end{command}
+% \end{command}
+%
+% \begin{macro}{\p@enumii,\p@enumiii,\p@enumiv}
+% References to \env{enumerate} items are prefixed by the parent number and
+% additional separation signs like braces.
+% \begin{macrocode}
\renewcommand*\p@enumii{\theenumi}
\renewcommand*\p@enumiii{\p@enumii(\theenumii)}
\renewcommand*\p@enumiv{\p@enumiii\theenumiii}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{command}{\labelitemi,\labelitemii,\labelitemiii,\labelitemiv}
+% \changes{v2.5g}{1999/10/09}{math mode eliminated}
+% \changes{v3.33}{2021/02/15}{Usage of new font element}
+% The characters used for \env{itemize} items. Again four levels are
+% supported. All of them use a own font element.
+% \begin{macrocode}
\newcommand*\labelitemi{\usekomafont{labelitemi}{\textbullet}}
\newcommand*\labelitemii{\usekomafont{labelitemii}{\textendash}}
\newcommand*\labelitemiii{\usekomafont{labelitemiii}{\textasteriskcentered}}
\newcommand*\labelitemiv{\usekomafont{labelitemiv}{\textperiodcentered}}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \labelitemi … \labelitemiv
%
%
-% \subsection{Definition der Umgebungen}
+% \subsection{Definition of the environments}
%
% \begin{environment}{description}
-% Die \texttt{description}-Umgebung dient der Beschreibung von
-% einzelnen Begriffen. Der Begriff aus dem optionalen Argument des
-% \cs{item}-Befehls wird in einem speziellen Font, dem \cs{descfont},
-% gesetzte.
+% \begin{command}{\descriptionlabel}
+% \changes{v3.36}{2022/02/15}{using \cs{usekomafont\{descriptionlabel\}} instead
+% of \cs{descfont}}
+% This is used to describe a single term. The terms should be short, because
+% line breaks inside the terms are not supported. The term is the optional
+% argument of \cs{item}. It is printed with font of element \fnt{descriptionlabel}.
% \begin{macrocode}
\newenvironment{description}{%
\list{}{\labelwidth\z@ \itemindent-\leftmargin
@@ -292,26 +210,22 @@
\endlist
}
\newcommand*{\descriptionlabel}[1]{%
- \hspace{\labelsep}\descfont #1%
+ \hspace{\labelsep}\usekomafont{descriptionlabel}{#1}%
}
% \end{macrocode}
+% \end{command}
% \end{environment}
%
% \begin{environment}{labeling}
-% \begin{macro}{\labelinglabel}
-% \changes{v3.02}{2009/01/01}{Neue Elemente \texttt{labelinglabel} und
-% \texttt{labelingseparator} werden verwendet}
-% \changes{v3.02c}{2009/01/28}{\texttt{labelinglabel} und
-% \texttt{labelingseparator} werden nun auch zur Berechnung der Breite
-% verwendet}
-% \changes{v3.03a}{2009/04/02}{Argumente in der Berechnung der Label-Breite
-% korrigiert}%^^A
-% Die \cs{labeling}-Umgebung ist eine Erweiterung des \textsf{Script}
-% Pakets. Sie erwartet ein optionales und ein normales Argument. Das
-% optionale Argument beschreibt einen speziellen Trenntext zwischen
-% \cs{item}-Marke und \cs{item}-Beschreibung. Das eigentliche Argument
-% wird für die Ermittlung der Einrückung des Beschreibungstextes
-% bzw. des Trenntextes benötigt.
+% \begin{command}{\labelinglabel}
+% \changes{v3.02}{2009/01/01}{using font elements \fnt{labelinglabel} and
+% \fnt{labelingseparator}}
+% \changes{v3.02c}{2009/01/28}{using font elements \fnt{labelinglabel} and
+% \fnt{labelingseparator} also for the calculation of the width}
+% \changes{v3.03a}{2009/04/02}{fixed argument in the label width calculation}
+% The \env{labeling} environment is an extension of \env{description}. It has
+% an optional separation string (\texttt{\#1}) added behind every label. The
+% width of the labels are the width of the mandatory argument (\texttt{\#2}).
% \begin{macrocode}
%</class>
\newenvironment{labeling}[2][]{%
@@ -332,14 +246,12 @@
}
%<*class>
% \end{macrocode}
-% \end{macro}
+% \end{command}
% \end{environment}
%
% \begin{environment}{verse}
-% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern
-% mehr verarbeiten}
-% Die Verse-Umgebung ist für Zitate in Gedichtform und ähnliches
-% gedacht.
+% \changes{v2.3g}{1996/01/14}{\cs{item} does not wait for \texttt{[]}}
+% The environment for short poems.
% \begin{macrocode}
\newenvironment{verse}{%
\let\\=\@centercr
@@ -356,16 +268,11 @@
% \end{macrocode}
% \end{environment}
%
-% \begin{environment}{quotation}
-% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern
-% mehr verarbeiten}
-% \begin{environment}{quote}
-% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern
-% mehr verarbeiten}
-% Die \texttt{quotation}- und die \texttt{quote}-Umgebung erlauben
-% rechts und links eingerückte Passagen. Absätze werden entweder in
-% der ersten Zeile zusätzlich eingerückt oder durch vertikalen Abstand
-% markiert.
+% \begin{environment}{quotation,quote}
+% \changes{v2.3g}{1996/01/14}{\cs{item} does not wait for \texttt{[]}}
+% Two environments for left and right indented text. The difference of both
+% is: \env{quotation} works with paragraph indent (first line is indented),
+% \env{quote} works with paragraph distance.
% \begin{macrocode}
\newenvironment{quotation}{%
\list{}{\listparindent 1em%
@@ -385,46 +292,35 @@
}
% \end{macrocode}
% \end{environment}
-% \end{environment}
%
% \begin{environment}{addmargin}
-% \changes{v2.8q}{2001/11/29}{neue Umgebung}%^^A
-% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert}%^^A
+% \changes{v2.8q}{2001/11/29}{added}
+% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} reset}
% \begin{environment}{addmargin*}
-% \changes{v2.8q}{2001/11/29}{neue Umgebung}%^^A
-% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert}%^^A
-% \changes{v3.17}{2015/03/23}{robuster gegen Umbrüche am Anfang}%^^A
-% \changes{v3.22}{2016/08/02}{Umbruchtest nur für doppelseitige
-% Dokumente}%^^A
-% Diese beiden Umgebungen ähneln \texttt{quote} und
-% \texttt{quotation}. Dabei werden Absatzeinzug und Absatzabstand
-% nicht verändert. Die einzige Veränderung besteht in den Rändern. Wie
-% stark die Ränder verändert werden, hängt dabei von den Parametern
-% ab. Ist nur der obligatorische Parameter angegeben, werden die
-% Ränder auf beiden Seiten um diesen Wert vergrößert. Ist ein
-% optionaler Parameter angegeben, so ist dies bei \texttt{addmargin}
-% der linke und bei \texttt{addmargin*} der innere Rand. Der
-% obligatorische Parameter ist dann der andere Rand. Diese
-% Entscheidung ist das einzige, was die Umgebungen selbst erledigen
-% müssen.
+% \changes{v2.8q}{2001/11/29}{added}
+% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} reset}
+% \changes{v3.17}{2015/03/23}{improved handling of page breaks at the beginning}
+% \changes{v3.22}{2016/08/02}{page break test for double-sided documents}
+% Both environments are similar to \env{quote} and \env{quotation}, but the
+% indent is not fix. If only the mandatory argument (\texttt{\#2}) is used, it
+% is the left and right indent. If the optional argument (\texttt{\#1}) is
+% also used, it is the left indent with \env{addmargin} resp. the inner indent
+% with \env{addmargin*}. Note, negative indents will extend to the
+% margins. Note, that page breaks inside \env{addmargin*} should be avoided,
+% because they result in wrong margins at the second, fourth, sixth etc. page.
% \begin{macro}{\@addmargin}
-% \changes{v2.8q}{2001/11/29}{neu (intern)}%^^A
-% \changes{v2.95}{2002/07/01}{\cs{item} muss keine "`[]"'-Klammern
-% mehr verarbeiten}%^^A
-% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unverändert}%^^A
-% \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert}%^^A
-% \changes{v3.05b}{2010/04/29}{\cs{partopsep} muss auf 0 statt \cs{parskip}
-% gesetzt werden, weil es zu \cs{topsep} addiert wird}%^^A
-% \changes{v3.17}{2015/03/23}{robuster gegen Umbrüche am Anfang}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd}
-% ersetzt}%^^A
-% Der Rest wird von diesem Makro erledigt.
+% \changes{v2.8q}{2001/11/29}{added}
+% \changes{v2.95}{2002/07/01}{\cs{item} does not wait for \texttt{[]}}
+% \changes{v2.9q}{2003/03/24}{unchanged \len{labelsep}}
+% \changes{v2.95a}{2006/07/20}{unchanged \cs{@tmpcnta}}
+% \changes{v3.05b}{2010/04/29}{\len{partopsep} has to be 0 instead of
+% \len{parskip} because of adding \len{topsep}}
+% \changes{v3.17}{2015/03/23}{improved handling of page breaks at the beginning}
+% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}}
% \begin{macro}{\scr@addmargin@startpage}
-% \changes{v3.12}{2013/10/26}{neu (intern, lokal)}%^^A
-% \changes{v3.12}{2013/10/26}{Test auf Seitenumbruch in
-% \texttt{addmargin*}}%^^A
-% \changes{v3.22}{2016/10/21}{\cs{topsep} und \cs{partopsep} werden
-% erhalten}%^^A
+% \changes{v3.12}{2013/10/26}{added}
+% \changes{v3.12}{2013/10/26}{page break test for \env{addmargin*}}
+% \changes{v3.22}{2016/10/21}{unchanged \len{topsep} and \len{partopsep}}
% \begin{macrocode}
%</class>
\newenvironment{addmargin}{%
@@ -495,48 +391,40 @@
% \end{environment}
%
%
-% \subsection{Schriftarten für Listen}
+% \subsection{Font elements of lists}
%
+% \begin{fontelement}{descriptionlabel}
+% \changes{v2.8o}{2001/09/14}{added}
+% The font element is defined indirect by some macros to stay compatible with
+% \KOMAScript{} before the design of font elements.
% \begin{macro}{\descfont}
-% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
-% ersetzt}%^^A
-% Dies ist die Schriftart, in der das Label der Einträge in eine
-% \texttt{description}-Umgebung gesetzt wird. Das Makro ist als intern
-% zu betrachten. Anwender habe stattdessen das entsprechende Element
-% zu verwenden.
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} replaced by \cs{@gr@gsffamily}}
+% The font of the item labels of \env{description}. The command \cs{descfont}
+% should not be used by users. Think of it as an internal macro. The user
+% space name is because of compatibility to very old \KOMAScript{} versions.
% \begin{macrocode}
\newcommand*\descfont{\@gr@gsffamily\bfseries}
% \end{macrocode}
% \end{macro}
-%
% \begin{macro}{\scr@fnt@descriptionlabel}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{descriptionlabel}}
-% Das Element auf das \cs{descfont} angewandt wird:
+% The font element uses \cs{descfont}.
% \begin{macrocode}
\newcommand*{\scr@fnt@descriptionlabel}{\descfont}
% \end{macrocode}
% \end{macro}
+% \end{fontelement}
%
-% \selectlanguage{english}
-% \begin{KOMAfont}{itemizelabel}
-% \changes{v3.33}{2021/02/15}{new font element}
-% \begin{KOMAfont}{labelitemi}
-% \changes{v3.33}{2021/02/15}{new font element}
-% \begin{KOMAfont}{labelitemii}
-% \changes{v3.33}{2021/02/15}{new font element}
-% \begin{KOMAfont}{labelitemiii}
-% \changes{v3.33}{2021/02/15}{new font element}
-% \begin{KOMAfont}{labelitemiv}
-% \changes{v3.33}{2021/02/15}{new font element}
-% \begin{macro}{\labelitemfont}
-% \changes{v3.33}{2021/02/15}{new}
-% Due to a change in the LaTeX kernel 2020/02/02 the \texttt{itemize} items
+% \begin{fontelement}{labelitemi,labelitemii,labelitemiii,labelitemiv,itemizelabel}
+% \changes{v3.33}{2021/02/15}{added}
+% \begin{command}{\labelitemfont}
+% \changes{v3.33}{2021/02/15}{added}
+% Due to a change in the LaTeX kernel 2020/02/02 the \env{itemize} items
% react on font changes. For this the standard classes have been changed to
% set the item \emph{bullets} using \cs{labelitemfont} which is
% \cs{normalfont} by default. I've adapted this using also \cs{labelitemfont}
% for compatibility but only to store the font of font element
-% \texttt{itemizelabel} which is the default of the level depending font
-% elements. \texttt{itemlabelii} differs, because the default \cs{textendash}
+% \fnt{itemizelabel} which is the default of the level depending font
+% elements. \fnt{itemlabelii} differs, because the default \cs{textendash}
% should be bold.
% \begin{macrocode}
\newcommand*{\labelitemfont}{\normalfont}
@@ -545,43 +433,59 @@
\newkomafont{labelitemii}{\usekomafont{itemizelabel}\bfseries}
\newkomafont{labelitemiii}{\usekomafont{itemizelabel}}
\newkomafont{labelitemiv}{\usekomafont{itemizelabel}}
+%</class>
% \end{macrocode}
-% \end{macro}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \selectlanguage{ngerman}
-%
-% \begin{KOMAfont}{labelinglabel}
-% \changes{v3.02}{2009/01/01}{neues Element}%^^A
-% \begin{KOMAfont}{labelingseparator}
-% \changes{v3.02}{2009/01/01}{neues Element}%^^A
-% Das Label einer \texttt{labeling}-Umgebung wird in eigener Schrift
-% gesetzt. Innerhalb des Labels wird dann das Trennzeichen ebenfalls mit
-% eigener Schrift gesetzt. Voreingestellt ist in beiden Fällen keine Änderung.
+% \end{command}
+% \end{fontelement}
+%
+% \begin{fontelement}{labelinglabel,labelingseparator}
+% \changes{v3.02}{2009/01/01}{added}
+% The \env{labeling} environment has two font elements, one for the whole
+% label and one for the separator only. The default is no change.
% \begin{macrocode}
-%</class>
\newkomafont{labelinglabel}{}
\newkomafont{labelingseparator}{}
-%<*class>
% \end{macrocode}
-% \end{KOMAfont}
-% \end{KOMAfont}
+% \end{fontelement}
%
%
-% \iffalse
+% \section{Implementation of Tabulars, Array etc.}
+%
+% All these environments are implemented in the \LaTeX{} kernel already. We
+% only need some configuration parameters.
+%
+% \begin{length}{\arraycolsep,\tabcolsep,\arrayrulewidth,\doublerulewidth,
+% \tabbingsep}
+% These are the distances between columns in \env{array} and \env{tabular},
+% the width of lines/rules independent from \env{array} or \env{tabular} and
+% the distance of double lines/rules (two consecutive \cs{hline}). The last
+% one, \cs{tabbingsep}, is the \cs{'} distance in \env{tabbing} environments.
+% All values are same as in the standard classes.
+% \begin{macrocode}
+%<*class>
+\setlength\arraycolsep{5\p@}
+\setlength\tabcolsep{6\p@}
+\setlength\arrayrulewidth{.4\p@}
+\setlength\doublerulesep{2\p@}
+\setlength\tabbingsep{\labelsep}
%</class>
-%</body>
-% \fi
+% \end{macrocode}
+% \end{length}^^A \arraycolsep … \tabbingsep
%
-% \Finale
%
+% \begin{macrocode}
+%</body>
+% \end{macrocode}
+%
+% \Finale
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-listsandtabulars.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx b/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
index b7ff8d719e..21db04d92b 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{673}
% \iffalse meta-comment
% ======================================================================
% scrkernel-listsof.dtx
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,55 +17,18 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-listsof.dtx
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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-listsof.dtx 3477 2020-04-11 07:26:26Z kohm $
+%%% From File: $Id: scrkernel-listsof.dtx 3733 2022-03-01 08:20:43Z kohm $
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2020-04-11 09:26:26 +0200 (Sat, 11 Apr 2020) $
+ \filedate$Date: 2022-03-01 09:20:43 +0100 (Di, 01. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3477 $
+ \filerevision$Revision: 3733 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-listsof.dtx}%
@@ -75,52 +37,60 @@
(lists of)]%
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-listsof.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}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-listsof.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/06/28}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/28}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/28}{whole implementation documentation in English}
%
-% \changes{v2.95}{2002/06/28}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-listsof.dtx}
+% \title{Table of Contents, List of Figures, and List of Tables Within
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \LaTeX{} classes provides a number of directories like the table of
+% contents, list of figures, and list of
+% tables. \file{scrkernel-listsof.dtx} provides parts of the implementation
+% of them. But note: Since the \KOMAScript{} classes use \pkg*{tocbasic} for
+% all these tables and lists, most of the code has been moved to
+% \file{tocbasic.dtx} and \file{scrkernel-tocstyle.dtx}.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Verzeichnisse}
+% \section{User Manual}
%
-% \LaTeX{} Klassen bieten eine ganze Reihe von Verzeichnissen. Thema
-% dieses Abschnitts sind die Verzeichnisse der
-% Gleitumgebungen und das Inhaltsverzeichnis. \KOMAScript{} bietet
-% selbst das Verzeichnis der Gleittabellen und der Abbildungen. Es
-% unterstützt außerdem die Verzeichnisse der mit dem \textsf{float}
-% Paket angelegten Gleitumgebungen.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% Briefe verfügen über keine Verzeichnisse.
+% \MaybeStop{\PrintIndex}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \section{Implementation of the table of contents and similar lists in the
+% \KOMAScript{} classes}
%
-% \iffalse
-%<*!letter>
-% \fi
+% Only \cls*{scrartcl}, \cls*{scrbook} and \cls{scrreprt} provide floats and
+% headings. So only these need to provide tables and lists of such
+% elements. Especially the letter class \cls*{scrlttr2} does not need any of
+% this code.
%
-% \subsection{Gemeinsamer Code von Inhaltsverzeichnis und Verzeichnissen der
-% Gleitumgebungen}
+% \begin{macrocode}
+%<*!letter>
+% \end{macrocode}
+%
+% \subsection{Code used by all of the tables and lists of content}
%
-% \selectlanguage{english}%^^A
-% Before doing anything with the tocs we need package \Package{tocbasic}:
+% Before doing anything with the tocs we need package \pkg*{tocbasic}:
% \begin{macrocode}
%<*prepare>
\RequirePackage{tocbasic}[%
@@ -130,9 +100,13 @@
% \end{macrocode}
%
% \begin{macro}{\numberline@numberpostfix}
-% \changes{v3.20}{2016/03/15}{\cs{autodot} wird darüber eingefügt}
-% Auch in den Verzeichnissen soll ggf. \cs{autodot} quasi als Bestandteil der
-% Nummer ausgegeben werden.
+% \changes{v3.20}{2016/03/15}{used to add \cs{autodot}}
+% We extend this macro of \pkg*{tocbasic} to add the \cs{autodot} to the
+% numbers.
+% \begin{description}
+% \item[ToDo:] Replace this by any kind of \emph{addto hook command}, maybe
+% even by a generic \LaTeX{} hook.
+% \end{description}
% \begin{macrocode}
%<*body>
\g@addto@macro{\numberline@numberpostfix}{\autodot}
@@ -140,10 +114,10 @@
% \end{macrocode}
% \end{macro}%^^A \numberline@numberpostfix
%
-% \begin{macro}{\numberline}
-% \changes{v3.20}{2016/03/15}{Definition von \textsf{tocbasic} verwenden}
-% Unabhängig vom Stil soll immer die Definition von \textsf{tocbasic}
-% verwendet werden.
+% \begin{command}{\numberline}
+% \changes{v3.20}{2016/03/15}{using definition of \pkg*{tocbasic}}
+% Just activate the usage of the \pkg*{tocbasic} definition of
+% \cs{numberline}.
% \begin{macrocode}
%<*body>
\usetocbasicnumberline[%
@@ -151,13 +125,16 @@
]
%</body>
% \end{macrocode}
-% \end{macro}%^^A \numberline
+% \end{command}%^^A \numberline
%
-% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features
-% \texttt{chapteratlist} in die Datei \texttt{scrkernel-listsof.dtx} verschoben}
-% Bei Büchern wird für jedes Verzeichnis des Besitzers \texttt{float} das
-% Feature \texttt{chapteratlist} gesetzt. Das gilt auch für solche
-% Verzeichnisse, die noch gar nicht definiert sind.
+% \changes{v3.06}{2010/06/02}{activating \pkg*{tocbasic} feature
+% \texttt{chapteratlist}}
+% For classes with chapters we use the \pkg*{tocbasic} feature
+% \texttt{chapteratlist} for all directories of category/owner
+% \texttt{float}. This is done not only for already existing directories for
+% also for those, that will be added later (using \pkg*{tocbasic}). Note: By
+% default this feature is used to add a vertical distance to, e.g., the list
+% of figures and the list of tables with each new chapter.
% \begin{macrocode}
%<*body&(book|report)>
\doforeachtocfile[float]{%
@@ -169,36 +146,48 @@
%</body&(book|report)>
% \end{macrocode}
%
-% \begin{macro}{\before@starttoc}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% Dieses Makro führt im Falle von \texttt{tocleft} oder
-% \texttt{listsleft} am Anfang eines Verzeichnisses alle notwendigen
-% Änderungen durch, um das Verzeichnis entsprechend zu handhaben.
+% \begin{macro}{\before@starttoc,\after@starttoc}
+% \changes{v2.8q}{2001/11/14}{added}
+% If either \texttt{tocleft} or \texttt{listsleft} is used, we need to collect
+% additional information about the natural width of the numbers and also have
+% to change the used width of the numbers. So we have two macros, that will be
+% added to the \pkg*{tocbasic} hooks. \cs{before@starttoc} does some internal
+% changes before \cs{@starttoc} to collect and use the
+% information. \cs{after@starttoc} writes the information to the \file{aux}
+% file after \cs{@starttoc}.
% \begin{macro}{\scr@dottedtocline}
-% \changes{v2.9k}{2003/01/03}{auch das dritte Argument wird ge"andert}%^^A
+% \changes{v2.9k}{2003/01/03}{also change the third argument}^^A
% \begin{macro}{\scr@numberline}
-% \changes{v3.06}{2010/05/18}{nicht länger benötigt}%^^A
+% \changes{v3.06}{2010/05/18}{removed}^^A
% \end{macro}
% \begin{macro}{\last@l@number}
-% Dafür werden ein paar Hilfsmakros benötigt, die vorsichtshalber
-% global vordefiniert werden.
+% The \KOMAScript{} classes themselves use the \pkg*{tocbasic} entry style
+% \texttt{tocline}. However other packages may use the \LaTeX{} kernel command
+% \cs{@dottedtocline}. Currently we support these too. But to do so, we need
+% to locally redefine \cs{@dottedtocline} to change the second and third
+% argument. The second is the \meta{indent} and has always to be 0 (with
+% \texttt{listsleft}). The third is the number width and has to be
+% \cs{last@l@number}. I do not like to redefine \LaTeX{} kernel macros, so
+% maybe the support for list entries, which use \cs{@dottedtocline}, will be
+% removed in future. However, in this case we still would need some of the
+% code or similar code to initialize values and features of \pkg*{tocbasic}.
+% At loading time we only need to \emph{reserve} the macros. The real
+% definition will be done when reading the auxiliary files of the lists or the
+% main \file{aux} file.
% \begin{macrocode}
%<*body>
\newcommand*{\scr@dottedtocline}{}
\newcommand*{\last@l@number}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\@l@number}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% In diesem Makro wird während der Erstellung eines Verzeichnisses
-% Inhaltsverzeichnisses die aktuelle Breite der Nummer gespeichert.
-% \begin{macro}{\set@l@number}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% Dieses Makro ist dafür verantwortlich, dass zum einen \cs{@tempdima}
-% für den Aufruf von \cs{numberline@box} auf den richtigen Wert gesetzt
-% wird, zum anderen wird die aktuelle größte Breite der Nummer hier
-% angepasst.
+% \end{macro}^^A \last@l@number
+% \end{macro}^^A \scr@dottedtocline
+% \begin{macro}{\@l@number,\set@l@number}
+% \changes{v2.8q}{2001/11/14}{added}
+% We also need local macros to store the currently maximal number width while
+% reading an auxiliary file. \cs{set@l@number} not only has to update
+% \cs{@l@number} but also to set \len{@temdima} to the real maximum. It is
+% used inside \cs{numberline@box}, which is used inside \cs{numberline}, if
+% the \pkg*{tocbasic} definition of \cs{numberline} is used.
% \begin{macrocode}
\newcommand*{\@l@number}{}
\newcommand*{\set@l@number}[1]{%
@@ -211,15 +200,15 @@
\fi%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% Kommen wir endlich zu \cs{before@starttoc}:
-% \changes{v2.95a}{2006/07/12}{Initialisierung im \cs{@empty}-Fall}
-% \changes{v3.06}{2010/05/18}{statt \cs{numberline} wird \cs{numberline@box}
-% umdefiniert}
+% \end{macro}^^A \@l@number,\set@l@number
+% \changes{v2.95a}{2006/07/12}{empty case initialization}
+% \changes{v3.06}{2010/05/18}{re-defining \cs{numberline} instead of
+% \cs{numberline@box}}
+% The usage of all these local macros has to be initialized in
+% \cs{before@starttoc}.
% \begin{macrocode}
\newcommand*{\before@starttoc}[1]{%
- \let\scr@dottedtocline=\@dottedtocline
+ \let\scr@dottedtocline=\@dottedtoclilne
\renewcommand*{\@dottedtocline}[3]{%
\scr@dottedtocline{##1}{\z@}{\last@l@number}}%
\renewcommand*{\numberline@box}[1]{%
@@ -236,8 +225,9 @@
\fi
}%
% \end{macrocode}
-% \changes{v3.20}{2015/11/26}{Vorbereitungen für Verzeichniseintragsstile
-% via \texttt{scrkernel-tocstyle}}%^^A
+% \changes{v3.20}{2015/11/26}{initialization of \pkg*{tocbasic} values}
+% We also have to locally change the indent and number width values of the
+% \pkg*{tocbasic} styles.
% \begin{macrocode}
\begingroup
\def\do@endgroup{\endgroup}%
@@ -264,27 +254,22 @@
\@nameuse{scr@dte@donumwidth}%
\do@endgroup
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\after@starttoc}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% Dieses Makro schreibt am Ende den entsprechenden Eintrag in die
-% \texttt{aux}-Datei.
-% \begin{macrocode}
\newcommand*{\after@starttoc}[1]{%
\protected@write\@auxout{}{%
\string\gdef\expandafter\string\csname#1@l@number\endcsname{%
\@l@number}}%
}
-%</body>
% \end{macrocode}
-% \end{macro}
-%
-% Dafür sorgen, dass die Verzeichnisse von \textsf{tocbasic} so gesetzt
-% werden, wie wir das gerne hätten (wird über einen Trick auch für das
-% Inhaltsverzeichnis verwendet):
+% Last but not least we have to add the code to the \pkg*{tocbasic} hooks
+% before and after \cs{@starttoc}. Note: This is also used for the table of
+% contents, but in this case \cs{if@dynlist} will be used different.
+% \begin{description}
+% \item[ToDo:] A better suggestion could be to use \meta{category} dependent
+% code here to use \cs{if@dynlist} only for \meta{category} \texttt{float}
+% but \cs{if@tocleft} for \meta{category} \texttt{ToC}. So the support for
+% things like \emph{table of appendix contents} could be benefit.
+% \end{description}
% \begin{macrocode}
-%<*body>
\g@addto@macro\tocbasic@@before@hook{%
\if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi
}
@@ -293,13 +278,13 @@
}
%</body>
% \end{macrocode}
+% \end{macro}^^A \@dottedtocline
%
%
-% \subsection{Das Inhaltsverzeichnis}
+% \subsection{The table of contents}
%
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/11}{init code moved from \texttt{tocbasic.dtx}}%^^A
-% \changes{v1.0a}{2008/11/13}{auto-activation of feature \texttt{onecolumn}}
+% \changes{v3.27}{2019/05/11}{init code moved from \file{tocbasic.dtx}}
+% \changes{v3.01}{2008/11/13}{auto-activation of feature \texttt{onecolumn}}
% Set feature \texttt{onecolumn} for every ToC file.
% \begin{macrocode}
%<*prepare&(book|report)>
@@ -308,9 +293,9 @@
%</prepare&(book|report)>
% \end{macrocode}
% Tell the package, what files are used:
-% \changes{v3.27}{2019/05/11}{use owner \texttt{ToC} for the table of
-% contents}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.27}{2019/05/11}{use category \texttt{ToC} for the table of
+% contents}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}%^^A
% \begin{macrocode}
%<*prepare>
\addtotoclist[ToC]{toc}
@@ -321,84 +306,163 @@
}
%</prepare>
% \end{macrocode}
-% \selectlanguage{ngerman}%^^A
%
-% \begin{macro}{\if@tocleft}
-% \changes{v2.8q}{2001/11/14}{neuer Schalter}%^^A
-% \changes{v2.98c}{2008/03/05}{wird früher definiert}%^^A
-% \begin{macro}{\@toclefttrue}
-% \begin{macro}{\@tocleftfalse}
-% Die Wahl der Darstellungsart für das Inhaltsverzeichnis wird in einem
-% Schalter gespeichert.
+% \begin{macro}{\@tocleftfalse,\@tocleftrue,\if@tocleft}
+% \changes{v2.8q}{2001/11/14}{added}
+% \changes{v2.98c}{2008/03/05}{earlier definition}
+% The switch is used to store the information whether to use a flat
+% (\cs{@toclefttrue}) or a graduated (\cs{@tocleftalse}) table of contents.
% \begin{macrocode}
%<*option>
\newif\if@tocleft
%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A … \if@tocleft
%
% \begin{option}{toc}
-% \changes{v2.98c}{2008/03/04}{Neue Option}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch
-% \cs{KOMAExecuteOptions} ersetzt}%^^A
-% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} durch
-% \cs{KOMAoptions} ersetzt}%^^A
-% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{indexnumbered}}%^^A
-% Dies ist die zentrale Option für Einstellungen des Inhaltsverzeichnisses.
+% \changes{v2.98c}{2008/03/04}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} replaced by
+% \cs{KOMAExecuteOptions}}
+% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} replaced by
+% \cs{KOMAoptions}}
+% \changes{v3.18}{2015/06/15}{value \opt{\quotechar=indexnumbered} added}
+% The main features of the table of contents can be configured by this
+% option.
% \begin{macrocode}
%<*option>
\KOMA@key{toc}{%
\KOMA@set@ncmdkey{toc}{@tempa}{%
% \end{macrocode}
-% Es gibt Werte, um zu bestimmen, welche Verzeichnisse ins Inhaltsverzeichis
-% aufgenommen werden. Eigentlich sind das Optionen der jeweiligen
-% Verzeichnisses, aber das muss sich der Anwender ja nicht unbedingt merken.
-% \changes{v3.28}{2019/10/21}{zusätzliche Werte}%^^A
-% Für Index und Gleitumgebungen gibt es ab Version~3.28 einige zusätzliche
-% Werte. Die \dots\texttt{listof}\dots-Werte sind allerdings nicht offiziell,
-% sondern fangen nur häufige Tippfehler auf.
+% \changes{v3.28}{2019/10/21}{several alias values added}
+% The provided values are (aliases are also available):
+% \begin{description}
+% \item[\opt{=noindex}:] (default) for the index neither add an entry to the
+% table of contents nor number the heading of the index.
+% \end{description}
% \begin{macrocode}
{noindex}{0},{noidx}{0},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=index}:] for the index add an entry to the table of contents,
+% but do not number the index.
+% \end{description}
+% \begin{macrocode}
{index}{1},{idx}{1},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=indexnumbered}:] number the index and therefore also add an
+% entry to the table of contents.
+% \end{description}
+% \begin{macrocode}
{indexnumbered}{2},{idxnumbered}{2},{numberedindex}{2},{numberedidx}{2},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=nolistof}:] (default) for any list with category/owner
+% \texttt{float} neither add an entry to the table of contents, nor
+% number the heading of the list of the floats.
+% \end{description}
+% \begin{macrocode}
{nolistof}{3},{nolistsof}{3},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=listof}:] for each list with category/owner \texttt{float} add an
+% entry to the table of contents, but do not number the list of the floats.
+% \end{description}
+% \begin{macrocode}
{listof}{4},{listsof}{4},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=listofnumbered}:] for each list of category/owner \texttt{float}
+% number the list of floats and therefore add an entry to table of contents.
+% \end{description}
+% \begin{macrocode}
{listofnumbered}{5},{numberedlistof}{5},%
{listsofnumbered}{5},{numberedlistsof}{5},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=nobibliography}:] (default) for the bibliography neither add an
+% entry to the table if contents nor number the heading.
+% \end{description}
+% \begin{macrocode}
{nobibliography}{6},{nobib}{6},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=bibliography}:] for the bibliography add an entry to the table
+% of contents, but do not number the bibliography.
+% \end{description}
+% \begin{macrocode}
{bibliography}{7},{bib}{7},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=bibliographynumbered}:] number the bibliography and therefore
+% add an entry to the table of contents.
+% \end{description}
+% \begin{macrocode}
{bibliographynumbered}{8},{bibnumbered}{8},{numberedbibliography}{8},%
{numberedbib}{8},%
% \end{macrocode}
-% Dann gibt es Optionen für die Darstellungsarten des
-% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte
-% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form
-% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander
-% stehen. Der für die Nummern benötigte Platz wird dabei automatisch
-% ermittelt.
+% \begin{description}
+% \item[\opt{=flat}:] use the flat version of the table of contents (all
+% numbers are at one column, all texts in another one).
+% \end{description}
% \begin{macrocode}
{flat}{9},{left}{9},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=graduated}:] (default) use a hierarchical indented table of
+% contents similar to the standard classes.
+% \end{description}
+% \begin{macrocode}
{graduated}{10},{indent}{10},{indented}{10},%
% \end{macrocode}
-% \changes{v3.12}{2014/09/24}{neue Werte \texttt{numberline} und
-% \texttt{nonumberline}}%^^A
-% Außerdem können die nicht nummerierten Einträge ggf. ebenfalls mit
-% \cs{numberline} eingerückt werden. Das geht über ein Feature von
-% \textsf{tocbasic}.
+% \changes{v3.12}{2014/09/24}{values \opt{\quotechar=numberline} and
+% \opt{\quotechar=nonumberline} etc. added}
+% \begin{description}
+% \item[\opt{=numberline}:] indent entries without number like entries with
+% number.
+% \end{description}
% \begin{macrocode}
{indenttextentries}{11},{indentunnumbered}{11},{numberline}{11},%
+% \end{macrocode}
+% \begin{macrocode}
+% \begin{description}
+% \item[\opt{nonumberline}:] (default) do not indent the first line of an
+% entry without number
+% \end{description}
+% \begin{macrocode}
{leftaligntextentries}{12},{leftalignunnumbered}{12},{nonumberline}{12},%
% \end{macrocode}
-% Mit Version~3.15 kommt neu die Möglichkeit hinzu, Kapiteleinträge mit
-% Pünktchen zu versehen.
+% \changes{v3.15}{2015/01/14}{values \opt{\quotechar=chapterentrywithdots},
+% \opt{\quotechar=chapterentrywithoutdot} resp.
+% \opt{\quotechar=sectionentrywithdots},
+% \opt{\quotechar=sectionentrywithoutdot} added}
+% \begin{description}
+% \item[\opt{=chapterentrywithdots}:] classes with \cs{chapter} provide a dot
+% filler also for chapter entries.
+% \end{description}
% \begin{macrocode}
%<book|report> {chapterentrywithdots}{13},{chapterentrydotfill}{13},
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=chapterentrywithoutdots}:] (default) classes with \cs{chapter} use
+% a space filler for chapter entries.
+% \end{description}
+% \begin{macrocode}
%<book|report> {chapterentrywithoutdots}{14},{chapterentryfill}{14}%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=sectionentrywithdots}:] classes without \cs{chapter} use
+% dot filler also for section entries.
+% \end{description}
+% \begin{macrocode}
%<article> {sectionentrywithdots}{13},{sectionentrydotfill}{13},
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=sectionentrywithoutdots}:] (default) classes without
+% \cs{chapter} use a space filler for section entries.
+% \end{description}
+% \begin{macrocode}
%<article> {sectionentrywithoutdots}{14},{sectionentryfill}{14}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
@@ -453,30 +517,23 @@
% \end{macrocode}
% \end{option}
%
-% \begin{option}{tocleft}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{tocindent}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \begin{option}{tocleft,tocindent}
+% \changes{v2.8q}{2001/11/14}{added}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
%<*option>
\KOMA@DeclareDeprecatedOption{tocleft}{toc=flat}
\KOMA@DeclareDeprecatedOption{tocindent}{toc=graduated}
%</option>
% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% \subsection{Definitionen für das Inhaltsverzeichnis}
+% \end{option}^^A tocleft,tocindent
%
-% \begin{macro}{\contentsname}
-% \begin{macro}{\listoftocname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}%^^A
-% \changes{v3.27}{2019/05/11}{auch als sprachabhängiger Bezeichner}%^^A
-% Der Name des Verzeichnisses.
+% \begin{command}{\contentsname}
+% \begin{command}{\listoftocname}
+% \changes{v3.00}{2008/07/03}{added to be used by \pkg*{tocbasic}}
+% \changes{v3.27}{2019/05/11}{language dependency added}
+% The name of the table of contents.
% \begin{macrocode}
%<*body>
\newcommand*\contentsname{Contents}
@@ -485,35 +542,31 @@
UKenglish,ukenglish,USenglish,usenglish}\contentsname{Contents}%
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \listoftocname
+% \end{command}^^A \contentsname
%
-% \begin{Counter}{tocdepth}
-% Der Zähler gibt an, bis zu welcher Gliederungebene Einträge in das
-% Inhaltsverzeichnis aufgenommen werden. Da \textsf{scrartcl} eine
-% Ebene tiefer beginnt, wird auch eine Ebene tiefer eingetragen. Damit
-% finden sich -- abgesehen von \cs{part} -- immer drei Ebenen im
-% Inhaltsverzeichnis.
+% \begin{counter}{tocdepth}
+% The counter is used to define, down to which level the entries are shown in
+% the table of contents (resp. list of floats, because the same value is used
+% there). Note: We don't use symbolic values here, because usage of symbolic
+% values would add an additional order dependency with the corresponding
+% \cs{DeclareSecionCommand}.
% \begin{macrocode}
%<*body>
%<book|report>\setcounter{tocdepth}{2}
%<article>\setcounter{tocdepth}{3}
%</body>
% \end{macrocode}
-% \end{Counter}
+% \end{counter}^^A tocdepth
%
% \begin{macro}{\toc@heading}
-% \changes{v2.3h}{1995/01/21}{neu (intern)}%^^A
-% \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und
-% \textsf{scrbook}}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \cs{toc@heading} ist nicht
-% länger empfohlen}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% \changes{v3.30}{2020/02/24}{Leerzeichen am Ende der Warnung entfernt}%^^A
-% Befehl, zum Setzen der Ãœberschrift des Inhaltsverzeichnisses. Eigentlich
-% ist das überflüssig, weil es nur einmal verwendet wird. Aus Gründen der
-% Konsistenz mit den anderen Verzeichnissen machen wir das hier aber
-% genauso.
+% \changes{v2.3h}{1995/01/21}{added for \cls*{scrartcl}}
+% \changes{v2.95}{2002/06/28}{added for \cls*{scrreprt}and \cls*{scrbook}}
+% \changes{v3.00}{2008/07/04}{deprecated}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.30}{2020/02/24}{white space at end of warning removed}
+% This has been defined before usage of \pkg*{tocbasic}. Internally it is not
+% used any longer.
% \begin{macrocode}
%<*body>
\newcommand*\toc@heading{%
@@ -530,34 +583,29 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \toc@heading
%
% \begin{macro}{\toc@l@number}
-% \changes{v2.8q}{2001/11/14}{neu}%^^A
-% Dieses Makro wird innerhalb von \cs{tableofcontents} über
-% \cs{before@starttoc} und \cs{after@starttoc} in der
-% \texttt{aux}-Datei global definiert. Aus Sicherheitsgründen wird es
-% hier global vordefiniert.
+% \changes{v2.8q}{2001/11/14}{added}
+% The number length storage used by \cs{before@starttoc} for \meta{extension}
+% \texttt{toc}. For safety we just \emph{reserve} it.
% \begin{macrocode}
%<*body>
\newcommand*{\toc@l@number}{}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \toc@l@number
%
-% \begin{macro}{\tableofcontents}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}}
-% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
-% 0 gesetzt}
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
-% \cs{@parskip@indent}}
-% \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} bearbeiten}
-% \changes{v2.95}{2002/06/28}{\textsf{article} beachtet ebenfalls
-% \texttt{tocleft}}
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}
-% \changes{v3.00}{2008/07/04}{auf \textsf{tocbasic} umgestellt}
-% Die Ausgabe des Inhaltsverzeichnisses.
+% \begin{command}{\tableofcontents}
+% \changes{v2.3h}{1995/01/21}{using \cs{toc@heading}}
+% \changes{v2.8l}{2001/08/16}{group added an \len{parskip} set to 0}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse} and \cs{@parskip@indent}}
+% \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} changed}
+% \changes{v2.95}{2002/06/28}{\cls*{scrartcl} also uses \cs{if@tocleft}}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent} replaced}
+% \changes{v3.00}{2008/07/04}{re-implementation using \pkg*{tocbasic}}
+% The table of contents. See the note above about the local change of
+% \cs{if@dynlist}.
% \begin{macrocode}
%<*body>
\newcommand*{\tableofcontents}{%
@@ -568,18 +616,27 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \tableofcontents
%
-% \begin{macro}{\addtocentrydefault}
-% \changes{v3.08}{2010/11/01}{Neu}%^^A
-% \changes{v3.12}{2013/09/24}{Verwendung der neuen
-% \texttt{tocbasic}-Anweisung \cs{tocbasic@addxcontentsline}}
-% Seit Version~3.08 werden Einträge ins Inhaltsverzeichnis in der
-% Voreinstellung über diese Anweisung vorgenommen. Das erste Argument ist
-% dabei die Gliederungsebene. Das zweite Argument ist die (formatierte)
-% Gliederungsnummer oder leer, falls die Ãœberschrift nicht nummeriert
-% wird. Das dritte Argument ist der Ãœberschriftentext, der in das
-% Inhaltsverzeichnis soll.
+% \begin{command}{\addtocentrydefault}
+% \changes{v3.08}{2010/11/01}{added}
+% \changes{v3.12}{2013/09/24}{using new \pkg*{tocbasic} macro
+% \cs{tocbasic@addxcontentsline}}
+% Instead of making the entries into the table of contents directly with
+% the \LaTeX{} low level command \cs{addcontentsline} we provide a class
+% specific low level user command
+% \begin{quote}
+% \cs{addtocentrydefault}\marg{level name}\marg{formatted number}\marg{entry text}
+% \end{quote}
+% that uses the \pkg*{tocbasic} package author command
+% \cs{tocbasic@addctontentsline}. We cannot use \cs{addxcontentsline} because
+% this will run \cs{add\meta{level name}\meta{toc}entry} if available and
+% \cs{addtocentrydefault} is used by the entry commands
+% \cs{addchaptertocentry}, \cs{addsectiontocentry}. So \cs{addtoentrydefault}
+% is a helper for the callbacks from \cs{addxcontentsline} and needs to use
+% the package author interface instead of the user interface. For not numbered
+% entries the \meta{formatted number} should be empty (not only expand to no
+% output). Note: Entries with empty \meta{entry text} will be omitted.
% \begin{macrocode}
%<*body>
\newcommand{\addtocentrydefault}[3]{%
@@ -587,36 +644,33 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Die Verzeichnisse der Gleitumgebungen}
+% \subsection{The lists of floats (or similar environments)}
%
-% Die Verzeichnisse der Gleitumgebungen ähneln dem Inhaltsverzeichnis, stellen
-% jedoch eine eigene Klasse dar und werden daher auch über eigene Optionen
-% gesteuert.
+% The list of tables, list of figures and similar lists of environments with
+% category/owner \texttt{float} are very similar to the table of contents. But
+% they use a own set of options and also some commands.
%
-% \selectlanguage{english}%^^A
-% \changes{v3.25}{2017/10/10}{extension \texttt{lof} not added explicitely}%^^A
-% \changes{v3.25}{2017/10/10}{extension \texttt{lot} not added explicitely}%^^A
+% \changes{v3.25}{2017/10/10}{extension \texttt{lof} not added explicitely}
+% \changes{v3.25}{2017/10/10}{extension \texttt{lot} not added explicitely}
% Note: We must not add extensions \texttt{lof} and \texttt{lot} explicitely,
% because these files will be prepared using \cs{DeclareNewTOC} that also
% registers the extension.
%
-% \changes{v1.00}{auto-activation of feature \texttt{onecolumn}}
+% \changes{v3.01}{2008/11/13}{auto-activation of feature \texttt{onecolumn}}
% Set feature \texttt{onecolumn} for every float list file.
% \begin{macrocode}
%<*prepare&(book|report)>
\AtAddToTocList[float]{\setuptoc{\@currext}{onecolumn}}%
%</prepare&(book|report)>
% \end{macrocode}
-% \selectlanguage{ngerman}%^^A
%
% \begin{macro}{\float@@listhead}
-% \changes{v2.98c}{2008/03/05}{neu (intern)}%^^A
-% \changes{v3.01}{2008/11/14}{deprecated}%^^A
-% Setzt nur die Ãœberschrift und sonst nichts. Dabei wird die Ãœberschrift als
-% einziges Argument übergeben.
+% \changes{v2.98c}{2008/03/05}{added}
+% \changes{v3.01}{2008/11/14}{deprecated}
+% Prints only the heading, nothing else. The heading text is the argument.
% \begin{macrocode}
%<*option>
\newcommand*{\float@@listhead}{%
@@ -625,89 +679,143 @@
}
%</option>
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \float@@listhead
%
-% \begin{macro}{\if@dynlist}
-% \changes{v2.8q}{2001/11/14}{neuer Schalter}%^^A
-% \begin{macro}{\@dynlisttrue}
-% \begin{macro}{\@dynlistfalse}
-% Die Wahl der Darstellungsart wird in einem Schalter gespeichert.
+% \begin{macro}{\@dynlistfalse,\@dynlisttrue,\if@dynlist}
+% \changes{v2.8q}{2001/11/14}{added}
+% The switch to select the flat (\cs{@dynlisttrue}) or graduated
+% (\cs{@dynlistfalse)} list type.
% \begin{macrocode}
%<*option>
\newif\if@dynlist
%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A … \if@dynlist
%
% \begin{option}{listof}
-% \changes{v2.98c}{2008/03/05}{Neue Option}%^^A
-% \changes{v3.06}{2010/06/02}{Alle über \textsf{tocbasic} realisierten
-% Einstellungen wirken sich auch auf Verzeichnisse des Besitzers
-% \texttt{float} aus, die erst später unter Kontrolle von
-% \textsf{tocbasic} gestellt werden.}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.12}{2013/06/26}{\cs{KOMA@options} durch
-% \cs{KOMAExecuteOptions} ersetzt}%^^A
-% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} durch
-% \cs{KOMAoptions} ersetzt}%^^A
-% Dies ist die zentrale Option für die Gleitumgebungsverzeichnisse.
+% \changes{v2.98c}{2008/03/05}{added}
+% \changes{v3.06}{2010/06/02}{options for \pkg*{tocbasic} features do not only
+% work for the currently defined lists but all future lists of category
+% \texttt{float}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/06/26}{\cs{KOMA@options} replaced by
+% \cs{KOMAExecuteOptions}}
+% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} replaced by
+% \cs{KOMAoptions}}
+% The main features of the lists of floats can be configured by this option.
% \begin{macrocode}
%<*option>
\KOMA@key{listof}{%
\KOMA@set@ncmdkey{listof}{@tempa}{%
% \end{macrocode}
-% Es gibt Werte, die dafür sorgen, dass die Verzeichnisse der Gleitumgebungen
-% im Inhalsverzeichnis aufgeführt werden. Dazu muss nur \cs{float@@listhead}
-% umdefiniert werden.
+% The provided values are (aliases are also available):
+% \begin{description}
+% \item[\opt{=notoc}:] (default) neither number the lists of floats nor add
+% entries to them into the table of contents.
+% \end{description}
% \begin{macrocode}
{notoc}{0},{nottotoc}{0},{plainheading}{0},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=totoc}:] do not number the lists of floats but nevertheless add
+% an entry for each of them to the table of contents.
+% \end{description}
+% \begin{macrocode}
{totoc}{1},{toc}{1},{notnumbered}{1},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=numbered}:] number the lists of floats and therefore also add an
+% for each of them to the table of contents.
+% \end{description}
+% \begin{macrocode}
{numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},%
{numberedtoc}{2},%
% \end{macrocode}
-% Dann gibt es Optionen für die Darstellungsarten des
-% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte
-% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form
-% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander
-% stehen. Der für die Nummern benötigte Platz wird dabei automatisch
-% ermittelt.
+% \begin{description}
+% \item[\opt{=flat}:] use the flat version of the lists of floats (all
+% numbers are at one column, all texts in another one). Usually this only
+% removes the indent and calculates the needed width of the numbers. But,
+% e.g., if chapters are added, it does work over all levels.
+% \end{description}
% \begin{macrocode}
{flat}{3},{left}{3},%
+% \item[\opt{=graduated}:] (default) use hierarchical indented lists of
+% floats similar to the standard classes.
+% \end{description}
+% \begin{macrocode}
{graduated}{4},{indent}{4},{indented}{4},%
% \end{macrocode}
-% Dann gibt es eine Option, mit der die Gliederungsebene der Verzeichnisse
-% verändert werden kann.
-% \changes{v3.25}{2017/12/04}{neuer Wert \texttt{standardlevel}}%^^A
+% \begin{description}
+% \item[\opt{=leveldown}:] Use for the lists of floats a section hierarchy one
+% level below the standard level.
+% \end{description}
% \begin{macrocode}
{leveldown}{5},
+% \end{macrocode}
+% \changes{v3.25}{2017/12/04}{value \opt{\quotechar=standardlevel} added}
+% \begin{description}
+% \item[\opt{=standardlevel}:] (default) Use for the lists of floats the
+% standard hierarchy.
+% \end{description}
+% \begin{macrocode}
{standardlevel}{6},
% \end{macrocode}
-% \changes{v3.06}{2010/05/18}{neuer Wert \texttt{entryprefix}}
-% Dann gibt es eine Option, mit der die Einträge in die Verzeichnisse mit
-% einem Prefix versehen werden können, soweit ein solcher Prefix
-% existiert. Dieser Wert beinhaltet gleichzeitig auch den Wert \texttt{flat}.
+% \changes{v3.06}{2010/05/18}{value \opt{\quotechar=entryprefix} added}
+% \begin{description}
+% \item[\opt{=entryprefix}:] Prefix the number of each entry with
+% \cs{listof\meta{toc}entryprefix}. Note: This is more or less senseless and
+% does not work correctly with chapter entries in the lists of floats. It is
+% recommended to reconfigure the entries, e.g., using
+% \cs{DeclareTOCStyleEntry} or redefining \cs{add\meta{level
+% name}\meta{toc}entry} instead. Note: \opt{listof=entryprefix} also
+% activates \opt{listof=flat}.
+% \end{description}
% \begin{macrocode}
{entryprefix}{7},
% \end{macrocode}
-% \changes{v3.12}{2014/09/24}{neue Werte \texttt{numberline} und
-% \texttt{nonumberline}}%^^A
-% Außerdem können die nicht nummerierten Einträge ggf. ebenfalls mit
-% \cs{numberline} eingerückt werden. Das geht über ein Feature von
-% \textsf{tocbasic}.
+% \changes{v3.12}{2014/09/24}{values \opt{\quotechar=numberline} and
+% \opt{\quotechar=nonumberline} etc. added}
+% \begin{description}
+% \item[\opt{=numberline}:] indent entries without number like entries with
+% number.
+% \end{description}
% \begin{macrocode}
{indenttextentries}{8},{indentunnumbered}{8},{numberline}{8},%
+% \end{macrocode}
+% \begin{macrocode}
+% \begin{description}
+% \item[\opt{=nonumberline}:] (default) do not indent the first line of an
+% entry without number
+% \end{description}
+% \begin{macrocode}
{leftaligntextentries}{9},{leftalignunnumbered}{9},{nonumberline}{9}%
% \end{macrocode}
-% Dann gibt es Optionen, für die Unterteilung auf Kapitelebene. Allerdings nur
-% für \textsf{scrbook} und \textsf{scrreprt}.
+% \begin{description}
+% \item[\opt{=chapterentry}:] \cls*{scrbook} and \cls*{scrreprt} provides
+% chapter entries into the lists of floats.
+% \end{description}
% \begin{macrocode}
%<*book|report>
,{chapterentry}{10},{withchapterentry}{10},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=nochaptergap}:] Alternatively the lists of floats can ignore chapters.
+% \end{description}
+% \begin{macrocode}
{nochaptergap}{11},{ignorechapter}{11},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=chaptergapsmall}:] (default) chapters can add a small
+% vertical distance into the lists of floats.
+% \end{description}
+% \begin{macrocode}
{chaptergapsmall}{12},{smallchaptergap}{12},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=chaptergapline}:] chapters can add an empty line to the lists of
+% floats.
+% \end{description}
+% \begin{macrocode}
{chaptergapline}{13},{onelinechaptergap}{13}%
%</book|report>
}{#1}%
@@ -863,73 +971,61 @@
\KOMA@kav@add{.\KOMAClassFileName}{listof}{leftaligntextentries}
%</option>
% \end{macrocode}
-% \end{option}
+% \end{option}^^A listof
%
% \begin{option}{liststotoc}
-% \changes{v2.3h}{1995/01/21}{neue Option}%^^A
-% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}}
-% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch
-% \cs{listtablename} ersetzt}
-% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.8b}{2001/06/26}{using \cs{float@headings}}
+% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} relaces by \cs{listtablename}}
+% \changes{v2.8g}{2001/07/18}{\cs{float@headings} renamed to
% \cs{float@listhead}}
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
%<*option>
\KOMA@DeclareDeprecatedOption{liststotoc}{listof=totoc}
%</option>
% \end{macrocode}
-% \end{option}
+% \end{option}^^A liststotoc
%
% \begin{option}{liststotocnumbered}
-% \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben}%^^A
-% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.8q}{2002/04/08}{added}
+% \changes{v2.9p}{2003/07/07}{number also in the running head}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
%<*option>
\KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered}
%</option>
% \end{macrocode}
-% \end{option}
+% \end{option}^^A liststotocnumbered
%
%
-% \begin{option}{listsleft}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{listsindent}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \begin{option}{listsleft,listsindent}
+% \changes{v2.8q}{2001/11/14}{added}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
%<*option>
\KOMA@DeclareDeprecatedOption{listsleft}{listof=flat}
\KOMA@DeclareDeprecatedOption{listsindent}{listof=graduated}
%</option>
% \end{macrocode}
-% \end{option}
-% \end{option}
+% \end{option}^^A listsleft,listsindent
%
% \begin{option}{chapteratlists}
-% \changes{v2.96a}{2006/12/03}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{nicht mehr bei \textsf{scrartcl}}%^^A
-% \changes{v3.12a}{2014/01/17}{fehlendes \cs{FamilyKeyStateProcessed}%^^A
-% ergänzt}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\if@chaptertolists}
-% \changes{v2.96a}{2006/12/03}{neuer Schalter}%^^A
-% \changes{v3.12}{2013/09/24}{Verzeichnisse werden nicht in Verzeichnisse
-% eingetragen}%^^A
+% \changes{v2.96a}{2006/12/03}{added}
+% \changes{v2.98c}{2008/03/05}{not with \cls*{scrartcl}}
+% \changes{v3.12a}{2014/01/17}{missing \cs{FamilyKeyStateProcessed} added}
+% \changes{v3.17}{2015/03/12}{internal value storage}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{macro}{\@chaptertolistsfalse,\@chaptertoliststrue,\if@chaptertolists}
+% \changes{v2.96a}{2006/12/03}{added}
+% \changes{v3.12}{2013/09/24}{don't add lists to lists}
% \begin{macro}{\@chapterlistsgap}
-% \changes{v2.96a}{2006/12/03}{neues Macro (intern)}%^^A
-% Option, um einzugstellen, ob Kapitel in den Verzeichnissen der
-% Gleitumgebungen Spuren hinterlassen. Man kann wahlweise Lücken einstellen
-% (Voreinstellung mit 10\,pt) oder die Kapitelüberschrift eintragen lassen.
-% Der Schalter gibt dabei an, ob die Kapitelüberschrift eingetragen werden
-% soll. Das interne Hilfsmakro \cs{@chapterlistsgap} enthält den gewünschten
-% Abstand.
+% \changes{v2.96a}{2006/12/03}{added}
+% We can do several special treatments inside the lists of floats, when a new
+% chapter starts.
% \begin{macrocode}
%<*option&(book|report)>
\newcommand*{\@chapterlistsgap}{10\p@}
@@ -940,11 +1036,23 @@
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergap}%
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapsmall}%
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapline}%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=entry}:] add the chapter heading also to the lists of
+% float. \cs{@chaptertolisttrue} is used and the distance \cs{@chapterlistgap}
+% is set to \len{z@}.
+% \end{description}
+% \begin{macrocode}
\Ifstr{#1}{entry}{%
\@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}%
\KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}{entry}%
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chapterentry}%
}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=\meta{distance}}:] use a vertical \meta{distance}.
+% \end{description}
+% \begin{macrocode}
\@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}%
\KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}%
{\@chapterlistsgap}%
@@ -969,26 +1077,26 @@
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapsmall}%
%</option&(book|report)>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \@chapterlistgap
+% \end{macro}^^A \if@chaptertolists
+% \end{option}^^A chapteratlists
%
%
% \begin{macro}{\float@listhead}
-% \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)}%^^A
-% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in
-% \cs{float@listhead}}%^^A
-% \changes{v2.98c}{2008/03/05}{\cs{float@@listhead} wird verwendet}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \cs{float@listhead} ist nicht
-% länger empfohlen}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% In Absprache mit Anselm Lingnau, dem Autor des Pakets \textsf{float}, wird
-% ab Version 2.8b \cs{float@headings} zum Setzen des Kolumnentitels bei den
-% Verzeichnissen verwendet, die \textsf{float} für neu definierte floats zur
-% Verfügung stellt. Dabei definiert \textsf{float} die Anweisung nur, wenn
-% sie nicht bereits existiert. Die Zusammenarbeit wird dadurch
-% verbessert. Da Anselm sich in letzter Minute entschlossen hat, das Makro
-% \cs{float@listhead} zu nennen, wurde dies in Version 2.8g angepasst.
+% \changes{v2.8b}{2001/06/26}{added}
+% \changes{v2.8g}{2001/07/18}{\cs{float@headings} renamed to
+% \cs{float@listhead}}
+% \changes{v2.98c}{2008/03/05}{using \cs{float@@listhead}}
+% \changes{v3.00}{2008/07/04}{deprecated}
+% \changes{v3.10}{2011/08/31}{using\cs{MakeMarkcase}}
+% In 2001 I've designed an interface to allow other package authors to set the
+% headings of lists of floats the same way \KOMAScript{} classes do. Anselm
+% Lingnau accepted this interface (but did not like may macro names, so these
+% were changed in \KOMAScript{} 2.8g). But for \KOMAScript{} 3 I've needed a
+% more powerful interface. So this became deprecated. Unfortunately Anselm is
+% not willing to use the new \pkg*{tocbasic} for \pkg{float}. See
+% \pkg*{scrhack} for a solution and how \pkg{float} could benefit from using
+% \pkg*{tocbasic}.
% \begin{macrocode}
%<*body>
\newcommand*{\float@listhead}[1]{%
@@ -996,13 +1104,8 @@
\float@@listhead{#1}%
\@mkboth{\MakeMarkcase{#1}}{\MakeMarkcase{#1}}%
% \end{macrocode}
-% \changes{v2.8q}{2001/11/14}{dynamische Anpassung an die Nummer}%^^A
-% Dies ist der passende Ort, um die Breite, die für die Nummer des
-% Gleitobjekts benötigt wird zu ermitteln und anzupassen, falls dies
-% geünscht wird. Dazu findet eine lokale Umdefinierung von
-% \cs{@starttoc} statt. Die Umdefinierung ist deshalb lokal, weil alle
-% mir bekannten Verzeichnisse von Gleitobjekten innerhalb einer Gruppe
-% ausgegeben werden.
+% \changes{v2.8q}{2001/11/14}{support for dynamic number width}
+% This is the best occasion to also add the code for the dynamic number width.
% \begin{macrocode}
\if@dynlist%
\newcommand*{\scr@starttoc}{}%
@@ -1013,14 +1116,13 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\scr@float@listhead@warning}
-% \changes{v3.01}{2008/11/13}{Neu (intern)}%^^A
-% \changes{v3.12}{2013/09/25}{Text geändert}%^^A
-% \changes{v3.12a}{2014/03/05}{Text korrigiert}%^^A
+% \begin{macro}{\scr@float@listhead@warning,\scr@float@addtolists@warning}
+% \changes{v3.01}{2008/11/13}{added}
+% \changes{v3.12}{2013/09/25}{text changed}
+% \changes{v3.12a}{2014/03/05}{text corrected}
% \changes{v3.30}{2020/02/25}{spurious space at end of warning message
-% removed}%^^A
-% Die Warnung für die Verwendung von \cs{float@listhead}, dessen Definition
-% irgendwann aus den Klassen verschwinden wird.
+% removed}
+% Here the warning messages, that are used for using the deprecated interface.
% \begin{macrocode}
\newcommand*{\scr@float@listhead@warning}{%
\ClassWarning{\KOMAClassName}{%
@@ -1037,16 +1139,6 @@
deprecated \string\float@listhead\space interface%
}%
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@float@addtolists@warning}
-% \changes{v3.01}{2008/11/13}{Neu (intern)}%^^A
-% \changes{v3.12}{2013/09/25}{Text geändert}%^^A
-% \changes{v3.12a}{2014/03/05}{Text korrigiert}%^^A
-% \changes{v3.30}{2020/02/24}{Leerzeichen am Ende der Warnung entfernt}%^^A
-% Die Warnung für die Verwendung von \cs{float@addtolists}, dessen
-% Unterstützung irgendwann aus den Klassen verschwinden wird.
-% \begin{macrocode}
\newcommand*{\scr@float@addtolists@warning}{%
\ClassWarningNoLine{\KOMAClassName}{%
\string\float@addtolists\space detected!\MessageBreak
@@ -1067,28 +1159,15 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@float@listhead@warning,scr@float@addtolists@warning
+% \end{macro}^^A \float@listhead
%
-% \begin{macro}{\listfigurename}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \changes{v3.27}{2019/05/11}{auch als sprachabhängiger Bezeichner}%^^A
-% \begin{macro}{\listtablename}
+% \begin{command}{\listfigurename,\listtablename}
+% \begin{command}{\listoflofname,\listoflotname,
+% \listoflofentryname,\listoflotentryname}
+% \changes{v3.00}{2008/07/03}{neu für Paket \pkg*{tocbasic}}
% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \changes{v3.27}{2019/05/11}{auch als sprachabhängiger Bezeichner}%^^A
-% \begin{macro}{\listoflofname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \begin{macro}{\listoflotname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \begin{macro}{\listoflofentryname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \begin{macro}{\listoflotentryname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}.
+% The names used by \pkg*{tocbasic}.
% \begin{macrocode}
%<*body>
\renewcommand*\listfigurename{List of Figures}
@@ -1103,71 +1182,59 @@
\renewcommand*\listoflotentryname{\tablename}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \listoflofname … \listoflotentryname
+% \end{command}^^A \listfigurename,\listtablename
%
-% \begin{macro}{\listoffigures}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}}%^^A
-% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei
-% \textsf{scrartcl}}%^^A
-% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
-% 0 gesetzt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}%^^A
-% \changes{v3.23}{2017/03/24}{Verwendung von \cs{ext@figure} statt
-% \texttt{lof}}%^^A
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-% definiert}%^^A
-% Die Ausgabe des Abbildungsverzeichnisses.
-% \end{macro}
+% \begin{command}{\listoffigures}
+% \changes{v2.3h}{1995/01/21}{using \cs{lof@heading}}
+% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} for all classes}
+% \changes{v2.8l}{2001/08/16}{group added an \len{parskip} set to 0}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent}
+% replaced}
+% \changes{v3.00}{2008/07/04}{using \pkg*{tocbasic}}
+% \changes{v3.23}{2017/03/24}{using \cs{ext@figure} instead of \file{lof}}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% The list of figures.
+% \end{command}^^A \listoffigures
%
% \begin{macro}{\l@figure}
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-% im \texttt{default}-Stil definiert}%^^A
-% Befehl zur Formatierung eines Verzeichniseintrags.
-% \end{macro}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% Entry command for the list of figures.
+% \end{macro}^^A \l@figure
%
-% \begin{macro}{\listoftables}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}}%^^A
-% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei
-% \textsf{scrartcl}}%^^A
-% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
-% 0 gesetzt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
-% \cs{@parskip@indent}}%^^A
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}%^^A
-% \changes{v3.23}{2017/03/24}{Verwendung von \cs{ext@table} statt
-% \texttt{lot}}%^^A
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-% definiert}%^^A
-% Die Ausgabe des Tabellenverzeichnisses.
-% \end{macro}
+% \begin{command}{\listoftables}
+% \changes{v2.3h}{1995/01/21}{using \cs{lot@heading}}
+% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} for all classes}
+% \changes{v2.8l}{2001/08/16}{group added an \len{parskip} set to 0}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent}
+% replaced}
+% \changes{v3.00}{2008/07/04}{using \pkg*{tocbasic}}
+% \changes{v3.23}{2017/03/24}{using \cs{ext@table} instead of \file{lot}}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% The list of figures.
+% \end{command}^^A \listoftables
%
% \begin{macro}{\l@table}
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-% im \texttt{default}-Stil definiert}%^^A
-% \end{macro}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% Entry command for the list of tables.
+% \end{macro}^^A \l@table
%
-%
-% \iffalse
+% \begin{macrocode}
%</!letter>
-% \fi
-%
+% \end{macrocode}
+%
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-listsof.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx b/macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx
index 5c5f5ee4a1..aeac05df99 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx
+++ b/macros/latex/contrib/koma-script/source/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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx b/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx
index 72171d8a70..36336f3b24 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-notepaper.dtx
-% Copyright (c) Markus Kohm, 2006-2021
+% Copyright (c) Markus Kohm, 2006-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-notepaper.dtx
-% Copyright (c) Markus Kohm, 2006-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-notepaper.dtx 3577 2021-03-05 10:17:58Z kohm $
+%%% From File: $Id: scrkernel-notepaper.dtx 3742 2022-03-04 16:21:17Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-03-05 11:17:58 +0100 (Fri, 05 Mar 2021) $
+ \filedate$Date: 2022-03-04 17:21:17 +0100 (Fr, 04. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1767 $
+ \filerevision$Revision: 3742 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-notepaper.dtx}
@@ -73,70 +36,66 @@
(note-paper)]
}%
\reserved@a
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-notepaper.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}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-notepaper.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2006/03/16}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/26}{\cs{@newplength} replaced by \cs{newplength}}
+% \changes{v3.36}{2022/02/26}{\cs{@setplength} replaced by \cs{setplength}}
+% \changes{v3.36}{2022/02/26}{\cs{@addtoplength} replaced by \cs{addtoplength}}
+% \changes{v3.36}{2022/03/02}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/02}{whole implementation documentation in English}
%
-% \changes{v2.95}{2006/03/16}{%
-% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
+% \GetFileInfo{scrkernel-notepaper.dtx}
+% \title{Specific Code for Letters and Especially the Notepaper with
+% \href{https://komascript.de}{\KOMAScript}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The notepaper is something with high interest for letters. \KOMAScript{}
+% provides a wide range of configurations for it. \file{scrkernel-notepaper}
+% implements these features with options, variables and pseudo lengths
+% \end{abstract}
+% \tableofcontents
%
-% \section{Briefbogen und Briefpapier}
+% \section{User Manual}
%
-% Bei Briefen kommt dem Briefbogen, also dem ersten Blatt des Briefes eine
-% besondere Bedeutung zu. Dieser ist bei \texttt{scrlttr2} durch diverse
-% Optionen, Variablen, Pseudo-Längen und Anweisungen bestimmt. Die weiteren
-% Briefseiten werden hier verinfacht als das Briefpapier bezeichnet. Natürlich
-% ist genau genommen auch der Briefbogen Briefpapier, aber eben ein besonderes.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \iffalse
-%<*option>
-% \fi
%
-% \iffalse
-%<*letter>
-% \fi
+% \section{Implementation of the Notepaper of Letters}
%
-% \subsection{Option für den Briefbogen}
+% This code is only valid for letters with \cls*{scrlttr2} or
+% \pkg*{scrletter}.
%
-% Gerade der Briefbogen ist durch eine ganze Anzahl von Optionen
-% konfigurierbar. Daher wird hier weiter thematisch untergliedert.
+% \begin{macrocode}
+%<*letter>
+% \end{macrocode}
%
%
-% \subsubsection{Optionen für den Briefkopf}
+% \subsection{Options of the letter head}
%
-% Die Gestaltung des Briefkopfes war bei der alten \texttt{scrlettr}
-% Klasse eng begrenzt. Deshalb hatte ich für mich selbst das
-% \texttt{briefkopf} Paket geschrieben und ohne Support
-% veröffentlicht. Die Funktionalität ist nun direkt verfügbar. Dazu
-% werden verschiedene Optionen benötigt.
+% There are several options for the letter head.
%
% \begin{option}{firsthead}
-% \changes{v2.97e}{2007/11/22}{Neu}%^^A
-% Der Briefkopf kann auch einfach abgeschaltet werden.
-% \begin{macro}{\if@firsthead}
-% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist die Verwendung des Briefkopfes.
+% \changes{v2.97e}{2007/11/22}{added}
+% \begin{macro}{\@firstheadfalse,\@firstheadtrue,\if@firsthead}
+% \changes{v2.8q}{2002/01/25}{added}
+% Optionally the whole letter head can be switched off (default is on).
% \begin{macrocode}
+%<*option>
\KOMA@ifkey{firsthead}{@firsthead}
\KOMAExecuteOptions{firsthead=true}
% \end{macrocode}
@@ -144,30 +103,27 @@
% \end{option}
%
% \begin{option}{fromalign}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Diese Option legt fest, ob der Absender linksbündig, mittig oder
-% rechtsbündig gesetzt werden soll.
+% \changes{v2.8q}{2002/01/25}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
% \begin{macro}{\@alignfrom}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \changes{v2.97e}{2007/11/13}{neue Werte für Verwendung der
-% Absenderergänzung}%^^A
-% Die Einstellung wird in einem nummerisch auszuwertenden Makro
-% gespeichert. Dabei gelten folgende Werte:
+% \changes{v2.8q}{2002/01/25}{added}
+% \changes{v2.97e}{2007/11/13}{new values added}
+% The option provides several values for placing the sender of the letter. The
+% decision is saved as numerical value of the macro.
% \begin{center}
-% \begin{tabular}{rl}
-% Wert & Ausrichtung \\\hline
-% 0 & linksbündig \\
-% 1 & zentriert \\
-% 2 & rechtsbündig \\
-% 3 & linksbündig in der Absenderergänzung ohne Kopf \\
-% 4 & rechtbündig in der Absenderergänzung ohne Kopf \\
-% 10000 & nicht antasten \\
+% \begin{tabular}{lrl}
+% \opt{fromalign} & \cs{@alignfrom} & placement\\\hline
+% \opt{=left} & 0 & left in the head\\
+% \opt{=center} & 1 & centered in the head\\
+% \opt{=right} & 2 & right in the head\\
+% \opt{=locationleft} & 3 & left in the location field\\
+% \opt{=locationright} & 4 & right in the location field\\
+% \opt{=false} & 10000 & \emph{don't touch} \\
% \end{tabular}
% \end{center}
-% Voreingestellt ist "`nicht antasten"'.
+% Initial setting is \emph{don't touch}, which means not to change the content
+% of variable \var{firsthead} of \var{location}.
% \begin{macrocode}
\newcommand*{\@alignfrom}{0}
\KOMA@key{fromalign}{%
@@ -196,23 +152,21 @@
% \end{option}
%
% \begin{option}{fromrule}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Es kann gewählt werden, ob im Absender nach dem Namen oder nach dem
-% gesamten Absender eine Linie gesetzt werden soll.
+% \changes{v2.8q}{2002/01/25}{added}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
% \begin{macro}{\@rulefrom}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Die Einstellung wird in einem nummerisch auszuwertenden Makro
-% gespeichert. Dabei gelten folgende Werte:
+% \changes{v2.8q}{2002/01/25}{added}
+% Should there be a horizontal rule inside the sender of the automatic
+% generated letter head of option \opt{fromalign}?
% \begin{center}
-% \begin{tabular}{rl}
-% Wert & Absenderlinie \\\hline
-% 0 & keine \\
-% 1 & unter dem Name \\
-% 2 & unter der Adresse \\
+% \begin{tabular}{lrl}
+% \opt{fromrule} & \cs{@rulefrom} & rule placement \\\hline
+% \opt{=false} & 0 & nowhere \\
+% \opt{=aftername} & 1 & below the senders name \\
+% \opt{=below} & 2 & below the senders address \\
% \end{tabular}
% \end{center}
-% Voreingestellt ist keine Linie.
+% Initial setting is nowhere.
% \begin{macrocode}
\KOMA@ncmdkey{fromrule}[below]{@rulefrom}{%
{false}{0},{no}{0},{off}{0},{aftername}{1},%
@@ -227,177 +181,107 @@
% \end{option}
%
% \begin{option}{fromphone}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Ob die Telefonnummer im Absender gesetzt werden soll oder nicht,
-% kann hier angegeben werden.
-% \begin{macro}{\if@phone}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@phonetrue}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@phonefalse}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist keine Telefonnummer im Absender.
+% \changes{v2.8q}{2002/01/25}{added}
+% \begin{macro}{\@phonefalse,\@phonetrue,\if@phone}
+% \changes{v2.8q}{2002/01/25}{added}
+% Show the sender's telephone number in the letter head automatically
+% generated by option \opt{fromalign}?
% \begin{macrocode}
\KOMA@ifkey{fromphone}{@phone}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
% \begin{option}{frommobilephone}
-% \changes{v3.12}{2013/05/29}{Neu}%^^A
-% Ob die Handynummer im Absender gesetzt werden soll oder nicht,
-% kann hier angegeben werden.
-% \begin{macro}{\if@mobilephone}
-% \changes{v3.12}{2013/05/29}{Neu}%^^A
-% \begin{macro}{\@mobilephonetrue}
-% \changes{v3.12}{2013/05/29}{Neu}%^^A
-% \begin{macro}{\@mobilephonefalse}
-% \changes{v3.12}{2013/05/29}{Neu}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist keine Handynummer im Absender.
+% \changes{v3.12}{2013/05/29}{added}
+% \begin{macro}{\@mobilephonefalse,\@mobilephonetrue,\if@mobilephone}
+% \changes{v3.12}{2013/05/29}{added}
+% Show the sender's mobile telephone number in the letter head automatically
+% generated by option \opt{fromalign}?
% \begin{macrocode}
\KOMA@ifkey{frommobilephone}{@mobilephone}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
% \begin{option}{fromfax}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Ob die Faxnummer im Absender gesetzt werden soll oder nicht,
-% kann hier angegeben werden.
-% \begin{macro}{\if@fax}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@faxtrue}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@faxfalse}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist keine Faxnummer im Absender.
+% \changes{v2.8q}{2002/01/25}{added}
+% \begin{macro}{\@faxfalse,\@faxtrue,\if@fax}
+% \changes{v2.8q}{2002/01/25}{added}
+% Show the sender's telefax number in the letter head automatically generated
+% by option \opt{fromalign}?
% \begin{macrocode}
\KOMA@ifkey{fromfax}{@fax}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
% \begin{option}{fromemail}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Ob die E-Mail-Adresse im Absender gesetzt werden soll oder nicht,
-% kann hier angegeben werden.
-% \begin{macro}{\if@email}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@emailtrue}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@emailfalse}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist keine E-Mail-Adresse im Absender.
+% \changes{v2.8q}{2002/01/25}{added}
+% \begin{macro}{\@emailfalse,\@emailtrue,\if@email}
+% \changes{v2.8q}{2002/01/25}{added}
+% Show the sender's email address in the letter head automatically generated
+% by option \opt{fromalign}?
% \begin{macrocode}
\KOMA@ifkey{fromemail}{@email}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
% \begin{option}{fromurl}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Ob die URL auf eine Homepage im Absender gesetzt werden soll oder
-% nicht, kann hier angegeben werden.
-% \begin{macro}{\if@www}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@wwwtrue}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@wwwfalse}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist keine URL im Absender.
+% \changes{v2.8q}{2002/01/25}{added}
+% \begin{macro}{\@wwwfalse,\@wwwtrue,\if@www}
+% \changes{v2.8q}{2002/01/25}{added}
+% Show a sender's url (e.g. of the homepage) in the letter head automatically
+% generated by option \opt{fromalign}?
% \begin{macrocode}
\KOMA@ifkey{fromurl}{@www}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
% \begin{option}{fromlogo}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Ob ein Logo in den Briefkopf gesetzt werden soll oder
-% nicht, kann hier angegeben werden.
-% \begin{macro}{\if@logo}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@logotrue}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% \begin{macro}{\@logofalse}
-% \changes{v2.8q}{2002/01/25}{Neu}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist kein Logo im Briefkopf.
+% \changes{v2.8q}{2002/01/25}{added}
+% \begin{macro}{\@logofalse,\@logotrue,\if@logo}
+% \changes{v2.8q}{2002/01/25}{added}
+% Show a sender's logo in the letter head automatically generated by option
+% \opt{fromalign} (placement also depends on \opt{fromalign})?
% \begin{macrocode}
\KOMA@ifkey{fromlogo}{@logo}
+%</option>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
%
-% \subsubsection{Optionen für Anschrift und Absenderergänzung}
+% \subsection{Options for the addressee and the location field}
%
% \begin{option}{addrfield}
-% \changes{v2.8q}{2001/10/09}{Neu}%^^A
-% \changes{v3.03}{2009/03/04}{neue Werte}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Das Adressfeld für Fensterumschläge kann mit \texttt{addrfield} ein- und
-% ausgeschaltet werden. Darüber hinaus kann die Art des Adressfeldes gewählt
-% werden.
-% \begin{macro}{\if@afield}
-% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}}
-% \begin{macro}{\@afieldtrue}
-% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}}
-% \begin{macro}{\@afieldfalse}
-% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}}
+% \changes{v2.8q}{2001/10/09}{added}
+% \changes{v3.03}{2009/03/04}{new values added}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
% \begin{macro}{\@afieldmode}
-% \changes{v3.03}{2009/03/04}{neu (intern)}%^^A
-% Die Speicherung erfolgt wiederum in einem Makro.
+% \changes{v3.03}{2009/03/04}{added}
+% There are several settings for the address field---not only to switch it on
+% and off:
+% \begin{center}
+% \begin{tabular}{lrl}
+% \opt{addrfield} & \cs{@afieldmode} & meaning \\\hline
+% false & 0 & don't show the address
+% field\\
+% true & 1 & show address field
+% centered\\
+% PP & 2 & address field with
+% pospaid\\
+% backgroundimage & 3 & address field with
+% background image\\
+% image & 4 & address field by image\\
+% topaligned & 5 & show address field top
+% aligned\\
+% \end{tabular}
+% \end{center}
% \begin{macrocode}
-%<*class>
-\newcommand*{\if@afield}{%
- \ClassWarning{\KOMAClassName}{%
- Usage of \string\if@afield\space deprecated.\MessageBreak
- Internal macro \string\if@afield\space was removed at\MessageBreak
- KOMA-Script version 3.03. I'll replace the usage of\MessageBreak
- \string\if@afield\space by \string\ifnum
- \string\@afieldmode=\string\@ne.\MessageBreak
- This may result in errors. A better solution would be\MessageBreak
- to change the code}%
- \ifnum \@afieldmode=\@ne}
-\newcommand*{\@afieldtrue}{%
- \ClassWarning{\KOMAClassName}{%
- Usage of \string\if@afield\space deprecated.\MessageBreak
- Internal macro \string\if@afield\space was removed at\MessageBreak
- KOMA-Script version 3.03. I'll replace the usage of\MessageBreak
- \string\@afieldtrue\space by
- \string\KOMAoptions{addrfield=true}.\MessageBreak
- This may result in errors. A better solution would be\MessageBreak
- to change the code}%
- \KOMAoptions{addrfield=true}}
-\newcommand*{\@afieldfalse}{%
- \ClassWarning{\KOMAClassName}{%
- Usage of \string\if@afield\space deprecated.\MessageBreak
- Internal macro \string\if@afield\space was removed at\MessageBreak
- KOMA-Script version 3.03. I'll replace the usage of\MessageBreak
- \string\@afieldfalse\space by
- \string\KOMAoptions{addrfield=false}.\MessageBreak
- This may result in errors. A better solution would be\MessageBreak
- to change the code}%
- \KOMAoptions{addrfield=false}}
-%</class>
+%<*option>
\newcommand*{\@afieldmode}{\@ne}
\KOMA@ncmdkey{addrfield}[true]{@afieldmode}{%
{false}{0},{off}{0},{no}{0},%
@@ -418,23 +302,35 @@
%<package> scrletter.\scr@pkgextension
}{addrfield}{true}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \begin{macro}{\@afieldfalse,\@afieldtrue,\if@afield}
+% \changes{v3.03}{2009/03/04}{replaced by \cs{@afieldmode}}
+% \changes{v3.36}{2022/03/02}{removed}
% \end{macro}
% \end{macro}
% \end{option}
%
% \begin{option}{priority}
-% \changes{v3.03}{2009/03/04}{neu}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Im internationalen Briefverkehr sind zwei Prioritätseinstellungen
-% bekannt. Dafür gibt es dann so etwas wie eine Versandart nicht mehr.
+% \changes{v3.03}{2009/03/04}{added}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
+% \changes{v3.36}{2022/03/02}{value \opt{\quotechar=manual} fixed}
% \begin{macro}{\ltr@priority}
-% \changes{v3.03}{2009/03/04}{neu (intern)}%^^A
-% Abgelegt wird die Art der Priorität in einem Macro.
+% \changes{v3.03}{2009/03/04}{added}
+% The international postage convention allows two priorities for
+% letters. Together with no (or manually given) priority we have three of
+% them:
+% \begin{center}
+% \begin{tabular}{lrl}
+% \opt{priority} & \cs{ltr@priority} & meaning \\\hline
+% false & 0 & use variable \var{specialmail}\\
+% B & 1 & set \var{specialmail} to
+% B-Economy\\
+% A & 2 & set \var{specialmail} to
+% A-Priority\\
+% \end{tabular}
+% \end{center}
% \begin{macrocode}
\KOMA@ncmdkey{priority}[A]{ltr@priority}{%
- {no}{0},{off}{0},{false}{0},{manual}{1},%
+ {no}{0},{off}{0},{false}{0},{manual}{0},%
{B}{1},{b}{1},%
{economy}{1},{Economy}{1},{ECONOMY}{1},%
{B-ECONOMY}{1},{B-Economy}{1},{b-economy}{1},%
@@ -451,28 +347,36 @@
% \end{option}
%
% \begin{option}{backaddress}
-% \changes{v2.8q}{2002/01/22}{Neu}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{3015/03/16}{interne Speicherung der Werte}%^^A
-% Im Adressfeld kann die Rücksendeadresse gesetzt werden. Dies geschieht nun
-% nicht mehr allein durch Definition einer Rücksendeadresse, sondern auch
-% durch eine Option.
-% \begin{macro}{\if@baddr}
-% \begin{macro}{\@baddrtrue}
-% \begin{macro}{\@baddrfalse}
+% \changes{v2.8q}{2002/01/22}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{3015/03/16}{using internal value storage}
+% \begin{macro}{\@baddrfalse,\@baddrtrue,\if@baddr}
% \begin{macro}{\backaddr@format}
-% \changes{v2.96}{2006/07/31}{neu (intern)}%^^A
-% Dieses Makro hat genau ein Argument und bestimmt die Form der
-% Rücksendeadresse. Voreingestellt ist Unterstreichung. Dies entspricht der
-% vor Version~2.96 festen Voreinstellung.
+% \changes{v2.96}{2006/07/31}{added}
+% The address field of the addressee can also contain a small sender's address
+% also known as return address.
+% \begin{center}
+% \begin{tabular}{llll}
+% \opt{backaddress} & \cs{if@baddr} & \cs{backaddr@format} & meaning \\\hline
+% \opt{=false} & \cs{iffalse} & unchanged & don't show a
+% return
+% address\\
+% \opt{=true} & \cs{iftrue} & unchanged & show the
+% return address\\
+% \opt{=underlined} & \cs{iftrue} & \cs{underline} & show
+% underlined
+% return
+% address\\
+% \opt{=plain} & \cs{iftrue} & \cs{@firstofone} & show the
+% return
+% address
+% unchanged\\
+% \end{tabular}
+% \end{center}
+% Initial setting is to show a underlined return address.
% \begin{macrocode}
\newcommand{\backaddr@format}[1]{}
\let\backaddr@format\underline
-% \end{macrocode}
-% \end{macro}
-% Die Einstellung true/false der Option wird in einem Schalter gespeichert.
-% \begin{macrocode}
\newif\if@baddr\@baddrtrue
\KOMA@key{backaddress}[true]{%
\begingroup
@@ -532,30 +436,30 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \backaddr@format
+% \end{macro}^^A \if@baddr
+% \end{option}^^A backaddress
%
% \begin{option}{locfield}
-% \changes{v2.8q}{2001/10/09}{Neu}%^^A
-% \changes{v2.97c}{2007/03/30}{vertauschte Bedeutung korrigiert}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Mit Hilfe der Optione \texttt{locfield} kann der Platz neben dem Adressfeld
-% groß oder klein gewählt werden.
-% \begin{macro}{\if@bigloc}
-% \begin{macro}{\@bigloctrue}
-% \begin{macro}{\@biglocfalse}
-% Die Einstellung wird in einem Schalter gespeichert.
+% \changes{v2.8q}{2001/10/09}{added}
+% \changes{v2.97c}{2007/03/30}{inverted meaning fixed}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
+% \begin{macro}{\@biglocfalse,\@bigloctrue,\if@bigloc}
+% We allow two different automatic settings for the location field right
+% beside the addressee's address field:
+% \begin{center}
+% \begin{tabular}{lll}
+% \opt{locfield} & \cs{if@bigloc} & meaning \\\hline
+% \opt{=wide} & \cs{iftrue} & set \plen{locwidth} to 2/3 of
+% available space\\
+% \opt{=narrow} & \cs{iffalse} & set \plen{locwidth} to 1/2 of
+% available space\\
+% \end{tabular}
+% \end{center}
+% Initial setting is \opt{locfield=narrow}.
% \begin{macrocode}
\newif\if@bigloc
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macrocode}
\KOMA@key{locfield}[wide]{%
\begingroup
\KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
@@ -585,42 +489,91 @@
%<package> scrletter.\scr@pkgextension
}{locfield}{narrow}
% \end{macrocode}
-% \begin{option}{wlocfield}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{slocfield}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \begin{option}{wlocfield,slocfield}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{wlocfield}{locfield=wide}
\KOMA@DeclareDeprecatedOption{slocfield}{locfield=narrow}
+%</option>
% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
+% \end{option}^^A wlocfield,slocfield
+% \end{macro}^^A \if@bigloc
+% \end{option}^^A locfield
%
%
-% \subsubsection{Optionen für Faltmarken}
+% \subsection{Options of the fold marks}
%
+% \KOMAScript{} provides a large number of horizontal and vertical fold marks.
+
% \begin{option}{foldmarks}
-% \changes{v2.8q}{2001/09/10}{Neu}%^^A
-% \changes{v3.00}{2008/06/06}{es muss \cs{FamilyUnkownKeyVal} statt
-% \cs{KOMA@unkown@keyval} lokal umdefiniert werden}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Die Faltmarken können mit \texttt{foldmarks} aktiviert und deaktiviert
-% werden.
-% \begin{macro}{\if@fold}
-% \begin{macro}{\@foldtrue}
-% \begin{macro}{\@foldfalse}
-% Ob Faltmarken gesetzt werden sollen oder nicht, wird in einem
-% Schalter gespeichert.
-% \begin{macrocode}
-\newif\if@fold\@foldtrue
-% \end{macrocode}
+% \changes{v2.8q}{2001/09/10}{added}
+% \changes{v3.00}{2008/06/06}{locally re-definition of \cs{FamilyUnkownKeyVal}
+% instead of \cs{KOMA@unkown@keyval}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
+% \begin{macro}{\@foldfalse,\@foldtrue,\if@fold}
% \begin{macro}{\@usefolds}
-% Welche Faltmarken gesetzt werden sollen, wird in einem Makro gespeichert.
-% \changes{v2.97e}{2007/11/08}{Neu (intern)}%^^A
+% \changes{v2.97e}{2007/11/08}{added}
+% Fold marks can be generally switched on and off and it can be selected,
+% which fold marks should be shown, if fold marks has been activated:
+% \begin{center}
+% \begin{tabular}{llll}
+% \opt{foldmarks} & \cs{if@fold} & \cs{@usefolds} & meaning\\\hline
+% \opt{=true} & \cs{iftrue} & \emph{no change} & switch on fold
+% marks\\
+% \opt{=false} & \cs{iffalse} & \emph{no change} & switch off fold
+% marks\\
+% \opt{=\dots T\dots} & \emph{no change} & \texttt{T} \emph{added} & top
+% fold mark
+% enabled\\
+% \opt{=\dots M\dots} & \emph{no change} & \texttt{M} \emph{added} & middle
+% fold mark
+% enabled\\
+% \opt{=\dots B\dots} & \emph{no change} & \texttt{B} \emph{added} & bottom
+% fold mark
+% enabled\\
+% \opt{=\dots P\dots} & \emph{no change} & \texttt{P} \emph{added} & hole
+% punch fold mark
+% enabled\\
+% \opt{=\dots H\dots} & \emph{no change} & \texttt{TMBP} \emph{added} & all
+% horizontal fold
+% marks enabled\\
+% \opt{=\dots L\dots} & \emph{no change} & \texttt{L} \emph{added} & left
+% fold mark
+% enabled\\
+% \opt{=\dots V\dots} & \emph{no change} & \texttt{L} \emph{added} & all
+% vertical fold
+% marks enabled\\
+% \opt{=\dots t\dots} & \emph{no change} & \texttt{T} \emph{removed} & top
+% fold mark
+% disabled\\
+% \opt{=\dots m\dots} & \emph{no change} & \texttt{M} \emph{removed} & middle
+% fold mark
+% disabled\\
+% \opt{=\dots b\dots} & \emph{no change} & \texttt{B} \emph{removed} & bottom
+% fold mark
+% disabled\\
+% \opt{=\dots p\dots} & \emph{no change} & \texttt{P} \emph{removed} & hole
+% punch fold mark
+% disabled\\
+% \opt{=\dots h\dots} & \emph{no change} & \texttt{TMBP} \emph{removed} & all
+% horizontal fold
+% marks disabled\\
+% \opt{=\dots l\dots} & \emph{no change} & \texttt{L} \emph{removed} & left
+% fold mark
+% disabled\\
+% \opt{=\dots v\dots} & \emph{no change} & \texttt{L} \emph{removed} & all
+% vertical fold
+% marks disabled\\
+% \end{tabular}
+% \end{center}
+% Enabling or disabling a fold mark does not enable printing of fold
+% marks. the enabled fold marks are only printed, if fold marks are switched
+% on. The initial state is to switch on the top, middle, bottom, punch hole
+% and left fold mark (in other words: all fold marks).
% \begin{macrocode}
+%<*option>
+\newif\if@fold\@foldtrue
\newcommand*{\@usefolds}{TMBPL}
\KOMA@key{foldmarks}[true]{%
\begingroup
@@ -694,7 +647,8 @@
}{foldmarks}{true}%
% \end{macrocode}
% \begin{macro}{\scr@removechar}
-% \changes{v2.97e}{2007/11/08}{Neu (intern)}%^^A
+% \changes{v2.97e}{2007/11/08}{added}
+% Used to remove one char from a character list macro like \cs{@usefolds}.
% \begin{macrocode}
\newcommand*{\scr@removechar}[2]{%
\def\in@@##1#2##2##3\in@@{%
@@ -704,49 +658,52 @@
\fi}%
\expandafter\in@@#1#2\in@\in@@
}
+%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \scr@removechar
+% \end{macro}^^A \@usefolds
+% \end{macro}^^A \if@fold
+% \end{option}^^A foldmarks
%
%
-% \subsubsection{Optionen für die Geschäftszeile}
+% \subsection{Options of the reference line}
%
% \begin{option}{refline}
-% \changes{v2.8n}{2001/09/08}{Neue Option}%^^A
-% \changes{v2.96a}{2006/12/07}{vertauschte Bedeutung korrigiert}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Kopf und Fuß der ersten Seite sind normalweise so breit, dass sie
-% zur Adresse des Empfängers passen. Für die Geschäftszeile gibt es
-% zwei Alternativen, eine breite und eine, deren Breite der Textbreite
-% entspricht. Voreingestellt ist die Textbreite.
-% \begin{macro}{\if@refwide}
-% \changes{v2.8n}{2001/09/08}{Neuer Schalter}%^^A
-% \changes{v3.09}{2011/03/07}{Neue Werte: \texttt{dateleft},
-% \texttt{dateright}, \texttt{nodate}}
-% \begin{macro}{\@refwidetrue}
-% \begin{macro}{\@refwidefalse}
-% Gespeichert wird die Information in einem Schalter.
+% \changes{v2.8n}{2001/09/08}{added}
+% \changes{v2.96a}{2006/12/07}{alternated meaning fixed}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
+% \changes{v3.09}{2011/03/07}{values \opt{\quotechar=dateleft},
+% \opt{\quotechar=dateright}, \opt{\quotechar=nodate} added}
+% \changes{v3.27}{2019/05/03}{new value \opt{\quotechar=false} added}
+% \begin{macro}{\@refwidefalse,\@refwidetrue,\if@refwide}
+% \changes{v2.8n}{2001/09/08}{added}
% \begin{macro}{\@datepos}
-% \changes{v3.09}{2011/03/07}{Neu (intern)}%^^A
-% Das Datum kann links oder rechts oder gar nicht gesetzt werden.
-% Wo die Speicherung erfolgt wird in einem nummerischen Makro
-% abglegt. Voreingestellt ist rechts.
-% \begin{macro}{\if@refline}
-% \selectlanguage{english}%
-% \changes{v3.27}{2019/05/03}{new (internal) boolean}%^^A
-% \changes{v3.27}{2019/05/03}{new option \texttt{refline!=false}}%^^A
-% This boolean is used to switch of the whole reference
-% line. \texttt{refline=false} is a tri-state switch to
-% \texttt{refline=narrow} and \texttt{refline=wide}. But this is available
-% only for the package.%
-% \selectlanguage{ngerman}%
+% \changes{v3.09}{2011/03/07}{added}
+% \begin{macro}{\@reflinefalse,\@reflinetrue,\if@refline}
+% \changes{v3.27}{2019/05/03}{added}
+% The reference line support two predefined widths, switching off and
+% three different positions for the date:
+% \begin{center}
+% \begin{tabular}{lllrl}
+% \opt{refline} & \cs{if@refwide} & \cs{if@refline} & \cs{@datepos} &
+% meaning\\\hline
+% \opt{false} & \emph{unchanged}& \cs{iffalse} & \emph{unchanged} &
+% deactivate reference line\\
+% \opt{=wide} & \cs{iftrue} & \cs{iftrue} & \emph{unchanged} &
+% print wide reference line\\
+% \opt{=narrow} & \cs{iffalse} & \cs{iftrue} & \emph{unchanged} &
+% print narrow reference line\\
+% \opt{=nodate}& \emph{unchanged} & \emph{unchanged} & 1 & don't print
+% date in reference line\\
+% \opt{=dateright}& \emph{unchanged} & \emph{unchanged} & 1 & add date
+% rightmost to reference line\\
+% \opt{=dateleft} & \emph{unchanged} & \emph{unchanged} & 2 & add date
+% leftmost to reference line\\
+% \end{tabular}
+% \end{center}
% \begin{macrocode}
+%<*option>
\newif\if@refwide
%<package>\newif\if@refline\@reflinetrue
\newcommand*{\@datepos}{1}
@@ -877,50 +834,54 @@
%<class> \KOMAClassFileName
%<package> scrletter.\scr@pkgextension
}{refline}{narrow}%
+%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \@reflinefalse,\@reflinetrue,\if@refline
+% \end{macro}^^A \@datepos
+% \end{macro}^^A \@refwidefalse,\@refwidetrue,\if@refwide
+% \end{option}^^A refline
%
%
-% \subsubsection{Optionen für den Betreff}
+% \subsection{Options of the subject}
%
% \begin{option}{subject}
-% \changes{v2.8q}{2001/10/09}{Neu}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% Ein Betreff-Titel kann mit \texttt{subject} ein- und abgeschaltet
-% werden. In England und Frankreich scheint es teilweise üblich zu
-% sein, den Betreff erst nach der Anrede und dafür zentriert zu
-% setzen\footnote{Ich kann mir nur mühsahm eine Bemerkung dazu
-% verkneifen.}.
-% Deshalb kann alternativ zum Einschalten des Betreff-Titels hier auch
-% dies aktiviert werden.
+% \changes{v2.8q}{2001/10/09}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
+% \begin{macro}{\@subjtrue,\@subjfalse,\if@subj}
+% \begin{macro}{\@subjaftertrue,\@subjafterfalse,\if@subjafter}
% \begin{macro}{\subject@format}
-% \changes{v2.97c}{2007/07/06}{neu (intern)}%^^A
-% Das Format des Betreffs kann geändert werden.
+% \changes{v2.97c}{2007/07/06}{added}
+% \begin{command}{\raggedsubject}
+% \changes{v2.97c}{2007/07/06}{added}
+% The subject can be printed with or without title before or after the
+% opening. Different alignments and formats are also supported:
+% \begin{center}
+% \begin{tabular}{lllll}
+% \opt{subject} & \cs{if@subj} & \cs{if@subjafter} & \cs{subject@format} &
+% \cs{raggedsubject}\\\hline
+% \opt{=titled} & \cs{iftrue} & \emph{unchanged} & \emph{unchanged} &
+% \emph{unchanged}\\
+% \opt{=untitled} & \cs{iffalse} & \emph{unchanged} & \emph{unchanged} &
+% \emph{unchanged}\\
+% \opt{=afteropening} & \emph{unchanged} & \cs{iftrue} & \emph{unchanged} &
+% \emph{unchanged}\\
+% \opt{=beforeopening} & \emph{unchanged} & \cs{iffalse} & \emph{unchanged} &
+% \emph{unchanged}\\
+% \opt{=underlined} & \emph{unchanged} & \emph{unchanged} & \cs{underline}
+% & \emph{unchanged}\\
+% \opt{=left} & \emph{unchanged} & \emph{unchanged} & \emph{unchanged} &
+% \cs{raggedright} \\
+% \opt{=right} & \emph{unchanged} & \emph{unchanged} & \emph{unchanged} &
+% \cs{raggedleft} \\
+% \opt{=centered} & \emph{unchanged} & \emph{unchanged} & \emph{unchanged} &
+% \cs{centering} \\
+% \end{tabular}
+% \end{center}
% \begin{macrocode}
+%<*option>
\newcommand{\subject@format}[1]{#1}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\raggedsubject}
-% \changes{v2.97c}{2007/07/06}{neu (intern)}%^^A
-% \begin{macrocode}
\newcommand*{\raggedsubject}{}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\if@subj}
-% \begin{macro}{\@subjtrue}
-% \begin{macro}{\@subjfalse}
-% \begin{macro}{\if@subjafter}
-% \begin{macro}{\@subjaftertrue}
-% \begin{macro}{\@subjafterfalse}
-% Die Speicherung erfolgt in zwei Schaltern.
-% \begin{macrocode}
\newif\if@subj
\newif\if@subjafter
\KOMA@key{subject}{%
@@ -1003,84 +964,76 @@
%<class> \KOMAClassFileName
%<package> scrletter.\scr@pkgextension
}{subject}{beforeopening}%
+%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{command}^^A \raggedsubject
+% \end{macro}^^A \subject@format
+% \end{macro}^^A \@subjaftertrue,\@subjafterfalse,\if@subjafter
+% \end{macro}^^A \@subjtrue,\@subjfalse,\if@subj
+% \end{option}^^A subject
%
%
-% \subsubsection{Optionen für den Satzspiegel}
+% \subsection{Options of the typing area}
%
% \begin{option}{enlargefirstpage}
-% \changes{v2.8o}{2001/09/18}{Neue Option}%^^A
-% Normalerweise wird der Text des Briefboges entsprechend dem
-% normalen Satzspiegel gesetzt. Ist allerdings der Fuß der ersten
-% Seite zu hoch, dann wird der Satzspiegel vertikal entsprechend
-% verkürzt. Mit der Option \texttt{firstpageenlarge} kann erzwungen
-% werden, dass im umgekehrten Fall, der Satzspiegel vertikal
-% verlängert wird.
-% \begin{macro}{\if@enlargefp}
-% \begin{macro}{\@enlargefptrue}
-% \begin{macro}{\@enlargefpfalse}
-% Gespeichert wird die Information über die Optionen in einem
-% Schalter.
+% \changes{v2.8o}{2001/09/18}{added}
+% \begin{macro}{\@enlargefpfalse,\@enlargefptrue,\if@enlargefp}
+% \changes{v2.8o}{2001/09/18}{added}
+% Usually the text at the notepaper is placed regarding the general typing
+% area. But if the position of the foot of the note paper is to high, the text
+% area is automatically shorten. Option \opt{firstpageenlarge} also provides
+% the opposite: enlarge the text area of the first page, if the foot of the
+% note paper is placed very low.
% \begin{macrocode}
+%<*option>
\KOMA@ifkey{enlargefirstpage}{@enlargefp}
+%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \if@enlargefp
+% \end{option}^^A enlargefirstpage
%
%
-% \subsubsection{Optionen für den Briefbogenfuß}
+% \subsection{Options of the letter footer}
%
% \begin{option}{firstfoot}
-% \changes{v2.97e}{2007/11/22}{Neu}%^^A
-% Der Fuß des Briefbogens kann auch einfach abgeschaltet werden.
-% \begin{macro}{\if@firstfoot}
-% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)}%^^A
-% Gespeichert wird die Information in einem einfachen Schalter.
-% Voreingestellt ist die Verwendung des Fußes.
+% \changes{v2.97e}{2007/11/22}{added}
+% \begin{macro}{\@firstfootfalse,\@firstfoottrue,\if@firstfoot}
+% \changes{v2.8q}{2002/01/25}{added}
+% Allow to switch of the footer of the note paper.
% \begin{macrocode}
+%<*option>
\KOMA@ifkey{firstfoot}{@firstfoot}\@firstfoottrue
+%</option>
% \end{macrocode}
% \end{macro}
% \end{option}
%
%
-% \subsection{Optionen für den Kopf des weiteren Briefpapiers}
-%
-% Diese Optionen haben zwar nichts mit dem eigentlichen Briefbogen zu tun. Das
-% Briefpapier schließt sich aber an, weshalb die Optionen hier zu finden sind.
+% \subsection{Options of the head of succeeding pages}
%
% \begin{option}{pagenumber}
-% \changes{v2.8q}{2002/01/31}{Neu}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}
-% Bei Briefen kann gewählt werden, ob auf Folgeseiten die Seitenzahl
-% im Kopf oder im Fuß stehen soll. Dabei kann zwischen Seitenzahl
-% rechts, links oder zentriert gewählt werden. Voreingestellt ist der
-% Fuß und mittig.
+% \changes{v2.8q}{2002/01/31}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
% \begin{macro}{\@pageat}
-% \changes{v2.8q}{2002/01/31}{Neu}%^^A
-% In dieser nummerisch auswertbaren Variablen wird gespeichert, wo die
-% Seitenzahl stehen soll. Dabei gilt:
-% \begin{center}\begin{tabular}{rl}
-% Wert & Bedeutung für die Seitenzahl\\\hline
-% -1 & keine \\
-% 0 & im Kopf links \\
-% 1 & im Kopf mittig \\
-% 2 & im Kopf rechts \\
-% 3 & im Fuß links \\
-% 4 & im Fuß mittig \\
-% 5 & im Fuß rechts \\
-% \end{tabular}\end{center}
+% \changes{v2.8q}{2002/01/31}{added}
+% This is irrelevant for the notepaper but selects the position of the page
+% number on succeeding pages using page style \pstyle{headings},
+% \pstyle{myheadings} or \pstyle{plain} resp. \pstyle{letter} or
+% \pstyle{plain.letter}.
+% \begin{center}
+% \begin{tabular}{lrl}
+% \opt{pagenumber} & \cs{@pageat} & meaning\\\hline
+% \opt{=false} & -1 & no page number\\
+% \opt{=topleft} & 0 & in the left of the page head\\
+% \opt{=topmiddle} & 1 & centered in the page head\\
+% \opt{=topright} & 2 & in the right of the page head\\
+% \opt{=botleft} & 3 & in the left of the page foot\\
+% \opt{=botmiddle} & 4 & centered in the page foot\\
+% \opt{=botright} & 5 & in the right of the page foot\\
+% \end{tabular}
+% \end{center}
% \begin{macrocode}
+%<*option>
\newcommand*{\@pageat}{4}
\KOMA@key{pagenumber}{%
\begingroup
@@ -1152,65 +1105,31 @@
%<class> \KOMAClassFileName
%<package> scrletter.\scr@pkgextension
}{pagenumber}{botmiddle}
+%</option>
% \end{macrocode}
% \end{macro}
% \end{option}
%
%
-% \iffalse
-%</letter>
-%</option>
-%<*body>
-%<*letter>
-% \fi
-%
-% \subsection{Anweisungen für den Briefbogen}
-%
-% Auch bei den Anweisungen zunächst alles, was mit dem Briefbogen zu tun hat.
-%
-% \subsubsection{Der Kopf des Briefbogens}
-%
-% \begin{macro}{\firsthead}
-% \changes{v2.8q}{2002/01/28}{\cs{@alignfrom} auf 10000 gesetzt}
-% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
-% Variable realisiert}%^^A
-% \begin{macro}{\@firsthead}
-% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
-% Variable realisiert}%^^A
-% \begin{macro}{\@gen@firsthead}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% \changes{v2.97c}{2007/05/08}{Dicke der Linie konfigurierbar}%^^A
-% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) der Linie konfigurierbar}%^^A
-% \changes{v3.06a}{2010/07/29}{Verwendung des Font-Elements
-% \texttt{fromrule} eingefügt}
-% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
-% Variable realisiert}%^^A
-% \begin{KOMAvar}{firsthead}
-% \changes{v3.08}{2010/10/28}{Neu}%^^A
-% \changes{v3.13b}{2014/10/04}{neuer \emph{hook} nur für
-% \texttt{DINmtext.lco}}%^^A
-% \changes{v3.27}{2019/04/02}{\emph{hook} entfernt}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% Bei \texttt{scrlttr2} gibt es die üblichen Seitenstile, allerdings
-% ist deren Verhalten etwas anders als gewohnt. Dies ist in den
-% Besonderheiten für Briefen begründet. Zunächst die Voreinstellung für
-% Briefbögen.
-%
-% TODO: Diese ganze Prozedur gehört (für \textsf{scrletter}) komplett
-% überabeitet, so dass \cs{@gen@firsthead} überflüssig wird und das Setzen von
-% \texttt{fromalign} auch gleich \texttt{firsthead} umdefiniert.
+% \subsection{Commands and macros of the letter head}
+%
+% \begin{variable}{firsthead}
+% \changes{v2.8q}{2002/01/28}{\cs{@alignfrom} set to 10000}
+% \changes{v3.08}{2010/10/28}{added}
+% \changes{v3.13b}{2014/10/04}{\emph{hook} for \file{DINmtext.lco} added}
+% \changes{v3.27}{2019/04/02}{\emph{hook} removed}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% The head of the notepaper is not set by the page style but variable
+% \var{firsthead} inside \cs{opening}.
+% \begin{description}
+% \item[ToDo:] Change this at least for \pkg*{scrletter} to make the letter
+% head independent from \cs{opening}. With this \opt{fromalign} could
+% immediately re-define \var{firsthead} and also \cs{@gen@fisthead}
+% could become superfluously.
+% \end{description}
% \begin{macrocode}
-%<*class>
-\newcommand*{\@firsthead}{%
- \ClassWarning{scrlttr2}{%
- Deprecated usage of \string\@firsthead.\MessageBreak
- \string\usekomavar{firsthead} should be used\MessageBreak
- instead of \string\@firsthead
- }%
- \usekomavar{firsthead}%
-}
-%</class>
+%<*body>
\newkomavar{firsthead}
\setkomavar{firsthead}{%
\parbox[b]{\useplength{firstheadwidth}}%
@@ -1227,14 +1146,12 @@
}%
}
% \end{macrocode}
-% \end{KOMAvar}
+% \end{variable}
% \begin{macro}{\scr@firsthead@postsetvar}
-% \changes{v3.08}{2010/10/28}{Neu (intern)}%^^A
-% \changes{v3.17}{2015/03/16}{internes Setzen von Option
-% \texttt{fromalign!=no}}%^^A
-% Ãœber dieses Makro wird jeweils nach dem Setzen der Variable die Ausrichtung
-% auf manuell umgeschaltet. Das darf deshalb auch erst nach dem erstmaligen
-% Setzen definiert werden!
+% \changes{v3.08}{2010/10/28}{added}
+% \changes{v3.17}{2015/03/16}{internal setting of {fromalign\quotechar=false}}
+% After setting the variable \opt{fromalign} has to be set to manual
+% alignment. But this must not be done for the initialization.
% \begin{macrocode}
\newcommand*{\scr@firsthead@postsetvar}{%
\KOMAExecuteOptions[.%
@@ -1243,38 +1160,36 @@
]{fromalign=no}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@firsthead@postsetvar
+% \begin{macro}{\@gen@firsthead}
+% \changes{v2.8q}{2002/01/28}{added}
+% \changes{v2.97c}{2007/05/08}{configurable thickness of the line}
+% \changes{v2.97c}{2007/05/08}{configurable font/color of the line}
+% \changes{v3.06a}{2010/07/29}{using font element \fnt{fromrule}}
+% \changes{v3.08}{2010/10/28}{the notepaper head is a variable}
+% \changes{v3.12}{2013/05/29}{using variable \var{frommobilephone}}
% \begin{macrocode}
\newcommand*{\@gen@firsthead}{%
% \end{macrocode}
-% Damit wird ggf. die Kopfzeile der ersten Seite umdefiniert, nämlich dann,
-% wenn dies per Option aktiviert wurde.
+% Re-defines the page head of the notepaper, if this has been activated by
+% option \opt{fromalign}.
% \begin{macrocode}
\ifcase\@alignfrom
% \end{macrocode}
-% Wir befinden uns nun in dem Bereich für \verb|\@alignfrom|=0.
-% Entsprechend unserer Festlegung wird daher als Erstes der
-% linksbündige Absender definiert. Wir verwenden dafür eine
-% \emph{parbox}, in der der Text linksbündig angeordnet wird. Diese
-% Box soll über die gesamte Breite gehen dürfen:
+% This is \cs{@alignfrom}=0 context, which means a left aligned sender's
+% address. This is done using a \cs{parbox} over the while text width.
% \begin{macrocode}
\setkomavar{firsthead}{%
\parbox[b]{\textwidth}{\raggedright
% \end{macrocode}
-% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für
-% den Namen verwendet werden.
+% The name with the font element \fnt{fromname}.
% \begin{macrocode}
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
% \end{macrocode}
-% Hat \verb|\@rulefrom| den nummerischen Wert 1, so soll direkt auf den
-% Absender eine Linie folgen. Die Länge dieser Linie kann vom Anwender
-% bestimmt oder automatisch gewählt werden. Es werden dabei die
-% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness}
-% verwendet. Ist \texttt{fromrulewidth} negativ, so wird sie automatisch
-% bestimmt. Bei der automatischen Längenbestimmung wird dafür gesorgt, dass
-% die Linie nicht bis in das Logo ragt, das eventuell rechtsbündig neben dem
-% Absender steht:
+% If \cs{@rulefrom}=1, a horizontal rule has to follow. The length is either
+% \plen{fromrulewidth} or, if \plen{fromrulewidth} is 0, it is
+% automatically calculated. Here we avoid a rule into the logo.
% \begin{macrocode}
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
@@ -1294,13 +1209,9 @@
\\
}%
% \end{macrocode}
-% Als Nächstes wird die Absenderadresse einschließlich aller
-% optionalen Felder gesetzt. Dabei werden optionale Felder nur
-% gesetzt, wenn der entsprechende Schalter \emph{true} ist. Die
-% Adresse wird ebenfalls innerhalb einer Gruppe in einer eigenen
-% Schriftart gesetzt.%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%
+% Next the senders' address with all optional fields, depending on the
+% corresponding switches. Once again we need a group because of the font
+% element \fnt{fromaddress} to be used.
% \begin{macrocode}
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
@@ -1312,10 +1223,8 @@
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
% \end{macrocode}
-% Wie weiter oben erwähnt, kann auch an dieser Stelle eine Linie
-% gesetzt werden. Wir gehen davon aus, dass die Linie automatisch
-% nicht in das Logo ragt, da es in diesem Fall über der Linie zu
-% stehen hat. Die entsprechende Berechnung kann also entfallen.
+% If \cs{@rulefrom}=2, the horizontal rule has to be placed here. Once again
+% the length can be calculated automatically for \plen{fromrulewidth}=0.
% \begin{macrocode}
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
@@ -1330,25 +1239,19 @@
}%
}%
% \end{macrocode}
-% Die parbox ist damit ebenfalls beendet. Es muss nun ggf. noch das
-% Logo gesetz werden. Es wird in diesem Fall von der aktuellen
-% Position am rechten Rand nach links ausgegeben.
+% This was the \cs{parbox}, but maybe we have to place the logo.
% \begin{macrocode}
\if@logo
\llap{\usekomavar{fromlogo}}%
\fi
}%
\renewcommand*{\@alignfrom}{0}%
+ \or
% \end{macrocode}
-% Damit ist die Definition des linksbündigen Absenders abgeschlossen.
-% Es geht weiter mit dem zentrierten Absender. Dieser hat als
-% Besonderheit, dass das Logo nicht in den Briefkopf, sondern in den
-% Bereich rechts neben dem Empfänger gesetzt wird. Dort ist bereits
-% das location-Feld, daher wird dieser Fall auch dort behandelt.%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%
+% This is \cs{@alignfrom}=1 context, which means centered sender's
+% address. Here the logo needs special treatment: It is placed in the location
+% field.
% \begin{macrocode}
- \or
\setkomavar{firsthead}{%
\parbox[b]{\textwidth}{\centering
{\usekomafont{fromname}\strut\ignorespaces
@@ -1389,14 +1292,11 @@
}%
}%
\renewcommand*{\@alignfrom}{1}%
+ \or
% \end{macrocode}
-% Damit ist die Definition des zentrierten Absenders abgeschlossen. Es
-% geht weiter mit dem rechtsbündigen Absender. Das ganze wird einfach
-% beim linksbündigen Absender abgeschaut.%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%
+% This is \cs{@alignfrom}=2 context, which means right aligned sender's
+% address. This is almost the same as left aligned.
% \begin{macrocode}
- \or
\setkomavar{firsthead}{%
\if@logo
\rlap{\usekomavar{fromlogo}}%
@@ -1445,18 +1345,27 @@
}%
\renewcommand*{\@alignfrom}{2}%
% \end{macrocode}
-% Damit ist die Umdefinierung beendet. In allen anderen Fällen wird
-% der Kopf nicht verändert.
+% All other values of \cs{@alignfrom} do not change anything.
% \begin{macrocode}
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@gen@firsthead
%
-% Der Benutzer kann die Voreinstellung mit einer einfachen Anweisung ändern:
+% \begin{command}{\firsthead}
+% \changes{v3.08}{2010/10/28}{deprecated}
+% \begin{macro}{\@firsthead}
+% \changes{v3.08}{2010/10/28}{deprecated}
% \begin{macrocode}
%<*class>
+\newcommand*{\@firsthead}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\@firsthead.\MessageBreak
+ \string\usekomavar{firsthead} should be used\MessageBreak
+ instead of \string\@firsthead
+ }%
+ \usekomavar{firsthead}%
+}
\newcommand{\firsthead}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\firsthead.\MessageBreak
@@ -1466,145 +1375,146 @@
\setkomavar{firsthead}%
}
%</class>
+%</body>
% \end{macrocode}
% \end{macro}
+% \end{command}
%
-% \subsubsection{Schrifteinstellungen für den Briefbogen}
+% \subsection{Fonts of the notepaper}
%
-% \begin{KOMAfont}{foldmark}
-% \changes{v2.97c}{2007/05/08}{Neu}%^^A
-% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Faltmarken.
+% \begin{fontelement}{foldmark}
+% \changes{v2.97c}{2007/05/08}{added}
+% The font or indeed the color of the fold marks.
% \begin{macrocode}
+%<*body>
\newkomafont{foldmark}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{fromname}
-% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
-% Der Absendername im Briefkopf.
+% \begin{fontelement}{fromname}
+% \changes{v2.95}{2006/03/23}{using \cs{newkomafont}}
+% The font of the sender's name in the letter head.
% \begin{macrocode}
\newkomafont{fromname}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{fromaddress}
-% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
-% Die Absenderadresse im Briefkopf.
+% \begin{fontelement}{fromaddress}
+% \changes{v2.95}{2006/03/23}{using \cs{newkomafont}}
+% The font of the sender's address in the letter head.
% \begin{macrocode}
\newkomafont{fromaddress}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{fromrule}
-% \changes{v2.97c}{2007/05/08}{Neu}%^^A
-% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Linie im
-% Absender.
+% \begin{fontelement}{fromrule}
+% \changes{v2.97c}{2007/05/08}{added}
+% The font or indeed the color of the horizontal rule above or below the
+% sender's address.
% \begin{macrocode}
\newkomafont{fromrule}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{backaddress}
-% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}%^^A
-% \changes{v3.21}{2016/05/19}{beachtet Option
-% \texttt{egregdoesnotlikesansseriftitles}}%^^A
-% Die Rücksendeadresse.
+% \begin{fontelement}{backaddress}
+% \changes{v2.95}{2006/03/23}{using \cs{newkomafont}}
+% \changes{v3.21}{2016/05/19}{provides option
+% \opt{egregdoesnotlikesansseriftitles}}
+% The font of the return address.
% \begin{macrocode}
\newkomafont{backaddress}{\@gr@gsffamily}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{specialmail}
-% \changes{v2.97c}{2007/07/06}{Neues Font-Element}%^^A
-% Die Versandart.
+% \begin{fontelement}{specialmail}
+% \changes{v2.97c}{2007/07/06}{added}
+% The font of the special sending note.
% \begin{macrocode}
\newkomafont{specialmail}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{priority}
-% \changes{v3.03}{2009/03/04}{Neues Font-Element}%^^A
-% Grundschrift für die Priorität des Briefs, falls diese A oder B ist. Es wird
-% ohne Durchschuss gearbeitet. An dieser Stelle ist Serifenlos quasi
-% vorgeschrieben, so dass wir hier Option
+% \begin{fontelement}{priority}
+% \changes{v3.03}{2009/03/04}{added}
+% The font of the priority note of priority A or B. Here we don't use any lead
+% and sans-serif is a must, so \opt{egregdoesnotlikesansseriftitles} is ignored.
% \texttt{egregdoesnotlikesansseriftitles} ignorieren.
% \begin{macrocode}
\newkomafont{priority}{\fontsize{10pt}{10pt}\sffamily\bfseries}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{prioritykey}
-% \changes{v3.03}{2009/03/04}{Neues Font-Element}%^^A
-% Schrift für den Buchstaben der Priorität des Briefs, falls diese A oder B
-% ist. Wird nach \texttt{priority} angewandt. Eigentlich sollten hier 9\,mm
-% verwendet werden. Dafür wird aber eine frei skalierbare Schrift benötig. Mit
-% 24,88\,pt sind wir nur 0,25\,mm kleiner. Das sollte kein Problem
-% darstellen. Es wird auch hier ohne Durchschuss gearbeitet.
+% \begin{fontelement}{prioritykey}
+% \changes{v3.03}{2009/03/04}{added}
+% The font of the letter of priority A or B. It is used after
+% \fnt{priority}. Generally this should be 9\,mm, but this would need a free
+% scalable font. With 24.88\,pt we are only 0.25\,mm to low. This should not
+% be a problem and does also work with Computer Modern. Once again we do not
+% use any lead.
% \begin{macrocode}
\newkomafont{prioritykey}{\fontsize{24.88pt}{24.88pt}\selectfont}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{PPlogo}
-% \changes{v3.03}{2009/03/04}{Neues Font-Element}%^^A
-% Schrift für das Logo \texttt{P.P.}, das im Anschriftmodus \texttt{PP}
-% gesetzt wird. An dieser Stelle ist serifenlos quasi vorgeschrieben, so dass
-% wir hier Option \texttt{egregdoesnotlikesansseriftitles} ignorieren.
+% \begin{fontelement}{PPlogo}
+% \changes{v3.03}{2009/03/04}{added}
+% The font of the ``\texttt{P.P.}'' logo, with \opt{addrfield=PP}. Once again
+% sans-serif is a must, so \opt{egregdoesnotlikesansseriftitles} is ignored.
% \begin{macrocode}
\newkomafont{PPlogo}{\sffamily\bfseries}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{PPdata}
-% \changes{v3.03}{2009/03/04}{Neues Font-Element}%^^A
-% Schrift, die innerhalb des PP-Kopfes für die Daten verwendet wird.
-% gesetzt wird. And dieser Stelle ist serifenlos quasi vorgeschrieben, so dass
-% wir hier Option \texttt{egregdoesnotlikesansseriftitles} ignorieren.
+% \begin{fontelement}{PPdata}
+% \changes{v3.03}{2009/03/04}{added}
+% The font to be used inside the PP head. Once again sans-serif is a must, so
+% \opt{egregdoesnotlikesansseriftitles} is ignored.
% \begin{macrocode}
\newkomafont{PPdata}{\sffamily}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{addressee}
-% \changes{v2.97c}{2007/07/06}{Neues Font-Element}%^^A
-% Die komplette Anschrift.
+% \begin{fontelement}{addressee}
+% \changes{v2.97c}{2007/07/06}{added}
+% The font to be used for the whole addressee.
% \begin{macrocode}
\newkomafont{addressee}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{toname}
-% \changes{v2.97c}{2007/07/06}{Neues Font-Element}%^^A
-% Der Name des Empfängers in der Anschrift.
+% \begin{fontelement}{toname}
+% \changes{v2.97c}{2007/07/06}{added}
+% The font used only for the name of the addressee in difference to
+% \fnt{addressee}.
% \begin{macrocode}
\newkomafont{toname}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{toaddress}
-% \changes{v2.97c}{2007/07/06}{Neues Font-Element}%^^A
-% Die Adresse des Empfängers in der Anschrift.
+% \begin{fontelement}{toaddress}
+% \changes{v2.97c}{2007/07/06}{added}
+% The font used only for the address of the addressee in difference to
+% \fnt{addressee}.
% \begin{macrocode}
\newkomafont{toaddress}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{refname}
-% \changes{v2.97c}{2007/05/14}{Neues Font-Element}%^^A
-% \changes{v3.21}{2016/05/19}{beachtet Option
-% \texttt{egregdoesnotlikesansseriftitles}}%^^A
-% Die Feldnamen in der Geschäftszeile.
+% \begin{fontelement}{refname}
+% \changes{v2.97c}{2007/05/14}{added}
+% \changes{v3.21}{2016/05/19}{support of \opt{egregdoesnotlikesansseriftitles}}
+% The font for the field names of the reference line.
% \begin{macrocode}
\newkomafont{refname}{\@gr@gsffamily\scriptsize}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{refvalue}
-% \changes{v2.97c}{2007/05/14}{Neues Font-Element}%^^A
-% \changes{v2.97d}{2007/10/09}{Voreinstellung korrigiert}%^^A
-% Die Feldwerte in der Geschäftszeile. Hier gibt es keinen Bedarf, Option
-% \texttt{egregdoesnotlikesansseriftitles} zu beachten, da diese in
-% Version~2.97 noch nicht existierte.
+% \begin{fontelement}{refvalue}
+% \changes{v2.97c}{2007/05/14}{added}
+% \changes{v2.97d}{2007/10/09}{initial value changed}
+% The font of the field values of the reference line.
+% Support for \opt{egregdoesnotlikesansseriftitles} is not needed on
+% compatibility mode, because the option did not exist in version 2.97.
% \begin{macrocode}
%<*class>
\ifnum\scr@compatibility=\@nameuse{scr@v@2.97}\relax
@@ -1614,369 +1524,383 @@
\newkomafont{refvalue}{}
%<class>\fi
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{placeanddate}
-% \changes{v3.12}{2013/07/31}{Neues Font-Element}%^^A
-% Wird an Stelle einer Geschäftszeile nur Ort und Datum gesetzt, so findet
-% dieses Element Anwendung.
+% \begin{fontelement}{placeanddate}
+% \changes{v3.12}{2013/07/31}{added}
+% The font is used for place and date, if not real reference line but only
+% place and date are used.
% \begin{macrocode}
\newkomafont{placeanddate}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{lettertitle}
-% \changes{v3.17}{2015/02/21}{neu als Ersatz für \texttt{letter}}
-% \changes{v3.21}{2016/05/19}{beachtet Option
-% \texttt{egregdoesnotlikesansseriftitles}}%^^A
-% Der Brieftitel.
+% \begin{fontelement}{lettertitle}
+% \changes{v3.17}{2015/02/21}{replacement of \fnt{letter}}
+% \changes{v3.21}{2016/05/19}{support for \opt{egregdoesnotlikesansseriftitles}}
+% The font of the title of the letter.
% \begin{macrocode}
\newkomafont{lettertitle}{\normalcolor\@gr@gsffamily\bfseries}
% \end{macrocode}
-% \begin{KOMAfont}{title}
-% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}%^^A
-% \changes{v3.17}{2015/02/21}{nur noch ein Alias}%^^A
-% \changes{v3.17a}{2015/04/26}{Alias korrigiert}%^^A
+% \begin{fontelement}{title}
+% \changes{v2.95}{2006/03/23}{using \cs{newkomafont}}
+% \changes{v3.17}{2015/02/21}{only an alias}
+% \changes{v3.17a}{2015/04/26}{alias fixed}
% \begin{macrocode}
%<package>\scr@ifundefinedorrelax{scr@fnt@title}{%
\aliaskomafont{title}{lettertitle}%
%<package>}{}
% \end{macrocode}
-% \end{KOMAfont}
-% \end{KOMAfont}
+% \end{fontelement}
+% \end{fontelement}
%
-% \begin{KOMAfont}{lettersubject}
-% \changes{v3.17}{2015/02/21}{neu als Ersatz für \texttt{subject}}
-% \changes{v3.17a}{2015/04/26}{Alias korrigiert}%^^A
-% Der Betreff im Brief.
+% \begin{fontelement}{lettersubject}
+% \changes{v3.17}{2015/02/21}{replacement of \texttt{subject}}
+% \changes{v3.17a}{2015/04/26}{alias fixed}
+% The font of the subject of the letter.
% \begin{macrocode}
\newkomafont{lettersubject}{\normalfont\bfseries}
% \end{macrocode}
-% \begin{KOMAfont}{subject}
-% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}%^^A
-% \changes{v3.17}{2015/02/21}{nur noch ein Alias}%^^A
+% \begin{fontelement}{subject}
+% \changes{v2.95}{2006/03/23}{using \cs{newkomafont}}
+% \changes{v3.17}{2015/02/21}{only an alias}
% \begin{macrocode}
%<package>\scr@ifundefinedorrelax{scr@fnt@subject}{%
\aliaskomafont{subject}{lettersubject}%
%<package>}{}
+%</body>
% \end{macrocode}
-% \end{KOMAfont}
-% \end{KOMAfont}
+% \end{fontelement}
+% \end{fontelement}
%
-% \subsubsection{Längen für den Briefbogen}
+% \subsection{Pseudo lengths of the notepaper}
%
-% \begin{macro}{\ltr@len@foldmarkhpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand der horizontalen Faltmarken von der linken Papierkante.
+% \begin{pseudolength}{foldmarkhpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the horizontal fold marks to the left edge of the paper.
% \begin{macrocode}
-\@newplength{foldmarkhpos}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@foldmarkvpos}
-% \changes{v2.97e}{2007/11/10}{Neu}%^^A
-% Abstand der vertikalen Faltmarken von der oberen Papierkante.
-% \begin{macrocode}
-\@newplength{foldmarkvpos}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@tfoldmarkvpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% \begin{macro}{\ltr@len@mfoldmarkvpos}
-% \changes{v2.97e}{2007/11/08}{Neu}%^^A
-% \begin{macro}{\ltr@len@bfoldmarkvpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand der oberen, mittleren und unteren Faltmarken von der oberen
-% Papierkante.
-% \begin{macrocode}
-\@newplength{tfoldmarkvpos}
-\@newplength{mfoldmarkvpos}
-\@newplength{bfoldmarkvpos}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\ltr@len@lfoldmarkhpos}
-% \changes{v2.97e}{2007/11/10}{Neu}%^^A
-% Abstand linken Faltmarken von der linken Papierkante.
-% \begin{macrocode}
-\@newplength{lfoldmarkhpos}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@pfoldmarklength}
-% \changes{v2.97e}{2007/11/19}{Neu}%^^A
-% \begin{macro}{\ltr@len@hfoldmarklength}
-% \changes{v2.97e}{2007/11/10}{Neu}%^^A
-% \begin{macro}{\ltr@len@mfoldmarklength}
-% \changes{v2.97e}{2007/11/10}{Neu}%^^A
-% \begin{macro}{\ltr@len@bfoldmarklength}
-% \changes{v2.97e}{2001/11/10}{Neu}%^^A
-% \begin{macro}{\ltr@len@lfoldmarklength}
-% \changes{v2.97e}{2001/11/10}{Neu}%^^A
-% Länge der Lochmarke und der oberen, mittleren und unteren horizontalen und
-% der (linken) vertikalen Faltmarke.
-% \begin{macrocode}
-\@newplength{pfoldmarklength}
-\@newplength{tfoldmarklength}
-\@newplength{mfoldmarklength}
-\@newplength{bfoldmarklength}
-\@newplength{lfoldmarklength}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\ltr@len@foldmarkthickness}
-% \changes{v2.97c}{2007/05/08}{Neu}%^^A
-% Dicke der Faltmarken.
-% \begin{macrocode}
-\@newplength{foldmarkthickness}
-\@setplength{foldmarkthickness}{.2pt}
+%<*body>
+\newplength{foldmarkhpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@toaddrvpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand des Adressfensters von der oberen Papierkante.
+% \end{pseudolength}
+% \begin{pseudolength}{foldmarkvpos}
+% \changes{v2.97e}{2007/11/10}{added}
+% Distance of the vertical fold marks to the top edge of the paper.
+% \begin{macrocode}
+\newplength{foldmarkvpos}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{tfoldmarkvpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the top of the horizontal fold marks to the top edge of the
+% paper.
+% \begin{macrocode}
+\newplength{tfoldmarkvpos}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{mfoldmarkvpos}
+% \changes{v2.97e}{2007/11/08}{added}
+% Distance of the middle horizontal fold mark (which is not the bunch
+% hole fold mark) to the top edge of the paper.
+% \begin{macrocode}
+\newplength{mfoldmarkvpos}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{bfoldmarkvpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the lower horizontal fold mark to the top edge of the paper.
+% \begin{macrocode}
+\newplength{bfoldmarkvpos}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{lfoldmarkhpos}
+% \changes{v2.97e}{2007/11/10}{added}
+% Distance of the left (and only) vertical fold mark to the left edge of the
+% paper.
+% \begin{macrocode}
+\newplength{lfoldmarkhpos}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{pfoldmarklength,hfoldmarklength,mfoldmarklength,
+% bfoldmarklength,lfoldmarklength}
+% \changes{v2.97e}{2001/11/10}{added}
+% The lengths of all fold marks.
+% \begin{macrocode}
+\newplength{pfoldmarklength}
+\newplength{tfoldmarklength}
+\newplength{mfoldmarklength}
+\newplength{bfoldmarklength}
+\newplength{lfoldmarklength}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{foldmarkthickness}
+% \changes{v2.97c}{2007/05/08}{added}
+% One length for the thickness/weight of all fold marks.
+% \begin{macrocode}
+\newplength{foldmarkthickness}
+\setplength{foldmarkthickness}{.2pt}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrvpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the address field of the addressee from the top edge of the
+% paper.
% \begin{macrocode}
-\@newplength{toaddrvpos}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@backaddrheight}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Höhe der Rücksendeadresse.
+\newplength{toaddrvpos}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{backaddrheight}
+% \changes{v2.8q}{2001/10/06}{added}
+% Height reserved for the return address inside the address field of the
+% addressee.
% \begin{macrocode}
-\@newplength{backaddrheight}
+\newplength{backaddrheight}
+% \end{macrocode}
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrhpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% If positive the distance of the left of the address field of the addressee
+% to the left edge of the paper. Otherwise the (negative) distance of the
+% addressee from the right of the address field of the addressee to the right
+% edge of the paper.
+% \begin{macrocode}
+\newplength{toaddrhpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@toaddrhpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand des Adressfeldes von der linken Papierkante bzw. wenn negativ von
-% der rechten Papierkante.
-% \begin{macrocode}
-\@newplength{toaddrhpos}
+% \end{pseudolength}
+% \begin{pseudolength}{specialmailindent}
+% \changes{v2.8q}{2002/03/25}{added}
+% Distance of the special sending note from the left edge of the address field
+% of the addressee.
+% \begin{macrocode}
+\newplength{specialmailindent}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@specialmailindent}
-% \changes{v2.8q}{2002/03/25}{Neu}%^^A
-% Abstand der Versandtart vom linken Rand des Adressfensters.
+% \end{pseudolength}
+% \begin{pseudolength}{specialmailrightindent}
+% \changes{v2.8q}{2002/03/25}{added}
+% Distance of the special sending not from the right edge of the address field
+% of the addressee.
% \begin{macrocode}
-\@newplength{specialmailindent}
+\newplength{specialmailrightindent}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@specialmailrightindent}
-% \changes{v2.8q}{2002/03/25}{Neu}%^^A
-% Abstand der Versandtart vom rechten Rand des Adressfensters.
-% \begin{macrocode}
-\@newplength{specialmailrightindent}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@toaddrindent}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand der Adresse vom linken Rand des Adressfensters. 0 bedeutet im
-% Anschriftmodus \texttt{PP} 8\,mm, ansonsten wirklich 0\,mm. Außerdem wird im
-% Anschriftmodus \texttt{PP} die Pseudolänge auch für den Abstand vom rechten
-% Rand des Adressfensters verwendet.
-% \begin{macrocode}
-\@newplength{toaddrindent}
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrindent}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the name and address of the addressee from the left edge of the
+% address field of the addressee. With \opt{addrfield=PP} 0 is interpreted as
+% 8\,mm, because of the international norm. Additionally the value is also
+% used for the distance on the right side. In all other modes 0 is really 0.
+% \begin{macrocode}
+\newplength{toaddrindent}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@PPheadheight}
-% \changes{v3.03}{2009/03/04}{Neu}%
-% Höhe des PP-Kopfes in den Anschriftmodi \texttt{PP},
-% \texttt{backgroundimage} und \texttt{image}. 0 bedeutet hier 20,74\,pt.
+% \end{pseudolength}
+% \begin{pseudolength}{PPheadheight}
+% \changes{v3.03}{2009/03/04}{added}
+% The height of the PP head with \opt{addrfield=PP},
+% \opt{addrfield=backgroundimage} or \opt{addrfield=image}. 0 means 20.74\,pt
+% here.
% \begin{macrocode}
-\@newplength{PPheadheight}
+\newplength{PPheadheight}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@PPheadwidth}
-% \changes{v3.03}{2009/03/04}{Neu}%
-% Breite des PP-Kopfes im Anschriftmodus \texttt{PP}. 0 bedeutet hier 42\,mm.
-% \begin{macrocode}
-\@newplength{PPheadwidth}
+% \end{pseudolength}
+% \begin{pseudolength}{PPheadwidth}
+% \changes{v3.03}{2009/03/04}{added}
+% The width of the PP head with \opt{addrfield=PP}. 0 means 42\,mm here.
+% \begin{macrocode}
+\newplength{PPheadwidth}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@PPdatamatrixvskip}
-% \changes{v3.03}{2009/03/04}{Neu}%
-% Abstand zwischen PP-Kopf und DataMatrix im Anschriftmodus \texttt{PP}. 0
-% bedeutet hier 9\,mm.
-% \begin{macrocode}
-\@newplength{PPdatamatrixvskip}
+% \end{pseudolength}
+% \begin{pseudolength}{PPdatamatrixvskip}
+% \changes{v3.03}{2009/03/04}{added}
+% Distance between the PP head and the data matrix with \opt{addrfield=PP}. 0
+% means 9\,mm.
+% \begin{macrocode}
+\newplength{PPdatamatrixvskip}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@toaddrwidth}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Breite des Adressfensters
-% \begin{macrocode}
-\@newplength{toaddrwidth}
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrwidth}
+% \changes{v2.8q}{2001/10/06}{added}
+% Width of the address field of the addressee.
+% \begin{macrocode}
+\newplength{toaddrwidth}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@toaddrheight}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% \changes{v3.03b}{2009/06/25}{Implementierung an Doku angepasst}%^^A
-% Höhe des Adressfensters mit Rücksendeadresse
+% \end{pseudolength}
+% \begin{pseudolength}{toaddrheight}
+% \changes{v2.8q}{2001/10/06}{added}
+% \changes{v3.03b}{2009/06/25}{implemented like documented}
+% Height of the address field inclusive return address.
% \begin{macrocode}
-\@newplength{toaddrheight}
+\newplength{toaddrheight}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@locvpos}
-% \changes{v2.97e}{2007/11/07}{Neu}%^^A
-% Abstand der Absenderergänzung von der oberen Papierkante.
+% \end{pseudolength}
+% \begin{pseudolength}{locvpos}
+% \changes{v2.97e}{2007/11/07}{added}
+% Distance of the location field from the top edge of the paper.
% \begin{macrocode}
-\@newplength{locvpos}
+\newplength{locvpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@locwidth}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Breite des Feldes neben dem Adressfenster
+% \end{pseudolength}
+% \begin{pseudolength}{locwidth}
+% \changes{v2.8q}{2001/10/06}{added}
+% Width of the location field.
% \begin{macrocode}
-\@newplength{locwidth}
+\newplength{locwidth}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@lochpos}
-% \changes{v2.97e}{2007/11/07}{Neu}%^^A
-% Abstand der Absenderergänzung von der linken Papierkante bzw. wenn negativ
-% von der rechten Papierkante.
+% \end{pseudolength}
+% \begin{pseudolength}{lochpos}
+% \changes{v2.97e}{2007/11/07}{added}
+% For positive values, the distance of the left of the location field to the
+% left edge of the paper. For negative values the (negative) distance of the
+% right of the location field to the right edge of the paper.
% \begin{macrocode}
-\@newplength{lochpos}
+\newplength{lochpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@locheight}
-% \changes{v2.97e}{2007/11/07}{Neu}%^^A
-% Höhe der Absenderergänzung.
+% \end{pseudolength}
+% \begin{pseudolength}{locheight}
+% \changes{v2.97e}{2007/11/07}{added}
+% The height of the location field.
% \begin{macrocode}
-\@newplength{locheight}
+\newplength{locheight}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@refvpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand der Geschäftszeile von der Papieroberkante.
+% \end{pseudolength}
+% \begin{pseudolength}{refvpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% The distance of the reference line from the top edge of the paper.
% \begin{macrocode}
-\@newplength{refvpos}
+\newplength{refvpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@refheight}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/03}{new}%^^A
-% Height of the reference line (if used).
+% \end{pseudolength}
+% \begin{pseudolength}{refheight}
+% \changes{v3.27}{2019/05/03}{new}
+% The height of the reference line, if it is used.
% \begin{macrocode}
%<*package&willbe>
-\@newplength{refheight}
+\newplength{refheight}
%</package&willbe>
% \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-% \end{macro}
-% \begin{macro}{\ltr@len@refwidth}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Breite der Geschäftszeile.
+% \end{pseudolength}
+% \begin{pseudolength}{refwidth}
+% \changes{v2.8q}{2001/10/06}{added}
+% The width of the reference line.
% \begin{macrocode}
-\@newplength{refwidth}
+\newplength{refwidth}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@refhpos}
-% \changes{v2.9l}{2003/01/28}{Neu}%^^A
-% Horizontale Position der Geschäftszeile.
+% \end{pseudolength}
+% \begin{pseudolength}{refhpos}
+% \changes{v2.9l}{2003/01/28}{added}
+% The horizontal position of the reference line.
% \begin{macrocode}
-\@newplength{refhpos}
+\newplength{refhpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@refaftervskip}
-% \changes{v2.8q}{2001/10/09}{Neu}%^^A
-% Abstand nach der Geschäftszeile.
+% \end{pseudolength}
+% \begin{pseudolength}{refaftervskip}
+% \changes{v2.8q}{2001/10/09}{added}
+% The vertical distance below the reference line.
% \begin{macrocode}
-\@newplength{refaftervskip}
+\newplength{refaftervskip}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@sigbeforevskip}
-% \changes{v2.8q}{2001/10/09}{Neu}%^^A
-% Raum für die Unterschrift.
+% \end{pseudolength}
+% \begin{pseudolength}{sigbeforevskip}
+% \changes{v2.8q}{2001/10/09}{added}
+% The vertical distance between the closing text and the signature text, to be
+% used for the hand-written signature.
% \begin{macrocode}
-\@newplength{sigbeforevskip}
+\newplength{sigbeforevskip}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@sigindent}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Horizontaler Einzug des Schlussgrußes und der Signatur.
+% \end{pseudolength}
+% \begin{pseudolength}{sigindent}
+% \changes{v2.8q}{2001/10/06}{added}
+% Horizontal indent of the closing text and the signature.
% \begin{macrocode}
-\@newplength{sigindent}
+\newplength{sigindent}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@@firstfootvpos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand des Fußes der ersten Seite von der Papieroberkante.
+% \end{pseudolength}
+% \begin{pseudolength}{firstfootvpos}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the letter footer (on the notepaper only) to the top edge of the
+% paper.
% \begin{macrocode}
-\@newplength{firstfootvpos}
+\newplength{firstfootvpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@firstfootwidth}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Breite des Fußes der ersten Seite.
+% \end{pseudolength}
+% \begin{pseudolength}{firstfootwidth}
+% \changes{v2.8q}{2001/10/06}{added}
+% Width of the letter footer (on the notepaper only).
% \begin{macrocode}
-\@newplength{firstfootwidth}
+\newplength{firstfootwidth}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@firstfoothpos}
-% \changes{v3.05}{2009/11/09}{Neu}%^^A
-% Abstand des Kopfes vom linken Rand der Seite.
+% \end{pseudolength}
+% \begin{pseudolength}{firstfoothpos}
+% \changes{v3.05}{2009/11/09}{added}
+% Distance of the letter footer (on the notepaper only) to the left edge of
+% the paper. Note: See the \cs{opening} code for information about special
+% value \cs{maxdimen}.
% \begin{macrocode}
-\@newplength{firstfoothpos}
-\@setplength{firstfoothpos}{\maxdimen}
+\newplength{firstfoothpos}
+\setplength{firstfoothpos}{\maxdimen}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@firstheadvspos}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Abstand des Kopfes der ersten Seite von der Papieroberkante.
+% \end{pseudolength}
+% \begin{pseudolength}{firstheadvspos}
+% \changes{v2.8q}{2001/10/06}{added}
+% Distance of the letter head (on the notepaper only) to the top edge of the
+% paper.
% \begin{macrocode}
-\@newplength{firstheadvpos}
+\newplength{firstheadvpos}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@firstheadwidth}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Breite des Kopfes der ersten Seite.
+% \end{pseudolength}
+% \begin{pseudolength}{firstheadwidth}
+% \changes{v2.8q}{2001/10/06}{added}
+% Width of the letter head (on the notepaper only).
% \begin{macrocode}
-\@newplength{firstheadwidth}
+\newplength{firstheadwidth}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@firstheadhpos}
-% \changes{v3.05}{2009/11/09}{Neu}%^^A
-% Abstand des Kopfes vom linken Rand der Seite.
+% \end{pseudolength}
+% \begin{pseudolength}{firstheadhpos}
+% \changes{v3.05}{2009/11/09}{added}
+% Distance of the letter head (on the notepaper only) to the left edge of
+% the paper. Note: See the \cs{opening} code for information about special
+% value \cs{maxdimen}.
% \begin{macrocode}
-\@newplength{firstheadhpos}
-\@setplength{firstheadhpos}{\maxdimen}
+\newplength{firstheadhpos}
+\setplength{firstheadhpos}{\maxdimen}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@fromrulewidth}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% Die Länge einer eventuell gesetzten Linie im Absender. Negative
-% Werte bedeuten, dass die Länge automtaisch bestimmt wird.
+% \end{pseudolength}
+% \begin{pseudolength}{fromrulewidth}
+% \changes{v2.8q}{2002/01/28}{added}
+% The length of the optional horizontal rule above or below the address of the
+% sender. Value 0 means automatically calculated length.
% \begin{macrocode}
-\@newplength{fromrulewidth}
-\@setplength{fromrulewidth}{0pt}
+\newplength{fromrulewidth}
+\setplength{fromrulewidth}{0pt}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@fromrulethickness}
-% \changes{v2.97c}{2007/05/08}{Neue Pseudolänge \texttt{fromrulewidth}}
-% Die Dicke einer eventuell gesetzte Linie im Absender.
+% \end{pseudolength}
+% \begin{pseudolength}{fromrulethickness}
+% \changes{v2.97c}{2007/05/08}{added}
+% The thickness/weight of the optional horizontal rule above or below the
+% address of the sender.
% \begin{macrocode}
-\@newplength{fromrulethickness}
-\@setplength{fromrulethickness}{.4pt}
+\newplength{fromrulethickness}
+\setplength{fromrulethickness}{.4pt}
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{pseudolength}
%
%
-% \subsubsection{Fuß des Briefbogens}
+% \subsection{The footer of the notepaper}
%
-% \begin{macro}{\firstfoot}
-% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine
-% Variable realisiert}%^^A
-% \begin{macro}{\@firstfoot}
-% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine
-% Variable realisiert}%^^A
-% \begin{KOMAvar}{firstfoot}
-% \changes{v3.08}{2010/10/28}{Neu}%^^A
+% \begin{variable}{firstfoot}
+% \changes{v3.08}{2010/10/28}{added}
+% Initially the value of the letter footer of the notepaper is empty. The user
+% manual shows, how to use it.
% \begin{macrocode}
-% Der Fuß des Briefbogens ist in der Voreinstellung leer.
+%<*body>
\newkomavar{firstfoot}
-%<*class>
+% \end{macrocode}
+% \begin{command}{\firstfoot}
+% \changes{v3.08}{2010/10/28}{deprecated}
+% \begin{macro}{\@firstfoot}
+% \changes{v3.08}{2010/10/28}{deprecated}
+% \begin{macrocode}
+%<*class>
\newcommand*{\@firstfoot}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\@firstfoot.\MessageBreak
@@ -1985,9 +1909,6 @@
}%
\usekomavar{firstfoot}%
}
-% \end{macrocode}
-% Dies kann jedoch über eine einfache Benutzeranweisung geändert werden:
-% \begin{macrocode}
\newcommand{\firstfoot}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\firstfoot.\MessageBreak
@@ -1997,28 +1918,32 @@
\setkomavar{firstfoot}%
}
%</class>
+%</body>
% \end{macrocode}
-% \end{KOMAvar}
-% \end{macro}
-% \end{macro}
-%
+% \end{macro}^^A \@firstfoot
+% \end{command}^^A \firstfoot
+% \end{variable}^^A firstfoot
%
-% \subsubsection{Ausgabe des Briefbogens}
%
-% Die Ausgabe selbst erfolgt bei \textsf{scrlttr2} über die
-% |\opening|-Anweisung, die in einem späteren Abschnitt implementiert ist. Bei
-% \textsf{scrletter} erfolgt sie dagegen ab Version 3.27 über den Seitenstil
-% \texttt{notepaper} (siehe \texttt{scrkernel-pagestyle.dtx}).
+% \subsection{Output of the notepaper}
%
-% \selectlanguage{english}%
+% \begin{description}
+% \item[Note:] There have been plans to move output of the notepaper to the
+% page style with \pkg*{scrletter}. You can find some experimental code for
+% this already here with tag \texttt{willbe}. But the plans have been
+% dropped, because there was not enough man power to design and implement it
+% all and to keep \KOMAScript{} compatible with \LaTeX{} at the same time.
+% \end{description}
+%
% \begin{macro}{\scr@notepaper@printallelements}
-% \changes{v3.27}{2019/04/16}{new (internal)}%^^A
-% This is used by page style \texttt{notepaper} to print all elements.
+% \changes{v3.27}{2019/04/16}{added}
+% This is used by page style \pstyle{notepaper} (see
+% \file{scrkernel-pagestyle.dtx}) to print all elements.
% \begin{macro}{\scr@notepaper@printelementsoflist}
-% \changes{v3.27}{2019/04/16}{new (internal)}%^^A
+% \changes{v3.27}{2019/04/16}{added}
% And this is used to print a given list of elements.
% \begin{macro}{\scr@notepaper@printelement}
-% \changes{v3.27}{2019/04/16}{new (internal)}%^^A
+% \changes{v3.27}{2019/04/16}{added}
% Last but not least this prints one given element.
% \begin{macrocode}
%<*package&body&willbe>
@@ -2041,30 +1966,30 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@printelement
-% \end{macro}%^^A \scr@notepaper@printelementsoflist
-% \end{macro}%^^A \scr@notepaper@printallelements
+% \end{macro}^^A \scr@notepaper@printelement
+% \end{macro}^^A \scr@notepaper@printelementsoflist
+% \end{macro}^^A \scr@notepaper@printallelements
%
% \begin{macro}{\scr@foldmarks@printallelements}
-% \changes{v3.27}{2019/04/16}{new (internal)}%^^A
-% This is used by the page style \texttt{notepaper} to print all foldmarks.
+% \changes{v3.27}{2019/04/16}{new (internal)}
+% This is used by the page style \pstyle{notepaper} to print all fold marks.
% \begin{macrocode}
\newcommand*{\scr@foldmarks@printallelements}{%
\if@fold
\ifdim \useplength{pfoldmarklength}=\z@
- \@setplength{pfoldmarklength}{4mm}%
+ \setplength{pfoldmarklength}{4mm}%
\fi
\ifdim \useplength{tfoldmarklength}=\z@
- \@setplength{tfoldmarklength}{2mm}%
+ \setplength{tfoldmarklength}{2mm}%
\fi
\ifdim \useplength{mfoldmarklength}=\z@
- \@setplength{mfoldmarklength}{2mm}%
+ \setplength{mfoldmarklength}{2mm}%
\fi
\ifdim \useplength{bfoldmarklength}=\z@
- \@setplength{bfoldmarklength}{2mm}%
+ \setplength{bfoldmarklength}{2mm}%
\fi
\ifdim \useplength{lfoldmarklength}=\z@
- \@setplength{lfoldmarklength}{4mm}%
+ \setplength{lfoldmarklength}{4mm}%
\fi
\@hfoldmark{P}%
\@hfoldmark{T}%
@@ -2077,10 +2002,10 @@
% \end{macro}
%
% \begin{macro}{\scr@notepaper@elements}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/22}{added}
% This is a comma-separated list of elements (aka blocks) to be printed on the
% notepaper. It is used by the page style layer \texttt{notepaper} to set all
-% elements (see \texttt{scrkernel-pagestyle.dtx}). There are exactly four
+% elements (see \file{scrkernel-pagestyle.dtx}). There are exactly four
% defaults (but you can add more):
% \begin{macrocode}
\newcommand*{\scr@notepaper@elements}{%
@@ -2088,7 +2013,7 @@
}
% \end{macrocode}
% \begin{macro}{\scr@notepaper@element@firsthead}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/22}{added}
% How to print the notepaper element \texttt{firsthead}:
% \begin{macrocode}
\newcommand*{\scr@notepaper@element@firsthead}{%
@@ -2097,17 +2022,17 @@
% The calculation of the real horizontal position could be done as part of the
% layer contents or while selection of the layer or while initialization of
% the layer. The in-contents code is used, so the layer can be used with
-% different page styles. The position depends on \texttt{firstheadhpos} this
+% different page styles. The position depends on \plen{firstheadhpos} this
% way:
% \begin{itemize}
-% \item If \texttt{firstheadhpos} is positive but less than the paper width,
-% \texttt{firstheadhpos} is the distance if the head from the left edge.
-% \item If \texttt{firstheadhpos} is negative but the absolute value is less
-% then the paper width, the absolute value of \texttt{firstheadhpos} is the
+% \item If \plen{firstheadhpos} is positive but less than the paper width,
+% \plen{firstheadhpos} is the distance if the head from the left edge.
+% \item If \plen{firstheadhpos} is negative but the absolute value is less
+% then the paper width, the absolute value of \plen{firstheadhpos} is the
% distance from the right edge.
-% \item If \texttt{firstheadhpos} is greater than the paper width, the head
+% \item If \plen{firstheadhpos} is greater than the paper width, the head
% will be centered.
-% \item If \texttt{firstheadhpos} is less than the negative paper width, the
+% \item If \plen{firstheadhpos} is less than the negative paper width, the
% head will be left aligned to the text area.
% \end{itemize}
% \begin{macrocode}
@@ -2137,9 +2062,9 @@
\fi
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@element@firsthead
+% \end{macro}^^A \scr@notepaper@element@firsthead
% \begin{macro}{\scr@notepaper@element@firstfoot}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/22}{added}
% Element \texttt{firstfoot} is very similar to \texttt{firsthead}. The
% differences are using of pseudo lengths for the foot instead the head and
% the calculation of the available height.
@@ -2171,8 +2096,10 @@
{Element `firstfoot'}{\usekomavar{firstfoot}}\relax
\fi
}
-% \end{macro}%^^A \scr@notepaper@element@firstfoot
+% \end{macrocode}
+% \end{macro}^^A \scr@notepaper@element@firstfoot
% \begin{macro}{\scr@notepaper@element@addressee}
+% \changes{v3.27}{2019/03/22}{added}
% Element \texttt{addressee} is very complex and therefore split into several
% different sub-elements.
% \begin{macrocode}
@@ -2203,11 +2130,9 @@
}
% \end{macrocode}
% \begin{macro}{\scr@notepaper@subelement@addressee@default}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% \changes{v3.30}{2020/03/27}{Umdefinierung des Zeilenumbruchs
-% verschoben}%^^A
+% \changes{v3.27}{2019/03/22}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by \cs{Ifkomavarempty}}
+% \changes{v3.30}{2020/03/27}{re-definition of line break moved}
% The field with the recipience address. This should be used only on the first
% page of a letter.
% \begin{macrocode}
@@ -2289,9 +2214,9 @@
\usebox\@tempboxa
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@subelement@addressee@default
+% \end{macro}^^A \scr@notepaper@subelement@addressee@default
% \begin{macro}{\scr@notepaper@subelement@addressee@PP}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/22}{added}
% \begin{macrocode}
\newcommand*{\scr@notepaper@subelement@addressee@PP}{%
\ifdim \useplength{toaddrindent}=\z@
@@ -2312,11 +2237,6 @@
\vbox to \dimexpr \useplength{PPheadheight}-2\fboxsep\relax{%
\setlength{\parindent}{0pt}%
\hsize \dimexpr \useplength{PPheadwidth}-2\fboxsep\relax
-% \end{macrocode}
-% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}%^^A
-% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
-% \cs{unskip}\cs{strut}}%^^A
-% \begin{macrocode}
\sbox\@tempboxa{%
{\fontsize{20.74pt}{20.74pt}\selectfont
\usekomafont{PPlogo}{P.P.}}\hskip 2mm%
@@ -2395,10 +2315,13 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@subelement@addressee@PP
+% \end{macro}^^A \scr@notepaper@subelement@addressee@PP
% \begin{macro}{\scr@notepaper@subelement@addressee@PPimage}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
-% TODO: Need to be tested!
+% \changes{v3.27}{2019/03/22}{added}
+% The PP image.
+% \begin{description}
+% \item[ToDo:] Needs to be tested!
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@notepaper@subelement@addressee@PPimage}{%
\ifdim \useplength{toaddrindent}=\z@
@@ -2414,12 +2337,14 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@subelement@addressee@PPimage
+% \end{macro}^^A \scr@notepaper@subelement@addressee@PPimage
% \begin{macro}{\scr@notepaper@subelement@addressee@backgroundimage}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% TODO: Need to be tested!
+% \changes{v3.27}{2019/03/22}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% \begin{description}
+% \item[ToDo:] Needs to be tested!
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@notepaper@subelement@addressee@backgroundimage}{%
\vskip 1mm
@@ -2453,59 +2378,36 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@subelement@addressee@backgroundimage
-% \end{macro}%^^A \scr@notepaper@element@addressee
+% \end{macro}^^A \scr@notepaper@subelement@addressee@backgroundimage
+% \end{macro}^^A \scr@notepaper@element@addressee
% \begin{macro}{\scr@notepaper@element@location}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
+% \changes{v3.27}{2019/03/22}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% The \texttt{location} element depends on several options.
% \begin{macrocode}
\newcommand*{\scr@notepaper@element@location}{%
% \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-% \changes{v2.97e}{2007/11/13}{Der Absender kann nun ebenfalls in der
-% Absenderergänzung stehen}%^^A
-% \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn
-% verwendet}%^^A
-% Je nach Absenderanordnung muss hier nun ebenfalls etwas getan werden.
-% Der Fall 0, also linksbündiger Absender im Kopf spielt hier keine Rolle.
+% Depending on the alignment of the sender's address, the location field must
+% not be empty.
% \begin{macrocode}
\ifcase\@alignfrom
-% \end{macrocode}
-% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier
-% platziert, also darf die Absenderergänzung nicht leer sein.
-% \begin{macrocode}
\or
\if@logo
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
\fi
-% \end{macrocode}
-% Im Fall 2, also rechtsbündiger Absender im Kopf, ist auch nichts zu tun.
-% \begin{macrocode}
\or
-% \end{macrocode}
-% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
-% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein.
-% \begin{macrocode}
\or
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
-% \end{macrocode}
-% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
-% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein.
-% \begin{macrocode}
\or
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
-% \end{macrocode}
-% Alle anderen Fälle sind wie hier ebenfalls ohne Bedeutung.
-% \begin{macrocode}
\fi
% \end{macrocode}
-% \selectlanguage{english}%^^A
% Everything else only, if the field is not empty.
% \begin{macrocode}
\Ifkomavarempty{location}{}{%
% \end{macrocode}
-% Calculation of height and vertical possition.
+% Calculation of height and vertical position.
% \begin{macrocode}
\ifdim \useplength{locheight}=\z@%
\setplength{locheight}{\useplength{toaddrheight}}%
@@ -2514,7 +2416,7 @@
\setplength{locvpos}{\useplength{toaddrvpos}}%
\fi
% \end{macrocode}
-% Calculation of width and horizontal possition.
+% Calculation of width and horizontal position.
% \begin{macrocode}
\ifdim \useplength{locwidth}=\z@%
\setplength{locwidth}{\paperwidth}%
@@ -2545,57 +2447,25 @@
{Element `location'}%
{%
% \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-% In einigen Fällen der Absenderanordnung muss hier nun eine ganze Menge getan
-% werden. In anderen ist hingegen nur wenig zu tun. Im Fall 0, also
-% linksbündiger Absender im Kopf wird nur die Absenderergänzung ausgegeben
-% (das erfolgt nach der Fallunterscheidung).
+% Depending on the alignment of the sender's address, output of the logo and
+% maybe also the address.
% \begin{macrocode}
\ifcase\@alignfrom
-% \end{macrocode}
-% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier
-% platziert, die Absenderergänzung wird ggf. danach ausgegeben (das erfolgt
-% nach der Fallunterscheidung).%^^A
-% \changes{v2.98a}{2008/01/10}{bei zentriertem Absender wird die
-% Absenderergänzung ggf. unter dem Logo ausgegeben}%^^A
-% \begin{macrocode}
\or
\if@logo
\Ifkomavarempty{fromlogo}{\null}{%
{\raggedleft\noindent\usekomavar{fromlogo}\\
\vskip\parskip}\noindent}%
\fi
-% \end{macrocode}
-% Im Fall 2, also rechtsbündiger Absender im Kopf, wird auch nur die
-% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung).
-% \begin{macrocode}
\or
-% \end{macrocode}
-% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
-% sozusagen der linksbündige Kopf nachgebaut. Das Logo steht dabei
-% ggf. rechtsbündig oben.
-% \begin{macrocode}
\or
\if@logo
\Ifkomavarempty{fromlogo}{}{%
\raggedleft\usekomavar{fromlogo}\par}%
\fi
\raggedright
-% \end{macrocode}
-% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für den
-% Namen verwendet werden.
-% \begin{macrocode}
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
-% \end{macrocode}
-% Hat \verb|\@rulefrom| den nummerischen Wert 1, so soll direkt auf den
-% Absender eine Linie folgen. Die Länge dieser Linie kann vom Anwender
-% bestimmt oder automatisch gewählt werden. Es werden dabei die Pseudo-Längen
-% \texttt{fromrulewidth} und \texttt{fromrulethickness} verwendet. Ist
-% \texttt{fromrulewidth} 0, so wird sie automatisch bestimmt. Bei der
-% automatischen Längenbestimmung wird einfach eine Linie über die Gesamtbreite
-% der Absenderergänzung gesetzt.
-% \begin{macrocode}
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
@@ -2610,14 +2480,6 @@
}%
\\
}%
-% \end{macrocode}
-% Als Nächstes wird die Absenderadresse einschließlich aller optionalen Felder
-% gesetzt. Dabei werden optionale Felder nur gesetzt, wenn der entsprechende
-% Schalter \emph{true} ist. Die Adresse wird ebenfalls innerhalb einer Gruppe
-% in einer eigenen Schriftart gesetzt.%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%^^A
-% \begin{macrocode}
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
@@ -2627,10 +2489,6 @@
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
-% \end{macrocode}
-% Wie weiter oben erwähnt, kann auch an dieser Stelle eine Linie gesetzt
-% werden.
-% \begin{macrocode}
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
@@ -2642,14 +2500,6 @@
\fi
\\
}%
-% \end{macrocode}
-% Damit ist die Definition des linksbündigen Absenders in der
-% Absenderergänzung abgeschlossen. Im Fall 4, also rechtsbündiger Absender in
-% der Absenderergänzung wird hier exakt wie für Fall 3 verfahren. Nur ist
-% jetzt alles rechtsbündig.^^A%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%^^A%
-% \begin{macrocode}
\or
\raggedleft
\if@logo
@@ -2692,25 +2542,23 @@
\\
}%
% \end{macrocode}
-% In allen anderen Fällen wird ebenfalls die Absenderergänzung gesetzt.
+% Last but not least the location information.
% \begin{macrocode}
\fi
\usekomavar{location}%
-% \end{macrocode}
-% \selectlanguage{english}%^^A
-% That's it.
-% \begin{macrocode}
}\relax
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@element@location
+% \end{macro}^^A \scr@notepaper@element@location
% \begin{macro}{\scr@notepaper@element@refline}
-% \changes{v3.27}{2019/05/03}{new (internal)}%^^A
+% \changes{v3.27}{2019/05/03}{added}
% This notepaper element replaces the \cs{@datefield} of
-% \textsf{scrlttr2}. In opposite to \textsf{scrlttr2} this element has a
+% \cls*{scrlttr2}. In opposite to \cls*{scrlttr2} this element has a
% dedicated height \texttt{reflineheight}.
-% TODO: Still missing!
+% \begin{description}
+% \item[ToDo:] Needs to be tested.
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@notepaper@element@refline}{%
% \end{macrocode}
@@ -2820,12 +2668,12 @@
\fi
}
% \end{macrocode}
-% \end{macro}%^^A \scr@notepaper@element@refline
-% \end{macro}%^^A \scr@notepaper@elements
+% \end{macro}^^A \scr@notepaper@element@refline
+% \end{macro}^^A \scr@notepaper@elements
% \begin{macro}{\put@notepager@element}
-% \changes{v3.27}{2019/03/22}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/22}{added}
% \begin{macro}{\put@@notepager@@element}
-% \changes{v3.27}{2019/05/03}{new (internal)}%^^A
+% \changes{v3.27}{2019/05/03}{added}
% A helper macro to output one element at a specific
% position. \texttt{(\#1,\#2)} is the position, \texttt{(\#3,\#4)} the allowed
% width and height, \texttt{\#5} is the name of the element (used for warning
@@ -2869,15 +2717,17 @@
}
%</package&body&willbe>
% \end{macrocode}
-% \end{macro}%^^A \put@@notepaper@@element
-% \end{macro}%^^A \put@notepaper@element
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \put@@notepaper@@element
+% \end{macro}^^A \put@notepaper@element
%
% \begin{macro}{\move@topt}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% Für die folgenden Aktionen wird ein Makro benötigt, mit dem man vertikal von
-% der relativen Seitenposition zur relativen Papierposition gelangen kann.
+% \changes{v2.8n}{2001/09/07}{added}
+% We will need a helper to place an element relative to the top paper
+% edge. So we have to move from the start of the text area to the start of an
+% absolute position on the paper. This does only work, if the current position
+% is the start of the text area!
% \begin{macrocode}
+%<*body>
\newcommand*{\move@topt}{%
\null\vskip -1in\vskip -\topmargin%
\vskip -\headheight\vskip -\headsep%
@@ -2886,9 +2736,10 @@
}
% \end{macrocode}
% \begin{macro}{\move@frompt}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% Natürlich wird auch ein Makro benötigt, um vertikal von einer relativen
-% Papierposition wieder auf die relative Seitenposition zurück zu gelangen.
+% \changes{v2.8n}{2001/09/07}{added}
+% And also we need to move back from the absolute paper position to the start
+% of the text area. This does only work, if the absolute paper position is
+% unchanged.
% \begin{macrocode}
\newcommand*{\move@frompt}{%
\vskip 1in\vskip \topmargin%
@@ -2901,23 +2752,15 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\move@topl}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% Für die folgenden Aktionen wird außerdem ein Makro benötigt, mit dem man
-% horizontal von der relativen Seitenposition zur relativen Papierposition
-% gelangen kann.
+% \begin{macro}{\move@topl,\move@frompl}
+% \changes{v2.8n}{2001/09/07}{added}
+% We need the same for the horizontal position.
% \begin{macrocode}
\newcommand*{\move@topl}{%
\null\hskip -1in%
\ifodd\value{page}\hskip -\oddsidemargin\else\hskip -\evensidemargin\fi
\ignorespaces%
}
-% \end{macrocode}
-% \begin{macro}{\move@frompl}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% Natürlich wird auch ein Makro benötigt, um horizontal von einer relativen
-% Papierposition wieder auf die relative Seitenposition zurück zu gelangen.
-% \begin{macrocode}
\newcommand*{\move@frompl}{%
\hskip 1in%
\ifodd\value{page}\hskip \oddsidemargin\else\hskip \evensidemargin\fi%
@@ -2925,14 +2768,16 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\vb@t@z}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% \changes{v2.95}{2006/03/23}{Absatzformatierung mit \cs{setparsizes}}
+% \changes{v2.8n}{2001/09/07}{added}
+% \changes{v2.95}{2006/03/23}{using \cs{setparsizes}}
% \changes{v2.97e}{2007/11/20}{\cs{long}}
-% Ausserdem wird ein vertikales Äquivalent zu |\rlap| benötigt.
+% This is similar to \cs{smash}.
+% \begin{description}
+% \item[ToDo:] Should we use \cs{smash} inside the definition?
+% \end{description}
% \begin{macrocode}
\newcommand{\vb@t@z}[1]{{%
\setbox\z@\vbox to\z@{\color@begingroup #1\color@endgroup\vss}%
@@ -2946,25 +2791,25 @@
% \end{macro}
%
% \begin{macro}{\@foldmarks}
-% \changes{v2.97e}{2007/11/08}{\texttt{mfoldmarkvpos} wird verwendet}%^^A
-% Für die Faltmarken müssen nicht nur Abstände definiert werden, es wird auch
-% ein Befehl benötigt, um die Faltmarken zu setzen.
+% \changes{v2.97e}{2007/11/08}{using \plen{mfoldmarkvpos}}
% \begin{macro}{\@hfoldmark}
-% \changes{v2.97e}{2007/11/08}{Neu (intern)}%^^A
-% Dabei werden nur die horizontalen Faltmarken gesetzt, die tatsächlich
-% existieren.
+% \changes{v2.97e}{2007/11/08}{added}
% \begin{macro}{\@foldmark}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% \changes{v2.95}{2006/06/06}{\cs{vskip} in \cs{vb@t@z} verschoben, damit es
-% vom Satzspiegel unabhängig wird}%^^A
-% \changes{v2.97c}{2007/05/08}{Dicke konfigurierbar}%^^A
-% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) konfigurierbar}%^^A
-% \changes{v3.27}{2019/03/29}{different versions for package and class}%^^A
-% Das geht am einfachsten, wenn wir auch einen Befehl haben, mit dem man eine
-% einzelne Faltmarke relativ zur aktuellen Position setzen kann. Dies
-% geschieht mit Hilfe von |\rlap|, damit die horizontale Position unverändert
-% bleibt. Als Parameter werden der vertikale Abstand zur aktuellen Position
-% und die Länder der Marke übergeben.
+% \changes{v2.8n}{2001/09/07}{added}
+% \changes{v2.95}{2006/06/06}{\cs{vskip} moved into \cs{vb@t@z}}
+% \changes{v2.97c}{2007/05/08}{using \plen{foldmarkthickness}}
+% \changes{v2.97c}{2007/05/08}{using \fnt{foldmark}}
+% \changes{v3.27}{2019/03/29}{different versions for package and class}
+% Used to place all activated fold marks, either a horizontal one or a
+% vertical one.
+% \begin{description}
+% \item[ToDo:] The plans explained in the into of this section would have
+% consequences here too.
+% \end{description}
+% For the still used version the parameters oft a horizontal fold mark are the
+% vertical distance from the top edge an the length. The parameters of a
+% vertical fold mark are the horizontal distance from the left edge and the
+% length.
% \begin{macrocode}
%<*class|!willbe>
\newcommand*{\@foldmark}[2]{%
@@ -2978,10 +2823,9 @@
}
%</class|!willbe>
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% The package version uses \cs{put} to set the marks. It has a possition, a
-% direction and a length, so it can handle the horizontal and the vertical
-% foldmarks.
+% The planned package version uses \cs{put} to set the marks. It has a
+% position, a direction and a length, so it can handle the horizontal and the
+% vertical foldmarks.
% \begin{macrocode}
%<*package&willbe>
\newcommand*{\@foldmark}{}
@@ -3009,12 +2853,11 @@
\noexpand\fi
%</class|!willbe>
% \end{macrocode}
-% \changes{v3.27}{2019/03/29}{different handling of the package version}%^^A
-% The package version of \cs{@foldmark} has a new direction argument, because
-% it handles horizontal and vertical foldmarks. And if there is not a
+% \changes{v3.27}{2019/03/29}{different handling of the package version}
+% The planned package version of \cs{@foldmark} has a new direction argument,
+% because it handles horizontal and vertical foldmarks. And if there is not a
% pseudo-length for the vertical possition of the horizontal fold-mark the
% possition is half of the paper height. This is for the ``P''-mark.
-% \selectlanguage{ngerman}%^^A
% \begin{macrocode}
%<*package&willbe>
\Ifplength{#1foldmarkvpos}{%
@@ -3043,11 +2886,9 @@
}
% \end{macrocode}
% \begin{macro}{\@vfoldmark}
-% \changes{v2.97e}{2007/11/10}{Neu (intern)}%^^A
-% Für die vertikale(n) Faltmarke(n) gilt prinzipiell das gleiche. Dabei ist
-% lediglich zu beachten, dass die Linie hier komplett oberhalb der Grundlinie
-% gesetzt wird, also die vertikale Position um die Länge nach unten zu
-% verschieben ist.
+% \changes{v2.97e}{2007/11/10}{added}
+% The rule is printed completely above the baseline, so the length has to
+% be added to the vertical movement.
% \begin{macrocode}
\newcommand*{\@vfoldmark}[1]{%
\begingroup
@@ -3055,9 +2896,8 @@
\@expandtwoargs\in@{#1}{\@usefolds}%
\ifin@
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/03/29}{package version uses \cs{@foldmark}}%^^A
-% The class version does still work using \cs{rule}.
+% \changes{v3.27}{2019/03/29}{package version uses \cs{@foldmark}}
+% The currently used version does still work using \cs{rule}.
% \begin{macrocode}
%<*class|willbe>
\vb@t@z{%
@@ -3079,7 +2919,7 @@
\ignorespaces
%</class|willbe>
% \end{macrocode}
-% But the package version uses \cs{@foldmark}.
+% But the planned package version uses \cs{@foldmark}.
% \begin{macrocode}
%<*package&willbe>
\@foldmark(\useplength{lfoldmarkhpos},\useplength{foldmarkvpos})%
@@ -3091,8 +2931,7 @@
\endgroup
}
% \end{macrocode}
-% The main foldmark command is only needed by the class.
-% \selectlanguage{ngerman}%^^A
+% The main foldmark command is only needed by the current version.
% \begin{macrocode}
%<*class|!willbe>
\newcommand*{\@foldmarks}{%
@@ -3100,19 +2939,19 @@
\typeout{Foldmarks: yes}%
\move@topt
\ifdim \useplength{pfoldmarklength}=\z@
- \@setplength{pfoldmarklength}{4mm}%
+ \setplength{pfoldmarklength}{4mm}%
\fi
\ifdim \useplength{tfoldmarklength}=\z@
- \@setplength{tfoldmarklength}{2mm}%
+ \setplength{tfoldmarklength}{2mm}%
\fi
\ifdim \useplength{mfoldmarklength}=\z@
- \@setplength{mfoldmarklength}{2mm}%
+ \setplength{mfoldmarklength}{2mm}%
\fi
\ifdim \useplength{bfoldmarklength}=\z@
- \@setplength{bfoldmarklength}{2mm}%
+ \setplength{bfoldmarklength}{2mm}%
\fi
\ifdim \useplength{lfoldmarklength}=\z@
- \@setplength{lfoldmarklength}{4mm}%
+ \setplength{lfoldmarklength}{4mm}%
\fi
\begingroup
\@expandtwoargs\in@{P}{\@usefolds}%
@@ -3137,22 +2976,24 @@
% \end{macro}
%
% \begin{macro}{\@savevbox}
-% \changes{v2.8n}{2001/09/07}{Neu}%^^A
-% \changes{v2.8q}{2001/10/30}{zusätzlich ein optionales Argument}%^^A
-% \begin{macro}{\if@savevbox@warning}
-% \begin{macro}{\@savevbox@warningtrue}
-% \begin{macro}{\@savevbox@warningfalse}
-% \changes{v2.8q}{2001/10/30}{Neu}%^^A
-% Wenn eine der vertikalen Boxen in \cs{opening} zu einer \texttt{overbox
-% \string\vbox\space} Meldung führt, weiss letztlich niemand, welche Box dafür
-% verantwortlich war. Deshalb definieren wir hier ein Makro, das ggf. eine
-% Meldung ausgibt, die erklärt, welches Element die Ursache war und was man
-% tun kann. Das erste Argument ist dabei die Sollhöhe der Box, das zweite
-% Argument ist der Boxinhalt, das dritte Argument is der Name des Elements,
-% das zu hoch ist, das vierte der Name der Elementhöhe und das fünfte
-% schließlich der Befehl, mit dem das Element vom Anwender definiert werden
-% kann. Das optionale Argument wird nur bei der Ausgabe mit ausgegeben, findet
-% jedoch bei der Berechnung keine Berücksichtigung.
+% \changes{v2.8n}{2001/09/07}{added}
+% \changes{v2.8q}{2001/10/30}{optional argument added}
+% \begin{macro}{\@savevbox@warningfalse,\@savevbox@warningtrue,\if@savevbox@warning}
+% \changes{v2.8q}{2001/10/30}{added}
+% A vertically overfull box while \cs{opening} is hard to find. So we use
+% \begin{quote}
+% \cs{@savevbox}\oarg{print code}\marg{nominal height}\marg{content}%
+% \marg{element name}\marg{height name}\marg{change code}
+% \end{quote}
+% to measure each of these boxes and report a warning with more information.
+% \begin{description}
+% \item[Note:] The \meta{print code} is not used to measure the box, but to
+% print it.
+% \item[Note:] The \meta{content} is used twice: first to measure the box and
+% second to print it. Currently no special treatment is implemented to avoid
+% problems using commands like \cs{label}, \cs{stepcounter} etc. inside
+% \meta{content}.
+% \end{description}
% \begin{macrocode}
\newif\if@savevbox@warning\@savevbox@warningtrue
\newcommand{\@savevbox}[6][]{%
@@ -3180,30 +3021,22 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@firstheadfootfield}
-% \changes{v2.8n}{2001/09/08}{Neu}%^^A
-% \changes{v2.8q}{2001/10/30}{\cs{parfillskip} lokal auf 0 gesetzt}
-% \changes{v2.8q}{2001/10/30}{Fuß explizit in eine Box gesetzt}%^^A
-% \changes{v2.9l}{2003/01/23}{Positionierung verbessert}%^^A
-% \changes{v2.97e}{2007/11/22}{Optionen \texttt{firsthead} und
-% \texttt{firstfoot} beachten}%^^A
-% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos}
-% beachtet}%^^A
-% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos}
-% beachtet}%^^A
-% Ab Version 2.8n werden Kopf und Fuß der ersten Seite nicht mehr per
-% Seitenstil \texttt{firstpage} gesetzt, sondern mit einem speziellen
-% Feld. Dabei wird auch beachtet, dass dieses Feld im Kopf eine bestimmte aber
-% beschränkte Höhe hat. Diese Höhe ist unabhängig von der normalen Kopfhöhe
-% und richtet sich stattdessen nach der Position des Adressfeldes.
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/03/22}{package only enlarges page}%^^A
-% From \KOMAScript~3.27 the \textsf{scrlayer} package does not print the page
-% head or foot here. It only enlarges or shrinks the first page.
-% \selectlanguage{ngerman}%^^A
+% \changes{v2.8n}{2001/09/08}{added}
+% \changes{v2.8q}{2001/10/30}{\cs{parfillskip} locally set to 0}
+% \changes{v2.8q}{2001/10/30}{use a box for the foot}
+% \changes{v2.9l}{2003/01/23}{improved positioning}
+% \changes{v2.97e}{2007/11/22}{support for options \opt{firsthead} and
+% \opt{firstfoot}}
+% \changes{v3.05}{2009/11/09}{using pseudo length \plen{firstheadhpos}}
+% \changes{v3.05}{2009/11/09}{using pseudo length \plen{firstfoothpos}}
+% The letter head of the notepaper.
+% \begin{description}
+% \item[ToDo:] \changes{v3.27}{2019/03/22}{planned code enlarges page} The
+% planned code of \pkg*{scrlayer} does not print the page head or foot
+% here. It only enlarges or shrinks the first page.
+% \end{description}
% \begin{macrocode}
\newcommand*{\@firstheadfootfield}{%
%<*class|!willbe>
@@ -3213,14 +3046,18 @@
\vb@t@z{%
\rlap{\move@topl
% \end{macrocode}
-% Wenn \texttt{firstheadhpos} positiv und kleiner als die Seitenbreite ist,
-% dann ist es der Abstand des Kopfes vom linken Rand.
-% Wenn \texttt{firstheadhpos} negativ und betragsmäßig kleiner als die
-% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand.
-% Wenn \texttt{firstheadhpos} größer als die Seitenbreite ist, dann wird der
-% Kopf zentriert.
-% Wenn \texttt{firstheadhpos} kleiner als die negative Seitenbreite ist, dann
-% wird der Kopf am linken Rand des Satzspiegels ausgerichtet.
+% \begin{itemize}
+% \item If \plen{firstheadhpos} is positiv and less than the paper width, it
+% is the distance of the left paper edge to the left edge of the letter
+% head.
+% \item If \plen{firstheadhpos} is negative and the absolute value is less
+% than the paper width, the absolute value is the distance of the right
+% paper edge to the right edge of the letter head.
+% \item If \plen{firstheadhpos} is larger than the paper width, the letter
+% head will be centered.
+% \item If \plen{firstheadhpos} is negative an the absolute value is larger
+% than the paper width, the letter head will be left aligned to the text area.
+% \end{itemize}
% \begin{macrocode}
\ifdim\useplength{firstheadhpos}<\paperwidth
\ifdim \useplength{firstheadhpos}>-\paperwidth
@@ -3245,10 +3082,9 @@
\addtolengthplength[-1]{\@tempskipa}{firstheadvpos}%
\addtolength{\@tempskipa}{-\baselineskip}%
% \end{macrocode}
-% Da sich einige -- beispielsweise |briefkopf.sty| -- darauf verlassen, dass
-% |\textwidth| die Breite des Briefkopfes ist, wird diese Länge lokal
-% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier
-% nicht berücksichtigt wird.
+% Locally set \len{textwidth} to the width of the letter head (similar to
+% using a \env{minipage}. Also reset \len{parfillskip} to avoid overfull
+% \cs{hbox} messages because of filled text width.
% \begin{macrocode}
\setlength{\textwidth}{\useplength{firstheadwidth}}%
\setlength{\parfillskip}{\z@ \@plus 1fil}%
@@ -3268,14 +3104,19 @@
\vb@t@z{%
\rlap{\move@topl
% \end{macrocode}
-% Wenn \texttt{firstfoothpos} positiv und kleiner als die Seitenbreite ist,
-% dann ist es der Abstand des Kopfes vom linken Rand.
-% Wenn \texttt{firstfoothpos} negativ und betragsmäßig kleiner als die
-% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand.
-% Wenn \texttt{firstfoothpos} größer als die Seitenbreite ist, dann wird der
-% Kopf zentriert.
-% Wenn \texttt{firstfoothpos} kleiner als die negative Seitenbreite ist, dann
-% wird der Kopf am linken Rand des Satzspiegels ausgerichtet.
+% \begin{itemize}
+% \item If \plen{firstfoothpos} is positiv and less than the paper width, it
+% is the distance of the left paper edge to the left edge of the letter
+% footer.
+% \item If \plen{firstfoothpos} is negative and the absolute value is less
+% than the paper width, the absolute value is the distance of the right
+% paper edge to the right edge of the letter footer.
+% \item If \plen{firstfoothpos} is larger than the paper width, the letter
+% footer will be centered.
+% \item If \plen{firstfoothpos} is negative an the absolute value is larger
+% than the paper width, the letter footer will be left aligned to the text
+% area.
+% \end{itemize}
% \begin{macrocode}
\ifdim\useplength{firstfoothpos}<\paperwidth
\ifdim \useplength{firstfoothpos}>-\paperwidth
@@ -3297,12 +3138,6 @@
\hskip\@tempskipa
\vbox{\hsize\useplength{firstfootwidth}%
\vskip\useplength{firstfootvpos}%
-% \end{macrocode}
-% Da sich einige -- beispielsweise |briefkopf.sty| -- darauf verlassen, dass
-% |\textwidth| die Breite des Brieffußes ist, wird diese Länge lokal
-% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier
-% nicht berücksichtigt wird.
-% \begin{macrocode}
\setlength{\textwidth}{\useplength{firstfootwidth}}%
\setlength{\parfillskip}{\z@ \@plus 1fil}%
\vbox{\hsize\useplength{firstfootwidth}\noindent
@@ -3334,29 +3169,30 @@
% \end{macro}
%
% \begin{macro}{\@addrfield}
-% \changes{v2.8q}{2002/04/01}{\cs{parfillskip} lokal geändert}%^^A
-% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts}%^^A
-% \changes{v2.9o}{2003/02/20}{\cs{noindent} eingefügt bei
-% \texttt{specialmail}}%^^A
-% \changes{v2.96}{2006/07/31}{Benutzung von \cs{backaddr@format}}%^^A
-% \changes{v3.03}{2009/03/04}{Priorität kann Versandart ersetzen}%^^A
-% \changes{v3.03}{2009/03/04}{Neue Anschriftmodi \texttt{PP},
-% \texttt{backgroundimage}, \texttt{addresseeimage}}%^^A
-% \changes{v3.03b}{2009/06/30}{Schreibfehler bei »addressee« korrigiert}%^^A
-% \changes{v3.06a}{2010/07/29}{Absatzparameter werden passend
-% eingestellt}%^^A
-% \changes{v3.22}{2016/12/21}{zweimal fehlende Klammern bei \texttt{toname}
-% ergänzt}%^^A
-% \changes{v3.22}{2016/12/21}{zweimal fehlende Klammern und \cs{endgraf} bei
-% \texttt{toaddress} ergänzt}%^^A
-% \changes{v3.27}{2019/03/27}{only at \textsf{scrlttr2}}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% \changes{v3.30}{2020/03/27}{Umdefinierung des Zeilenumbruchs
-% verschoben}%^^A
-% Dasselbe gilt auch für das Adressfeld für Fensterumschläge. Die
-% Rücksendeadresse und die Briefart werden dabei mit eigenen
-% Formatieranweisungen gesetzt.
+% \changes{v2.8q}{2002/04/01}{\cs{parfillskip} locally changed}
+% \changes{v2.8q}{2002/06/03}{special treatment of addressee right aligend}
+% \changes{v2.9o}{2003/02/20}{\cs{noindent} added to \var{specialmail}}
+% \changes{v2.96}{2006/07/31}{using \cs{backaddr@format}}
+% \changes{v3.03}{2009/03/04}{support for priority}
+% \changes{v3.03}{2009/03/04}{new \opt{addrfield} values \opt{\quotechar=PP},
+% \opt{\quotechar=backgroundimage}, \opt{\quotechar=addresseeimage}}
+% \changes{v3.03b}{2009/06/30}{typo fix of ``addressee''}
+% \changes{v3.06a}{2010/07/29}{setting paragraph parameters}
+% \changes{v3.17}{2015/04/17}{\cs{setbox} replaced by \cs{sbox}}
+% \changes{v3.22}{2016/12/21}{braces fixed}
+% \changes{v3.22}{2016/12/21}{\cs{endgraf} added}
+% \changes{v3.25}{2017/11/15}{using \cs{scr@endstrut} instead of
+% \cs{unskip}\cs{strut}}
+% \changes{v3.27}{2019/03/27}{potentially only for \cls*{scrlttr2}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% \changes{v3.30}{2020/03/27}{re-definition of line break moved}
+% The address field of the addressee inclusive return address and special mail
+% text.
+% \begin{description}
+% \item[ToDo:] The plans explained in the into of this section would have
+% consequences here too.
+% \end{description}
% \begin{macrocode}
%<*class|!willbe>
\newcommand*{\@addrfield}{%
@@ -3446,8 +3282,9 @@
\else
\begingroup%
% \end{macrocode}
-% In den Modi \texttt{PP}, \texttt{backgroundimage} oder \texttt{addresseeimage}
-% gibt es weder Rücksendeadresse noch Versandart aber ebenfalls eine Priorität.
+% With \opt{addrfield=PP}, \opt{addrfield=backgroundimage} or
+% \opt{addrfield=image} there are neither a return address nor a special mail
+% text, but a priority.
% \begin{macrocode}
\if@baddr
\let\@tempa\@empty\let\@tempb\@empty
@@ -3479,16 +3316,16 @@
\vb@t@z{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\ifdim \useplength{toaddrindent}=\z@
- \@setplength{toaddrindent}{8mm}%
+ \setplength{toaddrindent}{8mm}%
\fi
\ifdim \useplength{PPheadheight}=\z@
- \@setplength{PPheadheight}{20.74pt}%
+ \setplength{PPheadheight}{20.74pt}%
\fi
\ifdim \useplength{PPheadwidth}=\z@
- \@setplength{PPheadwidth}{42mm}%
+ \setplength{PPheadwidth}{42mm}%
\fi
\ifdim \useplength{PPdatamatrixvskip}=\z@
- \@setplength{PPdatamatrixvskip}{9mm}%
+ \setplength{PPdatamatrixvskip}{9mm}%
\fi
\rlap{\move@topl
\setlengthtoplength{\@tempskipa}{toaddrhpos}%
@@ -3500,7 +3337,7 @@
\@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}%
\ifnum\@afieldmode=\tw@
% \end{macrocode}
-% Modus \texttt{PP}.
+% \opt{addrfield=PP}:
% \begin{macrocode}
\vskip 2pt\relax
\hskip \useplength{toaddrindent}\relax
@@ -3508,11 +3345,6 @@
\vbox to \dimexpr \useplength{PPheadheight}-2\fboxsep\relax{%
\setlength{\parindent}{0pt}%
\hsize \dimexpr \useplength{PPheadwidth}-2\fboxsep\relax
-% \end{macrocode}
-% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}%^^A
-% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
-% \cs{unskip}\cs{strut}}%^^A
-% \begin{macrocode}
\sbox\@tempboxa{%
{\fontsize{20.74pt}{20.74pt}\selectfont
\usekomafont{PPlogo}{P.P.}}\hskip 2mm%
@@ -3572,7 +3404,7 @@
}%
\else
% \end{macrocode}
-% Modus \texttt{backgroundimage} oder \texttt{image}.
+% \opt{addrfield=backgroundimage} or \opt{addrfield=image}:
% \begin{macrocode}
\vskip 1mm
\noindent\expandafter\hskip\useplength{toaddrindent}%
@@ -3611,8 +3443,8 @@
%</class|!willbe>
% \end{macrocode}
% \begin{macro}{\specialmail@format}
-% \changes{v2.97c}{2007/07/06}{neu (intern)}%^^A
-% Die Anweisung, die für das Aussehen der Versandart zuständig ist.
+% \changes{v2.97c}{2007/07/06}{added}
+% Formatting the special mail note.
% \begin{macrocode}
\newcommand*{\specialmail@format}[1]{}
\let\specialmail@format\underline
@@ -3620,9 +3452,8 @@
% \end{macro}
%
% \begin{macro}{\@ogobble}
-% \changes{v2.8q}{2002/01/22}{Neu}%^^A
-% In obiger Definition wird das Makro \cs{@ogobble} verwendet, um
-% einen optionalen Parameter zu vernichten, falls dieser existiert.
+% \changes{v2.8q}{2002/01/22}{added}
+% Something like \cs{gobble} but to gobble an optional argument.
% \begin{macrocode}
\newcommand*{\@ogobble}[1][]{}
% \end{macrocode}
@@ -3630,80 +3461,68 @@
% \end{macro}
%
% \begin{macro}{\@locfield}
-% \changes{v2.8o}{2001/09/17}{\cs{noindent} eingefügt}
-% \changes{v2.8q}{2002/02/07}{\cs{noindent} nach dem Logo}
-% \changes{v2.8q}{2002/07/23}{Berechnung der Breite hierher verschoben}%^^A
-% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts}%^^A
-% \changes{v3.27}{2019/03/27}{only at \textsf{scrlttr2}}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% Das "`locfield"' wird unabhängig von der Adresse gesetzt.
+% \changes{v2.8o}{2001/09/17}{\cs{noindent} added}
+% \changes{v2.8q}{2002/02/07}{\cs{noindent} after the logo}
+% \changes{v2.8q}{2002/07/23}{width calculation moved to this}
+% \changes{v2.8q}{2002/06/03}{special treatment of right aligned addressee}
+% \changes{v3.12}{2013/05/29}{using variable \var{frommobilephone}}
+% \changes{v3.27}{2019/03/27}{potentially only at \cls*{scrlttr2}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% The location field to be placed independent of having an address field.
+% \begin{description}
+% \item[ToDo:] The plans explained in the into of this section would have
+% consequences here too.
+% \end{description}
% \begin{macrocode}
%<*class|!willbe>
\newcommand*{\@locfield}{%
\ifdim \useplength{locwidth}=\z@%
- \@setplength{locwidth}{\paperwidth}%
+ \setplength{locwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
- \@addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
+ \addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
\else
- \@addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
+ \addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
\fi
- \@addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
+ \addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
\if@bigloc%
- \@setplength[.66667]{locwidth}{\useplength{locwidth}}%
+ \setplength[.66667]{locwidth}{\useplength{locwidth}}%
\else%
- \@setplength[.5]{locwidth}{\useplength{locwidth}}%
+ \setplength[.5]{locwidth}{\useplength{locwidth}}%
\fi%
\fi%
% \end{macrocode}
-% \changes{v2.97e}{2007/11/13}{Der Absender kann nun ebenfalls in der
-% Absenderergänzung stehen}%^^A
-% \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn
-% verwendet}%^^A
-% Je nach Absenderanordnung muss hier nun ebenfalls etwas getan werden.
-% Der Fall 0, also linksbündiger Absender im Kopf spielt hier keine Rolle.
+% \changes{v2.97e}{2007/11/13}{support for sender in location}
+% \changes{v2.98b}{2008/01/30}{always print location if used}
+% Depending of \opt{fromalign} we have to take care to print the location by
+% adding a dummy content.
% \begin{macrocode}
\ifcase\@alignfrom
-% \end{macrocode}
-% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier
-% platziert, also darf die Absenderergänzung nicht leer sein.
-% \begin{macrocode}
\or
\if@logo
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
\fi
-% \end{macrocode}
-% Im Fall 2, also rechtsbündiger Absender im Kopf, ist auch nichts zu tun.
-% \begin{macrocode}
\or
-% \end{macrocode}
-% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
-% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein.
-% \begin{macrocode}
\or
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
-% \end{macrocode}
-% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
-% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein.
-% \begin{macrocode}
\or
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
+ \fi
% \end{macrocode}
-% Alle anderen Fälle sind wie hier ebenfalls ohne Bedeutung.
+% Report if the location is empty or calculate the position and width.
% \begin{macrocode}
- \fi
\Ifkomavarempty{location}{%
\typeout{Location field: empty}%
}{%
\typeout{Location field: yes}%
\ifdim \useplength{lochpos}=\z@%
- \@setplength{lochpos}{\useplength{toaddrhpos}}%
+ \setplength{lochpos}{\useplength{toaddrhpos}}%
\fi
\ifdim \useplength{locvpos}=\z@%
- \@setplength{locvpos}{\useplength{toaddrvpos}}%
+ \setplength{locvpos}{\useplength{toaddrvpos}}%
\fi
\ifdim \useplength{locheight}=\z@%
- \@setplength{locheight}{\useplength{toaddrheight}}%
+ \setplength{locheight}{\useplength{toaddrheight}}%
\fi
\move@topt\vskip\useplength{locvpos}%
\vb@t@z{\noindent\makebox[0pt][l]{%
@@ -3719,56 +3538,25 @@
\@savevbox{\useplength{locheight}}{%
\noindent\hsize\useplength{locwidth}%
% \end{macrocode}
-% In einigen Fällen der Absenderanordnung muss hier nun eine ganze Menge getan
-% werden. In anderen ist hingegen nur wenig zu tun.
-% Im Fall 0, also linksbündiger Absender im Kopf wird nur die
-% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung).
+% For some values of \opt{fromalign} we also have to place the sender's
+% address or logo.
% \begin{macrocode}
\ifcase\@alignfrom
-% \end{macrocode}
-% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier
-% platziert, die Absenderergänzung wird ggf. danach ausgegeben (das erfolgt
-% nach der Fallunterscheidung).
-% \changes{v2.98a}{2008/01/10}{bei zentriertem Absender wird die
-% Absenderergänzung ggf. unter dem Logo ausgegeben}%^^A
-% \begin{macrocode}
\or
\if@logo
\Ifkomavarempty{fromlogo}{\null}{%
{\raggedleft\noindent\usekomavar{fromlogo}\\
\vskip\parskip}\noindent}%
\fi
-% \end{macrocode}
-% Im Fall 2, also rechtsbündiger Absender im Kopf, wird auch nur die
-% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung).
-% \begin{macrocode}
\or
-% \end{macrocode}
-% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
-% sozusagen der linksbündige Kopf nachgebaut. Das Logo steht dabei
-% ggf. rechtsbündig oben.
-% \begin{macrocode}
\or
\if@logo
\Ifkomavarempty{fromlogo}{}{%
\raggedleft\usekomavar{fromlogo}\par}%
\fi
\raggedright
-% \end{macrocode}
-% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für
-% den Namen verwendet werden.
-% \begin{macrocode}
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
-% \end{macrocode}
-% Hat \verb|\@rulefrom| den nummerischen Wert 1, so soll direkt auf den
-% Absender eine Linie folgen. Die Länge dieser Linie kann vom Anwender
-% bestimmt oder automatisch gewählt werden. Es werden dabei die
-% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness}
-% verwendet. Ist \texttt{fromrulewidth} 0, so wird sie automatisch
-% bestimmt. Bei der automatischen Längenbestimmung wird einfach eine Linie
-% über die Gesamtbreite der Absenderergänzung gesetzt.
-% \begin{macrocode}
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
@@ -3783,15 +3571,6 @@
}%
\\
}%
-% \end{macrocode}
-% Als Nächstes wird die Absenderadresse einschließlich aller
-% optionalen Felder gesetzt. Dabei werden optionale Felder nur
-% gesetzt, wenn der entsprechende Schalter \emph{true} ist. Die
-% Adresse wird ebenfalls innerhalb einer Gruppe in einer eigenen
-% Schriftart gesetzt.%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%
-% \begin{macrocode}
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
@@ -3801,10 +3580,6 @@
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
-% \end{macrocode}
-% Wie weiter oben erwähnt, kann auch an dieser Stelle eine Linie
-% gesetzt werden.
-% \begin{macrocode}
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
@@ -3816,14 +3591,6 @@
\fi
\\
}%
-% \end{macrocode}
-% Damit ist die Definition des linksbündigen Absenders in der
-% Absenderergänzung abgeschlossen.
-% Im Fall 4, also rechtsbündiger Absender in der Absenderergänzung wird hier
-% exakt wie für Fall 3 verfahren. Nur ist jetzt alles rechtsbündig.%
-% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
-% berücksichtigt}%
-% \begin{macrocode}
\or
\raggedleft
\if@logo
@@ -3866,14 +3633,10 @@
\\
}%
% \end{macrocode}
-% In allen anderen Fällen wird ebenfalls die Absenderergänzung gesetzt.
+% Last but not least the content of the location.
% \begin{macrocode}
\fi
\usekomavar{location}%
-% \end{macrocode}
-% Zum Schluss wird noch verhindert, dass wegen nicht vollen vertikalen Boxen
-% gemotzt wird.
-% \begin{macrocode}
\vskip \z@ \@plus .00001fil}%
{location field}{locheight}{\setkomavar}%
}}%
@@ -3886,26 +3649,21 @@
% \end{macro}
%
% \begin{macro}{\@datefield}
-% \changes{v2.8q}{2002/01/14}{Schalter \cs{if@tempwa} wird bereits hier auf
-% \texttt{true} gesetzt}
-% \changes{v2.97c}{2007/05/14}{Neue Fontelemente}%^^A
-% Je nachdem, welche Felder definiert sind, muss eine geschäftsmäßiger
-% Standardbrief oder ein eher persönliches Aussehen gewählt werden.
+% \changes{v2.8q}{2002/01/14}{setting \cs{if@tempwa}}
+% \changes{v2.97c}{2007/05/14}{using font elements \fnt{refname} and
+% \fnt{refvalue}}
+% Print either a reference line or place and date only.
% \begin{macro}{\do@set@reffield}
-% \changes{v3.09}{2011/03/06}{Neu (intern)}%^^A
-% Das ist ein \cs{do} für die Felder und bekommt innerhalb von
-% \cs{@datefield} unterschiedliche Bedeutungen. An dieser Stelle wird es daher
-% nur reserviert.
+% \changes{v3.09}{2011/03/06}{added}
+% The macro will be defined later depending on testing of usage or
+% printing. So we just allocate/reserve it here.
% \begin{macrocode}
\newcommand*{\do@set@reffield}{}
% \end{macrocode}
% \begin{macro}{\@set@reffield}
-% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}
-% Einzelne Felder werden mit Hilfe dieses Makros gesetzt. Als Parameter wird
-% der Name des Feldes übergeben. Es wird dann davon ausgegangen, dass der
-% Name des Feldes in der jeweiligen Sprache im Makro
-% \verb|\|\texttt{\emph{\#1}}\verb|name| und der Wert des Feldes in
-% \verb|\var|\texttt{\emph{\#1}} zu finden ist.
+% \changes{v3.17}{2015/04/17}{\cs{setbox} replaced by \cs{sbox}}
+% Used to print a single field in the reference line. The argument is the name
+% of field.
% \begin{macrocode}
\newcommand*{\@set@reffield}[1]{%
\Ifkomavarempty{#1}{}{%
@@ -3921,9 +3679,10 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@test@reffield}
-% \changes{v3.09}{2011/03/06}{Neu (intern)}%^^A
-% Dieses Makro testet, ob ein Feld tatsächlich zu setzen ist und setzt
-% ggf. \cs{@tempswa}.
+% \changes{v3.09}{2011/03/06}{added}
+% Used to test, if a field is not empty and sets \cs{if@tempswa} corresponding
+% to the result. All not empty fields are added to a comma+space separated
+% list in \cs{@tempa}.
% \begin{macrocode}
\newcommand*{\@test@reffield}[1]{%
\Ifkomavarempty{#1}{}{%
@@ -3935,39 +3694,37 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@set@reffields}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% Dieses Makro enthält alle Aufrufe von \cs{@set@reffield}, die durchzuführen
-% sind. Das Makro kann mit Hilfe von \cs{addtoreffields} erweitert werden.
+% \changes{v2.8q}{2002/01/14}{added}
+% The internal storage of all \cs{do@set@reffield} calls to be used for the
+% reference line.
% \begin{macrocode}
\newcommand*{\@set@reffields}{}%
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\addtoreffields}
-% \changes{v3.09}{2011/03/06}{Verwendung von \cs{do@set@reffield} an Stelle
-% von \cs{@set@reffield}}
-% Dieses Makro erwartet als obligatorisches Argument den Namen einer
-% KOMA-Script Variable. Der Befehl arbeitet lokal zur aktuellen Umgebung.
+% \begin{command}{\addtoreffields}
+% \changes{v3.09}{2011/03/06}{using \cs{do@set@reffield}}
+% Adds a new \cs{do@set@reffield} to \cs{@set@reffields} for the field given
+% by the argument.
% \begin{macrocode}
\newcommand*{\addtoreffields}[1]{%
\l@addto@macro{\@set@reffields}{\do@set@reffield{#1}}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\removereffields}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% Es gibt auch einen Befehl, um alle Felder aus der Geschäftszeile zu
-% entfernen.
+% \begin{command}{\removereffields}
+% \changes{v2.8q}{2002/01/14}{added}
+% Remove all fields from \cs{@set@reffields}.
% \begin{macrocode}
\newcommand*{\removereffields}{%
\renewcommand*{\@set@reffields}{}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\defaultreffields}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% Ebenso ein Befehl, um die üblichen Felder zu setzen.
+% \begin{command}{\defaultreffields}
+% \changes{v2.8q}{2002/01/14}{added}
+% (Re)Set the default of \cs{@set@reffields}.
% \begin{macrocode}
\newcommand*{\defaultreffields}{%
\removereffields
@@ -3978,70 +3735,66 @@
\addtoreffields{invoice}%
}
% \end{macrocode}
-% Genau diesen Befehl rufen wir auch gleich auf:
+% This is used for initial state:
% \begin{macrocode}
\defaultreffields
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \changes{v2.3e}{1996/05/31}{Abstand zwischen Ort und Datum eingefügt}%^^A
-% \changes{v2.8o}{2001/09/18}{für den Brieftyp \texttt{KOMAold} anschließend
-% einen zusätzlichen vertikalen Abstand eingefügt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{rlap} eingefügt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.8q}{2002/01/14}{Leertests entfernt, da in \cs{@set@reffield}
-% bereits enthalten}%^^A
-% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refwidth} an die
-% Dokumentation angepasst}%^^A
-% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refhpos} hinzugefügt}%^^A
-% \changes{v2.95}{2006/03/23}{Absatzeinzug mit \cs{setparsizes} abschalten}%^^A
-% \changes{v2.97c}{2007/05/14}{Neue Font-Elemente}%^^A
-% \changes{v3.09}{2011/03/06}{\cs{do@set@reffield} muss initialisiert
-% werden}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
+% \changes{v2.3e}{1996/05/31}{distance between place and date added}
+% \changes{v2.8o}{2001/09/18}{added an additional verticale distance for
+% \file{KOMAold.lco} only}
+% \changes{v2.8q}{2001/11/13}{\cs{rlap} added}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/01/14}{empty test moved to \cs{@set@reffield}}
+% \changes{v2.9l}{2003/01/28}{calculation of \plen{refwidth} fixed}
+% \changes{v2.9l}{2003/01/28}{calculation of \plen{refhpos} added}
+% \changes{v2.95}{2006/03/23}{using \cs{setparsizes}}
+% \changes{v2.97c}{2007/05/14}{using several new font elements}
+% \changes{v3.09}{2011/03/06}{initialization of \cs{do@set@reffield}}
+% \changes{v3.12}{2013/07/31}{using font element \fnt{placeanddate}}
+% \changes{v3.17}{2015/04/17}{\cs{setbox} replaced by \cs{sbox}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
% \begin{macrocode}
\newcommand*{\@datefield}{%
{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\ifdim\useplength{refwidth}=\z@
\if@refwide
- \@setplength{refwidth}{\paperwidth}%
+ \setplength{refwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
- \@setplength{refhpos}{\useplength{toaddrhpos}}%
+ \setplength{refhpos}{\useplength{toaddrhpos}}%
\else
- \@setplength[-]{refhpos}{\useplength{toaddrhpos}}%
+ \setplength[-]{refhpos}{\useplength{toaddrhpos}}%
\fi
- \@addtoplength[-2]{refwidth}{\useplength{refhpos}}%
+ \addtoplength[-2]{refwidth}{\useplength{refhpos}}%
\else
- \@setplength{refwidth}{\textwidth}%
- \@setplength{refhpos}{\oddsidemargin}%
- \@addtoplength{refhpos}{1in}%
+ \setplength{refwidth}{\textwidth}%
+ \setplength{refhpos}{\oddsidemargin}%
+ \addtoplength{refhpos}{1in}%
\fi
\else
\ifdim\useplength{refhpos}=\z@
\begingroup
% \end{macrocode}
-% Wir bestimmen zunächst, um wieviel die Geschäftszeile schmaler ist als der
-% Textbereich.
+% How much smaller is the reference line than the text width.
% \begin{macrocode}
\setlength\@tempdima{\textwidth}%
\addtolengthplength[-]{\@tempdima}{refwidth}%
% \end{macrocode}
-% Dann wird bestimmt, wie groß der linke Rand tatsächlich ist.
+% Now we calculate the left margin.
% \begin{macrocode}
\setlength\@tempdimb{\oddsidemargin}%
\addtolength\@tempdimb{1in}%
% \end{macrocode}
-% Ebenso wird bestimmt, wie groß der linke und rechte Rand zusammen sind.
+% And the left and right margin together.
% \begin{macrocode}
\setlength{\@tempdimc}{\paperwidth}%
\addtolength{\@tempdimc}{-\textwidth}%
% \end{macrocode}
-% Jetzt wird aus dem Gesamtrand der Geschäftszeile der linke Rand der
-% Geschäftszeile so bestimmt, dass das Randverhältnis dabei unverändert
-% bleibt. Dabei erlauben wir uns eine gewisse Rechenungenauigkeit beim
-% Verhältnis.
+% Now we can calculate the left margin of the reference line without changing
+% the relation of the margins (with some tolerance).
% \begin{macrocode}
\divide\@tempdimb by 32768\relax
\divide\@tempdimc by 32768\relax
@@ -4050,13 +3803,13 @@
\divide\@tempdima by\@tempdimc
\fi
\edef\@tempa{\noexpand\endgroup
- \noexpand\@setplength{refhpos}{\the\@tempdima}}%
+ \noexpand\setplength{refhpos}{\the\@tempdima}}%
\@tempa
\fi\fi
\@tempswafalse
\move@topt\vskip\useplength{refvpos}%
% \end{macrocode}
-% Jetzt kontrollieren wir, ob überhaupt etwas auszugeben ist:
+% Have we to print something?
% \begin{macrocode}
\@tempswafalse
\let\do@set@reffield\@test@reffield
@@ -4067,8 +3820,7 @@
%<trace> \typeout{Reference line(s) with: \@tempa}%
\@tempswafalse
% \end{macrocode}
-% Jetzt erfolgt noch die Absatzeinzugkorrektur. Danach kommt die eigentliche
-% Arbeit.
+% If so, do so.
% \begin{macrocode}
\rlap{\noindent\move@topl\hskip\useplength{refhpos}%
\vbox{\hsize\useplength{refwidth}%
@@ -4085,9 +3837,7 @@
\if@tempswa
\ifnum \@datepos=1 \@set@reffield{date}\fi%
% \end{macrocode}
-% Seit Version~2.97c wird hier auch noch getestet, ob die Geschäftszeile
-% möglicherweise mit zu großer Schrift gesetzt wird.
-% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}%^^A
+% From version~2.97c also test, of the font of the reference line is too big.
% \begin{macrocode}
\sbox\z@{\usekomafont{refname}\strutbox}%
\ifdim\ht\z@>\ht\strutbox
@@ -4105,10 +3855,7 @@
\fi
\else
% \end{macrocode}
-% Hier landen wir schließlich, wenn gar keine Felder ausgegeben wurden, also
-% nur Ort und Datum zu setzen sind.
-% \changes{v3.12}{2013/07/31}{neues Element \texttt{placeanddate} wird
-% verwendet}%^^A
+% If we do not have to print any field, we are printing the place and date.
% \begin{macrocode}
\ifcase \@datepos\else
\ifnum \@datepos=1 \enskip\hfill\fi
@@ -4128,37 +3875,19 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@maketitle}
-% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} für den
-% \cs{title}}%^^A
-% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von \cs{sectfont}}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.9t}{2004/09/16}{\cs{par} in Größe und Schrift des Titels}%^^A
-% \changes{v2.95}{2006/03/22}{\cs{usekomafont} and Stelle von
-% \cs{titlefont}}%^^A
-% \changes{v3.13}{2014/06/26}{umbenannt in \cs{@makelettertitle}}%^^A
-% \end{macro}
-% \begin{macro}{\@makelettertitle}
-% \changes{v3.13}{2014/06/26}{neu (ehemals \cs{@maketitle}}%^^A
-% \changes{v3.15}{2015/02/21}{\texttt{title} durch \texttt{lettertitle}
-% ersetzt}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% \begin{macro}{\@subjfield}
-% \changes{v2.8q}{2001/10/19}{\cs{centerline} durch \cs{centering}
-% ersetzt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.8q}{2002/01/31}{wird mit hängendem Einzug gesetzt}%^^A
-% \changes{v2.95}{2006/03/23}{Absatzeinzug mit cs{setparsizes}%^^A
-% einstellen}%^^A
-% \changes{v3.01}{2008/11/03}{Verwendung der neuen Pseudolängen
-% \texttt{subjectbeforevskip} und \texttt{subjectaftervskip}}%^^A
-% \changes{v3.15}{2015/02/21}{\texttt{subject} durch \texttt{lettersubject}
-% ersetzt}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% Der eigentliche Titel wir mit |\@maketitle| gesetzt. Dies sollte jedoch
-% ebenso wie beim Betreff (|\@subjfield|) \emph{nicht} manuell geschehen.
+% \begin{macro}{\@maketitle,\@makelettertitle}
+% \changes{v2.3b}{1996/01/14}{using \cs{sectfont}}
+% \changes{v2.8p}{2001/09/22}{using \cs{titlefont} instead of \cs{sectfont}}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.9t}{2004/09/16}{\cs{par} with size and font of the title}
+% \changes{v2.95}{2006/03/22}{using \cs{usekomafont}}
+% \changes{v3.13}{2014/06/26}{\cs{@maketitle} renamed to \cs{@makelettertitle}}
+% \changes{v3.15}{2015/02/21}{\fnt{title} replaced by \fnt{lettertitle}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% \changes{v3.36}{2022/03/04}{use of font element \fnt{title} removed}
+% \KOMAScript{} provides a letter title. This is different from a document
+% title.
% \begin{macrocode}
\newcommand*{\@makelettertitle}{%
\Ifkomavarempty{title}{%
@@ -4166,10 +3895,24 @@
}{%
\typeout{Title: yes}%
{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
- \centering\LARGE\usekomafont{lettertitle}\usekomavar{title}\par}%
+ \centering\LARGE\usekomafont{lettertitle}\par}%
\vskip\baselineskip%
}%
}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@subjfield}
+% \changes{v2.8q}{2001/10/19}{\cs{centerline} replaced by \cs{centering}}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/01/31}{hanging}
+% \changes{v2.95}{2006/03/23}{using cs{setparsizes}}
+% \changes{v3.01}{2008/11/03}{using \plen{subjectbeforevskip} and
+% \plen{subjectaftervskip}}
+% \changes{v3.15}{2015/02/21}{\fnt{subject} replaced by \fnt{lettersubject}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% The subject of the letter.
+% \begin{macrocode}
\newcommand*{\@subjfield}{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\Ifkomavarempty{subject}{%
@@ -4211,71 +3954,51 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\ltr@len@subjectvpos}
-% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectvpos}}
-% Manchmal ist es günstiger, wenn man den Betreff absolut positionieren
-% kann. Das geschieht über diese Pseudolänge, wenn sie \emph{nicht} 0 ist.
+% \begin{pseudolength}{subjectvpos}
+% \changes{v3.01}{2008/11/03}{added}
+% If \plen{subjectpos} is not 0 it is the absolute vertical position of the
+% subject. With 0 it is placed relative to the title, the reference line or
+% the opening. This is the initial value.
% \begin{macrocode}
-\@newplength{subjectvpos}
-\@setplength{subjectvpos}{0pt}
+\newplength{subjectvpos}
+\setplength{subjectvpos}{0pt}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@subjectaftervskip}
-% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectaftervskip}}
-% Abstand nach dem Betreff. Dieser Abstand wird aus Gründen der
-% Kompatibilität zu früheren Versionen mit 2\cs{baselineskip}
-% voreingestellt.
+% \end{pseudolength}
+% \begin{pseudolength}{subjectaftervskip}
+% \changes{v3.01}{2008/11/03}{added}
+% The vertical distance after the subject is initialized with
+% 2\len{baselineskip}.
% \begin{macrocode}
-\@newplength{subjectaftervskip}
-\@setplength{subjectaftervskip}{2\baselineskip}
+\newplength{subjectaftervskip}
+\setplength{subjectaftervskip}{2\baselineskip}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ltr@len@subjectbeforevskip}
-% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectbeforevskip}}
-% Abstand zusätzlich vor dem Betreff. Dieser Abstand wird aus Gründen der
-% Kompatibilität zu früheren Versionen mit \cs{baselineskip}
-% voreingestellt. Es sei darauf hingewiesen, dass hier bereits ein Abstand
-% beispielsweise vom Titel existieren kann!
+% \end{pseudolength}
+% \begin{pseudolength}{subjectbeforevskip}
+% \changes{v3.01}{2008/11/03}{added}
+% The vertical distance before the subject, if not an absolute position is
+% used. Initial value is \len{baselineskip}.
% \begin{macrocode}
-\@newplength{subjectbeforevskip}
-\@setplength{subjectbeforevskip}{0pt}
+\newplength{subjectbeforevskip}
+\setplength{subjectbeforevskip}{0pt}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{pseudolength}
+% \end{macro}^^A \@subjfield
%
%
-% \subsection{Anweisungen für das Briefpapier}
+% \subsection{Head of the succeeding pages}
%
-% Für das Briefpapier gibt es etwas weniger Anweisungen. Teilweise werden hier
-% auch die Anweisungen für den Briefbogen mit verwendet.
+% The succeeding pages use another kind of note paper without all these large
+% elements for the sender, addressee etc. And there isn't an element like
+% \cs{opening}. So the page style is used.
%
-% \subsubsection{Kopf des Briefpapiers}
-%
-% Der Kopf des Briefpapiers wird wieder ganz normal über den Seitenstil
-% festgelegt. Allerdings kann er entsprechende dem Briefbogen manuell
-% definiert werden.
-%
-% \begin{macro}{\nexthead}
-% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine
-% Variable realisiert}%^^A
-% \begin{macro}{\@nexthead}
-% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine
-% Variable realisiert}%^^A
-% \begin{KOMAvar}{nexthead}
-% \changes{v3.08}{2010/10/28}{Neu}%^^A
-% Die Voreinstellung ist ebenfalls von Optionen abhängig.
+% \begin{variable}{nexthead}
+% \changes{v3.08}{2010/10/28}{added}
+% This is the variable used for the page head of the page style.
+% The initial content depends mostly on \cs{@pageat} but also uses
+% \cs{leftmark} and \cs{rightmark} set by \cs{opening}.
% \begin{macrocode}
-%<*class>
-\newcommand*{\@nexthead}{%
- \ClassWarning{scrlttr2}{%
- Deprecated usage of \string\@nexthead.\MessageBreak
- \string\usekomavar{nexthead} should be used\MessageBreak
- instead of \string\@nexthead
- }%
- \usekomavar{nexthead}%
-}
-%</class>
+%<*body>
\newkomavar{nexthead}
\setkomavar{nexthead}{%
\rlap{\parbox[c]{\textwidth}{\raggedright\strut
@@ -4301,10 +4024,11 @@
\fi\strut}}%
}%
% \end{macrocode}
-% \end{KOMAvar}
-% \end{macro}
-% Die Voreinstellung ist wiederum mit einer einfachen Benutzeranweisung
-% änderbar.
+% \end{variable}
+% \begin{command}{\nexthead}
+% \changes{v3.08}{2010/10/28}{deprecated}
+% \begin{macro}{\@nexthead}
+% \changes{v3.08}{2010/10/28}{deprecated}
% \begin{macrocode}
%<*class>
\newcommand{\nexthead}{%
@@ -4315,34 +4039,29 @@
}
\setkomavar{nexthead}%
}
+\newcommand*{\@nexthead}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\@nexthead.\MessageBreak
+ \string\usekomavar{nexthead} should be used\MessageBreak
+ instead of \string\@nexthead
+ }%
+ \usekomavar{nexthead}%
+}
%</class>
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@nexthead
+% \end{command}^^A \nexthead
%
%
-% \subsubsection{Fuß des Briefpapiers}
+% \subsection{Footer of the succeeding pages}
%
-% \begin{macro}{\nextfoot}
-% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine
-% Variable realisiert}%^^A
-% \begin{macro}{\@nextfoot}
-% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine
-% Variable realisiert}%^^A
-% \begin{KOMAvar}{nextfoot}
-% \changes{v3.08}{2010/10/28}{Neu}%^^A
-% Je nach Optioneneinstellung kann sich die Seitenmarke in der Voreinstellung
-% auch im Fuß befinden.
+% \begin{variable}{nextfoot}
+% \changes{v3.08}{2010/10/28}{added}
+% This is the variable used for the page footer of the page style.
+% The initial content depends mostly on \cs{@pageat}
% \begin{macrocode}
-%<*class>
-\newcommand*{\@nextfoot}{%
- \ClassWarning{scrlttr2}{%
- Deprecated usage of \string\@nextfoot.\MessageBreak
- \string\usekomavar{nextfoot} should be used\MessageBreak
- instead of \string\@nextfoot
- }%
- \usekomavar{nextfoot}%
-}
-%</class>
+%<*body>
\newkomavar{nextfoot}
\setkomavar{nextfoot}{%
\ifnum\@pageat>2
@@ -4353,9 +4072,11 @@
\fi
}
% \end{macrocode}
-% \end{KOMAvar}
-% \end{macro}
-% Auch diese Einstellung ist per Benutzeranweisung leicht zu ändern.
+% \end{variable}
+% \begin{command}{\nextfoot}
+% \changes{v3.08}{2010/10/28}{deprecated}
+% \begin{macro}{\@nextfoot}
+% \changes{v3.08}{2010/10/28}{deprecated}
% \begin{macrocode}
%<*class>
\newcommand{\nextfoot}{%
@@ -4366,34 +4087,41 @@
}
\setkomavar{nextfoot}%
}
+\newcommand*{\@nextfoot}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\@nextfoot.\MessageBreak
+ \string\usekomavar{nextfoot} should be used\MessageBreak
+ instead of \string\@nextfoot
+ }%
+ \usekomavar{nextfoot}%
+}
%</class>
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@nextfoot
+% \end{command}^^A \nextfoot
%
%
-% \subsection{Die Brief-Umgebung}
+% \subsection{The \env{letter} environment}
%
% \begin{environment}{letter}
-% \changes{v2.8q}{2002/01/16}{optionales Argument hinzugefügt}%^^A
-% \changes{v2.8q}{2002/01/16}{Fußnotenzähler wird zurückgesetzt}%^^A
-% \changes{v2.9d}{2002/08/12}{Fußnotenzähler wird korrekt zurückgesetzt}%^^A
-% \changes{v3.17}{2015/03/20}{Ersatz von \cs{pagemark}}%^^A
-% \changes{v3.19}{2015/07/15}{\cs{letterpagestyle} wird verwendet}%^^A
-% \changes{v3.19}{2015/07/15}{Briefe werden referenzierbar nummeriert}%^^A
-% Diese Umgebung ist etwas anders definiert, als normalerweise von
-% \LaTeX gewohnt. Mit ihr können innerhalb eines Dokuments beliebig
-% viele Briefe erzeugt werden. Eine der Abweichungen von der
-% Standardklasse besteht darin, dass als optionales Argument Optionen
-% gesetzt werden können.
+% \changes{v2.8q}{2002/01/16}{optional argument added}
+% \changes{v2.8q}{2002/01/16}{reset counter \cnt{footnote}}
+% \changes{v2.9d}{2002/08/12}{fixed reset of counter \cnt{footnote}}
+% \changes{v3.17}{2015/03/20}{replacement for \cs{pagemark}}
+% \changes{v3.19}{2015/07/15}{using \cs{letterpagestyle}}
+% \changes{v3.19}{2015/07/15}{referenceable numbering of letters}
+% \changes{v3.27}{2019/03/05}{no support for two-columned letters}
+% The is the environment used to define one or even several letters in one
+% document. It has an optional argument to set additional \KOMAScript{}
+% options and a mandatory argument with the addressee.
% \begin{macrocode}
+%<*body>
\newenvironment{letter}[2][]{%
% \end{macrocode}
-% \changes{v3.27}{2019/03/05}{zweipaltige Briefe werden nicht unterstützt}%^^A
-% Falls wir uns im zweispaltigen Modus befinden, ist es jetzt höchste Zeit,
-% eine Warnung auszugeben und auf einspaltig umzuschalten. Zwar wäre es
-% theoretisch noch möglich, alles innerhalb von \cs{opening} in das optionale
-% Argument von \cs{twocolumn} zu packen, aber spätestens beim Schlussgruß
-% scheitert das dann. Also besser gleich gar nicht unterstützen.
+% If we are in two column mode, we have to switch back to one column for the
+% letter. \cs{ifletter@restonecol} as indicator, it at the end we have to
+% switch back to two column mode.
% \begin{macrocode}
\if@twocolumn
%<class> \ClassWarning{\KOMAClassName}{%
@@ -4410,13 +4138,11 @@
\letter@restonecolfalse
\fi
% \end{macrocode}
-% Als erstes wird eine neue Seite begonnen. Dies kann ggf. auch eine neue
-% rechte Seite sein. Dabei wird auch auf den korrekten Seitenstil
-% geachtet. Danach werden alle relevanten Zähler und Strafpunkte
-% zurückgesetzt und der obligatorische Parameter ausgewertet.
-% \changes{v3.19}{2015/07/15}{wegen des Pakets
-% \cs{cleardoubleoddemptypage}}%^^A
-% \changes{v3.27}{2019/03/05}{Briefe verwenden \cs{raggedbottom}}%^^A
+% Then we start a new odd page and change the page style. Afterwards all
+% relevant counters (currently \cnt{page} and \cnt{footnote}) are reset and
+% the \cnt{letter} counter is increased referenceable.
+% \changes{v3.19}{2015/07/15}{using \cs{cleardoubleoddemptypage}}
+% \changes{v3.27}{2019/03/05}{using \cs{raggedbottom}}
% \begin{macrocode}
\cleardoubleoddemptypage
\raggedbottom
@@ -4432,26 +4158,23 @@
\setcounter{footnote}{0}%
\interlinepenalty=200\@processto{#2}%
% \end{macrocode}
-% Dann werden ggf. die übergebenen Optionen ausgeführt.
+% Then it's time for the options.
% \begin{macrocode}
\KOMAoptions{#1}%
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/03/31}{first-page head generation moved}%^^A
-% From \KOMAScript~3.27 \textsf{scrletter} generates the first-page head in
-% the \texttt{letter}-environment instead of the command \cs{opening}.
+% \changes{v3.27}{2019/03/31}{first-page head generation moved}
+% There are plans to generate the page head already here instead of waiting
+% till \cs{opening}. But currently this is not used.
% \begin{macrocode}
%<package&willbe> \@gen@firsthead
% \end{macrocode}
-% \changes{v3.27}{2019/03/22}{\textsf{scrletter} sets the page style}%^^A
-% From \KOMAScript~3.27 \textsf{scrletter} sets page style
-% \texttt{notepaper} for the first page before executing the begin hook.
-% \selectlanguage{ngerman}%^^A
+% \changes{v3.27}{2019/03/22}{plans to set the page style}
+% There are plans to use page style \pstyle{notepaper} for the first page
+% before executing the begin hook.
% \begin{macrocode}
%<package&willbe> \thispagestyle{notepaper}%
% \end{macrocode}
-% Zum Schluss werden die per \cs{AtBeginLetter} angegeben Anweisungen
-% ausgeführt.
+% There are also plans to calculate the height of the reference line here.
% \begin{macrocode}
%<*package&willbe>
\ifdim\useplength{refheight}>\z@
@@ -4466,28 +4189,37 @@
\reserved@a
\fi
%</package&willbe>
+% \end{macrocode}
+% Before executing the hook. The hook can be used, e.g., to reset additional
+% counters.
+% \begin{macrocode}
\@beginletterhook
%<package&willbe>\initial@letter@vskip
}{%
+% \end{macrocode}
+% At the end, stop the letter.
+% \begin{macrocode}
\stopletter
% \end{macrocode}
-% Danach wird noch ein Label gesetzt.
-% \changes{v3.19}{2015/07/15}{ein Label wird gesetzt}%^^A
+% \changes{v3.19}{2015/07/15}{label at the end added}
+% Set a label for the current letter to provide referencing the last
+% page. Then do the final page beak and reset the column mode.
% \begin{macrocode}
\let\@currentlabel\thisletter
\label{\thisletter.lastpage}%
\@@par\pagebreak\@@par%
\ifletter@restonecol\twocolumn\fi
% \end{macrocode}
-% \changes{v3.27}{2019/03/31}{cleanup running head}%^^A
-% The package also cleans up the running head after the end of the letter.
+% \changes{v3.27}{2019/03/31}{cleanup running head}
+% Plan: The package also cleans up the running head after the end of the
+% letter.
% \begin{macrocode}
%<package&willbe> \@mkdouble\@empty
}
% \end{macrocode}
% \begin{macro}{\initial@letter@vskip}
-% \changes{v3.27}{2019/05/03}{new (internal)}%^^A
-% Go to the start posistion of the letter. Usually to jump below the reference
+% \changes{v3.27}{2019/05/03}{added}
+% Go to the start position of the letter. Usually to jump below the reference
% line inside the \texttt{letter} environment.
% \begin{macrocode}
%<*package&willbe>
@@ -4499,45 +4231,50 @@
}
%</package&willbe>
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ifletter@restonecol}
-% \changes{v3.27}{2019/03/05}{neu intern}
-% Dieser Schalter bestimmt, ob am Ende der \texttt{letter}-Umgebung auf
-% zweispaltig zurückgeschaltet werden muss.
+% \end{macro}^^A \inital@letter@vskip
+% \begin{macro}{\letter@restonecolfalse,\letter@restonecoltrue,
+% \ifletter@restonecol}
+% \changes{v3.27}{2019/03/05}{added}
+% Used above to save and restore the column mode.
% \begin{macrocode}
\newif\ifletter@restonecol
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\thisletter}
-% \changes{v3.19}{2015/07/15}{neue Anweisung}%^^A
-% Gibt den Wert des aktuellen Labels wieder. Man benötigt dies beispielsweise,
-% um per |\ref{\thisletter.lastpage}| auf die letzte Seite zugreifen zu
-% können.
+% \begin{command}{\thisletter}
+% \changes{v3.19}{2015/07/15}{added}
+% The base value of the current letter label. This can be used to, e.g.,
+% reference the \texttt{\cs{thisletter}.lastpage} label. It is initialized to
+% a unknown value, as long as we are outside any \env{letter} environment.
% \begin{macrocode}
\newcommand*{\thisletter}{outside.letter.undefined}
% \end{macrocode}
-% \end{macro}%^^A \thisletter
-% \begin{macro}{\letterlastpage}
-% \changes{v3.19}{2015/07/15}{neue Anweisung}%^^A
+% \end{command}^^A \thisletter
+% \begin{command}{\letterlastpage}
+% \changes{v3.19}{2015/07/15}{add}
+% Reference to the page of the \texttt{\cs{thisletter}.lastpage} label.
% \begin{macrocode}
\newcommand*{\letterlastpage}{\pageref{\thisletter.lastpage}}
-% \end{macrocode}%^^A \letterlastpage
-% \end{macro}
-% \begin{macro}{\stopletter}
-% Damit man Material am Ende des Briefes einschleusen kann.
+% \end{macrocode}^^A \letterlastpage
+% \end{command}
+% \begin{command}{\stopletter}
+% This is a kind of end of letter hook. But \cs{AtEndLetter} should be used to
+% add code.
% \begin{macrocode}
\newcommand*{\stopletter}{}
% \end{macrocode}
-% \end{macro}%^^A \stopletter
+% \end{command}^^A \stopletter
% \begin{macro}{\@processto}
-% \changes{v2.9r}{2004/06/16}{robust gegen leeren Empfänger}%^^A
-% \changes{v3.27}{2019/03/24}{extended setting of variables}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% \begin{macro}{\@xproc}
-% Die Adresse, die als Argument der Briefumgebung übergeben wird, muss in Name
-% und Adresse zerlegt werden.
-% \begin{macrocode}
+% \changes{v2.9r}{2004/06/16}{supports empty addressee}
+% \changes{v3.27}{2019/03/24}{extended setting of variables}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% The addressee argument of \env{letter} has to be split into the name and the
+% address.
+% \begin{description}
+% \item[Note:] The specification clearly says, that optional arguments to |\\|
+% are not supported. So we do not adapt that change of \LaTeX{} 2021/10/01.
+% \item[Note:] Here we also have plans to change things.
+% \end{description}
% \begin{macrocode}
\newcommand{\@processto}[1]{%
% \end{macrocode}
@@ -4597,7 +4334,7 @@
\expandafter\@xproc#1\\\@nil
\ifx\reserved@b\@empty\else\expandafter\@xproc#1\@nil\fi
% \end{macrocode}
-% For the package set variable \texttt{addressee}:
+% Plan: Set variable \var{addressee}:
% \begin{macrocode}
%<*package&willbe>
% Fixme: The \cs{protected@edef}s are critical!
@@ -4610,7 +4347,7 @@
}%
}%
% \end{macrocode}
-% If \texttt{toname} is empty, set it:
+% If \var{toname} is empty, set it:
% \begin{macrocode}
\Ifkomavarempty{toname}{%
% Fixme: The \cs{protected@edef}s are critical!
@@ -4618,7 +4355,7 @@
\noexpand\reserved@c{\noexpand\setkomavar{toname}{\reserved@a}}}%
}{\let\reserved@a\reserved@c}%
% \end{macrocode}
-% If \texttt{toaddress} is empty, set it:
+% If \var{toaddress} is empty, set it:
% \begin{macrocode}
\Ifkomavarempty{toaddress}{%
% Fixme: The \cs{protected@edef}s are critical!
@@ -4628,9 +4365,9 @@
}{\reserved@a}%
%</package&willbe>
% \end{macrocode}
-% For the class simply set \texttt{toname} und \texttt{toaddress}:
+% For now simply set \var{toname} and \var{toaddress}:
% \changes{v3.27}{2019/10/28}{don't expand the contents of \cs{reserved@a} and
-% \cs{reserved@b}}%^^A
+% \cs{reserved@b}}
% \begin{macrocode}
%<*class|!willbe>
\edef\reserved@a{%
@@ -4640,90 +4377,95 @@
%</class|!willbe>
}%
}
+% \end{macrocode}
+% \begin{macro}{\@xproc}
+% Macro to split two elements with |\\| separator.
+% \begin{macrocode}
\newcommand*{\@xproc}{}
\long\def\@xproc#1\\#2\@nil{%
% \end{macrocode}
% \changes{v3.27}{2019/03/24}{do not directly set variables but
-% \cs{reserved@a} and \cs{reserved@b}}%^^A
+% \cs{reserved@a} and \cs{reserved@b}}
% \begin{macrocode}
\def\reserved@a{#1}\def\reserved@b{#2}%
}
% \end{macrocode}
-% \end{macro}%^^A \@xproc
-% \end{macro}%^^A \@processto
-% \begin{macro}{\flushbottom}
-% \changes{v2.97c}{2007/05/17}{neue Erweiterung}%^^A
-% Das Verhalten muss auf der letzten Briefseite wieder \cs{raggedbottom}
-% ähneln. Das wird über \cs{stopletter} erreicht.
+% \end{macro}^^A \@xproc
+% \end{macro}^^A \@processto
+% \begin{command}{\flushbottom}
+% \changes{v2.97c}{2007/05/17}{added}
+% The \cs{stopletter} hook is used to make the last page similar to using
+% \cs{raggedbottom}.
+% \begin{description}
+% \item[Note:] It is correct to have this change globally, because it can be
+% used outside a letter, but should be valid for letters in this case too.
+% \end{description}
% \begin{macrocode}
\g@addto@macro\flushbottom{%
- \g@addto@macro\stopletter{\vskip \z@\@plus.0001fil\relax}%
+ \AtEndLetter{\vskip \z@\@plus.0001fil\relax}%
}
% \end{macrocode}
-% \end{macro}%^^A \flushbottom
-% \begin{Counter}{letter}
-% \changes{v3.19}{2015/07/15}{neuer Zähler}%^^A
-% Die Briefe werden durchnummeriert.
+% \end{command}^^A \flushbottom
+% \begin{counter}{letter}
+% \changes{v3.19}{2015/07/15}{added}
+% The counter used to number the letters and make them reference-able.
% \begin{macrocode}
\newcounter{letter}
% \end{macrocode}
-% \end{Counter}
-% \end{environment}%^^A letter
+% \end{counter}
+% \end{environment}^^A letter
%
%
-% \begin{macro}{\letterpagestyle}
-% \changes{v3.19}{2015/07/15}{neue Anweisung}%^^A
-% Analog zu \cs{titlepagestyle}, \cs{indexpagestyle} etc. gibt es jetzt auch
-% ein \cs{letterpagestyle}. In der Voreinstellung ist dieser bei der Klasse
-% leer. Dagegen wird beim Paket \texttt{plain.letter} verwendet. Durch den
-% Unterschied wird faktisch die Kompatibilität des Pakets mit der Klasse
-% jedoch verbessert!
+% \begin{command}{\letterpagestyle}
+% \changes{v3.19}{2015/07/15}{added}
+% Similar to \cs{tilepagestyle}, \cs{indexpagestyle} etc. we have a
+% \cs{letterpagestyle} for the page style of the letter environment. The
+% initial value of the class and the package are different. For the class we
+% use an empty value, which means not change, because it already uses an
+% adapted page style. But the package does not change the usual page styles of
+% the classes, and therefore has a new default \pstyle{plain.letter} for
+% letters.
% \begin{macrocode}
\newcommand*{\letterpagestyle}{%
%<package> plain.letter%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \begin{macro}{\AtBeginLetter}
-% \changes{v2.8n}{2001/09/08}{Neu}%^^A
+% \begin{command}{\AtBeginLetter}
+% \changes{v2.8n}{2001/09/08}{added}
% \begin{macro}{\@beginletterhook}
-% \changes{v2.8n}{2001/09/08}{Neu}%^^A
-% Wie oben zu sehen, wurde in den Anfang der Briefumgebung ein Haken
-% eingefügt. Dieser wird auch tatsächlich intern genutzt. Er funktioniert
-% prinzipiell wie der |\AtBeginDocument|-Haken. Zunächst macht der Haken rein
-% gar nichts.
+% \changes{v2.8n}{2001/09/08}{added}
+% This is the hook at the beginning of a letter. Initially it is empty.
% \begin{macrocode}
\newcommand{\AtBeginLetter}{\g@addto@macro\@beginletterhook}
\newcommand{\@beginletterhook}{}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\AtEndLetter}
-% \changes{v2.95}{2006/03/22}{Neu}%^^A
-% Analog zu |\AtBeginLetter| gibt es auch ein |\AtEndLetter|. Als Haken wird
-% hierbei |\stopletter| verwendet.
+% \begin{command}{\AtEndLetter}
+% \changes{v2.95}{2006/03/22}{added}
+% At the end currently a user command \cs{stopletter} is used to represent the
+% hook. An internal macro would be better but incompatible.
% \begin{macrocode}
\newcommand{\AtEndLetter}{\g@addto@macro\stopletter}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\stopbreaks}
-% \begin{macro}{\startbreaks}
+% \begin{command}{\stopbreaks}
+% \begin{command}{\startbreaks}
% \changes{v3.33}{2021/03/05}{\cs{relax} added}
% \begin{macro}{\@nobreakvspace}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \changes{v3.33}{2021/03/05}{robust definition}
% \begin{macro}{\@nobreakvspacex}
% \begin{macro}{\@nobreakcr}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \changes{v3.33}{2021/03/05}{simplified}
-% Innerhalb von Briefen wird der Umbruch etwas anders gehandhabt.
-% Dadurch soll der Brieftext besser positioniert werden.
+% Inside letters we have a slightly different page break. This should improve
+% placement of letter texts (but I doubt, that it really does).
% \begin{macrocode}
\newcommand*{\stopbreaks}{\interlinepenalty \@M
\def\par{\@@par\nobreak}\let\\=\@nobreakcr
@@ -4739,22 +4481,23 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
-% \begin{macro}{\opening}
-% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.8q}{2002/03/25}{\cs{@PapersizeWarning}}%^^A
-% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes}
-% einstellen}%^^A
-% \changes{v3.27}{2019/03/27}{Only \textsf{scrlttr2} uses \cs{@addrfield},
-% \cs{@locfield} and \cs{@foldmarks}}%^^A
-% \changes{v3.27}{2019/03/27}{Only \textsf{scrlttr2} sets pagestyle}%^^A
-% \changes{v3.27}{2019/03/31}{Only \textsf{scrlttr2} generates the first-page
-% head here}%^^A
-% Denn beim Eröffnungsgruß mit |\opening| wird neben sämtlichen Feldern auch
-% der Titel und der Betreff gesetzt.
+% \begin{command}{\opening}
+% \changes{v2.8n}{2001/09/08}{re-implemented}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/03/25}{\cs{@PapersizeWarning}}
+% \changes{v2.95}{2003/03/23}{using \cs{setparsizes}}
+% \changes{v3.27}{2019/03/27}{only \cls*{scrlttr2} uses \cs{@addrfield},
+% \cs{@locfield} and \cs{@foldmarks}}
+% \changes{v3.27}{2019/03/27}{only \cls*{scrlttr2} sets pagestyle}
+% \changes{v3.27}{2019/03/31}{only \cls*{scrlttr2} generates the first-page
+% head here}
+% \begin{description}
+% \item[ToDO:] There are plans to not generate the notepaper head, foot and
+% several other elements here but in \env{letter}.
+% \end{description}
% \begin{macrocode}
\newcommand{\opening}[1]{%
\@PapersizeWarning
@@ -4776,71 +4519,54 @@
\@afterindentfalse\@afterheading
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \begin{macro}{\closing}
-% \changes{v2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf \cs{empty}
-% getestet sondern direkt eingesetzt}
-% \changes{v2.3b}{1996/01/14}{Abstand zwischen Schlussgruß und Signatur
-% erhöht}%^^A
-% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlussgruß und Signatur
-% variabel}%^^A
+% \begin{command}{\closing}
+% \changes{v2.2b}{1995/02/16}{\cs{fromsig} used directly}
+% \changes{v2.3b}{1996/01/14}{distance between closing text and signature
+% increased}
+% \changes{v2.5d}{2000/06/10}{distance between closing text and signature
+% variable}
% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
-% \changes{v2.8q}{2002/02/05}{nicht mehr \cs{long}}
-% \changes{v2.8q}{2002/02/05}{darf \texttt{\cmd{\\}[\dots]} enthalten}
-% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes}%^^A
-% einstellen}
-% Außer dem Eröffnungsgruß mit |\opening| gibt es natürlich auch einen
-% Schlussgruß mit |\closing|, bei dem außerdem die Unterschrift u.\,ä. gesetzt
-% wird.
+% \changes{v2.8q}{2002/02/05}{not \cs{long}}
+% \changes{v2.8q}{2002/02/05}{supports \texttt{\cmd{\\}[\dots]}}
+% \changes{v2.9r}{2004/01/28}{length limited to \cs{hsize}}
+% \changes{v2.9r}{2004/01/28}{support for empty closing text}
+% \changes{v2.95}{2003/03/23}{using \cs{setparsizes}}
+% \changes{v3.17}{2015/02/19}{re-implemented to be more mistake tolerant}
+% \changes{v3.17}{2015/02/20}{\cs{}\cs{} replaced by \cs{tabularnewline}}
+% \changes{v3.17}{2015/02/20}{several \cs{strut} added}
+% \changes{v3.20}{2015/10/08}{line break after the closing text only in
+% horizontal mode}
+% \changes{v3.25}{2017/11/15}{\cs{unskip}\cs{strut} replaced by
+% \cs{scr@endstrut}}
+% Sets not only the closing text, that is given as argument, but also the
+% signature.
% \begin{macro}{\presig@skip}
-% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen
-% Schlussgruß und Signatur beinhaltet}%^^A
-% \changes{v2.8q}{2001/10/09}{Ersetzt durch Pseudo-Länge sigbeforevskip}%^^A
-% \end{macro}
-% \begin{macro}{\setpresigskip}
-% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen
-% Schlussgruß und Signatur setzt}%^^A
-% \changes{v2.8q}{2001/10/09}{Mit Hilfe der neuen Pseudo-Längen definiert}%^^A
-% Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen Schlussgruß
-% und Signatur. Da der Wert über ein Benutzerinterface per |\setpresigskip|
-% gesetzt wird, muss hier kein kostbares Längenregister (skip oder dim)
-% verschwendet werden, sondern ein Makro reicht aus. In |\setpresigskip| wird
-% allerdings noch sichergestellt, dass die Fehlermeldung bei falschem
-% Parameter möglichst nicht erst bei Verwendung auftritt.
+% \changes{v2.5d}{2000/06/10}{added}
+% \changes{v2.8q}{2001/10/09}{replaced by \plen{sigbeforevskip}}
+% \end{macro}
+% \begin{command}{\setpresigskip}
+% \changes{v2.5d}{2000/06/10}{added}
+% \changes{v2.8q}{2001/10/09}{using \plen{asigbeforesvskip}}
+% \changes{v2.8q}{2001/10/09}{only for \file{KOMAold.lco}}
+% \begin{description}
+% \item[ToDo:] This has to be moved to
+% \file{scrkernel-letterclassoptions.dtx}!
+% \end{description}
% \begin{macrocode}
+%</body>
%</letter>
-%<lco&KOMAold>\def\setpresigskip{\@setplength{sigbeforevskip}}
+%<lco&KOMAold&body>\def\setpresigskip{\setplength{sigbeforevskip}}
%<*letter>
+%<*body>
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@xtrimtempa}
-% \changes{v2.8q}{2002/02/05}{Neu (intern)}%^^A
-% \changes{v3.17}{2014/02/19}{entfernt}%^^A
-% \begin{macro}{\@@xtrimtempa}
-% \changes{v2.8q}{2002/02/05}{Neu (intern)}%^^A
-% \changes{v3.17}{2014/02/19}{entfernt}%^^A
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\@tempdimaismaxwidthof}
-% \changes{v2.8q}{2002/02/05}{Neu (intern)}%^^A
-% \changes{v3.17}{2014/02/19}{entfernt}%^^A
-% \end{macro}
-% Jetzt endlich zum eigentlichen Befehl.
-% \changes{v2.9r}{2004/01/28}{Längenbegrenzung auf \cs{hsize}}%^^A
-% \changes{v2.9r}{2004/01/28}{das Argument darf leer sein}%^^A
-% \changes{v3.17}{2015/02/19}{aus Rücksicht auf Leute, die ohne Rücksicht
-% auf die Anleitung einfach machen, was ihnen gerade einfällt, neu
-% implementiert}%^^A
-% \changes{v3.17}{2015/02/20}{Weil manche Leute es unbedingt auf die Spitze
-% treiben wollen, \cs{}\cs{} durch \cs{tabularnewline} ersetzt.}%^^A
-% \changes{v3.17}{2015/02/20}{Weil manche Leute es unbedingt auf die Spitze
-% treiben wollen, mehr \cs{strut} eingefügt.}%^^A
-% \changes{v3.20}{2015/10/08}{Umbruch nach dem Gruß nur, wenn wir uns im
-% horizontalen Modus befinden}%^^A
-% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
-% \cs{unskip}\cs{strut}}%^^A
+% \end{command}^^A \setpresigskip
+% \begin{macro}{\@@xtrimtempa,\@xtrimtempa,\@tempdimaismaxwidthof}
+% \changes{v2.8q}{2002/02/05}{added}
+% \changes{v3.17}{2014/02/19}{removed}
+% \end{macro}^^A \@@xtrimtempa,\@xtrimtempa,\@tempdimaismaxwidthof
% \begin{macrocode}
\newcommand*{\closing}[1]{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative\nobreak\par
@@ -4864,32 +4590,32 @@
\nobreak\vskip\baselineskip
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ps}
-% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet}%^^A
-% Ebenfalls möglich ist ein Postscriptum. Dieser Befehl erwartet das
-% Postscriptum nicht als Argument, sondern schaltet zum Nachtext um.
+% \begin{command}{\ps}
+% \changes{v2.8n}{2001/09/08}{re-implemented}
+% Switch to printing of \emph{postscriptum}.
% \begin{macrocode}
\newcommand\ps{\par%
- \ifdim\parskip=\z@%
- \vskip\baselineskip%
- \fi\startbreaks\noindent\ignorespaces%
+ \ifdim\parskip=\z@
+ \vskip\baselineskip
+ \fi\startbreaks\noindent\ignorespaces
}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\cc}
-% Darüber hinaus gibt es noch einen Verteiler. Dieser wird sauber formatiert.
-% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt}
-% \changes{v2.8n}{2001/09/08}{Komplett "uberarbeitet}%^^A
-% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst}%^^A
-% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil}
-% geändert}%^^A
-% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus
-% 1fil} geändert}%^^A
-% \changes{v3.22}{2016/12/15}{fehlender Stern bei \cs{ifkomavaremptry}
-% ergänzt}%^^A
+% \end{command}
+%
+% \begin{command}{\cc}
+% \changes{v2.6}{2001/01/03}{\cs{def} replaced by \cs{newcommand*}}
+% \changes{v2.8n}{2001/09/08}{re-implemented}
+% \changes{v2.9o}{2003/04/22}{\len{parfillskip} changed}
+% \changes{v2.9q}{2004/04/26}{\len{parfillskip} changed to \texttt{1em plus
+% 1fil}}
+% \changes{v2.9r}{2004/05/25}{\len{parfillskip} changed to \texttt{\cs{z@} plus
+% 1fil}}
+% \changes{v3.22}{2016/12/15}{missing star at \cs{ifkomavaremptry*} added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by
+% \cs{Ifkomavarempty}}
+% Switch to the printing of the \emph{copy circulated}.
% \begin{macrocode}
\newcommand*{\cc}[1]{\par%
\ifdim\parskip=\z@%
@@ -4906,20 +4632,20 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\encl}
-% Auch Anlagen werden ordentlich gesetzt.
-% \changes{v2.4a}{1997/06/06}{der Doppelpunkt bei den Anlagen wird nur noch
-% gesetzt, wenn \cs{enclname} nicht leer ist}
-% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt}
-% \changes{v2.8n}{2001/09/08}{Komplett überarbeiten}%^^A
-% \changes{v2.8q}{2002/01/31}{Fehlendes \% ergänzt}%^^A
-% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst}
-% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil}
-% geändert}
-% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus
-% 1fil} geändert}
+% \end{command}
+%
+% \begin{command}{\encl}
+% \changes{v2.4a}{1997/06/06}{don't print a colon for empty enclosure}
+% \changes{v2.6}{2001/01/03}{\cs{def} replaced by \cs{newcommand*}}
+% \changes{v2.8n}{2001/09/08}{re-implemented}
+% \changes{v2.8q}{2002/01/31}{missing \% added}
+% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} changed}
+% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} changed to \texttt{1em plus
+% 1fil}}
+% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} changed to \texttt{\cs{z@} plus
+% 1fil}}
+% The enclosures are given as argument of \cs{encl}. They are printed hanging,
+% if the output name of \var{enclseparator} is not empty.
% \begin{macrocode}
\newcommand*{\encl}[1]{\par%
\ifdim\parskip=\z@%
@@ -4935,48 +4661,48 @@
\setlength{\parfillskip}{\z@ \@plus 1fil}\par
\endgroup
}
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Briefspezifische Feld-Variablen}
+% \subsection{Letter specific variables}
%
-% \begin{KOMAvar}{signature}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{place}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{location}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{backaddress}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
+% \begin{variable}{place,location,specialmail,title,fromlogo}
+% \changes{v2.8q}{2002/01/28}{added}
+% \begin{variable}{fromzipcode,PPcode,PPdatamatrix}
+% \changes{v3.03}{2009/03/04}{added}
+% \begin{variable}{addresseeimage}
+% \changes{v3.03}{2009/03/04}{added}
+% \changes{v3.03b}{2009/06/30}{typofix}
+% \begin{variable}{signature}
+% \changes{v2.8q}{2002/01/16}{added}
+% \begin{variable}{backaddress}
+% \changes{v2.8q}{2002/01/16}{added}
% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
-% \begin{KOMAvar}{specialmail}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{title}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{fromlogo}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% \begin{KOMAvar}{fromzipcode}
-% \changes{v3.03}{2009/03/04}{Neu}%^^A
-% \begin{KOMAvar}{PPcode}
-% \changes{v3.03}{2009/03/04}{Neu}%^^A
-% \begin{KOMAvar}{PPdatamatrix}
-% \changes{v3.03}{2009/03/04}{Neu}%^^A
-% \begin{KOMAvar}{addresseeimage}
-% \changes{v3.03}{2009/03/04}{Neu}%^^A
-% \changes{v3.03b}{2009/06/30}{Schreibfehler korrigiert}%^^A
-% Zunächst besitzt die Briefklasse einige Variablen, die von Haus aus nicht
-% über einen Ausgabenamen verfügen, weil sie üblicherweise ohne Ausgabe einer
-% Bezeichung verwendet werden. Diese Variablen haben teilweise auch keinen
-% vordefinierten Inhalt. Der Inhalt muss erst vom Anwender gesetzt
-% werden. Teilweise gibt es aber auch einen vordefinierten Inhalt, der von
-% anderen Variablen abhängt.
+% ersetzt}
+% There are several variables without output name. For most of them the user
+% has to define a value, if it should be used in the notepaper. Only
+% \var{backaddress} and \var{signature} have a default, that depends on the
+% values of other variables. Unfortunately these defaults are not expandable,
+% because of the not expandable \cs{usekomavar}.
+% \begin{description}
+% \item[ToDo:] We should define a expandable \cs{usekomavar} alternative
+% without optional star and optional argument.
+% \end{description}
% \begin{macrocode}
-\newkomavar{signature}
-\setkomavar{signature}{\usekomavar{fromname}}
+%<*body>
\newkomavar{place}
\newkomavar{location}
+\newkomavar{specialmail}
+\newkomavar{title}
+\newkomavar{fromlogo}
+\newkomavar{fromzipcode}
+\newkomavar{PPcode}
+\newkomavar{PPdatamatrix}
+\newkomavar{addresseeimage}
+\newkomavar{signature}
+\setkomavar{signature}{\usekomavar{fromname}}
\newkomavar{backaddress}
\setkomavar{backaddress}{%
\Ifkomavarempty{fromname}{}{%
@@ -4985,46 +4711,24 @@
\Ifkomavarempty{fromaddress}{}{%
\strut\ignorespaces\usekomavar{fromaddress}}%
}
-\newkomavar{specialmail}
-\newkomavar{title}
-\newkomavar{fromlogo}
-\newkomavar{fromzipcode}
-\newkomavar{PPcode}
-\newkomavar{PPdatamatrix}
-\newkomavar{addresseeimage}
-%</letter>
%</body>
% \end{macrocode}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-%
+% \end{variable}^^A backaddress
+% \end{variable}^^A signature
+% \end{variable}^^A addresseeimage
+% \end{variable}^^A fromzipcode,PPcode,PPdatamatrix
+% \end{variable}^^A place,location,specialmail,title,fromlogo
+%
% \begin{option}{symbolicnames}
-% \changes{v3.12}{2013/05/13}{neue Option}%^^A
-% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\if@scrsymbols}
-% \changes{v3.12}{2013/05/13}{neu (intern)}%^^A
-% \begin{macro}{\@scrsymbolstrue}
-% \changes{v3.12}{2013/05/13}{neu (intern)}%^^A
-% \begin{macro}{\@scrsymbolsfalse}
-% \changes{v3.12}{2013/05/13}{neu (intern)}%^^A
-% \changes{v3.27}{2019/03/21}{neue Werte}%^^A
-% Ãœber diese Option kann eingestellt werden, dass an Stelle von
-% sprachabhängigen Bezeichnern für einige Variablen Symbole verwendet
-% werden. Statt nur boolsche Werte, sind ab \KOMAScript~3.27 auch die Werte
-% \texttt{marvosym} oder \texttt{fontawesome} möglich. \texttt{marvosym}
-% entspricht dabei dem bisherigen \texttt{true}.
-% \begin{macrocode}
-%<*option&letter>
+% \changes{v3.12}{2013/05/13}{added}
+% \changes{v3.17}{2015/03/16}{using internal value storage}
+% \changes{v3.27}{2019/03/21}{new values \opt{\quotechar=fontawesome} and
+% \opt{\quotechar=marvosym} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{macro}{\@scrsymbolsfalse,\@scrsymbolstrue,\if@scrsymbols}
+% For some of the variable the print name can be a symbol instead of a name.
+% \begin{macrocode}
+%<*option>
\newif\if@scrsymbols
\KOMA@key{symbolicnames}[true]{%
\KOMA@set@ifkey{symbolicnames}{@scrsymbols}{#1}%
@@ -5090,15 +4794,12 @@
\endgroup
\else
% \end{macrocode}
-% \changes{v3.20}{2016/04/01}{Name der Klasse oder des Pakets ist für die
-% Ladeverzögerung von \textsf{marvosym} egal}%^^A
-% \changes{v3.20}{2016/04/01}{Ladeverzögerung für das Font-Paket
-% nur, wenn erforderlich und möglich}%^^A
-% In der Dokumentpräambel kann das Paket \textsf{marvosym} selbst geladen
-% werden. Allerdings funktioniert das nicht, solange wir im Optionen-Abschnitt
-% sind. Also muss es ggf. verzögert werden. Wie lange es zu verzögern ist,
-% hängt davon ab, ob wir uns in einer Klasse, einem Paket oder sonst einer
-% Datei mit Optionen-Abschnitt befinden.
+% \changes{v3.20}{2016/04/01}{need only extension for kind of loading delay}
+% \changes{v3.20}{2016/04/01}{loading delay only if needed and available}
+% In the document preamble we can load \pkg{macrosym} or \pkg{fontawesome},
+% but not while the options not has been processed. So in this case we have to
+% delay it using \cs{AtEndOfClass} resp. \cs{AtEndOfPackage}. With an unknown
+% extension we use \cs{AtBeginDocument}.
% \begin{macrocode}
\ifx\@fileswith@pti@ns\@badrequireerror
\Ifstr{\@currext}{\@clsextension}{%
@@ -5123,25 +4824,24 @@
%<package> scrletter.\scr@pkgextension
}{symbolicnames}{false}%
% \end{macrocode}
-% \selectlanguage{english}
% \begin{macro}{\scr@symbols@font}
-% \changes{v3.27}{2019/03/21}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/21}{added}
% The name of the font packages used for the symbols if symbols instead of
% names are activated.
% \begin{macro}{\scr@symbol@phone}
-% \changes{v3.27}{2019/03/21}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/21}{added}
% The phone symbole.
% \begin{macro}{\scr@symbol@fax}
-% \changes{v3.27}{2019/03/21}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/21}{added}
% The fax symbole.
% \begin{macro}{\scr@symbol@email}
-% \changes{v3.27}{2019/03/21}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/21}{added}
% The e-mail symbol.
% \begin{macro}{\scr@symbol@mobilephone}
-% \changes{v3.27}{2019/03/21}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/21}{added}
% The mobile-phone symbol.
% \begin{macro}{\scr@symbol@www}
-% \changes{v3.27}{2019/03/21}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/21}{added}
% The world-wide-web symbol.
% \begin{macrocode}
\newcommand*{\scr@symbols@font}{}
@@ -5150,57 +4850,31 @@
\newcommand*{\scr@symbol@email}{\undefined}
\newcommand*{\scr@symbol@mobilephone}{\undefined}
\newcommand*{\scr@symbol@www}{\undefined}
-%</option&letter>
+%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \selectlanguage{ngerman}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
-%
-% \begin{KOMAvar}{placeseparator}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{subjectseparator}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{ccseparator}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{enclseparator}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{backaddressseparator}
-% \changes{v2.8q}{2002/01/22}{Neu}%^^A
-% \begin{KOMAvar}{phoneseparator}
-% \changes{v2.8q}{2002/03/25}{Neu}%^^A
-% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}%^^A
-% \changes{v3.27}{2019/03/21}{Symbole sind indirekt gespeichert}%^^A
-% \begin{KOMAvar}{faxseparator}
-% \changes{v2.8q}{2002/03/25}{Neu}%^^A
-% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}%^^A
-% \changes{v3.27}{2019/03/21}{Symbole sind indirekt gespeichert}%^^A
-% \begin{KOMAvar}{emailseparator}
-% \changes{v2.8q}{2002/03/25}{Neu}%^^A
-% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}%^^A
-% \changes{v3.27}{2019/03/21}{Symbole sind indirekt gespeichert}%^^A
-% \begin{KOMAvar}{urlseparator}
-% \changes{v2.8q}{2002/03/25}{Neu}%^^A
-% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}%^^A
-% \changes{v3.27}{2019/03/21}{Symbole sind indirekt gespeichert}%^^A
-% \begin{KOMAvar}{mobilephoneseparator}
-% \changes{v3.12}{2013/05/29}{Neu}%^^A
-% \changes{v3.27}{2019/03/21}{Symbole sind indirekt gespeichert}%^^A
-% \begin{KOMAvar}{zipcodeseparator}
-% \changes{v3.03}{2009/03/04}{Neu}%^^A
-% Daneben gibt es einige Trennzeichen. Diese haben ggf. als Ausgabenamen das
-% Feld, für das sie als Trennzeichen dienen. Die Trennzeichen sind
-% vordefiniert.
+% \end{macro}^^A \scr@symbol@www
+% \end{macro}^^A \scr@symbol@mobilephone
+% \end{macro}^^A \scr@symbol@email
+% \end{macro}^^A \scr@symbol@fax
+% \end{macro}^^A \scr@symbol@phone
+% \end{macro}^^A \scr@symbols@font
+% \end{macro}^^A \if@scrsymbols
+% \end{option}^^A symbolicnames
+%
+% \begin{variable}{placeseparator,subjectseparator,ccseparator,enclseparator,
+% backaddressseparator}
+% \changes{v2.8q}{2002/01/22}{added}
+% \begin{variable}{phoneseparator,faxseparator,emailseparator,urlseparator,
+% mobilephoneseparator}
+% \changes{v2.8q}{2002/03/25}{added}
+% \changes{v3.12}{2013/05/29}{support for option \opt{symbolicnames}}
+% \changes{v3.27}{2019/03/21}{indirect saving of symbols}
+% \begin{variable}{zipcodeseparator}
+% \changes{v3.03}{2009/03/04}{added}
+% We also have variables with (predefined) output names and predefined
+% values. These are the separator variables.
% \begin{macrocode}
%<*body>
-%<*letter>
\newkomavar[\usekomavar{place}]{placeseparator}
\setkomavar{placeseparator}{,\nobreakspace}
\newkomavar[\subjectname]{subjectseparator}
@@ -5226,26 +4900,17 @@
\newkomavar{zipcodeseparator}
\setkomavar{zipcodeseparator}{\,--\,}
% \end{macrocode}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-%
-% \selectlanguage{english}%^^A
-% \begin{KOMAvar}{addressee}
-% \changes{v3.27}{2019/03/24}{new variable}%^^A
+% \end{variable}^^A zipcodeseparator
+% \end{variable}^^A phoneseparator … mobilephoneseparator
+% \end{variable}^^A placeseparator … backaddressseparator
+%
+% \begin{variable}{addressee}
+% \changes{v3.27}{2019/03/24}{new variable}
% The package needs a variable for the addressee (used for the address field).
-% \begin{KOMAvar}{togivenname}
-% \changes{v3.27}{2019/03/24}{new variable}%^^A
-% \begin{KOMAvar}{tofamilyname}
-% \changes{v3.27}{2019/03/24}{new variable}%^^A
+% \begin{variable}{togivenname}
+% \changes{v3.27}{2019/03/24}{new variable}
+% \begin{variable}{tofamilyname}
+% \changes{v3.27}{2019/03/24}{new variable}
% The package allows to build \texttt{toname} by \texttt{togivenname} and
% \texttt{tofamilyname}.
% \begin{macrocode}
@@ -5255,62 +4920,30 @@
\newkomavar{tofamilyname}
%</package&willbe>
% \end{macrocode}
-% \end{KOMAvar}%^^A tofamilyname
-% \end{KOMAvar}%^^A togivenname
-% \end{KOMAvar}%^^A addressee
-% \selectlanguage{ngerman}%^^A
-%
-% \begin{KOMAvar}{fromname}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{fromaddress}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{fromemail}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% \begin{KOMAvar}{fromurl}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% \begin{KOMAvar}{frombank}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% \begin{KOMAvar}{toname}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{toaddress}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{fromphone}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{frommobilephone}
-% \changes{v3.12}{2013/05/29}{Neu}%^^A
-% \begin{KOMAvar}{fromfax}
-% \changes{v2.8q}{2002/01/28}{Neu}%^^A
-% \begin{KOMAvar}{yourmail}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{yourref}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{myref}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{customer}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{invoice}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{subject}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{KOMAvar}{date}
-% \changes{v2.8q}{2002/01/16}{Neu}%^^A
-% \begin{macro}{\date}
-% \changes{v3.17}{2015/03/05}{das Makro gibt eine Warnung aus}%^^A
+% \end{variable}^^A tofamilyname
+% \end{variable}^^A togivenname
+% \end{variable}^^A addressee
+%
+% \begin{variable}{fromname,fromaddress,fromemail,fromurl,frombank,
+% toname,toaddress,
+% fromphone,fromfax,
+% yourmail,yourref,
+% myref,customer,invoice,subject,date}
+% \changes{v2.8q}{2002/01/16}{added}
+% \begin{variable}{frommobilephone}
+% \changes{v3.12}{2013/05/29}{added}
+% \begin{command}{\date}
+% \changes{v3.17}{2015/03/05}{deprecated}
% \begin{macro}{\scr@saved@date}
-% \changes{v3.17}{2015/03/05}{Neu (intern)}%^^A
-% Desweiteren gibt es einige Variable, die auch einen Ausgabenamen haben, weil
-% dieser üblicherweise vorangestellt wird. Eine Besonderheit stellt dabei
-% \texttt{subject} dar. Der Ausgabename beinhaltet dabei nämlich auch die
-% Trennzeichen, die hinter dem Namen üblicherweise stehen. Diese sind wiederum
-% ein Variable, deren Name der Ausgabename des Feldes ist. Will man also nur
-% den Namen aber nicht die Trennzeichen ändern, so ändert man statt dem Namen
-% von \texttt{subject} den Namen von \texttt{subjectseparator}.
-%
-% Ähnlich ist es mit \texttt{toaddress} und \texttt{fromaddress}. Dort ist der
-% Wert von \texttt{toname} bzw. \texttt{fromname} der Ausgabename. Bei
-% \texttt{toaddress} und \texttt{fromaddress} wird davon jedoch intern kein
-% Gebrauch gemacht. Die Variable \texttt{date} wird bereits so vordefiniert,
-% dass auch weiterhin \cs{date} funktioniert.
+% \changes{v3.17}{2015/03/05}{added}
+% Several variables with output name but without default value. Somehow
+% special is \var{subject}, because the output name also contains the
+% separator. To change the name only but not the separator change the output
+% name of \var{subjectseparator}. \var{toaddress} and \var{fromaddress} are
+% also special. Their output names are the values of \var{toname}
+% resp. \var{fromname}. But this is not used initially. The initial value of
+% \var{date} is \cs{@date}. So \cs{date} can still be used to change it, but
+% this is not recommended.
% \begin{macrocode}
\newkomavar[\headfromname]{fromname}
\newkomavar[\usekomavar{fromname}]{fromaddress}
@@ -5352,41 +4985,28 @@
}%
\scr@saved@date{#1}%
}
+%</body>
% \end{macrocode}
-% \end{macro}%^^A \scr@saved@date
-% \end{macro}%^^A \date
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-% \end{KOMAvar}
-%
-% \iffalse
+% \end{macro}^^A \scr@saved@date
+% \end{command}^^A \date
+% \end{variable}^^A frommobilephone
+% \end{variable}^^A fromname … date
+%
+%
+% \begin{macrocode}
%</letter>
-% \fi
+% \end{macrocode}
%
-% \iffalse
-%</body>
-% \fi
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-notepaper.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx b/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
index 0c084715cb..63d02d9763 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{683}
% \iffalse meta-comment
% ======================================================================
% scrkernel-pagestyles.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-pagestyles.dtx
-% Copyright (c) Markus Kohm, 2002-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-pagestyles.dtx 3393 2019-11-19 10:33:44Z kohm $
+%%% From File: $Id: scrkernel-pagestyles.dtx 3744 2022-03-05 16:30:02Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-11-19 11:33:44 +0100 (Tue, 19 Nov 2019) $
+ \filedate$Date: 2022-03-05 17:30:02 +0100 (Sa, 05. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3393 $
+ \filerevision$Revision: 3744 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-pagestyles.dtx}%
@@ -74,456 +36,167 @@
(page styles)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-pagestyles.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}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-pagestyles.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/06/25}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/03/05}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/05}{whole implementation documentation in English}
%
-% \changes{v2.95}{2002/06/25}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-pagestyles.dtx}
+% \title{The Code of the Default Page Styles of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-pagestyles.dtx} provides the default page styles of the
+% \KOMAScript{} classes. As already told decades ago, there are plans to
+% remove this code and to require the \KOMAScript{} page style
+% package---namely \pkg*{scrlayer-scrpage}---instead.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Seitenstil}
+% \section{User Manual}
%
-% Neben den Definitionen zum Seitenstil in dieser Datei gibt es auch
-% noch das Paket \textsf{scrpage2} (siehe \texttt{scrpage.dtx}).
-% Es\marginline{Geplant!} ist deshalb davon auszugehen, dass zukünftig die
-% Definitionen hier komplett durch \textsf{scrpage2} ersetzt werden und
-% \textsf{scrpage2} von den \KOMAScript-Klassen direkt geladen wird.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \subsection{Optionen für die Trennlinien in Kopf und Fuß}
+% \section{Implementation of the Page Styles of the \KOMAScript{} Classes}
%
-% \iffalse
-%<*option>
-% \fi
-%
-% \iffalse
+% \begin{macrocode}
%<*class>
-% \fi
+% \end{macrocode}
+%
+% \subsection{Options for the separation lines in page head and footer}
%
% \begin{option}{headsepline}
-% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei
-% \cs{PassOptionsToPackage} vertauscht}%^^A
-% \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht
-% mehr an \textsf{typearea} geschickt}%^^A
-% \changes{v2.98c}{2008/03/26}{Option \texttt{headinclude} wird gesetzt,
-% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.12}{2013/03/05}{wenn \textsf{typearea} noch gar nicht geladen
-% ist, Option an dieses Paket schicken}%^^A
-% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}%^^A
-% \changes{v3.18a}{2015/07/08}{BugFix: Argument bei
-% \cs{PassOptionsToPackage} erneut vertauscht}%^^A
-% \changes{v3.20}{2015/12/12}{Optionenweiterleitung an \textsf{typearea}
-% entfernt}%^^A
-% \begin{option}{headnosepline}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Der Kopfteil kann mit einer Linie vom Textbereich getrennt werden.
-% \begin{macro}{\if@hsl}
-% \begin{macro}{\@hsltrue}
-% \begin{macro}{\@hslfalse}
-% Die Entscheidung wird in einem Schalter gespeichert.
+% \changes{v2.95c}{2006/08/11}{arguments of \cs{PassOptonsToPackage} fixed}
+% \changes{v2.97c}{2007/04/19}{don't pass \opt{headinclude} to \pkg*{typearea}}
+% \changes{v2.98c}{2008/03/26}{set \opt{headinclude}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/03/05}{if \pkg*{typearea} has not been loaded, pass
+% option to the package}
+% \changes{v3.17}{2015/03/10}{using value storage}
+% \changes{v3.18a}{2015/07/08}{arguments of \cs{PassOptionsToPackage} fixed
+% again}
+% \changes{v3.20}{2015/12/12}{don't pass option to \pkg*{typearea}}
+% \begin{macro}{\@hslfalse,\@hsltrue,\if@hsl}
+% Optional separation line between page head and text area---in other words:
+% below the page head.
% \begin{macrocode}
+%<*option>
\KOMA@ifkey{headsepline}{@hsl}%
\KOMA@kav@add{.\KOMAClassFileName}{headsepline}{false}
+% \end{macrocode}
+% \begin{option}{headnosepline}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
-% \end{option}
+% \end{option}^^A headnosepline
+% \end{macro}^^A \if@hsl
+% \end{option}^^A headsepline
%
%
% \begin{option}{footsepline}
-% \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte
-% die Paket-Angabe}%^^A
-% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei
-% \cs{PassOptionsToPackage} vertauscht}%^^A
-% \changes{v2.97c}{2007/04/19}{Option \texttt{footinclude} wird nicht
-% mehr an \textsf{typearea} geschickt}%^^A
-% \changes{v2.98c}{2008/03/26}{Option \texttt{footinclude} wird gesetzt,
-% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.12}{2013/03/05}{wenn \textsf{typearea} noch gar nicht geladen
-% ist, Option an dieses Paket schicken}%^^A
-% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch
-% \cs{KOMAoptions} ersetzt}%^^A
-% \changes{v3.12}{2013/08/26}{ggf. Satzspiegel neu berechnen}%^^A
-% \changes{v3.13}{2014/07/07}{Satzspiegel wird nicht neu berechnet}%^^A
-% \changes{v3.13}{2014/07/07}{\texttt{headinclude}-Fehler beseitigt}%^^A
-% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}%^^A
-% \changes{v3.18a}{2015/07/08}{BugFix: Argument bei
-% \cs{PassOptionsToPackage} erneut vertauscht}%^^A
-% \changes{v3.20}{2015/12/12}{Optionenweiterleitung an \textsf{typearea}
-% entfernt}%^^A
-% \begin{option}{footnosepline}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Der Fußteil kann mit einer Linie vom Textbereich getrennt werden.
-% \begin{macro}{\if@fsl}
-% \begin{macro}{\@fsltrue}
-% \begin{macro}{\@fslfalse}
-% Die Entscheidung wird in einem Schalter gespeichert.
+% \changes{v2.0e}{1994/08/14}{missing package at \cs{PassOptionsToPackage}
+% added}
+% \changes{v2.95c}{2006/08/11}{arguments of \cs{PassOptionsToPackage} fixed}
+% \changes{v2.97c}{2007/04/19}{don't pass \opt{footinclude} to
+% \pkg*{typearea}}
+% \changes{v2.98c}{2008/03/26}{set \opt{footinclude}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/03/05}{if \textsf{typearea} has not been loaded, pass
+% option to package}
+% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} replaced by \cs{KOMAoptions}}
+% \changes{v3.12}{2013/08/26}{recalculation of typing area}
+% \changes{v3.13}{2014/07/07}{no recalculation of typing area}
+% \changes{v3.13}{2014/07/07}{\opt{headinclude} mistake fixed}
+% \changes{v3.17}{2015/03/10}{using value storage}
+% \changes{v3.18a}{2015/07/08}{arguments of \cs{PassOptionsToPackage} fixed
+% again}
+% \changes{v3.20}{2015/12/12}{don't pass option to \pkg*{typearea}}
+% \begin{macro}{\@fslfalse,\@fsltrue,\if@fsl}
+% Optional separation line between text area and page footer---in other words:
+% above the page footer.
% \begin{macrocode}
\KOMA@ifkey{footsepline}{@fsl}%
\KOMA@kav@add{.\KOMAClassFileName}{footsepline}{false}
-\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
-% \end{option}
-%
-% In früheren Versionen wurde noch die Option \texttt{mpinclude} von
-% den Klassen ausgewertet. Dies geschieht jetzt nur noch in
-% \textsf{typearea}. Von den Klassen wird dann ggf. auf den dort
-% definierten Schalter zugegriffen. Dieses Vorgehen ist deshalb
-% sinnvoll, weil die Klassen ausnahmslos das \textsf{typearea}-Paket
-% laden.
-%
-%
-% \subsection{Optionen und Anweisungen für leere Seiten}
-%
-% \iffalse
-%</class>
-%<*class|extend>
-% \fi
-%
-% \begin{option}{cleardoublepage}
-% \changes{v2.95}{2004/08/24}{neuer Schalter}%^^A
-% \changes{v2.96a}{2007/01/03}{Wert \texttt{current} sollte nun
-% funktionieren}%^^A
-% \changes{v2.98c}{2008/03/06}{verwendet \cs{def} statt \cs{let}, damit die
-% Option \texttt{open} funktioniert}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}%^^A
-% \begin{option}{cleardoubleempty}
-% \changes{v2.8a}{2001/06/18}{neue Option}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{cleardoubleplain}
-% \changes{v2.8a}{2001/06/18}{neue Option}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{cleardoublestandard}
-% \changes{v2.8a}{2001/06/18}{neue Option}%^^A
-% \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} statt
-% \cs{cleardoublestandard}}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{macro}{\cleardoublestandardpage}
-% \changes{v2.8a}{2001/06/18}{neu}%^^A
-% \changes{v2.96a}{2007/01/02}{korrekter Ersatzwert gesetzt}%^^A
-% \begin{macro}{\cleardoubleusingstyle}
-% \changes{v2.95}{2004/08/24}{neu}%^^A
-% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
-% ersetzt}
-% \begin{macro}{\cleardoubleemptypage}
-% \changes{v2.8a}{2001/06/18}{neu}%^^A
-% \begin{macro}{\cleardoubleplainpage}
-% \changes{v2.8a}{2001/06/18}{neu}%^^A
-% \begin{macro}{\cleardoubleoddpage}
-% \changes{v3.00}{2008/09/27}{neu}%^^A
-% \begin{macro}{\cleardoubleoddstandardpage}
-% \changes{v2.98c}{2008/03/06}{neu}%^^A
-% \begin{macro}{\cleardoubleoddusingstyle}
-% \changes{v2.98c}{2008/03/06}{neu}%^^A
-% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
-% ersetzt}
-% \begin{macro}{\cleardoubleoddemptypage}
-% \changes{v2.98c}{2008/03/06}{neu}%^^A
-% \begin{macro}{\cleardoubleoddplainpage}
-% \changes{v2.98c}{2001/06/18}{neu}%^^A
-% \begin{macro}{\cleardoubleevenpage}
-% \changes{v3.00}{2008/09/27}{neu}%^^A
-% \begin{macro}{\cleardoubleevenstandardpage}
-% \changes{v2.98c}{2008/03/06}{neu}%^^A
-% \begin{macro}{\cleardoubleevenusingstyle}
-% \changes{v2.98c}{2008/03/06}{neu}%^^A
-% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
-% ersetzt}
-% \begin{macro}{\cleardoubleevenemptypage}
-% \changes{v2.98c}{2008/03/06}{neu}%^^A
-% \begin{macro}{\cleardoubleevenplainpage}
-% \changes{v2.98c}{2001/06/18}{neu}%^^A
-% \begin{macro}{\cleardoublepage}
-% \changes{v2.98c}{2001/06/18}{wird immer neu definiert}%^^A
-% \changes{v2.98c}{2008/04/11}{neue Voreinstellung für Versionen nach
-% 2.98c}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} umbenannt in
-% \cs{Ifnotundefined}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Bei Verwendung von \texttt{twoside} und \texttt{openright} bei den
-% Klassen \textsf{scrbook} und \textsf{scrreprt} wird bei \cs{chapter}
-% implizit \cs{cleardoublepage} ausgeführt. Das führt ggf.
-% normalerweise zu einer linken Seite, auf der noch der Kolumnentitel
-% des vorherigen Kapitels und eine Seitenzahl steht. Häufig wird
-% stattdessen nur eine Seitenzahl oder auch gar nichts gewünscht. Es
-% soll also der Seitenstil \texttt{plain} oder \texttt{empty}
-% verwendet werden. Dies wird mit den Optionen ermöglicht. Dazu
-% werden auch gleich neue Makros definiert:
-% \begin{macrocode}
-\KOMA@key{cleardoublepage}{%
- \begingroup%
- \def\@tempc{%
- \endgroup%
- \KOMA@unknown@keyval{cleardoublepage}{#1}{%
- 'current' or any defined pagestyle e.g. 'empty','plain', 'headings'}%
- }%
- \Ifstr{#1}{current}{%
- \def\@tempc{\endgroup%
- \def\cleardoublepage{\cleardoublestandardpage}%
- \def\cleardoubleoddpage{\cleardoubleoddstandardpage}%
- \def\cleardoubleevenpage{\cleardoubleevenstandardpage}%
- \FamilyKeyStateProcessed
- \KOMA@kav@replacevalue{.%
-%<package&extend> scrextend.\scr@pkgextension
-%<class> \KOMAClassFileName
- }{cleardoublepage}{current}%
- }%
- }{%
- \Ifnotundefined{ps@#1}{%
- \def\@tempc{\endgroup%
- \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
- \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
- \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
- \FamilyKeyStateProcessed
- \KOMA@kav@xreplacevalue{.%
-%<package&extend> scrextend.\scr@pkgextension
-%<class> \KOMAClassFileName
- }{cleardoublepage}{#1}%
- }%
- }{%
% \end{macrocode}
-% \changes{v3.13}{2014/03/01}{allow page style headings as value for class
-% option}%^^A
-% At class loading time page style \texttt{headings} is still undefined, but
-% should be allowed as value for option \texttt{cleardoublepage}.
-% \begin{macrocode}
-%<*class>
- \ifx\@currname\KOMAClassName
- \ifx\@currext\@clsextension
- \Ifstr{#1}{headings}{%
- \def\@tempc{\endgroup%
- \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
- \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
- \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
- \FamilyKeyStateProcessed
- \KOMA@kav@xreplacevalue{.\KOMAClassFileName}%
- {cleardoublepage}{#1}%
- }%
- }{}%
- \fi
- \fi
-%</class>
- }%
- }%
- \@tempc
-}
-\newcommand*{\cleardoubleoddstandardpage}{}
-\let\cleardoubleoddstandardpage=\cleardoublepage
-\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage
- {\pagestyle{#1}\cleardoubleoddstandardpage}}
-\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}}
-\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}}
-\newcommand*{\cleardoubleevenstandardpage}{%
- \clearpage
- \if@twoside\ifodd\c@page
- \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi
- \fi\fi
-}
-\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage
- {\pagestyle{#1}\cleardoubleevenstandardpage}}
-\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}}
-\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}}
-\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}
-\renewcommand*{\cleardoublepage}{%
- \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax
- \cleardoubleemptypage
- \else
- \cleardoublestandardpage
- \fi
-}
-\KOMA@kav@add{.%
-%<package&extend> scrextend.\scr@pkgextension
-%<class> \KOMAClassFileName
-}{cleardoublepage}{%
- \expandafter\ifnum \scr@v@is@gt{2.98c}empty\else current\fi
-}
-% \end{macrocode}
-% Es ist zwar nicht unbedingt notwendig aber eventuell schöner, wenn der zuvor
-% hinzugefügte, bedingte Wert am Ende noch expandiert wird. Der Umstand ist
-% notwendig, weil während der Definition der Optionen die Kompatibilität noch
-% nicht bekannt ist. Diese ergibt sich erst während \cs{KOMAProcessOptions}.
+% \begin{option}{footnosepline}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
-%<package&extend>\AtEndOfPackage{%
-%<class>\AtEndOfClass{%
- \KOMAoptionOf[\expandafter\edef\expandafter\@tempa\@firstofone]%
- {%
-%<package&extend> scrextend.\scr@pkgextension
-%<class> \KOMAClassFileName
- }{cleardoublepage}%
- \KOMA@kav@removekey{.%
-%<package&extend> scrextend.\scr@pkgextension
-%<class> \KOMAClassFileName
- }{cleardoublepage}%
- \KOMA@kav@xadd{.%
-%<package&extend> scrextend.\scr@pkgextension
-%<class> \KOMAClassFileName
- }{cleardoublepage}{\@tempa}%
-}
-\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage}
-\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage}
-\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage
- {\pagestyle{#1}\cleardoublestandardpage}}
-\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}}
-\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}}
-%<*class>
-\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty}
-\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain}
-\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current}
-%</class>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-%
-%
-% \iffalse
-%</class|extend>
+\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
%</option>
-%<*body>
-%<*class>
-% \fi
-%
-%
-% \subsection{Befehle für den Kompatibilitätsmodus}
-%
-% \begin{macro}{\headincludeon}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\headincludeoff}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\headseplineon}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\headseplineoff}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\footincludeon}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\footincludeoff}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\footseplineon}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% \begin{macro}{\footseplineoff}
-% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}%^^A
-% Da die \KOMAScript-Klassen ohnehin nicht mehr auf Kompatibilität zu
-% \textsf{Script~2.0} überprüft werden, wurde der Kompatibilitätsmodus
-% ersatzlos gestrichen. Dazu gehören nach über zehn Jahren nun auch diese
-% Anweisungen. Ehemals waren sie wie folgt definiert:
-% \begin{verbatim}
-% \if@compatibility
-% \newcommand*\headincludeon{\@hincltrue}
-% \newcommand*\headincludeoff{\@hinclfalse}
-% \newcommand*\headseplineon{\@hsltrue \@hincltrue}
-% \newcommand*\headseplineoff{\@hslfalse \@hinclfalse}
-% \newcommand*\footincludeon{\@fincltrue}
-% \newcommand*\footincludeoff{\@finclfalse}
-% \newcommand*\footseplineon{\@fsltrue \@fincltrue}
-% \newcommand*\footseplineoff{\@fslfalse \@finclfalse}
-% \fi
-% \end{verbatim}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-% \subsection{Definition der Standardseitenstile}
-%
-% \changes{v2.0e}{1994/08/10}{bei \textsf{scrbook} gibt es kein
-% einseitiges Layout}
-% \changes{v2.3a}{1995/07/08}{da bei \textsf{book} seit Version 1.2v
-% die Option oneside wieder ein einseitiges Layout erzeugt, dieses
-% wieder eingebaut}
-%
-% \begin{macro}{\ps@plain}
-% \begin{macro}{\ps@myheadings}
-% \begin{macro}{\ps@headings}
-% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} umbenannt in
-% \cs{Ifnumbered}}%^^A
-% Es wird das Aussehen der Kopf- und Fußzeilen für die
-% Standardseitenstile \texttt{empty}, \texttt{plain},
-% \texttt{headings} und \texttt{myheadings} festgelegt. Diese sind
-% außerdem abhängig davon, ob es sich um einseitiges oder beidseitiges
-% Layout handelt.
-%
-% Im Gegensatz zu den Seitenstilen der Standardklassen steht die
-% Seitennummer beim \KOMAScript{} Paket immer in der Fußzeile.
-% Außerdem sind Trennlinien zwischen Kopf- und Textbereich sowie
-% zwischen Text- und Fußbereich möglich.
-%
-% Die Kopfzeile wird auch nicht mehr in Großbuchstaben gewandelt.
-%
-% \changes{v2.2a}{1995/02/07}{bei \textsf{scrbook} und
-% \textsf{scrreprt} Punkt hinter der section-Nummer entfernt}
-% \changes{v2.2c}{1995/05/25}{Punkt hinter der Kapitelnummer in der
-% Kopfzeile entfernt}%^^A
-% \changes{v2.2c}{1995/05/25}{Nummern in der Kopfzeile auf CJK
-% umgestellt}%^^A
-% \changes{v2.4f}{1996/10/08}{\cs{strut} in der Kopfzeile
-% eingefügt}
+% \end{macrocode}
+% \end{option}^^A footnosepline
+% \end{macro}^^A \if@fsl
+% \end{option}^^A footsepline
+%
+% \begin{option}{mpinclude}
+% \changes{v2.95}{2002/07/08}{moved to \pkg*{typearea}}
+% \end{option}{mpinclude}
+%
+%
+% \subsection{Definition of the standard page styles}
+%
+%
+% \begin{pgstyle}{plain,myheadings,headings}
+% \changes{v2.0e}{1994/08/10}{\cls*{scrbook} does not provide single-side page
+% styles}
+% \changes{v2.0e}{1994/08/17}{in single-side mode \cs{markboth} replaced by
+% \cs{markright}}
+% \changes{v2.1b}{1994/12/31}{in single-side mode \cs{markboth} replaced by
+% \cs{markright}}
+% \changes{v2.2a}{1995/02/07}{dot after section number in \cls*{scrbook} and
+% \cls*{scrreprt} removed}
+% \changes{v2.2a}{1995/02/07}{using \cs{subsectionmark} in single-side mode
+% with \cls*{scrartcl}}
+% \changes{v2.2a}{1995/02/07}{using \cs{sectionmark} in single-side mode with
+% \cls*{scrreprt}}
+% \changes{v2.2c}{1995/05/25}{dot after chapter number removed}
+% \changes{v2.2c}{1995/05/25}{numbers in running heads support CJK format
+% extension}
+% \changes{v2.3a}{1995/07/08}{because \cls{book} from version 1.2v provides
+% option \opt{oneside} single-side page styles added to \cls*{scrbook}}
+% \changes{v2.4f}{1996/10/08}{\cs{strut} added to page head}
+% \changes{v2.97c}{2007/07/18}{distinguish \opt{twoside} as late as possible}
+% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable
+% \var{nexthead} or \var{nextfoot}}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to \cs{Ifnumbered}}
+% In difference to the standard classes, the \KOMAScript{} classes use
+% pagination in the page footer for all page styles. Also an optional
+% separation line below the page head and above the page footer is
+% supported. The ugly usage of pool man's upper case for the running head of
+% the standard classes is also not used, but optional.
% \begin{macro}{\set@tempdima@hw}
-% \changes{v2.8q}{2002/03/28}{neu (intern)}%^^A
-% Um nicht ständig das Gleiche schreiben zu müssen wird hier ein
-% internes Makro verwendet.
+% \changes{v2.8q}{2002/03/28}{added}
+% Because with \pkg*{typearea} option \opt{mpinclude} the head should be
+% extended to the margin note column, \cs{set@tempdima@hw} sets
+% \len{@tempdima} to the corresponding head width.
+% \begin{description}
+% \item[Note:] Package \pkg*{scrlayer} does not use this code, but allows
+% to configure the width of head and foot independent, which is much
+% better.
+% \end{description}
% \begin{macrocode}
+%<*body>
\newcommand*{\set@tempdima@hw}{%
\setlength{\@tempdima}{\textwidth}%
\if@mincl
@@ -532,47 +205,34 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\pnumfont}
-% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}
-% \begin{macro}{\headfont}
-% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}
+% \end{macro}^^A \set@tempdima@hw
+% \begin{fontelement}{pagenumber}
+% \changes{v2.8o}{2001/09/14}{added}
+% \begin{fontelement}{pagination}
+% \changes{v2.8o}{2001/09/14}{alias added}
+% \begin{fontelement}{pageheadfoot}
+% \changes{v2.98c}{2008/02/14}{added}
+% \begin{fontelement}{pagehead}
+% \changes{v2.8o}{2001/09/14}{added with warning added}
+% \changes{v2.98c}{2008/02/14}{changed to alias}
+% \changes{v2.97c}{2007/09/25}{warning changed}
+% \changes{v2.98c}{2008/02/14}{warning changed}
+% \begin{fontelement}{pagefoot}
+% \changes{v2.8o}{2001/09/14}{alias with warning added}
+% \changes{v2.98c}{2008/02/14}{changed to element}
+% \changes{v3.13}{2014/01/13}{warning changed}
+% \begin{macro}{\pnumfont,\headfont}
+% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} added}
% \begin{macro}{\footfont}
-% \changes{v2.98c}{2008/02/14}{Neu}%^^A
-% Kopf- und Fußzeile sowie die Seitennummer werden in einer speziellen
-% Schriftart gesetzt. Die drei Makros hier sind jedoch als interne
-% Makros zu betrachten.
+% \changes{v2.98c}{2008/02/14}{added}
+% All these font settings are deprecated as user commands, but still valid as
+% internal macros, used to define font elements. Because of using the old
+% macros, we have to define elements manually instead of using \cs{newkomafont}.
% \begin{macrocode}
\newcommand*{\pnumfont}{\normalfont\normalcolor}
\newcommand*{\headfont}{\normalfont\normalcolor\slshape}
\newcommand*{\footfont}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{KOMAfont}{pagenumber}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagenumber}}
-% \begin{KOMAfont}{pagination}
-% \changes{v2.8o}{2001/09/14}{neues Alias-Element}%^^A
-% \begin{KOMAfont}{pageheadfoot}
-% \changes{v2.98c}{2008/02/14}{neues Element}%^^A
-% \begin{KOMAfont}{pagehead}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagehead}}
-% \changes{v2.98c}{2008/02/14}{neuer Alias}%^^A
-% \begin{macro}{\scr@fnt@wrn@pagehead}
-% \changes{v2.8o}{2001/09/14}{neue Warnung für Element \texttt{pagehead}}
-% \changes{v2.97c}{2007/09/25}{Warnung geändert}%^^A
-% \changes{v2.98c}{2008/02/14}{Warnung geändert}%^^A
-% \begin{KOMAfont}{pagefoot}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagefoot}}
-% \changes{v2.98c}{2008/02/14}{nicht länger ein Alias}%^^A
-% \begin{macro}{\scr@fnt@wrn@pagefoot}
-% \changes{v2.98c}{2008/02/14}{Neu (intern)}%^^A
-% \changes{v3.13}{2014/01/13}{es wird \textsf{scrlayer-scrpage} an Stelle
-% von \textsf{scrpage2} empfohlen}%^^A
-% Hier werden die Elemente definiert, deren Schriftart dann geändert
-% werden kann.
% \begin{macrocode}
\newcommand*{\scr@fnt@pagenumber}{\pnumfont}
\aliaskomafont{pagination}{pagenumber}
@@ -594,27 +254,31 @@
}
%</!letter>
% \end{macrocode}
-% \end{macro}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{KOMAfont}
-%
-%
-% \begin{macro}{\pagemark}
-% \changes{v2.95}{2006/03/15}{nun für alle Klassen}%^^A
-% \changes{v3.05}{2010/02/05}{eine zusätzliche Gruppe eingefügt}%^^A
-% Das ist die Seitenmarke, die nun für alle Klassen verwendet wird. Damit
-% wird es leichter, \textsf{fancyhdr} statt \textsf{scrpage2} zu verwenden.
-% \begin{macro}{\letterpagemark}
-% \changes{v3.17}{2015/03/20}{Neu (nur Paket \textsl{scrletter})}%^^A
-% Für das Paket wird eine abweichende Definition verwendet, die innerhalb von
-% \cs{begin{letter}} aktiviert wird.
+% \end{macro}^^A \footfont
+% \end{macro}^^A \pnumfont,\headfont
+% \end{fontelement}^^A pagefoot
+% \end{fontelement}^^A pagehead
+% \end{fontelement}^^A pageheadfoot
+% \end{fontelement}^^A pagination
+% \end{fontelement}^^A pagenumber
+%
+% \begin{command}{\pagemark}
+% \changes{v2.95}{2006/03/15}{available for all classes}
+% \changes{v3.05}{2010/02/05}{group added}
+% \begin{command}{\letterpagemark}
+% \changes{v3.17}{2015/03/20}{added for \pkg*{scrletter}}
+% The pagination used by all classes. Originally this has been defined to
+% simplify usage of \pkg{fancyhdr} (instead of
+% \pkg[https://www.ctan.org/pkg/koma-script-obsolete]{scrpage2}), because in
+% this case you just have to use \cs{pagemark} instead of \cs{thepage} in the
+% definitions of the fancy page style to support \KOMAScript. But neither the
+% author nor the users of \pkg{fancyhdr} have used it. However, now it is
+% useful for \pkg{scrlayer-scrpage} too. And because we use another pagination
+% for letters, we define a second command for \pkg*{scrletter}.
% \begin{macrocode}
+%</body>
%</class>
-%<*class|letter>
+%<*(class|letter)&body>
\newcommand*{%
%<class> \pagemark
%<package> \letterpagemark
@@ -622,31 +286,14 @@
{\usekomafont{pagenumber}{%
%<letter> \pagename\nobreakspace
\thepage}}}
-%</class|letter>
-%<*class>
+%</(class|letter)&body>
% \end{macrocode}
-% \end{macro}%^^A \letterpagemark
-% \end{macro}%^^A \pagemark
-%
-% Zurück zur Definition der Seitenstile. Hier gibt es erhebliche
-% Unterschiede zwischen der Briefklasse und den anderen Klassen. Das beginnt
-% schon damit, dass es spezielle Stile für doppelseitige Briefe nicht gibt.
-% \changes{v2.1b}{1994/12/31}{im einseitigen Seitenstil \cs{markboth} durch
-% \cs{markright} ersetzt}%
-% \changes{v2.2a}{1995/02/07}{im einseitigen Seitenstil bei
-% \textsf{scrartcl} und \texttt{oneside} \cs{subsectionmark} eingefügt}%
-% \changes{v2.2a}{1995/02/07}{im einseitigen Seitenstil bei
-% \textsf{scrreprt} und \texttt{oneside} \cs{sectionmark} eingefügt}%
-% \changes{v2.0e}{1994/08/17}{im einseitigen Seitenstil \cs{markboth} durch
-% \cs{markright} ersetzt}%
-% \changes{v2.97c}{2007/07/18}{Unterscheidung auf \texttt{twoside} so spät
-% wie möglich}%
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%
-% Hinweis: Die \emph{even}-Varianten werden im einseitigen Satz vom
-% \LaTeX-Kern selbst nicht verwendet. Es schadet also nicht, sie trotzdem
-% identisch zum doppelseitigen Satz zu definieren.
+% \end{command}^^A \letterpagemark
+% \end{command}^^A \pagemark
+% First of all we have to define the page styles of all classes but the letter
+% class.
% \begin{macrocode}
-%<*!letter>
+%<*class&!letter&body>
\renewcommand*{\ps@plain}{%
\renewcommand*{\@oddhead}{}%
\let\@evenhead\@oddhead
@@ -732,12 +379,11 @@
%<article> \renewcommand*{\subsectionmark}[1]{}%
\renewcommand*{\sectionmark}[1]{}%
}
-%</!letter>
+%</class&!letter&body>
% \end{macrocode}
-% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable
-% \texttt{nexthead} or \texttt{nextfoot}}
+% And now the page styles of the letter class.
% \begin{macrocode}
-%<*letter>
+%<*class&letter&body>
\renewcommand*{\ps@plain}{%
\renewcommand*{\@oddhead}{%
\vbox{\vbox{\hsize=\textwidth\hbox to\textwidth{%
@@ -806,12 +452,11 @@
\ps@headings
\let\@mkboth\@gobbletwo
}
-%</letter>
-%</class>
+%</class&letter&body>
% \end{macrocode}
-% Das Briefpaket verwendet \textsf{scrlayer-scrpage} für die Seitenstile:
+% The letter package already uses \pkg*{scrlayer-scrpage}:
% \begin{macrocode}
-%<*package&letter>
+%<*package&letter&body>
\RequirePackage{scrlayer-scrpage}
\newpairofpagestyles{letter}{%
\clearpairofpagestyles
@@ -836,18 +481,14 @@
\rofoot[\ifnum\@pageat=5 \pagemark\fi]%
{}%
}
-%</package&letter>
+%</package&letter&body>
% \end{macrocode}
-% \end{macro}%^^A \ps@headings
-% \end{macro}%^^A \ps@myheadings
-% \end{macro}%^^A \ps@plain
-%
-% \selectlanguage{english}%^^A
-% \begin{macro}{\ps@notepaper}
-% \changes{v3.27}{2019/03/22}{new layer page style\texttt{notepaper}}%^^A
-% \changes{v3.27}{2019/03/22}{new layer \texttt{notepaper}}%^^A
-% From \KOMAScript~3.27 the \textsf{scrletter} package uses the layer
-% \texttt{notepaper} to define the note-paper. With this layer it is possible
+% \end{pgstyle}^^A plain,myheadings,headings
+%
+% \begin{pgstyle}{notepaper}
+% \changes{v3.27}{2019/03/22}{plan added}
+% There are plans for \pkg*{scrletter} package to use a new layer
+% \texttt{notepaper} to define the notepaper. With this layer it is possible
% to add several separated information blocks everywhere on the first
% page. A \texttt{picture} mode layer is used, because this makes the
% placement easier. It's a background layer, so the page contents are printed
@@ -862,7 +503,7 @@
contents=\scr@notepaper@printallelements
]{notepaper}
% \end{macrocode}
-% For \cs{scr@notepaper@elements} see \texttt{scrkernel-notepaper}.
+% For \cs{scr@notepaper@elements} see \file{scrkernel-notepaper.dtx}.
%
% A second layer is used for the foldmarks. Again it is a picture layer. But
% this time it is an odd-sides-only layer.
@@ -875,78 +516,269 @@
contents=\scr@foldmarks@printallelements
]{foldmarks}
% \end{macrocode}
-% For \cs{@hfoldmark} and \cs{@vfoldmark} see
-% \texttt{scrkernel-notepaper.dtx}.
+% For \cs{@hfoldmark} and \cs{@vfoldmark} see \file{scrkernel-notepaper.dtx}.
%
% Last but not least the page style. The foldmarks are below the notepaper.
% \begin{macrocode}
\DeclareNewPageStyleByLayers{notepaper}{foldmarks,notepaper}
%</package&letter&body&willbe>
% \end{macrocode}
-% \end{macro}%^^A \ps@notepaper
-% \selectlanguage{ngerman}%^^A
+% \end{pgstyle}^^A notepaper
%
%
-% \subsection{Festlegung des Seitenstils auf besonderen Seiten}
+% \subsection{Selection of page styles for special pages}
%
-% So etwas gibt es derzeit nicht für Briefe.
-% \iffalse
-%<*class>
-%<*!letter>
-% \fi
%
-% \begin{macro}{\titlepagestyle}
-% \changes{v2.8d}{2001/07/05}{neu}%^^A
-% \begin{macro}{\partpagestyle}
-% \changes{v2.8d}{2001/07/05}{neu}%^^A
-% \changes{v3.00}{2008/08/05}{nicht mehr in \textsf{scrartcl} definiert}
-% \changes{v3.18}{2015/06/10}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\chapterpagestyle}
-% \changes{v2.8d}{2001/07/05}{neu}%^^A
-% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\indexpagestyle}
-% \changes{v2.8d}{2001/07/05}{neu}%^^A
-% Auf verschiedenen Seiten wird automatisch mit \cs{thispagestyle} auf
-% einen anderen Seitenstil umgeschaltet. Welcher das ist, ist in
-% diesem Makros abgelegt und kann bei Bedarf geändert werden.
-% Voreingestellt ist der in früheren Versionen fest verdrahtete
-% Seitenstil \texttt{plain}.
+% \begin{command}{\titlepagestyle,\indexpagestyle}
+% \changes{v2.8d}{2001/07/05}{added}
+% For pages with the in-page title and for the first page of the index,
+% \KOMAScript{} provides configurable page styles. These are initially
+% \pstyle{plain}.
% \begin{macrocode}
+%<*class&!letter&body>
\newcommand*{\titlepagestyle}{plain}
\newcommand*{\indexpagestyle}{plain}
+%</class&!letter&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \begin{command}{\partpagestyle}
+% \changes{v2.8d}{2001/07/05}{added}
+% \changes{v3.00}{2008/08/05}{not with \cls*{scrartcl}}
+% \changes{v3.18}{2015/06/10}{indirect by \cs{DeclareSectionCommand}}
+% \end{command}
+% \begin{command}{\chapterpagestyle}
+% \changes{v2.8d}{2001/07/05}{added}
+% \changes{v3.18}{2015/05/20}{indirect by \cs{DeclareSectionCommand}}
+% \end{command}
%
-% \iffalse
-%</!letter>
-% \fi
%
-% \subsection{Standardeinstellungen}
+% \subsection{Selection of initial page style}
%
-% Der voreingestellte Seitenstil hängt von der verwendeten Klasse ab:
+% The initial page style depends on the class:
% \begin{macrocode}
+%<*class&body>
%<report|article|letter>\pagestyle{plain}
%<book>\pagestyle{headings}
% \end{macrocode}
-% Die Nummerierung erfolgt hingegen immer mit arabischen Zahlen:
+% But the pagination is always done using Arabic numbers.
% \begin{macrocode}
\pagenumbering{arabic}
+%</class&body>
% \end{macrocode}
%
-% \iffalse
+% \section{Implementation of Interleaf Pages}
+%
+% \begin{description}
+% \item[ToDo:] Move this code to a new file \file{scrkernel-interleaf.dtx}.
+% \end{description}
+%
+% \begin{option}{cleardoublepage}
+% \changes{v2.95}{2004/08/24}{added}
+% \changes{v2.96a}{2007/01/03}{value \opt{\quotechar=current} fixed}
+% \changes{v2.98c}{2008/03/06}{\cs{def} replaced by \cs{let}, because of
+% option \opt{open}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/10}{using value storage}
+% \begin{command}{\cleardoublestandardpage}
+% \changes{v2.8a}{2001/06/18}{added}
+% \changes{v2.96a}{2007/01/02}{default value added}
+% \begin{command}{\cleardoubleusingstyle}
+% \changes{v2.95}{2004/08/24}{added}
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} replaced by
+% \cs{pagestyle}}
+% \begin{command}{\cleardoubleemptypage,\cleardoubleplainpage}
+% \changes{v2.8a}{2001/06/18}{added}
+% \begin{command}{\cleardoubleoddpage,\cleardoubleoddstandardpage}
+% \changes{v2.98c}{2008/03/06}{added}
+% \begin{command}{\cleardoubleoddusingstyle}
+% \changes{v2.98c}{2008/03/06}{added}
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} replaced by
+% \cs{pagestyle}}
+% \begin{command}{\cleardoubleoddemptypage,\cleardoubleoddplainpage}
+% \changes{v2.98c}{2001/06/18}{added}
+% \begin{command}{\cleardoubleevenpage,\cleardoubleevenstandardpage}
+% \changes{v2.98c}{2008/03/06}{added}
+% \begin{command}{\cleardoubleevenusingstyle}
+% \changes{v2.98c}{2008/03/06}{added}
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} replaced by
+% \cs{pagestyle}}
+% \begin{command}{\cleardoubleevenemptypage,\cleardoubleevenplainpage}
+% \changes{v2.98c}{2001/06/18}{added}
+% \begin{command}{\cleardoublepage}
+% \changes{v2.98c}{2001/06/18}{always redefining it}
+% \changes{v2.98c}{2008/04/11}{new default from version 2.98c}
+% \changes{v3.13}{2014/03/01}{allow page style \pstyle{headings} as value for
+% class option}
+% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} replaced by
+% \cs{Ifnotundefined}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} replaced by \cs{Ifstr}}
+% With options \opt{twoside} and \opt{openright}, which are both default with
+% \cls*{scrbook} and available with \cls*{scrreprt}, \cs{chapter} imply
+% \cs{cleardoublepage}. Usually this results in a new odd page and can insert
+% an interleaf page. With the standard classes this interleaf page has the
+% current active page style and therefore can have a running head and
+% pagination. Mainstream typography uses empty pages without running head or
+% pagination for interleaf pages. Some users also want a pagination but no
+% running head. Option \opt{cleardoublepage} can be used to select all the
+% often wishes and also every other page style. The corresponding commands are
+% also defined and the option re-defines \cs{cleardoublepage} to use one of
+% these additional commands. Similar is for \cs{cleardoubleoddpage} and
+% \cs{cleardoubleevenpage}.
+% \begin{macrocode}
+%<*(class|scrextend)&option>
+\KOMA@key{cleardoublepage}{%
+ \begingroup%
+ \def\@tempc{%
+ \endgroup%
+ \KOMA@unknown@keyval{cleardoublepage}{#1}{%
+ 'current' or any defined pagestyle e.g. 'empty','plain', 'headings'}%
+ }%
+ \Ifstr{#1}{current}{%
+ \def\@tempc{\endgroup%
+ \def\cleardoublepage{\cleardoublestandardpage}%
+ \def\cleardoubleoddpage{\cleardoubleoddstandardpage}%
+ \def\cleardoubleevenpage{\cleardoubleevenstandardpage}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}{current}%
+ }%
+ }{%
+ \Ifnotundefined{ps@#1}{%
+ \def\@tempc{\endgroup%
+ \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
+ \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
+ \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}{#1}%
+ }%
+ }{%
+% \end{macrocode}
+% At class loading time page style \pstyle{headings} is still undefined, but
+% should be allowed as value for option \opt{cleardoublepage}.
+% \begin{description}
+% \item[Note:] Page style \pstyle{plain} is already defined in the \LaTeX{}
+% kernel and therefore does not need special treatment.
+% \end{description}
+% \begin{macrocode}
+%<*class>
+ \ifx\@currname\KOMAClassName
+ \ifx\@currext\@clsextension
+ \Ifstr{#1}{headings}{%
+ \def\@tempc{\endgroup%
+ \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
+ \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
+ \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.\KOMAClassFileName}%
+ {cleardoublepage}{#1}%
+ }%
+ }{}%
+ \fi
+ \fi
%</class>
-%</body>
-% \fi
+ }%
+ }%
+ \@tempc
+}
+\newcommand*{\cleardoubleoddstandardpage}{}
+\let\cleardoubleoddstandardpage=\cleardoublepage
+\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage
+ {\pagestyle{#1}\cleardoubleoddstandardpage}}
+\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}}
+\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}}
+\newcommand*{\cleardoubleevenstandardpage}{%
+ \clearpage
+ \if@twoside\ifodd\c@page
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi
+ \fi\fi
+}
+\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage
+ {\pagestyle{#1}\cleardoubleevenstandardpage}}
+\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}}
+\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}}
+\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}
+\renewcommand*{\cleardoublepage}{%
+ \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax
+ \cleardoubleemptypage
+ \else
+ \cleardoublestandardpage
+ \fi
+}
+\KOMA@kav@add{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+}{cleardoublepage}{%
+ \expandafter\ifnum \scr@v@is@gt{2.98c}empty\else current\fi
+}
+% \end{macrocode}
+% We expand the value at the end of the class or package.
+% \begin{macrocode}
+%<package&extend>\AtEndOfPackage{%
+%<class>\AtEndOfClass{%
+ \KOMAoptionOf[\expandafter\edef\expandafter\@tempa\@firstofone]%
+ {%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}%
+ \KOMA@kav@removekey{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}%
+ \KOMA@kav@xadd{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}{\@tempa}%
+}
+\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage}
+\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage}
+\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage
+ {\pagestyle{#1}\cleardoublestandardpage}}
+\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}}
+\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}}
+% \end{macrocode}
+% \end{command}^^A \cleardoublepage
+% \end{command}^^A \cleardoubleevenplainpage,\cleardoubleevenemptypage
+% \end{command}^^A \cleardoubleevenusingstyle
+% \end{command}^^A \cleardoubleevenpage,\cleardoubleevenstandardpage
+% \end{command}^^A \cleardoubleoddemptypage,\cleardoubleoddplainpage
+% \end{command}^^A \cleardoubleoddusingstyle
+% \end{command}^^A \cleardoubleoddpage,\cleardoubleoddstandardpage
+% \end{command}^^A \cleardoubleemptypage,\cleardoubleplainpage
+% \end{command}^^A \cleardoubleusingstyle
+% \end{command}^^A \cleardoublestandardpage
+% \begin{option}{cleardoubleempty,cleardoubleplain,cleardoublestandard}
+% \changes{v2.8a}{2001/06/18}{added}
+% \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} replaced by
+% \cs{cleardoublestandard}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macrocode}
+%<*class>
+\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty}
+\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain}
+\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current}
+%</class>
+%</(class|scrextend)&option>
+% \end{macrocode}
+% \end{option}^^A cleardoublestandard,cleardoubleplain,cleardoubleempty
+% \end{option}^^A cleardoublepage
%
-% \Finale
%
+% \Finale
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-pagestyles.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx b/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx
index 10282eecd2..9c65fcd6bd 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-paragraphs.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-paragraphs.dtx
-% Copyright (c) Markus Kohm, 2002-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-paragraphs.dtx 3596 2021-05-17 12:53:41Z kohm $
+%%% From File: $Id: scrkernel-paragraphs.dtx 3745 2022-03-07 09:14:34Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-05-17 14:53:41 +0200 (Mon, 17 May 2021) $
+ \filedate$Date: 2022-03-07 10:14:34 +0100 (Mo, 07. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
+ \filerevision$Revision: 3745 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-paragraphs.dtx}%
@@ -73,63 +36,120 @@
(paragraphs)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-paragraphs.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-paragraphs.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/06/25}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/03/07}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/07}{whole implementation documentation in English}
%
-% \changes{v2.95}{2002/06/25}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-paragraphs.dtx}
+% \title{The Code Related to Paragraph Building and Page Building of
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-paragraphs.dtx} does all the things about configuration of
+% paragraphs and page breaking. Some of them are very special for
+% \KOMAScript.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Absatzformatierung und -umbruch}
+% \section{User Manual}
%
-% In diesen Bereich gehört alles, was die Absatzformatierung selbst
-% betrifft. Dazu kommen dann noch einige Kleinigkeiten aus dem
-% Seitenumbruch.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
+% \section{Implementation of Paragraphs and Pages}
%
-% \iffalse
+% Almost all of this code is for the classes only.
+% \begin{macrocode}
%<*class>
-%<*option>
-% \fi
+% \end{macrocode}
%
-% \subsection{Optionen für das Absatzlayout}
-%
-% Ab Version 2.8i können wir auch mit Absatzlayouts umgehen, die einen
-% Absatzabstand statt einem Absatzeinzug verlangen. Gesteuert wird
-% dies über Optionen und Schalter.
-%
-% \begin{macro}{\setparsizes}
-% \changes{v2.95}{2004/11/05}{neues Macro}%^^A
-% \changes{v3.17}{2015/03/10}{löscht diverse \texttt{parskip}-Einstellungen
-% aus der internen Liste}%^^A
-% \changes{v3.19}{2015/07/29}{\cs{par@update} darf erst nach
-% \cs{begin{document}} wieder \cs{default@par@update} werden}%^^A
-% Über dieses Makro wird die Änderung der Absatzparameter |\parskip|,
-% |\parindent|, |\parfillskip| gesetzt. Das erste Argument ist der Einzug, das
-% zweite der Abstand und das dritte die Füllung. Aktiviert werden die
-% Änderungen wie bei |\fontsize| über |\selectfont|. Obwohl in der
-% Voreinstellung absolut gearbeitet wird, wird hier intern
-% |\par@updaterelative| verwendet.
+% \subsection{Options and macros to handle the paragraph layout}
+%
+% Already from version 2.8i \KOMAScript can handle paragraph skips instead of
+% indenting paragraphs. But the corresponding code has changed a lot over the
+% years.
+%
+% \begin{command}{\setparsizes}
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v3.17}{2015/03/10}{support for internal option value storage}
+% \changes{v3.19}{2015/07/29}{\cs{par@update} should not reset itself to
+% \cs{default@par@update} in the document preamble}
+% \begin{macro}{\f@parindent}
+% \changes{v2.95}{2004/11/05}{added}
+% \begin{macro}{\f@parskip,\f@parfillskip}
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v2.95}{2004/11/05}{meaning changed}
+% \begin{macro}{\scr@parindent}
+% \changes{v2.95}{2004/11/05}{added}
+% \begin{macro}{\scr@parskip,\scr@parfillskip}
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v2.95}{2004/11/05}{meaning changed}
+% Command
+% \begin{quote}
+% \cs{setparsizes}\marg{indent}\marg{skip}\marg{fill}
+% \end{quote}
+% not only sets the three main paragraph parameters of \TeX: \len{parskip},
+% \len{parindent}, \len{parfillskip}. Because of option \opt{parskip=relative}
+% it has to use a kind of delayed setting of these parameters at least at the
+% document preamble. So these settings are not activated until
+% \cs{selectfont}. To do so, not the \TeX{} parameters are changed, but the
+% current values of the \TeX{} parameters are stored to \cs{f@parindent},
+% \cs{f@parskip} and \cs{f@parfillskip} and the new values are stored to
+% \cs{scr@parindent}, \cs{scr@parskip} and \cs{scr@parfillskip}
+% only. Additionally \cs{par@update} is used to activate these new
+% values. Later we will use a hook to automatically execute \cs{par@update}
+% with every \cs{selectfont}. The current value storage is initialized twice:
+% First immediately and second inside at the end of the class.
+% \begin{description}
+% \item[ToDo:] Is the second initialization really needed? Wouldn't it be done
+% with the class options? Here user changes are not to be expected, because
+% we are still inside the class and therefore there is no user interaction.
+% \end{description}
+% \begin{macro}{\par@update}
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v3.20}{2016/02/22}{\cs{AtBeginDocument} code added}
+% \begin{macro}{\default@par@update}
+% \changes{v2.95}{2004/11/05}{added}
+% \begin{macro}{\par@updaterelative}
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v3.36}{2022/03/07}{using \cs{reserved@a} instead of \cs{@tempa}}
+% \begin{macro}{\parindent@update,\parskip@update,\parfillskip@update}
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v3.36}{2022/03/07}{using \cs{reserved@a} and \cs{reserved@b}
+% instead if \cs{@tempa} and \cs{@tempb}}
+% The initial \cs{par@update} action is to do nothing. But with
+% \opt{parskip=relative} it always and after \cs{setparsizes} it once (or in
+% the document preamble also always) has to reactivate the new values. This is
+% done using \cs{default@par@update} and
+% \cs{par@updaterelative}. \cs{default@par@update} is either a do nothing
+% (\opt{parskip=absolute}) or \cs{par@updaterelative}
+% (\opt{parskip=relative}). \cs{par@updaterelative} does the real update.
+% \begin{description}
+% \item[ToDo:] Sometimes internally \cs{par@updaterelative} is used instead of
+% \cs{selectfont} to do an immediate update after \cs{setparsizes}. But is
+% this correct? Wouldn't be \cs{selectfont} the correct action, to also
+% reset the definition of \cs{par@update}?
+% \item[ToDO:] Does the \cs{AtBeginCode} execution of \cs{par@update} make
+% sense? The \cs{par@update} is done after the initial \cs{normalsize} and
+% the initial \cs{selectfont}. So shouldn't this be enough?
+% \end{description}
% \begin{macrocode}
+%<*option>
\newcommand*{\setparsizes}[3]{%
\edef\f@parindent{\the\parindent}%
\edef\f@parskip{\the\parskip}%
@@ -152,145 +172,123 @@
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half+}%
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half*}%
}
-% \end{macrocode}
-% \begin{macro}{\f@parindent}
-% \changes{v2.95}{2004/11/05}{neu (intern)}%^^A
-% Eingestellter Absatzeinzug.
-% \begin{macro}{\f@parskip}
-% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
-% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
-% Eingestellter Absatzabstand.
-% \begin{macro}{\f@parfillskip}
-% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
-% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
-% Eingestellte Absatzfüllung.
-%
-% Diese drei Werte werden automatisch bei der Font-Initialisierung eingestellt
-% und sind vorher ungültig!
-% \begin{macrocode}
\newcommand*{\f@parindent}{\the\parindent}
\newcommand*{\f@parskip}{\the\parskip}
\newcommand*{\f@parfillskip}{\the\parfillskip}
+\newcommand*{\scr@parindent}{1em}
+\newcommand*{\scr@parskip}{\z@}
+\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil}
\AtEndOfClass{%
\edef\f@parindent{\the\parindent}%
\edef\f@parskip{\the\parskip}%
\edef\f@parfillskip{\the\parfillskip}%
}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\par@update}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% \changes{v3.20}{2016/02/22}{wird möglichst früh \cs{AtBeginDocument}
-% ausgeführt}%^^A
-% Dieses Makro wird später in |\selectfont| die Änderung vornehmen.
-% \begin{macro}{\default@par@update}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% In der Voreinstellung findet keine Änderung statt. Dies wird jedoch durch
-% die Auswahl einer entsprechenden Option geändert.
-% \begin{macrocode}
\newcommand*{\par@update}{}
\let\par@update\relax
\newcommand*{\default@par@update}{}
\let\default@par@update\relax
\AtBeginDocument{\par@update}
+%</option>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{option}{parskip}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{primäre \textsf{keyval}-Option}%^^A
-% \changes{v3.08}{2010/12/14}{neuer Wert \texttt{never}}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyState}.}%^^A
-% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}%^^A
-% \changes{v3.26b}{2019/02/01}{\cs{baselineskip} durch 1\cs{baselineskip}
-% ersetzt}%^^A
-% \begin{option}{parskip-}
-% \changes{v2.8l}{2001/08/16}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{parskip+}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{parskip*}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{halfparskip}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{halfparskip-}
-% \changes{v2.8l}{2001/08/16}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{halfparskip+}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{halfparskip*}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{parindent}
-% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
-% \changes{v2.95}{2006/03/11}{obsolet}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Diese neun Optionen steuern die Umschaltung zwischen den Modi. Dabei
-% schalten alle \texttt{parskip}-Optionen einen Absatzabstand ein,
-% wohingegen die \texttt{parindent}-Option den Absatzeinzug
-% einschaltet. Die \texttt{+}-Variante sorgt außerdem dafür, dass
-% die letzte Zeile eines Absatzes maximal zu zwei Dritteln gefüllt
-% wird. Entsprechend sorgt die \texttt{*}-Variante für eine maximale
-% Füllung von drei Vierteln. Die normale Variante sorgt lediglich
-% für einen freien Raum von 1\,em. Die \texttt{-}-Variante sorgt für
-% überhaupt nichts.
-% \begin{macro}{\scr@parindent}
-% \changes{v2.95}{2004/11/05}{neu (intern)}%^^A
-% Der einzustellende Absatzeinzug.
-% \begin{macro}{\scr@parskip}
-% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
-% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
-% Der einzustellende Absatzabstand.
-% \begin{macro}{\scr@parfillskip}
-% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
-% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
-% Die einzustellende Absatzfüllung.
+% Because of the currently complicated initialization, i.e., when switching
+% between \cs{parskip=absolute} and \cs{parskip=relative}, we currently define
+% \cs{par@updaterelative} not before the class options has been processed. New
+% values are only set, if between the last \cs{setparsizes} and the current
+% \cs{par@updaterelative} (e.g. inside \cs{selectfont}) the user has not
+% changed the \TeX{} variables. If he has changed the \TeX{} variables instead
+% of using \cs{setparsizes} we think, he does not want any other change. And
+% because of to be able to do the tests inside a group without permanent
+% change of \cs{reserved@a} we use three additional helpers.
% \begin{macrocode}
-\newcommand*{\scr@parindent}{1em}
-\newcommand*{\scr@parskip}{\z@}
-\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil}
+%<*body>
+\newcommand*{\par@updaterelative}{%
+ \begingroup
+ \edef\reserved@a{\the\parindent}\ifx\reserved@a\f@parindent
+ \aftergroup\parindent@update
+%<*trace>
+ \else
+ \ClassInfo{\KOMAClassName}{\string\parindent\space not changed}%
+%</trace>
+ \fi
+ \edef\reserved@a{\the\parskip}\ifx\reserved@a\f@parskip
+ \aftergroup\parskip@update
+%<*trace>
+ \else
+ \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}%
+%</trace>
+ \fi
+ \edef\reserved@a{\the\parfillskip}\ifx\reserved@a\f@parfillskip
+ \aftergroup\parfillskip@update
+%<*trace>
+ \else
+ \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}%
+%</trace>
+ \fi
+ \endgroup
+}
+\newcommand*{\parindent@update}{%
+ \scr@defaultunits\parindent\scr@parindent
+ \begingroup
+ \let\reserved@b\endgroup
+ \edef\reserved@a{\the\parindent}\ifx\reserved@a\f@parindent\else
+ \def\reserved@b{\endgroup\edef\f@parindent{\the\parindent}}%
+%<trace> \ClassInfo{\KOMAClassName}{\string\parindent=\the\parindent}%
+ \fi
+ \reserved@b
+}
+\newcommand*{\parskip@update}{%
+ \scr@defaultunits\parskip\scr@parskip
+ \begingroup
+ \let\reserved@b\endgroup
+ \edef\reserved@a{\the\parskip}\ifx\reserved@a\f@parskip\else
+ \def\reserved@b{\endgroup\edef\f@parskip{\the\parskip}}%
+%<trace> \ClassInfo{\KOMAClassName}{\string\parskip=\the\parskip}%
+ \fi
+ \reserved@b
+}
+\newcommand*{\parfillskip@update}{%
+ \scr@defaultunits\parfillskip\scr@parfillskip
+ \begingroup
+ \let\reserved@b\endgroup
+ \edef\reserved@a{\the\parfillskip}\ifx\reserved@a\f@parfillskip\else
+ \def\reserved@b{\endgroup\edef\f@parfillskip{\the\parfillskip}}%
+%<trace> \ClassInfo{\KOMAClassName}{\string\parfillskip=\the\parfillskip}%
+ \fi
+ \reserved@b
+}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \parindent@update,\parskip@update,\parfillskip@update}
+% \end{macro}^^A \par@updaterelative
+% \end{macro}^^A \default@par@update
+% \end{macro}^^A \par@update
+% \end{macro}^^A \scr@parskip,\scr@parfillskip
+% \end{macro}^^A \scr@parindent
+% \end{macro}^^A \f@parskip,\f@parfillskip
+% \end{macro}^^A \f@parindent
+% \end{command}^^A \setparsizes
%
-% Neu bei \KOMAScript-3 ist, dass die Optionen wie bei \textsf{scrlttr2} über
-% eine eingzige \textsf{keyval} gesetzt werden können.
+% \begin{option}{parskip}
+% \changes{v2.8i}{2001/07/22}{added}
+% \changes{v2.95}{2006/03/11}{changed into \pkg{keyval} option}
+% \changes{v3.08}{2010/12/14}{value \opt{\quotechar=never} added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}.}
+% \changes{v3.17}{2015/03/10}{using value storage}
% \changes{v3.25}{2017/09/27}{typo fix in \cs{FamilyKeyStateUnknownValue}}
+% \changes{v3.26b}{2019/02/01}{\cs{baselineskip} replaced by 1\cs{baselineskip}}
+% \begin{option}{parindent,parskip-,parskip+,parskip*,
+% halfparskip,halfparskip-,halfparskip+,halfparskip*}
+% \changes{v2.8i}{2001/07/22}{added}
+% \changes{v2.95}{2006/03/11}{obsolete}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Originally we have had nine options for all the paragraph indent and skip
+% settings. Using \pkg*{scrbase} we have only one option with additional
+% settings for relative and absolute values and paragraph indent without glue
+% for paragraph skip.
% \begin{macrocode}
+%<*option>
\KOMA@key{parskip}[true]{%
\begingroup
\KOMA@set@ncmdkey{parskip}{@tempa}{%
@@ -417,59 +415,41 @@
\KOMA@DeclareDeprecatedOption{parindent}{parskip=false}
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-%
-% Hierfür\marginline{Geplant!} sollte eine keyval-Option mit Werten definiert
-% werden. Dazu dann neue Werte für absolutes oder relatives Verhalten.
-%
-% \iffalse
%</option>
-%<*body>
-% \fi
-%
+% \end{macrocode}
+% \end{option}^^A parindent … halfparskip*
+% \end{option}^^A parskip
%
-% \subsection{Abatzformatierung}
+% \changes{v2.8i}{2001/07/22}{don't change \cs{baselinestretch}}
%
-% \changes{v2.8i}{2001/07/22}{\cs{baselinestretch} wird nicht
-% umdefiniert}
-% \begin{Length}{lineskip}
-% \begin{Length}{normallineskip}
-% Minimaler Zeilenabstand:
+% \begin{length}{\lineskip,\normallineskip}
+% The minimum line skip.
% \begin{macrocode}
+%<*body>
\setlength{\lineskip}{\p@}
\setlength{\normallineskip}{\p@}
% \end{macrocode}
-% \end{Length}
-% \end{Length}
-%
-% \begin{Length}{columnsep}
-% \begin{Length}{columnseprule}
-% Spaltenabstand und Spaltentrennlinie (nicht bei Briefen):
-% \begin{macrocode}
-%<*!letter>
-\setlength{\columnsep}{10\p@}
-\setlength{\columnseprule}{\z@}
-%</!letter>
-% \end{macrocode}
-% \end{Length}
-% \end{Length}
+% \end{length}
%
-% \selectlanguage{english}
-% \begin{macro}{\selectfont}
+% \begin{command}{\selectfont}
+% \changes{v2.95}{2004/11/05}{added}
% \changes{v3.33}{2021/01/21}{from \LaTeX{} 2021/06/01 use hook instead of
-% patch}
-% Note, we use 2021/05/01 instead of the official \LaTeX{} release date,
-% because there were relevant earlier \LaTeX{} developer releases with that
-% date.
+% patch}
+% \begin{macro}{\scr@selectfont,\scr@new@selectfont}
+% \changes{v2.95}{2006/04/14}{added}
+% \changes{v3.10}{2010/09/28}{\pkg{everysel} support fixed}
+% \changes{v3.10}{2010/09/28}{\pkg{tracefnt} supported}
+% \changes{v3.10b}{2011/03/13}{\pkg{everysel} can be loaded inside
+% \cs{begin\{document\}}}
+% Because of \opt{parskip=relative} we need a hook to activate the changes of
+% the paragraph values. A good place to do so is \cs{selectfont}. With
+% \KOMAScript{} 3.00 we needed to patch this command. But from \LaTeX{}
+% 2021/06/01 we can use a new generic hook.
+% \begin{description}
+% \item[Note:] We use 2021/05/01 instead of the official \LaTeX{} release date,
+% because there were relevant earlier \LaTeX{} developer releases with that
+% date.
+% \end{description}
% \begin{macrocode}
\IfLTXAtLeastTF{2021/05/01}{%
\AddToHook{selectfont}{\par@update}%
@@ -503,25 +483,6 @@
}%
}%
}{%
-% \end{macrocode}
-% \selectlanguage{ngerman}
-% \changes{v2.95}{2004/11/05}{neue Änderung}
-% Spätestens ab Version~3.0 soll die Möglichkeit bestehen, |\parskip|,
-% |\parindent| und |\parfillskip| mit der Schriftgröße automatisch
-% anzupassen. Dazu muss |\selectfont| entsprechend erweitert werden.
-% \begin{macro}{\scr@selectfont}
-% \changes{v2.95}{2006/04/14}{neue Erweiterung}
-% \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert}
-% \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt}
-% \begin{macro}{\scr@new@selectfont}
-% \changes{v2.95}{2006/04/14}{neue Erweiterung}
-% \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert}
-% \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt}
-% \changes{v3.10b}{2011/03/13}{\textsf{everysel} kann jetzt auch während
-% \cs{begin}\marg{document} geladen werden}
-% Damit das auch bei Verwendung des \textsf{everysel}-Pakets funktioniert,
-% wird hier zusätzliche Vorsorge getroffen.
-% \begin{macrocode}
\newcommand*{\scr@selectfont}{}
\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname
\BeforePackage{everysel}{%
@@ -535,12 +496,6 @@
}%
\AfterPackage{everysel}{%
\scr@ifundefinedorrelax{@EverySelectfont@Init}{%
-% \end{macrocode}
-% Jetzt gibt es zwei Möglichkeiten: Entweder wurde ein \textsf{everysel}
-% verwendet, bei dem alles anders funktioniert, oder es wurde während
-% \cs{begin}\marg{document} geladen. In beiden Fällen versuchen wir einen
-% direkten Patch:
-% \begin{macrocode}
\expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont
\ClassWarningNoLine{\KOMAClassName}{%
\string\selectfont\space already changed}%
@@ -550,9 +505,6 @@
\csname selectfont \endcsname
\fi
}{%
-% \end{macrocode}
-% In diesem Fall muss hingegen indirekt gepatcht werden.
-% \begin{macrocode}
\g@addto@macro\@EverySelectfont@Init{%
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
\expandafter\let\expandafter\scr@new@selectfont
@@ -570,106 +522,22 @@
\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\par@updaterelative}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% Die eigentliche Änderung verbirgt sich in |\par@updaterelative|. Ggf. wird
-% |\par@update| zu |\par@updaterelative|.
-% \begin{macrocode}
-\newcommand*{\par@updaterelative}{%
-% \end{macrocode}
-% Die neuen Werte werden nur gesetzt, wenn die bisherigen Werten den
-% erwarteten Werten entsprechen. Sonst lassen wir lieber die Finger davon,
-% weil wir dann davon ausgehen, dass der Anwender die so setzen wollte.
-% \begin{macrocode}
- \begingroup
- \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent
- \aftergroup\parindent@update
-%<*trace>
- \else
- \ClassInfo{\KOMAClassName}{\string\parindent\space not changed}%
-%</trace>
- \fi
- \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip
- \aftergroup\parskip@update
-%<*trace>
- \else
- \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}%
-%</trace>
- \fi
- \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip
- \aftergroup\parfillskip@update
-%<*trace>
- \else
- \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}%
-%</trace>
- \fi
- \endgroup
-}
-% \end{macrocode}
-% \begin{macro}{\parindent@update}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% \begin{macro}{\parskip@update}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% \begin{macro}{\parfillskip@update}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% Ein paar Hilfsmakros.
-% \begin{macrocode}
-\newcommand*{\parindent@update}{%
- \scr@defaultunits\parindent\scr@parindent
- \begingroup
- \let\@tempb\endgroup
- \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent\else
- \def\@tempb{\endgroup\edef\f@parindent{\the\parindent}}%
-%<trace> \ClassInfo{\KOMAClassName}{\string\parindent=\the\parindent}%
- \fi
- \@tempb
-}
-\newcommand*{\parskip@update}{%
- \scr@defaultunits\parskip\scr@parskip
- \begingroup
- \let\@tempb\endgroup
- \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip\else
- \def\@tempb{\endgroup\edef\f@parskip{\the\parskip}}%
-%<trace> \ClassInfo{\KOMAClassName}{\string\parskip=\the\parskip}%
- \fi
- \@tempb
-}
-\newcommand*{\parfillskip@update}{%
- \scr@defaultunits\parfillskip\scr@parfillskip
- \begingroup
- \let\@tempb\endgroup
- \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip\else
- \def\@tempb{\endgroup\edef\f@parfillskip{\the\parfillskip}}%
-%<trace> \ClassInfo{\KOMAClassName}{\string\parfillskip=\the\parfillskip}%
- \fi
- \@tempb
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@selectfont,\scr@new@selectfont
+% \end{command}^^A \selectfont
%
% \begin{macro}{\scr@defaultunits}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% \changes{v3.19}{2015/08/22}{\cs{setlength} wegen \textsf{tikz}
-% eliminiert}%^^A
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v3.19}{2015/08/22}{\cs{setlength} replaced because of \pkg{tikz}}
% \begin{macro}{\scr@@defaultunits}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
+% \changes{v2.95}{2004/11/05}{added}
% \begin{macro}{\scr@@@defaultunits}
-% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
-% \changes{v3.19}{2015/08/22}{\cs{setlength} und \cs{addtolength} wegen
-% \textsf{tikz} eliminiert}%^^A
-% Damit |\par@updaterelative| überhaupt funktionieren kann, wird
-% |\scr@defaultunits| benötigt. Dieses Makro arbeitet prinzipiell wie
-% |\@defaultunits| bekommt aber Dimension bzw. Skip als erstes und den Wert
-% als zweites Argument. Als Besonderheit dürften im Wert auch andere
-% Dimensions bzw. Skips vor und nach \texttt{plus} und \texttt{minus}
-% verwendet werden. Es sind also auch Angaben der Art "`\texttt{12 plus 1
-% minus 2}"' sowie
-% "`\texttt{\string\baselineskip\string\@plus.1\string\baselineskip}"'
-% gültig.
+% \changes{v2.95}{2004/11/05}{added}
+% \changes{v3.19}{2015/08/22}{\cs{setlength} and \cs{addtolength} replaced
+% because of \pkg{tikz}}
+% Above we've already used \cs{scr@defaultunits} inside
+% \cs{par@updaterelative}. This is very similar to the \LaTeX{} kernel macro
+% \cs{@defaultunits}, but accepts dimensions or skips as first and second
+% value.
% \begin{macrocode}
\newcommand*{\scr@defaultunits}[2]{%
\begingroup
@@ -702,23 +570,27 @@
\advance#1\@tempskipa
\fi
}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@@@defaultunits
+% \end{macro}^^A \scr@@defaultunits
+% \end{macro}^^A \scr@defaultunits
+%
+% \subsection{Extra list code}
%
-% Absatzabstand und Absatzeinzug:
% \begin{macro}{\@list@extra}
-% \changes{v2.8q}{2001/11/06}{neu (intern)}%^^A
-% \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed}
+% \changes{v2.8q}{2001/11/06}{added}
+% \changes{v2.95c}{2006/08/03}{\len{parsep} fixed}
% \begin{macro}{\add@extra@listi}
-% \changes{v2.9h}{2002/09/03}{neu (intern)}%^^A
-% Ab Version 2.8i wird hier optionsabhängig gearbeitet. Dabei müssen
-% auch die Befehle bei der Umschaltung der Schriftgröße für \cs{small}
-% und \cs{footnotesize} geändert werden.
+% \changes{v2.9h}{2002/09/03}{added}
+% Some parameters of lists have to change, depending on the settings for
+% paragraphs.
+% \begin{description}
+% \item[ToDo:] Move this code to \file{scrkernel-listsandtabulars.dtx} or
+% \file{scrkernel-fontsizes.dtx}.
+% \end{description}
% \begin{macrocode}
+%<*body>
\newcommand*{\@list@extra}{%
\ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi
}
@@ -726,20 +598,27 @@
\expandafter\let\csname #1@listi\endcsname=\@listi
\def\@listi{\csname #1@listi\endcsname\@list@extra}%
}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@list@extra
+% \end{macro}^^A \add@extra@listi
+%
+% \subsection{Patching other packages}
%
-% \selectlanguage{english}
-% \begin{macro}{\deferred@thm@head}%^^A
-% \changes{v3.27}{2019/02/10}{new patch of \textsf{amsthm}}%^^A
-% Unfortunatly \Package{amsthm} has a problem if a class handles \cs{topsep}
-% this way, because it is only prepared for the case, that \cs{parskip} and
-% \cs{parsep} are changed manually without influence to \cs{topsep}. So the
+% \begin{macro}{\deferred@thm@head}
+% \changes{v3.27}{2019/02/10}{new patch of \textsf{amsthm}}
+% Unfortunatly \pkg{amsthm} has a problem if a class handles \len{topsep}
+% this way, because it is only prepared for the case, that \len{parskip} and
+% \len{parsep} are changed manually without influence to \len{topsep}. So the
% initial distance is missing. To avoid this problem, we need to patch the
% package's internal command \cs{deferred@thm@head}. This is not nice, but
% unfortunaltly needed.
+% \begin{description}
+% \item[ToDo:] Move this code to the package patch code of
+% \file{scrkernel-miscellaneous.dtx} resp. a new file as noted there.
+% \end{description}
% \begin{macrocode}
+%<*body>
\AfterPackage{amsthm}{%
\RequirePackage{xpatch}%
\xpatchcmd{\deferred@thm@head}{\addvspace{-\parskip}}{}{%
@@ -753,37 +632,33 @@
}%
}%
}
+%</body>
% \end{macrocode}
% \end{macro}
-% \selectlanguage{ngerman}
-% \iffalse
-%</body>
-%</class>
-%<*class|clo>
-%<*body|10pt|11pt|12pt>
-% \fi
-% \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien}%^^A
-% \changes{v3.17}{2015/03/25}{Aktualisierung der Absatzeinstellungen}%^^A
+%
+% \subsection{Extra code for font sizes}
+%
+% \begin{description}
+% \item[ToDo:] Move this to \file{scrkernel-fontsizes.dtx}.
+% \end{description}
+% \begin{macrocode}
+% \end{macrocode}
+%
+% \changes{v2.98c}{2008/03/26}{changed to be used in font size files}
+% \changes{v3.17}{2015/03/25}{update of paragraph settings}
% \begin{macro}{\@listi}
-% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
-% ersetzt}
+% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} replaced by \cs{l@addto@macro}}
% \changes{v3.01}{2008/11/13}{\cs{@listi} wird auf jeden Fall ausgeführt}
% \begin{macro}{\@listI}
-% \begin{macro}{\@listii}
-% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
-% ersetzt}
-% \begin{macro}{\@listiii}
-% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
-% ersetzt}
-% \begin{macro}{\footnotesize}
-% \changes{v2.9h}{2002/09/03}{etwas robuster}%^^A
-% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
-% ersetzt}
-% \begin{macro}{\small}
-% \changes{v2.9h}{2002/09/03}{etwas robuster}%^^A
-% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
-% ersetzt}
+% \begin{macro}{\@listii,\@listiii}
+% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} replaced by \cs{l@addto@macro}}
+% \begin{command}{\footnotesize,\small}
+% \changes{v2.9h}{2002/09/03}{improved}
+% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} replaced by \cs{l@addto@macro}}
% \begin{macrocode}
+%</class>
+%<*class|clo>
+%<*body|10pt|11pt|12pt>
%<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{%
%<10pt|11pt|12pt> \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi
\l@addto@macro{\@listi}{\@list@extra}%
@@ -794,46 +669,56 @@
\l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
%<10pt|11pt|12pt>}
%<10pt|11pt|12pt>\@listi
+%</body|10pt|11pt|12pt>
+%</class|clo>
+%<*class>
% \end{macrocode}
+% \end{command}
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \iffalse
-%</body|10pt|11pt|12pt>
-%</class|clo>
-%<*class>
-%<*body>
-% \fi
%
%
-% \subsection{Umbruchsteuerung}
+% \subsection{Page layout parameters}
%
-% Für die Umbruchsteuerung sind einige Penalties zuständig. Diese sind
-% im \LaTeX-Kern definiert. Leider sind \cs{@lowpenalty},
-% \cs{@medpenalty} und \cs{@highpenalty} aber nicht mit
-% Voreinstellungen versehen, besitzen einheitlich die Voreinstellung
-% 0. Hier werden deshalb die Werte aus den Standardklassen übernommen:
+% \begin{length}{\columnsep,\columnseprule}
+% Initial column separation. Note, we do not support two column letters. So
+% this is not initialized for the letter class.
% \begin{macrocode}
+%<*!letter&body>
+\setlength{\columnsep}{10\p@}
+\setlength{\columnseprule}{\z@}
+%</!letter&body>
+% \end{macrocode}
+% \end{length}
+%
+%
+% \subsection{Penalties}
+%
+% The initial values for the penalties are the same as for the standard classes.
+% \begin{macrocode}
+%<*body>
\@lowpenalty = 51
\@medpenalty =151
\@highpenalty =301
+%</body>
% \end{macrocode}
%
%
-% \iffalse
-%</body>
+% \begin{macrocode}
%</class>
-% \fi
-%
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-paragraphs.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:
+
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx b/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx
index b3d2f623cf..4c891a8620 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{223}
% \iffalse meta-comment
% ======================================================================
% scrkernel-pseudolengths.dtx
-% Copyright (c) Markus Kohm, 2006-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-pseudolengths.dtx
-% Copyright (c) Markus Kohm, 2006-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-pseudolengths.dtx 3262 2019-10-10 08:25:29Z kohm $
+%%% From File: $Id: scrkernel-pseudolengths.dtx 3701 2022-02-14 09:17:40Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $
+ \filedate$Date: 2022-02-14 10:17:40 +0100 (Mo, 14. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
+ \filerevision$Revision: 3701 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-pseudolengths.dtx}%
@@ -74,93 +36,106 @@
(pseudo length)]
}%
\reserved@a
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-pseudolengths.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}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-pseudolengths.dtx}
\end{document}
%</dtx>
-% \fi
+% \fi^^A meta-comment
+%
+% \changes{v2.95}{2002/06/20}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/14}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/14}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-pseudolengths.dtx}
+% \title{Handling of Lengths Stored in Macros for
+% \href{https://komascript.de}{\KOMAScript} Letter Class and Packages}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-pseudolength.dtx} provides storing lengths in macros. This
+% feature has been introduced with \cls*{scrlttr2} in 2002, because at that
+% time there where only 256 skip registers for \LaTeX{} lengths and
+% \cls*{scrlttr2} needs several lengths to specify the positions of several
+% notepaper elements. Some time later The \LaTeX{} Team (at long last) has
+% decided to recommend \eTeX{} as \TeX{} engine for
+% \LaTeX.\!\footnote{Currently \pdfTeX{} with \eTeX{} extensions is the
+% recommended \TeX{} engine for \LaTeX.} \,Therefore the usage of the so
+% called \emph{pseudo lengths} in \KOMAScript{} wouldn't be necessary any
+% longer. But they exist and will be used at least for compatibility also in
+% future versions of \cls*{scrlttr2} and \pkg*{scrletter}.
+% \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 Package \pkg*{typearea} and Additional Class
+% Features}
%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2006/03/22}{%
-% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
-%
-% \section{Pseudo-Längen für Briefe}
-%
-% Pseudo-Längen wurden für \textsf{scrlttr2} eingeführt, um Längenregister zu
-% sparen. Tatsächlich hat das \LaTeX-Team kurz darauf entschieden, dass
-% künftig \eTeX{} die empfohlene Maschine für \LaTeX{} sein soll, wodurch die
-% Einführung von Pseudo-Längen nachträglich überflüssig wurde. Es gibt sie nun
-% aber einmal und aus Gründen der Kompatiblität wird es sie für Briefe auch
-% weiterhin geben.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
+% \begin{macrocode}
%<*letter>
-% \fi
-%
-% \iffalse
-%<*option>
-% \fi
-%
-% \subsection{Option}
-% Das Prinzip der Pseudo-Längen wird nicht durch Optionen beeinflusst.
+% \end{macrocode}
+%
+% \subsection{Options}
+% The method of pseudo lengths is not influenced by options.
%
%
-% \iffalse
-%</option>
-%<*body>
-% \fi
+% \subsection{Commands and macros for pseudo lengths}
%
-% \subsection{Anweisungen für Pseudo-Längen}
+% For the calculation of the positions of several elements of the notepaper
+% several lengths are needed. To not use a lot \LaTeX{} lengths (and therefore
+% \TeX{} skip registers) they are stored in macros. So we also need some
+% additional commands to not only store lengths values in macros but also for
+% arithmetic operations on such macros and even to test, if a pseudo lengths
+% exists or not.
%
-% Zu Berechnung der Feldpositionen werden verschiedene Dimensions-Variablen
-% benötigt. Um jedoch nicht unnötig viele Längenregister zu verbrauchen, wird
-% hier mit einer Pseudo-Längen-Arithmetik gearbeitet.
%
-% \selectlanguage{english}%^^A
-% \begin{macro}{\Ifplength}
-% \changes{v3.27}{2019/03/29}{new}%^^A
+% \begin{command}{\Ifplength}
+% \changes{v3.27}{2019/03/29}{added}
% \begin{macro}{\if@plength}
-% \changes{v3.27}{2019/03/29}{new (internal)}%^^A
+% \changes{v3.27}{2019/03/29}{added}
+% \changes{v3.36}{2022/02/14}{deprecated}
% Test whether or not a given pseudo-length (\texttt{\#1}) already exists. If
-% so execute the second argument, otherwise the third. It's somehow
-% inconsistent to use \cs{Ifplength} instead of \cs{ifplength}, but as it does
-% not act as a \TeX{} switch but a \LaTeX{} command it is better not to use
-% \cs{if\dots}.
+% so execute argument \texttt{\#2}, otherwise \texttt{\#3}.
% \begin{macrocode}
-\newcommand*{\if@plength}[1]{%
+%<*body>
+\newcommand*{\Ifplength}[1]{%
\@ifundefined{ltr@len@#1}{\@secondoftwo}{\@firstoftwo}%
}
-\newcommand*{\Ifplength}{\if@plength}
+\newcommand*{\if@plength}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ Internal macro `\string\if@plength' is deprecated.\MessageBreak
+ Please use `\string\Ifplength' instead}%
+ \Ifplength
+}
% \end{macrocode}
-% \end{macro}%^^A\Ifplength
-% \end{macro}%^^A\if@plength
-% \selectlanguage{ngerman}%^^A
+% \end{macro}^^A \if@plength
+% \end{command}^^A \Ifplength
+%
%
+% \begin{command}{\newplength}
+% \changes{v2.8q}{2001/10/06}{added}
+% \changes{v2.8q}{2001/10/06}{retired compatibility to
+% \cls[https://www.ctan.org/pkg/koma-script-obsolete]{scrlettr}}
+% \changes{v3.26}{2018/04/26}{user command instead of internal macro}
+% \changes{v3.27}{2019/03/29}{changed error message}
% \begin{macro}{\@newplength}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% \changes{v2.8q}{2001/10/06}{Kompatibilität zu \texttt{scrlettr.cls}%^^A
-% aufgegeben}
-% \changes{v3.27}{2019/03/29}{Fehlermeldung angepasst}%^^A
-% Dieses Makro definiert eine neue Pseude-Länge und setzt sie auf den
-% Wert 0. Eine Pseudo-Länge ist ein Makro, das eine Länge enthält.
+% \changes{v3.36}{2022/02/14}{deprecated}
+% Define a new pseudo length (\texttt{\#1}) and initialize it with 0.
% \begin{macrocode}
-\newcommand*{\@newplength}[1]{%
+\newcommand*{\newplength}[1]{%
\@ifundefined{ltr@len@#1}{%
\expandafter\let\csname ltr@len@#1\endcsname=\z@%
}{%
@@ -169,63 +144,64 @@
}{%
pseudo-length \expandafter\string\csname ltr@len@#1\endcsname
already defined%
- }{%
+ }{%
You've tried to define a new pseudo-length using\MessageBreak
\string\@newplength\space
or \string\newplength.\MessageBreak
- Please, try another name}%
+ Please, try another name%
}%
- }
+ }%
+}
+\newcommand*{\@newplength}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ Internal macro `\string\@newplength' is deprecated.\MessageBreak
+ Please use `\string\newplength' instead}%
+ \newplength
+}
% \end{macrocode}
% \end{macro}
+% \end{command}
%
-% \begin{macro}{\newplength}
-% \changes{v3.26}{2018/04/26}{Neu}
-% Anweisung auf Anwenderebene verfügbar.
-% \begin{macrocode}
-\newcommand*{\newplength}{\@newplength}
-% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\useplength}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% \changes{v2.97c}{2007/09/17}{\cs{dimexpr} statt \cs{number} verwendet,
-% wenn \eTeX{} verwendet wird}
-% \changes{v3.25}{2017/11/29}{\eTeX{} ist zwingend}
-% \changes{v3.25}{2017/11/29}{\cs{dimexpr} durch \cs{glueexpr} ersetzt}%^^A
-% Natürlich muss auf eine solche Pseudo-Länge auch wieder lesend
-% zugeriffen werden können. Wir definieren dies hier so, dass es
-% außerdem möglich ist, ein Vorzeichen oder einen Faktor zu verwenden. Dafür
-% wird allerdings \eTeX{} benötigt.
+% \begin{command}{\useplength}
+% \changes{v2.8q}{2001/10/06}{added}
+% \changes{v2.97c}{2007/09/17}{with \eTeX{} using \cs{dimexpr} instead of \cs{number}}
+% \changes{v3.25}{2017/11/29}{\eTeX{} is mandatory}
+% \changes{v3.25}{2017/11/29}{\cs{dimexpr} replaced by \cs{glueexpr}}
+% Read the value of a pseudo length like a skip register. This can be done
+% using \cs{glueexpr}.
% \begin{macrocode}
\newcommand*{\useplength}[1]{%
\glueexpr \csname ltr@len@#1\endcsname\relax}%
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\setlengthtoplength}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Eine echte Länge soll auf das Vielfache einer Pseudo-Länge gesetzt
-% werden. Dabei wird der Faktor als optionaler Parameter übergeben.
-% Der erste obligatorische Parameter ist die Länge, der zweite
-% obligatorische Parameter ist die Pseudo-Länge.
+% \end{command}
+%
+% \begin{command}{\setlengthtoplength}
+% \changes{v2.8q}{2001/10/06}{added}
+% Set a real \LaTeX{} length (usually a \TeX{} skip, but \TeX{} dimensions are
+% also valid) to a multiple of a pseudo length. The factor is given by the
+% optional argument \texttt{\#1}. The length is mandatory argument \textrm{\#2}
+% and the name of the pseudo length the also mandatory \texttt{\#3}.
% \begin{macrocode}
\newcommand*{\setlengthtoplength}[3][]{%
\setlength{#2}{\useplength{#3}}%
\setlength{#2}{#1#2}}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
+% \begin{command}{\setplength}
+% \changes{v2.8q}{2001/10/06}{added}
+% \changes{v3.25}{2017/11/29}{\cs{glueexpr} eingefügt}
+% \changes{v3.36}{2018/04/26}{user command instead of internal macro}
% \begin{macro}{\@setplength}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% \changes{v3.25}{2017/11/29}{\cs{glueexpr} eingefügt}%^^A
-% Natürlich wird ebenfalls eine Möglichkeit benötigt, einer
-% Pseudo-Länge einen Wert zuzuweisen. Dies geschieht unter lokaler
-% Anwendung einer Länge, damit sichergestellt ist, dass eine
-% Längenangabe übergeben wird. Dabei wird das zuvor definierte Makro
-% \cs{setlengthtoplength} verwendet.
+% \changes{v3.36}{2022/02/14}{deprecated}
+% We also need a command to set a pseudo length (\texttt{\#2}) to a new value
+% (\texttt{\#3}). Locally we use a length to do so, because we want error
+% messages about illegal values here and not when using the pseudo value. Once
+% more an optional factor (\texttt{\#1}) is provided (but does not make much sense).
% \begin{macrocode}
-\newcommand*{\@setplength}[3][]{%
+\newcommand*{\setplength}[3][]{%
\begingroup%
\setlength{\@tempskipa}{\glueexpr #3\relax}%
\setlength{\@tempskipa}{#1\@tempskipa}%
@@ -235,27 +211,24 @@
}%
\@tempa
}
+\newcommand*{\@setplength}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ Internal macro `\string\@setplength' is deprecated.\MessageBreak
+ Please use `\string\setplength' instead}%
+ \setplength
+}
% \end{macrocode}
% \end{macro}
+% \end{command}
%
-% \begin{macro}{\setplength}
-% \changes{v3.26}{2018/04/26}{Neu}%^^A
-% Anweisung auf Anwenderebene verfügbar.
-% \begin{macrocode}
-\newcommand*{\setplength}{\@setplength}
-% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\setplengthtowidth}
-% \changes{v3.26}{2018/04/26}{Neu}
-% \begin{macro}{\setplengthtoheight}
-% \changes{v3.26}{2018/04/26}{Neu}
-% \begin{macro}{\setplengthtodepth}
-% \changes{v3.26}{2018/04/26}{Neu}
-% \begin{macro}{\setplengthtototalheight}
-% \changes{v3.26}{2018/04/26}{Neu}
-% Man kann auch die Breite, Höhe, Tiefe oder Höhe + Tiefe eines Inhalts
-% verwenden, um eine Pseudolänge zu definieren.
+% \begin{command}{\setplengthtowidth,\setplengthtoheight,\setplengthtodepth,
+% \setplengthtototalheight}
+% \changes{v3.26}{2018/04/26}{added}
+% First three commands are similar to \cs{settowidth}, \cs{settoheight} and
+% \cs{settodepth} but with pseudo length instead of a \LaTeX{} length. The
+% last one is a combination of \cs{setplengthtoheight} + \cs{setplengthtodepth}.
% \begin{macrocode}
\newcommand*{\setplengthtowidth}[3][]{%
\begingroup
@@ -300,33 +273,35 @@
\@tempa
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+%
%
-% \begin{macro}{\addtolengthplength}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% Wenn wir schon dabei sind, soll statt dem Setzen auch das Addieren
-% funktionieren. Hier ist die Erschwernis, dass der Faktor nur für
-% die Pseudo-Länge und nicht für das Endergebnis gelten soll.
+% \begin{command}{\addtolengthplength}
+% \changes{v2.8q}{2001/10/06}{added}
+% This provides a plus operation of a pseudo length \texttt{\#3} to a \LaTeX{}
+% length \texttt{\#2}. Again an optional factor \texttt{\#1} is possible.
% \begin{macrocode}
\newcommand*{\addtolengthplength}[3][]{%
\begingroup%
\setlengthtoplength[{#1}]{\@tempskipa}{#3}%
\edef\@tempa{\endgroup%
\noexpand\addtolength{#2}{\the\@tempskipa}}%
- \@tempa%
- }
+ \@tempa%
+}
% \end{macrocode}
+% \end{command}
+%
%
+% \begin{command}{\addtoplength}
+% \changes{v2.8q}{2001/10/06}{added}
+% \changes{v3.25}{2017/11/29}{using \cs{glueexpr}}
+% \changes{v3.36}{2018/04/26}{user command instead of internal macro}
% \begin{macro}{\@addtoplength}
-% \changes{v2.8q}{2001/10/06}{Neu}%^^A
-% \changes{v3.25}{2017/11/29}{\cs{glueexpr} eingefügt}%^^A
-% Ebenso wird ein Makro benötigt, mit dem zu einer Pseudo-Länge das
-% Vielfache eines Wertes addiert werden kann.
+% \changes{v3.36}{2022/02/14}{deprecated}
+% This provides a plus operation for one pseudo length \texttt{\#3} to another
+% pseudo length \texttt{\#2}. Again an optional factor \texttt{\#1} is possible.
% \begin{macrocode}
-\newcommand*{\@addtoplength}[3][]{%
+\newcommand*{\addtoplength}[3][]{%
\begingroup%
\setlength{\@tempskipa}{\glueexpr #3\relax}%
\setlength{\@tempskipa}{#1\@tempskipa}%
@@ -335,34 +310,33 @@
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}%
}%
- \@tempa%
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\addtoplength}
-% \changes{v3.26}{2018/04/26}{Neu}
-% Anweisung auf Anwenderebene verfügbar.
-% \begin{macrocode}
-\newcommand*{\addtoplength}{\@addtoplength}
+ \@tempa%
+}
+\newcommand*{\@addtoplength}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ Internal macro `\string\@addtoplength' is deprecated.\MessageBreak
+ Please use `\string\addtoplength' instead}%
+ \addtoplength}
+%</body>
% \end{macrocode}
% \end{macro}
+% \end{command}
%
-% \iffalse
-%</body>
-% \fi
%
-% \iffalse
+% \begin{macrocode}
%</letter>
-% \fi
-%
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-pseudolengths.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx b/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx
index 35ffefe9de..71ceb54ce7 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-sections.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-sections.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-sections.dtx 3621 2021-10-15 10:20:41Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 3770 2022-03-22 16:27:02Z kohm $
% The runs of run-time file generation:
%<preidentify>%%% (run: preidentify)
% - everything that is needed before selfidentification of resulting files
@@ -73,13 +37,12 @@
%<exit>%%% (run: exit)
% - everything, that should be done immediately before leaving the file
%<*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-10-15 12:20:41 +0200 (Fri, 15 Oct 2021) $
+ \filedate$Date: 2022-03-22 17:27:02 +0100 (Di, 22. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3621 $
+ \filerevision$Revision: 3770 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-sections.dtx}%
@@ -87,87 +50,89 @@
KOMA-Script source (disposition)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-sections.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}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-sections.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.3h}{1996/01/20}{configurable font sized for headings}
+% \changes{v2.95}{2002/06/26}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.15}{2014/12/09}{reordered code in \file{scrkernel-sections.dtx}}
+% \changes{v3.36}{2022/03/08}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/21}{the whole implementation documentation in English}
%
-% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften
-% variabilisiert}%^^A
-% \changes{v2.95}{2002/06/26}{erste Version aus der Aufteilung von
-% \texttt{scrclass.dtx}}%^^A
-% \changes{v3.15}{2014/12/09}{Code in Datei \texttt{scrkernel-section} komplett
-% umsortiert}%^^A
+% \GetFileInfo{scrkernel-sections.dtx}
+% \title{The Code for Parts, Chapters, Sections etc.\@ of
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-sections.dtx} implements all the options, macros and user
+% commands used for the sectioning of documents.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Gliederung}
+% \section{User Manual}
%
-% Zur Gliederung gehören neben den üblichen Gliederungsbefehlen
-% \cs{chapter} \dots \cs{subparagraph} auch alle Optionen und Befehle,
-% die diese Gliederung beeinflussen. Eingeschränkt gehören auch die
-% Befehle dazu, die Inhaltsverzeichniseinträge zu den
-% Gliederungsbefehlen erzeugen oder unmittelbar formatieren. Diese
-% Entscheidung wurde getroffen, weil die Zusammengehörigkeit eher hier
-% gesehen wird, als bei den Verzeichnissen selbst.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt}
+% \section{Implementation of Parts, Chapters, Section etc.}
%
-% Die Briefklasse hat keine derartige Gliederung. Beim Briefpaket wird die
-% Gliederung über die verwendete Klasse bestimmt.
-% \iffalse
-%<*!letter>
-% \fi
+% The letter class does not provide sectioning.
+% \begin{macrocode}
+%<*class&!letter>
+% \end{macrocode}
%
-% \subsection{Vakatseiten}
+% \begin{macro}{@maybeasf}
+% \changes{v2.8e}{2001/07/10}{removed}
+% \end{macro}
%
-% Bei \textsf{scrbook} und \textsf{scrreprt} gibt es im doppelseitigen Modus
-% ggf. Vakatseiten.
+% \subsection{Interleaf pages}
+%
+% With \cls*{scrbook} and \cls*{scrreprt} chapters can optionally (or by
+% default) start automatically on a odd page. So if the last page before
+% already was an odd page, we have to insert a so called interleaf page. The
+% main handling of interleaf pages is already defined in
+% \file{scrkernel-pagestyles.dtx} (but there is a ToDo note to move is to a
+% new file). Here we only support the optional selection of the start page of
+% a chapter.
%
% \begin{option}{open}
-% \changes{v2.98c}{2008/03/06}{Neue Option}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}%^^A
-% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt
-% werden, ob beispielsweise Kapitel nur auf linken oder rechten Seiten
-% beginnen dürfen oder auf jeder Seite.
-% \begin{macro}{\if@openright}
-% \begin{macro}{\@openrighttrue}
-% \begin{macro}{\@openrightfalse}
-% Der Zustand wird dann in einem Schalter und durch umdefinieren von
-% \cs{cleardoublestandardpage} gespeichert. Die Voreinstellungen sind je nach
-% Klasse unterschiedlich.
-% \begin{macrocode}
-%<*class>
+% \changes{v2.98c}{2008/03/06}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/09}{using internal value storage}
+% \changes{v3.18}{2015/05/22}{initialization using \opt{headings}}
+% \begin{macro}{\@openrighttrue,\@openrightfalse,\if@openright}
+% The option supports three values:
+% \begin{center}
+% \begin{tabular}{llll}
+% \opt{open} & \cs{if@openright} & \cs{cleardoublestandardpage} &
+% meaning\\\hline
+% \opt{=any} & \cs{iffalse} & \cs{cleardoubleoddstandardpage} &
+% chapters on any page\\
+% \opt{=right} & \cs{iftrue} & \cs{cleardoubleoddstandardpage} &
+% chapters on odd pages\\
+% \opt{=left} & \cs{iftrue} & \cs{cleardoubleevenstandardpage} &
+% chapters on even pages\\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
%<*book|report>
%<*prepare>
\newif\if@openright
%<report>\@openrightfalse
%<book>\@openrighttrue
%</prepare>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macrocode}
%<*option>
\KOMA@key{open}{%
\KOMA@set@ncmdkey{open}{@tempa}{%
@@ -196,58 +161,57 @@
\fi
}
%</option>
-% \end{macrocode}
-% \changes{v3.18}{2015/05/22}{indirekte Initialisierung}
-% Die Initialisierung erfolgt indirekt über Option \texttt{headings}.
-% \begin{macrocode}
%<*execoption>
%<book>\KOMAExecuteOptions{headings=openright}
%<report>\KOMAExecuteOptions{headings=openany}
%</execoption>
% \end{macrocode}
-% \end{option}
+% \end{macro}^^A \if@openright
+% \end{option}^^A open
%
-% \begin{option}{openright}
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% \begin{option}{openany}
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% Zusätzlich gibt es einige Standardoptionen, die natürlich auch mit
-% \KOMAScript{} funktionieren sollen.
+% \begin{option}{openright,openany}
+% \changes{v2.98c}{2008/03/05}{obsolete}
+% \changes{v3.01a}{2008/11/21}{standard instead of obsolete}
+% Two deprecated options of \KOMAScript{} 2.
% \begin{macrocode}
%<*option>
\KOMA@DeclareStandardOption{openright}{open=right}
\KOMA@DeclareStandardOption{openany}{open=any}
%</option>
%</book|report>
-%</class>
% \end{macrocode}
-% \end{option}
-% \end{option}
+% \end{option}^^A openright,openany
%
%
-% \subsection{Behandlung von Gliederungsnummern}
+% \subsection{Numbers and the auto dot feature}
%
-% Die Möglichkeit der Nummerierung ist allen Ebenen bis auf \cs{minisec}
-% gemeinsam.
+% Not only parts, chapter, section etc.\@ are numbered. But several other
+% numbers are related to these numbers. The feature we define here is also
+% known as the auto dot feature.
%
% \begin{option}{numbers}
-% \changes{v2.98c}{2008/03/07}{Neue Option}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}%^^A
-% Dies ist die zentrale Option zur Konfiguration der Nummerierung. Dabei geht
-% es primär um die Gliederungsnummern, es sind jedoch auch davon abgeleitete
-% Nummern betroffen.
+% \changes{v2.98c}{2008/03/07}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/09}{using internal value storage}
% \begin{macro}{\scr@dotchangeatdocument}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}%^^A
-% Da die Umschaltung zwischen automatischem Endpunkt, immer Endpunkt und kein
-% Endpunkt unbedingt \emph{vor} \cs{begin{document}} erfolgen muss, wird eine
-% Fehlermeldung ausgegeben, falls das jemand zu einem späteren Zeitpunkt
-% probiert. Umschaltmöglichkeiten sind auf die Klassen beschränkt.
+% \changes{v2.98c}{2008/03/07}{added}
+% The \opt{numbers} option provides several settings for the dot at the end of
+% such numbers. But because the setting is always document global, this option
+% cannot be changed inside the document, but in the document preamble only. If
+% you try to change it inside the document, the error of
+% \cs{scr@dotchangedatdocument} will be raised. Currently following values to
+% the option are supported:
+% \begin{center}
+% \begin{tabular}{ll}
+% \opt{numbers} & meaning\\\hline
+% \opt{=auto} & automatically detect, if the dot has to be added\\
+% \opt{=enddot} & always use a dot at the end\\
+% \opt{=noenddot}& don't use a dot at the end\\
+% \end{tabular}
+% \end{center}
+% The criterion for automatically adding a dot is: Does any sectioning number
+% contain something else but an Arabic number for a number portion?
% \begin{macrocode}
-%<*class>
%<*prepare>
\newcommand*{\scr@dotchangeatdocument}[1]{%
\ClassError{\KOMAClassName}{%
@@ -259,15 +223,6 @@
}%
}
%</prepare>
-% \end{macrocode}
-% \end{macro}
-% Normalerweise wird automatisch entschieden, ob Nummern mit einem
-% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der
-% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit
-% entfernt werden. Die Umschaltung kann jedoch nicht direkt erfolgen, sondern
-% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro
-% umgeschaltet, das dort verwendet wird.
-% \begin{macrocode}
%<*option>
\KOMA@key{numbers}{%
\KOMA@set@ncmdkey{numbers}{@tempa}{%
@@ -297,62 +252,180 @@
%</option>
%<execoption>\KOMAExecuteOptions{numbers=autoendperiod}
% \end{macrocode}
-% \end{option}
-%
-% \begin{option}{pointednumbers}
-% \changes{v2.3h}{1995/01/19}{neue Option}%^^A
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so,
-% bei \texttt{pointednumber} wird explizit ein Fehler gemeldet}
-% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformatfalse} wird
-% direkt auf \cs{@altsecnumformattrue} gesetzt}
-% \changes{v2.98c}{2008/03/07}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{pointlessnumbers}
-% \changes{v2.3h}{1995/01/19}{neue Option}%^^A
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so,
-% bei \texttt{pointlessnumber} wird explizit ein Fehler gemeldet}
-% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformattrue} wird direkt
-% auf \cs{@altsecnumformatfalse} gesetzt}
-% \changes{v2.98c}{2008/03/07}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Diese Optionens sind nun wirklich veraltet und sollten nicht mehr verwendet
-% werden!
+% \end{macro}^^A \scr@dotchangeatdocument
+% \end{option}^^A numbers
+%
+% \begin{option}{pointednumbers,pointlessnumbers}
+% \changes{v2.3h}{1995/01/19}{added}
+% \changes{v2.4g}{1996/11/04}{option name fixed}
+% \changes{v2.4g}{1996/11/04}{immediate setting \cs{@altsecnumformatfalse}
+% to \cs{@altsecnumformattrue}}
+% \changes{v2.98c}{2008/03/07}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Two deprecated options.
% \begin{macrocode}
%<*option>
\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot}
\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot}
%</option>
% \end{macrocode}
-% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber
-% das ist nun nicht mehr zu ändern.
-% \end{option}
-% \end{option}
+% \end{option}^^A pointednumbers,pointlessnumbers
+%
+% \begin{command}{\autodot}
+% \changes{v2.7}{2001/01/03}{added}
+% \begin{macro}{\@altsecnumformattrue,\@altsecnumformatfalse,\if@altsecnumformat}
+% \changes{v2.3c}{1995/08/06}{added}
+% \begin{macro}{\@autodottrue,\@autodotfalse,\if@autodot}
+% \changes{v2.8e}{2001/07/10}{added}
+% \changes{v2.9k}{2003/01/12}{write to \cs{@mainaux}}
+% \changes{v2.95}{2004/01/15}{write to \cs{@mainaux} just before closing the
+% file}
+% \changes{v2.96a}{2006/12/07}{using \cs{immediate}}
+% \changes{v3.00}{2008/10/07}{global}
+% \changes{v3.20}{2016/03/25}{using \cs{csname}\dots\cs{endcsname}}
+% Depending on \cs{if@altsecnumformat} \cs{autodot} shows a dot or nothing.
+% \begin{description}
+% \item[ToDo:] Add an optional look forward feature to also not add a dot, if
+% the next character is a punctuation character, e.g. a dot, semicolon,
+% comma etc.
+% \end{description}
+% \cs{if@autodot} is the current result of the inspection of all sectioning
+% numbers. If it is \cs{iftrue}, switching on the dot will be written to the
+% main \file{aux}-file.
+% \begin{macrocode}
+%<*prepare>
+\newif\if@altsecnumformat\@altsecnumformatfalse
+\newif\if@autodot
+\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
+\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
+\@autodotfalse
+%</prepare>
+%<*body>
+\BeforeClosingMainAux{%
+ \if@autodot\if@filesw\immediate\write\@mainaux{%
+ \string\global\string\csname\space @altsecnumformattrue\string\endcsname}%
+ \fi\fi}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \if@autodot
+% \end{macro}^^A \if@altsecnumformat
+%
+% \begin{macro}{\scr@altsecnumhook,\scr@altsecnumhooktrue,\scr@altsecnumhookfalse}
+% \changes{v2.98c}{2008/03/07}{added}
+% Used by option \opt{numbers} for (de-)activation of the dot in the document
+% preamble and to overwrite the setting found in the \file{aux}-file.
+% \begin{description}
+% \item[Note:] The hook is executed after reading the main \file{aux}-file. So
+% the overwriting of the setting does work. It is needed as long a boolean
+% switch is used, because otherwise option \opt{numbers=auto} would not be
+% able to reset option \opt{numbers=enddot} ot \opt{numbers=noenddot}. With
+% this code we simply can use an empty \cs{scr@altsecnumhook} for
+% \opt{numbers=auto} and two compellent definitions for the other cases.
+% \end{description}
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\scr@altsecnumhook}{}
+\AtBeginDocument{\scr@altsecnumhook}
+\newcommand*{\scr@altsecnumhooktrue}{%
+ \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
+}
+\newcommand*{\scr@altsecnumhookfalse}{%
+ \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
+}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \scr@altsecnumhook,\scr@altsecnumhooktrue,\scr@altsecnumhookfalse
+%
+% \begin{macro}{\@maybeautodot,\@@maybeautodot}
+% \changes{v2.8e}{2001/07/10}{added}
+% \changes{v3.00}{2008/10/07}{not any longer needed \cs{aftergroup} removed}
+% We scan a \cs{the\meta{counter}} command to decide, if the automatic dot has
+% to be added (later). It sets \cs{@autodottrue}, if there is any kind of
+% alphabetic or Roman numbering command inside the one time expansion of the
+% \cs{the\meta{counter}} given as argument.
+% \begin{description}
+% \item[Note:] This is a heuristic only. It would, e.g., fail, if you are
+% using another macro, that expands to the output of the counter, e.g.,
+%\begin{verbatim}
+% \def\myalph{\alph}\def\thesection{\myalph{section}}
+%\end{verbatim}
+% However, it seems that the heuristic is so good, that in more than twenty
+% years nobody has complained about.
+% \end{description}
+% \begin{macrocode}
+%<*body>
+\newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup%
+ \expandafter\@@maybeautodot #1\@stop\endgroup\fi
+}
+\newcommand*{\@@maybeautodot}[1]{%
+ \ifx #1\@stop\let\@@maybeautodot\relax
+ \else
+ \ifx #1\Alph \@autodottrue\fi
+ \ifx #1\alph \@autodottrue\fi
+ \ifx #1\Roman \@autodottrue\fi
+ \ifx #1\roman \@autodottrue\fi
+ \ifx #1\@Alph \@autodottrue\fi
+ \ifx #1\@alph \@autodottrue\fi
+ \ifx #1\@Roman \@autodottrue\fi
+ \ifx #1\@roman \@autodottrue\fi
+ \ifx #1\romannumeral \@autodottrue\fi
+ \fi
+ \@@maybeautodot
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@maybeautodot,\@@maybeautodot
%
-% \begin{Counter}{secnumdepth}
-% Dieser Zähler gibt an, bis zu welcher Ebene die Gliederungsüberschriften
-% nummeriert werden.
+% \begin{macrocode}
+%<*body>
+\newcommand*\autodot{\if@altsecnumformat.\fi}
+%</body>
+% \end{macrocode}
+% \end{command}^^A \autodot
+%
+%
+% \subsection{Definition and handling of sectioning commands}
+%
+% Some of the \LaTeX{} kernel features are used here too. But almost none of
+% these features is enough to implement all the functionality of \KOMAScript{}
+% classes. So we redefine several of the \LaTeX{} kernel macros to extend them
+% and define several new features.
+% \begin{description}
+% \item[ToDo:] Don't redefine \LaTeX{} kernel macros, but define new macros
+% for the interface. Maybe this should also be swapped to a new package used
+% by the classes.
+% \end{description}
+%
+% \begin{counter}{secnumdepth}
+% The counter rules down to which section level the headings should be
+% numbered.
+% \begin{description}
+% \item[ToDo:] Move this behind the declaration of the section levels to be
+% able to use symbolic value \cs{subsectionnumdepth}. It is not related to
+% the auto dot feature.
+% \end{description}
% \begin{macrocode}
%<*body>
%<book|report>\setcounter{secnumdepth}{2}
%<article>\setcounter{secnumdepth}{3}
%</body>
% \end{macrocode}
-% \end{Counter}
+% \end{counter}
%
%
-% \begin{macro}{\ifnumbered}
-% \changes{v3.12}{2013/12/16}{new command}%^^A
-% \changes{v3.28}{2019/11/19}{renamed to \cs{Ifnumbered}}%^^A
-% \begin{macro}{\Ifnumbered}
-% \changes{v3.28}{2019/11/19}{renamed from \cs{ifnumbered}}%^^A
-% \begin{macro}{\ifunnumbered}
-% \changes{v3.12}{2013/12/16}{new command}%^^A
-% \changes{v3.28}{2019/11/19}{renamed to \cs{Ifunnumbered}}%^^A
-% \begin{macro}{\Ifunnumbered}
-% \changes{v3.28}{2019/11/19}{renamed from \cs{ifunnumbered}}%^^A
-% Test, ob eine Gliederungsebene (\texttt{\#1}) nummeriert wird. Falls das der
-% Fall ist, wird das zweite Argument verwendet, sonst das dritte. Bei
-% \cs{ifunnumbered} ist die Logik genau vertauscht.
+% \begin{command}{\ifnumbered,\Ifnumbered}
+% \changes{v3.12}{2013/12/16}{added}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to \cs{Ifnumbered}}
+% \begin{command}{\ifunnumbered,\Ifunnumbered}
+% \changes{v3.12}{2013/12/16}{added}
+% \changes{v3.28}{2019/11/19}{\cs{ifunnumbered} renamed to \cs{Ifunnumbered}}
+% Commands
+% \begin{quote}\raggedright
+% \cs{Ifnumbered}\marg{section level name}\marg{numbered}\marg{not numbered}\\
+% \cs{Ifunnumbered}\marg{section level name}\marg{not numbered}\marg{numbered}\\
+% \end{quote}
+% If \meta{section level name} has to be numbered, execute code \meta{numbered}
+% otherwise execute code \meta{not numbered}.
% \begin{macrocode}
%<*body>
\providecommand*{\ifnumbered}{%
@@ -392,240 +465,90 @@
\Ifnumbered{#1}{\@secondoftwo}{\@firstoftwo}%
}
%</body>
-%</class>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
+% \end{command}^^A \Ifunnumbered
+% \end{command}^^A \ifnumbered
%
-% \subsection{\KOMAScript-eigene Befehle zur Definition von
-% Gliederungsbefehlen}
%
-% Die Funktionalität des \LaTeX-Kerns genügt \KOMAScript{} bei der Definition
-% von Gliederungsebenen nicht.
-%
-% \begin{macro}{\scr@activate@xsection}
-% \changes{v3.10}{2011/08/30}{neu (intern)}%^^A
-% Hiermit wird die Erweiterung für das optionale Argument der
-% Gliederungsbefehle eingeschaltet.
-% \begin{macro}{\scr@osectarg}%^^A
-% Für die nicht per \cs{@startsection} implementierten Befehle geht das
-% einfach durch Umschaltung von \cs{scr@osectarg}. Bei 0 ist die Aktivierung
-% nicht aktiv. Bei 1 landet das optionale Argument hingegen im Kopf, bei 2
-% im Inhaltsverzeichnis und bei 3 in beiden. Die Voreinstellung ist deshalb
-% ebenfalls 0.
-%
-% Da Option \texttt{headings} darauf zurückgreift, müssen die beiden Makros
-% bereits vorab definiert werden.
+% \begin{macro}{\scr@activate@xsection,\scr@osectarg}
+% \changes{v3.10}{2011/08/30}{added}
+% Option \opt{headings=optiontotocandhead}, \opt{headings=optiontotoc} and
+% \opt{headings=optiontohead} used
+% \begin{quote}
+% \cs{scr@activate@xsection}\marg{value}
+% \end{quote}
+% with the values 3, 2 and 1 to activate the extended optional argument. This
+% sets \cs{scr@osectarg} to the corresponding value. The initial value 0
+% deactivates the extended optional argument.
+% \begin{description}
+% \item[ToDo:] Do we really need \cs{scr@activate@xsection}, that is used
+% inside option \opt{headings} only?
+% \end{description}
% \begin{macrocode}
-%<*class>
%<*prepare>
\newcommand*{\scr@osectarg}{0}
\newcommand*{\scr@activate@xsection}[1]{%
\renewcommand*{\scr@osectarg}{#1}%
}
%</prepare>
-%</class>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% \begin{macro}{\if@altsecnumformat}
-% \changes{v2.3c}{1995/08/06}{neuer Schalter}%^^A
-% \begin{macro}{\@altsecnumformattrue}
-% \begin{macro}{\@altsecnumformatfalse}
-% Dieses Schalter wird für die Umschaltung auf Duden-Regel~6 bei der
-% Numerierung benötigt.
-% \begin{macro}{\if@autodot}
-% \changes{v2.8e}{2001/07/10}{neuer Schalter}%^^A
-% \begin{macro}{\@autodottrue}
-% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}%^^A
-% \begin{macro}{\@autodotfalse}
-% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}%^^A
-% Nach Duden 20.~Auflage, Regel~5 wird in der Gliederung kein Punkt gesetzt,
-% wenn diese rein mit arabischen Zahlen erfolgt. Nach Regel~6 folgt jedoch ein
-% Punkt, wenn die Gliederung auch römische Zahlen oder Großbuchstaben
-% enthält. Aus Konsistenzgründen muss der Punkt in diesem Fall immer gesetzt
-% werden. \KOMAScript{} bietet dafür einen Automatismus.
-%
-% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch erfolgen
-% kann, wird ein zweiter Schalter benötigt.
-% \begin{macrocode}
-%<*class>
-%<*prepare>
-\newif\if@altsecnumformat\@altsecnumformatfalse
-\newif\if@autodot
-\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
-\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
-\@autodotfalse
-%</prepare>
-% \end{macrocode}
-% Dabei soll die Umstellung des Punktes beim zweiten TeX-Lauf bereits am
-% Anfang aktiv sein. Deshalb wird die Information am Ende in die aux-Datei
-% geschrieben.
-% \changes{v2.9k}{2003/01/12}{es wird direkt in \cs{@mainaux} geschrieben}%^^A
-% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen
-% der Haupt-aux-Datei in diese geschrieben}%^^A
-% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben}%^^A
-% \changes{v3.20}{2016/03/25}{es wird \cs{csname}\dots\cs{endcsname}
-% verwendet}%^^A
-% \begin{macrocode}
-%<*body>
-\BeforeClosingMainAux{%
- \if@autodot\if@filesw\immediate\write\@mainaux{%
- \string\global\string\csname\space @altsecnumformattrue\string\endcsname}%
- \fi\fi}
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \@autodotfalse
-% \end{macro}%^^A \@autodottrue
-% \end{macro}%^^A \if@autodot
-% \end{macro}%^^A \@altsecnumformatfalse
-% \end{macro}%^^A \@altsecnumformattrue
-% \end{macro}%^^A \if@altsecnumformat
-%
-% \begin{macro}{\scr@altsecnumhook}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}%^^A
-% \begin{macro}{\scr@altsecnumhooktrue}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}%^^A
-% \begin{macro}{\scr@altsecnumhookfalse}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}%^^A
-% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei
-% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen
-% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option
-% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es
-% übrigens \cs{@empty}.
-% \begin{macrocode}
-%<*prepare>
-\newcommand*{\scr@altsecnumhook}{}
-\AtBeginDocument{\scr@altsecnumhook}
-\newcommand*{\scr@altsecnumhooktrue}{%
- \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
-}
-\newcommand*{\scr@altsecnumhookfalse}{%
- \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
-}
-%</prepare>
-% \end{macrocode}
-% \end{macro}%^^A \scr@altsecnumhooktrue
-% \end{macro}%^^A \scr@altsecnumhookfalse
-% \end{macro}%^^A \scr@altsecnumhook
-%
-% \begin{macro}{\@maybeautodot}
-% \changes{v2.8e}{2001/07/10}{neu (intern)}%^^A
-% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der
-% Darstellung eines Zählers entschieden. Diese wird dem Makro als Argument
-% übergeben (\cs{thepart}, \cs{thechapter} etc.). Durch Verwendung einer
-% Gruppe, werden alle Definitionen lokal gehalten.
-% \begin{macrocode}
-%<*body>
-\newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup%
- \expandafter\@@maybeautodot #1\@stop\endgroup\fi
-}
-% \end{macrocode}
-% \begin{macro}{\@@maybeautodot}
-% \changes{v2.8e}{2001/07/10}{neu (intern)}%^^A
-% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup}%^^A
-% entfernt}%^^A
-% Die expandierte Darstellung wird dann auf Darstellungsbefehle für
-% Zähler gescannt.
-% \begin{macrocode}
-\newcommand*{\@@maybeautodot}[1]{%
- \ifx #1\@stop\let\@@maybeautodot\relax
- \else
- \ifx #1\Alph \@autodottrue\fi
- \ifx #1\alph \@autodottrue\fi
- \ifx #1\Roman \@autodottrue\fi
- \ifx #1\roman \@autodottrue\fi
- \ifx #1\@Alph \@autodottrue\fi
- \ifx #1\@alph \@autodottrue\fi
- \ifx #1\@Roman \@autodottrue\fi
- \ifx #1\@roman \@autodottrue\fi
- \ifx #1\romannumeral \@autodottrue\fi
- \fi
- \@@maybeautodot
-}
-%</body>
% \end{macrocode}
-% \end{macro}%^^A \@@maybeautodot
-% \end{macro}%^^A \@maybeautodot
-%
-% \begin{macro}{\autodot}
-% \changes{v2.7}{2001/01/03}{neu}%^^A
-% Dieses Makro setzt dann den Punkt nach Bedarf.
-% \begin{macrocode}
-%<*body>
-\newcommand*\autodot{\if@altsecnumformat.\fi}
-%</body>
-% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@activate@xsection,\scr@osectarg
%
%
% \begin{macro}{\@startsection}
-% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
-% der Erweiterung für das optionale Argument}%^^A
+% \changes{v3.13a}{2014/09/11}{re-definition for extended optional argument}
% \begin{macro}{\scr@startsection}
-% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A
-% \changes{v3.18}{2015/05/22}{verwende \cs{numexpr} für Argument 2}
-% \changes{v3.18}{2015/05/22}{verwende \cs{glueexpr} für Argument 3--5}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \changes{v3.26}{2018/09/18}{\texttt{afterindent}-Einstellung wird
-% beachtet}%^^A
+% \changes{v3.13a}{2014/09/11}{added}
+% \changes{v3.18}{2015/05/22}{using \cs{numexpr} for argument 2}
+% \changes{v3.18}{2015/05/22}{using \cs{glueexpr} for arguments 3--5}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \changes{v3.26}{2018/09/18}{supporting \opt{afterindent}}
% \begin{macro}{\scr@saved@startsection}
-% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A
-% \changes{v3.20}{2016/04/12}{Tests funktionieren jetzt auch mit
-% \textsf{amsgen}}%^^A
-% \KOMAScript{} benötigt ein eigenes \cs{@startsection}, weil die
-% Funktionalität des \cs{@startsection} aus dem \LaTeX-Kern nicht
-% genügt. Bevor allerdings die eigene Definition in Angriff genommen wird,
-% muss kontrolliert werden, ob die aufgefundene Definition noch den
-% Erwartungen entspricht. Alles andere wäre ein deutlicher Hinweis, dass
-% eventuell in \KOMAScript{} ebenfalls eine Anpassung vorzunehmen wäre.
-% Da es offenbar Leute gibt, die bei der Umdefinierung von \cs{section}
-% etc. mit Hilfe von \cs{@startsection} Leerzeichen zwischen die Argumente
-% packen und gleichzeitig \textsf{amsgen} verwenden, sorgen wir hier dafür,
-% dass dann trotzdem noch die Warnungen funktionieren und nebenbei der Code
-% mit etwas Glück sogar ebenfalls. Dazu ist es notwendig, dass die Version von
-% \cs{@startsection} gespeichert wird, die \cs{kernel@ifstar} verwendet.
-% \begin{macro}{\startsection@sectionname}
-% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}%^^A
-% \begin{macro}{\startsection@secnumdepth}
-% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}%^^A
-% \begin{macro}{\startsection@indent}
-% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}%^^A
-% \begin{macro}{\startsection@beforeskip}
-% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}%^^A
-% \begin{macro}{\startsection@afterskip}
-% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}%^^A
-% \begin{macro}{\if@startsection@runin}
-% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}%^^A
-% \begin{macro}{\startsection@afterindent}
-% \changes{v3.26}{2018/09/18}{Neue Anweisung für Paketautoren}%^^A
-% Ab dem Zeitpunkt des Aufrufs des Do-Hooks
-% \texttt{heading/postinit} sind die Makros
-% \cs{startsection@sectionname}, \cs{startsection@secnumdepth},
-% \cs{startsection@indent}, \cs{startsection@beforeskip},
-% \cs{if@startsection@indentafter}, \cs{startsection@afterskip},
-% \cs{if@startsection@runin} und \cs{startsection@afterindent} gültig. Die
-% \cs{\dots indent}- und \cs{\dots skip}-Makros sind dabei skips (oder
-% \cs{glueexpr}) und somit wie Längen verwendbar. Bei den beiden \cs{\dots
-% skip}-Makros handelt es sich bereits um effektive Abstände, es wurden also
-% etwaige Fallunterscheidungen bezüglich des Vorzeichens des Arguments für
-% \cs{scr@startsection} bereits aufgelöst. Das \cs{if\dots}-Makro ist entweder
-% \cs{iftrue} oder \cs{iffalse}. Ein \cs{if@startsection@afterindent}
-% existiert nicht, weil \cs{if@afterindent} zu dem Zeitpunkt bereits gültig
-% ist. Außerhalb von \cs{scr@startsection} ist die Verwendung dieser Macros
-% unzulässig, bzw. das Ergebnis unspezifiziert. Ebenso sind diese Macros als
-% \emph{read-only} zu betrachten!
-%^^A TODO: Der ganze Test hier ist eigentlich Unfug. Beim Laden
-%^^A der Klasse sollte die Kern-Anweisung noch unverändert sein, da Pakete
-%^^A normalerweise erst danach zum Zuge kommen und sie umdefinieren
-%^^A können. Also müsste eigentlich \cs{AtBeginDocument} getestet werden. Ich
-%^^A werde mir das gelegentlich noch einmal vornehmen müssen.
+% \changes{v3.13a}{2014/09/11}{added}
+% \changes{v3.20}{2016/04/12}{supporting \pkg{amsgen}}
+% \begin{macro}{\startsection@sectionname,\startsection@secnumdepth,
+% \startsection@indent,\startsection@beforeskip,
+% \startsection@afterskip,\startsection@afterindent,
+% \@startsection@runintrue,\@startsection@runinfalse,
+% \if@startsection@runin}
+% \changes{v3.26}{2018/05/14}{added}
+% The \cs{@startsection} of the \LaTeX{} kernel does not provide all the
+% features we need for \KOMAScript. And the generic hooks of \LaTeX{} do not
+% allow to change it wide enough. So we either have to use \pkg{xparse} to
+% patch it very much or we have to define our own version. In this case
+% patching is too fragile, so we define \cs{scr@startsection} and store the
+% original definition in \cs{scr@saved@startsection}.
+% \begin{description}
+% \item[Note:] Package \pkg{amsgen} redefines \cs{@ifstar}. The new version
+% does not ignore white spaces. So testing the original definition using
+% \cs{@ifstar} may fail. It is better to use \cs{kernel@ifstar}.
+% \item[ToDo:] All the testing here doesn't make much sense, because we are
+% inside a class and packages like \pkg{amsgen} should not yet have been
+% loaded. So the test only needs to test, if the \LaTeX{} kernel has been
+% changed.
+% \item[Note:] In our own \cs{scr@startsection} the macros
+% \cs{startsection@sectionname}, \cs{startsection@secnumdepth},
+% \cs{startsection@indent}, \cs{startsection@beforeskip},
+% \cs{startsection@afterskip}, \cs{if@afterindent},
+% \cs{if@startsection@runin}, and \cs{startsection@afterindent} are valid
+% from executing the do hook \dhook{heading/postinit}. So they can be used
+% inside all the hooks.
+% \item[Note:] \cs{startsection@indent}, \cs{startsection@beforeskip},
+% \cs{startsection@afterskip} and \cs{startsection@afterindent} are either
+% skips or \cs{glueexpr}, that can be used like skips.
+% \item[Note:] \cs{startsection@beforeskip} and \cs{startsection@afterskip}
+% are effective values already. Not special treatment for negative or
+% positive values must be done.
+% \item[Note:] \cs{if@startsection@runin}
+% are either \cs{iftrue} or \cs{iffalse}.
+% \item[Note:] \cs{if@startsection@indentafter} does not exist and is not
+% needed, because \cs{if@afterindent} is already valid and also either
+% \cs{iftrue} or \cs{iffalse}.
+% \item[Note:] Using one of the \cs{startsection@\dots}
+% resp. \cs{if@startsection@\dots} macros outside \cs{scr@startsection} is
+% not allowed and the result is unspecified. Inside \cs{scr@startsection}
+% they have to be interpreted as constants, so changing them is not allowed!
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\scr@saved@startsection}[6]{%
@@ -768,23 +691,24 @@
\fi
% \end{macrocode}
% \begin{macro}{\scr@sect@runin}
-% \changes{v3.26}{2018/09/18}{neu (intern)}
-% Diese Hilfsanweisung nimmt die Fallunterscheidung vor, ob eine Spitzmarke
-% oder eine freistehende Überschrift oder abhängig vom Vorzeichen des
-% Abstandes danach eine Spitzmarke oder eine freistehende Ãœberschrift gesetzt
-% werden soll. Die Voreinstellung ist sicherheitshalber letzteres. Diese
-% Voreinstellung wird auch bei jedem Aufruf von \cs{@xsect} erneut
-% erzwungen. Auch in \cs{scr@startsection} wird die Anweisung angepasst.
+% \changes{v3.26}{2018/09/18}{added}
+% Depending on sectioning feature \opt{runin} the macro expands to the first
+% argument, if a in-text heading aka run-in heading has to used, the second
+% argument, if a free-standing heading has to be used, or the third argument,
+% of run-in or free-standing depends on the sign of \opt{afterskip}. The
+% initial definition is depending on the sign of \opt{afterskip}. This initial
+% definition is also done inside \cs{@xsect}. \cs{scr@startsection} also
+% redefines \cs{scr@sect@runin}. So it should always be the currently valid
+% definition, even if \cs{scr@startsection} is used with a section command,
+% that does not provide all the variable of \KOMAScript.
% \begin{macrocode}
\newcommand*{\scr@sect@runin}[3]{#3}
% \end{macrocode}
-% \end{macro}%^^A \scr@sect@runin
+% \end{macro}^^A \scr@sect@runin
% \begin{macro}{\scr@startsection@ulm@error}
-% \changes{v3.26}{2018/05/14}{Neue interne Anweisung}
-% Ich bin mir bewusst, dass die Fehlerausgabe, die hier definiert wird,
-% vermutlich nie aufgerufen wird, da ein Paketautor hierzu eines der Makros
-% bereits vor dem ersten \cs{scr@startsection}-Befehl verwenden
-% müsste. Trotzdem verwende ich es quasi zwecks Initialisierung.
+% \changes{v3.26}{2018/05/14}{added}
+% This is the initial error message for using one of the internal macros
+% before \cs{scr@startsection}. This should never happen.
% \begin{macrocode}
\newcommand*{\scr@startsection@ulm@error}[1]{%
\ClassError{\KOMAClassName}{%
@@ -812,23 +736,15 @@
\newcommand*\startsection@afterindent{%
\scr@startsection@ulm@error\startsection@afterindent}
% \end{macrocode}
-% \end{macro}%^^A \scr@startsection@ulm@error
-% \end{macro}%^^A \scr@startsection@afterindent
-% \end{macro}%^^A \if@startsection@runin
-% \end{macro}%^^A \startsection@afterskip
-% \end{macro}%^^A \startsection@beforeskip
-% \end{macro}%^^A \startsection@indent
-% \end{macro}%^^A \startsection@secnumdepth
-% \end{macro}%^^A \startsection@sectionname
+% \end{macro}^^A \scr@startsection@ulm@error
+% \end{macro}^^A \startsection@sectionname … \scr@startsection@runin
% \begin{macro}{\At@startsection}
-% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}%^^A
-% \changes{v3.27}{2019/02/04}{Umgestellt auf \cs{AddtoDoHook}}%^^A
-% \changes{v3.27}{2019/02/04}{deprecated}%^^A
-% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
-% eigenem \cs{scr@startsection} an der Stelle eingefügt werden, an der
-% \cs{if@afterindent} und \cs{@tempskipa} bereits korrekt eingestellt sind,
-% aber noch bevor \emph{pentaly} und Abstand gesetzt wurden bzw. \cs{everypar}
-% gelöscht wurde.
+% \changes{v3.14}{2014/09/11}{added}
+% \changes{v3.27}{2019/02/04}{using \cs{AddtoDoHook}}
+% \changes{v3.27}{2019/02/04}{deprecated}
+% This is deprecated now. You should use the corresponding
+% \dhook{heading/postinit} do hook. However the do hooks are command specific,
+% but the argument of \cs{At@startsection} is style specific.
% \begin{macrocode}
\newcommand*{\At@startsection}[1]{%
\ClassInfo{\KOMAClassName}{%
@@ -841,24 +757,25 @@
}
% \end{macrocode}
% \begin{macro}{\scr@doonlyifstyleofargis}
-% \changes{v3.27}{2019/02/04}{neu (intern)}
-% Hilfsmakro für \cs{At@startsection}, \cs{Before@sect} und \cs{Before@@sect}.
+% \changes{v3.27}{2019/02/04}{added}
+% Execute the first argument only, of the style of the third argument is the
+% second argument.
% \begin{macrocode}
\newcommand*{\scr@doonlyifstyleofargis}[3]{%
\IfSectionCommandStyleIs{#3}{#2}{#1}{}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@doonlyifstyleofargis
-% \end{macro}%^^A \At@startsection
+% \end{macro}^^A \scr@doonlyifstyleofargis
+% \end{macro}^^A \At@startsection
% \begin{macro}{\Before@ssect}
-% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}
-% \changes{v3.27}{2019/02/04}{Umgestellt auf \cs{AddtoDoHook}}
+% \changes{v3.14}{2014/09/11}{added}
+% \changes{v3.27}{2019/02/04}{using \cs{AddtoDoHook}}
% \changes{v3.27}{2019/02/04}{deprecated}
% \changes{v3.35}{2021/10/15}{\cs{ClassWarning} instead of \cs{ClassInfo}}
% \changes{v3.35}{2021/10/15}{Usage of \cs{scr@doonlyifstyleofargis} fixed}
-% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
-% eigenem \cs{scr@startsection} unmittelbar vor dem Aufruf von \cs{@ssect}
-% eingefügt werden.
+% This is deprecated now. You should use the corresponding
+% \dhook{heading/branch/star} do hook. However the do hooks are command
+% specific, but the argument of \cs{Before@ssect} is style specific.
% \begin{macrocode}
\newcommand*{\Before@ssect}[1]{%
\ClassWarning{\KOMAClassName}{%
@@ -870,16 +787,16 @@
\AddtoDoHook{heading/branch/star}{\scr@doonlyifstyleofargis{#1}{section}}%
}
% \end{macrocode}
-% \end{macro}%^^A \Before@ssect
+% \end{macro}^^A \Before@ssect
% \begin{macro}{\Before@sect}
-% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}%^^A
-% \changes{v3.27}{2019/02/04}{Umgestellt auf \cs{AddtoDoHook}}%^^A
-% \changes{v3.27}{2019/02/04}{deprecated}%^^A
-% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
-% eigenem \cs{scr@startsection} unmittelbar vor dem Aufruf von \cs{@sect}
-% eingefügt werden.
+% \changes{v3.14}{2014/09/11}{added}
+% \changes{v3.27}{2019/02/04}{using \cs{AddtoDoHook}}
+% \changes{v3.27}{2019/02/04}{deprecated}
% \changes{v3.35}{2021/10/15}{\cs{ClassWarning} instead of \cs{ClassInfo}}
% \changes{v3.35}{2021/10/15}{Usage of \cs{scr@doonlyifstyleofargis} fixed}
+% This is deprecated now. You should use the corresponding
+% \dhook{heading/branch/nostar} do hook. However the do hooks are command
+% specific, but the argument of \cs{Before@sect} is style specific.
% \begin{macrocode}
\newcommand*{\Before@sect}[1]{%
\ClassWarning{\KOMAClassName}{%
@@ -891,11 +808,13 @@
\AddtoDoHook{heading/branch/nostar}{\scr@doonlyifstyleofargis{#1}{section}}%
}
% \end{macrocode}
-% \end{macro}%^^A \Before@sect
-% \begin{macro}{\scr@section@dblarg}
-% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A
-% \begin{macro}{\scr@section@xdblarg}
-% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A
+% \end{macro}^^A \Before@sect
+% \begin{macro}{\scr@section@dblarg,\scr@section@xdblarg}
+% \changes{v3.13a}{2014/09/11}{added}
+% Similar to the \LaTeX{} kernel macros \cs{@dblarg} and \cs{@xdblarg} but
+% preserve the definition of \cs{scr@osectarg}. So changes of
+% \cs{scr@osectarg} inside the definition of the command of the first
+% argument, are locally to the execution of that command.
% \begin{macrocode}
\newcommand{\scr@section@dblarg}[1]{%
\kernel@ifnextchar[%]
@@ -910,10 +829,16 @@
\reserved@a
}
% \end{macrocode}
-% \end{macro}%^^A \scr@section@xdblarg
-% \end{macro}%^^A \scr@section@dblarg
-% \end{macro}%^^A \scr@saved@startsection
-% \end{macro}%^^A \scr@startsection
+% \end{macro}^^A \scr@section@dblarg,\scr@section@xdblarg
+% \end{macro}^^A \scr@saved@startsection
+% \end{macro}^^A \scr@startsection
+% \begin{description}
+% \item[ToDo:] Currently we still redefine \cs{@startsection} to use either
+% \cs{scr@saced@startsection} or \cs{scr@startsection}. But it would be
+% better to not redefine a \LaTeX{} kernel macro. However, if not doing so,
+% packages, that use \cs{@startsection} would not support \KOMAScript{}
+% features without detecting \KOMAScript{} and using \cs{scr@startsection}.
+% \end{description}
% \begin{macrocode}
\renewcommand*{\@startsection}{%
\ifnum \scr@osectarg=\z@
@@ -924,15 +849,15 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@startsection
+% \end{macro}^^A \@startsection
%
-% \begin{macro}{\UseNumberUsageError}
-% \changes{v3.27}{2019/02/02}{Neu}
-% \begin{macro}{\IfUseNumber}
-% \changes{v3.27}{2019/02/02}{Explizite Fehlermeldung bei Verwendung außerhalb
-% von Ãœberschriften}%^^A
-% Diese Anweisung ist nur innerhalb von Ãœberschriften definiert. Wird sie
-% außerhalb verwendet, so gibt sie einen entsprechenden Fehler aus.
+% \begin{command}{\UseNumberUsageError}
+% \changes{v3.27}{2019/02/02}{added}
+% \begin{command}{\IfUseNumber}
+% \changes{v3.27}{2019/02/02}{error if used outside sectioning command}
+% Command \cs{IfUseNumner} is defined only inside sectioning commands. Using
+% it outside is not specified. To report an error in this case, it should be
+% set to \cs{UseNumberUsageError} outside a sectioning command.
% \begin{macrocode}
%<*body>
\newcommand*{\UseNumberUsageError}[2]{%
@@ -949,16 +874,15 @@
\let\IfUseNumber\UseNumberUsageError
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \IfUseNumnr
+% \end{command}^^A \UseNumberUsageError
+%
%
-% \begin{macro}{\SecDef}
-% \changes{v3.13a}{2014/09/11}{neue Anweisung}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\secdef}
-% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
-% der Erweiterung für das optionale Argument}%^^A
+% \begin{command}{\SecDef}
+% \changes{v3.13a}{2014/09/11}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{command}{\secdef}
+% \changes{v3.13a}{2014/09/11}{re-definition because of extended optional argument}
% \begin{macrocode}
%<*body>
\newcommand*{\SecDef}[2]{\kernel@ifstar{#2}{\scr@section@dblarg{#1}}}
@@ -966,33 +890,37 @@
\let\secdef\SecDef
%</body>
% \end{macrocode}
-% \end{macro}%^^A \secdef
-% \end{macro}%^^A \SecDef
+% \end{command}^^A \secdef
+% \end{command}^^A \SecDef
% \begin{macro}{\scr@sect}
-% \changes{v3.10}{2011/08/30}{entfällt}%^^A
-% \end{macro}%^^A \scr@sect
+% \changes{v3.10}{2011/08/30}{removed}
+% \end{macro}^^A \scr@sect
% \begin{macro}{\@sect}
-% \changes{v3.10}{2011/08/30}{Vollständige Neudefinition zur Realisierung
-% der Erweiterung für das optionale Argument}%^^A
-% \changes{v3.10}{2011/08/30}{Verwendung von
+% \changes{v3.10}{2011/08/30}{re-definition because of extended optional argument}
+% \changes{v3.10}{2011/08/30}{using
% \cs{csname}\texttt{add\#1tocentry}\cs{endcsname}
-% bzw. \cs{addtocentrydefault}}%^^A
-% \changes{v3.18}{2015/05/20}{definiert \cs{IfUsePrefixLine} intern}%^^A
-% \changes{v3.18}{2015/05/22}{Verwendung von \cs{numexpr} für Argument 2}%^^A
-% \changes{v3.18}{2015/05/22}{Verwendung von \cs{gluexpr} für Argument
-% 3--5}%^^A
-% \changes{v3.19}{2015/07/17}{Verwendung von \cs{sectionlinesformat} und
-% \cs{sectioncatchphraseformat}}%^^A
-% \changes{v3.27}{2019/07/08}{neue Option \texttt{nonumber}}%^^A
-% \changes{v3.30}{2020/02/25}{unerwünschtes Leerzeichen am Ende der Warnung
-% entfernt}%^^A
+% resp. \cs{addtocentrydefault}}
+% \changes{v3.18}{2015/05/20}{defines \cs{IfUsePrefixLine} locally}
+% \changes{v3.18}{2015/05/22}{using \cs{numexpr} for argument 2}
+% \changes{v3.18}{2015/05/22}{using \cs{gluexpr} for arguments 3--5}
+% \changes{v3.19}{2015/07/17}{using \cs{sectionlinesformat} and
+% \cs{sectioncatchphraseformat}}
+% \changes{v3.27}{2019/07/08}{new optional \opt{nonumber}}
+% \changes{v3.30}{2020/02/25}{orphan spaces removed}
% \begin{macro}{\scr@latex@sect}
-% \changes{v3.27}{2019/07/24}{Neu (intern für \textsf{scrhack})}%^^A
-% Damit auch alle mit \cs{@startsection} definierten Gliederungsebenen
-% bei der Entscheidung berücksichtigt werden, muss ein internes Makro
-% des \LaTeX-Kerns erweitert werden. Für die Ebenen \cs{part} und
-% \cs{chapter} wird der Test direkt in der Definition der Befehle
-% erledigt.
+% \changes{v3.27}{2019/07/24}{added to be used by \pkg*{scrhack}}
+% Because we want to support the extended optional argument for all commands
+% defined using \cs{@startsection} we also have to redefine \cs{@sect}. Once
+% again several security tests are done, before redefining an internal
+% \LaTeX{} kernel macro.
+% \begin{description}
+% \item[ToDo:] It would be better not to redefine an internal \LaTeX{} kernel
+% macro, but use a own definition in our own \cs{scr@startsection}. But in
+% this case packages, that use \cs{@sect} would not automatically support
+% several \KOMAScript{} features.
+% \item[Note:] \cs{chapter} and \cs{part} do not use \cs{@sect} but
+% \cs{SecDef}.
+% \end{description}
% \begin{macrocode}
%<*body>
\def\scr@latex@sect#1#2#3#4#5#6[#7]#8{%
@@ -1037,7 +965,7 @@
of \string\@sect}%
\fi
% \end{macrocode}
-% \end{macro}%^^A \scr@latex@sect
+% \end{macro}^^A \scr@latex@sect
% \begin{macrocode}
%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro \string\@sect}
\def\@sect#1#2#3#4#5#6[#7]#8{%
@@ -1061,12 +989,12 @@
\fi
\fi
% \end{macrocode}
-% \changes{v3.23}{2017/02/04}{support for \textsf{minitoc}}%^^A
+% \changes{v3.23}{2017/02/04}{support for \pkg{minitoc}}
% \changes{v3.23}{2017/03/24}{usage of \cs{ext@figure} and \cs{ext@table}
-% instead of \texttt{lof} and \texttt{lot}}%^^A
+% instead of \texttt{lof} and \texttt{lot}}
% Add the \texttt{xsect} entries to \texttt{lof} and \texttt{lot}. Note, that
-% the original \cs{starsection} tests of \textsf{minitoc} has a bug and so
-% does not work. And the original code of \textsf{minitoc} has hard coded
+% the original \cs{starsection} tests of \pkg{minitoc} has a bug and so
+% does not work. And the original code of \pkg{minitoc} has hard coded
% \texttt{lot} and \texttt{lof} instead of \cs{ext@figure} and
% \cs{ext@table}. This is a fixed one:
% \begin{macrocode}
@@ -1089,8 +1017,7 @@
\fi
\let\@svsec\@empty
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/02}{execute counter reset list}%^^A
+% \changes{v3.31}{2020/06/02}{execute counter reset list}
% Even for not numbered sections, the reset list für the section counter has
% to be executed.
% \begin{macrocode}
@@ -1101,10 +1028,9 @@
\endgroup
\fi
% \end{macrocode}
-% \changes{v3.31}{2020/06/02}{\cs{hy@insteadofrefstepcounter} added}%^^A
-% At this point we have to make sure, that the \textsf{hyperref} code for not
+% \changes{v3.31}{2020/06/02}{\cs{hy@insteadofrefstepcounter} added}
+% At this point we have to make sure, that the \pkg{hyperref} code for not
% increasing a counter is executed.
-% \selectlanguage{ngerman}%
% \begin{macrocode}
\hy@insteadofrefstepcounter{#1}%
\else
@@ -1113,11 +1039,8 @@
\protected@edef\@svsec{\@seccntformat{#1}\relax}%
\fi
% \end{macrocode}
-% \changes{v3.26}{2018/09/18}{\cs{scr@sect@runin} beachten}%^^A
-% Falls \cs{scr@sect@runin} nicht definiert ist, wird es jetzt höchste Zeit
-% dafür. Und natürlich nutzen wir es dann für die Entscheidung Spitzmarke oder
-% nicht.
-% \changes{v3.27}{2019/02/02}{\cs{IfUseNumber} lokal definiert}%^^A
+% \changes{v3.26}{2018/09/18}{support for \cs{scr@sect@runin}}
+% \changes{v3.27}{2019/02/02}{\cs{IfUseNumber} defined locally}
% \begin{macrocode}
\ifdim
\scr@sect@runin{\z@}{\p@}{\glueexpr #5\relax}>\z@
@@ -1128,11 +1051,8 @@
\let\IfUseNumber\@firstoftwo
\fi
% \end{macrocode}
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% Das Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
-% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
-% der Fontänderung.
-% \changes{v3.27}{2019/02/02}{\cs{scr@do@at} hinzugefügt}%^^A
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
+% \changes{v3.27}{2019/02/02}{\cs{scr@do@at} added}
% \begin{macrocode}
\ExecuteDoHook{heading/begingroup/#1}%
#6{\nobreak\interlinepenalty \@M
@@ -1161,10 +1081,10 @@
\csname add#1tocentry\endcsname{}{\@currenttocentry}%
\else
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/06}{use \cs{\dots tocformat}}%
-%^^ATODO: move \cs{autodot} to the definition of \cs{\dots tocformat}
-% \selectlanguage{ngerman}%
+% \changes{v3.31}{2020/06/06}{using \cs{\dots tocformat}}%
+% \begin{description}
+% \item[ToDo:] Move \cs{autodot} to the definition of \cs{\dots tocformat}.
+% \end{description}
% \begin{macrocode}
\@ifundefined{#1tocformat}{%
\expandafter\gdef\csname #1tocformat\endcsname
@@ -1176,11 +1096,8 @@
\fi
\else
% \end{macrocode}
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% \changes{v3.27}{2019/02/02}{\cs{ExecuteDoHook} eingefügt}%^^A
-% Da Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
-% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
-% der Fontänderung.
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
+% \changes{v3.27}{2019/02/02}{\cs{ExecuteDoHook} added}
% \begin{macrocode}
\def\@svsechd{%
\ifx\@svsec\@empty
@@ -1213,10 +1130,10 @@
\csname add#1tocentry\endcsname{}{\@currenttocentry}%
\else
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/06}{use \cs{\dots tocformat}}%
-%^^ATODO: move \cs{autodot} to the definition of \cs{\dots tocformat}
-% \selectlanguage{ngerman}%
+% \changes{v3.31}{2020/06/06}{using \cs{\dots tocformat}}%
+% \begin{description}
+% \item[ToDo:] Move \cs{autodot} to the definition of \cs{\dots tocformat}.
+% \end{description}
% \begin{macrocode}
\@ifundefined{#1tocformat}{%
\expandafter\gdef\csname #1tocformat\endcsname
@@ -1233,26 +1150,26 @@
\@xsect{\glueexpr #5\relax}%
}
% \end{macrocode}
-% \begin{macro}{\scr@ds@tocentry}
-% \changes{v3.10}{2011/08/30}{neu (intern)}%^^A
-% \begin{macro}{\@currenttocentry}
-% \changes{v3.22}{2016/07/12}{\cs{scr@ds@tocentry} (semi-intern)
-% umbenannt}%^^A
-% \begin{macro}{\scr@ds@head}
-% \changes{v3.10}{2011/08/30}{neu (intern)}%^^A
-% \begin{macro}{\@currentheadentry}
-% \changes{v3.22}{2016/07/12}{\cs{scr@ds@head} (semi-intern)
-% umbenannt}%^^A
+% \begin{macro}{\scr@ds@tocentry,\@currenttocentry}
+% \changes{v3.10}{2011/08/30}{added}
+% \changes{v3.22}{2016/07/12}{\cs{scr@ds@tocentry} renamed to \cs{@currenttocentry}}
+% \begin{macro}{\scr@ds@head,\@currentheadentry}
+% \changes{v3.10}{2011/08/30}{added}
+% \changes{v3.22}{2016/07/12}{\cs{scr@ds@head} renamed to \cs{@currentheadentry}}
% \begin{macro}{\@currentlabelname}
-% \changes{v3.22}{2016/07/12}{neu (semi-intern)}
-% \begin{macro}{\if@scr@tempswa}
-% \changes{v3.10}{2011/08/30}{neu (intern)}%^^A
-% \begin{macro}{\if@currentusenumber}
-% \changes{v3.27}{2019/07/08}{neu (semi-intern)}%^^A
+% \changes{v3.22}{2016/07/12}{added}
+% \begin{macro}{\@scr@tempswatrue,\@scr@tempswafalse,\if@scr@tempswa}
+% \changes{v3.10}{2011/08/30}{added}
+% \begin{macro}{\@currentusenumbertrue,\@currentusenumberfalse,\if@currentusenumber}
+% \changes{v3.27}{2019/07/08}{added}
% \begin{macro}{\scr@istest}
-% \changes{v3.10}{2011/08/30}{neu (intern)}%^^A
-% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein
-% paar Hilfsmakros benötigt:
+% \changes{v3.10}{2011/08/30}{added}
+% We are using several \pkg*{scrbase} options to handle the extended
+% optional argument features.
+% \begin{description}
+% \item[ToDo:] Is there a general initialization hook to make additional such
+% options at package author level possible?
+% \end{description}
% \begin{macrocode}
\DefineFamily{KOMAarg}
\DefineFamilyMember[.section]{KOMAarg}
@@ -1287,72 +1204,68 @@
}
\newif\if@scr@tempswa
% \end{macrocode}
-% \end{macro}%^^A \scr@istest
-% \end{macro}%^^A \if@currentusenumber
-% \end{macro}%^^A \if@scr@tempswa
-% \end{macro}%^^A \@currentlabelname
-% \end{macro}%^^A \@currentheadentry
-% \end{macro}%^^A \scr@ds@head
-% \end{macro}%^^A \@currenttocentry
-% \end{macro}%^^A \scr@ds@tocentry
-% \begin{macro}{\sectionlinesformat}
-% \changes{v3.19}{2015/07/17}{neue Anweisung}%^^A
-% Diese Anweisung definiert das Format der eigentlichen Ãœberschriften im Stil
-% \texttt{section}, wenn mit Ãœberschriftenzeilen gearbeitet
-% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die
-% Argumente sind:
+% \end{macro}^^A \scr@istest
+% \end{macro}^^A \if@currentusenumber
+% \end{macro}^^A \if@scr@tempswa
+% \end{macro}^^A \@currentlabelname
+% \end{macro}^^A \scr@ds@head,\@currentheadentry
+% \end{macro}^^A \scr@ds@tocentry,\@currenttocentry
+%
+% \begin{command}{\sectionlinesformat,\sectioncatchphraseformat}
+% \changes{v3.19}{2015/07/17}{added}
+% Headings with style \texttt{section} can either be free-standing or
+% in-line. Free-standing headings are printed using:
+% \begin{quote}
+% \cs{sectionlinesformat}\marg{level name}\marg{indent}\marg{number}\marg{text}
+% \end{quote}
+% The in-line headings are printed using:
+% \begin{quote}
+% \cs{sectioncatchphraseformat}\marg{level name}\marg{indent}\marg{number}\marg{text}
+% \end{quote}
+% The \meta{level name} can also be interpreted as the section command
+% name. The \meta{indent} is the horizontal indent of the first line of the
+% heading. The \meta{number} is either empty for not numbered headings or the
+% formatted number to be used. \meta{text} is the formatted text to be
+% used. Formatted text means, the fonts are already set and \cs{@@par} for the
+% end of paragraph already has been added to the \meta{text} of
+% \cs{sectionlinesformat}. But if the user uses more paragraphs than this
+% final one, the user is responsible to prevent page breaks!
% \begin{description}
-% \item[\meta{Ebene} --] der Name der Gliederungebene
-% \item[\meta{Einzug} --] ein eventuell zu verwendender horizontaler
-% Einzug.
-% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
-% Gliederungsnummer oder leer, falls keine Gliederungsnummer auszugeben ist.
-% \item[\meta{Text} --] der Text der Ãœberschrift.
+% \item[Note:] Argument \meta{indent} is a kind of design mistake. It would
+% have been better to get the indent by the attributes of the \meta{level
+% name}. However having an argument makes it easier for users to redefine
+% the command.
% \end{description}
-% Der Anwender ist selbst verantwortlich, dass innerhalb der Ãœberschrift kein
-% Seitenumbruch erfolgen kann. Nach der Ãœberschrift wird jedoch zwangsweise
-% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem
-% internen Absatz abgeschlossen wird.
% \begin{macrocode}
\newcommand{\sectionlinesformat}[4]{%
\@hangfrom{\hskip #2#3}{#4}%
}
-% \end{macrocode}
-% \end{macro}%^^A \sectionlinesformat
-% \begin{macro}{\sectioncatchphraseformat}
-% \changes{v3.19}{2015/07/17}{neue Anweisung}%^^A
-% Diese Anweisung definiert das Format der eigentlichen Ãœberschriften im
-% Stil \texttt{section}, wenn mit Spitzmarken gearbeitet
-% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die
-% Argumente sind:
-% \begin{description}
-% \item[\meta{Ebene} --] der Name der Gliederungebene
-% \item[\meta{Einzug} --] ein eventuell zu verwendender horizontaler
-% Einzug.
-% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
-% Gliederungsnummer oder leer, falls keine Gliederungsnummer auszugeben
-% ist.
-% \item[\meta{Text} --] der Text der Ãœberschrift.
-% \end{description}
-% Der Anwender ist selbst verantwortlich, dass innerhalb der Ãœberschrift kein
-% Seitenumbruch erfolgen kann.
-% \begin{macrocode}
\newcommand{\sectioncatchphraseformat}[4]{%
\hskip #2#3#4%
}
% \end{macrocode}
-% \end{macro}%^^A \sectioncatchphraseformat
-% \end{macro}%^^A \@sect
+% \end{command}^^A \sectionlinesformat,\sectioncatchphraseformat
+% \end{macro}^^A \@sect
%
% \begin{macro}{\@ssect}
-% \changes{v3.19}{2015/07/17}{Vollständige Neudefinition zur Realisierung
-% der Erweiterung für die Formatieurng der Überschrift}%^^A
+% \changes{v3.19}{2015/07/17}{re-definition because of several new features}
% \begin{macro}{\scr@latex@ssect}
-% \changes{v3.27}{2019/07/24}{Neu (intern für \textsf{scrhack})}%^^A
-% \changes{v3.30}{2020/02/25}{unerwünschtes Leerzeichen am Ende der Warnung
-% entfernt}%^^A
-% Das wird für Überschriften ohne Nummer verwendet. Im Prinzip machen wir hier
-% dasselbe wie zuvor.
+% \changes{v3.27}{2019/07/24}{added to be used by \pkg*{scrhack})}
+% \changes{v3.30}{2020/02/25}{orphan space removed}
+% The star variant of section commands do not use \cs{@sect} but
+% \cs{@ssect}. Here we have the problem, that the command name argument is
+% missing. The whole definition is very similar to \cs{@sect} but without a
+% number, ToC entry or running head.
+% \begin{description}
+% \item[Note:] we do not have to support an extended optional argument,
+% because there isn't an optional argument.
+% \item[ToDo:] It would be better not to redefine an internal \LaTeX{} kernel
+% macro, but use a own definition in our own \cs{scr@startsection}. But in
+% this case packages, that use \cs{@ssect} would not automatically support
+% several \KOMAScript{} features.
+% \item[Note:] \cs{chapter} and \cs{part} do not use \cs{@ssect} but
+% \cs{SecDef}.
+% \end{description}
% \begin{macrocode}
\def\scr@latex@ssect#1#2#3#4#5{%
\@tempskipa #3\relax
@@ -1377,7 +1290,7 @@
of \string\@ssect}%
\fi
% \end{macrocode}
-% \end{macro}%^^A \scr@latex@ssect
+% \end{macro}^^A \scr@latex@ssect
% \begin{macrocode}
%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro
%<trace> \string\@ssect}
@@ -1393,11 +1306,9 @@
\def\scr@s@ct@@nn@m@{\string\scr@s@ct@@nn@m@}%
}{%
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/02}{execute counter reset list}%^^A
+% \changes{v3.31}{2020/06/02}{execute counter reset list}
% Even for not numbered sections, the reset list für the corresponding section
% counter has to be executed.
-% \selectlanguage{ngerman}%
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.31}\relax\else
\begingroup
@@ -1407,22 +1318,16 @@
\fi
}%
% \end{macrocode}
-% \changes{v3.26}{2018/09/18}{\cs{scr@sect@runin} beachten}%^^A
-% Falls \cs{scr@sect@runin} nicht definiert ist, wird es jetzt höchste Zeit
-% dafür. Und natürlich nutzen wir es dann für die Entscheidung Spitzmarke oder
-% nicht.
-% \changes{v3.27}{2019/02/02}{\cs{IfUseNumber} lokal definiert}%^^A
+% \changes{v3.26}{2018/09/18}{support for \cs{scr@sect@runin}}
+% \changes{v3.27}{2019/02/02}{defining \cs{IfUseNumber} locally}
% \begin{macrocode}
\ifdim
\scr@sect@runin{\z@}{\p@}{\glueexpr #3\relax}>\z@
\begingroup
\let\IfUseNumber\@secondoftwo
% \end{macrocode}
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% \changes{v3.27}{2019/02/02}{\cs{ExecuteDoHook} eingefügt}%^^A
-% Das Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
-% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
-% der Fontänderung.
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
+% \changes{v3.27}{2019/02/02}{\cs{ExecuteDoHook} added}
% \begin{macrocode}
\edef\reserved@a{%
\noexpand\ExecuteDoHook{heading/begingroup/\scr@s@ct@@nn@m@}%
@@ -1440,10 +1345,7 @@
\noexpand\ExecuteDoHook{heading/begingroup/\scr@s@ct@@nn@m@}%
\unexpanded{#4}{%
% \end{macrocode}
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% Das Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
-% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
-% der Fontänderung.
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
% \begin{macrocode}
\noexpand\nobreak
\noexpand\sectioncatchphraseformat{\scr@s@ct@@nn@m@}%
@@ -1457,16 +1359,18 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@ssect
+% \end{macro}^^A \@ssect
% \begin{macro}{\@xsect}
-% \changes{v3.26}{2018/09/18}{wird umdefiniert}%^^A
-% \changes{v3.30}{2020/02/25}{unerwünschtes Leerzeichen am Ende der Warnung
-% entfernt}%^^A
+% \changes{v3.26}{2018/09/18}{re-definition}
+% \changes{v3.30}{2020/02/25}{orphan space removed}
% \begin{macro}{\scr@latex@xsect}
-% \changes{v3.27}{2019/07/24}{Neu (intern für \textsf{scrhack})}%^^A
-% Wir brauchen zum Einen in \cs{@xsect} einen Fallunterscheidung nach
-% \cs{scr@sect@runin} und zum Anderen muss diese Fallunterscheidung am Ende
-% wieder zurückgesetzt werden.
+% \changes{v3.27}{2019/07/24}{added to be used by \pkg*{scrhack}}
+% We need a differentiation with \cs{scr@sect@runin} to be initialized in
+% \cs{@xsect} and also need to reset this internal macro at the end.
+% \begin{description}
+% \item[ToDo:] It would be better not to redefine the internal \LaTeX{} kernel
+% macro, but to define and use our own one.
+% \end{description}
% \begin{macrocode}
%<*body>
\def\scr@latex@xsect#1{%
@@ -1504,7 +1408,7 @@
of \string\@xsect}%
\fi
% \end{macrocode}
-% \end{macro}%^^A \scr@latex@xsect
+% \end{macro}^^A \scr@latex@xsect
% \begin{macrocode}
%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro
%<trace> \string\@xsect}
@@ -1543,20 +1447,18 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@xsect
-%
-% \begin{macro}{\IfUsePrefixLine}
-% \changes{v3.18}{2015/06/09}{außerhalb von Gliederungsbefehlsstilen
-% definiert}%^^A
-% Eigentlich ist diese Anweisung nur innerhalb von Gliederungsbefehlen
-% sinnvoll und wurde bis \KOMAScript{} 3.17c auch nur dort definiert. Dann gab
-% es aber Leute, die \cs{chapterformat} missbraucht haben und gleich meldete
-% sich jemand, die nicht verstehen konnte, warum die Anweisung dann einen
-% Fehler produzieren muss. Wenn man den Code nicht verstanden hat, dann ist
-% das nämlich so. Deshalb gebe ich jetzt eine Warnung aus, dass die Verwendung
-% nicht unbedingt zu dem Resultat führt, das erwartet wird.
+% \end{macro}^^A \@xsect
+%
+% \begin{command}{\IfUsePrefixLine}
+% \changes{v3.18}{2015/06/09}{added}
% \begin{macro}{\scr@IfUsePrefixLineWarning}
-% \changes{v3.18}{2015/06/09}{neu (intern)}
+% \changes{v3.18}{2015/06/09}{added}
+% This command makes sense inside the section commands only. But users often
+% tried to use it outside instead of \cs{ifnumbered}. This mostly has resulted
+% in a undefined command sequence error users did not understand. So now, we
+% use an internal definition to be uses outside the section commands, that
+% results in a warning with more information about the mistake and that does
+% neither use the first nor the second argument (instead of using both of them).
% \begin{macrocode}
%<*body>
\newcommand*{\scr@IfUsePrefixLineWarning}[2]{%
@@ -1578,52 +1480,68 @@
\let\IfUsePrefixLine\scr@IfUsePrefixLineWarning
%</body>
% \end{macrocode}
-% \end{macro}%^^A \scr@IfUsePrefixLineWarning
-% \end{macro}%^^A \IfUsePrefixLine
+% \end{macro}^^A \scr@IfUsePrefixLineWarning
+% \end{command}^^A \IfUsePrefixLine
%
%
-% \begin{macro}{\raggedsection}
-% \changes{v2.3h}{1996/01/20}{Ãœberschriften werden \cs{raggedsection}%^^A
-% gesetzt}%^^A
-% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als \cs{raggedright}
-% voreingestellt}%^^A
-% Dieses Makro gibt an, wie die Ãœberschriften formatiert
-% werden. Voreingestellt ist linksbündig. Da dies nicht nur die Formatierung
-% von \cs{section} (und darunter), sondern auch die Voreinstellung für die
-% höheren Ebenen ist, wird die Definition hier vorgezogen.
+% \begin{command}{\raggedsection}
+% \changes{v2.3h}{1996/01/20}{added}
+% Should be either \cs{raggedleft}, \cs{raggedright}, \cs{centering} or
+% empty. Empty means no change, which is usually justified. Users could also
+% use other alignment/justification commands like the commands of package
+% \pkg{ragged2e}. The initial value is \cs{raggedright}.
+% \begin{description}
+% \item[Note:] We are here in the class. So usually \cs{raggedright} is the
+% \cs{raggedright} of the \LaTeX{} kernel. This also means: no hyphenation.
+% \item[Note:] We define is already here, because it is not only used for
+% style \texttt{section} but also as initial default of the \emph{higher
+% level} styles.
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\raggedsection}{}
\let\raggedsection\raggedright
%</body>
% \end{macrocode}
-% \end{macro}%^^A \raggedsection
+% \end{command}^^A \raggedsection
%
%
-% \begin{macro}{\DeclareSectionCommand}
-% \changes{v3.15}{2014/11/21}{neue Anweisung}%^^A
-% \changes{v3.17}{2015/03/23}{Komplettumbau, um stilabhängige Optionen zu
-% ermöglichen}%^^A
-% \changes{v3.18}{2015/05/22}{\cs{scr@dsc@def@style@\dots @command}
-% definiert alle Stil abhängigen Anweisungen}%^^A
-% \changes{v3.20}{2015/10/03}{\cs{DeclareTOCStyleEntry}
-% definiert die Verzeichnisstil abhängigen Anweisungen}%^^A
-% Definition neuer oder Umdefinition existierender Gliederungsbefehle. Ebenso
-% wird ein Verzeichniseintrag erzeugt, falls ein solcher noch nicht
-% existiert. Die Deklaration geschieht über diverse Optionen:
-%^^A (Achtung: Unbedingt daran denken, die Optionen in
-%^^A \cs{ProvideSectionCommands} ebenfalls zu definieren!!!)
+% All the options of \cs{DeclareSectionCommand} are options of family
+% \texttt{KOMAarg} member \texttt{.dsc}.
% \begin{macrocode}
%<*body>
\DefineFamily{KOMAarg}
\DefineFamilyMember[.dsc]{KOMAarg}
% \end{macrocode}
-% \begin{macro}{\DeclareSectionCommandStyleOption}
-% \changes{v3.17}{2015/03/23}{neue Anweisung}%^^A
-% Definiert eine neue Option für einen Stil eines Gliederungsbefehls. Das
-% erste Argument ist der Stil, das zweite der Name der Option, das dritte ist
-% die Definition. Sollte innerhalb der Definition eine Familie benötigt
-% werden, so ist \texttt{KOMAarg} zu verwenden.
+% \begin{command}{\DeclareSectionCommandStyleOption}
+% \changes{v3.17}{2015/03/23}{added}
+% \begin{command}{\AddToSectionCommandOptionsDoList,\RelaxSectionCommandOptions}
+% \changes{v3.20}{2015/11/18}{added}
+% \begin{macro}{\@AddToSectionCommandOptionsDoList,\scr@dsc@doopts}
+% \changes{v3.20}{2015/11/18}{added}
+% The basic command to define a section command style option is:
+% \begin{quote}
+% \cs{DeclareSectionCommandStyleOption}\marg{style}\marg{option}\marg{definition}
+% \end{quote}
+% Is similar to a corresponding \cs{DefineFamilyKey}. But the option
+% definition is not done immediately but added to
+% \cs{scr@dsc@style@\meta{style}@options} which is executed later inside
+% \cs{DeclareSectionCommand} after detection of the \opt{style} option. The
+% option is also added to the \emph{section command options do list} of
+% \cs{scr@dsc@doopts} using
+% \begin{quote}
+% \cs{AddToSectionCommandOptionsDoList}\marg{option}
+% \end{quote}
+% This is used, e.g., to relax all options inside \cs{DeclareSectionCommand}
+% using \cs{RelaxSectionCommandOptions} to not have options defined, that are
+% used by one style, while declaring a command of another style, that does not
+% support the option.
+% \begin{description}
+% \item[Note:] We also could have used another option member for every style
+% to avoid such problems. With \LaTeX3 also usage of
+% \pkg[https://www.ctan.org/pkg/l3kernel]{l3keys}, which provides a kind of
+% hierarchical options, would have been possible.
+% \end{description}
% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleOption}[3]{%
\AddToSectionCommandOptionsDoList{#2}%
@@ -1631,20 +1549,6 @@
\DefineFamilyKey[.dsc]{KOMAarg}{#2}{#3}%
}%
}
-% \end{macrocode}
-% \begin{macro}{\DeclareSectionCommandDummyOption}
-% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}%^^A
-% \changes{v3.20}{2015/11/18}{wird nicht mehr benötigt}%^^A
-% \end{macro}%^^A \DeclareSectionCommandDummyOption
-% \begin{macro}{\AddToSectionCommandOptionsDoList}
-% \changes{v3.20}{2015/11/18}{neu}
-% \begin{macro}{\@AddToSectionCommandOptionsDoList}
-% \changes{v3.20}{2015/11/18}{neu (intern)}
-% \begin{macro}{\scr@dsc@doopts}
-% \changes{v3.20}{2015/11/18}{neu (intern)}
-% Registriert eine neue Gliederungsbefehlsoption, indem sie der internen Liste
-% der Gliederungsbefehlsoptionen hinzugefügt wird.
-% \begin{macrocode}
\newcommand*{\AddToSectionCommandOptionsDoList}[1]{%
\kernel@ifnextchar [%]
{\@AddToSectionCommandOptionListWithDefault{#1}}%
@@ -1655,14 +1559,6 @@
\l@addto@macro\scr@dsc@doopts{\do[{#2}]{#1}}
}%
\newcommand*{\scr@dsc@doopts}{}
-% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@dooptions
-% \end{macro}%^^A \@AddToSectionCommandOptionsListWithDefault
-% \end{macro}%^^A \AddToSectionCommandOptionsDoList
-% \begin{macro}{\RelaxSectionCommandOptions}
-% \changes{v3.20}{2015/11/18}{neu}
-% Diese Option macht alle Gliederungsbefehlsoptionen ungültig.
-% \begin{macrocode}
\newcommand*{\RelaxSectionCommandOptions}{%
\begingroup
\def\do@endgroup{\endgroup}%
@@ -1678,14 +1574,45 @@
\do@endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \RelaxSectionCommandOptions
-% \end{macro}%^^A \DeclareSectionCommandStyleOption
-% \begin{macro}{\DeclareSectionCommandStyleLengthOption}
-% \changes{v3.17}{2015/03/23}{neue Anweisung}%^^A
-% \changes{v3.20}{2016/04/25}{Argument wird ggf. expandiert}%^^A
-% Definiert eine für die aktuelle Ebene \cs{scr@dsc@current} eine neue
-% Längenoption und speichert das Ergebnis in einem Makro, das sich aus
-% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
+% \end{macro}^^A \@AddToSectionCommandOptionsListWithDefault,\scr@dsc@dooptions
+% \end{command}^^A \AddToSectionCommandOptionsDoList,\RelaxSectionCommandOptions
+% \end{command}^^A \DeclareSectionCommandStyleOption
+% We provide several kinds of options:
+% \begin{command}{\DeclareSectionCommandDummyOption}
+% \changes{v3.17}{2015/03/23}{added}
+% \changes{v3.20}{2015/11/18}{removed}
+% \end{command}^^A \DeclareSectionCommandDummyOption
+% \begin{command}{\DeclareSectionCommandStyleLengthOption,
+% \DeclareSectionCommandStyleNumberOption,
+% \DeclareSectionCommandStyleFontOption}
+% \changes{v3.17}{2015/03/23}{added}
+% \changes{v3.20}{2016/04/25}{argument expansion}
+% All these commands have the four arguments:
+% \begin{quote}
+% \marg{style}\marg{option}\marg{prefix}\marg{postfix}
+% \end{quote}
+% Most of the commands all correspond to \pkg*{scrbase} option declaration
+% commands:
+% \begin{center}
+% \begin{tabular}{lll}
+% \cs{DeclareSectionCommand} & \pkg*{scrbase} & meaning \\\hline
+% \cs{DeclareSectionCommandStyleLengthOption}
+% & \cs{FamilyLengthMacroKey} & length option\\
+% \cs{DeclareSectionCommandStyleNumberOption}
+% & \cs{FamilyCounterMacroKey} & numerical option\\
+% \cs{DeclareSectionCommandStyleFontOption}
+% & & font element option\\
+% \end{tabular}
+% \end{center}
+% The \meta{macro} of the corresponding \pkg*{scrbase} command is build by
+% \meta{prefix}\cs{scr@dsc@current}\meta{postfix}. For
+% \cs{DeclareSectionCommandStyleOption} the build name is the font
+% element instead. However, before using (setting) the option,
+% \cs{scr@dsc@current} has to be defined to be \meta{level name}
+% (aka \emph{section command name}). Depending on \cs{ifscr@dsc@expandtopt}
+% (see option \opt{expandtopt}) lengths given as argument to the option of
+% \cs{DeclareSectionCommandStyleLengthOption} is expanded to a \texttt{pt}
+% value instead of used as it is.
% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleLengthOption}[4]{%
\DeclareSectionCommandStyleOption{#1}{#2}{%
@@ -1702,15 +1629,6 @@
\fi
}%
}
-% \end{macrocode}
-% \end{macro}%^^A \DeclareSectionCommandStyleLengthOption
-% \begin{macro}{\DeclareSectionCommandStyleNumberOption}
-% \changes{v3.17}{2015/03/23}{neue Anweisung}%^^A
-% \changes{v3.20}{2016/04/25}{Argument wird expandiert}%^^A
-% Definiert eine für die aktuelle Ebene \cs{scr@dsc@current} eine neue
-% Zahlenoption und speichert das Ergebnis in einem Makro, das sich aus
-% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
-% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleNumberOption}[4]{%
\DeclareSectionCommandStyleOption{#1}{#2}{%
\protected@edef\reserved@a{%
@@ -1721,14 +1639,6 @@
\fi
}%
}
-% \end{macrocode}
-% \end{macro}%^^A \DeclareSectionCommandStyleNumberOption
-% \begin{macro}{\DeclareSectionCommandStyleFontOption}
-% \changes{v3.17}{2015/03/23}{neue Anweisung}%^^A
-% Definiert für die aktuelle Ebene \cs{scr@dsc@current} eine neue
-% Schrift und speichert das Ergebnis in einem Element, das sich aus
-% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
-% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleFontOption}[4]{%
\DeclareSectionCommandStyleOption{#1}{#2}{%
\IfExistskomafont{#3\scr@dsc@current#4}{%
@@ -1740,16 +1650,22 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \DeclareSectionCommandStyleFontOption
-% \begin{macro}{\DeclareSectionCommandStyleFuzzyOption}
-% \changes{v3.26}{2018/09/18}{neue Anweisung}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Definiert für die aktuelle Ebene \cs{scr@dsc@current} eine neue
-% Fuzzy-Auswahl. Eine Fuzzy-Auswahl akzeptiert neben den Werten für
-% boolsche-Schalter noch einen weiteren Wert. Es wird davon eine Anweisung
-% mit drei Argumenten definiert. Abhängig vom Wert wird das erste
-% (\texttt{true}), zweite (\texttt{false}) oder dritte (\emph{sonst}) Argument
-% ausgeführt. Der erlaubte weitere Wert wird als 5. Argument angegeben.
+% \end{command}^^A \DeclareSectionCommandStyleLengthOption …
+% \begin{command}{\DeclareSectionCommandStyleFuzzyOption}
+% \changes{v3.26}{2018/09/18}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% We also have a kind of fuzzy option. A fuzzy option defined by
+% \begin{quote}
+% \cs{DeclareSectionCommandStyleFuzzyOption}\meta{style}\meta{option}%
+% \meta{prefix}\meta{postfix}\meta{also}
+% \end{quote}
+% is an option, that provides three values: \texttt{true} (and the aliases
+% \texttt{on} and \texttt{yes}), \texttt{false} (and the aliases \texttt{off}
+% and \texttt{no}), and a third one \meta{also}. It defines a macro with the
+% name \meta{prefix}\cs{scr@dsc@current}\meta{postfix} and three arguments. If
+% the option is true, the macro expands to the first argument. If the option
+% is false, the macro expands to the second argument. If the option is
+% \meta{also} the macro expands to the third argument.
% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleFuzzyOption}[5]{%
\DeclareSectionCommandStyleOption{#1}{#2}{%
@@ -1772,81 +1688,94 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \DeclareSectionCommandStyleFuzzyOptions
+% \end{command}^^A \DeclareSectionCommandStyleFuzzyOptions
%
+% These types of options are used to define all the options of a style, e.g.,
% \begin{macro}{\scr@dsc@style@section@options}
-% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}%^^A
-% Dann für die Optionen des Stils \texttt{section}:
+% \changes{v3.17}{2015/03/23}{added}
+% the option declarations of style \texttt{section}:
% \begin{macrocode}
\newcommand*{\scr@dsc@style@section@options}{}
% \end{macrocode}
-% \begin{description}\item[\texttt{indent}]
-% Linker Einzug der Ãœberschrift
+% \begin{description}
+% \item[\opt{indent=\meta{length}}:]
+% the left indent of the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{section}
{indent}{scr@}{@sectionindent}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{afterindent}]
-% \changes{v3.26}{2018/09/18}{neue Option \texttt{afterindent}}%^^A
-% Fuzzy-Logik. Ein boolcher Wert gibt an, ob die erste Zeile nach der
-% Ãœberschrift eingezogen werden soll. Als dritter Wert ist \texttt{bysign}
-% möglich. Dann hängt die Entscheidung für den Einzug vom Vorzeichen von
-% \texttt{beforeskip} ab. Ein negativer Wert bedeutet dann, dass der
-% Absatzeinzug nach der Überschrift unterdrückt werden soll.
+% \item[\opt{afterindent=\meta{fuzzy}}:]
+% \changes{v3.26}{2018/09/18}{option \opt{afterindent}}
+% fuzzy logic. A boolean value states whether to indent the first line
+% after the heading. With additional \opt{afterindent=bysign} the decision
+% depends on the sign of \opt{beforeskip}. Negative values of
+% \opt{beforeskip} result in no paragraph indent.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFuzzyOption{section}
{afterindent}{scr@}{@afterindent}
{bysign}
% \end{macrocode}
-% \begin{description}\item[\texttt{beforeskip}]
-% Gibt den vertikalen Abstand vor der Ãœbeschrift an. Im Fall von
-% \texttt{afterindent=bysign} wird der Absolutwert verwendet.
+% \begin{description}
+% \item[\opt{beforeskip=\meta{length}}:]
+% The vertical distance before the heading. If \opt{afterindent=bysign}, the
+% absolute value of \meta{length} is used. Otherwise the \meta{length} can
+% also be negative to move up the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{section}
{beforeskip}{scr@}{@beforeskip}
% \end{macrocode}
-% \begin{description}\item[\texttt{runin}]
-% \changes{v3.26}{2018/09/18}{neue Option \texttt{runin}}%^^A
-% Fuzzy-Logik. Ein boolscher Wert gibt an, dass die Ãœberschrift als
-% Spitzmarke (\texttt{true}) oder als eigene Zeile (\texttt{false}) gesetzt
-% werden soll. Als dritter Wert ist \texttt{bysign} möglich. Dann hängt
-% Spitzmarke oder nicht vom Vorzeichen von \texttt{afterskip} ab. Spitzmarke
-% gibt es dann bei einem negativen Wert von \texttt{afterskip}.
+% \begin{description}
+% \item[\opt{runin=\meta{fuzzy}}:]
+% \changes{v3.26}{2018/09/18}{option \opt{runin}}
+% fuzzy logic. A boolean value states whether the heading is run-in (or
+% free-standing). With additional \opt{runin=bysign} the decision depends on
+% the sign of \opt{afterskip}. Negative values of \opt{afterskip} result in
+% a run-in heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFuzzyOption{section}
{runin}{scr@}{@runin}
{bysign}
% \end{macrocode}
-% \begin{description}\item[\texttt{afterskip}] Im Fall einer Spitzmarke (siehe
-% \texttt{runin}) der horizontale Abstand nach der Ãœberschrift. Im Fall einer
-% freistehenden Ãœberschrift der vertikale Abstand nach der Ãœberschrift. Falls
-% die Spitzmarke über das Vorzeichen aktiviert wird, wird immer der Betrag des
-% Wertes verwendet!
+% \begin{description}
+% \item[\opt{afterskip=\meta{length}}:]
+% In case of a run-in heading (see option \opt{runin}) the horizontal
+% distance after the heading. In case of a free-standing heading the
+% vertical distance after the heading. If the run-in heading is activated by
+% a negative \meta{length}, the absolute value is used. Otherwise the
+% \meta{length} can also be negative, which usually does not make much
+% sense.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{section}
{afterskip}{scr@}{@afterskip}
% \end{macrocode}
-% \begin{description}\item[\texttt{font}] Schrifteinstellungen für das
-% Element.\end{description}
+% \begin{description}
+% \item[\opt{font=\meta{font settings}}:]
+% The font setting for the font element of the heading.
+% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFontOption{section}{font}{}{}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@section@options
+% \end{macro}^^A \scr@dsc@style@section@options
% \begin{macro}{\scr@dsc@def@style@section@command}
-% \changes{v3.18}{2015/05/21}{neue Anweisung (intern)}%^^A
-% \changes{v3.20}{2016/01/19}{korrekte Spitzmarkenprüfung für
-% \cs{parfillskip}-Änderung}%^^A
-% Diese Anweisung left fest, wie ein Gliederungsbefehl für den Stil
-% \texttt{section} zu definieren ist. Das einzige Argument ist dabei der
-% \meta{Name} der Gliederungsebene, beispielsweise \texttt{section},
-% \texttt{subsection} etc. Hier ist es recht einfach, da lediglich
-% \cs{\meta{Name}} per \cs{scr@startsection} definiert werden muss.
+% \changes{v3.18}{2015/05/21}{added}
+% \changes{v3.20}{2016/01/19}{inline section test fixed}
+% Macro
+% \begin{quote}
+% \cs{scr@dsc@def@style@section@command}\marg{command name}
+% \end{quote}
+% defines a section command \cs{\meta{command name}} of style
+% \texttt{section}.
+% \begin{description}
+% \item[Note:] Here we already use our own \cs{scr@startsection} instead of
+% \cs{@startsection}. So maybe not redefining \cs{@startsection} or
+% redefining \cs{@startsection} only optionally wouldn't be a big step.
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@dsc@def@style@section@command}[1]{%
\@namedef{#1}{%
@@ -1867,18 +1796,20 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@def@style@section@command
+% \end{macro}^^A \scr@dsc@def@style@section@command
%
% \begin{macro}{\scr@dsc@style@chapter@options}
-% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}%^^A
-% Dann für die Optionen des Stils \texttt{chapter}:
+% \changes{v3.17}{2015/03/23}{added}
+% Now, the option declaration of style \texttt{chapter} (similar, but not the
+% same):
% \begin{macrocode}
%<*book|report>
\newcommand*{\scr@dsc@style@chapter@options}{}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{pagestyle}] Seitenstil für die Anfangsseite der
-% Gliederungsebene.
+% \item[\opt{pagestyle=\meta{name}}:]
+% The page style, that should be used for the starting page of the chapter
+% like outline level.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleOption{chapter}{pagestyle}{%
@@ -1887,65 +1818,72 @@
}%
% \end{macrocode}
% \begin{description}
-% \item[\texttt{afterindent}]
-% \changes{v3.26}{2018/09/18}{neue Option \texttt{afterindent}}%^^A
-% Fuzzy-Logik. Ein boolcher Wert gibt an, ob die erste Zeile nach der
-% Ãœberschrift eingezogen werden soll. Als dritter Wert ist \texttt{bysign}
-% möglich. Dann hängt die Entscheidung für den Einzug vom Vorzeichen von
-% \texttt{beforeskip} ab. Ein negativer Wert bedeutet dann, dass der
-% Absatzeinzug nach der Überschrift unterdrückt werden soll.
+% \item[\opt{afterindent=\meta{fuzzy}}:]
+% \changes{v3.26}{2018/09/18}{option \opt{afterindent}}
+% fuzzy logic. A boolean value states whether to indent the first line
+% after the heading. With additional \opt{afterindent=bysign} the decision
+% depends on the sign of \opt{beforeskip}. Negative values of
+% \opt{beforeskip} result in no paragraph indent.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFuzzyOption{chapter}
{afterindent}{scr@}{@afterindent}
{bysign}
% \end{macrocode}
-% \begin{description}\item[\texttt{beforeskip}]
-% Gibt den vertikalen Abstand vor der Ãœbeschrift an. Im Fall von
-% \texttt{afterindent=bysign} wird der Absolutwert verwendet.
+% \begin{description}
+% \item[\opt{beforeskip=\meta{length}}:]
+% The vertical distance before the heading. If \opt{afterindent=bysign}, the
+% absolute value of \meta{length} is used. Otherwise the \meta{length} can
+% also be negative to move up the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{chapter}
{beforeskip}{scr@}{@beforeskip}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{innerskip}] Der Absolutwert gibt den vertikalen Abstand
-% innerhalb der Überschrift zwischen Präfix-Zeile und Text an.
+% \item[\opt{innerskip=\meta{length}}:]
+% The vertical distance between the prefix line and the text (if a prefix
+% line is used).
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{chapter}
{innerskip}{scr@}{@innerskip}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{afterskip}] Der Absolutwert gibt den vertikalen Abstand nach
-% der Ãœberschrift an.
+% \item[\opt{afterskip=\meta{length}}:]
+% The vertical distance after the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{chapter}
{afterskip}{scr@}{@afterskip}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{font}] Schrifteinstellungen für das Element.
+% \item[\opt{font=\meta{font settings}}:]
+% The font setting for the font element of the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFontOption{chapter}{font}{}{}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{prefixfont}] Schrifteinstellungen für die Präfixzeile des
-% Elements.
+% \item[\opt{prefixfont=\meta{font settings}}:]
+% The font setting for the font element of the prefix line of the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFontOption{chapter}{prefixfont}{}{prefix}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@chapter@options
+% \end{macro}^^A \scr@dsc@style@chapter@options
% \begin{macro}{\scr@dsc@def@style@chapter@command}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung left fest, wie ein Gliederungsbefehl für den Stil
-% \texttt{chapter} zu definieren ist. Das einzige Argument ist dabei der
-% \meta{Name} der Gliederungsebene, normalerweise \texttt{chapter}.
-% Das ist etwas komplizierter als bei \cs{scr@dsc@def@style@section@command},
-% da hier eine ganze Reihe von miteinander verschachtelten Anweisungen zu
-% definieren sind.
+% \changes{v3.18}{2015/05/22}{added}
+% Macro
+% \begin{quote}
+% \cs{scr@dsc@def@style@chapter@command}\marg{command name}
+% \end{quote}
+% defines a section command \cs{\meta{command name}} of style
+% \texttt{chapter}. We need some more macros to be initialized than with
+% \cs{scr@dsc@def@style@section@command}.
+% \begin{description}
+% \item[ToDo:] Make a more generic (and general) interface for this.
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@dsc@def@style@chapter@command}[1]{%
\@namedef{#1}{\scr@startchapter{#1}}%
@@ -1960,27 +1898,31 @@
%</book|report>
% \end{macrocode}
% \begin{macro}{\scr@dsc@style@chapter@subcommands}
-% \selectlanguage{english}%^^A
-% \changes{v3.30}{2020/04/08}{new (internal)}
+% \changes{v3.30}{2020/04/08}{added}
% Internal name list of additional commands to be defined for style
-% \texttt{part} commands.
+% \texttt{chapter} commands. This is used, to decide, if a new section command
+% declaration is really new or already redefines some commands. This should
+% help to avoid, e.g., defining a new chapter command \cs{schapter}, if
+% \cs{chapter} is already defines, because \cs{schapter} would redefine the
+% \cs{@schapter} of \cs{chapter}.
% \begin{macrocode}
\newcommand*{\scr@dsc@style@chapter@subcommands}[1]{%
@#1,@s#1,@make#1head,@makes#1head,@@make#1head,@@makes#1head,set#1preamble%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@chapter@subcommands
-% \end{macro}%^^A \scr@dsc@def@style@chapter@command
+% \end{macro}^^A \scr@dsc@style@chapter@subcommands
+% \end{macro}^^A \scr@dsc@def@style@chapter@command
%
% \begin{macro}{\scr@dsc@style@part@options}
-% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}%^^A
-% Dann für die Optionen des Stils \texttt{part}:
+% \changes{v3.17}{2015/03/23}{added}
+% Now the options for style \texttt{part} (very similar to \texttt{chapter}):
% \begin{macrocode}
\newcommand*{\scr@dsc@style@part@options}{}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{pagestyle}] Seitenstil für die Anfangsseite der
-% Gliederungsebene.
+% \item[\opt{pagestyle=\meta{name}}:]
+% The page style, that should be used for the starting page of the chapter
+% like outline level.
% \end{description}
% \begin{macrocode}
%<*report|book>
@@ -1991,30 +1933,32 @@
%</report|book>
% \end{macrocode}
% \begin{description}
-% \item[\texttt{afterindent}]
-% \changes{v3.26}{2018/09/18}{neue Option \texttt{afterindent}}%^^A
-% Fuzzy-Logik. Ein boolcher Wert gibt an, ob die erste Zeile nach der
-% Ãœberschrift eingezogen werden soll. Als dritter Wert ist \texttt{bysign}
-% möglich. Dann hängt die Entscheidung für den Einzug vom Vorzeichen von
-% \texttt{beforeskip} ab. Ein negativer Wert bedeutet dann, dass der
-% Absatzeinzug nach der Überschrift unterdrückt werden soll.
+% \item[\opt{afterindent=\meta{fuzzy}}:]
+% \changes{v3.26}{2018/09/18}{option \opt{afterindent}}
+% fuzzy logic. A boolean value states whether to indent the first line
+% after the heading. With additional \opt{afterindent=bysign} the decision
+% depends on the sign of \opt{beforeskip}. Negative values of
+% \opt{beforeskip} result in no paragraph indent.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFuzzyOption{part}
{afterindent}{scr@}{@afterindent}
{bysign}
% \end{macrocode}
-% \begin{description}\item[\texttt{beforeskip}]
-% Gibt den vertikalen Abstand vor der Ãœbeschrift an. Im Fall von
-% \texttt{afterindent=bysign} wird der Absolutwert verwendet.
+% \begin{description}
+% \item[\opt{beforeskip=\meta{length}}:]
+% The vertical distance before the heading. If \opt{afterindent=bysign}, the
+% absolute value of \meta{length} is used. Otherwise the \meta{length} can
+% also be negative to move up the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{part}
{beforeskip}{scr@}{@beforeskip}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{innerskip}] Der Absolutwert gibt den vertikalen Abstand
-% innerhalb der Überschrift zwischen Präfix-Zeile und Text an.
+% \item[\opt{innerskip=\meta{length}}:]
+% The vertical distance between the prefix line and the text (if a prefix
+% line is used).
% \end{description}
% \begin{macrocode}
%<*book|report>
@@ -2023,32 +1967,41 @@
%</book|report>
% \end{macrocode}
% \begin{description}
-% \item[\texttt{afterskip}] Der Absolutwert gibt den vertikalen Abstand nach
-% der Ãœberschrift an.
+% \item[\opt{afterskip=\meta{length}}:]
+% The vertical distance after the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleLengthOption{part}
{afterskip}{scr@}{@afterskip}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{font}] Schrifteinstellungen für das Element.
+% \item[\opt{font=\meta{font settings}}:]
+% The font setting for the font element of the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFontOption{part}{font}{}{}
% \end{macrocode}
% \begin{description}
-% \item[\texttt{font}] Schrifteinstellungen für die Präfixzeile des Elements.
+% \item[\opt{prefixfont=\meta{font settings}}:]
+% The font setting for the font element of the prefix line of the heading.
% \end{description}
% \begin{macrocode}
\DeclareSectionCommandStyleFontOption{part}{prefixfont}{}{prefix}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@part@options
-% \begin{macro}{\scr@dsc@def@style@part@ommand}
-% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}
-% Diese Anweisung legt fest, wie ein Gliederungsbefehl für den Stil
-% \texttt{part} zu definieren ist. Das einzige Argument ist dabei der
-% \meta{Name} der Gliederungsebene, normalerweise \texttt{part}.
-% Das ist ganz ähnlich wie bei \cs{scr@dsc@def@style@chapter@command}.
+% \end{macro}^^A \scr@dsc@style@part@options
+% \begin{macro}{\scr@dsc@def@style@part@command}
+% \changes{v3.18}{2015/05/23}{added}
+% Macro
+% \begin{quote}
+% \cs{scr@dsc@def@style@part@command}\marg{command name}
+% \end{quote}
+% defines a section command \cs{\meta{command name}} of style
+% \texttt{part}. This looks like a mixture of
+% \cs{scr@dsc@def@style@section@command} and
+% \cs{scr@dsc@def@style@chapter@command}.
+% \begin{description}
+% \item[ToDo:] Make a more generic (and general) interface for this.
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@dsc@def@style@part@command}[1]{%
\@namedef{#1}{\scr@startpart{#1}}%
@@ -2059,8 +2012,7 @@
}
% \end{macrocode}
% \begin{macro}{\scr@dsc@style@part@subcommands}
-% \selectlanguage{english}%^^A
-% \changes{v3.30}{2020/04/08}{new (internal)}
+% \changes{v3.30}{2020/04/08}{added}
% Internal name list of additional commands to be defined for style
% \texttt{part} commands.
% \begin{macrocode}
@@ -2068,19 +2020,18 @@
@#1,@s#1,@end#1,set#1preamble%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@part@subcommands
-% \end{macro}%^^A \scr@dsc@def@style@part@command
+% \end{macro}^^A \scr@dsc@style@part@subcommands
+% \end{macro}^^A \scr@dsc@def@style@part@command
%
% \begin{macro}{\scr@dsc@style@section@neededoptionstest}
-% \changes{v3.17}{2015/03/24}{Neu (intern)}%^^A
-% \changes{v3.24}{2017/04/25}{Voreinstellungen für \texttt{indent} und
-% \texttt{font}}%^^A
-% \changes{v3.26}{2018/09/18}{\texttt{runin} und \texttt{afterindent}
-% beachten}%^^A
-% Dieses Anweisung überprüft, ob alle notwendigen Eigenschaften für die
-% Definition der spezifischen Gliederungsebene im section-Stil bekannt
-% sind. Sollte das nicht der Fall sein, meldet sie einen Fehler und sorgt sie
-% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
+% \changes{v3.17}{2015/03/24}{added}
+% \changes{v3.24}{2017/04/25}{initial values of \opt{indent} and
+% \opt{font}}
+% \changes{v3.26}{2018/09/18}{supporting \opt{runin} and \opt{afterindent}}
+% This macro checks, that all attributes needed for the definition of a
+% section command (with style \texttt{section}) are properly setup. If not, an
+% error is reported and the definition is prevented (using
+% \cs{aftergroup}\cs{@gobbletwo} inside \cs{scr@declaresectioncommanderror}).
% \begin{macrocode}
\newcommand*{\scr@dsc@style@section@neededoptionstest}{%
\scr@ifundefinedorrelax{scr@\scr@dsc@current @sectionindent}{%
@@ -2121,17 +2072,17 @@
}{}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@section@neededoptionstest
+% \end{macro}^^A \scr@dsc@style@section@neededoptionstest
%
% \begin{macro}{\scr@dsc@style@chapter@neededoptionstest}
-% \changes{v3.17}{2015/03/24}{Neu (intern)}%^^A
-% \changes{v3.24}{2017/04/25}{Voreinstellungen für alle außer auf Ebene
-% \texttt{chapter}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Dieses Anweisung überprüft, ob alle notwendigen Eigenschaften für die
-% Definition der spezifischen Gliederungsebene im chapter-Stil bekannt
-% sind. Sollte das nicht der Fall sein, meldet sie einen Fehler und sorgt sie
-% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
+% \changes{v3.17}{2015/03/24}{added}
+% \changes{v3.24}{2017/04/25}{initial values for all but level
+% \texttt{chapter}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% This macro checks, that all attributes needed for the definition of a
+% chapter command (with style \texttt{chapter}) are properly setup. If not, an
+% error is reported and the definition is prevented (using
+% \cs{aftergroup}\cs{@gobbletwo} inside \cs{scr@declaresectioncommanderror}).
% \begin{macrocode}
%<*book|report>
\newcommand*{\scr@dsc@style@chapter@neededoptionstest}{%
@@ -2212,17 +2163,16 @@
}
%</book|report>
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@chapter@neededoptionstest
+% \end{macro}^^A \scr@dsc@style@chapter@neededoptionstest
%
% \begin{macro}{\scr@dsc@style@part@neededoptionstest}
-% \changes{v3.17}{2015/03/24}{Neu (intern)}
-% \changes{v3.24}{2017/04/25}{Voreinstellungen für alle außer auf Ebene
-% \texttt{part}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Dieses Anweisung überprüft, ob alle notwendigen Eigenschaften für die
-% Definition der spezifischen Gliederungsebene im part-Stil bekannt
-% sind. Sollte das nicht der Fall sein, meldet sie einen Fehler und sorgt sie
-% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
+% \changes{v3.17}{2015/03/24}{added}
+% \changes{v3.24}{2017/04/25}{initial values for all but level \texttt{part}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% This macro checks, that all attributes needed for the definition of a
+% part command (with style \texttt{part}) are properly setup. If not, an
+% error is reported and the definition is prevented (using
+% \cs{aftergroup}\cs{@gobbletwo} inside \cs{scr@declaresectioncommanderror}).
% \begin{macrocode}
\newcommand*{\scr@dsc@style@part@neededoptionstest}{%
%<*book|report>
@@ -2306,27 +2256,51 @@
}{}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@dsc@style@part@neededoptionstest
+% \end{macro}^^A \scr@dsc@style@part@neededoptionstest
%
-% \begin{macro}{\ifscr@dsc@parametersonly}
-% \changes{v3.17}{2015/03/24}{neu}%^^A
-% \changes{v3.20}{2015/11/18}{es gibt keine Dummy-Optionen mehr}%^^A
-% Dieser Schalter wird verwendet, um die Einstellungen entsprechend dem
-% aktuell gültigen Stil zu ändern, die zugehörige Anweisung selbst aber nicht
-% neu zu definieren. Er wird von einem leeren \texttt{style}-Wert lokal
-% gesetzt.
+% \begin{macro}{\scr@dsc@parametersonlytrue,\scr@dsc@parametersonlyfalse,
+% \ifscr@dsc@parametersonly}
+% \changes{v3.17}{2015/03/24}{added}
+% \changes{v3.20}{2015/11/18}{dummy options removed}
+% In the first option pass of \cs{DeclareSectionCommand} this is set to true,
+% if the \opt{style} option is used without value, to change the settings of a
+% command without running \cs{scr@dsc@def@style@\meta{style}@command} and
+% therefore without defining the command itself.
+% \begin{description}
+% \item[ToDo:] Is this a not documented feature? What's the sense?
+% \end{description}
% \begin{macrocode}
\newif\ifscr@dsc@parametersonly
% \end{macrocode}
-% \end{macro}%^^A \ifscr@dsc@parametersonly
+% \end{macro}^^A \ifscr@dsc@parametersonly
%
+% \begin{command}{\DeclareSectionCommand}
+% \changes{v3.15}{2014/11/21}{added}
+% \changes{v3.17}{2015/03/23}{re-implemented because of style depending
+% options}
+% \changes{v3.18}{2015/05/22}{\cs{scr@dsc@def@style@\dots @command}
+% defines style depending macros}
+% \changes{v3.20}{2015/10/03}{using \cs{DeclareTOCStyleEntry}}
+% The main command to define new section commands or redefine existing section
+% commands. Incidentally it also defines the corresponding ToC entry command.
+% \begin{quote}
+% \cs{DeclareSectionCommand}\oarg{options}\marg{command name}
+% \end{quote}
+% is used to define \cs{\meta{command name}}. The \meta{options} are used to
+% specify the behave of the command. It is declared as optional
+% argument. However for new commands not all the options are really optional.
+% \begin{description}
+% \item[Note:] Don't forget to declare all options, that are defined for
+% \cs{DeclareSectionCommand} also for \cs{ProvideSectionCommands}!
+% \end{description}
% \begin{macrocode}
\newcommand*{\DeclareSectionCommand}[2][]{%
\edef\scr@dsc@current{#2}%
% \end{macrocode}
-% Im ersten Durchlauf werden nur die Stil-Optionen ausgewertet:
+% The first pass to get the:
% \begin{description}
-% \item[\texttt{style}] Stil der Gliederungsebene
+% \item[\opt{style=\meta{name}}:]
+% style of the section command.
% \end{description}
% \begin{macrocode}
\scr@dsc@parametersonlyfalse
@@ -2345,16 +2319,16 @@
}%
% \end{macrocode}
% \begin{description}
-% \item[\texttt{tocstyle}]
-% \changes{v3.20}{2015/11/12}{Option \texttt{tocstyle} frühzeitig
-% auswerten}%^^A
-% \changes{v3.27}{2019/10/02}{Präfix für die Speicherung des
-% Verzeichnisstils geändert}%^^A
-% Verzeichnis-Eintrags-Stil, damit auch für diesen anschließend die Optionen
-% definiert bzw. aktiviert werden können. Zu beachten ist hier, dass ab
-% \textsf{tocbasic} 3.27 der Stil korrekter Weise in \cs{scr@tso@\meta{level
-% name}@style} statt in \cs{scr@dte@\meta{level name}@style} gespeichert
-% wird. Zur Sicherheit werden hier beide Makros behandelt.
+% \item[\opt{tocstyle=\meta{name}}:] \changes{v3.20}{2015/11/12}{early
+% evaluation of option \opt{tocstyle}} \changes{v3.27}{2019/10/02}{prefix
+% for storing directory style changed} style of the ToC entry. From
+% \pkg*{tocbasic} 3.27 the style name macro has been changed from
+% \cs{scr@dte@\meta{level name}@style} to \cs{scr@tso@\meta{level
+% name}@style}.
+% \begin{description}
+% \item[ToDo:] Don't support deprecated \cs{scr@dte@\meta{level name}@style}
+% any longer.
+% \end{description}
% \end{description}
% \begin{macrocode}
\DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{%
@@ -2382,12 +2356,11 @@
}%
% \end{macrocode}
% \begin{description}
-% \item[\texttt{@else@}]
-% \changes{v3.20}{2015/11/18}{Option \texttt{tocstyle} frühzeitig
-% auswerten}%^^A
-% Damit keine anderen Optionen ausgewertet werden müssen aber auch nicht als
-% unbekannte Optionen einen Fehler erzeugen, wird diese Spezialoption
-% definiert, die einfach nur \cs{FamilyKeyStateProcessed} setzt.
+% \item[\texttt{@else@=\meta{value}}:]
+% \changes{v3.20}{2015/11/18}{early evaluation of option \opt{tocstyle}}
+% All other options are ignored using the \opt{@else@} option, which simply
+% accepts every option. So the first pass does not report any unknown
+% options.
% \end{description}
% \begin{macrocode}
\DefineFamilyKey[.dsc]{KOMAarg}{@else@}{%
@@ -2404,10 +2377,8 @@
}%
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
% \end{macrocode}
-% \changes{v3.20}{2015/11/18}{Rüchnahme der Optionen nach dem ersten
-% Durchgang}%^^A
-% Nach dem ersten Druchgang müssen alle Optionen wieder zurückgenommen
-% werden.
+% \changes{v3.20}{2015/11/18}{Resetting options after first pass}
+% After the first pass we have to reset these options.
% \begin{macrocode}
\RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
\RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
@@ -2420,14 +2391,13 @@
\endgroup
\@firstofone{%
% \end{macrocode}
-% \changes{v3.20}{2015/11/12}{keine Dummy-Optionen für den echten Lauf}%^^A
-% Nachdem nun der Stil für den Gliederungsbefehl bekannt ist, können wir
-% dessen Optionen aktivieren:
+% \changes{v3.20}{2015/11/12}{dummy options for main pass removed}
+% Now, we know the style and can activate all the options of the style.
% \begin{macrocode}
%<trace> \typeout{TRACE: style=\@nameuse{scr@\scr@dsc@current @style}}%
\@nameuse{scr@dsc@style@\@nameuse{scr@\scr@dsc@current @style}@options}%
% \end{macrocode}
-% Außerdem muss der Verzeichniseintrags-Stils initialisiert werden:
+% And initialize the ToC style.
% \begin{macrocode}
%<trace> \typeout{TRACE: tocstyle=%
%<trace> \@nameuse{scr@tso@\scr@dsc@current @style}}%
@@ -2438,14 +2408,16 @@
}{}%
% \end{macrocode}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.21}{2016/06/12}{erlaube auch \texttt{tocentry} an Stelle von
-% \texttt{toc} als Präfix}%^^A
-% An dieser Stelle müssen die Optionen des Verzeichniseintrags auf Optionen
-% der Gliederungsebene abgebildet werden. Dazu erhalten sie in der
-% Gliederungebene den Präfix \texttt{toc}. Das bedeutet gleichzeitig, dass es
-% keine Verzeichniseintragsoption Namens \texttt{style} geben kann und dass
-% Gliederungsoptionen nicht mit \texttt{toc} beginnen dürfen.
+% \cs{kernel@ifnextchar}}
+% \changes{v3.21}{2016/06/12}{support for prefix \opt{tocentry} instead of
+% \opt{toc}}
+% We also have to define options for all the ToC style options by adding the
+% prefix \opt{toc} to the names of these options. This also means a ToC style
+% option \opt{style} must not exist (because we already have an option
+% \opt{tocstyle}). This is the main reason, \cs{DeclareTOCStyleEntry} has not
+% such an option but a corresponding argument. Additionally ToC style options
+% should never start with \opt{toc} (because of the ugly resulting
+% \opt{toctoc\dots}).
% \begin{macrocode}
\let\scr@dsc@tocstyle@options\@empty
\let\scr@dsc@extra@relax@opts\@empty
@@ -2502,26 +2474,30 @@
\do@endgroup
}%
% \end{macrocode}
-% Die Optionen für die Stile von Verzeichniseintrag und Gliederungsebene
-% werden nicht erneut benötigt, müssten aber natürlich erneut verarbeitet
-% werden.
+% Make option \opt{style} and \opt{tocstyle} (fast) dummies, because they
+% already have been handled completely.
% \begin{macrocode}
\DefineFamilyKey[.dsc]{KOMAarg}{style}{\FamilyKeyStateProcessed}%
\DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{\FamilyKeyStateProcessed}%
% \end{macrocode}
-% Dazu kommen einige Optionen, die es schlicht immer gibt:
-% \begin{description}\item[\texttt{expandtopt}] Schalter, um die Längen zur
-% Definitionszeit statt zur Anwendungszeit komplett zu expandieren. Das
-% bedingt dann aber auch, dass die Längen nicht mehr abhängig von der
-% aktuellen Schriftgröße sind.\end{description}
+% Some options exist for all section command styles and therefore are defined
+% here and not a part of the style options:
+% \begin{description}
+% \item[\opt{expandtopt=\meta{boolean}}:]
+% If \texttt{true} all lengths are expanded at setting time to unit pt
+% instead of used unchanged. With this, the lengths are not depending on the
+% font size of usage time but on the current font size.
+% \end{description}
% \begin{macrocode}
\FamilyBoolKey[.dsc]{KOMAarg}{expandtopt}{scr@dsc@expandtopt}%
\scr@dsc@expandtoptfalse
% \end{macrocode}
-% \begin{description}\item[\texttt{increaselevel}] Automatische Erhöhung des
-% Wertes von Option \texttt{level} mit Säumniswert 1. Diese Option wird nur
-% definiert, wenn \cs{DeclareSectionCommands} verwendet wurde, was an
-% \cs{scr@local@levelincrease} erkannt wird.\end{description}
+% \begin{description}
+% \item[\opt{increaselevel=\meta{number}}:]
+% Automatically increase \opt{level} by \meta{number} (with default 1). This
+% is needed for \cs{DeclareSectionCommands} and therefore only defined if
+% \cs{scr@local@levelincrease} is defined.
+% \end{description}
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@local@levelincrease}{%
\RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
@@ -2530,8 +2506,10 @@
{\scr@local@levelincrease}%
}%
% \end{macrocode}
-% \begin{description}\item[\texttt{level}] nummerische
-% Gliederungsebene\end{description}
+% \begin{description}
+% \item[\opt{level=\meta{number}}:]
+% The numerical outline level of the command.
+% \end{description}
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@local@leveloffset}{%
\edef\reserved@a{%
@@ -2554,28 +2532,31 @@
}\reserved@a
}%
% \end{macrocode}
-% \changes{v3.19}{2015/09/09}{neue Eigenschaft \texttt{counterwithout}}
-% \begin{description}\item[\texttt{counterwithout}] Der Zähler dieser Ebene
-% soll nicht länger abhängen vom angegebenen Zähler.
+% \begin{description}
+% \item[\opt{counterwithout=\meta{name}}:]
+% \changes{v3.19}{2015/09/09}{option \opt{counterwithout}}
+% The counter of this command should not depend on the counter
+% \cnt{name} any longer.
% \end{description}
% \begin{macrocode}
\FamilyStringKey[.dsc]{KOMAarg}{counterwithout}{\scr@local@counterwithout}%
\let\scr@local@counterwithout\relax
% \end{macrocode}
-% \begin{description}\item[\texttt{counterwithin}] Der Zähler dieser Ebene
-% soll abhängen vom angegebenen Zähler.
+% \begin{description}
+% \item[\opt{counterwithin=\meta{name}}:]
+% The counter of this command depends on the counter \cnt{name}.
% \end{description}
% \begin{macrocode}
\FamilyStringKey[.dsc]{KOMAarg}{counterwithin}{\scr@local@counterwithin}%
\let\scr@local@counterwithin\relax
% \end{macrocode}
% \begin{description}
-% \item[\texttt{toclevel}] Ebene im Inhaltsverzeichnis (Voreinstellung ist
-% derselbe Wert wie für level); diese Option gibt es nur, wenn der
-% Verzeichnisstil sie unterstützt (was jeder Verzeichnisstil
-% sollte); wenn allerdings ein Offset dafür definiert ist, dann wird die
-% Option nicht einfach an den Stil weitergereicht, muss also noch einmal
-% umdefiniert werden.
+% \item[\opt{toclevel=\meta{number}}:]
+% The numerical ToC entry level. Default is \opt{level}. This option exists
+% only, if the ToC style supports it. But because with
+% \cs{DeclareSectionCommands} we need an offset for this (similar to the
+% increase of \opt{level}). So we have to redefine it in case of existing
+% \cs{scr@local@tocleveloffset}.
% \end{description}
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@local@tocleveloffset}{}{%
@@ -2595,8 +2576,8 @@
}%
}%
% \end{macrocode}
-% \changes{v3.20}{2015/11/12}{Optionen werden nur temporär definiert}%^^A
-% Optionen ausführen und anschließend wieder freigeben.
+% \changes{v3.20}{2015/11/12}{only temporary definition of options}
+% The main pass of options execution. Afterwards reset all the options.
% \begin{macrocode}
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
\scr@dsc@extra@relax@opts
@@ -2611,11 +2592,10 @@
\RelaxFamilyKey[.dsc]{KOMAarg}{level}%
\RelaxFamilyKey[.dsc]{KOMAarg}{counterwithin}%
% \end{macrocode}
-% Testen, ob alle benötigten Optionen für die (Um-)Definierung des
-% Gliederungsbefehls gesetzt sind,
-% \changes{v3.27}{2019/02/07}{\texttt{level} darf nicht -\cs{maxdimen}
-% sein}%^^A
-% wobei \texttt{level} nicht -\cs{maxdimen} ist:
+% Now, we can test, if all needed options has been defined.
+% \changes{v3.27}{2019/02/07}{\opt{level} must no be -\cs{maxdimen}}
+% Also test, that \opt{level} is not -\len{maxdimen}, because this value is
+% used internally to switch of numbering locally.
% \begin{macrocode}
\begingroup
\def\local@endgroup{\endgroup}%
@@ -2643,14 +2623,13 @@
}%
\local@endgroup
% \end{macrocode}
-% Wenn alle Informationen für die (Um-)Definierung des Gliederungsbefehls
-% zusammen sind \dots
+% If the configuration is compete, we are ready for the (re-)definition of the
+% command.
% \begin{macrocode}
\@firstofone{%
% \end{macrocode}
-% Zunächst sicherstellen, dass der Zähler existiert und ggf. dessen
-% Ausgabe anpassen:
-% \changes{v3.20}{2015/10/15}{fehlendes \cs{expandafter} ergänzt}%^^A
+% \changes{v3.20}{2015/10/15}{missing \cs{expandafter} added}
+% First of all we need a counter:
% \begin{macrocode}
\@ifundefined{c@#2}{\newcounter{#2}}{}%
\ifx\scr@local@counterwithout\relax
@@ -2674,7 +2653,7 @@
\@namedef{#2format}{\csname the#2\endcsname\autodot\enskip}%
}{}%
% \end{macrocode}
-% Dann den eigentlichen Gliederungsbefehl definieren:
+% Then the command itself (but only, if the \opt{style} was not empty):
% \begin{macrocode}
\ifscr@dsc@parametersonly
\ClassInfo{\KOMAClassName}{%
@@ -2697,11 +2676,10 @@
}%
\fi
% \end{macrocode}
-% Zu jedem Gliederungsbefehl gehört auch ein Befehl für den Kolumnentitel, der
-% bei \KOMAScript{} außerdem eine Formatierung des Zählers benötigt. Falls
-% \textsf{scrlayer} geladen ist, wird das über dessen Befehl
-% |\DeclareSectionNumberDepth| erledigt, sonst direkt:
-% \changes{v3.15a}{2015/01/21}{fix: \cs{endskip} statt \cs{enskip}}%^^A
+% We also need commands for the running head and a corresponding number
+% formatting. With \pkg*{scrlayer} this can and should be done using
+% \cs{DeclareSectionNumberDepth}. Otherwise we do it step by step.
+% \changes{v3.15a}{2015/01/21}{\cs{endskip} instead of \cs{enskip}}
% \begin{macrocode}
\@ifundefined{DeclareSectionNumberDepth}{%
\@ifundefined{#2markformat}{%
@@ -2714,8 +2692,7 @@
\DeclareSectionNumberDepth{#2}{\csname #2numdepth\endcsname}%
}%
% \end{macrocode}
-% Und es gehören Befehle dazu, um einen Eintrag ins Inhaltsverzeichnis zu
-% schreiben und den Eintrag auch darzustellen:
+% We also need macros to generate and print the ToC entry.
% \begin{macrocode}
\expandafter\providecommand\expandafter*%
\csname add#2tocentry\endcsname[2]{%
@@ -2735,12 +2712,11 @@
\DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{default}{#2}%
}{}%
% \end{macrocode}
-% \changes{v3.20}{2015/0/07}{\textsf{hyperref} bei den Ebenen der
-% Verzeichniseinträge berücksichtigen}%^^A
-% \changes{v3.26}{2018/06/27}{Einstellungen von \textsl{hyperref}
-% überschreiben}%^^A
-% \changes{v3.26}{2018/06/27}{Notfallbehandlung für Lücken in den
-% Bookmark-Ebenen}%^^A
+% \changes{v3.20}{2015/0/07}{support for ToC levels with \pkg{hyperref}}
+% \changes{v3.26}{2018/06/27}{overwrite ToC levels of \pkg{hyperref}}
+% \changes{v3.26}{2018/06/27}{fallback handling of gaps in the bookmark
+% levels}
+% And we need extra code for \pkg{hyperref} and the bookmarks.
% \begin{macrocode}
\if@atdocument
\let\reserved@a\@firstofone
@@ -2817,12 +2793,12 @@
}
% \end{macrocode}
% \begin{macro}{\scr@declaresectioncommanderror}
-% \changes{v3.15}{2014/11/21}{neue (interne) Anweisung}%^^A
-% Gibt einen Fehler aus, falls \cs{DeclareSectionCommand} zu wenige Optionen
-% übergeben wurde. Das erste Argument ist der Name des zu deklarierenden
-% Befehls, das zweite ist eine textuelle Beschreibung der fehlenden Option und
-% das dritte ist der Name der fehlenden Option. Als Seiteneffekt sorgt der
-% Befehl dafür, dass die Deklaration nicht stattfindet.
+% \changes{v3.15}{2014/11/21}{added}
+% It there were not enough options to \cs{DeclareSectionCommand} to define the
+% command, we report an error and also execute
+% \cs{aftergroup}\cs{@gobbletwo}. So the |\@firstofone{…}| code after
+% |\endgroup| resp. |\local@endgroup| inside \cs{DeclareSectionCommand} that
+% defines the new section command etc. will never be used in such a case.
% \begin{macrocode}
\newcommand*{\scr@declaresectioncommanderror}[3]{%
\ClassError{\KOMAClassName}{%
@@ -2835,17 +2811,10 @@
\aftergroup\@gobbletwo
}
% \end{macrocode}
-% \end{macro}%^^A \scr@declaresectioncommanderror
+% \end{macro}^^A \scr@declaresectioncommanderror
% \begin{macro}{\scr@declaresectioncommandwarning}
-% \changes{v3.24}{2017/04/25}{neue (interne) Anweisung}%^^A
-% In einigen Fällen genügt es hingegen eine Warnung oder Info für fehlende
-% Optionen auszugeben und einen Defaultwert zu verwenden. Das erste Argument
-% ist auch hier der Name des zu deklarierenden Befehls, das zweite eine
-% textuelle Beschreibung der fehlenden Option und das dritte der Name der
-% fehlenden Option. Das vierte ist der Defaultwert, der ersatzweise verwendet
-% wird. Der Befehl hat wie \cs{scr@declaresectioncommanderror} einen
-% Seiteneffekt. In diesem Fall wird \cs{local@endgroup} um das fünfte Argument
-% erweitert.
+% \changes{v3.24}{2017/04/25}{added}
+% Sometimes a warning and extension of \cs{local@endgroup} is enough.
% \begin{macrocode}
\newcommand*{\scr@declaresectioncommandwarning}[5]{%
\ClassInfo{\KOMAClassName}{%
@@ -2857,18 +2826,19 @@
\l@addto@macro\local@endgroup{#5}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@declaresectioncommandwarning
-% \end{macro}%^^A \DeclareSectionCommand
+% \end{macro}^^A \scr@declaresectioncommandwarning
+% \end{command}^^A \DeclareSectionCommand
+%
%
-% \begin{macro}{\DeclareNewSectionCommand}
-% \changes{v3.15}{2014/11/21}{neue Anweisung}%^^A
-% \changes{v3.25}{2018/03/10}{zusätzliche Tests und Fehlermeldungen bei
+% \begin{command}{\DeclareNewSectionCommand}
+% \changes{v3.15}{2014/11/21}{added}
+% \changes{v3.25}{2018/03/10}{additional tests and errors about
% \cs{the\dots}, \cs{\dots mark}, \cs{\dots format},
-% \cs{\dots markformat}}%^^A
-% \changes{v3.30}{2020/04/08}{unerwünschte Leerzeichen eliminiert}%^^A
-% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
-% definiert, die zuvor noch nicht existierte. Wichtig zu bemerken ist, dass
-% die ganzen Hilfsanweisungen bereits existieren dürfen.
+% \cs{\dots markformat}}
+% \changes{v3.30}{2020/04/08}{orphan spaces removed}
+% This is similar to \cs{DeclareSectionCommand} but reports an error, if the
+% command or a main helper already exist. So it can be used for new commands
+% only.
% \begin{macrocode}
\newcommand*{\DeclareNewSectionCommand}[2][]{%
\@ifundefined{#2}{%
@@ -2882,9 +2852,8 @@
}%
\if@tempswa
% \end{macrocode}
-% \changes{v3.30}{2020/04/08}{erweiterte Neuheitsprüfung}%^^A
-% Es wird der Stil benötigt, um zu ermitteln, ob die Unterbefehle für diesen
-% Stil möglicherweise bereits definiert sind.
+% \changes{v3.30}{2020/04/08}{extended test for really new}
+% After the general user commands, we just have to detect the style \dots
% \begin{macrocode}
\expandafter\let\expandafter\scr@dsc@current
\csname scr@tso@##2@style\endcsname
@@ -2898,7 +2867,8 @@
\RelaxFamilyKey[.dsc]{KOMAarg}{style}%
\@tempswatrue
% \end{macrocode}
-% Wenn der Stil definiert ist und Unterbefehle kennt, diese ebenfalls testen.
+% \dots{} to gut through the \cs{scr@dsc@style@\meta{style}@subcommands} and
+% test, if one of them exists.
% \begin{macrocode}
\@ifundefined{scr@dsc@current}{}{%
\scr@ifundefinedorrelax{scr@dsc@style@\scr@dsc@current @subcommands}{%
@@ -2919,6 +2889,10 @@
\let\scr@dsc@current\relax
\fi
\if@tempswa
+% \end{macrocode}
+% If not, we can use \cs{DeclareSectionCommand}. Otherwise just report an
+% error.
+% \begin{macrocode}
\DeclareSectionCommand[{#1}]{#2}%
\else
\ClassError{\KOMAClassName}{%
@@ -2952,13 +2926,14 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \DeclareNewSectionCommand
+% \end{command}^^A \DeclareNewSectionCommand
%
-% \begin{macro}{\RedeclareSectionCommand}
-% \changes{v3.15}{2014/11/21}{neue Anweisung}%^^A
-% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
-% umdefiniert, die zuvor bereits existierte. Wichtig zu bemerken ist, dass
-% die ganzen Hilfsanweisungen nicht zu exisieren brauchen.
+% \begin{command}{\RedeclareSectionCommand}
+% \changes{v3.15}{2014/11/21}{added}
+% This is much easier than \cs{DeclareNewSectionCommand} because it tests only
+% for the main command and uses \cs{DeclareSectionCommand} if the main command
+% already exists. So all the additional commands and main helpers do not need
+% to exist.
% \begin{macrocode}
\newcommand*{\RedeclareSectionCommand}[2][]{%
\@ifundefined{#2}{%
@@ -2978,10 +2953,18 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \RedeclareSectionCommand
+% \end{command}^^A \RedeclareSectionCommand
%
-% \begin{macro}{\ProvideSectionCommand}
-% \changes{v3.15}{2014/11/21}{neue Anweisung}%^^A
+% \begin{command}{\ProvideSectionCommand}
+% \changes{v3.15}{2014/11/21}{added}
+% This is much easier than \cs{DeclareNewSectionCommand} because currently it
+% tests only for the command itself but nor for the helpers.
+% \begin{description}
+% \item[ToDo:] This is dangerous, because
+% e.g. |\ProvideSectionCommand{schapter}| would break \cs{chapter} (because
+% of \cs{@schapter}). So maybe it should do the same tests as
+% \cs{DeclareNewSectionCommand} and at least warn.
+% \end{description}
% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
% definiert, wenn sie zuvor noch nicht existierte. Wichtig zu bemerken ist,
% dass die ganzen Hilfsanweisungen bereits existieren dürfen.
@@ -2996,16 +2979,22 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \ProvideSectionCommand
-%
-% \begin{macro}{\DeclareSectionCommands}
-% \changes{v3.15}{2014/12/03}{neue Anweisung}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}%^^A
-% Basierend auf \cs{DeclareSectionCommand} können gleich mehrere
-% Gliederungsanweisungen definiert werden. Dabei sorgt Option
-% \texttt{increaselevel} dafür, dass die Werte von \texttt{level} und
-% \texttt{toclevel} automatisch von Befehl zu Befehl um den angegebenen Wert
-% (Default ist 1) erhöht werden.
+% \end{command}^^A \ProvideSectionCommand
+%
+% \begin{command}{\DeclareSectionCommands}
+% \changes{v3.15}{2014/12/03}{added}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@trim@spaces}}
+% Based on \cs{DeclareSectionCommand} this one can be used to define several
+% commands at once. The commands are given as a comma-separated list of
+% commands. There is one additional option \opt{increaselevel=\meta{number}}
+% to add \meta{number} to the \opt{level} at each call of
+% \cs{DeclareSectionCommand} but the first one. The definition of this option
+% is done inside \cs{DeclareSectionCommand} if \cs{scr@local@levelincrease} is
+% defined. Because of the first run, we initialize it with 0. The same has to
+% be done for \cs{scr@local@leveloffset} and \cs{scr@local@tocleveloffset}.
+% At the end we also have to un-define these local commands. Otherwise later
+% usage of \cs{DeclareSectionCommand} would be detected as part of
+% \cs{DeclareSectionCommands}.
% \begin{macrocode}
\newcommand*{\DeclareSectionCommands}[2][]{%
\edef\reserved@a{#2}%
@@ -3024,16 +3013,19 @@
\let\scr@local@tocleveloffset\relax
}
% \end{macrocode}
-% \end{macro}%^^A \DeclareSectionCommands
+% \end{command}^^A \DeclareSectionCommands
%
-% \begin{macro}{\DeclareNewSectionCommands}
-% \changes{v3.15}{2014/12/03}{neue Anweisung}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}%^^A
-% Im Unterschied zu \cs{DeclareNewSectionCommand} führt diese Anweisung die
-% Änderung auch dann aus, wenn die Anweisung bereits deklariert war. Eine
-% Fehlermeldung wird aber natürlich trotzdem ausgegeben. Dieser Unterschied
-% ist jedoch notwendig, weil sonst Option \texttt{increaselevel} für
-% nachfolgende Befehle nicht mehr korrekt arbeiten würde.
+% \begin{command}{\DeclareNewSectionCommands}
+% \changes{v3.15}{2014/12/03}{added}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@trim@spaces}}
+% Because of \opt{increaselevel} we cannot simply use
+% \cs{DeclareNewSectionCommand} inside, but have to use
+% \cs{DeclareSectionCommand} even for already defined commands (but
+% nevertheless report an error).
+% \begin{description}
+% \item[ToDo:] Is this really the correct error action? Does it really matter,
+% if \opt{increaselevel} would be wrong after already reporting an error?
+% \end{description}
% \begin{macrocode}
\newcommand*{\DeclareNewSectionCommands}[2][]{%
\edef\reserved@a{#2}%
@@ -3067,16 +3059,19 @@
\let\scr@local@tocleveloffset\relax
}
% \end{macrocode}
-% \end{macro}%^^A \DeclareNewSectionCommands
+% \end{command}^^A \DeclareNewSectionCommands
%
-% \begin{macro}{\RedeclareSectionCommands}
-% \changes{v3.15}{2014/12/03}{neue Anweisung}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}%^^A
-% Im Unterschied zu \cs{RedeclareNewSectionCommands} führt diese Anweisung die
-% Änderung auch dann aus, wenn die Anweisung noch nicht deklariert war. Eine
-% Fehlermeldung wird aber natürlich trotzdem ausgegeben. Dieser Unterschied
-% ist jedoch notwendig, weil sonst Option \texttt{increaselevel} für
-% nachfolgende Befehle nicht mehr korrekt arbeiten würde.
+% \begin{command}{\RedeclareSectionCommands}
+% \changes{v3.15}{2014/12/03}{added}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@trim@spaces}}
+% Because of \opt{increaselevel} we cannot simply use
+% \cs{RedeclareSectionCommand} inside, but have to use
+% \cs{DeclareSectionCommand} even for not yet defined commands (but
+% nevertheless report an error).
+% \begin{description}
+% \item[ToDo:] Is this really the correct error action? Does it really matter,
+% if \opt{increaselevel} would be wrong after already reporting an error?
+% \end{description}
% \begin{macrocode}
\newcommand*{\RedeclareSectionCommands}[2][]{%
\edef\reserved@a{#2}%
@@ -3108,16 +3103,16 @@
\let\scr@local@tocleveloffset\relax
}
% \end{macrocode}
-% \end{macro}%^^A \RedeclareSectionCommands
+% \end{command}^^A \RedeclareSectionCommands
%
-% \begin{macro}{\ProvideSectionCommands}
-% \changes{v3.15}{2014/12/03}{neue Anweisung}%^^A
-% \changes{v3.17}{2015/03/23}{Umbau, um stilabhängige Optionen zu
-% ermöglichen}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}%^^A
-% Hier wird es nun wirklich schwierig, weil wir irgendwie dafür sorgen müssen,
-% dass Option \texttt{increaselevel} funktioniert, auch wenn gar nichts
-% definiert werden darf. Das macht die Geschichte ein wenig auswändig.
+% \begin{command}{\ProvideSectionCommands}
+% \changes{v3.15}{2014/12/03}{added}
+% \changes{v3.17}{2015/03/23}{re-implemented because of style depending
+% options}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@trim@spaces}}
+% This is the real problematic case, because \opt{increaselevel} should be
+% used even for commands, that must not be defined. However, maybe a solution
+% like this should be used for the two previous commands too.
% \begin{macrocode}
\newcommand*{\ProvideSectionCommands}[2][]{%
\edef\reserved@a{#2}%
@@ -3133,10 +3128,8 @@
\reserved@a
}{%
% \end{macrocode}
-% Wenn die Anweisung bereits definiert ist, dann müssen wir trotzdem die
-% Optionen auswerten, wobei allerdings nur die Option \texttt{level} und
-% \texttt{increaselevel} eine Wirkung haben dürfen. Der Rest wird per
-% \texttt{@else}-Optionen erledigt.
+% If the command already exists, process options \opt{level}, \opt{toclevel}
+% and \opt{increaselevel} and ignore all others using an \opt{@else@} option.
% \begin{macrocode}
\DefineFamilyKey[.dsc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
\FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
@@ -3166,11 +3159,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \ProvideSectionCommands
+% \end{command}^^A \ProvideSectionCommands
%
-% \begin{macro}{\IfSectionCommandStyleIs}
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/02/04}{new}%^^A
+% \begin{command}{\IfSectionCommandStyleIs}
+% \changes{v3.27}{2019/02/04}{added}
% Test whether ot not the section command of argument 1 has the style of
% argument 2. If so: use argument 3, of not: use argument 4.
% \begin{macrocode}
@@ -3201,19 +3193,18 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% \begin{option}{bookmarkpackage}
-% \selectlanguage{english}%^^A
-% \changes{v3.26}{2018/06/27}{new option}%^^A
-% Package \textsf{hyperref} has problems with bookmark level gaps. So if
+% \changes{v3.26}{2018/06/27}{added}
+% Package \pkg{hyperref} has problems with bookmark level gaps. So if
% either the users omits a heading level or defines a heading with a level
% that distinguish more than one from the previous or following level, there
% would be a problem. One recommended solution for this would be to use
-% package \textsf{bookmark}. So if we load this package, we can use the same
+% package \pkg{bookmark}. So if we load this package, we can use the same
% value for bookmark levels and TOC levels even within
-% \textsf{scrartcl}. Nevertheless we allow the user to decide not to use
-% \textsf{bookmark}, but then it is not my fault, if something strange
+% \cls*{scrartcl}. Nevertheless we allow the user to decide not to use
+% \pkg{bookmark}, but then it is not my fault, if something strange
% happens.
% \begin{macrocode}
%<*option>
@@ -3225,13 +3216,13 @@
\@ifpackageloaded{bookmark}{}{%
\if@scr@autoloadbookmarkpackage
% \end{macrocode}
-% \changes{v3.27}{2019/06/26}{try to translate \textsf{hyperref} driver to
-% \textsf{bookmark} driver option}%^^A
-% The name of the \textsf{hyperref} driver is in \cs{Hy@driver}. But
-% \textsf{bookmark} does not provide the same drivers, so we try to translate
-% the curreny known \textsf{hyperref} drivers to \textsf{bookmark}
-% drivers. Also we do not load \textsf{bookmark} with a driver option but
-% define \textsf{bookmark}'s \cs{BookmarkDriverDefault}.
+% \changes{v3.27}{2019/06/26}{try to translate \pkg{hyperref} driver to
+% \pkg{bookmark} driver option}
+% The name of the \pkg{hyperref} driver is in \cs{Hy@driver}. But
+% \pkg{bookmark} does not provide the same drivers, so we try to translate
+% the curreny known \pkg{hyperref} drivers to \pkg{bookmark}
+% drivers. Also we do not load \pkg{bookmark} with a driver option but
+% define \pkg{bookmark}'s \cs{BookmarkDriverDefault}.
% \begin{macrocode}
\scr@ifundefinedorrelax{Hy@driver}{%
\ClassWarning{\KOMAClassName}{%
@@ -3241,11 +3232,11 @@
}%
}{%
% \end{macrocode}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Note: \texttt{hpdftex}, \texttt{hluatex}, \texttt{hxetex} and \texttt{hvtex}
% do not need to be translated, because they are autodetected by
-% \textsf{bookmark} as well. \texttt{hypertex}, \texttt{hdviwindo},
-% \texttt{htex4ht} and \texttt{latex2html} are not known by \textsf{bookmark},
+% \pkg{bookmark} as well. \texttt{hypertex}, \texttt{hdviwindo},
+% \texttt{htex4ht} and \texttt{latex2html} are not known by \pkg{bookmark},
% so we stay with the default (usually \texttt{dvips}).
% \begin{macrocode}
\Ifstr{\Hy@driver}{hdvips}{%
@@ -3283,9 +3274,9 @@
}%
% \end{macrocode}
% \changes{v3.33}{2021/02/17}{workaround for catcode changes of
-% \textsf{babel-spanish}}
-% For \textsf{babel-spanish} we need to deactivate quoting before loading
-% \textsf{bookmark}.
+% \pkg{babel-spanish}}
+% For \pkg{babel-spanish} we need to deactivate quoting before loading
+% \pkg{bookmark}.
% \begin{macrocode}
\@ifundefined{es@quoting}{%
\RequirePackage{bookmark}%
@@ -3305,8 +3296,8 @@
\fi
}%
% \end{macrocode}
-% \changes{v3.26b}{2019/01/17}{workaround for \cs{@beginmainauxhook} added}%^^A
-% Sometimes \textsf{auxhook} is not able to recognize that it cannot use a
+% \changes{v3.26b}{2019/01/17}{workaround for \cs{@beginmainauxhook} added}
+% Sometimes \pkg{auxhook} is not able to recognize that it cannot use a
% patch of \cs{document} to execute \cs{@beginmainauxhook} if it is loaded via
% \cs{AtBeginDocument}. In this case we do it here.
% \begin{macrocode}
@@ -3335,28 +3326,27 @@
}%
}
%</option>
-%</class>
% \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-% \end{option}%^^A bookmarkpackage
+% \end{option}^^A bookmarkpackage
%
%
-% \subsection{Definitionen für Präambeln}
+% \subsection{Preambles of parts or chapters}
%
-% Bei den \KOMAScript-Klassen \textsf{scrbook} und \textsf{scrreprt}
-% können \cs{part} und \cs{chapter} mit Präambeln versehen werden. Es
-% wird gleichzeitig eine Präambel über und unter der jeweiligen
-% Überschrift unterstützt.
+% The \KOMAScript{} classes \cls*{scrbook} and \cls*{scrreprt} provide
+% preambles above and below the headings of parts and chapters. The preamble
+% above is printed into the usual distance above the headings. It does not
+% increase this distance to avoid \emph{jumping headings}. However here we
+% have only the generic code for preambles. The user commands are defined by
+% \cs{scr@dsc@style@chapter@command} and \cs{scr@dsc@style@part@command}.
%
% \begin{macro}{\use@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
-% Dieses Makro dient allgemein zum Setzen einer Präambel (für
-% Gliederungsüberschriften), wenn eine solche definiert ist. Als
-% Argument wird der Name der Präambel übergeben, an den automatisch
-% \texttt{@preamble} angehängt wird. Zum Schluss wird die gespeicherte
-% Präambel gelöscht.
-% \begin{macrocode}
-%<*class>
+% \changes{v2.8p}{2001/09/25}{added}
+% Used as a general macro to print the stored preamble code and clean the
+% storage. Preambles are only printed, if the storage is defined. But an empty
+% defined storage would be printed. The argument is the name of the storage,
+% e.g., \texttt{chapter@o}, \texttt{chapter@u}, \texttt{part@o},
+% \texttt{part@u}.
+% \begin{macrocode}
%<*book|report>
%<*body>
\newcommand*{\use@preamble}[1]{%
@@ -3368,58 +3358,56 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\set@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
+% \changes{v2.8p}{2001/09/25}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Das Makro \cs{set@preamble} dient allgemein der Defintion einer
-% Präambel (für Gliederungsüberschriften). Als Argument wird der
-% Name der Gliederungsebene übergeben. Danach folgt ein optionales
-% Argument, das die Position der Präambel angibt. Darauf folgt ein
-% weiteres optionales Argument, das die Breite der Präambel
-% angibt. Ist nur ein optionales Argument angegeben, so ist es die
-% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der
-% Präambel. Die Definition der Präambel erfolgt global.
+% \cs{kernel@ifnextchar}}
+% Macro
+% \begin{quote}
+% \cs{set@preamble}\marg{level name}\oarg{position}\oarg{width}\marg{text}
+% \end{quote}
+% defines a preamble code stored into \cs{\meta{preamble name}@preamble}. The
+% \meta{preamble name} is build depending on the \meta{level name} and the
+% \meta{position}. The \meta{position} is a combination of vertical and
+% horizontal position and used to generate not only the \meta{preamble name}
+% but also options for the \cs{parbox} used to encapsulate the \meta{text}
+% into a preamble code. The \meta{width} is also used for the \cs{parbox}.
+% \begin{description}
+% \item[Note:] The definition of a preamble is global and the definition of a
+% new preamble of the same \meta{preamble name} overwrite an existing one.
+% \end{description}
% \begin{macro}{\set@@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
+% \changes{v2.8p}{2001/09/25}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\set@@@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
+% \changes{v2.8p}{2001/09/25}{added}
% \begin{macro}{\set@@@@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
-% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}%^^A
-% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt}%^^A
-% \changes{v3.12a}{2014/02/14}{b korrigiert}%^^A
-% Da mehrere optionale Argumente nach einem obligatorischen Argument
-% auszuwerten sind, werden diverse Hilfsmakros benötigt.
+% \changes{v2.8p}{2001/09/25}{added}
+% \changes{v2.8q}{2001/11/27}{missing brace added}
+% \changes{v3.12}{2012/10/16}{allow \texttt{o} as alias for \texttt{b}}
+% \changes{v3.12a}{2014/02/14}{\texttt{b} fixed}
+% We need a lot of helpers because of not using \pkg*{xparse} but having
+% several optional arguments. At least one optional argument? If not use an
+% empty default for the first one and \len{hsize} for the second one.
% \begin{macrocode}
\newcommand*{\set@preamble}[1]{%
-% \end{macrocode}
-% Zunächst wird das erste optionale Argument gesucht.
-% \begin{macrocode}
\kernel@ifnextchar [%]
{\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}%
}
-\newcommand*{\set@@preamble}{}
-\def\set@@preamble#1[#2]{%
% \end{macrocode}
-% Wenn ein optionales Argument existiert, kann es auch ein zweites
-% geben. Wenn nicht, wird mit der Voreinstellung gearbeitet.
+% Or even two optional argument? If not use default \len{hsize}.
% \begin{macrocode}
+\newcommand*{\set@@preamble}{}
+\def\set@@preamble#1[#2]{%
\kernel@ifnextchar [%]
{\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}%
}
-\newcommand{\set@@@preamble}{}
-\long\def\set@@@preamble#1[#2][#3]#4{%
% \end{macrocode}
-% Dies ist das Hauptmakro, das die eigentliche Arbeit macht. Es muss
-% \cs{long} definiert werden, da die Präambel auch aus mehreren
-% Absätzen bestehen kann.
-%
-% Zunächst wird das Positionsargument ausgewertet. Dies geschieht mit
-% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife
-% siehe im dokumentierten \LaTeX-Kern.
+% From here we know all optional arguments and have to process the composite
+% \meta{position}.
% \begin{macrocode}
+\newcommand{\set@@@preamble}{}
+\long\def\set@@@preamble#1[#2][#3]#4{%
\begingroup
\def\prmbl@pos{#2}\let\prmbl@hpos\relax\let\prmbl@vpos\relax
\expandafter \@tfor \expandafter \@tempa
@@ -3448,37 +3436,28 @@
\fi
}%
% \end{macrocode}
-% Wurde keine horizontale oder vertikale Ausrichtung definiert, so
-% wird nun der Standardwert dafür eingesetzt.
+% If the horizontal or vertical position is still unclear use defaults.
% \begin{macrocode}
\@ifundefined{prmbl@hpos}{\def\prmbl@hpos{0}}{}%
\@ifundefined{prmbl@vpos}{\def\prmbl@vpos{0}}{}%
% \end{macrocode}
-% Nun sind die Positionen ermittelt und es werden abhängig davon
-% entsprechende Päambelmakros definiert.
+% From the vertical position we can build the \meta{preamble name} and the
+% vertical position of the \cs{parbox} the horizontal is used for the
+% horizontal skip before and after the \cs{parbox}.
% \begin{macrocode}
\ifcase\prmbl@hpos
-% \end{macrocode}
-% Zunächst links unten und oben:
-% \begin{macrocode}
\ifcase\prmbl@vpos
\set@@@@preamble{#1@u}{t}{#3}{}{\hfil}{#4}%
\else
\set@@@@preamble{#1@o}{b}{#3}{}{\hfil}{#4}%
\fi
\or
-% \end{macrocode}
-% Dann zentriert unten und oben:
-% \begin{macrocode}
\ifcase\prmbl@vpos
\set@@@@preamble{#1@u}{t}{#3}{\hfil}{\hfil}{#4}%
\else
\set@@@@preamble{#1@o}{b}{#3}{\hfil}{\hfil}{#4}%
\fi
\else
-% \end{macrocode}
-% Zum Schluss rechts und oben:
-% \begin{macrocode}
\ifcase\prmbl@vpos
\set@@@@preamble{#1@u}{t}{#3}{\hfil}{}{#4}%
\else
@@ -3488,12 +3467,8 @@
\endgroup
}
% \end{macrocode}
-% Es folgt das Makro, mit dem die Definition tatsächlich
-% stattfindet. Das erste Argument ist der Name der Präambel, das
-% zweite die Positionsoption für die verwendete \cs{parbox}, das
-% dritte ist die Breite der \cs{parbox}, dann zwei Argumente mit der
-% horizontalen Ausrichtung vor und nach der \cs{parbox} und das
-% sechste Agument ist schließlich der Inhalt der \cs{parbox}.
+% Last but not least add the horizontal aligned \cs{parbox} to the preamble
+% storage.
% \begin{macrocode}
\newcommand{\set@@@@preamble}[6]{%
\expandafter\gdef\csname #1@preamble\endcsname{%
@@ -3501,14 +3476,10 @@
}%
}
% \end{macrocode}
-%
% \begin{macro}{\set@preamble@hpos}
-% \changes{v2.8q}{2001/09/25}{neu (intern)}%^^A
-% Eines der Hilfsmakros dient dazu, die horizontale Position der
-% Präambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es
-% bereits nicht über"-einstimmend erfolgt, wird ein Fehler
-% ausgegeben. Dieses Makro ist extrem intern und funktioniert nur im
-% Kontext vor \cs{set@preamble}.
+% \changes{v2.8q}{2001/09/25}{added}
+% Either store the horizontal preamble position if not yet defined or if
+% already defined but illegal report it as an error.
% \begin{macrocode}
\newcommand*{\set@preamble@hpos}[2]{%
\@ifundefined{prbml@hpos}{%
@@ -3529,11 +3500,11 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \set@preamble@hpos
+% \end{macro}^^A \set@preamble@hpos
% \begin{macro}{\set@preamble@vpos}
-% \changes{v2.8q}{2001/09/25}{neu (intern)}%^^A
-% Das Hilfsmakro für die vertikale Position funktioniert in gleicher
-% Weise.
+% \changes{v2.8q}{2001/09/25}{added}
+% Either store the vertical position if not yet defined or if already defined
+% but illegal report it as an error.
% \begin{macrocode}
\newcommand*{\set@preamble@vpos}[2]{%
\@ifundefined{prbml@vpos}{%
@@ -3555,143 +3526,108 @@
}
%</body>
%</book|report>
-%</class>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \set@preamble@vpos
+% \end{macro}^^A \set@@@@preamble
+% \end{macro}^^A \set@@@preamble
+% \end{macro}^^A \set@@preamble
+% \end{macro}^^A \set@preamble
+%
%
+% \subsection{Deprecated code for the ToC}
%
-% \subsubsection{\KOMAScript-eigene Befehle für Verzeichniseinträge}
-% Wie schon bei den Gliederungsbefehlen genügt \KOMAScript{} nicht, was der
-% \LaTeX-Kern für Verzeichniseinträge zu bieten hat.
+% Before using \pkg*{tocbasic} we needed additional code for our extended
+% version of \cs{@dottedtocline}. However this has been removed in
+% \KOMAScript~v3.36.
+%
+% \begin{description}
+% \item[ToDo:] This should be moved to \file{scrkernel-listsof.dtx} or should
+% be removed.
+% \end{description}
%
% \begin{macro}{\bprot@dottedtocline}
-% \changes{v2.96a}{2006/11/30}{neu (intern)}%^^A
-% \changes{v3.27}{2019/02/25}{veraltet}%^^A
-% Dieses Makro wird benötigt, um die Ebenen unterhalb von \cs{chapter}
-% bzw. \cs{section} im Inhaltsverzeichnis ebenfalls vor unerwünschten
-% Umbrüchen zwischen Eintrag und Unterebene zu schützen.
-% \begin{macrocode}
-%<*class>
-%<*body>
-\newcommand*{\bprot@dottedtocline}[5]{%
- \expandafter\ifnum\scr@v@is@gt{2.96}\relax
- \ClassWarning{\KOMAClassName}{%
- usage of `\string\bprot@dottedtocline' is deprecated.\MessageBreak
- Maybe an old auxiliary file has been used.\MessageBreak
- Note, this command will be removed from\MessageBreak
- KOMA-Script soon. So if this warning message\MessageBreak
- persists after one more LaTeX run, you should\MessageBreak
- redeclare the corresponding ToC entries using\MessageBreak
- \string\DeclareTOCStyleEntry[\MessageBreak
- \space\space level=\detokenize{#1},\MessageBreak
- \space\space indent=\detokenize{#2},\MessageBreak
- \space\space numwidth=\detokenize{#3}]{default}{...},\MessageBreak
- where `...' is the name of the ToC level.\MessageBreak
- Note, in future usage of `\string\bprot@dottedtocline'\MessageBreak
- could result in an error%
- }%
- \ifnum #1>\c@tocdepth \else
- \ifnum \lastpenalty<\numexpr 20010-#1\relax
- \addpenalty{\@lowpenalty}%
- \fi
- \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
- \penalty \numexpr 20009-#1\relax
- \fi
- \else
- \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
- \fi
-}
-%</body>
-%</class>
-% \end{macrocode}
+% \changes{v2.96a}{2006/11/30}{added}
+% \changes{v3.27}{2019/02/25}{deprecated}
+% \changes{v3.36}{2022/03/15}{removed}
% \end{macro}
%
%
-% \subsection{Grobeinteilung von Büchern}
+% \subsection{Rough structuring of books}
%
-% Bei Büchern gibt es teilweise eine Einteilung in Vorderteil, Hauptteil und
-% Endteil, die nicht wirklich eine Gliederung darstellt, sondern auf
-% Gliederung, Seitennummerierung etc. Einfluss nimmt.
+% Some books have a kind of rough structuring into front matter, main matter
+% and back matter. This has consequences for the page numbering and the
+% numbering of headings and other elements.
%
-% \begin{macro}{\if@mainmatter}
-% \begin{macro}{\@mainmattertrue}
-% \begin{macro}{\@mainmatterfalse}
-% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung verschoben}%^^A
-% Ãœber diesen Schalter wird bei Buchklassen festgelegt, ob wir uns im
-% Hauptteil des Dokuments befinden oder nicht. Die eigentliche
-% Umschaltung geschieht mit Hilfe der Befehle \cs{frontmatter},
-% \cs{mainmatter}, \cs{backmatter}. Ohne Umschaltung befinden wir uns
-% bereits im Hauptteil.
+% \begin{macro}{\@mainmattertrue,\@mainmatterfalse,\if@mainmatter}
+% For the numbering of headings and other elements we only need to know
+% whether we are in the main matter or not, because chapters outside the main
+% matter do not provide a number. A boolean switch is best for this. By
+% default we already start with the main matter.
% \begin{macrocode}
-%<*class>
%<*book>
%<*body>
\newif\if@mainmatter\@mainmattertrue
% \end{macrocode}
-% \end{macro}%^^A \@mainmatterfalse
-% \end{macro}%^^A \@mainmattertrue
-% \end{macro}%^^A \if@mainmatter
+% \end{macro}^^A \@mainmattertrue,\if@mainmatter
%
-% \begin{macro}{\frontmatter}
-% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}%^^A
-% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}%^^A
-% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
-% \cs{cleardoublepage}}%^^A
-% Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort
-% und dergleichen und wird mit kleinen römischen Seitenzahlen
-% versehen.
+% \begin{command}{\frontmatter}
+% \changes{v2.4e}{1996/07/02}{support for \opt{open\quotechar=any}}
+% \changes{v2.5h}{1999/12/29}{support for \opt{twoside}}
+% \changes{v3.00}{2008/09/27}{\cs{cleardoublepage} replaced by
+% \cs{cleardoubleoddpage}}
+% Switching to the front matter always needs a new odd page, because we change
+% the page numbering to lowercase Roman numbers.
% \begin{macrocode}
\newcommand*\frontmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
\@mainmatterfalse\pagenumbering{roman}%
}
% \end{macrocode}
-% \end{macro}%^^A \frontmatter
-% \begin{macro}{\mainmatter}
-% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}%^^A
-% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}%^^A
-% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
-% \cs{cleardoublepage}}%^^A
-% Der Hauptteil ist das Fleisch der Bücher.
+% \end{command}^^A \frontmatter
+% \begin{command}{\mainmatter}
+% \changes{v2.4e}{1996/07/02}{support for \opt{open\quotechar=any}}
+% \changes{v2.5h}{1999/12/29}{support for \opt{twoside}}
+% \changes{v3.00}{2008/09/27}{\cs{cleardoublepage} replaced by
+% \cs{cleardoubleoddpage}}
+% Switching back to main matter always needs a new odd page, because we change
+% the page numbering to Arabic numbers.
% \begin{macrocode}
\newcommand*\mainmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
\@mainmattertrue\pagenumbering{arabic}%
}
% \end{macrocode}
-% \end{macro}%^^A \mainmatter
-% \begin{macro}{\backmatter}
-% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
-% \cs{cleardoublepage}}%^^A
-% Auch wenn nicht ganz einzusehen ist, warum das anders sein soll,
-% wird hier nicht nach der Option \texttt{twoside}, sondern nach
-% \texttt{openright} unterschieden.
+% \end{command}^^A \mainmatter
+% \begin{command}{\backmatter}
+% \changes{v3.00}{2008/09/27}{\cs{cleardoublepage} replaced by
+% \cs{cleardoubleoddpage}}
+% Only with \opt{open=right} we start a new odd page when starting the back
+% matter.
+% \begin{description}
+% \item[ToDo:] This does not make any sense, because the page numbering is not
+% changed. And it seems to be even wrong for \opt{open=left}! So why does
+% \cls*{book} use this and why shall we do so too?
+% \end{description}
% \begin{macrocode}
\newcommand*\backmatter{%
\if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse
}
%</body>
%</book>
-%</class>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \selectlanguage{english}
% \subsection{Appendix}
%
-% The classes (except \textsf{scrlttr2}) does provide an appendix switch,
+% The classes (except \cls*{scrlttr2}) does provide an appendix switch,
% similar but not identical to the standard classes.
%
-% \begin{macro}{\appendix}
+% \begin{command}{\appendix}
% Activation of the appendix switch over to numbering of chapters
% resp. sections with uppercase letters.
-% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} doesn't have a chapter
-% counter}
+% \changes{v2.2d}{1995/05/28}{\cls*{scrartcl} doesn't have a chapter
+% counter}
% \changes{v2.3c}{1995/08/06}{alternative section numbering in appendix}
% \changes{v2.8}{2001/06/15}{new \cs{appendixmore}}
% \changes{v2.8e}{2001/07/10}{\cs{@altsecnumformattrue} removed}
@@ -3701,12 +3637,11 @@
% \changes{v3.20}{2016/12/05}{improved warning}
% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \changes{v3.34}{2021/04/30}{\LaTeX{} hook added}
-% \begin{macro}{\appendixmore}
-% \changes{v2.8}{2001/06/15}{new}
+% \begin{command}{\appendixmore}
+% \changes{v2.8}{2001/06/15}{added}
% \cs{appendixmore} is deprecated with \LaTeX{} 2020/10/01 (or newer) but
% still executed as a kind of hook.
% \begin{macrocode}
-%<*class>
%<*body>
\newcommand*\appendix{%
\Ifstr{\@currenvir}{appendix}{%
@@ -3748,91 +3683,89 @@
%<*prepare>
\IfLTXAtLeastTF{2020/10/01}{\NewHook{\KOMAClassName/appendix}}{}
%</prepare>
-%</class>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
+% \end{command}
+% \end{command}
%
-% \selectlanguage{ngerman}
-% \subsection{Teile}
%
-% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt}
+% \subsection{Parts}
%
-% Teile sind bei den unterschiedlichen Klassen unterschiedlich definiert.
+% \begin{macro}{\@thepart}
+% \changes{v2.8e}{2001/07/10}{removed}
+% \end{macro}
%
-% \begin{macro}{\size@part}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
-% wenn es keine Auswirkung auf den Zeilen abstand hat}%^^A
-% \begin{macro}{\size@partnumber}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
-% wenn es keine Auswirkung auf den Zeilen abstand hat}%^^A
-% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
-% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% The definition of parts depends on the class.
+%
+% \begin{fontelement}{partnumber,part}
+% \changes{v2.8o}{2001/09/14}{pre-added as macro}
+% \changes{v2.8p}{2001/09/23}{added}
+% \changes{v2.96a}{2006/12/02}{undocumented support for last macro expects an
+% argument}
+% \begin{fontelement}{partprefix}
+% \changes{v3.18}{2015/06/10}{alias added}
+% Definition of the font elements used by \cs{part}. The settings are done by
+% option \texttt{headings} later. Everything is prepared before this option is
+% used the first time. The elements are defined manually because of
+% compatibility with \KOMAScript~v2.8o before font elements has been
+% implemented in \KOMAScript~v2.8p.
% \begin{macrocode}
-%<*class>
%<*prepare>
\newcommand*{\size@part}{}
+\newcommand*{\scr@fnt@part}{\size@part}
\newcommand*{\size@partnumber}{}
+\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
+\aliaskomafont{partprefix}{partnumber}
%</prepare>
% \end{macrocode}
-% \end{macro}%^^A \size@partnumber
-% \end{macro}%^^A \size@part
-%
-%
-% \begin{macro}{\partheadstartvskip}
-% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}%^^A
-% \changes{v3.15}{2014/11/24}{\textsf{scrartcl} definiert und verwendet
-% \cs{scr@part@beforeskip}}%^^A
-% \begin{macro}{\partheadmidvskip}
-% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}%^^A
-% \begin{macro}{\partheadendvskip}
-% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}%^^A
-% \changes{v3.15}{2014/11/24}{\textsf{scrartcl} definiert und verwendet
-% \cs{scr@part@afterskip}}%^^A
-% \begin{macro}{\parheademptypage}
-% \changes{v3.02}{2009/01/01}{neue Konfigurationsmöglichkeit}%^^A
-% Diese vier Makros werden verwendet, um den Abstand über in und unter der
-% Überschrift eines Teils und die leere Rückseite zu definieren. Prinzipiell
-% kann damit auch der Umbruch zwischen Nummer und Text entfernt werden.
-% Da die Größe nicht über Option \texttt{headings} beeinflusst werden kann,
-% müssen diese Hilfsmakros nicht bereits vor den Optionen definiert werden.
-%
-% Zur Erhöhung der Kompatibilität mit \cs{DeclareSectionCommand} werden
-% zunächst einige Hilfsanweisung definiert und verwendet.
-% \begin{macro}{\scr@part@sectionbeforeskip}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}%^^A
-% \changes{v3.17}{2015/03/25}{umbenannt in \cs{scr@part@beforeskip}}%^^A
-% \begin{macro}{\scr@part@sectionafterskip}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}%^^A
-% \changes{v3.17}{2015/03/25}{umbenannt in \cs{scr@part@afterskip}}%^^A
+% \end{fontelement}^^A partprefix
+% \end{fontelement}^^A partnumber,part
+%
+%
+% \begin{command}{\partheadstartvskip,\partheadendvskip}
+% \changes{v2.95a}{2006/07/10}{added}
+% \changes{v3.15}{2014/11/24}{\cls*{scrartcl} defines and uses
+% \cs{scr@part@beforeskip} resp. \cs{scr@part@afterskip}}
+% \begin{command}{\partheadmidvskip}
+% \changes{v2.95a}{2006/07/10}{added}
+% \begin{command}{\parheademptypage}
+% \changes{v3.02}{2009/01/01}{added}
+% These commands are the distance before and after a part heading, between the
+% prefix line and the text line of the heading and also the empty retro page
+% of a part.
+%
+% \begin{macro}{\scr@part@sectionbeforeskip,\scr@part@beforeskip}
+% \changes{v3.15}{2014/11/24}{added}
+% \changes{v3.17}{2015/03/25}{\cs{scr@part@sectionbeforeskip} renamed to
+% \cs{scr@part@beforeskip}}
+% \begin{macro}{\scr@part@sectionafterskip,\scr@part@sectionbeforeskip}
+% \changes{v3.15}{2014/11/24}{added}
+% \changes{v3.17}{2015/03/25}{\cs{scr@part@sectionafterskip} renamed to
+% \cs{scr@part@afterskip}}
% \begin{macro}{\scr@part@sectionindent}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung (unbenutzt)}%^^A
-% \changes{v3.17}{2015/03/24}{entfernt}%^^A
-% \end{macro}%^^A \scr@part@sectionindent
-% \end{macro}%^^A \scr@part@sectionafterskip
-% \end{macro}%^^A \scr@part@sectionbeforeskip
-% \begin{macro}{\scr@part@beforeskip}
-% \changes{v3.17}{2015/03/25}{neu (intern) aus Umdefinierung von
-% \cs{scr@part@ectionbeforeskip}}%^^A
+% \changes{v3.15}{2014/11/24}{added}
+% \changes{v3.17}{2015/03/24}{removed}
+% \end{macro}^^A \scr@part@sectionindent
% \begin{macro}{\scr@part@innerskip}
-% \changes{v3.17}{2015/03/24}{neu (intern)}%^^A
-% \begin{macro}{\scr@part@afterskip}
-% \changes{v3.17}{2015/03/25}{neu (intern) aus Umdefinierung von
-% \cs{scr@part@ectionbeforeskip}}%^^A
+% \changes{v3.17}{2015/03/24}{added}
% \begin{macro}{\scr@part@style}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}%^^A
-% Es wird der leere Stil verwendet, mit dem Neudefinitionen von \cs{part}
-% über \cs{DeclareSectionCommand} verhindert werden.
+% \changes{v3.15}{2014/11/24}{added}
+% All the skips and the page style are used by \cs{DeclareSectionCommand}
+% resp. the style \texttt{part}. We define it as early as possible. Even the
+% style of \cs{part} is already defined here.
+% \begin{description}
+% \item[ToDo:] Do we need them in the \texttt{prepare} run or can we move then
+% even to the \texttt{body} run?
+% \item[ToDo:] Do we really need to define \cs{scr@part@style}?
+% \end{description}
% \begin{macrocode}
%<*prepare>
\newcommand*{\scr@part@beforeskip}{%
%<article> 4ex
% \end{macrocode}
-% Hinweis: Das |+\baselineskip| wird benötigt, um Kompatibilitätsprobleme mit
-% der Umdefinierung von |\chapterheadstartvskip| zu vermeiden.
+% \begin{description}
+% \item[Note:] The |+\baselineskip| is needed, to stay as compatible as
+% possible with prior definitions of \cs{chapterheadstartvskip}.
+% \end{description}
% \begin{macrocode}
%<report|book> \z@ \@plus 1fil + \baselineskip
}
@@ -3843,10 +3776,10 @@
}
\newcommand*{\scr@part@style}{part}
% \end{macrocode}
-% \end{macro}%^^A \scr@part@style
-% \end{macro}%^^A \scr@part@afterskip
-% \end{macro}%^^A \scr@part@innerskip
-% \end{macro}%^^A \scr@part@beforeskip
+% \end{macro}^^A \scr@part@style
+% \end{macro}^^A \scr@part@afterskip
+% \end{macro}^^A \scr@part@innerskip
+% \end{macro}^^A \scr@part@beforeskip
% \begin{macrocode}
\newcommand*{\partheadstartvskip}{%
%<article> \addvspace{\@tempskipa}%
@@ -3871,30 +3804,27 @@
%</report|book>
%</prepare>
% \end{macrocode}
-% \end{macro}%^^A \partheademptypage
-% \end{macro}%^^A \partheadendvskip
-% \end{macro}%^^A \partheadmidvskip
-% \end{macro}%^^A \partheadstartvskip
+% \end{command}^^A \partheademptypage
+% \end{command}^^A \partheadmidvskip
+% \end{command}^^A \partheadstartvskip,\partheadendvskip
%
%
% \begin{macro}{\scr@startpart}
-% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}%^^A
-% Diese Anweisung ist von der ursprünglichen Definition von \cs{part}
-% abgeleitet und erbt deren ChangeLog-Einträge.
-% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}%^^A
-% \changes{v2.8p}{2001/09/27}{Präambel über der Überschrift hinzugefügt}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}%^^A
-% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn definiert und nicht
-% leer}%^^A
-% \changes{v3.26}{2018/10/14}{Option \texttt{afterindent} wird beachtet}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Die Anweisung definiert den Gliederungsüberschriften-Stil
-% \texttt{part}. Dazu bekommt sie als einziges explizites Argument den
-% \meta{Namen} der Gliederungsüberschrift. Weitere Argumente wie ein
-% optionaler Stern oder ein optionales Argument für Inhaltsverzeichnis und
-% Kolumnentitel sowie ein obligatorisches Argument für den Text der
-% Überschrift sind implizit, das heißt, sie werden erst im weiteren Verlauf
-% von Unter-Macros eingelesen und verarbeitet.
+% \changes{v2.8d}{2001/07/05}{using \cs{partpagestyle}}
+% \changes{v2.8p}{2001/09/27}{preamble above heading}
+% \changes{v3.13a}{2014/09/11}{using \cs{SecDef}}
+% \changes{v3.18}{2015/05/23}{added}
+% \changes{v3.19}{2015/08/25}{ignoring empty \cs{partpagestyle}}
+% \changes{v3.26}{2018/10/14}{supporting option \opt{afterindent}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% The macro
+% \begin{quote}
+% \cs{scr@startpart}\marg{part command name}
+% \end{quote}
+% is now part of the style \texttt{part}. However, the main parts
+% of the code are from the original definition of \cs{part}. It has only one
+% argument: The name of the part command, i.e., \texttt{part}. All arguments
+% to the part command will be processed later.
% \begin{macrocode}
%<*body>
\newcommand*{\scr@startpart}[1]{%
@@ -3936,30 +3866,34 @@
% \end{macrocode}
%
% \begin{macro}{\scr@@startpart}
-% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}%^^A
-% Diese Anweisung ist von der ursprünglichen Definition von \cs{@part}
-% abgeleitet und erbt deren ChangeLog-Einträge.
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}%
-% \cs{@parskip@indent} vertauscht}%^^A
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}%^^A
-% \changes{v3.27}{2019/07/08}{neue Option \texttt{nonumber}}%^^A
-% Die Anweisung macht die eigentliche Arbeit für den Fall einer
-% Gliederungsanweisung ohne Stern. Das erste obligatorische Argument ist der
-% \meta{Name} der Gliederungsanweisung. Das zweite eigentlich optionale
-% Argument, das hier jedoch zwingend ist, ist der \meta{Spezial-Text} für
-% Kolumnentitel und Inhaltsverzeichnis. Das dritte obligatorische Argument
-% ist der \meta{Text} für die Überschrift.
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.95}{2002/08/13}{\cs{centering} and \cs{@parskipfalse}%
+% \cs{@parskip@indent} switched}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent}
+% replaced}
+% \changes{v3.18}{2015/05/23}{added}
+% \changes{v3.27}{2019/07/08}{support for option \opt{nonumber}}
+% The macro
+% \begin{quote}
+% \cs{scr@@startpart}\marg{part command name}\oarg{extended optional
+% argument}\marg{part heading}
+% \end{quote}
+% is now part of the style \texttt{part}. However, the main parts
+% of the code are from the original definition of \cs{@part}. Therefore it has
+% the mandatory and optional arguments of a non-star variant of, i.e.,
+% \cs{part} but an additional first argument.
+% \begin{description}
+% \item[Note:] \meta{extended optional argument} is named as optional, however
+% here it is already mandatory, because it is a delimited argument.
+% \end{description}
% \begin{macrocode}
\newcommand{\scr@@startpart}{}
\long\def\scr@@startpart#1[#2]#3{%
\ExecuteDoHook{heading/branch/nostar/#1}%
% \end{macrocode}
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% Für das erweitere optionale Argument muss hier eine key-value-Auswertung
-% erfolgen, falls das erweitere optionale Argument aktiviert ist:
+% \changes{v3.10}{2011/08/30}{extended optional argument}
+% First of all, depending in \opt{headings=optionto\dots} we have different
+% defaults for the options.
% \begin{macrocode}
\ifnum \scr@osectarg=\z@
\@scr@tempswafalse
@@ -3981,28 +3915,29 @@
\fi
\fi
% \end{macrocode}
-% Als nächstes muss für nummerierte Überschriften dieser Ebene sowohl der
-% Zähler erhöht also auch ein nummerierter Eintrag ins Inhaltsverzeichnis
-% erstellt werden.
-% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}%^^A
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}%^^A
-% \changes{v3.18}{2015/05/20}{Verwendung von \cs{add\meta{Name}tocentry} in
-% \cs{typeout}}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} umbenannt in
-% \cs{Ifnumbered}}%^^A
-% \changes{v3.31}{2020/06/02}{\cs{@maybeautodot}\cs{thepart} entfernt}%^^A
+% \changes{v2.8e}{2001/07/10}{using \cs{@maybeautodot}}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to
+% \cs{Ifnumbered}}
+% \changes{v3.31}{2020/06/02}{\cs{@maybeautodot}\cs{thepart} removed}
+% For numbered headings we have to increase the counter and write a process
+% information to the \file{log} and the terminal.
% \begin{macrocode}
\Ifnumbered{#1}{%
\refstepcounter{#1}%
\expandafter\@maybeautodot\csname the#1\endcsname
\typeout{#1 \csname the#1\endcsname.}%
- \ifx\@currenttocentry\@empty\else
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/06}{use \cs{\dots tocformat}}%
-%^^ATODO: move \cs{autodot} to the definition of \cs{\dots tocformat}
-% \selectlanguage{ngerman}%
+% \changes{v3.08}{2010/11/01}{using \cs{addparttocentry}}
+% \changes{v3.18}{2015/05/20}{using \cs{add\meta{Name}tocentry} for
+% \cs{typeout}}
+% \changes{v3.31}{2020/06/06}{using \cs{\dots tocformat}}
+% And if the ToC entry is not empty add a numbered entry to the table of
+% contents.
+% \begin{description}
+% \item[ToDo:] Move \cs{autodot} to the definition of \cs{\dots tocformat}.
+% \end{description}
% \begin{macrocode}
+ \ifx\@currenttocentry\@empty\else
\@ifundefined{#1tocformat}{%
\expandafter\gdef\csname #1tocformat\endcsname
{\csname the#1\endcsname}%
@@ -4016,11 +3951,10 @@
\fi
}{%
% \end{macrocode}
-% \changes{v3.18}{2015/05/23}{Resetliste auch bei nicht nummerierten
-% Ãœberschriften abarbeiten}%^^A
-% Für alle nicht nummerieten Überschriften dieser Ebene trotzdem die
-% Resetliste des Zählers ausführen und ggf. einen Verzeichniseintrag
-% erstellen.
+% \changes{v3.18}{2015/05/23}{execute counter reset list for not numbered
+% headings}
+% For not numbered headings we still have to process the reset list of the
+% counter and write a process information to the \file{log} and the terminal.
% \begin{macrocode}
\expandafter\ifnum\scr@v@is@lt{3.18}\relax\else
\begingroup
@@ -4029,13 +3963,18 @@
\endgroup
\fi
\typeout{#1 without number}%
- \ifx\@currenttocentry\@empty\else
% \end{macrocode}
-% An dieser Stelle muss ggf. der \textsf{hyperref}-Hook für nicht nummerierte
-% Inhaltsverzeichniseinträge ausgeführt werden.
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}%^^A
-% \changes{v3.18}{2015/05/23}{\cs{addparttocentry} verallgemeinert}%^^A
+% \changes{v3.08}{2010/11/01}{using \cs{addparttocentry}}
+% \changes{v3.18}{2015/05/23}{generalized \cs{addparttocentry}}
+% And before writing a not numbered entry to the table of contents we have to
+% execute also the \pkg{hyperref} hook \cs{hy@insteadofrefstepcounter}.
+% \begin{description}
+% \item[Note:] \pkg*{scrhack} uses the existence of this command to detect a
+% \KOMAScript{} class. Shouldn't this be changed using, e.g.,
+% \cs{KOMAClassName}?
+% \end{description}
% \begin{macrocode}
+ \ifx\@currenttocentry\@empty\else
\hy@insteadofrefstepcounter{#1}%
\scr@ifundefinedorrelax{add#1tocentry}{%
\addtocentrydefault{#1}%
@@ -4045,29 +3984,28 @@
\fi
}%
% \end{macrocode}
-% Es folgt das eigentliche Setzen der Ãœberschrift. Ãœbrigens ist der ganze Code
-% oben bei \cs{scr@@startchapter} praktisch identisch. Lediglich das
-% Abarbeiten der Resetliste gibt es dort bereits seit Version~3.15. In
-% \cs{scr@@startchapter} wird an dieser Stelle dann \cs{@make\dots head}
-% ausgeführt. Das könnte man eigentlich irgendwann hier genauso machen.
-% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt}%^^A
-% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch
-% \cs{size@partnumber} ersetzt}%^^A
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor \cs{size@part} und
-% \cs{size@partnumber} aufgerufen}%^^A
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt einen
-% Bug im color Paket}%^^A
-% \changes{v3.18}{2015/05/23}{\cs{size@\dots} durch \cs{usekomafont}
-% ersetzt}%^^A
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} definiert}%^^A
-% \changes{v3.25}{2017/09/07}{\cs{sectfont} durch \cs{usekomafont}
-% ersetzt}%^^A
-% \changes{v3.25}{2017/09/07}{Umstellung auf
-% \cs{partlineswithprefixformat}}%^^A
-% \changes{v3.25}{2018/02/12}{Verwendung des korrekten Font-Elements}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} umbenannt in
-% \cs{Ifnumbered}}%^^A
+% \changes{v2.2c}{1995/05/25}{support for CJK}
+% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} replaced by
+% \cs{size@partnumber}}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} used before \cs{size@part} or
+% \cs{size@partnumber}}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} after \cs{sectfont}}
+% \changes{v3.18}{2015/05/23}{\cs{size@\dots} replaced by \cs{usekomafont}}
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
+% \changes{v3.25}{2017/09/07}{defining \cs{IfUseNumber} locally}
+% \changes{v3.25}{2017/09/07}{\cs{sectfont} replaced by \cs{usekomafont}}
+% \changes{v3.25}{2017/09/07}{using \cs{partlineswithprefixformat}}
+% \changes{v3.25}{2018/02/12}{using correct fontelement}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to
+% \cs{Ifnumbered}}
+% Now the main printing code.
+% \begin{description}
+% \item[ToDo:] This code is almost the same as \cs{scr@@startchapter}. Only
+% the procession of the reset list was there already with
+% \KOMAScript~v3.15. And in \cs{scr@@startchapter} we are using
+% \cs{@make\meta{name}head} here. So maybe we should do the same here and
+% really use the same definition instead of having it twice.
+% \end{description}
% \begin{macrocode}
\begingroup
\def\IfUseNumber{\Ifnumbered{#1}}%
@@ -4089,9 +4027,9 @@
}
}%
% \end{macrocode}
-% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
-% stattdessen \cs{@mkboth}{}{} aufgerufen.}%^^A
-% Und noch den Kolumnentitel setzen.
+% \changes{v3.10}{2011/08/30}{using\cs{@mkboth{}{}} if \cs{partmark} is
+% \cs{@gobble}}
+% The running head.
% \begin{macrocode}
\expandafter\ifx\csname #1mark\endcsname\@gobble
\@mkboth{}{}%
@@ -4102,7 +4040,7 @@
\ExecuteDoHook{heading/endgroup/#1}%
\endgroup
% \end{macrocode}
-% Ganz zum Schluss muss noch einmal ein Abstand eingefügt werden.
+% The final distance.
% \begin{macrocode}
%<*article>
\nobreak
@@ -4112,57 +4050,56 @@
%</article>
%<book|report> \@nameuse{@end#1}%
% \end{macrocode}
-% \changes{v3.26}{2018/10/14}{Verwendung von \@cs{@afterheading} für
-% \textsf{scrbook} und \textsf{scrreprt}}%^^A
-% Ab \KOMAScript{} 3.26 wird hier \cs{@afterheading} für alle Klassen
-% aufgerufen. Damit kann der Einzug nach der Ãœberschrift eingestellt werden.
+% \changes{v3.26}{2018/10/14}{using \@cs{@afterheading} with
+% \cls*{scrbook} or \cls*{scrreprt}}
+% And \cs{@afterheading} for all classes.
% \begin{macrocode}
\@afterheading
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@startpart
+% \end{macro}^^A \scr@@startpart
%
% \begin{macro}{\scr@@startspart}
-% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}%^^A
-% Diese Anweisung ist von der ursprünglichen Definition von \cs{@spart}
-% abgeleitet und erbt deren ChangeLog-Einträge.
-% \changes{v2.4n}{1997/05/28}{in der Sternvariante \cs{chaptermark}%^^A
-% bzw. \cs{sectionmark} eingefügt, um die Kolumnentitel zu
-% löschen}%^^A
-% \changes{v2.6a}{2000/01/20}{zum Löschen der Kolumnentitel wird
-% nun \cs{@mkboth} verwendet}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.95}{2002/08/13}{\cs{centering} und
-% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht}%^^A
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}%^^A
-% Die Anweisung macht die eigentliche Arbeit für den Fall einer
-% Gliederungsanweisung mit Stern. Das erste obligatorische Argument ist der
-% \meta{Name} der Gliederungsanweisung. Das zweite obligatorische Argument
-% ist der \meta{Text} für die Überschrift.
+% \changes{v2.4n}{1997/05/28}{added \cs{chaptermark} resp.
+% \cs{sectionmark} to star variant}
+% \changes{v2.6a}{2000/01/20}{using \cs{@mkboth} to delete the running head}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.95}{2002/08/13}{\cs{centering} and
+% \cs{@parskipfalse}\cs{@parskip@indent} swapped}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and\cs{@parskip@indent}
+% replaced}
+% \changes{v3.18}{2015/05/23}{added}
+% The macro
+% \begin{quote}
+% \cs{scr@@startspart}\marg{part command name}\marg{part heading}
+% \end{quote}
+% is now part of the style \texttt{part}. However, the main parts
+% of the code are from the original definition of \cs{@spart}. Therefore it has
+% the mandatory argument of a star variant of, i.e., \cs{part} but an
+% additional first argument.
% \begin{macrocode}
\newcommand{\scr@@startspart}[2]{%
\ExecuteDoHook{heading/branch/star/#1}%
% \end{macrocode}
-% Für Leute, die unbedingt nach der Sternversion noch ein \cs{addcontentsline}
-% anfügen wollen, muss hier ebenfalls der \textsf{hyperref}-Hook ausgeführt
-% werden. Allerdings passiert das hier entsprechend dem Vorgehen von
-% \textsf{hyperref} selbst in einer Gruppe, in der zusätzlich \cs{@mkboth} zu
-% \cs{@gobbletwo} gemacht wird, auch wenn ich absolut nicht versehe, was das
-% soll.
+% Some users don't learn to use \cs{addpart} for not numbered parts with entry
+% to the table of contents but insist in using \cs{addcontentsline}. Despite
+% this should not be used, because at least \cs{addparttocentry} should be
+% used, we tolerate this by using our \pkg{hyperref} hook.
+% \begin{description}
+% \item[ToDo:] I don't understand why \pkg{hyperref} uses a group here and
+% locally sets \cs{@mkboth} to \cs{@gobbletwo}. However, I've copied this.
+% \end{description}
% \begin{macrocode}
\begingroup
\let\@mkboth\@gobbletwo
\hy@insteadofrefstepcounter{#1}%
\endgroup
% \end{macrocode}
-% Erst dann erfolgt die tatsächliche Ausgabe der Überschrift.
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} definiert}%^^A
-% \changes{v3.25}{2017/09/07}{\cs{sectfont} durch \cs{usekomafont}
-% ersetzt}%^^A
-% \changes{v3.25}{2017/09/07}{Umstellung auf
-% \cs{partlineswithprefixformat}}%^^A
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
+% \changes{v3.25}{2017/09/07}{difining \cs{IfUseNumber} locally}
+% \changes{v3.25}{2017/09/07}{\cs{sectfont} replaced by \cs{usekomafont}}
+% \changes{v3.25}{2017/09/07}{using \cs{partlineswithprefixformat}}
+% Now the printing similar to \cs{scr@@startpart}.
% \begin{macrocode}
\begingroup
\let\IfUseNumber\@secondoftwo
@@ -4188,50 +4125,40 @@
%<book|report> \@nameuse{@end#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@startspart
+% \end{macro}^^A \scr@@startspart
%
-% \begin{macro}{\partlineswithprefixformat}
-% \changes{v3.25}{2017/09/07}{neu}
-% Diese Anweisung definiert das Format der eigentlichen Ãœberschriften im Stil
-% \texttt{part}. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt
-% order Teil der Argumente. Die Argumente sind:
-% \begin{description}
-% \item[\meta{Befehlsname} --] der Name der Gliederungsebene, normalerweise
-% \texttt{chapter}.
-% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
-% Gliederungsnummer einschließlich des nachfolgenden vertikalen Abstands
-% oder leer, falls keine Gliederungsnummer auszugeben ist.
-% \item[\meta{Text} --] der Text der Ãœberschrift.
-% \end{description}
-% Der Anwender ist selbst verantwortlich, dass innerhalb der Ãœberschrift kein
-% Seitenumbruch erfolgen kann. Nach der Ãœberschrift wird jedoch zwangsweise
-% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem
-% internen Absatz abgeschlossen wird.
+% \begin{command}{\partlineswithprefixformat}
+% \changes{v3.25}{2017/09/07}{added}
+% Command
+% \begin{quote}
+% \cs{partlineswithprefixformat}\marg{command name}\marg{number}\marg{text}
+% \end{quote}
+% is used to print a part heading with a prefix line. \meta{number} is the
+% completely formatted prefix line inclusive the vertical distance below. The
+% \meta{text} is the text of the heading also formatted and with final
+% \cs{@@par}. But if the user uses more paragraphs than this final one, the
+% user is responsible to prevent page breaks!
% \begin{macrocode}
\newcommand{\partlineswithprefixformat}[3]{%
#2#3%
}
% \end{macrocode}
-% \end{macro}%^^A \partlineswithprefixformat
+% \end{command}^^A \partlineswithprefixformat
%
% \begin{macro}{\scr@@endpart}
-% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}%^^A
-% Diese Anweisung ist von der ursprünglichen Definition von \cs{@spart}
-% abgeleitet und erbt deren ChangeLog-Einträge.
-% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird für
-% \textsf{scrartcl} nicht mehr definiert}%^^A
-% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}%^^A
-% \changes{v2.6c}{2000/06/10}{\cs{@endpart} fügt nur noch in
-% beidseitigen Dokumenten bei Verwendung von \texttt{openright} eine
-% Leerseite ein}%^^A
-% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt}%^^A
-% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt
-% \cs{@part@preamble}}%^^A
-% \changes{v3.02}{2009/01/01}{Verwendung des neuen
-% \cs{partheademptypage}}%^^A
-% Die Anweisung wird bei \textsf{scrbook} und \textsf{screprt} verwendet, um
-% die Überschrift abzuschließen. \textsf{scrartcl} hat keine solche Anweisung.
-% Da einzige Argument ist der \meta{Name} der Gliederungsanweisung.
+% \changes{v2.3g}{1996/01/14}{\cs{@endpart} not defined for \cls*{scrartcl}}
+% \changes{v2.4e}{1996/07/02}{supporting option \opt{openany}}
+% \changes{v2.6c}{2000/06/10}{\cs{@endpart} respects \opt{open\quotechar=right}}
+% \changes{v2.8p}{2001/09/27}{\cs{vbox} added}
+% \changes{v2.8p}{2001/09/27}{\cs{@part@preamble} replaced by \cs{use@preamble}}
+% \changes{v3.02}{2009/01/01}{using \cs{partheademptypage}}
+% \changes{v3.18}{2015/05/23}{added}
+% Before \KOMAScript~v3.18 this code was part of \cs{part}. \cls*{scrbook} and
+% \cls*{scrreprt} use this macro to finalize the heading, e.g., print a
+% preamble, to the final distance or new page and add an empty retro
+% page. \cls*{scrartcl} does not have such a command, because with
+% \cls*{scrartcl} parts are simple headings not pages. As usual the argument
+% is the name of the part command, e.g., \texttt{part}.
% \begin{macrocode}
%<*book|report>
\newcommand*{\scr@@endpart}[1]{%
@@ -4246,30 +4173,34 @@
}
%</book|report>
% \end{macrocode}
-% \end{macro}%^^A \scr@@endpart
-% \end{macro}%^^A \scr@startpart
+% \end{macro}^^A \scr@@endpart
+% \end{macro}^^A \scr@startpart
%
%
% \begin{macro}{\hy@insteadofrefstepcounter}
-% \changes{v3.18}{2015/05/22}{neu (intern und \textsf{hyperref})}
+% \changes{v3.18}{2015/05/22}{added to be used by \pkg{hyperref}}
% \begin{macro}{\scr@chapter@before@hyperref@patch}
-% \changes{v3.27}{2019/07/24}{neu (intern für \textsf{scrhack})}
+% \changes{v3.27}{2019/07/24}{added to be used by \pkg*{scrhack}}
% \begin{macro}{\scr@chapter@after@hyperref@patch}
-% \changes{v3.27}{2019/07/24}{neu (intern für \textsf{scrhack})}
-% \changes{v3.32}{2020/09/11}{\cs{AfterPackage!} durch
-% \cs{AfterAtEndOfPackage} ersetzt}
-% Normalerweise führt \textsf{hyperref} via \cs{refstepcounter}
-% Initialisierungen für ein nachfolgendes \cs{addcontentsline} durch. Wenn
-% allerdings eine nicht nummerierte Ãœberschrift ins Inhaltsverzeichnis
-% eingetragen wird, dann fehlt das vorherige \cs{refstepcounter}. Statt
-% \cs{@chapter}, \cs{@schapter}, \cs{@part}, \cs{@spart} etc. direkt zu
-% patchen, erscheint es mir sinnvoller einen Hook dafür zu definieren, der
-% dann von \textsf{hyperref} entsprechend definiert werden kann. Solange
-% \textsf{hyperref} das nicht macht, versuche ich mich selbst daran und kann
-% nur hoffen, dass es funktioniert. Dabei verwende ich im Gegensatz zu
-% \textsf{hyperref} für \cs{Hy@MakeCurrentHrefAuto} kein \cs{Hy@chapapp}, weil
-% ja \cs{autoref} für nicht nummerierte Überschriften ohnehin sinnlos
-% ist. Stattdessen verwende ich den Gliederungsbefehl.
+% \changes{v3.27}{2019/07/24}{added to be used by \pkg*{scrhack}}
+% \changes{v3.32}{2020/09/11}{\cs{AfterPackage!} replaced by
+% \cs{AfterAtEndOfPackage}}
+% Usually \pkg{hyperref} uses \cs{refstepcounter} to process extra codes for
+% anchors and bookmarks. However, if a not numbered heading is used,
+% \pkg{hyperref} cannot use \cs{refstepcounter} but still has to add
+% code. Usually \pkg{hyperref} patchs several commands like \cs{@chapter},
+% \cs{@schapter}, \cs{@part}, \cs{@spart} etc. to do so. But I think, it would
+% be better to provide a hook for this, \pkg*{hyperref} can change. So we've
+% designed \cs{hy@insteadofrefstepcounter}. Unfortunately \pkg{hyperref}
+% currently does not care for this, but still does its patches. So we need to
+% prevent \pkg{hyperref} from doing so and additionally define
+% \cs{hy@insteadofrefstepcounter} ourselves. But because \cs{autoref} is
+% nonsense for not numbered headings, I do not use \cs{Hy@chapapp} for
+% \cs{Hy@MakeCurrentHrefAuto}.
+% \begin{description}
+% \item[ToDo:] Explain the Oberdiek support team, what we are doing here and
+% what they should do.
+% \end{description}
% \begin{macrocode}
\newcommand*{\hy@insteadofrefstepcounter}[1]{}
\let\hy@insteadofrefstepcounter\@gobble
@@ -4294,92 +4225,81 @@
}
\AfterAtEndOfPackage{hyperref}{\scr@chapter@after@hyperref@patch}
% \end{macrocode}
-% \end{macro}%^^A \scr@after@hyperref@patch
-% \end{macro}%^^A \scr@before@hyperref@patch
-% \end{macro}%^^A \hy@insteadofrefstepcounter
-%
-% \begin{macro}{\addparttocentry}
-% \changes{v3.08}{2010/11/01}{Neu}%^^A
-% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{part}
-% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das
-% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht
-% nummerierten Teilen leer. Das zweite Argument ist der Überschriftstext für
-% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach
-% umdefiniert werden. Verwendet wird hier die Standardanweisung für
-% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist:
+% \end{macro}^^A \scr@after@hyperref@patch
+% \end{macro}^^A \scr@before@hyperref@patch
+% \end{macro}^^A \hy@insteadofrefstepcounter
+%
+% \begin{command}{\addparttocentry}
+% \changes{v3.08}{2010/11/01}{added}
+% We do not use \cs{addcontentsline} directly for the entries to the table of
+% contents. Using
+% \begin{quote}
+% \cs{addparttocentry}\marg{number}\marg{text}
+% \end{quote}
+% allows easy manipulation of such entries and additional actions. If the
+% \meta{number} is completely empty no number should be used. Internally the
+% generic \cs{addtocentrydefault} it used, which uses \cs{nonumberline}
+% instead of \cs{numberline} in this case. See \file{scrkernel-listsof.dtx}
+% for more information.
% \begin{macrocode}
\newcommand*{\addparttocentry}[2]{%
\addtocentrydefault{part}{#1}{#2}%
}
% \end{macrocode}
-% \end{macro}%^^A \addparttocentry
-%
-%
-% \begin{macro}{\part}
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@startpart}}%^^A
-% \begin{macro}{\@part}
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@@startpart}}%^^A
-% \begin{macro}{\@spart}
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@@startspart}}%^^A
-% \begin{macro}{\@endpart}
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@@endpart}}%^^A
-% \begin{macro}{\setpartpreamble}
-% \changes{v2.8f}{2001/07/12}{neu}%^^A
-% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}}%^^A
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@@endpart}}%^^A
-% \begin{macro}{\part@u@preamble}
-% \changes{v2.8p}{2001/09/27}{neu (intern)}%^^A
-% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}}%^^A
-% \changes{v3.12a}{2014/02/14}{flaschen (\cs{part@preamble@u}) Namen
-% korrigiert}%^^A
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@@endpart}}%^^A
+% \end{command}^^A \addparttocentry
+%
+%
+% \begin{command}{\part}
+% \changes{v3.18}{2015/05/23}{indirect definition}
+% \begin{macro}{\@part,\@spart,\@endpart}
+% \changes{v3.18}{2015/05/23}{indirect definition}
+% \begin{command}{\setpartpreamble}
+% \changes{v2.8f}{2001/07/12}{added}
+% \changes{v2.8p}{2001/09/27}{using \cs{use@preamble}}
+% \changes{v3.18}{2015/05/23}{indirect definition}
+% \begin{macro}{\part@preamble,\part@u@preamble}
+% \changes{v2.8p}{2001/09/27}{added}
+% \changes{v2.8p}{2001/09/27}{\cs{part@preamble} renamed to \cs{part@u@preamble}}
+% \changes{v3.12a}{2014/02/14}{name fixed}
+% \changes{v3.18}{2015/05/23}{indirect definition}
% \begin{macro}{\part@o@preamble}
-% \changes{v2.8p}{2001/09/27}{neu (intern)}%^^A
-% \changes{v3.12a}{2014/02/14}{flaschen Namen (\cs{part@preamble@o})
-% korrigiert}%^^A
-% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
-% \cs{scr@@endpart}}%^^A
-% Diese Anweisungen werden indirekt über \cs{DeclareSectionCommand} und
-% \cs{scr@dsc@def@style@part@command} bzw. \cs{setpartpreamble} definiert.
-% \end{macro}%^^A \setpartpreamble
-% \end{macro}%^^A \part@u@preamble
-% \end{macro}%^^A \part@o@preamble
-% \end{macro}%^^A \@endpart
-% \end{macro}%^^A \@spart
-% \end{macro}%^^A \@part
-% \end{macro}%^^A \part
-%
-% \begin{macro}{\addpart}
-% \changes{v2.8c}{2001/06/29}{neu}%^^A
-% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}%^^A
-% \changes{v2.95a}{2006/07/10}{support of preamble added}%^^A
-% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}%^^A
-% \changes{v3.15a}{2015/01/22}{Anpassung an geänderte Abstandsbehandlung bei
-% \cs{part} und \cs{@spart}}%^^A
-% \changes{v3.18}{2015/05/25}{Komplett neu definiert}%^^A
+% \changes{v2.8p}{2001/09/27}{added}
+% \changes{v3.12a}{2014/02/14}{name fixed}
+% \changes{v3.18}{2015/05/23}{indirect definition}
+% All these commands and macros are not defined explicitly but by using
+% \cs{DeclareSectionCommand} later. See also
+% \cs{scr@dsc@def@style@part@command} and \cs{setpartpreamble}.
+% \end{macro}^^A \part@o@preamble
+% \end{macro}^^A \part@u@preamble
+% \end{command}^^A \setpartpreamble
+% \end{macro}^^A \@part,\@spart,\@endpart
+% \end{command}^^A \part
+%
+% \begin{command}{\addpart}
+% \changes{v2.8c}{2001/06/29}{added}
+% \changes{v2.8d}{2001/07/05}{using \cs{partpagestyle}}
+% \changes{v2.95a}{2006/07/10}{support of preamble added}
+% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added}
+% \changes{v3.13a}{2014/09/11}{using \cs{SecDef}}
+% \changes{v3.15a}{2015/01/22}{distance adaption}
+% \changes{v3.18}{2015/05/25}{redefinition}
% \begin{macro}{\@addpart}
-% \changes{v2.8c}{2001/06/29}{neu (intern)}%^^A
-% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben}%^^A
-% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen}%^^A
-% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt}%^^A
-% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}}%^^A
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
-% \cs{@mkboth}{}{} aufgerufen.}%^^A
-% \changes{v3.17}{2015/04/20}{Es wird \cs{addpartmark} verwendet und auch
-% nie \cs{@mkboth}{}{} aufgerufen.}%^^A
-% \changes{v3.18}{2015/05/25}{Komplett neu definiert}%^^A
+% \changes{v2.8c}{2001/06/29}{added}
+% \changes{v2.8l}{2001/08/17}{first ToC then output}
+% \changes{v2.95}{2004/07/20}{support for running head}
+% \changes{v3.00}{2008/07/01}{\pkg{hyperref} workaround}
+% \changes{v3.08}{2010/11/02}{using \cs{addparttocentry}}
+% \changes{v3.10}{2011/08/30}{extended optional argument}
+% \changes{v3.10}{2011/08/30}{using \cs{@mkboth{}{}} if \cs{partmark} is
+% \cs{@gobble}}
+% \changes{v3.17}{2015/04/20}{using \cs{addpartmark} but never \cs{@mkboth}}
+% \changes{v3.18}{2015/05/25}{redefinition}
% \begin{macro}{\@saddpart}
-% \changes{v2.8c}{2001/06/29}{neu (intern)}%^^A
-% \changes{v3.18}{2015/05/25}{Komplett neu definiert}%^^A
+% \changes{v2.8c}{2001/06/29}{added}
+% \changes{v3.18}{2015/05/25}{redefinition}
+% The improved not numbered version of \cs{part}. Note: This could also be
+% done using the extended optional argument of \cs{part} and option
+% \opt{nonumber=true}. So this command becomes more and more deprecated.
% \begin{macrocode}
\newcommand\addpart{%
\SecDef\@addpart\@saddpart
@@ -4400,83 +4320,77 @@
\addpartmark{}%
}
% \end{macrocode}
-% \end{macro}%^^A \@saddpart
-% \end{macro}%^^A \@addpart
-% \end{macro}%^^A \addpart
+% \end{macro}^^A \@saddpart
+% \end{macro}^^A \@addpart
+% \end{command}^^A \addpart
%
%
% \begin{macro}{\l@part}
-% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von
-% Element \texttt{partentry} ersetzt}%^^A
-% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird
-% verwendet}%^^A
-% \changes{v3.15}{2014/12/23}{Verwendung von \cs{parttocdepth} und
-% \cs{scr@part@numwidth}}%^^A
-% \changes{v3.20}{2015/10/06}{Überführung in Verzeichnisstil}%^^A
-% Der Eintrag für \cs{part}. Es werden einige Hilfsmakros passend zu
-% \cs{DeclareSectionCommand} definiert. Dadurch können diverse Einstellungen
-% darüber geändert werden. Es kann jedoch derzeit kein neuer Stil zugewiesen
-% werden.
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} replaced by font
+% element \fnt{partentry}}
+% \changes{v2.97c}{2007/06/21}{using font element \fnt{partentrypagenumber}}
+% \changes{v3.15}{2014/12/23}{using \cs{parttocdepth} and
+% \cs{scr@part@numwidth}}
+% \changes{v3.20}{2015/10/06}{replaced by usage of ToC style}
% \begin{macro}{\scr@part@tocindent}
-% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}%^^A
-% \changes{v3.18}{2015/06/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \changes{v3.20}{2015/11/06}{wird nun auch verwendet}%^^A
-% Der Einzug des Eintrags noch vor der Nummer.
-% \end{macro}%^^A \scr@part@tocindent
+% \changes{v3.15}{2014/12/02}{added}
+% \changes{v3.18}{2015/06/09}{indirect by \cs{DeclareSectionCommand}}
+% \end{macro}^^A \scr@part@tocindent
% \begin{macro}{\scr@part@tocnumwidth}
-% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}%^^A
-% \changes{v3.18}{2015/06/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% Die definierte Breite der Nummer für den Eintrag ins Inhaltsverzeichnis.
+% \changes{v3.15}{2014/12/02}{added}
+% \changes{v3.18}{2015/06/09}{indirect by\cs{DeclareSectionCommand}}
+% These macros are not longer defined explicitly but by
+% \cs{DeclareTOCEntryStyle} and indirectly by \cs{DeclareSectionCommand}.
% \end{macro}
-% \end{macro}%^^A \l@part
-%
-%
-% \begin{Counter}{part}
-% \begin{macro}{\thepart}
-% \begin{macro}{\partformat}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}%^^A
-% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende
-% entfernt}%^^A
-% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot}%^^A
-% wieder eingefügt}%^^A
-% Jede Gliederungsebene benötigt einen Zähler für die Gliederungsnummer und
-% eine Darstellung des Zählers (\cs{the\dots}). Desweiteren wird eine
-% Formatierung des Zählers in den Gliederungsüberschriften
-% (\texttt{\bslash\dots format}) benötigt.
+% \end{macro}^^A \l@part
+%
+%
+% \begin{counter}{part}
+% \begin{command}{\thepart}
+% \begin{command}{\partformat}
+% \changes{v2.3c}{1995/08/06}{auto dot feature}
+% \changes{v2.5f}{1999/02/14}{orphan spaces removed}
+% \changes{v2.7h}{2001/04/22}{missing backslash of \cs{autodot} fixed}
+% Because we don't use the default Arabic numbering, we still define the
+% counter for \cs{part}, it's printing and the formatting explicitly.
% \begin{macrocode}
\newcounter{part}
\renewcommand*{\thepart}{\@Roman\c@part}
\newcommand*{\partformat}{\partname~\thepart\autodot}
% \end{macrocode}
-% \end{macro}%^^A \partformat
-% \end{macro}%^^A \thepart
-% \end{Counter}{part}
+% \end{command}^^A \partformat
+% \end{command}^^A \thepart
+% \end{counter}{part}
%
%
-% \begin{macro}{\partname}
-% Namen der Gliederungsebenen \cs{part}.
+% \begin{command}{\partname}
+% \changes{v3.36}{2022/03/15}{explicit definition for English languages}
+% The name of a part used for the prefix line and maybe for the ToC entry.
% \begin{macrocode}
\newcommand*\partname{Part}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\partname{Part}
% \end{macrocode}
-% \end{macro}%^^A \partname
+% \end{command}^^A \partname
%
%
-% \begin{macro}{\partmark}
-% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})}%^^A
-% \changes{v3.18}{2015/05/24}{Voreinstellung von \cs{@gobble} zu
-% \cs{@mkboth{}{}} geändert}
+% \begin{command}{\partmark}
+% \changes{v2.9r}{2004/07/20}{added}
+% \changes{v3.18}{2015/05/24}{default changed from \cs{@gobble} to
+% \cs{@mkboth{}{}}}
+% Initially \cs{part} should simply empty the left and right mark if an
+% automatic running head is used. This is independent from the page style.
% \begin{macrocode}
\newcommand*{\partmark}[1]{\@mkboth{}{}}
% \end{macrocode}
-% \end{macro}%^^A \partmark
+% \end{command}^^A \partmark
%
-% \begin{macro}{\addpartmark}
-% \changes{v3.17}{2015/04/20}{neue Anweisung}%^^A
-% \changes{v3.18}{2015/05/24}{abhängig von \cs{partnumdepth}}%^^A
-% Analog zu \cs{addchapmark} für \cs{addpart}. Auch dabei gilt, dass
-% \cs{if@mainmatter} hier auch von \textsf{scrreprt} definiert wird. Das ist
-% Absicht und vereinfacht dem einen oder anderen Paket oder Benutzer
-% vielleicht die Arbeit.
+% \begin{command}{\addpartmark}
+% \changes{v3.17}{2015/04/20}{added}
+% \changes{v3.18}{2015/05/24}{depends on \cs{partnumdepth}}
+% To be used to add the marks with \cs{addpart}. Locally we define
+% \cs{if@mainmatter}, because it makes life easier for users or package
+% authors, who (re-)define \cs{partmark}.
% \begin{macrocode}
\newcommand*\addpartmark[1]{%
\begingroup
@@ -4487,101 +4401,79 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \addpartmark
+% \end{command}^^A \addpartmark
%
%
-% \begin{macro}{\raggedpart}
-% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit}%^^A
-% Die Ausrichtung der Überschrift von \cs{part} kann davon abweichend über
-% \cs{raggedpart} konfiguriert werden. Die Voreinstellung ist von der
-% Klasse abhängig.
+% \begin{command}{\raggedpart}
+% \changes{v2.95a}{2006/07/10}{added}
+% Style \texttt{part} does not use \cs{raggedsection} but
+% \cs{raggedpart}. However for \cls*{scrartcl} the default is the same. But
+% \cls*{scrbook} and \cls*{scrreprt} use \cs{centering} as default.
+% \begin{description}
+% \item[Note:] Because of using \cs{let} inside a class, \cs{raggedright}
+% should be without hyphenation when we define \cs{raggedpart}.
+% \end{description}
% \begin{macrocode}
\newcommand*{\raggedpart}{}
%<article>\let\raggedpart\raggedsection
%<report|book>\let\raggedpart\centering
% \end{macrocode}
-% \end{macro}
-%
-% \begin{KOMAfont}{part}
-% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}%^^A
-% \begin{macro}{\scr@fnt@part}
-% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}%^^A
-% \begin{KOMAfont}{partnumber}
-% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}%^^A
-% \begin{macro}{\scr@fnt@partnumber}
-% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}%^^A
-% \begin{KOMAfont}{partprefix}
-% \changes{v3.18}{2015/06/10}{neues Alias-Element \texttt{partprefix}}%^^A
-% \begin{macrocode}
-\newcommand*{\scr@fnt@part}{\size@part}
-\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
-\aliaskomafont{partprefix}{partnumber}
-% \end{macrocode}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
+% \end{command}
%
-% \begin{KOMAfont}{partentry}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}%^^A
-% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
-% \texttt{disposition} ersetzt}%^^A
-% Schrift für den \cs{part}-Eintrag im Inhaltsverzeichnis.
+% \begin{fontelement}{partentry}
+% \changes{v2.97c}{2007/06/21}{added}
+% \changes{v3.06}{2010/06/09}{\fnt{sectioning} replaced by \fnt{disposition}}
+% \cs{part} entries to the table of contents are \cs{large}.
% \begin{macrocode}
\newkomafont{partentry}{\usekomafont{disposition}\large}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{partentrypagenumber}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}%^^A
-% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis
-% abweichend von \texttt{partentry}.
+% \begin{fontelement}{partentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{added}
+% The page number of the ToC entry should be unchanged.
% \begin{macrocode}
\newkomafont{partentrypagenumber}{}
%</body>
-%</class>
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
%
-% \subsection{Kapitel}
+% \subsection{Chapters}
%
-% Bei den Klassen \texttt{scrbook} und \texttt{scrreprt} gibt es im
-% Unterschied zu \texttt{scrartcl} auch noch die Kapitelebene. Für die
-% Definition des Kapitelstils mittels \cs{DeclareSectionCommand} werden neben
-% den Optionen und \cs{scr@dsc@def@style@chapter@command} noch diverse
-% Anweisungen benötigt. Diese sind allesamt von der ursprünglichen Definition
-% für Kapitel abgeleitet. Eine Besonderheit ist dabei, dass \textsf{hyperref}
-% dem neuen Code durch (inkompatible) Umdefinierung von \cs{@schapter} und
-% \cs{@chapter} in die Quere kommt. Das gilt es also zusätzlich zu verhindern
-% und dennoch \cs{hyperref} zu berücksichtigen. Dies gelingt am einfachsten
-% durch einen neuen Hook, den \cs{hyperref} zukünftig gerne selbst passend
-% umdefinieren kann. Wer sonst noch an \cs{@chapter} und \cs{@schaper}
-% herumdoktert und dabei \KOMAScript{} aus dem Tritt bringt, ist selbst
-% schuld.
+% Classes \cls*{scrbook} and \cls*{scrreprt} provide chapters. These are
+% realized by \cs{DeclareSectionCommand} and the \texttt{chapter} style. The
+% style is represented by \cs{scr@dsc@def@style@chapter@command} and several
+% helpers.
+% \begin{description}
+% \item[Note:] Package \pkg{hyperref} is not really compatible with
+% \KOMAScript{} classes, because it redefines \cs{@schapter} and
+% \cs{@chapter} incompatible. However, currently \KOMAScript{} has a build
+% in workaround for this. But this workaround itself depends on internal
+% code of \pkg{hyperref}. It would be better, if \pkg{hyperref} would
+% provide an interface for class authors and would redefine internal macros
+% of classes only as fallback if classes do not use this
+% interface. \KOMAScript{} also provides an alternative. \pkg*{hyperref}
+% could redefine a single command \cs{hy@insteadofrefstepcounter}.
+% \item[Note:] Any package, that changes internal macros like \cs{@chapter},
+% \cs{@schapter}, \cs{@makechapterhead}, \cs{@makeschapterhead} is
+% incompatible with \KOMAScript{} classes. Neither \KOMAScript{} nor the
+% \KOMAScript{} author is responsible for this. Package authors are welcome
+% to ask for interfaces they need, e.g., a good idea would be to define a
+% own headings style.
+% \end{description}
%
% \begin{option}{chapterprefix}
-% \changes{v2.8}{2001/06/15}{neue Option}%^^A
-% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}%^^A
-% \changes{v3.18}{2015/05/22}{die Option bezieht sich allgemein auf den
-% Gliederungsstil}%^^A
-% \begin{option}{nochapterprefix}
-% \changes{v2.8}{2001/06/15}{neue Option}%^^A
-% \changes{v2.95c}{2006/08/21}{obsolete Option}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% Normalerweise verwenden \textsf{scrbook} und \textsf{scrreprt} nicht
-% die enorm großen Überschriften von \textsf{book} und
-% \textsf{report}, die mit einem Absatz "`Kapitel \emph{Nummer}"'
-% beginnen. Mit der Option \texttt{chapterprefix} kann dies jetzt
-% wieder aktiviert werden. Die Option, zur Deaktivierung heißt
-% entsprechend \textsf{nochapterprefix}.
-% Um für Spezialanwendungen auch innerhalb des Dokuments eine
-% Umschaltung zu ermöglichen bzw. für die Optionen
-% \texttt{appendixprefix} und \texttt{noappendixprefix} erfolgt die
-% Umschaltung durch einen Schalter.
-% \begin{macrocode}
-%<*class>
+% \changes{v2.8}{2001/06/15}{added}
+% \changes{v2.95c}{2006/08/21}{changed to \pkg{keyval} option}
+% \changes{v3.18}{2015/05/22}{option correlates with style not level}
+% \begin{macro}{\@chapterprefixtrue,\@chapterprefixfalse,\if@chapterprefix}
+% Initially \KOMAScript{} does not use the enormous chapter headings with
+% prefix line ``Chapter \meta{number}'' but a more subtle one. However, either
+% \opt{chapterprefix} or \opt{headings=twolinechapter} can be used to
+% reactivate the prefix line. The current setting is available via the boolean
+% switch \cs{if@chapterprefix}.
+% \begin{macrocode}
%<*book|report>
%<prepare>\newif\if@chapterprefix
%<*option>
@@ -4600,23 +4492,32 @@
}%
\fi
}
-\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelinechapter}%
+% \end{macrocode}
+% \begin{option}{nochapterprefix}
+% \changes{v2.8}{2001/06/15}{added}
+% \changes{v2.95c}{2006/08/21}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Deprecated option for compatibility with \KOMAScript~2.9u only.
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
%</option>
% \end{macrocode}
-% \end{option}
-% \end{option}
+% \end{option}^^A nochapterprefix
+% \end{macro}^^A \if@chapterprefix
+% \end{option}^^A chapterprefix
+%
%
-% \selectlanguage{english}
% \begin{option}{appendixprefix}
-% \changes{v2.8}{2001/06/15}{new option}
-% \changes{v2.95c}{2006/08/21}{re-implementation as \textsf{keyval} option}
+% \changes{v2.8}{2001/06/15}{added}
+% \changes{v2.95c}{2006/08/21}{re-implementation as \pkg{keyval} option}
% \changes{v3.12}{2013/03/05}{usage of \cs{FamilyKeyState}}
% \changes{v3.17}{2015/03/09}{internal value storage}
% \changes{v3.34}{2021/04/30}{usage of \LaTeX{} hook, if available}
-% \changes{v3.34}{2021/04/30}{new value \texttt{default} with \LaTeX{} hooks}
+% \changes{v3.34}{2021/04/30}{new value \opt{\quotechar=default} with \LaTeX{}
+% hooks}
% If the appendix chapters should be with or without prefix line independent
-% from the chapters of the main part, option \Option{appendixprefix} can be
+% from the chapters of the main part, option \opt{appendixprefix} can be
% used. This does not set up a new boolean but just activates or deactivates
% the boolean for chapters inside \cs{appendix}. From \KOMAScript{} v3.34 and
% \LaTeX{} 2020/10/01 this is done using a new \LaTeX{} hook. Otherwise still
@@ -4680,91 +4581,82 @@
}%
}
% \end{macrocode}
-% \end{option}%^^A appendixprefix
-%
% \begin{option}{noappendixprefix}
-% \changes{v2.8}{2001/06/15}{new option}
-% \changes{v2.95c}{2006/08/21}{obsolete option}
+% \changes{v2.8}{2001/06/15}{added}
+% \changes{v2.95c}{2006/08/21}{obsolete}
% \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false}
%</option>
% \end{macrocode}
-% \end{option}%^^A noappendixprefix
+% \end{option}^^A noappendixprefix
+% \end{option}^^A appendixprefix
%
%
-% \selectlanguage{ngerman}
-% \begin{macro}{\size@chapter}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
-% wenn es keine Auswirkung auf den Zeilen abstand hat}%^^A
-% \begin{macro}{\size@chapterprefix}
-% \changes{v2.96a}{2006/12/02}{neu (intern)}%^^A
-% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
-% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{fontelement}{chapter}
+% \changes{v2.8o}{2001/09/14}{added}
+% \changes{v2.96a}{2006/12/02}{undocumented support for last macro expects an
+% argument}
+% \begin{fontelement}{chapterprefix}
+% \changes{v2.8o}{2001/09/14}{added by macro}
+% \changes{v2.96a}{2006/12/02}{added}
+% Definition of the font elements used by \cs{chapter}. The settings are done
+% by option \opt{headings} later. Everything is prepared before this option
+% is used the first time. The manual definition is used, because of
+% compatibility with \KOMAScript{} 2.9u. However, using the old macros is
+% deprecated and not supported any longer.
% \begin{macrocode}
%<*prepare>
\newcommand*{\size@chapter}{}
+\newcommand*{\scr@fnt@chapter}{\size@chapter}
\newcommand*{\size@chapterprefix}{\size@chapter}
+\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix}
%</prepare>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% \begin{macro}{\chapterheadstartvskip}
-% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@beforeskip} wird
-% definiert und verwendet}%^^A
-% \begin{macro}{\chapterheadendvskip}
-% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} und
-% \cs{chapterheadendvskip} haben in \textsf{scrartcl} nichts verloren}%^^A
-% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@afterskip} wird
-% definiert und verwendet}%^^A
-% \changes{v3.15}{2014/12/10}{\cs{vspace} durch \cs{vskip} ersetzt, damit
-% \cs{lastskip} korrekt gesetzt ist}
-% \begin{macro}{\chapterheadmidvskip}
-% \changes{v3.15}{2014/11/20}{neue Anweisung}%^^A
-% \changes{v3.17}{2015/03/25}{\cs{scr@chapter@innerskip} wird
-% definiert und verwendet}%^^A
-% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen
-% oberem Rand des Textbereichs und der Ãœberschrift bzw. der Abstand
-% zwischen der Ãœberschrift und dem Text des Kapitels gesetzt. Man kann
-% die Anweisungen aber zusätzlich auch für andere Zwecke
-% missbrauchen. Das ist der Grund warum diese Makros keine Längen,
-% sondern komplette Anweisungen enthalten. In der Voreinstellung
-% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden
-% durch die Optionen festgelegt. Dabei wird \cs{chapterheadmidvskip} nur
-% verwendet, wenn Option \texttt{chapterprefix} aktiv ist.
-%
-% Zur Erhöhung der Kompatibilität mit \cs{DeclareSectionCommand} werden
-% zunächst einige Hilfsanweisung definiert und verwendet.
-% \begin{macro}{\scr@chapter@beforeskip}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}%^^A
-% \changes{v3.17}{2015/03/25}{umbenannt in
-% \cs{scr@chapter@beforeskip}}%^^A
-% \begin{macro}{\scr@chapter@afterskip}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}%^^A
-% \changes{v3.17}{2015/03/25}{umbenannt in
-% \cs{scr@chapter@afterskip}}%^^A
-% \begin{macro}{\scr@chapter@sectionindent}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung (unbenutzt)}%^^A
-% \changes{v3.17}{2015/04/24}{entfernt}%^^A
-% \end{macro}%^^A \scr@chapter@sectionindent
-% \end{macro}%^^A \scr@chapter@afterskip
-% \end{macro}%^^A \scr@chapter@beforeskip
-% \begin{macro}{\scr@chapter@beforeskip}
-% \changes{v3.17}{2015/03/25}{Neu (intern) aus Umdefinierung von
-% \cs{scr@chapter@sectionbeforeskip}}%^^A
+% \end{fontelement}^^A chapterprefix
+% \end{fontelement}^^A chapter
+%
+%
+% \begin{command}{\chapterheadstartvskip}
+% \changes{v3.15}{2014/11/24}{defining and using \cs{scr@chapter@beforeskip}}
+% \begin{command}{\chapterheadmidvskip}
+% \changes{v3.15}{2014/11/20}{added}
+% \changes{v3.17}{2015/03/25}{defining and using \cs{scr@chapter@innerskip}}
+% \begin{command}{\chapterheadendvskip}
+% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} and
+% \cs{chapterheadendvskip} removed from \cls*{scrartcl}}
+% \changes{v3.15}{2014/11/24}{defining and using \cs{scr@chapter@afterskip}}
+% \changes{v3.15}{2014/12/10}{\cs{vspace} replaced by \cs{vskip} because of
+% \cs{lastskip}}
+% These commands are the distance before a chapter heading, between the
+% prefix line and the text line of the heading and after the chapter heading.
+% \cs{chapterheadmidvskip} is only used with option \opt{chapterprefix}
+% resp. \opt{headings=twolinechapter}.
+%
+% \begin{macro}{\scr@chapter@sectionbeforeskip,\scr@chapter@beforeskip}
+% \changes{v3.15}{2014/11/24}{added}
+% \changes{v3.17}{2015/03/25}{\cs{scr@chapter@sectionbeforeskip} renamed to
+% \cs{scr@chapter@beforeskip}}
% \begin{macro}{\scr@chapter@innerskip}
-% \changes{v3.17}{2015/03/25}{Neu (intern)}%^^A
-% \begin{macro}{\scr@chapter@afterskip}
-% \changes{v3.17}{2015/03/25}{Neu (intern) aus Umdefinierung von
-% \cs{scr@chapter@sectionafterskip}}%^^A
+% \changes{v3.17}{2015/03/25}{added}
+% \begin{macro}{\scr@chapter@sectionafterskip,\scr@chapter@afterskip}
+% \changes{v3.15}{2014/11/24}{added}
+% \changes{v3.17}{2015/03/25}{\cs{scr@chapter@sectionafterskip} renamed to
+% \cs{scr@chapter@afterskip}}
+% \begin{macro}{\scr@chapter@sectionindent}
+% \changes{v3.15}{2014/11/24}{added}
+% \changes{v3.17}{2015/04/24}{removed}
+% \end{macro}^^A \scr@chapter@sectionindent
% \begin{macro}{\scr@chapter@style}
-% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}%^^A
-% Dabei wird der leere Stil verwendet, mit dem Neudefinitionen von \cs{part}
-% über \cs{DeclareSectionCommand} verhindert werden. Gleichzeitig können
-% jedoch Einstellungen einiger Werte darüber erfolgen.
+% \changes{v3.15}{2014/11/24}{added}
+% All the skips and the page style are used by \cs{DeclareSectionCommand}
+% resp. the style \texttt{chapter}. We define it as early as possible. Even the
+% style of \cs{chapter} is already defined here.
+% \begin{description}
+% \item[ToDo:] Do we need them in the \texttt{prepare} run or can we move then
+% even to the \texttt{body} run?
+% \item[ToDo:] Do we really need to define \cs{scr@chapter@style}?
+% \end{description}
% \begin{macrocode}
%<*prepare>
\newcommand*{\scr@chapter@beforeskip}{\z@}
@@ -4775,33 +4667,32 @@
\let\scr@chapter@innerskip\z@
\newcommand*{\scr@chapter@style}{chapter}
% \end{macrocode}
-% \end{macro}%^^A \scr@chapter@style
-% \end{macro}%^^A \scr@chapter@innerskip
-% \end{macro}%^^A \scr@chapter@beforeskip
-% \end{macro}%^^A \scr@chapter@afterskip
+% \end{macro}^^A \scr@chapter@style
+% \end{macro}^^A \scr@chapter@afterskip
+% \end{macro}^^A \scr@chapter@innerskip
+% \end{macro}^^A \scr@chapter@beforeskip
% \begin{macrocode}
\newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
\newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
\newcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}
%</prepare>
% \end{macrocode}
-% \end{macro}%^^A \chapterheadmidvskip
-% \end{macro}%^^A \chapterheadendvskip
-% \end{macro}%^^A \chapterheadstartvskip
+% \end{command}^^A \chapterheadendvskip
+% \end{command}^^A \chapterheadmidvskip
+% \end{command}^^A \chapterheadstartvskip
%
%
% \begin{macro}{\scr@startchapter}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (für Paketautoren)}
-% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn definiert und nicht
-% leer}%^^A
-% Diese Anweisung legt fest, wie der konkrete Aufruf für Überschriften des
-% Stils \texttt{chapter} lautet. Einziges Argument ist dabei der Name der
-% Gliederungsebene, beispielsweise \texttt{chapter}. Alle anderen benötigten
-% Werte ergeben sich aus den Einstellungen für die Gliederungsebene. Beim
-% tatsächlichen Aufruf wird dann daran wie üblich noch optional noch entweder
-% ein Stern oder ein Argument für Kolumnentitel und Inhaltsverzeichniseintrag
-% und der Text der Überschrift angehängt. Diese Anweisung wurde von der
-% ursprünglichen Definition von \cs{chapter} abgeleitet.
+% \changes{v3.18}{2015/05/22}{added}
+% \changes{v3.19}{2015/08/25}{ignore empty page styles}
+% The macro
+% \begin{quote}
+% \cs{scr@startchapter}\marg{chapter command name}
+% \end{quote}
+% is now part of the style \texttt{chapter}. However, the main parts
+% of the code are from the original definition of \cs{chapter}. It has only one
+% argument: The name of the chapter command, i.e., \texttt{chapter}. All
+% arguments to the part command will be processed later.
% \begin{macrocode}
%<*body>
\newcommand*{\scr@startchapter}[1]{%
@@ -4830,20 +4721,29 @@
% \end{macrocode}
%
% \begin{macro}{\scr@@startchapter}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@chapter} ein und
-% erbst damit auch die ganzen noch relevanten ChangeLog-Einträge dieser
-% Anweisung.
+% \changes{v3.18}{2015/05/22}{added}
+% The macro
+% \begin{quote}
+% \cs{scr@@startchapter}\marg{chapter command name}\oarg{extended optional
+% argument}\marg{chapter heading}
+% \end{quote}
+% is now part of the style \texttt{chapter}. However, the main parts
+% of the code are from the original definition of \cs{@chapter}. Therefore it
+% has the mandatory and optional arguments of a non-star variant of, i.e.,
+% \cs{chapter} but an additional first argument.
+% \begin{description}
+% \item[Note:] \meta{extended optional argument} is named as optional, however
+% here it is already mandatory, because it is a delimited argument.
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@@startchapter}{}
\def\scr@@startchapter#1[#2]#3{%
\ExecuteDoHook{heading/branch/nostar/#1}%
% \end{macrocode}
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% \changes{v3.27}{2019/07/08}{neue Option \texttt{nonumber}}%^^A
-% Für das erweitere optionale Argument muss hier eine key-value-Auswertung
-% erfolgen, falls das erweitere optionale Argument aktiviert ist:
+% \changes{v3.10}{2011/08/30}{extended optional argument}
+% \changes{v3.27}{2019/07/08}{option \opt{nonumber} added}
+% First of all, depending in \opt{headings=optionto\dots} we have different
+% defaults for the options.
% \begin{macrocode}
\ifnum \scr@osectarg=\z@
\@scr@tempswafalse
@@ -4865,16 +4765,15 @@
\fi
\fi
% \end{macrocode}
-% Als nächstes muss für nummerierte Überschriften dieser Ebene sowohl der
-% Zähler erhöht also auch ein nummerierter Eintrag ins Inhaltsverzeichnis
-% erstellt werden.
-% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}%^^A
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}%^^A
-% \changes{v3.18}{2015/05/20}{Verwendung von \cs{add\meta{Name}tocentry}}%^^A
-% \changes{v3.18}{2015/05/22}{Verwendung von \meta{Name} statt \cs{@chapapp}
-% in \cs{typeout}}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} umbenannt in
-% \cs{Ifnumbered}}%^^A
+% \changes{v2.8e}{2001/07/10}{using \cs{@maybeautodot}}
+% \changes{v3.08}{2010/11/01}{using \cs{addchaptertocentry}}
+% \changes{v3.18}{2015/05/20}{using \cs{add\meta{name}tocentry}}
+% \changes{v3.18}{2015/05/22}{using \meta{name} instead of \cs{@chapapp}
+% in \cs{typeout}}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to
+% \cs{Ifnumbered}}
+% For numbered headings we have to increase the counter and write a process
+% information to the \file{log} and the terminal.
% \begin{macrocode}
\Ifnumbered{#1}{%
%<book> \if@mainmatter
@@ -4887,10 +4786,10 @@
\typeout{#1 \csname the#1\endcsname.}%
\ifx\@currenttocentry\@empty\else
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/06}{use \cs{\dots tocformat}}%
-%^^ATODO: move \cs{autodot} to the definition of \cs{\dots tocformat}
-% \selectlanguage{ngerman}%
+% \changes{v3.31}{2020/06/06}{using \cs{\dots tocformat}}%
+% \begin{description}
+% \item[ToDo]: Move \cs{autodot} to the definition of \cs{\dots tocformat}.
+% \end{description}
% \begin{macrocode}
\@ifundefined{#1tocformat}{%
\expandafter\gdef\csname #1tocformat\endcsname
@@ -4903,12 +4802,11 @@
}{\csname\@ifundefined{#1tocformat}{the#1}{#1tocformat}\endcsname}%
{\@currenttocentry}%
\fi
+ \else
% \end{macrocode}
-% Für alle nicht nummerieten Überschriften dieser Ebene trotzdem die
-% Resetliste des Zählers ausführen und ggf. einen Verzeichniseintrag
-% erstellen.
+% For not numbered headings we still have to process the reset list of the
+% counter and write a process information to the \file{log} and the terminal.
% \begin{macrocode}
- \else
\expandafter\ifnum\scr@v@is@lt{3.15}\relax\else
\begingroup
\let\@elt\@stpelt
@@ -4918,8 +4816,13 @@
\typeout{#1 without number}%
\ifx\@currenttocentry\@empty\else
% \end{macrocode}
-% An dieser Stelle muss ggf. der \textsf{hyperref}-Hook für nicht nummerierte
-% Inhaltsverzeichniseinträge ausgeführt werden.
+% And before writing a not numbered entry to the table of contents we have to
+% execute also the \pkg{hyperref} hook \cs{hy@insteadofrefstepcounter}.
+% \begin{description}
+% \item[Note:] \pkg*{scrhack} uses the existence of this command to detect a
+% \KOMAScript{} class. Shouldn't this be changed using, e.g.,
+% \cs{KOMAClassName}?
+% \end{description}
% \begin{macrocode}
\hy@insteadofrefstepcounter{#1}%
\scr@ifundefinedorrelax{add#1tocentry}{%
@@ -4930,18 +4833,21 @@
\fi
\fi
% \end{macrocode}
-% Jetzt kommt der Kolumnentitel an die Reihe.
+% Set the mark for the running head. Here we have to do a one step expansion
+% of \cs{@currentheadentry}, because otherwise it would change with every
+% \cs{section}, \cs{subsection} \dots
% \begin{macrocode}
\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
% \end{macrocode}
-% Und die Abstände in die andere Verzeichnisse.
-% \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun
-% auch ein vertikaler Abstand in Listen des \texttt{float}-Pakets
-% eingebaut}%^^A
-% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere
-% float-Verzeichnisse mit hyperref}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
+% \changes{v2.8g}{2001/07/18}{support for \cs{float@addtolists}}
+% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by \cs{Iftocfeature}}
+% Depending on feature \texttt{chapteratlist} we have to add a vertical space
+% to other directories. And for compatibility we also support the deprecated
+% \cs{float@addtolists} but not without warning.
+% \begin{description}
+% \item[ToDo:] Why do we add the gap here but also use \cs{addctontentsline}
+% in \cs{addchaptertocentry}? Is this a bug? Should this be standardized?
+% \end{description}
% \begin{macrocode}
\ifdim \@chapterlistsgap>\z@
\doforeachtocfile{%
@@ -4955,12 +4861,20 @@
}%
\fi
% \end{macrocode}
-% Jetzt kommt die eigentliche Ãœberschrift. An dieser Stelle wird ab
-% Version~3.18 nicht mehr stur \cs{@makecshapterhead} verwendet, sondern eine
-% Anweisung, die vom Namen der Gliederungsüberschrift abhängig ist.
-% \changes{v3.18}{2015/05/22}{\cs{@makechapterhead} durch
-% \cs{@make\meta{Name}head} ersetzt}%^^A
+% \changes{v3.18}{2015/05/22}{\cs{@makechapterhead} replaced by
+% \cs{@make\meta{Name}head}}
+% \changes{v3.36}{2022/03/16}{warning about deprecated \cs{@makechapterhead}}
+% Setting the heading itself is more or less a call of \cs{@make\meta{command
+% name}head}.
+% \begin{description}
+% \item[ToDo:] Using \cs{scr@makechapterhead}\marg{command name} would be the
+% better solution. However in this case, every redefinition of
+% \cs{@makechapterhead} would be ignored. So currently we support such
+% deprecated redefinition of internal macro \cs{@makechapterhead} for
+% \cs{chapter}. But this will be changed in future.
+% \end{description}
% \begin{macrocode}
+ \scr@t@st@nd@w@rn@m@k@ch@pt@rh@@d{#1}%
\if@twocolumn
\if@at@twocolumn
\@nameuse{@make#1head}{#3}%
@@ -4971,36 +4885,84 @@
\@nameuse{@make#1head}{#3}%
\fi
% \end{macrocode}
-% Und das Ganze endet schließlich mit:
-% \changes{v3.18}{2015/05/21}{\cs{@afterheading} in jedem Fall}%^^A
+% \changes{v3.18}{2015/05/21}{always using \cs{@afterheading}}
+% And finally the end of every outline command.
% \begin{macrocode}
\@afterheading
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@startchapter
+% \begin{macro}{\scr@t@st@nd@w@rn@m@k@ch@pt@rh@@d}
+% \changes{v3.36}{2022/03/16}{added}
+% The test and warning used inside \cs{scr@@startchapter}.
+% \begin{macrocode}
+\expandafter\ifnum\scr@v@is@ge{3.36}%
+ \newcommand*{\scr@t@st@nd@w@rn@m@k@ch@pt@rh@@d}[1]{%
+ \Ifstr{#1}{chapter}{%
+ \begingroup
+ \def\reserved@a{\scr@makechapterhead{chapter}}%
+ \ifx\@makechapterhead\reserved@a\else
+ \ClassWarningNoLine{\KOMAClassName}{%
+ Redefinition of \string\@makechapterhead\space detected.\MessageBreak
+ Note: KOMA-Script does use styles for commands like\MessageBreak
+ \string\chapter. Currently it internally still provides and\MessageBreak
+ uses \string\@makechapterhead, but a completely different\MessageBreak
+ definition compared to the standard classes.\MessageBreak
+ So redefining or using internal \string\@makechapterhead\MessageBreak
+ by users or package authors may already break\MessageBreak
+ KOMA-Script and will not work with a coming version,\MessageBreak
+ that will remove this deprecated code}%
+ \let\scr@t@st@nd@w@rn@m@k@ch@pt@rh@@d\@gobbble
+ \fi
+ \endgroup
+ }{}%
+ }
+\else
+ \let\scr@t@st@nd@w@rn@m@k@ch@pt@rh@@d\@gobble
+\fi
+% \end{macrocode}
+% \end{macro}^^A \scr@t@st@nd@w@rn@m@k@ch@pt@rh@@d
+% \end{macro}^^A \scr@@startchapter
%
% \begin{macro}{\scr@@startschapter}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@schapter} ein sie ist
-% sehr viel einfacher gestrickt als \cs{scr@@startchapter}.
+% \changes{v3.18}{2015/05/22}{added}
+% The macro
+% \begin{quote}
+% \cs{scr@@startschapter}\marg{chapter command name}\marg{chapter heading}
+% \end{quote}
+% is now part of the style \texttt{chapter}. However, the main parts
+% of the code are from the original definition of \cs{@schapter}. Therefore it
+% has the mandatory argument of a star variant of, i.e., \cs{chapter} but an
+% additional first argument.
% \begin{macrocode}
\newcommand*{\scr@@startschapter}[2]{%
\ExecuteDoHook{heading/branch/star/#1}%
% \end{macrocode}
-% Für Leute, die unbedingt nach der Sternversion noch ein \cs{addcontentsline}
-% anfügen wollen, muss hier ebenfalls der \textsf{hyperref}-Hook ausgeführt
-% werden. Allerdings passiert das hier entsprechend dem Vorgehen von
-% \textsf{hyperref} selbst in einer Gruppe, in der zusätzlich \cs{@mkboth} zu
-% \cs{@gobbletwo} gemacht wird, auch wenn ich absolut nicht versehe, was das
-% soll.
+% Some users don't learn to use \cs{addchapter} for not numbered parts with
+% entry to the table of contents but insist in using
+% \cs{addcontentsline}. Despite this should not be used, because at least
+% \cs{addchaptertocentry} should be used, we tolerate this by using our
+% \pkg{hyperref} hook.
+% \begin{description}
+% \item[ToDo:] I don't understand why \pkg{hyperref} uses a group here and
+% locally sets \cs{@mkboth} to \cs{@gobbletwo}. However, I've copied this.
+% \end{description}
% \begin{macrocode}
\begingroup
\let\@mkboth\@gobbletwo
\hy@insteadofrefstepcounter{#1}%
\endgroup
% \end{macrocode}
-% Dann wird die eigentliche Ãœberschrift ausgegeben.
+% Setting the heading itself is more or less a call of \cs{@makes\meta{command
+% name}head}.
+% \begin{description}
+% \item[ToDo:] Using \cs{scr@makeschapterhead}\marg{command name} would be the
+% better solution. However in this case, every redefinition of
+% \cs{@makeschapterhead} would be ignored. So currently we support such
+% deprecated redefinition of internal macro \cs{@makeschapterhead} for
+% \cs{chapter}. But this will be changed in future.
+% \end{description}
% \begin{macrocode}
+ \scr@t@st@nd@w@rn@m@ks@ch@pt@rh@@d{#1}%
\if@twocolumn
\if@at@twocolumn
\@nameuse{@makes#1head}{#2}%
@@ -5011,40 +4973,61 @@
\@nameuse{@makes#1head}{#2}%
\fi
% \end{macrocode}
-% Und das Ganze endet schließlich mit:
-% \changes{v3.18}{2015/05/21}{\cs{@afterheading} in jedem Fall}%^^A
+% \changes{v3.18}{2015/05/21}{always using \cs{@afterheading}}
+% And finally the end of every outline command.
% \begin{macrocode}
\@afterheading
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@startschapter
+% \begin{macro}{\scr@t@st@nd@w@rn@m@ks@ch@pt@rh@@d}
+% \changes{v3.36}{2022/03/16}{added}
+% The test and warning used inside \cs{scr@@startschapter}.
+% \begin{macrocode}
+\expandafter\ifnum\scr@v@is@ge{3.36}%
+ \newcommand*{\scr@t@st@nd@w@rn@m@ks@ch@pt@rh@@d}[1]{%
+ \Ifstr{#1}{chapter}{%
+ \begingroup
+ \def\reserved@a{\scr@makeschapterhead{chapter}}%
+ \ifx\@makeschapterhead\reserved@a\else
+ \ClassWarningNoLine{\KOMAClassName}{%
+ Redefinition of \string\@makeschapterhead\space detected.\MessageBreak
+ Note: KOMA-Script does use styles for commands like\MessageBreak
+ \string\chapter. Currently it internally still provides and\MessageBreak
+ uses \string\@makeschapterhead, but a completely different\MessageBreak
+ definition compared to the standard classes.\MessageBreak
+ So redefining or using internal \string\@makeschapterhead\MessageBreak
+ by users or package authors may already break\MessageBreak
+ KOMA-Script and will not work with a coming version,\MessageBreak
+ that will remove this deprecated code}%
+ \let\scr@t@st@nd@w@rn@m@ks@ch@pt@rh@@d\@gobble
+ \fi
+ \endgroup
+ }{}%
+ }
+\else
+ \let\scr@t@st@nd@w@rn@m@ks@ch@pt@rh@@d\@gobble
+\fi
+% \end{macrocode}
+% \end{macro}^^A \scr@t@st@nd@w@rn@m@ks@ch@pt@rh@@d
+% \end{macro}^^A \scr@@startschapter
%
-%% \begin{macro}{\if@at@twocolumn}
-% \changes{v2.7b}{2001/01/05}{neu (intern)}%^^A
+%% \begin{macro}{\@at@twocolumntrue,\@at@twocolumnfalse,\if@at@twocolumn}
+% \changes{v2.7b}{2001/01/05}{added}
% \begin{macro}{\scr@topnewpage}
-% \changes{v2.7b}{2001/01/05}{neu (intern)}%^^A
-% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}%^^A
+% \changes{v2.7b}{2001/01/05}{added}
+% \changes{v2.8q}{2001/11/27}{braces fixed}
% \begin{macro}{\@topnewpage}
-% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)}%^^A
-% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt}%^^A
-% \changes{v3.01}{2008/11/13}{Verwendung von
-% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}%^^A
-% Interessant ist dabei die Erweiterung, daß jedes Kapitel mit einer
-% Präambel versehen werden kann. Diese wird im zweispaltigen Satz wie
-% die Überschrift selbst einspaltig gesetzt. Intern wird dies für
-% die Preambel des Index und der Bibliography verwendet. Dabei
-% entsteht aber wiederum das Problem, dass der Indexkopf innerhalb von
-% \cs{twocolumn} ausgegeben wird andererseits aber innerhalb von
-% \cs{chapter} das Makro \cs{@topnewpage} verwendet wird. Damit würde
-% dann also \cs{@topnewpage} innerhalb von \cs{@topnewpage}
-% aufgerufen. Das ist jedoch nicht erlaubt. Als muss der Aufruf von
-% \cs{@topnewpage} in \cs{@chapter} und \cs{@schapter} verhindert
-% werden, wenn wir uns bereits in \cs{@topnewpage} befinden. Eine
-% Möglichkeit dafür wäre, einen Schalter in den Index-Kopf
-% einzubauen. Ich wähle hingegen die Methode, \cs{@topnewpage}
-% entsprechend umzudefinieren. Damit kann dann auch der Anwender
-% \cs{@chapter} innerhalb des optionalen Arguments von \cs{twocolumn}
-% verwenden. Ein Schalter wird allerdings trotzdem gebraucht.
+% \changes{v2.7b}{2001/01/05}{added}
+% \changes{v2.7g}{2001/04/17}{missing \cs{long} added}
+% In the code above we use \cs{if@at@twocolumn} to detect, if we already
+% inside the optional argument of \cs{twocolumn}. A clean definition of this
+% feature would redefine \LaTeX{} command \cs{twocolumn}. Here we use the ugly
+% hack to redefine the internal macro \cs{@topnewpage} of the \LaTeX{} kernel
+% instead. This macro is used to print the optional argument. So we can add
+% switching on and of the boolean switch before and after it. With this,
+% packages can simply use chapter commands also inside the optional argument
+% of \cs{twocolumn} instead of need to use an internal command like
+% \cs{@makechapterhead}.
% \begin{macrocode}
\newif\if@at@twocolumn
\newcommand*\scr@topnewpage{}
@@ -5053,67 +5036,46 @@
\@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse
}
% \end{macrocode}
-% \end{macro}%^^A \@topnewpage
-% \end{macro}%^^A \scr@topnewpage
-% \end{macro}%^^A \if@at@twocolumn
+% \end{macro}^^A \@topnewpage
+% \end{macro}^^A \scr@topnewpage
+% \end{macro}^^A \if@at@twocolumn
%
% \begin{macro}{\scr@makechapterhead}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@makechapterhead}
-% ein. Mit dem neuen Mechanismus könnte man auf diesen zusätzlichen Schritt
-% verzichten. Aus Gründen der Kompatibilität wurde er aber übernommen. Daher
-% übernimmt sie auch die ChangeLog-Einträge der alten Anweisung.
-% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit einer
-% Präambel versehen werden}%^^A
-% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von Präambeln}%^^A
-% \changes{v3.15}{2014/12/10}{\cs{nobreak} am Ende entfernt}%^^A
+% \changes{v2.7b}{2001/01/05}{support for chapter preamble}
+% \changes{v2.8p}{2001/09/25}{support for different kinds of preambles}
+% \changes{v3.15}{2014/12/10}{\cs{nobreak} removed}
+% \changes{v3.18}{2015/05/22}{added}
+% \begin{macro}{\scr@@makechapterhead}
+% \changes{v3.18}{2015/05/22}{added}
+% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} also for the prefix}
+% \changes{v2.9p}{2003/06/28}{setting \cs{parfillskip} to \cs{fill}}
+% \changes{v2.96a}{2006/12/02}{distance after the prefix line only if prefix line}
+% \changes{v2.97b}{2007/03/09}{\cs{endgraf} fixed}
+% \changes{v3.15}{2014/11/20}{re-implementation}
+% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} replaced by \cs{raggedsection}}
+% \changes{v3.17}{2015/04/03}{using \cs{usefontofkomafont} for initial font
+% changed}
+% Macros
+% \begin{quote}\raggedright
+% \cs{scr@makechapterhead}\marg{chapter command name}\marg{heading}\\
+% \cs{scr@@makechapterhead}\marg{chapter command name}\marg{heading}
+% \end{quote}
+% are used inside the definition of style \texttt{chapter} and replace
+% \cs{@makechapterhead} resp. \cs{@@makechapterhead} there. So they have one
+% more argument than \cs{@makechapterhead} of the standard classes.
% \begin{macrocode}
\newcommand*{\scr@makechapterhead}[2]{%
\use@chapter@o@preamble{#1}%
\@nameuse{@@make#1head}{#2}%
\use@preamble{#1@u}%
}
-% \end{macrocode}
-% \end{macro}%^^A \scr@makechapterhead
-%
-% \begin{macro}{\scr@makeschapterhead}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@makeschapterhead}
-% ein. Mit dem neuen Mechanismus könnte man auf diesen zusätzlichen Schritt
-% verzichten. Aus Gründen der Kompatibilität wurde er aber übernommen. Daher
-% übernimmt sie auch die ChangeLog-Einträge der alten Anweisung.
-% \begin{macrocode}
-\newcommand*{\scr@makeschapterhead}[2]{%
- \use@chapter@o@preamble{#1}%
- \@nameuse{@@makes#1head}{#2}%
- \use@preamble{#1@u}%
-}
-% \end{macrocode}
-% \end{macro}%^^A \scr@makeschapterhead
-%
-% \begin{macro}{\scr@@makechapterhead}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@@makechapterhead}
-% ein. Daher übernimmt sie auch die ChangeLog-Einträge der alten Anweisung.
-% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option
-% \texttt{chapterprefix} auch auf den Präfix angewendet}%^^A
-% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}%^^A
-% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines
-% Präfixzeile ausgegeben wurde}%^^A
-% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert}%^^A
-% \changes{v3.15}{2014/11/20}{Generalumbau}%^^A
-% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt
-% \cs{raggedsection}}%^^A
-% \changes{v3.17}{2015/04/03}{Verwendung von \cs{usefontofkomafont} für die
-% initiale Fontumstellung}%^^A
-% \begin{macrocode}
\newcommand*{\scr@@makechapterhead}[2]{%
% \end{macrocode}
-% Der Absolutwert des Abstandes davor wird eingefügt.
-% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} wird bei positivem
-% \texttt{beforeskip} gesetzt}%^^A
-% \changes{v3.26}{2018/09/18}{Beachtung von Einstellung
-% \texttt{afterindent}}%^^A
+% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} if \opt{beforeskip} is
+% positive}
+% \changes{v3.26}{2018/09/18}{using \opt{afterindent}}
+% Depending on \opt{afterindent} we set \cs{if@afterindent} and set the
+% initial vertical skip using \cs{@tempskipa} and \cs{chapterheadstartvskip}.
% \begin{macrocode}
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
\csname scr@#1@afterindent\endcsname
@@ -5124,31 +5086,25 @@
}%
\chapterheadstartvskip
% \end{macrocode}
-% Dann die eigentliche Ãœberschrift innerhalb einer Gruppe.
-% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
-% 1fil} gesetzt}%^^A
-% \changes{v3.27}{2019/02/02}{Setzen von \cs{parindent} und \cs{parfillskip}
-% verschoben}%^^A
+% \changes{v3.19}{2015/08/02}{using \cs{chapterlinesformat} and
+% \cs{chapterlineswithprefixformat}}
+% \changes{v3.19}{2015/08/02}{using font element \fnt{disposition} instead of
+% \cs{sectfont}}
+% \changes{v3.19a}{2015/10/03}{missing local definition of \cs{IfUseNumber}
+% added}
+% \changes{v3.20}{2015/12/23}{setting \cs{parfillskip} to \texttt{\cs{z@} plus
+% 1fil}}
+% \changes{v3.27}{2019/02/02}{setting of \cs{parindent} and \cs{parfillskip}
+% moved}
+% \changes{v3.27}{2019/02/02}{\cs{ExecuteDoHook} added}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to
+% \cs{Ifnumbered}}
+% For the heading itself a group is used. Using group braces instead of
+% \cs{begingroup} makes it possible to do a very ugly hack inside a
+% redefinition of \cs{chapterheadstartvskip}. Nevertheless, such hacks are not
+% recommended.
% \begin{macrocode}
{%
-% \end{macrocode}
-% \changes{v3.19}{2015/08/02}{Verwendung von \cs{chapterlinesformat} und
-% \cs{chapterlineswithprefixformat}}%^^A
-% \changes{v3.19}{2015/08/02}{Verwendung von Element \texttt{disposition} an
-% Stelle von Befehl \cs{sectfont}}%^^A
-% \changes{v3.19a}{2015/10/03}{Bug durch vergessene Definition von
-% \cs{IfUseNumber} behoben}%^^A
-% \changes{v3.27}{2019/02/02}{\cs{ExecuteDoHook} eingefügt}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} umbenannt in
-% \cs{Ifnumbered}}%^^A
-% Ab Version~3.19 wurde der Code weitgehend umgebaut, um die Befehle
-% \cs{chapterlinesformat} für die hängende Version und
-% \cs{chapterlinesandprefixformat} für die Version mit Präfixzeile zu
-% verwenden. Dadurch entfällt dann auch die Verwendung von
-% \cs{usefontofkomafont}. Ich bin mir bewusst, dass dadurch diverse Hacks
-% bezüglich der Kapitelüberschriften nicht mehr funktionieren. Dafür kann man
-% diese Hacks nun durch saubere Lösungen ersetzen.
-% \begin{macrocode}
\def\IfUseNumber{\Ifnumbered{#1}}%
%<book> \if@mainmatter\else\let\IfUseNumber\@secondoftwo\fi
\ExecuteDoHook{heading/begingroup/#1}%
@@ -5194,38 +5150,53 @@
}%
\nobreak\par\nobreak
% \end{macrocode}
-% Zum Schluss der Absolutwert des Abstandes dahinter.
-% \changes{v3.26}{2018/09/20}{Betragsbildung entfernt}%^^A
+% \changes{v3.26}{2018/09/20}{no absolute value}
+% Last but not least the final skip.
+% \begin{description}
+% \item[Note:] \cs{@afterheading} will be added by \cs{scr@@startchapter}.
+% \end{description}
% \begin{macrocode}
\@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax\relax
\chapterheadendvskip
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@makechapterhead
+% \end{macro}^^A \scr@makechapterhead
+% \end{macro}^^A \scr@@makechapterhead
%
+% \begin{macro}{\scr@makeschapterhead}
+% \changes{v3.18}{2015/05/22}{added}
% \begin{macro}{\scr@@makeschapterhead}
-% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
-% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@@makechapterhead}
-% ein. Sie ist um einiges einfacher als \cs{scr@@makechapterhead} orientiert
-% sich aber prinzipiell daran.
-% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}%^^A
-% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead}%^^A
-% angepasst}%^^A
-% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt
-% \cs{raggedsection}}%^^A
-% \changes{v3.19}{2015/08/02}{an die Änderungen bei \cs{scr@@makechapterhead}
-% angepasst}%^^A
-% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
-% 1fil} gesetzt}%^^A
-% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} wird bei positivem
-% \texttt{beforeskip} gesetzt}%^^A
-% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} korrigiert}%^^A
-% \changes{v3.26}{2018/09/18}{Beachtung von Einstellung
-% \texttt{afterindent}}%^^A
-% \changes{v3.26}{2018/09/20}{Betragsbildung für \texttt{afterskip}
-% entfernt}%^^A
+% \changes{v2.9p}{2003/06/28}{to \cs{parfillskip} to \cs{fill}}
+% \changes{v2.9q}{2004/03/24}{same braces like \cs{@@makechapterhead}}
+% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} replaced by
+% \cs{raggedsection}}
+% \changes{v3.18}{2015/05/22}{added}
+% \changes{v3.19}{2015/08/02}{same changes like \cs{scr@@makechapterhead}}
+% \changes{v3.20}{2015/12/23}{setting \cs{parfillskip} to \texttt{\cs{z@} plus
+% 1fil}}
+% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} fixed}
+% \changes{v3.26}{2018/09/20}{no absolute of \opt{afterskip}}
+% Macros
+% \begin{quote}\raggedright
+% \cs{scr@makeschapterhead}\marg{chapter command name}\marg{heading}\\
+% \cs{scr@@makeschapterhead}\marg{chapter command name}\marg{heading}
+% \end{quote}
+% are used inside the definition of style \texttt{chapter} and replace
+% \cs{@makeschapterhead} resp. \cs{@@makeschapterhead} there. So they have one
+% more argument than \cs{@makeschapterhead} of the standard classes.
% \begin{macrocode}
+\newcommand*{\scr@makeschapterhead}[2]{%
+ \use@chapter@o@preamble{#1}%
+ \@nameuse{@@makes#1head}{#2}%
+ \use@preamble{#1@u}%
+}
\newcommand*{\scr@@makeschapterhead}[2]{%
+% \end{macrocode}
+% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} if positive
+% \opt{beforeskip}}
+% \changes{v3.26}{2018/09/18}{supporting \opt{afterindent}}
+% This is a simplified version of \cs{scr@@makechapterhead}.
+% \begin{macrocode}
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
\csname scr@#1@afterindent\endcsname
{\@afterindenttrue}{\@afterindentfalse}{%
@@ -5264,29 +5235,22 @@
\chapterheadendvskip
}
% \end{macrocode}
-% \end{macro}%^^A \scr@@makeschapterhead
-%
-% \begin{macro}{\chapterlinesformat}
-% \changes{v3.19}{2015/08/02}{neue Anweisung}
-% \begin{macro}{\chapterlineswithprefixformat}
-% \changes{v3.19}{2015/08/02}{neue Anweisung}
-% Diese Anweisung definiert das Format der eigentlichen Ãœberschriften im Stil
-% \texttt{chapter}, wenn mit Ãœberschriftenzeilen gearbeitet
-% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die
-% Argumente sind:
-% \begin{description}
-% \item[\meta{Befehlsname} --] der Name der Gliederungsebene, normalerweise
-% \texttt{chapter}.
-% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
-% Gliederungsnummer (bei \cs{chapterlineswithprefixformat} einschließlich
-% des nachfolgenden vertikalen Abstands) oder leer, falls keine
-% Gliederungsnummer auszugeben ist.
-% \item[\meta{Text} --] der Text der Ãœberschrift.
-% \end{description}
-% Der Anwender ist selbst verantwortlich, dass innerhalb der Ãœberschrift kein
-% Seitenumbruch erfolgen kann. Nach der Ãœberschrift wird jedoch zwangsweise
-% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem
-% internen Absatz abgeschlossen wird.
+% \end{macro}^^A \scr@@makeschapterhead
+% \end{macro}^^A \scr@makeschapterhead
+%
+% \begin{command}{\chapterlinesformat,\chapterlineswithprefixformat}
+% \changes{v3.19}{2015/08/02}{added}
+% Commands
+% \begin{quote}\raggedright
+% \cs{chapterlinesformat}\marg{command name}\marg{number}\marg{text}\\
+% \cs{chapterlineswithprefixformat}\marg{command name}\marg{number}\marg{text}
+% \end{quote}
+% are used to print a chapter heading either a free standing one or a free
+% stranding one with prefix line. \meta{number} is the completely formatted
+% prefix line inclusive the vertical distance below. The \meta{text} is the
+% text of the heading also formatted and with final \cs{@@par}. But if the
+% user used more paragraphs than this is final one, the user is responsible to
+% prevent page breaks!
% \begin{macrocode}
\newcommand{\chapterlinesformat}[3]{%
\@hangfrom{#2}{#3}%
@@ -5295,20 +5259,16 @@
#2#3%
}
% \end{macrocode}
-% \end{macro}%^^A \chapterlineswithprefixformat
-% \end{macro}%^^A \chapterlinesformat
+% \end{command}^^A \chapterlinesformat,\chapterlineswithprefixformat
%
% \begin{macro}{\use@chapter@o@preamble}
-% \changes{v3.15}{2014/12/08}{Anpassung an geänderte Abstandsbehandlung}%^^A
-% \changes{v3.15a}{2015/02/02}{Korrektur, zur Verhinderung falscher
-% \texttt{overfull \cs{vbox}} Meldungen}%^^A
-% \changes{v3.18}{2015/05/20}{Verwendung befehlsabhängiger Abstände und
-% Warnungen}%^^A
-% \changes{v3.18}{2015/05/22}{Bekommt ein Argument und setzt die Prämabel
-% der Anweisung nicht des Stils}%^^A
-% Das Makro wird benötigt, weil das Setzen der oberen Präambel etwas
-% mehr Aufwand bedeutet. Die Anweisung spart Platz, da sie zweimal
-% verwendet wird.
+% \changes{v3.15}{2014/12/08}{distances adapted}
+% \changes{v3.15a}{2015/02/02}{avoiding \texttt{overfull \cs{vbox}}}
+% \changes{v3.18}{2015/05/20}{using command depending distances and warnings}
+% \changes{v3.18}{2015/05/22}{has an argument and prints the preamble of the
+% command instead of the style}
+% Used by \cs{scr@makechapterhead} and \cs{scr@makeschapterhead} to set the
+% preamble above chapter headings.
% \begin{macrocode}
\newcommand*{\use@chapter@o@preamble}[1]{%
{%
@@ -5362,22 +5322,32 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \use@chapter@o@preamble
-% \end{macro}%^^A \scr@startchapter
+% \end{macro}^^A \use@chapter@o@preamble
+% \end{macro}^^A \scr@startchapter
%
-% \begin{macro}{\addchaptertocentry}
-% \changes{v3.08}{2010/11/01}{Neu}%^^A
-% \changes{v3.12}{2013/09/24}{Behandlung von \cs{if@chaptertolists} hier}%^^A
-% \changes{v3.12}{2013/09/24}{Verwendung von \cs{addxcontentsline}}%^^A
+% \begin{command}{\addchaptertocentry}
+% \changes{v3.08}{2010/11/01}{added}
+% \changes{v3.12}{2013/09/24}{support for \cs{if@chaptertolists}}
+% \changes{v3.12}{2013/09/24}{using\cs{addxcontentsline}}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
-% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{chapter}
-% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das
-% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht
-% nummerierten Kapiteln leer. Das zweite Argument ist der Überschriftstext für
-% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach
-% umdefiniert werden. Verwendet wird hier die Standardanweisung für
-% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist:
+% \cs{Iftocfeature}}
+% We do not use \cs{addcontentsline} directly for the entries to the table of
+% contents. Using
+% \begin{quote}
+% \cs{addchaptertocentry}\marg{number}\marg{text}
+% \end{quote}
+% allows easy manipulation of such entries and additional actions. If the
+% \meta{number} is completely empty no number should be used. Internally the
+% generic \cs{addtocentrydefault} it used, which uses \cs{nonumberline}
+% instead of \cs{numberline} in this case. See \file{scrkernel-listsof.dtx}
+% for more information.
+% \begin{description}
+% \item[ToDo:] Here we also do the entries to other directories. But we have
+% also code for this in \cs{scr@@startchapter} at least for the vertical
+% space. Shouldn't we combine both places to one place? And shouldn't this
+% be done here only, because of handling of user calls of
+% \cs{addchaptertocentry}?
+% \end{description}
% \begin{macrocode}
\newcommand*{\addchaptertocentry}[2]{%
\addtocentrydefault{chapter}{#1}{#2}%
@@ -5391,130 +5361,67 @@
\fi
}
% \end{macrocode}
-% \end{macro}%^^A \addchaptertocentry
-%
-% \begin{macro}{\@chapter}
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
-% und \cs{scr@@startchapter}}%^^A
-% \begin{macro}{\@makechapterhead}
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
-% und \cs{scr@makechapterhead}}%^^A
-% \begin{macro}{\@@makechapterhead}
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
-% und \cs{scr@@makechapterhead}}%^^A
-% \begin{macro}{\@schapter}
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
-% und \cs{scr@@startschapter}}%^^A
-% \begin{macro}{\@makeschapterhead}
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
-% und \cs{scr@makeschapterhead}}%^^A
-% \begin{macro}{\@@makeschapterhead}
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
-% und \cs{scr@@makeschapterhead}}%^^A
-% \begin{macro}{\setchapterpreamble}
-% \changes{v2.7b}{2001/01/05}{neu}%^^A
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}}%^^A
-% \begin{macro}{\chapter@u@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}}%^^A
-% \begin{macro}{\chapter@o@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
-% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}}%^^A
-% All diese Anweisungen wurden in früheren Versionen von \KOMAScript{}
-% explizit definiert. Nun werden sie nur noch indirekt über
-% \cs{scr@dsc@def@style@chapter@command} definiert und verwenden dabei andere
-% interne Anweisungen als früher. Deshalb funktionieren ggf. das Patchen mit
-% \textsf{etoolbox}, \textsf{xpatch} und ähnlichen Paketen nicht mehr. Das ist
-% der Preis für die neuen Möglichkeiten.
-% \end{macro}%^^A \chapter@o@preamble
-% \end{macro}%^^A \chapter@u@preamble
-% \end{macro}%^^A \setchapterpreamble
-% \end{macro}%^^A \@@makeschapterhead
-% \end{macro}%^^A \@makeschapterhead
-% \end{macro}%^^A \@schapter
-% \end{macro}%^^A \@@makechapterhead
-% \end{macro}%^^A \@makechapterhead
-% \end{macro}%^^A \@chapter
-%
-% \begin{macro}{\addchap}
-% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef} ersetzt}%^^A
-% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} durch
-% \cs{addcontentsline} ersetzt}%^^A
-% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} durch
-% \cs{@makeschapterhead} ersetzt}%^^A
-% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} durch
-% \cs{@afterheading} ersetzt}%^^A
-% \changes{v2.1a}{1994/10/29}{Argument von \cs{chaptermark}%^^A
-% entfernt bei \textsf{scrbook}}%^^A
-% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
-% \cs{sectionmark} ersetzt}%^^A
-% \changes{v2.2b}{1995/03/20}{\cs{chaptermark} durch \cs{@mkboth}
-% ersetzt}%^^A
-% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
-% \texttt{plain}}%^^A
-% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere
-% float-Verzeichnisse mit hyperref}%^^A
-% \changes{v3.01}{2008/11/13}{Verwendung von
-% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}%^^A
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}%^^A
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}%^^A
-% \changes{v3.18}{2015/05/22}{Komplett neu definiert}%^^A
-% \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den
-% zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei
-% um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der
-% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis
-% erfolgt (nicht in der Stern-Variante).
-%
-% Die Definition von \cs{addcap} sah bis zu Version 2.7 so aus:
-% \begin{verbatim}
-% \newcommand\addchap{\if@openright\cleardoublepage\else\clearpage\fi
-% \thispagestyle{plain}%
-% \global\@topnum\z@
-% \@afterindentfalse
-% \secdef\@addchap\@saddchap}
-% \def\@addchap[#1]#2{\typeout{#2}
-% \addcontentsline{toc}{chapter}{#1}
-% \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi
-% \addtocontents{lof}{\protect\addvspace{10\p@}}%
-% \addtocontents{lot}{\protect\addvspace{10\p@}}%
-% \if@twocolumn
-% \@topnewpage[\@makeschapterhead{#2}]%
-% \else
-% \@makeschapterhead{#2}%
-% \@afterheading
-% \fi}
-% \def\@saddchap#1{\@mkboth{}{}
-% \if@twocolumn
-% \@topnewpage[\@makeschapterhead{#1}]%
-% \else
-% \@makeschapterhead{#1}%
-% \@afterheading
-% \fi}
-% \end{verbatim}\vspace{-\baselineskip}
-% Dies führte jedoch zu Problemen im Zusammenhang mit
-% \textsf{hyperref}, da hierbei keine korrekten Links erzeugt
-% werden. Mit dem \texttt{hypertex}-Treiber von \textsf{hyperref}
-% bis Version 6.71a werden auch in der neuen Implementierung keine
-% korrekten Links erzeugt. Dies ist jedoch ein Bug in jenem
-% Treiber. Mit neuen Versionen tritt das Problem nicht mehr auf.
-% Deshalb wurde der Code wie folgt vereinfacht. Von wesentlicher
-% Bedeutung ist dabei der Aufruf von \cs{chapter*}, da in
-% \texttt{hpdftex.def} das interne Makro \cs{@schapter} so umdefiniert
-% wird, dass ein korrekter Link erzeugt wird.
+% \end{command}^^A \addchaptertocentry
+%
+% \begin{macro}{\@chapter,\@makechapterhead,\@@makechapterhead,
+% \@schapter,\@makeschapterhead,\@@makeschapterhead}
+% \changes{v3.18}{2015/05/22}{indirect by \cs{DeclareSectionCommand}}
+% \begin{command}{\setchapterpreamble}
+% \changes{v2.7b}{2001/01/05}{added}
+% \changes{v3.18}{2015/05/22}{indirect by \cs{DeclareSectionCommand}}
+% \begin{macro}{\chapter@u@preamble,\chapter@o@preamble}
+% \changes{v2.8p}{2001/09/25}{added}
+% \changes{v3.18}{2015/05/22}{indirect by \cs{DeclareSectionCommand}}
+% All these commands and macros are not defined explicitly but by using
+% \cs{DeclareSectionCommand} later. See also
+% \cs{scr@dsc@def@style@chapter@command} and \cs{setchapterpreamble}.
+% \end{macro}^^A \chapter@u@preamble,\chapter@o@preamble
+% \end{command}^^A \setchapterpreamble
+% \end{macro}^^A \@chapter … \@@makeschapterhead
+%
+% \begin{command}{\addchap}
+% \changes{v2.0e}{1994/08/10}{\cs{sectdef} replaced by h \cs{secdef}}
+% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} replaced by
+% \cs{addcontentsline}}
+% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} replaced by
+% \cs{@makeschapterhead}}
+% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} replaced by
+% \cs{@afterheading}}
+% \changes{v2.1a}{1994/10/29}{argument of \cs{chaptermark} removed from
+% \cls*{scrbook}}
+% \changes{v2.0e}{1994/10/12}{several \cs{markboth} replaced by
+% \cs{sectionmark}}
+% \changes{v2.2b}{1995/03/20}{several \cs{chaptermark} replaced by
+% \cs{@mkboth}}
+% \changes{v2.8d}{2001/07/05}{using \cs{chapterpagestyle}}
+% \changes{v3.08}{2010/11/01}{using \cs{addchaptertocentry}}
+% \changes{v3.10}{2011/08/30}{extended optional argument}
+% \changes{v3.13a}{2014/09/11}{using \cs{SecDef}}
+% \changes{v3.18}{2015/05/22}{redefinition}
% \begin{macro}{\@addchap}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}%^^A
-% \changes{v3.17}{2015/04/20}{\cs{scr@ds@head} in \cs{addchapmark}
-% expandieren}%^^A
-% \changes{v3.18}{2015/05/22}{Komplett neu definiert}%^^A
+% \changes{v3.12}{2013/02/26}{using \cs{addchapmark}}
+% \changes{v3.17}{2015/04/20}{expanding \cs{scr@ds@head} in \cs{addchapmark}}
+% \changes{v3.18}{2015/05/22}{redefinition}
% \begin{macro}{\@saddchap}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}%^^A
-% \changes{v3.18}{2015/05/22}{Komplett neu definiert}%^^A
-% Seit \KOMAScript~3.18 wurden die Definitionen noch einmal deutlich
-% vereinfacht. Deshalb wird nun auch nur noch für \cs{addchap*} die neue
-% Anweisung \cs{addchapmark} benötigt. Bei \cs{addchap} geht es hingegen
-% einfach über \cs{chaptermark} innerhalb von \cs{chapter}.
+% \changes{v3.12}{2013/02/26}{using \cs{addchapmark}}
+% \changes{v3.18}{2015/05/22}{redefinition}
+% Since \KOMAScript{} 3.18 using
+% \begin{quote}
+% \cs{addchap}\oarg{head or ToC entry}\marg{heading}
+% \end{quote}
+% is very similar to
+% |\chapter[nonumber=true,…]{…}| but also works if the extended optional
+% argument is not activated. And
+% \begin{quote}
+% \cs{addchap*}\marg{heading}
+% \end{quote}
+% is just a \cs{chapter*}\marg{heading} with additional |\addchapmark{}| to
+% empty the running head.
+% \begin{description}
+% \item[Note:] Because of simply manipulating \cnt{secnumdepth} this should
+% also work with packages like \pkg{hyperref} as long as they support
+% chapters without numbering.
+% \end{description}
% \begin{macrocode}
\newcommand\addchap{%
\SecDef\@addchap\@saddchap
@@ -5535,20 +5442,19 @@
\addchapmark{}%
}%
% \end{macrocode}
-% In \texttt{hyperref} bis Version 6.71a ist ein dicker Bug. In
-% verschiedenen \texttt{def}-Dateien wird dort das \emph{interne}
-% \KOMAScript-Makro \cs{@addchap} umdefiniert, ohne sicherzustellen,
-% dass das Makro auch noch so aussieht, wie man das erwartet hat. Die
-% sauberste Lösung wäre sicher gewesen dort \cs{@addchap} nur zu
-% ergänzen, so wie man das auch bei \cs{@schapter} gemacht hatte. Ab
-% Version 6.71b ist dieser Bug behoben. Damit ich nicht eines Fehlers
-% verdächtigt werde, wird ggf. eine entsprechende Meldung ausgegeben.
-% \changes{v2.7e}{2001/04/16}{fehlende, schließende Klammer
-% ergänzt}%^^A
-% \changes{v2.7f}{2001/04/17}{fehlendes Klammerpaar ergänzt}%^^A
-% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der
-% \textsf{hyperref}-Version verwendet}%^^A
-% \changes{v3.27a}{2019/11/11}{Meldung korrigiert}%^^A
+% \changes{v2.7e}{2001/04/16}{braces fixed}
+% \changes{v2.7f}{2001/04/17}{braces fixed}
+% \changes{v2.8q}{2001/11/17}{using \cs{AfterPackage} to test for
+% \pkg{hyperref} version}
+% \changes{v3.27a}{2019/11/11}{warning fixed}
+% \begin{description}
+% \item[ToDo:] Unfortunately \pkg{hyperref} until version 6.71a has a big fat
+% bug. It redefines the internal \KOMAScript{} macro \cs{@addchap} without
+% testing the definition. From version 6.71b this is done only, if a very
+% old \KOMAScript{} is used. However, I would prefer removing all such code
+% from \pkg{hyperref}. Currently we warn, if such an old \pkg{hyperref} is
+% used. But this will be removed in future.
+% \end{description}
% \begin{macrocode}
%<*book>
\AfterPackage{hyperref}{%
@@ -5564,103 +5470,107 @@
%</book>
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@saddchap
-% \end{macro}%^^A \@addchap
-% \end{macro}%^^A \addchap
+% \end{macro}^^A \@saddchap
+% \end{macro}^^A \@addchap
+% \end{command}^^A \addchap
%
%
% \begin{macro}{\l@chapter}
-% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}%^^A
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
-% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}%^^A
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}%^^A
-% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
-% Element \texttt{chapterentry} ersetzt}%^^A
-% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird
-% verwendet}%^^A
-% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
-% Einträge zu ermöglichen}%^^A
-% \changes{v3.15}{2014/12/22}{Verwendung von \cs{chaptertocdepth} und
-% \cs{scr@chapter@tocnumwidth}}%^^A
-% \changes{v3.15}{2014/12/10}{Verwendung von \cs{addvspace} statt \cs{vskip}
-% für den Abstand am Anfang}%^^A
-% \changes{v3.20}{2015/10/06}{überführt in Verzeichnisstil}%^^A
-% Für die Definition des Kapiteleintrags ins Inhaltsverzeichnis werden einige
-% Parameter von \cs{DeclareSectionCommand} definiert und teilweise
-% verwendet. Damit kann man dann zumindest einige Änderungen mit
-% \cs{DeclareSectionCommand} vornehmen, allerdings noch keine komplette
-% Neugestaltung des Eintrags erreichen.
+% \changes{v2.9k}{2003/01/02}{supporting option \opt{tocleft}}
+% \changes{v2.96b}{2006/11/30}{prevent page break between chapter entry and
+% parent}
+% \changes{v2.96b}{2006/11/30}{prevent page break between chapter entry and
+% child}
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont} replaced by font element
+% \fnt{chapterentry}}
+% \changes{v2.97c}{2007/06/21}{using font element
+% \fnt{chapterentrypagenumber}}
+% \changes{v2.97c}{2007/06/21}{re-implemented to support left aligned entries}
+% \changes{v3.15}{2014/12/22}{using \cs{chaptertocdepth} and
+% \cs{scr@chapter@tocnumwidth}}
+% \changes{v3.15}{2014/12/10}{initial skip with \cs{addvspace} instead of
+% \cs{vskip}}
+% \changes{v3.20}{2015/10/06}{re-implemented using ToC styles}
% \begin{macro}{\scr@chapter@tocindent}
-% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}%^^A
-% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \changes{v3.20}{2015/11/06}{wird nun auch verwendet}%^^A
-% Der Einzug des Eintrags noch vor der Nummer.
-% \end{macro}%^^A \scr@chapter@tocindent
+% \changes{v3.15}{2014/12/02}{added}
+% \changes{v3.18}{2015/05/20}{indirect definition by \cs{DeclareSectionCommand}}
+% \changes{v3.20}{2015/11/06}{really used}
+% \end{macro}^^A \scr@chapter@tocindent
% \begin{macro}{\scr@chapter@tocnumwidth}
-% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}%^^A
-% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% Die Breite der Nummer des Eintrags wird tatsächlich verwendet.
+% \changes{v3.15}{2014/12/02}{added}
+% \changes{v3.18}{2015/05/20}{indirect definition by \cs{DeclareSectionCommand}}
% \end{macro}
% \begin{option}{chapterentrydots}
-% \changes{v3.15}{2014/12/10}{Neu}%^^A
-% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
-% Seitenzahl in den Kapiteleinträgen einschalten.
+% \changes{v3.15}{2014/12/10}{added}
+% Option
+% \begin{quote}
+% \opt{chapterentrydots=\meta{boolean}}
+% \end{quote}
+% is the main difference of ToC entry style \texttt{chapter} to ToC entry
+% style \texttt{tocline}. It activates the dots between the entry text and the
+% page number.
+% \begin{description}
+% \item[ToDo:] This should be moved to \file{scrkernel-tocstyle.dtx}.
+% \end{description}
% \begin{macrocode}
%<*option>
\KOMA@ifkey{chapterentrydots}{@chapterentrywithdots}
%</option>
% \end{macrocode}
-% \end{option}%^^A chapterentrydots
-% \begin{macro}{\raggedchapterentry}
-% \changes{v2.97c}{2007/06/21}{neue Anweisung}%^^A
-% \changes{v3.20}{2016/02/23}{wird nicht mehr verwendet}%^^A
-% \changes{v3.21}{2016/06/06}{siehe \texttt{scrkernel-tocstyle.dtx},
-% Stil \texttt{tocline}, Eigenschaft \texttt{raggedentrytext}}%^^A
-% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis.
+% \end{option}^^A chapterentrydots
+% \begin{command}{\raggedchapterentry}
+% \changes{v2.97c}{2007/06/21}{added}
+% \changes{v3.20}{2016/02/23}{removed}
+% \changes{v3.21}{2016/06/06}{see \file{scrkernel-tocstyle.dtx},
+% style \texttt{tocline}, option \opt{raggedentrytext}}
+% The initial setting of option \opt{raggedtext} of chapter ToC entry style
+% \texttt{tocline} resp. \texttt{chapter}.
+% \begin{description}
+% \item[ToDo:] Do we really need this definition? Every definition but
+% \cs{raggedright} results in justified text. So not defining it would be
+% almost the same. It just would not reserve the macro. But this could be
+% done in \file{scrkernel-tocstyle.dtx}.
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\raggedchapterentry}{}
% \end{macrocode}
-% \end{macro}%^^A \raggedchapterentry
-% \end{macro}%^^A \l@chapter
+% \end{command}^^A \raggedchapterentry
+% \end{macro}^^A \l@chapter
%
% \begin{macro}{\l@chapteratlist}
-% \changes{v2.96a}{2006/12/03}{neues Macro}%^^A
-% Dieses Makro wird ggf. für die Kapiteleinträge in den Listen der
-% Gleitumgebungen verwendet. Zunächst einmal wird hier dasselbe verwendet, wie
-% für die Kapiteleinträge ins Inhaltsverzeichnis.
+% \changes{v2.96a}{2006/12/03}{added}
+% This is used for chapter entries to other directories by the table of
+% contents. By default it uses \cs{l@chapter}. But users can redefine it
+% using, i.e., \cs{DeclareTOCStyleEntry}. However in this case they have to
+% setup all the attributes/options on their own.
% \begin{macrocode}
\newcommand*{\l@chapteratlist}{\l@chapter}
% \end{macrocode}
-% \end{macro}%^^A \l@chapteratlist
-%
-% \begin{Counter}{chapter}
-% \begin{macro}{\thechapter}
-% \begin{macro}{\chapterformat}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}%^^A
-% \changes{v2.7}{2000/01/03}{einfaches Leerzeichen durch \cs{enskip}%^^A
-% ersetzt}%^^A
-% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}%^^A
-% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
-% \cs{chapappifprefix}} ^^A
-% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu
-% ermöglichen}%^^A
-% \changes{v3.17}{2015/03/08}{\cs{enskip} not in prefix line mode}%^^A
-% \begin{macro}{\chaptermarkformat}
-% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer erhöht}%^^A
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}%^^A
-% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}%^^A
-% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
-% \cs{chapappifprefix}}%^^A
-% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die
-% Kompatibilität mit Spanisch zu verbessern}%^^A
-% Jede Gliederungsebene benötigt einen Zähler für die
-% Gliederungsnummer und eine Darstellung des Zählers
-% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in
-% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine
-% Formatierung des Zählers in der Kopfzeile
-% (\texttt{\bslash\dots markformat}) benötigt.
+% \end{macro}^^A \l@chapteratlist
+%
+% \begin{counter}{chapter}
+% \begin{command}{\thechapter}
+% \begin{command}{\chapterformat}
+% \changes{v2.3c}{1995/08/06}{auto dot feature}
+% \changes{v2.7}{2000/01/03}{white space replaced by \cs{enskip}}
+% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} added}
+% \changes{v2.8o}{2001/09/19}{\cs{chapappifprefix} replaced by
+% \cs{chapappifchapterprefix}}
+% \changes{v2.96a}{2006/12/02}{\cs{mbox} added}
+% \changes{v3.17}{2015/03/08}{\cs{enskip} not in prefix line mode}
+% \begin{command}{\chaptermarkformat}
+% \changes{v2.3a}{1995/07/08}{space after chapter number increased}
+% \changes{v2.3c}{1995/08/06}{auto dot feature}
+% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} added}
+% \changes{v2.8o}{2001/09/19}{\cs{chapappifprefix} replaced by
+% \cs{chapappifchapterprefix}}
+% \changes{v3.03a}{2009/04/03}{tilde replaced by \cs{nobreakspace} for better
+% \pkg{babel-spanish} support}
+% The counter would also be defined by \cs{DeclareSectionCommand}. But because
+% of handling \cs{frontmatter} and \cs{backmatter} and prefix lines we cannot
+% use the default definition of the formatting. So we define it already before
+% calling \cs{DeclareSectionCommand} for \cs{chapter}.
% \begin{macrocode}
\newcounter{chapter}
\renewcommand*{\thechapter}{\@arabic\c@chapter}
@@ -5671,61 +5581,74 @@
\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }%
\thechapter\autodot\enskip}
% \end{macrocode}
-% \end{macro}%^^A \chaptermarkformat
-% \end{macro}%^^A \chapterformat
-% \end{macro}%^^A \thechapter
-% \end{Counter}%^^A chapter
+% \end{command}^^A \chaptermarkformat
+% \end{command}^^A \chapterformat
+% \end{command}^^A \thechapter
+% \end{counter}^^A chapter
%
%
-% \begin{macro}{\chaptername}
-% Name der Gliederungsebenen \cs{chapter}.
+% \begin{command}{\chaptername}
+% \changes{v3.36}{2022/03/15}{explicit definition for English languages}
+% The name of a chapter, e.g., used for the prefix line and maybe for the ToC
+% entry.
% \begin{macrocode}
\newcommand*\chaptername{Chapter}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\chaptername{Chapter}
% \end{macrocode}
-% \end{macro}%^^A \chaptername
+% \end{command}^^A \chaptername
%
%
-% \begin{macro}{\appendixname}
-% Der Name des Anhangs.
+% \begin{command}{\appendixname}
+% \changes{v3.36}{2022/03/15}{explicit definition for English languages}
+% The same for appendix chapters.
% \begin{macrocode}
\newcommand*\appendixname{Appendix}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\appendixname{Appendix}
% \end{macrocode}
-% \end{macro}%^^A \appendixname
-%
-%
-% \begin{macro}{\chapappifprefix}
-% \changes{v2.8}{2001/06/15}{neu}%^^A
-% \changes{v2.8o}{2001/09/19}{obsolet}%^^A
-% \begin{macro}{\chapappifchapterprefix}
-% \changes{v2.8o}{2001/09/19}{neu}%^^A
-% \changes{v2.8o}{2001/09/19}{Argument ist nicht optional}%^^A
-% \changes{v3.18}{2015/06/09}{verwendet \cs{IfChapterUsePrefixLine}}%^^A
-% \begin{macro}{\IfChapterUsesPrefixLine}
-% \changes{v3.18}{2015/06/09}{neu (intern)}
-% \begin{macro}{\chapapp}
-% \changes{v2.8}{2001/06/15}{neu}%^^A
-% Das in \cs{chapterformat} verwendete Makro
-% \cs{chapappifchapterprefix} setzt abhängig von \cs{if@chapterprefix}
-% noch das Makro \cs{chapapp} gefolgt vom obliatorischen Argument.
-% \cs{chapapp} macht \cs{@chapapp} auf Anwenderebene verfügbar. Der
-% Vorteil des neuen \cs{chapappifchapterprefix} gegenüber dem alten
-% \cs{chapappifprefix} ist, dass nun beim Umdefinieren von
-% \cs{chapterformat} und \cs{chaptermarkformat} wieder
-% \cs{renewcommand} verwendet werden kann und beim Umschalten in den
-% Anhang die Kopfzeile korrekt ist, weil das Makro nun nicht mehr
-% geschützt ist, sondern direkt expandiert.
-% \begin{macrocode}
-\newcommand*{\chapappifprefix}[1][]{%
- \ClassWarning{\KOMAClassName}{%
- Please don't use obsolete command
- \string\chapappifprefix.\MessageBreak
- The new command \string\chapappifchapterprefix\space has
- an\MessageBreak
- obligatory instead of an optional argument. Use that\MessageBreak
- new command%
- }%
- \chapappifchapterprefix{#1}%
-}
+% \end{command}^^A \appendixname
+%
+%
+% \begin{command}{\chapappifprefix}
+% \changes{v2.8}{2001/06/15}{added}
+% \changes{v2.8o}{2001/09/19}{deprecated}
+% \changes{v3.36}{2022/03/18}{removed}
+% \begin{description}
+% \item[Note:] Command \cs{chapappifprefix} has been removed in \KOMAScript{}
+% v3.36, because it is deprecated from \KOMAScript{} v2.8o and there never has
+% been a compatibility switch for versions before \KOMAScript{} v2.9.
+% \end{description}
+% \end{command}^^A \chapappifprefix
+%
+%
+% \begin{command}{\chapappifchapterprefix}
+% \changes{v2.8o}{2001/09/19}{added}
+% \changes{v3.18}{2015/06/09}{using \cs{IfChapterUsePrefixLine}}
+% \begin{command}{\IfChapterUsesPrefixLine}
+% \changes{v3.18}{2015/06/09}{added}
+% \begin{command}{\chapapp}
+% \changes{v2.8}{2001/06/15}{added}
+% \begin{macro}{\@chapapp}
+% The \LaTeX{} standard classes provide an internal macro \cs{@chapapp} that
+% is either \cs{chaptername} or \cs{appendixname} depending on whether we are
+% inside or outside the appendix. For compatibility with lots of packages
+% \KOMAScript{} does provide this too. But for the user level this is
+% cumbersome. So \KOMAScript{} does also provide a \emph{read only specified}
+% user command \cs{chapapp}. \KOMAScript{} itself uses \cs{chapapp} inside
+% \begin{quote}
+% \cs{chapappifchapterprefix}\marg{then string}
+% \end{quote}
+% that outputs \cs{then string} prefixed by \cs{chapapp} only, if
+% \opt{chapterprefix} (resp. \opt{headings=twolinechapter}) has been activated
+% and therefore a chapter prefix line has to be used. A more general version
+% \cs{chapterifchapterprefix} is
+% \begin{quote}
+% \cs{IfChapterUsesPrefixLine}\marg{then code}\marg{else code}
+% \end{quote}
+% that executes \cs{then code} if a chapter prefix line has to be used and
+% \cs{else code} otherwise (both without extra prefix).
+% \begin{macrocode}
\newcommand*{\chapappifchapterprefix}[1]{%
\IfChapterUsesPrefixLine{\chapapp#1}{}%
}
@@ -5733,38 +5656,37 @@
\if@chapterprefix\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
}
\newcommand*{\chapapp}{\@chapapp}
-% \end{macrocode}
-% \begin{macro}{\@chapapp}
-% Dieses Makro enthält den Kapitelname (\cs{chaptername}), der sich im
-% Anhang üblicherweise ändert (\cs{appendixname}).
-% \begin{macrocode}
\newcommand*\@chapapp{\chaptername}
% \end{macrocode}
-% \end{macro}%^^A \@chapapp
-% \end{macro}%^^A \chapapp
-% \end{macro}%^^A \IfChapterUsePrefixLine
-% \end{macro}%^^A \chapappifchapterprefix
-% \end{macro}%^^A \chapappifprefix
+% \end{macro}^^A \@chapapp
+% \end{command}^^A \chapapp
+% \end{command}^^A \IfChapterUsePrefixLine
+% \end{command}^^A \chapappifchapterprefix
%
%
-% \begin{macro}{\chaptermark}
-% Da \cs{chapter} nicht mit Hilfe von \cs{@startsection} definiert
-% wird, wird auch \cs{chaptermark} nicht automatisch definiert. Es
-% wird aber in den Seitenstilen benötigt bzw. umdefiniert. Also hier
-% vorsorglich eine Dummy-Definition:
+% \begin{command}{\chaptermark}
+% Before selecting a page style with automatic running head, \cs{chapter}
+% should simply not change the left or right mark.
+% \begin{description}
+% \item[ToDo:] Do we really need this or would the later
+% \cs{DeclareSectionCommand} be enough to do the initial definition?
+% \end{description}
% \begin{macrocode}
\newcommand*\chaptermark[1]{}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\addchapmark}
-% \changes{v3.12}{2013/03/26}{neue Anweisung}%^^A
-% Für \cs{addchapmark} gilt dies hingegen nicht. Das wird nicht von den Stilen
-% definiert, sondern direkt mit der gewünschten Definition
-% initialisiert. Bitte nicht davon verwirren lassen, dass \cs{if@mainmatter}
-% hier auch von \textsf{scrreprt} definiert wird. Das ist Absicht und
-% vereinfacht dem einen oder anderen Paket oder Benutzer vielleicht die
-% Arbeit.
+% \begin{command}{\addchapmark}
+% \changes{v3.12}{2013/03/26}{added}
+% \cs{addchap} and marks for running heads are a little bit more
+% complicated. Currently we are using a local redefinition of
+% \cs{if@mainmatter} and setting of \cnt{secnumdept} to switch of numbering
+% and then using \cs{chaptermark}. So the \cs{chaptermark} definition should
+% always respect at least one of these settings.
+% \begin{description}
+% \item[Note:] The ToDo note at \cs{chaptermark} is not relevant for this
+% definition.
+% \end{description}
% \begin{macrocode}
\newcommand*\addchapmark[1]{%
\begingroup
@@ -5775,185 +5697,183 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \addchapmark
+% \end{command}^^A \addchapmark
%
%
-% \begin{macro}{\raggedchapter}
-% \changes{v3.15}{2014/12/09}{neu}%^^A
-% Da das doch recht häufig gewünscht wird, kann man die Ausrichtung der
-% Kapitelüberschrift auch getrennt von der Ausrichtung der übrigen
-% Ãœberschriften einstellen.
+% \begin{command}{\raggedchapter}
+% \changes{v3.15}{2014/12/09}{added}
+% Style \texttt{chapter} does not use \cs{raggedsection} but
+% \cs{raggedchapter}. However, the initial value is \cs{raggedsection}, so a
+% change of \cs{raggedsection} would also change the initial behave of
+% \cs{raggedchapter}. Nevertheless the alignment of chapters in independent
+% from the alignment of sections, if wanted.
% \begin{macrocode}
\newcommand*{\raggedchapter}{\raggedsection}
% \end{macrocode}
-% \end{macro}
-%
+% \end{command}
%
-% \begin{KOMAfont}{chapter}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}%^^A
-% \begin{macro}{\scr@fnt@chapter}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}%^^A
-% \begin{KOMAfont}{chapterprefix}
-% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}%^^A
-% \begin{macro}{\scr@fnt@chapterprefix}
-% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}%^^A
-% \begin{macrocode}
-\newcommand*{\scr@fnt@chapter}{\size@chapter}
-\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix}
-% \end{macrocode}
-% \end{macro}%^^A \scr@fnt@chapterprefix
-% \end{KOMAfont} chapterprefix
-% \end{macro}%^^A \scr@fnt@chapter
-% \end{KOMAfont}%^^A chapter
%
-% \begin{KOMAfont}{chapterentry}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}%^^A
-% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
-% \texttt{disposition} ersetzt}%^^A
-% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis.
+% \begin{fontelement}{chapterentry}
+% \changes{v2.97c}{2007/06/21}{added}
+% \changes{v3.06}{2010/06/09}{font element \fnt{sectioning} replaced by
+% \fnt{disposition}}
+% \cs{chapter} entries to the table of contents initially using
+% \fnt{disposition}, the basic font of all outlines.
% \begin{macrocode}
\newkomafont{chapterentry}{\usekomafont{disposition}}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{chapterentrypagenumber}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}%^^A
-% Schrift für die Seitenzahl des \cs{chapter}-Eintrags im Inhaltsverzeichnis
-% abweichend von \texttt{chapterentry}.
+% \begin{fontelement}{chapterentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{added}
+% The page number of \cs{chapter} entries to the table of contents is
+% initially the same as the entry at whole.
% \begin{macrocode}
\newkomafont{chapterentrypagenumber}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{chapterentrydots}
-% \changes{v3.15}{2014/12/10}{neues Font-Element}%^^A
-% \changes{v3.27}{2019/10/28}{überflüssiges \cs{normalfont} entfernt}%^^A
-% Schrift für die optionalen Pünktchen des \cs{chapter}-Eintrags im
-% Inhaltsverzeichnis abweichend von \texttt{chapterentry} und
-% \cs{normalfont}\cs{normalsize}.
+% \begin{fontelement}{chapterentrydots}
+% \changes{v3.15}{2014/12/10}{added}
+% \changes{v3.27}{2019/10/28}{\cs{normalfont} removed}
+% If the optional dots for \cs{chapter} entries to the table of contents are
+% used, we can change the font of the dots also. It is used for the
+% \texttt{linefill} of \pkg*{tocbasic} ToC entry style \texttt{chapter}, that
+% uses ToC entry style \texttt{tocline} where the line filler is always
+% prefixed by \cs{normalfont}\cs{normalsize}. So the setting is relative to
+% this. The color is relative to the color of \fnt{chapterentry}.
% \begin{macrocode}
\newkomafont{chapterentrydots}{}
%</body>
%</book|report>
-%</class>
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
%
-% \subsection{Abschnitte und Untergliederungen}
+% \subsection{Section, subsections and more}
%
-% Alle Ebenen ab \cs{section} ähneln sich so sehr, dass sie gemeinsam
-% behandelt werden. Lediglich bei \textsf{scrartl} gibt es für \cs{section}
-% selbst noch ein paar Besonderheiten.
+% The outline levels of sections, subsections, subsubsection, paragraphs and
+% subparagraphs are all very similar. There are only some special treatments
+% of sections with \cls*{scrartcl}, because there \cs{section} is a high-level
+% command.
%
-% \begin{macro}{\size@section}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \begin{macro}{\size@subsection}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \begin{macro}{\size@subsubsection}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \begin{macro}{\size@paragraph}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% \begin{macro}{\size@subparagraph}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}%^^A
-% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
-% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{fontelement}{section,subsection,subsubsection,
+% paragraph,subparagraph}
+% \changes{v2.8o}{2001/09/14}{added}
+% Definition of the font elements used by \cs{section}, \cs{subsection},
+% \cs{subsubsection}, \cs{paragraph} and \cs{subparagraph}. The settings are
+% done by option \texttt{headings} later. Everything is prepared before this
+% option is used the first time. The definition of the font element is done
+% manually to stay compatible with old \KOMAScript{} versions using another
+% internal macro than the default of \cs{newkomafont}.
% \begin{macrocode}
-%<*class>
%<*prepare>
\newcommand*{\size@section}{}
+\newcommand*{\scr@fnt@section}{\size@section}
\newcommand*{\size@subsection}{}
+\newcommand*{\scr@fnt@subsection}{\size@subsection}
\newcommand*{\size@subsubsection}{}
+\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection}
\newcommand*{\size@paragraph}{}
+\newcommand*{\scr@fnt@paragraph}{\size@paragraph}
\newcommand*{\size@subparagraph}{}
+\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph}
%</prepare>
% \end{macrocode}
-% \end{macro}%^^A \size@subparagraph
-% \end{macro}%^^A \size@paragraph
-% \end{macro}%^^A \size@subsubsection
-% \end{macro}%^^A \size@subsection
-% \end{macro}%^^A \size@section
+% \end{fontelement}^^A section … subparagraph
%
%
% \begin{macro}{\l@section}
-% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}%^^A
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
-% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}%^^A
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}%^^A
-% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
-% Element \texttt{sectionentry} ersetzt}%^^A
-% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird
-% verwendet}%^^A
-% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
-% Einträge zu ermöglichen}%^^A
-% \changes{v3.15}{2014/11/24}{\cs{sectiontocdepth},
-% \cs{scr@section@tocindent} und \cs{scr@section@tocnumwidth} werden
-% verwendet}%^^A
-% \changes{v3.20}{2015/10/06}{Überführung in Verzeichnisstil}%^^A
-% Bei der Artikel-Klasse folgt die Formatierung für
-% \cs{section}-Einträge, an Stelle der Einträge für \cs{chapter}
-% der Buch- oder der Bericht-Klasse. Bei diesen handelt es sich hier
-% stattdessen um eine normale Ebene.
+% \changes{v2.9k}{2003/01/02}{supporting option \opt{tocleft}}
+% \changes{v2.96b}{2006/11/30}{preventing page break between section entry and
+% parent}
+% \changes{v2.96b}{2006/11/30}{preventing page break between section entry and
+% child}
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont} replaced by font element
+% \fnt{sectionentry}}
+% \changes{v2.97c}{2007/06/21}{using font element
+% \fnt{sectionentrypagenumber}}
+% \changes{v2.97c}{2007/06/21}{re-implemented to support left aligned entries}
+% \changes{v3.15}{2014/11/24}{using \cs{sectiontocdepth},
+% \cs{scr@section@tocindent} and \cs{scr@section@tocnumwidth}}
+% \changes{v3.20}{2015/10/06}{re-implemented using ToC styles}
% \begin{option}{sectionentrydots}
-% \changes{v3.15}{2014/12/10}{Neu}%^^A
-% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
-% Seitenzahl in den Kapiteleinträgen einschalten.
+% \changes{v3.15}{2014/12/10}{added}
+% With \cls*{scrartcl} option
+% \begin{quote}
+% \opt{sectionentrydots=\meta{boolean}}
+% \end{quote}
+% is the main difference of ToC entry style \texttt{section} to ToC entry
+% style \texttt{tocline}. It activates the dots between the entry text and the
+% page number.
+% \begin{description}
+% \item[ToDo:] This should be moved to \file{scrkernel-tocstyle.dtx}.
+% \end{description}
% \begin{macrocode}
%<*article>
%<*option>
\KOMA@ifkey{sectionentrydots}{@sectionentrywithdots}
%</option>
% \end{macrocode}
-% \end{option}%^^A sectionentrydots
-% \begin{macro}{\raggedsectionentry}
-% \changes{v2.97c}{2007/06/21}{neue Anweisung}%^^A
-% \changes{v3.20}{2016/02/23}{nicht mehr verwendet}%^^A
-% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis.
+% \end{option}^^A sectionentrydots
+% \begin{command}{\raggedsectionentry}
+% \changes{v2.97c}{2007/06/21}{added}
+% \changes{v3.20}{2016/02/23}{removed}
+% The initial setting of option \opt{raggedtext} of section ToC entry style
+% \texttt{tocline} resp. \texttt{section}.
+% \begin{description}
+% \item[ToDo:] Do we really need this definition? Every definition but
+% \cs{raggedright} results in justified text. So not defining it would be
+% almost the same. It just would not reserve the macro. But this could be
+% done in \file{scrkernel-tocstyle.dtx}.
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\raggedsectionentry}{}
%</body>
%</article>
% \end{macrocode}
-% \end{macro}%^^A \raggedsectionentry
-% \end{macro}%^^A \l@section
-%
-%
-% \begin{macro}{\addsec}
-% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
-% \cs{sectionmark} ersetzt}%^^A
-% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} durch \cs{@mkboth}
-% ersetzt}%^^A
-% \changes{v2.3h}{1995/01/21}{jetzt auch bei \textsf{scrbook} und
-% \textsf{scrreprt}}%^^A
-% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit
-% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis
-% berücksichtigt werden}%^^A
-% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch
-% \cs{markright} ersetzt}%^^A
-% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere
-% Unterstützung von \textsf{hyperref} geändert}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}%^^A
+% \end{command}^^A \raggedsectionentry
+% \end{macro}^^A \l@section
+%
+%
+% \begin{command}{\addsec}
+% \changes{v2.0e}{1994/10/12}{several \cs{markboth} replaced by
+% \cs{sectionmark}}
+% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} replaced by \cs{@mkboth}}
+% \changes{v2.3h}{1995/01/21}{also available with \cls*{scrbook} and
+% \cls*{scrreprt}}
+% \changes{v2.4g}{1996/11/04}{\cs{section*} moved because of page breaks in
+% the table of contents}
+% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} replaced by conditional
+% \cs{markright}}
+% \changes{v2.7a}{2001/01/04}{supporting \pkg{hyperref}}
+% \changes{v3.13a}{2014/09/11}{using \cs{SecDef}}
% \begin{macro}{\@addsec}
-% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}}%^^A
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}%^^A
-% \changes{v3.18}{2015/05/22}{komplett neu definiert}%^^A
+% \changes{v3.10}{2011/08/30}{using \cs{addsectiontocentry}}
+% \changes{v3.10}{2011/08/30}{extended optional argument}
+% \changes{v3.12}{2013/02/26}{using \cs{addsecmark}}
+% \changes{v3.18}{2015/05/22}{redefinition}
% \begin{macro}{\@saddsec}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}%^^A
-% \changes{v3.17}{2015/04/20}{\cs{scr@ds@head} in \cs{addsecmark}
-% expandieren}%^^A
-% \KOMAScript{} bietet in allen drei Hauptklassen den zusätzlichen
-% Gliederungsbefehl \cs{addsec}. Es handelt sich dabei um einen mit
-% \cs{section*} vergleichbaren Befehl, bei dem jedoch der
-% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis
-% erfolgt (nicht in der Stern-Variante).
-%
-% Mit Version~3.18 wurde \cs{addsec} deutlich vereinfacht. Seither verwendet
-% nur noch \cs{@saddsec} die Anweiung \cs{addsecmark}, während \cs{@addsec}
-% direkt über das \cs{sectionmark} von \cs{section} arbeitet.
+% \changes{v3.12}{2013/02/26}{using \cs{addsecmark}}
+% \changes{v3.17}{2015/04/20}{expanding \cs{scr@ds@head} in \cs{addsecmark}}
+% Since \KOMAScript{} 3.18 using
+% \begin{quote}
+% \cs{addsec}\oarg{head or ToC entry}\marg{heading}
+% \end{quote}
+% is very similar to
+% |\section[nonumber=true,…]{…}| but also works if the extended optional
+% argument is not activated. And
+% \begin{quote}
+% \cs{addsec*}\marg{heading}
+% \end{quote}
+% is just a \cs{section*}\marg{heading} with additional |\addsecmark{}| to
+% empty the running head.
+% \begin{description}
+% \item[Note:] Because of simply manipulating \cnt{secnumdepth} this should
+% also work with packages like \pkg{hyperref} as long as they support
+% sections without numbering.
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand\addsec{\SecDef\@addsec\@saddsec}
@@ -5972,30 +5892,28 @@
\section*{#1}\addsecmark{}%
}
% \end{macrocode}
-% \end{macro}%^^A \@saddsec
-% \end{macro}%^^A \@addsec
-% \end{macro}%^^A \addsec
-%
-%
-% \begin{macro}{\minisec}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}%^^A
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak}%^^A
-% entfernt}%^^A
-% \changes{v3.13a}{2014/08/07}{Absicherung der Abstände bei
-% aufeinanderfolgenden Ãœberschriften entsprechend \cs{@startsection}}%^^A
-% \changes{v3.26}{2018/05/14}{fehlendes \cs{interlinepenalty}\cs{@M}
-% ergänzt}%^^A
-% \begin{KOMAfont}{minisec}
-% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes
-% Fontelement}%^^A
-% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}%^^A
-% In \KOMAScript{} gibt es diese zusätzliche Gliederungsebene, die
-% immer ohne Nummer und ohne Eintrag ins Inhaltsverzeichnis erfolgt.
+% \end{macro}^^A \@saddsec
+% \end{macro}^^A \@addsec
+% \end{command}^^A \addsec
+%
+%
+% \begin{command}{\minisec}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} after \cs{sectfont} added}
+% \changes{v2.9o}{2003/01/31}{\cs{nobreak} after group end}
+% \changes{v2.96a}{2006/11/30}{initial value of \cs{parfillskip} depending on
+% \opt{version}}
+% \changes{v2.96a}{2006/12/03}{not needed \cs{nobreak} removed}
+% \changes{v3.13a}{2014/08/07}{handling of distances of immediate following
+% headings like \cs{@startsection}}
+% \changes{v3.26}{2018/05/14}{missing \cs{interlinepenalty}\cs{@M} added}
+% \begin{fontelement}{minisec}
+% \changes{v2.8o}{2001/09/14}{using font element \fnt{minisec}}
+% \changes{v3.21}{2016/06/12}{missing \cs{nobreak} added}
+% \cs{minisec} is a very special additional outline of \KOMAScript. It is
+% always free standing but without numbering. Something like
+% \cs{sectionlinesformat} is not supported currently. Also entries to the
+% table of contents or marks for an automatic running head are not
+% supported. However a dedicated font element is provided.
% \begin{macrocode}
\newkomafont{minisec}{}
\newcommand\minisec[1]{%
@@ -6020,81 +5938,81 @@
\@afterheading
}
% \end{macrocode}
-% \end{KOMAfont}
-% \end{macro}
-%
-%
-% \begin{macro}{\addsectiontocentry}
-% \changes{v3.10}{2011/08/30}{Neu}%^^A
-% Entsprechend \cs{addparttocentry} und \cs{addchaptertocentry}.
+% \end{fontelement}^^A minisec
+% \end{command}^^A \minisec
+%
+%
+% \begin{command}{\addsectiontocentry,\addsubsectiontocentry,
+% \addsubsubsectiontocentry,
+% \addparagraphtocentry,\addsubparagraphtocentry}
+% \changes{v3.10}{2011/08/30}{added}
+% We do not use \cs{addcontentsline} directly for the entries to the table of
+% contents. Using
+% \begin{quote}\raggedright
+% \cs{addsectiontocentry}\marg{number}\marg{text}\\
+% \cs{addsubsectiontocentry}\marg{number}\marg{text}\\
+% \cs{addsubsubsectiontocentry}\marg{number}\marg{text}\\
+% \cs{addparagraphtocentry}\marg{number}\marg{text}\\
+% \cs{addsubparagraphtocentry}\marg{number}\marg{text}\\
+% \end{quote}
+% allows easy manipulation of such entries and additional actions. If the
+% \meta{number} is completely empty no number should be used. Internally the
+% generic \cs{addtocentrydefault} it used, which uses \cs{nonumberline}
+% instead of \cs{numberline} in this case. See \file{scrkernel-listsof.dtx}
+% for more information.
+% \begin{description}
+% \item[ToDo:] Should this be moved to \file{scrkernel-listsof.dtx} or even to
+% \file{scrkernel-tocstyle.dtx}?
+% \item[ToDo:] Are these really needed or would the implicit definition by the
+% later \cs{DeclareSectionCommand} be enough as it is already used for
+% \cs{addsubsubsectiontocentry}?
+% \end{description}
% \begin{macrocode}
\newcommand*{\addsectiontocentry}[2]{%
\addtocentrydefault{section}{#1}{#2}%
}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addsubsectiontocentry}
-% \changes{v3.10}{2011/08/30}{Neu}%^^A
-% Entsprechend \cs{addparttocentry} usw.
-% \begin{macrocode}
\newcommand*{\addsubsectiontocentry}[2]{%
\addtocentrydefault{subsection}{#1}{#2}%
}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addparagraphtocentry}
-% \changes{v3.10}{2011/08/30}{Neu}%^^A
-% Entsprechend \cs{addparttocentry} usw.
-% \begin{macrocode}
\newcommand*{\addparagraphtocentry}[2]{%
\addtocentrydefault{paragraph}{#1}{#2}%
}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addsubparagraphtocentry}
-% \changes{v3.10}{2011/08/30}{Neu}%^^A
-% Entsprechend \cs{addparttocentry} usw.
-% \begin{macrocode}
\newcommand*{\addsubparagraphtocentry}[2]{%
\addtocentrydefault{subparagraph}{#1}{#2}%
}
% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{Counter}{section}
-% \begin{macro}{\thesection}
-% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}%^^A
-% \changes{v3.03b}{2009/06/09}{\cs{relax} im Kompatibilitätstest durch ein
-% Leerzeichen ersetzt, obwohl das die Wartbarkeit verschlechtert, aber
-% \textsf{hyperref} hat mit dem \cs{relax} ein nicht dokumentieres
-% Problem}%^^A
-% \changes{v3.27}{2019/06/26}{Umstellung auf \cs{scr@v@is@gt}}%^^A
-% \begin{macro}{\sectionmarkformat}
-% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
-% erhöht}%^^A
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}%^^A
-% \begin{Counter}{subsection}
-% \begin{macro}{\thesubsection}
-% \begin{macro}{\subsectionmarkformat}
-% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
-% erhöht}%^^A
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}%^^A
-% \begin{Counter}{subsubsection}
-% \begin{macro}{\thesubsubsection}
-% \begin{Counter}{paragraph}
-% \begin{macro}{\theparagraph}
-% \begin{Counter}{subparagraph}
-% \begin{macro}{\thesubparagraph}
-% Jede Gliederungsebene benötigt einen Zähler für die
-% Gliederungsnummer und eine Darstellung des Zählers
-% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in
-% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine
-% Formatierung des Zählers in der Kopfzeile
-% (\texttt{\bslash\dots markformat}) benötigt.
+% \end{command}
+%
+%
+% \begin{counter}{section}
+% \begin{command}{\thesection}
+% \changes{v2.97e}{2007/11/23}{chapter number prefix only in main matter}
+% \changes{v3.03b}{2009/06/09}{\cs{relax} replaced by white space for better
+% support of \pkg{hyperref}}
+% \changes{v3.27}{2019/06/26}{using \cs{scr@v@is@gt}}
+% \begin{command}{\sectionmarkformat}
+% \changes{v2.3a}{1995/07/08}{space after number increased}
+% \changes{v2.3c}{1995/08/06}{auto dot feature}
+% \begin{counter}{subsection}
+% \begin{command}{\thesubsection}
+% \begin{command}{\subsectionmarkformat}
+% \changes{v2.3a}{1995/07/08}{space after number increased}
+% \changes{v2.3c}{1995/08/06}{auto dot feature}
+% \begin{counter}{subsubsection}
+% \begin{command}{\thesubsubsection}
+% \begin{counter}{paragraph}
+% \begin{command}{\theparagraph}
+% \begin{counter}{subparagraph}
+% \begin{command}{\thesubparagraph}
+% The counter would also be defined by \cs{DeclareSectionCommand}. But because
+% of handling \cs{frontmatter} and \cs{backmatter} and prefix lines we cannot
+% use the default definition of the formatting of \cnt{section}. So we define
+% it already before calling \cs{DeclareSectionCommand} for \cs{section}.
+% \begin{description}
+% \item[ToDo:] Do we really need the explicit definition of \cnt{subsection},
+% \cnt{subsubsection}, \cnt{paragraph}, and \cnt{subparagraph} of would the
+% implicit definition by \cs{DeclareSectionCommand} be enough for these.
+% \end{description}
% \begin{macrocode}
%<*book|report>
\newcounter{section}[chapter]
@@ -6131,36 +6049,34 @@
}
% \end{macrocode}
% \begin{macro}{\@seccntformat}
-% \changes{v2.3c}{1995/08/06}{CJK erweitert}%^^A
-% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt}%^^A
-% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}}%^^A
-% \changes{v3.17}{2015/02/23}{verwendet \cs{\dots format}, wenn es
-% existiert}%^^A
-% \changes{v3.17}{2015/03/31}{verwendet \cs{protect} für \cs{\dots
-% format}}%^^A
-% \begin{macro}{\othersectionlevelsformat}
-% \changes{v2.7}{2000/01/03}{neu}%^^A
-% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt}%^^A
-% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt}%^^A
-% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei}%^^A
-% Bei den Ebenen ab \cs{section} erfolgt die Formatierung der
-% Gliederungnummer in der Ãœberschrift mit einer gemeinsamen
-% Anweisung. Die interne Anweisung \cs{@seccntformat} wird dabei von
-% \LaTeX-Kern verwendet und muss umdefiniert werden, um eine
-% entsprechende Anweisung auf Anwenderebene verfügbar zu haben.
-% Ab Version 2.9p wurde in \cs{@seccntformat} ein \cs{protect} vor
-% \cs{othersectionlevelsformat} eingefügt. Damit wurde es für den Benutzer
-% deutlich einfacher, die Anweisung \cs{othersectionlevelsformat}
-% umzudefinieren. Dafür war dadurch aber \cs{the\dots} nicht mehr
-% expandiert. Das wiederum gab Probleme, wenn \cs{@seccntformat} für den
-% \cs{mark}-Mechanismus genutzt wurde. Deshalb hat
-% \cs{othersectionlevelsformat} ab Version 2.97 drei Argumente statt nur
-% eines. Das zweite Argument sollte vom Anwender ignoriert werden, es
-% existiert nur, um die Kompatibitlität Umdefinitionen zu erhalten, bei denen
-% \cs{othersectionlevelsformat} nur ein Argument besitzt. Das dritte Argument
-% ist die \cs{the\dots}-Anweisung. Das zweite Argument funktioniert so, das es
-% das dritte Argument frisst, falls \cs{othersectionlevelsformat} nur ein
-% Argument liest.
+% \changes{v2.3c}{1995/08/06}{CJK support extended}
+% \changes{v2.9p}{2004/01/07}{\cs{protect} added}
+% \changes{v2.97}{2007/01/24}{workaround for the ugly \cs{protect}}
+% \changes{v3.17}{2015/02/23}{using \cs{\dots format} if exists}
+% \changes{v3.17}{2015/03/31}{using \cs{protect} for \cs{\dots format}}
+% \begin{command}{\othersectionlevelsformat}
+% \changes{v2.7}{2000/01/03}{added}
+% \changes{v2.7}{2000/01/03}{\cs{quad} replaced by \cs{enskip}}
+% \changes{v2.7i}{2001/05/17}{\cs{let} replaced by \cs{def}}
+% \changes{v2.97}{2007/01/24}{three arguments instead of only one}
+% With \KOMAScript~2 \cs{othersectionlevelsformat} has had only one argument,
+% the \cs{…format} command of the level. But with there has been expansion
+% issues. So we have had to change the definition to
+% \begin{quote}
+% \cs{othersectionlevelsformat}\marg{level name}\marg{ignore
+% command}\marg{the command}
+% \end{quote}
+% Users who use or redefine \cs{othersectionlevelsformat} should always ignore
+% the \meta{ignore command}. It is used to internally handle deprecated
+% definitions of \cs{othersectionlevelsformat} with only one
+% argument. \meta{level name} is the name of the level command, e.g.,
+% |subsubsection|. \meta{the command} is the \cs{the…} command corresponding
+% with \marg{level name}. See the definition of \cs{@seccntformat} for more
+% information about the internal usage of \cs{othersectionlevelsformat}.
+% \begin{description}
+% \item[ToDo:] Can we somehow change this for \KOMAScript~4 to no longer
+% support the second argument (unless a low compatibility level is used)?
+% \end{description}
% \begin{macrocode}
\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
\renewcommand*{\@seccntformat}[1]{%
@@ -6175,26 +6091,28 @@
\fi
}
% \end{macrocode}
-% \end{macro}%^^A \othersectonlevelsformat
-% \end{macro}%^^A \@seccntformat
-% \end{macro}%^^A \thesubparagraph
-% \end{Counter}%^^A subparagraph
-% \end{macro}%^^A \theparagraph
-% \end{Counter}%^^A paragraph
-% \end{macro}%^^A \thesubsubsection
-% \end{Counter}%^^A subsubsection
-% \end{macro}%^^A \subsectionformat
-% \end{macro}%^^A \thesubsection
-% \end{Counter}%^^A subsection
-% \end{macro}%^^A \sectionformat
-% \end{macro}%^^A \thesection
-% \end{Counter}%^^A section
-%
-%
-% \begin{macro}{\addsecmark}
-% \changes{v3.12}{2013/03/26}{neue Anweisung}%^^A
-% \cs{addsecmark} wird nicht von den Seitenstilen definiert, sondern direkt
-% mit der gewünschten Definition initialisiert.
+% \end{command}^^A \othersectonlevelsformat
+% \end{macro}^^A \@seccntformat
+% \end{command}^^A \thesubparagraph
+% \end{counter}^^A subparagraph
+% \end{command}^^A \theparagraph
+% \end{counter}^^A paragraph
+% \end{command}^^A \thesubsubsection
+% \end{counter}^^A subsubsection
+% \end{command}^^A \subsectionformat
+% \end{command}^^A \thesubsection
+% \end{counter}^^A subsection
+% \end{command}^^A \sectionformat
+% \end{command}^^A \thesection
+% \end{counter}^^A section
+%
+%
+% \begin{command}{\addsecmark}
+% \changes{v3.12}{2013/03/26}{added}
+% \cs{addsec} and marks for running heads are a little bit
+% complicated. Currently we are using a local setting of \cnt{secnumdept} to
+% switch of numbering and then using \cs{sectionmark}. So the \cs{sectionmark}
+% definition should always respect \cnt{secnumdepth}.
% \begin{macrocode}
\newcommand*\addsecmark[1]{%
\begingroup
@@ -6203,193 +6121,122 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \addsecmark
-%
-% \begin{KOMAfont}{section}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}%^^A
-% \begin{macro}{\scr@fnt@section}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}%^^A
-% \begin{KOMAfont}{subsection}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}%^^A
-% \begin{macro}{\scr@fnt@subsection}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}%^^A
-% \begin{KOMAfont}{subsubsection}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}%^^A
-% \begin{macro}{\scr@fnt@subsubsection}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}%^^A
-% \begin{KOMAfont}{paragraph}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}%^^A
-% \begin{macro}{\scr@fnt@paragraph}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}%^^A
-% \begin{KOMAfont}{subparagraph}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}%^^A
-% \begin{macro}{\scr@fnt@subparagraph}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}%^^A
-% \begin{KOMAfont}{minisec}
-% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element
-% \texttt{minisec}}%^^A
-% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec}%^^A
-% entfernt, da es nun ein eigenes Element ist}%^^A
-% Definition der Elemente der Gliederung, deren Schrift geändert
-% werden kann.
-% \begin{macrocode}
-\newcommand*{\scr@fnt@section}{\size@section}
-\newcommand*{\scr@fnt@subsection}{\size@subsection}
-\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection}
-\newcommand*{\scr@fnt@paragraph}{\size@paragraph}
-\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph}
-% \end{macrocode}
-% \end{KOMAfont}%^^A minisec
-% \end{macro}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
-% \end{macro}
-% \end{KOMAfont}
+% \end{command}^^A \addsecmark
+%
%
-% \begin{KOMAfont}{sectionentry}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}%^^A
-% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
-% \texttt{disposition} ersetzt}%^^A
-% Schrift für den \cs{section}-Eintrag im Inhaltsverzeichnis.
+% \begin{fontelement}{sectionentry}
+% \changes{v2.97c}{2007/06/21}{added}
+% \changes{v3.06}{2010/06/09}{font element \fnt{sectioning} replaced by
+% \fnt{disposition}}
+% With \cls*{scrartcl} \cs{section} entries to the table of contents initially
+% using \fnt{disposition}, the basic font of all outlines.
% \begin{macrocode}
%<*article>
\newkomafont{sectionentry}{\usekomafont{disposition}}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{sectionentrypagenumber}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}%^^A
-% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis
-% abweichend von \texttt{sectionentry}.
+% \begin{fontelement}{sectionentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{added}
+% The page number of \cs{section} entries to the table of contents is
+% initially the same as the entry at whole with \cls*{scrartcl}.
% \begin{macrocode}
\newkomafont{sectionentrypagenumber}{}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{sectionentrydots}
-% \changes{v3.15}{2014/12/10}{neues Font-Element}%^^A
-% \changes{v3.27}{2019/10/28}{überflüssiges \cs{normalfont} entfernt}%^^A
-% Schrift für die optionalen Pünktchen des \cs{section}-Eintrags im
-% Inhaltsverzeichnis abweichend von \texttt{sectionentry} und
-% \cs{normalfont}\cs{normalsize}.
+% \begin{fontelement}{sectionentrydots}
+% \changes{v3.15}{2014/12/10}{added}
+% \changes{v3.27}{2019/10/28}{\cs{normalfont} removed}
+% If the optional dots for \cs{section} entries to the table of contents are
+% used, we can change the font of the dots also. It is used for the
+% \texttt{linefill} of \pkg*{tocbasic} ToC entry style \texttt{section}, that
+% uses ToC entry style \texttt{tocline} where the line filler is always
+% prefixed by \cs{normalfont}\cs{normalsize}. So the setting is relative to
+% this. The color is relative to the color of \fnt{sectionentry}.
% \begin{macrocode}
\newkomafont{sectionentrydots}{}
%</article>
% \end{macrocode}
-% \end{KOMAfont}
-%
-%
-% \begin{macro}{\partnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.18}{2015/05/24}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\chapternumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\sectionnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subsectionnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subsubsectionnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\paragraphnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subparagraphnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}%^^A
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die
-% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit
-% der Verzeichnisebene der Gliederungsanweisungen).
-% \begin{macro}{\parttocdepth}
-% \changes{v3.15}{2014/12/22}{neue Anweisung}%^^A
-% \changes{v3.18}{2015/05/25}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\chaptertocdepth}
-% \changes{v3.15}{2014/12/22}{neue Anweisung}%^^A
-% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\sectiontocdepth}
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subsectiontocdepth}
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subsubsectiontocdepth}
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\paragraphtocdepth}
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subparagraphtocdepth}
-% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die
-% Verzeichnisebene der Gliederungsanweisungen an.
-% \begin{macro}{\part}
-% \changes{v3.18}{2015/05/25}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% \changes{v3.26}{2018/06/27}{Definition nach \cs{section} verschoben (wegen
-% bookmark level fix)}%^^A
-% \begin{macro}{\chapter}
-% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
-% \texttt{plain}}%^^A
-% \changes{v3.18}{2015/05/20}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% Als Besonderheit werden für \cs{chapter} nur diejenigen Werte gesetzt, die
-% nicht über Optionen eingestellt werden können und daher vorab deklariert
-% werden müssen. Bei den Anweisungen der unteren Ebenen werden hingegen alle
-% Einstellungen über \cs{DeclareSectionCommand} vorgenommen.
-% \begin{macro}{\section}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@section} aufgerufen}%^^A
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}%^^A
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}%^^A
-% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subsection}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@subsection} aufgerufen}%^^A
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}%^^A
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}%^^A
-% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subsubsection}
-% \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} nun
-% ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben}%^^A
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@subsubsection} aufgerufen}%^^A
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}%^^A
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}%^^A
-% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\paragraph}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@paragraph} aufgerufen}%^^A
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}%^^A
-% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\subparagraph}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@subparagraph} aufgerufen}%^^A
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}%^^A
-% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}%^^A
-% \changes{v3.15}{2014/11/24}{\cs{parindent} durch \cs{scr@parindent}
-% ersetzt}%^^A
-% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph}
-% sind seit \KOMAScript{} v3.15 über die von \KOMAScript{} bereitgestellte
-% Schnittstelle \cs{DeclareSectionCommand} definiert.
+% \end{fontelement}
+%
+%
+% \begin{command}{\partnumdepth,\chapternumdepth,
+% \sectionnumdepth,\subsectionnumdepth,\subsubsectionnumdepth,
+% \paragraphnumdepth,\subparagraphnumdepth,
+% \parttocdepth,\chaptertocdepth
+% \sectiontocdepth,\subsectiontocdepth,\subsubsectiontocdepth,
+% \paragraphtocdepth,\subparagraphtocdepth}
+% \changes{v3.12}{2013/12/16}{added}
+% \changes{v3.15}{2014/12/09}{indirect definition by
+% \cs{DeclareSectionCommand}}
+% The section numbering levels, to be compared with counter
+% \cnt{secnumdepth}, and the table of contents entry levels, to be compared
+% with counter \cs{tocdepth}, of all outline commands defined by the
+% \KOMAScript{} classes.
+% \begin{description}
+% \item[Note:] These are specified to be \emph{read only}. They are defined by
+% \cs{DeclareSectionCommand}.
+% \end{description}
+% \end{command}^^A \partnumdepth … \subparagraphtocdepth
+%
+% \begin{command}{\part}
+% \changes{v3.18}{2015/05/25}{indirect definition by \cs{DeclareSectionCommand}}
+% \changes{v3.26}{2018/06/27}{definition moved behind \cs{section} because of
+% bookmark level workaround}
+% \begin{command}{\chapter}
+% \changes{v2.8d}{2001/07/05}{using \cs{chapterpagestyle}}
+% \changes{v3.18}{2015/05/20}{indirect definition by \cs{DeclareSectionCommand}}
+% \begin{command}{\section}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} before \cs{size@section}}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} after \cs{sectfont} added}
+% \changes{v2.96a}{2006/11/30}{initial value of \cs{parfillskip} depending on
+% option \opt{version}}
+% \changes{v2.96a}{2006/12/03}{not needed \cs{nobreak} removed}
+% \changes{v3.13a}{2014/09/11}{using \cs{scr@startsection}}
+% \changes{v3.15}{2014/11/24}{indirect definition by \cs{DeclareSectionCommand}}
+% \begin{command}{\subsection}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} before \cs{size@subsection}}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} after \cs{sectfont} added}
+% \changes{v2.96a}{2006/11/30}{initial value of \cs{parfillskip} depending on
+% option \opt{version}}
+% \changes{v2.96a}{2006/12/03}{not needed \cs{nobreak} removed}
+% \changes{v3.13a}{2014/09/11}{using \cs{scr@startsection}}
+% \changes{v3.15}{2014/11/24}{indirect definition by \cs{DeclareSectionCommand}}
+% \begin{command}{\subsubsection}
+% \changes{v2.3d}{1995/08/19}{with \cls*{scrartcl} also numbered and added to
+% ToC}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} added before
+% \cs{size@subsubsection}}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} added after \cs{sectfont}}
+% \changes{v2.96a}{2006/11/30}{initial value of \cs{parfillskip} depending on
+% option \opt{version}}
+% \changes{v2.96a}{2006/12/03}{not needed \cs{nobreak} removed}
+% \changes{v3.13a}{2014/09/11}{using \cs{scr@startsection}}
+% \changes{v3.15}{2014/11/24}{indirect definition by \cs{DeclareSectionCommand}}
+% \begin{command}{\paragraph}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} added before
+% \cs{size@paragraph}}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} added after \cs{sectfont}}
+% \changes{v2.96a}{2006/12/03}{not needed \cs{nobreak} removed}
+% \changes{v3.15}{2014/11/24}{indirect definition by \cs{DeclareSectionCommand}}
+% \begin{command}{\subparagraph}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} added before
+% \cs{size@subparagraph}}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} added after \cs{sectfont}}
+% \changes{v2.96a}{2006/12/03}{not needed \cs{nobreak} removed}
+% \changes{v3.13a}{2014/09/11}{using \cs{scr@startsection}}
+% \changes{v3.15}{2014/11/24}{indirect definition by \cs{DeclareSectionCommand}}
+% \changes{v3.15}{2014/11/24}{\cs{parindent} replaced by \cs{scr@parindent}}
+% Commands \cs{part}, \cs{chapter}, \cs{section}, \cs{subsection},
+% \cs{subsubection}, \cs{paragraph} and \cs{subparagraph} are defined using
+% \cs{DeclareSectionCommand}. The definition of \cs{part} must be \emph{after}
+% \cs{section} because of the bookmark level workaround (see definition of
+% \cs{DelcareSectionCommand}. The declaration of \cs{chapter} uses only those
+% settings that do not depend on options, because settings by class options
+% must no be overwritten here. So all settings that do depend on class options
+% have to be initialized before the options (see the \texttt{prepare} code of
+% such options above). For the lower levels this is only the case for the font.
% \begin{macrocode}
%<*book|report>
\DeclareSectionCommand[%
@@ -6483,118 +6330,188 @@
\def\scr@subparagraph@sectionindent{\scr@parindent}%
\fi
%</body>
-%</class>
-% \end{macrocode}
-% \end{macro}%^^A \subparagraph
-% \end{macro}%^^A \paragraph
-% \end{macro}%^^A \subsubsection
-% \end{macro}%^^A \subsection
-% \end{macro}%^^A \section
-% \end{macro}%^^A \chapter
-% \end{macro}%^^A \part
-% \end{macro}%^^A \subparargraphtocdepth
-% \end{macro}%^^A \paragraphtocdepth
-% \end{macro}%^^A \subsubsectiontocdepth
-% \end{macro}%^^A \subsectiontocdepth
-% \end{macro}%^^A \sectiontocdepth
-% \end{macro}%^^A \chaptertocdepth
-% \end{macro}%^^A \parttocdepth
-% \end{macro}%^^A \subparargraphnumdepth
-% \end{macro}%^^A \paragraphnumdepth
-% \end{macro}%^^A \subsubsectionnumdepth
-% \end{macro}%^^A \subsectionnumdepth
-% \end{macro}%^^A \sectionnumdepth
-% \end{macro}%^^A \chapternumdepth
-% \end{macro}%^^A \partnumdepth
-%
-%
-% \subsection{Font und Größeneinstellungen}
-%
-% Die Einstellungen für die einzelnen Ebenen werden bei den Definitonen der
-% Ebenen vorgenommen. Hier gibt es nur Einstellungen, die nicht einer
-% einzelnen Ebene zugeordnet sind.
-%
-% \begin{KOMAfont}{disposition}
-% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}%^^A
-% \begin{KOMAfont}{sectioning}
-% \begin{macro}{\scr@fnt@disposition}
-% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}%^^A
+% \end{macrocode}
+% \end{command}^^A \subparagraph
+% \end{command}^^A \paragraph
+% \end{command}^^A \subsubsection
+% \end{command}^^A \subsection
+% \end{command}^^A \section
+% \end{command}^^A \chapter
+% \end{command}^^A \part
+%
+%
+% \subsection{Fonts}
+%
+% The font settings of dedicated elements of the the corresponding section
+% levels already have been done. But there are also some elements that do not
+% correspond with a single section level.
+%
+% \begin{fontelement}{disposition}
+% \changes{v2.95b}{2006/07/30}{added}
+% \begin{fontelement}{sectioning}
+% \changes{v2.95b}{2006/07/30}{added}
% \begin{macro}{\sectfont}
-% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}%^^A
-% \changes{v3.12}{2013/11/11}{wird wegen Option
-% \texttt{headings!=standardclasses} früher definiert}%^^A
-% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
-% ersetzt}%^^A
-% Dies Schriftart nicht nur für die Gliederungsbefehle. Dieses Makro
-% ist als intern zu betrachten. Der Anwender sollte stattdessen das
-% entsprtechende Fontelement verwenden.
-% \begin{macrocode}
-%<*prepare>
+% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} added}
+% \changes{v3.12}{2013/11/11}{earlier definition to support option
+% \opt{headings\quotechar=standardclasses}}
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} replaced by \cs{@gr@gsffamily}}
+% This element is not only used by all section levels before the dedicated
+% element of the single level is used. It is also used by other elements like
+% the \fnt{chaptertocentry}. The command \cs{sectfont} instead of the
+% \cs{newkomafont} default is used for compatibility only. So it is specified
+% as internal. Using it as user command is deprecated!
+% \begin{macrocode}
+%</class&!letter>
+%<*(class&!letter)|(package&extend)>
+%<*prepare>
\newcommand*{\sectfont}{\normalcolor\@gr@gsffamily\bfseries}
%</prepare>
+%</(class&!letter)|(package&extend)>
+%<*class&!letter>
%<*body>
\newcommand*{\scr@fnt@disposition}{\sectfont}
\aliaskomafont{sectioning}{disposition}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \sectfont
-% \end{macro}%^^A \scr@fnt@disposition
-% \end{KOMAfont}%^^A sectioning
-% \end{KOMAfont}%^^A disposition
+% \end{macro}^^A \sectfont
+% \end{fontelement}^^A sectioning
+% \end{fontelement}^^A disposition
%
%
% \begin{option}{headings}
-% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe
-% verringert}%^^A
-% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} und
-% \cs{chapterheadendvskip} an Stelle von festen vertikalen Abständen am
-% Anfang und am Ende eines Kapitels}%^^A
-% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der Kapitelüberschrift
-% geringfügig verändert und mit Leim versehen, um mit \cs{flushbottom} zu
-% besseren Ergebnissen zu gelangen}%^^A
-% \changes{v2.98c}{2008/03/10}{Neue Option}%^^A
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}%^^A
-% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch \cs{KOMAoptions}
-% ersetzt}%^^A
-% \changes{v3.12}{2013/11/11}{neuer Wert \texttt{standardclasses}}%^^A
-% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@beforeskip} und
-% \cs{scr@chapter@afterskip} werden verwendet}%^^A
-% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}%^^A
-% \changes{v3.18}{2015/05/20}{Werte für \cs{scr@chapter@beforeskip}
-% negiert}%^^A
-% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich
-% nun auch das Problem, dass die Gesamtmenge der Ãœberschriften mal
-% \emph{headings} (Ãœberschriften), mal \emph{sectioning}
-% (Abschnittseinteilung) und mal \emph{disposition} (Gliederung) genannt
-% wird. Es wäre gut gewesen, sich bei Zeiten Gedanken darüber zu machen, wie
-% man das am besten einheitlich nennt.
-% \begin{macrocode}
-%<*class>
+% \changes{v2.3h}{1996/01/20}{Size of \cs{chapter} decreased by one grade
+% step}
+% \changes{v2.3h}{1996/01/20}{using \cs{chapterheadstartvskip} and
+% \cs{chapterheadendvskip}}
+% \changes{v2.7c}{2000/01/19}{vertical distance after chapters slightly
+% changed and glue added}
+% \changes{v2.98c}{2008/03/10}{added}
+% \changes{v3.10}{2011/08/30}{extended optional argument}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} replaced by \cs{KOMAoptions}}
+% \changes{v3.12}{2013/11/11}{value \opt{\quotechar=standardclasses} added}
+% \changes{v3.15}{2014/11/24}{using \cs{scr@chapter@beforeskip} and
+% \cs{scr@chapter@afterskip}}
+% \changes{v3.17}{2015/03/09}{using internal value storage}
+% \changes{v3.18}{2015/05/20}{values of \cs{scr@chapter@beforeskip} negative}
+% Option \opt{headings} is the main switch for the headings of all outlines.
+% It provides the following values:
+% \begin{macrocode}
%<*option>
\KOMA@key{headings}{%
\KOMA@set@ncmdkey{headings}{@tempa}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=big}:] use big sized headings. This also changes the distances
+% of chapter and redefined \cs{chapterheadstartvskip} and
+% \cs{chapterheadendvskip} (\cls*{scrbook} and \cls*{scrreprt} only).
+% \end{description}
+% \begin{macrocode}
{big}{0},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=normal}:] use medium sized headings. This also changes the
+% distances of chapter and redefined \cs{chapterheadstartvskip} and
+% \cs{chapterheadendvskip} (\cls*{scrbook} and \cls*{scrreprt} only).
+% \end{description}
+% \begin{macrocode}
{normal}{1},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=small}:] use small sized headings. This also changes the
+% distances of chapter and redefined \cs{chapterheadstartvskip} and
+% \cs{chapterheadendvskip} (\cls*{scrbook} and \cls*{scrreprt} only).
+% \end{description}
+% \begin{macrocode}
{small}{2},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=openany}:] same as \opt{open=any} for \cls*{scrbook} and
+% \cls*{scrreprt}.
+% \end{description}
+% \begin{macrocode}
%<*book|report>
{openany}{3},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=openright}:] same as \opt{open=right} for \cls*{scrbook} and
+% \cls*{scrreprt}.
+% \end{description}
+% \begin{macrocode}
{openright}{4},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=openleft}:] same as \opt{open=left} for \cls*{scrbook} and
+% \cls*{scrreprt}.
+% \end{description}
+% \begin{macrocode}
{openleft}{5},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=twolinechapter}:] use chapter headings with two lines. The first
+% line is a kind of prefix line with the number and a prefix text only. The
+% second one is the heading text.
+% \end{description}
+% \begin{macrocode}
{twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},%
{chapterwithprefixline}{6},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=onelinechapter}:] use chapter headings without the prefix line.
+% \end{description}
+% \begin{macrocode}
{onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},%
{chapterwithoutprefixline}{7},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=twolineappendix}:] use chapter headings with two lines in the
+% appendix. This overwrites \opt{headings=onelinechapter} for the chapters
+% of the appendix.
+% \end{description}
+% \begin{macrocode}
{twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},%
{appendixwithprefixline}{8},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=onelineappendix}:] use chapter headings without prefix line in
+% the appendix. This overwrites \opt{headings=twolinechapter} for the
+% chapters of the appendix.
+% \end{description}
+% \begin{macrocode}
{onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},%
{appendixwithoutprefixline}{9},%
%</book|report>
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=optiontotocandhead}:] activates the extended option handling of
+% all outline commands and uses an unspecified optional argument as default
+% of for the running head and the ToC entry.
+% \end{description}
+% \begin{macrocode}
{optiontotocandhead}{10},{optiontoheadandtoc}{10},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=optiontotoc}:] activates the extended option handling of all
+% outline commands and uses an unspecified optional argument as default for
+% the ToC entry only.
+% \end{description}
+% \begin{macrocode}
{optiontotoc}{11},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=optiontohead}:] activated the extended option handling of all
+% outline commands and uses an unspecified optional argument as default fot
+% the running head.
+% \end{description}
+% \begin{macrocode}
{optiontohead}{12},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=standardclasses}:] reconfigure headings (at least the fonts) to
+% look more like the headings of the standard classes than the defaults of
+% \KOMAScript.
+% \end{description}
+% \begin{macrocode}
{standardclasses}{13}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
@@ -6605,17 +6522,15 @@
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
\KOMA@kav@add{.\KOMAClassFileName}{headings}{big}%
% \end{macrocode}
-% Als erstes kümmern wir uns um die drei Größenabstufungen für die
-% Ãœberschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge
-% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen,
-% dass die Verwendung dieser Option alle Änderungen an
-% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den
-% Font-Elementen für die einzelnen Überschriften aufhebt macht!
-%
-% Hinweis: Es wurde |+\baselineskip+\parskip| hinzugefügt, um
-% Kompatibilitätsprobleme zu vermeiden. Die entsprechenden Werte werden in der
-% Präambel aber wieder abgezogen, um Überschriften wirklich mit
-% |beforeskip=0pt| an den oberen Rand zu bekommen.
+% First of all we handle the three size values.
+% \begin{description}
+% \item[Note:] These are redefining \cs{chapterheadstartvkip} and
+% \cs{chapterheadendvskip}.
+% \item[Note:] The |+\baselineskip+\parskip| is needed to stay compatible with
+% old version of \KOMAScript{} not providing \cs{DeclareSectionCommand}. They
+% are regarded inside setting of the preamble to print heading with
+% |beforeskip=0pt| at the very beginning of the text area.
+% \end{description}
% \begin{macrocode}
%<*book|report>
\renewcommand*{\scr@chapter@beforeskip}{-3.3\baselineskip-\parskip}%
@@ -6630,15 +6545,15 @@
}%
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
%</book|report>
- \renewcommand*{\size@part}{\Huge}%
- \renewcommand*{\size@partnumber}{\huge}%
-%<book|report> \renewcommand*{\size@chapter}{\huge}%
-%<book|report> \renewcommand*{\size@chapterprefix}{\size@chapter}%
- \renewcommand*{\size@section}{\Large}%
- \renewcommand*{\size@subsection}{\large}%
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
+ \setkomafont{part}{\Huge}%
+ \setkomafont{partnumber}{\huge}%
+%<book|report> \setkomafont{chapter}{\huge}%
+%<book|report> \setkomafont{chapterprefix}{\size@chapter}%
+ \setkomafont{section}{\Large}%
+ \setkomafont{subsection}{\large}%
+ \setkomafont{subsubsection}{\normalsize}%
+ \setkomafont{paragraph}{\normalsize}%
+ \setkomafont{subparagraph}{\normalsize}%
\or % normal
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
@@ -6658,21 +6573,21 @@
}%
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
%</book|report>
- \renewcommand*{\size@part}{\huge}%
- \renewcommand*{\size@partnumber}{\huge}%
+ \setkomafont{part}{\huge}%
+ \setkomafont{partnumber}{\huge}%
%<*book|report>
- \renewcommand*{\size@chapter}{\LARGE}%
- \renewcommand*{\size@chapterprefix}{\size@chapter}%
- \renewcommand*{\size@section}{\Large}%
- \renewcommand*{\size@subsection}{\large}%
+ \setkomafont{chapter}{\LARGE}%
+ \setkomafont{chapterprefix}{\size@chapter}%
+ \setkomafont{section}{\Large}%
+ \setkomafont{subsection}{\large}%
%</book|report>
%<*article>
- \renewcommand*{\size@section}{\large}%
- \renewcommand*{\size@subsection}{\normalsize}%
+ \setkomafont{section}{\large}%
+ \setkomafont{subsection}{\normalsize}%
%</article>
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
+ \setkomafont{subsubsection}{\normalsize}%
+ \setkomafont{paragraph}{\normalsize}%
+ \setkomafont{subparagraph}{\normalsize}%
\or % small
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
@@ -6692,24 +6607,23 @@
}%
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
%</book|report>
- \renewcommand*{\size@part}{\LARGE}%
- \renewcommand*{\size@partnumber}{\LARGE}%
+ \setkomafont{part}{\LARGE}%
+ \setkomafont{partnumber}{\LARGE}%
%<*book|report>
- \renewcommand*{\size@chapter}{\Large}%
- \renewcommand*{\size@chapterprefix}{\size@chapter}%
- \renewcommand*{\size@section}{\large}%
+ \setkomafont{chapter}{\Large}%
+ \setkomafont{chapterprefix}{\size@chapter}%
+ \setkomafont{section}{\large}%
%</book|report>
%<*article>
- \renewcommand*{\size@section}{\normalsize}%
+ \setkomafont{section}{\normalsize}%
%</article>
- \renewcommand*{\size@subsection}{\normalsize}%
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
+ \setkomafont{subsection}{\normalsize}%
+ \setkomafont{subsubsection}{\normalsize}%
+ \setkomafont{paragraph}{\normalsize}%
+ \setkomafont{subparagraph}{\normalsize}%
% \end{macrocode}
-% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die
-% Möglichkeit, auch hierüber die Optionen \texttt{open=any},
-% \texttt{open=right} und \texttt{open=left} zu setzen.
+% \cls*{scrbook} and \cls*{scrreprt} also provide settings that are delegated
+% to option \opt{open}.
% \begin{macrocode}
\or % openany
%<*book|report>
@@ -6724,9 +6638,8 @@
\KOMAoptions{open=left}%
%</book|report>
% \end{macrocode}
-% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die
-% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und
-% \texttt{appendixprefix} zu setzen.
+% \cls*{scrbook} and \cls*{scrreprt} also provide settings that are delegated
+% to option \opt{chapterprefix} and \opt{appendixprefix}.
% \begin{macrocode}
\or % twolinechapter
%<*book|report>
@@ -6740,13 +6653,12 @@
%<*book|report>
\KOMAoptions{appendixprefix=true}%
%</book|report>
- \or % onelineappend
+ \or % onelineappendix
%<*book|report>
\KOMAoptions{appendixprefix=false}%
%</book|report>
% \end{macrocode}
-% Ab Version~3.10 wird über diese Option auch noch die Erweiterung für das
-% optionale Argument der Gliederungsüberschriften aktiviert und gesteuert.
+% We have also options to handle the extended optional argument.
% \begin{macrocode}
\or % optiontotocandhead
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
@@ -6767,8 +6679,8 @@
\KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontohead}%
\scr@activate@xsection{1}%
% \end{macrocode}
-% Ab Version~3.12 gibt es noch die Möglichkeit, die Überschriftengrößen der
-% Standardklassen zu emulieren.
+% Last but not least the option to activate the standard class emulation of
+% headings.
% \begin{macrocode}
\or % standardclasses
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
@@ -6783,20 +6695,20 @@
\renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
\renewcommand*{\chapterheadendvskip}{\vskip\@tempskipa}%
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
- \renewcommand*{\size@part}{\Huge}%
- \renewcommand*{\size@partnumber}{\huge}%
- \renewcommand*{\size@chapter}{\Huge}%
- \renewcommand*{\size@chapterprefix}{\huge}%
+ \setkomafont{part}{\Huge}%
+ \setkomafont{partnumber}{\huge}%
+ \setkomafont{chapter}{\Huge}%
+ \setkomafont{chapterprefix}{\huge}%
%</book|report>
%<*article>
- \renewcommand*{\size@part}{\huge}%
- \renewcommand*{\size@partnumber}{\Large}%
+ \setkomafont{part}{\huge}%
+ \setkomafont{partnumber}{\Large}%
%</article>
- \renewcommand*{\size@section}{\Large}%
- \renewcommand*{\size@subsection}{\large}%
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
+ \setkomafont{section}{\Large}%
+ \setkomafont{subsection}{\large}%
+ \setkomafont{subsubsection}{\normalsize}%
+ \setkomafont{paragraph}{\normalsize}%
+ \setkomafont{subparagraph}{\normalsize}%
\renewcommand*{\sectfont}{\bfseries}%
%<book|report> \KOMAoptions{open=right,chapterprefix=true}%
\fi
@@ -6805,61 +6717,38 @@
\KOMA@kav@add{.\KOMAClassFileName}{headings}{big}
%<book|report>\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelinechapter}
% \end{macrocode}
-% \end{option}%^^A headings
-%
-% \begin{option}{bigheadings}
-% \changes{v2.3h}{1996/01/20}{neue Option}%^^A
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
-% Verwendung des alten, falschen Namens wird ein Fehler
-% ausgegeben}%^^A
-% \changes{v2.98c}{2008/03/10}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{macro}{\@bigheadings}
-% \changes{v2.98c}{2008/03/10}{entfernt}%^^A
-% \begin{option}{normalheadings}
-% \changes{v2.3h}{1996/01/20}{neue Option}%^^A
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
-% Verwendung des alten, falschen Namens wird ein Fehler
-% ausgegeben}%^^A
-% \changes{v2.98c}{2008/03/10}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{macro}{\@normalheadings}
-% \changes{v2.98c}{2008/03/10}{entfernt}%^^A
-% \begin{option}{smallheadings}
-% \changes{v2.3h}{1996/01/20}{neue Option}%^^A
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
-% Verwendung des alten, falschen Namens wird ein Fehler
-% ausgegeben}%^^A
-% \changes{v2.98c}{2008/03/10}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{macro}{\@smallheadings}
-% \changes{v2.98c}{2008/03/10}{entfernt}%^^A
+% \end{option}^^A headings
+%
+% \begin{option}{bigheadings,normalheadings,smallheadings}
+% \changes{v2.3h}{1996/01/20}{added}
+% \changes{v2.4g}{1996/11/04}{option name fixed}
+% \changes{v2.98c}{2008/03/10}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macro}{\@bigheadings,\@normalheadings,\@smallheadings}
+% \changes{v2.98c}{2008/03/10}{removed}
+% \end{macro}^^A \@bigheadings … \@smallheadings
+% We also have some deprecated options.
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big}
\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal}
\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small}
%</option>
-%</class>
% \end{macrocode}
-% \end{macro}%^^A \@smallheadings
-% \end{option}%^^A smallheadings
-% \end{macro}%^^A \@normalheadings
-% \end{option}%^^A normalheadings
-% \end{macro}%^^A \@bigheadings
-% \end{option}%^^A bigheadings
-%
-%
-% \iffalse
-%</!letter>
-% \fi
+% \end{option}^^A smallheading,normalheadings,bigheadings
%
+% \begin{macrocode}
+%</class&!letter>
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-sections.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% coding: utf-8
-%%% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-title.dtx b/macros/latex/contrib/koma-script/source/scrkernel-title.dtx
index 986d89ffa5..5d4963fe4e 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-title.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-title.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{981}
% \iffalse meta-comment
% ======================================================================
% scrkernel-title.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-title.dtx
-% Copyright (c) Markus Kohm, 2002-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-title.dtx 3390 2019-11-18 17:09:35Z kohm $
+%%% From File: $Id: scrkernel-title.dtx 3747 2022-03-08 09:24:07Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-11-18 18:09:35 +0100 (Mon, 18 Nov 2019) $
+ \filedate$Date: 2022-03-08 10:24:07 +0100 (Di, 08. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1638 $
+ \filerevision$Revision: 3747 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-title.dtx}%
@@ -73,78 +35,82 @@
KOMA-Script source (title pages)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-title.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}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-title.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2002/06/26}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \changes{v2.95}{2002/06/26}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/03/08}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/08}{whole implementation documentation in English}
%
-% \section{Die Titelei}
+% \GetFileInfo{scrkernel-title.dtx}
+% \title{The Code to Implement the Extended Titles of
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-title.dtx} implements on-page titles and title pages, that
+% are extended a lot comparing with the titles of the standard classes.
+% \end{abstract}
+% \tableofcontents
%
-% Die Titelei ist gegenüber den Standardklassen erheblich
-% erweitert. Trotzdem kann ein Titel einer Standardklasse unmittelbar
-% mit einer \KOMAScript-Klasse gesetzt werden. Briefe besitzen allerdings
-% keine Titelei im eigentlichen Sinne.
+% \section{User Manual}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \iffalse
-%<*!letter>
-% \fi
+% \MaybeStop{\PrintIndex}
%
-% \iffalse
-%<*option>
-% \fi
%
+% \section{Implementation of Titles}
%
-% \subsection{Optionen der Titelei}
+% This kind of titles are not needed for letters.
%
+% \begin{macrocode}
+%<*!letter>
+% \end{macrocode}
+%
% \begin{option}{titlepage}
-% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}%^^A
-% \changes{v3.12}{2013/11/21}{neuer Wert \texttt{firstiscover}}%^^A
-% \changes{v3.17}{2015/03/10}{interne Speicherung des Werts}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{option}{notitlepage}
-% \changes{v2.95c}{2006/08/21}{Option ist obsolet}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% Es werden zei Arten von Titeln unterstützt. Da sind zum einen eigene
-% Titelseiten, zum anderen sogenannte Titelköpfe, also Titel, die nicht eine
-% eigene Seite erhalten, sondern am Anfang einer Seite stehen. Zwischen den
-% beiden Arten wird mit einer Option umgeschaltet. Ab Version~3.12 unterstützt
-% \KOMAScript{} außerdem die Einstellung \texttt{titlepage=firstiscover} bei
-% der die erste Titelseite als Umschlagseite gesetzt wird.
-% \begin{macro}{\if@titlepage}
-% \begin{macro}{\@titlepagetrue}
-% \begin{macro}{\@titlepagefalse}
-% Die gewählte Einstellung wird in einem Schalter gespeichert.
+% \changes{v2.95c}{2006/08/21}{using \pkg*{scrkbase}}
+% \changes{v3.12}{2013/11/21}{value \opt{\quotechar=firstiscover} added}
+% \changes{v3.17}{2015/03/10}{using internal value storage}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{macro}{\@titlepagetrue,\@titlepagefalse,\if@titlepage}
+% \begin{macro}{\@titlepageiscoverpagetrue,\@titlepageisvoerpagefalse,
+% \if@titlepageiscoverpage}
+% \changes{v3.12}{2013/11/21}{added}
+% There is support for two kinds of titles: in-page titles also known as title
+% heads and title pages. Usually title pages are the title pages of the inner
+% book. But some users prefer to interpret them as cover instead. With
+% \KOMAScript{} this does in fact makes some sense, but only, if the user uses
+% the mock title and wants to interpret it not as mock title but as cover. So
+% we provide the following values:
+% \begin{description}
+% \item[\opt{=false}:] use a in-page title (\cs{@titlepagefalse},
+% \cs{@titlepageiscoverpagefalse}),
+% \item[\opt{=true}:] use several title pages (\cs{@titlepagetrue},
+% \cs{@titlepageiscoverpagefalse}),
+% \item[\opt{=firstiscover}:] use several title pages and the first one is the
+% cover (\cs{@titlepagetrue}, \cs{@titlepageiscoverpagetrue}). We do not
+% test, if this is was originally a mock title of a main title.
+% \end{description}
+% With package \pkg*{scrextend} this feature is defined as activatable. And
+% the initial values differ from class to class.
% \begin{macrocode}
+%<*option>
%<*class>
\newif\if@titlepage
%<article>\@titlepagefalse
%<report|book>\@titlepagetrue
%</class>
-% \end{macrocode}
-% Im Falle von \textsf{scrextend} ist die Option Teil der Erweiterung.
-% \begin{macrocode}
%<*package&extend>
\scr@ext@activateable{title}{%
\scr@ifundefinedorrelax{if@titlepage}{%
@@ -156,11 +122,6 @@
\@titlepageiscoverpagefalse
}{}%
%</package&extend>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macrocode}
%<*class|package>
%<class>\newif\if@titlepageiscoverpage
\KOMA@key{titlepage}[true]{%
@@ -196,7 +157,7 @@
}{titlepage}{\if@titlepage true\else false\fi}
%<*extend>
% \end{macrocode}
-% Diese Erweiterung soll dann auch tatsächlich sofort aktiviert werden:
+% For \pkg*{scrextend} we allow to activate the feature at load time.
% \begin{macrocode}
\def\scr@ext@immediate@title{%
\scr@ext@activate{title}%
@@ -205,94 +166,58 @@
}
%</extend>
%</class|package>
+% \end{macrocode}
+% \begin{option}{notitlepage}
+% \changes{v2.95c}{2006/08/21}{obsolete}
+% \changes{v3.01a}{2008/11/21}{standard not obsolete}
+% \begin{macrocode}
\KOMA@DeclareStandardOption%
%<package> [scrextend]%
{notitlepage}{titlepage=false}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{abstract}
-% \changes{v2.95c}{2006/08/21}{neue \textsf{keyval}-Option}%^^A
-% \begin{option}{abstracton}
-% \changes{v2.95c}{2006/08/21}{Option ist obsolet}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% \changes{v3.27}{2019/03/13}{deprecated statt standard}%^^A
-% \begin{option}{abstractoff}
-% \changes{v2.95c}{2006/08/21}{Option ist obsolet}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% \changes{v3.27}{2019/03/13}{deprecated statt standard}%^^A
-% Obwohl die Zusammenfassung nicht unbedingt auf einer Titelseite steht,
-% gehört sie doch zur Titelei und wird daher hier mit behandelt. Die
-% Zusammenfassung kann mit einem standardmäßigen Titel versehen werden. Der
-% Titel kann aber auch unterdrückt werden.
-% \iffalse
-%<*class>
-%<*article|report>
-% \fi
-% Bei Büchern gibt es keine Zusammenfassung als gesonderte Umgebung. Als
-% Ersatz kann bei Büchern auf \cs{addchap*} zurückgegriffen werden.
-% \begin{macro}{\if@abstrt}
-% \changes{v3.17}{2015/03/10}{wird von \cs{KOMA@ifkey} definiert}%^^A
-% \begin{macro}{\@abstrttrue}
-% \begin{macro}{\@abstrtfalse}
-% Die Enscheidung, ob der Titel der Zusammenfassung gesetzt werden soll, wird
-% in einem Schalter gespeichert.
-% \begin{macrocode}
-\KOMA@ifkey{abstract}{@abstrt}
-\KOMA@DeclareDeprecatedOption{abstracton}{abstract=true}
-\KOMA@DeclareDeprecatedOption{abstractoff}{abstract=false}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
-% \end{option}
-% \end{option}
-% \iffalse
-%</article|report>
-%</class>
-% \fi
-%
-%
-% \iffalse
%</option>
-%<*body>
-% \fi
-%
-%
-% \subsection{Definitionen der Titelei}
+% \end{macrocode}
+% \end{option}^^A notitlepage
+% \end{macro}^^A \if@titlepageiscoverpage
+% \end{macro}^^A \if@titlepage
+% \end{option}^^A titlepage
%
-% \begin{macro}{\extratitle}
+% \begin{command}{\extratitle}
% \begin{macro}{\@extratitle}
-% \begin{macro}{\frontispiece}
-% \changes{v3.25}{2017/11/21}{neu}
+% \begin{command}{\frontispiece}
+% \changes{v3.25}{2017/11/21}{added}
% \begin{macro}{\@frontispiece}
-% \changes{v3.25}{2017/11/21}{neu (intern)}
-% \begin{macro}{\titlehead}
+% \changes{v3.25}{2017/11/21}{added}
+% \begin{command}{\titlehead}
% \begin{macro}{\@titlehead}
-% \begin{macro}{\subject}
+% \begin{command}{\subject}
% \begin{macro}{\@subject}
-% \begin{macro}{\subtitle}
-% \changes{v2.97c}{2007/06/20}{neue Möglichkeit}%^^A
+% \begin{command}{\subtitle}
+% \changes{v2.97c}{2007/06/20}{neue Möglichkeit}
% \begin{macro}{\@subtitle}
-% \changes{v2.97c}{2007/06/20}{neu (intern)}%^^A
-% \begin{macro}{\publishers}
+% \changes{v2.97c}{2007/06/20}{added}
+% \begin{command}{\publishers}
% \begin{macro}{\@publishers}
-% \begin{macro}{\uppertitleback}
+% \begin{command}{\uppertitleback}
% \begin{macro}{\@uppertitleback}
-% \begin{macro}{\lowertitleback}
+% \begin{command}{\lowertitleback}
% \begin{macro}{\@lowertitleback}
-% \begin{macro}{\dedication}
+% \begin{command}{\dedication}
% \begin{macro}{\@dedication}
-% Da der Titel im \KOMAScript{} Paket wesentlich mehr Angaben erlaubt
-% als bei den Standardklassen, gibt es natürlich auch einige Befehle,
-% mit denen diese gesetzt werden können. Alle zusätzlichen Angaben
-% sind optional und können auch weggelassen werden. In diesem Fall
-% werden Leerfelder verwendet. Bis auf \cs{subject} sind alle
-% Zusatzbefehle \cs{long} deklariert, können also ganze Absätze
-% enthalten.
+% The \LaTeX{} kernel already provides user commands \cs{title}, \cs{author},
+% \cs{date}, which store their arguments globally into macros \cs{@title},
+% \cs{@author} and \cs{@date}. But for \KOMAScript{} these are not enough for
+% several pages of title and even not for the main title. So several more
+% similar commands and macros are defined. All additional user commands but
+% \cs{subject} are long.
+% \begin{description}
+% \item[ToDo:] Make them all robust as \LaTeX{} from 2018/10/01 does. However
+% this could be incompatible with \pkg{uni-titlepage}, so when doing the
+% change, don't forget to also change \pkg{uni-titlepage} if needed.
+% \end{description}
+% For package \pkg*{scrextend} all the code is added to the activatable
+% \texttt{title}.
% \begin{macrocode}
+%<*body>
%<package&extend>\scr@ext@addto@activateable{title}{%
\newcommand*{\@extratitle}{}%
\newcommand{\extratitle}[1]{\gdef\@extratitle{%
@@ -341,37 +266,41 @@
}}%
% \end{macrocode}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
+% \end{command}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\next@tpage}
-% \changes{v2.3b}{1995/07/24}{\cs{null} entfernt.}
-% \changes{v2.3g}{1996/01/14}{\cs{newpage} durch \cs{clearpage} ersetzt}
-% \changes{v3.11c}{2013/02/14}{Fußnoten der letzten Titelseite ausgeben}%^^A
-% \changes{v3.11c}{2013/02/14}{Fußnoten für die nächste Titelseite
-% initialisieren}%^^A
-% \changes{v3.20}{2015/10/14}{\cs{setparsizes} bzw. entsprechende Angaben
-% für die Längen eingefügt}%^^A
+% \changes{v2.3b}{1995/07/24}{\cs{null} removed}
+% \changes{v2.3g}{1996/01/14}{\cs{newpage} replaced by \cs{clearpage}}
+% \changes{v3.11c}{2013/02/14}{output \cs{@thanks}}
+% \changes{v3.11c}{2013/02/14}{initialize \cs{@thanks}}
+% \changes{v3.20}{2015/10/14}{\cs{setparsizes} resp. similar code added}
% \begin{macro}{\next@tdpage}
-% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)}%^^A
-% \changes{v3.12}{2013/11/21}{\cs{titlepage@restore} hinzugefügt}
-% Innerhalb eines Titels auf die nächste Seite bzw. nächste rechte Seite
-% umschalten.
+% \changes{v3.11c}{2013/02/14}{added}
+% \changes{v3.12}{2013/11/21}{\cs{titlepage@restore} added}
+% Because we have more than one title page but all title pages inside one
+% \env{titlepage} environment, we need a special kind of
+% \cs{newpage}/\cs{clearpage}.
+% \begin{description}
+% \item[ToDo:] Replace the original \cs{clearpage} and \cs{cleardoublepage}
+% inside \env{titlepage} by these two macros. With this, users could also
+% have more than one page inside a \env{titlepage} environment.
+% \end{description}
% \begin{macrocode}
\newcommand*{\next@tpage}{%
\@thanks\global\let\@thanks\@empty
@@ -387,58 +316,68 @@
\next@tpage\if@twoside \ifodd\value{page}\else\null\next@tpage\fi\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\maketitle}
-% \changes{v3.11c}{2013/02/14}{Schmutztitel bei Titelkopf in eigene
-% Anweisung verlagert}%^^A
-% \changes{v3.11c}{2013/02/14}{Verwendung von \cs{next@tdpage}}%^^A
-% Mit dieser Anweisung wird der Titel generiert, dessen Inhalt zuvor
-% gesetzt wurde. Es muss unterschieden werden, ob der Titel auf einer
-% eigenen Titelseite oder als Seitenkopf erstellt werden soll. Der
-% \KOMAScript-Titel ist u.\,U. sehr groß. Im Fall dass diverse
-% Zusatzelemente verwendet werden, sollte eigentlich immer eine
-% Titelseite verwendet werden.%
-% \changes{v2.1a}{1994/10/29}{das Hilfskonstrukt \cs{@maketitle}
-% wurde aus der Unterscheidung herausgenommen (für den Fall, dass
-% \cs{maketitle} von einem Paket überladen wird)}%^^A
-% \changes{v2.3a}{1995/07/08}{\texttt{plus} durch \cs{@plus}
-% ersetzt}%^^A
-% \changes{v2.3a}{1995/07/08}{\texttt{fill} durch \cs{fill}
-% ersetzt}%^^A
-% \changes{v2.3d}{1995/08/19}{\cs{fill} durch \texttt{fill}
-% ersetzt}%^^A
-% \changes{v2.3a}{1995/07/08}{\cs{vfil} durch \cs{vfill} ersetzt}%^^A
-% \changes{v2.3b}{1995/07/24}{Umbruch bei \cs{@extratitle} in der
-% beidseitigen Titelseite korrigiert}%^^A
-% \changes{v2.3g}{1996/01/14}{\cs{footnote} funktioniert nun auch
-% im Titel}%^^A
-% \changes{v2.4}{1996/02/25}{\cs{footnote} funktioniert nun
-% wirklich im Titel}%^^A
-% \changes{v2.4h}{1996/11/09}{egal ob der Titel auf eine Extraseite
-% kommt oder nicht, \cs{@title} wird mit \cs{sectfont} gesetzt,
-% wobei die Größe neuerdings danach eingestellt wird}%^^A
-% \changes{v2.4l}{1997/02/06}{symbolische Fußnoten und
-% Fußnotensymbolbreiten von 0\,pt zur besseren Zentrierung des
-% Autors sind auch bei Titelseiten angebracht}%^^A
-% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von
-% \cs{sectfont}}%^^A
-% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen}%^^A
-% \changes{v2.97c}{2007/08/31}{Vakatseiten in der Titelei immer im
-% Seitenstil \texttt{empty}}%^^A
-% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder
-% Titelkopf sollte erst in \cs{maketitle} und nicht schon bei dessen
-% Definition erfolgen}%^^A
-% \changes{v3.12}{2013/05/29}{Verwendung neuer Font-Elemente
-% \texttt{titlehead}, \texttt{author}, \texttt{date}, \texttt{publishers},
-% \texttt{dedication}}%^^A
-% \changes{v3.25}{2017/11/21}{Verwendung von \cs{@frontispiece}}%^^A
+% \end{macro}^^A \next@tdpage
+% \end{macro}^^A \next@tpage
+%
+% \begin{command}{\maketitle}
+% \changes{v2.3a}{1995/07/08}{\texttt{plus} replaced by \cs{@plus}}
+% \changes{v2.3a}{1995/07/08}{\texttt{fill} replaced by \cs{fill}}
+% \changes{v2.3a}{1995/07/08}{\cs{vfil} replaced by \cs{vfill}}
+% \changes{v2.3a}{1995/07/08}{using \cs{@makefnmark} in \cs{@makefntext}}
+% \changes{v2.3a}{1995/07/08}{\cs{@makefnmark} and \cs{@makefntext}
+% independent from math mode}
+% \changes{v2.3b}{1995/07/24}{page break inside \cs{@extratitle} in
+% double-sided mode fixed}
+% \changes{v2.3d}{1995/08/19}{\cs{fill} replaced by \texttt{fill}}
+% \changes{v2.3e}{1995/08/30}{support but ignore optional argument in
+% single-sided mode}
+% \changes{v2.3g}{1996/01/14}{several \cs{null} to \cs{next@tpage} added}
+% \changes{v2.3g}{1996/01/14}{\cs{footnote} in titles fixed}
+% \changes{v2.3g}{1996/01/14}{deleting \cs{@date}, \cs{title} etc. to save memory}
+% \changes{v2.3g}{1996/01/14}{\cs{gdef} replaced by \cs{global}\cs{let}}
+% \changes{v2.4}{1996/02/25}{\cs{footnote} in titles fixed again}
+% \changes{v2.4h}{1996/11/09}{always use \cs{sectfont} followed by the side
+% for the \cs{@title}}
+% \changes{v2.4l}{1997/02/06}{using footnote symbols with width 0}
+% \changes{v2.4l}{1997/02/06}{redefining \cs{\@makefnmark} instead of
+% \cs{@makefntext} only}
+% \changes{v2.8d}{2001/07/05}{using \cs{titlepagestyle} for in-page title}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} replaced by \cs{titlefont}}
+% \changes{v2.95c}{2006/08/21}{setting paragraph base values}
+% \changes{v2.97c}{2007/08/31}{interleaf pages with page style
+% \pstyle{emmpty}}
+% \changes{v3.04a}{2009/07/14}{distinguishing in-page titles and title pages
+% inside \cs{maketitle} instead of loading time}
+% \changes{v3.11c}{2013/02/14}{mock title moved to new macro}
+% \changes{v3.11c}{2013/02/14}{using \cs{next@tdpage}}
+% \changes{v3.12}{2013/05/29}{using font elements \fnt{titlehead},
+% \fnt{author}, \fnt{date}, \fnt{publishers}, \fnt{dedication}}
+% \changes{v3.12}{2013/11/21}{support for
+% \opt{titlepage\quotechar=firstiscover}}
+% \changes{v3.12}{2013/11/21}{retro page only if needed}
+% \changes{v3.12}{2013/11/21}{kill the title macros only in compatibility mode}
+% \changes{v3.12a}{2014/03/03}{orphan spaced fixed}
+% \changes{v3.12a}{2014/03/03}{output extra/mock title in one-side mode only
+% if not empty}
+% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} removed from \cs{@maketitle}
+% and \cs{@makeextrattitle}}
+% \changes{v3.13}{2013/10/31}{\cs{next@tdpage} replaced by
+% \cs{cleardoubleemptypage} after dedication (last title page)}
+% \changes{v3.19}{2015/08/25}{don't use empty \cs{titlepagestyle}}
+% \changes{v3.25}{2017/11/21}{support for \cs{@frontispiece}}
+% \changes{v3.27}{2019/01/01}{warning for not empty retro page in single-sided
+% mode}
+% \changes{v3.27}{2019/03/18}{empty \cs{@thanks} after usage}
+% \changes{v3.27}{2019/03/18}{deleting \cs{@thanks} always globally}
+% The user command that prints either the in-page title or the title pages
+% with all the title macros filled before.
% \begin{macrocode}
%<package&extend>\let\maketitle\relax\let\@maketitle\relax
\newcommand*\maketitle[1][1]{%
% \end{macrocode}
-% Da ab Version~3.12 auch mehrere \cs{maketitle} möglich sind, muss ggf. für
-% eine korrekte Definition von \cs{and} gesorgt werden:
+% To support several \cs{maketitle} in the same document, we have to take care
+% to use the correct \cs{and} every time. So we define it here (instead of
+% outside).
% \begin{macrocode}
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\else
@@ -449,8 +388,8 @@
}%
\fi
% \end{macrocode}
-% Es folgt die eigentliche Definition, die davon abhängt, ob wir uns im
-% doppelseitigen Modus befinden oder nicht.
+% Depending on in-page titles or title pages, we have to use different
+% code. First the title pages.
% \begin{macrocode}
\if@titlepage
\begin{titlepage}
@@ -459,14 +398,10 @@
%<!extend> #1%
}%
% \end{macrocode}
-% \changes{v3.12}{2013/11/21}{Berücksichtigung von
-% \texttt{titlepage!=firstiscover}}%^^A
-% \changes{v3.27}{2019/03/18}{immer \cs{global} beim Löschen von
-% \cs{@thanks}}%^^A
-% Ab Version~3.12 gibt es hier eine Sonderbehandlung für die erste Titelseite,
-% falls es sich dabei um eine Umschlagsseite handeln soll. In diesem Fall
-% werden die Maße der Seite verändert, was später per \cs{titlepage@restore}
-% ggf. wieder zurückgenommen wird.
+% From \KOMAScript~3.12 we need special treatment for the case this is the
+% first title page and the first one should be the cover. The changes here has
+% to be restored later. So we locally define \cs{titlepage@restore} to restore
+% the original parameters.
% \begin{macrocode}
\if@titlepageiscoverpage
\edef\titlepage@restore{%
@@ -553,10 +488,8 @@
\vfill\null
\if@twoside
% \end{macrocode}
-% \changes{v3.12}{2013/11/21}{Rückseite wird nur bei Bedarf ausgegeben.}%^^A
-% Ab Version~3.12 wird die Rückseite der Titelseite nur noch bei Bedarf
-% ausgegeben. Das gilt aber nur, wenn keine Kompatibilität mit früheren
-% Versionen verlangt ist.
+% From \KOMAScript~3.12 we show the retro page only if needed. It is needed in
+% double-sided mode, if the upper and lower elements are not empty.
% \begin{macrocode}
\@tempswatrue
\expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax
@@ -577,10 +510,8 @@
\@thanks\global\let\@thanks\@empty
\fi
% \end{macrocode}
-% \changes{v3.27}{2019/01/01}{Warnung für nicht leere Titelrückseite bei
-% einseitigen Dokumenten}%^^A
-% Bei einseitigen Dokumenten werden eventuell gesetzte Inhalte von
-% \cs{uppertitleback} oder \cs{lowertitleback} nicht ausgegeben.
+% In single-sided mode, we warn for used but never printed upper and lower
+% retro page variables.
% \begin{macrocode}
\else
\ifx\@uppertitleback\@empty\else
@@ -605,41 +536,24 @@
\next@tdpage\null\vfill
{\centering\usekomafont{dedication}{\@dedication \par}}%
\vskip \z@ \@plus3fill
- \@thanks\global\let\@thanks\@empty
% \end{macrocode}
-% \changes{v3.12}{2013/10/31}{Nach der Widmung kein \cs{next@tdpage},
-% sondern nur \cs{cleardoubleemptypage}}%^^A
+% \begin{description}
+% \item[ToDo:] Why can't we use \cs{next@tdpage} here? Would this be a
+% problem, if we redefine \cs{cleardoublepage} to \cs{next@tdpage}?
+% \end{description}
% \begin{macrocode}
+ \@thanks\global\let\@thanks\@empty
\cleardoubleemptypage
\fi
% \end{macrocode}
-% Falls wir uns noch immer auf einer Umschlagseite befinden, muss diese hier
-% beendet werden.
+% If we are still at a cover page, we have to restore the title page.
% \begin{macrocode}
\ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
\end{titlepage}
+ \else
% \end{macrocode}
-% \changes{v2.3a}{1995/07/08}{Verwendung von \cs{@makefnmark} in
-% \cs{@makefntext}}%^^A
-% \changes{v2.3a}{1995/07/08}{Definition von \cs{@makefnmark} und
-% \cs{@makefntext} unabhängig von math}%^^A
-% \changes{v2.3e}{1995/08/30}{optionales Argument bei der
-% einseitigen Version erlauben und ignorieren}%^^A
-% \changes{v2.3g}{1996/01/14}{mehrfach \cs{null} bei
-% \cs{next@tpage} ergänzt}%^^A
-% \changes{v2.4l}{1997/02/06}{es ist nicht mehr notwendig \cs{\@makefntext}
-% umzudefinieren, stattdessen wird nur \cs{\@makefnmark} umdefiniert}%^^A
-% \changes{v2.8d}{2001/07/05}{\cs{titlepagestyle} statt
-% \texttt{plain}}%^^A
-% \changes{v3.12a}{2014/03/03}{Leerzeichenfehler behoben}%^^A
-% \changes{v3.12a}{2014/03/03}{Schmutztitel wird nur ausgegeben, wenn er
-% nicht leer ist}%^^A
-% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@maketitle} und
-% \cs{@makeextrattitle} entfernt}%^^A
-% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn nicht leer}%^^A
-% \changes{v3.27}{2019/03/18}{\cs{@thanks} nach Benutzung löschen}%^^A
+% Now, the in-page title.
% \begin{macrocode}
- \else
\par
\@tempcnta=%
%<extend> ##1%
@@ -723,20 +637,10 @@
\endgroup
\fi
\setcounter{footnote}{0}%
-% \end{macrocode}
-% \changes{v3.12}{2013/11/21}{die Titelei wird nur noch bei Kompatibilität
-% zu früheren Versionen zerstört}%^^A
-% \begin{macrocode}
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\let\thanks\relax
\let\maketitle\relax
\let\@maketitle\relax
-% \end{macrocode}
-% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{global}\cs{let}
-% statt \cs{gdef}, um Speicher zu sparen}
-% \changes{v2.3g}{1996/01/14}{\cs{@date} und \cs{title}
-% u.\,ä. ebenfalls löschen, um Speicher zu sparen}
-% \begin{macrocode}
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
@@ -765,17 +669,16 @@
}%
% \end{macrocode}
% \begin{macro}{\@maketitle}
-% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen}%^^A
-% \changes{v3.11c}{2012/02/14}{Schmutztitel in eigene Anweisung verlagert}%^^A
-% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@maketitle}
-% entfernt}%^^A
+% \changes{v2.95c}{2006/08/21}{default paragraph settings}
+% \changes{v3.11c}{2012/02/14}{extra/mock title moved to \cs{@makeextratitle}}
+% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} removed}
% \begin{macro}{\@makeextratitle}
-% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)}%^^A
-% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@makeextrattitle}
-% entfernt}%^^A
-% Damit wird im Fall des Titelkopfes die eigentliche Arbeit geleistet.
+% \changes{v3.11c}{2013/02/14}{added}
+% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} removed}
% \begin{macro}{\@makefrontispiece}
-% \changes{v3.25}{2017/11/21}{neu}%^^A
+% \changes{v3.25}{2017/11/21}{added}
+% These do the printing of the main title, the extra or mock title and the
+% frontispiece (retro page of the mock title).
% \begin{macrocode}
\newcommand*{\@makeextratitle}{%
\ifx\@extratitle\@empty \else
@@ -828,56 +731,59 @@
\vskip 2em
}%
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@makefrontispiece
+% \end{macro}^^A \@makeextratitle
+% \end{macro}^^A \@maketitle
+% \end{command}^^A \maketitle
%
-% \begin{macro}{\coverpagetopmargin}
-% \changes{v3.12}{2013/11/21}{neu}%^^A
-% Oberer Rand für Umschlagsseiten.
+% \begin{command}{\coverpagetopmargin}
+% \changes{v3.12}{2013/11/21}{added}
+% Top margin of a cover page (\opt{titlepage=firstiscover}).
% \begin{macrocode}
\newcommand*{\coverpagetopmargin}{%
\dimexpr \topmargin+1in\relax
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\coverpagebottommargin}
-% \changes{v3.12}{2013/11/21}{neu}%^^A
-% Unterer Rand für Umschlagsseiten.
+% \begin{command}{\coverpagebottommargin}
+% \changes{v3.12}{2013/11/21}{added}
+% Bottom margin of a cover page (\opt{titlepage=firstiscover}).
% \begin{macrocode}
\newcommand*{\coverpagebottommargin}{%
2\dimexpr\coverpagetopmargin\relax
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\coverpageleftmargin}
-% \changes{v3.12}{2013/11/21}{neu}%^^A
-% Linker Rand für Umschlagsseiten.
+% \begin{command}{\coverpageleftmargin}
+% \changes{v3.12}{2013/11/21}{added}
+% Left margin of a cover page (\opt{titlepage=firstiscover}).
% \begin{macrocode}
\newcommand*{\coverpageleftmargin}{%
\dimexpr \evensidemargin+1in\relax
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\coverpagerightmargin}
-% \changes{v3.12}{2013/11/21}{neu}%^^A
-% Oberer Rand für Umschlagsseiten.
+% \begin{command}{\coverpagerightmargin}
+% \changes{v3.12}{2013/11/21}{added}
+% Right margin of a cover page (\opt{titlepage=firstiscover}).
% \begin{macrocode}
\newcommand*{\coverpagerightmargin}{\coverpageleftmargin}
% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Umgebung für die Titelseite}
+% \end{command}
%
% \begin{environment}{titlepage}
-% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim
-% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt
-% werden.
+% The environment to be used for title pages. Title pages are always
+% one-columned and use page style \pstyle{empty}. We have to take care to
+% reset this at the end of the title page.
+% \begin{description}
+% \item[ToDo:] Wouldn't it be better to use \cs{pagestyle} instead of
+% \cs{thispagestyle}, because \cs{pagestyle} would also be valid, if a user
+% uses more than one page inside a \env{titlepage} environment?
+% \item[ToDo:] See the note about \cs{next@tpage} above.
+% \end{description}
% \begin{macrocode}
%<package&extend>\scr@ifundefinedorrelax{titlepage}{%
\newenvironment{titlepage}{%
@@ -898,115 +804,139 @@
% \end{macrocode}
% \end{environment}
%
-% Im Fall von \textsf{scrextend} muss jetzt das Kürzel \emph{title} beendet
-% werden:
+% In case of package \pkg*{scrextend} the code of activatable \texttt{title}
+% is complete and should be used if activated.
% \begin{macrocode}
%<package&extend>}\csname scr@ext@immediate@title\endcsname
% \end{macrocode}
%
-% \subsection{Fonts für den Titel}
-%
-% \begin{macro}{\titlefont}
-% \changes{v2.8p}{2001/09/22}{neu}%^^A
-% Wie oben zu sehen ist, wird in der Titelei ein eigenes Schriftmakro
-% verwendet. Dieses ist als internes Makro zu verstehen. Der Anwender
-% sollte stattdessen auf das entsprechende Element zugreifen (siehe
-% unten).
-% \begin{macro}{\subject@font}
-% \changes{v2.8q}{2002/01/14}{neu (intern)}%^^A
-% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook},
-% \textsf{scrreprt} und \textsf{scrartcl}}
-% Ebenso verhält es sich mit den \emph{Subject} im Titel. Hier ist
-% aber von vornherein ein internes Makro definiert.
-% \begin{macrocode}
-\newcommand*\titlefont{\sectfont}%
-\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}%
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{KOMAfont}{subtitle}
-% \changes{v2.97c}{2007/06/20}{neu}%^^A
+% \begin{fontelement}{subtitle}
+% \changes{v2.97c}{2007/06/20}{added}
% \begin{macrocode}
\newkomafont{subtitle}{\usekomafont{title}\large}%
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{titlehead}
-% \changes{v3.12}{2013/05/29}{neu}%^^A
+% \begin{fontelement}{titlehead}
+% \changes{v3.12}{2013/05/29}{added}
% \begin{macrocode}
\newkomafont{titlehead}{}%
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{author}
-% \changes{v3.12}{2013/05/29}{neu}%^^A
+% \begin{fontelement}{author}
+% \changes{v3.12}{2013/05/29}{added}
% \begin{macrocode}
\newkomafont{author}{\Large}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{date}
-% \changes{v3.12}{2013/05/29}{neu}%^^A
+% \begin{fontelement}{date}
+% \changes{v3.12}{2013/05/29}{added}
% \begin{macrocode}
\newkomafont{date}{\Large}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{publishers}
-% \changes{v3.12}{2013/05/29}{neu}%^^A
+% \begin{fontelement}{publishers}
+% \changes{v3.12}{2013/05/29}{added}
% \begin{macrocode}
\newkomafont{publishers}{\Large}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{KOMAfont}{dedication}
-% \changes{v3.12}{2013/05/29}{neu}%^^A
+% \begin{fontelement}{dedication}
+% \changes{v3.12}{2013/05/29}{added}
% \begin{macrocode}
\newkomafont{dedication}{\Large}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{fontelement}
%
-% \begin{macro}{\scr@fnt@title}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{title}}
-% \begin{macro}{\scr@fnt@subject}
-% \changes{v2.8q}{2002/01/14}{neues Element \texttt{subject}}
-% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook},
-% \textsf{scrreprt} und \textsf{scrartcl}}
-% Die beiden Elemente, deren Schrift geändert werden kann.
+% \begin{fontelement}{title}
+% \changes{v2.8o}{2001/09/14}{added}
+% \begin{macro}{\titlefont}
+% \changes{v2.8p}{2001/09/22}{added}
+% Font to be used for the title. The font element has to be defined manually,
+% because of compatibility with \KOMAScript{} up to version 2.8n and old
+% \LaTeX~2.09 style \textsc{Script 2.0}. \cs{titlefont} is a user command for
+% compatibility only. So we index it a internal macro.
% \begin{macrocode}
+\newcommand*\titlefont{\sectfont}%
\newcommand*{\scr@fnt@title}{\titlefont}%
+% \end{macrocode}
+% \end{macro}
+% \end{fontelement}
+%
+% \begin{fontelement}{subject}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v2.95}{2002/06/26}{also with \cls*{scrbook}, \cls*{scrreprt},
+% \cls*{scrartcl}}
+% \begin{macro}{\subject@font}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v2.95}{2002/06/26}{also defined with \cls*{scrbook},
+% \cls*{scrreprt}, \cls*{scrartcl}}
+% This has to be defined manually, because of compatibility with \KOMAScript{}
+% up to version 2.8n and old \LaTeX~2.09 style \textsc{Script 2.0}.
+% \begin{macrocode}
+\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}%
\newcommand*{\scr@fnt@subject}{\subject@font}%
+%</body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{fontelement}
%
+% \begin{macrocode}
+%</!letter>
+% \end{macrocode}
%
-% \subsection{Umgebung für die Zusammenfassung}
+% \section{Implementation of the Abstract}
+%
+% The abstract is not part of the title but related to it. But maybe it is
+% also a kind of section.
+% \begin{description}
+% \item[ToDo:] Should this be moved to \file{scrkernel-sections.dtx} or a new
+% file \file{scrkernel-abstract.dtx}?
+% \end{description}
+% It is only defined for the classes \cls*{scrartcl} and \cls*{scrreprt} but
+% not for \cls*{scrbook}, \cls*{scrlttr2} or package \pkg*{scrextend}.
+% \begin{macrocode}
+%<*class&(article|report)>
+% \end{macrocode}
+%
+% \begin{option}{abstract}
+% \changes{v2.95c}{2006/08/21}{added}
+% \begin{macro}{\@abstrttrue,\@abstrtfalse,\if@abstrt}
+% \changes{v3.17}{2015/03/10}{using \pkg*{scrkbase}}
+% \KOMAScript{} provides abstracts with and without titles and only for the
+% classes \cls*{scrartcl} and \cls*{scrreprt}. Books usually use a chapter for
+% the abstract. We just need a simple boolean option, that sets a boolean
+% switch.
+% \begin{macrocode}
+%<*option>
+\KOMA@ifkey{abstract}{@abstrt}
+% \end{macrocode}
+% \begin{option}{abstracton,abstractoff}
+% \changes{v2.95c}{2006/08/21}{obsolete}
+% \changes{v3.01a}{2008/11/21}{standard not obsolete}
+% \changes{v3.27}{2019/03/13}{deprecated}
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{abstracton}{abstract=true}
+\KOMA@DeclareDeprecatedOption{abstractoff}{abstract=false}
+%</option>
+% \end{macrocode}
+% \end{option}^^A abstracton,abstractoff
+% \end{macro}^^A \if@abstrt
+% \end{option}^^A abstract
%
% \begin{environment}{abstract}
-% \textsf{scrartcl} und \textsf{scrreprt} bieten die Möglichkeit einer
-% Zusammenfassung, eines sogenannten \emph{Abstracts}. Wenn eine
-% Titelseite verlangt wurde, wird auch die Zusammenfassung auf eine
-% eigene Seite gesetzt. \textsf{scrbook} kennt keine Zusammenfassung
-% dieser Art. In Büchern werden Zusammenfassungen üblicherweise mit
-% Kapitelcharakter gesetzt.
-% \iffalse
-%<*class>
-%<*article|report>
-% \fi
-% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} zur Verhinderung
-% eines Seitenumbruchs nach dem Abstract-Kopf eingefügt}%^^A
-% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} zur
-% Verhinderung eines Seitenumbruchs vor dem Abstract-Kopf
-% eingefügt}%^^A
-% \changes{v2.7a}{2001/01/04}{statt \cs{section*} wird nun
-% \cs{addsec*} verwendet, damit die Kolumnentitel korrekt
-% behandelt werden}%^^A
-% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder
-% Titelkopf sollte erst in der Umgebung und nicht schon bei deren
-% Definition erfolgen}%^^A
+% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} added}
+% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} added}
+% \changes{v2.7a}{2001/01/04}{\cs{section*} replaced by \cs{addsec*}}
+% \changes{v3.04a}{2009/07/14}{\cs{if@titlepage} moved inside environment}
+% The abstract is different for documents with title page. We provide an
+% abstract with or without title.
% \begin{macrocode}
+%<*body>
\newenvironment{abstract}{%
\if@titlepage
\titlepage
@@ -1041,35 +971,33 @@
\fi
}
% \end{macrocode}
-% \end{environment}%^^A abstract
+% \end{environment}^^A abstract
%
-% \begin{macro}{\abstractname}
-% Name der Zusammenfassung.
+% \begin{command}{\abstractname}
+% \changes{v3.36}{2022/03/08}{explicit definition for English languages}
+% The name of the abstract (if a title is used).
% \begin{macrocode}
\newcommand*\abstractname{Abstract}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\abstractname{Abstract}
+%</body>
% \end{macrocode}
-% \end{macro}%^^A \abstractname
-%
-% \iffalse
-%</article|report>
-%</class>
-% \fi
+% \end{command}^^A \abstractname
%
+% \begin{macrocode}
+%</class&(article|report)>
+% \end{macrocode}
%
-% \iffalse
-%</body>
-% \fi
-%
-% \iffalse
-%</!letter>
-% \fi
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-title.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx b/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx
index 4da01b388d..f092e44a3b 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-tocstyle.dtx
-% Copyright (c) Markus Kohm, 2015-2021
+% Copyright (c) Markus Kohm, 2015-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-tocstyle.dtx
-% Copyright (c) Markus Kohm, 2015-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-tocstyle.dtx 3613 2021-07-15 12:25:10Z kohm $
+%%% From File: $Id: scrkernel-tocstyle.dtx 3703 2022-02-15 07:41:54Z kohm $
% The runs of run-time file generation:
%<preidentify>%%% (run: preidentify)
% - everything that is needed before selfidentification of resulting files
@@ -75,13 +39,12 @@
% - everything, that should be done immediately before leaving the file
% (unused)
%<*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-07-15 14:25:10 +0200 (Thu, 15 Jul 2021) $
+ \filedate$Date: 2022-02-15 08:41:54 +0100 (Di, 15. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3613 $
+ \filerevision$Revision: 3703 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-tocstyle.dtx}%
@@ -89,51 +52,55 @@
KOMA-Script source (TOC styles)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[main=english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-tocstyle.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{This is version \fileversion\ of file
- \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-tocstyle.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{english}
-% \section{Directory Styles}
-%
-% Directory (or ToC) styles are provided in cooperation with sectioning
-% styles. But they are also part of the basic functions of directories aka
-% tables or lists of contents. In \KOMAScript{} this is handled by package
-% \Package{tocbasic}. See the \KOMAScript{} manuals for more information.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
% \changes{v3.20}{2015/11/13}{new}
+% \changes{v3.36}{2022/02/14}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/14}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-tocstyle.dtx}
+% \title{The Predifined Directory Styles of
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{tocbasic} and the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-tocstyle.dtx} provides the predefined directory (or ToC)
+% styles. The basic styles of \pkg*{tocbasic} are defined independent from
+% the \KOMAScript{} classes. However, the \KOMAScript{} classes define their
+% own styles depending on the styles of \pkg*{tocbasic}.
+% \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 the Basic ToC Styles of Package
+% \pkg*{tocbasic} and the Specific ToC Styles of the \KOMAScript{} classes}
%
% \subsection{Settings independent from directories but nevertheless basis for
% them}
%
% Before \KOMAScript~3.20 the commands here were part of the \KOMAScript{}
-% classes. But now they are part of package \Package{tocbasic}, because they
+% classes. But now they are part of package \pkg*{tocbasic}, because they
% are more basic than only to be used by the \KOMAScript{} classes.
%
-% \iffalse
-%<*package>
-% \fi
%
-% \begin{macro}{\numberline}
+% \begin{command}{\numberline}
% \changes{v3.20}{2016/03/10}{\cs{numberline} defined indirectly by
% \cs{scr@numberline}}
% \begin{macro}{\scr@numberline}
@@ -146,7 +113,7 @@
% This macro is used indirectly in the ToC and has to be redefined to fulfil
% rules~5 and 6 of DUDDEN, 20th edition.
% \begin{macrocode}
-%<*body>
+%<*package&body>
\newcommand*{\scr@numberline}[1]{%
\numberline@box{%
\numberline@prefix
@@ -157,8 +124,8 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\usetocbasicnumberline}
-% \changes{v3.20}{2016/03/15}{new}
+% \begin{command}{\usetocbasicnumberline}
+% \changes{v3.20}{2016/03/15}{added}
% The macro tests, whether \cs{numberline} used \cs{scr@numberline}. If not,
% the optional argument is executed and a afterwards \cs{numberline} is
% redefined.
@@ -180,26 +147,26 @@
\if@tempswa #1\renewcommand*{\numberline}[1]{\scr@numberline{##1}}\fi
}
% \end{macrocode}
-% \end{macro}%^^A \usetocbasicnumberline
+% \end{command}^^A \usetocbasicnumberline
% \begin{macro}{\numberline@prefix}
-% \changes{v3.06}{2010/05/18}{new (internal)}
+% \changes{v3.06}{2010/05/18}{added}
% The default is just empty. It can be used, e.g., to print something before
% the number or to make the number right aligned.
% \begin{macrocode}
\newcommand*{\numberline@prefix}{}
% \end{macrocode}
-% \end{macro}%^^A \numberline@prefix
+% \end{macro}^^A \numberline@prefix
% \begin{macro}{\numberline@postfix}
-% \changes{v3.06}{2010/05/18}{neu (intern)}
+% \changes{v3.06}{2010/05/18}{added}
% The default is \cs{hfil} to make the number left aligned.
% \begin{macrocode}
\newcommand*{\numberline@postfix}{\hfil}
% \end{macrocode}
-% \end{macro}%^^A \numberline@postfix
+% \end{macro}^^A \numberline@postfix
% \begin{macro}{\numberline@numberformat}
-% \changes{v3.06}{2010/05/18}{new (internal)}
+% \changes{v3.06}{2010/05/18}{added}
% \changes{v3.12}{2013/11/22}{don't output anything, if argument expands to
-% an empty string}%^^A
+% an empty string}
% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
% Used to fulfil rules~5 and 6 of DUDEN, 20th edition.
% \begin{macrocode}
@@ -208,7 +175,7 @@
}
% \end{macrocode}
% \begin{macro}{\numberline@numberprefix}
-% \changes{v3.20}{2016/03/15}{new (internal)}
+% \changes{v3.20}{2016/03/15}{added}
% Used to prefix the number inside \cs{numberline@numberformat}. In opposite
% to \cs{numberline@prefix} it is only used, if the argument of
% \cs{numberline@numberformat} and therefore the argument of \cs{numberline}
@@ -216,9 +183,9 @@
% \begin{macrocode}
\newcommand*{\numberline@numberprefix}{}
% \end{macrocode}
-% \end{macro}%^^A \numberline@numberprefix
+% \end{macro}^^A \numberline@numberprefix
% \begin{macro}{\numberline@numberpostfix}
-% \changes{v3.20}{2016/03/15}{new (internal)}
+% \changes{v3.20}{2016/03/15}{added}
% Used to postfix the number inside \cs{numberline@numberformat}. In opposite
% to \cs{numberline@prefix} it is only used, if the argument of
% \cs{numberline@numberformat} and therefore the argument of \cs{numberline}
@@ -226,33 +193,25 @@
% \begin{macrocode}
\newcommand*{\numberline@numberpostfix}{}
% \end{macrocode}
-% \end{macro}%^^A \numberline@numberpostfix
-% \end{macro}%^^A \numberline@numberformat
+% \end{macro}^^A \numberline@numberpostfix
+% \end{macro}^^A \numberline@numberformat
% \begin{macro}{\numberline@box}
-% \changes{v3.06}{2010/05/18}{new (internal)}
+% \changes{v3.06}{2010/05/18}{added}
% Is used to put the sectioning number into a box.
% \begin{macrocode}
\newcommand*{\numberline@box}[1]{\hb@xt@\@tempdima{#1}}
-%</body>
+%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \numberline@box
-% \end{macro}%^^A \scr@numberline
-%
-% \iffalse
-%</package>
-%<*class>
-% \fi
+% \end{macro}^^A \numberline@box
+% \end{macro}^^A \scr@numberline
%
% \begin{macrocode}
-%<*body>
+%<*class&body>
\let\numberline\scr@numberline
-%</body>
+%</class&body>
% \end{macrocode}
-% \end{macro}%^^A \numberline
+% \end{command}^^A \numberline
%
-% \iffalse
-%</class>
-% \fi
%
% \subsection{The basics of the styles}
%
@@ -261,9 +220,9 @@
% command that defines the entry command and the corresponding options. The
% options are used to provide configuration features.
%
-% \iffalse
+% \begin{macrocode}
%<*package>
-% \fi
+% \end{macrocode}
%
% \changes{v3.20}{2015/11/17}{ToC styles have the \texttt{KOMAarg} member
% \texttt{.dte}}
@@ -275,7 +234,7 @@
% \end{macrocode}
%
% \begin{macro}{\@DefineTOCEntryOption}
-% \changes{v3.20}{2015/04/10}{new (internal)}
+% \changes{v3.20}{2015/04/10}{added}
% The definition of the options is done by a general interface. Important is,
% that the definition of the option is done indirectly, which means: Here we
% define a command, that defines the options when needed. Note, not only the
@@ -289,12 +248,10 @@
% \meta{definition}
% \item[\marg{definition}: \meta{code},] definition of the option
% \end{description}
-% \begin{macro}{\@DefineTOCEntryOptionWithoutDefault}
-% \changes{v3.20}{2015/11/10}{new (internal)}
-% \begin{macro}{\@DefineTOCEntryOptionWithDefault}
-% \changes{v3.20}{2015/11/10}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryOptionWithoutDefault,\@DefineTOCEntryOptionWithDefault}
+% \changes{v3.20}{2015/11/10}{added}
% Because of the options argument at position 3 (and because we've made this
-% before \Package{xparse} became part of the \LaTeX{} kernel), we need two
+% before \pkg{xparse} became part of the \LaTeX{} kernel), we need two
% auxiliary macros.
% \begin{macrocode}
%<*body>
@@ -316,12 +273,11 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryOption
+% \end{macro}^^A \@DefineTOCEntryOptionWithoutDefault,\@DefineTOCEntryOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryOption
%
% \begin{macro}{\@RelaxTOCEntryOptions}
-% \changes{v3.20}{2015/04/10}{new (internal)}
+% \changes{v3.20}{2015/04/10}{added}
% Reset all options of the current do-list back to \cs{relax}.
% \begin{macrocode}
%<*body>
@@ -340,10 +296,10 @@
\newcommand{\scr@dte@gobbleopt}[1][]{}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@RelaxTOCEntryOptions
+% \end{macro}^^A \@RelaxTOCEntryOptions
%
% \begin{macro}{\@DefineTOCEntryListOption}
-% \changes{v3.31}{2020/06/11}{new (internal)}%^^A
+% \changes{v3.31}{2020/06/11}{added}
% Use \cs{DefineTOCEntryOption} to define an option that represents a list.
% It has following parameters:
% \begin{description}
@@ -356,9 +312,9 @@
% \item[\oarg{init}: \meta{code},] initialization of the option
% \end{description}
% Between the \meta{prefix} and \meta{postfix} automatically
-% \cs{scr@dte@current} will be added. A copy option using ``\texttt{:=}''
-% instead of ``\texttt{=}'' and an add (append) option using ``\texttt{+=}''
-% instead of ``\texttt{=}'' is also defined.
+% \cs{scr@dte@current} will be added. A copy option using ``\opt{:=}''
+% instead of ``\opt{=}'' and an add (append) option using ``\opt{+=}''
+% instead of ``\opt{=}'' is also defined.
% \begin{macrocode}
%<*body>
\newcommand*{\@DefineTOCEntryListOption}[2]{%
@@ -368,7 +324,7 @@
}
% \end{macrocode}
% \begin{macro}{\@DefineTOCEntryListOptionWithoutDefault}
-% \changes{v3.31}{2020/06/11}{new (internal)}%^^A
+% \changes{v3.31}{2020/06/11}{added}
% This is the case without default value. So we only have to define
% the three internal options, that manipulate a macro.
% \begin{macrocode}
@@ -396,9 +352,9 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryListOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryListOptionWithoutDefault
% \begin{macro}{\@DefineTOCEntryListOptionWithDefault}
-% \changes{v3.31}{2020/06/11}{new (internal)}%^^A
+% \changes{v3.31}{2020/06/11}{added}
% This is the case with a default value. It's almost the same, but the
% argument numbers and using \cs{DefineFamilyKey} with optional argument.
% \begin{macrocode}
@@ -428,11 +384,11 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryListOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryListOption
+% \end{macro}^^A \@DefineTOCEntryListOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryListOption
%
% \begin{macro}{\@DefineTOCEntryLengthOption}
-% \changes{v3.20}{2015/12/04}{new (internal)}
+% \changes{v3.20}{2015/12/04}{added}
% Use \cs{DefineTOCEntryOption} to define an option that represents a length
% macro. The parameters are:
% \begin{description}
@@ -446,27 +402,22 @@
% \end{description}
% Later, when the option is defines, between \meta{prefix} and \meta{postfix}
% will be added \cs{scr@dte@current} automatically. This is the name of the
-% entry level, e.g., \texttt{subsection} or \texttt{figure}. Additionally to
-% the option \marg{option} itself a copy option \marg{option}\texttt{:} will
+% entry level, e.g., |subsection| or |figure|. Additionally to
+% the option \marg{option} itself a copy option \marg{option}\opt{:} will
% be defined. So it seems, that for the copy option a colon is before the
% equal sign. The value of the copy option has to be the name of another entry
% level and it copies the value of the same option of that entry
% level. Additionally an additive option with appended plus sign is
% defined. It adds the new value to the existing one.
-% \begin{macro}{\@DefineTOCEntryLengthOptionWithoutDefault}
-% \changes{v3.20}{2015/11/10}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryLengthOptionWithoutDefault,
+% \@DefineTOCEntryLengthOptionWithDefault}
+% \changes{v3.20}{2015/11/10}{added}
% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
% \changes{v3.27}{2019/10/03}{automatic definition of add option}
-% \begin{macro}{\@DefineTOCEntryLengthOptionWithDefault}
-% \changes{v3.20}{2015/11/10}{new (internal)}
-% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
-% \changes{v3.27}{2019/10/03}{automatic definition of add option}
-% \begin{macro}{\@DefineTOCEntryLengthOptionMacro}
-% \changes{v3.20}{2015/11/10}{new (internal)}
-% \begin{macro}{\@DefineTOCEntryAddLengthOptionMacro}
-% \changes{v3.27}{2019/10/03}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryLengthOptionMacro,\@DefineTOCEntryAddLengthOptionMacro}
+% \changes{v3.27}{2019/10/03}{added}
% Because of the options argument at position 3 (and because we've made this
-% before \Package{xparse} became part of the \LaTeX{} kernel), we need three
+% before \pkg{xparse} became part of the \LaTeX{} kernel), we need three
% auxiliary macros.
% \begin{macrocode}
%<*body>
@@ -553,14 +504,12 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryAddLengthOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryLengthOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryLengthOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryLengthOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryLengthOption
+% \end{macro}^^A \@DefineTOCEntryAddLengthOptionMacro,\@DefineTOCEntryLengthOptionMacro
+% \end{macro}^^A \@DefineTOCEntryLengthOptionWithDefault,\@DefineTOCEntryLengthOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryLengthOption
%
% \begin{macro}{\@DefineTOCEntryNumberOption}
-% \changes{v3.20}{2015/12/04}{new (internal)}
+% \changes{v3.20}{2015/12/04}{added}
% Use \cs{DefineTOCEntryOption} to define an option that represents a number
% macro. The parameters are:
% \begin{description}
@@ -574,27 +523,22 @@
% \end{description}
% Later, when the option is defines, between \meta{prefix} and \meta{postfix}
% will be added \cs{scr@dte@current} automatically. This is the name of the
-% entry level, e.g., \texttt{subsection} or \texttt{figure}. Additionally to
-% the option \marg{option} itself a copy option \marg{option}\texttt{:} will
+% entry level, e.g., |subsection| or |figure|. Additionally to
+% the option \marg{option} itself a copy option \marg{option}\opt{:} will
% be defined. So it seems, that for the copy option a colon is before the
% equal sign. The value of the copy option has to be the name of another entry
% level and it copies the value of the same option of that entry
% level. Additionally an additive option with appended plus sign is
% defined. It adds the new value to the existing one.
-% \begin{macro}{\@DefineTOCEntryNumberOptionWithoutDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryNumberOptionWithoutDefault,
+% \@DefineTOCEntryNumberOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{added}
% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
% \changes{v3.27}{2019/10/03}{automatic definition of add option}
-% \begin{macro}{\@DefineTOCEntryNumberOptionWithDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
-% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
-% \changes{v3.27}{2019/10/03}{automatic definition of add option}
-% \begin{macro}{\@DefineTOCEntryNumberOptionMacro}
-% \changes{v3.20}{2015/11/12}{new (internal)}
-% \begin{macro}{\@DefineTOCEntryAddNumberOptionMacro}
-% \changes{v3.27}{2019/10/03}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryNumberOptionMacro,\@DefineTOCEntryAddNumberOptionMacro}
+% \changes{v3.27}{2019/10/03}{added}
% Because of the options argument at position 3 (and because we've made this
-% before \Package{xparse} became part of the \LaTeX{} kernel), we need three
+% before \pkg{xparse} became part of the \LaTeX{} kernel), we need three
% auxiliary macros.
% \begin{macrocode}
%<*body>
@@ -669,14 +613,12 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryAddNumberOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryNumberOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryNumberOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryNumberOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryNumberOption
+% \end{macro}^^A \@DefineTOCEntryAddNumberOptionMacro,\@DefineTOCEntryNumberOptionMacro
+% \end{macro}^^A \@DefineTOCEntryNumberOptionWithDefault,\@DefineTOCEntryNumberOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryNumberOption
%
% \begin{macro}{\@DefineTOCEntryBooleanOption}
-% \changes{v3.20}{2015/12/04}{new (internal)}
+% \changes{v3.20}{2015/12/04}{added}
% Use \cs{DefineTOCEntryOption} to define an option that represents a boolean
% switch. The parameters are:
% \begin{description}
@@ -690,22 +632,20 @@
% \end{description}
% Later, when the option is defines, between \meta{prefix} and \meta{postfix}
% will be added \cs{scr@dte@current} automatically. This is the name of the
-% entry level, e.g., \texttt{subsection} or \texttt{figure}. Additionally to
-% the option \marg{option} itself a copy option \marg{option}\texttt{:} will
+% entry level, e.g., |subsection| or |figure|. Additionally to
+% the option \marg{option} itself a copy option \marg{option}\opt{:} will
% be defined. So it seems, that for the copy option a colon is before the
% equal sign. The value of the copy option has to be the name of another entry
% level and it copies the value of the same option of that entry
% level.
-% \begin{macro}{\@DefineTOCEntryBoolOptionWithoutDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
-% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
-% \begin{macro}{\@DefineTOCEntryBoolOptionWithDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryBoolOptionWithoutDefault,
+% \@DefineTOCEntryBoolOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{added}
% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
% \begin{macro}{\@DefineTOCEntryBoolOptionMacro}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \changes{v3.20}{2015/11/12}{added}
% Because of the options argument at position 3 (and because we've made this
-% before \Package{xparse} became part of the \LaTeX{} kernel), we need three
+% before \pkg{xparse} became part of the \LaTeX{} kernel), we need three
% auxiliary macros.
% \begin{macrocode}
%<*body>
@@ -761,13 +701,12 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryBoolOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryBoolOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryBoolOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryBooleanOption
+% \end{macro}^^A \@DefineTOCEntryBoolOptionMacro
+% \end{macro}^^A \@DefineTOCEntryBoolOptionWithDefault,\@DefineTOCEntryBoolOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryBooleanOption
%
% \begin{macro}{\@DefineTOCEntryIfOption}
-% \changes{v3.20}{2015/12/06}{new (internal)}
+% \changes{v3.20}{2015/12/06}{added}
% Use \cs{DefineTOCEntryOption} to define an option that represents an if
% command. The option itself is a boolean option. The parameters are:
% \begin{description}
@@ -780,22 +719,20 @@
% \end{description}
% Later, when the option is defines, between \meta{prefix} and \meta{postfix}
% will be added \cs{scr@dte@current} automatically. This is the name of the
-% entry level, e.g., \texttt{subsection} or \texttt{figure}. Additionally to
-% the option \marg{option} itself a copy option \marg{option}\texttt{:} will
+% entry level, e.g., |subsection| or |figure|. Additionally to
+% the option \marg{option} itself a copy option \marg{option}\opt{:} will
% be defined. So it seems, that for the copy option a colon is before the
% equal sign. The value of the copy option has to be the name of another entry
% level and it copies the value of the same option of that entry
% level.
-% \begin{macro}{\@DefineTOCEntryIfOptionWithoutDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
-% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
-% \begin{macro}{\@DefineTOCEntryIfOptionWithDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryIfOptionWithoutDefault,
+% \@DefineTOCEntryIfOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{added}
% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
% \begin{macro}{\@DefineTOCEntryIfOptionMacro}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \changes{v3.20}{2015/11/12}{added}
% Because of the options argument at position 3 (and because we've made this
-% before \Package{xparse} became part of the \LaTeX{} kernel), we need three
+% before \pkg{xparse} became part of the \LaTeX{} kernel), we need three
% auxiliary macros.
% \begin{macrocode}
%<*body>
@@ -851,13 +788,12 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DefineTOCEntryIfOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryIfOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryIfOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryIfOption
+% \end{macro}^^A \@DefineTOCEntryIfOptionMacro
+% \end{macro}^^A \@DefineTOCEntryIfOptionWithDefault,\@DefineTOCEntryIfOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryIfOption
%
% \begin{macro}{\@DefineTOCEntryCommandOption}
-% \changes{v3.20}{2015/11/17}{new (internal)}
+% \changes{v3.20}{2015/11/17}{added}
% Use \cs{DefineTOCEntryOption} to define an option that represents a
% macro. The parameters are:
% \begin{description}
@@ -871,31 +807,29 @@
% \end{description}
% Later, when the option is defines, between \meta{prefix} and \meta{postfix}
% will be added \cs{scr@dte@current} automatically. This is the name of the
-% entry level, e.g., \texttt{subsection} or \texttt{figure}. Additionally to
-% the option \marg{option} itself a copy option \marg{option}\texttt{:} will
+% entry level, e.g., |subsection| or |figure|. Additionally to
+% the option \marg{option} itself a copy option \marg{option}\opt{:} will
% be defined. So it seems, that for the copy option a colon is before the
% equal sign. The value of the copy option has to be the name of another entry
% level and it copies the value of the same option of that entry
% level. Additionally an appending option with appended plus sign is
% defined. It appends the new code to the existing one.
% \begin{macro}{\@DefineTOCEntryCommandOptionWithoutDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \changes{v3.20}{2015/11/12}{added}
% \begin{macro}{\@@DefineTOCEntryCommandOptionWithoutDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \changes{v3.20}{2015/11/12}{added}
% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
% \changes{v3.27}{2019/10/03}{automatic definition of add option}
% \begin{macro}{\@DefineTOCEntryCommandOptionWithDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \changes{v3.20}{2015/11/12}{added}
% \begin{macro}{\@@DefineTOCEntryCommandOptionWithDefault}
-% \changes{v3.20}{2015/11/12}{new (internal)}
+% \changes{v3.20}{2015/11/12}{added}
% \changes{v3.27}{2019/10/02}{automatic definition of copy option}
% \changes{v3.27}{2019/10/03}{automatic definition of add option}
-% \begin{macro}{\@DefineTOCEntryCommandOptionMacro}
-% \changes{v3.20}{2015/11/12}{new (internal)}
-% \begin{macro}{\@@DefineTOCEntryCommandOptionMacro}
-% \changes{v3.20}{2015/11/26}{new (internal)}
+% \begin{macro}{\@DefineTOCEntryCommandOptionMacro,\@@DefineTOCEntryCommandOptionMacro}
+% \changes{v3.20}{2015/11/26}{added}
% Because of the options argument at position 3 (and because we've made this
-% before \Package{xparse} became part of the \LaTeX{} kernel), we need three
+% before \pkg{xparse} became part of the \LaTeX{} kernel), we need three
% auxiliary macros.
% \begin{macrocode}
%<*body>
@@ -941,9 +875,7 @@
\unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}%
}%
\else
-%<class> \ClassError{\KOMAClassName
-%<package> \PackageError{tocbasic%
- }{only one argument supported}{%
+ \PackageError{tocbasic}{only one argument supported}{%
\string\DefineTOCEntryCommandOption\space currently supports only
commands with\MessageBreak
at most one argument not #5}%
@@ -1001,9 +933,7 @@
\unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}%
}%
\else
-%<class> \ClassError{\KOMAClassName
-%<package> \PackageError{tocbasic%
- }{only one argument supported}{%
+ \PackageError{tocbasic}{only one argument supported}{%
\string\DefineTOCEntryCommandOption\space currently supports only
commands with\MessageBreak
at most two argument not #6}%
@@ -1020,18 +950,16 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@@DefineTOCEntryCommandOptionMacro
-% \end{macro}%^^A \@DefineTOCEntryCommandOptionMacro
-% \end{macro}%^^A \@@DefineTOCEntryCommandOptionWithDefault
-% \end{macro}%^^A \@DefineTOCEntryCommandOptionWithDefault
-% \end{macro}%^^A \@@DefineTOCEntryCommandOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryCommandOptionWithoutDefault
-% \end{macro}%^^A \@DefineTOCEntryCommandOption
+% \end{macro}^^A \@@DefineTOCEntryCommandOptionMacro,\@DefineTOCEntryCommandOptionMacro
+% \end{macro}^^A \@@DefineTOCEntryCommandOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryCommandOptionWithDefault
+% \end{macro}^^A \@@DefineTOCEntryCommandOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryCommandOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryCommandOption
%
-% \begin{macro}{\@AddToDeclareTOCStyleEntryPreCheckNeeds}
-% \changes{v3.20}{2015/12/06}{new (internal)}
-% \begin{macro}{\@PreToDeclareTOCStyleEntryPreCheckNeeds}
-% \changes{v3.20}{2015/12/06}{new (internal)}
+% \begin{macro}{\@AddToDeclareTOCStyleEntryPreCheckNeeds,
+% \@PreToDeclareTOCStyleEntryPreCheckNeeds}
+% \changes{v3.20}{2015/12/06}{added}
% Before the existence of the mandatory commands can be tested in
% \cs{DeclareTOCStyleEntry}, a hook will be executed. To add code to this hook
% we have this command with the following parameter:
@@ -1054,11 +982,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@PreToDeclareTOCStyleEntryPreCheckNeeds
-% \end{macro}%^^A \@AddToDeclareTOCStyleEntryPreCheckNeeds
+% \end{macro}^^A \@AddToDeclareTOCStyleEntryPreCheckNeeds,\@PreToDeclareTOCStyleEntryPreCheckNeeds
%
% \begin{macro}{\@TOCEntryStyleNeedsCommandByOption}
-% \changes{v3.20}{2015/12/04}{new (internal)}
+% \changes{v3.20}{2015/12/04}{added}
% Adds one or more commands to the list of mandatory commands. The parameters
% are:
% \begin{description}
@@ -1080,12 +1007,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@TOCEntryStyleNeedsCommandByOption
+% \end{macro}^^A \@TOCEntryStyleNeedsCommandByOption
%
-% \begin{macro}{\TOCEntryStyleInitCode}
-% \changes{v3.20}{2015/11/19}{new}
-% \begin{macro}{\TOCEntryStyleStartInitCode}
-% \changes{v3.20}{2015/11/25}{new}
+% \begin{command}{\TOCEntryStyleInitCode,\TOCEntryStyleStartInitCode}
+% \changes{v3.20}{2015/11/25}{added}
% Executes commands before a ToC entry level command of this style is defined
% and before the \emph{needs} list will be executed. The parameters are:
% \begin{description}
@@ -1113,10 +1038,9 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \TOCEntryStyleStartInitCode
-% \end{macro}%^^A \TOCEntryStyleInitCode
+% \end{command}^^A \TOCEntryStyleInitCode,\TOCEntryStyleStartInitCode
% \begin{macro}{\@ExecuteTOCEntryStyleInitCode}
-% \changes{v3.20}{2015/12/04}{new (internal)}
+% \changes{v3.20}{2015/12/04}{added}
% Executes the init code of one style. The first argument is the name of the
% style, the second the name of the ToC entry level, which will be used as
% argument of the init code (see above).
@@ -1165,33 +1089,28 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \ExecuteTOCEntryStyleInitCode
+% \end{macro}^^A \@ExecuteTOCEntryStyleInitCode
+%
%
-% \selectlanguage{ngerman}
-% \begin{macro}{\DeclareTOCStyleEntry}
-% \changes{v3.20}{2015/11/13}{neu}
-% Diese Anweisung definiert einen Verzeichniseintragsbefehl. Dabei wird auch
-% geprüft, ob all benötigten Befehle definiert sind. Falls das nicht der Fall
-% ist, wird der Verzeichniseintragsbefehl nicht definiert, sondern ein Fehler
-% gemeldet. Für die Definition werden folgende Argumente verwendet.
+% \begin{command}{\DeclareTOCStyleEntry}
+% \changes{v3.20}{2015/11/13}{added}
+% This user command defines a new ToC entry command. It tests, if all needed
+% style macros are already defined. Otherwise an error will be shown and the
+% ToC entry command will not be defined. The arguments are:
% \begin{description}
-% \item[\oarg{Optionen}:] Komma separierte Liste von Optionen für die
-% Definition des Eintrags.
-% \item[\marg{Stil}:] Der Stil \meta{string}, in dem der Verzeichniseintrag
-% sein soll.
-% \item[\marg{Gliederungsebene}:] Der Name \meta{string} der Gliederungsebene
-% für die ein Verzeichniseintrag definiert werden soll.
+% \item[\oarg{options}:] comma-separated list of options to specify the entry;
+% \item[\marg{style}:] a string, that specifies the style of the ToC entry;
+% \item[\marg{level name}:] a string, that specifies the name of the
+% sectioning level (or float environment), related to the ToC entry;
% \end{description}
-% Es wird außerdem eine Anweisung \cs{scr@dte@def@l@\meta{Stil}} benötigt,
-% über die dann die eigentliche Definition der Eintragsanweisung
-% erfolgt. Diese hat genau ein Argument: \meta{Gliederungsebene}.
+% The real macro to define a ToC entry command is
+% \cs{scr@dte@def@l@\meta{style}}. That needs exactly one argument, the
+% \meta{level name}.
% \begin{macrocode}
%<*body>
\newcommand*{\DeclareTOCStyleEntry}[3][]{%
\scr@ifundefinedorrelax{scr@dte@def@l@#2}{%
-%<class> \ClassError{\KOMAClassName
-%<package> \PackageError{tocbasic%
- }{toc entry style `#2' undefined}{%
+ \PackageError{tocbasic}{toc entry style `#2' undefined}{%
Somebody told me to define toc entry `#3' with style `#2',\MessageBreak
but I do not know style `#2'.\MessageBreak
You should first define the style then define the entry.\MessageBreak
@@ -1222,9 +1141,7 @@
\aftergroup\@tempswatrue
\def\do##1##2##3##4{%
\scr@ifundefinedorrelax{##1#3##2}{%
-%<class> \ClassError{\KOMAClassName
-%<package> \PackageError{tocbasic%
- }{toc style `#2' needs ##4}{%
+ \PackageError{tocbasic}{toc style `#2' needs ##4}{%
Usually the ##4 is defined using option `##3'.\MessageBreak
In some cases it may be set defining command
`\expandafter\string\csname ##1#3##2\endcsname'.\MessageBreak
@@ -1241,25 +1158,23 @@
\if@tempswa
\@nameuse{scr@dte@def@l@#2}{#3}%
% \end{macrocode}
-% \changes{v3.27}{2019/10/02}{macro name prefix for style information
-% changed}%^^A
+% \changes{v3.27}{2019/10/02}{macro name prefix for style information changed}
% Note: Before \KOMAScript~3.27 the style name of an entry was stored in
% \cs{scr@dte@\meta{level name}@style}. But this war wrong, because the prefix
-% \texttt{scr@dte} is used for attributes of the style (while declaring an
+% |scr@dte| is used for attributes of the style (while declaring an
% entry), but the style is an attribute of the entry. So usage of the prefix
-% \texttt{scr@tso} would be much better. This means usage of
+% |scr@tso| would be much better. This means usage of
% \cs{scr@dte@\meta{level name}@style} is deprecated and should be replaced by
% \cs{scr@tso@\meta{level name}@style}.
% \begin{macrocode}
\expandafter\edef\csname scr@dte@#3@style\endcsname{#2}%
\expandafter\edef\csname scr@tso@#3@style\endcsname{#2}%
% \end{macrocode}
-% \changes{v3.21}{2016/06/09}{\cs{toclevel@\emph{ebene}} wird für
-% \textsf{hyperref} neu gesetzt}%^^A
-% Da verschiedene Pakete davon ausgehen, dass die Ebene
-% \textsf{hyperref}-kompatibel gespeichert ist, setzen wir die hier
-% zusätzlich. Das \textsf{hyperref} die Einstellungen ggf. überschreibt,
-% machen wir das in der Dokumentpräambel auch mehrfach.
+% \changes{v3.21}{2016/06/09}{\cs{toclevel@\emph{level}} added for \pkg{hyperref}}
+% At least \pkg{hyperref}, but several other packages too, depend on a
+% \pkg{hyperref} compatible storage of the level number. So we define it here
+% additionally. Unfortunately \pkg{hyperref} overwrites this definition, so we
+% do so after loading the package and sometimes also at |\begin{document}|.
% \begin{macrocode}
\expandafter\let\csname toclevel@#3\expandafter\endcsname
\csname #3tocdepth\endcsname
@@ -1279,10 +1194,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \DeclareTOCStyleEntry
+% \end{command}^^A \DeclareTOCStyleEntry
%
-% \begin{macro}{\DeclareTOCStyleEntries}
-% \changes{v3.26}{2018/08/27}{new}%^^A
+% \begin{command}{\DeclareTOCStyleEntries}
+% \changes{v3.26}{2018/08/27}{added}
% Use \cs{DeclareTOCStyleEntry} to define a list of entries, all with the same
% options and style.
% \begin{macrocode}
@@ -1305,26 +1220,24 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \DeclareTOCStyleEntries
+% \end{command}^^A \DeclareTOCStyleEntries
%
-% \begin{macro}{\DeclareTOCEntryStyle}
-% \changes{v3.20}{2015/11/17}{neu}
+% \begin{command}{\DeclareTOCEntryStyle}
+% \changes{v3.20}{2015/11/17}{added}
% \begin{macro}{\@DeclareTOCEntryStyle}
-% \changes{v3.20}{2015/11/17}{neu (intern)}
-% Über diese Anweisung wir ein neuer Stil für TOC-Einträge definiert. Ein Stil
-% besteht aus:
+% \changes{v3.20}{2015/11/17}{added}
+% The user command is used to define a new style for ToC entries. The
+% arguments are:
% \begin{description}
-% \item[\marg{Stil}:] Der Stil \meta{string}, der definiert werden soll.
-% \item[\oarg{Initialisierungscode}:] Dieser Code wird bei der Definition
-% eines Verzeichnisbefehls ausgeführt und enthält beispielsweise
-% Optionendeklarationen. Es ist zu beachten, dass dieser Code ggf. auch
-% mehrfach ausgeführt werden kann!
-% \item[\marg{Code}:] Der Code, der ausgeführt wird, wenn ein
-% Verzeichniseintrag ausgegeben werden soll.
+% \item[\marg{style}:] a string, that represents the name of the style;
+% \item[\oarg{initialization code}:] code, e.g., to initialize the options,
+% that will be used to define the ToC entry command (note: this code can be
+% executed more than once);
+% \item[\marg{code}:] code, that will be used to generate a ToC entry while
+% loading the auxiliary file of the ToC;
% \end{description}
-% Unabhängig davon, ob eine \meta{Optionendeklaration} angegeben ist oder
-% nicht, wird immer eine Option \texttt{level} definiert, über die die
-% Verzeichnisebene einen nummerischen Wert erhält.
+% Independent from the \meta{initialization code}, \opt{level} is always
+% defined, because a numerical ToC level is always needed.
% \begin{macrocode}
%<*body>
\newcommand*{\DeclareTOCEntryStyle}[1]{%
@@ -1348,91 +1261,60 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \@DeclareTOCEntryStyle
-% \end{macro}%^^A \DeclareTOCEntryStyle
+% \end{macro}^^A \@DeclareTOCEntryStyle
+% \end{command}^^A \DeclareTOCEntryStyle
%
-% \begin{macro}{\TOC@EntryStartHook}
-% \changes{v3.20}{2016/01/12}{neu (intern)}
-% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert
-% ist, kann vor dem jeweiligen Eintrag über einen Haken eine Reihe
-% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist
-% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese
-% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch
-% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil
-% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein
-% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine
-% Anweisung, um diesen zu ändern oder zu erweitern.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\TOC@EntryStartHook}[1]{}
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \TOC@EntryStartHook
%
-% \begin{macro}{\TOC@EntryEndHook}
-% \changes{v3.20}{2016/01/12}{neu (intern)}
-% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert
-% ist, kann nach dem jeweiligen Eintrag über einen Haken eine Reihe
-% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist
-% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese
-% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch
-% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil
-% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein
-% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine
-% Anweisung, um diesen zu ändern oder zu erweitern.
+% \begin{macro}{\TOC@EntryStartHook,\TOC@EntryEndHook}
+% \changes{v3.20}{2016/01/12}{added}
+% For every ToC entry, that has been defined by \KOMAScript{}, there is one
+% \emph{hook}, that will be executed before the corresponding ToC entry, and
+% another \emph{hook}, that will executed after the corresponding ToC entry. Inside
+% the \emph{hook} commands \texttt{\#1} is the name of the ToC level. Generally
+% the \emph{hook} commands should not do any output and should neither change
+% \cs{lastpenalty} nor \len{lastskip}. The user is responsible for this!
+% However, because this \emph{hook} is very dangerous, we only have two
+% internal macros for it but no user command to add new commands to the
+% hook. So it is a kind of last chance mechanism.
% \begin{macrocode}
%<*body>
+\newcommand*{\TOC@EntryStartHook}[1]{}
\newcommand*{\TOC@EntryEndHook}[1]{}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \TOC@EntryEndHook
+% \end{macro}^^A \TOC@EntryStartHook,\TOC@EntryEndHook
+%
%
-% \begin{macro}{\CloneTOCEntryStyle}
-% \changes{v3.20}{2015/11/25}{neu}
-% Diese Anweisung dupliziert einen Stil samt seiner Optionen und
-% Befehle. Anschließend kann man ihn beispielsweise verändern. Das erste
-% Argument ist der Name des ursprünglichen Stils, das zweite der neue Name.
+% \begin{command}{\CloneTOCEntryStyle}
+% \changes{v3.20}{2015/11/25}{added}
+% The user command clones the style from \texttt{\#1} to style
+% \texttt{\#2}. After cloning you can change the new style.
% \begin{macrocode}
%<*body>
\newcommand*{\CloneTOCEntryStyle}[2]{%
% \end{macrocode}
-% Als erstes wird die Anweisung kopiert, mit der die \cs{l@\dots}-Anweisungen
-% definiert werden.
+% First of all copy the ToC entry command.
% \begin{macrocode}
\expandafter\let\csname scr@dte@def@l@#2\expandafter\endcsname
\csname scr@dte@def@l@#1\endcsname
% \end{macrocode}
-% Der Init-Code wird kopiert.
+% Then copy the \meta{initialization code}.
% \begin{macrocode}
\expandafter\let\csname scr@dte@#2@init\expandafter\endcsname
\csname scr@dte@#1@init\endcsname
}
%</body>
% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Vorgefertigte Verzeichniseintragsstile}
+% \end{command}
%
-% Hier wird quasi an Beispielen gezeigt, wie man Verzeichniseintragsstile
-% definieren kann. Einige dieser Stile sind sehr grundlegend. Andere sind
-% stellen Erweiterungen der grundlegenden Stile dar. Die Stile können über
-% mehrere \texttt{docstrip}-Durchgänge einzeln in den Quelltext gelangen.
%
-% \begin{macro}{\@pnumwidth}
-% \changes{v3.27}{2019/05/11}{aus den Klassen in das Paket verschoben}%^^A
-% \begin{macro}{\@tocrmarg}
-% \changes{v3.27}{2019/05/11}{aus den Klassen in das Paket verschoben}%^^A
-% \begin{macro}{\@dotsep}
-% \changes{v3.27}{2019/05/11}{aus den Klassen in das Paket verschoben}%^^A
-% Einige Makros für die Formatierung der Verzeichniseinträge:
+% \begin{macro}{\@pnumwidth,\@tocrmarg,\@dotsep}
+% \changes{v3.27}{2019/05/11}{moved from the classes to the package}
% \begin{description}
-% \item[\cs{@pnumwidth}] ist der Platz für die Seitenzahl.
-% \item[\cs{@tocrmarg}] ist der rechte Rand bei mehrzeiligen
-% Verzeichniseinträgen. Dieser wird hier größer als \cs{@pnumwidth}
-% gewählt.
-% \item[\cs{\@dotsep}] ist der Abstand zwischen den einzelnen
-% Punkten.
+% \item[\cs{@pnumwidth}] is the space of the page number.
+% \item[\cs{@tocrmarg}] is the right margin of entries with more than one
+% line. Usually this should be larger than \cs{@pnumwidth}.
+% \item[\cs{\@dotsep}] is the space between the dots of a dotted connecting line.
% \end{description}
% \begin{macrocode}
%<*body>
@@ -1442,18 +1324,22 @@
%</body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
%
-% \iffalse
-%<*style>
-% \fi
+% \subsection{Predefined ToC entry styles}
+%
+% You can read this code as examples for defining ToC entry styles using the
+% commands from the previous sections. Some of them are very basic. Others are
+% extensions of the basic styles. \file{scrdocstrip.tex} has to process this
+% code several times to generate all the styles.
%
+% \begin{macrocode}
+%<*style>
+% \end{macrocode}
+%
% \begin{macro}{\scr@dte@def@l@gobble}
-% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
-% \texttt{gobble}}%^^A
-% Der aller einfachste Verzeichniseintragsstil ist \texttt{gobble}. Er nimmt
+% \changes{v3.20}{2015/11/20}{ToC style \texttt{gobble} added}
+% Der aller einfachste Verzeichniseintragsstil ist |gobble|. Er nimmt
% die beiden Argumente für den Verzeichniseintrag und die Seitenzahl und
% vergisst sie unabhängig von der Ebene des Eintrags einfach. Daher benötigt
% dieser Stil auch keinerlei Optionen oder Initialisierung.
@@ -1463,49 +1349,36 @@
\DeclareTOCEntryStyle{gobble}{}%
%</gobble>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@def@l@gobble
+% \end{macro}^^A \scr@dte@def@l@gobble
%
% \begin{macro}{\scr@dte@def@l@dottedtocline}
-% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
-% \texttt{dottedtocline}}%^^A
-% Der einfachste echte Verzeichniseintragsstil ist
-% \texttt{dottedtocline}. Dieser verwendet einfach nur die
-% \LaTeX-Kern-Anweisung \cs{dottedtocline}. Für \KOMAScript{} selbst sollte
-% man dieses Stil nicht verwenden. Man kann ihn aber beispielsweise mit den
-% Standardklassen verwenden, wenn man kompatibel bleiben will. Dieser benötigt
-% jedoch bereits Angaben bezüglich der Nummernbreite und des
-% Eintragseinzugs. Der ohnehin immer definierte Level wird ebenfalls
-% ausgewertet.
+% \changes{v3.20}{2015/11/20}{ToC style \texttt{dottedtocline} added}
+% The most simple real ToC entry style is |dottedtocline|. It used the
+% \LaTeX{} kernel macro \cs{@dottedtocline}. You should not use this style for
+% \KOMAScript. But it may be useful to be used with the standard
+% classes. However, in my opinion style |tocline| would always be the better one.
% \begin{macro}{\scr@dte@def@l@undottedtocline}
-% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
-% \texttt{undottedtocline}}%^^A
-% Im Unterschied dazu entspricht der Verzeichniseintragsstil
-% \texttt{undottedtocline} dem der \texttt{chapter}-Ebene der
-% Standardklassen. Im Unterschied zu diesen wird jedoch ein Eintragseinzug
-% unterstützt.
+% \changes{v3.20}{2015/11/20}{ToC style \texttt{undottedtocline} added}
+% Style |undottedtocline| corresponds to the style, that is used for chapter
+% entries of the standard class \cls*{book} or \cls*{report}. In opposite to
+% that, it also supports an horizontal indent. So you can alternatively
+% interpret it as a variant of |dottedtocline| without dots.
% \begin{macro}{\scr@dte@def@l@largetocline}
-% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
-% \texttt{largetocline}}%^^A
-% Im Unterschied dazu entspricht der Verzeichniseintragsstil
-% \texttt{largetocline} dem der \texttt{part}-Ebene der Standardklassen. Im
-% Unterschied zu diesen wird jedoch ein Eintragseinzug unterstützt. Eine
-% Nummernbreite gibt es hingegen nicht. Stattdessen werden die Einträge nicht
-% hängend gesetzt.
+% \changes{v3.20}{2015/11/20}{ToC style \texttt{largetocline} added}
+% Style |largetocline| corresponds to the style, that is used for part entries
+% of the standard classes. Once again and in opposite to the original code of
+% the standard classes, this style supports an entry indent. But an additional
+% number width is not supported. Instead the entries will be printed hanging.
% \begin{macro}{\scr@dte@def@l@tocline}
-% \changes{v3.20}{2015/11/22}{neuer Verzeichniseintragsstil
-% \texttt{tocline}}%^^A
-% Das hingegen wird der hochflexible Stil für Verzeichniseinträge, die aus
-% einer oder mehreren Zeilen bestehen. Dieser wird später über diverse
-% Hilfsmakros definiert.
+% \changes{v3.20}{2015/11/22}{ToC style \texttt{tocline} added}
+% |tocline| is a very flexible style. It is intended to be used for entries with
+% one or more line. It is used for all the ToC entries of the \KOMAScript{}
+% classes. The classes also clone this style several times.
% \begin{macro}{\scr@dte@def@l@toctext}
-% \changes{3.27}{2019/07/08}{neuer Verzeichniseintragsstil
-% \texttt{toctext}}%^^A
-% Während alle bisherigen Stile Zeilen oder eigentlich Absätze im Verzeichnis
-% erstellen, soll dieser Stil lediglich Text innerhalb eines Absatzes
-% erzeugen. Die einzelnen Einträge werden also hintereinander
-% ausgegeben. Dabei können auch Zeilenumbrüche innerhalb eines Eintrags
-% vorkommen. Dieser Stil teilt einige, wenige Optionen mit dem Stil
-% \texttt{tocline}. Die Stile haben aber auch eigene Optionen.
+% \changes{3.27}{2019/07/08}{ToC style \texttt{toctext} added}
+% So far all mentioned styles are intended to generate one paragraph per
+% entry. Style |toctext| generated only one paragraph for all consecutive
+% entries. So it prints \emph{text inside} a paragraph.
% \begin{macrocode}
%<*dottedtocline|undottedtocline|largetocline|tocline|toctext>
%<*dottedtocline>
@@ -1529,10 +1402,8 @@
\DeclareTOCEntryStyle{tocline}[{%
%</tocline>
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.31}{2020/06/09}{style \texttt{toctext} has also option
-% \texttt{beforeskip}}%^^A
-% \selectlanguage{ngerman}%^^A
+% \changes{v3.31}{2020/06/09}{style \texttt{toctext} also provides option
+% \opt{beforeskip}}
% \begin{macrocode}
%<*tocline|toctext>
\DefineTOCEntryLengthOption{beforeskip}%
@@ -1544,7 +1415,7 @@
\DefineTOCEntryIfOption{dynnumwidth}%
{scr@tso@}{@dynnumwidth}{dynamic number width flag}%
% \end{macrocode}
-% \changes{v3.31}{2020/06/08}{option for indent follows list}%^^A
+% \changes{v3.31}{2020/06/08}{option for indent follows list}
% \begin{macrocode}
\DefineTOCEntryListOption{indentfollows}%
{scr@tso@}{@indentfollows}{list of levels that define the indent}%
@@ -1598,10 +1469,10 @@
{scr@tso@}{@pagenumberformat}[1]{page number format}%
%</tocline|toctext>
% \end{macrocode}
-% \changes{v3.27}{2019/05/24}{neue Option \texttt{pagenumberwidth}}%^^A
-% \changes{v3.27}{2019/05/24}{neue Option \texttt{rightindent}}%^^A
-% Die Optionen \texttt{pagenumberwidth} und \texttt{rightindent} ersetzen
-% innerhalb des Stils \texttt{tocline} die Makros \cs{@pnumwidth} und
+% \changes{v3.27}{2019/05/24}{new option \opt{pagenumberwidth}}
+% \changes{v3.27}{2019/05/24}{new option \opt{rightindent}}
+% Die Optionen \opt{pagenumberwidth} und \opt{rightindent} ersetzen
+% innerhalb des Stils |tocline| die Makros \cs{@pnumwidth} und
% \cs{@tocrmarg}.
% \begin{macrocode}
%<*tocline>
@@ -1613,10 +1484,10 @@
{scr@tso@}{@rightindent}{entry's text right indent}%
%</tocline|toctext>
% \end{macrocode}
-% \changes{v3.21}{2016/06/06}{neue Option \texttt{raggedentrytext}}%^^A
-% Die Option \texttt{raggedentrytext} muss leider etwas umständlich definiert
-% werden, damit sie mit der früheren Definition eines Makros
-% \cs{raggedchapterentry} halbwegs kompatibel ist.
+% \changes{v3.21}{2016/06/06}{new option \opt{raggedentrytext}}
+% Unfortunately definition of option \opt{raggedentrytext} is somehow
+% cumbersome, to be more or less compatible with former definition of
+% \cs{raggedchapterentry}.
% \begin{macrocode}
%<*tocline>
\DefineTOCEntryOption{raggedentrytext}[true]{%
@@ -1645,11 +1516,11 @@
{scr@tso@}{@numwidth}{entry number width}%
%</dottedtocline|undottedtocline|tocline>
% \end{macrocode}
-% Die Ebene, \texttt{level} bzw. \cs{\dots tocdepth}, kann auf zweierlei Arten
-% automatisch bestimmt werden. Zum einen wird für Sub-Ebenen die Elternebene
-% um eins erhöht verwendet, falls die Elternebene bereits definiert ist.
-% \changes{v3.21}{2016/06/09}{\cs{the} eingefügt}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% Automatic setting of the numerical level of option \opt{level} resp. command
+% \cs{\meta{entry name}tocdepth} can be done either by increasing the parent
+% level number of a sub level, if the parent level has already be defined:
+% \changes{v3.21}{2016/06/09}{\cs{the} inserted}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{macrocode}
%<*tocline|toctext>
\scr@ifundefinedorrelax{#1tocdepth}{%
@@ -1663,9 +1534,8 @@
}{}%
%</tocline|toctext>
% \end{macrocode}
-% War der Weg über Elternebenen nicht erfolgreich oder wurde er nicht
-% verwendet, so werden Standardwerte angenommen, wie sie bei den
-% Standardklassen und bei \KOMAScript{} zutreffen.
+% or, if this cannot be used, by using a standard value analogues to the
+% values of the standard classes and the \KOMAScript{} classes.
% \begin{macrocode}
\@ifundefined{#1tocdepth}{%
\Ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{%
@@ -1678,8 +1548,8 @@
\Ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{%
\Ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{%
% \end{macrocode}
-% Für unbekannte Anweisungen wird stattdessen eine eventuell vorhandene
-% Gliederungsebene auch als Verzeichnisebene übernommen:
+% As last chance, we can use the same number already used for a headings level
+% with the same name.
% \begin{macrocode}
\expandafter\let\csname #1tocdepth\expandafter\endcsname
\csname #1numdepth\endcsname
@@ -1694,7 +1564,7 @@
}%
}{}%
% \end{macrocode}
-% Der Einzug kann wie der Level aus der Elternebene gebildet werden
+% The indent can also be defined automatically by a parent level.
% \begin{macrocode}
%<*tocline|toctext>
\scr@ifundefinedorrelax{scr@tso@#1@indent}{%
@@ -1724,16 +1594,16 @@
}{}%
}{%
% \end{macrocode}
-% Kompatibilität mit älteren \KOMAScript-Klassen.
+% Former \KOMAScript{} versions use another macro name, that is also defined
+% for compatibility.
% \begin{macrocode}
\@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
}%
}{}%
%</tocline|toctext>
% \end{macrocode}
-% Die Breite der Seitenzahlbox und der rechte Einzug können ebenfalls aus den
-% Elternelementen gebildet werden, allerdings muss hier nur der Wert
-% übernommen werden.
+% The width of the page number box and the right margin can simply be copied
+% from a parent level.
% \begin{macrocode}
%<*tocline>
\scr@ifundefinedorrelax{scr@tso@#1@pagenumberwidth}{%
@@ -1766,9 +1636,9 @@
}{}%
%</tocline|toctext>
% \end{macrocode}
-% War das nicht erfolgreich oder wird es nicht genutzt, so werden
-% Standardwerte verwendet, die sowohl für die Standardklasse als auch die
-% \KOMAScript-Klassen zutreffend sind.
+% If all the automatic setting methods were not successful, we try standard
+% values used from the standard classes or older versions of the \KOMAScript{}
+% classes.
% \begin{macrocode}
\@ifundefined{scr@tso@#1@indent}{%
%<*dottedtocline|undottedtocline|largetocline>
@@ -1779,8 +1649,9 @@
\Ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{%
\Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{%
% \end{macrocode}
-% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder
-% nicht. Dazu sollte die Kapitelebene bereits definiert sein!
+% The follow code needs information about the existence of the chapter
+% level. So the chapter level should already be defined, before the first
+% usage!
% \begin{macrocode}
\scr@ifundefinedorrelax{l@chapter}{%
\Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{%
@@ -1795,7 +1666,7 @@
\@namedef{scr@tso@#1@indent}{10em}%
}{%
% \end{macrocode}
-% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% If nothing helps, the user has to define the values.
% \begin{macrocode}
}%
}%
@@ -1815,7 +1686,7 @@
\@namedef{scr@tso@#1@indent}{12em}%
}{%
% \end{macrocode}
-% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% Once more: if nothing helps, the user has to define the values.
% \begin{macrocode}
}%
}%
@@ -1830,14 +1701,14 @@
%<*dottedtocline|undottedtocline|largetocline>
}{%
% \end{macrocode}
-% Kompatibilität mit älteren \KOMAScript-Klassen.
+% Once again, for compatibility with former versions of \KOMAScript:
% \begin{macrocode}
\@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
}%
%</dottedtocline|undottedtocline|largetocline>
}{}%
% \end{macrocode}
-% Für die Nummernbreite gibt es ebenfalls beide Wege.
+% Almost the same for the number width:
% \begin{macrocode}
%<*dottedtocline|undottedtocline|tocline>
%<*tocline>
@@ -1865,8 +1736,7 @@
\Ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
\Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
% \end{macrocode}
-% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder
-% nicht. Dazu sollte die Kapitelebene bereits definiert sein!
+% Depending on existence of the chapter level:
% \begin{macrocode}
\scr@ifundefinedorrelax{chapter}{%
\Ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
@@ -1881,7 +1751,7 @@
\@namedef{scr@tso@#1@numwidth}{5m}%
}{%
% \end{macrocode}
-% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% Need option to be set.
% \begin{macrocode}
}%
}%
@@ -1901,7 +1771,7 @@
\@namedef{scr@tso@#1@numwidth}{6em}%
}{%
% \end{macrocode}
-% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% Need option to be set.
% \begin{macrocode}
}%
}%
@@ -1915,7 +1785,7 @@
%<*dottedtocline|undottedtocline>
}{%
% \end{macrocode}
-% Kompatibilität mit älteren \KOMAScript-Klassen.
+% Compatibility with old \KOMAScript{} versions.
% \begin{macrocode}
\@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}%
}%
@@ -1924,9 +1794,8 @@
%</dottedtocline|undottedtocline|tocline>
%<*tocline>
% \end{macrocode}
-% Die Standardeinstellungen für die drei Penalty-Hooks sind einfach die
-% Standardanweisungen dafür. Dabei ist das so definiert, dass Änderungen an
-% den Standardanweisungen direkte Auswirkungen haben.
+% The three penalty hooks. Here simply the default commands are used by
+% default.
% \begin{macrocode}
\expandafter\providecommand%
\csname scr@tso@#1@LastTOCLevelWasLower\endcsname{\LastTOCLevelWasLower}%
@@ -1935,11 +1804,10 @@
\expandafter\providecommand%
\csname scr@tso@#1@LastTOCLevelWasHigher\endcsname{\LastTOCLevelWasHigher}%
% \end{macrocode}
-% Die Voreinstellung für den vertikalen Abstand ist Null mit ein klein wenig
-% Leim, um den Seitenumbruch zu optimieren. Das genügt bei einer normalen
-% A4-Seite aber gerade mal für den Ausgleich einer Zeile. Bei den höheren
-% Ebenen werden stattdessen die Voreinstellungen der Standardklassen
-% verwendet.
+% The default of the vertical distance of entries is 0 plus some glue. But
+% this is enough only for at least one line, if needed for vertical
+% justification. For the higher levels (part and chapter resp. section) the
+% defaults of the standard classes are used. These have some more glue.
% \begin{macrocode}
\@ifundefined{scr@tso@#1@beforeskip}{%
\Ifstr{#1}{part}{%
@@ -1960,12 +1828,8 @@
}{}%
%</tocline>
% \end{macrocode}
-% \selectlanguage{english}%^^A
-% \changes{v3.31}{2020/06/09}{\texttt{beforeskip} default also for style
-% \texttt{toctext}}%^^A
-% For style \texttt{toctext} a default without glue is used to stay
-% compatible.
-% \selectlanguage{ngerman}%^^A
+% \changes{v3.31}{2020/06/09}{\opt{beforeskip} default also for style \texttt{toctext}}
+% For style |toctext| a default without glue is used to stay compatible.
% \begin{macrocode}
%<*toctext>
\expandafter\providecommand\expandafter*%
@@ -1973,8 +1837,8 @@
%</toctext>
%<*tocline>
% \end{macrocode}
-% Es ist gut zu wissen, wie breit die breiteste Nummer ist, damit wir
-% ggf. prüfen können, ob entsprechende Bedingungen eingehalten werden.
+% It would be good to know the width of the widest number. We will use this to
+% test several conditions.
% \begin{macrocode}
\@ifundefined{scr@dte@#1@maxnumwidth}{%
\expandafter\newlength\csname scr@dte@#1@maxnumwidth\endcsname
@@ -1984,17 +1848,15 @@
\g@addto@macro{\scr@dte@donumwidth}{\do{#1}}%
%</tocline>
% \end{macrocode}
-% Eine dieser Bedingungen ist, dass ein Mindestabstand zwischen Nummer und
-% Text eingehalten wird.
+% One condition is a minimum distance between number and text.
% \begin{macrocode}
%<*tocline|toctext>
\expandafter\providecommand\expandafter*%
\csname scr@tso@#1@numsep\endcsname{.4em}%
%</tocline|toctext>
% \end{macrocode}
-% Beim Absatzstil gibt es die Möglichkeit, am Anfang des Absatzes, zwischen
-% den Einträgen und am Ende der Einträge und nach dem letzten Eintrag einen
-% speziellen Text ausgeben zu lassen.
+% The |toctext| style support the output of some text before the first entry
+% of a paragraph, between the entries and after the last entry of a paragraph.
% \begin{macrocode}
%<*toctext>
\expandafter\providecommand%
@@ -2009,10 +1871,8 @@
\csname scr@tso@#1@afterpar\endcsname{}%
%</toctext>
% \end{macrocode}
-% Jede Ebene kann ihre eigene Formatierungsanweisung für die Nummer haben.
-% Jede Ebene kann auch ihre eigene Formatierungsanweisung für Nummer und Text
-% haben. Für \texttt{part} wird hier die Voreinstellung der Standardklassen
-% verwendet.
+% Formatting for only the number and formatting for number and text are
+% provided. For part we use the formatting of the standard classes as default.
% \begin{macrocode}
%<*tocline|toctext>
\expandafter\providecommand%
@@ -2041,18 +1901,16 @@
%</tocline>
%</tocline|toctext>
% \end{macrocode}
-% Nach der Nummer kann wahlweise ein Zeilenumbruch erfolgen, wobei in diesem
-% Fall der Text wieder auf Höhe der Nummer und nicht erst danach
-% erfolgt. Gesteuert wird das über einen Schalter. In der Voreinstellung
-% machen wird das nicht.
+% After the number a line break is optional. In this case the text starts
+% again at the horizontal position of the number and not behind it. The
+% default is, not to break after the number.
% \begin{macrocode}
%<*tocline>
\expandafter\providecommand
\csname Ifscr@tso@#1@breakafternumber\endcsname[2]{##2}%
% \end{macrocode}
-% Die Verbindung zwischen Ende des Eintrags und den Seitenzahlen erfolgt
-% normalerweise mit Pünktchen. Das wird auch genau die Voreinstellung für die
-% Option werden. In der Voreinstellung wird mit \cs{hfill} gefüllt.
+% The default of the connection between the end of the text and the page
+% number column is a simple \cs{hfill}. Here you can optionally use dots as usual.
% \begin{macrocode}
\@ifundefined{scr@tso@#1@linefill}{%
\Ifstr{#1}{part}{%
@@ -2072,24 +1930,24 @@
}%
}{}%
% \end{macrocode}
-% Keine Verbindung bedeutet nicht automatisch, dass die Seitenzahlen nach vorn
-% rutschen. Das passiert erst, wenn die sie flatternd gesetzt werden:
+% If you don't want a connection, this does not automatically mean, that the
+% page number moves forwards to the end of the text. This only happens, if the
+% entry is set ragged.
% \begin{macrocode}
\expandafter\providecommand\csname Ifscr@tso@#1@raggedpage\endcsname[2]{##2}%
% \end{macrocode}
-% Auch die Seitenzahl kann speziell formatiert werden, wenn das gewünscht ist.
+% Optionally you can use a formatting for the page number.
% \begin{macrocode}
\Ifstr{#1}{part}{%
% \end{macrocode}
-% Für \texttt{part} normalerweise groß und fett:
+% With parts this is usually large and bold.
% \begin{macrocode}
\expandafter\providecommand%
\csname scr@tso@#1@pagenumberformat\endcsname[1]{\large\bfseries ##1}%
}{%
% \end{macrocode}
-% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{chapter}-Einräge in der
-% Voreinstellung fett}%^^A
-% Für \texttt{chapter} nur fett:
+% \changes{v3.25}{2017/11/23}{default of page numbers of chapter entries is bold}
+% With chapters it is bold.
% \begin{macrocode}
\Ifstr{#1}{chapter}{%
\expandafter\providecommand%
@@ -2098,16 +1956,16 @@
\scr@ifundefinedorrelax{l@chapter}{%
\Ifstr{#1}{section}{%
% \end{macrocode}
-% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{section}-Einräge in der
-% Voreinstellung unter Umständen fett}%^^A
-% Für \texttt{section} ggf. auch fett:
+% \changes{v3.25}{2017/11/23}{default of page numbers of section entries maybe
+% bold}
+% With sections sometimes bold.
% \begin{macrocode}
\expandafter\providecommand%
\csname scr@tso@#1@pagenumberformat\endcsname[1]{\bfseries ##1}%
}{}%
}{}%
% \end{macrocode}
-% Sonst in normaler Schrift und Farbe:
+% All others in normal font and normal color.
% \begin{macrocode}
\expandafter\providecommand%
\csname scr@tso@#1@pagenumberformat\endcsname[1]{%
@@ -2115,18 +1973,16 @@
}%
}%
% \end{macrocode}
-% Wobei die Seitenzahl normaleweise in eine Box fester Breite gesetzt wird.
-% \changes{v3.27}{2019/10/02}{Breite der Seitenzahlbox verallgemeinert}%^^A
+% Sometimes the page number has a box with defined width.
+% \changes{v3.27}{2019/10/02}{consequent use of width of page number box}
% \begin{macrocode}
\expandafter\providecommand%
\csname scr@tso@#1@pagenumberbox\endcsname[1]{%
\hb@xt@\@nameuse{scr@dte@pagenumberwidth}{\hfil ##1}}%
\expandafter\providecommand\csname Ifscr@tso@#1@dynnumwidth\endcsname[2]{##2}%
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/08}{init indent follows list}%^^A
+% \changes{v3.31}{2020/06/08}{init indent follows list}
% This command defines a list of levels that specify the indent (if not empty).
-% \selectlanguage{ngerman}%^^A
% \begin{macrocode}
\expandafter\providecommand\csname Ifscr@tso@#1@dynindent\endcsname[2]{##2}%
\scr@ifundefinedorrelax{scr@tso@#1@indentfollows}{%
@@ -2140,12 +1996,11 @@
}{}%
%</tocline>
% \end{macrocode}
-% \changes{v3.27}{2019/07/08}{Initialisierung von \texttt{raggedentry}}%^^A
-% \changes{v3.27}{2019/07/08}{Initialisierung von \texttt{prepagenumber}}%^^A
-% Im Stil \texttt{toctext} muss außerdem initialisiert werden, ob der Eintrag
-% im Flattersatz oder im Blocksatz gesetzt werden soll und was unmittelbar vor
-% der Seitenzahl auszugeben ist (\texttt{linefill} wäre dafür eine unpassende
-% Bezeichnung).
+% \changes{v3.27}{2019/07/08}{initialization of \opt{raggedentry}}
+% \changes{v3.27}{2019/07/08}{initialization of \opt{prepagenumber}}
+% With style |toctext| we have to initialize ragged or justified text and what
+% to print immediately before the page number (\opt{linefill} wouldn't have
+% been a suitable term).
% \begin{macrocode}
%<*toctext>
\expandafter\providecommand%
@@ -2155,12 +2010,10 @@
%</toctext>
}]{%
% \end{macrocode}
-% \changes{v3.27}{2019/05/12}{Berücksichtigung von Verzeichniseigenschaft
-% \texttt{noindent}}%^^A
+% \changes{v3.27}{2019/05/12}{support for \opt{noindent}}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
-% Damit ist die Initialisierung abgeschlossen und wir kommen zur
-% Eintragsanweisung selbst:
+% \cs{Iftocfeature}}
+% Initialization complete. Next we have the output code or macro.
% \begin{macrocode}
%<*dottedtocline>
\Iftocfeature{\@currext}{noindent}{%
@@ -2174,9 +2027,9 @@
%<*undottedtocline|largetocline>
\ifnum \c@tocdepth >\numexpr \@nameuse{#1tocdepth}-\@ne\relax
% \end{macrocode}
-% An dieser Stelle gibt es einen kleinen Unterschied zwischen der
-% \texttt{chapter}-Ebene und der \texttt{section}-Ebene von
-% \textsf{article}. Diesen machen wir hier an der nummerischen Ebene fest.
+% Here we have a little difference between chapters and the sections of
+% \cls*{article}. We do this by the level. So if you change the levels, the
+% result would change too.
% \begin{macrocode}
\ifnum \@nameuse{#1tocdepth}<\@ne
\scr@ifundefinedorrelax{chapter}{%
@@ -2197,35 +2050,30 @@
%<largetocline> \setlength\@tempdima{3em}%
\begingroup
% \end{macrocode}
-% Es sei darauf hingewiesen, dass hier eigentlich zweimal \cs{@tocrmarg}
-% statt \cs{@pnumwidth} verwendet werden müsste. Allerdings habe ich
-% beschlossen, diesen schon vor Jahren gemeldeten Fehler aus
-% Kompatibilitätsgründen vorerst von den Standardklassen zu übernehmen.
+% Note: Here we should use two \cs{@tocrmarg} correctly. I've reported this
+% bug in the standard classes years ago without any change. So for
+% compatibility I've decided to accept it as feature and two times
+% \cs{@pnumwith} like the standard classes.
% \begin{macrocode}
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
% \end{macrocode}
-% Die Standardklassen fügen an dieser Stelle noch eine Gruppe ein, die dann
-% leider vor dem abschließenden \cs{par} bereits beendet wird. Das führt
-% natürlich zu falschen Zeilenabständen bei mehrzeiligen Einträgen. Ich habe
-% lange überlegt, aber schließlich beschlossen, diesen Fehler nicht aus den
-% Standardklassen zu übernehmen. Das war mir dann doch zu krass! Schlimmer
-% noch, würde man den Fehler übernehmen, müsste man das Setzen von
-% \cs{leftskip} abändern, weil natürlich auch das erst am Absatzende
-% wirklich zur Geltung kommt.
+% The standard classes use a group at this point. This group ends before the
+% final \cs{par}. This can result in wrong baseline skip for multi line
+% entries. It was a hard decision, but I've decided to avoid this bug, because
+% it was much too strange. Moreover, with the bug, the setting of
+% \len{leftskip} would have to be changed, because here also the value at the
+% end of the paragraph is used.
% \begin{macrocode}
\leavevmode
%<largetocline> \large
\bfseries
% \end{macrocode}
-% Es sei darauf hingewiesen, dass hier eigentlich auch bei
-% \texttt{largetocline} \cs{@tempdima} mit berücksichtigt werden
-% müsste. Das geht nur deshalb nicht, weil bei den Standardklassen \cs{part}
-% kein \cs{numberline} verwendet. Deshalb werden mehrzeilige Einträge auch
-% nicht korrekt eingerückt. Auch das habe ich aus Kompatibilitätsgründen
-% beibehalten.
-% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
+% Note, here we also should use \cs{@tempdima} with style |largetocline|. But
+% we cannot do so, only because the standard classes do not use
+% \cs{numberline} for parts. Because of this, multi line entries are not
+% correctly indented. To do this same is also because of compatibility.
+% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by \cs{Iftocfeature}}
% \begin{macrocode}
%<undottedtocline> \advance\leftskip\@tempdima
\Iftocfeature{\@currext}{noindent}{%
@@ -2239,11 +2087,10 @@
##1%
%<undottedtocline> \nobreak
% \end{macrocode}
-% Hier schließlich ist \cs{@pnumwidth} aufgrund des vorherigen
-% \cs{large} nicht mehr derselbe absolute Wert wie bei Einträgen ohne
-% \cs{large}. Deshalb müsste eigentlich noch vor dem \cs{large} der Wert
-% beispielsweise in eine Länge wie \cs{@tempdimb} übertragen und dann hier
-% verwendet werden. Auch das habe ich aus Kompatibilitätsgründen übernommen.
+% Here \cs{@pnumwidth} is not the same absolute value for entries with
+% \cs{large} as for entries without \cs{large}. So correctly, e.g., the value
+% should be transferred via \len{@temdimb}. But because of compatibility this
+% bug hat also been interpreted as feature.
% \begin{macrocode}
\hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}%
\par
@@ -2268,14 +2115,13 @@
}
%</dottedtocline|undottedtocline|largetocline|tocline|toctext>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@def@l@toctext
-% \end{macro}%^^A \scr@dte@def@l@tocline
-% \end{macro}%^^A \scr@dte@def@l@largetocline
-% \end{macro}%^^A \scr@dte@def@l@undottedtocline
-% \end{macro}%^^A \scr@dte@def@l@dottedtocline
+% \end{macro}^^A \scr@dte@def@l@toctext
+% \end{macro}^^A \scr@dte@def@l@tocline
+% \end{macro}^^A \scr@dte@def@l@largetocline
+% \end{macro}^^A \scr@dte@def@l@undottedtocline
+% \end{macro}^^A \scr@dte@def@l@dottedtocline
%
-% Für den Stil \texttt{tocline} werden diverse weitere Einstellungen und
-% Befehle benötigt:
+% Style |tocline| needs several additional settings and macros:
% \begin{macrocode}
%<*tocline>
\AtBeginDocument{%
@@ -2300,39 +2146,34 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\scr@dte@nosub}
-% \changes{v3.20}{2015/11/23}{neu (intern)}
-% \begin{macro}{\@scr@dte@nosub}
-% \changes{v3.20}{2015/11/23}{neu (intern)}
-% Ãœber diese Hilfsmacros werden die Buchstaben \texttt{sub} am Anfang des
-% Arguments entfernt. Stehen diese gar nicht am Anfang, so wird ein Fehler
-% wegen falscher Verwendung von \cs{@scr@de@nosub} gemeldet.
+% \begin{macro}{\scr@dte@nosub,\@scr@dte@nosub}
+% \changes{v3.20}{2015/11/23}{added}
+% These helper macros are used to recognize the |sub| prefix at the start of
+% an argument and remove it. If there isn't a |sub| at the very beginning, we
+% report an error, because of wrong usage of \cs{@scr@de@nusub}.
% \begin{macrocode}
\newcommand*{\scr@dte@nosub}[1]{\@scr@dte@nosub #1\relax}
\newcommand*{\@scr@dte@nosub}{}
\def\@scr@dte@nosub sub#1\relax{#1}
% \end{macrocode}
-% \end{macro}%^^A \@scr@dte@nosub
-% \end{macro}%^^A \scr@dte@nosub
+% \end{macro}^^A \scr@dte@nosub,\@scr@dte@nosub
% \begin{macro}{\scr@dte@tocline}
-% \changes{v3.20}{2015/11/22}{neu (intern)}%^^A
-% \changes{v3.27}{2019/05/12}{Berücksichtigun von Verzeichniseigenschaft
-% \texttt{noindent}}%^^A
-% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
-% In gewisser Weise entspricht diese Anweisung der \LaTeX-Kern-Anweisung
-% \cs{dottedtocline}. Allerdings werden hier vielfältige
-% Eingriffsmöglichkeiten untersützt, die jeweils durch Optionen gesteuert
-% werden können. Daher hat der Befehl auch nur drei Argumente:
+% \changes{v3.20}{2015/11/22}{added}
+% \changes{v3.27}{2019/05/12}{support for \opt{noindent}}
+% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by \cs{Iftocfeature}}
+% This is somehow like the \LaTeX{} kernel macro \cs{@dottedtocline}. But it
+% supports a lot of more attributes, not only the level, the numberwidth, the
+% indent and the text. The attributes are handled by options. So we need only
+% three arguments:
% \begin{description}
-% \item[\marg{Ebene}:] Der Name \meta{string} der Verzeichnisebene.
-% \item[\marg{Eintrag}:] Der Verzeichniseintrag \meta{string}.
-% \item[\marg{Seite}:] Die Seitenzahl \meta{string} des Verzeichniseintrags.
+% \item[\marg{level name}:] the name of the ToC entry level;
+% \item[\marg{entry}:] the ToC entry;
+% \item[\marg{page number}:] the page number of the ToC entry.
% \end{description}
-% \begin{Length}{\scr@dte@tocline@numberwidth}
-% \changes{v3.20}{2016/01/15}{neu (intern)}
-% Für alle, die es interessiert, gibt diese Länge die tatsächliche Breite der
-% formatierten Nummer an.
+% \begin{length}{\scr@dte@tocline@numberwidth}
+% \changes{v3.20}{2016/01/15}{added}
+% Sometimes the real width of a formatted number is of interest. So we store
+% it in \len{scr@dte@tocline@numberwidth}.
% \begin{macrocode}
\newlength\scr@dte@tocline@numberwidth
\newcommand*{\scr@dte@tocline}[3]{%
@@ -2341,12 +2182,10 @@
\tocbasic@DependOnPenaltyAndTOCLevel{#1}%
\addvspace{\@nameuse{scr@tso@#1@beforeskip}}\relax
% \end{macrocode}
-% \selectlanguage{english}%
-% \changes{v3.31}{2020/06/08}{code for indent following list processing}%^^A
+% \changes{v3.31}{2020/06/08}{code for indent following list processing}
% If a indent following list exists and the depth of an entry is lower than
% the depth of the current entry, use the maximum of the ident + number width
% for the indent of this entry.
-% \selectlanguage{ngerman}%^^A
% \begin{macrocode}
\@nameuse{Ifscr@tso@#1@dynindent}{%
\expandafter\ifx\csname scr@tso@#1@indentfollows\endcsname\@empty
@@ -2402,8 +2241,7 @@
\@afterindenttrue
\interlinepenalty\@M
% \end{macrocode}
-% \changes{v3.21}{2016/06/06}{\cs{ragged\dots entry} wird (wieder)
-% ausgewertet}%^^A
+% \changes{v3.21}{2016/06/06}{\cs{ragged\dots entry} is supported (again)}
% \begin{macrocode}
\expandafter\ifx\csname ragged#1entry\endcsname\raggedright
\addtolength\rightskip\@flushglue
@@ -2431,26 +2269,23 @@
\null\nobreak\hskip -\leftskip
{%
% \end{macrocode}
-% An dieser Stelle wenden wir einen Trick an, um die Breite einer eventuell
-% vorhandenen Nummer während deren Ausgabe auszumessen. Dazu ist es eine
-% schlichte Notwendigkeit, dass \cs{numberline} die interne Definition
-% verwendet.
+% Here we use a trick to detect the width of an eventually existing number
+% while printing it. For this it is a must to use the internal definition of
+% \cs{numberline}.
% \begin{macrocode}
\usetocbasicnumberline
\let\scr@dte@numberline@box\numberline@box
\def\numberline@box##1{%
\sbox\scr@dte@tocline@numbox{\@nameuse{scr@tso@#1@numberformat}{##1}}%
% \end{macrocode}
-% Die Zuweisung an die aktuelle Länge der Nummer muss global erfolgen, weil
-% wir hier in einer Gruppe sind.
-% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}%^^A
+% We are inside a group, so we have to set the length globally.
% \begin{macrocode}
\global\scr@dte@tocline@numberwidth
\dimexpr\wd\scr@dte@tocline@numbox+\@nameuse{scr@tso@#1@numsep}\relax
% \end{macrocode}
-% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}%^^A
-% Achtung: Hier braucht es ein zweites \cs{relax}, weil das erste von
-% \cs{dimexpr} aufgezehrt wird.
+% \changes{v3.22}{2016/12/02}{missing second \cs{relax} added}
+% Attention: We need two \cs{relax}, because the first one is eaten by
+% \cs{dimexpr}.
% \begin{macrocode}
\relax
\ifdim \scr@dte@tocline@numberwidth
@@ -2461,9 +2296,7 @@
\ifdim \scr@dte@tocline@numberwidth
>\dimexpr \@nameuse{scr@tso@#1@numwidth}%
+\@nameuse{scr@tso@#1@numsep}\relax\relax
-%<class> \ClassWarning{\KOMAClassName
-%<package> \PackageWarning{tocbasic%
- }{%
+ \PackageWarning{tocbasic}{%
number width of #1 toc entries should be
increased!\MessageBreak
Currently used number width =
@@ -2488,12 +2321,11 @@
\normalfont\normalsize\@nameuse{scr@tso@#1@linefill}%
\nobreak
% \end{macrocode}
-% \changes{v3.27}{2019/10/02}{\cs{scr@dte@pagenumberwidth} wird definiert}%
-% Damit hier keine Abhängigkeit eine Eintragsvariablen von einer
-% Eintragsvariablen existiert wird lokal \cs{scr@dte@pagenumberwidth} zu
-% \cs{scr@tso@\meta{Eintragsname}@pagenumberwidth}, so dass in der Definition
-% von \cs{scr@tso@\meta{Eintragsname}@pagenumberbox} dieses lokale Makro
-% verwendet werden kann.
+% \changes{v3.27}{2019/10/02}{\cs{scr@dte@pagenumberwidth} is defined}
+% We don't want a dependency of entry variable from entry variables. So
+% locally \cs{scr@dte@pagenumberwidth} will become
+% \cs{scr@tso@\meta{Eintragsname}@pagenumberwidth} and in the definition of
+% \cs{scr@tso@\meta{Eintragsname}@pagenumberbox} we use this local macro.
% \begin{macrocode}
\expandafter\let\expandafter\scr@dte@pagenumberwidth
\csname scr@tso@#1@pagenumberwidth\endcsname
@@ -2509,40 +2341,30 @@
\fi
}
% \end{macrocode}
-% \end{Length}%^^A \scr@dte@tocline@numberwidth
+% \end{length}^^A \scr@dte@tocline@numberwidth
% \begin{macro}{\scr@dte@tocline@numbox}
-% \changes{v3.20}{2015/11/25}{neue Box (intern)}
-% Wird benötigt, um die Breite der Nummer auszumessen und die Nummer später
-% wieder zu verwenden.
+% \changes{v3.20}{2015/11/25}{new (\emph{box})}
+% Needed to measure the width of the number and use the number later.
% \begin{macrocode}
\newsavebox\scr@dte@tocline@numbox
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@tocline@numbox
-% \begin{macro}{\tocbasic@DependOnPenaltyAndTOCLevel}
-% \changes{v3.20}{2015/11/23}{neu}%^^A
-% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für
-% Befehle für Paketautoren}%^^A
-% Führt eine gespeicherte Aktion in Abhängigkeit davon aus, ob der aktuelle
-% Penalty-Wert darauf schließen lässt, dass zuvor ein Eintrag mit einem
-% höheren, demselben oder einem tieferen Wert für die Ebene erfolgte.
-% \begin{macro}{\tocbasic@SetPenaltyByTOCLevel}
-% \changes{v3.20}{2015/11/23}{neu}
-% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für
-% Befehle für Paketautoren}%^^A
-% Setze die Strafpunkte für einen Umbruch entsprechend der aktuellen
-% Verzeichnisebene.
-% \begin{macro}{\LastTOCLevelWasHigher}
-% \changes{v3.20}{2015/11/23}{neu}
-% Standardaktion, falls der vorherige Level einen größeren Wert hatte: Umbruch
-% erlauben.
-% \begin{macro}{\LastTOCLevelWasSame}
-% \changes{v3.20}{2015/11/23}{neu}
-% Standardaktion, falls der vorherige Level denselben Wert hatte: Umbruch
-% erlauben.
-% \begin{macro}{\LastTOCLevelWasLower}
-% Standardaktion, falls der vorherige Level einen kleineren Wert hatte:
-% Penalty beibehalten und damit den Umbruch verbieten.
-% \changes{v3.20}{2015/11/23}{neu}
+% \end{macro}^^A \scr@dte@tocline@numbox
+% \begin{macro}{\tocbasic@DependOnPenaltyAndTOCLevel,
+% \tocbasic@SetPenaltyByTOCLevel}
+% \changes{v3.20}{2015/11/23}{added}
+% \changes{v3.20}{2016/03/12}{changed for \pkg*{tocbasic} syntax of package
+% author macros}
+% \cs{tocbasic@DepenedOnPenaltyAndTOCLevel} executes a saved action depending
+% on whether the current penalty value stands for an entry with higher, same,
+% or lower entry level.
+% \cs{tocbasic@SetPenaltyByTOCLevel} sets the penalty for the page break
+% depending on the current entry level.
+% \begin{command}{\LastTOCLevelWasHigher,\LastTOCLevelWasSame,
+% \LastTOCLevelWasLower}
+% \changes{v3.20}{2015/11/23}{added}
+% Standard action, if the previous entry level was higher (allow page break),
+% same (allow page break), or lower (keep penalty and therefore prevent page
+% break).
% \begin{macrocode}
\newcommand*{\tocbasic@DependOnPenaltyAndTOCLevel}[1]{%
\ifnum \lastpenalty<\numexpr 20009-\@nameuse{#1tocdepth}\relax
@@ -2561,15 +2383,12 @@
\newcommand*{\LastTOCLevelWasSame}{\ifvmode\addpenalty{\@lowpenalty}\fi}
\newcommand*{\LastTOCLevelWasLower}{}
% \end{macrocode}
-% \end{macro}%^^A \tocbasic@SetPenaltyByTOCLevel
-% \end{macro}%^^A \tocbasic@DependOnPenaltyAndTOCLevel
-% \end{macro}%^^A \LastTOCLevelWasLower
-% \end{macro}%^^A \LastTOCLevelWasSame
-% \end{macro}%^^A \LastTOCLevelWasHigher
-% \begin{macro}{\TOCLineLeaderFill}
-% \changes{v3.20}{2015/11/14}{neu}
-% Füllt den Abstand zwischen Text und Seitenzahl komplett. Hat als einziges
-% optionales Argument das Füllzeichen.
+% \end{command}^^A \LastTOCLevelWasHigher … \LastTOCLevelWasLower
+% \end{macro}^^A \tocbasic@SetPenaltyByTOCLevel,\tocbasic@DependOnPenaltyAndTOCLevel
+% \begin{command}{\TOCLineLeaderFill}
+% \changes{v3.20}{2015/11/14}{added}
+% Filler between the last text line and the page number. The optional argument
+% \texttt{\#1} is the character used for filling.
% \begin{macrocode}
\newcommand*{\TOCLineLeaderFill}[1][.]{%
\leaders\hbox{$\m@th
@@ -2578,14 +2397,13 @@
}
%</tocline>
% \end{macrocode}
-% \end{macro}%^^A \TOCLineLeaderFill
-% \end{macro}%^^A \scr@dte@tocline
+% \end{command}^^A \TOCLineLeaderFill
+% \end{macro}^^A \scr@dte@tocline
%
-% \selectlanguage{english}
% \begin{macro}{\scr@dte@toctext}
-% \changes{v3.27}{2019/07/08}{new (internal)}%^^A
+% \changes{v3.27}{2019/07/08}{added}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
+% \cs{Iftocfeature}}
% This is the command to format entries that will be accumalted into a single
% paragraph. This is somehow special, because the settings of one entrie can
% influence another one. The three arguments are:
@@ -2609,7 +2427,7 @@
\@nameuse{scr@tso@#1@onstartentry}%
\else
% \end{macrocode}
-% \changes{v3.31}{2020/06/09}{use of option \texttt{beforeskip}}%^^A
+% \changes{v3.31}{2020/06/09}{use of option \opt{beforeskip}}
% In v-mode it is a new text entry. Before leaving v-mode the vertical space
% is added.
% \begin{macrocode}
@@ -2642,9 +2460,9 @@
\rightskip \@nameuse{scr@tso@#1@rightindent}\relax
\parfillskip \z@ \@plus 1fill\relax
% \end{macrocode}
-% \changes{v3.31}{2020/06/09}{redefinition of \cs{addvspace}}%^^A
-% \changes{v3.31}{2020/06/09}{redefinition of \cs{addpenalty}}%^^A
-% Now, make sure, that the first non-\texttt{toctext} entry does do a \cs{par}
+% \changes{v3.31}{2020/06/09}{redefinition of \cs{addvspace}}
+% \changes{v3.31}{2020/06/09}{redefinition of \cs{addpenalty}}
+% Now, make sure, that the first non-|toctext| entry does do a \cs{par}
% before it uses \cs{addpenalty} or \cs{addvspace}. Before version~3.31 this
% has been done by redefining \cs{@noitemerr} but this does not work, because
% it ignores the argument of \cs{addpenalty} or \cs{addvspace}. So, this more
@@ -2707,9 +2525,8 @@
\fi
}
% \end{macrocode}
-% \begin{macro}{\scr@dte@toctext@raggedright}
-% \begin{macro}{\scr@dte@toctext@parend}
-% \begin{macro}{\scr@dte@toctext@lastend}
+% \begin{macro}{\scr@dte@toctext@raggedright,\scr@dte@toctext@parend,
+% \scr@dte@toctext@lastend}
% Helper macros to store some information for later usage.
% \begin{macrocode}
\newcommand*{\scr@dte@toctext@raggedright}{}
@@ -2717,17 +2534,15 @@
\newcommand*{\scr@dte@toctext@lastend}{}
%</toctext>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@toctext@lastend
-% \end{macro}%^^A \scr@dte@toctext@parend
-% \end{macro}%^^A \scr@dte@toctext@raggedright
-% \end{macro}%^^A \scr@dte@toctext
-% \selectlanguage{ngerman}
+% \end{macro}^^A \scr@dte@toctext@raggedright … \scr@dte@toctext@lastend
+% \end{macro}^^A \scr@dte@toctext
+%
%
% \begin{macro}{\scr@dte@def@l@default}
-% \changes{v3.20}{2015/12/16}{neu im Paket}%^^A
-% Bereits im Paket gibt es einen Standardstil. Anderen Paketen ist es nicht
-% gestattet diesen umzudefinieren. Klassen ist das hingegen gestattet, damit
-% sie einen Dokument weiten Standardstil festlegen können.
+% \changes{v3.20}{2015/12/16}{new for the package}
+% The package \pkg*{tocbasic} already has a standard style. Other packages
+% should not change the standard style. But classes are allowed to clone (or
+% define) another standard style for documents made with that class.
% \begin{macrocode}
%<*default>
%%% (run: style,dottedtocline)
@@ -2736,27 +2551,28 @@
% \end{macrocode}
% \end{macro}
%
-% \iffalse
+% \begin{macrocode}
%</style>
%</package>
-% \fi
+% \end{macrocode}
%
-% \subsubsection{Von den \KOMAScript-Klassen genutzte Stile}
%
-% \iffalse
+% \subsubsection{The styles used by the \KOMAScript{} classes}
+%
+% \begin{macrocode}
%<*class>
%<*style>
-% \fi
+% \end{macrocode}
%
-% Einige Stile sollen nur definiert werden, wenn die Definition in die Klasse
-% geschrieben wird:
+% Some styles are defined by the classes only. They are only defined for the
+% classes, that use them. So not all styles are available by all classes and
+% even not all styles are the same with every class.
%
% \begin{macro}{\scr@dte@def@l@part}
-% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{part}}%^^A
-% Dieser Verzeichnisstil existiert bei \textsf{scrbook}, \textsf{scrreprt} und
-% \textsf{scrartcl}. Das Format des Eintrags und der Seitenzahl wird dabei
-% über die Elemente \texttt{partentry} und \texttt{partentrypagenumber}
-% realisiert.
+% \changes{v3.20}{2015/12/07}{ToC entry style \texttt{part} added}
+% This style exists with \cls*{scrbook}, \cls*{scrreprt} and
+% \cls*{scrartcl}. The formatting of the entry and the page number is defined
+% by the font elements \fnt{partentry} and \fnt{partentrypagenumber}.
% \begin{macrocode}
%<*part>
%%% (run: class,style,part)
@@ -2774,13 +2590,12 @@
}
%</part>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@def@l@part
+% \end{macro}^^A \scr@dte@def@l@part
%
% \begin{macro}{\scr@dte@def@l@chapter}
-% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{chapter}}%^^A
-% \changes{v3.27}{2019/10/28}{Font Element \texttt{chapterentrydots} wird
-% angewendet}%^^A
-% Dieser Verzeichnisstil existier bei \textsf{scrbook} und \textsf{scrreprt}.
+% \changes{v3.20}{2015/12/07}{ToC entry style \texttt{chapter} added}
+% \changes{v3.27}{2019/10/28}{using font element \fnt{chapterentrydots}}
+% This style exists with \cls*{scrbook} and \cls*{scrreprt} only.
% \begin{macrocode}
%<*chapter>
%%% (run: class,style,chapter)
@@ -2804,16 +2619,15 @@
}
%</chapter>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@def@l@chapter
+% \end{macro}^^A \scr@dte@def@l@chapter
%
% \begin{macro}{\scr@dte@def@l@section}
-% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{section}}%^^A
-% \changes{v3.27}{2019/10/28}{Font Element \texttt{sectionentrydots} wird
-% angewendet}%^^A
-% Bei den Klassen \textsf{scrbook} und \textsf{scrreprt} ist das der Stil für
-% die \emph{kleinen} Verzeichnisebenen. Bei \textsf{scrartcl} ist es dagegen
-% der Stil für die obere Verzeichnisebene und entspricht damit obigem Stil
-% \texttt{chapter}.
+% \changes{v3.20}{2015/12/07}{ToC entry style \texttt{section} added}
+% \changes{v3.27}{2019/10/28}{using font element \fnt{sectionentrydots}}
+% With classes \cls*{scrbook} and \cls*{scrreprt} this is the style of the
+% \emph{minor} entry level. With \cls*{scrartcl} this is the style of the top
+% entry level (below the part level). So with \cls*{scrartcl} it is similar
+% to the chapter style of \cls*{scrbook} or \cls*{scrreprt}.
% \begin{macrocode}
%<*section>
%%% (run: class,style,section)
@@ -2847,12 +2661,12 @@
%</article>
%</section>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@def@l@section
+% \end{macro}^^A \scr@dte@def@l@section
%
% \begin{macro}{\scr@dte@def@l@subsection}
-% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{subsection}}%^^A
-% Dieser Stil existiert nur bei \textsf{scrartcl} und entspricht dann dem Stil
-% \texttt{section} bei \textsf{scrbook} und \textsf{scrreprt}.
+% \changes{v3.20}{2015/12/07}{ToC entry style \texttt{subsection} added}
+% This style exists with \cls*{scrartcl} only. It is the minor level style
+% similar to the section style with \cls*{scrbook} and \cls*{scrreprt}.
% \begin{macrocode}
%<*subsection&article>
%%% (run: class,style,subsection)
@@ -2863,12 +2677,12 @@
}
%</subsection&article>
% \end{macrocode}
-% \end{macro}%^^A \scr@dte@def@l@subsection
+% \end{macro}^^A \scr@dte@def@l@subsection
%
% \begin{macro}{\scr@dte@def@l@default}
-% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{default}}%^^A
-% Dieser Stil entspricht bei \textsf{scrbook} und \textsf{scrreprt} dem Stil
-% \texttt{section} und bei \textsf{scrartcl} dem Stil \textsf{subsection}.
+% \changes{v3.20}{2015/12/07}{ToC entry style \texttt{default} added}
+% With classes \cls*{scrbook} and \cls*{scrreprt} this is a clone of the
+% section style. With \cls*{scrartcl} this is a clone of the subsection style.
% \begin{macrocode}
%<*default>
%%% (run: class,style,default)
@@ -2878,18 +2692,21 @@
% \end{macrocode}
% \end{macro}
%
-% \iffalse
+% \begin{macrocode}
%</style>
%</class>
-% \fi
+% \end{macrocode}
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-tocstyle.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% coding: utf-8
-%%% 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:
+
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx b/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx
index ec6e89babf..50691df27b 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-typearea.dtx
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-typearea.dtx
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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^^A meta-comment
-%
-% \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 meta-comment
-%%% From File: $Id: scrkernel-typearea.dtx 3488 2020-04-27 13:04:43Z kohm $
+%%% From File: $Id: scrkernel-typearea.dtx 3699 2022-02-11 15:53:36Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -65,9 +29,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2020-04-27 15:04:43 +0200 (Mon, 27 Apr 2020) $
+ \filedate$Date: 2022-02-11 16:53:36 +0100 (Fr, 11. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3488 $
+ \filerevision$Revision: 3699 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-typearea.dtx}[%
@@ -86,7 +50,6 @@
(type area)]
%</dtx|(package&typearea&identify)>
%<*dtx>
-%^^A The ins file:
\ifx\documentclass\undefined
\input scrdocstrip.tex
\@@input scrkernel-version.dtx
@@ -111,49 +74,56 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-%^^A The documentation driver (needed only for checksum calculation):
-\documentclass{scrdoc}
-\usepackage[main=english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-typearea.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{This is \fileversion\ of file \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-typearea.dtx}
\end{document}
%</dtx>
% \fi^^A meta-comment
-%^^A The documentation part:
%
-% \changes{v2.95}{2002/06/20}{first version after splitting
-% \texttt{scrclass.dtx}}%^^A
-% \changes{v3.24}{2017/07/23}{reorganization of code into semantic
-% portions}%^^A
-% \changes{v3.24}{2017/07/23}{start of English translation}%^^A
+% \changes{v2.95}{2002/06/20}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.24}{2017/07/23}{reorganization of code into semantic portions}
+% \changes{v3.24}{2017/07/23}{start of English translation}
+% \changes{v3.36}{2022/02/11}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/11}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-typearea.dtx}
+% \title{Calculation of the Typeing Area with
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{typearea}
+% and Additional Commands for the \href{https://komascript.de}{\KOMAScript}
+% Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \filename{} contains macros for the typing area. These result not only in
+% the package \pkg*{typearea} but also provide features for the
+% \KOMAScript{} classes.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
%
-% \section{Typing Area Macros}
+% You can find the user documentation of package \pkg*{typearea} and the
+% commands implemented here in the \KOMAScript{} manual, either the German
+% \file{scrguide} or the English \file{scrguien}.
%
-% This section contains macros for the typing area. These result not only in
-% the package \Package{typearea} but also provide features for the
-% \KOMAScript{} classes.
+% \MaybeStop{\PrintIndex}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \section{Implementation of Package \pkg*{typearea} and Additional Class
+% Features}
%
-%^^A The source part:
%
% \subsection{Loading packages}
%
-% Package \Package{typearea} needs package \Package{scrkbase}. But this will
-% be loaded by \File{scrkernel-basics.dtx} just after the identify run of this
+% Package \pkg*{typearea} needs package \pkg*{scrkbase}. But this will
+% be loaded by \file{scrkernel-basics.dtx} just after the identify run of this
% file. It does not need other packages.
%
-% The \KOMAScript{} classes need package \Package{typearea}. This will be
+% The \KOMAScript{} classes need package \pkg*{typearea}. This will be
% loaded here as an early body action. Nevertheless, at this state the typing
% area option code for the classes has already been loaded. So before loading
% the almost identical option code of the package, some macros have to be
@@ -170,11 +140,11 @@
\let\x@@paper =\relax
\let\scr@pti@nerr@r =\relax
% \end{macrocode}
-% Now we can load \Package{typearea}:
+% Now we can load \pkg*{typearea}:
% \changes{v2.95}{2002/06/22}{Use \cs{KOMAScriptVersion} while loading
-% \Package{typearea}}%^^A
+% \pkg*{typearea}}
% We use \cs{KOMAScriptVersion} to verify the identical versions of
-% \KOMAScript{} and the package. See \File{scrkernel-version.dtx} for more
+% \KOMAScript{} and the package. See \file{scrkernel-version.dtx} for more
% information about this verification.
% \begin{macrocode}
\RequirePackage{typearea}[\KOMAScriptVersion]
@@ -184,19 +154,19 @@
% \subsection{Selection of paper size}
%
% Before we can define page margins and a typing area, we have to define the
-% paper size. Beside \Package{typearea} also \Package{scrletter} uses some of
+% paper size. Beside \pkg*{typearea} also \pkg*{scrletter} uses some of
% this code, because it needs the paper size, too.
%
-% \begin{macro}{\PaperNameToSize}
-% \changes{v3.23}{2017/02/22}{new}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\PaperNameToSize}
+% \changes{v3.23}{2017/02/22}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}
% This command sets \cs{paperheight} and \cs{paperwidth} depending on
% the name of a paper size. It currently supports the ISO formats of the
% series A, B, C and D and the American formats letter, legal and
-% executive. The command is defined using \Macro{providecommand} so a class
-% can define it different before loading \Package{typearea}. The first
+% executive. The command is defined using \cs{providecommand} so a class
+% can define it different before loading \pkg*{typearea}. The first
% optional argument is the error class. Error classes will be defined using
-% \Macro{ProvideUnknownPaperSizeError} later. The second argument is the name
+% \cs{ProvideUnknownPaperSizeError} later. The second argument is the name
% of the paper size.
% \begin{macrocode}
%<*package&options>
@@ -225,8 +195,8 @@
}
% \end{macrocode}
% \begin{macro}{\ISO@PaperNameToSize}
-% \changes{v3.23}{2017/02/22}{new (internal)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A
+% \changes{v3.23}{2017/02/22}{new (internal)}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}
% For ISO paper sizes a sub-macro is used. It has to split the series and the
% root.
% \begin{macrocode}
@@ -278,8 +248,8 @@
\else
% \end{macrocode}
% The paper size is not a supported ISO format. If
-% \Macro{scr@UnknownPaperSize@}\meta{errorclass} is defined, use it to show
-% the error. If not, use \Macro{scr@UnknownPaperSize@error}. This means,
+% \cs{scr@UnknownPaperSize@}\meta{errorclass} is defined, use it to show
+% the error. If not, use \cs{scr@UnknownPaperSize@error}. This means,
% \meta{errorclass} \texttt{error} has to be defined.
% \begin{macrocode}
\scr@ifundefinedorrelax{scr@UnknownPaperSize@#1}{%
@@ -291,11 +261,11 @@
}%
}{}
% \end{macrocode}
-% \begin{macro}{\ProvideUnknownPaperSizeError}
-% \changes{v3.23}{2017/02/22}{new}%^^A
+% \begin{command}{\ProvideUnknownPaperSizeError}
+% \changes{v3.23}{2017/02/22}{added}
% Define a new error class for unknown paper formats. The argument is the new
% error class. Each error class is represented by a command
-% \Macro{scr@UnknownPaperSize@}\meta{errorclass}. That command also has
+% \cs{scr@UnknownPaperSize@}\meta{errorclass}. That command also has
% exactly one argument, the unknown paper size.
% \begin{macrocode}
\providecommand*{\ProvideUnknownPaperSizeError}[1]{%
@@ -303,15 +273,10 @@
\csname scr@UnknownPaperSize@#1\endcsname[1]%
}
% \end{macrocode}
-% \begin{macro}{\scr@UnkownPaperSize@error}
-% \changes{v3.23}{2017/02/22}{new (internal)}
-% \begin{macro}{\scr@UnkownPaperSize@warning}
-% \changes{v3.23}{2017/02/22}{new (internal)}
-% \begin{macro}{\scr@UnkownPaperSize@info}
+% \begin{macro}{\scr@UnkownPaperSize@error,\scr@UnkownPaperSize@warning,
+% \scr@UnkownPaperSize@info,\scr@UnkownPaperSize@ignore}
% \changes{v3.23}{2017/02/22}{new (internal)}
-% \begin{macro}{\scr@UnkownPaperSize@ignore}
-% \changes{v3.23}{2017/02/22}{new (internal)}
-% Error handling (error classes) for \Macro{PaperNameToSize}.
+% Error handling (error classes) for \cs{PaperNameToSize}.
% \begin{macrocode}
\ProvideUnknownPaperSizeError{error}{%
\PackageError{%
@@ -345,46 +310,15 @@
%</typearea>
%</package&options>
% \end{macrocode}
-% \end{macro}%^^A \scr@UnknownPaperSize@error
-% \end{macro}%^^A \scr@UnknownPaperSize@warning
-% \end{macro}%^^A \scr@UnknownPaperSize@info
-% \end{macro}%^^A \scr@UnknownPaperSize@ignore
-% \end{macro}%^^A \ProvideUnknownPaperSizeError
-% \end{macro}%^^A \ISO@PaperNameToSize
-% \end{macro}%^^A \PaperNameToSize
-%
-% \begin{option}{a4paper}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{a5paper}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{b5paper}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{letterpaper}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{legalpaper}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{executivepaper}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{landscape}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
-% \begin{option}{portrait}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}%^^A
+% \end{macro}^^A \scr@UnknownPaperSize@error … \scr@UnknownPaperSize@ignore
+% \end{command}^^A \ProvideUnknownPaperSizeError
+% \end{macro}^^A \ISO@PaperNameToSize
+% \end{command}^^A \PaperNameToSize
+%
+% \begin{option}{a4paper,a5paper,b5paper,letterpaper,legalpaper,executivepaper,
+% landscape,portrait}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}
% The paper sizes of the standard classes are a special case. For
% compatibility they are declared explicitly. Note: There is still a pattern
% matching implementation for other paper size options, but the usage of those
@@ -401,26 +335,19 @@
\KOMA@DeclareStandardOption[typearea]{portrait}{paper=portrait}
%</package&typearea&options>
% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
-% \end{option}
+% \end{option}^^A a4paper … portrait
%
% \begin{option}{paper}
-% \changes{v2.95}{2002/12/03}{new implementation}%^^A
-% \changes{v3.01b}{2008/12/09}{height and width swapped}%^^A
-% \changes{v3.02c}{2009/02/12}{new \Option{paper!=seascape}}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
-% \changes{v3.22}{2016/07/29}{paper orientation depends on format name}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v2.95}{2002/12/03}{added}
+% \changes{v3.01b}{2008/12/09}{height and width swapped}
+% \changes{v3.02c}{2009/02/12}{new \opt{paper\quotechar=seascape}}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
+% \changes{v3.22}{2016/07/29}{paper orientation depends on format name}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Normally, the paper size should be set using this option. It provides the
% ISO series A, B, C, D, value pairs
-% \Option{(\meta{width},\meta{height})} and the orientations
-% \Option{portrait}, \Option{landscape} and \Option{seascape}.
+% \opt{(\meta{width},\meta{height})} and the orientations
+% \opt{portrait}, \opt{landscape} and \opt{seascape}.
% \begin{macrocode}
%<*package&typearea&options>
\KOMA@key{paper}{%
@@ -572,33 +499,23 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\if@seascape}
-% \changes{v3.02c}{2009/02/12}{new}%^^A
-% \begin{macro}{\@seascapetrue}
-% \changes{v3.02c}{2009/02/12}{new}%^^A
-% \begin{macro}{\@seascapefalse}
-% \changes{v3.02c}{2009/02/12}{new}%^^A
+% \begin{macro}{\if@seascape,\@seascapetrue,\@seascapefalse}
+% \changes{v3.02c}{2009/02/12}{added}
% This switch stores only whether or not the landscape orientation should be
-% up-side-down. Currently this makes sense only using \File{dvips}.
+% up-side-down. Currently this makes sense only using \file{dvips}.
% \begin{macrocode}
\newif\if@seascape
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\if@landscape}
-% \begin{macro}{\@landscapetrue}
-% \begin{macro}{\@landscapefalse}
+% \begin{macro}{\if@landscape,\@landscapetrue,\@landscapefalse}
% This switch stores whether using portrait or landscape orientation.
% \begin{macrocode}
\newif\if@landscape
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \begin{macro}{\maybe@pair}
-% \changes{v2.95}{2002/12/03}{new (internal)}%^^A
-% \changes{v2.97e}{2007/11/26}{works really}%^^A
+% \changes{v2.95}{2002/12/03}{added}
+% \changes{v2.97e}{2007/11/26}{works really}
% Test whether the following parameter is of kind \texttt{\meta{first
% argument}:\meta{second argument}}. If so \cs{@tempa} will become \meta{first
% argument} and \cs{@tempb} will become \meta{second argument} and
@@ -614,15 +531,15 @@
}
%</package&typearea&options>
% \end{macrocode}
-% \end{macro}
-% \end{option}
+% \end{macro}^^A \maybe@pair
+% \end{option}^^A paper
%
-% \subsection{Special handling of \Package{geometry}}
+% \subsection{Special handling of \pkg*{geometry}}
%
% \begin{option}{usegeometry}
-% \changes{v3.17}{2015/02/07}{new}%^^A
-% \Package{typearea} optionally can pass several settings to package
-% \Package{geometry}. The user decides whether or not to use this.
+% \changes{v3.17}{2015/02/07}{added}
+% \pkg*{typearea} optionally can pass several settings to package
+% \pkg{geometry}. The user decides whether or not to use this.
% \begin{macrocode}
%<*package&typearea&options>
\KOMA@ifkey{usegeometry}{@ta@usegeometry}
@@ -633,37 +550,36 @@
%
% \subsection{Setting the output paper size}
%
-% The document paper format of option \Option{paper} is one thing. It is used
+% The document paper format of option \opt{paper} is one thing. It is used
% only for calculation of the dimensions used by \TeX{}. Originally
% \textsc{dvi} does not know something like a paper size. It just contained
% relative movements from the current position starting with the
% origin. Setting up a page size depends on the output driver or back-end.
%
% \begin{option}{pagesize}
-% \changes{v2.7g}{2001/04/17}{new}%^^A
-% \changes{v2.95}{2002/08/27}{new implementation}%^^A
-% \changes{v3.02c}{2009/02/14}{new \Option{pagesize!=false}}%^^A
-% \changes{v3.05a}{2010/03/18}{new \Option{pagesize!=dvipdfmx}}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
-% \changes{v3.17a}{2015/05/03}{logic redesigned}%^^A
-% \changes{v3.20}{2015/07/10}{\File{luatex} as a synonym of
-% \File{pdftex}}%^^A
-% This option is the main element for telling pdf\TeX, \File{dvips} or V\TeX{}
+% \changes{v2.7g}{2001/04/17}{added}
+% \changes{v2.95}{2002/08/27}{new implementation}
+% \changes{v3.02c}{2009/02/14}{new \opt{pagesize\quotechar=false}}
+% \changes{v3.05a}{2010/03/18}{new \opt{pagesize\quotechar=dvipdfmx}}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
+% \changes{v3.17a}{2015/05/03}{logic redesigned}
+% \changes{v3.20}{2015/07/10}{\file{luatex} as a synonym of \file{pdftex}}
+% This option is the main element for telling pdf\TeX, \file{dvips} or V\TeX{}
% which paper size to use. It is also used by some deprecated options. Here
% are the values and their meanings:
-% \begin{labeling}[~--]{\Option{automedia}}
-% \item[\Option{auto}] combination of options \Option{pdftex} and
-% \Option{dvips}.
-% \item[\Option{automedia}] like \Option{auto} with additional setting of
+% \begin{labeling}[~--]{\opt{automedia}}
+% \item[\opt{auto}] combination of options \opt{pdftex} and
+% \opt{dvips}.
+% \item[\opt{automedia}] like \opt{auto} with additional setting of
% \cs{mediawidth} and \cs{mediaheight} if available.
-% \item[\Option{dvips}] adds a \File{dvips} \cs{special} to set the paper
+% \item[\opt{dvips}] adds a \file{dvips} \cs{special} to set the paper
% size. This should be done only once in the document preamble. Usage inside
% the document body is not fully supported and will raise a warning.
-% \item[\Option{dvipdfmx}] adds a \File{dvipdfmx} \cs{special} to set the
+% \item[\opt{dvipdfmx}] adds a \file{dvipdfmx} \cs{special} to set the
% paper size.
-% \item[\Option{false}] switch of the automatic driver page size setting,
+% \item[\opt{false}] switch of the automatic driver page size setting,
% i.e., if there are changes inside the document.
-% \item[\Option{pdftex}] set \cs{pdfpagewidth} and \cs{pdfpageheight} if
+% \item[\opt{pdftex}] set \cs{pdfpagewidth} and \cs{pdfpageheight} if
% available.
% \end{labeling}
% \begin{macrocode}
@@ -711,41 +627,41 @@
}
% \end{macrocode}
% \begin{macro}{\@pagesizelast}
-% This internal macro stores the current value of option \Option{pagesize} and
-% is needed to use the correct signalling if option \Option{paper} is used
+% This internal macro stores the current value of option \opt{pagesize} and
+% is needed to use the correct signalling if option \opt{paper} is used
% inside the document and the initial setup in |\begin{document}|.
% \begin{macrocode}
\newcommand\@pagesizelast{auto}
\AtBeginDocument{%
\KOMAExecuteOptions[.typearea.\scr@pkgextension]{pagesize=\@pagesizelast}%
% \end{macrocode}
-% \end{macro}%^^A \@pagesizelast
+% \end{macro}^^A \@pagesizelast
%
% \begin{macro}{\set@pdftexpagesize}
-% \changes{v2.95}{2002/08/27}{new (internal)}%^^A
+% \changes{v2.95}{2002/08/27}{added}
% \changes{v3.20}{2015/07/10}{if \cs{pdfpage\dots} does not exist
-% \cs{page\dots} will be tried (needed for lua\TeX{}~0.80.1)}%^^A
+% \cs{page\dots} will be tried (needed for lua\TeX{}~0.80.1)}
% \begin{macro}{\set@dvipspagesize}
-% \changes{v2.95}{2002/08/27}{new (internal)}%^^A
-% \changes{v3.02c}{2009/02/13}{respecting \Option{seascape}}%^^A
-% \changes{v3.02c}{2009/02/14}{can be used inside the document}%^^A
+% \changes{v2.95}{2002/08/27}{added}
+% \changes{v3.02c}{2009/02/13}{respecting \opt{seascape}}
+% \changes{v3.02c}{2009/02/14}{can be used inside the document}
% \changes{v3.12}{2012/02/06}{not expanded
% \cs{let}\cs{if@tempswa}\cs{if@dvips} does even work is the later is not
-% yet defined}%^^A
+% yet defined}
% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} renamed into
-% \cs{Ifnotundefined}}%^^A
+% \cs{Ifnotundefined}}
% \begin{macro}{\setnot@dvipspagesize}
-% \changes{v2.95}{2002/08/27}{new (internal)}%^^A
+% \changes{v2.95}{2002/08/27}{added}
% \begin{macro}{\set@dvipdfmxpagesize}
-% \changes{v3.05a}{2010/03/18}{new (internal)}%^^A
+% \changes{v3.05a}{2010/03/18}{added}
% \begin{macro}{\set@vtexpagesize}
-% \changes{v2.95}{2002/08/27}{new (internal)}%^^A
+% \changes{v2.95}{2002/08/27}{added}
% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} renamed into
-% \cs{Ifnotundefined}}%^^A
+% \cs{Ifnotundefined}}
% \begin{macro}{\scr@updatedvipspagesize}
-% \changes{v3.02c}{2009/02/14}{new (internal)}%^^A
-% \changes{v3.12}{2013/05/10}{deactivated, if \cs{XeTeXversion} exists}%^^A
-% Option \Option{pagesize} needs some internal macros.
+% \changes{v3.02c}{2009/02/14}{added}
+% \changes{v3.12}{2013/05/10}{deactivated, if \cs{XeTeXversion} exists}
+% Option \opt{pagesize} needs some internal macros.
% \begin{description}
% \item{Attention:} The definition of these macros may change at usage of
% themselves or at |\begin{document}|.
@@ -755,12 +671,12 @@
\expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax
\renewcommand*{\set@dvipspagesize}{%
% \end{macrocode}
-% \changes{v3.12}{2012/11/23}{use paper size update only for DVI and PS}%^^A
+% \changes{v3.12}{2012/11/23}{use paper size update only for DVI and PS}
% \changes{v3.12}{2012/02/06}{not expanded
-% \cs{let}\cs{if@tempswa}\cs{if@dvips} does even work is the later is not
-% yet defined}%^^A
-% Test whether unspecified \textsc{DVI} output or specified \textsc{PS} output
-% is used. Only in that cases the \textsc{PS} code for paper size updates will
+% \cs{let}\cs{if@tempswa}\cs{if@dvips} does even work if the later is not
+% yet defined}
+% Test whether unspecified \textsc{dvi} output or specified \textsc{ps} output
+% is used. Only in that cases the \textsc{ps} code for paper size updates will
% be used.
% \begin{macrocode}
\begingroup
@@ -782,7 +698,7 @@
}{%
% \end{macrocode}
% If \cs{AtBeginShipoutNext} is available (mostly because of loading package
-% \Package{atbegshi}) use it so execute the code at least before other code
+% \pkg{atbegshi}) use it so execute the code at least before other code
% that has been added to \cs{shipout}. Unfortunately this is not reliable. If
% \cs{AtBeginShipout} is used after \cs{set@dvipspagesize} (this means the
% recalculation of the typing area and the margins) but before the current
@@ -804,7 +720,7 @@
}{%
% \end{macrocode}
% If \cs{AtNextShipout} is available (mostly because of loading package
-% \Package{everyshi} use it to execute the code at least before other code
+% \pkg{everyshi} use it to execute the code at least before other code
% that has been added to \cs{shipout}. Unfortunately this is not reliable. If
% \cs{AtNextShipout} or \cs{EveryShipout} is used after \cs{set@dvipspagesize}
% (this means the recalculation of the typing area and the margins) but before
@@ -844,7 +760,7 @@
% \end{macrocode}
% And now the definition that is used before |\begin{document}| but executed
% the first time inside |\begin{document}|.
-% \changes{3.21}{2016/05/27}{two missing backslashs added}
+% \changes{v3.21}{2016/05/27}{two missing backslashs added}
% \begin{macrocode}
\newcommand*{\set@pdftexpagesize}{%
\scr@ifundefinedorrelax{pdfpagewidth}{%
@@ -864,10 +780,10 @@
}{}%
}{}%
% \end{macrocode}
-% \changes{v3.22}{2016/08/04}{\textsf{preview} workaround}%^^A
-% If package \Package{preview} has been loaded with option \Option{tightpage},
+% \changes{v3.22}{2016/08/04}{\pkg{preview} workaround}
+% If package \pkg{preview} has been loaded with option \opt{tightpage},
% which can be recognized by a defined macro \cs{pr@nextbb}, and if the
-% package is active, we do not add \textsc{DVI} specials, because it would
+% package is active, we do not add \textsc{dvi} specials, because it would
% disturb Xe\LaTeX.
% \begin{macrocode}
\scr@ifundefinedorrelax{pr@nextbb}{}{%
@@ -942,15 +858,15 @@
% \end{option}
%
% \begin{option}{dvips}
-% \changes{v2.7g}{2001/04/17}{new}%^^A
-% \changes{v2.95}{2002/08/27}{new implementation}%^^A
-% \changes{v2.98c}{2008/04/09}{replacement changed}%^^A
-% \changes{v2.98c}{2008/04/09}{info instead of warning}%^^A
-% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}%^^A
+% \changes{v2.7g}{2001/04/17}{added}
+% \changes{v2.95}{2002/08/27}{new implementation}
+% \changes{v2.98c}{2008/04/09}{replacement changed}
+% \changes{v2.98c}{2008/04/09}{info instead of warning}
+% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}
% This option is a kind of obsolete. It is now implemented using
-% \Option{pagesize}. But because this is a standard option using several other
+% \opt{pagesize}. But because this is a standard option using several other
% packages we only show a standard option information instead of a deprecated
-% option warning. Note: Usage of \Option{pagesize=automedia} can still result
+% option warning. Note: Usage of \opt{pagesize=automedia} can still result
% in a warning message!
% \begin{macrocode}
%<*package&typearea&options>
@@ -962,13 +878,12 @@
% \end{option}
%
% \begin{option}{pdftex}
-% \changes{v2.7g}{2001/04/17}{new}%^^A
-% \changes{v2.95}{2002/08/27}{new implementation}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}%^^A
+% \changes{v2.7g}{2001/04/17}{added}
+% \changes{v2.95}{2002/08/27}{new implementation}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}
% This option is a kind of obsolete. It is now implemented using
-% \Option{pagesize}. But because this is a standard option using several other
+% \opt{pagesize}. But because this is a standard option using several other
% packages we only show a standard option information instead of a deprecated
% option warning.
% \begin{macrocode}
@@ -982,32 +897,29 @@
%
% \subsection{Influencing left and right margin proportions}
%
-% Options like \Option{twoside} or \Option{twocolumn} influence the
+% Options like \opt{twoside} or \opt{twocolumn} influence the
% proportions of the left and right margin and indirectly also the top and the
% bottom margin. They are also very important for the document classes.
%
% \begin{option}{oneside}
-% \changes{v2.97e}{2007/11/23}{pass option from class to
-% \Package{typearea}}%^^A
-% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}%^^A
+% \changes{v2.97e}{2007/11/23}{pass option from class to \pkg*{typearea}}
+% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}
% \begin{option}{twoside}
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v2.97e}{2007/11/23}{pass option from class to
-% \Package{typearea}}%^^A
-% \changes{v3.00}{2008/07/09}{new option \Option{twoside!=semi}}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v2.97e}{2007/11/23}{pass option from class to \pkg*{typearea}}
+% \changes{v3.00}{2008/07/09}{new option \opt{twoside\quotechar=semi}}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
% \changes{v3.13a}{2014/04/09}{the class also uses status signaling with
-% \cs{FamilyKeyStateProcessed}}%^^A
+% \cs{FamilyKeyStateProcessed}}
% \changes{v3.17}{2015/03/17}{automatic usage of \cs{flushbottom} and
-% \cs{raggedbottom}}%^^A
-% \changes{v3.17}{2015/03/17}{early setting of default}%^^A
-% \changes{v3.17}{2015/03/18}{use \cs{cleardoubleoddpage} if available}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\if@semitwoside}
-% \changes{v3.00}{2008/07/09}{new boolean switch (intern)}%^^A
-% \begin{macro}{\if@twoside}
-% \changes{v3.00}{2008/07/09}{switch also sets \cs{if@semitwoside}}%^^A
+% \cs{raggedbottom}}
+% \changes{v3.17}{2015/03/17}{early setting of default}
+% \changes{v3.17}{2015/03/18}{use \cs{cleardoubleoddpage} if available}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{macro}{\if@semitwoside,\@semitwosidetrue,\@semitwosidefalse}
+% \changes{v3.00}{2008/07/09}{new boolean switch (intern)}
+% \begin{macro}{\if@twoside,\@twosidetrue,\@twosidefalse}
+% \changes{v3.00}{2008/07/09}{switch also sets \cs{if@semitwoside}}
% Do we have a single sided or double sided layout?
% \begin{macrocode}
%<*package&typearea&options>
@@ -1040,16 +952,16 @@
\KOMA@set@ifkey{twoside}{%
% \end{macrocode}
% \changes{v3.20}{2015/11/02}{not existing order dependency of
-% \Option{twocolumn} and \Option{twoside} fixed}%^^A
-% \changes{v3.27}{2019/03/05}{no \emph{Extrawurst} for letters}%^^A
-% \changes{v3.27}{2019/03/05}{mising \cs{sloppy} in twocolumn mode added}%^^A
+% \opt{twocolumn} and \opt{twoside} fixed}
+% \changes{v3.27}{2019/03/05}{no special treatment for letters}
+% \changes{v3.27}{2019/03/05}{missing \cs{sloppy} in twocolumn mode added}
% From v3.17 until 3.19a the classes used a local switch
-% \Macro{if@tempswa}. As a result of this option \Option{twocolumn} was not
+% \cs{if@tempswa}. As a result of this option \opt{twocolumn} was not
% able to recognize double sided layout. Because of this it was essential to
-% handle option \Option{twocolumn} before option \Option{twoside}. This has
-% been solved using \Macro{if@twoside} in the classes too. Another solution
+% handle option \opt{twocolumn} before option \opt{twoside}. This has
+% been solved using \cs{if@twoside} in the classes too. Another solution
% could have been to move the implementation and execution of
-% \Option{twocolumn} before \Option{twoside}. But I don't know whether or not
+% \opt{twocolumn} before \opt{twoside}. But I don't know whether or not
% this would have been reliable and the solution here is more simple.
% \begin{macrocode}
@twoside%
@@ -1096,27 +1008,24 @@
{oneside}{twoside=false}
%</(class|(package&typearea))&options>
% \end{macrocode}
-% \end{option}%^^A twoside
-% \end{option}%^^A oneside
+% \end{option}^^A twoside
+% \end{option}^^A oneside
%
% \begin{option}{onecolumn}
-% \changes{v2.95}{2002/12/04}{option moved to package \Package{typearea}}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v2.97e}{2007/11/23}{the classes pass the option to
-% \Package{typearea}}%^^A
-% \changes{v3.01a}{2008/11/21}{standard option but not deprecated}%^^A
+% \changes{v2.95}{2002/12/04}{option moved to package \pkg*{typearea}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v2.97e}{2007/11/23}{the classes pass the option to \pkg*{typearea}}
+% \changes{v3.01a}{2008/11/21}{standard option but not deprecated}
% \begin{option}{twocolumn}
-% \changes{v2.95}{2002/12/04}{option moved to package \Package{typearea}}%^^A
-% \changes{v2.97e}{2007/11/23}{the classes pass the option to
-% \Package{typearea}}%^^A
-% \changes{v2.98a}{2007/01/08}{passing the correct option}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
+% \changes{v2.95}{2002/12/04}{option moved to package \pkg*{typearea}}
+% \changes{v2.97e}{2007/11/23}{the classes pass the option to \pkg*{typearea}}
+% \changes{v2.98a}{2007/01/08}{passing the correct option}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
% \changes{v3.13a}{2014/04/09}{the class also uses status signaling with
-% \cs{FamilyKeyStateProcessed}}%^^A
+% \cs{FamilyKeyStateProcessed}}
% \changes{v3.20}{2016/02/16}{\cs{sloppy}, \cs{raggedbottom} and
-% \cs{flushbottom} delayed}%^^A
-% \changes{v3.27}{2019/03/05}{no \emph{Extrawurst} for letters}%^^A
+% \cs{flushbottom} delayed}
+% \changes{v3.27}{2019/03/05}{no extra treatment for letters}
% Do we have a single column or two columns layout?
% \begin{macrocode}
%<*(class|(package&typearea))&options>
@@ -1170,8 +1079,8 @@
{onecolumn}{twocolumn=false}
%</(class|(package&typearea))&options>
% \end{macrocode}
-% \end{option}%^^A twocolumn
-% \end{option}%^^A onecolumn
+% \end{option}^^A twocolumn
+% \end{option}^^A onecolumn
%
%
% \subsection{Influencing size of head and foot and margins}
@@ -1182,10 +1091,10 @@
% area or not.
%
% \begin{option}{headlines}
-% \changes{v2.95}{2002/12/06}{new implementation using \textsf{keyval}}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
+% \changes{v2.95}{2002/12/06}{new implementation using \pkg{keyval}}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
% \begin{option}{footlines}
-% \changes{v3.12}{2013/03/26}{new}%^^A
+% \changes{v3.12}{2013/03/26}{added}
% These are two of the recommended options to set the height of the page head
% and footer. Here we set the height by the number of base lines. The number
% is a factor to \cs{baselineskip} and therefore a real number.
@@ -1215,13 +1124,13 @@
% \end{option}
%
% \begin{option}{headheight}
-% \changes{v2.98c}{2008/04/06}{new}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
+% \changes{v2.98c}{2008/04/06}{added}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
% \begin{option}{footheight}
-% \changes{v3.12}{2013/03/26}{new}%^^A
+% \changes{v3.12}{2013/03/26}{added}
% Instead of setting the height of the page head or footer by the number of
% base lines, we can set it also using a length or length value. Note, via
-% \Macro{documenclass} or \Macro{usepackage} only length values are supported
+% \cs{documenclass} or \cs{usepackage} only length values are supported
% (due to an expansion problem by the \LaTeX{} kernel with both commands).
% \begin{macrocode}
%<*package&typearea&options>
@@ -1249,20 +1158,17 @@
% \end{option}
%
% \begin{option}{headinclude}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
% This options determines whether or not the head is part of the typing
% area.
% \begin{option}{headexclude}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
-% \begin{macro}{\if@hincl}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{deprecated}
+% \begin{macro}{\if@hincl,\@hincltrue,\@hinclfalse}
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
% \changes{v2.97c}{2007/04/19}{direct initialization via \cs{if@hsl},
-% if already defined}%^^A
-% \begin{macro}{\@hincltrue}
-% \begin{macro}{\@hinclfalse}
+% if already defined}
% We use a boolean switch to store the decision.
% \begin{macrocode}
%<*package&typearea&options>
@@ -1272,30 +1178,27 @@
%</package&typearea&options>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
% \end{option}
%
% \begin{option}{headsepline}
-% \changes{v3.20}{2015/12/12}{\Package{typearea} itself reacts on
-% \Option{headsepline}}%^^A
-% Until \KOMAScript{} v3.20 \Package{typearea} was not able to handle
-% sequences of options \Option{headsepline} and \Option{headinclude} to get
-% always a correct result. Until v3.18a \Option{headinclude} was prioritized
-% against \Option{headsepline} if used as global options but not if used via
-% \Macro{KOMAoptions}. In v3.18a a bug has been fixed with the result that
-% \Option{headsepline} was prioritized against \Option{headinclude} if used
+% \changes{v3.20}{2015/12/12}{\pkg*{typearea} itself reacts on \opt{headsepline}}
+% Until \KOMAScript{} v3.20 \pkg*{typearea} was not able to handle
+% sequences of options \opt{headsepline} and \opt{headinclude} to get
+% always a correct result. Until v3.18a \opt{headinclude} was prioritized
+% against \opt{headsepline} if used as global options but not if used via
+% \cs{KOMAoptions}. In v3.18a a bug has been fixed with the result that
+% \opt{headsepline} was prioritized against \opt{headinclude} if used
% as global options. But intentionally
-% \Option{headinclude=false,}\Option{headsepline} or
-% \Option{headinclude=true,}\Option{headsepline=false} always should use the
-% setting of option \Option{headsepline} independent of setting this as
-% global options or using \Macro{KOMAoptions}. Similar with
-% \Option{headsepline,}\Option{headinclude=false} or
-% \Option{headsepline=false,},\Option{headinclude} the setting of
-% \Option{headinclude} should be used. To achieve this \Package{typearea}
-% itself has to interpret not only \Option{headinclude} but also
-% \Option{headsepline} (as an alias of \Option{headinclude}).
+% \opt{headinclude=false,}\opt{headsepline} or
+% \opt{headinclude=true,}\opt{headsepline=false} always should use the
+% setting of option \opt{headsepline} independent of setting this as
+% global options or using \cs{KOMAoptions}. Similar with
+% \opt{headsepline,}\opt{headinclude=false} or
+% \opt{headsepline=false,},\opt{headinclude} the setting of
+% \opt{headinclude} should be used. To achieve this \pkg*{typearea}
+% itself has to interpret not only \opt{headinclude} but also
+% \opt{headsepline} (as an alias of \opt{headinclude}).
% \begin{macrocode}
%<*package&typearea&options>
\KOMA@key{headsepline}[true]{%
@@ -1306,23 +1209,20 @@
}
%</package&typearea&options>
% \end{macrocode}
-% \end{option}%^^A headsepline
+% \end{option}^^A headsepline
%
% \begin{option}{footinclude}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
% \begin{option}{footexclude}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{deprecated}
% This options determines whether or not the page footer is part of the typing
% area.
-% \begin{macro}{\if@fincl}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
+% \begin{macro}{\if@fincl,\@fincltrue,\@finclfalse}
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
% \changes{v2.97c}{2007/04/19}{direct initialization via \cs{if@fsl},
-% if already defined}%^^A
-% \begin{macro}{\@fincltrue}
-% \begin{macro}{\@finclfalse}
+% if already defined}
% We use a boolean switch to store the decision.
% \begin{macrocode}
%<*package&typearea&options>
@@ -1332,32 +1232,28 @@
%</package&typearea&options>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
% \end{option}
%
% \begin{option}{footsepline}
-% \changes{v3.23}{2017/03/03}{has to set \cs{if@fincl} instead of
-% \cs{if@hincl}}%^^A
-% \changes{v3.20}{2015/12/12}{\Package{typearea} itself reacts on
-% \Option{footsepline}}%^^A
-% Until \KOMAScript{} v3.20 \Package{typearea} was not able to handle
-% sequences of options \Option{footsepline} and \Option{footinclude} to get
-% always a correct result. Until v3.18a \Option{footinclude} was prioritized
-% against \Option{footsepline} if used as global options but not if used via
-% \Macro{KOMAoptions}. In v3.18a a bug has been fixed with the result that
-% \Option{footsepline} was prioritized against \Option{footinclude} if used
+% \changes{v3.23}{2017/03/03}{has to set \cs{if@fincl} instead of \cs{if@hincl}}
+% \changes{v3.20}{2015/12/12}{\pkg*{typearea} itself reacts on \opt{footsepline}}
+% Until \KOMAScript{} v3.20 \pkg*{typearea} was not able to handle
+% sequences of options \opt{footsepline} and \opt{footinclude} to get
+% always a correct result. Until v3.18a \opt{footinclude} was prioritized
+% against \opt{footsepline} if used as global options but not if used via
+% \cs{KOMAoptions}. In v3.18a a bug has been fixed with the result that
+% \opt{footsepline} was prioritized against \opt{footinclude} if used
% as global options. But intentionally
-% \Option{footinclude=false,}\Option{footsepline} or
-% \Option{footinclude=true,}\Option{footsepline=false} always should use the
-% setting of option \Option{footsepline} independent of setting this as
-% global options or using \Macro{KOMAoptions}. Similar with
-% \Option{footsepline,}\Option{footinclude=false} or
-% \Option{footsepline=false,},\Option{footinclude} the setting of
-% \Option{footinclude} should be used. To achieve this \Package{typearea}
-% itself has to interpret not only \Option{footinclude} but also
-% \Option{footsepline} (as an alias of \Option{footinclude}).
+% \opt{footinclude=false,}\opt{footsepline} or
+% \opt{footinclude=true,}\opt{footsepline=false} always should use the
+% setting of option \opt{footsepline} independent of setting this as
+% global options or using \cs{KOMAoptions}. Similar with
+% \opt{footsepline,}\opt{footinclude=false} or
+% \opt{footsepline=false,},\opt{footinclude} the setting of
+% \opt{footinclude} should be used. To achieve this \pkg*{typearea}
+% itself has to interpret not only \opt{footinclude} but also
+% \opt{footsepline} (as an alias of \opt{footinclude}).
% \begin{macrocode}
%<*package&typearea&options>
\KOMA@key{footsepline}[true]{%
@@ -1368,24 +1264,21 @@
}
%</package&typearea&options>
% \end{macrocode}
-% \end{option}%^^A footsepline
+% \end{option}^^A footsepline
%
% \begin{option}{mpinclude}
-% \changes{v2.8q}{2002/03/28}{new}%^^A
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
+% \changes{v2.8q}{2002/03/28}{added}
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
% \begin{option}{mpexclude}
-% \changes{v2.8q}{2002/03/28}{new}%^^A
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
+% \changes{v2.8q}{2002/03/28}{added}
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{deprecated}
% Some documents have a lot of large margin notes. Optical these margin notes
% are more part of the typing area than the margin. This options determines
% whether or not margin notes should be part of the typing area.
-% \begin{macro}{\if@mincl}
-% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}%^^A
-% \begin{macro}{\@mincltrue}
-% \begin{macro}{\@minclfalse}
+% \begin{macro}{\if@mincl,\@mincltrue,\@minclfalse}
+% \changes{v2.95}{2002/07/08}{new implementation using \pkg{keyval}}
% We use a boolean switch to store the decision. Note, if the margin notes are
% part of the typing area, you should increase the divisor.
% \begin{macrocode}
@@ -1395,8 +1288,6 @@
%</package&typearea&options>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
% \end{option}
%
@@ -1404,11 +1295,11 @@
% \subsection{Typing area for the emulation of the standard classes}
%
% For the emulation of the standard classes we need a dedicated size of the
-% typing area, if and only if no explicit \Option{DIV} has been given by
+% typing area, if and only if no explicit \opt{DIV} has been given by
% option. The emulation of the standard classes is a class feature. We could
-% do it before \Package{typearea} and then deactivate initial setting of
+% do it before \pkg*{typearea} and then deactivate initial setting of
% margins and typing area. But it is more easy to use \cs{areaset} after
-% loading \Package{typearea}. The standard letter class cannot be emulated.
+% loading \pkg*{typearea}. The standard letter class cannot be emulated.
% \begin{macrocode}
%<*class&body&!letter>
\if@scr@emulatestandardclasses
@@ -1451,21 +1342,20 @@
%
% \subsection{Using a predefined divisor depending on the font size}
%
-% Some years ago \Package{typearea} provides the feature to use a hard coded
+% Some years ago \pkg*{typearea} provides the feature to use a hard coded
% or user defined divisor depending on the document font size. The feature to
% define such predefined divisors is deprecated, because it can be used only
% for integer font sizes in pt. Nevertheless, for compatibility reasons it is
% still implemented.
%
% \begin{macro}{\ta@divlist}
-% \changes{v2.0e}{1994/10/28}{new (internal)}%^^A
-% \changes{v2.6}{2000/01/04}{the list provides values from font size
-% 1\,pt}%^^A
+% \changes{v2.0e}{1994/10/28}{added}
+% \changes{v2.6}{2000/01/04}{the list provides values from font size 1\,pt}
% \begin{macro}{\ta@divlistelse}
-% \changes{v2.6}{2000/01/04}{neu (internal)}%^^A
+% \changes{v2.6}{2000/01/04}{added}
% We need a default settings for 10\,pt, 11\,pt and 12\,pt. But we define it
% only if they has not been defined before. So classes could define other
-% defaults before loading \Package{typearea}.
+% defaults before loading \pkg*{typearea}.
% \begin{macrocode}
%<*package&typearea&init>
\providecommand\ta@divlist{{}{}{}{}{}{}{}{}{}{8}{10}{12}}
@@ -1484,10 +1374,10 @@
% depending on the font size given by the real number argument. The real
% number will be rounded to the nearest integer.
% \changes{v2.4g}{1996/11/04}{usage of the default value list}
-% \changes{v2.6}{2000/01/04}{usage of the extended list}%^^A
-% \changes{v2.8q}{2002/03/28}{respect option \Option{mpinclude}}%^^A
-% \changes{v2.96}{2006/08/11}{font size does not need to be an integer}%^^A
-% \changes{v3.25}{2018/03/05}{paper size test added}%^^A
+% \changes{v2.6}{2000/01/04}{usage of the extended list}
+% \changes{v2.8q}{2002/03/28}{respect option \opt{mpinclude}}
+% \changes{v2.96}{2006/08/11}{font size does not need to be an integer}
+% \changes{v3.25}{2018/03/05}{paper size test added}
% \begin{macrocode}
%<*package&typearea&body>
\newcommand*{\ta@divfor}[1]{%
@@ -1563,18 +1453,12 @@
% \end{macrocode}
% \end{macro}
%
-% The documentation of the deprecated part of the feature is still in German.
-% \selectlanguage{ngerman}
%
-% \begin{macro}{\SetDIVList}
-% \changes{v2.1a}{1994/10/28}{neu}%^^A
-% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enthält Werte für
-% Schriftgrößen ab 1pt}%^^A
-% \changes{v3.24}{2017/07/23}{deprecated command}%^^A
-% Der Befehl \cs{SetDIVList} tut nichts weiter als die innere Variable
-% für die schriftgrößenabhängige \emph{DIV}-Liste \cs{ta@divlist} neu
-% zu definieren. Dabei können \emph{DIV}-Werte für Größen ab 10\,pt
-% gesetzt werden.
+% \begin{command}{\SetDIVList}
+% \changes{v2.1a}{1994/10/28}{new}
+% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} holds values for font sizes from 1\,pt}
+% \changes{v3.24}{2017/07/23}{deprecated}
+% The command is deprecated. Don't use it any longer.
% \begin{macrocode}
%<*package&typearea&body>
\newcommand*\SetDIVList[1]{%
@@ -1587,14 +1471,12 @@
any longer}%
\def\ta@divlist{{}{}{}{}{}{}{}{}{}#1}}
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \SetDIVList
%
-% \begin{macro}{\SetXDIVList}
-% \changes{v2.6}{2000/01/04}{neu}%^^A
-% \changes{v3.24}{2017/07/23}{deprecated command}%^^A
-% Da mit \cs{SetDIVList} aus Kompatibilitätsgründen nur Werte für
-% Größen ab 10\,pt gesetzt werden können, wird für Werte ab 1\,pt
-% ein neuer Befehl benötigt.
+% \begin{command}{\SetXDIVList}
+% \changes{v2.6}{2000/01/04}{neu}
+% \changes{v3.24}{2017/07/23}{deprecated}
+% The command is deprecated. Don't use it any longer.
% \begin{macrocode}
\newcommand*\SetXDIVList[1]{%
\PackageWarning{typearea}{\string\SetXDIVList\space is
@@ -1607,9 +1489,8 @@
\def\ta@divlist{#1}}
%</package&typearea&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \SetXDIVList
%
-% \selectlanguage{english}
%
% \subsection{Calculation of typing area and margins}
%
@@ -1620,32 +1501,32 @@
% The parameters and the calculation is needed before the options can be
% processed.
%
-% \begin{Length}{\ta@bcor}
+% \begin{ilength}{\ta@bcor}
% \changes{v2.2a}{1995/01/25}{definition of the dimension before option
-% \Option{BCOR}}%^^A
+% \opt{BCOR}}
% \changes{v2.7g}{2001/04/17}{definition using \cs{newlength} instead of
-% \cs{newdimen}}%^^A
+% \cs{newdimen}}
% We need a length to store the binding correction. It is initializes to 0\,pt
-% implicitly by \Macro{newlength}.
+% implicitly by \cs{newlength}.
% \begin{macrocode}
%<*package&typearea&options>
\newlength{\ta@bcor}
% \end{macrocode}
-% \end{Length}
+% \end{ilength}
%
% \begin{macro}{\ta@div}
% \changes{v2.2a}{1995/01/25}{definition of the dimension before option
-% \Option{BCOR}}%^^A
+% \opt{BCOR}}
% We need a counter for the divisor (aka \emph{DIV}). It is initializes to
-% 0\,pt implicitly by \Macro{newcount}.
+% 0\,pt implicitly by \cs{newcount}. So it is not a \LaTeX{} counter but a
+% \TeX{} counter.
% \begin{macrocode}
\newcount\ta@div
%</package&typearea&options>
% \end{macrocode}
% \end{macro}
%
-% \begin{Length}{\ta@hblk}
-% \begin{Length}{\ta@vblk}
+% \begin{ilength}{\ta@hblk,\ta@vblk}
% Width of one horizontal resp. height of one vertical block.
% \begin{macrocode}
%<*package&typearea&body>
@@ -1653,10 +1534,9 @@
\newlength{\ta@vblk}
%</package&typearea&body>
% \end{macrocode}
-% \end{Length}
-% \end{Length}
+% \end{ilength}
%
-% \begin{Length}{\ta@temp}
+% \begin{ilength}{\ta@temp}
% Used several times instead of \cs{@tempdima}, \cs{@tempdimb} or another
% temporary dimension or glue of the LaTeX{} kernel. Nevertheless I should
% think about not using this temporary length any longer.
@@ -1665,13 +1545,13 @@
\newlength{\ta@temp}
%</package&typearea&body>
% \end{macrocode}
-% \end{Length}
+% \end{ilength}
%
% \begin{option}{BCOR}
-% \changes{v2.2a}{1995/01/25}{new}%^^A
-% \changes{v2.95}{2002/12/04}{new implementation using \textsf{keyval}}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v2.2a}{1995/01/25}{added}
+% \changes{v2.95}{2002/12/04}{new implementation using \pkg{keyval}}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% The value is written into the length \cs{ta@bcor}. Several symbolic values
% are supported that have to be converted into a length. Note, while loading
% the package symbolic values are nonsense.
@@ -1687,8 +1567,8 @@
% \end{macrocode}
% After loading the package we have to do a little bit more, because we need
% to recalculate the areas.
-% \changes{v3.13}{2014/06/30}{\cs{FamilyKeyStateProcessed} added}%^^A
-% \changes{v3.24}{2017/07/23}{\cs{KOMA@kav@xreplacevalue} added}%^^A
+% \changes{v3.13}{2014/06/30}{\cs{FamilyKeyStateProcessed} added}
+% \changes{v3.24}{2017/07/23}{\cs{KOMA@kav@xreplacevalue} added}
% \begin{macrocode}
\AtEndOfPackage{%
\KOMA@key{BCOR}{%
@@ -1702,20 +1582,20 @@
% \end{option}
%
% \begin{option}{DIV}
-% \changes{v2.2a}{1995/01/25}{new option}%^^A
-% \changes{v2.95}{2002/12/04}{new implementation using \textsf{keyval}}%^^A
-% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}%^^A
+% \changes{v2.2a}{1995/01/25}{new option}
+% \changes{v2.95}{2002/12/04}{new implementation using \pkg{keyval}}
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}
% The value is written into the counter \cs{ta@div}. Several symbolic values
% are supported and have to be converted into a counter. Note, while loading
% the package symbolic values are nonsense.
% \begin{macro}{\@lastdiv}
-% \changes{v3.30}{2020/03/24}{init the internal macro}%^^A
-% This internal macro stores the last value to option \texttt{DIV}. It is
+% \changes{v3.30}{2020/03/24}{init the internal macro}
+% This internal macro stores the last value to option \opt{DIV}. It is
% initialized with \cs{relax}.
% \begin{macrocode}
%<package&typearea&init>\newcommand*{\@lastdiv}{\z@}\let\@lastdiv\relax
% \end{macrocode}
-% \end{macro}%^^A \@lastdiv
+% \end{macro}^^A \@lastdiv
% \begin{macrocode}
%<*package&typearea&options>
\def\movet@reserved@a@to@nnil#1\@nnil{\def\reserved@a{#1}}%
@@ -1751,8 +1631,8 @@
% \end{macrocode}
% After loading the package we have to do a little bit more, because we need
% to recalculate the areas.
-% \changes{v3.13}{2014/06/30}{\cs{FamilyKeyStateProcessed} added}%^^A
-% \changes{v3.24}{2017/07/23}{\cs{KOMA@kav@xreplacevalue} added}%^^A
+% \changes{v3.13}{2014/06/30}{\cs{FamilyKeyStateProcessed} added}
+% \changes{v3.24}{2017/07/23}{\cs{KOMA@kav@xreplacevalue} added}
% \begin{macrocode}
\AtEndOfPackage{%
\KOMA@key{DIV}{%
@@ -1765,13 +1645,13 @@
% \end{macrocode}
% \end{option}
%
-% \begin{macro}{\typearea}
+% \begin{command}{\typearea}
% This is the real reason for the package: calculation of typing area and
% margins providing an optional binding correction and depending on a
% divisor.
% \begin{macro}{\@typearea}
-% \changes{v2.4n}{1997/05/28}{moved main calculation into \cs{@typearea}}%^^A
-% \changes{v2.95}{2002/08/20}{\cs{selectfont} added}%^^A
+% \changes{v2.4n}{1997/05/28}{moved main calculation into \cs{@typearea}}
+% \changes{v2.95}{2002/08/20}{\cs{selectfont} added}
% The calculation itself is done in \cs{@typearea}. This command does not need
% any parameters because it uses \cs{ta@div} and \cs{ta@bcor}.
% \begin{macrocode}
@@ -1793,7 +1673,7 @@
% whether or not is should be part of the typing area and whether of not we
% have a double sided document.
% \changes{v2.8q}{2002/03/28}{\cs{marginparwidth} depends on
-% \Option{mpinclude}}%^^A
+% \opt{mpinclude}}
% \begin{macrocode}
\if@mincl
\marginparwidth=\ta@hblk
@@ -1821,11 +1701,11 @@
\advance\oddsidemargin by1.5\ta@hblk
\advance\oddsidemargin by\ta@bcor
% \end{macrocode}
-% \changes{v3.12}{2013/10/15}{use alternating \texttt{BCOR} with
-% \texttt{twoside!=semi}}
+% \changes{v3.12}{2013/10/15}{use alternating \opt{BCOR} with
+% \opt{twoside\quotechar=semi}}
% From v3.12 the binding correction is part of the inner margin also for
-% \Option{twoside=semi}. If compatibility to earlier release is selected the
-% binding correction with \Option{twoside=semi} is always added to the left
+% \opt{twoside=semi}. If compatibility to earlier release is selected the
+% binding correction with \opt{twoside=semi} is always added to the left
% margin.
% \begin{macrocode}
\expandafter\ifnum\scr@ta@v@is@lt{3.12}\relax
@@ -1861,7 +1741,7 @@
% for the margin note column, the width of margin note column will be
% reduced. This can be done easily be swapping the two lengths.
% \changes{v3.30}{2020/02/25}{orphan line break at end of warning message
-% removed}%^^A
+% removed}
% \begin{macrocode}
\if@mincl
\advance\textwidth by-\marginparwidth
@@ -1930,7 +1810,7 @@
\do{\advance\textheight by\baselineskip}%
}
% \end{macrocode}
-% \end{macro}%^^A \@typearea
+% \end{macro}^^A \@typearea
%
% \begin{macro}{\ta@modiv}
% Needed by \cs{typearea}. The first parameter will be divided by the second
@@ -1960,7 +1840,7 @@
\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \ta@modiv
%
% \begin{macro}{\ta@temp@goodwidth}
% Sets \cs{ta@temp} to the heuristic optimal line width depending on the
@@ -1969,10 +1849,9 @@
% case letters (minors) and three upper case letters (majors). Normally the
% weight of a letter depends on the language but we use same weight for each
% letter.
-% \changes{v2.7i}{2001/05/17}{avoid overflows if a very large font is
-% used}%^^A
-% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} added}%^^A
-% \changes{v2.95a}{2006/07/20}{fix of large font calculation}%^^A
+% \changes{v2.7i}{2001/05/17}{avoid overflows if a very large font is used}
+% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} added}
+% \changes{v2.95a}{2006/07/20}{fix of large font calculation}
% \begin{macrocode}
\newcommand*\ta@temp@goodwidth{%
\settowidth{\ta@temp}{\normalfont\normalsize
@@ -1993,12 +1872,12 @@
\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \ta@temp@goodwidth
%
-% \begin{macro}{\AfterCalculatingTypearea}
-% \changes{v2.96a}{2006/11/29}{new}%^^A
+% \begin{command}{\AfterCalculatingTypearea}
+% \changes{v2.96a}{2006/11/29}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by
-% \cs{kernel@ifstar}}%^^A
+% \cs{kernel@ifstar}}
% Users can influence the behaviour of \cs{typearea} by a hook. The star
% variation adds the code locally the non-star variation globally.
% \begin{macrocode}
@@ -2007,19 +1886,19 @@
}
% \end{macrocode}
% \begin{macro}{\@typearea@end}
-% \changes{v2.96a}{2006/11/29}{defined again but completely different}%^^A
+% \changes{v2.96a}{2006/11/29}{defined again but completely different}
% Macro \cs{@typearea@end} is a hook that is executed at the end of
% \cs{typearea} but before the activation of the new settings. So you can
% change the result of \cs{typearea}.
% \begin{macrocode}
\newcommand*{\@typearea@end}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@typearea@end
+% \end{command}^^A \AfterCalculatingTypearea
%
-% \begin{macro}{\activateareas}
-% \changes{v2.96a}{2006/11/29}{new name for old macro}%^^A
-% \changes{v3.17}{2015/02/07}{respect option \texttt{usegeometry}}%^^A
+% \begin{command}{\activateareas}
+% \changes{v2.96a}{2006/11/29}{new name for old macro}
+% \changes{v3.17}{2015/02/07}{respect option \opt{usegeometry}}
% This macro is used to activate the new typing area and margin settings
% inside the document body. It is a hack, because is uses internal \LaTeX{}
% kernel code.
@@ -2032,7 +1911,7 @@
\if@atdocument
% \end{macrocode}
% \changes{v3.23}{2017/04/03}{info instead of warning if used inside the
-% document body}%^^A
+% document body}
% But if, we show an info, because it is a hack. It depends in the \LaTeX{}
% release. Nevertheless, it seems to be stable from the very first \LaTeXe{}
% release. So we use an info only. Before v3.23 we have used a warning.
@@ -2061,9 +1940,9 @@
\KOMAoptions{pagesize=\@pagesizelast}%
}%
% \end{macrocode}
-% \changes{v3.17}{2015/03/18}{adapt the \Option{parskip} settings}%^^A
+% \changes{v3.17}{2015/03/18}{adapt the \opt{parskip} settings}
% From v3.17 changes of the typing area can immediately change some of the
-% \Option{parskip} settings. Before |\begin{document}| the change will be done
+% \opt{parskip} settings. Before |\begin{document}| the change will be done
% automatically at |\begin{document}| and therefore adding it here is correct.
% \begin{macrocode}
\expandafter\ifnum\scr@ta@v@is@ge{3.17}%
@@ -2071,12 +1950,12 @@
\fi
\fi
% \end{macrocode}
-% \changes{v3.17}{2015/02/07}{new code for option \Option{usegeometry}}
-% If option \Option{usegeometry} is active we need to setup several options of
-% package \Package{geometry}. We use \cs{scr@geometryargs} to store them. And
-% we either have to pass these options to \Package{geometry} or define a new
+% \changes{v3.17}{2015/02/07}{new code for option \opt{usegeometry}}
+% If option \opt{usegeometry} is active we need to setup several options of
+% package \pkg{geometry}. We use \cs{scr@geometryargs} to store them. And
+% we either have to pass these options to \pkg{geometry} or define a new
% geometry. In the second case we also need some hacks to make the new paper
-% size available for \Package{geometry}.
+% size available for \pkg{geometry}.
% \begin{macrocode}
\edef\scr@geometryargs{%
bindingoffset=\the\ta@bcor,
@@ -2131,40 +2010,38 @@
}
% \end{macrocode}
% \begin{macro}{\scr@geometryargs}
-% \changes{v3.16}{2015/02/07}{neu (intern)}%^^A
-% The initialization of the \Package{geometry} options is empty. It will be
+% \changes{v3.16}{2015/02/07}{neu (intern)}
+% The initialization of the \pkg{geometry} options is empty. It will be
% filled automatically by \cs{activateareas}.
% \begin{macrocode}
\newcommand*{\scr@geometryargs}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \changes{v2.4g}{1996/11/04}{waste comments removed}%^^A
-% \changes{v2.7g}{2001/04/17}{new symbolic values \texttt{current},
-% \texttt{default}, \texttt{calc}, \texttt{classic}}%^^A
-% \changes{v2.8q}{2001/11/06}{new symbolic value \texttt{last}}%^^A
-% \changes{v2.96}{2006/08/21}{warn if \cs{typearea} is used inside a
-% group}%^^A
-% \changes{v3.10}{2011/09/13}{using \cs{scr@grouplevel@test}}%^^A
-% \changes{v3.12}{2013/03/26}{page footer height configurable}%^^A
-% \changes{v3.30}{2020/03/24}{\texttt{current} after \cs{areaset} is
-% \texttt{areaset}}%^^A
+% \end{macro}^^A \scr@geometryargs
+% \end{command}^^A \activateareas
+%
+% \changes{v2.4g}{1996/11/04}{waste comments removed}
+% \changes{v2.7g}{2001/04/17}{new symbolic values \opt{current},
+% \opt{default}, \opt{calc}, \opt{classic}}
+% \changes{v2.8q}{2001/11/06}{new symbolic value \opt{last}}
+% \changes{v2.96}{2006/08/21}{warn if \cs{typearea} is used inside a group}
+% \changes{v3.10}{2011/09/13}{using \cs{scr@grouplevel@test}}
+% \changes{v3.12}{2013/03/26}{page footer height configurable}
+% \changes{v3.30}{2020/03/24}{\opt{current} after \cs{areaset} is \opt{areaset}}
%
% The symbolic values of the obligatory argument of \cs{typearea}:
% \begin{center}\begin{tabular}{lll}
% Symbol & Value & Meaning \\\hline\\[-2ex]
-% \texttt{calc} & 2 & calculate a good value \\
-% \texttt{classic} & 3 & \emph{mittelalterlicher Buchseitenkanon} \\
-% \texttt{current} & --- & use the current value \\
-% \texttt{default} & 0 & use a value from the list \\
-% \texttt{last} & --- & use the value from the last usage of
+% \opt{calc} & 2 & calculate a good value \\
+% \opt{classic} & 3 & \emph{mittelalterlicher Buchseitenkanon} \\
+% \opt{current} & --- & use the current value \\
+% \opt{default} & 0 & use a value from the list \\
+% \opt{last} & --- & use the value from the last usage of
% \cs{typearea} \\
-% \texttt{areaset} & --- & replace the current typing area \\
+% \opt{areaset} & --- & replace the current typing area \\
% \end{tabular}\end{center}
%
% There is only one symbolic value that can be used as the optional argument:
-% \texttt{current}.
+% \opt{current}.
% \begin{macrocode}
\newcommand*\typearea[2][\z@]{%
\scr@grouplevel@test\typearea
@@ -2195,7 +2072,7 @@
% \end{macrocode}
% Before we do the calculation we need to start a new page if we are inside
% the document's body. And we need to select the document font size.
-% \changes{v2.95a}{2006/07/20}{select document font size}%^^A
+% \changes{v2.95a}{2006/07/20}{select document font size}
% \begin{macrocode}
\if@atdocument\newpage\fi
\normalsize
@@ -2203,9 +2080,9 @@
% Is the height of the page head already given or do we need to calculate
% it. If we need to calculate it we use 1.25 of the base lines distance. This
% gives enough room for optional separation lines (which are set outside if
-% use \Package{scrlayer-scrpage}).
+% use \pkg*{scrlayer-scrpage}).
% \changes{v2.4n}{1997/05/28}{page head height depends on base line
-% distance}%^^A
+% distance}
% \begin{macrocode}
\@ifundefined{ta@hh}{%
\headheight=1.25\baselineskip
@@ -2222,8 +2099,8 @@
% \begin{macrocode}
\headsep=1.5\baselineskip
% \end{macrocode}
-% The foot is a similar problem. But we have to setup also \cs{footskip} not
-% only \cs{footheight}.
+% The foot is a similar problem. But we have to setup also \len{footskip} not
+% only \len{footheight}.
% \begin{macrocode}
\@ifundefined{footheight}{%
\newlength\footheight
@@ -2240,13 +2117,13 @@
\marginparsep=1cc
\marginparpush=0.45\baselineskip
% \end{macrocode}
-% \changes{v2.4g}{1996/11/04}{\textit{DIV}=0 tries to use a value from the
-% default list}
+% \changes{v2.4g}{1996/11/04}{\opt{DIV\quotechar=0} tries to use a value from the
+% default list}
% Before we do the calculation we test, whether the resulting divisor is
% 0. Values from 0 up to 3 are not possible because we use three parts for the
% margins. So we can use 0 to get a value from the default value list if
% available.
-% \changes{v2.5h}{1999/12/29}{warning message changed}%^^A
+% \changes{v2.5h}{1999/12/29}{warning message changed}
% \begin{macrocode}
\ifnum\ta@div=\z@
\@ifundefined{@ptsize}{%
@@ -2265,8 +2142,7 @@
\ta@divfor{\@ptsize}%
\fi
% \end{macrocode}
-% \changes{v2.4n}{1997/05/28}{optional \emph{klassischer
-% Buchseitenkanon}}%^^A
+% \changes{v2.4n}{1997/05/28}{optional \emph{klassischer Buchseitenkanon}}
% Another special case is if the divisor is 3. In this case we calculate a
% divisor near to the \emph{klassischer Buchseitenkanon}. This means we try to
% have the height of the typing area is as near as possible the width of the
@@ -2316,14 +2192,14 @@
\ta@modiv{\paperheight}{\ta@temp}%
\fi
% \end{macrocode}
-% Here we do not need to respect \Option{mpinclude} because we do not use the
+% Here we do not need to respect \opt{mpinclude} because we do not use the
% width of the typing area but the height of the paper.
% \begin{macrocode}
\fi
% \end{macrocode}
% If we did not found a good value until this point, we try to calculate the
% optimal divisor.
-% \changes{v2.4n}{1997/05/28}{improved optimal divisor calculation}%^^A
+% \changes{v2.4n}{1997/05/28}{improved optimal divisor calculation}
% \begin{macrocode}
\ifnum\ta@div <4
\typeout{DIV calculation for typearea with good linewidth.}%
@@ -2340,8 +2216,8 @@
% \end{macrocode}
% In two column mode each text line has two such columns plus the column
% separation width.
-% \changes{v2.8q}{2001/12/13}{\texttt{DIVcalc} uses wider columns in two
-% column mode}%^^A
+% \changes{v2.8q}{2001/12/13}{\opt{DIVcalc} uses wider columns in two
+% column mode}
% \begin{macrocode}
\if@twocolumn
\addtolength{\ta@temp}{\ta@temp}%
@@ -2369,9 +2245,9 @@
% \end{macrocode}
% The width of block and the width of the paper can be used to calculate the
% divisor.
-% \changes{v2.8q}{2002/03/28}{respect \Option{mpinclude} at the calculation
-% of the best divisor}%^^A
-% If option \Option{mpinclude} is active, we have to multiply the divisor with
+% \changes{v2.8q}{2002/03/28}{respect \opt{mpinclude} at the calculation
+% of the best divisor}
+% If option \opt{mpinclude} is active, we have to multiply the divisor with
% $\frac{3}{3+m}$. $m$ is the number of blocks used for the margin notes. If
% $m=1$ we have an factor of $\frac{3}{4}=0.75$. More difficult would be not
% to use a number of blocks for the margin note column but a dedicated value
@@ -2401,9 +2277,9 @@
% This would be the minimum top margin. If the margin is less, we need another
% divisor. In this case we also have to recognize whether the page head and
% footer are part of the margins or the typing area.
-% \changes{v2.5b}{1997/06/29}{take care for \Option{headinclude} and
-% \Option{footinclude} while calculating the divisor for minimum top
-% margin}%^^A
+% \changes{v2.5b}{1997/06/29}{take care for \opt{headinclude} and
+% \opt{footinclude} while calculating the divisor for minimum top
+% margin}
% \begin{macrocode}
\setlength{\ta@temp}{15mm}%
\if@hincl\else
@@ -2425,22 +2301,20 @@
% \begin{macrocode}
\@typearea
% \end{macrocode}
-% \changes{v2.0e}{1994/10/28}{write layout values to the \File{log} file}%^^A
-% \changes{v2.4i}{1996/11/11}{write to the \File{log} file later}%^^A
-% \changes{v2.4i}{1996/11/11}{execute \cs{@typearea@end} at the end of
-% \cs{typearea}}%^^A
-% \changes{v2.4j}{1996/12/04}{\File{log} output with only one
-% \cs{textheight} but additional \cs{baselineskip}}%^^A
-% \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' with \Option{landscape}
-% fixed}%^^A
-% \changes{v2.95}{2004/01/30}{warning in two column mode fixed}%^^A
+% \changes{v2.0e}{1994/10/28}{write layout values to the \file{log} file}
+% \changes{v2.4i}{1996/11/11}{write to the \file{log} file later}
+% \changes{v2.4i}{1996/11/11}{execute \cs{@typearea@end} at the end of \cs{typearea}}
+% \changes{v2.4j}{1996/12/04}{\file{log} output with only one
+% \cs{textheight} but additional \cs{baselineskip}}
+% \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' with \opt{landscape} fixed}
+% \changes{v2.95}{2004/01/30}{warning in two column mode fixed}
% \changes{v3.00}{2008/10/08}{use \cs{ta@layoutinfo} to write the layout
-% values into the \File{log} file}%^^A
-% \changes{v3.01b}{2008/12/09}{warning for sub-optimal settings changed}%^^A
-% \changes{v3.26}{2018/07/16}{warning about long lines changed}%^^A
+% values into the \file{log} file}
+% \changes{v3.01b}{2008/12/09}{warning for sub-optimal settings changed}
+% \changes{v3.26}{2018/07/16}{warning about long lines changed}
% \changes{v3.26}{2018/07/16}{warning about small lines changed and
-% replaced by an info}%^^A
-% Last but not least we write some layout values into the \File{log} file. For
+% replaced by an info}
+% Last but not least we write some layout values into the \file{log} file. For
% some of the information we need additional calculations, e.g., of a good
% line width.
% \begin{macrocode}
@@ -2524,8 +2398,8 @@
% \end{macrocode}
%
% \begin{macro}{\ta@layoutinfo}
-% \changes{v3.00}{2008/10/08}{new (internal)}%^^A
-% Write several layout information into the \File{log} file. The first
+% \changes{v3.00}{2008/10/08}{added}
+% Write several layout information into the \file{log} file. The first
% argument is the current divisor and the second the discrepancy from the
% optimal divisor or empty or \cs{relax}.
% \begin{macrocode}
@@ -2565,11 +2439,11 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \ta@layoutinfo
+% \end{command}^^A \typearea
%
-% \begin{macro}{\recalctypearea}
-% \changes{v2.95}{2002/12/04}{new}%^^A
+% \begin{command}{\recalctypearea}
+% \changes{v2.95}{2002/12/04}{added}
% This command can be used to recalculate the typing area and the margins with
% the divisor and the binding correction that has been used last. The command
% is available only after loading the package. So it is an indicator if we
@@ -2578,14 +2452,13 @@
\AtEndOfPackage{\newcommand*{\recalctypearea}{\typearea[current]{last}}}
%</package&typearea&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% Initially \cs{ta@bcor} and \cs{ta@div} are zero if is has not been set using
% one of the options. The 0 divisor stands for using a value from the default
% list. So the final initialization of the typing area and margins is very
% easy.
-% \changes{v2.8q}{2001/11/06}{initialization using symbolic values
-% \texttt{current}}%^^A
+% \changes{v2.8q}{2001/11/06}{initialization using symbolic values \opt{current}}
% \begin{macrocode}
%<*package&typearea&final>
\typearea[current]{current}
@@ -2594,14 +2467,13 @@
%
% \subsection{Storage and reactivation of typing area and margin settings}
%
-% \begin{macro}{\storeareas}
-% \changes{v3.10}{2011/09/13}{new}%^^A
-% \changes{v3.18}{2015/05/20}{Hooks at the beginning and end of the defined
-% macro}%^^A
+% \begin{command}{\storeareas}
+% \changes{v3.10}{2011/09/13}{added}
+% \changes{v3.18}{2015/05/20}{Hooks at the beginning and end of the defined macro}
% You can store the current settings of the typing area and the margins in a
% macro. If you use the macro later the stored settings will be restored.
% \begin{macro}{\scr@grouplevel@test}
-% \changes{v3.10}{2011/09/13}{new (internal)}%^^A
+% \changes{v3.10}{2011/09/13}{added}
% Warn if restoring the settings is used inside a group.
% \begin{macrocode}
%<*package&typearea&body>
@@ -2666,24 +2538,13 @@
\reserved@a
}
% \end{macrocode}
-% \begin{macro}{\BeforeRestoreareas}
-% \changes{v3.18}{2015/05/20}{new}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by
-% \cs{kernel@ifstar}}%^^A
-% \begin{macro}{\AfterRestoreareas}
-% \changes{v3.18}{2015/05/20}{new}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by
-% \cs{kernel@ifstar}}%^^A
-% \begin{macro}{\scr@storeareashook}
-% \changes{v3.18}{2015/05/20}{new (internal)}%^^A
-% \begin{macro}{\scr@storeareas@before@hook}
-% \changes{v3.18}{2015/05/20}{new (internal)}%^^A
-% \begin{macro}{\scr@storeareas@before@current@hook}
-% \changes{v3.18}{2015/05/20}{new (internal)}%^^A
-% \begin{macro}{\scr@storeareas@after@hook}
-% \changes{v3.18}{2015/05/20}{new (internal)}%^^A
-% \begin{macro}{\scr@storeareas@after@current@hook}
-% \changes{v3.18}{2015/05/20}{new (internal)}%^^A
+% \begin{command}{\BeforeRestoreareas,\AfterRestoreareas}
+% \changes{v3.18}{2015/05/20}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\scr@storeareashook,\scr@storeareas@before@hook,
+% \scr@storeareas@before@current@hook,\scr@storeareas@after@hook,
+% \scr@storeareas@after@current@hook}
+% \changes{v3.18}{2015/05/20}{added}
% Adds code to one of the hooks of the macros defined by \cs{storeareas}.
% The star variants adds code only to not yet defined macros. The non-star
% variant also changes already defined macros.
@@ -2705,24 +2566,19 @@
\newcommand*{\scr@storeareas@after@current@hook}{}
%</package&typearea&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@storeareas@after@current@hook
-% \end{macro}%^^A \scr@storeareas@after@hook
-% \end{macro}%^^A \scr@storeareas@before@current@hook
-% \end{macro}%^^A \scr@storeareas@before@hook
-% \end{macro}%^^A \scr@storeareashook
-% \end{macro}%^^A \AfterRestoreareas
-% \end{macro}%^^A \BeforeRestoreareas
-% \end{macro}%^^A \scr@grouplevel@test
-% \end{macro}%^^A \storeareas
+% \end{macro}^^A \scr@storeareashook … \scr@storeareas@after@current@hook
+% \end{command}^^A \BeforeRestoreareas,\AfterRestoreareas
+% \end{macro}^^A \scr@grouplevel@test
+% \end{command}^^A \storeareas
%
% \subsection{Calculation of margins for a given typing area}
%
% Beside the calculation of the typing area and the margins by a divisor
-% \Package{typearea} also provides the calculation of margins for a given
+% \pkg*{typearea} also provides the calculation of margins for a given
% typing area.
%
% \begin{option}{areasetadvanced}
-% \changes{v3.11}{2012/04/17}{new}%^^A
+% \changes{v3.11}{2012/04/17}{added}
% Switch to advanced version of \cs{areaset}. This does calculate margins
% more like \cs{typearea}. Nevertheless, there's still a difference at the top
% margin, because \cs{typerea} doesn't balance differences in calculated
@@ -2735,14 +2591,14 @@
% \end{macrocode}
% \end{option}
%
-% \begin{macro}{\areaset}
-% \changes{v2.1b}{1994/12/31}{\cs{headheight} depends on \cs{@ptsize}}%^^A
+% \begin{command}{\areaset}
+% \changes{v2.1b}{1994/12/31}{\cs{headheight} depends on \cs{@ptsize}}
% \changes{v2.6}{2000/01/04}{\cs{headheight} depends on \cs{f@size} instead
-% of \cs{@ptsize}}%^^A
-% \changes{v2.7g}{2001/04/17}{symbolic value \texttt{current} for the
-% optional argument}%^^A
+% of \cs{@ptsize}}
+% \changes{v2.7g}{2001/04/17}{symbolic value \opt{current} for the
+% optional argument}
% \changes{v2.95}{2002/12/05}{execute \cs{@typearea@end} at the end of
-% \cs{areaset}}%^^A
+% \cs{areaset}}
% If we have given width and height of the typing area we still can calculate
% the margins. Again we want to use this not only in the document preamble but
% also in the document body.
@@ -2760,7 +2616,7 @@
% Then we do the calculation.
% \changes{v2.96}{2006/09/12}{set \cs{topskip}}
% \changes{v3.00}{2008/10/08}{use \cs{ta@layoutinfo} to write layout
-% information into the \File{log} file}%^^A
+% information into the \file{log} file}
% \begin{macrocode}
\setlength{\textwidth}{#2}%
\setlength{\textheight}{#3}%
@@ -2775,7 +2631,7 @@
% \end{macrocode}
% \changes{v3.11}{2012/04/17}{advanced version with different margin widths}%
% With v3.11 we will have an advanced version of \cs{areaset}. This
-% version takes care to option \texttt{mpinclude}.
+% version takes care to option \opt{mpinclude}.
% \begin{macrocode}
\if@areasetadvanced
\if@mincl
@@ -2793,9 +2649,9 @@
\advance\oddsidemargin by1.5\ta@hblk
\advance\oddsidemargin by\ta@bcor
% \end{macrocode}
-% \changes{v3.12}{2013/10/15}{use alternating \texttt{BCOR} with
-% \texttt{twoside!=semi}}
-% If \Option{twoside=semi} is used, form v3.12 we add the binding correction
+% \changes{v3.12}{2013/10/15}{use alternating \opt{BCOR} with
+% \opt{twoside\quotechar=semi}}
+% If \opt{twoside=semi} is used, form v3.12 we add the binding correction
% to the inner margin. If compatibility to version less than 3.12 has been
% selected the binding correction will be added to the left margin.
% \begin{macrocode}
@@ -2839,7 +2695,7 @@
\fi
\headsep=1.5\baselineskip
% \end{macrocode}
-% \changes{v3.12}{2013/03/26}{changes for height of foot}%^^A
+% \changes{v3.12}{2013/03/26}{changes for height of foot}
% \begin{macrocode}
\@ifundefined{footheight}{\newlength\footheight}{}
\if@areasetadvanced
@@ -2884,7 +2740,7 @@
% \changes{v3.11}{2012/04/17}{advanced version with different
% \cs{marginparwidth} and unchanged \cs{marginparsep}}%
% With version 3.11 we will have an advanced version of \cs{areaset}. This
-% version supports \texttt{mpinclude} option like \cs{typearea}.
+% version supports \opt{mpinclude} option like \cs{typearea}.
% \begin{macrocode}
\if@areasetadvanced
\if@mincl
@@ -2898,9 +2754,9 @@
\marginparpush=0.45\baselineskip
\ta@layoutinfo{areaset}{}%
% \end{macrocode}
-% \changes{v3.11}{2012/04/17}{using \cs{@areaset@end}}%^^A
+% \changes{v3.11}{2012/04/17}{using \cs{@areaset@end}}
% \changes{v3.16a}{2015/02/11}{using \cs{footheight} for calculation of
-% page usage}%^^A
+% page usage}
% Since v3.11 we also support \cs{AfterSettingArea} analogous to
% \cs{AfterCalculatingTypearea}:
% \begin{macrocode}
@@ -2920,12 +2776,11 @@
\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\AfterSettingArea}
-% \changes{v3.11}{2012/04/17}{new}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\AfterSettingArea}
+% \changes{v3.11}{2012/04/17}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% The user may influence the result of \cs{areaset}. The star version works
% local while the non-star version is global.
% \begin{macrocode}
@@ -2934,7 +2789,7 @@
}
% \end{macrocode}
% \begin{macro}{\@areaset@end}
-% \changes{v3.11}{2012/04/17}{new}%^^A
+% \changes{v3.11}{2012/04/17}{added}
% Macro \cs{@areaset@end} is a hook to make it possible to add some
% instructions to the end of the \cs{areaset} command. This will be executed
% before the activation of the settings inside a document.
@@ -2943,7 +2798,7 @@
%</package&typearea&body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
% \subsection{Deprecated options}
%
@@ -2951,81 +2806,62 @@
% deprecated since \KOMAScript{} 3.00. Most of them but not all are pattern
% matching options.
%
-% \begin{option}{DIVcalc}
-% \changes{v2.4g}{1996/11/04}{new}%^^A
-% \changes{v2.95}{2002/12/04}{implemented using option \Option{DIV}}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
-% \begin{option}{DIVclassic}
-% \changes{v2.4n}{1997/05/28}{new}%^^A
-% \changes{v2.95}{2002/12/04}{implemented using option \Option{DIV}}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
-% \cs{PackageInfoNoLine}}%^^A
-% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
-% The former form of \Option{DIV=}\Option{calc} and
-% \Option{DIV=}\Option{classic}.
+% \begin{option}{DIVcalc,DIVclassic}
+% \changes{v2.4g}{1996/11/04}{added}
+% \changes{v2.95}{2002/12/04}{implemented using option \opt{DIV}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{deprecated}
+% The former form of \opt{DIV=}\opt{calc} and \opt{DIV=}\opt{classic}.
% \begin{macrocode}
%<*package&typearea&options>
\KOMA@DeclareDeprecatedOption[typearea]{DIVcalc}{DIV=calc}
\KOMA@DeclareDeprecatedOption[typearea]{DIVclassic}{DIV=classic}
%</package&typearea&options>
% \end{macrocode}
-% \end{option}%^^A DIVclassic
-% \end{option}%^^A DIVcalc
-%
-% \begin{option}{a\meta{integer}paper}
-% \begin{option}{b\meta{integer}paper}
-% \begin{option}{c\meta{integer}paper}
-% \begin{option}{d\meta{integer}paper}
-% Formerly \Option{a}\meta{integer}\Option{paper},
-% \Option{b}\meta{integer}\Option{paper},
-% \Option{c}\meta{integer}\Option{paper},
-% \Option{d}\meta{integer}\Option{paper} has been documented. Since
+% \end{option}^^A DIVcalc,DIVclassic
+%
+% \begin{option}{a...paper,b...paper,c...paper,d...paper}
+% Formerly \opt{a}\meta{integer}\opt{paper},
+% \opt{b}\meta{integer}\opt{paper},
+% \opt{c}\meta{integer}\opt{paper},
+% \opt{d}\meta{integer}\opt{paper} has been documented. Since
% \KOMAScript{} v3.00 most of them are deprecated and has been replaced by
-% option \Option{paper}. Nevertheless, for compatibility these options and the
+% option \opt{paper}. Nevertheless, for compatibility these options and the
% commands needed to recognize and handle them are still implemented.
%
-% The documentation of the deprecated part of the feature is still in German.
-% \selectlanguage{ngerman}
%
% \begin{macro}{\x@paper}
% \begin{macro}{\x@@paper}
-% \changes{v2.5}{1997/06/17}{neue Mustererkennung für die
-% Papiergröße}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A
-% Diese Makros werden ebenfalls später benötigt, wenn die Papiergröße
-% festgelegt wird.
-% \begin{macro}{\isopaper}
-% \changes{v2.5}{1997/06/17}{neu}%^^A
-% \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt}%^^A
-% \changes{v3.23}{2017/02/22}{verwendet \cs{ISO@PaperNameToSize}}%^^A
-% Da das Makro \cs{isopaper} zur Berechnung unterschiedlicher
-% ISO/DIN-Papierformate in der Mustererkennung für die Papiergröße
-% benötigt wird, wurde dieses Makro ebenfalls vorgezogen.
+% \changes{v2.5}{1997/06/17}{pattern matching of paper sizes}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} renamed to \cs{Ifnumber}}
+% This macros will be needed when the paper size will be generated.
+% \begin{command}{\isopaper}
+% \changes{v2.5}{1997/06/17}{new}
+% \changes{v2.95}{2002/12/03}{upper case letters are also allowed}
+% \changes{v3.23}{2017/02/22}{using \cs{ISO@PaperNameToSize}}
+% Because \cs{isopaper} is used inside the paper size detection by pattern
+% matching to select a specific ISO/DIN paper size, it has to be defined
+% before the pattern matching will be done.
% \begin{macrocode}
%<*package&typearea&options>
\newcommand\isopaper[2][a]{%
% \end{macrocode}
-% Das Makro kennt zwei Parameter, von denen der erste und optionale
-% die Grundgröße angibt. Die Angabe erfolgt über einen
-% Buchstaben. Möglich sind
+% The command has to parameters. The first one is optional and the basic size
+% given by one of the letters:
% \begin{description}
-% \item[a] -- ISO/DIN-A-Format
-% \item[b] -- ISO/DIN-B-Format
-% \item[c] -- ISO/DIN-C-Format
-% \item[d] -- ISO/DIN-D-Format
+% \item[a] -- ISO/DIN A sizes
+% \item[b] -- ISO/DIN B sizes
+% \item[c] -- ISO/DIN C sizes
+% \item[d] -- ISO/DIN D sizes
% \end{description}
-% Der zweite Paremeter gibt dann die Skalierung an.
+% The second and mandatory argument is the scale number
% \begin{macrocode}
\ISO@PaperNameToSize[typearea]#1#2\@nil
% \end{macrocode}
-% Jetzt noch die gewünschte Ausrichtung beachten.
-% \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird
-% beachtet}%^^A
-% \changes{v3.22}{2016/07/29}{Papierausrichtung entsprechend dem
-% tatsächlichen Format}%^^A
+% Select either landscape or portrait:
+% \changes{v2.97e}{2007/10/23}{landscape or portrait}
+% \changes{v3.22}{2016/07/29}{adapting paper orientation}
% \begin{macrocode}
\expandafter\ifnum\scr@ta@v@is@ge{3.22}\relax
\scr@setpaperorientation
@@ -3034,9 +2870,9 @@
\fi
}
% \end{macrocode}
-% \textsf{typearea} verwendet eine eigene Fehlerausgabe.
+% \pkg*{typearea} uses its own error message.
% \begin{macro}{\scr@UnknownPaperSize@typearea}
-% \changes{v3.23}{2017/02/22}{neu (intern)}
+% \changes{v3.23}{2017/02/22}{new}
% \begin{macrocode}
\ProvideUnknownPaperSizeError{typearea}{%
\PackageError{typearea}{%
@@ -3051,11 +2887,11 @@
\setlength{\paperheight}{1189sp}%
}
% \end{macrocode}
-% \end{macro}%^^A \scr@UnknownPaperSize@typearea
-% \end{macro}%^^A \isopaper
+% \end{macro}^^A \scr@UnknownPaperSize@typearea
+% \end{command}^^A \isopaper
% \begin{macro}{\scr@setpaperorientation}
-% \changes{v3.22}{2016/07/29}{neu (intern)}
-% Stellt die Papierausrichtung entsprechend \cs{if@landscape} ein.
+% \changes{v3.22}{2016/07/29}{new}
+% Setup the paper orientation depending on \cs{if@landscape}.
% \begin{macrocode}
\newcommand*\scr@setpaperorientation{%
\ifdim\paperheight>\paperwidth
@@ -3066,24 +2902,24 @@
}
% \end{macrocode}
% \begin{macro}{\scr@switchpapersizes}
-% \changes{v3.22}{2016/07/29}{neu (intern)}
-% Vertauscht zwei Längen.
+% \changes{v3.22}{2016/07/29}{new}
+% Switches the two lengths \len{paperwidth} and \len{paperheight}.
% \begin{macrocode}
\newcommand*\scr@switchpapersizes{%
\@tempdima\paperwidth\paperwidth\paperheight\paperheight\@tempdima
}
% \end{macrocode}
-% \end{macro}%^^A \scr@switchlength
-% \end{macro}%^^A \scr@setpaperorientation
+% \end{macro}^^A \scr@switchlength
+% \end{macro}^^A \scr@setpaperorientation
% \begin{macro}{\iso@paper}
-% \changes{v2.95}{2002/12/03}{neu (intern)}%^^A
-% Ein ganz ähnlicher interner Befehl erhält den gesamten Namen des
-% ISO-Papierformats als einziges Argument.
+% \changes{v2.95}{2002/12/03}{new}
+% Similar to \cs{isopaper} but with only one argument for the base size and
+% the scale number.
% \begin{macro}{\iso@@paper}
-% \changes{v2.95}{2002/12/03}{neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A
-% Dieses Argument wird dann über einen weiteren internen Befehl per
-% Mustererkennung in den Kennbuchstaben und eine Zahl zerlegt.
+% \changes{v2.95}{2002/12/03}{new}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} renamed to \cs{Ifnumber}}
+% The single argument is split into base size letter and scale number by
+% pattern matching.
% \begin{macrocode}
\newcommand*{\iso@paper}[1]{\expandafter\iso@@paper#1\@nil}
\newcommand*{\iso@@paper}{}
@@ -3104,54 +2940,47 @@
}
%</package&typearea&options>
% \end{macrocode}
-% \end{macro}%^^A \iso@@paper
-% \end{macro}%^^A \iso@paper
-% \selectlanguage{english}
-%
-% \begin{option}{DIV\meta{integer}}
-% \begin{option}{BCOR\meta{length}}
-% Formerly \Option{DIV}\meta{integer}, \Option{BCOR}\meta{length},
-% \Option{headlines}\meta{real} has been documented as options. Since
-% \KOMAScript{} 3.00 these have been replaced by \Option{DIV=}\meta{integer},
-% \Option{BCOR=}\meta{length} and
-% \Option{headlines=}\meta{real}. Nevertheless, for compatibility the
-% deprecated options are still handled by \Macro{DeclareOption*} and so we
+% \end{macro}^^A \iso@@paper
+% \end{macro}^^A \iso@paper
+%
+% \begin{option}{DIV...}
+% \begin{option}{BCOR...}
+% Formerly \opt{DIV}\meta{integer}, \opt{BCOR}\meta{length},
+% \opt{headlines}\meta{real} has been documented as options. Since
+% \KOMAScript{} 3.00 these have been replaced by \opt{DIV=}\meta{integer},
+% \opt{BCOR=}\meta{length} and
+% \opt{headlines=}\meta{real}. Nevertheless, for compatibility the
+% deprecated options are still handled by \cs{DeclareOption*} and so we
% need several helper macros to recognize them.
%
-% The documentation of the deprecated part of the feature is still in German.
-% \selectlanguage{ngerman}
%
% \begin{macro}{\@BCOR}
% \begin{macro}{\@@BCOR}
-% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch
-% Mustererkennung ersetzt}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Das Makro \cs{@BCOR} wird später benötigt, um die Option
-% \texttt{BCOR\emph{BCOR}} zu erkennen. Die Option wird über ihr
-% Muster erkannt.
+% \changes{v2.5}{1997/06/17}{Single letter scanner replaced by pattern matching}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% Macro \cs{@BCOR} it needed to handle option \opt{BCOR\emph{BCOR}}. The
+% option is recognized by pattern matching.
% \begin{macrocode}
%<*(class|(package&typearea))&options>
\newcommand*{\@BCOR}{\expandafter\@@BCOR\CurrentOption BCORBCOR\@@BCOR}
\newcommand*{\@@BCOR}{}
\def\@@BCOR #1BCOR#2BCOR#3\@@BCOR{%
% \end{macrocode}
-% Handelt es sich um die Option \texttt{BCOR}, so ist der erste
-% Parameter leer.
+% If it is option \opt{BCOR} the first argument is empty.
% \begin{macrocode}
\Ifstr{#1}{}{%
% \end{macrocode}
-% Außerdem ist der dritte Parameter dann \texttt{BCOR}.
+% Additionally the third argument is |BCOR|.
% \begin{macrocode}
\Ifstr{#3}{BCOR}{%
% \end{macrocode}
-% Der zweite Parameter sollte dann die Größe enthalten. Ist dies
-% nicht der Fall, wird ein Fehler gemeldet (Fehlerzeile ist dann
-% \cs{ProcessOptions}).
-% \changes{v3.22}{2016/07/29}{missing deprecated option warning added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifdimen} renamed to \cs{Ifdimen}}%^^A
-% \changes{v3.30}{2020/03/24}{avoid error message for unknown \texttt{BCOR}
-% value to \cs{documentclass}}%^^A
-% \changes{v3.31}{2020/04/27}{improved valid value recognization}%^^A
+% Now, the second argument should be the size. If this is not the case, an
+% error has to be reported.
+% \changes{v3.22}{2016/07/29}{missing deprecated option warning added}
+% \changes{v3.28}{2019/11/18}{\cs{ifdimen} renamed to \cs{Ifdimen}}
+% \changes{v3.30}{2020/03/24}{avoid error message for unknown \opt{BCOR}
+% value to \cs{documentclass}}
+% \changes{v3.31}{2020/04/27}{improved valid value recognization}
% \begin{macrocode}
%<*class>
\Ifstrstart{#2}{=}{%
@@ -3168,9 +2997,8 @@
}{\scr@pti@nerr@r}%
%</package>
% \end{macrocode}
-% In allen anderen Fällen ist es nicht diese Option, dann wird ein
-% Fehler ausgegeben. Stattdessen könnte hier auch auf weitere Optionen
-% getestet werden.
+% In all other cases it is not this option. So we report an error. Instead of
+% the error another option could be tested.
% \begin{macrocode}
}{\scr@pti@nerr@r}%
}{\scr@pti@nerr@r}%
@@ -3181,15 +3009,13 @@
%
% \begin{macro}{\@DIV}
% \begin{macro}{\@@DIV}
-% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch
-% Mustererkennung ersetzt}%^^A
-% \changes{v3.22}{2016/07/29}{missing deprecated option warning added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A
-% \changes{v3.30}{2020/03/24}{avoid error message for unknown \texttt{DIV}
-% value to \cs{documentclass}}%^^A
-% \changes{v3.31}{2020/04/27}{improved valid value recognization}%^^A
-% Die grundsätzliche Funktion ist die gleiche wie bei \cs{@BCOR},
-% \cs{@@BCOR}.
+% \changes{v2.5}{1997/06/17}{Single letter scanner replaced by pattern matching}
+% \changes{v3.22}{2016/07/29}{missing deprecated option warning added}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} renamed to \cs{Ifnumber}}
+% \changes{v3.30}{2020/03/24}{avoid error message for unknown \opt{DIV}
+% value to \cs{documentclass}}
+% \changes{v3.31}{2020/04/27}{improved valid value recognization}
+% Here we use more or less the same functionality as with \cs{@BCOR} and \cs{@@BCOR}.
% \begin{macrocode}
\newcommand*{\@DIV}{\expandafter\@@DIV\CurrentOption DIVDIV\@@DIV}
\newcommand*{\@@DIV}{}
@@ -3212,23 +3038,21 @@
%</package>
\else\scr@pti@nerr@r\fi
% \end{macrocode}
-% Der Unterschied liegt darin, dass bei einem Fehlschlag der
-% Mustererkennung kein Fehler vorliegt, sondern u.\,U. noch auf
-% \texttt{BCOR} getestet werden muss.
+% The only difference is, that we do not report an error but also test for
+% \opt{BCOR}.
% \begin{macrocode}
\else\@BCOR\fi
}
% \end{macrocode}
-% \end{macro}%^^A \@@DIV
-% \end{macro}%^^A \@DIV
+% \end{macro}^^A \@@DIV
+% \end{macro}^^A \@DIV
%
-% \begin{option}{headlines\meta{integer}}
+% \begin{option}{headlines...}
% \begin{macro}{\@headlines}
% \begin{macro}{\@@headlines}
-% \changes{v2.7g}{2001/04/17}{neue Mustererkennung für die Anzahl
-% der Kopfzeilen}%^^A
-% Das Macro \cs{@headlines} wird benötigt, um die Option
-% \texttt{headlines} zu erkennen.
+% \changes{v2.7g}{2001/04/17}{neW pattern matching for the number of headlines}
+% The macros are needed to recognize the deprecated option
+% \opt{headlines\meta{integer}}.
% \begin{macrocode}
\newcommand{\@headlines}{%
\expandafter\@@headlines\CurrentOption headlines\@@headlines%
@@ -3243,21 +3067,16 @@
}
%</(class|(package&typearea))&options>
% \end{macrocode}
-% \end{macro}%^^A \@headlines
-% \end{macro}%^^A \@@headlines
+% \end{macro}^^A \@headlines
+% \end{macro}^^A \@@headlines
%
-% \selectlanguage{english}
% Starting point for all the deprecated pattern matching options is
-% \Macro{DeclareOption*} for command \Macro{x@paper} that uses pattern
-% matching with \Macro{x@@paper} to recognize the deprecated options. These
-% are needed not only for package \Package{typearea} but also for the classes.
+% \cs{DeclareOption*} for command \cs{x@paper} that uses pattern
+% matching with \cs{x@@paper} to recognize the deprecated options. These
+% are needed not only for package \pkg*{typearea} but also for the classes.
%
-% The documentation of the deprecated part of the feature is still in German.
-% \selectlanguage{ngerman}
-% Zurück zur Mustererkennung. Diese ist tatsächlich etwas einfacher
-% als die in den beiden Fällen zuvor.
-% \changes{v2.97e}{2007/10/23}{Optionen werden nach der neuen Syntax an
-% typearea weitergeleitet}%^^A
+% Back to the pattern matching. This one is the most simple of all.
+% \changes{v2.97e}{2007/10/23}{passing options \pkg*{typearea} using the new syntax}
% \begin{macrocode}
%<*(class|(package&typearea))&options>
\newcommand*{\x@paper}{%
@@ -3295,11 +3114,9 @@
% \end{macrocode}
%
% \begin{macro}{\scr@pti@nerr@r}
-% \changes{v2.95}{2002/06/20}{\cs{OptionNotUsed} statt
-% \cs{PackageError}}
-% Falls die zuätzliche Option nicht \texttt{BCOR}, \texttt{DIV},
-% \texttt{headlines} oder eine bekannte Papiergröße ist, ist die
-% Option nicht verwendet.
+% \changes{v2.95}{2002/06/20}{\cs{OptionNotUsed} instead of \cs{PackageError}}
+% If the addition option is neither \opt{BCOR\dots} nor \opt{DIV\dots} nor
+% \opt{headlines} nor a known paper size, it is still unused.
% \begin{macrocode}
\newcommand*{\scr@pti@nerr@r}{
%<class> \OptionNotUsed
@@ -3308,36 +3125,32 @@
% \end{macrocode}
% \end{macro}
%
-% \changes{v2.97c}{2007/09/12}{\cs{lco@test} bei den geparsten Optionen
-% eingefügt}
+% \changes{v2.97c}{2007/09/12}{\cs{lco@test} added to before pattern matching
+% of options}
% \begin{macrocode}
\DeclareOption*{%
%<letter> \lco@test
\x@paper}
%</(class|(package&typearea))&options>
% \end{macrocode}
-% \end{option}%^^A headline...
-% \end{option}%^^A DIV...
-% \end{option}%^^A BCOR...
-% \end{macro}%^^A \x@paper
-% \end{macro}%^^A \x@@paper
-% \end{option}%^^A d...paper
-% \end{option}%^^A c...paper
-% \end{option}%^^A b...paper
-% \end{option}%^^A a...paper
+% \end{option}^^A headline...
+% \end{option}^^A DIV...
+% \end{option}^^A BCOR...
+% \end{macro}^^A \x@paper
+% \end{macro}^^A \x@@paper
+% \end{option}^^A a...paper … d...paper
%
-% \selectlanguage{english}
%
% ^^A This part should stay at the end of the source file!
% \subsection{Configuration file}
%
% At the very ending of the option section just before executing and
% processing the options you can add additional options the
-% \Package{typearea}. This is a very seldom used feature and I recommend to
+% \pkg*{typearea}. This is a very seldom used feature and I recommend to
% not use it any longer. If you need additional options use
% |\BeforeFamilyProcessOptions[.typearea.sty]{KOMA}{...}|.
%
-% \changes{v2.0e}{1994/10/28}{configuration file \File{typearea.cfg}}%^^A
+% \changes{v2.0e}{1994/10/28}{configuration file \file{typearea.cfg}}
% \begin{macrocode}
%<*package&typearea&options>
\InputIfFileExists{typearea.cfg}{%
@@ -3353,29 +3166,29 @@
% \subsection{Option execution}
%
% The paper size and telling the back-end driver information about the paper
-% size are default. The default for the default paper size will be \Option{A4}
-% if nothing else was defined by a class. Execution of option \Option{twoside}
+% size are default. The default for the default paper size will be \opt{A4}
+% if nothing else was defined by a class. Execution of option \opt{twoside}
% depends already on the setting of \cs{if@twoside} and
% \cs{if@semitwoside}. This may be surprising but nevertheless is correct.
-% \changes{v2.3h}{1995/01/19}{\cs{relax} after \cs{ProcessOptions} added}%^^A
+% \changes{v2.3h}{1995/01/19}{\cs{relax} after \cs{ProcessOptions} added}
% \changes{v2.96}{2006/08/18}{processing options in order of usage instead of
-% order of declaration}%^^A
+% order of declaration}
% \changes{v2.97c}{2007/04/19}{Usage of \cs{KOMAExecuteOptions} instead of
-% \cs{KOMAoptions}}%^^A
+% \cs{KOMAoptions}}
% \changes{v2.97c}{2007/04/19}{Usage of \cs{KOMAProcessOptions} instead of
-% \cs{ProcessOptions}}%^^A
+% \cs{ProcessOptions}}
% \changes{v2.97c}{2007/04/19}{set only options that are not an implicit
-% default}%^^A
+% default}
% \changes{v2.97c}{2007/07/18}{explicit setting of a valid value to
-% \texttt{twoside}}%^^A
+% \opt{twoside}}
% \changes{v3.12}{2013/11/11}{the default paper size is given by
-% \cs{defaultpagesize}}%^^A
-% \changes{v3.17}{2015/03/02}{\Option{pagesize} is default}%^^A
+% \cs{defaultpagesize}}
+% \changes{v3.17}{2015/03/02}{\opt{pagesize} is default}
% \begin{macro}{\defaultpapersize}
-% \changes{v3.12}{2013/11/11}{new}%^^A
+% \changes{v3.12}{2013/11/11}{added}
% The default paper size. Defined using \cs{providecommand} so it can be
-% changed by a class or wrapper package or \File{typearea.cfg} or somewhere
-% else before loading \Package{typearea}.
+% changed by a class or wrapper package or \file{typearea.cfg} or somewhere
+% else before loading \pkg*{typearea}.
% \begin{macrocode}
%<*package&typearea&options>
\providecommand*{\defaultpapersize}{A4}
@@ -3399,11 +3212,14 @@
% \end{macrocode}
%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-typearea.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx b/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx
index f93ffa9eff..15e2be40e7 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{273}
% \iffalse meta-comment
% ======================================================================
% scrkernel-variables.dtx
-% Copyright (c) Markus Kohm, 2008-2019
+% Copyright (c) Markus Kohm, 2006-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-variables.dtx
-% Copyright (c) Markus Kohm, 2008-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-variables.dtx 3393 2019-11-19 10:33:44Z kohm $
+%%% From File: $Id: scrkernel-variables.dtx 3707 2022-02-15 10:40:57Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2019-11-19 11:33:44 +0100 (Tue, 19 Nov 2019) $
+ \filedate$Date: 2022-02-15 11:40:57 +0100 (Di, 15. Feb 2022) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 1638 $
+ \filerevision$Revision: 3707 $
\xdef\fileinfo{\filedate\space\filerevision\space}
\edef\reserved@a{%
\noexpand\endgroup
@@ -74,80 +36,81 @@
KOMA-Script source(koma variables)]
}%
\reserved@a
-% \iffalse
-\documentclass{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-variables.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-variables.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2006/03/20}{%
-% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
-%
-% \section{\KOMAScript{}-Variablen}
+% \changes{v2.95}{2006/03/20}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/15}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/15}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-variables.dtx}
+% \title{Using Variables in
+% \href{https://komascript.de}{\KOMAScript} Letter Classes and Package}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% Letters have several variables like the name and address of the sender and
+% the addressee, for fields like customer ids phone numbers, email addresses
+% etc. Depending on the purpose of a letter or a corporate identity much
+% more field and so variables are possible. For all of them
+% \file{scrkernel-variables.dtx} provides a general mechanism and user
+% interface.
+% \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}
%
-% Bei Briefen gibt es eine ganze Reihe von speziellen Variablen. An dieser
-% Stelle sei als Beispiel nur das Feld "`Ihr Zeichen"' genannt. Es ist nahezu
-% unmöglich alle diese Felder vorherzusehen. Daher wurde in der neuen
-% Briefklasse ein neuer Mechanismus zur Definition solcher Felder geschaffen.
+% \section{Implementation of Variables}
%
-% \iffalse
+% \begin{macrocode}
%<*letter>
-% \fi
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
-%<*option>
-% \fi
+% \end{macrocode}
%
-% \subsection{Option}
-% Der Mechanismus ist unabhängig von Optionen.
+% \subsection{Options}
+% The mechanism does not depend on options.
%
%
-% \iffalse
-%</option>
-%<*body>
-% \fi
+% \subsection{Commands and macros for variables}
%
-% \subsection{Anweisungen zum Anlegen und Verwenden von Variablen}
-%
-% \begin{macro}{\newkomavar}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Es wird zwischen zwei Arten von Feldern unterschieden:
+% \begin{command}{\newkomavar*,\newkomavar}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced \cs{kernel@ifstar} by}
+% We have two kinds of fields and so variables:
% \begin{itemize}
-% \item Felder für die Geschäftszeile
-% \item Felder für sonstige Verwendung
+% \item to be printed in the reference line,
+% \item for other purpose, but not printed in the reference line.
% \end{itemize}
-% Felder können aber auch nachträglich zur Geschäftszeile
-% hinzugefügt werden. Die Sternvariante von \cs{newkomavar} führt
-% dies jedoch automatisch durch.
+% But it is also possible to add variables later to (or
+% even remove them from the reference line. But the star variant
+% \cs{newkomavar*} automatically adds a variable to (the end of) the reference
+% line.
% \begin{macro}{\@newkomavar}
-% Da mit einer Sternvariante gearbeitet wird, wird ein Hilfsmakro
-% benötigt. Das Makro erhält ein optionales und
-% ein obligatorisches Argument. Das optionale Argument ist dabei die
-% Voreinstellung für den \emph{Ausgabenamen} des Feldes, der
-% ggf. ausgegeben werden soll. Das obligatorische Argument ist
-% \emph{Name} des Feldes, über den das Feld angesprochen wird.
-% Das Makro definiert zwei weitere Makros: \cs{\emph{scr@Name}@var} und
-% \cs{scr@\emph{Name}@name}.
+% Because of the star variant (and because we currently do not use
+% \pkg{xparse}), we need an internal command.
+% Both \cs{newkomavar} and \cs{newkomavar*} have one optional argument
+% (\texttt{\#1}), the \meta{output name}. It is intended to be printed. In
+% opposite to this the first mandatory argument (\texttt{\#2}) is the
+% \meta{name} of the variable. It is not indented to be printed but used for access
+% only. Only \emph{command sequence} characters are allowed here. It is
+% recommended to use only letters for the \meta{name}. Internally
+% macro \cs{scr@\meta{name}@name} and \cs{scr@\meta{name}@var} are
+% defined. The second one is initialized to be empty.
% \begin{macrocode}
+%<*body>
\newcommand*{\newkomavar}{%
\kernel@ifstar {\@tempswatrue\@newkomavar}{\@tempswafalse\@newkomavar}}
\newcommand*{\@newkomavar}[2][\relax]{%
@@ -184,35 +147,34 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\setkomavar}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} und
-% \cs{scr@\emph{Name}@postsetvar}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Natürlich wird auch ein Befehl benötigt, um die Feldvariable zu setzen und
-% ihnen ggf. einen neuen Namen für die Ausgabe zu geben. Der \emph{Name} der
-% Feldvariable wird als obligatorisches erstes Argument übergeben. Zusätzlich
-% zum Setzen von Ausgabename oder Wert werden ggf. auch die Hooks
-% \cs{scr@\emph{Name}@postsetname} bzw. \cs{scr@\emph{Name}@postsetvar}
-% ausgeführt.
+% \end{command}
+%
+% \begin{command}{\setkomavar*,\setkomavar}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} and
+% \cs{scr@\emph{Name}@postsetvar} added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% After defining a new variable we also need a command to set the
+% \meta{value}. This is the second mandatory argument (\texttt{\#3}) of
+% \cs{setkomavar}. The first mandatory argument (\texttt{\#2}) once again is
+% the \meta{name}. The \meta{output name} can be set with the
+% optional first argument (\texttt{\#1}). But for the case only the
+% \meta{output name} should be changed but not the \meta{value} there is an
+% additional star variant \cs{setkomavar*}. This has only two mandatory argument:
+% \meta{name} (\texttt{\#1}) and \meta{output name} (\texttt{\#2}). Both also
+% executes two hooks \cs{scr@\meta{name}@postsetname} and
+% \cs{scr@\meta{name}@postsetvar} after setting the \meta{output name}
+% resp. the \meta{value}. So package authors can define additional actions for
+% the case a variable changes.
% \begin{macro}{\@setkomavar}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Da dann zwischen einer Sternvariante und einer normalen unterschieden werden
-% soll wird ein Hilfsmakro benötigt.
-% \begin{macro}{\@setkomaname}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% Die Sternvariante definiert nur den Ausgabename neu.
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
% \begin{macro}{\@@setkomavar}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% Da in der normalen Variante nach dem Stern ein optionales Argument folgen
-% kann, wird mit einem weiteren Hilfsmakro gearbeitet. Der \emph{Ausgabename}
-% wird dabei als optionales, zweites Argument übergeben. Der \emph{Inhalt}
-% wird als obligatorisches, drittes Argument übergeben.
+% \changes{v2.8q}{2002/01/14}{added}
+% \begin{macro}{\@setkomaname}
+% \changes{v2.8q}{2002/01/14}{added}
+% Because of the star variant and the optional argument additional helper
+% macros are needed.
% \begin{macrocode}
\newcommand*{\setkomavar}{%
\kernel@ifstar {\@setkomaname}{\@setkomavar}}
@@ -243,15 +205,15 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@setkomaname
+% \end{macro}^^A \@@setkomavar
+% \end{macro}^^A \@setkomavar
+% \end{command}^^A \setkomavar*,\setkomavar
%
% \begin{macro}{\@komavar@err}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% Dieses Makro wird intern in den Makros \cs{setkomavar} und
-% \cs{usekomavar} verwendet.
+% \changes{v2.8q}{2002/01/14}{added}
+% Error message for using or setting (\texttt{\#1}) unknown variables
+% (\texttt{\#2}), used by \cs{setkomavar} or \cs{usekomavar}.
% \begin{macrocode}
\newcommand*{\@komavar@err}[2]{%
%<class> \ClassError{scrlttr2%
@@ -269,27 +231,21 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\usekomavar}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v2.9i}{2002/09/04}{robust}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% Selbstverständlich wird auch ein Makro benötigt, um auf den
-% Inhalt oder den Ausgabename einer Variablen zugreifen zu
-% können. Mit der normalen Variante wird dabei der Inhalt, mit der
-% Sternvariante der Name ausgegeben.
-% \begin{macro}{\@usekomavar}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v2.9i}{2002/09/04}{optionales Argument}%^^A
-% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument
-% eingefügt}
-% \begin{macro}{\@usekomaname}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v2.9i}{2002/09/04}{optionales Argument}%^^A
-% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument
-% eingefügt}
-% Da mir einer Sternvariante gearbeitet wird, werden zwei Hilfsmakros
-% benötigt.
+% \begin{command}{\usekomavar*,\usekomavar}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v2.9i}{2002/09/04}{robust}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% User command to get either the \meta{output name} (star variant) or the
+% \meta{value} (non-star variant) of a variable. Once again the first
+% mandatory argument (\texttt{\#2}) is the \meta{name} of the value. Both also
+% have an optional first argument (\texttt{\#1}) \meta{code}. The \meta{code}
+% is added before the \meta{output name} or \meta{value} in the output
+% stream and these are used as argument. You use it, e.g., to define a command
+% with the content of \meta{output name} or \meta{value} or change the formatting.
+% \begin{macro}{\@usekomavar,\@usekomaname}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v2.9i}{2002/09/04}{optional argument}
+% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} as default for the optional argument}
% \begin{macrocode}
\DeclareRobustCommand*{\usekomavar}{%
\kernel@ifstar {\@usekomaname}{\@usekomavar}}
@@ -308,22 +264,18 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\ifkomavar}
-% \changes{v3.03}{2009/03/04}{Neu}%^^A
-% \changes{v3.28}{2019/11/15}{umbenannt in \cs{Ifkomavar}}%^^A
-% \begin{macro}{\Ifkomavar}
-% \changes{v3.28}{2019/11/15}{Neu aus Umbenennung von \cs{ifkomavar}}%^^A
-% Feststellen, ob eine \KOMAScript-Variable überhaupt definiert ist. Weil
-% einige Mitglieder des \LaTeX3-Teams sich beschwert haben, dass trotz fehlens
-% einer eindeutigen Empfehlung, \KOMAScript{} \LaTeX-Verzweigungen mit
-% \cs{if\dots} definiert, statt dies \TeX-Verzweigungen vorzubehalten, habe
-% ich das hier nach mehr zehn Jahren geändert. Sollte es öffentliche
-% Beschwerden dazu geben und Ulrike diese sehen, will sie übrigens darauf
-% antworten.
+% \end{macro}^^A \@usekomavar,\@usekomaname
+% \end{command}
+%
+% \begin{command}{\ifkomavar,\Ifkomavar}
+% \changes{v3.03}{2009/03/04}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavar} renamed to {Ifkomavar}}
+% \cs{Ifkomavar} tests if the variable with the \meta{name} of \texttt{\#1} is
+% defined and execute the \meta{code} of \texttt{\#2} and otherwise the
+% \meta{code} of \texttt{\#3}. The old command \cs{ifkomavar} is deprecated
+% and should not be used any longer. This incompatible change has been done,
+% because of a new recommendation of The \LaTeX{} Team (who does break its own
+% recommendation, e.g., with \cs{ifToplevel}, \cs{ifthenelse} \dots).
% \begin{macrocode}
\newcommand*{\ifkomavar}{%
%<package> \PackageWarning{scrletter}{%
@@ -343,35 +295,31 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \Ifkomavar
-% \end{macro}%^^A \ifkomavar
-%
-% \begin{macro}{\ifkomavarempty}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v2.9i}{2002/09/04}{Leerzeichen rausgeworfen}%^^A
-% \changes{v2.9i}{2002/09/04}{robust}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \changes{v3.28}{2019/11/15}{umbenannt in \cs{Ifkomavar}}%^^A
-% \begin{macro}{\Ifkomavarempty}
-% \changes{v3.28}{2019/11/15}{Neu aus Umbenennung von \cs{ifkomavarempty}}%^^A
-% Es gibt auch noch ein Makro, um zu testen, ob eine \KOMAScript{}
-% Variable oder deren Name leer ist. Die Sternvariante ist wieder für
-% den Namen zuständig. Weil einige Mitglieder des \LaTeX3-Teams sich beschwert
-% haben, dass trotz fehlens einer eindeutigen Empfehlung, \KOMAScript{}
-% \LaTeX-Verzweigungen mit \cs{if\dots} definiert, statt dies
-% \TeX-Verzweigungen vorzubehalten, habe ich das hier nach mehr 17 Jahren
-% geändert. Sollte es öffentliche Beschwerden dazu geben und Ulrike diese
-% sehen, will sie übrigens darauf antworten.
+% \end{command}
+%
+%
+% \begin{command}{\ifkomavarempty*,\ifkomavarempty,\Ifkomavarempty*,\Ifkomavarempty}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v2.9i}{2002/09/04}{spurious spaced removed}
+% \changes{v2.9i}{2002/09/04}{robust}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} renamed to \cs{Ifkomavar}}
+% \cs{Ifkomavarempty} tests if the variable with the \meta{name} of
+% \texttt{\#1} is defined and the \meta{value} (non-star variant)
+% resp. \meta{output name} (star variant) is empty. If it is undefined or
+% empty the \meta{code} of \texttt{\#2} is executed. If is defined and not
+% empty the \meta{code} of \texttt{\#3} is executed.
+% The old command \cs{ifkomavarempty} resp. \cs{ifkomavarempty*} is deprecated
+% and should not be used any longer. This incompatible change has been done,
+% because of a new recommendation of The \LaTeX{} Team (who does break its own
+% recommendation, e.g., with \cs{ifToplevel}, \cs{ifthenelse} \dots).
% \begin{macro}{\if@komavarempty}
-% \changes{v2.8q}{2002/01/14}{Neu}%^^A
-% \changes{v3.03}{2009/03/04}{die neue Anweisung \cs{ifkomavar} wird
-% verwendet}
-% \changes{v3.03}{2009/03/04}{die Argumente werden nicht mehr direkt
-% gelesen}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavar} durch \cs{Ifkomavar} ersetzt}%^^A
-% Da mit einer Sternvariante gearbeitet wird, wird wieder ein
-% Hilfsmakro verwendet.
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.03}{2009/03/04}{using \cs{ifkomavar}}
+% \changes{v3.03}{2009/03/04}{don't read the arguments but delegate them}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavar} replaced by \cs{Ifkomavar}}
+% Because of the star variant (and because we are currently not using
+% \pkg{xparse}) we need an internal helper macro.
% \begin{macrocode}
\newcommand*{\ifkomavarempty}{%
%<package> \PackageWarning{scrletter}{%
@@ -415,12 +363,11 @@
}
% \end{macrocode}
% \end{macro}%^^A \@ifkomavarempty
-% \end{macro}%^^A \Ifkomavarempty
-% \end{macro}%^^A \ifkomavarempty
+% \end{command}%^^A \ifkomavarempty* … \Ifkomavarempty
+%
%
-% \selectlanguage{english}
-% \begin{macro}{\foreachkomavar}
-% \changes{v3.27}{2019/03/13}{new}%^^A
+% \begin{command}{\foreachkomavar}
+% \changes{v3.27}{2019/03/13}{added}
% Executes \texttt{\#2} for each variable in the comma separated list
% \texttt{\#1}. An argument is appended to \texttt{\#2} which is the current
% variable to be processed. This command is short. So if you want so execute
@@ -436,12 +383,12 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
+%
%
-% \begin{macro}{\foreachkomavarifempty}
-% \changes{v3.27}{2019/03/13}{new}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
+% \begin{command}{\foreachkomavarifempty}
+% \changes{v3.27}{2019/03/13}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by \cs{Ifkomavarempty}}
% Same like \cs{foreachkomavar} but \texttt{\#2} is called only for empty
% variables and \texttt{\#3} is called for non empty.
% \begin{macrocode}
@@ -458,12 +405,11 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\foreachemptykomavar}
-% \changes{v3.27}{2019/03/13}{new}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
+% \begin{command}{\foreachemptykomavar}
+% \changes{v3.27}{2019/03/13}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by \cs{Ifkomavarempty}}
% Similar to \cs{foreachemptykomavar} with \texttt{\#3}=\cs{@gobble}.
% \begin{macrocode}
\newcommand*{\foreachemptykomavar}[2]{%
@@ -477,12 +423,11 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\foreachnonemptykomavar}
-% \changes{v3.27}{2019/03/13}{new}%^^A
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} durch \cs{Ifkomavarempty}
-% ersetzt}%^^A
+% \begin{command}{\foreachnonemptykomavar}
+% \changes{v3.27}{2019/03/13}{added}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} replaced by \cs{Ifkomavarempty}}
% Similar to \cs{foreachemptykomavar} with \texttt{\#2}=\cs{@gobble}.
% \begin{macrocode}
\newcommand*{\foreachnonemptykomavar}[2]{%
@@ -495,24 +440,24 @@
\fi
}%
}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \selectlanguage{ngerman}
+% \end{command}
%
-% \iffalse
-%</body>
-% \fi
%
-% \iffalse
+% \begin{macrocode}
%</letter>
-% \fi
-%
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-variables.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:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-version.dtx b/macros/latex/contrib/koma-script/source/scrkernel-version.dtx
index ceca58f8c5..bb6e1ca9dd 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-version.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-version.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{105}
% \iffalse meta-comment
% ======================================================================
% scrkernel-version.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,78 +17,62 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-version.dtx
-% Copyright (c) Markus Kohm, 2002-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-version.dtx 3636 2021-11-13 18:16:17Z kohm $
-% \fi
-%
-% \iffalse
-% Nicht verwirren lassen! In dieser Datei steht die Dokumentation und
-% der Code vor dem Treiber. Das ist notwendig, weil der Code bereits
-% am Anfang des Treibers selbst benötigt wird.
-% \fi
-%
-% \selectlanguage{ngerman}
-%
-% \changes{v2.0e}{1994/07/07}{erste Version von \textsf{scrartcl},
-% \textsf{scrreprt} und \textsf{scrbook}}
-% \changes{v2.95}{2002/06/25}{erste Version aus der Aufteilung von
-% \texttt{scrclass.dtx}}
-%
-% \section{Version des \KOMAScript-Kerns}
-%
-% Dies ist die erste Datei in allen Dateien, Klassen und Paketen, die
-% zum \KOMAScript-Kern gehören (Ausnahme: \texttt{scrlfile}).
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \begin{macro}{\KOMAScriptVersion}
-% \changes{v2.95}{2002/06/25}{neu}%^^A
-% Dieses Makro gibt an, zu welcher \KOMAScript-Version die Datei
-% gehört. Die Klassen und Pakete des \KOMAScript-Kerns verwenden
-% dieses Makro außerdem als eigene Versionsangabe.
+%%% From File: $Id: scrkernel-version.dtx 3774 2022-04-28 07:46:52Z kohm $
+%
+% ATTENTION: In this file parts of the code and documentation are before the
+% driver. This must be, because this part of the code is needed by the driver
+% in this file and most of the other KOMA-Script dtx-files.
+%
+% \fi^^A meta-comment
+%
+% \changes{v2.0e}{1994/07/07}{first release of \cls*{scrartcl},
+% \cls*{scrreprt}, and \cls*{scrbook}}
+% \changes{v2.95}{2002/06/25}{first version of this file by splitting of
+% \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/11}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/11}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-version.dtx}
+% \title{The Version of the \href{https://komascript.de}{\KOMAScript} Kernel
+% and therefore the Classes and most of the Packages}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Version \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \filename{} is not only used for the code of all \KOMAScript{} classes and
+% most of the \KOMAScript{} packages. It is also used by most of the
+% installation drivers (\file{ins}-files) for the definition of
+% \KOMAScript{} version.
+% \end{abstract}
+% \tableofcontents
+%
+%
+% \section{User Manual}
+%
+% You can find the user documentation of the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation of the \KOMAScript{} Kernel Version Information}
+%
+% \begin{command}{\KOMAScriptVersion}
+% \changes{v2.95}{2002/06/25}{added}
+% This is the \KOMAScript{} version the file is related to. It is also added
+% to the classes and most of the packages by the installation drivers. This is
+% done using \file{scrdocstrip.tex} and additionally loading this file.
% \begin{macro}{\@CheckKOMAScriptVersion}
-% \changes{v2.95}{2002/06/25}{neu (intern)}%^^A
-% Je nachdem, ob \cs{KOMAScriptVersion} bereits definiert ist nicht,
-% wird die Definition überprüft oder eine globale Definition
-% vorgenommen. Da das ganze auch bei der Erstellung der Doku
-% geschieht, wird mit \cs{makeatletter} innerhalb einer Gruppe
-% gearbeitet.
+% \changes{v2.95}{2002/06/25}{added}
+% Depending on \cs{KOMAScriptVersion} already defined or not, the existing
+% definition is compared with the version here or \cs{KOMAScriptVersion} is
+% newly and globally defined. This has to work not only in class or package
+% files, but also in document files. So \cs{makeatletter} inside a group is
+% needed for the internal macros. Additionally a guard \texttt{ignorethis} is
+% used, to avoid adding code, that is needed only for the installation driver,
+% also to classes or packages.
% \begin{macrocode}
\begingroup
\catcode`\@11\relax
@@ -123,41 +106,41 @@
\fi
%</ignorethis>
\fi
- \@CheckKOMAScriptVersion{2021/11/13 v3.35 KOMA-Script}%
+% \end{macrocode}
+% Note: Following line will be patched by \file{makebetaorrelase.sh} and
+% therefore the syntax or general structure of the line must not be changed!
+% \begin{macrocode}
+ \@CheckKOMAScriptVersion{2022/05/01 v3.36 KOMA-Script}%
\endgroup
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
% \iffalse
%<*dtx>
-% \fi
\ProvidesFile{scrkernel-version.dtx}[\KOMAScriptVersion (versions)]
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-version.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}
\begin{document}
- \maketitle
- \DocInput{\filename}
+ \DocInput{scrkernel-version.dtx}
\end{document}
%</dtx>
% \fi
%
+% \subsection{Implementation of class and package names and file names}
+%
+% \begin{description}
+% \item[ToDo] Maybe, this should be split in one file for each class. The file
+% extension code should be moved to \file{scrkernel-miscellaneous.dtx}.
+% \end{description}
+%
% \begin{macro}{\scr@pkgextension}
-% \changes{v3.17}{2015/03/17}{Neu (intern)}%^^A
+% \changes{v3.17}{2015/03/17}{added}
% \begin{macro}{\scr@clsextension}
-% \changes{v3.17}{2015/03/17}{Neu (intern)}%^^A
-% \changes{v3.18}{2015/06/17}{fixed}%^^A
-% Die beiden sind prinzipiell das gleiche wie \cs{@pkgextension} und
-% \cs{@clsextension} aber auch noch nach \cs{begin{document}}.
+% \changes{v3.17}{2015/03/17}{added}
+% \changes{v3.18}{2015/06/17}{fixed}
+% Last but not least same like \cs{@pkgextension} and \cs{@clsextension} but
+% still valid after the preamble.
% \begin{macrocode}
%<*class|package>
%<package>\providecommand*{\scr@pkgextension}{\@pkgextension}
@@ -171,22 +154,20 @@
% \end{macro}
% \end{macro}
%
-% \iffalse
-%<*class>
-% \fi
-% \begin{macro}{\KOMAClassFileName}
-% \changes{v3.17}{2014/03/12}{Neu}%^^A
-% \begin{macro}{\KOMAClassName}
-% \changes{v2.95}{2004/11/04}{Neu}%^^A
-% \begin{macro}{\KOMALongClassFileName}
-% \changes{v3.27}{2019/02/16}{Neu}%^^A
-% \begin{macro}{\KOMALongClassName}
-% \changes{v3.27}{2019/02/16}{Neu}%^^A
-% \begin{macro}{\ClassName}
-% \changes{v2.95}{2004/11/04}{Neu}%^^A
-% Für \KOMAScript-Klassen wird hier einmalig der Name der Klasse definiert und
-% und die Klasse der Klasse angegeben.
+% \begin{command}{\KOMAClassFileName}
+% \changes{v3.17}{2014/03/12}{added}
+% \begin{command}{\KOMAClassName}
+% \changes{v2.95}{2004/11/04}{added}
+% \begin{command}{\KOMALongClassFileName,\KOMALongClassName}
+% \changes{v3.27}{2019/02/16}{added}
+% \begin{command}{\ClassName}
+% \changes{v2.95}{2004/11/04}{added}
+% We define the name of each \KOMAScript{} class and the name of the
+% \emph{class} of the class (usually name of the corresponding standard class)
+% once. This allows to use code, that outputs the name of the class, for
+% several classes without using always class specific code.
% \begin{macrocode}
+%<*class>
\newcommand*{\KOMAClassName}{%
%<article|(letter&long)> scrartcl%
%<report> scrreprt%
@@ -211,11 +192,10 @@
\edef\KOMALongClassFileName{\KOMALongClassFileName}
%</long>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{command}
% \begin{macrocode}
%<!long>\ProvidesClass{\KOMAClassName}[%
%<long>\ProvidesClass{\KOMALongClassName}[%
@@ -229,30 +209,27 @@
\expandafter\LoadClassWithOptions\expandafter{\KOMAClassName}
%<letter>\RequirePackage{scrletter}
%</long>
-% \end{macrocode}
-% \iffalse
%</class>
-% \fi
+% \end{macrocode}
%
-% \iffalse
-%<*package&letter>
-% \fi
% \begin{macrocode}
+%<*package&letter>
\ProvidesPackage{scrletter}[%
%!KOMAScriptVersion
letter package extending any KOMA-Script class%
]
-% \end{macrocode}
-% \iffalse
%</package&letter>
-% \fi
+% \end{macrocode}
%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% end of file `scrkernel-version.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:
diff --git a/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx b/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx
index e169ac4772..ec55e285ee 100644
--- a/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlayer-notecolumn.dtx
-% Copyright (c) Markus Kohm, 2013-2021
+% Copyright (c) Markus Kohm, 2013-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,27 +18,8 @@
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
-% scrlayer-notecolumn.dtx
-% Copyright (c) Markus Kohm, 2013-2021
-%
-% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung.
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c.
-% 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 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.
% ======================================================================
-%
-%%% From File: $Id: scrlayer-notecolumn.dtx 3601 2021-05-30 19:11:44Z kohm $
+%%% From File: $Id: scrlayer-notecolumn.dtx 3694 2022-02-10 13:53:33Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -48,9 +29,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-05-30 21:11:44 +0200 (Sun, 30 May 2021) $
+ \filedate$Date: 2022-02-10 14:53:33 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{v0.3.#2}}
- \filerevision$Revision: 3601 $
+ \filerevision$Revision: 3694 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlayer-notecolumn.dtx}%
@@ -86,11 +67,11 @@
\generate{\usepreamble\defaultpreamble
\file{scrlayer-notecolumn.sty}{%
\from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,identify}%
- \from{scrlayer.dtx}{interface,trace,notecolumn,init}%
+ \from{scrlayer.dtx}{interface,notecolumn,init}%
\from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,init}%
- \from{scrlayer.dtx}{interface,trace,notecolumn,options}%
+ \from{scrlayer.dtx}{interface,notecolumn,options}%
\from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,options}%
- \from{scrlayer.dtx}{interface,trace,notecolumn,body}%
+ \from{scrlayer.dtx}{interface,notecolumn,body}%
\from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,body}%
\from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,final}%
\from{scrlogo.dtx}{logo}%
@@ -103,117 +84,65 @@
\let\endbatchfile\relax
\fi
\endbatchfile
- \documentclass{scrdoc}
- \addtolength{\textwidth}{-1em}
- \addtolength{\marginparwidth}{2em}
- \addtolength{\oddsidemargin}{2em}
- \usepackage[ngerman,english]{babel}
- \usepackage{url,babelbib}\bibliographystyle{babalpha-fl}
- \usepackage{listings}
- \usepackage{scrhack}
- \usepackage{etoolbox}
- \pretocmd\DescribeMacro{\ifhmode\else\bigskip\noindent\fi}{}{}
- \pretocmd\DescribeEnv{\ifhmode\else\bigskip\noindent\fi}{}{}
- \pretocmd\DescribeOption{\ifhmode\else\bigskip\noindent\fi}{}{}
-
- \CodelineIndex
- \RecordChanges
- \GetFileInfo{scrlayer-notecolumn.dtx}
- \title{The \texttt{scrlayer} interface \texttt{scrlayer-notecolumn}%
- \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
- \date{\filedate}
- \author{Markus Kohm}
-
- \newenvironment{Explain}{\par}{\par}
- \newcommand*{\length}{}
- \let\length\Length
- \let\endlength\endLength
- \let\Macro\cs
- \let\Length\Macro
- \let\Package\textsf
- \let\Class\Package
- \let\File\texttt
- \let\Option\texttt
- \newcommand*{\KOption}[1]{\Option{#1}\texttt{=}}
- \newcommand*{\OptionValue}[2]{\Option{#1}\texttt{=}\PValue{#2}}
- \let\Counter\texttt
- \let\Environment\texttt
- \let\ShowOutput\quote
- \let\endShowOutput\endquote
- \let\Pagestyle\texttt
- \newcommand*{\Parameter}[1]{\texttt{\marg{#1}}\linebreak[1]}
- \newcommand*{\OParameter}[1]{\texttt{\oarg{#1}}\linebreak[1]}
- \newcommand*{\MParameter}[2]{\texttt{(\meta{#1},\meta{#2})}\linebreak[1]}
- \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}\linebreak[1]}
- \let\PName\meta
- \let\PValue\texttt
- \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:}
- \providecommand*{\AUTOREF}{}
- \makeatletter
- \def\AUTOREF#1:#2:{%
- \edef\@tempa{#1}%
- \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi
- \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi
- \ref{#1:#2}%
- }
- \providecommand*{\IndexCmd}[2][]{}
- \providecommand*{\textnote}[2][]{}
- \providecommand*\eTeX{\leavevmode\hbox{$\varepsilon$}-\TeX}
- \providecommand*\NTS{%
- \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}%
- \kern-0.2emS$}}
-
- \lstnewenvironment{lstcode}{\lstset{language=[LaTeX]TeX}}{}
- \makeatother
- \sloppy% YOU SHOULD NOT DO THIS!!!
-
- \begin{document}
- \maketitle
- \begin{abstract}
- This is only the implementation documentation of package
- \Package{scrlayer-notecolumn}. See the English or German \KOMAScript{}
- manual for more information about usage of the package!
- \end{abstract}
- \tableofcontents
- \DocInput{\filename}
- \PrintChanges
- \PrintIndex
- \end{document}
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+ \DocInput{scrlayer-notecolumn.dtx}
+\end{document}
%</dtx>
% \fi^^A meta-comment
%
-% \selectlanguage{english}
-%
% \changes{v0.0}{2013/04/26}{start of interface}
% \changes{v0.3.3532}{2020/09/11}{do not use deprecated interface commands}
+% \changes{v3.36}{2022/02/10}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/10}{require package \pkg*{scrlogo} instead of
+% defining \cs{KOMAScript}}
%
-% \StopEventually{}
+% \GetFileInfo{scrlayer-notecolumn.dtx}
+% \title{Providing Note Columns Similar to \cs{marginpar} with
+% \href{https://komascript.de}{\KOMAScript} Package
+% \pkg*{scrlayer-notecolumn} as Proof of Concept about Layers with
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrlayer}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Version \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This package is only a proof of concept. The main sense of the package is,
+% to show the power of layers with \pkg{scrlayer}. It was never intended to
+% be used as a productivity package. So there is no support for using
+% it. Several features are only rudimentary. Several can be improved. Please
+% feel free to fork this package.
+% \end{abstract}
+% \tableofcontents
%
+% \section{User Manual}
%
-% \iffalse
-%<*interface>
-%<*identify>
-% \fi
+% You can find the user manuals of \pkg*{scrlayer-notecolumn} in the \KOMAScript{}
+% manual, either the German \file{scrguide} or the English \file{scrguien}.
%
-%\iffalse
-%</identify>
-%\fi
+% \MaybeStop{\PrintIndex}
%
+% \section{Implementation of \pkg*{scrlayer-notecolumn}}
%
-% \section{Initialising some Values before the Options}
+% \begin{macrocode}
+%<*interface>
+% \end{macrocode}
%
-% \iffalse^^A meta-comment
-%<*init>
-% \fi^^A meta-comment
%
-% Initialisation before all options (even the options from
-% \File{scrlayer.dtx}).
+% \subsection{Initialising some values before the options}
+%
+% Initialization before all options (even the options from
+% \file{scrlayer.dtx}).
%
% Here we test the used pdf\TeX{} primitives.
% \changes{v0.1}{2015/10/07}{ready for renaming \cs{pdfsavepos} and
% \cs{pdflastypos} in luaTeX}
% \changes{v0.1.2483}{2016/06/28}{grouping fixed}
% \begin{macrocode}
+%<*init>
\@tempswatrue
\scr@ifundefinedorrelax{pdfsavepos}{%
\scr@ifundefinedorrelax{savepos}{%
@@ -245,24 +174,22 @@
}%
\batchmode\csname @@end\endcsname\end
\fi
+%</init>
% \end{macrocode}
%
-% \iffalse^^A meta-comment
-%</init>
-% \fi^^A meta-comment
%
-% \section{Making a Note Column}
+% \subsection{Making a note column}
%
% The package supports a various number of note columns. Each is referenced by
% a unique name.
%
-% \begin{macro}{\DeclareNoteColumn}
-% \begin{description}
-% \item[\OParameter{option list}:] a comma-separated list of
-% \texttt{\meta{key}=\meta{value}} pairs.
-% \item[\Parameter{string}:] the name of the note column (must be fully
-% expandable and expand to a string only).
-% \end{description}
+% \begin{command}{\DeclareNoteColumn}
+% \begin{description}
+% \item[\oarg{option list}:] a comma-separated list of
+% \texttt{\meta{key}=\meta{value}} pairs.
+% \item[\marg{string}:] the name of the note column (must be fully expandable
+% and expand to a string only).
+% \end{description}
% That's the primary command for note columns. It defines everything, the note
% column needs.
% \begin{macrocode}
@@ -271,7 +198,7 @@
% \end{macrocode}
% First of all we need a box register. The contents of the note column will be
% build inside of this register. Since \eTeX{} registers shouldn't be a
-% problem. User should use package \Package{etex}, if he or she runs out of
+% problem. User should use package \pkg{etex}, if he or she runs out of
% registers. Note, that the registers will stay allocated, if the interface
% will be removed! Nevertheless, the name will be destroyed!
% \begin{macrocode}
@@ -291,9 +218,8 @@
% macro instead of a length. The width isn't more variable than, e.g., the
% text width. So we can use a macro too. Both will be initialised to the
% normal marginal note column later.
-% \changes{3.27}{2019/02/14}{initialization of one colour stack per note
-% column}
-% For colour support we also need one colour stack per note column. A colour
+% \changes{3.27}{2019/02/14}{initialization of one color stack per note column}
+% For color support we also need one color stack per note column. A color
% stack is a feature only available for pdf\TeX{} and lua\TeX{}.
% \begin{macrocode}
\@ifundefined{slnc@#2@colorstack}{%
@@ -349,7 +275,7 @@
]{notecolumn.#2}
% \end{macrocode}
% We need to add the layer to every page style. The easiest way to do this is
-% to add it to the pseudo layer page style \Pagestyle{@everystyle@}.
+% to add it to the pseudo layer page style \pstyle{@everystyle@}.
% \changes{v0.1.1681}{2014/02/05}{add the layer only once}
% \begin{macrocode}
\IfLayerAtPageStyle{@everystyle@}{notecolumn.#2}{}{%
@@ -363,11 +289,11 @@
}
% \end{macrocode}
% \begin{macro}{\slnc@initial@black}
-% \changes{v0.2.3085}{2019/02/14}{new internal}
-% The initial black is the colour used to initialize the colour stacks. As long
-% as only pdf\TeX{} and lua\TeX{} provide colour stacks, we can initialize it
+% \changes{v0.2.3085}{2019/02/14}{added}
+% The initial black is the color used to initialize the color stacks. As long
+% as only pdf\TeX{} and lua\TeX{} provide color stacks, we can initialize it
% with \texttt{0 g 0 G}. However it may be better to use the initial
-% \cs{current@color} of the used colour package. Using \cs{default@color} would
+% \cs{current@color} of the used color package. Using \cs{default@color} would
% be even better, but this is not available until \cs{begin\{document\}}.
% \begin{macrocode}
\newcommand*{\slnc@initial@black}{0 g 0 G}%
@@ -380,14 +306,14 @@
\AtBeginDocument{\let\slnc@initial@black\default@color}%
}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@initial@black
+% \end{macro}^^A \slnc@initial@black
% \begin{macro}{\slnc@processnotecolumns}
% This is a list of all declared note columns in \LaTeX{} syntax (using
-% \Macro{@cons} and \Macro{@elt} etc.).
+% \cs{@cons} and \cs{@elt} etc.).
% \begin{macrocode}
\newcommand*{\slnc@processnotecolumns}{}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@processnotecolumns
+% \end{macro}^^A \slnc@processnotecolumns
% \begin{macrocode}
%</body>
% \end{macrocode}
@@ -415,14 +341,9 @@
}%
\AfterSelectAnyPageStyle{\slnc@testforpagestylewarning}
% \end{macrocode}
-% \end{macro}%^^A \slnc@testforpagestylewarning
-% \begin{option}{position}
-% \begin{option}{width}
-% \begin{option}{font}
-% \begin{option}{marginpar}
-% \begin{option}{normalmarginpar}
-% \begin{option}{reversemarginpar}
-% Last but not least we have to define the options for the \PName{option
+% \end{macro}^^A \slnc@testforpagestylewarning
+% \begin{option}{position,width,font,marginpar,normalmarginpar,reversemarginpar}
+% Last but not least we have to define the options for the \meta{option
% list}.
% \begin{macrocode}
\DefineFamilyMember[.definenotecolumn]{KOMAarg}
@@ -446,7 +367,7 @@
}
% \end{macrocode}
% \begin{macro}{\slnc@defpos}
-% Little helper for option \Option{marginpar}. The argument is the expanded
+% Little helper for option \opt{marginpar}. The argument is the expanded
% name of the note column.
% \begin{macrocode}
\newcommand*\slnc@defpos[1]{%
@@ -496,7 +417,7 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@defpos
+% \end{macro}^^A \slnc@defpos
% \begin{macrocode}
\DefineFamilyKey[.definenotecolumn]{KOMAarg}{normalmarginpar}[\relax]{%
\FamilyKeyStateProcessed
@@ -506,7 +427,7 @@
}
% \end{macrocode}
% \begin{macro}{\slnc@defnormalpos}
-% Little helper for option \Option{normalmarginpar}. The argument is the
+% Little helper for option \opt{normalmarginpar}. The argument is the
% expanded name of the note column.
% \begin{macrocode}
\newcommand*\slnc@defnormalpos[1]{%
@@ -535,7 +456,7 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@defnormalpos
+% \end{macro}^^A \slnc@defnormalpos
% \begin{macrocode}
\DefineFamilyKey[.definenotecolumn]{KOMAarg}{reversemarginpar}[\relax]{%
\FamilyKeyStateProcessed
@@ -545,7 +466,7 @@
}
% \end{macrocode}
% \begin{macro}{\slnc@defreversepos}
-% Little helper for option \Option{reversemarginpar}. The argument is the
+% Little helper for option \opt{reversemarginpar}. The argument is the
% expanded name of the note column.
% \begin{macrocode}
\newcommand*\slnc@defreversepos[1]{%
@@ -574,22 +495,15 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@defreversepos
+% \end{macro}^^A \slnc@defreversepos
% \begin{macrocode}
%</body>
% \end{macrocode}
-% \end{option}%^^A reversemarginpar
-% \end{option}%^^A normalmarginpar
-% \end{option}%^^A marginpar
-% \end{option}%^^A font
-% \end{option}%^^A width
-% \end{option}%^^A position
-% \end{macro}%^^A \DeclareNoteColumn
+% \end{option}^^A position … reversemarginpar
+% \end{command}^^A \DeclareNoteColumn
%
-% \begin{macro}{\DeclareNewNoteColumn}
-% \begin{macro}{\ProvideNoteColumn}
-% \begin{macro}{\RedeclareNoteColumn}
-% Like \Macro{DeclareNoteColumn} but with restrictions, if the note column has
+% \begin{command}{\DeclareNewNoteColumn,\ProvideNoteColumn,\RedeclareNoteColumn}
+% Like \cs{DeclareNoteColumn} but with restrictions, if the note column has
% (not) been declared already.
% \begin{macrocode}
%<*body>
@@ -631,24 +545,22 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+%
%
-% \section{Setting a Note Column}
+% \subsection{Setting a note column}
%
% We already have commands to declare note columns. But we also need a command
% to put contents into the note columns and to output the note columns.
%
% \begin{macro}{\tf@slnc}
-% \changes{v0.1.2395}{2016/03/25}{write to \texttt{aux}-file with
+% \changes{v0.1.2395}{2016/03/25}{write to \file{aux}-file with
% \cs{if@filesw}}
-% \begin{macro}{\slnc@initwrite}
-% \begin{macro}{\slnc@openwrite}
+% \begin{macro}{\slnc@initwrite,\slnc@openwrite}
% \changes{v0.1.2928}{2018/02/02}{use \cs{closein} instead of \cs{closeout}
% to close \cs{slnc@file}}
% First of all we need a file to write the notes to. We use the
-% \File{aux}-file to write into the file, because we need to read the file
+% \file{aux}-file to write into the file, because we need to read the file
% while the document will be typeset and the same time we need to write into
% the file. Note, that the file will be still reserved on auto-removing the
% interface!
@@ -674,11 +586,10 @@
\immediate\openout\tf@slnc\jobname.slnc
}
% \end{macrocode}
-% After reading the main \File{aux}-file at |\end{document}|, we again
-% calculate the md5 checksum of the \File{slnc}-file. If it has been changed
+% After reading the main \file{aux}-file at |\end{document}|, we again
+% calculate the md5 checksum of the \file{slnc}-file. If it has been changed
% we set |\if@tempswa| to |\iftrue| to provocate a rerun message.
-% \changes{v0.1.2872}{2018/01/17}{usage of Lua function
-% \texttt{slncmdfivesum}}
+% \changes{v0.1.2872}{2018/01/17}{usage of Lua function \texttt{slncmdfivesum}}
% \changes{v0.1.2972}{2018/04/01}{usage of not yet documented Xe\TeX{}
% primitive \cs{mdfivesum}}
% \begin{macrocode}
@@ -732,8 +643,8 @@
}
%</body>
% \end{macrocode}
-% \changes{v0.3.3600}{2021/05/30}{use of \textsf{scrwfile}'s never list}%
-% The easiest way to make it compatible with \Package{scrwfile} is to put it
+% \changes{v0.3.3600}{2021/05/30}{use of \pkg*{scrwfile}'s never list}%
+% The easiest way to make it compatible with \pkg*{scrwfile} is to put it
% on the \emph{never} list.
% \begin{macrocode}
%<*body>
@@ -743,27 +654,23 @@
}
%</body>
% \end{macrocode}
+% \end{macro}^^A \slnc@initwrite,\slnc@openwrite
+% \end{macro}^^A \tf@slnc
%
-% \end{macro}%^^A \slnc@openwrite
-% \end{macro}%^^A \slnc@initwrite
-% \end{macro}%^^A \tf@slnc
-%
-% \begin{macro}{\makenote}
-% \begin{description}
-% \item[\OParameter{string}:] the name of the note column the note should be
-% added to (must be fully expandable and expand to a string only). The
-% default value is \PValue{marginpar}.
-% \item[\Parameter{code}:] the code, that should become par of the note
-% column. Note, that this will be written protected to a file. So you have
-% to use \Macro{protect} if a macro shouldn't be expanded while writing or
-% may break while writing.
-% \end{description}
-% There is a star variant with the same parameters, that writes the
-% \meta{code} un-expanded. To do so, we need some internal commands.
-% \begin{macro}{\slnc@unexpanded}
-% \changes{v0.1.2583}{2017/02/08}{new (internal)}
-% \begin{macro}{\slnc@makenote}
-% \changes{v0.1.2583}{2017/02/08}{new (internal)}
+% \begin{command}{\makenote}
+% \begin{description}
+% \item[\oarg{string}:] the name of the note column the note should be added
+% to (must be fully expandable and expand to a string only). The default
+% value is |marginpar|.
+% \item[\marg{code}:] the code, that should become par of the note
+% column. Note, that this will be written protected to a file. So you have
+% to use \cs{protect} if a macro shouldn't be expanded while writing or may
+% break while writing.
+% \end{description}
+% There is a star variant with the same parameters, that writes the
+% \meta{code} un-expanded. To do so, we need some internal commands.
+% \begin{macro}{\slnc@unexpanded,\slnc@makenote}
+% \changes{v0.1.2583}{2017/02/08}{added}
% \begin{macrocode}
%<*body>
\newcommand*{\slnc@unexpanded}{}
@@ -784,10 +691,10 @@
\@esphack
}%
% \end{macrocode}
-%^^A \begin{counter}{slncpage}
+% \begin{counter}{slncpage}
% This counter should be increased once per page with note column. This may
% be done simply at a once per page executed hook of
-% \Pagestyle{@everystyle@}. You should note, that auto-remove wouldn't
+% \pstyle{@everystyle@}. You should note, that auto-remove wouldn't
% remove the counter.
% \begin{macrocode}
\@ifundefined{c@slncpage}{%
@@ -798,16 +705,15 @@
}{}
%</body>
% \end{macrocode}
-%^^A \end{counter}%^^A slncpage
-% \end{macro}%^^A \slnc@unexpanded
-% \end{macro}%^^A \slnc@makenote
-% \end{macro}%^^A \makenote
+% \end{counter}^^A slncpage
+% \end{macro}^^A \slnc@makenote,\slnc@unexpanded
+% \end{command}^^A \makenote
%
% \begin{macro}{\slnc@processnotes}
-% \begin{description}
-% \item[\Parameter{string}:] the name of the note column (must be fully
-% expandable an expand to a string only).
-% \end{description}
+% \begin{description}
+% \item[\marg{string}:] the name of the note column (must be fully expandable
+% an expand to a string only).
+% \end{description}
% Each note column typesets the notes with this command. It works in following
% steps:
% \begin{macrocode}
@@ -815,7 +721,7 @@
\newcommand*{\slnc@processnotes}[1]{%
% \end{macrocode}
% Read as long notes from the notes file until the number at \#2 of
-% \Macro{slnc@note} in the file is greater than \Counter{slncpage}. Put all
+% \cs{slnc@note} in the file is greater than \cnt{slncpage}. Put all
% these to the corresponding unprocessed list.
% \begin{macrocode}
\begingroup
@@ -844,9 +750,9 @@
\fi
}%
\long\def\slnc@note##1##2##3##4{%
-%<trace> \typeout{TRACE (slnc): ##2<=\theslncpage?}%
+%<trace> \PackageInfo{scrlayer-notecolumn}{TRACE (slnc): ##2<=\theslncpage?}%
\ifnum ##2>\value{slncpage}\relax
-%<trace> \typeout{TRACE (slnc): no: unprocess note}%
+%<trace> \PackageInfo{scrlayer-notecolumn}{TRACE (slnc): no: unprocess note}%
\expandafter\g@addto@macro\csname slnc@#1@unprocessed\endcsname{%
\slnc@note{##1}{##2}{##3}{##4}%
}%
@@ -859,7 +765,7 @@
\expandafter\hsize\csname slnc@#1@width\endcsname
\normalfont\normalsize
% \end{macrocode}
-% \changes{v0.2.3085}{2019/02/14}{using colour stack if available}
+% \changes{v0.2.3085}{2019/02/14}{using color stack if available}
% If a color stack is available we switch to it before changing the font. So a
% color definition inside the font would overwrite every color change inside
% the column! But if we don't have a color stack, color switching is not
@@ -897,7 +803,6 @@
\@tempdimb=\dimexpr \expandafter\ht\csname slnc@#1@box\endcsname
+\expandafter\dp\csname slnc@#1@box\endcsname
\relax
- \typeout{Soll: \the\@tempdima^^JIst: \space\the\@tempdimb}%
\ifdim\@tempdima<\@tempdimb
%<*trace>
\PackageInfo{scrlayer-notecolumn}{%
@@ -978,7 +883,7 @@
\splittopskip\topskip
\splitmaxdepth\baselineskip
% \end{macrocode}
-% Bring back the colours:
+% Bring back the colors:
% \changes{v0.2.3085}{2019/02/14}{\cs{slnc@switchcolorstack} added}
% \begin{macrocode}
\usekomafont{notecolumn.#1}{%
@@ -997,7 +902,7 @@
\PackageInfo{scrlayer-notecolumn}{Flush note box `#1'}%
%</trace>
% \end{macrocode}
-% Bring back the colours:
+% Bring back the colors:
% \changes{v0.2.3085}{2019/02/14}{\cs{slnc@switchcolorstack} added}
% \begin{macrocode}
\usekomafont{notecolumn.#1}{%
@@ -1013,18 +918,18 @@
}
% \end{macrocode}
% \begin{macro}{\slnc@switchcolorstack}
-% \changes{v0.2.3085}{2019/02/14}{new internal}
-% This either redefines \cs{set@color} or switches to the colour stack of the
+% \changes{v0.2.3085}{2019/02/14}{added}
+% This either redefines \cs{set@color} or switches to the color stack of the
% note column given by the argument.
% \begin{macrocode}
\newcommand*{\slnc@switchcolorstack}[1]{%
\scr@ifundefinedorrelax{slnc@#1@colorstack}{%
\def\set@color{%
\PackageWarningNoLine{scrlayer-notecolumn}{%
- unsupported change of colour!\MessageBreak
+ unsupported change of color!\MessageBreak
It seems you are using a TeX engine,\MessageBreak
that does not support switching the\MessageBreak
- colour stack like pdfTeX or luaTeX do.\MessageBreak
+ color stack like pdfTeX or luaTeX do.\MessageBreak
Because of this, usage of \string\color,\MessageBreak
\string\textcolor\space etc. inside a note
column\MessageBreak
@@ -1040,7 +945,7 @@
\scr@ifundefinedorrelax{pdfcolorstack}{%
\scr@ifundefinedorrelax{pdfextension}{%
\PackageError{scrlayer-notecolumm}{%
- colour stack defined but not usable%
+ color stack defined but not usable%
}{%
\expandafter\string
\csname slnc@#1@colorstack\endcsname\space defined
@@ -1060,11 +965,11 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@switchcolorstack
-% \begin{macro}{\restoreinnote}
-% \changes{v0.1.2582}{2017/02/08}{new command}
+% \end{macro}^^A \slnc@switchcolorstack
+% \begin{command}{\restoreinnote}
+% \changes{v0.1.2582}{2017/02/08}{added}
% \begin{macro}{\slnc@restoreinnote}
-% \changes{v0.1.2582}{2017/02/08}{new (internal)}
+% \changes{v0.1.2582}{2017/02/08}{added}
% Some commands have to be restored while processing the notes. By default
% these are \cs{label}, \cs{index}, \cs{glossary}. More can be added using
% \cs{restoreinnote}. The storage is \cs{slnc@restoreinnote}.
@@ -1085,14 +990,14 @@
\restoreinnote\index
\restoreinnote\glossary
% \end{macrocode}
-% \end{macro}%^^A \slnc@restoreinnote
-% \end{macro}%^^A \restoreinnote
+% \end{macro}^^A \slnc@restoreinnote
+% \end{command}^^A \restoreinnote
% \begin{macro}{\slnc@readnotes}
% Read as long notes from the notes file until the number at \#2 of
-% \Macro{slnc@note} or \Macro{slnc@sync} in the file is greater than
-% \Counter{slncpage}. Put all these to the corresponding unprocessed list.
+% \cs{slnc@note} or \cs{slnc@sync} in the file is greater than
+% \cnt{slncpage}. Put all these to the corresponding unprocessed list.
% \begin{macro}{\slnc@catcodes}
-% \changes{v0.3}{2019/03/02}{new internal}
+% \changes{v0.3}{2019/03/02}{added}
% We need a helper macro \cs{slnc@catcodes} to restore (some of) the catcodes
% before reading from file.
% \begin{macrocode}
@@ -1110,7 +1015,7 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \slnc@catcodes
+% \end{macro}^^A \slnc@catcodes
% \begin{macrocode}
\newcommand*\slnc@readnotes[1]{%
\ifeof\slnc@file\else
@@ -1184,18 +1089,14 @@
\fi
}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@readnotes
-% \begin{macro}{\slnc@iofv}
-% \begin{macro}{\slnc@iiofv}
-% \begin{macro}{\slnc@iiiofv}
+% \end{macro}^^A \slnc@readnotes
+% \begin{macro}{\slnc@iofv,\slnc@iiofv,\slnc@iiiofv}
% \begin{macrocode}
\newcommand\slnc@iofv[6]{\def#1{#2}}%
\newcommand\slnc@iiofv[6]{\def#1{#3}}%
\newcommand\slnc@iiiofv[6]{\def#1{#4}}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@iiiofv
-% \end{macro}%^^A \slnc@iiofv
-% \end{macro}%^^A \slnc@iofv
+% \end{macro}^^A \slnc@iofv … \slnc@iiiofv
% \begin{macro}{\slnc@unprocessed}
% The \#2 of the last read note column from notes file.
% \begin{macrocode}
@@ -1209,7 +1110,7 @@
% \begin{macro}{\slnc@mdfivesum}
% \changes{v0.1.2872}{2018/01/17}{definition and usage of Lua function
% \texttt{slncmdfivesum}}
-% \changes{v0.1.2972}{2018/04/01}{usage of not yet documented Xe\TeX{}
+% \changes{v0.1.2972}{2018/04/01}{usage of not yet documented \XeTeX{}
% primitive \cs{mdfivesum}}
% \changes{v0.3.3591}{2021/03/25}{Lua function name changed to
% \texttt{slnc.mdfivesum}}
@@ -1260,12 +1161,14 @@
\immediate\openin\slnc@file \jobname.slnc
%</body>
% \end{macrocode}
-% \end{macro}%^^A \slnc@mdfivesum
-% \end{macro}%^^A \slnc@file
-% \end{macro}%^^A \slnc@unprocessed
-% \end{macro}%^^A \slnc@processnotes
+% \end{macro}^^A \slnc@mdfivesum
+% \end{macro}^^A \slnc@file
+% \end{macro}^^A \slnc@unprocessed
+% \end{macro}^^A \slnc@processnotes
%
% \begin{option}{autoclearnotecolumns}
+% \begin{macro}{\ifslnc@autoclearnotecolumns,\slnc@autoclearnotecolumnstrue,
+% \slnc@autoclearnotecolumnsfalse}
% \begin{macrocode}
%<*options>
\KOMA@ifkey{autoclearnotecolumns}{slnc@autoclearnotecolumns}
@@ -1279,13 +1182,14 @@
\expandafter\g@addto@macro\expandafter\clearpage\expandafter{\reserved@a}
%</final>
% \end{macrocode}
+% \end{macro}
% \end{option}
%
-% \begin{macro}{\clearnotecolumn}
-% \begin{description}
-% \item[\OParameter{string}:] the name of the note column (must be fully
-% expandable and expand to a string only). Default is \PValue{marginpar}.
-% \end{description}
+% \begin{command}{\clearnotecolumn}
+% \begin{description}
+% \item[\oarg{string}:] the name of the note column (must be fully
+% expandable and expand to a string only). Default is |marginpar|.
+% \end{description}
% Output as many (empty) pages as needed to output all unprocessed notes of
% one note column. Note, that the output of the first page may result in more
% unprocessed notes. But the output of the following (empty) pages shouldn't.
@@ -1323,22 +1227,23 @@
\edef\reserved@a{\expandafter\slnc@secondof\reserved@a\@nil}%
}%
%<*trace>
- \typeout{TRACE (slnc): clearnote=\@nameuse{theslnc@clearnote@label},
+ \PackageInfo{scrlayer-notecolumn}{%
+ TRACE (slnc): clearnote=\@nameuse{theslnc@clearnote@label},
abspage=\the\value{slncpage}, until page=\slnc@cmp@value,
process=\reserved@a, pagetotal=\the\pagetotal, topskip=\the\topskip}%
%</trace>
\ifvmode\ifdim \pagetotal<\topskip
% \end{macrocode}
-% \Macro{clearpage} wouldn't result in a new page, so we do not have to output
+% \cs{clearpage} wouldn't result in a new page, so we do not have to output
% the notes of this page but only until the previous.
% \begin{macrocode}
\edef\slnc@cmp@value{\the\numexpr\slnc@cmp@value-1}%
-%<trace> \typeout{TRACE (slnc): until page=\slnc@cmp@value}%
+%<trace> \PackageInfo{scrlayer-notecolumn}{TRACE (slnc): until page=\slnc@cmp@value}%
\fi\fi
\ifnum \reserved@a=\z@
% \end{macrocode}
% Next we read all notes until the end of the current page, but only
-% if a \Macro{clearpage} wouldn't result in a new page.
+% if a \cs{clearpage} wouldn't result in a new page.
% \begin{macrocode}
\ifvmode
\ifdim \pagetotal<\topskip
@@ -1378,7 +1283,7 @@
\@tempswatrue
\fi
\@whilesw\if@tempswa\fi{%
-%<trace> \typeout{TRACE (slnc): add \string\clearpage}%
+%<trace> \PackageInfo{scrlayer-notecolumn}{TRACE (slnc): add \string\clearpage}%
% \end{macrocode}
% Yes, we have (maybe again)!
% \begin{macrocode}
@@ -1405,43 +1310,41 @@
\endgroup
}
% \end{macrocode}
-% \begin{macro}{\slnc@firstof}
-% \begin{macro}{\slnc@secondof}
-% We need these little helpers, because some packages like
-% \Package{hyperref} extend the label mechanism by additional arguments.
+% \begin{macro}{\slnc@firstof,\slnc@secondof}
+% We need these little helpers, because some packages like
+% \pkg{hyperref} extend the label mechanism by additional arguments.
% \begin{macrocode}
\newcommand*{\slnc@firstof}{}
\def\slnc@firstof#1#2\@nil{#1}%
\newcommand*{\slnc@secondof}{}
\def\slnc@secondof#1#2#3\@nil{#2}%
% \end{macrocode}
-% \end{macro}%^^A \slnc@firstof
-% \end{macro}%^^A \slnc@secondof
+% \end{macro}^^A \slnc@firstof,\slnc@secondof
% \begin{macro}{\slnc@voidtest}
-% \begin{description}
-% \item[\Parameter{string}:] the name of a note column (must be fully
-% expandable and expand to a string only).
-% \end{description}
-% If the box of the note column is empty/void it returns \Macro{z@} otherwise
-% \Macro{@ne}.
+% \begin{description}
+% \item[\marg{string}:] the name of a note column (must be fully
+% expandable and expand to a string only).
+% \end{description}
+% If the box of the note column is empty/void it returns \cs{z@} otherwise
+% \cs{@ne}.
% \begin{macrocode}
\newcommand*{\slnc@voidtest}[1]{%
\expandafter\ifvoid \csname slnc@#1@box\endcsname \z@\else \@ne\fi
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \slnc@voidtest
-% \end{macro}%^^A \clearnotecolumn
+% \end{macro}^^A \slnc@voidtest
+% \end{command}^^A \clearnotecolumn
%
-% \begin{macro}{\clearnotecolumns}
+% \begin{command}{\clearnotecolumns}
% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
% \changes{v3.26}{2018/08/29}{removed spurious \cs{expandafter}}
-% \begin{description}
-% \item[\OParameter{string list}:] comma separated list of note column names
-% (must be fully expandable and each element must expand to a string only,
-% that is the name of a note column); if omitted or empty all note columns
-% will be used.
-% \end{description}
+% \begin{description}
+% \item[\oarg{string list}:] comma separated list of note column names (must
+% be fully expandable and each element must expand to a string only, that is
+% the name of a note column); if omitted or empty all note columns will be
+% used.
+% \end{description}
% Output as many (empty) pages as needed to output all unprocessed notes of
% all (given) note columns. Note, that the output of the first page may
% result in more unprocessed notes. But the output of the following (empty)
@@ -1497,22 +1400,23 @@
\edef\reserved@a{\expandafter\slnc@secondof\reserved@a\@nil}%
}%
%<*trace>
- \typeout{TRACE (slnc): clearnote=\@nameuse{theslnc@clearnote@label},
+ \PackageInfo{scrlayer-notecolumn}{%
+ TRACE (slnc): clearnote=\@nameuse{theslnc@clearnote@label},
abspage=\theslncpage, until page=\slnc@cmp@value,
process=\reserved@a, pagetotal=\the\pagetotal, topskip=\the\topskip}%
%</trace>
\ifvmode\ifdim \pagetotal<\topskip
% \end{macrocode}
-% \Macro{clearpage} wouldn't result in a new page, so we do not have to output
+% \cs{clearpage} wouldn't result in a new page, so we do not have to output
% the notes of this page but only until the previous.
% \begin{macrocode}
\edef\slnc@cmp@value{\the\numexpr\slnc@cmp@value-1}%
-%<trace> \typeout{TRACE (slnc): until page=\slnc@cmp@value}%
+%<trace> \PackageInfo{scrlayer-notecolumn}{TRACE (slnc): until page=\slnc@cmp@value}%
\fi\fi
\ifnum \reserved@a=\z@
% \end{macrocode}
% Next we read all notes until the end of the current page, but only
-% if a \Macro{clearpage} wouldn't result in a new page.
+% if a \cs{clearpage} wouldn't result in a new page.
% \begin{macrocode}
\ifvmode
\ifdim \pagetotal<\topskip
@@ -1553,7 +1457,7 @@
\@tempswatrue
\fi
\@whilesw\if@tempswa\fi{%
-%<trace> \typeout{TRACE (slnc): add \string\clearpage}%
+%<trace> \PackageInfo{scrlayer-notecolumn}{TRACE (slnc): adding \string\clearpage}%
% \end{macrocode}
% Yes, we have (maybe again)!
% \begin{macrocode}
@@ -1583,10 +1487,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \clearnotecolumns
+% \end{command}^^A \clearnotecolumns
%
%
-% \section{Syncronisation of Text and Note}
+% \subsection{Syncronisation of text and note}
% \label{sec:scrlayer-notecolumn.sync}
%
% Until yet we have the text and we have note columns. Normally note entries
@@ -1595,17 +1499,18 @@
% note may be later (but never earlier), so we need a mechanism to force
% synchronisation of the text with the note.
%
-% \begin{macro}{\syncwithnotecolumn}
+% \begin{command}{\syncwithnotecolumn,\syncwithnotecolumns}
% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
% \changes{v3.26}{2018/08/29}{removed spurious \cs{expandafter}}
-% \begin{description}
-% \item[\OParameter{string}:] the name of the note column to sync with (this
-% must be fully expandable and expand to the name of a note column). By
-% default sync with note column \PValue{marginpar}.
-% \end{description}
+% \begin{description}
+% \item[\oarg{string}:] the name of the note column to sync with (this must be
+% fully expandable and expand to the name of a note column). By default sync
+% with note column |marginpar|.
+% \end{description}
+% \begin{counter}{slnc@syncpoint}
% Add at the \LaTeX{} run after the next \LaTeX{} run as much space to the
% text (not the note column!) as needed to reach the next position at the
-% note column. This is not the same like \Macro{clearnotecolumn}, because it
+% note column. This is not the same like \cs{clearnotecolumn}, because it
% doesn't need to go to the next page, but it needs at least three \LaTeX{}
% runs to terminate.
% \begin{macrocode}
@@ -1648,7 +1553,7 @@
Using \string\syncwithnotecolumn\space in horizontal\MessageBreak
mode may result in unwanted vertical\MessageBreak
space inside paragraphs and may lost\MessageBreak
- colours of text of notes. \space So perhaps you\MessageBreak
+ colors of text of notes. \space So perhaps you\MessageBreak
should move \string\syncwithnotecolumn\space before\MessageBreak
or after the paragraph%
}%
@@ -1766,6 +1671,7 @@
\endgroup
}
% \end{macrocode}
+% \end{counter}
% \begin{macro}{\slnc@vadjust}
% \begin{macrocode}
\newcommand{\slnc@vadjust}[1]{%
@@ -1775,23 +1681,23 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \slnc@vadjust
-% \end{macro}%^^A \syncwithnotecolumn
+% \end{macro}^^A \slnc@vadjust
+% \end{command}^^A \syncwithnotecolumn,\syncwithnotecolumns
%
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%</interface>
-% \fi^^A meta-comment
+% \end{macrocode}
%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% end of file `scrlayer-notecolumn.dtx'
-
-%%% Local Variables:
-%%% mode: doctex
-%%% mode: flyspell
-%%% ispell-local-dictionary: "en_GB"
-%%% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx b/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx
index d7a264f89e..e0b8af619a 100644
--- a/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlayer-scrpage.dtx
-% Copyright (c) Markus Kohm, 2012-2021
+% Copyright (c) Markus Kohm, 2012-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,28 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrlayer-scrpage.dtx
-% Copyright (c) Markus Kohm, 2012-2021
-%
-% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung.
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c.
-% 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 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.
% ======================================================================
-%
-%%% From File: $Id: scrlayer-scrpage.dtx 3595 2021-05-16 07:11:07Z kohm $
+%%% From File: $Id: scrlayer-scrpage.dtx 3693 2022-02-10 13:20:09Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -47,9 +27,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-05-16 09:11:07 +0200 (Sun, 16 May 2021) $
+ \filedate$Date: 2022-02-10 14:20:09 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3595 $
+ \filerevision$Revision: 3693 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlayer-scrpage.dtx}%
@@ -75,13 +55,13 @@
\KOMAdefVariable{COPYRIGHTFROM}{2012}
\generate{\usepreamble\defaultpreamble
\file{scrlayer-scrpage.sty}{%
- \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,identify}%
- \from{scrlayer.dtx}{interface,trace,scrpage,init}%
- \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,init}%
- \from{scrlayer.dtx}{interface,trace,scrpage,options}%
- \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,options}%
- \from{scrlayer.dtx}{interface,trace,scrpage,body}%
- \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,body}%
+ \from{scrlayer-scrpage.dtx}{interface,scrpage,identify}%
+ \from{scrlayer.dtx}{interface,scrpage,init}%
+ \from{scrlayer-scrpage.dtx}{interface,scrpage,init}%
+ \from{scrlayer.dtx}{interface,scrpage,options}%
+ \from{scrlayer-scrpage.dtx}{interface,scrpage,options}%
+ \from{scrlayer.dtx}{interface,scrpage,body}%
+ \from{scrlayer-scrpage.dtx}{interface,scrpage,body}%
\from{scrlogo.dtx}{logo}%
}%
}
@@ -90,182 +70,133 @@
\let\endbatchfile\relax
\fi
\endbatchfile
- \documentclass{scrdoc}
- \addtolength{\textwidth}{-1em}
- \addtolength{\marginparwidth}{2em}
- \addtolength{\oddsidemargin}{2em}
- \usepackage[ngerman,english]{babel}
- \usepackage{url,babelbib}\bibliographystyle{babalpha-fl}
- \usepackage{listings}
- \usepackage{scrhack}
- \usepackage{etoolbox}
- \pretocmd\DescribeMacro{\ifhmode\else\bigskip\noindent\fi}{}{}
- \pretocmd\DescribeEnv{\ifhmode\else\bigskip\noindent\fi}{}{}
- \pretocmd\DescribeOption{\ifhmode\else\bigskip\noindent\fi}{}{}
-
- \CodelineIndex
- \RecordChanges
- \GetFileInfo{scrlayer-scrpage.dtx}
- \title{The \texttt{scrlayer} interface \texttt{scrlayer-scrpage}%
- \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
- \date{\filedate}
- \author{Markus Kohm}
-
- \newenvironment{Explain}{\par}{\par}
- \newcommand*{\length}{}
- \let\length\Length
- \let\endlength\endLength
- \let\Macro\cs
- \let\Length\Macro
- \let\Package\textsf
- \let\Class\Package
- \let\File\texttt
- \let\Option\texttt
- \newcommand*{\KOption}[1]{\Option{#1}\texttt{=}}
- \newcommand*{\OptionValue}[2]{\Option{#1}\texttt{=}\PValue{#2}}
- \let\Counter\texttt
- \let\Environment\texttt
- \let\ShowOutput\quote
- \let\endShowOutput\endquote
- \let\Pagestyle\texttt
- \newcommand*{\Parameter}[1]{\texttt{\marg{#1}}\linebreak[1]}
- \newcommand*{\OParameter}[1]{\texttt{\oarg{#1}}\linebreak[1]}
- \newcommand*{\MParameter}[2]{\texttt{(\meta{#1},\meta{#2})}\linebreak[1]}
- \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}\linebreak[1]}
- \let\PName\meta
- \let\PValue\texttt
- \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:}
- \providecommand*{\AUTOREF}{}
- \makeatletter
- \def\AUTOREF#1:#2:{%
- \edef\@tempa{#1}%
- \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi
- \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi
- \ref{#1:#2}%
- }
- \providecommand*{\IndexCmd}[2][]{}
- \providecommand*{\textnote}[2][]{}
- \providecommand*\eTeX{\leavevmode\hbox{$\varepsilon$}-\TeX}
- \providecommand*\NTS{%
- \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}%
- \kern-0.2emS$}}
-
- \lstnewenvironment{lstcode}{\lstset{language=[LaTeX]TeX}}{}
- \makeatother
- \sloppy% YOU SHOULD NOT DO THIS!!!
-
- \begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
- \PrintChanges
- \PrintIndex
- \end{document}
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
+% We need (foo,bar)
+\DeclareRobustCommand*{\pparg}[2]{\texttt(\meta{#1}\texttt,\meta{#2}\texttt)}
+% and {foo:bar}
+\DeclareRobustCommand*{\mmarg}[2]{%
+ \texttt{\char`\{}\meta{#1}\texttt:\meta{#2}\texttt{\char`\}}}
+\begin{document}
+ \DocInput{scrlayer-scrpage.dtx}
+\end{document}
+%</dtx>
% \fi^^A meta-comment
%
-% \selectlanguage{english}
-%
% \changes{v0.0}{2012/01/01}{start of interface}
% \changes{v3.32}{2020/09/11}{do not use deprecated interface commands}
-% \let\restorechapter\chapter
-% \let\chapter\section
-% \let\section\subsection
-% \let\subsection\subsubsection
-%
-%\iffalse
-%</dtx>
-%\fi
-%
-% \StopEventually{}
-%
-% \chapter{Implementation of \Package{scrlayer-scrpage}}
+% \changes{v3.36}{2022/02/09}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/09}{require package \pkg*{scrlogo} instead of
+% defining \cs{KOMAScript}}
+% \changes{v3.36}{2022/02/09}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrlayer-scrpage.dtx}
+% \title{The \texttt{scrlayer} Interface of
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrlayer-scrpage}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This package defines several extensions above \pkg*{scrlayer} for easy
+% handling of pairs of \emph{headings} and \emph{plain} page styles. So this
+% widely is a replacement of the not any longer supported, former
+% \KOMAScript{} package \pkg{scrpage2}.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user manuals of \pkg*{scrlayer-scrpage} in the \KOMAScript{}
+% manual, either the German \file{scrguide} or the English \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
+%
+%
+% \section{Implementation of \pkg*{scrlayer-scrpage}}
% \label{sec:scrlayer-scrpage}
%
% This section if for developers only.
%
-% \iffalse
+% \begin{macrocode}
%<*interface>
-%<*identify>
-% \fi
-%
-%\iffalse
-%</identify>
-%\fi
-%
+% \end{macrocode}
+%
%
-% \section{Initialising some Values before the Options}
+% \subsection{Initialising some values before the options}
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%<*init>
-% \fi^^A meta-comment
+% \end{macrocode}
%
% Initialisation before all options (even the options from
-% \File{scrlayer.dtx}).
+% \file{scrlayer.dtx}).
%
-% Currently nothing.
+% Currently nothing to do.
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%</init>
-% \fi^^A meta-comment
+% \end{macrocode}
%
-% \section{Options}
%
-% \iffalse^^A meta-comment
-%<*options>
-% \fi
+% \subsection{Options}
%
-% Package \Package{scrpage2} doesn't support \KOMAScript{} options but only
-% regular \LaTeX{} package options. The interface will also support those
+% \begin{macrocode}
+%<*options>
+% \end{macrocode}
+%
+% Package \pkg{scrpage2} didn't support \KOMAScript{} options but only
+% regular \LaTeX{} package options. This interface will also support those
% options, but uses \KOMAScript{} options for the implementation. This
% results in additional features of the interface.
%
% Note, that some options are already defined before this by the common option
-% parts of \File{scrlayer.dtx}. All others will follow step by step in the
+% parts of \file{scrlayer.dtx}. All others will follow step by step in the
% main part.
%
-% Options \Option{headinclude}, \Option{headexclude}, \Option{footinclude} and
-% \Option{footexclude} of package \Package{scrpage2} are deprecated since
+% Options \opt{headinclude}, \opt{headexclude}, \opt{footinclude} and
+% \opt{footexclude} of package \pkg{scrpage2} are deprecated since
% package version 2.3, 2008-12-08. They won't be supported by the
-% \Package{scrlayer-scrpage} interface.
+% \pkg*{scrlayer-scrpage} interface.
%
% Additional initialisation may be done here, but currently this isn't
% needed.
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%</options>
-% \fi^^A meta-comment
-%
+% \end{macrocode}
+%
%
-% \section{Width of Header and Footer}
+% \subsection{Width of header and footer}
%
-% \Package{scrpage2} provided to set the width of the page head or footer
-% different from the width of the text area of the page using
-% \Macro{setheadwidth} and \Macro{setfootwidth}. Optionally those commands
-% allow to setup an horizontal offset for the head or footer. This interface
-% provides the same feature but also allows to set up the widths and offsets
-% with \KOMAScript{} options. Those options will become the primary interface.
+% \pkg{scrpage2} provided commands \cs{setheadwidth} and \cs{setfootwidth} to
+% set the width of the page head or footer different from the width of the
+% text area of the page. Optionally those commands allow to setup an
+% horizontal offset for the head or footer. This interface provides the same
+% feature but prefers to set up the widths and offsets with \KOMAScript{}
+% options. Those options will become the primary interface.
%
% \begin{option}{headwidth}
-% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}%^^A
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
+% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}
+% \changes{v3.17}{2015/02/25}{new: store the values}
% \begin{option}{footwidth}
-% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}%^^A
+% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}
% \changes{v3.15}{2014/12/28}{fix: missing colon in call of
-% \cs{sls@split@at@iicolons}}%^^A
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
-% \begin{description}
-% \item[\texttt{=\meta{special dimensional expression}:\meta{special
-% dimensional expression}}:] see \Macro{sls@settowidthof} for information
-% about the syntax of \meta{special dimensional expression}. The width of
-% the page head or footer will be set to the result of the first on, the
-% offset to the result of the second one. If the first one\,---\,the
-% width\,---\,is omitted, the current width will be used. If the second
-% one\,---\,the offset\,---\,is omitted and the width is the width of the
-% text area plus the margin note column, the offset will be set to
-% zero. If the second one is omitted and the width is not the width of the
-% text area plus the margin note column, a special kind of centering will
-% be used.
-% \end{description}
+% \cs{sls@split@at@iicolons}}
+% \changes{v3.17}{2015/02/25}{new: store the values}
+% \begin{description}
+% \item[\texttt{=\meta{special dimensional expression}:\meta{special
+% dimensional expression}}:] see \cs{sls@settowidthof} for information about
+% the syntax of \meta{special dimensional expression}. The width of the page
+% head or footer will be set to the result of the first on, the offset to
+% the result of the second one. If the first one\,---\,the width\,---\,is
+% omitted, the current width will be used. If the second one\,---\,the
+% offset\,---\,is omitted and the width is the width of the text area plus
+% the margin note column, the offset will be set to zero. If the second one
+% is omitted and the width is not the width of the text area plus the margin
+% note column, a special kind of centering will be used.
+% \end{description}
% These options may be used to set up the widths of head and foot.
% \begin{macrocode}
%<*options>
@@ -299,16 +230,15 @@
}
% \end{macrocode}
% \begin{macro}{\sls@split@at@iicolons}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{description}
-% \item[\texttt{\meta{balanced}:^^A
-% \meta{balanced}:^^A
-% \meta{balanced}\Macro{@nil}}:] first \meta{balanced} will be stored into
-% \Macro{reserved@a}, second into \Macro{reserved@b}, third will be eaten
-% and warn about if it is neither empty and nor a colon.
-% \end{description}
-% This little helper is used, e.g., by options \Option{headwidth} and
-% \Option{footwidth}.
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{description}
+% \item[\texttt{\meta{balanced}:\meta{balanced}:\meta{balanced}\cs{@nil}}:]
+% first \meta{balanced} will be stored into \cs{reserved@a}, second into
+% \cs{reserved@b}, third will be eaten and warn about if it is neither empty
+% and nor a colon.
+% \end{description}
+% This little helper is used, e.g., by options \opt{headwidth} and
+% \opt{footwidth}.
% \begin{macrocode}
\newcommand\sls@split@at@iicolons{}
\def\sls@split@at@iicolons#1:#2:#3:#4\@nil{%
@@ -328,17 +258,17 @@
\def\reserved@c{#3}%
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@split@at@iicolons
+% \end{macro}^^A \sls@split@at@iicolons
% \begin{macro}{\sls@set@hf@width}
% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{description}
-% \item[\Parameter{head} or \Parameter{foot}:] to complete the macro names
-% for page head or footer.
-% \item[\Parameter{special dimensional expression}:] the offset odd page
-% \item[\Parameter{special dimensional expression}:] the offset even page
-% \item[\Parameter{special dimensional expression}:] the width
-% \end{description}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{description}
+% \item[\marg{head or foot}:] to complete the macro names for page head or
+% footer, either \texttt{head} or \texttt{foot}.
+% \item[\marg{special dimensional expression}:] the offset odd page
+% \item[\marg{special dimensional expression}:] the offset even page
+% \item[\marg{special dimensional expression}:] the width
+% \end{description}
% This helper will generally set up width an offset of either head or footer.
% \begin{macrocode}
\newcommand*{\sls@set@hf@width}[4]{%
@@ -396,13 +326,9 @@
\fi
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@set@hf@width
-% \begin{macro}{\sls@headwidth}
-% \begin{macro}{\sls@oddheadshift}
-% \begin{macro}{\sls@evenheadshift}
-% \begin{macro}{\sls@footwidth}
-% \begin{macro}{\sls@oddfootshift}
-% \begin{macro}{\sls@evenfootshift}
+% \end{macro}^^A \sls@set@hf@width
+% \begin{macro}{\sls@headwidth,\sls@oddheadshift,\sls@evenheadshift,
+% \sls@footwidth,\sls@oddfootshift,\sls@evenfootshift}
% To store width and offset of page head an footer, we use macros. Those are
% also used by the options and therefore need to be initialised before option
% usage.
@@ -426,17 +352,10 @@
\newcommand*{\sls@oddfootshift}{0pt}
\newcommand*{\sls@evenfootshift}{0pt}
% \end{macrocode}
-% \end{macro}%^^A \sls@headwidth
-% \end{macro}%^^A \sls@oddheadshift
-% \end{macro}%^^A \sls@evenheadshift
-% \end{macro}%^^A \sls@footwidth
-% \end{macro}%^^A \sls@oddfootshift
-% \end{macro}%^^A \sls@evenfootshift
-%
-% \begin{macro}{\sls@settowidthof}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\sls@deftowidthof}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \end{macro}^^A \sls@headwidth … \sls@evenfootshift
+%
+% \begin{macro}{\sls@settowidthof,\sls@deftowidthof}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% the special dimensional expressions may be either one of the strings
% \texttt{paper}, \texttt{text}, \texttt{marginpar},
% \texttt{textwithmarginpar}, \texttt{head}, \texttt{foot},
@@ -513,62 +432,62 @@
}%
%</options>
% \end{macrocode}
-% \end{macro}%^^A \sls@deftowidthof
-% \end{macro}%^^A \sls@settowidthof
-% \end{option}%^^A footwidth
-% \end{option}%^^A footheight
+% \end{macro}^^A \sls@deftowidthof,\sls@settowidthof
+% \end{option}^^A footwidth
+% \end{option}^^A footheight
%
-% \begin{macro}{\setheadwidth}
-% \begin{macro}{\setfootwidth}
-% For compatibility with \Package{scrpage2}, map the commands to the options:
+% \begin{command}{\setheadwidth,\setfootwidth}
+% \changes{v3.36}{2022/02/09}{warning about deprecated command}
+% For compatibility with \pkg{scrpage2}, map the commands to the options:
% \begin{macrocode}
%<*body>
\newcommand*{\setheadwidth}[2][]{%
+ \PackageWarning{scrlayer-scrpage}{%
+ Command `\string\setheadwidth' is deprecated.\MessageBreak
+ I'm using \detokenize{\KOMAoptions{headwidth=#2:#1}} instead,\MessageBreak
+ and so should you do}%
\KOMAoptions{headwidth=#2:#1}%
}%
\newcommand*{\setfootwidth}[2][]{%
+ \PackageWarning{scrlayer-scrpage}{%
+ Command `\string\setfootwidth' is deprecated.\MessageBreak
+ I'm using \detokenize{\KOMAoptions{footwidth=#2:#1}} instead,\MessageBreak
+ and so should you do}%
\KOMAoptions{footwidth=#2:#1}%
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \setheadwidth
-% \end{macro}%^^A \setfootwidth
+% \end{command}^^A \setheadwidth,\setfootwidth
%
%
-% \section{Lines in Page Head and Footer}
+% \subsection{Lines in page head and footer}
%
-% The interface implements the options \Option{headtopline},
-% \Option{headsepline}, \Option{footsepline}, \Option{footbotline},
-% \Option{plainheadtopline}, \Option{plainheadsepline},
-% \Option{plainfootsepline}, \Option{plainfootbotline}, \Option{ilines},
-% \Option{clines}, and \Option{olines}, the commands \Macro{setheadtopline},
-% \Macro{setheadsepline}, \Macro{setfootsepline}, and \Macro{setfootbotline},
-% and the corresponding \KOMAScript{} font elements of package
-% \Package{scrpage2}. Some of the options are extended to understand
+% The interface implements the options \opt{headtopline}, \opt{headsepline},
+% \opt{footsepline}, \opt{footbotline}, \opt{plainheadtopline},
+% \opt{plainheadsepline}, \opt{plainfootsepline}, \opt{plainfootbotline},
+% \opt{ilines}, \opt{clines}, and \opt{olines}, the commands
+% \cs{setheadtopline}, \cs{setheadsepline}, \cs{setfootsepline}, and
+% \cs{setfootbotline}, and the corresponding \KOMAScript{} font elements of
+% package \pkg{scrpage2}. Some of the options are extended to understand
% values.
%
-% \begin{option}{headtopline}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
-% \begin{option}{headsepline}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
-% \begin{option}{footsepline}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
-% \begin{option}{footbotline}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
+% \begin{option}{headtopline,headsepline,footsepline,footbotline}
+% \changes{v3.17}{2015/02/25}{new: store the values}
% \begin{description}
% \item[{\texttt{=\meta{dimensional expression}:\meta{dimensional
% expression}}:}]
% \end{description}\noindent
% Define thickness and length of the a default separation line between:
% \begin{description}
-% \item[\Option{headtopline}:] the top margin of the page and the page head.
-% \item[\Option{headsepline}:] the page head and the text area.
-% \item[\Option{footsepline}:] the text area and the page footer.
-% \item[\Option{footbotline}:] the page footer and the bottom margin.
+% \item[\opt{headtopline}:] the top margin of the page and the page head.
+% \item[\opt{headsepline}:] the page head and the text area.
+% \item[\opt{footsepline}:] the text area and the page footer.
+% \item[\opt{footbotline}:] the page footer and the bottom margin.
% \end{description}
-% Both values may be omitted. In that case thickness would be 0.4\,pt, and
-% length would be the width of the page head or footer. If the second
-% argument, the length, has been omitted the \texttt{:} may also be omitted.
+% Both \meta{dimensional expression} values may be omitted. In that case
+% thickness would be 0.4\,pt, and length would be the width of the page head
+% or footer. If the second argument, the length, has been omitted the
+% \texttt{:} may also be omitted.
% \begin{macrocode}
%<*options>
\KOMA@key{headtopline}[:]{%
@@ -585,16 +504,15 @@
}
% \end{macrocode}
% \begin{macro}{\sls@set@values}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{description}
-% \item[\OParameter{option name}:] either empty or the name of the option
-% that sets the line,
-% \item[\Parameter{head or foot}:] either \texttt{head} or \texttt{foot},
-% \item[\Parameter{above or below}:] either \texttt{above} or
-% \texttt{below},
-% \item[\Parameter{dimension expression}\texttt{:}\Parameter{dimension
-% expression}] length an thickness of a line (both are optional).
-% \end{description}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{description}
+% \item[\oarg{option name}:] either empty or the name of the option that sets
+% the line,
+% \item[\marg{head or foot}:] either \texttt{head} or \texttt{foot},
+% \item[\marg{above or below}:] either \texttt{above} or \texttt{below},
+% \item[\mmarg{dimension expression}{dimension expression}:] length an
+% thickness of a line (both are optional).
+% \end{description}
% Helper macros for the options to set two macros by two values of one
% option. The two values are separated by a colon.
% \begin{macrocode}
@@ -656,18 +574,17 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@set@values
+% \end{macro}^^A \sls@set@values
% \begin{macro}{\sls@split@at@colon}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{description}
-% \item[\texttt{\meta{balanced}:^^A
-% \meta{balanced}:^^A
-% \meta{balanced}\Macro{@nil}}:] first \meta{balanced} will be stored into
-% \Macro{reserved@a}, second into \Macro{reserved@b}, third will be eaten
-% and warn about if it is neither empty and nor a colon.
-% \end{description}
-% This little helper is used, e.g., by options \Option{headwidth} and
-% \Option{footwidth}.
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{description}
+% \item[\texttt{\meta{balanced}:\meta{balanced}:\meta{balanced}\cs{@nil}}:]
+% first \meta{balanced} will be stored into \cs{reserved@a}, second into
+% \cs{reserved@b}, third will be eaten and warn about if it is neither empty
+% and nor a colon.
+% \end{description}
+% This little helper is used, e.g., by options \opt{headwidth} and
+% \opt{footwidth}.
% \begin{macrocode}
\newcommand*{\sls@split@at@colon}{}
\def\sls@split@at@colon#1:#2:#3\@nil{%
@@ -684,15 +601,11 @@
\def\reserved@b{#2}%
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@split@at@colon
-% \begin{macro}{\sls@headabove@linelength}
-% \begin{macro}{\sls@headabove@linethickness}
-% \begin{macro}{\sls@headbelow@linelength}
-% \begin{macro}{\sls@headbelow@linethickness}
-% \begin{macro}{\sls@footabove@linelength}
-% \begin{macro}{\sls@footabove@linethickness}
-% \begin{macro}{\sls@footbelow@linelength}
-% \begin{macro}{\sls@footbelow@linethickness}
+% \end{macro}^^A \sls@split@at@colon
+% \begin{macro}{\sls@headabove@linelength,\sls@headabove@linethickness,
+% \sls@headbelow@linelength,\sls@headbelow@linethickness,
+% \sls@footabove@linelength,\sls@footabove@linethickness,
+% \sls@footbelow@linelength,\sls@footbelow@linethickness}
% To store length and thickness of the lines at the page head an footer, we
% use macros. Those are also used by the options and therefore need to be
% initialised before option usage.
@@ -723,27 +636,19 @@
}
%</options>
% \end{macrocode}
-% \end{macro}%^^A \sls@footbelow@linethickness
-% \end{macro}%^^A \sls@footbelow@linelength
-% \end{macro}%^^A \sls@footabove@linethickness
-% \end{macro}%^^A \sls@footabove@linelength
-% \end{macro}%^^A \sls@headbelow@linethickness
-% \end{macro}%^^A \sls@headbelow@linelength
-% \end{macro}%^^A \sls@headabove@linethickness
-% \end{macro}%^^A \sls@headabove@linelength
-% \end{option}%^^A footbotline
-% \end{option}%^^A footsepline
-% \end{option}%^^A headsepline
-% \end{option}%^^A headtopline
-%
-% \begin{option}{plainheadtopline}
-% \begin{macro}{\ifsls@plain@head@above@line}
-% \begin{option}{plainheadsepline}
-% \begin{macro}{\ifsls@plain@head@below@line}
-% \begin{option}{plainfootsepline}
-% \begin{macro}{\ifsls@plain@foot@above@line}
-% \begin{option}{plainfootbotline}
-% \begin{macro}{\ifsls@plain@foot@below@line}
+% \end{macro}^^A \sls@headabove@linelength … \sls@footbelow@linethickness
+% \end{option}^^A headtopline … footbotline
+%
+% \begin{option}{plainheadtopline,plainheadsepline,
+% plainfootsepline,plainfootbotline}
+% \begin{macro}{\ifsls@plain@head@above@line,\sls@plain@head@above@linetrue,
+% \sls@plain@head@above@linefalse,
+% \ifsls@plain@head@below@line,\sls@plain@head@below@linetrue,
+% \sls@plain@head@below@linefalse,
+% \ifsls@plain@foot@above@line,\sls@plain@foot@above@linetrue,
+% \sls@plain@foot@above@linefalse,
+% \ifsls@plain@foot@below@line,\sls@plain@foot@below@linetrue,
+% \sls@plain@foot@below@linefalse}
% \begin{description}
% \item[\texttt{=\meta{switch value}}:]
% \end{description}\noindent
@@ -756,24 +661,14 @@
\KOMA@ifkey{plainfootbotline}{sls@plain@foot@below@line}%
%</options>
% \end{macrocode}
-% \end{macro}%^^A \ifsls@plain@foot@below@line
-% \end{option}%^^A plainfootbotline
-% \end{macro}%^^A \ifsls@plain@foot@above@line
-% \end{option}%^^A plainfootsepline
-% \end{macro}%^^A \ifsls@plain@head@below@line
-% \end{option}%^^A plainheadsepline
-% \end{macro}%^^A \ifsls@plain@head@above@line
-% \end{option}%^^A plainheadtopline
-%
-% \begin{option}{ilines}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
-% \begin{option}{clines}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
-% \begin{option}{olines}
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
+% \end{macro}^^A \ifsls@plain@foot@below@line … \sls@plain@foot@below@linefalse
+% \end{option}^^A plainheadtopline … plainfootbotline
+%
+% \begin{option}{ilines,clines,olines}
+% \changes{v3.17}{2015/02/25}{storing values}
% \begin{macro}{\sls@hfline@adjust}
% Maybe it would be more useful to be able to adjust each line on its own or
-% at most to define an offset. But \Package{scrpage2} supports only these
+% at most to define an offset. But \pkg{scrpage2} supports only these
% options. At least we can set the options inside a layer or page style. This
% may help.
% \begin{macrocode}
@@ -819,24 +714,20 @@
\KOMA@kav@add{.scrlayer-scrpage.sty}{ilines}{}
%</options>
% \end{macrocode}
-% \end{macro}%^^A \sls@hfline@adjust
-% \end{option}%^^A olines
-% \end{option}%^^A clines
-% \end{option}%^^A ilines
-%
-% \begin{macro}{\setheadtopline}
-% \begin{macro}{\setheadsepline}
-% \begin{macro}{\setfootsepline}
-% \begin{macro}{\setfootbotline}
-% \begin{description}
-% \item[\OParameter{extended dimensional expression}:] the length of the
-% line; if omitted the length will use the width of the page head or
-% footer while printing the line.
-% \item[\Parameter{dimensional expression}:] the thickness of the line.
-% \item[\OParameter{code}:] the font selection code for the line. You may
-% use it for any kind of operation, that doesn't change the position,
-% width, height, or depth, e.g., to change the colour of the line.
-% \end{description}
+% \end{macro}^^A \sls@hfline@adjust
+% \end{option}^^A ilines … olines
+%
+% \begin{command}{\setheadtopline,\setheadsepline,
+% \setfootsepline,\setfootbotline}
+% \begin{description}
+% \item[\oarg{extended dimensional expression}:] the length of the line; if
+% omitted the length will use the width of the page head or footer while
+% printing the line.
+% \item[\marg{dimensional expression}:] the thickness of the line.
+% \item[\oarg{code}:] the font selection code for the line. You may use it for
+% any kind of operation, that doesn't change the position, width, height, or
+% depth, e.g., to change the colour of the line.
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\setheadtopline}{\sls@setline{head}{above}}%
@@ -846,17 +737,17 @@
% \end{macrocode}
% \begin{macro}{\sls@setline}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\sls@@setline}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{macro}{\sls@@@setline}
-% \changes{v3.17}[2015/02/27]{internal use of the corresponding options}%^^A
+% \changes{v3.17}[2015/02/27]{internal use of the corresponding options}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \cs{kernel@ifnextchar}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{macro}{\sls@@@@setline}
-% \changes{v3.18}{2015/06/17}{explicit reuse of the current length}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.18}{2015/06/17}{explicit reuse of the current length}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Helper to set up the line attributes processing the parameters of the
% commands above.
% \begin{macrocode}
@@ -927,15 +818,12 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@setline
-% \end{macro}%^^A \sls@@setline
-% \end{macro}%^^A \sls@@@setline
-% \end{macro}%^^A \sls@@@@setline
-% \begin{KOMAfont}{headtopline}
-% \begin{KOMAfont}{headsepline}
-% \begin{KOMAfont}{footsepline}
-% \begin{KOMAfont}{footbotline}
-% These are the font elements used in \Macro{sls@hf@rule} to set the rules
+% \end{macro}^^A \sls@setline
+% \end{macro}^^A \sls@@setline
+% \end{macro}^^A \sls@@@setline
+% \end{macro}^^A \sls@@@@setline
+% \begin{fontelement}{headtopline,headsepline,footsepline,footbotline}
+% These are the font elements used in \cs{sls@hf@rule} to set the rules
% with, i.e., another colour. Note, that those may already be defined and
% become only part of the interface if they are not.
% \begin{macrocode}
@@ -953,23 +841,15 @@
}{}
%</body>
% \end{macrocode}
-% \end{KOMAfont}%^^A footbotline
-% \end{KOMAfont}%^^A footsepline
-% \end{KOMAfont}%^^A headsepline
-% \end{KOMAfont}%^^A headtopline
-% \end{macro}%^^A \setfootbotline
-% \end{macro}%^^A \setfootsepline
-% \end{macro}%^^A \setheadsepline
-% \end{macro}%^^A \setheadtopline
-%
-% \begin{length}{\headheight}
-% \changes{v3.24}{2017/05/22}{warning depends on option
-% \texttt{singlespacing}}%^^A
-% Some classes set \Length{headheight} to a very, very small value. We'll
-% warn about that.
-% \begin{length}{\footheight}
-% \changes{v3.24}{2017/05/23}{also warn for low \cs{footheight}}%^^A
-% If the \Length{headheight} is OK, we also test for \Length{footheight}.
+% \end{fontelement}^^A headtopline … footbotline
+% \end{command}^^A \setheadtopline … \setfootbotline
+%
+% \begin{length}{\headheight,\footheight}
+% \changes{v3.24}{2017/05/22}{warning depends on option \opt{singlespacing}}
+% Some classes set \len{headheight} to a very, very small value. We'll
+% warn about that.
+% \changes{v3.24}{2017/05/23}{also warn for low \cs{footheight}}
+% If the \len{headheight} is OK, we also test for \len{footheight}.
% \begin{macrocode}
%<*body>
\AtBeginDocument{%
@@ -1033,40 +913,40 @@
}
%</body>
% \end{macrocode}
-% \end{length}%^^A \footheight
-% \end{length}%^^A \headheight
+% \end{length}^^A \headheight,\footheight
%
%
-% \section{Usual \LaTeX{} Kernel Commands}
+% \subsection{Usual \LaTeX{} kernel commands}
%
-% \Package{scrlayer-scrpage} some usual \LaTeX{} kernel commands, that should
-% really behave like the original \LaTeX{} kernel commands do. But some
+% \pkg*{scrlayer-scrpage} uses some very usual \LaTeX{} kernel commands, that
+% should really behave like the original \LaTeX{} kernel commands do. But some
% packages redefine them without restoring them in the output routine before
% the page head and foot is build. Such a redefinition could break
-% \Package{scrlayer-scrpage} or even provoke errors. Here we try to make sure,
-% that \Package{scrlayer-scrpage} uses the correct definitions. Note: This
-% should not be needed, if other packages would be more careful.
-%
-% \begin{macro}{\LaTeXcentering}
-% \changes{v3.27}{2019/04/05}{added}%^^A
-% \begin{macro}{\raggedright}
-% \changes{v3.27}{2019/04/05}{added}%^^A
-% \begin{macro}{\raggedleft}
-% \changes{v3.27}{2019/04/05}{added}%^^A
-% \Package{scrlayer-scrpage} needs \cs{centering} to center, \cs{raggedright}
+% \pkg*{scrlayer-scrpage} or even provoke errors. Here we try to make sure,
+% that \pkg*{scrlayer-scrpage} uses the correct definitions. Note: This should
+% not be needed, if other packages would be more careful.
+%
+% \begin{command}{\LaTeXcentering,\LaTeXraggedright,\LaTeXraggedleft}
+% \changes{v3.27}{2019/04/05}{added}
+% \pkg*{scrlayer-scrpage} needs \cs{centering} to center, \cs{raggedright}
% to left align and \cs{raggedleft} to right align the three elements of
-% three-part header and footer. \Package{ragged2e} optionally redefines
-% them. This is not perfect but does not break \Package{scrlayer-scrpage}
-% completely. But \Package{tabu} also redefines them an that breaks
-% \Package{scrlayer-scrpage} in a way, that even error messages can occur. So
-% from version 3.27 \Package{scrlayer-scrpage} does not longer use
-% \cs{centering}, \cs{raggedright} or \cs{raggedleft} but \cs{LaTeXcentering},
-% \cs{LaTeXraggedright} and \cs{LaTeXraggedleft}. With \Package{ragged2e} and
-% its option \texttt{newcommands}/\texttt{NewCommands} this would be already
-% defined and contain the original definition. On all other circumstances the
-% commands have to be defined. But these commands should not be defined as
-% part of the interface or removing the interface could break other packages
-% like \Package{ragged2e}.
+% three-part header and footer. \pkg{ragged2e} optionally redefines them. This
+% is not perfect but does not break \pkg*{scrlayer-scrpage} completely. But
+% \pkg{tabu}\footnote{Note, package \pkg{tabu} is not officially maintained by
+% anyone for several years. Unofficially some members of The \LaTeX{} Team
+% fix some problems related to new \LaTeX{} kernel changes. But the package
+% is without support for all other problems, even if they are known for
+% years. But you have to decide yourself, whether it is a good idea to use
+% such packages.} also redefines them an that breaks \pkg*{scrlayer-scrpage}
+% in a way, that even error messages can occur. So from version~3.27
+% \pkg*{scrlayer-scrpage} does not longer use \cs{centering}, \cs{raggedright}
+% or \cs{raggedleft} but \cs{LaTeXcentering}, \cs{LaTeXraggedright} and
+% \cs{LaTeXraggedleft}. With \pkg{ragged2e} and its option
+% \opt{newcommands}/\opt{NewCommands} this would be already defined and
+% contain the original definition. On all other circumstances the commands
+% have to be defined. But these commands should not be defined as part of the
+% interface or removing the interface could break other packages like
+% \pkg{ragged2e}.
% \begin{macrocode}
%<*body>
\@ifundefined{LaTeXcentering}{\let\LaTeXcentering\centering}{}
@@ -1074,23 +954,21 @@
\@ifundefined{LaTeXraggedright}{\let\LaTeXraggedright\raggedright}{}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \LaTeXcentering … \LaTeXraggedright
+%
%
-% \section{Style of Running Heads}
+% \subsection{Style of running heads}
%
-% This implements not only options \Option{komastyle} and
-% \Option{standardstyle} of \Package{scrpage2}, but also activates the default
-% style at the end of the package and takes care for the correct overwrite
-% behaviour of option \Option{markcase}.
+% This implements not only options \opt{komastyle} and \opt{standardstyle} of
+% \pkg{scrpage2}, but also activates the default style at the end of the
+% package and takes care for the correct behave of option \opt{markcase}.
%
% \begin{option}{pagestyleset}
-% \begin{description}
-% \item[\texttt{=\meta{string}}:] a valid name of a predefined
-% style-set. Currently only \texttt{KOMA-Script} and \texttt{standard} are
-% supported. Maybe more will follow.
-% \end{description}
+% \begin{description}
+% \item[\texttt{=\meta{string}}:] a valid name of a predefined
+% style-set. Currently only \optvalue{KOMA-Script} and \optvalue{standard}
+% are supported. Maybe more will follow.
+% \end{description}
% Note, that the following automatic style activation must be before the
% first option usage:
% \begin{macrocode}
@@ -1100,7 +978,7 @@
}
% \end{macrocode}
% \begin{macro}{\sls@auto@pagestyleset}
-% \changes{v0.9}{2014/01/22}{new (internal) macro}%^^A
+% \changes{v0.9}{2014/01/22}{added}
% \begin{macrocode}
\newcommand*{\sls@auto@pagestyleset}{%
\scr@ifundefinedorrelax{KOMAClassName}{%
@@ -1116,8 +994,8 @@
}
%</init>
% \end{macrocode}
-% \end{macro}%^^A \sls@auto@pagestyleset
-% \changes{v3.17}{2015/02/25}{new: store the values}%^^A
+% \end{macro}^^A \sls@auto@pagestyleset
+% \changes{v3.17}{2015/02/25}{storing the values}
% \begin{macrocode}
%<*options>
\KOMA@key{pagestyleset}{%
@@ -1131,10 +1009,8 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\sls@ps@style@standard}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\sls@ps@style@KOMA-Script}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{macro}{\sls@ps@style@standard,\sls@ps@style@KOMA-Script}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% These are the predefined page style sets.
% \begin{macrocode}
\newcommand*{\sls@ps@style@standard}{%
@@ -1159,9 +1035,9 @@
\scr@ifundefinedorrelax{KOMAClassName}{}{%
\Ifstr{\KOMAClassName}{scrlttr2}{%
% \end{macrocode}
-% We are using \Class{scrlttr2}, so we have to initialise the page style
+% We are using \cls*{scrlttr2}, so we have to initialise the page style
% different:
-% \changes{v3.18}{2015/06/24}{missing \cs{lofoot} and \cs{rofoot} added}%^^A
+% \changes{v3.18}{2015/06/24}{missing \cs{lofoot} and \cs{rofoot} added}
% \begin{macrocode}
\clearpairofpagestyles
\lehead[\ifnum\@pageat=\z@\pagemark\fi]
@@ -1192,14 +1068,12 @@
}%
%</options>
% \end{macrocode}
-% \end{macro}%^^A \sls@ps@style@KOMA-Script
-% \end{macro}%^^A \sls@ps@style@standard
-% \end{option}%^^A pagestyleset
+% \end{macro}^^A \sls@ps@style@standard,\sls@ps@style@KOMA-Script
+% \end{option}^^A pagestyleset
%
-% \begin{option}{komastyle}
-% \begin{option}{standardstyle}
+% \begin{option}{komastyle,standardstyle}
% These options are deprecated, but defined for compatibility with
-% \Package{scrpage2}:
+% \pkg{scrpage2}:
% \begin{macrocode}
%<*options>
\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{komastyle}{%
@@ -1208,20 +1082,17 @@
pagestyleset=standard}
%</options>
% \end{macrocode}
-% \end{option}%^^A standardstyle
-% \end{option}%^^A komastyle
+% \end{option}^^A komastyle,standardstyle
%
%
-% \section{Extended Mark Mechanisms}
+% \subsection{Extended mark mechanisms}
%
-% Package options \Option{markuppercase}, \Option{markusedcase}, and
-% \Option{nouppercase} of package \Package{scrpage2} will be mapped to
-% \KOMAScript{} option \Option{markcase}.
+% Package options \opt{markuppercase}, \opt{markusedcase}, and
+% \opt{nouppercase} of package \pkg{scrpage2} are mapped to \KOMAScript{}
+% option \opt{markcase}.
%
-% \begin{option}{markuppercase}
-% \begin{option}{markusedcase}
-% \begin{option}{nouppercase}
-% For compatibility with \Package{scrpage2}.
+% \begin{option}{markuppercase,markusedcase,nouppercase}
+% For compatibility with \pkg{scrpage2}.
% \begin{macrocode}
%<*options>
\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{markuppercase}{markcase=upper}
@@ -1231,18 +1102,15 @@
}
%</options>
% \end{macrocode}
-% \end{option}%^^A nouppercase
-% \end{option}%^^A markusedcase
-% \end{option}%^^A markuppercase
+% \end{option}^^A markuppercase … nouppercase
%
%
-% \section{Expert Page Style Definition Interface}
+% \subsection{Expert page style definition interface}
%
-% This is the low level interface of \Package{scrpage2} with
-% \Macro{defpagestyle}, \Macro{newpagestyle}, \Macro{renewpagestyle}, and
-% \Macro{providepagestyle}. We will also define is. In difference to
-% \Package{scrpage2} layers are used. Following layers will be defined for
-% each page style:
+% This is the low level interface of \pkg{scrpage2} with \cs{defpagestyle},
+% \cs{newpagestyle}, \cs{renewpagestyle}, and \cs{providepagestyle}. We will
+% also define is. In difference to \pkg{scrpage2} layers are used. Following
+% layers will be defined for each page style:
% \begin{description}
% \item[\texttt{\meta{page style name}.head.above.line}] line above the head
% \item[\texttt{\meta{page style name}.head.odd}] odd page head (only twoside)
@@ -1261,23 +1129,24 @@
% \item[\texttt{\meta{page style name}.foot.below.line}] line below the footer
% (only oneside)
% \end{description}
-% Note: \Package{scrpage2} also provides starred versions of the page style
+% Note: \pkg{scrpage2} also provided star versions of the page style
% definition commands, doing the same like the starless versions. This has
-% been done for compatibility reasons with deprecated \Package{scrpage} and
-% may be removed some times. The layer interface doesn't support this.
-%
-%
-% \begin{macro}{\defpagestyle}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be defined (must
-% be fully expandable and expand to a string only).
-% \item[\Parameter{head/foot definition}:] will be used to define the
-% head (see \Macro{sls@defhead}).
-% \item[\Parameter{head/foot definition}:] will be used to define the
-% foot (see \Macro{sls@deffoot}).
-% \end{description}
-% See \Package{scrpage2} implementation.
+% been done for compatibility reasons with deprecated
+% \pkg[https://www.ctan.org/pkg/koma-script-obsolete]{scrpage} and has been
+% described as to be removed some times. The layer interface doesn't support
+% this any longer.
+%
+%
+% \begin{command}{\defpagestyle}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{description}
+% \item[\marg{string}:] the name of the page style to be defined (must be
+% fully expandable and expand to a string only).
+% \item[\marg{head/foot definition}:] will be used to define the head (see
+% \cs{sls@defhead}).
+% \item[\marg{head/foot definition}:] will be used to define the foot (see
+% \cs{sls@deffoot}).
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\defpagestyle}[3]{%
@@ -1291,31 +1160,27 @@
}%
}%
% \end{macrocode}
-% \begin{macro}{\sls@defhead}
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\sls@@defhead}
+% \begin{macro}{\sls@defhead,\sls@@defhead}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\sls@@@defhead}
-% \changes{v0.9}{2014/08/18}{fix names of layers \texttt{\dots head.odd} and
-% \texttt{\dots head.even}}%^^A
-% \begin{description}
-% \item[\MParameter{dimensional expression}{dimensional expression}:] length
-% and thickness of a line (ruler) above the page head. May be omitted and
-% if so the values from option \Option{headtopline} will be used.
-% \item[\Parameter{code}:] will be executed on even pages; used to define
-% the contents of layer \texttt{\meta{page style name}.head.even}.
-% \item[\Parameter{code}:] will be executed on odd pages within two-side
-% layout; used to define the contents of layer \texttt{\meta{page style
-% name}.head.odd}.
-% \item[\Parameter{code}:] will be executed on single-side pages; used to
-% define the contents of layer \texttt{\meta{page style
-% name}.head.oneside}.
-% \item[\MParameter{dimensional expression}{dimensional expression}:] length
-% and thickness of a line (ruler) below the page head. May be omitted and
-% if so the values from option \Option{headsepline} will be used.
-% \end{description}
+% \changes{v0.9}{2014/08/18}{fixed names of layers \texttt{\dots head.odd} and
+% \texttt{\dots head.even}}
+% \begin{description}
+% \item[\pparg{dimensional expression}{dimensional expression}:] length and
+% thickness of a line (ruler) above the page head. May be omitted and if so
+% the values from option \opt{headtopline} will be used.
+% \item[\marg{code}:] will be executed on even pages; used to define the
+% contents of layer \texttt{\meta{page style name}.head.even}.
+% \item[\marg{code}:] will be executed on odd pages within two-side layout;
+% used to define the contents of layer \texttt{\meta{page style
+% name}.head.odd}.
+% \item[\marg{code}:] will be executed on single-side pages; used to define
+% the contents of layer \texttt{\meta{page style name}.head.oneside}.
+% \item[\pparg{dimensional expression}{dimensional expression}:] length and
+% thickness of a line (ruler) below the page head. May be omitted and if so
+% the values from option \opt{headsepline} will be used.
+% \end{description}
% Helper to define the head layers.
% \begin{macrocode}
\newcommand*\sls@defhead[1]{%
@@ -1364,7 +1229,7 @@
% \end{macrocode}
% The odd side, even side and one side:
% \changes{v3.13b}{2014/10/16}{workaround: additional group added to avoid
-% pdf\TeX{} color stack warnings}%^^A
+% pdf\TeX{} color stack warnings}
% \begin{macrocode}
\DeclareLayer[%
background,evenpage,twoside,%
@@ -1395,31 +1260,27 @@
]{#1.head.oneside}%
}%
% \end{macrocode}
-% \begin{macro}{\sls@deffoot}
+% \begin{macro}{\sls@deffoot,\sls@@deffoot}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\sls@@deffoot}
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\sls@@@deffoot}
-% \changes{v0.9}{2014/08/18}{fix names of layers \texttt{\dots foot.odd} and
-% \texttt{\dots foot.even}}%^^A
-% \begin{description}
-% \item[\MParameter{dimensional expression}{dimensional expression}:] length
-% and thickness of a line (ruler) above the page footer. May be omitted
-% and if so the values from option \Option{footsepline} will be used.
-% \item[\Parameter{code}:] will be executed on even pages; used to define
-% the contents of layer \texttt{\meta{page style name}.foot.even}.
-% \item[\Parameter{code}:] will be executed on odd pages within two-side
-% layout; used to define the contents of layer \texttt{\meta{page style
-% name}.foot.odd}.
-% \item[\Parameter{code}:] will be executed on single-side pages; used to
-% define the contents of layer \texttt{\meta{page style
-% name}.foot.oneside}.
-% \item[\MParameter{dimensional expression}{dimensional expression}:] length
-% and thickness of a line (ruler) below the page footer. May be omitted
-% and if so the values from option \Option{footbotline} will be used.
-% \end{description}
+% \changes{v0.9}{2014/08/18}{fixed names of layers \texttt{\dots foot.odd} and
+% \texttt{\dots foot.even}}
+% \begin{description}
+% \item[\pparg{dimensional expression}{dimensional expression}:] length and
+% thickness of a line (ruler) above the page footer. May be omitted and if
+% so the values from option \opt{footsepline} will be used.
+% \item[\marg{code}:] will be executed on even pages; used to define the
+% contents of layer \texttt{\meta{page style name}.foot.even}.
+% \item[\marg{code}:] will be executed on odd pages within two-side layout;
+% used to define the contents of layer \texttt{\meta{page style
+% name}.foot.odd}.
+% \item[\marg{code}:] will be executed on single-side pages; used to define
+% the contents of layer \texttt{\meta{page style name}.foot.oneside}.
+% \item[\pparg{dimensional expression}{dimensional expression}:] length and
+% thickness of a line (ruler) below the page footer. May be omitted and if
+% so the values from option \opt{footbotline} will be used.
+% \end{description}
% Helper to define the foot layers.
% \begin{macrocode}
\newcommand*\sls@deffoot[1]{%
@@ -1509,10 +1370,10 @@
% \begin{macro}{\sls@secure@box}
% \changes{v3.34}{2021/05/16}{\LaTeX{} team requested for additional \cs{par}}
% \begin{description}
-% \item[\Parameter{length}:] a \LaTeX{} length, that gives the maximum
+% \item[\marg{length}:] a \LaTeX{} length, that gives the maximum
% height + depth of the \meta{content}. It has to be either
% \cs{headheight} or \cs{footheight}.
-% \item[\Parameter{content}:] what should be output (inside the box).
+% \item[\marg{content}:] what should be output (inside the box).
% \end{description}
% Note, that several length may be changed, to fit.
% \begin{macrocode}
@@ -1586,9 +1447,9 @@
\KOMA@ifkey{hmode}{sls@leavevmode}
%</options>
% \end{macrocode}
-% \end{option}%^^A hmode
+% \end{option}^^A hmode
% \begin{option}{autoenlargeheadfoot}
-% \changes{v3.25}{2018/01/14}{new option}%^^A
+% \changes{v3.25}{2018/01/14}{added}
% Automaticly enlarge vertical size of head or foot if the contents is to
% large. This is the default.
% \begin{macrocode}
@@ -1597,22 +1458,19 @@
\KOMAExecuteOptions{autoenlargeheadfoot=true}
%</options>
% \end{macrocode}
-% \end{option}%^^A autoenlargeheadfoot
-% \end{macro}%^^A \sls@secure@box
-% \end{macro}%^^A \sls@@@deffoot
-% \end{macro}%^^A \sls@@deffoot
-% \end{macro}%^^A \sls@deffoot
-% \end{macro}%^^A \sls@@@defhead
-% \end{macro}%^^A \sls@@defhead
-% \end{macro}%^^A \sls@defhead
-% \begin{macro}{\headfont}
+% \end{option}^^A autoenlargeheadfoot
+% \end{macro}^^A \sls@secure@box
+% \end{macro}^^A \sls@@@deffoot
+% \end{macro}^^A \sls@deffoot,\sls@@deffoot
+% \end{macro}^^A \sls@@@defhead
+% \end{macro}^^A \sls@defhead,\sls@@defhead
+% \begin{command}{\headfont}
% The low level page head font command. It is deprecated to redefine or use
% this and it may already be defined.
% \begin{macro}{\scr@fnt@pagehead}
-% \changes{v3.25}{2018/02/05}{don't use \cs{newkomafont} to avoid
-% warning}%^^A
+% \changes{v3.25}{2018/02/05}{don't use \cs{newkomafont} to avoid warning}
% \begin{macro}{\scr@fnt@wrn@pagehead}
-% \changes{v0.9}{2014/01/13}{warning always deactivated}%^^A
+% \changes{v0.9}{2014/01/13}{warning always deactivated}
% \begin{macro}{\scr@fnt@pageheadfoot}
% \begin{macrocode}
%<*body>
@@ -1642,12 +1500,12 @@
\let\scr@fnt@wrn@pagehead\relax
}
% \end{macrocode}
-% \end{macro}%^^A \scr@fnt@pageheadfoot
-% \end{macro}%^^A \scr@fnt@wrn@pagehead
-% \end{macro}%^^A \scr@fnt@pagehead
-% \end{macro}%^^A \headfont
+% \end{macro}^^A \scr@fnt@pageheadfoot
+% \end{macro}^^A \scr@fnt@wrn@pagehead
+% \end{macro}^^A \scr@fnt@pagehead
+% \end{command}^^A \headfont
%
-% \begin{macro}{\footfont}
+% \begin{command}{\footfont}
% The low level page footer font command. It is deprecated to redefine or use
% this and it may already be defined.
% \begin{macro}{\scr@fnt@pagefoot}
@@ -1667,17 +1525,17 @@
\let\scr@fnt@wrn@pagefoot\relax
}
% \end{macrocode}
-% \end{macro}%^^A \scr@fnt@wrn@pagefoot
-% \end{macro}%^^A \scr@fnt@pagefoot
-% \end{macro}%^^A \footfont
+% \end{macro}^^A \scr@fnt@wrn@pagefoot
+% \end{macro}^^A \scr@fnt@pagefoot
+% \end{command}^^A \footfont
%
% \begin{macro}{\sls@hf@rule}
% \changes{v3.34}{2021/05/16}{\LaTeX{} team requested for additional \cs{par}}
% \begin{description}
-% \item[\Parameter{rule name}:] one of \texttt{headtop}, \texttt{headsep},
+% \item[\marg{rule name}:] one of \texttt{headtop}, \texttt{headsep},
% \texttt{footsep}, or \texttt{footbot}
-% \item[\Parameter{dimensional expression}:] the line length (width)
-% \item[\Parameter{dimensional expression}:] the line thickness (height)
+% \item[\marg{dimensional expression}:] the line length (width)
+% \item[\marg{dimensional expression}:] the line thickness (height)
% \end{description}
% Helper to draw the line.
% \begin{macrocode}
@@ -1707,9 +1565,8 @@
\endgroup
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@hf@rule
-% \begin{macro}{\sls@topmargin}
-% \begin{macro}{\sls@leftmargin}
+% \end{macro}^^A \sls@hf@rule
+% \begin{macro}{\sls@topmargin,\sls@leftmargin}
% Two simple helper macros:
% \begin{macrocode}
\newcommand*{\sls@topmargin}{\dimexpr\topmargin+1in\relax}%
@@ -1728,17 +1585,15 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \sls@leftmargin
-% \end{macro}%^^A \sls@topmargin
-% \end{macro}%^^A \defpagestyle
+% \end{macro}^^A \sls@topmargin … \sls@leftmargin
+% \end{command}^^A \defpagestyle
%
-% \begin{macro}{\newpagestyle}
-% \changes{v3.32}{2020/09/11}{test for \textsf{titlesec}}
-% For the parameters see \Macro{defpagestyle}.
-% Define the pagestyle only, if not already defined. Unfortunately
-% \textsf{titlesec} also defines this command. So new definition will
-% fail. \textsf{titlesec} uses \cs{providecommand} so if the order would be
-% changed, everything would be OK.
+% \begin{command}{\newpagestyle}
+% \changes{v3.32}{2020/09/11}{test for \pkg{titlesec}}
+% For the parameters see \cs{defpagestyle}. Define the pagestyle only, if not
+% already defined. Unfortunately \pkg{titlesec} also defines this command. So
+% new definition will fail. \textsf{titlesec} uses \cs{providecommand} so if
+% the order would be changed, everything would be OK.
% \begin{macrocode}
%<*body>
\@ifpackageloaded{titlesec}{%
@@ -1773,15 +1628,14 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \newpagestyle
+% \end{command}^^A \newpagestyle
%
-% \begin{macro}{\renewpagestyle}
+% \begin{command}{\renewpagestyle}
% \changes{v3.32}{2020/09/11}{test for \textsf{titlesec}}
-% For the parameters see \Macro{defpagestyle}.
-% Define the pagestyle only, if not already defined. Unfortunately
-% \textsf{titlesec} also defines this command. So new definition will
-% fail. \textsf{titlesec} uses \cs{providecommand} so if the order would be
-% changed, everything would be OK.
+% For the parameters see \cs{defpagestyle}. Define the pagestyle only, if not
+% already defined. Unfortunately \textsf{titlesec} also defines this
+% command. So new definition will fail. \textsf{titlesec} uses
+% \cs{providecommand} so if the order would be changed, everything would be OK.
% \begin{macrocode}
%<*body>
\@ifpackageloaded{titlesec}{%
@@ -1818,11 +1672,10 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \renewpagestyle
+% \end{command}^^A \renewpagestyle
%
-% \begin{macro}{\providepagestyle}
-% For the parameters see \Macro{defpagestyle}.
-% Define only, if not already defined:
+% \begin{command}{\providepagestyle}
+% For the parameters see \cs{defpagestyle}. Define only, if not already defined:
% \begin{macrocode}
%<*body>
\newcommand*\providepagestyle[3]{%
@@ -1839,50 +1692,42 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \providepagestyle
-%
-%
-% \section{User Page Style Definition Interface}
-%
-% This is the mid-level interface of \Package{scrpage2} with
-% \Macro{deftripstyle}. As in \Package{scrpage2} we simply use the expert page
-% style definition interface to define the new user interface commands. But
-% here the useless starred versions will not longer be supported. So users of
-% them have to remove the star (nothing else).
-%
-% \begin{macro}{\deftriplepagestyle}
-% \begin{macro}{\newtriplepagestyle}
-% \begin{macro}{\renewtriplepagestyle}
-% \begin{macro}{\providetriplepagestyle}
-% \begin{macro}{\deftripstyle}
-% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be defined (must
-% be fully expandable and expand to a string only).
-% \item[\OParameter{dimensional expression}:] thickness of a horizontal line
-% above the page head and below the page foot (default: 0\,pt).
-% \item[\OParameter{dimensional expression}:] thickness of a horizontal line
-% below the page head and above the page foot (default: 0\,pt).
-% \item[\Parameter{code}:] will be expanded left aligned at head of odd
-% pages (with one-side layout all pages are odd) and right aligned at head
-% of even pages.
-% \item[\Parameter{code}:] will be expanded centered at head of odd
-% and even pages.
-% \item[\Parameter{code}:] will be expanded right aligned at head of odd
-% pages (with one-side layout all pages are odd) and left aligned at head
-% of even pages.
-% \item[\Parameter{code}:] will be expanded left aligned at footer of odd
-% pages (with one-side layout all pages are odd) and right aligned at
-% footer of even pages.
-% \item[\Parameter{code}:] will be expanded centered at footer of odd
-% and even pages.
-% \item[\Parameter{code}:] will be expanded right aligned at footer of odd
-% pages (with one-side layout all pages are odd) and left aligned at
-% footer of even pages.
-% \end{description}
-% See \Package{scrpage2}, but:
-% While the starred version of \Macro{deftripstyle} is deprecated for several
-% years and hasn't been described at the manual, it will not longer be
-% defined. Additional commands have been added.
+% \end{command}^^A \providepagestyle
+%
+%
+% \subsection{User page style definition interface}
+%
+% This is the mid-level interface of \pkg{scrpage2} with \cs{deftripstyle}. As
+% in \pkg{scrpage2} we simply use the expert page style definition interface
+% to define the new user interface commands. But here the useless starred
+% versions will not longer be supported. So users of them have to remove the
+% star (nothing else).
+%
+% \begin{command}{\deftriplepagestyle,\newtriplepagestyle,
+% \renewtriplepagestyle,\providetriplepagestyle}
+% \begin{description}
+% \item[\marg{string}:] the name of the page style to be defined (must be
+% fully expandable and expand to a string only).
+% \item[\oarg{dimensional expression}:] thickness of a horizontal line above
+% the page head and below the page foot (default: 0\,pt).
+% \item[\oarg{dimensional expression}:] thickness of a horizontal line below
+% the page head and above the page foot (default: 0\,pt).
+% \item[\marg{code}:] will be expanded left aligned at head of odd pages (with
+% one-side layout all pages are odd) and right aligned at head of even
+% pages.
+% \item[\marg{code}:] will be expanded centered at head of odd and even pages.
+% \item[\marg{code}:] will be expanded right aligned at head of odd pages
+% (with one-side layout all pages are odd) and left aligned at head of even
+% pages.
+% \item[\marg{code}:] will be expanded left aligned at footer of odd pages
+% (with one-side layout all pages are odd) and right aligned at footer of
+% even pages.
+% \item[\marg{code}:] will be expanded centered at footer of odd and even
+% pages.
+% \item[\marg{code}:] will be expanded right aligned at footer of odd pages
+% (with one-side layout all pages are odd) and left aligned at footer of
+% even pages.
+% \end{description}
% \begin{macrocode}
%<*body>
\newcommand*{\deftriplepagestyle}[1]{%
@@ -1902,16 +1747,13 @@
\scrlayer@triplestyle{#1}%
}%
% \end{macrocode}
-% \begin{macro}{\scrlayer@triplestyle}
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\scrlayer@@triplestyle}
+% \begin{macro}{\scrlayer@triplestyle,\scrlayer@@triplestyle}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\scrlayer@@@triplestyle}
% Helpers, that do the real work. Parameters are same, but \cs{reserved@a} has
-% to be one of \Macro{defpagestyle}, \Macro{newpagestyle},
-% \Macro{renewpagestyle}, or \Macro{providepagestyle}.
+% to be one of \cs{defpagestyle}, \cs{newpagestyle},
+% \cs{renewpagestyle}, or \cs{providepagestyle}.
% \begin{macrocode}
\newcommand*{\scrlayer@triplestyle}[1]{%
\kernel@ifnextchar[%]
@@ -1961,9 +1803,14 @@
}%
}%
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@@@triplestyle
-% \end{macro}%^^A \scrlayer@@triplestyle
-% \end{macro}%^^A \scrlayer@triplestyle
+% \end{macro}^^A \scrlayer@@@triplestyle
+% \end{macro}^^A \scrlayer@triplestyle,\scrlayer@@triplestyle
+% \begin{command}{deftripstyle}
+% Command \cs{deftripstyle} has been defined for compatibility with
+% \pkg{scrpage2} only. It is deprecated now.
+% The starred version \cs{deftripstyle*} is deprecated for several
+% years and hasn't been described at the manual, it will not longer be
+% defined.
% \begin{macrocode}
\newcommand*{\deftripstyle}{%
\PackageWarning{scrlayer-scrpage}{%
@@ -1976,46 +1823,40 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \deftripstyle
-% \end{macro}%^^A \providetriplepagestyle
-% \end{macro}%^^A \renewtriplepagestyle
-% \end{macro}%^^A \newtriplepagestyle
-% \end{macro}%^^A \deftriplepagestyle
-%
-%
-% \section{Pre-defined Page Styles Interface}
-%
-% This is the high-level interface of \Package{scrpage2} with the page style
-% \Pagestyle{scrheadings}, \Pagestyle{scrplain}, and
-% \Pagestyle{useheadings}. Those will work as expected but will also be
-% extended to support definition of additional styles using the same
-% interface.
-%
-% \begin{macro}{\defpairofpagestyles}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{description}
-% \item[\OParameter{string}:] name of a parent page style, that will be used
-% to initialise the new page style (must be fully expandable and expand to
-% the name of a page style).
-% \item[\Parameter{string}:] name the page style to be defined (must be
-% fully expandable and expand to the name of a page style).
-% \item[\Parameter{code}:] several commands of \Macro{ihead}, \Macro{chead},
-% \Macro{ohead}, \Macro{lehead}, \Macro{lohead}, \Macro{cohead},
-% \Macro{rehead}, \Macro{cehead}, \Macro{rohead}, \Macro{ifoot},
-% \Macro{cfoot}, \Macro{ofoot}, \Macro{lefoot}, \Macro{cefoot},
-% \Macro{lofoot}, \Macro{refoot}, \Macro{cofoot}, \Macro{rofoot},
-% \Macro{clearscrheadfoot}, \Macro{clearscrheadings},
-% \Macro{clearscrplain}.
-% \end{description}
-% Two page styles will be defined using \Macro{defpagestyle}, page style named
+% \end{command}^^A \deftripstyle
+% \end{command}^^A \deftriplepagestyle … \providetriplepagestyle
+%
+%
+% \subsection{Pre-defined page styles interface}
+%
+% This is the high-level interface of \pkg{scrpage2} with the page style
+% \pstyle{scrheadings}, \pstyle{scrplain}, and \pstyle{useheadings}. Those
+% will work as expected but will also be extended to support definition of
+% additional styles using the same interface.
+%
+% \begin{command}{\defpairofpagestyles}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{description}
+% \item[\oarg{string}:] name of a parent page style, that will be used to
+% initialise the new page style (must be fully expandable and expand to the
+% name of a page style).
+% \item[\marg{string}:] name the page style to be defined (must be fully
+% expandable and expand to the name of a page style).
+% \item[\marg{code}:] several commands of \cs{ihead}, \cs{chead}, \cs{ohead},
+% \cs{lehead}, \cs{lohead}, \cs{cohead}, \cs{rehead}, \cs{cehead},
+% \cs{rohead}, \cs{ifoot}, \cs{cfoot}, \cs{ofoot}, \cs{lefoot}, \cs{cefoot},
+% \cs{lofoot}, \cs{refoot}, \cs{cofoot}, \cs{rofoot}, \cs{clearscrheadfoot},
+% \cs{clearscrheadings}, \cs{clearscrplain}.
+% \end{description}
+% Two page styles will be defined using \cs{defpagestyle}, page style named
% with the second argument and page style with the same name but an additional
-% prefix ``\texttt{plain.}''. This will be activated automatically to be the
+% prefix ``\pstyle{plain.}''. This will be activated automatically to be the
% plain page style when the first page style will be used. If first argument
% is used this pair of page styles will be used to initialise the head and
% footer of the new. All the other commands are used to define the initial
% fields. Note, if one of those page styles is active, all further commands
% (see 3rd argument) depend on the active page style. If no one is active,
-% they depend on page style \texttt{scrheadings}.
+% they depend on page style \pstyle{scrheadings}.
% \begin{macrocode}
%<*body>
\newcommand*{\defpairofpagestyles}[3][]{%
@@ -2058,7 +1899,7 @@
onselect={%
% \end{macrocode}
% \changes{v3.15}{2015/01/08}{usage of \cs{DeclarePageStyleAlias} instead of
-% \cs{let}}%^^A fixme: Is this correct?
+% \cs{let}}
% \begin{macrocode}
\DeclarePageStyleAlias{plain}{plain.#2}%
\DeclarePageStyleAlias{headings}{#2}%
@@ -2072,7 +1913,7 @@
onselect={%
% \end{macrocode}
% \changes{v3.15}{2015/01/08}{usage of \cs{DeclarePageStyleAlias} instead of
-% \cs{let}}%^^A fixme: Is this correct?
+% \cs{let}}
% \begin{macrocode}
\DeclarePageStyleAlias{plain}{plain.#2}%
\DeclarePageStyleAlias{headings}{#2}%
@@ -2110,31 +1951,28 @@
}%
}%
% \end{macrocode}
-% \begin{macro}{\sls@currentheadings}
-% \begin{macro}{\sls@currentplain}
+% \begin{macro}{\sls@currentheadings,\sls@currentplain}
% These little helpers will be set up at selection of each pair page style and
% stores the last activated page style pair of the scope.
% \begin{macrocode}
\newcommand*\sls@currentheadings{scrheadings}%
\newcommand*\sls@currentplain{plain.scrheadings}%
% \end{macrocode}
-% \end{macro}%^^A \sls@currentplain
-% \end{macro}%^^A \sls@currentheadings
+% \end{macro}^^A \sls@currentheadings,\sls@currentplain
% \begin{macro}{\sls@init@pair@page@style}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \changes{v3.20}{2016/04/12}{\cs{ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\sls@init@@pair@page@style}
-% \begin{description}
-% \item[\Parameter{string}:] the name of the page style, that should be
-% initialised to be one member of a page style pair.
-% \item[\Parameter{string}:] the name of a member of a page style pair, that
-% should be used to initialise one the member of a page style pair from
-% first argument.
-% \end{description}
-% These are two little helpers for \Macro{defpairofpagestyles}.
-% The first command has two starred versions. With one star the commands for
-% the page style will be initialised to \Macro{@empty}, with two stars they
-% will become \LaTeX-undefined (\Macro{relax}).
+% \begin{description}
+% \item[\marg{string}:] the name of the page style, that should be initialised
+% to be one member of a page style pair.
+% \item[\marg{string}:] the name of a member of a page style pair, that should
+% be used to initialise one the member of a page style pair from first
+% argument.
+% \end{description}
+% These are two little helpers for \cs{defpairofpagestyles}. The first command
+% has two starred versions. With one star the commands for the page style will
+% be initialised to \cs{@empty}, with two stars they will become
+% \LaTeX-undefined (\cs{relax}).
%
% Note also, that the second argument may either be the plain or the non-plain
% member of the page style pair.
@@ -2177,16 +2015,16 @@
\csname sls@ps@#2@odd@right@foot\endcsname
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@init@@pair@page@style
+% \end{macro}^^A \sls@init@@pair@page@style
% \begin{macro}{\sls@let@pair@page@style}
-% \begin{description}
-% \item[\Parameter{command}:] a single command used to initialise the
-% commands of the page style commands.
-% \item[\Parameter{string}:] the name of a member of a page style pair, that
-% should be used to initialise one the member of a page style pair from
-% first argument.
-% \end{description}
-% A little helper for \Macro{sls@init@pair@page@style}.
+% \begin{description}
+% \item[\marg{command}:] a single command used to initialise the commands of
+% the page style commands.
+% \item[\marg{string}:] the name of a member of a page style pair, that should
+% be used to initialise one the member of a page style pair from first
+% argument.
+% \end{description}
+% A little helper for \cs{sls@init@pair@page@style}.
% \begin{macrocode}
\newcommand*{\sls@let@pair@page@style}[2]{%
\expandafter\let\csname sls@ps@#2@even@left@head\endcsname #1%
@@ -2203,20 +2041,20 @@
\expandafter\let\csname sls@ps@#2@odd@right@foot\endcsname #1%
}%
% \end{macrocode}
-% \end{macro}%^^A \sls@let@pair@page@style
-% \end{macro}%^^A \sls@init@pair@page@style
+% \end{macro}^^A \sls@let@pair@page@style
+% \end{macro}^^A \sls@init@pair@page@style
% \begin{macro}{\sls@def@pair@page@style@member}
-% \changes{v3.24}{2017/05/04}{improved \textsf{bidi} compatibility}%^^A
+% \changes{v3.24}{2017/05/04}{improved \textsf{bidi} compatibility}
% \changes{v3.27}{2019/04/05}{\cs{centering} replaced by
-% \cs{LaTeXcentering}}%^^A
+% \cs{LaTeXcentering}}
% \changes{v3.27}{2019/04/05}{\cs{raggedright} replaced by
-% \cs{LaTeXraggedright}}%^^A
+% \cs{LaTeXraggedright}}
% \changes{v3.27}{2019/04/05}{\cs{raggedleft} replaced by
-% \cs{LaTeXraggedleft}}%^^A
-% \begin{description}
-% \item[\Parameter{string}:] name of the page style to be defined.
-% \end{description}
-% A little helper for \Macro{defpairofpagestyles}.
+% \cs{LaTeXraggedleft}}
+% \begin{description}
+% \item[\marg{string}:] name of the page style to be defined.
+% \end{description}
+% A little helper for \cs{defpairofpagestyles}.
% \begin{macrocode}
\newcommand*{\sls@def@pair@page@style@member}[1]{%
\defpagestyle{#1}{%
@@ -2269,13 +2107,12 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \sls@def@pair@page@style@member
-% \end{macro}%^^A \defpairofpagestyles
+% \end{macro}^^A \sls@def@pair@page@style@member
+% \end{command}^^A \defpairofpagestyles
%
-% \begin{macro}{\newpairofpagestyles}
-% \begin{macro}{\renewpairofpagestyles}
-% \begin{macro}{\providepairofpagestyles}
-% See \Macro{defpairofpagestyles} for the arguments.
+% \begin{command}{\newpairofpagestyles,\renewpairofpagestyles,
+% \providepairofpagestyles}
+% See \cs{defpairofpagestyles} for the arguments.
% \begin{macrocode}
%<*body>
\newcommand*{\newpairofpagestyles}[3][]{%
@@ -2351,164 +2188,86 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \providepairofpagestyles
-% \end{macro}%^^A \renewpairofpagestyles
-% \end{macro}%^^A \newpairofpagestyles
+% \end{command}^^A \newpairofpagestyles … \providepairofpagestyles
+%
%
-% \begin{macro}{\ps@scrheadings}
-% \begin{macro}{\ps@plain.scrheadings}
+% \begin{pgstyle}{scrheading,plain.scrheadings}
% We have one predefined pair: \texttt{scrheadings} with plain page style
% \texttt{plain.scrheadings}.
% \begin{macrocode}
%<*body>
\newpairofpagestyles{scrheadings}{}%
% \end{macrocode}
-% \begin{macro}{\ps@scrplain}
-% But with package \Package{scrpage2} the plain page style was
-% \texttt{scrplain}. So we make a kind of alias:
+% \begin{pgstyle}{scrplain}
+% But with package \pkg{scrpage2}
+% the plain page style was \texttt{scrplain}. So we make a kind of alias:
% \begin{macrocode}
\DeclarePageStyleAlias{scrplain}{plain.scrheadings}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \ps@scrplain
-% \end{macro}%^^A \ps@plain.scrheadings
-% \end{macro}%^^A \ps@scrheadings
-%
-%
-% \begin{macro}{\ihead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\ohead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\chead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\lehead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\lohead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\rehead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\rohead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\cehead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\cohead}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\ifoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\ofoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\cfoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\lefoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\lofoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\refoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\rofoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\cefoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\cofoot}
-% \changes{v3.14}{2014/09/19}{new star version double the argument}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% We also need macros to define the contents of the three part head
-% and foot. Each macro defines one of the part of head or foot of the
-% headings page style member and optional of the plain page style
-% member.
+% \end{pgstyle}^^A scrplain
+% \end{pgstyle}^^A scrheadings,plain.scrheadings
+%
+%
+% \begin{command}{\ihead,\ohead,\chead,
+% \lehead,\lohead,\rehead,\rohead,\cehead,\cohead,
+% \ifoot,\ofoot,\cfoot,
+% \lefoot,\lofoot,\refoot,\rofoot,\cefoot,\cofoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}
+% \changes{v3.20}{2016/04/12}{\cs{ifstar} replaced by \cs{kernel@ifstar}}
+% We also need macros to define the contents of the three part head and
+% foot. Each macro defines one of the part of head or foot of the
+% \emph{headings} page style member and optional of the \emph{plain} page
+% style member.
% \begin{macrocode}
%<*body>
\newcommand*{\ihead}{\kernel@ifstar {\@dblarg\@@@ihead}{\@ihead}}%
% \end{macrocode}
% \begin{macro}{\@ihead}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@ihead}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\@@@ihead}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@ihead,\@@@ihead}
+% \changes{v3.27}{2019/04/05}{long}
% Two helpers for the previous one to double the command and it's arguments.
% \begin{macrocode}
\newcommand*{\@ihead}{\kernel@ifnextchar[{\@@@ihead}{\@@ihead}}%
\newcommand{\@@ihead}[1]{\rehead{#1}\lohead{#1}}%
\newcommand{\@@@ihead}[2][]{\rehead[{#1}]{#2}\lohead[{#1}]{#2}}%
% \end{macrocode}
-% \end{macro}%^^A \@@@ihead
-% \end{macro}%^^A \@@ihead
-% \end{macro}%^^A \@ihead
+% \end{macro}^^A \@@ihead,\@@@ihead
+% \end{macro}^^A \@ihead
% \begin{macrocode}
\newcommand*{\ohead}{\kernel@ifstar {\@dblarg\@@@ohead}{\@ohead}}%
% \end{macrocode}
% \begin{macro}{\@ohead}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@ohead}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\@@@ohead}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@ohead,\@@@ohead}
+% \changes{v3.27}{2019/04/05}{long}
% Two helpers for the previous one to double the command and it's arguments.
% \begin{macrocode}
\newcommand*{\@ohead}{\kernel@ifnextchar[{\@@@ohead}{\@@ohead}}%
\newcommand{\@@ohead}[1]{\lehead{#1}\rohead{#1}}%
\newcommand{\@@@ohead}[2][]{\lehead[{#1}]{#2}\rohead[{#1}]{#2}}%
% \end{macrocode}
-% \end{macro}%^^A \@@@ohead
-% \end{macro}%^^A \@@ohead
-% \end{macro}%^^A \@ohead
+% \end{macro}^^A \@@ohead,\@@@ohead
+% \end{macro}^^A \@ohead
% \begin{macrocode}
\newcommand*{\chead}{\kernel@ifstar {\@dblarg\@@@chead}{\@chead}}%
% \end{macrocode}
% \begin{macro}{\@chead}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@chead}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\@@@chead}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@chead,\@@@chead}
+% \changes{v3.27}{2019/04/05}{long}
% Two helpers for the previous one to double the command and it's arguments.
% \begin{macrocode}
\newcommand*{\@chead}{\kernel@ifnextchar[{\@@@chead}{\@@chead}}%
\newcommand{\@@chead}[1]{\cehead{#1}\cohead{#1}}%
\newcommand{\@@@chead}[2][]{\cehead[{#1}]{#2}\cohead[{#1}]{#2}}%
% \end{macrocode}
-% \end{macro}%^^A \@@@chead
-% \end{macro}%^^A \@@chead
-% \end{macro}%^^A \@chead
+% \end{macro}^^A \@@chead,\@@@chead
+% \end{macro}^^A \@chead
% \begin{macrocode}
\newcommand*{\lehead}{\sls@renewelement{even}{left}{head}}%
\newcommand*{\lohead}{\sls@renewelement{odd}{left}{head}}%
@@ -2522,58 +2281,49 @@
% \end{macrocode}
% \begin{macro}{\@ifoot}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@ifoot}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\@@@ifoot}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@ifoot,\@@@ifoot}
+% \changes{v3.27}{2019/04/05}{long}
% Two helpers for the previous one to double the command and it's arguments.
% \begin{macrocode}
\newcommand*{\@ifoot}{\kernel@ifnextchar[{\@@@ifoot}{\@@ifoot}}%
\newcommand{\@@ifoot}[1]{\refoot{#1}\lofoot{#1}}%
\newcommand{\@@@ifoot}[2][]{\refoot[{#1}]{#2}\lofoot[{#1}]{#2}}%
% \end{macrocode}
-% \end{macro}%^^A \@@@ifoot
-% \end{macro}%^^A \@@ifoot
-% \end{macro}%^^A \@ifoot
+% \end{macro}^^A \@@ifoot,\@@@ifoot
+% \end{macro}^^A \@ifoot
% \begin{macrocode}
\newcommand*{\ofoot}{\kernel@ifstar {\@dblarg\@@@ofoot}{\@ofoot}}%
% \end{macrocode}
% \begin{macro}{\@ofoot}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@ofoot}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\@@@ofoot}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@ofoot,\@@@ofoot}
+% \changes{v3.27}{2019/04/05}{long}
% Two helpers for the previous one to double the command and it's arguments.
% \begin{macrocode}
\newcommand*{\@ofoot}{\kernel@ifnextchar[{\@@@ofoot}{\@@ofoot}}%
\newcommand{\@@ofoot}[1]{\lefoot{#1}\rofoot{#1}}%
\newcommand{\@@@ofoot}[2][]{\lefoot[{#1}]{#2}\rofoot[{#1}]{#2}}%
% \end{macrocode}
-% \end{macro}%^^A \@@@ofoot
-% \end{macro}%^^A \@@ofoot
-% \end{macro}%^^A \@ofoot
+% \end{macro}^^A \@@ofoot,\@@@ofoot
+% \end{macro}^^A \@ofoot
% \begin{macrocode}
\newcommand*{\cfoot}{\kernel@ifstar {\@dblarg\@@@cfoot}{\@cfoot}}%
% \end{macrocode}
% \begin{macro}{\@cfoot}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@cfoot}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\@@@cfoot}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@cfoot,\@@@cfoot}
+% \changes{v3.27}{2019/04/05}{long}
% Two helpers for the previous one to double the command and it's arguments.
% \begin{macrocode}
\newcommand*{\@cfoot}{\kernel@ifnextchar[{\@@@cfoot}{\@@cfoot}}%
\newcommand{\@@cfoot}[1]{\cefoot{#1}\cofoot{#1}}%
\newcommand{\@@@cfoot}[2][]{\cefoot[{#1}]{#2}\cofoot[{#1}]{#2}}%
% \end{macrocode}
-% \end{macro}%^^A \@@@cfoot
-% \end{macro}%^^A \@@cfoot
-% \end{macro}%^^A \@cfoot
+% \end{macro}^^A \@@cfoot,\@@@cfoot
+% \end{macro}^^A \@cfoot
% \begin{macrocode}
\newcommand*{\lefoot}{\sls@renewelement{even}{left}{foot}}%
\newcommand*{\lofoot}{\sls@renewelement{odd}{left}{foot}}%
@@ -2585,15 +2335,11 @@
% \begin{macro}{\sls@renewelement}
% \begin{macro}{\sls@@renewelement}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\sls@@@renewelement}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\sls@@@@renewelement}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
-% \begin{macro}{\sls@@renewplainelement}
-% \changes{v3.27}{2019/04/05}{made long}%^^A
+% \cs{kernel@ifnextchar}}
+% \changes{v3.20}{2016/04/12}{\cs{ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\sls@@@renewelement,\sls@@@@renewelement,
+% \sls@@renewplainelement}
+% \changes{v3.27}{2019/04/05}{long}
% Little helper for several of the above commands.
% \begin{macrocode}
\newcommand*{\sls@renewelement}[3]{%
@@ -2626,32 +2372,14 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \sls@@renewplainelement
-% \end{macro}%^^A \sls@@@@renewelement
-% \end{macro}%^^A \sls@@@renewelement
-% \end{macro}%^^A \sls@@renewelement
-% \end{macro}%^^A \sls@renewelement
-% \end{macro}%^^A \cofoot
-% \end{macro}%^^A \cefoot
-% \end{macro}%^^A \rofoot
-% \end{macro}%^^A \refoot
-% \end{macro}%^^A \lofoot
-% \end{macro}%^^A \lefoot
-% \end{macro}%^^A \cfoot
-% \end{macro}%^^A \ofoot
-% \end{macro}%^^A \ifoot
-% \end{macro}%^^A \cohead
-% \end{macro}%^^A \cehead
-% \end{macro}%^^A \rohead
-% \end{macro}%^^A \rehead
-% \end{macro}%^^A \lohead
-% \end{macro}%^^A \lehead
-% \end{macro}%^^A \chead
-% \end{macro}%^^A \ohead
-% \end{macro}%^^A \ihead
-%
-% \begin{macro}{\clearmainofpairofpagestyles}
-% \begin{macro}{\clearscrheadings}
+% \end{macro}^^A \sls@@@renewelement … \sls@@renewplainelement
+% \end{macro}^^A \sls@@renewelement
+% \end{macro}^^A \sls@renewelement
+% \end{command}^^A \ihead … \cofoot
+%
+%
+% \begin{command}{\clearmainofpairofpagestyles}
+% \begin{command}{\clearscrheadings}
% \changes{v3.32}{2020/09/11}{deprecation warning added}
% Maybe you want to clear the currently defined head and foot. First
% let's clear only scrheadings pagestyle but not scrplain pagestyle.
@@ -2670,10 +2398,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \clearscrheadings
-% \end{macro}%^^A \clearmainofpairofpagestyles
-% \begin{macro}{\clearplainofpairofpagestyles}
-% \begin{macro}{\clearscrplain}
+% \end{command}^^A \clearscrheadings
+% \end{command}^^A \clearmainofpairofpagestyles
+% \begin{command}{\clearplainofpairofpagestyles}
+% \begin{command}{\clearscrplain}
% \changes{v3.32}{2020/09/11}{deprecation warning added}
% Now, we use the not recommended feature to set up a plain style:
% \begin{macrocode}
@@ -2701,10 +2429,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \clearscrplain
-% \end{macro}%^^A \clearplainofpairofpagestyles
-% \begin{macro}{\clearpairofpagestyles}
-% \begin{macro}{\clearscrheadfoot}
+% \end{command}^^A \clearscrplain
+% \end{command}^^A \clearplainofpairofpagestyles
+% \begin{command}{\clearpairofpagestyles}
+% \begin{command}{\clearscrheadfoot}
% \changes{v3.32}{2020/09/11}{deprecation warning added}
% Last but not least we clean up both, the main and the plain:
% \begin{macrocode}
@@ -2721,10 +2449,11 @@
}
%</body>
% \end{macrocode}
-% \end{macro}%^^A \clearscrheadfoot
-% \end{macro}%^^A \clearpairofpagestyles
+% \end{command}^^A \clearscrheadfoot
+% \end{command}^^A \clearpairofpagestyles
+%
%
-% \begin{macro}{\ps@useheadings}
+% \begin{pgstyle}{useheadings,plain.useheadings}
% Not longer supported:
% \begin{macrocode}
%<*body>
@@ -2746,24 +2475,21 @@
}%
%</body>
% \end{macrocode}
-% \end{macro}%^^A \ps@useheadings
+% \end{pgstyle}^^A useheadings,plain.useheadings
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%</interface>
-% \fi^^A meta-comment
-%
+% \end{macrocode}
+%
% \Finale
-% \let\subsection\section
-% \let\section\chapter
-% \let\chapter\restorechapter
+% \PrintChanges
%
\endinput
-%
-% end of file `scrlayer.dtx'
-
-%%% Local Variables:
-%%% mode: doctex
-%%% mode: flyspell
-%%% ispell-local-dictionary: "en_GB"
-%%% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrlayer.dtx b/macros/latex/contrib/koma-script/source/scrlayer.dtx
index ac98a934d1..1a150b1cab 100644
--- a/macros/latex/contrib/koma-script/source/scrlayer.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlayer.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlayer.dtx
-% Copyright (c) Markus Kohm, 2012-2021
+% Copyright (c) Markus Kohm, 2012-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,28 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrlayer.dtx
-% Copyright (c) Markus Kohm, 2012-2021
-%
-% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung.
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c.
-% 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 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.
% ======================================================================
-%
-%%% From File: $Id: scrlayer.dtx 3560 2021-02-15 13:20:12Z kohm $
+%%% From File: $Id: scrlayer.dtx 3773 2022-03-29 06:27:55Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -48,9 +28,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-02-15 14:20:12 +0100 (Mon, 15 Feb 2021) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3560 $
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlayer.dtx}%
@@ -77,11 +57,11 @@
\KOMAdefVariable{COPYRIGHTFROM}{2012}
\generate{\usepreamble\defaultpreamble
\file{scrlayer.sty}{%
- \from{scrlayer.dtx}{package,trace,scrlayer,identify}%
- \from{scrlayer.dtx}{package,trace,scrlayer,init}%
- \from{scrlayer.dtx}{package,trace,scrlayer,options}%
- \from{scrlayer.dtx}{package,trace,scrlayer,body}%
- \from{scrlayer.dtx}{package,trace,scrlayer,final}%
+ \from{scrlayer.dtx}{package,scrlayer,identify}%
+ \from{scrlayer.dtx}{package,scrlayer,init}%
+ \from{scrlayer.dtx}{package,scrlayer,options}%
+ \from{scrlayer.dtx}{package,scrlayer,body}%
+ \from{scrlayer.dtx}{package,scrlayer,final}%
\from{scrlogo.dtx}{logo}%
}%
}
@@ -93,121 +73,63 @@
\let\endbatchfile\relax
\fi
\endbatchfile
- \documentclass{scrdoc}
- \addtolength{\textwidth}{-1em}
- \addtolength{\marginparwidth}{2em}
- \addtolength{\oddsidemargin}{2em}
- \usepackage[ngerman,english]{babel}
- \usepackage{url,babelbib}\bibliographystyle{babalpha-fl}
- \usepackage{listings}
- \usepackage{scrhack}
- \usepackage{etoolbox}
- \pretocmd\DescribeMacro{\ifhmode\else\bigskip\noindent\fi}{}{}
- \pretocmd\DescribeEnv{\ifhmode\else\bigskip\noindent\fi}{}{}
- \pretocmd\DescribeOption{\ifhmode\else\bigskip\noindent\fi}{}{}
-
- \CodelineIndex
- \RecordChanges
- \GetFileInfo{scrlayer.dtx}
- \title{The \KOMAScript{} package \texttt{scrlayer}%
- \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
- \date{\filedate}
- \author{Markus Kohm}
-
- \newenvironment{Explain}{\par}{\par}
- \newcommand*{\length}{}
- \let\length\Length
- \let\endlength\endLength
- \let\Macro\cs
- \let\Length\Macro
- \let\Package\textsf
- \let\Class\Package
- \let\File\texttt
- \let\Option\texttt
- \newcommand*{\KOption}[1]{\Option{#1}\texttt{=}}
- \newcommand*{\OptionValue}[2]{\Option{#1}\texttt{=}\PValue{#2}}
- \let\Counter\texttt
- \let\Environment\texttt
- \let\ShowOutput\quote
- \let\endShowOutput\endquote
- \let\Pagestyle\texttt
- \newcommand*{\Parameter}[1]{\texttt{\marg{#1}}\linebreak[1]}
- \newcommand*{\OParameter}[1]{\texttt{\oarg{#1}}\linebreak[1]}
- \newcommand*{\MParameter}[2]{\texttt{(\meta{#1},\meta{#2})}\linebreak[1]}
- \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}\linebreak[1]}
- \let\PName\meta
- \let\PValue\texttt
- \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:}
- \providecommand*{\AUTOREF}{}
- \makeatletter
- \def\AUTOREF#1:#2:{%
- \edef\@tempa{#1}%
- \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi
- \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi
- \ref{#1:#2}%
- }
- \providecommand*{\IndexCmd}[2][]{}
- \providecommand*{\textnote}[2][]{}
- \providecommand*\eTeX{\leavevmode\hbox{$\varepsilon$}-\TeX}
- \providecommand*\NTS{%
- \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}%
- \kern-0.2emS$}}
-
- \lstnewenvironment{lstcode}{\lstset{language=[LaTeX]TeX}}{}
- \makeatother
- \sloppy% YOU SHOULD NOT DO THIS!!!
-
- \begin{document}
- \maketitle
- \DocInput{\filename}
- \DocInput{scrlayer-scrpage.dtx}
- \DocInput{scrlayer-notecolumn.dtx}
- \bibliography{guide}
- \PrintChanges
- \PrintIndex
- \end{document}
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+ \DocInput{scrlayer.dtx}
+\end{document}
%</dtx>
% \fi^^A meta-comment
%
-% \selectlanguage{english}
-%
-% \changes{v0.0}{2012/01/01}{Start of new package}%^^A
-% \changes{v0.9}{2014/07/25}{User documentation removed}%^^A
+% \changes{v0.0}{2012/01/01}{Start of new package}
+% \changes{v0.9}{2014/07/25}{User documentation removed}
+% \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}
%
-% \StopEventually{}
+% \GetFileInfo{scrlayer.dtx}
+% \title{Layers and Page Styles with \href{https://komascript.de}{\KOMAScript}
+% Package \pkg*{scrlayer}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% Usually page styles only define the page header and page footer. But with
+% \pkg*{scrlayer} page styles consist of multiple layers, that can be placed
+% everywhere in the page background or foreground.
+% \end{abstract}
+% \tableofcontents
%
+% \section{User Manual}
%
-% \section{Implementation of \Package{scrlayer}}
+% You can find the user manuals of \pkg*{scrlayer} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
%
-% This section if for developers only.
+% \MaybeStop{\PrintIndex}
%
-% \iffalse
-%<*package>
-%<*identify>
-% \fi
+% \section{Implementation of \pkg*{scrlayer}}
%
-%\iffalse^^A meta-comment
-%</identify>
-%</package>
+% \begin{macrocode}
%<*package|interface|class>
-%\fi^^A meta-comment
+% \end{macrocode}
%
-% \subsection{Initialising some Values before the Options}
+% \subsection{Initialising some values before the options}
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%<*init>
-% \fi^^A meta-comment
+% \end{macrocode}
%
% Initialisation before all options.
%
-% \begin{macro}{\scrlayer@@inherited@options@cslist}
-% \changes{v3.33}{2021/02/15}{new (internal)}
-% \begin{macro}{\scrlayer@@add@inherited@option}
-% \changes{v3.33}{2021/02/15}{new (internal)}
-% \begin{macro}{\scrlayer@do@inherited@options}
-% \changes{v3.33}{2021/02/15}{new (interface command)}
-% \begin{macro}{\scrlayer@inherit@option}
-% \changes{v3.33}{2021/02/15}{new (interface command)}
+% \begin{macro}{\scrlayer@@inherited@options@cslist,
+% \scrlayer@@add@inherited@option}
+% \changes{v3.33}{2021/02/15}{added}
+% \begin{macro}{\scrlayer@do@inherited@options,
+% \scrlayer@inherit@option}
+% \changes{v3.33}{2021/02/15}{added (interface command)}
% The options of \textsf{scrlayer} should be passed to \textsf{scrlayer} while
% loading an interface package. We use the comma-separated-list
% \cs{scrlayer@@inherited@options@cslist} to store all of them, so the
@@ -261,12 +183,10 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% While there are \KOMAScript{} options, we need \Package{scrkbase} to declare
-% them, but the interfaces also needs \Package{scrlayer} which already
-% includes \Package{scrkbase}.
+% While there are \KOMAScript{} options, we need \pkg*{scrkbase} to declare
+% them, but the interfaces also needs \pkg*{scrlayer} which already
+% includes \pkg*{scrkbase}.
% \begin{macrocode}
%<package>\RequirePackage{scrkbase}[2013/03/05]
%<interface>\RequirePackage{scrlayer}
@@ -274,8 +194,8 @@
%
%
% \begin{macro}{\scrlayer@AtEndOfPackage}
-% Initial \Macro{AtEndOfPackage}, but after end of package
-% \Macro{@firstofone}.
+% Initial \cs{AtEndOfPackage}, but after end of package
+% \cs{@firstofone}.
% \begin{macrocode}
\scr@ifundefinedorrelax{scrlayer@AtEndOfPackage}{%
\AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}%
@@ -286,12 +206,12 @@
}
\let\scrlayer@AtEndOfPackage\AtEndOfPackage
% \end{macrocode}
-% \end{macro}%^^A \sls@AtEndOfPackage
+% \end{macro}^^A \sls@AtEndOfPackage
%
% \begin{macro}{\scrlayer@testunexpectedarg}
% We'll have several \KOMAScript{} options, that didn't expect an
% value. So we use this general helper to test the value and report an error
-% if it is not empty (or \Macro{relax}).
+% if it is not empty (or \cs{relax}).
% \begin{macrocode}
%<*package>
\newcommand*{\scrlayer@testunexpectedarg}[2]{%
@@ -304,9 +224,9 @@
}
%</package>
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@testunexpectedarg
+% \end{macro}^^A \scrlayer@testunexpectedarg
%
-% \begin{macro}{\if@chapter}
+% \begin{macro}{\if@chapter,\@chaptertrue,\@chapterfalse}
% We need this later. But it is something general. So we initialise it as
% early as possible.
% \begin{macrocode}
@@ -316,11 +236,11 @@
\scr@ifundefinedorrelax{chapter}{\@chapterfalse}{\@chaptertrue}%
}{}
% \end{macrocode}
-% \end{macro}%^^A \if@chapter
+% \end{macro}^^A \if@chapter
%
% \begin{macro}{\if@mainmatter}
-% Some classes define \Macro{frontmatter} or \Macro{mainmatter}, but do not
-% define \Macro{if@mainmatter}. But we nee some information about the matter,
+% Some classes define \cs{frontmatter} or \cs{mainmatter}, but do not
+% define \cs{if@mainmatter}. But we nee some information about the matter,
% so in that case, we add it.
% \begin{macrocode}
\scr@ifundefinedorrelax{if@mainmatter}{%
@@ -351,19 +271,19 @@
}{}
%</package>
% \end{macrocode}
-% \end{macro}%^^A \if@mainmatter
+% \end{macro}^^A \if@mainmatter
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%</init>
-% \fi^^A meta-comment
-%
+% \end{macrocode}
+%
%
% \subsection{Process Options}
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%<*body>
-% \fi^^A meta-comment
-%
+% \end{macrocode}
+%
% The very first thing at the body is processing the options:
% \begin{macrocode}
%<*package|interface>
@@ -375,26 +295,26 @@
%
% Currently not needed.
%
-% \iffalse
+% \begin{macrocode}
%</body>
-% \fi
-%
+% \end{macrocode}
+%
%
% \subsection{Extended Running Heads}
%
-% Package \Package{scrpage2} changes and extends the running head mechanisms
+% Package \pkg{scrpage2} changes and extends the running head mechanisms
% of \LaTeX{} and the classes. Most of this are basic features an therefore
-% done already by \Package{scrlayer}. But not the deprecated options.
+% done already by \pkg*{scrlayer}. But not the deprecated options.
%
% \begin{option}{markcase}
% \begin{description}
% \item[\texttt{=\meta{setting}}] one of: \texttt{upper}, \texttt{lower},
% \texttt{used}, or \texttt{ignoreuppercase}.
% \end{description}\noindent
-% The two options \Option{markuppercase} and \Option{markusedcase} become
-% deprecated and are replace be the single option \Option{markcase}. Note,
-% that interface \Package{scrlayer-scrpage} has to delay this option to
-% overload case setting of option \Option{pagestyleset}.
+% The two options \opt{markuppercase} and \opt{markusedcase} become
+% deprecated and are replace be the single option \opt{markcase}. Note,
+% that interface \pkg*{scrlayer-scrpage} has to delay this option to
+% overload case setting of option \opt{pagestyleset}.
% \begin{macrocode}
%<*options>
\KOMA@key{markcase}{%
@@ -440,8 +360,8 @@
\csname KV@KOMA.\@currname.\@currext @markcase\endcsname\relax
%</interface&body>
% \end{macrocode}
-% \begin{macro}{\MakeMarkcase}
-% We use this instead of, e.g., \Macro{MakeUppercase} for every layer! So the
+% \begin{command}{\MakeMarkcase}
+% We use this instead of, e.g., \cs{MakeUppercase} for every layer! So the
% name seams to be wrong, but it is common, so we use it here.
% \begin{macrocode}
%<*package&options>
@@ -457,8 +377,8 @@
\fi\fi\fi\fi
% \end{macrocode}
% \begin{macro}{\scrlayer@ignoreuppercase}
-% We span a group and set \Macro{uppercase} and \Macro{MakeUppercase} to
-% \Macro{@firstofone}.
+% We span a group and set \cs{uppercase} and \cs{MakeUppercase} to
+% \cs{@firstofone}.
% \begin{macrocode}
\DeclareRobustCommand*{\scrlayer@ignoreuppercase}[1]{%
\begingroup
@@ -477,52 +397,40 @@
\newif\ifscrlayer@forceignoreuppercase
%</package&options>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@forceignoreuppercase
-% \end{macro}%^^A \scrlayer@ignoreuppercase
-% \end{macro}%^^A \MakeMarkcase
-% \end{option}%^^A markcase
+% \end{macro}^^A \ifscrlayer@forceignoreuppercase
+% \end{macro}^^A \scrlayer@ignoreuppercase
+% \end{command}^^A \MakeMarkcase
+% \end{option}^^A markcase
%
-% \begin{macro}{\rightfirstmark}
-% \changes{v3.16}{2015/01/14}{new}%^^A
-% \begin{macro}{\rightbotmark}
-% \changes{v3.16}{2015/01/14}{new}%^^A
-% \begin{macro}{\righttopmark}
-% \changes{v3.16}{2015/01/14}{new}%^^A
-% \Macro{rightfirstmark} is simply the same like the \Macro{rightmark} of the
-% \LaTeX{} kernel. \Macro{rightbotmark} uses \Macro{botmark} instead of
-% \Macro{firstmark} and \Macro{righttopmark} uses \Macro{topmark}.
+% \begin{command}{\rightfirstmark,\rightbotmark,\righttopmark}
+% \changes{v3.16}{2015/01/14}{added}
+% \cs{rightfirstmark} is simply the same like the \cs{rightmark} of the
+% \LaTeX{} kernel. \cs{rightbotmark} uses \cs{botmark} instead of
+% \cs{firstmark} and \cs{righttopmark} uses \cs{topmark}.
% \begin{macrocode}
%<*package&body>
\newcommand*{\rightfirstmark}{\expandafter\@rightmark\firstmark\@empty\@empty}
\newcommand*{\rightbotmark}{\expandafter\@rightmark\botmark\@empty\@empty}
\newcommand*{\righttopmark}{\expandafter\@rightmark\topmark\@empty\@empty}
% \end{macrocode}
-% \end{macro}%^^A \righttopmark
-% \end{macro}%^^A \rightbotmark
-% \end{macro}%^^A \rightfirstmark
+% \end{command}^^A \rightfirstmark …
%
-% \begin{macro}{\leftfirstmark}
-% \changes{v3.16}{2015/01/14}{new}%^^A
-% \begin{macro}{\leftbotmark}
-% \changes{v3.16}{2015/01/14}{new}%^^A
-% \begin{macro}{\lefttopmark}
-% \changes{v3.16}{2015/01/14}{new}%^^A
-% \Macro{leftbotmark} is simply the same like the \Macro{leftmark} of the
-% \LaTeX{} kernel. \Macro{leftfirstmark} uses \Macro{firstmark} instead of
-% \Macro{botmark} and \Macro{lefttopmark} uses \Macro{topmark}.
+% \begin{command}{\leftfirstmark,\leftbotmark,\lefttopmark}
+% \changes{v3.16}{2015/01/14}{added}
+% \cs{leftbotmark} is simply the same like the \cs{leftmark} of the
+% \LaTeX{} kernel. \cs{leftfirstmark} uses \cs{firstmark} instead of
+% \cs{botmark} and \cs{lefttopmark} uses \cs{topmark}.
% \begin{macrocode}
\newcommand*{\leftfirstmark}{\expandafter\@leftmark\firstmark\@empty\@empty}
\newcommand*{\leftbotmark}{\expandafter\@leftmark\botmark\@empty\@empty}
\newcommand*{\lefttopmark}{\expandafter\@leftmark\topmark\@empty\@empty}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \lefttopmark
-% \end{macro}%^^A \leftbotmark
-% \end{macro}%^^A \leftfirstmark
+% \end{command}^^A \leftfirstmark …
%
-% \begin{macro}{\headmark}
-% Inside a page style, this macro is either \Macro{rightmark} or
-% \Macro{leftmark}. Outside its \LaTeX-undefined and therefore it's not an
+% \begin{command}{\headmark}
+% Inside a page style, this macro is either \cs{rightmark} or
+% \cs{leftmark}. Outside its \LaTeX-undefined and therefore it's not an
% interface command, but has to be undefined:
% \begin{macrocode}
%<*package&body>
@@ -541,9 +449,9 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \headmark
+% \end{command}^^A \headmark
%
-% \begin{macro}{\pagemark}
+% \begin{command}{\pagemark}
% The page number together with its font setting. It's robust and will never
% be part of the interface.
% \begin{macrocode}
@@ -552,7 +460,7 @@
\DeclareRobustCommand\pagemark{{\pnumfont{\thepage}}}%
}{}%
% \end{macrocode}
-% \begin{macro}{\pnumfont}
+% \begin{command}{\pnumfont}
% \begin{macro}{\scr@fnt@pagenumber}
% The low-level page number font command. It is deprecated to redefine or use
% this and it may already be defined. These commands will not become part of
@@ -566,19 +474,17 @@
}{}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@fnt@pagenumber
-% \end{macro}%^^A \pnumfont
-% \end{macro}%^^A \pagemark
+% \end{macro}^^A \scr@fnt@pagenumber
+% \end{command}^^A \pnumfont
+% \end{command}^^A \pagemark
%
-% \begin{macro}{\partmarkformat}
-% \begin{macro}{\chaptermarkformat}
-% \begin{macro}{\sectionmarkformat}
-% \begin{macro}{\GenericMarkFormat}
-% All the \Macro{\dots markformat} macros of \KOMAScript{} are also
-% supported by \Package{scrlayer} and it uses them actively. The generic
-% definition has been moved from \Macro{@seccntmarkformat} to
-% \Macro{GenericMarkFormat}. This is one more difference to
-% \Package{scrpage2}. The defaults are compatible to the standard
+% \begin{command}{\partmarkformat,\chaptermarkformat,\sectionmarkformat,
+% \GenericMarkFormat}
+% All the \cs{\dots markformat} macros of \KOMAScript{} are also
+% supported by \pkg*{scrlayer} and it uses them actively. The generic
+% definition has been moved from \cs{@seccntmarkformat} to
+% \cs{GenericMarkFormat}. This is one more difference to
+% \pkg{scrpage2}. The defaults are compatible to the standard
% classes. These commands will not become part of the interface and other
% interfaces should redefine them only, if they are not already defined.
% \begin{macrocode}
@@ -598,22 +504,17 @@
}
%</package&body>
% \end{macrocode}
-% Note, that the other \Macro{\dots markformat} will be defined by
-% \Macro{scrlayer@level@init}.
-% \end{macro}%^^A \GenericMarkFormat
-% \end{macro}%^^A \sectionmarkformat
-% \end{macro}%^^A \chaptermarkformat
-% \end{macro}%^^A \partmarkformat
+% Note, that the other \cs{\dots markformat} will be defined by
+% \cs{scrlayer@level@init}.
+% \end{command}^^A \partmarkformat …
%
-% \begin{macro}{\@mkleft}
-% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}%^^A
-% \begin{macro}{\@mkright}
-% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}%^^A
+% \begin{macro}{\@mkleft,\@mkright}
+% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}
% \begin{macro}{\@mkdouble}
-% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}%^^A
-% \changes{v3.27a}{2019/10/17}{long definition}%^^A
-% These are new in \Package{scrlayer}. They may be updated, whenever
-% \Macro{@mkboth} will be updated. Otherwise they get a working default
+% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}
+% \changes{v3.27a}{2019/10/17}{long definition}
+% These are new in \pkg*{scrlayer}. They may be updated, whenever
+% \cs{@mkboth} will be updated. Otherwise they get a working default
% definition. These commands will not become part of the interface and other
% interfaces should redefine them only, if they are not already defined.
% \begin{macrocode}
@@ -629,15 +530,14 @@
}
%</(package|class)&body>
% \end{macrocode}
-% \end{macro}%^^A \@mkdouble
-% \end{macro}%^^A \@mkright
-% \end{macro}%^^A \@mkleft
+% \end{macro}^^A \@mkdouble
+% \end{macro}^^A \@mkright,\@mkleft
%
-% \begin{macro}{\markleft}
-% \changes{v3.27a}{2019/10/17}{robust and long definition}%^^A
+% \begin{command}{\markleft}
+% \changes{v3.27a}{2019/10/17}{robust and long definition}
% \begin{macro}{\@markleft}
-% \LaTeX{} itself provides \Macro{markboth} and \Macro{markright} but not
-% \Macro{markleft}. So we add it.
+% \LaTeX{} itself provides \cs{markboth} and \cs{markright} but not
+% \cs{markleft}. So we add it.
% \begin{macrocode}
%<*package&body>
\@ifundefined{markleft}{%
@@ -657,11 +557,11 @@
}{}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@markleft
-% \end{macro}%^^A \markleft
+% \end{macro}^^A \@markleft
+% \end{command}^^A \markleft
%
-% \begin{macro}{\markdouble}
-% \changes{v3.28}{2019/10/17}{new}%^^A
+% \begin{command}{\markdouble}
+% \changes{v3.28}{2019/10/17}{added}
% This is easier, because it uses \cs{markboth}. So we do not need to declare
% it robust and we can use \cs{providecommand}.
% \begin{macrocode}
@@ -669,11 +569,11 @@
\providecommand{\markdouble}[1]{\markboth{#1}{#1}}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \markdouble
+% \end{command}^^A \markdouble
%
% \begin{option}{autooneside}
% \begin{macro}{\ifscrlayer@autooneside}
-% Decide whether or not use the optional argument of \Macro{automark} in
+% Decide whether or not use the optional argument of \cs{automark} in
% single-side layout.
% \begin{macrocode}
%<*options>
@@ -694,22 +594,24 @@
\csname KV@KOMA.\@currname.\@currext @autooneside\endcsname\relax
%</interface&body>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@autooneside
-% \end{option}%^^A autooneside
+% \end{macro}^^A \ifscrlayer@autooneside
+% \end{option}^^A autooneside
%
%
% \begin{option}{automark}
% \begin{option}{manualmark}
% Maybe we will extend these options later. Currently they do almost the
-% same they do at \Package{scrpage2}. The difference is, that single-side or
+% same they do at \pkg{scrpage2}. The difference is, that single-side or
% two-side doesn't matter here (but it does inside of the definitions of the
% marks itself).
%
-% ToDo: Maybe \Option{manualmark} should become deprecated and
-% \Option{automark} should have simple values or a new option, that also
-% handles \Option{autooneside}?
+% \begin{description}
+% \item[ToDo:] Maybe \opt{manualmark} should become deprecated and
+% \opt{automark} should have simple values or a new option, that also
+% handles \opt{autooneside}?
+% \end{description}
% \changes{v3.22}{2016/12/07}{prepared for classes without \cs{section} or
-% \cs{subsection}}%^^A
+% \cs{subsection}}
% \begin{macrocode}
%<*options>
\KOMA@key{automark}[]{%
@@ -762,12 +664,12 @@
\csname KV@KOMA.\@currname.\@currext @manualmark@default\endcsname\relax
%</interface&body>
% \end{macrocode}
-% \end{option}%^^A manualmark
-% \end{option}%^^A automark
+% \end{option}^^A manualmark
+% \end{option}^^A automark
%
-% \begin{macro}{\manualmark}
-% Switch to manual marks. This resets \Macro{@mkleft}, \Macro{@mkright},
-% \Macro{@mkdouble}, \Macro{@mkboth} and the \Macro{\dots mark} of all known
+% \begin{command}{\manualmark}
+% Switch to manual marks. This resets \cs{@mkleft}, \cs{@mkright},
+% \cs{@mkdouble}, \cs{@mkboth} and the \cs{\dots mark} of all known
% levels.
% \begin{macrocode}
%<*package&body>
@@ -786,15 +688,15 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\automark}
+% \begin{command}{\automark}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% ersetzt}
% \begin{macro}{\@automark}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% This is the brain knot of the game! I'll try to explain, what I'm doing:
-% First of all the new starred version of \Macro{automark} doesn't reset the
+% First of all the new starred version of \cs{automark} doesn't reset the
% mark commands. So it works cumulatively. This may be useful e.g. to have
% chapter marks as long as no section marks have been made etc.
% \begin{macrocode}
@@ -806,14 +708,14 @@
\Ifstr{#2}{}{%
\Ifstr{#1}{}{%
% \end{macrocode}
-% \Macro{automark[]{}} or \Macro{automark{}} has been used. This will activate
+% \cs{automark[]{}} or \cs{automark{}} has been used. This will activate
% the low level mark commands, but doesn't change the high level commands. It
% may be useful or may not, the user should know what he does:
% \begin{macrocode}
\automark@basics
}{%
% \end{macrocode}
-% \Macro{automark[\dots]{}} has been used. This will activate the higher level
+% \cs{automark[\dots]{}} has been used. This will activate the higher level
% mark commands and also set up the right mark
% \begin{macrocode}
\automark@basics
@@ -822,7 +724,7 @@
}{%
\Ifstr{#1}{}{%
% \end{macrocode}
-% \Macro{automark[]{\dots}} or \Macro{automark{\dots}} has been used. This
+% \cs{automark[]{\dots}} or \cs{automark{\dots}} has been used. This
% will activate the low level mark commands and also set up either the left or
% both marks.
% \begin{macrocode}
@@ -830,7 +732,7 @@
\automark@leftlow{#2}%
}{%
% \end{macrocode}
-% \Macro{automark[\dots]{\dots}} has been used. This will activate the low
+% \cs{automark[\dots]{\dots}} has been used. This will activate the low
% level mark commands and also both high level marks.
% \begin{macrocode}
\automark@basics
@@ -840,7 +742,7 @@
}
% \end{macrocode}
% \begin{macro}{\automark@basics}
-% Activate all low level \Macro{@mk\dots} commands:
+% Activate all low level \cs{@mk\dots} commands:
% \begin{macrocode}
\newcommand*{\automark@basics}{%
\let\@mkleft\markleft
@@ -849,11 +751,11 @@
\def\@mkdouble##1{\@mkboth{##1}{##1}}%
}
% \end{macrocode}
-% \end{macro}%^^A \automark@basics
+% \end{macro}^^A \automark@basics
% \begin{macro}{\automark@righthigh}
% Set up the right mark of a higher level, but in single-side layout only if
-% \Option{autooneside} hasn't been used. Note, that with this definition no
-% special handling for \KOMAScript's \Macro{addchap} and \Macro{addsec} is
+% \opt{autooneside} hasn't been used. Note, that with this definition no
+% special handling for \KOMAScript's \cs{addchap} and \cs{addsec} is
% needed.
% \begin{macrocode}
\newcommand*{\automark@righthigh}[1]{%
@@ -877,7 +779,7 @@
}{}%
}
% \end{macrocode}
-% \end{macro}%^^A \automark@righthigh
+% \end{macro}^^A \automark@righthigh
% \begin{macro}{\automark@leftlow}
% Set up the left mark of a low level, but in single-side layout the right
% mark has to be used.
@@ -898,7 +800,7 @@
% In single-side mode there's no left high mark without a right low mark. So
% instead of only a left high mark, we set up both marks.
% \changes{v3.27}{2019/07/25}{replaced \cs{@empty} by \texttt{\{\}} to avoid
-% \textsf{babel} issue}%^^A
+% \textsf{babel} issue}
% \begin{macrocode}
\expandafter\@mkdouble
\fi
@@ -913,10 +815,10 @@
}{}%
}
% \end{macrocode}
-% \end{macro}%^^A \automark@leftlow
+% \end{macro}^^A \automark@leftlow
% \begin{macro}{\automark@both}
% Set up both marks, but in single-side layout depending on
-% \Option{autooneside}.
+% \opt{autooneside}.
% \begin{macrocode}
\newcommand*{\automark@both}[2]{%
\ifscrlayer@level@prepared{#1}{%
@@ -1006,25 +908,25 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@level@prepared
-% \end{macro}%^^A \automark@both
-% \end{macro}%^^A \@automark
-% \end{macro}%^^A \automark
+% \end{macro}^^A \ifscrlayer@level@prepared
+% \end{macro}^^A \automark@both
+% \end{macro}^^A \@automark
+% \end{command}^^A \automark
%
-% \begin{macro}{\DeclareSectionNumberDepth}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\DeclareSectionNumberDepth}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{description}
-% \item[\Parameter{string}:] the name of the section level, e.g.,
+% \item[\marg{string}:] the name of the section level, e.g.,
% part, chapter, section etc. (must be fully
% expandable and expand to a string).
-% \item[\Parameter{numeric expression}:] the section number depth of the
+% \item[\marg{numeric expression}:] the section number depth of the
% level, e.g., -1 for part, 0 for chapter etc.
% \end{description}
% Note that levels part, chapter, section, subsection, sub\dots subsection,
% paragraph, subparagraph, sub\dots subparagraph, minisec, subminisec,
% sub\dots subminisec will be recognised either at load time or at
-% \Macro{begin}\PParameter{document} automatically if they have the usual
-% levels.
+% \cs{begin}\texttt\{\env{document}\texttt\} automatically if they have the
+% usual levels.
% \begin{macrocode}
%<*package&body>
\newcommand*{\DeclareSectionNumberDepth}[2]{%
@@ -1050,16 +952,15 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\scrlayer@level@list}
-% \begin{macro}{\scrlayer@level@init}
+% \begin{macro}{\scrlayer@level@list,\scrlayer@level@init}
% Stores all the existing levels.
% \begin{macrocode}
\newcommand*{\scrlayer@level@list}{}
% \end{macrocode}
% Usually all levels are known on loading this package, but if a package
% defines additional levels later we'll do an additional test at
-% \Macro{begin}\PParameter{document}. But we do not redo the part and the
-% chapter test.
+% \cs{begin}\texttt\{\env{document}\texttt\}. But we do not redo the part and
+% the chapter test.
% \begin{macrocode}
\scr@ifundefinedorrelax{part}{}{%
\DeclareSectionNumberDepth{part}{-1}%
@@ -1098,9 +999,8 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@level@init
-% \end{macro}%^^A \scrlayer@level@list
-% \end{macro}%^^A DeclareSectionNumberDepth
+% \end{macro}^^A \scrlayer@level@init,\scrlayer@level@list
+% \end{command}^^A DeclareSectionNumberDepth
%
%
% \subsection{Providing Layers}
@@ -1108,7 +1008,7 @@
% A layer is a virtual sheet of paper stacked behind or above the real sheet
% of paper. All the virtual and real sheets of one page may been seen
% simultanous, but material o one sheet may overlap material on sheets below.
-% Layers provided by \Package{scrlayer} will not be stacked below or above
+% Layers provided by \pkg*{scrlayer} will not be stacked below or above
% real sheets unless they are used by a page style.
%
% While we use \meta{key}\texttt{=}\meta{value} arguments for several of the
@@ -1120,11 +1020,11 @@
%</package&body>
% \end{macrocode}
%
-% \begin{macro}{\DeclareLayer}
+% \begin{command}{\DeclareLayer}
% \begin{description}
-% \item[\OParameter{option list}:] a comma separated list of
+% \item[\oarg{option list}:] a comma separated list of
% \texttt{\meta{key}=\meta{value}} pairs.
-% \item[\Parameter{string}:] the name of the layer (must be fully expandable
+% \item[\marg{string}:] the name of the layer (must be fully expandable
% and expand to a string only).
% \end{description}
% Layers are the basic elements of page styles. A layer has a name and several
@@ -1142,7 +1042,7 @@
\@namedef{scr@l@\scr@current@layer @h}{#4}%
}
% \end{macrocode}
-% \end{macro}%^^A \def@scr@l@pos
+% \end{macro}^^A \def@scr@l@pos
%
% There are basic, primitive attributes and compounding attributes. The basic
% attributes are:
@@ -1150,7 +1050,7 @@
% \item[\texttt{mode=\meta{command sequence}}:] the mode that should be used
% to output the \texttt{contents}. A command \cs{layer\meta{command
% sequence}mode} with one argument need to be defined.
-% \changes{v3.19}{2015/07/30}{new layer attribute \texttt{mode}}%^^A
+% \changes{v3.19}{2015/07/30}{new layer attribute \texttt{mode}}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{mode}{%
\scr@ifundefinedorrelax{layer#1mode}{\FamilyKeyStateUnknownValue}{%
@@ -1217,7 +1117,7 @@
% \end{macrocode}
% \item[\texttt{contents=\meta{output}}:] whatever should be printed by the
% layer.
-% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}%^^A
+% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{contents}{%
\long\@namedef{scr@l@\scr@current@layer @contents}{#1}%
@@ -1248,7 +1148,7 @@
% \end{macrocode}
% \item[\texttt{backandforeground}:] not really useful, but the counterpart of
% the restrictions above.
-% \changes{v3.18}{2015/05/14}{new layer feature \texttt{backandforeground}}%^^A
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{backandforeground}}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{backandforeground}[\relax]{%
\FamilyKeyStateProcessed
@@ -1316,7 +1216,7 @@
\ExecuteFamilyOptions[.definelayer]{KOMAarg}{oddorevenpage=#1}
}
% \end{macrocode}
-% \item[\Option{floatpage}:] restrict the layer to float pages.
+% \item[\opt{floatpage}:] restrict the layer to float pages.
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{floatpage}[\relax]{%
\FamilyKeyStateProcessed
@@ -1325,7 +1225,7 @@
\csname @scr@l@\scr@current@layer @floatpagetrue\endcsname
}
% \end{macrocode}
-% \item[\Option{nonfloatpage}:] restrict the layer to pages, which aren't
+% \item[\opt{nonfloatpage}:] restrict the layer to pages, which aren't
% float pages.
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatpage}[\relax]{%
@@ -1335,7 +1235,7 @@
\csname @scr@l@\scr@current@layer @floatpagefalse\endcsname
}
% \end{macrocode}
-% \item[\Option{floatornonfloatpage}:] don't restrict the layer to float or
+% \item[\opt{floatornonfloatpage}:] don't restrict the layer to float or
% non-float pages.
% \changes{v3.18}{2015/05/14}{new layer feature \texttt{floatornonfloatpage}}
% \begin{macrocode}
@@ -1346,7 +1246,7 @@
\csname @scr@l@\scr@current@layer @floatpagetrue\endcsname
}
% \end{macrocode}
-% \item[\Option{nonfloatorfloatpage}:] same as \Option{floatornonfloatpage}
+% \item[\opt{nonfloatorfloatpage}:] same as \opt{floatornonfloatpage}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatorfloatpage}[\relax]{%
\PackageWarning{scrlayer}{Option `nonfloatorfloatpage' unknown.\MessageBreak
@@ -1354,7 +1254,7 @@
\FamilyExecuteOptions[.definelayer]{KOMAarg}{floatornonfloatpage=#1}%
}
% \end{macrocode}
-% \item[\Option{floatandnonfloatpages}:] same as \Option{floatornonfloatpage}
+% \item[\opt{floatandnonfloatpages}:] same as \opt{floatornonfloatpage}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{floatandnonfloatpages}[\relax]{%
\PackageWarning{scrlayer}{Option `floatandnonfloatpages' unknown.\MessageBreak
@@ -1362,7 +1262,7 @@
\FamilyExecuteOptions[.definelayer]{KOMAarg}{floatornonfloatpage=#1}%
}
% \end{macrocode}
-% \item[\Option{nonfloatandfloatpages}:] same as \Option{floatornonfloatpage}
+% \item[\opt{nonfloatandfloatpages}:] same as \opt{floatornonfloatpage}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatandfloatpages}[\relax]{%
\PackageWarning{scrlayer}{Option `nonfloatandfloatpages' unknown.\MessageBreak
@@ -1370,11 +1270,11 @@
\FamilyExecuteOptions[.definelayer]{KOMAarg}{floatornonfloatpage=#1}%
}
% \end{macrocode}
-% \item[\Option{everypage}:] remove all odd-, even-, float-, and
+% \item[\opt{everypage}:] remove all odd-, even-, float-, and
% nonfloat-restrictions.
-% \changes{v3.18}{2015/05/14}{new layer feature \texttt{everypage}}%^^A
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{everypage}}
% \changes{v3.22}{2016/09/24}{foreground and background condition
-% removed}%^^A
+% removed}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{everypage}[\relax]{%
\FamilyKeyStateProcessed
@@ -1385,7 +1285,7 @@
\csname @scr@l@\scr@current@layer @floatpagetrue\endcsname
}
% \end{macrocode}
-% \item[\Option{oneside}:] restrict the layer to pages on single-sided
+% \item[\opt{oneside}:] restrict the layer to pages on single-sided
% layouts.
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{oneside}[\relax]{%
@@ -1395,7 +1295,7 @@
\csname @scr@l@\scr@current@layer @onesidetrue\endcsname
}
% \end{macrocode}
-% \item[\Option{twoside}:] restrict the layer to pages on two-sided
+% \item[\opt{twoside}:] restrict the layer to pages on two-sided
% layouts.
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{twoside}[\relax]{%
@@ -1405,7 +1305,7 @@
\csname @scr@l@\scr@current@layer @onesidefalse\endcsname
}
% \end{macrocode}
-% \item[\Option{everyside}:] remove all one- or two-side restrictions.
+% \item[\opt{everyside}:] remove all one- or two-side restrictions.
% \changes{v3.18}{2015/05/14}{new layer feature \texttt{everyside}}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{everyside}[\relax]{%
@@ -1415,11 +1315,11 @@
\csname @scr@l@\scr@current@layer @onesidetrue\endcsname
}
% \end{macrocode}
-% \item[\Option{unrestricted}:] remove all restrictions
-% \changes{v3.18}{2015/05/14}{new layer feature \texttt{unrestricted}}%^^A
+% \item[\opt{unrestricted}:] remove all restrictions
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{unrestricted}}
% \changes{v3.22}{2016/09/24}{missing background and foreground
-% condition}%^^A
-% \changes{v3.22}{2016/09/24}{nonfloatpage condition fixed}%^^A
+% condition}
+% \changes{v3.22}{2016/09/24}{nonfloatpage condition fixed}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{unrestricted}[\relax]{%
\FamilyKeyStateProcessed
@@ -1434,24 +1334,24 @@
\csname @scr@l@\scr@current@layer @onesidetrue\endcsname
}
% \end{macrocode}
-% \changes{v3.26}{2018/07/14}{new attribute \texttt{beforecontents}}%^^A
-% \item[\Option{beforecontents}:] code to be executed immediately before
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{beforecontents}}
+% \item[\opt{beforecontents}:] code to be executed immediately before
% setting the contents. See also modification attribute
% \texttt{addbeforecontents}.
% \begin{macrocode}
\FamilyCSKey[.definelayer]{KOMAarg}{beforecontents}
{scr@l@\scr@current@layer @precontents@hook}
% \end{macrocode}
-% \changes{v3.26}{2018/07/14}{new attribute \texttt{aftercontents}}%^^A
-% \item[\Option{aftercontents}:] code to be executed immediately before
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{aftercontents}}
+% \item[\opt{aftercontents}:] code to be executed immediately before
% setting the contents. See also modification attribute
% \texttt{addaftercontents}.
% \begin{macrocode}
\FamilyCSKey[.definelayer]{KOMAarg}{aftercontents}
{scr@l@\scr@current@layer @postcontents@hook}
% \end{macrocode}
-% \changes{v3.26}{2018/07/14}{new attribute \texttt{artifact}}%^^A
-% \item[\Option{artifact}:] reserved for tagging packages. The artifact can
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{artifact}}
+% \item[\opt{artifact}:] reserved for tagging packages. The artifact can
% either be a boolean or a general value. Boolean false will unset the
% attribute. Boolean true is the same like empty. All other values will be
% stored.
@@ -1477,7 +1377,7 @@
% Attribute modifications are attributes, that modify existing basic
% attributes:
% \begin{description}
-% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addhoffset}}%^^A
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addhoffset}}
% \item[\texttt{addhoffset=\meta{dimension expression}}:] add to offset from
% the left edge of the paper.
% \begin{macrocode}
@@ -1488,7 +1388,7 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addvoffset}}%^^A
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addvoffset}}
% \item[\texttt{addvoffset=\meta{dimension expression}}:] add to offset from
% the top edge of the paper.
% \begin{macrocode}
@@ -1499,7 +1399,7 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addwidth}}%^^A
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addwidth}}
% \item[\texttt{addwidth=\meta{dimension expression}}:] add to width of the
% layer.
% \begin{macrocode}
@@ -1510,7 +1410,7 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addheight}}%^^A
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addheight}}
% \item[\texttt{addheight=\meta{dimension expression}}:] add to height of the
% layer.
% \begin{macrocode}
@@ -1521,10 +1421,10 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addcontents}}%^^A
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addcontents}}
% \item[\texttt{addcontents=\meta{output}}:] append to whatever should be
% printed by the layer.
-% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}%^^A
+% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{addcontents}{%
\expandafter\edef\csname scr@l@\scr@current@layer @contents\endcsname{%
@@ -1533,10 +1433,10 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{pretocontents}}%^^A
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{pretocontents}}
% \item[\texttt{pretocontents=\meta{output}}:] prefix whatever should be
% printed by the layer.
-% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}%^^A
+% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{pretocontents}{%
\expandafter\edef\csname scr@l@\scr@current@layer @contents\endcsname{%
@@ -1545,8 +1445,8 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.26}{2018/07/14}{new attribute \texttt{addbeforecontents}}%^^A
-% \item[\Option{addbeforecontents}:] code to be executed immediately before
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{addbeforecontents}}
+% \item[\opt{addbeforecontents}:] code to be executed immediately before
% setting the contents. The new code will be added before the old code.
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{addbeforecontents}{%
@@ -1564,8 +1464,8 @@
\FamilyKeyStateProcessed
}
% \end{macrocode}
-% \changes{v3.26}{2018/07/14}{new attribute \texttt{addaftercontents}}%^^A
-% \item[\Option{addaftercontents}:] code to be executed immediately before
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{addaftercontents}}
+% \item[\opt{addaftercontents}:] code to be executed immediately before
% setting the contents. The new code will be added after the old code.
% \begin{macrocode}
\DefineFamilyKey[.definelayer]{KOMAarg}{addaftercontents}{%
@@ -1818,7 +1718,7 @@
\@namedef{scr@l@\scr@current@layer @align}{tl}%
}
% \end{macrocode}
-% \item[\texttt{area=\{\meta{hoffset}\}\{\meta{voffset}\}%^^A
+% \item[\texttt{area=\{\meta{hoffset}\}\{\meta{voffset}\}
% \{\meta{width}\}\{\meta{height}\}}:] set up
% \texttt{hoffset}, \texttt{voffset}, \texttt{width}, and \texttt{height} to
% the given values.
@@ -1829,7 +1729,7 @@
}
% \end{macrocode}
% \changes{v3.26}{2018/07/14}{clone code for \texttt{precontents@hook},
-% \texttt{postcontents@hook} and \texttt{artifact} added}%^^A
+% \texttt{postcontents@hook} and \texttt{artifact} added}^^A
% \item[\texttt{clone=\meta{layer}}:] set up the new layer by the settings
% of the given \meta{layer}.
% \begin{macrocode}
@@ -1877,13 +1777,12 @@
\csname if@scr@l@#2@#3\expandafter\endcsname
}
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@clone@switch
-% \end{macro}%^^A \scrlayer@clone@attribute
+% \end{macro}^^A \scrlayer@clone@switch
+% \end{macro}^^A \scrlayer@clone@attribute
% \end{description}
%
-% \changes{v0.9}{2014/08/31}{missing reset of \cs{scr@current@layer}
-% added}%^^A
-% \changes{v3.14}{2014/10/20}{\cs{long}}%^^A
+% \changes{v0.9}{2014/08/31}{missing reset of \cs{scr@current@layer} added}
+% \changes{v3.14}{2014/10/20}{\cs{long}}
% \begin{macrocode}
\newcommand{\DeclareLayer}[2][]{%
\def\scr@current@layer{#2}%
@@ -1916,20 +1815,20 @@
% \end{macrocode}
% \begin{macro}{\scr@current@layer}
% Helper to hold the current layer and only valid in non recursive calls of
-% \Macro{DeclareLayer}.
+% \cs{DeclareLayer}.
% \begin{macrocode}
\newcommand*{\scr@current@layer}{}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@current@layer
-% \end{macro}%^^A \DeclareLayer
+% \end{macro}^^A \scr@current@layer
+% \end{command}^^A \DeclareLayer
%
-% \begin{macro}{\IfLayerExists}
+% \begin{command}{\IfLayerExists}
% \begin{description}
-% \item[\Parameter{string}:] the name of the layer (must be fully expandable
+% \item[\marg{string}:] the name of the layer (must be fully expandable
% and expand to a string only).
-% \item[\Parameter{then code}:] will be executed, if the layer exists.
-% \item[\Parameter{else code}:] will be executed, if the layer doesn't exist.
+% \item[\marg{then code}:] will be executed, if the layer exists.
+% \item[\marg{else code}:] will be executed, if the layer doesn't exist.
% \end{description}
% Note, that we don't known really whether or not a layer exists, but have a
% heuristic.
@@ -1944,19 +1843,15 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \IfLayerExists
+% \end{command}^^A \IfLayerExists
%
-% \begin{macro}{\DeclareNewLayer}
-% \changes{v3.14}{2014/10/20}{\cs{long}}%^^A
-% \begin{macro}{\ProvideLayer}
-% \changes{v3.14}{2014/10/20}{\cs{long}}%^^A
-% \begin{macro}{\RedeclareLayer}
-% \changes{v3.14}{2014/10/20}{\cs{long}}%^^A
-% \begin{macro}{\ModifyLayer}
-% \changes{v3.14}{2014/10/20}{\cs{long}}%^^A
+% \begin{command}{\DeclareNewLayer,\ProvideLayer,\RedeclareLayer}
+% \changes{v3.14}{2014/10/20}{\cs{long}}
+% \begin{command}{\ModifyLayer}
+% \changes{v3.14}{2014/10/20}{\cs{long}}
% \changes{v0.9}{2014/08/31}{missing definition and reset of
-% \cs{scr@current@layer} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \cs{scr@current@layer} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% There are also two commands for declaration of layers, that haven't been
% declared before, with or without error message for already declared layers,
% and two commands for changing already declared layers, first one beginning
@@ -2021,14 +1916,12 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \ModifyLayer
-% \end{macro}%^^A \RedeclareLayer
-% \end{macro}%^^A \ProvideLayer
-% \end{macro}%^^A \DeclareNewLayer
+% \end{command}^^A \ModifyLayer
+% \end{command}^^A \DeclareNewLayer,\ProvideLayer,\RedeclareLayer
%
-% \begin{macro}{\ModifyLayers}
-% \changes{v3.26}{2018/07/14}{new}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
+% \begin{command}{\ModifyLayers}
+% \changes{v3.26}{2018/07/14}{added}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
% Like \cs{ModifyLayer} but allows a list of layers instead of only one layer.
% For the commands \cs{DeclareLayer}, \cs{ProvideLayer} and
% \cs{RedeclareLayer} this does not make any sense, so there are not similar
@@ -2050,12 +1943,12 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \ModifyLayers
+% \end{command}^^A \ModifyLayers
%
-% \begin{macro}{\GetLayerContents}
-% \changes{v3.16}{2015/01/26}{new}
+% \begin{command}{\GetLayerContents}
+% \changes{v3.16}{2015/01/26}{added}
% \begin{description}
-% \item[\Parameter{string}:] the name of the layer
+% \item[\marg{string}:] the name of the layer
% \end{description}
% Get the contents of the given layer.
% \begin{macrocode}
@@ -2068,22 +1961,22 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \begin{macro}{\DestroyLayer}
+% \begin{command}{\DestroyLayer}
% \changes{v3.26}{2018/07/14}{destroy pre-contents hook, post-contents hook
-% and artifact}%^^A
+% and artifact}
% \begin{description}
-% \item[\Parameter{string}:] the name of the layer, that should be
+% \item[\marg{string}:] the name of the layer, that should be
% destroyed
% \end{description}
% Note: Nothing will be done to remove the layer from a page style, but this
% shouldn't matter, because layers with, e.g.,
-% \Macro{if@scr@l@\dots@nonfloatpage}=\Macro{relax} and
-% \Macro{if@scr@l@\dots@floatpage}=\Macro{relax} won't be output ever. This
+% \cs{if@scr@l@\dots@nonfloatpage}=\cs{relax} and
+% \cs{if@scr@l@\dots@floatpage}=\cs{relax} won't be output ever. This
% command could be used by interfaces via
-% \Macro{scrlayerOnAutoRemoveInterface} to remove the generated
+% \cs{scrlayerOnAutoRemoveInterface} to remove the generated
% layers, if the interface commands wouldn't be depreacted.
% However, it only destroys existing layers and doesn't care for not
% existing.
@@ -2136,11 +2029,11 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \DestroyLayer
+% \end{command}^^A \DestroyLayer
%
%
-% \begin{macro}{\layercontentsmeasure}
-% \changes{v3.19}{2015/07/27}{\cs{@gobble} eliminated}%^^A
+% \begin{command}{\layercontentsmeasure}
+% \changes{v3.19}{2015/07/27}{\cs{@gobble} eliminated}
% This may used by used as the only value of the layer option
% \texttt{contents} to show measure lines around the layer. The left and the
% top measure line will be in centimeter, the right and the bottom measure
@@ -2233,8 +2126,8 @@
\end{picture}}%
}
% \end{macrocode}
-% \begin{macro}{\LenToUnit}
-% \changes{v3.19}{2015/07/27}{new}
+% \begin{command}{\LenToUnit}
+% \changes{v3.19}{2015/07/27}{added}
% Due to an incompatibility of package \textsf{curve2e} I've eliminated
% \cs{@gobble} in the definition of \cs{layercontentsmeasure} and replaced it
% sometimes by \cs{LenToUnit} with the (not long) definition suggested by
@@ -2243,8 +2136,8 @@
\providecommand*{\LenToUnit}[1]{\strip@pt\dimexpr#1*\p@/\unitlength}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \LenToUnit
-% \end{macro}%^^A \layercontentsmeasure
+% \end{command}^^A \LenToUnit
+% \end{command}^^A \layercontentsmeasure
%
%
% \subsection{Providing Page Styles}
@@ -2261,7 +2154,7 @@
% will be used only at two-sided mode. At one-sided mode the header and footer
% for odd pages will be used for all pages.
%
-% With package \Package{scrlayer} layers will be linked to package styles and
+% With package \pkg*{scrlayer} layers will be linked to package styles and
% expanded at the four elements above. Background layers will expand only
% at the headers. Foreground layers will expand only at the
% footers. Layers, that haven't been restricted to background or foreground,
@@ -2284,14 +2177,14 @@
% floats.
%
% \begin{length}{\footheight}
-% For the header \LaTeX{} already defines a length \Length{headheight} to be
+% For the header \LaTeX{} already defines a length \len{headheight} to be
% the maximum height of the header. But for footer it only defines the
% distance of the baseline of the footer from the last baseline of the text
-% area. \Package{scrlayer} changes this and also defines a new length
-% \Length{footheight}. This length will be initialised with magic value
+% area. \pkg*{scrlayer} changes this and also defines a new length
+% \len{footheight}. This length will be initialised with magic value
% -12345\,sp. But if it is still that magic value at
-% \Macro{begin}\PParameter{document} it will be reset to the value of
-% \Length{baselineskip}.
+% \cs{begin}\texttt\{\env{document}\texttt\} it will be reset to the value of
+% \len{baselineskip}.
% \begin{macrocode}
%<*package&init>
\@ifundefined{footheight}{%
@@ -2316,7 +2209,7 @@
}
%</package&init>
% \end{macrocode}
-% \end{length}%^^A \footheight
+% \end{length}^^A \footheight
%
%
% Several of the following commands use \meta{key}=\meta{value} arguments. So
@@ -2328,13 +2221,13 @@
%</package&body>
% \end{macrocode}
%
-% \begin{macro}{\DeclarePageStyleByLayers}
+% \begin{command}{\DeclarePageStyleByLayers}
% \begin{description}
-% \item[\OParameter{option list}:] comma separated list of named page
+% \item[\oarg{option list}:] comma separated list of named page
% style options (see below).
-% \item[\Parameter{string}:] the name of the page style to be declared (must
+% \item[\marg{string}:] the name of the page style to be declared (must
% be expandable and result in a string).
-% \item[\Parameter{string list}:] comma separated list of layer names (must
+% \item[\marg{string list}:] comma separated list of layer names (must
% be expandable and result in strings); first in the list will be added
% first.
% \end{description}
@@ -2345,8 +2238,8 @@
% pages in \cs{@oddhead}, all background layers for even pages on
% \cs{@evenhead}, all foreground layers for odd pages in \cs{@oddfoot}, and
% all foreground layers for even pages in \cs{@evenfoot}. This may be
-% restricted by additional attributes, e.g., \Option{oneside} and
-% \Option{twoside}.
+% restricted by additional attributes, e.g., \opt{oneside} and
+% \opt{twoside}.
%
% The optional argument may be used to define hooks. There are six named
% optional arguments to set up six hooks. And there are also \KOMAScript{}
@@ -2355,13 +2248,13 @@
% argument are named similar, but without ``\texttt{ps}'' after
% ``\texttt{on}''.
% \begin{option}{onselect}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsselect}
% \begin{macro}{\@ps@initialhook}
% \begin{description}
% \item[\texttt{=\meta{code}}:] executes \meta{code} whenever the
-% page style will be selected, e.g. using \Macro{pagestyle} or
-% \Macro{thispagestyle} or the low level command defining the page
+% page style will be selected, e.g. using \cs{pagestyle} or
+% \cs{thispagestyle} or the low level command defining the page
% style itself.
% \end{description}
% \begin{macrocode}
@@ -2391,8 +2284,8 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@initialhook
-% \end{option}%^^A onpsselect
+% \end{macro}^^A \@ps@initialhook
+% \end{option}^^A onpsselect
% \begin{option}{onpsinit}
% \begin{macro}{\@ps@hook}
% \begin{description}
@@ -2428,16 +2321,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@hook
-% \end{option}%^^A onpsinit
-% \end{option}%^^A oninit
+% \end{macro}^^A \@ps@hook
+% \end{option}^^A onpsinit
+% \end{option}^^A oninit
% \begin{option}{ononeside}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsoneside}
% \begin{macro}{\@ps@onesidehook}
% \begin{description}
-% \item[\Option{=\meta{code}}:] executes \meta{code} after
-% \Option{oninit}'s \meta{code} whenever the output of a layer stack of a
+% \item[\opt{=\meta{code}}:] executes \meta{code} after
+% \opt{oninit}'s \meta{code} whenever the output of a layer stack of a
% page in single-side layout is initialised. Note, that \meta{code} must not
% result in any page output. Otherwise the output of the layer stack will be
% broken!
@@ -2469,16 +2362,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@onesidehook
-% \end{option}%^^A onpsoneside
-% \end{option}%^^A ononeside
+% \end{macro}^^A \@ps@onesidehook
+% \end{option}^^A onpsoneside
+% \end{option}^^A ononeside
% \begin{option}{ontwoside}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpstwoside}
% \begin{macro}{\@ps@twosidehook}
% \begin{description}
-% \item[\Option{=\meta{code}}:] executes \meta{code} after
-% \Option{oninit}'s \meta{code} whenever the output of a layer stack of a
+% \item[\opt{=\meta{code}}:] executes \meta{code} after
+% \opt{oninit}'s \meta{code} whenever the output of a layer stack of a
% page in two-side layout is initialised. Note, that \meta{code} must not
% result in any page output. Otherwise the output of the layer stack will be
% broken!
@@ -2510,16 +2403,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@twosidehook
-% \end{option}%^^A onpstwoside
-% \end{option}%^^A ontwoside
+% \end{macro}^^A \@ps@twosidehook
+% \end{option}^^A onpstwoside
+% \end{option}^^A ontwoside
% \begin{option}{onoddpage}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsoddpage}
% \begin{macro}{\@ps@oddpagehook}
% \begin{description}
% \item[\texttt{=\meta{code}}:] executes \meta{code} after
-% \Option{ononeside}'s or \Option{ontwoside}'s \meta{code} whenever the
+% \opt{ononeside}'s or \opt{ontwoside}'s \meta{code} whenever the
% output of a layer stack of an odd page is initialised. Note, that
% \meta{code} must not result in any page output. Otherwise the output of
% the layer stack will be broken!
@@ -2551,16 +2444,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@oddpagehook
-% \end{option}%^^A onpsoddpage
-% \end{option}%^^A onoddside
+% \end{macro}^^A \@ps@oddpagehook
+% \end{option}^^A onpsoddpage
+% \end{option}^^A onoddside
% \begin{option}{onevenpage}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsevenpage}
% \begin{macro}{\@ps@evenpagehook}
% \begin{description}
% \item[\texttt{=\meta{code}}:] executes \meta{code} after
-% \Option{ononeside}'s or \Option{ontwoside}'s \meta{code} whenever the
+% \opt{ononeside}'s or \opt{ontwoside}'s \meta{code} whenever the
% output of a layer stack of an even page is initialised. Note, that
% \meta{code} must not result in any page output. Otherwise the output of
% the layer stack will be broken!
@@ -2592,16 +2485,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@evenpagehook
-% \end{option}%^^A onpsevenpage
-% \end{option}%^^A onevenside
+% \end{macro}^^A \@ps@evenpagehook
+% \end{option}^^A onpsevenpage
+% \end{option}^^A onevenside
% \begin{option}{onfloatpage}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsfloatpage}
% \begin{macro}{\@ps@floatpagehook}
% \begin{description}
-% \item[\Option{=\meta{code}}:] executes \meta{code} after
-% \Option{onoddpage}'s or \Option{onevenpage}'s \meta{code} whenever a float
+% \item[\opt{=\meta{code}}:] executes \meta{code} after
+% \opt{onoddpage}'s or \opt{onevenpage}'s \meta{code} whenever a float
% column has been made (usually those pages are float pages).
% \end{description}
% \begin{macrocode}
@@ -2631,16 +2524,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@floatpagehook
-% \end{option}%^^A onpsfloatpage
-% \end{option}%^^A onfloatpage
+% \end{macro}^^A \@ps@floatpagehook
+% \end{option}^^A onpsfloatpage
+% \end{option}^^A onfloatpage
% \begin{option}{onnonfloatpage}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsnonfloatpage}
% \begin{macro}{\@ps@nonfloatpagehook}
% \begin{description}
-% \item[\Option{=\meta{code}}:] executes \meta{code} after
-% \Option{onoddpage}'s or \Option{onevenpage}'s \meta{code} whenever no
+% \item[\opt{=\meta{code}}:] executes \meta{code} after
+% \opt{onoddpage}'s or \opt{onevenpage}'s \meta{code} whenever no
% float column has been made (usually those pages aren't float pages).
% \end{description}
% \begin{macrocode}
@@ -2670,16 +2563,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@nonfloatpagehook
-% \end{option}%^^A onpsnonfloatpage
-% \end{option}%^^A onnonfloatpage
+% \end{macro}^^A \@ps@nonfloatpagehook
+% \end{option}^^A onpsnonfloatpage
+% \end{option}^^A onnonfloatpage
% \begin{option}{onbackground}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsbackground}
% \begin{macro}{\@ps@backgroundhook}
% \begin{description}
% \item[\texttt{=\meta{code}}:] executes \meta{code} after
-% \Option{onfloatpage}'s or \Option{onnonfloatpage}'s \meta{code} whenever
+% \opt{onfloatpage}'s or \opt{onnonfloatpage}'s \meta{code} whenever
% the output of a background layer stack is initialised. Note, that
% \meta{code} must not result in any page output. Otherwise the output of
% the layer stack will be broken!
@@ -2711,16 +2604,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@ps@backgroundhook
-% \end{option}%^^A onbackground
-% \end{option}%^^A onbackground
+% \end{macro}^^A \@ps@backgroundhook
+% \end{option}^^A onbackground
+% \end{option}^^A onbackground
% \begin{option}{onforeground}
-% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}%^^A
+% \changes{v3.28}{2019/11/28}{marker for \cs{ModifyLayerPageStyleOptions}}
% \begin{option}{onpsforeground}
% \begin{macro}{\@ps@foregroundhook}
% \begin{description}
% \item[\texttt{=\meta{code}}:] executes \meta{code} after
-% \Option{onfloatpage}'s or \Option{onnonfloatpage}'s \meta{code} whenever
+% \opt{onfloatpage}'s or \opt{onnonfloatpage}'s \meta{code} whenever
% the output of a foreground layer stack is initialised. Note, that
% \meta{code} must not result in any page output. Otherwise the output of
% the layer stack will be broken!
@@ -2752,16 +2645,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \@psforegroundhook
-% \end{option}%^^A onpsforeground
-% \end{option}%^^A onforeground
+% \end{macro}^^A \@psforegroundhook
+% \end{option}^^A onpsforeground
+% \end{option}^^A onforeground
% \begin{option}{singlespacing}
-% \changes{v3.24}{2017/05/22}{new option added}%^^A
+% \changes{v3.24}{2017/05/22}{added}
% \begin{description}
% \item[\texttt{=\meta{simple switch}}:] if activated, all page styles will be
% set with line spread 1. This switch is global. If you want it for some
-% styles only, add \Macro{linespread}\PParameter{1}\Macro{selectfont} to
-% option \Option{oninit} of only those styles.
+% styles only, add \cs{linespread}|{1}|\cs{selectfont} to
+% option \opt{oninit} of only those styles.
%\end{description}
% \begin{macrocode}
%<*options>
@@ -2781,13 +2674,13 @@
% \end{macrocode}
% \begin{macro}{\scrlayer@declare@ps@by@layers}
% \changes{v3.15}{2014/12/28}{fix: \cs{linewidth} replaced by
-% \cs{textwidth}}%^^A
+% \cs{textwidth}}
% \changes{v3.18}{2015/06/09}{usage of \cs{parbox[b]} instead of
% \cs{parbox[t]} because of strange effect with package
-% \textsf{multicol}}%^^A
-% \changes{v3.24}{2017/05/22}{test for \cs{if@ps@singlespacing} added}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \textsf{multicol}}
+% \changes{v3.24}{2017/05/22}{test for \cs{if@ps@singlespacing} added}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Needed, because of page style aliases. Same arguments like
% \cs{DeclarePageStyleByLayers} but, \#1 is the name of the page style, \#2 is
% the list of options and \#3 is still the list of layers.
@@ -2952,17 +2845,17 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@declare@ps@by@layers
+% \end{macro}^^A \scrlayer@declare@ps@by@layers
%
-% \begin{macro}{\ForEachLayerOfPageStyle}
-% \changes{v3.18}{2015/05/14}{star version of the command}%^^A
+% \begin{command}{\ForEachLayerOfPageStyle}
+% \changes{v3.18}{2015/05/14}{star version of the command}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% ersetzt}
% \begin{description}
-% \item[\Parameter{string}:] a valid page style (must be fully expandable
+% \item[\marg{string}:] a valid page style (must be fully expandable
% and expand to the name of a existing page style); note, that currently
% no exists test will be done.
-% \item[\Parameter{code}:] any macro definition body with usage of at most
+% \item[\marg{code}:] any macro definition body with usage of at most
% one argument (\texttt{\#1}), that will be replaced by the layer's name
% \end{description}
% Do the given \meta{code} for each layer of the page style
@@ -2998,12 +2891,12 @@
% \begin{option}{deactivatepagestylelayers}
% \begin{macro}{\ifscrlayer@deactivate@layers}
% \begin{description}
-% \item[\Parameter{simple switch}:] whether or not
-% \Macro{ForEachLayerOfPageStyle} should ignore the layers.
+% \item[\marg{simple switch}:] whether or not
+% \cs{ForEachLayerOfPageStyle} should ignore the layers.
% \end{description}
% This is a global \KOMAScript{} options. Several other definitions and at
% least the usage of the page style will ignore the layers if
-% \Macro{ForEachLayerOfPageStyle} ignores them. So this is something like:
+% \cs{ForEachLayerOfPageStyle} ignores them. So this is something like:
% hide the layers. It may also be useful inside the code for the hooks
% described above, because hooks may used to deactivate the layers with this
% option too.
@@ -3030,12 +2923,12 @@
\relax
%</interface&body>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@deactivate@layers
-% \end{option}%^^A deactivatepagestylelayers
-% \end{macro}%^^A \ForEachLayerOfPageStyle
+% \end{macro}^^A \ifscrlayer@deactivate@layers
+% \end{option}^^A deactivatepagestylelayers
+% \end{command}^^A \ForEachLayerOfPageStyle
%
% \begin{macro}{\scrlayer@do@page@style@element@layer}
-% \changes{v3.26}{2018/07/14}{added hooks and artifact code}%^^A
+% \changes{v3.26}{2018/07/14}{added hooks and artifact code}
% Helper macro to show one layer. First argument is either ``background'' or
% ``foreground'', second argument is either ``odd'' or ``even'', and third
% argument is the name of the layer. Note, that in draft mode for every layer
@@ -3102,13 +2995,13 @@
}
% \end{macrocode}
% \begin{macro}{\scrlayer@predraftmeasure@hook}
-% \changes{v3.26}{2018/07/14}{new (internal)}%^^A
+% \changes{v3.26}{2018/07/14}{added}
% The hooks that will be executed before setting the draft measuring.
% \begin{macrocode}
\newcommand*{\scrlayer@predraftmeasure@hook}{}
% \end{macrocode}
-% \begin{macro}{\BeforeDraftMeasuringLayer}
-% \changes{v3.26}{2018/07/14}{new}%^^A
+% \begin{command}{\BeforeDraftMeasuringLayer}
+% \changes{v3.26}{2018/07/14}{added}
% New code will be added in front of the hook.
% \begin{macrocode}
\newcommand*{\BeforeDraftMeasuringLayer}[1]{%
@@ -3117,16 +3010,16 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \BeforeDraftMeasuringLayer
-% \end{macro}%^^A \scrlayer@predraftmeasure@hook
+% \end{command}^^A \BeforeDraftMeasuringLayer
+% \end{macro}^^A \scrlayer@predraftmeasure@hook
% \begin{macro}{\scrlayer@postdraftmeasure@hook}
-% \changes{v3.26}{2018/07/14}{new (internal)}%^^A
+% \changes{v3.26}{2018/07/14}{added}
% The hook that will be executed after setting the draft measuring.
% \begin{macrocode}
\newcommand*{\scrlayer@postdraftmeasure@hook}{}
% \end{macrocode}
-% \begin{macro}{\AfterDraftMeasuringLayer}
-% \changes{v3.26}{2018/07/14}{new}%^^A
+% \begin{command}{\AfterDraftMeasuringLayer}
+% \changes{v3.26}{2018/07/14}{added}
% New code will be added at the end of the hook.
% \begin{macrocode}
\newcommand*{\AfterDraftMeasuringLayer}[1]{%
@@ -3135,16 +3028,16 @@
}%
}
% \end{macrocode}
-% \end{macro}%^^A \AfterDraftMeasuringLayer
-% \end{macro}%^^A \scrlayer@postdraftmeasure@hook
+% \end{command}^^A \AfterDraftMeasuringLayer
+% \end{macro}^^A \scrlayer@postdraftmeasure@hook
% \begin{macro}{\scr@layerbox}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\scr@@layerbox}
-% \changes{v3.24}{2017/05/08}{\cs{edef} replaced by \cs{protected@edef}}%^^A
-% \changes{v3.24}{2017/05/08}{\cs{dimexpr} added to \cs{layer\dots}}%^^A
+% \changes{v3.24}{2017/05/08}{\cs{edef} replaced by \cs{protected@edef}}
+% \changes{v3.24}{2017/05/08}{\cs{dimexpr} added to \cs{layer\dots}}
% \changes{v3.24}{2017/05/08}{\cs{dimexpr} removed from usage of
-% \cs{layer\dots}}%^^A
+% \cs{layer\dots}}
% The layer box is used to output a layer in \cs{@oddhead}, \cs{@evenhead},
% \cs{@oddfoot}, or \cs{@evenfoot}. Is has two pairs of arguments: ($x,y$)
% and ($w,h$), where $x$ is the distance from left paper edge, $y$ is the
@@ -3199,8 +3092,8 @@
\if b\layervalign\vskip-\layerheight\fi
\if c\layervalign\vskip-.5\layerheight\fi
% \end{macrocode}
-% \changes{3.23a}{2017/04/22}{\textsf{bidi} code added}%^^A
-% \changes{v3.24}{2017/05/04}{usage of \textsf{scrbase}'s \cs{IfRTL}}%^^A
+% \changes{3.23a}{2017/04/22}{\textsf{bidi} code added}
+% \changes{v3.24}{2017/05/04}{usage of \textsf{scrbase}'s \cs{IfRTL}}
% If we are in right-to-left mode of package \textsf{bidi} or
% \textsf{xepersian} the horizontal output is in the opposite direction. So we
% need the \cs{makebox} to the right instead of the left and to move the
@@ -3227,13 +3120,11 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scr@@layerbox
-% \end{macro}%^^A \scr@layerbox
+% \end{macro}^^A \scr@@layerbox
+% \end{macro}^^A \scr@layerbox
%
-% \begin{macro}{\layerrawmode}
-% \changes{v3.19}{2015/07/30}{new command}%^^A
-% \begin{macro}{\layertextmode}
-% \changes{v3.19}{2015/07/30}{new command}%^^A
+% \begin{command}{\layerrawmode,\layertextmode}
+% \changes{v3.19}{2015/07/30}{added}
% This is the command to output layers in raw mode. This is very simple:
% \begin{macrocode}
%<*package&body>
@@ -3241,12 +3132,11 @@
\newcommand{\layertextmode}[1]{#1}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \layertextmode
-% \end{macro}%^^A \layerrawmode
+% \end{command}^^A \layerrawmode,\layertextmode
%
-% \begin{macro}{\layerpicturemode}
-% \changes{v3.19}{2015/07/30}{new command}%^^A
-% \changes{v3.24}{2017/05/08}{redundant \cs{dimexpr} removed}%^^A
+% \begin{command}{\layerpicturemode}
+% \changes{v3.19}{2015/07/30}{added}
+% \changes{v3.24}{2017/05/08}{redundant \cs{dimexpr} removed}
% This is a bit more complicated. It is the layer output for \texttt{picture}
% layers. In this case we use a picture environment and internally define some
% additional commands.
@@ -3273,16 +3163,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \layerpicturemode
+% \end{command}^^A \layerpicturemode
%
% \begin{option}{draft}
-% \begin{macro}{\ifscrlayer@draft}
+% \begin{macro}{\ifscrlayer@draft,\scrlayer@drafttrue,\scrlayer@draftfalse}
% \begin{description}
-% \item[\Parameter{simple switch}:] whether or not to use the draft mode,
+% \item[\marg{simple switch}:] whether or not to use the draft mode,
% that, i.e., activates visualisation of the layers.
% \end{description}
% When option is set, every layer is shown twice: one time with it's own
-% contents and one time with contents \Macro{layercontentsmeasure}.
+% contents and one time with contents \cs{layercontentsmeasure}.
% \begin{macrocode}
%<*options>
%<*package>
@@ -3303,20 +3193,20 @@
\csname KV@KOMA.\@currname.\@currext @draft@default\endcsname\relax
%</interface&body>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@draft
-% \end{option}%^^A draft
-% \end{macro}%^^A \scrlayer@do@page@style@element@layer
-% \end{macro}%^^A \DeclarePageStyleByLayers
+% \end{macro}^^A \ifscrlayer@draft
+% \end{option}^^A draft
+% \end{macro}^^A \scrlayer@do@page@style@element@layer
+% \end{command}^^A \DeclarePageStyleByLayers
%
%
-% \begin{macro}{\DeclareNewPageStyleByLayers}
-% Arguments like \Macro{DeclarePageStyleByLayers}; results in error if the page
+% \begin{command}{\DeclareNewPageStyleByLayers}
+% Arguments like \cs{DeclarePageStyleByLayers}; results in error if the page
% style has been defined (or declared) already.
-% \begin{macro}{\ProvidePageStyleByLayers}
-% Arguments like \Macro{DeclarePageStyleByLayers}; doesn't define anything it
+% \begin{command}{\ProvidePageStyleByLayers}
+% Arguments like \cs{DeclarePageStyleByLayers}; doesn't define anything it
% the page style has been defined (or declared) already.
-% \begin{macro}{\RedeclarePageStyleByLayers}
-% Arguments like \Macro{DeclarePageStyleByLayers}; results in error if the page
+% \begin{command}{\RedeclarePageStyleByLayers}
+% Arguments like \cs{DeclarePageStyleByLayers}; results in error if the page
% style hasn't been defined (or declared) already.
% \begin{macrocode}
%<*package&body>
@@ -3379,47 +3269,48 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \RedeclarePageStyleByLayers
-% \end{macro}%^^A \ProvidePageStyleByLayers
-% \end{macro}%^^A \DeclareNewPageStyleByLayers
+% \end{command}^^A \RedeclarePageStyleByLayers
+% \end{command}^^A \ProvidePageStyleByLayers
+% \end{command}^^A \DeclareNewPageStyleByLayers
%
-% We also declare page style \Pagestyle{@everystyle@} by default. You should
+% \begin{pgstyle}{@everystyle@,empty}
+% We also declare page style \pstyle{@everystyle@} by default. You should
% not use this page style as an real page style (even not as the empty
% one). The layers of this page style will be used by every other layer page
-% style. An we re-declare \Pagestyle{empty} to be a layer page style.
+% style. An we re-declare \pstyle{empty} to be a layer page style.
% \begin{macrocode}
%<*package&final>
\DeclareNewPageStyleByLayers{@everystyle@}{}
\RedeclarePageStyleByLayers{empty}{}
%</package&final>
% \end{macrocode}
+% \end{pgstyle}
%
-% \begin{macro}{\AddLayersToPageStyle}
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\AddLayersAtBeginOfPageStyle}
-% \begin{macro}{\AddLayersAtEndOfPageStyle}
-% \begin{macro}{\RemoveLayersFromPageStyle}
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\AddLayersToPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{command}{\AddLayersAtBeginOfPageStyle,\AddLayersAtEndOfPageStyle}
+% \begin{command}{\RemoveLayersFromPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be modified (must
+% \item[\marg{string}:] the name of the page style to be modified (must
% be expandable and result in a string).
-% \item[\Parameter{string list}:] comma separated list of layer names (must
+% \item[\marg{string list}:] comma separated list of layer names (must
% be expandable and result in strings); first in the list will be added
% first.
% \end{description}
% Change the layer list of a given page style. The differences between the
% commands are:
% \begin{description}
-% \item[\Macro{AddLayersToPageStyle}:] first in the \meta{string list} will
+% \item[\cs{AddLayersToPageStyle}:] first in the \meta{string list} will
% be added first at the end.
-% \item[\Macro{AddLayersAtBeginOfPageStyle}:] first in the \meta{string list}
+% \item[\cs{AddLayersAtBeginOfPageStyle}:] first in the \meta{string list}
% will be added first at the start. Note, that this will result in changing
% the order of the layers in \meta{string list}.
-% \item[\Macro{AddLayerAtEndOfPageStyle}:] same like
-% \Macro{AddLayerToPageStyle}.
-% \item[\Macro{RemoveLayersFromPageStyle}:] remove the layers from the page
+% \item[\cs{AddLayerAtEndOfPageStyle}:] same like
+% \cs{AddLayerToPageStyle}.
+% \item[\cs{RemoveLayersFromPageStyle}:] remove the layers from the page
% style's layer list.
% \end{description}
% \begin{macrocode}
@@ -3456,7 +3347,7 @@
\begingroup\let\@elt\relax\xdef#1{\@elt #2#1}\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \@snoc
+% \end{macro}^^A \@snoc
% \begin{macrocode}
\newcommand*{\RemoveLayersFromPageStyle}[2]{%
\edef\reserved@b{\GetRealPageStyle{#1}}%
@@ -3475,7 +3366,7 @@
% \end{macrocode}
% \begin{macro}{\remove@layer@from@page@style}
% \changes{v0.9}{2014/07/25}{cleaning of layer list must be global}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Helper macro to remove exactly one layer (arg 1) from a page style (arg 2).
% \begin{macrocode}
\newcommand*{\remove@layer@from@page@style}[2]{%
@@ -3490,12 +3381,12 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \remoce@layer@from@page@style
+% \end{macro}^^A \remoce@layer@from@page@style
% \begin{macro}{\scrlayer@lpm@error}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be modified (must
+% \item[\marg{string}:] the name of the page style to be modified (must
% be expandable and result in a string).
-% \item[\Parameter{string}:] the kind of modification, that isn't allowed
+% \item[\marg{string}:] the kind of modification, that isn't allowed
% (must be expandable and result in a string).
% \end{description}
% Show an error because of page style it either not a defined or not a layer
@@ -3518,27 +3409,24 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@lpm@error
-% \end{macro}%^^A \RemoveLayersFromPageStyle
-% \end{macro}%^^A \AddLayersAtEndOfPageStyle
-% \end{macro}%^^A \AddLayersAtBeginOfPageStyle
-% \end{macro}%^^A \AddLayersToPageStyle
+% \end{macro}^^A \scrlayer@lpm@error
+% \end{command}^^A \RemoveLayersFromPageStyle
+% \end{command}^^A \AddLayersAtBeginOfPageStyle,\AddLayersAtEndOfPageStyle
+% \end{command}^^A \AddLayersToPageStyle
%
-% \begin{macro}{\AddLayersToPageStyleBeforeLayer}
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\AddLayersToPageStyleAfterLayer}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
+% \begin{command}{\AddLayersToPageStyleBeforeLayer,
+% \AddLayersToPageStyleAfterLayer}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be modified (must
+% \item[\marg{string}:] the name of the page style to be modified (must
% be expandable and result in a string).
-% \item[\Parameter{string list}:] comma separated list of layer names (must
+% \item[\marg{string list}:] comma separated list of layer names (must
% be expandable and result in strings); first in the list will be added
% first.
-% \item[\Parameter{string}:] the name of the layer before
-% (\Macro{AddLayersToPageStyleBeforeLayer}) or after
-% (\Macro{AddLayersToPageStyleAfterLayer}) that the layers of the list
+% \item[\marg{string}:] the name of the layer before
+% (\cs{AddLayersToPageStyleBeforeLayer}) or after
+% (\cs{AddLayersToPageStyleAfterLayer}) that the layers of the list
% should be added.
% \end{description}
% Note: If the layer from third argument is not part of the page style's layer
@@ -3601,14 +3489,14 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \AddLayersToPageStyleAfterLayer
-% \end{macro}%^^A \AddLayersToPageStyleBeforeLayer
+% \end{command}^^A \AddLayersToPageStyleBeforeLayer,
+% ^^A \AddLayersToPageStyleAfterLayer
%
%
-% \begin{macro}{\UnifyLayersAtPageStyle}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\UnifyLayersAtPageStyle}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be unified (must
+% \item[\marg{string}:] the name of the page style to be unified (must
% be expandable and result in a string).
% \end{description}
% Remove doublets of layers from a page style.
@@ -3635,20 +3523,19 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \UnifyLayersAtPageStyle
+% \end{command}^^A \UnifyLayersAtPageStyle
%
-% \begin{macro}{\ModifyLayerPageStyleOptions}
-% \begin{macro}{\AddToLayerPageStyleOptions}
+% \begin{command}{\ModifyLayerPageStyleOptions,\AddToLayerPageStyleOptions}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be modified (must
+% \item[\marg{string}:] the name of the page style to be modified (must
% be expandable and result in a string).
-% \item[\Parameter{option list}:] comma separated list of named page
+% \item[\marg{option list}:] comma separated list of named page
% style options. You may use any of the options provided for
-% \Macro{DeclarePageStyle}.
+% \cs{DeclarePageStyle}.
% \end{description}
-% \Macro{ModifyLayerPageStyleOptions} replaces the options and only the
+% \cs{ModifyLayerPageStyleOptions} replaces the options and only the
% options from the list by their new
-% values. \Macro{AddToLayerPageStyleOptions} adds the new values to the
+% values. \cs{AddToLayerPageStyleOptions} adds the new values to the
% already given.
% \begin{macrocode}
%<*package&body>
@@ -3664,7 +3551,7 @@
}
% \end{macrocode}
% \begin{macro}{\scrlayer@modify@layer@ps@options}
-% \changes{v3.28}{2019/11/28}{usage of marker makros}%^^A
+% \changes{v3.28}{2019/11/28}{usage of marker makros}
% Helper needed because of alias page styles. Same parameters like
% \cs{ModifyLayerPageStyleOptions}
% \begin{macrocode}
@@ -3717,7 +3604,7 @@
\reserved@a
}
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@modify@layer@ps@options
+% \end{macro}^^A \scrlayer@modify@layer@ps@options
% \begin{macrocode}
\newcommand*{\AddToLayerPageStyleOptions}[2]{%
\IfLayerPageStyleExists{#1}{%
@@ -3729,13 +3616,11 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \AddToLayerPageStyleOptions
-% \end{macro}%^^A \ModifyLayerPageStyleOptions
+% \end{command}^^A \ModifyLayerPageStyleOptions,\AddToLayerPageStyleOptions
%
-% \begin{macro}{\scrlayer@beginartifact}
-% \changes{v3.26}{2018/07/14}{new (semi internal)}%^^A
-% \begin{macro}{\scrlayer@endartifact}
-% \changes{v3.26}{2018/07/14}{new (semi internal)}%^^A
+%
+% \begin{macro}{\scrlayer@beginartifact,\scrlayer@endartifact}
+% \changes{v3.26}{2018/07/14}{new (semi internal)}
% These macros are reserved for tagging packages. The first one is executed
% after the initial contents hook, the last one is executed after the final
% contents hook. Both executions are done only, if the \texttt{artifact}
@@ -3778,17 +3663,14 @@
\providecommand*{\scrlayer@endartifact}[1]{}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@endartifact
-% \end{macro}%^^A \scrlayer@beginartifact
+% \end{macro}^^A \scrlayer@beginartifact,\scrlayer@endartifact
%
-% \begin{macro}{\DeclarePageStyleAlias}
-% \begin{macro}{\DeclareNewPageStyleAlias}
-% \begin{macro}{\ProvidePageStyleAlias}
-% \begin{macro}{\RedeclarePageStyleAlias}
+% \begin{command}{\DeclarePageStyleAlias,\DeclareNewPageStyleAlias,
+% \ProvidePageStyleAlias,\RedeclarePageStyleAlias}
% \begin{description}
-% \item[\Parameter{string}:] The name of the page style to be declared
+% \item[\marg{string}:] The name of the page style to be declared
% (must be expandable and result in a string).
-% \item[\Parameter{string}:] The name of the existing page style
+% \item[\marg{string}:] The name of the existing page style
% (must be expandable and result in a string).
% \end{description}
% \begin{macrocode}
@@ -3862,14 +3744,11 @@
\DeclarePageStyleAlias{#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \RedeclarePageStyleAlias
-% \end{macro}%^^A \ProvidePageStyleAlias
-% \end{macro}%^^A \DeclareNewPageStyleAlias
-% \end{macro}%^^A \DeclarePageStyleAlias
+% \end{command}^^A \DeclarePageStyleAlias …
%
-% \begin{macro}{\DestroyPageStyleAlias}
+% \begin{command}{\DestroyPageStyleAlias}
% \begin{description}
-% \item[\Parameter{string}:] the name of a page style (must be
+% \item[\marg{string}:] the name of a page style (must be
% expandable and result in a string).
% \end{description}
% \begin{macrocode}
@@ -3880,11 +3759,11 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\GetRealPageStyle}
+% \begin{command}{\GetRealPageStyle}
% \begin{description}
-% \item[\Parameter{string}:] the name of a page style (must be
+% \item[\marg{string}:] the name of a page style (must be
% expandable and result in a string).
% \end{description}
% Get the real name of the page style.
@@ -3897,16 +3776,15 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\IfLayerPageStyleExists}
-% \begin{macro}{\IfRealLayerPageStyleExists}
+% \begin{command}{\IfLayerPageStyleExists,\IfRealLayerPageStyleExists}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be tested (must
+% \item[\marg{string}:] the name of the page style to be tested (must
% be expandable and result in a string).
-% \item[\Parameter{code}:] whatever code should be expanded, if the test
+% \item[\marg{code}:] whatever code should be expanded, if the test
% result is true.
-% \item[\Parameter{code}:] whatever code should be expanded, if the test
+% \item[\marg{code}:] whatever code should be expanded, if the test
% result is false.
% \end{description}
% Test, whether or not the page style is a declared layer page style.
@@ -3941,34 +3819,30 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \IfRealLayerPageStyleExists
-% \end{macro}%^^A \IfLayerPageStyleExists
+% \end{command}^^A \IfLayerPageStyleExists,\IfRealLayerPageStyleExists
%
-% \begin{macro}{\IfLayerAtPageStyle}
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\IfSomeLayersAtPageStyle}
-% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\IfLayersAtPageStyle}
+% \begin{command}{\IfLayerAtPageStyle,\IfSomeLayersAtPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{command}{\IfLayersAtPageStyle}
% \begin{description}
-% \item[\Parameter{string}:] the name of the page style to be tested (must
+% \item[\marg{string}:] the name of the page style to be tested (must
% be expandable and result in a string).
-% \item[\Parameter{string}:] the name(s) of the layer(s) to be tested (must be
+% \item[\marg{string}:] the name(s) of the layer(s) to be tested (must be
% expandable and result in a string).
-% \item[\Parameter{code}:] whatever code should be expanded, if the test
+% \item[\marg{code}:] whatever code should be expanded, if the test
% result is true.
-% \item[\Parameter{code}:] whatever code should be expanded, if the test
+% \item[\marg{code}:] whatever code should be expanded, if the test
% result is false.
% \end{description}
% Tests:
% \begin{description}
-% \item[\Macro{IfLayerAtPageStyle}:] Test, whether or not the page style has a
+% \item[\cs{IfLayerAtPageStyle}:] Test, whether or not the page style has a
% layer. The second argument is the name of one layer only!
-% \item[\Macro{IfSomeLayersAtPageStyle}:] Test, whether or not the page style
+% \item[\cs{IfSomeLayersAtPageStyle}:] Test, whether or not the page style
% has at least one layer of a list of layers. The second argument is a comma
% separated list of layer names.
-% \item[\Macro{IfLayersAtPageStyle}:] Test, whether or not the page style has
+% \item[\cs{IfLayersAtPageStyle}:] Test, whether or not the page style has
% every layer of a list of layers. The second argument is a comma separated
% list of layer names.
% \end{description}
@@ -3977,7 +3851,7 @@
% Note, that layers with empty name are only part of a layer page style
% without any layers.
%
-% Note also, that with active \Option{deactivatepagestylelayers} layers are
+% Note also, that with active \opt{deactivatepagestylelayers} layers are
% logically not longer part of the page styles.
% \begin{macrocode}
%<*package&body>
@@ -4042,21 +3916,20 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \IfLayersAtPageStyle
-% \end{macro}%^^A \IfSomeLayersAtPageStyle
-% \end{macro}%^^A \IfLayerAtPageStyle
+% \end{command}^^A \IfLayersAtPageStyle
+% \end{command}^^A \IfLayerAtPageStyle,\IfSomeLayersAtPageStyle
%
%
-% \begin{macro}{\DestroyRealLayerPageStyle}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\DestroyRealLayerPageStyle}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% \begin{description}
-% \item[\Parameter{string}:] name of the layer page style to be destroyed.
+% \item[\marg{string}:] name of the layer page style to be destroyed.
% \end{description}
% Destroys the given layer page style but not the layers! If the page style is
% the current page style, the empty page style an empty page style will be
% activated. If the special page style is valid an the destroyed one, this
% will be removed. This command could be used, e.g., at
-% \Macro{scrlayerOnAutoRemoveInterface} after destroying the layers. However,
+% \cs{scrlayerOnAutoRemoveInterface} after destroying the layers. However,
% the interface commands are deprecated.
% \begin{macrocode}
%<*package&body>
@@ -4097,7 +3970,7 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \DestroyRealLayerPageStyle
+% \end{command}^^A \DestroyRealLayerPageStyle
%
%
% \subsection{Kernel Patches}
@@ -4105,13 +3978,13 @@
% This package as so many others need to patch the \LaTeX{} kernel. This will
% be done, because we need information about the current active package style.
%
-% \begin{macro}{\pagestyle}
-% \begin{macro}{\currentpagestyle}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\pagestyle}
+% \begin{command}{\currentpagestyle}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% We save the current page style. Note, that this doesn't work for special
% page styles\footnote{Special page styles are set by
-% \Macro{thispagestyle}.} that hasn't been defined using
-% \Package{scrlayer}. As long as \Macro{currentpagestyle} is empty, the
+% \cs{thispagestyle}.} that hasn't been defined using
+% \pkg*{scrlayer}. As long as \cs{currentpagestyle} is empty, the
% current page style is unknown. And we add two hooks into page style
% selection: one before an one after the selection.
% \begin{macrocode}
@@ -4159,17 +4032,16 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \currentpagestyle
+% \end{command}^^A \currentpagestyle
%
-% \begin{macro}{\BeforeSelectAnyPageStyle}
-% \begin{macro}{\scrlayer@exec@before@pagestyle@hook}
-% \begin{macro}{\AfterSelectAnyPageStyle}
-% \begin{macro}{\scrlayer@exec@after@pagestyle@hook}
+% \begin{command}{\BeforeSelectAnyPageStyle,\AfterSelectAnyPageStyle}
+% \begin{macro}{\scrlayer@exec@before@pagestyle@hook,
+% \scrlayer@exec@after@pagestyle@hook}
% We have two macros to locally add code to be executed whenever a page style
-% changes using \Macro{pagestyle}. The first one executes the code before the
+% changes using \cs{pagestyle}. The first one executes the code before the
% page style will be changed, the second one after the page style has been
% changed. Note, that you may use \#1 as a placeholder of the argument of
-% \Macro{pagestyle}.
+% \cs{pagestyle}.
% \begin{macrocode}
%<*package&body>
\newcommand*{\BeforeSelectAnyPageStyle}[1]{%
@@ -4188,28 +4060,24 @@
\newcommand*{\scrlayer@exec@after@pagestyle@hook}[1]{}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayer@exec@after@pagestyle@hook
-% \end{macro}%^^A \AfterSelectAnyPageStyle
-% \end{macro}%^^A \scrlayer@exec@before@pagestyle@hook
-% \end{macro}%^^A \BeforeSelectAnyPageStyle
-% \end{macro}%^^A \pagestyle
+% \end{macro}^^A \scrlayer@exec@after@pagestyle@hook …
+% \end{command}^^A \BeforeSelectAnyPageStyle,\AfterSelectAnyPageStyle
+% \end{command}^^A \pagestyle
%
%
-% \subsection{Declaration of End User Interfaces}
+% \subsection{Deprecated declaration of end user interfaces}
%
% \changes{v3.32}{2020/09/11}{the interface commands are deprecated}
%
-% The package also supports an interface for loading end user interfaces.
-% Maybe it would be a good idea to move this to \Package{scrbase}, but
-% currently it is not needed.
+% All commands of this subsection are deprecated. So they are declared as
+% internal independent from their name.
%
-% \begin{macro}{\scrlayerAddToInterface}
-% \begin{macro}{\scrlayerAddCsToInterface}
+% \begin{macro}{\scrlayerAddToInterface,\scrlayerAddCsToInterface}
% \begin{description}
% \item[\texttt{\{\meta{command}\textbar\meta{command sequence}\}}:] the
% command (with backslash) or the command sequence of the command (without
% backslash) of the command, that should be added to the interface.
-% \item[\Parameter{code}:] will be executed, only if the command could be
+% \item[\marg{code}:] will be executed, only if the command could be
% added to the interface.
% \end{description}
% Add either a command sequence or a command to the user interface.
@@ -4312,11 +4180,11 @@
}%
% \end{macrocode}
% \begin{macro}{\scrlayer@AddCsToInterface}
-% Little helper, to avoid repeating this \Macro{expandafter} orgy.
+% Little helper, to avoid repeating this \cs{expandafter} orgy.
% \begin{description}
-% \item[\OParameter{string}:] the interface name (must be expandable and
+% \item[\oarg{string}:] the interface name (must be expandable and
% expand to a string)
-% \item[\Parameter{command sequence}] the command sequence of the command to
+% \item[\marg{command sequence}] the command sequence of the command to
% be added.
% \end{description}
% \begin{macrocode}
@@ -4335,7 +4203,7 @@
% \begin{option}{forceoverwrite}
% \begin{macro}{\ifscrlayer@forceoverwrite}
% \begin{description}
-% \item[\Parameter{simple switch}:] whether or not to overwrite already
+% \item[\marg{simple switch}:] whether or not to overwrite already
% defined command. Note: If true, there will still be a warning.
% \end{description}
% \begin{macrocode}
@@ -4358,13 +4226,13 @@
\csname KV@KOMA.\@currname.\@currext @forceoverwrite@default\endcsname\relax
%</interface&body>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@forceoverwrite
-% \end{option}%^^A forceoverwrite
+% \end{macro}^^A \ifscrlayer@forceoverwrite
+% \end{option}^^A forceoverwrite
%
% \begin{option}{autoremoveinterfaces}
% \begin{macro}{\ifscrlayer@autoremoveinterfaces}
% \begin{description}
-% \item[\Parameter{simple switch}:] whether or not older interfaces may be
+% \item[\marg{simple switch}:] whether or not older interfaces may be
% automatically removed in conflict cases.
% \end{description}
% \begin{macrocode}
@@ -4390,17 +4258,16 @@
\relax
%</interface&body>
% \end{macrocode}
-% \end{macro}%^^A \ifscrlayer@autoremoveinterfaces
-% \end{option}%^^A autoremoveinterfaces
-% \end{macro}%^^A \scrlayer@AddCsToInterface
-% \end{macro}%^^A \scrlayerAddCsToInterface
-% \end{macro}%^^A \scrlayerAddToInterface
+% \end{macro}^^A \ifscrlayer@autoremoveinterfaces
+% \end{option}^^A autoremoveinterfaces
+% \end{macro}^^A \scrlayer@AddCsToInterface
+% \end{macro}^^A \scrlayerAddToInterface,\scrlayerAddCsToInterface
%
% \begin{macro}{\scrlayerInitInterface}
% \begin{description}
-% \item[\OParameter{string}:] the name of the interface. Generally this is
+% \item[\oarg{string}:] the name of the interface. Generally this is
% the file name of the package or class, that defines the interface
-% (default: \texttt{\Macro{@currname}.\Macro{@currext}}).
+% (default: \texttt{\cs{@currname}.\cs{@currext}}).
% \end{description}
% This registers a new user interface.
% \begin{macrocode}
@@ -4426,15 +4293,15 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayerInitInterface
+% \end{macro}^^A \scrlayerInitInterface
%
% \begin{macro}{\scrlayerOnAutoRemoveInterface}
% \begin{description}
-% \item[\OParameter{string}:] the name of the interface. Generally this is
+% \item[\oarg{string}:] the name of the interface. Generally this is
% the file name of the package or class, that defines the interface
-% (default: \texttt{\Macro{@currname}.\Macro{@currext}}).
-% \item[\Parameter{code}:] will be executed if the interface will be removed
-% automatically (see option \Option{autoremoveinterfaces}).
+% (default: \texttt{\cs{@currname}.\cs{@currext}}).
+% \item[\marg{code}:] will be executed if the interface will be removed
+% automatically (see option \opt{autoremoveinterfaces}).
% \end{description}
% \begin{macrocode}
%<*package&body>
@@ -4445,10 +4312,10 @@
}
%</package&body>
% \end{macrocode}
-% \end{macro}%^^A \scrlayerOnAutoRemoveInterface
+% \end{macro}^^A \scrlayerOnAutoRemoveInterface
%
% \begin{macro}{\scrlayer@report@deprecated}
-% \changes{v3.32}{2020/09/11}{new (internal)}
+% \changes{v3.32}{2020/09/11}{added}
% Report that the deprecated interface commands are used but should not. But
% report this only once per interface.
% \begin{macrocode}
@@ -4467,20 +4334,19 @@
% \end{macrocode}
% \end{macro}
%
-% \iffalse^^A meta-comment
+% \begin{macrocode}
%</package|interface|class>
-% \fi^^A meta-comment
-%
-%
+% \end{macrocode}
+%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% end of file `scrlayer.dtx'
-
-%%% Local Variables:
-%%% mode: doctex
-%%% ispell-local-dictionary: "en_GB"
-%%% flyspell-mode: t
-%%% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrlfile-hook.dtx b/macros/latex/contrib/koma-script/source/scrlfile-hook.dtx
index 8fda6365e3..d58f529904 100644
--- a/macros/latex/contrib/koma-script/source/scrlfile-hook.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlfile-hook.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlfile-hook.dtx
-% Copyright (c) Markus Kohm, 2021
+% Copyright (c) Markus Kohm, 2021-2022
%
% This file is part of the work `scrlfile' which is part of the LaTeX2e
% KOMA-Script bundle.
@@ -18,26 +18,6 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrlfile-hook.dtx
-% Copyright (c) Markus Kohm, 2021
-%
-% Diese Datei ist Teil des Werks `scrlfile', das wiederum Teil des
-% LaTeX2e KOMA-Script Pakets ist.
-%
-% 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 aufgeführten Dateien.
% ======================================================================
%
%%% From File: $Id: scrlfile-hook.dtx$
@@ -45,9 +25,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-11-09 10:36:18 +0100 (Tue, 09 Nov 2021) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3635 $
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlfile-hook.dtx}%
@@ -70,9 +50,11 @@
\generate{\usepreamble\defaultpreamble
\file{scrlfile-hook.sty}{%
\from{scrlfile-hook.dtx}{package,current}%
+ \from{scrlogo.dtx}{logo}%
}%
\file{scrlfile-hook-3.34.sty}{%
\from{scrlfile-hook.dtx}{package,3.34}%
+ \from{scrlogo.dtx}{logo}%
}%
}%
\@@input scrstrop.inc
@@ -80,48 +62,48 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass{l3doc}
-\usepackage[english]{babel}
-\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
- M\kern.05em A\kern.1em-\kern.1em Script}}
+\documentclass[USenglish]{l3doc}% Using class for documentation of expl3 style packages.
+\usepackage{babel}
+\expandafter\let\expandafter\nodriver\csname iffalse\endcsname
+\expandafter\let\expandafter\endnodriver\csname fi\endcsname
+\makeatletter\input{scrlogo.dtx}\makeatother
\CodelineIndex
-\GetFileInfo{scrlfile-hook.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \thanks{This file is revision \fileversion\ of file \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm\thanks{mailto:komascript@gmx.info}}
\begin{document}
- \maketitle
- \begin{abstract}
- This package provides hooks before and after loading files, packages or
- classes. It also provides a hook after the last \cs{clearpage} of the
- document. It allowes to replace files, packages and classes by other
- files, packages and classes. It is inteded to be used by package and class
- authors but may also be used by \LaTeX{} users.
- \end{abstract}
-
- \tableofcontents
-
- \DocInput{\filename}
+ \DocInput{scrlfile-hook.dtx}
\end{document}
%</dtx>
% \fi^^A meta-comment
%
% \changes{v3.32}{2020/08/25}{new (sub-)package}
-%^^A TODO: We should use docstrip3 instead of of docstrip. This would enable
-%^^A usability of @@-syntax in the source. But for this, additional
-%^^A changes would be needed to setup the version string. Because of
-%^^A this it should be done together with switch over to l3build.
+% \changes{v3.36}{2022/02/03}{use new documentation style}
+% \changes{v3.36}{2022/02/03}{using \file{scrlogo.dtx} to define the logo}
+%
+% \GetFileInfo{scrlfile-hook.dtx}
+% \title{\pkg{scrlfile} \KOMAScript{} Sub-Packages \pkg{scrlfile-hook} and
+% \pkg{scrlfile-hook-3.34}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This package provides hooks before and after loading files, packages or
+% classes. It also provides a hook after the last \cs{clearpage} of the
+% document. It allowes to replace files, packages and classes by other
+% files, packages and classes. It is inteded to be used by package and class
+% authors but may also be used by \LaTeX{} users.
+% \end{abstract}
+% \tableofcontents
+%
%
-% \section{The User Manual of \textsf{scrlfile-hook}}
+% \section{User Manual}
%
-% \textsf{scrlfile-hook} implements the \LaTeX-hook-based part of
-% \textsf{scrlfile}.
+% \pkg{scrlfile-hook} implements the \LaTeX-hook-based part of
+% \pkg{scrlfile}. \pkg{scrlfile-hook-3.34} is a variant for \LaTeX{} kernel
+% versions before 2021/06/01.
%
% There isn't any user manual for the user level \LaTeXe{} commands in this
-% file. Please see the manual of \textsf{scrlfile} for more information about
-% \textsf{scrlfile-hook}.
+% file. Please see the manual of \pkg{scrlfile} for more information about
+% \pkg{scrlfile-hook} and \pkg{scrlfile-hook-3.34}.
%
% This section, however, contains the user manual of the \LaTeX3{} package
% author commands.
@@ -135,17 +117,17 @@
% Tests if the class \meta{class name} resp. the package \meta{package name}
% has been loaded completely. It runs the \Arg{true code} only, if the input
% of the class file with the name \meta{class
-% name}\texttt{.}\cs{@clsextension} resp. the package file with the name
-% \meta{package name}\texttt{.}\cs{@pkgextension} has already been
+% name}\file{.}\cs{@clsextension} resp. the package file with the name
+% \meta{package name}\file{.}\cs{@pkgextension} has already been
% finished. It runs the \Arg{false code}, if the class or package has not
% been loaded or the input of the class or package file is still in
% progress.
% \end{function}
%
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \section{The Implementation of \textsf{scrlfile-hook}}
+% \section{Implementation of \pkg{scrlfile-hook}}
%
% \begin{macrocode}
%<@@=scrlfile>
@@ -156,6 +138,7 @@
% direct usage}
% \changes{v3.35}{2021/10/31}{new file version because \LaTeX{} kernel
% 2021/11/15 has changed the field order of gerneric hooks}
+% \changes{v3.36}{2022/02/03}{package name in messages fixed}
% \begin{macrocode}
\@ifundefined{IfFormatAtLeastTF}{%
\PackageError{scrlfile-hook}{not recommended usage of package}{%
@@ -171,7 +154,7 @@
\IfFormatAtLeastTF{2020/10/01}{%
\IfFormatAtLeastTF{2021/11/15}{%
%<*3.34>
- \PackageError{scrfile-hook-3.34}{LaTeX too new for this package}{%
+ \PackageError{scrlfile-hook-3.34}{LaTeX too new for this package}{%
It seems this package has ben loaded directly using a LaTeX
version\MessageBreak
newer than 2021-06-01. This is not recommended. Please always load
@@ -189,7 +172,7 @@
prior to 2021-11-15. This is not recommended. Please always load
package\MessageBreak
scrlfile instead of scrlfile-hook.\MessageBreak
- If you would continue, I will try to load scrfile-hook-3.34%
+ If you would continue, I will try to load scrlfile-hook-3.34%
}%
\RequirePackage{scrlfile-hook-3.34}\endinput
%</current>
@@ -357,9 +340,10 @@
% Unfortunately we need an ugly hack to initialise the stack using an internal
% kernel variable. This is a no go but I do not know a better solution for
% this, because loading of the package could be done late.
-% TODO: Decide, if the second or fourth token is correct. If fourth,
-% \cs{CurrentFile} has to be used always instead of
-% \cs{CurrentFileUsed}.
+% \begin{description}
+% \item[ToDo:] Decide, if the second or fourth token is correct. If fourth,
+% \cs{CurrentFile} has to be used always instead of \cs{CurrentFileUsed}.
+% \end{description}
% \begin{macrocode}
\cs_if_exist:NTF \g__filehook_input_file_seq
{
@@ -709,18 +693,15 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{The \KOMAScript{} Logo}
-%
-% Last but not least this is a \KOMAScript{} package, so we also define the
-% \KOMAScript{} logo:
-% \begin{macrocode}
-\RequirePackage{scrlogo}
-% \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:
diff --git a/macros/latex/contrib/koma-script/source/scrlfile-patcholdlatex.dtx b/macros/latex/contrib/koma-script/source/scrlfile-patcholdlatex.dtx
index 5f5956dc71..d30a0c45a0 100644
--- a/macros/latex/contrib/koma-script/source/scrlfile-patcholdlatex.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlfile-patcholdlatex.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlfile-patcholdlatex.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the work `scrlfile' which is part of the LaTeX2e
% KOMA-Script bundle.
@@ -18,54 +18,15 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrlfile-patcholdlatex.dtx
-% Copyright (c) Markus Kohm, 2002-2021
-%
-% Diese Datei ist Teil des Werks `scrlfile', das wiederum Teil des
-% LaTeX2e KOMA-Script Pakets ist.
-%
-% 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^^A meta-comment
-%
-% \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: scrlfile-patcholdlatex.dtx 3626 2021-11-01 10:57:06Z kohm $
+%%% From File: $Id: scrlfile-patcholdlatex.dtx 3773 2022-03-29 06:27:55Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-11-01 11:57:06 +0100 (Mon, 01 Nov 2021) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3626 $
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlfile-patcholdlatex.dtx}%
@@ -87,6 +48,7 @@
\generate{\usepreamble\defaultpreamble
\file{scrlfile-patcholdlatex.sty}{%
\from{scrlfile-patcholdlatex.dtx}{package}%
+ \from{scrlogo.dtx}{logo}%
}%
}
\@@input scrstrop.inc
@@ -94,27 +56,10 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[main=english]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrlfile-patcholdlatex.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \thanks{This file is revision \fileversion\ of file \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm\thanks{mailto:komascript@gmx.info}}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
\begin{document}
- \maketitle
- \begin{abstract}
- This package provides hooks before and after loading files, packages or
- classes. It also provides a hook after the last \cs{clearpage} of the
- document. It allowes to replace files, packages and classes by other
- files, packages and classes. It is inteded to be used by package and class
- authors but may also be used by \LaTeX{} users.
- \end{abstract}
-
- \DocInput{\filename}
+ \DocInput{scrlfile-patcholdlatex.dtx}
\end{document}
%</dtx>
% \fi^^A meta-comment
@@ -122,19 +67,37 @@
% \changes{v2.95}{2002/06/11}{First version split from hugh scrclass.dtx}
% \changes{v3.24}{2017/05/06}{standalone manual removed}
% \changes{v3.32}{2020/09/02}{new (sub)-package}
+% \changes{v3.36}{2022/02/03}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/03}{using \file{scrlogo.dtx} to define the logo}
+%
+% \GetFileInfo{scrlfile-patcholdlatex.dtx}
+% \title{\pkg*{scrlfile} \KOMAScript{} Sub-Package \pkg*{scrlfile-patcholdlatex}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This package provides hooks before and after loading files, packages or
+% classes. It also provides a hook after the last \cs{clearpage} of the
+% document. It allowes to replace files, packages and classes by other
+% files, packages and classes. It is inteded to be used by package and class
+% authors but may also be used by \LaTeX{} users.
+% \end{abstract}
+% \tableofcontents
%
-% \section{The User Manual of \textsf{scrlfile-patcholdlatex}}
%
-% \textsf{scrlfile-patcholdlatex} implements the part of \textsf{scrlfile}
+% \section{User Manual}
+%
+% \pkg*{scrlfile-patcholdlatex} implements the part of \pkg*{scrlfile}
% that patches old \LaTeX{} kernels.
%
% There isn't any user manual for the user level \LaTeXe{} commands in this
-% file. Please see the manual of \textsf{scrlfile} for more information about
-% \textsf{scrlfile-patcholdlatex}.
+% file. Please see the manual of \pkg*{scrlfile} for more information about
+% \pkg*{scrlfile-patcholdlatex}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \section{Implementation of \textsf{scrlfile-patcholdlatex}}
+% \section{Implementation of \pkg*{scrlfile-patcholdlatex}}
%
%
% \subsection{Patching \LaTeX{} Kernel Macros}
@@ -143,7 +106,7 @@
% \changes{v3.34}{2021/04/21}{make it more robust agains not recommended
% direct usage}
% \changes{3.35}{2021/10/31}{\LaTeX{} kernel change results in new variant of
-% \Package{scrfile-hook}}
+% \pkg*{scrfile-hook}}
% \begin{macrocode}
\@ifundefined{IfFormatAtLeastTF}{}{%
\IfFormatAtLeastTF{2020/10/01}{%
@@ -166,8 +129,8 @@
}
% \end{macrocode}
%
-% \begin{macro}{\InputIfFileExists}
-% \changes{v2.96}{2006/07/19}{replacement code added}%^^A
+% \begin{command}{\InputIfFileExists}
+% \changes{v2.96}{2006/07/19}{replacement code added}
% \LaTeX{} uses this macro for loading files with
% \cs{input}\marg{filename}, \cs{include}, \cs{LoadClass},
% \cs{LoadClassWithOptions}, \cs{documentclass}, \cs{documentstyle},
@@ -180,18 +143,18 @@
% macros\,---\,one before loading the file and one after loading the
% file. But before we redefine the macro, we test, if the macro was
% defined like we expected. \LaTeX{} will warn, if not.
-% \changes{v3.27}{2019/10/06}{\LaTeX{} 2019-10-01 changed the definition}%^^A
+% \changes{v3.27}{2019/10/06}{\LaTeX{} 2019-10-01 changed the definition}
%
-% \changes{v3.28}{2019/11/21}{support for \textsf{memoir}}%^^A
-% With \textsf{memoir} their is a special case. It also redefines
+% \changes{v3.28}{2019/11/21}{support for \cls{memoir}}
+% With \cls{memoir} their is a special case. It also redefines
% \cs{InputIfFileExists}. As shown in the source of the class it does so
-% because \textsf{scrlfile} does it. However it does it not compatible with
-% \textsf{scrlfile} and it does not emulate \textsf{scrlfile} as it do for
-% other packages. So if you try to use \textsf{scrlfile} with memoir,
-% \textsf{scrbase} has to take care to \textsf{memoir}. And in oposit to
-% \textsf{scrlfile} \textsf{memoir} does not always fix the argument order bug
+% because \pkg*{scrlfile} does it. However it does it not compatible with
+% \pkg*{scrlfile} and it does not emulate \pkg*{scrlfile} as it do for
+% other packages. So if you try to use \pkg*{scrlfile} with memoir,
+% \pkg*{scrbase} has to take care to \cls{memoir}. And in oposit to
+% \pkg*{scrlfile} \cls{memoir} does not always fix the argument order bug
% of \LaTeX{} but do so only for the implementation of \LaTeX{} 2019-10-01.
-% So in case of \textsf{memoir} we just patch every version of it without
+% So in case of \cls{memoir} we just patch every version of it without
% testing.
% \begin{macrocode}
\@ifclassloaded{memoir}{%
@@ -242,8 +205,8 @@
}
% \end{macrocode}
% \begin{macro}{\scr@input@withhook}
-% \changes{v3.27}{2019/03/28}{new (internal)}%^^A
-% \changes{v3.28}{2019/11/21}{support for \textsf{memoir}}%^^A
+% \changes{v3.27}{2019/03/28}{added}
+% \changes{v3.28}{2019/11/21}{support for \cls{memoir}}
% We need a new internal, because of expanding \cs{@file@und} before inputting
% the file.
% \begin{macrocode}
@@ -266,15 +229,15 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@input@withhook
+% \end{command}^^A \InputIfFileExists
%
% \begin{macro}{\@loadwithoptions}
-% \changes{v2.96}{2006/07/19}{new redefinition}
+% \changes{v2.96}{2006/07/19}{re-implementation}
% \begin{macro}{\scr@loadwithoptions}
-% \changes{v2.96}{2006/07/19}{new helper macro}
+% \changes{v2.96}{2006/07/19}{added}
% \begin{macro}{\scr@@loadwithoptions}
-% \changes{v2.97a}{2007/03/07}{new helper macro}
+% \changes{v2.97a}{2007/03/07}{added}
% \LaTeX{} uses this macro for loading classes and packages using
% \cs{LoadClassWithOptions} or \cs{RequirePackageWithOptions}. We simply say
% now: if the class or package should be replaced by another, try it again
@@ -298,16 +261,16 @@
\scr@@loadwithoptions
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@@loadwithoptions
+% \end{macro}^^A \scr@loadwithoptions
+% \end{macro}^^A \@loadwithoptions
%
% \begin{macro}{\@onefilewithoption}
-% \changes{v2.96}{2006/07/19}{new redefinition}
+% \changes{v2.96}{2006/07/19}{re-implementation}
% \begin{macro}{\scr@onefilewithoption}
-% \changes{v2.96}{2006/07/19}{new helper macro}
+% \changes{v2.96}{2006/07/19}{added}
% \begin{macro}{\scr@@onefilewithoption}
-% \changes{v2.98}{2007/12/18}{new helper macro}
+% \changes{v2.98}{2007/12/18}{added}
% \LaTeX{} uses this macro for loading classes and packages using
% \cs{LoadClass}, \cs{documentclass}, \cs{RequirePackage}, and
% \cs{usepackage}. We simply say now: if the class or package should be
@@ -324,8 +287,8 @@
% \end{macrocode}
% Do this ridiculous definition and call outside of \cs{ifx}\dots\cs{fi}
% because of some errornous packages like some versions of
-% \textsf{breakurl}. This does not avoid an error, but the message about
-% unclosed \cs{if} will be outside of \textsf{scrlfile}.
+% \pkg{breakurl}. This does not avoid an error, but the message about
+% unclosed \cs{if} will be outside of \pkg*{scrlfile}.
% \begin{macrocode}
\def\scr@@onefilewithoptions{\scr@onefilewithoptions{#1}}%
\else
@@ -337,25 +300,25 @@
\scr@load@hook{lateafter}{#1.#4}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@@onefilewithoption
+% \end{macro}^^A \scr@onefilewithoption
+% \end{macro}^^A \@onefilewithoption
%
% \begin{macro}{\scr@replacefile@msg}
-% \changes{v2.96}{2006/07/19}{new helper command}
+% \changes{v2.96}{2006/07/19}{added}
% \changes{v2.98}{2007/12/18}{spellfix}
-% Last but not least \textsf{scrlfile} will write a message to the log file at
+% Last but not least \pkg*{scrlfile} will write a message to the log file at
% every replacement.
% \begin{macrocode}
\newcommand*{\scr@replacefile@msg}[2]{%
\PackageInfo{scrlfile}{inputing `#1' instead of `#2'}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@replacefile@msg
%
% \begin{macro}{\scr@load@hook}
% \changes{v3.27a}{2019/10/16}{workaround for strange handling of
-% \cs{AtEndOfPackage} hook in \cs{@onefilewithoptions}}%^^A
+% \cs{AtEndOfPackage} hook in \cs{@onefilewithoptions}}
% This macro simply calls a load-file-hook, either the \emph{before}
% or the \emph{after} one, if the hook exists. After calling the hook
% it will be deleted. First argument is the type of hook
@@ -364,11 +327,11 @@
\newcommand*{\scr@load@hook}[2]{%
% \end{macrocode}
% \begin{macro}{\scrlfile@cmp@hook}
-% \changes{v3.27a}{2019/10/23}{local macros renamed}%^^A
+% \changes{v3.27a}{2019/10/23}{renamed}
% \begin{macro}{\scrlfile@hookname}
-% \changes{v3.27a}{2019/10/23}{local macros renamed}%^^A
+% \changes{v3.27a}{2019/10/23}{renamed}
% \changes{v3.29}{2020/06/01}{do the class and package load hooks only in the
-% document preamble}%^^A --> https://komascript.de/node/2274
+% document preamble}^^A --> https://komascript.de/node/2274
% Workaround for strange handling of the \cs{AtEndOfPackage} hook in
% \cs{@onefilewithoptions} (becomes \cs{@empty}, if the package already has
% been loaded and is not loaded again). This workaround is not nice but
@@ -412,9 +375,9 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scrlfile@hookname
+% \end{macro}^^A \scrlfile@cmp@hook
+% \end{macro}^^A \scr@load@hook
%
% \begin{macro}{\scr@set@load@hook}
% This command adds stuff to a load-file-hook, either the
@@ -424,21 +387,22 @@
% \cs{g@addto@macro}. This third argument is the stuff, which will be
% added to the hook. Because of using \cs{g@addto@macro} the hook must
% be defined. So we define it, if it isn't.
-% TODO: Handling/ignoring an optional argument to make it more compatible with
-% \LaTeX's new \cs{AddToHook}.
+% \begin{description}
+% \item[ToDo:] Handling/ignoring an optional argument to make it more
+% compatible with \LaTeX's new \cs{AddToHook}.
+% \end{description}
% \begin{macrocode}
\newcommand*{\scr@set@load@hook}[2]{%
\@ifundefined{#2-@#1}{\@namedef{#2-@#1}{}}{}%
\expandafter\g@addto@macro\csname #2-@#1\endcsname
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@set@load@hook
%
%
% \subsection{Before and After Commands}
%
-% \begin{macro}{\BeforeFile}
-% \begin{macro}{\AfterFile}
+% \begin{command}{\BeforeFile,\AfterFile}
% Just add code to the \emph{before} or \emph{after} hook of a file. The
% arguments are:
% \begin{description}
@@ -452,14 +416,12 @@
\newcommand*{\BeforeFile}{\scr@set@load@hook{before}}
\newcommand*{\AfterFile}{\scr@set@load@hook{after}}
% \end{macrocode}
-% \end{macro}%^^A \AfterFile
-% \end{macro}%^^A \BeforeFile
+% \end{command}^^A \BeforeFile,\AfterFile
%
-% \begin{macro}{\BeforeClass}
+% \begin{command}{\BeforeClass}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \cs{kernel@ifnextchar}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% This is quite simple. It only has to add code to the \emph{before} hook
% already known by \cs{BeforeFile}. The arguments are:
% \begin{description}
@@ -474,14 +436,14 @@
\scr@set@load@hook{before}{#1.\@clsextension}%
}
% \end{macrocode}
-% \end{macro}%^^A \BeforeClass
+% \end{command}^^A \BeforeClass
%
-% \begin{macro}{\AfterClass}
+% \begin{command}{\AfterClass}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
% \cs{kernel@ifnextchar}}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \changes{v3.32}{2020/09/02}{plus and exclamation mark variants removed}
-% \begin{macro}{\AfterAtEndOfClass}
+% \begin{command}{\AfterAtEndOfClass}
% \changes{v3.32}{2020/09/02}{star variant replaces the exclamation mark
% variant of \cs{AfterClass}}
% These are more complicated. There are four forms:
@@ -528,9 +490,9 @@
\scr@set@load@hook{after}{#1.\@clsextension}%
}
% \end{macrocode}
-% \end{macro}%^^A \@AfterClass
+% \end{macro}^^A \@AfterClass
% \begin{macro}{\@sAfterClass}
-% \changes{v3.27a}{2019/10/16}{group removed}%^^A
+% \changes{v3.27a}{2019/10/16}{group removed}
% This is the internal implementation of:
% \cs{AfterClass*}\marg{class name}\marg{code}.
% It tests, whether or not \LaTeX{} thinks that the class
@@ -548,14 +510,14 @@
{#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \@sAfterClass
+% \end{macro}^^A \@sAfterClass
% \begin{macrocode}
\newcommand*{\AfterAtEndOfClass}{%
\kernel@ifstar \@sAfterAtEndOfClass\@AfterAtEndOfClass
}
% \end{macrocode}
% \begin{macro}{\@AfterAtEndOfClass}
-% \changes{v3.32}{2020/09/02}{new (internal)}
+% \changes{v3.32}{2020/09/02}{added}
% Note that \cs{AfterAtEndOfClass} executed the \meta{code} after each try
% to load a class, even if the class has already been loaded and you try
% to load it again.
@@ -565,11 +527,11 @@
}
% \end{macrocode}
% \begin{macro}{\@sAfterAtEndOfClass}
-% \changes{v3.09}{2011/03/09}{new (internal)}%^^A
-% \changes{v3.27}{2019/08/26}{using inside class fixed}%^^A
-% \changes{v3.27a}{2019/10/15}{renamed from \cs{@@@AfterClass}}%^^A
-% \changes{v3.27a}{2019/10/16}{usage of \emph{l@ading} marker}%^^A
-% \changes{v3.27a}{2019/10/16}{group removed}%^^A
+% \changes{v3.09}{2011/03/09}{added}
+% \changes{v3.27}{2019/08/26}{using inside class fixed}
+% \changes{v3.27a}{2019/10/15}{renamed from \cs{@@@AfterClass}}
+% \changes{v3.27a}{2019/10/16}{usage of \emph{l@ading} marker}
+% \changes{v3.27a}{2019/10/16}{group removed}
% \changes{v3.32}{2020/09/02}{renamed from \cs{@xAfterClass}}
% This is the internal implementation of:
% \cs{AfterClass!}\marg{class name}\marg{code}. Note, that the exclamation
@@ -608,11 +570,12 @@
{#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \@sAfterAtEndOfClass
-% \end{macro}%^^A \AfterAtEndOfClass
-% \end{macro}%^^A \AfterClass
+% \end{macro}^^A \@sAfterAtEndOfClass
+% \end{macro}^^A \@AfterAtEndOfClass
+% \end{command}^^A \AfterAtEndOfClass
+% \end{command}^^A \AfterClass
%
-% \begin{macro}{\BeforePackage}
+% \begin{command}{\BeforePackage}
% This is quite simple. It only has to add code to the \emph{before} hook
% already known by \cs{BeforeFile}. The arguments are:
% \begin{description}
@@ -627,14 +590,13 @@
\scr@set@load@hook{before}{#1.\@pkgextension}%
}
% \end{macrocode}
-% \end{macro}%^^A \BeforePackage
+% \end{command}^^A \BeforePackage
%
-% \begin{macro}{\AfterPackage}
+% \begin{command}{\AfterPackage}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
-% \begin{macro}{\AfterAtEndOfPackage}
+% \cs{kernel@ifnextchar}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{command}{\AfterAtEndOfPackage}
% These are more complicated. There are four forms:
% \begin{description}
% \item[\cs{AfterPackage}] corresponds to \cs{AfterFile}. So the code will be
@@ -679,9 +641,9 @@
\scr@set@load@hook{after}{#1.\@pkgextension}%
}
% \end{macrocode}
-% \end{macro}%^^A \@AfterPackage
+% \end{macro}^^A \@AfterPackage
% \begin{macro}{\@sAfterPackage}
-% \changes{v3.27a}{2019/10/16}{group removed}%^^A
+% \changes{v3.27a}{2019/10/16}{group removed}
% This is the internal implementation of:
% \cs{AfterPackage*}\marg{package name}\marg{code}.
% It tests, whether or not \LaTeX{} thinks that the package
@@ -699,19 +661,19 @@
{#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \@sAfterPackage
-% \begin{macrocode}
+% \end{macro}^^A \@sAfterPackage
+% \begin{macrocode}
\newcommand*{\AfterAtEndOfPackage}{%
\kernel@ifstar \@sAfterAtEndOfPackage\@AfterAtEndOfPackage
}
-% \end{macrocode}
+% \end{macrocode}
% \begin{macro}{\@sAfterAtEndOfPackage}
-% \changes{v3.09}{2011/03/09}{new (internal)
+% \changes{v3.09}{2011/03/09}{added}
% \changes{v3.27}{2019/08/26}{using inside package fixed}
-% \changes{v3.27a}{2019/10/15}{renamed from \cs{@@@AfterPackage}
+% \changes{v3.27a}{2019/10/15}{renamed from \cs{@@@AfterPackage}}
% \changes{v3.27a}{2019/10/16}{usage of \emph{l@ading} marker}
% \changes{v3.27a}{2019/10/16}{group removed}
-% \changes{v3.32}{2020/09/02}{renamed from \@xAfterPackage}
+% \changes{v3.32}{2020/09/02}{renamed from \cs{@xAfterPackage}}
% This is the internal implementation of:
% \cs{AfterAtEndOfPackage*}\marg{package name}\marg{code}.
% \begin{macrocode}
@@ -728,11 +690,11 @@
{#1}%
}
% \end{macrocode}
-% \end{macro}%^^A \@sAfterAtEndOfPackage
+% \end{macro}^^A \@sAfterAtEndOfPackage
% \begin{macro}{\@AfterAtEndOfPackage}
-% \changes{v3.32}{2020/09/02}{new (internal)}
+% \changes{v3.32}{2020/09/02}{added}
% \begin{macro}{\@@AfterAtEndOfPackage}
-% \changes{v3.27a}{2019/10/15}{new (internal)}
+% \changes{v3.27a}{2019/10/15}{added}
% \changes{v3.27a}{2019/10/16}{group removed}
% \changes{v3.32}{2020/09/02}{renamed from \cs{@AfterAtEndOfPackage}}
% Note that until 3.27a \cs{AfterAtEndOfPackage} executed the \meta{code}
@@ -758,16 +720,16 @@
\scr@set@load@hook{lateafter}{#1.\@pkgextension}%
}
% \end{macrocode}
-% \end{macro}%^^A \@@AfterAtEndOfPackage
-% \end{macro}%^^A \@AfterEndOfPackage
-% \end{macro}%^^A \AfterAtEndOfPackage
-% \end{macro}%^^A \AfterPackage
+% \end{macro}^^A \@@AfterAtEndOfPackage
+% \end{macro}^^A \@AfterEndOfPackage
+% \end{command}^^A \AfterAtEndOfPackage
+% \end{command}^^A \AfterPackage
%
%
% \subsection{File Substitution}
%
-% \begin{macro}{\ReplaceInput}
-% \changes{v2.96}{2006/07/19}{new command}
+% \begin{command}{\ReplaceInput}
+% \changes{v2.96}{2006/07/19}{added}
% \changes{v3.12}{2013/11/15}{implemented}
% Defining the replacement by definition of \cs{\#1-@alias}.
% \begin{macrocode}
@@ -775,8 +737,8 @@
\expandafter\edef\csname #1-@alias\endcsname{#2}%
}
% \end{macrocode}
-% \begin{macro}{\ReplaceFile}
-% \changes{v2.96}{2006/07/19}{new command}
+% \begin{command}{\ReplaceFile}
+% \changes{v2.96}{2006/07/19}{added}
% \changes{v3.12}{2013/11/15}{throw error}
% Sorry, but I've implemented the wrong command some time ago.
% \begin{macrocode}
@@ -794,11 +756,11 @@
\ReplaceInput
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \ReplaceFile
+% \end{command}^^A \ReplaceInput
%
-% \begin{macro}{\UnReplaceInput}
-% \changes{v3.12}{2013/11/15}{new command}
+% \begin{command}{\UnReplaceInput}
+% \changes{v3.12}{2013/11/15}{added}
% Do not longer replace a file.
% \begin{macrocode}
\newcommand*{\UnReplaceInput}[1]{%
@@ -807,14 +769,12 @@
\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{command}^^A \UnReplaceInput
%
-% \begin{macro}{\ReplacePackage}
-% \changes{v2.96}{2006/07/19}{new command}
-% \begin{macro}{\ReplaceClass}
-% \changes{v2.96}{2006/07/19}{new command}
+% \begin{command}{\ReplacePackage,\ReplaceClass}
+% \changes{v2.96}{2006/07/19}{added}
% \begin{macro}{\@replacefilewithext}
-% \changes{v2.96}{2006/07/19}{new helper command}
+% \changes{v2.96}{2006/07/19}{added}
% \changes{v3.32}{2020/09/09}{works global}
% Note that replacing a package or class will not replace the input of the
% file of the package or class but only the input of package or class.
@@ -829,16 +789,13 @@
\@replacefilewithext{#1}{#2}\@clsextension
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@replacefilewithext
+% \end{command}^^A\ReplacePackage,\ReplaceClass
%
-% \begin{macro}{\UnReplacePackage}
-% \changes{v3.12}{2013/11/15}{new command}
-% \begin{macro}{\UnReplaceClass}
-% \changes{v3.12}{2013/11/15}{new command}
+% \begin{command}{\UnReplacePackage,\UnReplaceClass}
+% \changes{v3.12}{2013/11/15}{added}
% \begin{macro}{\@unreplacefilewithext}
-% \changes{v3.12}{2013/11/15}{new helper command}%^^A
+% \changes{v3.12}{2013/11/15}{added}
% \changes{v3.32}{2020/09/09}{works global}
% Do not nolonger replace a class or package.
% \begin{macrocode}
@@ -854,32 +811,31 @@
\@unreplacefilewithext{#1}\@clsextension
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@unreplacefilewithext
+% \end{command}^^A \UnReplacePackage,\UnReplaceClass
%
%
% \subsection{Prevent Package from Loading}
%
-% \begin{macro}{\PreventPackageFromLoading}
-% \changes{v3.08}{2010/11/04}{New}
+% \begin{command}{\PreventPackageFromLoading}
+% \changes{v3.08}{2010/11/04}{added}
% \changes{v3.11a}{2012/06/13}{write fault error in \cs{MessageBreak} fixed}
% \changes{v3.12}{2012/06/15}{new star version allowes empty argument with
% info instead of warning}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \changes{v3.32}{2020/09/09}{works global}
% \begin{macro}{\@PreventPackageFromLoading}
-% \changes{v3.12}{2012/06/15}{New (internal)}%^^A
+% \changes{v3.12}{2012/06/15}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\@@PreventPackageFromLoading}
-% \changes{v3.12}{2013/11/22}{New (internal)}%^^A
+% \changes{v3.12}{2013/11/22}{added}
% \changes{v3.12}{2013/11/22}{\cs{usepackage} before \cs{documentclass}
-% fixed}%^^A
+% fixed}
% \begin{macro}{\scrlfile@excludedpackages}
-% \changes{v3.08}{2010/11/04}{New (internal)}%^^A
+% \changes{v3.08}{2010/11/04}{added}
% \begin{macro}{\scrlfile@saved@RequirePackage}
-% \changes{v3.08}{2010/11/04}{New (internal)}%^^A
+% \changes{v3.08}{2010/11/04}{added}
% \begin{macrocode}
\newcommand*{\scrlfile@excludedpackages}{}
\let\scrlfile@excludedpackages\@empty
@@ -934,8 +890,8 @@
% packages will be added to the exclusion list. Empty arguments will be
% ignored.
% \changes{v3.11a}{2012/06/11}{missing \cs{scrlfile@excludedpackages} at
-% redefinition of \cs{scrlfile@excludedpackages} added}%^^A
-% \changes{v3.26}{2018/08/29}{spurious \cs{expandafter} removed}%^^A
+% redefinition of \cs{scrlfile@excludedpackages} added}
+% \changes{v3.26}{2018/08/29}{spurious \cs{expandafter} removed}
% \begin{macrocode}
\@for\reserved@a:=\reserved@b\do {%
\ifx\reserved@a\@empty
@@ -983,11 +939,11 @@
}
\@onlypreamble\PreventPackageFromLoading
% \end{macrocode}
-% \begin{macro}{\ResetPreventPackageFromLoading}
-% \changes{v3.08}{2010/11/04}{New}
+% \begin{command}{\ResetPreventPackageFromLoading}
+% \changes{v3.08}{2010/11/04}{added}
% \changes{v3.32}{2020/09/09}{works global}
-% \begin{macro}{\StorePreventPackageFromLoading}
-% \changes{v3.08}{2010/11/04}{New}
+% \begin{command}{\StorePreventPackageFromLoading}
+% \changes{v3.08}{2010/11/04}{added}
% These two are very simple
% \begin{macrocode}
\newcommand*{\ResetPreventPackageFromLoading}{%
@@ -1005,13 +961,13 @@
}
\@onlypreamble\StorePreventPackageFromLoading
% \end{macrocode}
-% \begin{macro}{\UnPreventPackageFromLoading}
-% \changes{v3.12}{2013/11/22}{New}%^^A
+% \begin{command}{\UnPreventPackageFromLoading}
+% \changes{v3.12}{2013/11/22}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% ersetzt}
% \changes{v3.32}{2020/09/09}{works global}
% \begin{macro}{\@UnPreventPackageFromLoading}
-% \changes{v3.12}{2013/11/22}{New (internal)}%^^A
+% \changes{v3.12}{2013/11/22}{added}
% This removes packages from the prevent exclude list. The star variant also
% undefines the instead code.
% \begin{macrocode}
@@ -1056,10 +1012,10 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@UnPreventPackageFromLoading
+% \end{command}^^A \UnPreventPackageFromLoading
% \begin{macro}{\scrlfile@RequirePackage}
-% \changes{v3.08}{2010/11/04}{New (internal)}
+% \changes{v3.08}{2010/11/04}{added}
% \changes{v3.12}{2013/11/22}{tolerate spaces}
% \changes{v3.12}{2013/11/22}{execute the optional argument of
% \cs{PreventPackageFromLoading}}
@@ -1104,47 +1060,49 @@
\reserved@a
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scrlfile@RequirePackage
+% \end{command}^^A \StorePreventPackageFromLoading
+% \end{command}^^A \ResetPreventPackageFromLoading
+% \end{macro}^^A \scrlfile@saved@RequirePackage
+% \end{macro}^^A \scrlfile@excludedpackages
+% \end{macro}^^A \@@PreventPackageFromLoading
+% \end{macro}^^A \@PreventPackageFromLoading
+% \end{command}^^A \PreventPackageFromLoading
%
% \begin{macro}{\scr@gobbleopt}
-% \changes{v3.08}{2010/11/04}{New (internal)}
+% \changes{v3.08}{2010/11/04}{added}
% \changes{v3.08a}{2011/02/11}{\cs{@gobbleopt} renamed due to compaibility
% problems with \texttt{ntheorem}}
% Eat the optional argument if it exists.
% \begin{macrocode}
\providecommand{\scr@gobbleopt}[1][]{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@gobbleopt
%
% \begin{macro}{\kernel@ifstar}
-% \changes{v3.20}{2016/04/12}{New (internal)}
+% \changes{v3.20}{2016/04/12}{added}
% I hope, the \LaTeX{} kernel will define this command in future. But
% nevertheless, there are \LaTeX{} kernels in real live without this
% command. So I do it again if needed:
% \begin{macrocode}
\providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}}
% \end{macrocode}
-% \end{macro}%^^A \kernel@ifstar
+% \end{macro}^^A \kernel@ifstar
%
%
% \subsection{Extra Document Hooks}
%
-% \begin{macro}{\BeforeClosingMainAux}
-% \changes{v2.95}{2002/09/03}{new}
-% \begin{macro}{\AfterReadingMainAux}
-% \changes{v3.03}{2009/03/25}{new}
+% \begin{command}{\BeforeClosingMainAux}
+% \changes{v2.95}{2002/09/03}{added}
+% \begin{command}{\AfterReadingMainAux}
+% \changes{v3.03}{2009/03/25}{added}
% These are completly different. First we have to establish a new hook
% at \cs{end\{document\}}, just after closing the group and after the
% final \cs{clearpage}.
-% TODO: Handling/ignoring an optional argument to make them more compatible
-% with \LaTeX's new \cs{AddToHook}.
+% \begin{description}
+% \item[ToDo:] Handling/ignoring an optional argument to make them more
+% compatible with \LaTeX's new \cs{AddToHook}.
+% \end{description}
% \begin{macrocode}
\AtEndDocument{%
\let\scr@saved@checkend=\@checkend
@@ -1168,23 +1126,23 @@
}
% \end{macrocode}
% \begin{macro}{\scr@saved@checkend}
-% \changes{v2.95}{2002/09/03}{new (internal)}
+% \changes{v2.95}{2002/09/03}{added}
% \begin{macro}{\scr@saved@dofilelist}
-% \changes{v3.03}{2009/03/25}{new}
+% \changes{v3.03}{2009/03/25}{added}
% You may see above, that we need save-to macros.
% \begin{macrocode}
\newcommand*{\scr@saved@checkend}{}
\newcommand*{\scr@saved@dofilelist}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@saved@dofilelist
+% \end{macro}^^A \scr@saved@checkend
% \begin{macro}{\scr@redefine@newpage}
-% \changes{v3.00}{2008/07/09}{new (internal)}
-% Some classes (e.g. \textsf{letter}) write output to the aux file.
+% \changes{v3.00}{2008/07/09}{added}
+% Some classes (e.g. \cls{letter}) write output to the aux file.
% Because of this, redefinition of \cs{newpage} will only be done, if
% \cs{BeforeClosingMainAux} is used.
% \begin{macro}{\scr@saved@newpage}
-% \changes{v3.00}{2008/07/09}{new (internal)}
+% \changes{v3.00}{2008/07/09}{added}
% And \cs{newpage} will be restored after the hook.
% \begin{macro}{\scr@restore@newpage}
% \begin{macrocode}
@@ -1221,21 +1179,21 @@
}
\newcommand*{\scr@restore@newpage}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@restore@newpage
+% \end{macro}^^A \scr@saved@newpage
+% \end{macro}^^A \scr@redefine@newpage
% \begin{macro}{\scr@hook@bcma}
-% \changes{v2.95}{2002/09/03}{new (internal)}
+% \changes{v2.95}{2002/09/03}{added}
% \begin{macro}{\scr@hook@acma}
-% \changes{v3.03}{2009/03/25}{new (internal)}
+% \changes{v3.03}{2009/03/25}{added}
% We also need macros, that saves the commands at the hooks and are
% extendable using \cs{g@addto@macro}.
% \begin{macrocode}
\newcommand*{\scr@hook@bcma}{}
\newcommand*{\scr@hook@acma}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@hook@acma
+% \end{macro}^^A \scr@hook@bcma
% Now we are able to write the user command. Here we also warn, if we detect
% one more \cs{newpage}\,---\,maybe at a \cs{clearpage} or
% \cs{cleardoublepage}.
@@ -1260,8 +1218,8 @@
\g@addto@macro\scr@hook@acma%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \AfterReadingMainAux
+% \end{command}^^A \BeforeClosingMainAux
%
% \begin{macro}{\protected@immediate@write}
% Like \LaTeX{} kernel's |\protected@write| but using |\immediate\write|. In
@@ -1279,18 +1237,15 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{The \KOMAScript{} Logo}
-%
-% Last but not least this is a \KOMAScript{} package, so we also define the
-% \KOMAScript{} logo:
-% \begin{macrocode}
-\RequirePackage{scrlogo}
-% \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:
diff --git a/macros/latex/contrib/koma-script/source/scrlfile.dtx b/macros/latex/contrib/koma-script/source/scrlfile.dtx
index c6d2029586..a9a65ef46a 100644
--- a/macros/latex/contrib/koma-script/source/scrlfile.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlfile.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlfile.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the work `scrlfile' which is part of the LaTeX2e
% KOMA-Script bundle.
@@ -18,36 +18,15 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrlfile.dtx
-% Copyright (c) Markus Kohm, 2002-2021
-%
-% Diese Datei ist Teil des Werks `scrlfile', das wiederum Teil des
-% LaTeX2e KOMA-Script Pakets ist.
-%
-% 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.
% ======================================================================
-%
-%%% From File: $Id: scrlfile.dtx 3625 2021-10-31 12:45:26Z kohm $
+%%% From File: $Id: scrlfile.dtx 3688 2022-02-10 08:26:37Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-10-31 13:45:26 +0100 (Sun, 31 Oct 2021) $
+ \filedate$Date: 2022-02-10 09:26:37 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 2631 $
+ \filerevision$Revision: 3688 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlfile.dtx}%
@@ -69,6 +48,7 @@
\generate{\usepreamble\defaultpreamble
\file{scrlfile.sty}{%
\from{scrlfile.dtx}{package}%
+ \from{scrlogo.dtx}{logo}%
}%
}
\batchinput{scrlfile-hook.dtx}
@@ -78,27 +58,11 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrlfile.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \thanks{This file is revision \fileversion\ of file \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm\thanks{mailto:komascript@gmx.info}}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{1}
\begin{document}
- \maketitle
- \begin{abstract}
- This package is the compatibility layer over \texttt{scrlfile-hook} and
- \texttt{scrlfile-patcholdlatex}. It provides package and class hook
- handling independent from the used \LaTeX{} release.
- \end{abstract}
-
- \tableofcontents
-
- \DocInput{\filename}
+ \DocInput{scrlfile.dtx}
\end{document}
%</dtx>
% \fi^^A meta-comment
@@ -106,44 +70,62 @@
% \changes{v2.95}{2002/06/11}{First version split from hugh scrclass.dtx}
% \changes{v3.24}{2017/05/06}{standalone manual removed}
% \changes{v3.32}{2020/09/11}{new implementation based on
-% \texttt{scrlfile-hook} and \texttt{scrlfile-patcholdlatex}}
+% \pkg*{scrlfile-hook} and \pkg*{scrlfile-patcholdlatex}}
+% \changes{v3.36}{2022/02/03}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/03}{using \file{scrlogo.dtx} to define the logo}
+%
+% \GetFileInfo{scrlfile.dtx}
+% \title{File Loading Hooks with \href{https://komascript.de}{\KOMAScript}
+% Package \pkg*{scrlfile}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This package is the compatibility layer over \texttt{scrlfile-hook} and
+% \texttt{scrlfile-patcholdlatex}. It provides package and class hook
+% handling independent from the used \LaTeX{} release.
+% \end{abstract}
+% \tableofcontents
%
%
% \section{User Manual}
%
-% For user manual see the \KOMAScript{} manual. Here you can find interim
-% documentation only (before it is added to the \KOMAScript{} manual).
+% You can find the user manual of \pkg*{scrlfile} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
+% Here you can find interim documentation only (before it is added to the
+% \KOMAScript{} manual).
%
% \DescribeOption{withdeprecated}
-% Package option \texttt{withdeprecated} enables the definition of deprecated
+% Package option \opt{withdeprecated} enables the definition of deprecated
% commands \cs{AfterClass+}, \cs{AfterPackage+}, \cs{AfterClass!} and
% \cs{AfterPackage!}. All of them will be emulated by \cs{AfterAtEndOClass*}
% and \cs{AfterAtEndOfPackage*} so they are not completely compatible with the
% original deprecated commands.
%
% Users of classes or package, that use such deprecated commands can load
-% \texttt{scrlfile} already before the class using:
-% \begin{verbatim}
+% \pkg*{scrlfile} already before the class using:
+%\begin{verbatim}
% \RequirePackage[withdeprecated]{scrlfile}
-% \end{verbatim}
-% or adding option \texttt{withdeprecated} to the global options of
+%\end{verbatim}%
+% or adding option \opt{withdeprecated} to the global options of
% \cs{documentclass}. Note, this is not a key-value option. It cannot be
-% changed after loading \texttt{scrlfile}.
+% changed after loading \pkg*{scrlfile}.
%
+% \MaybeStop{\PrintIndex}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \section{Implementation of \pkg*{scrlfile}}
%
-% \section{Implementation of \textsf{scrlfile}}
-%
-% We either need to load one of these packages.
+% We need to load one of the packages \pkg*{scrlfile-hook},
+% \pkg*{scrlfile-kook-3.34}, \pkg*{scrlfile-patcholdlatex}.
% \changes{v3.33}{2021/02/09}{do not test for existence of \cs{AddToHook} any
-% longer, but \cs{IfFormatAtLeastTF} and the format version}%
+% longer, but \cs{IfFormatAtLeastTF} and the format version}%
% We cannot do the decision by testing the existence of macro \cs{AddToHook},
-% because package \textsf{latexrelease} does not rollback to prior format
-% versions good enough. Instead of undefining the macro an so really reverting
-% to the definition of \LaTeX{} kernels prior to 2020/10/01 it only redefines
-% it to a do-nothing macro. Because of this and similar issues with
-% \textsf{latexrelease} cannot (or only with provision) be used to simulate a
+% because package \pkg{latexrelease} does not rollback to prior format
+% versions good enough. Instead of undefining the macro and so really
+% reverting to the definition of \LaTeX{} kernels prior to 2020/10/01 it only
+% redefines it to a do-nothing macro. Because of this and similar issues with
+% \pkg{latexrelease} cannot (or only with provision) be used to simulate a
% real old \LaTeX{} kernel, i.e. for testing. So the only valid test for the
% existence of the wanted \cs{AddToHook} would be to test the definite
% definition of \cs{AddToHook} and the existence of the hooks we are
@@ -154,9 +136,10 @@
\RequirePackage{scrlfile-patcholdlatex}%
\RequirePackage{xparse}%
% \end{macrocode}
-% \changes{v3.33}{2021/02/16}{workaround for \textsf{xparse} bug}
-% Explicitly switch of \textsf{expl} syntax because of a
-% \textsf{xparse-2020-10-01} bug in version 2020-02-02.
+% \changes{v3.33}{2021/02/16}{workaround for \pkg{latexrelease} bug}
+% Explicitly switch of \pkg{expl3} syntax because of a
+% \pkg{latexrelease} bug related to the usage of \pkg{xparse-2020-10-01} in
+% version 2020-02-02.
% \changes{v3.35}{2021/10/31}{new variant because of \LaTeX{} kernel change}
% \begin{macrocode}
\ExplSyntaxOff
@@ -171,8 +154,8 @@
\RequirePackage{scrlfile-patcholdlatex}%
\RequirePackage{xparse}%
% \end{macrocode}
-% Explicitly switch of \textsf{expl} syntax because of a
-% \textsf{xparse-2020-10-01} bug in version 2020-02-02.
+% Explicitly switch of \pkg{expl3} syntax because of a
+% \pkg{latexrelease} bug in version 2020-02-02.
% \begin{macrocode}
\ExplSyntaxOff
}%
@@ -180,19 +163,30 @@
% \end{macrocode}
%
% \begin{option}{withdeprecated}
-% \changes{v3.32}{2020/09/11}{new option}
-% Depending on this option we implement addition deprecated commands.
+% \changes{v3.32}{2020/09/11}{added}
+% Depending on this option we implement addition deprecated commands.
% \begin{macrocode}
\DeclareOption{withdeprecated}{%
% \end{macrocode}
%
-% \begin{macro}{\AfterClass+}
-% \begin{macro}{\AfterClass!}
-% \cs{scrlfile@AfterClass} is used to store the original \cs{AfterClass},
-% before redefining \cs{AfterClass} to handle the plus and the exclamation
-% mark variant.
+% \begin{command}[noindex]{\AfterClass+,\AfterClass!}
+% \cs{scrlfile@AfterClass} is used in the sub-packages to store the original
+% \cs{AfterClass} and can be used to redefine \cs{AfterClass} to handle the
+% plus and the exclamation mark variant.
% \begin{macrocode}
\RenewDocumentCommand\AfterClass{}{%
+% \end{macrocode}
+%^^A Hack for correct line numbers in the index:
+%^^A - end environment,
+%^^A - do index entries
+%^^A - fix vertical spaces
+%^^A - restart environment without printing and indexing
+% \end{command}
+% \SpecialMainCommandIndex{\AfterClass+}
+% \SpecialMainCommandIndex{\AfterClass\quotechar!}
+% \vskip-\dimexpr 2.2\baselineskip+\parskip\relax
+% \begin{command}[noindex,noprint]{\AfterClass+,\AfterClass!}
+% \begin{macrocode}
\kernel@ifnextchar +%
{\scrlfile@emulatedeprecated{Class}}%
{%
@@ -202,16 +196,26 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\AfterPackage+}
-% \begin{macro}{\AfterPackage!}
-% \cs{scrlfile@AfterPackage} is used to store the original \cs{AfterPackage},
-% before redefining \cs{AfterPackage} to handle the plus and the exclamation
-% mark variant.
+% \begin{command}[noindex]{\AfterPackage+,\AfterPackage!}
+% \cs{scrlfile@AfterPackage} is used in the sub-packages to store the original
+% \cs{AfterPackage} and can be used to redefine \cs{AfterPackage} to handle
+% the plus and the exclamation mark variant.
% \begin{macrocode}
\RenewDocumentCommand\AfterPackage{}{%
+% \end{macrocode}
+%^^A Hack for correct line numbers in the index:
+%^^A - end environment,
+%^^A - do index entries
+%^^A - fix vertical spaces
+%^^A - restart environment without printing and indexing
+% \end{command}
+% \SpecialMainCommandIndex{\AfterPackage+}
+% \SpecialMainCommandIndex{\AfterPackage\quotechar!}
+% \vskip-\dimexpr 2.2\baselineskip+\parskip\relax
+% \begin{command}[noindex,noprint]{\AfterPackage+,\AfterPackage!}
+% \begin{macrocode}
\kernel@ifnextchar +%
{\scrlfile@emulatedeprecated{Package}}%
{%
@@ -221,11 +225,10 @@
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\scrlfile@emulatedeprecated}
-% \changes{v3.32}{2020/09/11}{new internal command}
+% \changes{v3.32}{2020/09/11}{added}
% This emulates \cs{AfterClass+}, \cs{AfterPackage+}, \cs{AfterClass!} and
% \cs{AfterPackage!} using \cs{AfterAtEndOfClass} or
% \cs{AfterAtEndOfPackage}. Note, that both, the plus and the exclamation mark
@@ -256,17 +259,15 @@
\ProcessOptions\relax
% \end{macrocode}
%
-% Last but not least this is a \KOMAScript{} package, so we also define the
-% \KOMAScript{} logo:
-% \begin{macrocode}
-\RequirePackage{scrlogo}
-% \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:
diff --git a/macros/latex/contrib/koma-script/source/scrlogo.dtx b/macros/latex/contrib/koma-script/source/scrlogo.dtx
index ceea050dca..c2c05f1705 100644
--- a/macros/latex/contrib/koma-script/source/scrlogo.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlogo.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlogo.dtx
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
@@ -15,31 +15,14 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of the file `scrlogo.dtx' at least.
-% ----------------------------------------------------------------------
-% scrlogo.dtx
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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 mindestens aus der Datei `scrlogo.dtx'.
% ======================================================================
%
-%%% From File: $Id: scrlogo.dtx 3527 2020-09-11 09:44:32Z kohm $
+%%% From File: $Id: scrlogo.dtx 3688 2022-02-10 08:26:37Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2020-09-11 11:44:32 +0200 (Fri, 11 Sep 2020) $
+ \filedate$Date: 2022-02-10 09:26:37 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
\filerevision$Revision: 2631 $
\edef\reserved@a{%
@@ -72,56 +55,84 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrlogo.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+% Make it possible to load scrlogo.dtx directly.
+\csname nodriver\endcsname
+\expandafter\let\csname endnodriver\endcsname\relax
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \DocInput{\filename}
+ \DocInput{scrlogo.dtx}
\end{document}
+\endnodriver
%</dtx>
% \fi^^A meta-comment
%
-% \selectlanguage{ngerman}
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
-%<*logo>
-% \fi
-%
-% \section{\KOMAScript{} Logo}
-%
-% \begin{macro}{\KOMAScript}
-% Das \KOMAScript-Logo wird in allen \KOMAScript-Paketen und -Klassen
-% definiert, falls es nicht bereits definiert ist. Dabei werden die
-% Versalien moderat gesperrt. Es wird jedoch darauf verzichtet, die
-% Versalien etwa einen Punkt kleiner zu setzen, da das Logo aktiv
-% ausgezeichnet erscheinen soll.
+% \changes{v3.36}{2022/02/02}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/02}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrlogo.dtx}
+% \title{\href{https://komascript.de}{\KOMAScript} \partname\ \file{\filename}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This part of \KOMAScript{} provides not only the \cs{KOMAScript} command
+% for all \KOMAScript{} classes and packages, but also a standalone package
+% to provide the logo.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user manual of \pkg*{scrlogo} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation of the \KOMAScript{} Logo}
+%
+% \begin{command}{\KOMAScript}
+% \changes{v3.36}{2022/02/02}{respect \pkg{hyperref}}
+% \changes{v3.36}{2022/02/02}{other packages and classes load \pkg*{scrlogo}
+% instead of defining the command itself}
+% From version~3.36, the letter spacing of the upper case letters is not used
+% in PDF context of package \pkg{hyperref}.
% \begin{macrocode}
+%<*logo>
+%<forcedefine>\IfFileExists{scrlogo.sty}{%
+%<!package>\RequirePackage{scrlogo}
+%<forcedefine>}{}%
+%<*(package|forcedefine)&logo>
\@ifundefined{KOMAScript}{%
- \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
- M\kern.05em A\kern.1em-\kern.1em Script}}}{}
+ \DeclareRobustCommand*{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
+ M\kern.05em A\kern.1em-\kern.1em Script}}%
+ \@ifundefined{pdfstringdefPreHook}{%
+ \def
+ }{%
+ \g@addto@macro
+ }%
+ \pdfstringdefPreHook{%
+ \def\KOMAScript{KOMA-Script}%
+ \expandafter\def\csname KOMAScript \endcsname{KOMA-Script}%
+ }%
+}{}
+%</(package|forcedefine)&logo>
+%</logo>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
% \Finale
-%
-% \iffalse
-%</logo>
-% \fi
+% \PrintChanges
%
\endinput
-%
-% end of file `scrlogo.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:
+
diff --git a/macros/latex/contrib/koma-script/source/scrmain.ins b/macros/latex/contrib/koma-script/source/scrmain.ins
index e53a87c791..0a7c568745 100644
--- a/macros/latex/contrib/koma-script/source/scrmain.ins
+++ b/macros/latex/contrib/koma-script/source/scrmain.ins
@@ -1,6 +1,6 @@
% ======================================================================
% scrmain.ins
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -16,26 +16,9 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrmain.ins
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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.
% ======================================================================
-% $Id: scrmain.ins 3527 2020-09-11 09:44:32Z kohm $
+% $Id: scrmain.ins 3696 2022-02-11 09:45:27Z kohm $
% ---------- KOMA-Script default docstrip declarations -----------------
@@ -90,7 +73,7 @@
}
\generate{\usepreamble\defaultpreamble
-% \file{scrbook.cls}{%
+% \file{scrbook.cls}{% commented (long version is same as short version below)
% \from{scrkernel-version.dtx}{class,book,long}%
% }%
\file{scrreport.cls}{%
@@ -302,7 +285,7 @@
\from{scrkernel-footnotes.dtx}{class,letter,option}%
\from{scrkernel-listsandtabulars.dtx}{class,letter,option}%
\from{scrkernel-notepaper.dtx}{class,letter,option}%
- \from{scrkernel-circularletters.dtx}{class,letter,option}%
+ \from{scrkernel-addressfiles.dtx}{class,letter,option}%
\from{scrkernel-miscellaneous.dtx}{class,letter,execoption}%
\from{scrkernel-compatibility.dtx}{class,letter,body}%
\from{scrkernel-fonts.dtx}{class,letter,body}%
@@ -318,7 +301,7 @@
\from{scrkernel-footnotes.dtx}{class,letter,body}%
\from{scrkernel-listsandtabulars.dtx}{class,letter,body}%
\from{scrkernel-notepaper.dtx}{class,letter,body}%
- \from{scrkernel-circularletters.dtx}{class,letter,body}%
+ \from{scrkernel-addressfiles.dtx}{class,letter,body}%
\from{scrlogo.dtx}{logo}%
}%
}
@@ -344,7 +327,7 @@
% \from{scrkernel-footnotes.dtx}{package,letter,option}%
% \from{scrkernel-listsandtabulars.dtx}{package,letter,option}%
\from{scrkernel-notepaper.dtx}{package,letter,option}%
- \from{scrkernel-circularletters.dtx}{package,letter,option}%
+ \from{scrkernel-addressfiles.dtx}{package,letter,option}%
\from{scrkernel-miscellaneous.dtx}{package,letter,execoption}%
% \from{scrkernel-compatibility.dtx}{package,letter,body}%
\from{scrkernel-fonts.dtx}{package,letter,body}%
@@ -360,7 +343,7 @@
% \from{scrkernel-footnotes.dtx}{package,letter,body}%
% \from{scrkernel-listsandtabulars.dtx}{package,letter,body}%
\from{scrkernel-notepaper.dtx}{package,letter,body}%
- \from{scrkernel-circularletters.dtx}{package,letter,body}%
+ \from{scrkernel-addressfiles.dtx}{package,letter,body}%
\from{scrlogo.dtx}{logo}%
}%
}%
@@ -434,45 +417,6 @@
% }
\generate{\usepreamble\defaultpreamble
- \file{NipponEL.lco}{%
- \from{scrkernel-version.dtx}{trace}%
- \from{japanlco.dtx}{lco,Ni,EARLY,LOW,head}%
- \from{japanlco.dtx}{lco,Ni,EARLY,LOW,body}%
- }%
- \file{NipponEH.lco}{%
- \from{scrkernel-version.dtx}{trace}%
- \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,head}%
- \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,body}%
- }%
- \file{NipponLL.lco}{%
- \from{scrkernel-version.dtx}{trace}%
- \from{japanlco.dtx}{lco,Ni,LATE,LOW,head}%
- \from{japanlco.dtx}{lco,Ni,LATE,LOW,body}%
- }%
- \file{NipponLH.lco}{%
- \from{scrkernel-version.dtx}{trace}%
- \from{japanlco.dtx}{lco,Ni,LATE,HIGH,head}%
- \from{japanlco.dtx}{lco,Ni,LATE,HIGH,body}%
- }%
- \file{NipponRL.lco}{%
- \from{scrkernel-version.dtx}{trace}%
- \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,head}%
- \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,body}%
- }%
- \file{KakuLL.lco}{%
- \from{scrkernel-version.dtx}{trace}%
- \from{japanlco.dtx}{lco,Kaku,LATE,LOW,head}%
- \from{japanlco.dtx}{lco,Kaku,LATE,LOW,body}%
- }%
-}%
-
-%\generate{\usepreamble\defaultpreamble
-% \file{scrhack.tex}{%
-% \from{scrhack.dtx}{manual}%
-% }%
-%}
-
-\generate{\usepreamble\defaultpreamble
\file{scrkbase.sty}{%
\from{scrkernel-version.dtx}{package,scrkbase}%
\from{scrkernel-basics.dtx}{package,prepare,koma}%
@@ -486,6 +430,7 @@
% --- additional package batches (maybe used with other classes, too) --
+\batchinput{japanlco.dtx}% several Japanese lco-files
\batchinput{scrlogo.dtx}% scrlogo.sty
\batchinput{scrkernel-typearea.dtx}% typearea.sty
\batchinput{scrkernel-basics.dtx}% scrbase.sty
diff --git a/macros/latex/contrib/koma-script/source/scrsource.tex b/macros/latex/contrib/koma-script/source/scrsource.tex
index b68831469b..9bd9db4675 100644
--- a/macros/latex/contrib/koma-script/source/scrsource.tex
+++ b/macros/latex/contrib/koma-script/source/scrsource.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrsource.tex
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -16,24 +16,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrsource.tex
-% Copyright (c) Markus Kohm, 2002-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
+% $Id: scrsource.tex 3748 2022-03-09 10:02:51Z kohm $
% Try to get the version of KOMA-Script from scrkernel-version.dtx.
\begingroup
@@ -46,91 +30,108 @@
}
\expandafter
\ParseKOMAScriptVersion\KOMAScriptVersion\ParseKOMAScriptVersion
- \gdef\filename{\jobname}
+ \gdef\filename{\jobname.tex}
\endgroup
+\edef\releaselink{https://sf.net/p/koma-script/code/HEAD/tree/tags/release-\fileversion}
+\edef\releaseurl{\noexpand\url{\releaselink}}
+
\ProvidesFile{scrsource.tex}[\KOMAScriptVersion (source)]
-\documentclass{scrdoc}
-\usepackage[T1]{fontenc}
-\usepackage{lmodern}
-\usepackage[english,ngerman]{babel}
-\newcommand*{\Environment}[1]{\texttt{\mbox{#1}}}
-\CodelineIndex
-\RecordChanges\setcounter{GlossaryColumns}{1}
-\title{\KOMAScript{} -- The Source\footnote{Ich weiß natürlich, dass ein
- Englischer Titel eines vorwiegend deutschsprachigen Dokuments ein
- wenig eigentümlich ist, aber "`\KOMAScript{} -- Der
- Quelltext"' wollte mir einfach nicht gefallen.}%
-}
-\date{\filedate\\[1ex] Version \fileversion}
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{alltt}
+
+\title{\KOMAScript\,---\,The Source}
+\date{Version \fileversion{} of \filedate}
\author{Markus Kohm}
\begin{document}
- \maketitle
- \begin{abstract}\noindent
- In diesem Dokument finden Sie \emph{nicht} die Anleitung zu
- \KOMAScript{}. Wenn Sie diese suchen, dann suchen Sie bitte nach
- \texttt{scrguide} (Deutsch) oder \texttt{scrguien} (Englisch). In
- diesem Dokument ist die Implementierung von \KOMAScript{} -- in
- erster Linie der \KOMAScript{}-Klassen -- dokumentiert.
- \end{abstract}
- \tableofcontents
-
- \clearpage
- \addsec{Vorwort}
-
- Sie finden im Folgenden die Dokumentation der Implementierung von
- \KOMAScript. Diese kann für Paketautoren von Interesse sein. Bevor
- ein Paketautor ein Makro umdefiniert oder ein internes Makro
- verwendet, sollte er jedoch Rücksprache mit dem Autor von
- \KOMAScript{} halten, damit so weit wie möglich sichergestellt ist,
- dass bei zukünftigen Versionen von \KOMAScript{} die notwendige
- Kompatibilität erhalten bleibt oder der Paketautor über notwendige
- Änderungen an den entsprechenden Makros informiert wird.
-
- Teile der Dokumentation sind in Englisch. Der größte Teil ist jedoch
- in Deutsch.
-
- Der Quelltext ist in logische Gruppen eingeteilt und in dieser Form
- dokumentiert. Die Reihenfolge in der Dokumentation entspricht jedoch
- \emph{nicht} der Reihenfolge des Codes in den Klassen und Paketen.
-
- \DocInclude{scrkernel-version}
- \DocInclude{scrkernel-basics}
-% \DocInclude{tocbasic}
- \DocInclude{scrkernel-miscellaneous}
- \DocInclude{scrkernel-language}
- \DocInclude{scrkernel-fonts}
- \DocInclude{scrkernel-typearea}
- \DocInclude{scrkernel-floats}
- \DocInclude{scrkernel-footnotes}
- \DocInclude{scrkernel-pagestyles}
- \DocInclude{scrkernel-paragraphs}
- \DocInclude{scrkernel-title}
- \DocInclude{scrkernel-sections}
- \DocInclude{scrkernel-listsof}
- \IfFileExists{scrkernel-tocstyle.dtx}{\DocInclude{scrkernel-tocstyle}}{}
- \DocInclude{scrkernel-bibliography}
- \DocInclude{scrkernel-index}
- \DocInclude{scrkernel-listsandtabulars}
- \DocInclude{scrlfile}
- \DocInclude{scrlogo}
- \DocInclude{scrkernel-compatibility}
- \DocInclude{scrkernel-notepaper}
- \DocInclude{scrkernel-variables}
- \DocInclude{scrkernel-pseudolengths}
- \DocInclude{scrkernel-letterclassoptions}
- \DocInclude{japanlco}
- \DocInclude{scrkernel-circularletters}
- \DocInclude{scrextend}
- \DocInclude{scrhack}
-
- \PrintIndex
- \PrintChanges
+\maketitle
+\begin{abstract}
+ Formerly this was the implementation documentation of the whole
+ \KOMAScript. But currently it is a dummy only, that explains how to make the
+ implementation documentation from \KOMAScript{} v3.36 or newer.
+\end{abstract}
+
+\addsec{How to Make the Implementation Documentation}
+
+To make the implementation documentation you either can use \file{l3build} to
+make all files at once or do all the work step by step manually.
+
+To be able to use \file{l3build} you need the original sources from
+SourceForge. Best is, to use \file{subversion} to check out the sources of the
+release you are currently using. If you, e.g., use \KOMAScript{} v\fileversion
+you can checkout \releaseurl{} using:
+\begin{alltt}\small
+svn co \releaseurl koma-script-\fileversion
+\end{alltt}
+within a terminal window. Note: You have to make sure, that the Subversion
+command line client \file{svn} is installed before.
+
+This will copy the whole source of the release to a new directory
+\file{koma-script-\fileversion}. Change to the directory and run:
+\begin{verbatim}
+l3build doc
+\end{verbatim}
+This will make a lot of new PDF files with the implementation documentation of
+all the source files of \KOMAScript.
+
+If you cannot use \file{l3build}, e.g., because you cannot checkout the
+sources from SourceForge, you can just use an already installed legal
+distribution of \KOMAScript. In this case:
+\begin{itemize}
+\item Copy all \file{*.dtx} files from the source directory of the installed
+ \KOMAScript{} to a new directory where you have the right to write to.
+\item Open the first of these files, e.g., \file{koma-script-source-doc.dtx},
+ into your preferred \LaTeX{} editor and \emph{compile} the file using
+ \file{lualatex-dev}. If you have already installed \LaTeX{} 2022/06/01 you
+ can also use \file{lualatex} instead of \file{lualatex-dev}.
+
+ Instead of using your \LaTeX{} editor, you can also use
+\begin{verbatim}
+lualatex-dev koma-script-source-doc.dtx
+\end{verbatim}
+ from a terminal. If you get an error because of missing
+ \file{koma-script-source-doc.cls}, you do not have a correctly installed
+ \KOMAScript. However, you can generate the class using
+\begin{verbatim}
+tex koma-script-source-doc.dtx
+\end{verbatim}
+ Note: You really have to use either \file{tex}, \file{pdftex}, \file{luatex}
+ or \file{xetex} for this step and not \file{latex}, \file{pdflatex},
+ \file{lualatex} or \file{xelatex}!
+
+ If you want the index and the changes, you also have to run
+\begin{verbatim}
+makeindex -s gind.ist koma-script-source-doc
+makeindex -s gglo.ist -o koma-script-source-doc.gls koma-script-source.doc.glo
+\end{verbatim}
+ and also repeat the \file{lualatex-dev} and the two \file{makeindex} runs at
+ least three or four times.
+\item Repeat the last step for every \file{*.dtx} file replacing the
+ \file{koma-script-source-doc} by the base name of the corresponding
+ \file{*.dtx} file.
+\end{itemize}
+
+As you can see, using \file{l3build} is much easier.
+
+\addsec{How to Make the Implementation Documentation \KOMAScript{} before 3.36}
+
+In case of using an older \KOMAScript{} release, you have to check out the
+older release (see above) and run:
+\begin{verbatim}
+make scrsource.pdf
+\end{verbatim}
+But this can be used with a Linux like build system using GNU make only. And
+note: The implementation documentation of \KOMAScript{} up to version 3.35 was
+generally in German.
+
\end{document}
-%
-% end of file `scrsource.tex'
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: t
-%%% End:
+% Local Variables:
+% mode: latex
+% 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:
diff --git a/macros/latex/contrib/koma-script/source/scrtime.dtx b/macros/latex/contrib/koma-script/source/scrtime.dtx
index 9829fe01ce..5626f14692 100644
--- a/macros/latex/contrib/koma-script/source/scrtime.dtx
+++ b/macros/latex/contrib/koma-script/source/scrtime.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{311}
% \iffalse
% ======================================================================
% scrtime.dtx
-% Copyright (c) Markus Kohm, 1995-2019
+% Copyright (c) Markus Kohm, 1995-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,52 +17,16 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrtime.dtx
-% Copyright (c) Markus Kohm, 1995-2019
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: scrtime.dtx 3256 2019-10-10 07:06:49Z kohm $
+%%% From File: $Id: scrtime.dtx 3688 2022-02-10 08:26:37Z kohm $
%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-10-10 09:06:49 +0200 (Thu, 10 Oct 2019) $
+ \filedate$Date: 2022-02-10 09:26:37 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3256 $
+ \filerevision$Revision: 3688 $
\endgroup
\ProvidesFile{scrtime.dtx}[\filedate\space\filerevision\space
%</driver>
@@ -111,63 +74,71 @@
\endbatchfile
%</dtx>
%<*driver>
-\documentclass{scrdoc}
-\usepackage[german,english]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrtime.dtx}
-\title{The \textsf{KOMA}-timedate-bundle\thanks{This file has
- revision number \fileversion, last revised \filedate.}}
-\author{Markus Kohm}
-\date{\filedate}
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \begin{abstract}
- This bundle includes a package \texttt{scrtime} defining some macros to
- handle compilation-time. It's a very simple implementation similar to
- \texttt{time.sty}. I've tried to use no additional register.
-
- The second package \texttt{scrdate} defines some macros to handle the name
- of the day!
- \end{abstract}
- \tableofcontents
\DocInput{scrtime.dtx}
\end{document}
%</driver>
% \fi
%
+% \changes{v3.36}{2022/02/07}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/07}{require package \pkg*{scrlogo} instead of
+% defining \cs{KOMAScript}}
+%
+% \GetFileInfo{scrtime.dtx}
+% \title{The Current Time and Name of the Day with
+% \href{https://komascript.de}{\KOMAScript} Packages \pkg*{scrtime} and
+% \pkg*{scrdate}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% This bundle includes a package \pkg*{scrtime} defining some macros to
+% handle compilation-time. It's a very simple implementation similar to
+% \pkg{time}. I've tried to not use additional registers.
+%
+% The second package \pkg*{scrdate} defines some macros to handle the name
+% of the day!
+% \end{abstract}
% \tableofcontents
%
-% \section{Introduction}
+% \section{User Manual}
%
-% See the \KOMAScript{} guide for informations about how to use the package.
+% You can find the user manuals of \pkg*{scrtime} and \pkg*{scrdate} in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
% \section{Implementation}
%
% \subsection{Options}
%
-% \iffalse
+% Since version~1.2 both packages use \pkg*{scrkbase} for options and
+% additional features. This is loaded by the \file{ins}-file, so we don't need
+% to load it here.
+%
+% \begin{macrocode}
%<*option>
-% \fi
-% Since version~1.2 both packages use \textsf{scrkbase} for options and
-% additional features.
+% \end{macrocode}
%
%
-% \subsubsection{Options of \textsf{scrtime}}
+% \subsubsection{Options of \pkg*{scrtime}}
%
-% \iffalse
+% \begin{macrocode}
%<*scrtime>
-% \fi
+% \end{macrocode}
%
% \begin{option}{12h}
-% \changes{v1.1b}{1995/02/15}{Option \texttt{12h} added.}
-% \changes{v1.2}{2010/03/10}{Option uses \textsf{scrkbase}.}
+% \changes{v1.1b}{1995/02/15}{Option \opt{12h} added.}
+% \changes{v1.2}{2010/03/10}{Option uses \pkg*{scrkbase}.}
% \begin{option}{24h}
-% \changes{v1.1b}{1995/02/15}{Option \texttt{24h} added.}
+% \changes{v1.1b}{1995/02/15}{Option \opt{24h} added.}
% \changes{v1.2}{2010/03/10}{Option is deprecated.}
-% \begin{macro}{\if@Hxii}
+% \begin{macro}{\if@Hxii,\@Hxiitrue,\@Hxiifalse}
% \changes{v1.1b}{1995/02/15}{new switch}
% There are two the two Options |24h| and |12h|. We need a switch to
% distinguish.
@@ -175,8 +146,7 @@
\newif\if@Hxii
% \end{macrocode}
% \end{macro}
-%
-% So the Options are simple.
+% So the options are simple.
% \begin{macrocode}
\KOMA@ifkey{12h}{@Hxii}
\KOMA@DeclareDeprecatedOption[scrtime]{24h}{12h=false}
@@ -184,35 +154,37 @@
% \end{option}
% \end{option}
%
-% Currently only \textsf{scrtime} uses options, so only \textsf{scrtime} needs
+% Currently only \pkg*{scrtime} uses options, so only \pkg*{scrtime} needs
% to process them.
% \begin{macrocode}
\KOMAProcessOptions\relax
% \end{macrocode}
%
-% \iffalse
+% \begin{macrocode}
%</scrtime>
+% \end{macrocode}
+%
+% \begin{macrocode}
%</option>
-% \fi
+% \end{macrocode}
%
-% \subsection{Macros}
%
-% \iffalse
+% \subsection{Commands and Macros}
+%
+% \begin{macrocode}
%<*body>
-% \fi
+% \end{macrocode}
+%
+% \subsubsection{Commands and Macros of \pkg*{scrtime}}
%
-% \subsubsection{Macros of \textsf{scrtime}}
-% \iffalse
+% \begin{macrocode}
%<*scrtime>
-% \fi
-% We use |\@tempcnta| and |\@tempcntb| but we know, that this is not
-% a very good idea.
-%
-% \begin{macro}{\thistime}
-% \changes{v1.1b}{1995/02/15}{{\cmd\thistime*} added.}%^^A
-% \changes{v1.1b}{1995/02/15}{{\cmd\thistime} works.}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \end{macrocode}
+%
+% \begin{command}{\thistime}
+% \changes{v1.1b}{1995/02/15}{\cs{thistime*} added}
+% \changes{v1.1b}{1995/02/15}{\cs{thistime} fixed}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% First we have to decide, is it a star-version ore not.
% \begin{macrocode}
\def\thistime{%
@@ -220,8 +192,11 @@
{\let\@tempif\iffalse\@thistime}
{\let\@tempif\iftrue\@thistime}}
% \end{macrocode}
-% Know we have to calculate the hours and minutes. |\@tempcnta| are the
-% hours and |\@tempcntb| are the minutes.
+% \begin{macro}{\@thistime}
+% \changes{v1.1b}{1995/02/15}{added}
+% Know we have to calculate the hours and minutes. \cs{@tempcnta} are the
+% hours and \cs{@tempcntb} are the minutes. We use a group to encapsulate the
+% usage of the two local counters of from the \LaTeX{} kernel.
% \begin{macrocode}
\newcommand*{\@thistime}[1][:]{%
\begingroup
@@ -230,8 +205,8 @@
\divide\@tempcnta60
% \end{macrocode}
% If we use 12h-mode, we have to cut the houres.
-% \changes{v1.1d}{1996/01/14}{Space added at \cs{@thistime} between -12
-% and \cs{fi} (Martin Schroeder).}
+% \changes{v1.1d}{1996/01/14}{space added at \cs{@thistime} between -12
+% and \cs{fi} (Martin Schroeder)}
% \begin{macrocode}
\if@Hxii\ifnum\@tempcnta>12 \advance\@tempcnta-12 \fi\fi
% \end{macrocode}
@@ -241,56 +216,57 @@
\the\@tempcnta{#1}\@tempif\ifnum\@tempcntb<10 0\fi\fi\the\@tempcntb%
\endgroup}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\settime}
-% \changes{v1.1b}{1995/02/15}{{\cmd\settime} redefines {\cmd\@thistime}}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\settime}
+% \changes{v1.1b}{1995/02/15}{redefines \cs{@thistime}}
% \changes{v1.1c}{1995/05/24}{missing macrocode-environment inserted}
-% We simply have to set |\thistime|.
+% We simply have to set \cs{@thistime}.
% \begin{macrocode}
\newcommand*{\settime}[1]{\renewcommand*{\@thistime}[1][]{#1}}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \iffalse
+% \begin{macrocode}
%</scrtime>
-% \fi
-%
+% \end{macrocode}
+%
%
-% \subsubsection{Macros of \textsf{scrdate}}
+% \subsubsection{Commands and Macros of \pkg*{scrdate}}
%
-% \iffalse
+% \begin{macrocode}
%<*scrdate>
-% \fi
-%
-% \changes{v1.1a}{1995/02/12}{Changed simply all but the user-interface.}
-% \changes{v3.05a}{2010/03/10}{Changed simply everything.}
-% Since version~3.05a \textsf{scrdate} was rewritten. First step was to make
+% \end{macrocode}
+%
+% \changes{v1.1a}{1995/02/12}{changed all but the user-interface}
+% \changes{v3.05a}{2010/03/10}{changed everything}
+% With version~3.05a \pkg*{scrdate} was rewritten. First step was to make
% more macros full expandable to provide \cs{MakeUppercase} and
% \cs{MakeLowercase}. Second was to extend the user interface by some new
% functionality.
%
-% \begin{macro}{\CenturyPart}
-% \changes{v3.05a}{2010/03/10}{New}
+% \begin{command}{\CenturyPart}
+% \changes{v3.05a}{2010/03/10}{added}
% This is the century part of a year number and so only a shortcut to
-% |\XdivY{...}{100}|, that is defined at \textsf{scrbase}.
+% |\XdivY{...}{100}|, that is defined at \pkg*{scrbase}.
% \begin{macrocode}
\newcommand*{\CenturyPart}[1]{\XdivY{#1}{100}}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DecadePart}
-% \changes{v3.05a}{2010/03/10}{New}
+% \end{command}
+%
+% \begin{command}{\DecadePart}
+% \changes{v3.05a}{2010/03/10}{added}
% This is the year number withoud the century part and therefrso only a
-% shortcut to |\XmodY{...}{100}|, that is defined at \textsf{scrbase}.
+% shortcut to |\XmodY{...}{100}|, that is defined at \pkg*{scrbase}.
% \begin{macrocode}
\newcommand*{\DecadePart}[1]{\XmodY{#1}{100}}
% \end{macrocode}
-% \end{macro}
-%
+% \end{command}
+%
% \begin{macro}{\@GaussYear}
-% \changes{v3.05a}{2010/03/10}{New (internal)}
+% \changes{v3.05a}{2010/03/10}{added}
% At the Gauss calculation of the day of the week January and February relates
% to the year before. This macro does the correction for any date.
% \begin{macrocode}
@@ -310,8 +286,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\DayNumber}
-% \changes{v3.05a}{2010/03/10}{New}
+% \begin{command}{\DayNumber}
+% \changes{v3.05a}{2010/03/10}{added}
% Returns the numerical value of the day of week. Note, that Sunday is 0,
% Monday is 1, \dots, Saturday is 6. We use the Gauss calculation of the day
% of the week. First argument is the year, second the month and last the day
@@ -338,93 +314,93 @@
}{7}%
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ISODayNumber}
-% \changes{v3.05a}{2010/03/10}{New}
-% Das gleiche wie \cs{DayNumber} aber mit einem ISO-Datum als Argument.
+% \end{command}
+% \begin{command}{\ISODayNumber}
+% \changes{v3.05a}{2010/03/10}{added}
+% The same like \cs{DayNumber} but with ISO date argument.
% \begin{macrocode}
\newcommand*{\ISODayNumber}[1]{\expandafter\@IsoDayNumber#1\@nil}
% \end{macrocode}
% \begin{macro}{\@IsoDayNumber}
-% \changes{v3.05a}{2010/03/10}{New (internal)}
+% \changes{v3.05a}{2010/03/10}{added}
% \begin{macrocode}
\newcommand*{\@IsoDayNumber}{}
\def\@IsoDayNumber#1-#2-#3\@nil{\DayNumber{#1}{#2}{#3}}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\DayName}
-% \changes{v3.05a}{2010/03/10}{New}
+% \end{command}
+%
+% \begin{command}{\DayName}
+% \changes{v3.05a}{2010/03/10}{added}
% Returns the name of the day of the week. Arguments like \cs{DayNumber}.
% \begin{macrocode}
\newcommand*{\DayName}[3]{\@dayname{\DayNumber{#1}{#2}{#3}}}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ISODayName}
-% \changes{v3.05a}{2010/03/10}{New}
-% Das gleiche wie \cs{DayName} aber mit einem ISO-Datum als Argument.
+% \end{command}
+% \begin{command}{\ISODayName}
+% \changes{v3.05a}{2010/03/10}{added}
+% The same like \cs{DayName} but with ISO date argument.
% \begin{macrocode}
\newcommand*{\ISODayName}[1]{\@dayname{\ISODayNumber{#1}}}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DayNameByNumber}
-% \changes{v3.05a}{2010/03/10}{New}
+% \end{command}
+%
+% \begin{command}{\DayNameByNumber}
+% \changes{v3.05a}{2010/03/10}{added}
% Returns the name of the day of the week. The argument is a number that will
-% be transposed to the range 0..6.
+% be transposed to the range 0\dots6.
% \begin{macrocode}
\newcommand*{\DayNameByNumber}[1]{%
\@dayname{\XmodY{#1}{7}}%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\ISOToday}
-% \changes{v3.05a}{2010/03/10}{New}
+% \begin{command}{\ISOToday}
+% \changes{v3.05a}{2010/03/10}{added}
% Returns the ISO date.
% \begin{macrocode}
\newcommand*{\ISOToday}{%
\the\year-\ifnum \month<10 0\fi\the\month-\ifnum \day<10 0\fi\the\day%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\IsoToday}
-% \changes{v3.05a}{2010/03/10}{New}
+% \begin{command}{\IsoToday}
+% \changes{v3.05a}{2010/03/10}{added}
% Returns the ISO date.
% \begin{macrocode}
\newcommand*{\IsoToday}{%
\the\year-\the\month-\the\day%
}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\todaysname}
-% \changes{v3.05a}{2010/03/10}{Rewritten}
+% \begin{command}{\todaysname}
+% \changes{v3.05a}{2010/03/10}{re-implemented}
% Using \cs{DayName} this is very, very simple.
% \begin{macrocode}
\newcommand*{\todaysname}{\DayName{\year}{\month}{\day}}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\todaysnumber}
-% \changes{v3.05a}{2010/03/11}{New}
+% \begin{command}{\todaysnumber}
+% \changes{v3.05a}{2010/03/11}{added}
% Using \cs{DayNumber} this is very, very simple.
% \begin{macrocode}
\newcommand*{\todaysnumber}{\DayNumber{\year}{\month}{\day}}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\nameday}
-% \changes{v3.05a}{2010/03/10}{Not longer \cs{long}}
-% We simply have to redefine |\todaysname|
+% \begin{command}{\nameday}
+% \changes{v3.05a}{2010/03/10}{no longer \cs{long}}
+% We simply have to redefine \cs{todaysname}.
% \begin{macrocode}
\newcommand\nameday[1]{\renewcommand*{\todaysname}{#1}}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\newdaylanguage}
+% \begin{command}{\newdaylanguage}
% \changes{v3.05a}{2010/03/10}{Sunday is 0}
% We write a macro to define the name of the days.
% \begin{macro}{\scrdate@languagenamewarning}
@@ -452,11 +428,11 @@
\PackageInfoNoLine{scrdate}{Language #1\space not defined.\MessageBreak
\protect\dayname@#1\space skipped}%
% \end{macrocode}
-% \changes{v1.1c}{1995/05/24}{missing \cs{end\{macrocode\}} added.}
+% \changes{v1.1c}{1995/05/24}{missing \cs{end\{macrocode\}} added}
% If it is defined, we define the name-selection-macro
-% |\dayname@|\emph{language}.
-% First we define the new macro |\dayname@|\emph{language}:
-% \changes{v3.05a}{2010/03/10}{Group removed.}
+% \cs{dayname@\meta{language}}.
+% First we define the new macro \cs{dayname@\meta{language}}:
+% \changes{v3.05a}{2010/03/10}{group removed}
% \changes{v3.15}{2014/12/11}{more robust \cs{ifcase}}
% \begin{macrocode}
}{%
@@ -465,12 +441,12 @@
#8\or #2\or #3\or #4\or #5\or #6\or #7\fi%
}%
% \end{macrocode}
-% Then we define, what to do at |\begin{document}|:
+% Then we define, what to do at \cs{begin\{document\}}:
% \begin{macrocode}
\AtBeginDocument{%
% \end{macrocode}
-% There we first have to test, if |\date|\emph{language} is defined
-% (e.g. using |german.sty|). If not, we have to warn once more.
+% There we first have to test, if \cs{date\meta{language}} is defined
+% (e.g. using package \pkg{german}). If not, we have to warn once more.
% \begin{macrocode}
\scr@ifundefinedorrelax{date#1}{%
\PackageInfoNoLine{scrdate}
@@ -482,21 +458,19 @@
% \begin{macrocode}
}{%
% \end{macrocode}
-% There we first save |\date|\emph{language} as |\D@date|\emph{language}.
-% This is a bit tricky, but I think, you'll understand it.
+% There we first save \cs{date\meta{language}} as \cs{D@date\meta{language}}.
% \begin{macrocode}
\expandafter\let\csname D@date#1\expandafter\endcsname
\csname date#1\endcsname
% \end{macrocode}
-% Now we redefine |\date|\emph{language}. It first defines |\@dayname| and
-% then calls saved macro. If you've understand the definition before, you'll
-% understand this tricky one, too.
+% Now we redefine \cs{date\meta{language}}. It first defines \cs{@dayname} and
+% then calls saved macro.
% \begin{macrocode}
\@namedef{date#1}{%
\expandafter\let\expandafter\@dayname\csname dayname@#1\endcsname
\@nameuse{D@date#1}}%
% \end{macrocode}
-% Last we have to select this new |\date|\emph{language}.
+% Last we have to select this new \cs{date\meta{language}}.
% \changes{v1.1j}{2000/01/20}{use of \cs{languagename} if defined}
% \changes{v3.08b}{2011/03/31}{one \% added}
% \begin{macrocode}
@@ -515,13 +489,14 @@
}%
}
% \end{macrocode}
-% \end{macro}
-%
+% \end{command}
+%
% \begin{macro}{\@dayname}
% This should be named selecting the language. Since I changed the definitions
-% |german.sty| and equal may be loaded before or after |scrdate.sty| or not.
+% package \pkg{german} and equal may be loaded before or after \pkg*{scrdate}
+% or not.
%
-% First we define the usual languages using |\newdaylanguage|:
+% First we define the usual languages using \cs{newdaylanguage}:
% \begin{macro}{\dayname@german}
% \begin{macrocode}
\newdaylanguage{german}{Montag}{Dienstag}{Mittwoch}
@@ -758,7 +733,7 @@
% \end{macrocode}
% \end{macro}
%
-% Last but not least file \texttt{scrdate.cfg} has to be included,
+% Last but not least file \file{scrdate.cfg} has to be included,
% if it exists.
% \begin{macrocode}
\InputIfFileExists{scrdate.cfg}
@@ -768,17 +743,23 @@
{}
% \end{macrocode}
%
-% \iffalse
+% \begin{macrocode}
%</scrdate>
-%</body>
-% \fi
+% \end{macrocode}
%
+% \begin{macrocode}
+%</body>
+% \end{macrocode}
+%
% \Finale
-%
-\endinput
-%
-% Ende der Datei `scrtime.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
+% \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:
diff --git a/macros/latex/contrib/koma-script/source/scrwfile.dtx b/macros/latex/contrib/koma-script/source/scrwfile.dtx
index 7228e756ab..5da27e5ee0 100644
--- a/macros/latex/contrib/koma-script/source/scrwfile.dtx
+++ b/macros/latex/contrib/koma-script/source/scrwfile.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrwfile.dtx
-% Copyright (c) Markus Kohm, 2010-2021
+% Copyright (c) Markus Kohm, 2010-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -16,65 +16,9 @@
%
% The Current Maintainer and author of this work is Markus Kohm.
%
-% The KOMA-Script bundle consists of all files listed in manifest.txt.
-% The work `scrwfile' consists of the files `scrwfile.dtx' and
-% `scrlogo.dtx'.
-%
-% If you're missing the installation batch file `scrwfile.ins', try
-% tex scrwfile.dtx
-% to unpack all files.
-% The package documentation may be produced repeating
-% latex scrwfile.dtx
-% at least three times.
-% ----------------------------------------------------------------------
-% scrwfile.dtx
-% Copyright (c) Markus Kohm, 2010-2021
-%
-% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets.
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c.
-% 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 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.
-%
-% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt
-% genannt sind.
-% Das Werk `scrwfile' besteht aus den Dateien `scrwfile.dtx' und
-% `scrlogo.dtx'.
-%
-% Falls Sie die Installations-Batch-Datei `scrwfile.ins' vermissen,
-% probieren Sie einfach einmal
-% tex scrwfile.dtx
-% um alle Dateien auszupacken. Zur englischen Anleitung siehe den
-% englischen Kommentar oben.
+% This work consists of all files listed in manifest.txt.
% ======================================================================
-% \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: scrwfile.dtx 3600 2021-05-30 19:00:56Z kohm $
+%%% From File: $Id: scrwfile.dtx 3773 2022-03-29 06:27:55Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{scrwfile.dtx}
@@ -83,11 +27,12 @@
%<package&identify>\ProvidesPackage{scrwfile}
%<driver>\ProvidesFile{scrwfile.drv}
%<*dtx|(package&identify)|driver>
- [2021/05/30 v0.1.9-alpha KOMA-Script package (write and clone files)]
+ [2021/05/30 v0.1.10 KOMA-Script package (write and clone files)]
%</dtx|(package&identify)|driver>
%<*dtx>
\ifx\documentclass\undefined
\input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
\@@input scrstrip.inc
\KOMAdefVariable{COPYRIGHTFROM}{2010}
@@ -105,130 +50,129 @@
\endbatchfile
%</dtx>
%<*driver>
- \documentclass{scrdoc}
- \usepackage[ngerman,english]{babel}
- \usepackage{listings}
- \lstnewenvironment{lstcode}[1][]{%
- \lstset{language=[LaTeX]TeX,basicstyle=\ttfamily\small,#1}%
- }{}
-
- \CodelineIndex
- \RecordChanges
- \GetFileInfo{scrwfile.dtx}
- \title{The \KOMAScript{} package \texttt{scrwfile}%
- \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
- \date{\filedate}
- \author{Markus Kohm}
-
- \newenvironment{Explain}{\par}{\par}
- \let\Macro\cs
- \let\Package\textsf
- \let\File\texttt
- \let\Option\texttt
- \let\Counter\texttt
- \let\ShowOutput\quote
- \let\endShowOutput\endquote
- \let\Parameter\marg
- \let\OParameter\oarg
- \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}}
- \let\PName\meta
- \let\PValue\texttt
- \providecommand*{\important}[1]{}
- \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:}
- \providecommand*{\AUTOREF}{}
- \makeatletter
- \def\AUTOREF#1:#2:{%
- \edef\@tempa{#1}%
- \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi
- \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi
- \ref{#1:#2}%
- }
- \providecommand*{\IndexCmd}[2][]{}
- \providecommand*{\textnote}[2][]{}
- \makeatother
-
- \begin{document}
- \maketitle
- \DocInput{\filename}
- \end{document}
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+\DocInput{scrwfile.dtx}
+\end{document}
%</driver>
% \fi
%
-% \selectlanguage{english}
-%
% \changes{v0.1}{2010/10/01}{start of new package}
% \changes{v0.1.7}{2014/10/13}{manual moved to \KOMAScript{} manual}
% \changes{v0.1.9}{2021/05/30}{version number scheme changed}
+% \changes{v0.1.10}{2022/02/05}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+%
+% \GetFileInfo{scrwfile.dtx}
+% \title{Saving Write Handles with the Experimental
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrwfile}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Version \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% The \TeX{} engines \TeX, \pdfTeX, and \XeTeX{} (but not \LuaTeX) do
+% provide only 16 handles for simultaneously write open files. Some of them
+% are already used by \LaTeX{}. Moreover, for every file using
+% \cs{@starttoc} \LaTeX{} keeps a write file open from usage of
+% \cs{@starttoc}, e.g., inside \cs{tableofcontents}, \cs{listoffigures}
+% etc., until the end of the document. Additional write files are used for
+% the index, glossary etc. So sometimes it happens, that there are not
+% enough handles to open another one. \pkg*{scrwfile} was made to change the
+% \LaTeX{} internal handling of all the helper files bases on \cs{@starttoc}
+% to not keep them open simultaneously, but use only one file handle for all
+% of them. So you should never run out of write file handles.
+% \end{abstract}
+%
+% \section{User Manual}
+%
+% You can find the user manual of \pkg*{scrwfile} in the \KOMAScript{} manual,
+% either the German \file{scrguide} or the English \file{scrguien}. But please
+% note:
+% \begin{quote}\bfseries
+% This is an experimental package. Usage of this package is on your own
+% risk. There is no support, if you are using this package, not only for
+% this package but also for the class you are using or other packages, that
+% use \cs{@starttoc} or \cs{@writefile} like \pkg{caption}, \pkg{float},
+% \pkg*{tocbasic}, \pkg{listings} and many more.
+% \end{quote}
+%
+% \MaybeStop{\PrintIndex}
+%
+%
+% \section{Implementation of \pkg*{scrwfile}}
%
-% \StopEventually{%
-% \clearpage
-% \PrintIndex\PrintChanges}
-%
-%
-% \section{Implementation of \Package{scrwfile}}
-%
-% \iffalse
+% \begin{macrocode}
%<*package>
-%<*identify>
-% \fi
+% \end{macrocode}
%
% \begin{macrocode}
+%<*identify>
\PackageWarningNoLine{scrwfile}{%
- THIS IS AN ALPHA VERSION!\MessageBreak
- USAGE OF THIS VERSION IS ON YOUR OWN RISK!\MessageBreak
+ THIS IS AN EXPERIMENTAL PACKAGE!\MessageBreak
+ USAGE OF THIS PACKAGE IS ON YOUR OWN RISK!\MessageBreak
EVERYTHING MAY HAPPEN!\MessageBreak
EVERYTHING MAY CHANGE IN FUTURE!\MessageBreak
THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!\MessageBreak
- Maybe, it would be better not to load this package.%
+ Maybe, it would be better not to load this package%
}
+%</identify>
% \end{macrocode}
%\iffalse
-%</identify>
%\fi
%
% \subsection{Options}
% \iffalse
%<*option>
% \fi
-%
% Currently we don't need options.
-%
% \iffalse
%</option>
% \fi
%
% \subsection{Body}
-% \iffalse
+% \begin{macrocode}
%<*body>
-% \fi
+% \end{macrocode}
%
% \subsubsection{Needed Packages}
%
-% Package \textsf{scrbase} is needed, because of using several \KOMAScript{}
+% Package \pkg*{scrbase} is needed, because of using several \KOMAScript{}
% basic commands.
% \begin{macrocode}
\RequirePackage{scrbase}[2010/09/17]
% \end{macrocode}
%
-% Package \textsf{scrlfile} is needed because of the \texttt{aux} file
-% handling and \verb|\protected@immediate@write|.
+% Package \pkg*{scrlfile} is needed because of the \file{aux}-file
+% handling and \cs{protected@immediate@write}.
% \begin{macrocode}
\RequirePackage{scrlfile}[2010/09/30]
% \end{macrocode}
%
+% \changes{v0.1.10}{2022/02/04}{\pkg{iftex} is required}
+% Package \pkg{iftex} is used to detect Lua\LaTeX.
+% \begin{macrocode}
+\RequirePackage{iftex}
+% \end{macrocode}
+%
% \subsubsection{Is is needed?}
%
% \changes{v0.1.9}{2021/05/30}{with Lua\LaTeX{} using is not recommended}
-% If the user uses Lua\LaTeX{} usage of \textsf{scrwfile} should not be
+% \changes{v0.1.10}{2022/02/04}{using \cs{ifluatex}}
+% \changes{v0.1.10}{2022/02/04}{\cs{PackageInfoNoLine} replaced by
+% \cs{PackageWarningNoLine}}
+% If the user uses Lua\LaTeX{} usage of \pkg*{scrwfile} should not be
% needed.
% \begin{macrocode}
-\scr@ifluatex{%
- \PackageInfoNoLine{scrwfile}{LuaLaTeX detected.\MessageBreak
+\ifluatex
+ \PackageWarningNoLine{scrwfile}{LuaLaTeX detected.\MessageBreak
With LuaLaTeX you should never get an error message:\MessageBreak
\space\space`No room for a new \string\write'.\MessageBreak
So scrwfile could make much more harm than benefit\MessageBreak
and using it is not recommended}%
-}{}
+\fi
% \end{macrocode}
%
% \subsubsection{\LaTeX{} Kernel Patchs}
@@ -238,15 +182,15 @@
% \begin{description}
% \item[Single handle feature] means, that \LaTeX{} will no longer need a file
% handle for every help file, but only one for all files. We will patch
-% |\@starttoc| and |\@writefile| to do so.
+% \cs{@starttoc} and \cs{@writefile} to do so.
% \item[Clone file feature] means, that every write to one file may be done to
-% another file, too. We will patch |\@writefile| to do so.
+% another file, too. We will patch \cs{@writefile} to do so.
% \end{description}
% Every patch should be minimum invasive, so that files, that are not under
-% \textsf{scrwfile}'s control are changed as little as possible.
+% \pkg*{scrwfile}'s control are changed as little as possible.
%
% \begin{macro}{\scrwfile@if@only}
-% First of all we check, if the file should be handled by \textsf{scrwfile}.
+% First of all we check, if the file should be handled by \pkg*{scrwfile}.
% \begin{macrocode}
\newcommand*{\scrwfile@if@only}[1]{%
\begingroup
@@ -273,16 +217,16 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\scrwfile@starttoc}
-% \begin{macro}{\scrwfile@@starttoc}
-% This is the internal redefinition of |\@starttoc|. First of all test, if it
+% \begin{macro}{\scrwfile@starttoc,\scrwfile@@starttoc}
+% This is the internal redefinition of \cs{@starttoc}. First of all test, if it
% should be used, then use it or not.
% \begin{macrocode}
\newcommand*{\scrwfile@starttoc}[1]{%
\scrwfile@if@only{#1}{\scrwfile@@starttoc}{\scrwfile@saved@starttoc}{#1}%
}
\newcommand*{\scrwfile@@starttoc}[1]{%
-%<trace> \typeout{Use my own \string\@starttoc\space for #1}%
+%<trace> \PackageInfo{scrwfile}{%
+%<trace> Using my own \string\@starttoc\space for `#1'}%
\begingroup
\if@filesw
\xdef\scrwfile@writefilelist{\scrwfile@writefilelist,#1}%
@@ -293,20 +237,18 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\scrwfile@writefile}
-% \begin{macro}{\scrwfile@@writefile}
-% \begin{macro}{\scrwfile@wrtout}
-% \begin{macro}{\scrwfile@writefilelist}
-% This is the internal redefinition of |\@writefile|. First of all test, if it
-% should be used, then use it or not.
+% \begin{macro}{\scrwfile@writefile,\scrwfile@@writefile,\scrwfile@wrtout,
+% \scrwfile@writefilelist}
+% This is the internal redefinition of \cs{@writefile}. First of all test, if
+% it should be used, then use it or not.
% \begin{macrocode}
\newcommand*{\scrwfile@writefile}[1]{%
\scrwfile@if@only{#1}{\scrwfile@@writefile}{\scrwfile@saved@writefile}{#1}%
}
\newcommand{\scrwfile@@writefile}[2]{%
-%<trace> \typeout{Use my own \string\@writefile\space for #1}%
+%<trace> \PackageInfo{scrwfile}{%
+%<trace> Using my own \string\@writefile\space for `#1'}%
\ifnum\scrwfile@wrtout>0
\begingroup
\@temptokena{#2}%
@@ -324,15 +266,12 @@
\newcommand*{\scrwfile@writefilelist}{}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\@writefile}
-% We have to add the single handle feature and the clone file feature to this.
-% \begin{macro}{\scrwfile@saved@writefile}
-% This is the original definition, that will be used, if the file is not under
-% \texttt{scrwfile}'s control.
+% \begin{macro}{\@writefile,\scrwfile@saved@writefile}
+% We have to add the single handle feature and the clone file feature to
+% \cs{@writefile} and therefore save the original
+% definition. \cs{scrwfile@saved@writefile} is used, whenever a file is not
+% under \pkg*{scrwfile}'s control.
% \begin{macrocode}
\newcommand*{\scrwfile@saved@writefile}{}
\BeforeClosingMainAux{%
@@ -367,9 +306,9 @@
}
% \end{macrocode}
% \changes{v0.1.8}{2021/05/30}{added order rule for
-% \textsf{scrlayer-notecolumn}}
+% \pkg*{scrlayer-notecolumn}}
% Note: Here we use a \LaTeX{} version test, because a do-nothing-definition
-% like the one of \textsf{latexrelease} wouldn't be correct, if the command is
+% like the one of \pkg{latexrelease} wouldn't be correct, if the command is
% not supported by the current \LaTeX{} kernel version setting.
% \begin{macrocode}
\IfLTXAtLeastTF{2020/10/01}{%
@@ -389,14 +328,13 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\@starttoc}
-% We have to add the single handle feature to this.
-% \begin{macro}{\scrwfile@saved@starttoc}
+% \begin{macro}{\@starttoc,\scrwfile@saved@starttoc}
+% We have to add the single handle feature to \cs{@starttoc} and therefore
+% save the original definition.
% \changes{v0.1.5}{2013/07/24}{take care for unfriendly \textsl{hyperref}}
-% This is the original definition, that will be used, if the file is not under
-% \texttt{scrwfile}'s control. Because of package \textsl{hyperref}, that does
+% \cs{scrwfile@saved@starttoc} is be used, whenever the file is not under
+% \pkg*{scrwfile}'s control. Because of package \textsl{hyperref}, that does
% a hard redefinition without any care for changed definitions, we have to
% take care for that unfriendly package and cannot do a simple
% \begin{verbatim}
@@ -445,14 +383,20 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \subsubsection{Clone TOC Feature}
%
-% \textsf{scrwfile} may clone a TOC, that means, every entry to one file will
+% \pkg*{scrwfile} may clone a TOC, that means, every entry to one file will
% be copied to other files, too. You must not clone recursively!
%
+% \begin{description}
+% \item[ToDo:]The whole feature should be moved to \pkg*{tocbasic}. But this
+% would need a complete re-implementation and would result in one more write
+% handle for every cloned file. So maybe it wouldn't be a really good idea
+% to do so.
+% \end{description}
+%
% \begin{macro}{\scrwfile@process@clones}
% \begin{macrocode}
\newcommand*{\scrwfile@process@clones}[1]{%
@@ -480,13 +424,13 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\TOCclone}
+% \begin{command}{\TOCclone}
% \changes{v0.1.8}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}
% \changes{v0.1.8}{2019/11/19}{\cs{ifattoclist} replaced by \cs{Ifattoclist}}
% \changes{v0.1.8}{2019/11/19}{\cs{iftocfeature} replaced by
% \cs{Iftocfeature}}
% \changes{v0.1.8}{2020/02/25}{spurious space in warning message removed}
-% \changes{v0.1.9}{2021/05/30}{requires package \textsf{tocbasic}}
+% \changes{v0.1.9}{2021/05/30}{requires package \pkg*{tocbasic}}
% \changes{v0.1.9}{2021/05/30}{can be used only in preamble}
% Clone the entries from the second (first mandatory) argument TOC to the
% third (second mandatory) argument TOC. If the first (optional) argument was
@@ -494,8 +438,10 @@
% the toc features \texttt{leveldown}, \texttt{numbered}, \texttt{onecolumn}
% and \texttt{totoc} of |#2| to |#3|. The toc feature \texttt{nobabel} will
% always be set, because the babel entries at TOC |#3| will be cloned from TOC
-% |#2|. \textbf{Note:} We use owner \texttt{TOCclone} for all cloned
-% extensions.
+% |#2|.
+% \begin{description}
+% \item{Note:} We use owner \texttt{TOCclone} for all cloned extensions.
+% \end{description}
% \begin{macrocode}
\newcommand*{\TOCclone}[3][]{%
\RequirePackage{tocbasic}%
@@ -534,23 +480,23 @@
}%
}
\@onlypreamble\TOCClone
+%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</body>
+% \begin{macrocode}
%</package>
-% \fi
+% \end{macrocode}
%
% \Finale
-%
-\endinput
-%
-% end of file `scrwfile.dtx'
-
-%%% Local Variables:
-%%% mode: doctex
-%%% mode: flyspell
-%%% ispell-local-dictionary: "english"
-%%% TeX-master: t
-%%% End:
+% \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:
diff --git a/macros/latex/contrib/koma-script/source/tocbasic.dtx b/macros/latex/contrib/koma-script/source/tocbasic.dtx
index 90a27fd670..70d19e7ec1 100644
--- a/macros/latex/contrib/koma-script/source/tocbasic.dtx
+++ b/macros/latex/contrib/koma-script/source/tocbasic.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% tocbasic.dtx
-% Copyright (c) Markus Kohm, 2008-2020
+% Copyright (c) Markus Kohm, 2008-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -17,44 +17,8 @@
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% tocbasic.dtx
-% Copyright (c) Markus Kohm, 2008-2020
-%
-% 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: tocbasic.dtx 3617 2021-10-12 09:21:01Z kohm $
+%%% From File: $Id: tocbasic.dtx 3689 2022-02-10 09:53:38Z kohm $
%<identify>%%% (run: identify)
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
@@ -65,9 +29,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2021-10-12 11:21:01 +0200 (Tue, 12 Oct 2021) $
+ \filedate$Date: 2022-02-10 10:53:38 +0100 (Do, 10. Feb 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1962 $
+ \filerevision$Revision: 3689 $
\endgroup
\ProvidesFile{tocbasic.dtx}[\filedate\space\filerevision\space
%</dtx>
@@ -118,78 +82,75 @@
\let\endbatchfile\relax
\fi
\endbatchfile
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english]{babel}
-\usepackage{array}
-\usepackage{listings}
-\lstset{breaklines,prebreak=\mbox{$\hookleftarrow$},language=[LaTeX]TeX,
- basicstyle=\small}
-\lstnewenvironment{lstcode}[1][]{%
- \lstset{breaklines,prebreak=\mbox{$\hookleftarrow$},language=[LaTeX]TeX,
- basicstyle=\ttfamily\small,#1}%
-}{}
-\lstnewenvironment{lstoutput}[1][]{}{}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{tocbasic.dtx}
-\sloppy
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
-\DocInput{\filename}
+\DocInput{tocbasic.dtx}
\end{document}
+%</dtx>
% \fi
%
-% \title{\KOMAScript{} \partname\ \texttt{\filename}%
-% \thanks{Diese Datei ist Version \fileversion\ von \texttt{\filename}.}}
-% \date{\filedate}
-% \author{Markus Kohm\thanks{mailto:komascript(at)gmx.info}}
+% \changes{v3.36}{2022/02/10}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/10}{require package \pkg*{scrlogo} instead of
+% defining \cs{KOMAScript}}
+%
+% \GetFileInfo{tocbasic.dtx}
+% \title{Handling of Tables and Lists of Contents with
+% \href{https://komascript.de}{\KOMAScript} Package \pkg*{tocbasic}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
% \maketitle
% \begin{abstract}
-% The main purpose of package \textsf{tocbasic} is to provide features for
+% The main purpose of package \pkg*{tocbasic} is to provide features for
% authors of classes and packages to create own tables or lists of contents
% like the list of figures and the list of tables and thereby allow other
% classes or packages some types of control over these. For examples package
-% \textsf{tocbasic} delegates language control of all these tables and lists
-% of contents to package \textsf{babel}. So automatic change of language
+% \pkg*{tocbasic} delegates language control of all these tables and lists
+% of contents to package \pkg{babel}. So automatic change of language
% will be provided inside all these tables and lists of contents. Using
-% \textsf{tocbasic} will exculpate authors of classes and packages from
+% \pkg*{tocbasic} will exculpate authors of classes and packages from
% implementation of such features.
%
-% \KOMAScript{} itself uses \textsf{tocbasic} not only for the table of
+% \KOMAScript{} classes use \pkg*{tocbasic} not only for the table of
% contents but also for the already mentioned lists of figures and tables.
% \end{abstract}
-%
% \tableofcontents
%
-% \iffalse
-%</dtx>
-% \fi
+% \section{User Manual}
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% You can find the user manuals of \pkg*{tocbasic} in the \KOMAScript{}
+% manual, either the German \file{scrguide} or the English \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
%
%
% \section{Implementation}
% \label{sec:implementation}
%
-% All macros with prefix \texttt{tb@} or \texttt{@} are internal macros and
-% should not be used by package and class authors. Macros with prefix
-% \texttt{tocbasic@} are internal macros, that may be used by class and
-% packages authors. Macros without \texttt{@} are interface macros and may be
-% used by class and package authors and users.
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% All macros with prefix \cs{tb@} or \cs{@} are internal macros and should not
+% be used by package and class authors. Macros with prefix \cs{tocbasic@} are
+% internal macros, that may be used by class and packages authors. Macros
+% without \texttt{@} are interface commands and may be used by class and
+% package authors and users.
%
-% Note: Parts of the implementation of package \textsf{tocbasic} are
-% out-sourced into file \texttt{scrkernel-tocbasic.dtx}.
+% Note: Parts of the implementation of package \pkg*{tocbasic} are
+% out-sourced into file \file{scrkernel-tocbasic.dtx}.
%
-% \iffalse
-%<*package>
-% \fi
%
% \subsection{Options}
% \label{sec:options}
%
% There are no options because the package should be used by class and package
% authors not by users. So the package will be loaded using
-% \cs{RequiresPackage}. Using different options by different packages would
-% result in an option clash.
+% \cs{RequirePackage}. Using different options by different packages would
+% result in an option clash. Nevertheless, the not existing options are
+% processed.
% \begin{macrocode}
%<*option>
\ProcessOptions\relax
@@ -197,10 +158,10 @@
% \end{macrocode}
%
%
-% \subsection{Required Packages}
+% \subsection{Required packages}
% \label{sec:packages}
%
-% Package \textsf{scrbase} is needed to process all macro options. As long as
+% Package \pkg*{scrbase} is needed to process all macro options. As long as
% no package options are provided, the \texttt{body}-run is early enough to
% load it.
% \begin{macrocode}
@@ -213,22 +174,22 @@
%
%
%
-% \subsection{Unwanted Packages}
+% \subsection{Unwanted packages}
% \label{sec:unpackages}
%
% There are packages, that are not recommended to be used together with
-% \textsf{tocbasic}:
+% \pkg*{tocbasic}:
% \begin{macrocode}
%<*body>
% \end{macrocode}
% \begin{description}
-% \item[\textsf{multitoc}:] This package implements multi-column ToCs using
-% \textsf{multicol}. Unfortunately there is a bug in that package, that
-% disables all extensions but \texttt{toc}, \texttt{lof} and \texttt{lot} and
+% \item[\pkg{multitoc}:] This package implements multi-column ToCs using
+% \pkg{multicol}. Unfortunately there is a bug in that package, that
+% disables all extensions but \file{toc}, \file{lof} and \file{lot} and
% even these if the corresponding option has not been set.
% \begin{macrocode}
\AfterPackage*{multitoc}{%
- \@ifpackagelater{multitoc}{2018/08/31}{}{%
+ \@ifpackagelater{multitoc}{2022/02/10}{}{%
\PackageWarningNoLine{tocbasic}{%
Usage of package `multitoc' is not recommended!\MessageBreak
Note, this package generally results in empty ToCs\MessageBreak
@@ -257,7 +218,7 @@
% \end{macrocode}
%
%
-% \subsection{Having a List of All Tocs}
+% \subsection{Having a list of all toc-files}
% \label{sec:listoftocs}
%
% If we have a list of all toc-files we may do commands for all
@@ -280,15 +241,12 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\ifattoclist}
-% \changes{v3.28}{2019/11/19}{renamed to \cs{Ifattoclist}}%^^A
-% \begin{macro}{\Ifattoclist}
-% \changes{v3.28}{2019/11/19}{renamed from \cs{ifattoclist}}%^^A
-% This command tests, if an extension is already at the list of
-% toc-files. The extension has to be the first argument. The second argument
-% will be done, if the extension is already at the list of toc-files. The
-% third argument will be done, if the extension is at the list of toc-files
-% not yet.
+% \begin{command}{\ifattoclist,\Ifattoclist}
+% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} renamed to \cs{Ifattoclist}}
+% This command tests, if an extension is already at the list of toc-files. The
+% extension has to be the first argument. The second argument will be done, if
+% the extension is already at the list of toc-files. The third argument will
+% be done, if the extension is at the list of toc-files not yet.
% \begin{macrocode}
\providecommand*{\ifattoclist}{%
\PackageWarning{tocbasic}{Usage of deprecated command
@@ -310,26 +268,25 @@
\endgroup
}
% \end{macrocode}
-% \end{macro}%^^A \Ifattoclist
-% \end{macro}%^^A \ifattoclist
+% \end{command}^^A \ifattoclist,\Ifattoclist
%
-% \begin{macro}{\addtotoclist}
-% \changes{v1.0a}{2008/11/11}{internal \cs{@addtotoclist} renamed to
-% \cs{scr@addtotoclist} because of package \textsf{floatfram}}.^^A
-% \changes{v1.0a}{2008/11/11}{internal \cs{@@addtotoclist} renamed to
-% \cs{scr@@addtotoclist} because of package \textsf{floatfram}}.^^A
+% \begin{command}{\addtotoclist}
% \changes{v3.06a}{2010/09/14}{expand the arguments while adding them to the
-% internal list}%^^A
+% internal list}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\scr@addtotoclist}
-% \begin{macro}{\scr@@addtotoclist}
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@addtotoclist,\scr@addtotoclist}
+% \changes{v1.0a}{2008/11/11}{\cs{@addtotoclist} renamed to
+% \cs{scr@addtotoclist} because of package \pkg{flowfram}}
+% \begin{macro}{\@@addtotoclist,\scr@@addtotoclist}
+% \changes{v1.0a}{2008/11/11}{\cs{@@addtotoclist} renamed to
+% \cs{scr@@addtotoclist} because of package \pkg{flowfram}}
% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by
-% \cs{Ifattoclist}}%^^A
+% \cs{Ifattoclist}}
% This command adds an extension to the list of toc-files. The first,
% optional argument is the class or package name with the corresponding
% extension of class or package files. If this argument was omitted
-% \textsf{tocbasic} tries to get it automatically. This should be
+% \pkg*{tocbasic} tries to get it automatically. This should be
% successfull while loading a class or package but not while processing any
% command of a class or package after loading the class or package. The
% second, mandatory argument is the extension of the toc-file. NOTE: An
@@ -384,11 +341,11 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\owneroftoc}
-% \changes{v3.22}{2016/08/09}{new}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \begin{command}{\owneroftoc}
+% \changes{v3.22}{2016/08/09}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% Returns the owner of a TOC or uses the owner of a TOC as argument of the
% optional argument, if it exists.
% \begin{macrocode}
@@ -400,22 +357,23 @@
\reserved@a
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\categoryoftoc}
-% \changes{v3.27}{2019/05/12}{new}%^^A
+% \end{command}
+% \begin{command}{\categoryoftoc}
+% \changes{v3.27}{2019/05/12}{added}
% Synonym for \cs{owneroftoc}.
% \begin{macrocode}
\newcommand*{\categoryoftoc}{\owneroftoc}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\AtAddToTocList}
+% \begin{command}{\AtAddToTocList}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@AtAddToTocList,\@@AtAddToTocList}
% Action to be done, when adding a toc-file of a known owner. The first
% optional argument is the owner. The second, mandatory argument is the
% action. While doing the action \cs{@currext} will be the extension of the
-% added toc-file. If the first argument was omitted \textsf{tocbasic} tries
+% added toc-file. If the first argument was omitted \pkg*{tocbasic} tries
% to get it automatically. This should be successfull while loading a class
% or package but not while processing any command of a class or package
% after loading the class or package. The second, mandatory argument is the
@@ -444,10 +402,11 @@
}
% \end{macrocode}
% \end{macro}
+% \end{command}
%
% \begin{macro}{\tocbasic@extend@babel}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
+% \cs{Iftocfeature}}
% NOTE: To extend the original \cs{bbl@set@language} the argument of
% \cs{tocbasic@extend@babel} must not be a local macro (like \cs{@currext})
% \begin{macrocode}
@@ -462,7 +421,7 @@
for `#1'}%
}{%
% \end{macrocode}
-% \changes{v3.23}{2017/02/23}{using \cs{BabelContentsFiles} if available}%^^A
+% \changes{v3.23}{2017/02/23}{using \cs{BabelContentsFiles} if available}
% Since version 3.9a provides adding extensions to the language switch
% preparation. So it is used if it is available.
% \begin{macrocode}
@@ -490,21 +449,23 @@
}
% \end{macrocode}
% This feature should be used for all toc-files (unless feature
-% \texttt{nobabel} was set for the toc-file).
+% \opt{nobabel} was set for the toc-file).
% \begin{macrocode}
\AtAddToTocList[]{\expandafter\tocbasic@extend@babel\expandafter{\@currext}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\removefromtoclist}
+% \begin{command}{\removefromtoclist}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\scr@removefromtoclist}
-% \changes{v3.22}{2016/09/06}{missing \cs{global} added}%^^A
-% \changes{v3.28}{2019/11/22}{renamed from \cs{@removefromtoclist}}%^^A
-% \begin{macro}{\scr@@removefromtoclist}
-% \changes{v3.22}{2016/09/06}{missing \cs{global} added}%^^A
-% \changes{v3.28}{2019/11/22}{renamed from \cs{@@removefromtoclist}}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\scr@removefromtoclist,\@removefromtoclist}
+% \changes{v3.22}{2016/09/06}{missing \cs{global} added}
+% \changes{v3.28}{2019/11/22}{\cs{@removefromtoclist} renamed to
+% \cs{scr@removefromtoclist}}
+% \begin{macro}{\scr@@removefromtoclist,\@@removefromtoclist}
+% \changes{v3.22}{2016/09/06}{missing \cs{global} added}
+% \changes{v3.28}{2019/11/22}{\cs{@@removefromtoclist} renamed to
+% \cs{scr@removefromtoclist}}
% This command will remove an extension from the list of toc-files. If the
% first, optional argument is given, the extension will only be removed, if
% it was added by the given owner. NOTE: An empty first argument is not the
@@ -553,13 +514,14 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\doforeachtocfile}
-% \changes{v3.09}{2011/03/01}{\cs{@currext} defined using \cs{edef} instead
-% of \cs{def}}%^^A
+% \begin{command}{\doforeachtocfile}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@doforeachtocfile,\@@doforeachtocfile}
+% \changes{v3.09}{2011/03/01}{\cs{@currext} defined using \cs{edef} instead
+% of \cs{def}}
% This command does the second, mandatory argument for each toc-file at the
% list of toc-files. If the first, optional argument was given this will be
% done only for the toc-files of that owner. NOTE: An empty first argument
@@ -600,13 +562,13 @@
}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\addtoeachtocfile}
-% \begin{macro}{\@addtoeachtocfile}
-% \begin{macro}{\@@addtoeachtocfile}
-% \changes{v3.03b}{2009/06/08}{typo fix at usage of \cs{doforeachtocfile}}%^^A
+% \end{command}
+%
+% \begin{command}{\addtoeachtocfile}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@addtoeachtocfile,\@@addtoeachtocfile}
+% \changes{v3.03b}{2009/06/08}{typo fix at usage of \cs{doforeachtocfile}}
% This command calls \cs{addtocontents} with the section, mandatory
% argument for each toc-file at the list of toc-files. If the first,
% optional argument was given this will be done only for the toc-files of
@@ -627,17 +589,17 @@
%</body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \subsection{Adding Entries into Toc-Files}
+% \subsection{Adding entries into toc-files}
%
% We have a new general command to add entries to several toc-files at
% once. And we have some special commands for the table of contents.
%
-% \begin{macro}{\addcontentslinetoeachtocfile}
+% \begin{command}{\addcontentslinetoeachtocfile}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@addcontentslinetoeachtocfile,\@@addcontentslinetoeachtocfile}
% Something like a combination of \cs{addtoeachtocfile} and
% \cs{addcontentsline}.
% \begin{macrocode}
@@ -654,18 +616,18 @@
}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\addxcontentsline}
-% \changes{v3.12}{2013/09/24}{new}%^^A
-% \changes{v3.12}{2013/09/24}{Take care of new feature \texttt{numberline}}%^^A
+% \end{command}
+%
+% \begin{command}{\addxcontentsline}
+% \changes{v3.12}{2013/09/24}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
+% \cs{kernel@ifnextchar}}
% \begin{macro}{\@addxcontentsline}
-% \changes{v3.12}{2013/09/24}{new (internal)}%^^A
+% \changes{v3.12}{2013/09/24}{added}
% This will be used instead of \cs{addcontentsline} to generate numbered or
% not numbered entries to a toc-file. First argument is the toc-file, second
-% the entry type, e.g., \texttt{chapter}, the third is the entry number or
-% empty and the fourth and last is the entry text.
+% the entry type, e.g., |chapter|, the third is the entry number or empty and
+% the fourth and last is the entry text.
% \begin{macrocode}
\newcommand*{\addxcontentsline}[2]{%
\kernel@ifnextchar [%]
@@ -681,15 +643,15 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\nonumberline}
-% \changes{v3.12}{2013/09/24}{new}%^^A
+% \begin{command}{\nonumberline}
+% \changes{v3.12}{2013/09/24}{added}
% Either \cs{relax} or \cs{numberline} depending on the feature
-% \texttt{numberline}.
+% \opt{numberline}.
% \begin{macrocode}
\newcommand*{\nonumberline}{}%
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\addxcontentsline}
+% \end{command}
+% \begin{command}{\addxcontentsline}
% This may be used to either use a heading type command or the general default
% one. You are not allowed to use it in the definition of a heading type
% command like \cs{addchaptertocentry}! You may use
@@ -703,26 +665,22 @@
\fi
}
% \end{macrocode}
+% \end{command}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\addxcontentslinetoeachtocfile}
-% \changes{v3.12}{2013/09/24}{new}%^^A
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@addxcontentslinetoeachtocfile}
-% \changes{v3.12}{2013/09/24}{new (internal)}%^^A
+% \begin{command}{\addxcontentslinetoeachtocfile}
+% \changes{v3.12}{2013/09/24}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@addxcontentslinetoeachtocfile}
-% \changes{v3.12}{2013/09/24}{new (internal)}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@addxcontentslinetoeachtocfile,
+% \@@addxcontentslinetoeachtocfile}
+% \changes{v3.12}{2013/09/24}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \begin{macro}{\@@@addxcontentslinetoeachtocfile}
-% \changes{v3.12}{2013/09/24}{new (internal)}%^^A
-% \begin{macro}{\@@@@addxcontentslinetoeachtocfile}
-% \changes{v3.12}{2013/09/24}{new (internal)}%^^A
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@@@addxcontentslinetoeachtocfile,
+% \@@@@addxcontentslinetoeachtocfile}
+% \changes{v3.12}{2013/09/24}{added}
% Similar to \cs{addcontentslinetoeachtocfile} using
% \cs{addxcontentsline} instead of \cs{addcontentsline}.
% \begin{macrocode}
@@ -752,23 +710,21 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Show List of Toc-File}
+% \subsection{Show list of toc-file}
% \label{sec:showlistoftocfile}
%
% If you have a toc-file you want a list-of-command for this toc-file,
% too. Here are basics and high level commands for this.
%
% \begin{macro}{\tocbasic@starttoc}
-% \changes{v3.17}{2015/03/23}{usage of feature \texttt{noparskipfake}}
+% \changes{v3.17}{2015/03/23}{usage of feature \opt{noparskipfake}}
% \changes{v3.27}{2019/07/08}{hack to add \cs{par} at end of (main) file}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
% \cs{Iftocfeature}}
-% \changes{v3.32}{2020/08/25}{replace \cs{par} hack by \cs{par} solution}}
+% \changes{v3.32}{2020/08/25}{replace \cs{par} hack by \cs{par} solution}
% \changes{v3.32}{2020/08/25}{reentrant warning}
% Some basics are done like setting up \cs{parskip}, \cs{parindent} and
% \cs{parfillskip}, a general hook will be called, an individual hook will
@@ -815,37 +771,32 @@
\endgroup
}
% \end{macrocode}
-% \begin{macro]{tocbasic@end@toc@file}
-% \changes{v3.32}{2020/08/25}{new}
+% \begin{macro}{tocbasic@end@toc@file}
+% \changes{v3.32}{2020/08/25}{added}
% \begin{macrocode}
\newcommand*{\tocbasic@end@toc@file}{\par}
% \end{macrocode}
-% \end{macro}%^^A \tocbasic@end@toc@file
+% \end{macro}^^A \tocbasic@end@toc@file
% \begin{macro}{\tocbasic@reentrant@warning}
-% \changes{v3.32}{2020/08/25}{new}
+% \changes{v3.32}{2020/08/25}{added}
+% \begin{macrocode}
\newcommand*{\tocbasic@reentrant@warning}{}
-% \end{macro}
-% \begin{macro}{\tocbasic@@before@hook}
-% \begin{macro}{\tocbasic@@after@hook}
+% \end{macrocode}
+% \end{macro}^^A \tocbasic@reentrant@warning
+% \begin{macro}{\tocbasic@@before@hook,\tocbasic@@after@hook}
% These are the general hooks. They may be used by classes and packages for
% commands, that should be used for all lists of not only the own lists of,
-% e.\,g., \KOMAScript{} may use it to handle option \texttt{tocleft}.
+% e.\,g., \KOMAScript{} may use it to handle option \opt{tocleft}.
% \begin{macrocode}
\newcommand*{\tocbasic@@before@hook}{}
\newcommand*{\tocbasic@@after@hook}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\BeforeStartingTOC}
-% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}%^^A
+% \end{macro}^^A \tocbasic@@before@hook,\tocbasic@@after@hook
+% \begin{command}{\BeforeStartingTOC,\AfterStartingTOC}
+% \changes{v3.04b}{2010/01/05}{fix:define the hook if not already defined}
% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
-% undefined \cs{scr@ifundefinedorrelax}}%^^A
-% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}%^^A
-% \begin{macro}{\AfterStartingTOC}
-% \changes{v3.04b}{2010/01/05}{fix:define the hook if not already defined}%^^A
-% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
-% undefined \cs{scr@ifundefinedorrelax}}%^^A
-% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}%^^A
+% undefined \cs{scr@ifundefinedorrelax}}
+% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}
% These are the commands to add code to the general or individual hooks. If
% the first, optional argument was given, the second, mandatory argument
% will be added to the individual hook, otherwise the general hook will be
@@ -876,22 +827,20 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \BeforeStartingTOC,\AfterStartingTOC
+% \end{macro}^^A \tocbasic@starttoc
%
-% \begin{macro}{\listoftoc}
-% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
-% ersetzt}%^^A
+% \begin{command}{\listoftoc}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \begin{macro}{\@listoftoc}
-% \changes{v1.0a}{2008/11/12}{\cs{twocolumn} fixed}%^^A
-% \changes{v1.01}{2008/11/13}{new feature \texttt{onecolumn}}%^^A
+% \changes{v1.0a}{2008/11/12}{\cs{twocolumn} fixed}
+% \changes{v1.01}{2008/11/13}{new feature \opt{onecolumn}}
% \changes{v3.09}{2011/03/01}{\cs{@currext} defined using \cs{edef} instead
-% of \cs{def}}%^^A
+% of \cs{def}}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
+% \cs{Iftocfeature}}
% \changes{v3.31}{2020/07/08}{use one time expansion of local
-% \cs{list@fname}}%^^A
+% \cs{list@fname}}
% Command to handle the hole list of something. There are additional hooks
% for this. The first optional argument is the title for this list. If the
% optional argument was omitted \cs{listof\#2name} will be used. The star
@@ -938,11 +887,11 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \changes{v3.25}{2017/11/21}{\textsf{tocbibind} warning added}%^^A
-% Using \textsf{tocbibind} and \textsf{tocbasic} together can break features
-% either of \textsf{tocbibind} or \textsf{tocbasic}. Here we add at least a
+% \changes{v3.25}{2017/11/21}{\pkg{tocbibind} warning added}
+% Using \pkg{tocbibind} and \pkg*{tocbasic} together can break features
+% either of \pkg{tocbibind} or \pkg*{tocbasic}. Here we add at least a
% warning:
% \begin{macrocode}
\@ifpackageloaded{tocbibind}{}{%
@@ -973,20 +922,19 @@
}
% \end{macrocode}
%
-% \begin{macro}{\listofname}
-% While this is only an emergancy command, we don't support languages.
+% \begin{command}{\listofname}
+% While this is only an emergency command, we don't support languages.
% \begin{macrocode}
\newcommand*{\listofname}{List of}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\listofeachtoc}
-% \begin{macro}{\@listofeachtoc}
-% \begin{macro}{\@@listofeachtoc}
-% \changes{v3.03b}{2009/06/08}{typo fix at usage of \cs{doforeachtocfile}}%^^A
+% \begin{command}{\listofeachtoc}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% Another example of using \cs{doforeachtocfile}.
+% \cs{kernel@ifnextchar}}
+% \begin{macro}{\@listofeachtoc,\@@listofeachtoc}
+% \changes{v3.03b}{2009/06/08}{typo fix at usage of \cs{doforeachtocfile}}
+% Another example of using \cs{doforeachtocfile}.
% \begin{macrocode}
\newcommand*{\listofeachtoc}{%
\kernel@ifnextchar [%]
@@ -1000,12 +948,11 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
% \begin{macro}{\ext@toc}
-% \changes{v3.23}{2017/02/23}{use indirect extension for toc}%^^A
-% We do not longer hard code extension \texttt{toc} for the table of
+% \changes{v3.23}{2017/02/23}{use indirect extension for toc}
+% We do not longer hard code extension \file{toc} for the table of
% contents. This allowes users to change it. Classes or other packages may
% also define it. So it seems to be better to \cs{providecommand} instead of
% \cs{newcommand} here.
@@ -1015,22 +962,21 @@
% \end{macro}
%
% \begin{macro}{\tocbasic@listhead}
-% \changes{v3.02a}{2009/01/20}{no explicite marks if ``numbered''}%
-% \changes{v3.09a}{2011/04/12}{again no explicite marks if ``numbered''}%
-% \changes{v3.12}{2013/09/24}{usage of new
-% \cs{tocbasic@addxcontentsline}}%
-% \changes{v3.15}{2014/12/10}{moved \cs{@mkboth} inside \cs{chapter*}}%^^A
-% \changes{v3.15}{2014/12/10}{usage of \cs{addsec} if available}%^^A
-% \changes{v3.15}{2014/12/10}{usage of \cs{@mkright} if available}%^^A
-% \changes{v3.17}{2015/03/08}{moved \cs{@mkboth} outside \cs{chapter*}}%^^A
-% \changes{v3.17}{2015/03/08}{usage of \cs{@mkdouble} if available}%^^A
+% \changes{v3.02a}{2009/01/20}{no explicite marks if ``numbered''}
+% \changes{v3.09a}{2011/04/12}{again no explicite marks if ``numbered''}
+% \changes{v3.12}{2013/09/24}{usage of new \cs{tocbasic@addxcontentsline}}
+% \changes{v3.15}{2014/12/10}{moved \cs{@mkboth} inside \cs{chapter*}}
+% \changes{v3.15}{2014/12/10}{usage of \cs{addsec} if available}
+% \changes{v3.15}{2014/12/10}{usage of \cs{@mkright} if available}
+% \changes{v3.17}{2015/03/08}{moved \cs{@mkboth} outside \cs{chapter*}}
+% \changes{v3.17}{2015/03/08}{usage of \cs{@mkdouble} if available}
% \changes{v3.17}{2015/03/25}{penalty and skip reconstruction after
-% \cs{@mkright}, \cs{@mkboth}, or \cs{@mkdouble}}%^^A
-% \changes{v3.26}{2018/06/22}{removed spurious group}%^^A
+% \cs{@mkright}, \cs{@mkboth}, or \cs{@mkdouble}}
+% \changes{v3.26}{2018/06/22}{removed spurious group}
% \changes{v3.26}{2018/09/03}{usage of \cs{addsecmark} or \cs{sectionmark}
-% instead of \cs{@mkright} or \cs{markright}}%^^A
+% instead of \cs{@mkright} or \cs{markright}}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
-% \cs{Iftocfeature}}%^^A
+% \cs{Iftocfeature}}
% Setting the headings of a list of something. The heading is the only
% argument.
% \begin{macrocode}
@@ -1142,16 +1088,11 @@
\csname tb@@afterhead@hook\endcsname
}
% \end{macrocode}
-% \begin{macro}{\BeforeTOCHead}
-% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}%^^A
+% \begin{command}{\BeforeTOCHead,\AfterTOCHead}
+% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}
% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
-% undefined \cs{scr@ifundefinedorrelax}}%^^A
-% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}%^^A
-% \begin{macro}{\AfterTOCHead}
-% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}%^^A
-% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
-% undefined \cs{scr@ifundefinedorrelax}}%^^A
-% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}%^^A
+% undefined \cs{scr@ifundefinedorrelax}}
+% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}
% These are the commands to add code to the general or individual hooks. If
% the first, optional argument was given, the second, mandatory argument
% will be added to the individual hook, otherwise the general hook will be
@@ -1175,11 +1116,10 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
% \end{macro}
%
-% \begin{macro}{\MakeMarkcase}
+% \begin{command}{\MakeMarkcase}
% Use upper-case or not?
% \begin{macrocode}
%<*exit>
@@ -1194,37 +1134,34 @@
}
%</exit>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\deftocheading}
+% \begin{command}{\deftocheading}
% Define a toc headings command with one argument (the title).
% \begin{macrocode}
%<*body>
\newcommand*{\deftocheading}[1]{%
\@namedef{tocbasic@listhead@#1}##1}
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
-% \begin{macro}{\setuptoc}
-% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@trim@spaces} statt
-% \cs{tb@@sp@def}}%^^A
-% \begin{macro}{\unsettoc}
-% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@trim@spaces} statt
-% \cs{tb@@sp@def}}%^^A
+% \begin{command}{\setuptoc,\unsettoc}
+% \changes{v3.26}{2018/08/29}{using \cs{scr@trim@spaces} instead of
+% \cs{tb@@sp@def}}
% Known features are:
% \begin{description}
-% \item[\texttt{totoc}] writes the title of the list of to the table of
+% \item[\opt{totoc}] writes the title of the list of to the table of
% contents
-% \item[\texttt{numberline}] redefines \cs{nonumberline} to use
+% \item[\opt{numberline}] redefines \cs{nonumberline} to use
% \cs{numberline}
-% \item[\texttt{numbered}] uses a numbered headings for the list of
-% \item[\texttt{leveldown}] uses not the top level heading (e.\,g.,
+% \item[\opt{numbered}] uses a numbered headings for the list of
+% \item[\opt{leveldown}] uses not the top level heading (e.\,g.,
% \cs{chapter} with book) but the first sub level (e.\,g., \cs{section} with
% book).
-% \item[\texttt{nobabel}] prevents the extension to be added to the babel
+% \item[\opt{nobabel}] prevents the extension to be added to the babel
% handling of toc-files. To make this work, you have to set the feature
% before adding the extension to the list of known extension.
-% \item[[\texttt{noprotrusion}]] prevents disabling character protrusion at
+% \item[\opt{noprotrusion}] prevents disabling character protrusion at
% the toc.
% \end{description}
% Other features may be package dependent. You may test the feature using:
@@ -1254,10 +1191,8 @@
\setuptoc{lof}{nobabel}
\setuptoc{lot}{nobabel}
% \end{macrocode}
-% \begin{macro}{\iftocfeature}
-% \changes{v3.28}{2019/11/19}{renamed to \cs{Iftocfeature}}%^^A
-% \begin{macro}{\Iftocfeature}
-% \changes{v3.28}{2019/11/19}{renamed from \cs{iftocfeature}}%^^A
+% \begin{command}{\Iftocfeature,\iftocfeature}
+% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} renamed to \cs{Iftocfeature}}
% We need a test for the features
% \begin{macrocode}
\providecommand*{\iftocfeature}{%
@@ -1278,24 +1213,22 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \end{command}
%
-% \begin{macro}{\tocbasicautomode}
+% \begin{command}{\tocbasicautomode}
% \changes{v1.0a}{2008/11/11}{use of \cs{addtotoclist} instead of
-% internal}%^^A
+% internal}
% \changes{v3.07a}{2010/11/25}{fix: added missing
-% \cs{let}\cs{@starttoc}\cs{tocbasic@starttoc}}%^^A
+% \cs{let}\cs{@starttoc}\cs{tocbasic@starttoc}}
% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by
-% \cs{Ifattoclist}}%^^A
-% \textsf{tocbasic} can overtake \cs{@starttoc} to automaticly add all
+% \cs{Ifattoclist}}
+% \pkg*{tocbasic} can overtake \cs{@starttoc} to automaticly add all
% used extensions to the list of known extensions and use
% \cs{tocbasic@starttoc} instead of \cs{@starttoc} from \LaTeX{}
% kernel. Please note, that we don't need a fix for the unfriendly
-% redefinition of \cs{@starttoc} by \textsf{hyperref}, because hyperref
-% does it only at the first \LaTeX{} run. So this action of \textsf{hyperref}
+% redefinition of \cs{@starttoc} by \pkg{hyperref}, because hyperref
+% does it only at the first \LaTeX{} run. So this action of \pkg{hyperref}
% may only result in the need of one more \LaTeX{} run, but not in a permanent
% mistake.
% \begin{macrocode}
@@ -1312,24 +1245,24 @@
}
%</body>
% \end{macrocode}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{High Level Interface for Generating New TOCs and Floats}
+% \subsection{High level interface for generating new ToCs and floats}
% \label{sec:newfloats}
%
-% \begin{macro}{\DeclareNewTOC}
-% \changes{v3.06}{2010/06/01}{new high level command}%^^A
+% \begin{command}{\DeclareNewTOC}
+% \changes{v3.06}{2010/06/01}{added}
% \changes{v3.18}{2015/06/20}{\cs{tb@nt@types} and \cs{tb@nt@listname} are
-% initialised \cs{relax}}%^^A
+% initialised \cs{relax}}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.26a}{2018/12/30}{fixed usage of \cs{kernel@ifnextchar}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \cs{kernel@ifnextchar}}
+% \changes{v3.26a}{2018/12/30}{fixed usage of \cs{kernel@ifnextchar}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% This command defines only a new TOC and a new caption command for this
% TOC. It does not define a new foat unless option float was set! It does
% not define a new nonfloat unless option nonfloat was set! The optional
-% argument is used to set up several settings using \textsf{keyval}. The
+% argument is used to set up several settings using \pkg{keyval}. The
% mandatory argument is the shortcut. The default type is the shortcut.
% The extension is the shortcut. The default owner is ``\texttt{float}''.
% \begin{macrocode}
@@ -1354,13 +1287,13 @@
\def\tb@nt@tocentrystyle{default}%
% \end{macrocode}
% \changes{v3.20}{2016/04/29}{need more initialization for empty optional
-% argument}%^^A
+% argument}
% \begin{macrocode}
\def\tb@nt@tocstyle@options{level=1}%
\IfArgIsEmpty{#1}{%
% \end{macrocode}
% Also need to call the style init code, to set the defaults for options
-% \texttt{numwidth} and \texttt{indent}.
+% \opt{numwidth} and \opt{indent}.
% \begin{macrocode}
\begingroup
\let\scr@dte@current\tb@nt@type
@@ -1373,7 +1306,9 @@
}%
}{%
\Ifstr{##1}{indent}{%
-%<trace>\typeout{TRACE \string\DeclareNewTOC[...]{#2}: set default indent 1em}%
+%<trace> \PackageInfo{tocbasic}{%
+%<trace> TRACE \string\DeclareNewTOC[...]{#2}:
+%<trace> set default indent 1em}%
\l@addto@macro\do@endgroup{%
\l@addto@macro{\tb@nt@tocstyle@options}{,indent=1em}%
}%
@@ -1392,7 +1327,7 @@
% After initialisation of the local values we need to know the style of the
% toc entry, to define style dependend options.
% \begin{macro}{\tb@nt@type}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
% The type of list is used for environment and counter names and as part of
% several internal and user macros. It is needed before defining the style
% dependend options. So we use a first run to set it up.
@@ -1403,7 +1338,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@tocentrystyle}
-% \changes{v3.20}{2015/12/16}{neu (intern)}
+% \changes{v3.20}{2015/12/16}{added}
% The style of the toc entry. It is needed before defining the style
% dependend options. So we use a first run to set it up.
% \begin{macrocode}
@@ -1423,8 +1358,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@ext}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
-% \changes{v3.25}{2017/11/20}{moved to pass 1}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
+% \changes{v3.25}{2017/11/20}{moved to pass 1}
% Don't tell the user, that the mandatory argument of the command may be
% overloaded by this option. This was only done to simplify the definition.
% \begin{macrocode}
@@ -1434,10 +1369,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@owner}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
-% \changes{v3.26}{2018/06/09}{moved to pass 1}%^^A
-% \changes{v3.27}{2019/05/12}{\texttt{category} is a synonym for
-% \texttt{owner}}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
+% \changes{v3.26}{2018/06/09}{moved to pass 1}
+% \changes{v3.27}{2019/05/12}{\opt{category} is a synonym for \opt{owner}}
% The owner of the new list extension.
% \begin{macrocode}
\DefineFamilyKey[.toc]{KOMAarg}{owner}{%
@@ -1448,14 +1382,14 @@
}%
% \end{macrocode}
% \end{macro}
-% After this we define pseudo option \texttt{@else@} to ignore all currently
+% After this we define pseudo option \opt{@else@} to ignore all currently
% not needed options. After this we do the first option execution run.
% \begin{macrocode}
\DefineFamilyKey[.toc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
\FamilyExecuteOptions[.toc]{KOMAarg}{#1}%
\RelaxFamilyKey[.toc]{KOMAarg}{@else@}%
% \end{macrocode}
-% \changes{v3.26}{2018/06/09}{add extension already after first pass}%^^A
+% \changes{v3.26}{2018/06/09}{add extension already after first pass}
% First of all, every TOC needs an extension, that should be added to the
% list of known extensions. This has to be done also, if no options has been
% given!
@@ -1474,10 +1408,10 @@
\DefineFamilyKey[.toc]{KOMAarg}{extension}{\FamilyKeyStateProcessed}%
\DefineFamilyKey[.toc]{KOMAarg}{category}{\FamilyKeyStateProcessed}%
% \end{macrocode}
-% \changes{v3.20}{2015/12/16}{defining toc style depending options}%^^A
-% \changes{v3.20}{2016/06/12}{using prefix \texttt{tocentry} instead of
-% \texttt{toc}}%^^A
-% \changes{v3.27}{2019/10/02}{additional \texttt{:}-options}%^^A
+% \changes{v3.20}{2015/12/16}{defining toc style depending options}
+% \changes{v3.20}{2016/06/12}{using prefix \opt{tocentry} instead of
+% \opt{toc}}
+% \changes{v3.27}{2019/10/02}{additional \opt{:}-options}
% If the toc style is empty we won't define any \cs{l@\dots}. Otherwise we
% need to define additional options.
% \begin{macrocode}
@@ -1541,25 +1475,25 @@
% After this, we need to define all the other options and do the real option
% execution.
% \begin{macro}{\tb@nt@atbegin}
-% \changes{v3.09}{2011/03/01}{new optional identifier \texttt{atbegin}}%^^A
-% \changes{v3.11c}{2013/02/01}{\texttt{atbegin} argument may be empty}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.09}{2011/03/01}{new optional identifier \opt{atbegin}}
+% \changes{v3.11c}{2013/02/01}{\opt{atbegin} argument may be empty}
+% \changes{v3.20}{2015/12/16}{locally valid only}
% Additional code executed at the begin of a new defined environment.
% \begin{macrocode}
\FamilyStringKey[.toc]{KOMAarg}{atbegin}{\tb@nt@atbegin}%
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@atend}
-% \changes{v3.09}{2011/03/01}{new optional identifier \texttt{atbend}}%^^A
-% \changes{v3.11c}{2013/02/01}{\texttt{atend} argument may be empty}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.09}{2011/03/01}{new optional identifier \opt{atbend}}
+% \changes{v3.11c}{2013/02/01}{\opt{atend} argument may be empty}
+% \changes{v3.20}{2015/12/16}{locally valid only}
% Additional code executed at the end of a new defined environment.
% \begin{macrocode}
\FamilyStringKey[.toc]{KOMAarg}{atend}{\tb@nt@atend}%
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@counterwithin}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
% If a counter will be defined, this counter may depend on another counter
% (like figure counter depends on chapter counter at book classes). If the
% value is empty, the counter does not depend on any other counter.
@@ -1570,15 +1504,15 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\iftb@nt@float}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
-% \changes{v3.06}{2010/06/01}{new internal}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
+% \changes{v3.06}{2010/06/01}{added}
% This boolean indicates, that float environments should also be defined.
% \begin{macrocode}
\FamilyBoolKey[.toc]{KOMAarg}{float}{tb@nt@float}%
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@floatpos}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
% Simply the value for the |\fps@...| macro.
% \begin{macrocode}
\DefineFamilyKey[.toc]{KOMAarg}{floatpos}{%
@@ -1587,7 +1521,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@floattype}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
% Simply the value for the |\ftype@...| macro. It has to be
% $1<=\textrm{value}<=31$.
% \begin{macrocode}
@@ -1605,8 +1539,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\iftb@nt@forcenames}
-% \changes{v3.06}{2010/06/01}{new internal}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.06}{2010/06/01}{added}
+% \changes{v3.20}{2015/12/16}{locally valid only}
% The |\...name| commands will only be defined, if they are not already
% defined. But some users may want to define their own names even if there
% are already definitions. So this boolean option may switch to force the
@@ -1615,9 +1549,9 @@
\FamilyBoolKey[.toc]{KOMAarg}{forcenames}{tb@nt@forcenames}%
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\tb@nt@hang}
-% \changes{v3.20}{2015/12/16}{undefined}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \begin{macro}[noprint]{\tb@nt@hang}
+% \changes{v3.20}{2015/12/16}{removed}
+% \end{macro}
% Earch entry of a TOC/list of is idented on the left side. This is the
% amount of the indention of the text of the entry.
% \begin{macrocode}
@@ -1642,10 +1576,9 @@
\l@addto@macro\tb@nt@tocstyle@options{,numwidth=1.5em}%
}%
% \end{macrocode}
+% \begin{macro}[noprint]{\tb@nt@indent}
+% \changes{v3.20}{2015/12/16}{removed}
% \end{macro}
-% \begin{macro}{\tb@nt@indent}
-% \changes{v3.20}{2015/12/16}{undefined}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
% Earch entry of a TOC/list of is idented on the left side. This is the
% amount of the indention of the number part.
% \begin{macrocode}
@@ -1667,15 +1600,15 @@
\FamilyKeyStateProcessed
}%
\scr@ifundefinedorrelax{KV@KOMAarg.toc@tocindent}{}{%
-%<trace>\typeout{TRACE \string\DeclareNewTOC[...]{#2}: set default indent 1em}%
+%<trace> \PackageInfo{tocbasic}{%
+%<trace> TRACE \string\DeclareNewTOC[...]{#2}: set default indent 1em}%
\l@addto@macro\tb@nt@tocstyle@options{,indent=1em}%
}%
% \end{macrocode}
+% \begin{macro}[noprint]{\tb@nt@level}
+% \changes{v3.20}{2015/12/16}{removed}
% \end{macro}
-% \begin{macro}{\tb@nt@level}
-% \changes{v3.20}{2015/12/16}{undefined}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
-% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}%^^A
+% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}
% Each entry to a TOC/list of has a numeric level. You may set up your own
% level.
% \begin{macrocode}
@@ -1689,10 +1622,9 @@
\FamilyKeyStateProcessed
}%
% \end{macrocode}
-% \end{macro}
% \begin{macro}{\tb@nt@listname}
-% \changes{v3.18}{2015/06/20}{using \cs{def} instead of \cs{edef}}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.18}{2015/06/20}{using \cs{def} instead of \cs{edef}}
+% \changes{v3.20}{2015/12/16}{locally valid only}
% The list itself has a heading. A |\list<type>name| will also be defined.
% \begin{macrocode}
\DefineFamilyKey[.toc]{KOMAarg}{listname}{%
@@ -1701,7 +1633,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@name}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
% We need a name/term for the entries of the new list. This may e.\,g. be used
% for |caption| output. A |\<type>name| will also be defined.
% \begin{macrocode}
@@ -1711,8 +1643,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\iftb@nt@nonfloat}
-% \changes{v3.06}{2010/06/01}{new (internal)}%^^A
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.06}{2010/06/01}{added}
+% \changes{v3.20}{2015/12/16}{locally valid only}
% This boolean indicates, that non-float environment should also be
% defined. The environment has the postfix ``-''.
% \begin{macrocode}
@@ -1720,7 +1652,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@nt@types}
-% \changes{v3.20}{2015/12/16}{local valid only}%^^A
+% \changes{v3.20}{2015/12/16}{locally valid only}
% Sometimes the plural of the type is needed and may be defined by a
% seperate option.
% \begin{macrocode}
@@ -1729,8 +1661,8 @@
}%
% \end{macrocode}
% \end{macro}
-% \changes{v3.25}{2017/11/20}{new (internal)}%^^A
-% The new option \texttt{setup} allowes to setup ToC features provided by
+% \changes{v3.25}{2017/11/20}{option \opt{setup} added}
+% The new option \opt{setup} allowes to setup ToC features provided by
% \cs{setuptoc}. Note, currently there is no test whether or not a feature
% does exist!
% \begin{macrocode}
@@ -1738,8 +1670,8 @@
\setuptoc\tb@nt@ext{##1}%
}%
% \end{macrocode}
-% \changes{v3.25}{2017/11/20}{new (internal)}%^^A
-% The new option \texttt{unset} allowes to unset ToC features provided
+% \changes{v3.25}{2017/11/20}{option \opt{unset} added}
+% The new option \opt{unset} allowes to unset ToC features provided
% by \cs{unsettoc}. Note, currently there is no test whether or not a
% feature does exist!
% \begin{macrocode}
@@ -1749,9 +1681,9 @@
% \end{macrocode}
% Last but not least we have to execute the options and reset the option
% definitions.
-% \changes{v3.25}{2017/09/27}{\texttt{nonfloat} fixed}%^^A
-% \changes{v3.26}{2018/06/09}{added missing reset of \texttt{unset} and
-% \texttt{setup}}%^^A
+% \changes{v3.25}{2017/09/27}{\opt{nonfloat} fixed}
+% \changes{v3.26}{2018/06/09}{added missing reset of \opt{unset} and
+% \opt{setup}}
% \begin{macrocode}
\FamilyExecuteOptions[.toc]{KOMAarg}{#1}%
\RelaxFamilyKey[.toc]{KOMAarg}{unset}%
@@ -1784,7 +1716,7 @@
% \end{macrocode}
% Then we need the TOC itself with a name:
% \changes{v3.25}{2017/10/10}{use \cs{ext@\dots} instead of the extension
-% itself in definition of \cs{listof\dots}}%^^A
+% itself in definition of \cs{listof\dots}}
% \begin{macrocode}
\scr@ifundefinedorrelax{tb@nt@types}{%
\edef\tb@nt@types{\tb@nt@type s}%
@@ -1817,7 +1749,7 @@
}\@tempa
% \end{macrocode}
% The list entry:
-% \changes{v3.20}{2016/04/05}{warning if \cs{l@\dots} is undefined}%^^A
+% \changes{v3.20}{2016/04/05}{warning if \cs{l@\dots} is undefined}
% \begin{macrocode}
\Ifstr{\tb@nt@tocentrystyle}{}{%
\@ifundefined{l@\tb@nt@type}{%
@@ -1839,7 +1771,7 @@
}%
% \end{macrocode}
% \changes{v3.12}{2013/05/03}{fixed: definition of
-% \cs{listof\meta{type}entryname} added as explained in the manual}%^^A
+% \cs{listof\meta{type}entryname} added as explained in the manual}
% \begin{macrocode}
\@ifundefined{listof\tb@nt@ext entryname}{%
\expandafter\let\csname listof\tb@nt@ext entryname\endcsname\tb@nt@name
@@ -1855,8 +1787,8 @@
\@tempswafalse
% \end{macrocode}
% The float environments:
-% \changes{v3.09a}{2011/05/30}{fixed: floats may have an optional argument}%^^A
-% \changes{v3.12}{2013/12/10}{fixed: usage of default placement}%^^A
+% \changes{v3.09a}{2011/05/30}{fixed: floats may have an optional argument}
+% \changes{v3.12}{2013/12/10}{fixed: usage of default placement}
% \begin{macrocode}
\iftb@nt@float
\expandafter\newcommand\expandafter*\csname fps@\tb@nt@type\expandafter
@@ -1920,7 +1852,7 @@
% \cs{autodot}}
% \changes{v3.13}{2014/07/31}{add \cs{autodot} only to hierachical
% counters}
-% \changes{v3.35}{2021/10/12}{ignore \texttt{counterwithin} if it is
+% \changes{v3.35}{2021/10/12}{ignore \opt{counterwithin} if it is
% ``\texttt{chapter}'' resp. ``\texttt{section}'' and \cs{ifmainmatter} is
% not \cs{iffalse} and the counterwithin counter is < 1}
% \begin{macrocode}
@@ -1996,7 +1928,7 @@
}
% \end{macrocode}
% \begin{macro}{\tb@atbegin@after}
-% \changes{v3.09a}{2011/05/30}{new internal}%^^A
+% \changes{v3.09a}{2011/05/30}{added}
% Processes command \#1 with argument \#2 and optional argument \#3 and than
% \verb|\csname #2@atbegin\endcsname|. This is used to add
% \verb|csname #2@atbegin\endcsname| at begin part of a float (but after
@@ -2010,9 +1942,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\tb@ifvalueisnotempty}
-% \changes{v3.06}{2010/05/21}{new internal}%^^A
-% \changes{v3.20}{2015/12/16}{simpler definition}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.06}{2010/05/21}{added}
+% \changes{v3.20}{2015/12/16}{simpler definition}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
% This is only a helper for defining some of the keys.
% \begin{macrocode}
\newcommand*{\tb@ifvalueisnotempty}[1]{%
@@ -2026,48 +1958,45 @@
}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\tb@boolkey}
-% \changes{v3.06}{2010/05/21}{new (internal)}%^^A
-% \changes{v3.20}{2015/12/16}{undefined}%^^A
-% \end{macro}
-% \begin{macro}{\tb@dimkey}
-% \changes{v3.06}{2010/05/21}{new (internal)}%^^A
-% \changes{v3.20}{2015/12/16}{undefined}%^^A
-% \end{macro}
-% \begin{macro}{\tb@numkey}
-% \changes{v3.06}{2010/05/21}{new internal}%
-% \changes{v3.20}{2015/12/16}{undefined}%^^A
+% \begin{macro}[noprint]{\tb@boolkey,\tb@dimkey,\tb@numkey}
+% \changes{v3.06}{2010/05/21}{added}
+% \changes{v3.20}{2015/12/16}{removed}
% \end{macro}
% \begin{macro}{\tb@nt@autofloattype}
-% \changes{v3.06}{2010/06/01}{new internal}%^^A
+% \changes{v3.06}{2010/06/01}{added}
% This macro saves the float type for auto generated float types.
% \begin{macrocode}
\newcommand*{\tb@nt@autofloattype}{16}
%</body>
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{command}
%
%
-% \iffalse
+% \begin{macrocode}
%</package>
-%<*load>
+% \end{macrocode}
+%
+% \subsection{Loading the package}
% Used at \KOMAScript{} packages and classes to load the package.
% \begin{macrocode}
+%<*load>
\RequirePackage{tocbasic}[%
%!KOMAScriptVersion
]
-% \end{macrocode}
%</load>
-% \fi
+% \end{macrocode}
+%
%
% \Finale
+% \PrintChanges
%
\endinput
-%
-% end of file `tocbasic.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% coding: utf-8
-%%% 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: