summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-10-16 03:03:59 +0000
committerNorbert Preining <norbert@preining.info>2024-10-16 03:03:59 +0000
commitf2ff8c9f345d7b54544744f5f603e13dc1e59b0b (patch)
tree5a684a31f2db6033f15706fbade7b2f5f57c4937 /macros/latex
parent7dc10668799aae323b43c5ba9b31caaa553cd20d (diff)
CTAN sync 202410160303
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/chess-problem-diagrams/README2
-rw-r--r--macros/latex/contrib/chess-problem-diagrams/diagram.dtx186
-rw-r--r--macros/latex/contrib/chess-problem-diagrams/diagram.pdfbin360083 -> 363776 bytes
-rw-r--r--macros/latex/contrib/dashrulex/README.md2
-rw-r--r--macros/latex/contrib/dashrulex/dashrulex.pdfbin57722 -> 55567 bytes
-rw-r--r--macros/latex/contrib/dashrulex/dashrulex.sty4
-rw-r--r--macros/latex/contrib/dashrulex/dashrulex.tex79
-rw-r--r--macros/latex/contrib/koma-script/MANIFEST.md29
-rw-r--r--macros/latex/contrib/koma-script/README.md92
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdfbin0 -> 69598 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdfbin0 -> 67156 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdfbin0 -> 70887 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdfbin0 -> 67859 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/common-options-de.tex8
-rw-r--r--macros/latex/contrib/koma-script/doc/common-options-en.tex7
-rw-r--r--macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex4
-rw-r--r--macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex4
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-00-de.pdfbin14938 -> 14942 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-00-en.pdfbin16140 -> 16354 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-01-de.pdfbin17418 -> 17412 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-01-en.pdfbin18858 -> 19237 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-02-de.pdfbin17666 -> 17659 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-02-en.pdfbin19155 -> 19540 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-03-de.pdfbin17701 -> 17694 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-03-en.pdfbin19188 -> 19572 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-04-de.pdfbin17755 -> 17747 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-04-en.pdfbin19231 -> 19618 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-05-de.pdfbin17846 -> 17842 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-05-en.pdfbin19246 -> 19634 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-06-de.pdfbin17852 -> 17843 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-06-en.pdfbin19247 -> 19632 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-07-de.pdfbin17730 -> 17722 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-07-en.pdfbin19206 -> 19592 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-08-de.pdfbin29056 -> 29052 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-08-en.pdfbin30718 -> 31102 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-09-de.pdfbin29039 -> 29033 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-09-en.pdfbin30699 -> 31080 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-10-de.pdfbin29056 -> 29052 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-10-en.pdfbin30718 -> 31102 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-11-de.pdfbin29059 -> 29053 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-11-en.pdfbin30719 -> 31104 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-12-de.pdfbin29056 -> 29052 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-12-en.pdfbin30718 -> 31102 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-13-de.pdfbin29801 -> 29929 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-13-en.pdfbin31988 -> 32108 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-14-de.pdfbin29777 -> 29905 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-14-en.pdfbin31957 -> 32077 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-15-de.pdfbin29800 -> 29930 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-15-en.pdfbin31987 -> 32107 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-16-de.pdfbin30793 -> 30981 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-16-en.pdfbin32976 -> 33156 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-17-de.pdfbin30819 -> 31007 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-17-en.pdfbin33010 -> 33191 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-18-de.pdfbin30819 -> 31004 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-18-en.pdfbin33002 -> 33179 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-19-de.pdfbin31314 -> 31492 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-19-en.pdfbin33279 -> 33463 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-20-de.pdfbin31498 -> 31557 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-20-en.pdfbin33285 -> 33343 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-21-de.pdfbin42786 -> 42839 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-21-en.pdfbin44409 -> 44458 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-22-de.pdfbin43094 -> 43146 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-22-en.pdfbin44705 -> 44753 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-23-de.pdfbin43094 -> 43146 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-23-en.pdfbin44705 -> 44753 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex26
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex32
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex15
-rw-r--r--macros/latex/contrib/koma-script/doc/scrextend-en.tex4
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide-body.tex3
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide-de.pdfbin3258688 -> 3160704 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide-en.pdfbin3169325 -> 3074000 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide.bib52
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide.cls3
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack-de.tex313
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack-en.tex285
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack.html57
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-de.tex1279
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-en.tex1143
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-de.pdfbin56780 -> 0 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-de.tex145
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-en.pdfbin57967 -> 0 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-en.tex143
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex20
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex16
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdfbin137423 -> 137508 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex8
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdfbin135451 -> 135518 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex8
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html4
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex2
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer.html4
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex6
-rw-r--r--macros/latex/contrib/koma-script/doc/tocbasic-de.tex331
-rw-r--r--macros/latex/contrib/koma-script/doc/tocbasic-en.tex364
-rw-r--r--macros/latex/contrib/koma-script/scraddr.dtx18
-rw-r--r--macros/latex/contrib/koma-script/scrdoc.cls354
-rw-r--r--macros/latex/contrib/koma-script/scrhack.dtx2041
-rw-r--r--macros/latex/contrib/koma-script/scrjura.dtx1960
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-basics.dtx9
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-compatibility.dtx10
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-language.dtx45
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx27
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-notepaper.dtx77
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-sections.dtx47
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-typearea.dtx23
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-variables.dtx256
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-version.dtx132
-rw-r--r--macros/latex/contrib/koma-script/scrlayer.dtx41
-rw-r--r--macros/latex/contrib/koma-script/scrmain.ins3
-rw-r--r--macros/latex/contrib/koma-script/scrtime.dtx18
-rw-r--r--macros/latex/contrib/koma-script/tocbasic.dtx236
-rw-r--r--macros/latex/contrib/notebeamer/README.md8
-rw-r--r--macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdfbin274146 -> 0 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdfbin2670286 -> 0 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdfbin0 -> 36500 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex18
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdfbin0 -> 23754 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex13
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer.pdfbin907049 -> 112745 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer.tex186
-rw-r--r--macros/latex/contrib/notebeamer/tex/notebeamer.sty313
-rw-r--r--macros/latex/contrib/numbersets/numbersets-doc.pdfbin59084 -> 60136 bytes
-rw-r--r--macros/latex/contrib/numbersets/numbersets-doc.tex34
-rw-r--r--macros/latex/contrib/numbersets/numbersets.sty14
-rw-r--r--macros/latex/contrib/passopt/README.md2
-rw-r--r--macros/latex/contrib/passopt/passopt.pdfbin52494 -> 48685 bytes
-rw-r--r--macros/latex/contrib/passopt/passopt.sty2
-rw-r--r--macros/latex/contrib/passopt/passopt.tex49
-rw-r--r--macros/latex/contrib/postnotes/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/postnotes/postnotes-code.pdfbin819243 -> 883243 bytes
-rw-r--r--macros/latex/contrib/postnotes/postnotes-code.tex2
-rw-r--r--macros/latex/contrib/postnotes/postnotes-doc.pdfbin203385 -> 203619 bytes
-rw-r--r--macros/latex/contrib/postnotes/postnotes-doc.tex17
-rw-r--r--macros/latex/contrib/postnotes/postnotes.dtx900
-rw-r--r--macros/latex/contrib/postnotes/postnotes.ins4
-rw-r--r--macros/latex/contrib/spbmark/README.md2
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin92984 -> 89992 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty2
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex178
144 files changed, 3211 insertions, 8817 deletions
diff --git a/macros/latex/contrib/chess-problem-diagrams/README b/macros/latex/contrib/chess-problem-diagrams/README
index bc5dc2fecf..f619a919a3 100644
--- a/macros/latex/contrib/chess-problem-diagrams/README
+++ b/macros/latex/contrib/chess-problem-diagrams/README
@@ -1,5 +1,5 @@
diagram --- A package for typesetting chessproblems
-Version v1.21 / Stefan Hoening 1994-2022
+Version v1.22 / Stefan Hoening 1994-2024
CONTENTS
diff --git a/macros/latex/contrib/chess-problem-diagrams/diagram.dtx b/macros/latex/contrib/chess-problem-diagrams/diagram.dtx
index 883588b391..45ffdc5001 100644
--- a/macros/latex/contrib/chess-problem-diagrams/diagram.dtx
+++ b/macros/latex/contrib/chess-problem-diagrams/diagram.dtx
@@ -13,9 +13,9 @@
%%
%%
% \fi
-% \def\fileversion{v1.21}
-% \def\docdate{2022/06/14}
-% \CheckSum{4577}
+% \def\fileversion{v1.22}
+% \def\docdate{2024/06/13}
+% \CheckSum{4611}
% \changes{v0.1}{15 Februar 2004}{First Version}
% \changes{v0.2}{23 Februar 2004}{Added the documentation for the
% {\itshape information collecting} macros which may be used
@@ -91,9 +91,15 @@
% \changes{v1.20}{13 June 2022}{Introduced two booleans to better
% control displaying diagram number globally and locally.\\
% Removed the old boolean 'di@no'.}
-% \changes{v1.21}{14 June 2022}{Impletemted issue: 03f/309:\\
+% \changes{v1.21}{14 June 2022}{Impletented issue: 03f/309:\\
% handle empty arguments in information collecting commands\\
% Fixed typo in @dia@fidealbum command.}
+% \changes{v1.22}{13 June 2024}{Fix empty argument detection.\\
+% Change ra and lra commands to allow for common prefix and suffix.\\
+% Added generic command insidediagram to allow e.g. footnotes inside
+% diagrams.\\
+% Fixed numbering when creating empty diagram numbering via
+% speciadiagram.}
%
% \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar,
% \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup,
@@ -237,8 +243,8 @@
% \item \DescribeMacro{\author}
% With the |\author| tag you specify one author or a list of authors.
% If you specify more than one author, you must separate them
-% with ";~". Normally an author is given as \explained{"sirname,
-% givenname"}. You may change the way, how the name is
+% with ``;~''. Normally an author is given as \explained{``sirname,
+% givenname''}. You may change the way, how the name is
% interpreted by \LaTeX\ using |\normalnames| and
% |\reversednames|. This \verb+\author+ command does only
% overwrite the default behaviour when used inside a diagram
@@ -252,7 +258,7 @@
% \item \DescribeMacro{\pieces}
% With |\pieces| you specify the position to be displayed on the
% board. For each kind of piece you may specify a list of fields.
-% Different lists of fields are separated by ",~". So the general
+% Different lists of fields are separated by ``,~''. So the general
% syntax for specifying the position of a specific piece
% is:\newline
% [color][piece]\{rotation of piece\}[list of squares];\newline
@@ -297,12 +303,12 @@
% may be used to specify the city and country, where the author
% or the authors live. I use this inside the original section of
% \Schwalbe. You should separate multiple cities (for multiple
-% authors) with ";~". There is also a boolean switch |showcity|,
+% authors) with ``;~''. There is also a boolean switch |showcity|,
% which contols, whether this information is displayed.
% \item \DescribeMacro{\specialdiagnum}
% May be used to suppress the default diagram numbering (which
% uses a counter) and instead directly providing a diagram
-% "number" which may be an arbritary text. This may also be used to
+% ``number'' which may be an arbritary text. This may also be used to
% suppress displaying a diagram number by providing an empty argument
% \verb+{}+.
% \item \DescribeMacro{\sourcenr}
@@ -334,10 +340,10 @@
% author of the problem.
% \item \DescribeMacro{\condition}\DescribeMacro{\cond}
% May be used to specify the fairy conditions of a problem.
-% Different conditions should be separated with ";~".
+% Different conditions should be separated with ``;~''.
% \item \DescribeMacro{\twins}
% May be used to specify the different twins of a problem.
-% Different twins should be separated with ";~".
+% Different twins should be separated with ``;~''.
% \item \DescribeMacro{\remark}\DescribeMacro{\rem}
% May be used to specify remarks to the problem. I typically use
% this to explain fairy pieces on the board. You may also use the
@@ -357,18 +363,18 @@
% \item \DescribeMacro{\judgement}
% May be used to describe the judgement given for a problem,
% e.\,g. when you are working on an award or when you are
-% selecting problems for a "best of \dots{}" book.
+% selecting problems for a ``best of \dots{}'' book.
% \item \DescribeMacro{\comment}
% May be used to specify some comment on the problem (e.\,g. the
% authors original comment.)
% \item \DescribeMacro{\themes}
% May be used to specify themes displayed in the problem.
-% Different themes should be separated with ",~". When creating a
+% Different themes should be separated with ``,~''. When creating a
% theme index, the themes will automatically be used to create
% the register.
% \item \DescribeMacro{\genre}
% May be used to specify genre of the problem.
-% Different genres should be separated with ",~".
+% Different genres should be separated with ``,~''.
% The values are intended to using \LaTeX\-import within the PDB.
% \end{itemize}
%
@@ -734,7 +740,7 @@
% You may remove single fields by using the |\nofields| or
% |\nosquares| command. Using this command does make sense for
% empty black fields only. This command expects a list of squares
-% separated by "',~"'. You may also use this command within a
+% separated by ``,~''. You may also use this command within a
% stereo- or space-diagram. In this case you must specify the
% fields the same way you do it inside the |\pieces| command.
%
@@ -748,14 +754,14 @@
% A more general form of lines within diagrams is possible by
% using the |\gridlines| command. You may specify a list of
% horizontal or vertical lines within the diagram. Different
-% lines should be separated by "',~"'. A single line must be
+% lines should be separated by ``,~''. A single line must be
% specified as:
%
% [plane](v or h)(x-coordinate)(y-coordinate)(length in squares)
%
% You must specify a plane in case of stereo- or space-chess
% only. For a vertical line starting at the lower left corner of
-% "'c2"' ending at the upper left corner of "'c8"' the command to
+% ``c2'' ending at the upper left corner of ``c8'' the command to
% use is: |\gridlines{v217}|\@. Concerning the coordinates and
% length specifications you should pay attention to put values
% greater 9 in curly braces \{ \}.
@@ -766,7 +772,7 @@
% is: \{Text\}(x-coordinate)(y-coordinate)
%
% Now an example how to use |\gridlines|, |\nofields| and
-% |\fieldtext| to create some "'{\itshape Letter-Board}"' with text
+% |\fieldtext| to create some ``{\itshape Letter-Board}'' with text
% inside.
%
% \bigskip
@@ -865,6 +871,7 @@
% \DescribeMacro{\nX}
% a neutral rotated equihopper
% \end{description}
+%
% \subsubsection{Other often used symbols}
% The style also defines commands for other symbols, which are
% often used within the declaration of twins or when writing a
@@ -887,12 +894,28 @@
% queen side castling
% \item[\x]
% \DescribeMacro{\x}
-% for "'takes"'
+% for ``takes''
% \item[\any]
% \DescribeMacro{\any}
-% for any move (you may not simply use a \any\ within your
+% for an arbitrary move (you must not simply use a \verb+~+ within your
% text because \TeX\ handles this as a protected space)
% \end{description}
+%
+% \DescribeEnv{arrowskip}
+% It is possible, to define a prefix and/or a suffix to use before and
+% after arrows - typically a common separating space. Per default
+% there is no such space. You may use the \verb+arrowskip+ environment
+% have a common prefix and suffix before and after arrows:
+%
+% \begin{verbatim}
+% \begin{arrowskip}{a\,}{\,b}
+% ...
+% \end{arrowskip}
+% \end{verbatim}
+%
+% ... will prefix arrows produced with |\ra| or |\lra| with \verb+a\,+
+% and suffix with \verb+\,b+.
+%
% \subsubsection{Internationalization}
% \DescribeMacro{\DefinePieces}
% This part is relevant for people who do not like the german
@@ -992,6 +1015,20 @@
% \verb+\renewcommand{\solpar}+ to provide another definition of
% \verb+\solpar+ in such situations.
%
+% \DescribeMacro{\insidediagram}
+% The problem information collected by some commands may be used in
+% different places (author names will be shown above the diagram and
+% at the beginning of solutions when output using \verb+\putsol+).
+% Therefore we need some special handling of e.g. footnotes, to avoid
+% creating the footnotemarks multiple times. Such commands should be
+% used within \verb+\insidediagram+ as shown by the following example:
+%
+% \begin{verbatim}
+% \begin{diagram}
+% \author{Else\insidediagram{\footnotemark}, Someone}
+% \end{diagram}
+% \end{verbatim}
+%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \section{The documentation driver}
@@ -1016,7 +1053,7 @@
% Specifies the preamble of our style file.
% \begin{macrocode}
%<*style>
-\ProvidesPackage{diagram}[2022/06/19]
+\ProvidesPackage{diagram}[2024/10/14]
% \end{macrocode}
%
% \begin{macro}{\DefaultDiagramSize}
@@ -1206,6 +1243,7 @@
\newtoks\condition@tk\condition@tk={\relax}
\newtoks\remark@tk\remark@tk={\relax}
\newtoks\piecedefs@tk\piecedefs@tk={\relax}
+\newtoks\@cpd@emptytest
% \end{macrocode}
%
% To remember, which information has been specified, we define
@@ -1264,7 +1302,7 @@
% \begin{macrocode}
\newwrite\s@lfd
\let\below@newline=\relax
-% These are used by the "old" board creating mechanism
+% These are used by the ``old'' board creating mechanism
\newcount\@lines
\newcount\@rows
\newcount\lines@max
@@ -1386,6 +1424,12 @@
\ignorespaces%
}
+
+\newboolean{@cpd@inside@diagram}
+\setboolean{@cpd@inside@diagram}{false}
+\newcommand{\insidediagram}[1]{%
+ \ifthenelse{\boolean{@cpd@inside@diagram}}{#1}{}%
+}
\def\enddiagram{%
\let\author=\orig@author%
\let\day=\orig@day%
@@ -1506,6 +1550,7 @@
}%
%
\global\setbox\dia@box=\hbox{\vbox{%
+ \setboolean{@cpd@inside@diagram}{true}%
\parindent\z@%
\parskip\z@%
\baselineskip11\p@\advance\baselineskip\dia@lineskip%
@@ -1541,6 +1586,7 @@
\dia@below%
}\hss}%
}%
+ \setboolean{@cpd@inside@diagram}{false}%
}}% End of \dia@box
\do@dia@job%
\cpd@enddiagram@hook%
@@ -1728,21 +1774,42 @@
\addtocounter{board@nr}{\m@ne}}
% \end{macrocode}
%
+% Now we define a couple of abbreviations and special symbols
+% often used when setting problem chess documents.
+%
% \begin{macro}{\ra}
% \begin{macro}{\lra}
% \begin{macro}{\rla}
+% \begin{macro}{arrowskip}
+% Arrows and specification of space (or something different)
+% before and after arrows.
+% \begin{macrocode}
+\newcommand{\@cpd@pre@arrow}{}
+\newcommand{\@cpd@post@arrow}{}
+\newcommand{\ra}{\@cpd@pre@arrow\mbox{$\rightarrow$}\@cpd@post@arrow}
+\newcommand{\lra}{\@cpd@pre@arrow\mbox{$\leftrightarrow$}\@cpd@post@arrow}
+\let\rla=\lra
+\newcommand*{\@cpd@prepost@arrow}[2]{%
+ \renewcommand*{\@cpd@pre@arrow}{#1}
+ \renewcommand*{\@cpd@post@arrow}{#2}
+}
+\newenvironment{arrowskip}{%
+ \@cpd@prepost@arrow%
+}{%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\x}
% \begin{macro}{\set}
% \begin{macro}{\OO}
% \begin{macro}{\OOO}
% \begin{macro}{\any}
% \begin{macro}{\further}
-% Now we define a couple of abbreviations and special symbols
-% often used when setting problem chess documents.
% \begin{macrocode}
-\def\ra{\mbox{$\rightarrow$}}
-\def\lra{\mbox{$\leftrightarrow$}}
-\let\rla=\lra
\newcommand{\x}{\mbox{\ifmmode\times\else$\times$\fi}}
\def\set{\kern -.05em\raise .1ex\hbox{*}}
\def\@O{0\raise.25ex\hbox{-}\kern -.1em\relax}
@@ -1757,9 +1824,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macrocode}
\def\spacelayout#1{\csname space@#1\endcsname}
@@ -1808,10 +1872,10 @@
}{%
\setboolean{@cpd@numbering@local}{true}%
\@specialtrue%
- \number@tk={#1}\@numbertrue%
- \def\thediag{#1}\def\@currentlabel{#1}%
- \ignorespaces%
}
+ \number@tk={#1}\@numbertrue%
+ \def\thediag{#1}\def\@currentlabel{#1}%
+ \ignorespaces%
}
% \end{macrocode}
%
@@ -1848,6 +1912,15 @@
% \end{macro}
%
% \begin{macrocode}
+\def\@cpd@warnIfEmpty#1#2{%
+ \begingroup%
+ \@cpd@emptytest={#1}%
+ \edef\@cpd@param{\the\@cpd@emptytest}%
+ \expandafter\endgroup%
+ \ifx\@cpd@param\@empty\relax%
+ \message{^^JWARNING: empty '#2' argument.^^J}%
+ \fi
+}
\def\city#1{%
\city@tk={#1}\@citytrue%
\ignorespaces%
@@ -1889,44 +1962,29 @@
\ignorespaces%
}
\def\award#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'award' argument.^^J}%
- }{%
- \award@tk={#1}\@awardtrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{award}%
+ \award@tk={#1}\@awardtrue%
+ \ignorespaces%
}
\def\version#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'version' argument.^^J}%
- }{%
- \version@tk={#1}\@versiontrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{version}%
+ \version@tk={#1}\@versiontrue%
+ \ignorespaces%
}
\def\after#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'after' argument.^^J}%
- }{%
- \after@tk={#1}\@aftertrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{after}%
+ \after@tk={#1}\@aftertrue%
+ \ignorespaces%
}
\def\correction#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \correction@tk={#1}\@correctiontrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{correction}%
+ \correction@tk={#1}\@correctiontrue%
+ \ignorespaces%
}
\def\dedication#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \dedic@tk={#1}\@dedicationtrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{dedication}%
+ \dedic@tk={#1}\@dedicationtrue%
+ \ignorespaces%
}
\def\fidealbum#1{%
\fidealbum@tk={#1}\@fidealbumtrue%
@@ -2569,7 +2627,7 @@
\parskip\tw@\p@%
{\bfseries%
\noindent\if@label\showlabel{\the\label@tk}\fi%
- \the\number@tk) %
+ \if@number\the\number@tk) \fi%
\ifauth@r%
\ifnormal@names%
\the\aut@tk%
diff --git a/macros/latex/contrib/chess-problem-diagrams/diagram.pdf b/macros/latex/contrib/chess-problem-diagrams/diagram.pdf
index 9ea04fbd39..843e8de2a3 100644
--- a/macros/latex/contrib/chess-problem-diagrams/diagram.pdf
+++ b/macros/latex/contrib/chess-problem-diagrams/diagram.pdf
Binary files differ
diff --git a/macros/latex/contrib/dashrulex/README.md b/macros/latex/contrib/dashrulex/README.md
index 3e81605ffc..9b9af96753 100644
--- a/macros/latex/contrib/dashrulex/README.md
+++ b/macros/latex/contrib/dashrulex/README.md
@@ -1,5 +1,5 @@
# The `dashrulex` package
-Draw dashed rules (v1.01a)
+Draw dashed rules (v1.01b)
## Abstract
The `dashrulex` package provides a flexible solution for drawing dashed rules in the body, and currently provides two commands `\hdashrule` and `\hanyrule`. It's written in LaTeX3 and can be used as an alternative to the `dashrule` package.
diff --git a/macros/latex/contrib/dashrulex/dashrulex.pdf b/macros/latex/contrib/dashrulex/dashrulex.pdf
index f97a5ef302..099a57db69 100644
--- a/macros/latex/contrib/dashrulex/dashrulex.pdf
+++ b/macros/latex/contrib/dashrulex/dashrulex.pdf
Binary files differ
diff --git a/macros/latex/contrib/dashrulex/dashrulex.sty b/macros/latex/contrib/dashrulex/dashrulex.sty
index 090cfe2931..e0781bf97d 100644
--- a/macros/latex/contrib/dashrulex/dashrulex.sty
+++ b/macros/latex/contrib/dashrulex/dashrulex.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2012/02/12]
\RequirePackage{xparse}
-\ProvidesExplPackage{dashrulex}{2024/07/18}{1.01a}
+\ProvidesExplPackage{dashrulex}{2024/10/14}{1.01b}
{Draw dashed rules}
\DeclareDocumentCommand{\hdashrule}{O{0pt}O{x}mmm}
{
@@ -88,4 +88,4 @@
}
\endinput
%
-% End of file `dashrulex.sty'. \ No newline at end of file
+% End of file `dashrulex.sty'.
diff --git a/macros/latex/contrib/dashrulex/dashrulex.tex b/macros/latex/contrib/dashrulex/dashrulex.tex
index 5469fc0c37..b99210c319 100644
--- a/macros/latex/contrib/dashrulex/dashrulex.tex
+++ b/macros/latex/contrib/dashrulex/dashrulex.tex
@@ -1,14 +1,15 @@
\documentclass[load-preamble+]{cnltx-doc}
-\usepackage{setspace,hologo,enumitem,dashrulex,tikz}
+\usepackage{hologo,enumitem,dashrulex,tikz,codehigh}
\usepackage[noto]{newtxmath}
\setcnltx
{
package = dashrulex,
title = dashrulex,
- version = v1.01a,
- date = 2024/07/18,
+ version = v1.01b,
+ date = 2024/10/14,
authors = Qu Yi,
+ title = \dashrulex{} package,
info = Draw dashed rules,
email = toquyi@163.com,
url = https://github.com/texno3/dashrulex,
@@ -17,10 +18,7 @@
The \pkg*{dashrulex} package provides a flexible solution for drawing dashed rules in the body, and currently provides two commands \cs{hdashrule} and \cs{hanyrule}. It's written in \hologo{LaTeX3} and can be used as an alternative to the \pkg*{dashrule} package.
},
color-scheme = blue,
- listings-options = {numbers = none,gobble = 2,lineskip = 1pt},
- pre-output = {\parindent = 0em\setstretch{1.3}},
- before-skip = \smallskipamount,
- after-skip = \smallskipamount
+ title-format = \LARGE
}
\makeatletter
\newcommand{\splitmeta}[3][\code{,}]{\meta{#2}#1\meta{#3}}
@@ -40,9 +38,11 @@
\newnote{\newtag}[1]{\textcolor{red}{#1}}
\renewcommand{\emph}[1]{\textcolor{red}{#1}}
\renewcommand{\cnltx@write@lastname}{}
+\renewcommand{\cnltxpackagenameformat}[1]{\textcolor{cnltx}{\textsf{#1}}}
\setlist{nosep,topsep = \smallskipamount}
\setlist[description,1]{leftmargin = \parindent}
\setlist[itemize,1]{leftmargin = *}
+\SetCodeHighStyle[default]{2}{cs}
\makeatother
\begin{document}
@@ -53,41 +53,41 @@ Sometimes it is necessary to draw dashed rules when writing documents, such as g
\begin{commands}
\command{hdashrule}[\oarg{raise}\oarg{leader}\marg{width}\marg{thickness list}\marg{dash rules}]
The command to draw horizontal dashed rules, based on the \cs{rule} command, and the same as the \cs{rule} command when the \meta{dash rules} are empty. \meta{raise} is the vertical offset of the rule. \meta{leader} is the alignment of the dashed line fill, which can be empty, \code{c}, or \code{x} (the \textcolor{red}{default}), corresponding to the \cs{leaders}, \cs{cleaders}, and \cs{xleaders} commands, respectively. \meta{width} is the length of the dashed line, which can be set to \cs{fill} when used to fill the remaining part of the current text line. \meta{thickness list} is a rule for the height of \textcolor{red}{vertical} lines, separated by \textcolor{red}{commas} and written as \splitmeta{height 1}{height a}\code{,...}, where \meta{height 1} denotes the height of a solid line and \meta{height a} denotes the height of a blank space. \meta{dash rules} stands for \textcolor{red}{horizontal} dashed line rules, which expressed as \splitmeta[\code{|}]{length 1}{length a}\code{,}\splitmeta[\code{|}]{length 2}{length b}\code{,...}, where \meta{length 1} represents the length of the solid line and \meta{length a} represents the length of the blank space, such as \code{5pt|2pt,3pt}, if the blank space is empty, then it is equal to the solid line length.
- \begin{example}
- 1X\rule{2cm}{1pt}x \\
- 2X\hdashrule{2cm}{1pt}{}x \\
- 3X\hdashrule{2cm}{1pt}{1pt}x \\
- 4X\hdashrule{4cm}{1pt}{1pt}x \\
- 5X\hdashrule[0.5ex]{4cm}{1pt}{1pt}x \\
- 6X\hdashrule[0.5ex]{4cm}{1pt}{3mm}x \\
- 7X\hdashrule[0.5ex]{4cm}{1mm}{3mm}x \\
- 8X\hdashrule[0.5ex]{4cm-3mm}{1mm}{3mm}\vrulemod[0.5ex]{3mm}{1mm}x \\
- 9X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt}x \\
- 10X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt,1mm|2pt}x \\
- 11X\hdashrule[0.5ex]{4cm}{2pt,1pt,1pt}{3mm|3pt,1mm|2pt}x
- \end{example}
+\begin{demohigh}
+1X\rule{2cm}{1pt}x \\
+2X\hdashrule{2cm}{1pt}{}x \\
+3X\hdashrule{2cm}{1pt}{1pt}x \\
+4X\hdashrule{4cm}{1pt}{1pt}x \\
+5X\hdashrule[0.5ex]{4cm}{1pt}{1pt}x \\
+6X\hdashrule[0.5ex]{4cm}{1pt}{3mm}x \\
+7X\hdashrule[0.5ex]{4cm}{1mm}{3mm}x \\
+8X\hdashrule[0.5ex]{4cm-3mm}{1mm}{3mm}\vrulemod[0.5ex]{3mm}{1mm}x \\
+9X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt}x \\
+10X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt,1mm|2pt}x \\
+11X\hdashrule[0.5ex]{4cm}{2pt,1pt,1pt}{3mm|3pt,1mm|2pt}x
+\end{demohigh}
\command{vrulemod}[\oarg{raise}\oarg{height}\oarg{depth}\marg{width}\marg{thickness list}]
The vertical model used to fill the dashed line. \meta{thickness list} is consistent with the \cs{hdashrule} command, \meta{width} represents the length of the component, and the three optional parameters are consistent with those of the \cs{raisebox} command.
\command{hanyrule}[\oarg{leader}\marg{width}\marg{symbol list}]
This command sets the length of the dotted rule and fills it with arbitrary symbols. \meta{symbol list} can be more than one symbol and they are separated by \textcolor{red}{commas}. Symbols are best packed in boxes of a certain length, as spacing between symbols is not provided.
- \begin{example}
- \newcommand{\dblblock}
- {%
- \tikz[color=teal]
- {
- \draw[line width=0.8mm](0mm,1.1mm)--(3mm,1.1mm);
- \draw[line width=0.3mm](0mm,0mm)--(3mm,0mm);
- }%
- }
- 1X\hanyrule[]{5cm}{\makebox[8pt]{$\cdot$}}x \\
- 2X\hanyrule[c]{5cm}{\makebox[8pt]{$\cdot$}}x \\
- 3X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$}}x \\
- 4X\hanyrule[x]{5cm}{\makebox[8pt][l]{$\cdot$}}x \\
- 5X\hanyrule[x]{5cm}{\makebox[8pt][r]{$\cdot$}}x \\
- 6X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$},\makebox[8pt]{$\circ$}}x \\
- 7X\hanyrule[x]{5cm}{\makebox[5mm]{\vrulemod{3mm}{2pt,1pt,1pt}}}x \\
- 8X\hanyrule[x]{5cm}{\makebox[5mm]{\dblblock}}x
- \end{example}
+\begin{demohigh}
+\newcommand{\dblblock}
+ {%
+ \tikz[color=teal]
+ {
+ \draw[line width=0.8mm](0mm,1.1mm)--(3mm,1.1mm);
+ \draw[line width=0.3mm](0mm,0mm)--(3mm,0mm);
+ }%
+ }
+1X\hanyrule[]{5cm}{\makebox[8pt]{$\cdot$}}x \\
+2X\hanyrule[c]{5cm}{\makebox[8pt]{$\cdot$}}x \\
+3X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$}}x \\
+4X\hanyrule[x]{5cm}{\makebox[8pt][l]{$\cdot$}}x \\
+5X\hanyrule[x]{5cm}{\makebox[8pt][r]{$\cdot$}}x \\
+6X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$},\makebox[8pt]{$\circ$}}x \\
+7X\hanyrule[x]{5cm}{\makebox[5mm]{\vrulemod{3mm}{2pt,1pt,1pt}}}x \\
+8X\hanyrule[x]{5cm}{\makebox[5mm]{\dblblock}}x
+\end{demohigh}
\end{commands}
\section{Known issues}
@@ -95,5 +95,6 @@ Currently only horizontal dashed line drawing is supported, with future plans to
\appendix
\nocite{*}
+\AddToHook{cmd/printindex/before}{\clearpage}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/koma-script/MANIFEST.md b/macros/latex/contrib/koma-script/MANIFEST.md
index 7089f6be08..6390118add 100644
--- a/macros/latex/contrib/koma-script/MANIFEST.md
+++ b/macros/latex/contrib/koma-script/MANIFEST.md
@@ -20,7 +20,6 @@ KOMA-Script bundle of LaTeX classes and packages.
* `koma-script-source-doc.dtx`
* `scraddr.dtx`
* `scrextend.dtx`
-* `scrhack.dtx`
* `scrjura.dtx`
* `scrkernel-addressfiles.dtx`
* `scrkernel-basics.dtx`
@@ -58,7 +57,6 @@ KOMA-Script bundle of LaTeX classes and packages.
* `scrstrip.inc`
* `scrstrop.inc`
* `scrdocstrip.tex`
-* `scrdoc.cls` (deprecated)
## Typeset documentation source files
@@ -84,8 +82,9 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
manual. All other files are part of both, the English and the German user
manual.
-* `scrlttr2-examples.dtx` (has to unpacked using “`tex scrlttr2-examples.dtx`”
- before using LaTeX to produce the user manuals)
+* `scrlttr2-examples.dtx` (has to be unpacked using
+ “`tex scrlttr2-examples.dtx`” before using LaTeX to produce the user
+ manuals)
* `scrguide.cls`
* `scrguide.ist`
* `scrguide.gst`
@@ -105,7 +104,8 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scrtime-en.tex`
* `scraddr-en.tex`
* `scrextend-en.tex`
-* `scrjura-en.tex`
+* `scrjura-en.tex`
+* `scrjura-example-en.tex`
* `scrlogo-en.tex`
* `common-options-en.tex`
* `common-compatibility-en.tex`
@@ -128,10 +128,12 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scrlfile-en.tex`
* `scrwfile-en.tex`
* `tocbasic-en.tex`
-* `scrhack-en.tex`
+* `book-remarkbox-nopatch-en.tex`
+* `book-remarkbox-patch-en.tex`
* `scrlayer-en.tex`
* `scrlayer-scrpage-experts-en.tex`
-* `scrlayer-notecolumn-en.tex`
+* `scrlayer-notecolumn-en.tex`
+* `scrlayer-notecolumn-example-en.tex`
* `typearea-experts-en.tex`
* `scrbookreportarticle-experts-en.tex`
* `scrlttr2-experts-en.tex`
@@ -150,6 +152,7 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scraddr-de.tex`
* `scrextend-de.tex`
* `scrjura-de.tex`
+* `scrjura-example-de.tex`
* `scrlogo-de.tex`
* `common-options-de.tex`
* `common-compatibility-de.tex`
@@ -172,10 +175,12 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scrlfile-de.tex`
* `scrwfile-de.tex`
* `tocbasic-de.tex`
-* `scrhack-de.tex`
+* `book-remarkbox-nopatch-de.tex`
+* `book-remarkbox-patch-de.tex`
* `scrlayer-de.tex`
-* `scrlayer-scrpage-experts-de.tex`
-* `scrlayer-notecolumn-de.tex`
+* `scrlayer-scrpage-experts-de.tex`
+* `scrlayer-notecolumn-de.tex`
+* `scrlayer-notecolumn-example-de.tex`
* `typearea-experts-de.tex`
* `scrbookreportarticle-experts-de.tex`
* `scrlttr2-experts-de.tex`
@@ -199,10 +204,8 @@ of the KOMA-Script bundle of LaTeX classes and packages.
* `README.scrbase.sty`
* `README.scrbook.cls`
* `README.scrdate.sty`
-* `README.scrdoc.cls`
* `README.scrextend.sty`
* `README.scrfontsizes.sty`
-* `README.scrhack.sty`
* `README.scrjura.sty`
* `README.scrkbase.sty`
* `README.scrlayer-notecolumn.sty`
@@ -235,7 +238,6 @@ of LaTeX classes and packages.
* `scrdate.sty`
* `scrextend.sty`
* `scrfontsizes.sty`
-* `scrhack.sty`
* `scrjura.sty`
* `scrkbase.sty`
* `scrlayer-notecolumn.sty`
@@ -321,7 +323,6 @@ KOMA-Script bundle of LaTeX classes and packages.
* `scrarticle.html`
* `scrlayer-notecolumn.html`
* `scraddr.html`
-* `scrhack.html`
* `scrlfile-hook-3.34.html`
* `scrtime.html`
* `scrlttr2.html`
diff --git a/macros/latex/contrib/koma-script/README.md b/macros/latex/contrib/koma-script/README.md
index fd359a2572..0468aea041 100644
--- a/macros/latex/contrib/koma-script/README.md
+++ b/macros/latex/contrib/koma-script/README.md
@@ -1,5 +1,5 @@
-# KOMA-Script 2023/07/07 v3.41
-Copyright [Markus Kohm](mailto:komascript@gmx.info) 1994–2023
+# KOMA-Script 2024-10-15 3.42
+Copyright [Markus Kohm](mailto:komascript@gmx.info) 1994–2024
This material is subject to the LaTeX Project Public License Version 1.3c. See [`lppl.txt`](lppl.txt) (English) or [`lppl-de.txt`](lppl-de.txt) (German) for the details of that license.
@@ -68,7 +68,7 @@ Requires: scrkbase - internal KOMA-Script package
Recommended: scrlayer-scrpage - KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -76,7 +76,7 @@ Version: 2023/07/07 v3.41
<pre>
Maintainer: Markus Kohm
E-Mail: komascript@gmx.info
-Abstract: scrreport is a very simple wrapper class to scrartcl. It has
+Abstract: scrarticle is a very simple wrapper class to scrartcl. It has
been made, because several younger KOMA-Script users do not
understand the 8.3 name scheme.
@@ -85,7 +85,7 @@ Abstract: scrreport is a very simple wrapper class to scrartcl. It has
Requires: scrartcl.cls - KOMA-Script class
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -126,7 +126,7 @@ Requires: keyval - key=value package from the graphics bundle
manipulation
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -148,7 +148,7 @@ Requires: scrkbase - internal KOMA-Script package
typearea - KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -169,23 +169,7 @@ Requires: scrkbase - KOMA-Script package for some basic features.
manipulation
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
-</pre>
-***
-
-### `scrdoc` — deprecated internal source documentation class of KOMA-Script
-<pre>
-Maintainer: Markus Kohm
-E-Mail: komascript@gmx.info
-Abstract: scrdoc is an internal LaTeX class of the KOMA-Script bundle.
- It is an extension of ltxdoc with version 2 of the doc
- package. KOMA-Script has used scrdoc for the implementation
- documentation before KOMA-Script 3.36.
-Requires: ltxdoc - the LaTeX2e source documentation class
- scrartcl - the KOMA-Script article class
-License: LPPL 1.3c or later
-State: deprecated, will be removed soon
-Version: 2022/06/24 v0.1j
+Version: 2024/10/15 v3.42
</pre>
***
@@ -200,7 +184,7 @@ Requires: scrkbase - internal package with some basics of KOMA-Script
etoolbox - tool-box for LaTeX programming using e-TeX
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -214,27 +198,7 @@ Abstract: scrfontsizes is a LaTeX package of the KOMA-Script bundle.
Requires: scrextend - some KOMA-Script features for other classes
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
-</pre>
-***
-
-### `scrhack` — patch some isues with other packages
-<pre>
-Maintainer: Markus Kohm
-E-Mail: komascript@gmx.info
-Abstract: scrhack is a LaTeX package of the KOMA-Script bundle. It
- patches other packages to make them work better and adds new
- features to improve their interaction with KOMA-Script. One
- main feature is to make them work with tocbasic instead of
- KOMA-Script's deprecated float list interface. Currently,
- patches for float.sty, floatrow.sty, (old versions of)
- hyperref, listings, and setspace are available.
-Requires: scrkbase - internal KOMA-Script package with basics
- tocbasic - features for helper files and float environments
- xpatch - extending etoolbox patching commands
-License: LPPL 1.3c or later
-State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -252,7 +216,7 @@ Requires: scrkbase - internal KOMA-Script package with basics
tocbasic - features for helper files and float environments
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -269,7 +233,7 @@ Requires: scrbase - KOMA-Script package for some basic features.
manipulation
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -314,7 +278,7 @@ Abstract: scrlayer-scrpage is a LaTeX package of the KOMA-Script
Requires: scrlayer.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -341,7 +305,7 @@ Abstract: scrlayer is a LaTeX package of the KOMA-Script bundle.
Requires: scrkbase.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -356,11 +320,11 @@ Requires: scrartcl.cls – KOMA-Script class
scrletter.sty – KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
-### `scrletter` — letter extention to KOMA-Script classes
+### `scrletter` — letter extension to KOMA-Script classes
<pre>
Maintainer: Markus Kohm
E-Mail: komascript@gmx.info
@@ -373,7 +337,7 @@ Requires: scrkbase - internal KOMA-Script package
Recommended: marvosym - package by Martin Vogel providing symbols
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -387,7 +351,7 @@ Abstract: scrlfile-hook-3.34 is an internal subpackage of scrlfile to
Requires: scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -400,7 +364,7 @@ Abstract: scrlfile-hook is an internal subpackage of scrlfile to be
Requires: scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -413,7 +377,7 @@ Abstract: scrlfile-patcholdlatex is an internal subpackage of scrlfile
Requires: scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -433,7 +397,7 @@ Abstract: scrlfile is a LaTeX package of the KOMA-Script bundle. It
Requires: scrlfile-hook.sty, scrlfile-patcholdlatex.sty, scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -447,7 +411,7 @@ Abstract: scrlogo is a LaTeX package of the KOMA-Script bundle. It
Requires:
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -482,7 +446,7 @@ Requires: scrkbase - internal KOMA-Script package
Recommended: marvosym - package by Martin Vogel providing symbols
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -499,7 +463,7 @@ Abstract: scrreport is a very simple wrapper class to scrreprt. It has
Requires: scrreprt.cls - KOMA-Script class
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -521,7 +485,7 @@ Requires: scrkbase - internal KOMA-Script package
typearea - KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -535,7 +499,7 @@ Abstract: scrtime is a LaTeX package of the KOMA-Script bundle. It
Requires: scrkbase - internal package with some basics of KOMA-Script
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -562,7 +526,7 @@ Abstract: tocbasic is a LaTeX package of the KOMA-Script bundle. The
Requires: scrbase - KOMA-Script package for some basic features.
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
@@ -585,7 +549,7 @@ Abstract: Many LaTeX classes, including the standard classes, present
Requires: scrkbase - internal basic features for KOMA-Script packages
License: LPPL 1.3c or later
State: Autor maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/15 v3.42
</pre>
***
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdf
new file mode 100644
index 0000000000..7933eec352
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex
new file mode 100644
index 0000000000..574b8a1aa1
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+\usepackage[ngerman]{babel}
+\usepackage{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% Gleitumgebungen sollen definiert werden.
+ counterwithin=chapter,% Zähler von Kapitel abhängig.
+ floattype=4,%
+ name=Merksatz,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={Verzeichnis der Merksätze}%
+]{lor}
+
+% Einträge im Inhaltsverzeichnis:
+\setuptoc{lof}{totoc}% für das Abbildungsverzeichnis
+\setuptoc{lor}{totoc}% für das Verzeichnis der Merksätze
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{Erstes Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Erste Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Erster Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Zweite Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Zweiter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Zweites Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Dritte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Dritter Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Vierte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Vierter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdf
new file mode 100644
index 0000000000..3c92de735e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex
new file mode 100644
index 0000000000..99a62c128a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+
+\usepackage{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% definiere floating environment
+ counterwithin=chapter,% counter depends on chapter
+ floattype=4,%
+ name=Remark,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={List of Remarks}%
+]{lor}
+
+% add entries to the table of contents
+\setuptoc{lof}{totoc}% list of figures
+\setuptoc{lor}{totoc}% list of remarks
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{First Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{First Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{First Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Second Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Second Remark}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Second Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Third Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Third Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Fourth Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Fourth Remark}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdf
new file mode 100644
index 0000000000..1a72cdb8cb
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex
new file mode 100644
index 0000000000..05d18a6b6e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+\usepackage[ngerman]{babel}
+\usepackage[enablepatch={chapter,listoffigures}]{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% Gleitumgebungen sollen definiert werden.
+ counterwithin=chapter,% Zähler von Kapitel abhängig.
+ floattype=4,%
+ name=Merksatz,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={Verzeichnis der Merksätze}%
+]{lor}
+
+% Einträge im Inhaltsverzeichnis:
+\setuptoc{lof}{totoc}% für das Abbildungsverzeichnis
+\setuptoc{lor}{totoc}% für das Verzeichnis der Merksätze
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{Erstes Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Erste Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Erster Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Zweite Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Zweiter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Zweites Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Dritte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Dritter Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Vierte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Vierter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdf
new file mode 100644
index 0000000000..7086b05c23
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex
new file mode 100644
index 0000000000..31a70c35df
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+
+\usepackage[enablepatch={chapter,listoffigures}]{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% definiere floating environment
+ counterwithin=chapter,% counter depends on chapter
+ floattype=4,%
+ name=Remark,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={List of Remarks}%
+]{lor}
+
+% add entries to the table of contents
+\setuptoc{lof}{totoc}% list of figures
+\setuptoc{lor}{totoc}% list of remarks
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{First Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{First Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{First Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Second Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Second Remark}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Second Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Third Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Third Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Fourth Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Fourth Remark}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/common-options-de.tex b/macros/latex/contrib/koma-script/doc/common-options-de.tex
index 37110f487c..f455a270d0 100644
--- a/macros/latex/contrib/koma-script/doc/common-options-de.tex
+++ b/macros/latex/contrib/koma-script/doc/common-options-de.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{common-options-de.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script guide (common paragraphs)]
\section{Frühe oder späte Optionenwahl}
@@ -44,8 +44,6 @@
\KOMAScript-Klassen und "~Pakete }{%
\IfThisCommonLabelBase{scrextend}{den Klassen und \Package{scrextend}
auch einige andere \KOMAScript-Pakete }{%
- \IfThisCommonLabelBase{scrhack}{\Package{scrhack} auch andere
- \KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{scrjura}{\Package{scrjura} auch andere
\KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{scrlayer}{\Package{scrlayer} auch andere
@@ -56,7 +54,7 @@
\IfThisCommonLabelBase{scrlayer-notecolumn}{%
\Package{scrlayer-notecolumn} auch andere \KOMAScript-Pakete
und "-Klassen }{%
- \InternalCommonFileUsageError}}}}}}}}}%%
+ \InternalCommonFileUsageError}}}}}}}}%%
betrifft. %
% Umbruchvarianten:
\IfThisCommonLabelBase{typearea}{Im Sinne der
@@ -109,7 +107,7 @@ Unterschied arbeiten \Macro{documentclass} und \Macro{usepackage} bei
beispielsweise \cite{l2kurz}, beschrieben.
\IfThisCommonLabelBaseNotOneOf{%
- scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
+ scrjura,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
}{%
Bei Verwendung einer \KOMAScript-Klasse\textnote{Achtung!} sollten
\IfThisCommonLabelBase{typearea}{beim dann ohnehin überflüssigen}{im Übrigen
diff --git a/macros/latex/contrib/koma-script/doc/common-options-en.tex b/macros/latex/contrib/koma-script/doc/common-options-en.tex
index 638ea2a5d7..a443086e58 100644
--- a/macros/latex/contrib/koma-script/doc/common-options-en.tex
+++ b/macros/latex/contrib/koma-script/doc/common-options-en.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{common-options-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script guide (common paragraphs)]
\translator{Gernot Hassenpflug\and Krickette Murabayashi\and Karl Hagen}
@@ -41,14 +41,13 @@
\IfThisCommonLabelBase{scrlttr2}{the \Class{scrlttr2} class}{%
\IfThisCommonLabelBase{scrextend}{the classes and
\Package{scrextend}}{%
- \IfThisCommonLabelBase{scrhack}{\Package{scrhack}}{%
\IfThisCommonLabelBase{scrjura}{\Package{scrjura}}{%
\IfThisCommonLabelBase{scrlayer}{\Package{scrlayer}}{%
\IfThisCommonLabelBase{scrlayer-scrpage}{%
\Package{scrlayer-scrpage}}{%
\IfThisCommonLabelBase{scrlayer-notecolumn}{%
\Package{scrlayer-notecolumn}}{%
- \InternalCommonFileUsageError}}}}}}}}}%
+ \InternalCommonFileUsageError}}}}}}}}%
, is also relevant to other \KOMAScript{} packages and classes. %
\IfThisCommonLabelBase{scrlttr2}{So that each chapter may stand on its own,
this section appears in nearly identical form in several chapters, but if
@@ -97,7 +96,7 @@ described in \cite{latex:usrguide} or any introduction to \LaTeX, for example
\cite{lshort}.
\IfThisCommonLabelBaseNotOneOf{%
- scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
+ scrjura,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
}{%
When using a \KOMAScript{} class\textnote{Attention!}, you should not
specify options when loading the \Package{typearea} or \Package{scrbase}
diff --git a/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex b/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
index f1c8c71a48..4532f81c72 100644
--- a/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
+++ b/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{common-pagestylemanipulation-en.tex}
- [$Date: 2023-06-16 10:32:27 +0200 (Fr, 16. Jun 2023) $
+ [$Date: 2023-09-18 09:02:03 +0200 (Mo, 18. Sep 2023) $
KOMA-Script guide (common paragraph:
Setting up defined page styles)]
\translator{Markus Kohm\and Jana Schubert\and Karl Hagen}
@@ -374,7 +374,7 @@
routine (see the explanation of \DescRef{scrlayer-scrpage.option.markcase}
in \autoref{sec:scrlayer-scrpage.pagestyle.content},
\autopageref{expl:scrlayer-scrpage.MakeUppercase}) the author of
- \KOMAScript recommends that you avoid upper-case typesetting for running
+ \KOMAScript{} recommends that you avoid upper-case typesetting for running
heads.%
}{%
Unfortunately,\phantomsection\label{expl:\ThisCommonLabelBase.MakeUppercase}
diff --git a/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex b/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
index b2874ed8be..4079f8969f 100644
--- a/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
+++ b/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{common-textmarkup-en.tex}
- [$Date: 2023-04-20 10:04:17 +0200 (Do, 20. Apr 2023) $
+ [$Date: 2023-09-18 09:02:03 +0200 (Mo, 18. Sep 2023) $
KOMA-Script guide (common paragraphs)]
\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
Karl Hagen}
@@ -259,7 +259,7 @@ refer to the sections for the respective element.%
\IfThisCommonLabelBase{scrlayer-scrpage}{ %
The specified defaults apply only if the corresponding element has not
already been defined before loading \Package{scrlayer-scrpage}. For
- example, the \KOMAScript classes define
+ example, the \KOMAScript{} classes define
\DescRef{maincls.fontelement.pageheadfoot}, and then
\Package{scrlayer-scrpage} uses the setting it finds.%
}{%
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
index c2d973a700..84333fc18b 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
index 87cdef7ed8..dda36fb075 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
index e5ec6edd20..79f503011b 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
index 361de55235..bbfff1ce90 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
index 98f260a1cb..d572580d3f 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
index 7accd7ab6a..a3d5620710 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
index 5db63e674c..984efd6bda 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
index eb066c03d6..fb944d499f 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
index e6c05f6be3..1a4dd58e47 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
index f1a8f16425..18d3185885 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
index d2f3a71754..5726d11f34 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
index 1a12133008..e5e2deeaa8 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
index fa3155fe9e..a0f5f64e13 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
index 5e37dbeda0..004e21c1da 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
index 7db808574a..ec142b561e 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
index b29a8acdb0..bd059573ec 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
index 885558256b..4d849ad3a4 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
index 983861242f..3d98ddd443 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
index 5bf6c3d38f..a5f613a43c 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
index 13354547b2..8f5df7d200 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
index 651a68e857..4fed952d62 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
index 448b02e3a5..ffd9c5bba3 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
index 7d84f64d04..eabfc715a3 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
index 163ac5e9f4..f90302a883 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
index 3761a12d4e..f6117ef0c2 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
index f761f88764..b1fcbea404 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
index 6980d43210..7cfd3c85f6 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
index f1249dd0e9..c302c3560e 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
index 92532de29a..b1ff272503 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
index 41f0d98ca0..ef6f3a517d 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
index 83e7e295f6..d0d1323866 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
index c4b6e7ebea..ed873ba7ab 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
index ca02b64c97..11de5a180d 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
index 87f6d28f47..358536cad2 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
index 6a81c2f4b3..d37b5044bc 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
index 776194b0f0..43943013ef 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
index c00aadfba7..fa6e40e533 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
index 3c7cc05e35..22b558190f 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
index 6c897cebbe..27c3eb2eb2 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
index fc7f007162..93785dfb80 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
index b02e3989c1..944da2d5e4 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
index 490d506142..dc2b6fb6b8 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
index 871fc4ec89..6b30ec63f0 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
index a0f19e31b1..1d8b94cac0 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
index 74b377140b..1ad397ac09 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
index 24fdd5545a..e273bd32a4 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
index e171320149..e396cfff37 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
index 5a178001b9..e67c4f7c85 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
index c60aacda95..57df923b49 100644
--- a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{scrbookreportarticle-de.tex}
- [$Date: 2023-05-10 17:45:46 +0200 (Mi, 10. Mai 2023) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)]
\chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}}
@@ -86,13 +86,13 @@ beim ersten \LaTeX-Lauf nach der Umstellung durchaus zu Fehlermeldungen oder
zusäzlichen Warnungen kommen. Meist lassen sich diese auf einfache Weise
beheben. Oftmals können dazu die erweiterten Möglichkeiten von \KOMAScript{}
genutzt werden, wodurch das problematische Paket dann vollständig
-entfällt. Manchmal kann auch das in \autoref{cha:scrhack} ab Seite
-\autopageref{cha:scrhack} dokumentierte \hyperref[cha:scrhack]{Paket
- \Package{scrhack}}\IndexPackage{scrhack} Abhilfe schaffen. Auch der Ersatz
-von veralteten Paketen durch aktuelle Nachfolger kann zur Beseitigung
-derartiger Probleme beitragen. Teilweise geben sogar die \KOMAScript-Klassen
-durch entsprechende Warnungen Hilfestellung bei der Lösung von
-Inkompatibilitäten.
+entfällt. Manchmal kann auch das in \iffree{\cite{pkg:scrhack:manual}}{%
+ \autoref{cha:scrhack} ab Seite \autopageref{cha:scrhack}} dokumentierte
+Paket \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\IndexPackage{scrhack} Abhilfe schaffen. Auch der Ersatz von veralteten
+Paketen durch aktuelle Nachfolger kann zur Beseitigung derartiger Probleme
+beitragen. Teilweise geben sogar die \KOMAScript-Klassen durch entsprechende
+Warnungen Hilfestellung bei der Lösung von Inkompatibilitäten.
Lassen Sie mich der Erläuterung der Klassen noch eine Bemerkung
vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, welche
@@ -3372,10 +3372,12 @@ Alternative zu \Package{float} sei auch die Verwendung von
\DescRef{tocbasic.cmd.DeclareNewTOC} (siehe
\DescPageRef{tocbasic.cmd.DeclareNewTOC}) erwähnt. Darüber hinaus sei bei
Verwendung von \Package{float} ausdrücklich Paket
-\hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{\hyperref[cha:scrhack]{\Package{scrhack}}} (siehe
-\autoref{cha:scrhack} ab \autopageref{cha:scrhack} in
-\autoref{part:forExperts}) empfohlen.
+\href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}%
+\IndexPackage{floatbytocbasic}%
+\important{%
+ \href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}}
+(siehe \iffree{\cite{pkg:floatbytocbasic}}{\autoref{cha:floabytocbasic} ab
+ \autopageref{cha:floatbytocbasic} in \autoref{part:friends}}) empfohlen.
\leavevmode\LabelOptionValue{captions}{nooneline}\nobreak
Bei\important{\OptionValue{captions}{nooneline}} \KOMAScript{} besteht darüber
diff --git a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
index b595999763..1ef27e440c 100644
--- a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{scrbookreportarticle-en.tex}
- [$Date: 2023-05-10 17:45:46 +0200 (Mi, 10. Mai 2023) $
+ [$Date: 2023-09-06 10:22:04 +0200 (Mi, 06. Sep 2023) $
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)]
\translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm\and
@@ -88,12 +88,11 @@ classes, without regard to completely independent developments like the
may well result in error messages or additional warnings. These can usually be
corrected in a simple way. Often the extended capabilities of \KOMAScript{}
can be used for this purpose, which completely eliminates the problematic
-package. Sometimes the \hyperref[cha:scrhack]{package
- \Package{scrhack}}\IndexPackage{scrhack} documented in \autoref{cha:scrhack}
-starting on \autopageref{cha:scrhack} can also help. Replacing obsolete
-packages with current successors can also help to eliminate such
-problems. Sometimes even the \KOMAScript{} classes provide warnings to help
-solve incompatibilities.
+package. Sometimes the package
+\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}} documented in
+\cite{pkg:scrhack:manual} can also help. Replacing obsolete packages with
+current successors can also help to eliminate such problems. Sometimes even
+the \KOMAScript{} classes provide warnings to help solve incompatibilities.
% :ODOT
Let me say something before describing the classes. When beginning to write a
@@ -2763,8 +2762,6 @@ level is unnumbered, the \PName{else code} is executed. The
the \PName{then code} if the current level is unnumbered and the \PName{else
code} if it is. The \PName{section level} parameter is simply the \LaTeX{}
name of a section like \PValue{part}, \PValue{chapter}, \PValue{section},
-\PValue{subsection}, \PValue{subsubsection}, \PValue{paragraph} oder
-\PValue{subparagraph}.\PValue{part}, \PValue{chapter}, \PValue{section},
\PValue{subsection}, \PValue{subsubsection}, \PValue{paragraph}, or
\PValue{subparagraph}.
@@ -3079,10 +3076,11 @@ alternative to \Package{float}, you can also consult
\DescRef{tocbasic.cmd.DeclareNewTOC} (see
\DescPageRef{tocbasic.cmd.DeclareNewTOC}). Additionally, when using
\Package{float}, the
-\hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{\hyperref[cha:scrhack]{\Package{scrhack}}} package is
-expressly recommended (see \autoref{cha:scrhack} from
-\autopageref{cha:scrhack} in \autoref{part:forExperts}).
+\href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}%
+\IndexPackage{floatbytocbasic}%
+\important{%
+ \href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}}
+package is expressly recommended (see \cite{pkg:floatbytocbasic:manual}).
\leavevmode
\LabelOptionValue{captions}{nooneline}\nobreak
@@ -3401,7 +3399,7 @@ option. But this feature may be lost if you load the
\captionaboveof{table}
[Measure of the rectangle in
figure~\ref{fig:rechteck}]%
- {Measure of the rectangle}
+ {Rectangle measure}
\label{tab:rechteck}
\begin{tabular}{ll}
Width: & 4\,cm\\
@@ -3449,7 +3447,7 @@ option. But this feature may be lost if you load the
\begin{minipage}{.5\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
\centering
\captionaboveof{table}[Example: Measure of the rectangle in
- figure~\ref{fig:\LabelBase.rechteck}]{Rectangle size}
+ figure~\ref{fig:\LabelBase.rechteck}]{Rectangle measure}
\label{tab:\LabelBase.rechteck}
\begin{tabular}{ll}
Width: & 4\,cm\\
@@ -4013,8 +4011,8 @@ corresponding options without \Package{ragged2e}. For safety reasons, a
warning is issued in this case.
When using this command without\textnote{without optional parameter} the
-optional parameter, the result depends on whether the call occurs inside our
-outside of a floating environment. Within a floating environment, the
+optional parameter, the result depends on whether the call occurs inside or
+outside of a floating environment. Inside a floating environment, the
alignment is then set for this floating environment. Outside, on the other
hand, the optional parameter is assumed to be empty.
diff --git a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
index e3807a114c..9ea6e55de9 100644
--- a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
@@ -25,7 +25,7 @@
% ============================================================================
\KOMAProvidesFile{scrbookreportarticle-experts-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-09-06 10:22:04 +0200 (Mi, 06. Sep 2023) $
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for
experts)]
@@ -1597,7 +1597,7 @@ the group used to process the heading. This is also the last opportunity to
intervene before the heading is printed.
Similarly\textnote{\DoHook{\dots/begingroup/\dots}}, the hook
-\DoHook{heading/begingroup/\PName{name}} will be executed at the end of the
+\DoHook{heading/endgroup/\PName{name}} will be executed at the end of the
group used to process the heading. Currently this is the last hook inside
a section command.
@@ -1717,11 +1717,10 @@ offers the hooks described previously.%
\end{Declaration}%
The \KOMAScript{} classes have an unusual feature within the
\DescRef{maincls.cmd.appendix} command. If the \Macro{appendixmore} command
-is defined, \DescRef{maincls.cmd.appendix} will also execute this
-it. Internally, the \KOMAScript{} classes
-\Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} and
-\Class{scrreprt} take advantage of this behaviour to implement the
-\DescRef{maincls.option.appendixprefix} layout option (see
+is defined, \DescRef{maincls.cmd.appendix} will also execute it. Internally,
+the \KOMAScript{} classes \Class{scrbook}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} and \Class{scrreprt} take advantage of this behaviour to
+implement the \DescRef{maincls.option.appendixprefix} layout option (see
\autoref{sec:maincls.structure},
\DescPageRef{maincls.option.appendixprefix}). You\textnote{Attention!} should
take note of this in case you decide to define or redefine the
@@ -1737,7 +1736,7 @@ realising it.
\autoref{sec:maincls.structure},
\DescPageRef{maincls.option.chapterprefix}). For consistency, you also do
not want such a line in the appendix either. Instead, you would like to see
- the word ``Chapter'' in the language of your choice written in front of the
+ the word ``Appendix'' in the language of your choice written in front of the
chapter letter and, simultaneously, in the page headings. Instead of using
the \DescRef{maincls.option.appendixprefix} layout option, you define the
following in the document preamble:
diff --git a/macros/latex/contrib/koma-script/doc/scrextend-en.tex b/macros/latex/contrib/koma-script/doc/scrextend-en.tex
index 5027c949a0..4e0041f4f0 100644
--- a/macros/latex/contrib/koma-script/doc/scrextend-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrextend-en.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{scrextend-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-09-18 09:02:03 +0200 (Mo, 18. Sep 2023) $
KOMA-Script package scrextend]
\translator{Markus Kohm\and Karl Hagen}
@@ -52,7 +52,7 @@ The fact that \hyperref[cha:scrlttr2]{\Package{scrletter}}%
\IndexPackage{scrletter} can be used not only with \KOMAScript{} classes but
also with the standard classes is partly due to \Package{scrextend}. If
\hyperref[cha:scrlttr2]{\Package{scrletter}} detects that it is not being used
-with a \KOMAScript class, it automatically loads \Package{scrextend}. Doing
+with a \KOMAScript{} class, it automatically loads \Package{scrextend}. Doing
so makes all required \KOMAScript{} classes available.
Of course, there is no guarantee that \Package{scrextend} will work with all
diff --git a/macros/latex/contrib/koma-script/doc/scrguide-body.tex b/macros/latex/contrib/koma-script/doc/scrguide-body.tex
index 6349871f23..5ea5fd2186 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide-body.tex
+++ b/macros/latex/contrib/koma-script/doc/scrguide-body.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{scrguide-body.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script (guide body file)]
\csname ListTypeArea\endcsname
@@ -82,7 +82,6 @@
\linclude{scrlfile}
\linclude{scrwfile}
\linclude{tocbasic}
-\linclude{scrhack}
\linclude{scrlayer}
\linclude{scrlayer-scrpage-experts}
\linclude{scrlayer-notecolumn}
diff --git a/macros/latex/contrib/koma-script/doc/scrguide-de.pdf b/macros/latex/contrib/koma-script/doc/scrguide-de.pdf
index 99d9c00607..fb2f496627 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrguide-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrguide-en.pdf b/macros/latex/contrib/koma-script/doc/scrguide-en.pdf
index dd99f78b82..f8ff57fcc5 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrguide-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrguide.bib b/macros/latex/contrib/koma-script/doc/scrguide.bib
index d93e74044a..5ea27cb408 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide.bib
+++ b/macros/latex/contrib/koma-script/doc/scrguide.bib
@@ -1,6 +1,6 @@
% ======================================================================
% scrguide.bib
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -339,6 +339,16 @@ Schlegl},
url = {CTAN://macros/latex/contrib/caption/}
}
+@Misc{ package:contract,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Typeset formalized legal documents such as contracts, statutes, etc},
+ year = 2024,
+ month = feb,
+ edition = {0.91},
+ url = {CTAN://macros/latex/contrib/contract}
+}
+
@Misc{ package:CJK,
language= {english},
author = {Werner Lemberg},
@@ -439,6 +449,26 @@ Schlegl},
url = {CTAN://macros/latex/contrib/float/}
}
+@Misc{ pkg:floatbytocbasic,
+ language = {english},
+ author = {Markus Kohm},
+ title = {{\Package{scrhack}} --- an enhancement to package {\Package{float}} using package {\Package{tocbasic}}},
+ year = 2023,
+ month = aug,
+ edition = {1.0},
+ url = {CTAN://macros/latex/contrib/floatbytocbasic}
+}
+
+@Manual{ pkg:floatbytocbasic:manual,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Improving Package {\Package{float}} Using {\KOMAScript} Package {\Package{tocbasic}}},
+ year = 2023,
+ month = aug,
+ edition = {3.42},
+ url = {CTAN://macros/latex/contrib/floatbytocbasic/floatbytocbasic.pdf}
+}
+
@Misc{ package:floatrow,
language = {english},
author = {Olga Lapko},
@@ -699,6 +729,26 @@ Schlegl},
url = {CTAN://macros/latex/contrib/oberdiek/}
}
+@Misc{ pkg:scrhack,
+ language = {english},
+ author = {Markus Kohm},
+ title = {{\Package{scrhack}} --- compatibility package to emulate the former KOMA-Script package \Package{scrhack}}},
+ year = 2023,
+ month = aug,
+ edition = {3.42},
+ url = {CTAN://macros/latex/contrib/scrhack/}
+}
+
+@Manual{ pkg:scrhack:manual,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Emulating Former {\KOMAScript} Package {\Package{scrhack}}},
+ year = 2023,
+ month = aug,
+ edition = {3.42},
+ url = {CTAN://macros/latex/contrib/scrhack/scrhack.pdf}
+}
+
@Misc{ package:setspace,
language= {english},
author = {Geoffrey Tobin and Robin Fairbairns},
diff --git a/macros/latex/contrib/koma-script/doc/scrguide.cls b/macros/latex/contrib/koma-script/doc/scrguide.cls
index 7c0a63bdc1..017bcea829 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide.cls
+++ b/macros/latex/contrib/koma-script/doc/scrguide.cls
@@ -216,7 +216,6 @@
\RequirePackage{multicol}
\RequirePackage{marginnote}
\RequirePackage{tabularx}
-\RequirePackage{scrhack}%
\RequirePackage{mparhack}%
% \end{macrocode}
%
@@ -1928,7 +1927,7 @@
\setbox\desccaptionb@xfirst\vbox{%
\tabular{p{\labelwidth}}%
\multicolumn{1}{@{}p{\dimexpr\labelwidth+2\tabcolsep}@{}}{%
- \captionaboveof{table}[##1]{##2\unskip\strut}%
+ \captionaboveof{table}[{##1}]{##2\unskip\strut}%
}\tabularnewline[%
\dimexpr \abovecaptionskip-\normalbaselineskip\relax
% \dimexpr \abovecaptionskip-\abovecaptionskipcorrection\relax
diff --git a/macros/latex/contrib/koma-script/doc/scrhack-de.tex b/macros/latex/contrib/koma-script/doc/scrhack-de.tex
deleted file mode 100644
index a426a28a6f..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrhack-de.tex
+++ /dev/null
@@ -1,313 +0,0 @@
-% ======================================================================
-% scrhack-de.tex
-% Copyright (c) Markus Kohm, 2001-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.md.
-% ======================================================================
-%
-% Chapter about scrhack of the KOMA-Script guide
-% Maintained by Markus Kohm
-%
-% ============================================================================
-
-\KOMAProvidesFile{scrhack-de.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
- KOMA-Script guide (chapter: scrhack)]
-
-\chapter{Fremdpakete verbessern mit \Package{scrhack}}
-\labelbase{scrhack}
-
-\BeginIndexGroup
-\BeginIndex{Package}{scrhack}
-Einige Pakete außerhalb von \KOMAScript{} arbeiten nicht sehr gut mit
-\KOMAScript{} zusammen. Für den \KOMAScript-Autor ist es dabei oftmals sehr
-mühsam, die Autoren der jeweiligen Pakete von einer Verbesserung zu
-überzeugen. Das betrifft auch Pakete, deren Entwicklung eingestellt
-wurde. Deshalb wurde das Paket \Package{scrhack} begonnen. Dieses Paket ändert
-Anweisungen und Definitionen anderer Pakete, damit sie besser mit
-\KOMAScript{} zusammenarbeiten. Einige Änderungen sind auch bei
-Verwendung anderer Klassen nützlich.
-
-Es wird empfohlen, das Paket \Package{scrhack} so früh wie möglich zu
-laden. Insbesondere sollte das Laden vor den betroffenen Paketen erfolgen.
-
-\section{Entwicklungsstand}
-\seclabel{draft}
-
-Obwohl das Paket bereits seit längerer Zeit Teil von \KOMAScript{} ist und
-von vielen Anwendern genutzt wird, hat es auch ein Problem: Bei
-der Umdefinierung von Makros fremder Pakete ist es von der genauen Definition
-und Verwendung dieser Makros abhängig. Damit ist es gleichzeitig auch von
-bestimmten Versionen dieser Pakete abhängig. Wird eine unbekannte Version
-eines der entsprechenden Pakete verwendet, kann \Package{scrhack} den
-notwendigen Patch eventuell nicht ausführen. Im Extremfall kann aber umgekehrt
-der Patch einer unbekannten Version auch zu einem Fehler führen.
-
-Da also \Package{scrhack} immer wieder an neue Versionen fremder Pakete
-angepasst werden muss, kann es niemals als fertig angesehen werden. Daher
-existiert von \Package{scrhack} dauerhaft nur eine Beta-Version. Obwohl die
-Benutzung in der Regel einige Vorteile mit sich bringt, kann die Funktion
-nicht dauerhaft garantiert werden.
-
-\LoadCommonFile{options}
-
-\section{Verwendung von \Package{tocbasic}}
-\seclabel{improvement}
-
-In den Anfängen von \KOMAScript{} gab es von Anwenderseite den Wunsch, dass
-Verzeichnisse von Gleitumgebungen, die mit dem Paket
-\Package{float}\IndexPackage{float}\important{\Package{float}} erzeugt werden,
-genauso behandelt werden wie das Abbildungsverzeichnis oder das
-Tabellenverzeichnis, das von den \KOMAScript-Klassen selbst angelegt
-wird. Damals setzte sich der \KOMAScript-Autor mit dem Autor von
-\Package{float} in Verbindung, um diesem eine Schnittstelle für entsprechende
-Erweiterungen zu unterbreiten. In etwas abgewandelter Form wurde diese in
-Gestalt der beiden Anweisungen
-\Macro{float@listhead}\IndexCmd[indexmain]{float@listhead} und
-\Macro{float@addtolists}\IndexCmd[indexmain]{float@addtolists} realisiert.
-
-Später zeigte sich, dass diese beiden Anweisungen nicht genug Flexibilität für
-eine umfangreiche Unterstützung aller \KOMAScript-Möglichkeiten boten. Leider
-hatte der Autor von \Package{float} die Entwicklung aber bereits eingestellt,
-so dass hier keine Änderungen mehr zu erwarten sind.
-
-Andere Paketautoren haben die beiden Anweisungen ebenfalls übernommen. Dabei
-zeigte sich, dass die Implementierung in einigen Paketen, darunter auch
-\Package{float}, dazu führt, dass all diese Pakete nur in einer bestimmten
-Reihenfolge geladen werden können, obwohl sie ansonsten in keinerlei Beziehung
-zueinander stehen.
-
-Um all diese Nachteile und Probleme zu beseitigen, unterstützt \KOMAScript{}
-diese alte Schnittstelle offiziell nicht mehr. Stattdessen wird bei Verwendung
-dieser Schnittstelle von \KOMAScript{} gewarnt. Gleichzeitig wurde in
-\KOMAScript{} das Paket
-\Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}} (siehe
-\autoref{cha:tocbasic}) als zentrale Schnittstelle für die Verwaltung von
-Verzeichnissen entworfen und realisiert. Die Verwendung dieses Pakets bietet
-\iffalse weit \fi % Umbruchkorrektur
-mehr Vorteile und Möglichkeiten als die
-\iffalse beiden \fi % Umbruchkorrektur
-alten Anweisungen.
-
-Obwohl der Aufwand zur Verwendung dieses Pakets gering ist, haben bisher
-die Autoren der Pakete, die auf die veralteten Anweisungen gesetzt haben,
-keine Anpassung vorgenommen. Daher bietet \Package{scrhack}
-entsprechende Anpassungen für die Pakete
-\Package{float}\IndexPackage{float}\important{\Package{float},
- \Package{floatrow}, \Package{listings}},
-\Package{floatrow}\IndexPackage{floatrow} und
-\Package{listings}\IndexPackage{listings}. Allein durch das Laden von
-\Package{scrhack} reagieren diese Pakete dann nicht nur auf die Einstellungen
-von Option
-\DescRef{maincls.option.listof}\IndexOption{listof~=\PName{Einstellung}},
-sondern beachten auch Sprachumschaltungen durch
-\Package{babel}\IndexPackage{babel}. Näheres zu den Möglichkeiten, die
-durch die Umstellung der Pakete auf \Package{tocbasic} zur Verfügung
-stehen, ist \autoref{sec:tocbasic.toc} zu entnehmen.
-
-Sollte diese Änderung für eines der Pakete nicht erwünscht sein oder zu
-Problemen führen, so kann sie selektiv mit den Einstellungen
-\OptionValue{float}{false}\IndexOption[indexmain]{float~=\textKValue{false}},
-\OptionValue{floatrow}{false}%
-\IndexOption[indexmain]{floatrow~=\textKValue{false}} und
-\OptionValue{listings}{false}%
-\IndexOption[indexmain]{listings~=\textKValue{false}} abgeschaltet
-werden. Wichtig\textnote{Achtung!} dabei ist, dass eine Änderung der Optionen
-nach dem Laden des zugehörigen Pakets keinen Einfluss mehr hat!
-
-
-\section{Falsche Erwartungen an \Macro{@ptsize}}
-\seclabel{ptsize}
-
-Einige Pakete gehen \iffalse grundsätzlich \fi % Umbruchkorrektur
-davon aus, dass das klasseninterne Makro \Macro{@ptsize}\IndexCmd{@ptsize}
-sowohl definiert ist als auch zu einer ganzen Zahl expandiert. Aus
-Kompatibilitätsgründen definiert \KOMAScript{} \Macro{@ptsize} auch bei
-anderen Grundschriftgrößen als 10\Unit{pt}, 11\Unit{pt} oder 12\Unit{pt}. Da
-\KOMAScript{} außerdem auch gebrochene Schriftgrößen erlaubt, kann
-\iffalse dabei \fi % Umbruchkorrektur
-\Macro{@ptsize} natürlich auch zu einem Dezimalbruch expandieren.
-
-Eines\ChangedAt{v3.17}{\Package{scrhack}} der Pakete, die damit nicht zurecht
-kommen, ist das Paket \Package{setspace}\IndexPackage[indexmain]{setspace}%
-\important{\Package{setspace}}. Darüber hinaus sind die von diesem Paket
-eingestellten Werte immer von der Grundschriftgröße abhängig, auch wenn die
-Einstellung im Kontext einer anderen Schriftgröße erfolgt. Paket
-\Package{scrhack} löst beide Probleme, indem es die Einstellungen von
-\Macro{onehalfspacing} und \Macro{doublespacing} immer relativ zur aktuellen,
-tatsächlichen Schriftgröße vornimmt.
-
-Sollte diese Änderung nicht erwünscht sein oder zu Problemen führen, so kann
-sie selektiv mit der Einstellung
-\OptionValue{setspace}{false}\IndexOption[indexmain]{setspace~=\textKValue{false}}
-abgeschaltet werden. Wichtig\textnote{Achtung!} dabei ist, dass eine Änderung
-der Option nach dem Laden von \Package{setspace} keinen Einfluss mehr hat!
-Ebenso muss \Package{scrhack} vor \Package{setspace} geladen werden, falls
-\Package{setspace} mit einer der Optionen \Option{onehalfspacing} oder
-\Option{doublespacing} geladen wird und dieser Hack sich bereits darauf
-auswirken soll.
-
-
-\section{Sonderfall \Package{hyperref}}
-\seclabel{hyperref}
-
-Ältere Versionen von
-\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}} vor
-6.79h haben bei den Sternformen der Gliederungsbefehle hinter statt vor oder
-auf die Gliederungsüberschriften verlinkt. Inzwischen ist dieses Problem auf
-Vorschlag des \KOMAScript-Autors beseitigt. Da die entsprechende Änderung aber
-über ein Jahr auf sich warten ließ, wurde in \Package{scrhack} ein
-entsprechender Patch aufgenommen. Zwar kann dieser ebenfalls durch
-\OptionValue{hyperref}{false} deaktiviert werden, empfohlen wird jedoch
-stattdessen die aktuelle Version von \Package{hyperref} zu verwenden. In
-diesem Fall wird die Änderung durch \Package{scrhack} automatisch verhindert.
-
-
-\section{Inkonsistente Behandlung von \Length{textwidth} und \Length{textheight}}
-\seclabel{lscape}
-
-Das\ChangedAt{v3.18}{\Package{scrhack}} Paket
-\Package{lscape}\IndexPackage[indexmain]{lscape}%
-\important{\Package{lscape}} definiert eine Umgebung
-\Environment{landscape}\IndexEnv{landscape}, um den Inhalt einer Seite aber
-nicht deren Kopf und Fuß quer zu setzen. Innerhalb dieser Umgebung wird
-\Length{textheight}\IndexLength{textheight} auf den Wert von
-\Length{textwidth} gesetzt. Umgekehrt wird jedoch \Length{textwidth} nicht auf
-den vorherigen Wert von \Length{textheight} gesetzt. Das ist
-inkonsistent. Meines Wissens wird \Length{textwidth} nicht entsprechend
-geändert, weil andere Pakete oder Anwenderanweisungen gestört werden
-könnten. Jedoch hat auch die Änderung von \Length{textheight} dieses Potential
-und in der Tat beschädigt sie die Funktion beispielsweise der Pakete
-\Package{showframe}\IndexPackage{showframe} und
-\Package{scrlayer}\IndexPackage{scrlayer}. Daher wäre es am besten, wenn
-\Length{textheight} ebenfalls unverändert bliebe. \Package{scrhack} verwendet
-Paket \Package{xpatch} (siehe \cite{package:xpatch}), um die Startanweisung
-\Macro{landscape} der gleichnamigen Umgebung entsprechend zu ändern.
-
-Falls diese Änderung nicht gewünscht wird oder Probleme verursacht, kann sie
-mit Option
-\OptionValue{lscape}{false}\IndexOption[indexmain]{lscape~=\textKValue{false}}
-deaktiviert werden. Es ist zu beachten\textnote{Achtung!}, dass eine
-nachträgliche Zuweisung an Option \Option{lscape} mit
-\DescRef{\LabelBase.cmd.KOMAoption}\IndexCmd{KOMAoption} oder
-\DescRef{\LabelBase.cmd.KOMAoptions}\IndexCmd{KOMAoptions} nur eine Wirkung
-hat, wenn sie während des Ladens von \Package{lscape} nicht \PValue{false}
-war.
-
-Im übrigens wird \Package{lscape} auch von dem Paket
-\Package{pdflscape}\IndexPackage[indexmain]{pdflscape}%
-\important{\Package{pdflscape}} verwendet, so dass \Package{scrhack} sich auch
-auf die Funktion dieses Pakets auswirkt.%
-
-
-\section{Sonderfall \Package{nomencl}}
-\seclabel{nomencl}
-
-Eine\ChangedAt{v3.23}{\Package{scrhack}} Besonderheit stellt der Hack für das
-Paket
-\Package{nomencl}\IndexPackage[indexmain]{nomencl}\important{\Package{nomencl}}
-dar. Dieser rüstet einerseits nach, dass der optionale
-Inhaltsverzeichniseintrag für die Nomenklatur Option
-\OptionValueRef{maincls}{toc}{indentunnumbered} beachtet. Quasi nebenbei
-werden über das Paket \Package{tocbasic} auch gleich die Endungen \File{nlo}
-und \File{nls} für den Besitzer \PValue{nomencl} reserviert (siehe
-\DescRef{tocbasic.cmd.addtotoclist}, \autoref{sec:tocbasic.basics},
-\DescPageRef{tocbasic.cmd.addtotoclist}).
-
-Außerdem wird die Umgebung
-\Environment{thenomenclature}\IndexEnv{thenomenclature} so geändert,
-dass \DescRef{tocbasic.cmd.tocbasic@listhead}\IndexCmd{tocbasic@listhead} für
-die Überschrift verwendet wird (siehe \autoref{sec:tocbasic.internals},
-\DescPageRef{tocbasic.cmd.tocbasic@listhead}). Dadurch können mit dem Hack
-diverse Attribute für die Endung \File{nls} über
-\DescRef{tocbasic.cmd.setuptoc}\IndexCmd{setuptoc}%
-\important{\DescRef{tocbasic.cmd.setuptoc}} gesetzt werden. So ist es
-beispielsweise möglich, mit
-\DescRef{tocbasic.cmd.setuptoc}\PParameter{nls}\PParameter{numbered} die
-Nomenklatur nicht nur ins Inhaltsverzeichnis einzutragen, sondern auch gleich
-zu nummerieren. Näheres zu \DescRef{tocbasic.cmd.setuptoc} und den damit
-möglichen Einstellungen ist in \autoref{sec:tocbasic.toc}, ab
-\DescPageRef{tocbasic.cmd.setuptoc} zu finden. Als kleiner aber wichtiger
-Nebeneffekt erhält die Nomenklatur mit diesem Patch außerdem einen passenden
-Kolumnentitel, falls lebende Kolumnentitel beispielsweise durch Verwendung von
-Seitenstil \DescRef{maincls.pagestyle.headings} aktiviert wurden.
-
-Dieser eher simple Patch ist damit ein Beispiel dafür, wie auch Pakete, die
-keine Gleitumgebungen definieren, Nutzen aus der Verwendung von
-\Package{tocbasic} ziehen könnten. Falls diese Änderung jedoch nicht
-gewünscht wird oder Probleme verursacht, kann sie mit Option
-\OptionValue{nomencl}{false}\IndexOption[indexmain]{nomencl~=\textKValue{false}}
-deaktiviert werden. Entscheidend\textnote{Achtung!} ist dabei die Einstellung
-der Option zum Zeitpunkt, zu dem \Package{nomencl} geladen wird! Spätere
-Änderungen der Option mit \DescRef{\LabelBase.cmd.KOMAoption} oder
-\DescRef{\LabelBase.cmd.KOMAoptions} haben also keinen Einfluss und führen zu
-einer entsprechenden Warnung.%
-
-
-\section{Sonderfall Überschriften}
-\seclabel{sections}
-
-Diverse\ChangedAt{v3.27}{\Package{scrhack}} Pakete gehen davon aus, dass
-Überschriften auf eine ganz bestimmte Weise definiert sind, die weitgehend den
-Definitionen der Standardklassen entsprechen. Dies ist jedoch nicht bei allen
-Klassen der Fall. Beispielsweise sind bei den \KOMAScript-Klassen die
-Überschriften komplett anders definiert, um viele zusätzliche Möglichkeiten zu
-bieten. Das kann einige wenige Pakete aus dem Tritt bringen. Ab Version~3.27
-bietet \Package{scrhack} daher die Möglichkeit, zwangsweise die
-Überschriftenbefehle \DescRef{maincls.cmd.part}\IndexCmd{part},
-\DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
-\DescRef{maincls.cmd.section}\IndexCmd{section},
-\DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
-\DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection},
-\DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph} und
-\DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph} kompatibel zu den
-Standardklassen zu definieren. Dabei werden im Fall, dass
-\DescRef{maincls.cmd.chapter} definiert ist, die Definitionen von \Class{book}
-zugrunde gelegt. Ist \DescRef{maincls.cmd.chapter} nicht definiert, so werden
-die Definitionen von \Class{article} herangezogen.
-
-Bei Verwendung einer \KOMAScript-Klasse werden als Seiteneffekt zusätzlich
-diverse Möglichkeiten dieser Klassen deaktviert. Beispielsweise stehen dann
-die Befehle zur Neudefinition oder Änderung der Gliederungsbefehle aus
-\autoref{sec:maincls-experts.sections} oder Option
-\DescRef{maincls.option.headings} nicht mehr zur Verfügung und Befehle wie
-\DescRef{maincls.cmd.partformat} erhalten eine neue Voreinstellung.
-
-Da dieser Hack häufig mehr Schaden als Nutzen bringt, erzeugt er eine größere
-Anzahl an Warnungen. Außerdem ist er nicht bereits durch das Laden von Paket
-\Package{scrhack} aktiv, sondern muss beim Laden des Pakets mit Option
-\Option{standardsections}\IndexOption[indexmain]{standardsections} explizit
-aktiviert werden. Eine nachträgliche Aktivierung oder Deaktivierung ist nicht
-möglich.
-
-Da es für die eingangs erwähnten Probleme oft weniger invasive Lösungen gibt,
-wird die Verwendung des Hacks ausdrücklich nicht empfohlen, sondern lediglich
-als letzte Rettungschance für Notfälle angeboten.%
-\EndIndexGroup
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "scrguide-en.tex"
-%%% coding: utf-8
-%%% ispell-local-dictionary: "en_GB"
-%%% eval: (flyspell-mode 1)
-%%% End:
-
-% LocalWords: Eindateiensystem Schreibdatei Zieldatei Zielendung Quellendung
-% LocalWords: Verzeichnisüberschrift Dateiendung Zielendungen Verzeichnisdatei
-% LocalWords: Benutzeranweisungen Dokumentpräambel Kapitelebene Sternformen
-% LocalWords: Sprachumschaltungen Gliederungsüberschriften Gliederungsbefehle
-% LocalWords: Paketautoren
diff --git a/macros/latex/contrib/koma-script/doc/scrhack-en.tex b/macros/latex/contrib/koma-script/doc/scrhack-en.tex
deleted file mode 100644
index 74b1999c00..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrhack-en.tex
+++ /dev/null
@@ -1,285 +0,0 @@
-% ======================================================================
-% scrhack-en.tex
-% Copyright (c) Markus Kohm, 2001-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.md.
-% ======================================================================
-%
-% Chapter about scrhack of the KOMA-Script guide
-% Maintained by Markus Kohm
-%
-% ============================================================================
-
-\KOMAProvidesFile{scrhack-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
- KOMA-Script guide (chapter: scrhack)]
-\translator{Markus Kohm\and Karl Hagen}
-
-\chapter{Improving Third-Party Packages with \Package{scrhack}}
-\labelbase{scrhack}
-
-\BeginIndexGroup
-\BeginIndex{Package}{scrhack}
-Some packages from other authors do not work well with \KOMAScript{}. It is
-often very tedious for the author of \KOMAScript{} to convince the authors of
-these packages to make specific improvements. This also applies to packages
-whose development has been discontinued. That's why the \Package{scrhack} was
-created. This package alters the commands and definitions of other to work
-better with \KOMAScript{}. Some changes are also useful when using other
-classes.
-
-It is recommended to load the \Package{scrhack} package as early as
-possible. In particular, loading should be done before the affected packages.
-
-\section{Development Status}
-\label{scr:scrhack.draft}
-
-Although this package has been part of \KOMAScript{} for long time and is used
-by many users, there's one problem with it. Redefining macros from third-party
-packages depends on knowing the exact definition and use of those macros. This
-also means that it depends on specific versions of those packages. If you use
-a unknown version of such a package, \Package{scrhack} may not be able to
-execute the required patch. In extreme cases, patching an unknown version can
-lead to an error.
-
-Because \Package{scrhack} must be continuously modified to accommodate new
-releases of third-party packages, it can never be considered complete.
-Therefore \Package{scrhack} will remain permanently in a beta version.
-Although its use will generally be a benefit, its correct functioning cannot
-be permanently guaranteed.
-
-\LoadCommonFile{options}% \section{Early or late Selection of Options}
-
-\section{Using \Package{tocbasic}}
-\seclabel{improvement}
-
-In the early days of \KOMAScript{}, users wanted to handle lists of floating
-environments created with the
-\Package{float}\IndexPackage{float}\important{\Package{float}} package in the
-same way as the list of figures and list of tables created by \KOMAScript{}
-itself. At that time the author of \KOMAScript{} contacted the author of
-\Package{float} to propose an interface to support such an extension. A
-somewhat modified form of that interface was implemented with the
-\Macro{float@listhead}\IndexCmd[indexmain]{float@listhead} and
-\Macro{float@addtolists}\IndexCmd[indexmain]{float@addtolists} commands.
-
-Later it became apparent that these two commands were not flexible enough to
-fully support all of \KOMAScript's capabilities. Unfortunately, the author of
-\Package{float} had already ceased development by that point, so further
-changes to this package cannot be expected.
-
-Other package authors have also adopted these two commands, and it became
-apparent that the implementation in some packages, including \Package{float},
-means that all these packages can only be loaded in a specific order, even
-though they are otherwise unrelated to each other.
-
-To overcome all these disadvantages and problems, \KOMAScript{} no longer
-officially supports this old interface. Instead, \KOMAScript{} warns if the
-old interface is used. At the same time, the
-\Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}}
-package (see \autoref{cha:tocbasic}) has been designed and implemented as a
-central interface for managing of table of contents and similar content lists.
-This package provides many more advantages and features than the two old
-commands.
-
-Although the effort to use this package is very small, so far the authors of
-most of the packages that use the old interface have not made any adjustments.
-Therefore \Package{scrhack} contains appropriate modifications of the
-\Package{float}\IndexPackage{float}\important{\Package{float},
-\Package{floatrow}, \Package{listings}},
-\Package{floatrow}\IndexPackage{floatrow}, and
-\Package{listings}\IndexPackage{listings} packages. Merely loading
-\Package{scrhack} is sufficient to make these packages recognize not only the
-setting of the \KOMAScript{} option
-\DescRef{maincls.option.listof}\IndexOption{listof~=\PName{setting}}, but also
-to react to the language switching features of the
-\Package{babel}\IndexPackage{babel} package. You can find more information
-about the features available by switching packages to \Package{tocbasic} in
-\autoref{sec:tocbasic.toc}.
-
-If you do not want this modification for any of the packages, or if it causes
-problems, you can deactivate it selectively with the
-\OptionValue{float}{false}\IndexOption[indexmain]{float~=\textKValue{false}},
-\OptionValue{floatrow}{false}\IndexOption[indexmain]{floatrow~=\textKValue{false}},
-or
-\OptionValue{listings}{false}\IndexOption[indexmain]{listings~=\textKValue{false}}
-option. Note\textnote{Attention!} that changing these options after loading
-the associated package has no effect!
-
-
-\section{Incorrect Assumptions about \Macro{@ptsize}}
-\seclabel{ptsize}
-
-Some packages assume that the class-internal macro
-\Macro{@ptsize}\IndexCmd{@ptsize} both is defined and expands to an integer.
-For compatibility, \KOMAScript{} defines \Macro{@ptsize} even if the basic
-font size is something other than 10\Unit{pt}, 11\Unit{pt}, or 12\Unit{pt}.
-\KOMAScript{} also allows non-integer font sizes. So \Macro{@ptsize} can, of
-course, also expand to a non-integer number.
-
-One\ChangedAt{v3.17}{\Package{scrhack}} of the packages that cannot cope with
-a non-integer \Macro{@ptsize} is
-\Package{setspace}\IndexPackage[indexmain]{setspace}. Additionally, the values
-set by this package are always dependent on the basic font size, even if the
-setting is made in the context of another font size. The \Package{scrhack}
-package solves both problems by redefining \Macro{onehalfspacing} and
-\Macro{doublespacing} to set the spacing relative to the actual font size.
-
-If you do not want this modification for the package, or if it causes
-problems, you can deactivate it selectively with the
-\OptionValue{setspace}{false}\IndexOption[indexmain]{setspace~=\textKValue{false}}
-option. Note\textnote{Attention!} that changing this option after loading
-\Package{setspace} has no effect! Likewise, if you use \Package{setspace} with
-either the \Option{onehalfspacing} or \Option{doublespacing} option, you must
-load \Package{scrhack} first.
-
-
-\section{Older Versions of \Package{hyperref}}
-\seclabel{hyperref}
-
-Versions of \Package{hyperref} before 6.79h set the link
-anchors after the heading of the starred versions of commands like
-\DescRef{maincls.cmd.part*}, \DescRef{maincls.cmd.chapter*}, etc. instead of
-before them. Since then, this problem has been resolved at the suggestion of
-\KOMAScript{}'s author. But because the change took more than a year, a patch
-was added to \Package{scrhack}. Although this can also be deactivated with
-\OptionValue{hyperref}{false}, you should instead use the current
-\Package{hyperref} release. In this case \Package{scrhack} automatically
-deactivates this unnecessary patch.%
-
-
-\section{Inconsistent Handling of \Length{textwidth} and \Length{textheight}}
-\seclabel{lscape}
-
-The\ChangedAt{v3.18}{\Package{scrhack}}
-\Package{lscape}\IndexPackage[indexmain]{lscape} package defines a
-\Environment{landscape}\IndexEnv{landscape} environment to set the page
-contents, but not the header or footer in landscape mode. Inside this
-environment, \Length{textheight}\IndexLength{textheight} is set to the value
-of \Length{textwidth}, but \Length{textwidth} is not set to the former value
-of \Length{textheight}. This is inconsistent. As far as I know,
-\Length{textwidth} is left unchanged because setting it to \Length{textheight}
-could interfere with other packages or user commands. But changing
-\Length{textheight} also has this potential, and indeed it breaks, for
-example, \Package{showframe}\IndexPackage{showframe} and
-\Package{scrlayer}\IndexPackage{scrlayer}. Thus it would be best if
-\Length{textheight} too remained unchanged. \Package{scrhack} uses the
-\Package{xpatch} package (see \cite{package:xpatch}) to modify the
-\Macro{landscape} environment's start macro appropriately.
-
-If you do not want this modification, or if it causes problems, you can
-deactivate it with the
-\OptionValue{lscape}{false}\IndexOption[indexmain]{lscape~=\textKValue{false}}
-option. Note\textnote{Attention!} that changing \Option{lscape} subsequently
-with \DescRef{\LabelBase.cmd.KOMAoption}\IndexCmd{KOMAoption} or
-\DescRef{\LabelBase.cmd.KOMAoptions}\IndexCmd{KOMAoptions} has an effect only
-if it was not \PValue{false} while loading \Package{lscape}.
-
-Incidentally, the \Package{pdflscape}\IndexPackage[indexmain]{pdflscape}
-package also uses \Package{lscape}, so \Package{scrhack} affects the
-functioning of this package too.%
-
-
-\section{Special Case for \Package{nomencl}}
-\label{sec:nomencl}
-
-The\ChangedAt{v3.23}{\Package{scrhack}} hack for the
-\Package{nomencl}\IndexPackage[indexmain]{nomencl} represents a somewhat
-special case. First, it ensures that the optional table of contents entry for
-the nomenclature observes the \OptionValueRef{maincls}{toc}{indentunnumbered}
-option. Somewhat incidentally, it also reserves the file extensions \File{nlo}
-and \File{nls} for the owner \PValue{nomencl} (see
-\DescRef{tocbasic.cmd.addtotoclist}, \autoref{sec:tocbasic.basics},
-\DescPageRef{tocbasic.cmd.addtotoclist}).
-
-It also changes the \Environment{thenomenclature}\IndexEnv{thenomenclature}
-environment to use
-\DescRef{tocbasic.cmd.tocbasic@listhead}\IndexCmd{tocbasic@listhead} for the
-heading (see \autoref{sec:tocbasic.internals},
-\DescPageRef{tocbasic.cmd.tocbasic@listhead}). In this way, the hack lets you
-set various attribute for the \File{nls} extension using
-\DescRef{tocbasic.cmd.setuptoc}\IndexCmd{setuptoc}%
-\important{\DescRef{tocbasic.cmd.setuptoc}}. For example, not only can you
-enter the nomenclature in the table of contents with
-\DescRef{tocbasic.cmd.setuptoc}\PParameter{nls}\PParameter{numbered}, but you
-can also number it immediately. You can find more about
-\DescRef{tocbasic.cmd.setuptoc} and its available settings in
-\autoref{sec:tocbasic.toc}, starting on \DescPageRef{tocbasic.cmd.setuptoc}.
-As a small but important side effect, this patch also gives the nomenclature
-also matching running head, if automatic running heads are activated, for
-example by using the \DescRef{maincls.pagestyle.headings} page style.
-
-This rather simple patch is an example of how packages that do not define
-floating environments can still benefit from \Package{tocbasic}. However, you
-do not want this change, or if it causes problems, you can deactivate it with
-the \OptionValue{nomencl}{false}%
-\IndexOption[indexmain]{nomencl~=\textKValue{false}} option.
-The\textnote{Achtung!} setting of the option when \Package{nomencl} is loaded
-is crucial! Later changes to the option with
-\DescRef{\LabelBase.cmd.KOMAoption} or \DescRef{\LabelBase.cmd.KOMAoptions}
-have no influence and will lead to a corresponding warning.%
-
-
-\section{Special Case for Section Headings}
-\seclabel{sections}
-
-Various\ChangedAt{v3.27}{\Package{scrhack}} packages assume that the
-sectioning commands are defined in a specific way, corresponding to the
-definitions in the standard classes. But for some classes this is not the
-case. For example, the \KOMAScript{} classes use a completely different
-implementation to provide many additional features. But this can cause
-problems for packages that depend on the definition of the standard classes.
-As of version~3.27, \Package{scrhack} offers the option to force the
-sectioning commands \DescRef{maincls.cmd.part}\IndexCmd{part},
-\DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
-\DescRef{maincls.cmd.section}\IndexCmd{section},
-\DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
-\DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection},
-\DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph}, and
-\DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph} to be compatible
-with those in the standard classes. When \DescRef{maincls.cmd.chapter} is
-defined, the definitions are based on those in \Class{book}. When
-\DescRef{maincls.cmd.chapter} is undefined, the definitions of
-\Class{article} are used.
-
-If you are using a \KOMAScript{} class, several features of these classes are
-also deactivated as side effect. For example, the commands to define or
-modify sectioning commands described in
-\autoref{sec:maincls-experts.sections} or option
-\DescRef{maincls.option.headings} are no longer available, and commands like
-\DescRef{maincls.cmd.partformat} have different defaults.
-
-Because this hack has the potential to do more harm than good, it issues
-several warnings. Also it is not activated simply by loading the
-\Package{scrhack} package. If you want to use it, you must explicitly activate
-it with the \Option{standardsections}\IndexOption[indexmain]{standardsections}
-option when you load the package. Late activation or deactivation is not
-supported.
-
-Since there are often less invasive solutions to fix the problem of package
-incompatibilities, using this hack is not recommended. It is provided only as
-a last resort for emergencies.%
-\EndIndexGroup
-
-\endinput
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "scrguide-en.tex"
-%%% coding: utf-8
-%%% ispell-local-dictionary: "en_GB"
-%%% eval: (flyspell-mode 1)
-%%% End:
diff --git a/macros/latex/contrib/koma-script/doc/scrhack.html b/macros/latex/contrib/koma-script/doc/scrhack.html
deleted file mode 100644
index 7c0bdd13d4..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrhack.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <meta name="keywords" content="KOMA-Script, scrhack
- <meta name="DC.Title" content="Improving Third-Party Packages with scrhack" />
- <meta name="DC.Creator" content="l3build" />
- <meta name="DC.Subject" content="KOMA-Script Documentation" />
- <meta name="DC.Description" content="Where to find the KOMA-Script
- documentation of scrhack" />
- <meta name="DC.Publisher" content="Markus kohm" />
- <meta name="DC.Date" content="2022-06-03" />
- <meta name="DC.Type" content="Text" />
- <meta name="DC.Format" content="text/html" />
- <meta name="DC.Identifier" content="scrhack.html" />
- <meta name="DC.Language" content="en,de" />
- <meta name="DC.Relation" content="Link to documentation" />
- <meta name="DC.Coverage" content="Version since 3.00" />
- <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
- <title>Improving Third-Party Packages with scrhack</title>
- <style type="text/css">
- <!--
- body {}
- #en { position:absolute; left:10px; width:45%; }
- #de { position:absolute; right:10px; width:45%; }
- #fn { position:absolute; bottom:0px; width:50%;
- border-top-width:1px; border-top-style:solid;
- font-size:x-small; }
- h1.right { text-align:right; }
- -->
- </style>
- </head>
- <body>
- <h1>Improving Third-Party Packages with <tt>scrhack</tt></h1>
- <h1 class="right">Fremdpakete verbessern mit <tt>scrhack</tt></h1>
- <div id="en">
- I think you are searching for the chapter
- <a href="scrguide-en.pdf#chapter.16">“Improving Third-Party Packages with <tt>scrhack</tt>”</a> in the
- KOMA-Script documentation.
- </div>
- <div id="de">
- Ich nehme an, Sie suchen nach dem Kapitel
- <a href="scrguide-de.pdf#chapter.16">„Fremdpakete verbessern mit <tt>scrhack</tt>”</a> in der
- KOMA-Script-Anleitung.
- </div>
- <div id="fn">
- Markus Kohm, 2022-06-03
- <p><a
- href="http://validator.w3.org/check?uri=referer"><img
- src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
- height="31" width="88" /></a></p>
- </div>
- </body>
-</html>
-
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-de.tex b/macros/latex/contrib/koma-script/doc/scrjura-de.tex
index aa8dc88922..f2da6d3998 100644
--- a/macros/latex/contrib/koma-script/doc/scrjura-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrjura-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrjura-de.tex
-% Copyright (c) Markus Kohm, 2011-2023
+% Copyright (c) Markus Kohm, 2011-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,1247 +24,51 @@
% ======================================================================
\KOMAProvidesFile{scrjura-de.tex}%
- [$Date: 2023-04-16 13:50:16 +0200 (So, 16. Apr 2023) $
+ [$Date: 2024-10-15 10:33:25 +0200 (Di, 15. Okt 2024) $
KOMA-Script guide (chapter: scrjura)]
\chapter{Unterstützung für die Anwaltspraxis durch \Package{scrjura}}
\labelbase{scrjura}
\BeginIndexGroup
\BeginIndex{Package}{scrjura}
-
-Will man einen Vertrag\Index{Vertraege=Verträge}, die Satzung einer
-Gesellschaft oder eines Vereins, ein Gesetz oder gleich einen
-Gesetzeskommentar schreiben, so übernimmt das Paket \Package{scrjura} den
-typografischen Teil der Unterstützung für diese Tätigkeit. Obwohl
-\Package{scrjura} als allgemeine Hilfe für anwaltliche Schriftstücke angedacht
-ist, hat sich gezeigt, dass der Vertrag dabei ein ganz zentrales Element
-ist. Besonderes Augenmerk gilt hier dem
-Paragraphen\Index{Paragraphen>juristische} mit Nummer, Titel, nummerierten
-Absätzen -- falls es mehrere davon in einem Paragraphen gibt --, bedarfsweise
-nummerierten Sätzen, Einträgen in das Inhaltsverzeichnis und Querverweisen in
-den deutschen Gepflogenheiten entsprechenden Formen.
-
-Das Paket ist in Zusammenarbeit mit Rechtsanwalt Dr.\,Alexander Willand,
-Karlsruhe, entstanden. Viele der Möglichkeiten gehen außerdem auf konstruktive
-Nachfragen von Prof.\,Heiner Richter von der Hochschule Stalsund zurück.
-
-\iffalse % Umbruchkorrektur
-Es ist zu beachten, dass das Paket mit
-\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}
-zusammenarbeitet. %
-\else%
-Das Paket arbeitet auch mit
-\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}
-zusammen. %
-\fi%
-Es ist dabei jedoch wichtig, dass \Package{hyperref} wie üblich nach
-\Package{scrjura} geladen wird!
-
-\LoadCommonFile{options}% \section{Frühe oder späte Optionenwahl}
-
-\LoadCommonFile{textmarkup}% \section{Textauszeichnungen}
-
-\section{Verzeichnisse}
-\seclabel{toc}
-
-Die Überschriften juristischer Paragraphen können auf Wunsch automatisch
-ins Inhaltsverzeichnis eingetragen
-werden. Dazu\ChangedAt{v3.27}{\Package{scrjura}} definiert das Paket mit Hilfe
-von \DescRef{tocbasic.cmd.DeclareTOCStyleEntry} (siehe
-\autoref{sec:tocbasic.tocstyle} ab
-\DescPageRef{tocbasic.cmd.DeclareTOCStyleEntry})\IndexCmd{DeclareTOCStyleEntry}
-die Verzeichnisebene \PValue{cpar}.
-
-\begin{Declaration}
- \OptionVName{juratotoc}{Ein-Aus-Wert}
- \OptionVName{juratotoc}{Ebenennummer}
-\end{Declaration}
-Im Inhaltsverzeichnis angezeigt werden
-Paragraphen\Index{Paragraphen>juristische} nur, wenn ihre \PName{Ebenennummer}
-kleiner oder gleich dem Zähler \DescRef{maincls.counter.tocdepth}%
-\important{\DescRef{maincls.counter.tocdepth}}\IndexCounter{tocdepth} ist
-(siehe \autoref{sec:maincls.toc},
-\DescPageRef{maincls.counter.tocdepth}). Voreingestellt\textnote{Voreinstellung}
-ist für \PName{Ebenennummer} der Wert \Length{maxdimen}, der auch verwendet
-wird, wenn die Option über einen
-\PName{Ein-Aus-Wert}\important{\OptionValue{juratotoc}{false}} (siehe
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch})
-ausgeschaltet wird. Da der Zähler \DescRef{maincls.counter.tocdepth}
-üblicherweise einen kleinen, einstelligen Wert besitzt, werden die
-Paragraphen-Einträge im Inhaltsverzeichnis daher normalerweise nicht
-angezeigt.
-
-Wird die Option hingegen über einen
-\PName{Ein-Aus-Wert}\important{\OptionValue{juratotoc}{true}} eingeschaltet,
-so wird als \PName{Ebenennummer} 2 voreingestellt. Damit werden sie in
-Inhaltsverzeichnissen bei allen \KOMAScript-Klassen auf derselben Ebene wie
-\DescRef{maincls.cmd.subsection}\IndexCmd{subsection}%
-\important{\DescRef{maincls.cmd.subsection}} eingeordnet. In der
-Voreinstellung von \DescRef{maincls.counter.tocdepth} werden sie dann auch bei
-allen \KOMAScript-Klassen im Inhaltsverzeichnis angezeigt.
-
-Intern\ChangedAt{v3.27}{\Package{scrjura}} führt die Verwendung der Option zu
-einem erneuten Aufruf von
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-mit dem \PName{Stil} \PValue{default} und entsprechender Einstellung für
-\Option{level} in der \PName{Optionenlist}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratocindent}{Einzug}
- \OptionVName{juratocnumberwidth}{Nummernbreite}
-\end{Declaration}
-Mit diesen beiden Optionen kann für die Einträge der Paragraphen ins
-Inhaltsverzeichnis sowohl der Einzug als auch die Breite, die für Nummern
-reserviert wird, festgelegt werden. Voreingestellt\textnote{Voreinstellung}
-sind dieselben Werte wie für
-\DescRef{maincls.cmd.subsection}-Einträge\IndexCmd{subsection}%
-\important{\DescRef{maincls.cmd.subsection}} bei \Class{scrartcl}, also
-\OptionValue{juratocindent}{1.5em} und \OptionValue{juratocnumberwidth}{2em}.
-
-Intern\ChangedAt{v3.27}{\Package{scrjura}} führt die Verwendung der Optionen
-zu einem erneuten Aufruf von
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry} mit
-dem \PName{Stil} \PValue{default} und \OptionVName{indent}{Einzug}
-beziehungsweise \OptionVName{numwidth}{Nummernbreite} in der
-\PName{Optionenlist}.%
-\EndIndexGroup
-
-
-\section{Umgebung für Verträge}
-\seclabel{contract}
-
-\BeginIndexGroup
-\BeginIndex{}{Vertraege=Verträge}
-Die wesentlichen Mechanismen von \Package{scrjura} stehen ausschließlich
-innerhalb von Verträgen der zugehörigen Umgebung zur Verfügung.
-
-\begin{Declaration}
- \begin{Environment}{contract}\end{Environment}
-\end{Declaration}
-Dies ist die erste und bisher einzige Umgebung für Juristen, die
-\Package{scrjura} bereitstellt. Durch ihre Verwendung wird die automatische
-Absatznummerierung aktiviert und die Anweisungen
-\DescRef{\LabelBase.cmd.Clause} und \DescRef{\LabelBase.cmd.SubClause} mit
-einer konkreten Form versehen, die später näher dokumentiert wird.
-
-Die\textnote{Achtung!} Umgebung \Environment{contract} darf nicht in sich
-selbst geschachtelt werden. Innerhalb eines Dokuments dürfen jedoch mehrere
-dieser Umgebungen verwendet werden. Dabei werden die Paragraphen innerhalb
-dieser Umgebungen so behandelt, als stünden sie innerhalb einer einzigen
-Umgebung. Durch das Beenden der Umgebung wird diese also quasi
-unterbrochen und durch den Beginn einer neuen Umgebung wird sozusagen die alte
-Umgebung fortgesetzt. Dabei sind allerdings keine Unterbrechungen innerhalb
-eines Paragraphen möglich.
-
-Sollten Sie stattdessen Umgebungen für voneinander unabhängige Verträgen
-innerhalb desselben Dokuments benötigen, so sei auf die Möglichkeit der
-Definition weiterer Vertragsumgebungen mit
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} in
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}) verwiesen.%
-\EndIndexGroup
-
-\begin{Declaration}
- \Option{contract}
-\end{Declaration}
-Durch Angabe dieser Option beim Laden des Pakets, beispielsweise mit
-\DescRef{\LabelBase.cmd.usepackage}%
-\important{\DescRef{\LabelBase.cmd.usepackage}} oder als globale Option bei
-\DescRef{\LabelBase.cmd.documentclass}%
-\important{\DescRef{\LabelBase.cmd.documentclass}}, wird das gesamte Dokument
-zu einem Vertrag. Das Dokument verhält sich dann also genauso, als würde es
-genau eine \DescRef{\LabelBase.env.contract}-Umgebung enthalten.
-
-Es\textnote{Achtung!} wird darauf hingewiesen, dass Option \Option{contract}
-weder mit \DescRef{\LabelBase.cmd.KOMAoption} noch
-\DescRef{\LabelBase.cmd.KOMAoptions} gesetzt werden kann! Damit ist es auch
-nicht möglich die Option wieder abzuschalten. Außerdem würde mit der Option
-beispielsweise ein Dokumenttitel innerhalb der Vertragsumgebung
-gesetzt werden, was zu vermeiden ist. Verwenden Sie in solchen Fällen
-besser eine explizite \DescRef{\LabelBase.env.contract}-Umgebung.%
-\EndIndexGroup
-
-
-\subsection{Juristische Paragraphen}
-\label{sec:scrjura.clause}
-\BeginIndexGroup
-\BeginIndex{}{Paragraphen>juristische}
-
-Paragraphen im juristischen Sinn sind bei \Package{scrjura} nur innerhalb von
-Verträgen, also innerhalb der Umgebung \DescRef{\LabelBase.env.contract} oder
-weiteren mit \DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} (siehe
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}) erstellten Umgebungen,
-definiert. Um Verwechslungen\textnote{Hinweis!} von juristischen Paragraphen
-mit Gliederungsbefehlen für typografische Paragraphen oder Abschnitte zu
-vermeiden, leiten sich die Bezeichnungen von \Package{scrjura} nicht vom dem
-eigentlich korrekten englischen Begriff »\emph{section}«, sondern von
-»\emph{clause}« ab.
-
-\begin{Declaration}
- \phantomsection\label{desc:scrjura.contract.macro.Clause}%
- \Macro{Clause}\Parameter{Einstellungen}
- \phantomsection\label{desc:scrjura.contract.macro.SubClause}%
- \Macro{SubClause}\Parameter{Einstellungen}
-\end{Declaration}
-Dies sind die wichtigsten Anweisungen innerhalb eines Vertrags. Ohne
-zusätzliche \PName{Einstellungen} erzeugt \Macro{Clause} eine
-Paragraphenüberschrift, die nur aus dem Paragraphenzeichen, gefolgt von einer
-fortlaufenden Nummer besteht. Dagegen erzeugt \Macro{SubClause} eine
-Paragraphenüberschrift, bei der an die zuletzt mit \Macro{Clause} gesetzte
-Nummer noch ein fortlaufender Kleinbuchstabe angehängt wird. Gedacht ist
-\Macro{SubClause} vor allem für den Fall, dass bei der Novellierung von
-Gesetzen oder Verträgen nicht nur Paragraphen umformuliert oder gestrichen
-werden, sondern zwischen existierenden Paragraphen neue eingefügt werden, ohne
-dass eine komplett neue Nummerierung erfolgt. Bezüglich der generellen
-Formatierung oder beispielsweise der Erzeugung von Inhaltsverzeichniseinträgen
-wird jedoch nicht zwischen \Macro{Clause} und \Macro{SubClause} unterschieden.
-
-Als \PName{Einstellungen} kann bei beiden Anweisungen eine durch Komma
-separierte Liste von Eigenschaften angegeben werden. Eine Übersicht über die
-möglichen Eigenschaften bietet \autoref{tab:scrjura.Clause.options}. Auf die
-wichtigsten soll noch näher eingegangen werden.%
-\begin{table}
- \caption{Mögliche Eigenschaften für die optionalen Argumente der Anweisungen
- \Macro{Clause} und \Macro{SubClause}}
- \label{tab:scrjura.Clause.options}
- \begin{desctabular}
- \entry{\Option{dummy}}{%
- Die Überschrift wird nicht gesetzt, aber gezählt.%
- }\\[-1.7ex]
- \entry{\OptionVName{head}{Kolumnentitel}}{%
- Sind Kolumnentitel aktiviert, wird unabhängig von einem Titel für den
- Paragraphen dieser Kolumnentitel verwendet.%
- }\\[-1.7ex]
- \entry{\Option{nohead}}{%
- Es wird kein neuer Kolumnentitel gesetzt.%
- }\\[-1.7ex]
- \entry{\Option{notocentry}}{%
- Es wird kein Eintrag ins Inhaltsverzeichnis vorgenommen.%
- }\\[-1.7ex]
- \entry{\OptionVName{number}{Nummer}}{%
- Die Nummer für den Paragraphen wird direkt angegeben.%
- }\\[-1.7ex]
- \entry{\OptionVName{preskip}{Abstand}}{%
- Neuer Abstand vor den Überschriften der Paragraphen.%
- }\\[-1.7ex]
- \entry{\OptionVName{postskip}{Abstand}}{%
- Neuer Abstand nach den Überschrift der Paragraphen.%
- }\\[-1.7ex]
- \entry{\OptionVName{title}{Überschrift}}{%
- Der Paragraph wird zusätzlich zur Nummer mit einem Titel versehen. Dies
- ist gleichzeitig die Grundeinstellung für die Einträge in den
- Kolumnentitel und das Inhaltsverzeichnis.%
- }\\[-1.7ex]
- \entry{\OptionVName{tocentry}{Inhaltsverzeichniseintrag}}{%
- Unabhängig von einem Titel für den Paragraphen wird dieser Eintrag ins
- Inhaltsverzeichnis vorgenommen.%
- }%
- \end{desctabular}
-\end{table}
-
-In der Voreinstellung\textnote{Voreinstellung} wird vor der Überschrift ein
-Abstand von zwei Zeilen und danach ein Abstand von einer Zeile eingefügt. Über
-die Eigenschaften \Option{preskip}\important[i]{\Option{preskip},
- \Option{postskip}} und \Option{postskip} kann dieser Abstand verändert
-werden. Die neue Einstellung gilt dann aber nicht nur für den aktuellen
-Paragraphen, sondern ab dem aktuellen Paragraphen bis zum Ende der aktuellen
-Umgebung. Es ist auch möglich, die entsprechende Einstellung bereits vorab mit
-Hilfe von
-\begin{lstcode}[escapeinside=><]
- \setkeys{contract}{preskip=>\PName{Abstand}<,postskip=>\PName{Abstand}<}
-\end{lstcode}
-unabhängig von einem konkreten Paragraphen, außerhalb einer
-\DescRef{\LabelBase.env.contract}-Umgebung vorzunehmen. Auch das Setzen
-innerhalb der Präambel nach dem Laden von \Package{scrjura} ist so
-möglich. Dagegen ist es nicht möglich, diese beiden Optionen bereits beim
-Laden des Pakets anzugeben oder sie per \DescRef{\LabelBase.cmd.KOMAoptions}
-oder \DescRef{\LabelBase.cmd.KOMAoption} zu setzen.
-
-\BeginIndex{FontElement}{contract.Clause}\LabelFontElement{contract.Clause}%
-\BeginIndex{FontElement}{Clause}\LabelFontElement{Clause}%
-In der Voreinstellung\textnote{Voreinstellung} wird für die Überschrift des
-Paragraphen als Schrift \Macro{sffamily}\Macro{bfseries}\Macro{large}
-verwendet. Über das Element
-\FontElement{contract.Clause}\important{\FontElement{contract.Clause}} kann
-diese Schrift jederzeit mit Hilfe der Anweisungen
-\DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} und
-\DescRef{\LabelBase.cmd.addtokomafont} (siehe
-\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
-geändert werden. Innerhalb der \DescRef{\LabelBase.env.contract}-Umgebung kann
-statt \FontElement{contract.Clause} auch
-\FontElement{Clause}\important{\FontElement{Clause}} verwendet werden.%
-\EndIndex{FontElement}{Clause}%
-\EndIndex{FontElement}{contract.Clause}
-
-Mit Hilfe der Einstellungen \Option{title}\important[i]{\Option{title},
- \Option{head}, \Option{tocentry}}, \Option{head} und \Option{tocentry}
-können Paragraphen zusätzlich zur Nummer mit einem Titel versehen
-werden. Dabei\textnote{Achtung!} wird empfohlen, den Wert der jeweiligen
-Eigenschaft in geschweifte Klammern zu setzen. Anderenfalls führen
-beispielsweise Kommata zu Verwechslungen mit den Trennzeichen zwischen
-unterschiedlichen Eigenschaften. Leere Werte für \Option{head} und
-\Option{tocentry} führen zu leeren Einträgen. Will man hingegen keine Einträge
-vornehmen, so sind \Option{nohead}\important[i]{\Option{nohead},
- \Option{notocentry}} und \Option{notocentry} zu verwenden.
-
-Statt der fortlaufenden Nummer kann mit Hilfe der Eigenschaft
-\Option{number}\important{\Option{number}} auch manuell eine Nummer vergeben
-werden. Dies hat jedoch keinen Einfluss auf die Nummern der nachfolgenden
-Paragraphen. Die Angabe einer leeren Nummer ist nicht
-vorgesehen. Zerbrechliche Anweisungen in \PName{Nummer} sollten mit
-\Macro{protect} geschützt werden. Es\textnote{Achtung!} wird empfohlen als
-\PName{Nummer} nur Ziffern und Buchstaben anzugeben.
-
-Mit der Eigenschaft \Option{dummy}\important{\Option{dummy}} kann man die
-Ausgabe der kompletten Überschrift des Paragraphen unterdrücken. In der
-automatischen Zählung wird der Paragraph aber dennoch berücksichtigt. Auf
-diese Weise kann man beispielsweise\textnote{Beispiel} mit
-\begin{lstcode}
- \Clause{dummy}
-\end{lstcode}
-einen Paragraphen in der automatischen Zählung überspringen, falls der
-entsprechende Paragraph in einer späteren Fassung eines Vertrags gestrichen
-wurde.
-
-Es\textnote{Achtung!} ist zu beachten, dass die Eigenschaft \Option{dummy} als
-Wert allenfalls \PValue{true} und \PValue{false} versteht. Andere Werte
-können zu einer Fehlermeldung führen.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{Clauseformat}\Parameter{Nummer}
-\end{Declaration}
-Wie bereits in der vorausgehenden Erklärung erwähnt, werden juristische
-Paragraphen und Unterparagraphen normalerweise nummeriert. Die Formatierung
-der Nummer erfolgt dabei mit Hilfe der Anweisung \Macro{Clauseformat}, die als
-einziges Argument die Nummer erwartet. Bei der
-Vordefinierung\textnote{Voreinstellung} als
-\begin{lstcode}
- \newcommand*{\Clauseformat}[1]{\S~#1}
-\end{lstcode}
-wird der Nummer mit \Macro{S}\IndexCmd{S} lediglich das Paragraphensymbol,
-gefolgt von einem nicht trennbaren Leerzeichen
-vorangestellt. Bei\textnote{Achtung!} Umdefinierungen ist auf die
-Expandierbarkeit zu achten!%
+\BeginIndex{Package}{contract}
+
+Bis einschließlich Version~3.41 enthielt \KOMAScript{} offiziell das Paket
+\Package{scrjura} zur Unterstützung anwaltlicher Dokumente. Dabei ging es vor
+allem um Satzungen, Gesetze, Kommentare dazu oder im weitesten Sinn um
+Verträge alle Art. Im Zuge der Restrukturierung von \KOMAScript{} wurde das
+Paket ausgelagert. Da der Vertrag das zentrale Element des Pakets ist, bekam
+es dabei den neuen Namen \Package{contract}. Unter diesem Namen ist es nicht
+nur auf CTAN zu finden (siehe \cite{package:contract}). Es wurde auch bereits
+in gängige \TeX-Distributionen aufgenommen und kann daher über deren
+Paketmanager installiert werden.
+
+Aus Kompatibilitätsgründen wird es für eine begrenzte Zeit in \KOMAScript{}
+weiterhin ein Paket \Package{scrjura} geben. Dabei handelt es sich aber
+lediglich um eine andere Verpackung des neuen Pakets \Package{contract}, bei
+dem ein Teil der Inkompatibilitäten zwischen dem neuen Paket und dem früheren
+\Package{scrjura} bereinigt wurden. Damit sollte es in der Regel möglich sein,
+bisherige Dokumente auf Basis von \Package{scrjura} weiterhin zu
+verarbeiten. Für neue Dokumente wird unbedingt empfohlen, stattdessen zu
+\Package{contract} zu wechseln. Bei der Überarbeitung alter Dokumente ist eine
+Umstellung ebenfalls zu empfehlen. Für die dabei zu berücksichtigenden
+Änderungen sind die Angaben in der Anleitung zum Paket \Package{contract}
+maßgeblich.
+
+\begin{Declaration}
+ \Macro{Clause}\Parameter{Optionen}%
+ \Macro{SubClause}\Parameter{Optionen}
+\end{Declaration}
+Der wichtigste Unterschied bei Verwendung von \Package{scrjura} gegenüber
+\Package{contract} ist, dass die \PName{Optionen} zu den beiden Anweisungen
+\Macro{Clause} und \Macro{SubClause} innerhalb einer
+\Environment{contract}-Umgebung bei \Package{contract} ein optionales Argument
+darstellen, also in eckigen Klammern anzugeben sind. Beim Paket
+\Package{scrjura} waren die \PName{Optionen} hingegen immer ein erforderliches
+Argument also in geschweiften Klammern anzugeben. Das ist mit
+\Package{scrjura} auch weiterhin der Fall.%
\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratitlepagebreak}{Ein-Aus-Wert}
-\end{Declaration}%
-Normalerweise sind Seitenumbrüche innerhalb von Überschriften aller Art
-verboten. Einige Juristen benötigen jedoch Seitenumbrüche innerhalb von
-Paragraphentiteln. Daher kann ein solcher Umbruch mit
-\Option{juratitlepagebreak}\important{\Option{juratitlepagebreak}} erlaubt
-werden. Die möglichen Einstellungen für \PName{Ein-Aus-Wert} sind
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} zu
-entnehmen.
-
-Bitte beachten Sie\textnote{Achtung!}, dass es sich hier nicht um eine Option
-für \DescRef{\LabelBase.cmd.Clause} oder \DescRef{\LabelBase.cmd.SubClause},
-sondern um eine \KOMAScript-Option handelt. Außer beim Laden des Pakets kann
-sie auch jederzeit mit \DescRef{\LabelBase.cmd.KOMAoptions} oder
-\DescRef{\LabelBase.cmd.KOMAoption} geändert werden und gilt dann bis zum Ende
-der aktuellen Umgebung.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{clausemark}{Einstellung}
-\end{Declaration}%
-Da Paragraphen eine untergeordnete Gliederung mit unabhängiger Nummerierung
-sind, erzeugen sie in der Voreinstellung\textnote{Voreinstellung} keine
-Kolumnentitel. Über alternative Einstellungen können jedoch auch Kolumnentitel
-erzeugt werden. Die möglichen Werte und ihre Bedeutung sind
-\autoref{tab:scrjura.clausemark} zu entnehmen.%
%
-\begin{table}
- \caption{Mögliche Werte für Option \Option{clausemark} zur Erzeugung von
- Kolumnentiteln durch Paragraphen}
- \label{tab:scrjura.clausemark}%
- \begin{desctabular}
- \entry{\PValue{both}}{%
- Paragraphen erzeugen linke und rechte Marken für Kolumnentitel, wenn das
- Dokument die Verwendung von lebenden Kolumnentiteln vorsieht.%
- \IndexOption{clausemark~=\textKValue{both}}%
- }\\[-1.7ex]
- \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
- Paragraphen erzeugen keine Kolumnentitel.%
- \IndexOption{clausemark~=\textKValue{false}}%
- }\\[-1.7ex]
- \entry{\PValue{forceboth}}{%
- Paragraphen erzeugen mit \DescRef{maincls.cmd.markboth} linke und rechte
- Marken für Kolumnentitel unabhängig davon, ob das Dokument
- beispielsweise über den Seitenstil überhaupt lebende Kolumnentitel
- verwendet.%
- \IndexOption{clausemark~=\textKValue{forceboth}}%
- }\\[-1.7ex]
- \entry{\PValue{forceright}}{%
- Paragraphen erzeugen mit \DescRef{maincls.cmd.markright} rechte Marken
- für Kolumnentitel unabhängig davon, ob das Dokument beispielsweise über
- den Seitenstil überhaupt lebende Kolumnentitel verwendet.%
- \IndexOption{clausemark~=\textKValue{forceright}}%
- }\\[-1.7ex]
- \entry{\PValue{right}}{%
- Paragraphen erzeugen rechte Marken für Kolumnentitel, wenn das Dokument
- die Verwendung von lebenden Kolumnentiteln vorsieht.%
- \IndexOption{clausemark~=\textKValue{right}}%
- }%
- \end{desctabular}
-\end{table}
-
-Bitte beachten Sie\textnote{Achtung!}, dass es sich hier nicht um eine Option
-für \DescRef{\LabelBase.cmd.Clause} oder \DescRef{\LabelBase.cmd.SubClause},
-sondern um eine \KOMAScript-Option handelt. Außer beim Laden des Pakets kann
-sie auch jederzeit mit \DescRef{\LabelBase.cmd.KOMAoptions} oder
-\DescRef{\LabelBase.cmd.KOMAoption} geändert werden und gilt dann bis zum Ende
-der aktuellen Umgebung.%
-\EndIndexGroup \EndIndexGroup
-
-\subsection{Absätze}
-\label{sec:scrjura.par}
-\BeginIndexGroup
-\BeginIndex{}{Absatz>Nummerierung}%
-Innerhalb von Paragraphen werden Absätze von \Package{scrjura} normalerweise
-automatisch nummeriert. Sie sind damit ein stark gliederndes Element, ähnlich
-\DescRef{maincls.cmd.paragraph} oder \DescRef{maincls.cmd.subparagraph} in
-normalen Texten. Innerhalb von Verträgen wird deshalb häufig auch gerne mit
-Abstand zwischen den Absätzen gearbeitet. Das Paket \Package{scrjura} bietet
-keinen eigenen Mechanismus hierfür. Stattdessen sei auf die Option
-\DescRef{maincls.option.parskip}%
-\IndexOption{parskip}\important{\DescRef{maincls.option.parskip}} der
-\KOMAScript-Klassen verwiesen (siehe \autoref{sec:maincls.parmarkup},
-\DescPageRef{maincls.option.parskip}).
-
-\begin{Declaration}
- \OptionVName{parnumber}{Einstellung}
-\end{Declaration}
-Die automatische\textnote{Voreinstellung} Nummerierung der Absätze entspricht
-den beiden Einstellungen \OptionValue{parnumber}{auto} und
-\OptionValue{parnumber}{true}. Manchmal ist es notwendig, die automatische
-Nummerierung abzuschalten. Das ist mit \OptionValue{parnumber}{false}%
-\important{\OptionValue{parnumber}{false}}%
-\IndexOption{parnumber~=\textKValue{false}} möglich. In diesem Fall wird nur die
-Satznummer automatisch zurückgesetzt.
-
-Zur Realisierung dieser Option war es notwendig, in den Absatzmechanismus von
-\LaTeX{} einzugreifen. In einigen seltenen Fällen kann sich das negativ
-auswirken. Dann bleibt nur, diese Änderung mit
-\OptionValue{parnumber}{manual}%
-\important{\OptionValue{parnumber}{manual}}%
-\IndexOption{parnumber~=\textKValue{manual}} zurückzunehmen. Umgekehrt hebt
-\LaTeX{} selbst den Eingriff manchmal auf. In diesem Fällen kann er mit
-\OptionValue{parnumber}{auto}%
-\important{\OptionValue{parnumber}{auto}}%
-\IndexOption{parnumber~=\textKValue{auto}} erneut aktiviert werden.
-
-Paragraphen, die nur aus einem einzigen Absatz bestehen, werden normalerweise
-nicht automatisch nummeriert. Damit dies funktioniert, dürfen sich keine zwei
-Paragraphen mit identischer Nummer in einem Dokument befinden. Sollten Sie
-dies dennoch einmal benötigen, weichen Sie bitte auf eine weitere
-Vertragsumgebung aus (siehe
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment},
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}). Da\textnote{Achtung!}
-die Information erst am Ende eines Paragraphen zur Verfügung steht, werden in
-der Regel zwei \LaTeX-Läufe benötigt, bis die automatische Absatznummerierung
-korrekt erfolgt.%
-\EndIndexGroup
-
-\begin{Declaration}
- \Counter{par}
- \Macro{thepar}
- \Macro{parformat}
- \Macro{parformatseparation}
-\end{Declaration}%
-Für die Nummerierung der Absätze wird der Zähler \Counter{par}
-verwendet. Seine Darstellung \Macro{thepar} ist mit
-\Macro{arabic}\PParameter{par} als arabische Zahl
-voreingestellt. Die\textnote{Voreinstellung} Ausgabe als automatische
-Absatznummer erfolgt mit \Macro{parformat}. Dabei wird \Macro{thepar} in runde
-Klammern gesetzt. Will man einem Absatz manuell eine Absatznummer
-voranstellen, so sollte das ebenfalls mit \Macro{parformat} geschehen. Dabei
-ist es sinnvoll, auf \Macro{parformat} noch \Macro{parformatseparation} oder
-zumindest ein nicht trennbares Leerzeichen mit
-\Macro{nobreakspace}\IndexCmd{nobreakspace} oder der Tilde folgen zu lassen.
-
-Bei\ChangedAt{v0.7}{\Package{scrjura}} der automatischen Nummerierung wird
-\Macro{parformat} ebenfalls noch \Macro{parformatseparation} als Trennzeichen
-angehängt. Voreinstellt\textnote{Voreinstellung} ist derzeit mit
-\Macro{nobreakspace}\IndexCmd{nobreakspace} ein nicht umbrechbarer
-Wortabstand.
-
-\BeginIndex{FontElement}{parnumber}\LabelFontElement{parnumber}%
-Die Absatznummer wird normalerweise\textnote{Voreinstellung} in der
-aktuellen Schrift gesetzt. Diese Voreinstellung für das Element
-\FontElement{parnumber} kann jederzeit mit Hilfe der Anweisungen
-\DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} und
-\DescRef{\LabelBase.cmd.addtokomafont} (siehe
-\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
-geändert werden.%
-\EndIndex{FontElement}{parnumber}%
-
-Es\textnote{Achtung!} wird darauf hingewiesen, dass \Package{scrjura} intern
-davon ausgeht, dass \Macro{thepar} eine arabische Zahl ist. Daher sollte
-diese Anweisung keinesfalls umdefiniert werden!%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{withoutparnumber}
-\end{Declaration}
-Wird keine Absatznummer ausgegeben, wird am Anfang des Absatzes ersatzweise
-die Anweisung \Macro{withoutparnumber} lokal
-ausgeführt. Diese\textnote{Voreinstellung} ist in der Voreinstellung leer, tut
-also weiter nichts. Sie wurde auf speziellen Wunsch in \Package{scrjura}
-eingebaut, ist für den normalen Anwender aber ohne Belang.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{ellipsispar}\OParameter{Anzahl}
- \Macro{parellipsis}
-\end{Declaration}
-Manchmal\ChangedAt{v0.7}{\Package{scrjura}} -- insbesondere in vergleichenden
-Kommentaren -- ist es wünschenswert, wenn man Absätze in Gesetzen auslassen,
-aber gleichzeitig die Auslassung\Index{Absatz>Auslassung} markieren kann. Die
-Absätze sollen dann auch in der Zählung der übrigen Absätze berücksichtigt
-werden. Das Paket \Package{scrjura} stellt dafür die Anweisung
-\Macro{ellipsispar} bereit.
-
-In der Voreinstellung\textnote{Voreinstellung} lässt \Macro{ellipsispar} genau
-einen Absatz aus. Über das optionale Argument \PName{Anzahl} können jedoch
-auch mehrere Absätze ausgelassen werden. In jedem Fall erscheint in der
-Ausgabe stattdessen genau ein nicht nummerierter Absatz, der nur die
-Auslassungszeichen \Macro{parellipsis} enthält. Bei der Entscheidung für eine
-automatische Nummerierung der übrigen Absätze eines juristischen Paragraphen
-werden die ausgelassenen Absätze jedoch mitgezählt. Dies gilt ebenso für die
-Nummern etwaiger nachfolgender Absätze.
-\begin{Example}
- Angenommen, Sie kommentieren das Strafgesetzbuch, wollen aber in \S~2 nur
- Absatz~3 kommentieren. Dennoch soll auf die übrigen Absätze indirekt
- hingewiesen werden. Sie erreichen das beispielsweise mit:
-\begin{lstcode}
- \documentclass[parskip=half]{scrartcl}
- \usepackage{scrjura}
- \begin{document}
- \begin{contract}
- \Clause{title={Zeitliche Geltung},number=2}
- \ellipsispar[2]
-
- Wird das Gesetz, das bei Beendigung der Tat
- gilt, vor der Entscheidung geändert, so ist
- das mildeste Gesetz anzuwenden.
-
- \ellipsispar[3]
- \end{contract}
- \end{document}
-\end{lstcode}
- Wenn\textnote{Achtung!} Sie dieses Beispiel ausprobieren wollen, verwenden
- Sie bitte eine \LaTeX-Version ab 2018-04-01 und einen Editor mit der
- Codierungseinstellung UTF-8. Dies ist bei aktuellen \TeX-Distributionen und
- aktuellen \LaTeX-Editoren die Voreinstellung. Bei Verwendung einer
- veralteten \TeX-Distribution oder einer anderen Einstellung des Editor,
- müssen Sie die verwendete Codierung mit Hilfe des Pakets
- \Package{inputenc}\IndexPackage{inputenc} deklarieren.%
-\end{Example}
-
-Die Auslassungszeichen sind so vordefiniert\textnote{Voreinstellung}, dass
-\Macro{textellipsis}\IndexCmd{textellipsis} verwendet wird, falls eine solche
-Anweisung definiert ist. Anderenfalls wird \Macro{dots}\IndexCmd{dots}
-verwendet. Eine Umdefinierung von \Macro{parellipsis} ist mit
-\Macro{renewcommand} jederzeit möglich.%
-\EndIndexGroup
-
-
-\subsection{Sätze}
-\label{sec:scrjura.sentence}
-
-\BeginIndexGroup%
-\BeginIndex{}{Satz>Nummerierung}%
-Absätze in Verträgen bestehen aus einem oder mehreren Sätzen, die teilweise
-ebenfalls nummeriert werden. Da eine automatische Nummerierung problematisch
-und fehleranfällig ist, wird nur eine halbautomatische Nummerierung
-unterstützt.
-
-\begin{Declaration}
- \Counter{sentence}
- \Macro{thesentence}
- \Macro{sentencenumberformat}
- \Macro{Sentence}
-\end{Declaration}
-Die Nummerierung von Sätzen erfolgt manuell mit der Anweisung
-\Macro{Sentence}. Dabei wird der Zähler \Counter{sentence} automatisch erhöht
-und in der Voreinstellung von
-\Macro{sentencenumberformat}\ChangedAt{v3.26}{\Package{scrjura}} die arabische
-Zahl von \Macro{thesentence} hochgestellt ausgegeben.
-
-\BeginIndex{FontElement}{sentencenumber}\LabelFontElement{sentencenumber}%
-Die\ChangedAt{v3.26}{\Package{scrjura}} Satznummer wird
-normalerweise\textnote{Voreinstellung} in der aktuellen Schrift gesetzt. Diese
-Voreinstellung für das Element \FontElement{sentencenumber} kann mit
-Hilfe der Anweisungen \DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} und
-\DescRef{\LabelBase.cmd.addtokomafont} (siehe
-\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
-geändert werden.%
-\EndIndex{FontElement}{sentencenumber}
-
-Bei\textnote{Tipp!} Verwendung von Paket
-\Package{babel}\IndexPackage{babel}\important{\Package{babel}} ist es einfach
-möglich, eine Abkürzung für \Macro{Sentence} zu definieren:%
-\phantomsection\label{sec:scrjura.shorthandexample}%
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \useshorthands{'}
- \defineshorthand{'S}{\Sentence\ignorespaces}
-\end{lstcode}
-Dabei werden Leerzeichen nach
-\lstinline|'S| ignoriert. Auch eine
-Abkürzung für einen Punkt, gefolgt von einer neuen Satznummer ist möglich:
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \defineshorthand{'.}{. \Sentence\ignorespaces}
-\end{lstcode}
-Näheres zu \Macro{useshorthands}\IndexCmd{useshorthands} und
-\Macro{defineshorthand}\IndexCmd{defineshorthands} ist der Anleitung zum Paket
-\Package{babel} zu entnehmen (siehe \cite{package:babel}). Ein
-Anwendungsbeispiel finden Sie in \autoref{sec:scrjura.example} ab
-\autopageref{sec:scrjura.example}.%
-\EndIndexGroup
-%
-\EndIndexGroup
-%
-\EndIndexGroup
-%
-\EndIndexGroup
-
-
-\section{Querverweise}
-\seclabel{ref}
-
-Für Paragraphen, Absätze und Sätze reicht der normale Mechanismus für
-Querverweise mit \Macro{label}\IndexCmd{label}\important{\Macro{label}},
-\Macro{ref} und \Macro{pageref} nicht mehr aus. Daher wird dieser von
-\Package{scrjura} um weitere Anweisungen ergänzt.
-
-\begin{Declaration}
- \Macro{ref}\Parameter{Label}
- \Macro{refL}\Parameter{Label}
- \Macro{refS}\Parameter{Label}
- \Macro{refN}\Parameter{Label}
-\end{Declaration}
-Die Anweisungen \Macro{refL}, \Macro{refS} und \Macro{refN}
-referenzieren Paragraph, Absatz und Satz immer vollständig. \Macro{refL}
-verwendet dabei eine textuelle Langform, während \Macro{refS} eine textuelle
-Kurzform bietet. \Macro{refN} ist eine rein numerische Kurzform. \Macro{ref}
-entspricht in der Voreinstellung\textnote{Voreinstellung} \Macro{refL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refSentence}\Parameter{Label}
- \Macro{refSentenceL}\Parameter{Label}
- \Macro{refSentenceS}\Parameter{Label}
- \Macro{refSentenceN}\Parameter{Label}
-\end{Declaration}
-Der Satz ohne Paragraph und Absatz kann mit \Macro{refSentenceL},
-\Macro{refSentenceS} oder \Macro{refSentenceN} referenziert werden. Auch hier
-gibt es wieder eine textuelle Langform, eine textuelle Kurzform und eine rein
-numerische Form. \Macro{refSentence} entspricht in der
-Voreinstellung\textnote{Voreinstellung} \Macro{refSentenceL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refPar}\Parameter{Label}
- \Macro{refParL}\Parameter{Label}
- \Macro{refParS}\Parameter{Label}
- \Macro{refParN}\OParameter{Zahlenformat}\Parameter{Label}
-\end{Declaration}
-Nur den Absatz kann man mit \Macro{refParL}, \Macro{refParS} und
-\Macro{refParN} referenzieren. Die Formen unterscheiden sich dabei wie bereits
-für \DescRef{\LabelBase.cmd.refL}, \DescRef{\LabelBase.cmd.refN} und
-\DescRef{\LabelBase.cmd.refS} angegeben. Eine Besonderheit stellt das
-optionale Argument von \Macro{refParN} dar. Normalerweise werden Absätze in
-rein numerischer Form als römische Zahlen referenziert. Über das optionale
-Argument kann jedoch auch ein anderes Format vorgegeben werden. Sinnvoll ist
-hier in erster Linie das \PValue{Zahlenformat} \PValue{arabic} für eine
-arabische Absatznummer. \Macro{refPar} entspricht in der
-Voreinstellung\textnote{Voreinstellung} \Macro{refParL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refClause}\Parameter{Label}
- \Macro{refClauseN}\Parameter{Label}
-\end{Declaration}
-Für die Referenzierung von Paragraphen ohne Absatz und Satz, unterscheiden
-sich \Macro{refClause} und \Macro{refClauseN} nur darin, dass ersteres
-automatisch ein Paragraphenzeichen voran stellt.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{ref}{Einstellung}
-\end{Declaration}
-Die Ergebnisse von \DescRef{\LabelBase.cmd.ref},
-\DescRef{\LabelBase.cmd.refPar} und \DescRef{\LabelBase.cmd.refSentence} sind
-von der \PName{Einstellung} für Option \Option{ref} abhängig. In der
-Voreinstellung\textnote{Voreinstellung} entsprechen diese
-\DescRef{\LabelBase.cmd.refL}, \DescRef{\LabelBase.cmd.refParL} und
-\DescRef{\LabelBase.cmd.refSentenceL}. Mögliche Werte und ihre Bedeutung sind
-\autoref{tab:scrjura.ref} zu entnehmen.%
-%
-\begin{table}
-%\begin{desclist}
-% \desccaption
- \caption[{%
- Mögliche Werte für Option \Option{ref} zur Einstellung der
- Referenzierungsformate%
- }]{%
- Mögliche Werte für Option \Option{ref} zur Einstellung des Formats von
- \DescRef{\LabelBase.cmd.ref}, \DescRef{\LabelBase.cmd.refPar} und
- \DescRef{\LabelBase.cmd.refSentence}%
- \label{tab:scrjura.ref}%
- }%
-% {%
-% Mögliche Werte für Option \Option{ref} \emph{(Fortsetzung)}%
-% }%
- \begin{desctabular}
- \entry{\PValue{long}}{%
- Die Einstellungen \PValue{parlong} und \PValue{sentencelong} werden
- kombiniert.%
- \IndexOption{ref~=\textKValue{long}}%
- }\\[-1.7ex]
- \entry{\PValue{numeric}}{%
- Die Einstellungen \PValue{parnumeric} und \PValue{sentencenumeric}
- werden kombiniert.%
- \IndexOption{ref~=\textKValue{numeric}}%
- }\\[-1.7ex]
- \entry{\PValue{clauseonly}, \PValue{onlyclause}, \PValue{ClauseOnly},
- \PValue{OnlyClause}}{%
- Die Einstellungen \PValue{paroff} und \PValue{sentenceoff} werden
- kombiniert. Es ist zu beachten, dass dadurch sowohl
- \DescRef{\LabelBase.cmd.refPar} als auch
- \DescRef{\LabelBase.cmd.refSentence} ein leeres Ergebnis erzeugen!%
- \IndexOption{ref~=\textKValue{long}}%
- }\\[-1.7ex]
- \entry{\PValue{parlong}, \PValue{longpar}, \PValue{ParL}}{%
- Der Absatz wird in der textuellen Langform referenziert.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }\\[-1.7ex]
- \entry{\PValue{parnumeric}, \PValue{numericpar}, \PValue{ParN}}{%
- Der Absatz wird in der rein numerischen Form referenziert.%
- \IndexOption{ref~=\textKValue{parnumeric}}%
- }\\[-1.7ex]
- \entry{\PValue{paroff}, \PValue{nopar}}{%
- Der Absatz wird nicht mit referenziert. Es ist zu beachten, dass dadurch
- \DescRef{\LabelBase.cmd.refPar} ein leeres Ergebnis erzeugt!%
- \IndexOption{ref~=\textKValue{paroff}}%
- }\\[-1.7ex]
- \entry{\PValue{parshort}, \PValue{shortpar}, \PValue{ParS}}{%
- Der Absatz wird in der textuellen Kurzform referenziert.%
- \IndexOption{ref~=\textKValue{parshort}}%
- }\\[-1.7ex]
- \entry{\PValue{sentencelong}, \PValue{longsentence}, \PValue{SentenceL}}{%
- Der Satz wird in der textuellen Langform referenziert.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }\\[-1.7ex]
- \entry{\PValue{sentencenumeric}, \PValue{numericsentence},
- \PValue{SentenceN}}{%
- Der Satz wird in der rein numerischen Form referenziert.%
- \IndexOption{ref~=\textKValue{sentencenumeric}}%
- }\\[-1.7ex]
- \entry{\PValue{sentenceoff}, \PValue{nosentence}}{%
- Der Satz wird nicht mit referenziert. Es ist zu beachten, dass dadurch
- von \DescRef{\LabelBase.cmd.refSentence} ein leeres Ergebnis erzeugt
- wird!%
- \IndexOption{ref~=\textKValue{sentenceoff}}%
- }\\[-1.7ex]
- \entry{\PValue{sentenceshort}, \PValue{shortsentence},
- \PValue{SentenceS}}{%
- Der Satz wird in der textuellen Kurzform referenziert.%
- \IndexOption{ref~=\textKValue{sentenceshort}}%
- }\\[-1.7ex]
- \entry{\PValue{short}}{%
- Die Einstellungen \PValue{parshort} und \PValue{sentenceshort} werden
- kombiniert.%
- \IndexOption{ref~=\textKValue{short}}%
- }%
-\end{desctabular}
-\end{table}
-
-\begin{Example}
- Angenommen, Sie wollen, dass auf Absätze immer in der Form »Absatz 1 in
- Paragraph 1« verwiesen wird. Da es hierfür keine vordefinierte Anweisung
- gibt, müssen Sie sich Ihre eigene Definition aus den vorhanden Möglichkeiten
- zusammenbauen. Dies können Sie mit%
-\begin{lstcode}
- \newcommand*{\refParM}[1]{%
- Absatz~\refParN[arabic]{#1}
- in Paragraph~\refClauseN{#1}%
- }
-\end{lstcode}
- sehr einfach erreichen. Die so neu definierte Anweisung ist genau wie
- \DescRef{\LabelBase.cmd.refParL} zu verwenden.%
-\end{Example}%
-
-Beispiele für die Ergebnisse der nicht konfigurierbaren, grundlegenden
-Anweisungen finden sich in \autoref{tab:scrjura.refexamples}.
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}{Beispielausgaben der von Option \Option{ref}
- unabhängigen Anweisungen für Querverweise}[l]
- \begin{tabular}[t]{ll}
- \toprule
- Anweisung & Beispielausgabe \\
- \midrule
- \DescRef{\LabelBase.cmd.refL}\Parameter{Label} & § 1 Absatz 1 Satz 1 \\
- \DescRef{\LabelBase.cmd.refS}\Parameter{Label} & § 1 Abs. 1 S. 1 \\
- \DescRef{\LabelBase.cmd.refN}\Parameter{Label} & § 1 I 1. \\
- \DescRef{\LabelBase.cmd.refClause}\Parameter{Label} & § 1 \\
- \DescRef{\LabelBase.cmd.refClauseN}\Parameter{Label} & 1 \\
- \DescRef{\LabelBase.cmd.refParL}\Parameter{Label} & Absatz 1 \\
- \DescRef{\LabelBase.cmd.refParS}\Parameter{Label} & Abs. 1 \\
- \DescRef{\LabelBase.cmd.refParN}\Parameter{Label} & I \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{arabic}\Parameter{Label} & 1 \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{roman}\Parameter{Label} & i \\
- \DescRef{\LabelBase.cmd.refSentenceL}\Parameter{Label} & Satz 1 \\
- \DescRef{\LabelBase.cmd.refSentenceS}\Parameter{Label} & S. 1 \\
- \DescRef{\LabelBase.cmd.refSentenceN}\Parameter{Label} & 1. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.refexamples}
-\end{table}
-\EndIndexGroup
-
-
-\section{Zusätzliche Vertragsumgebungen}
-\seclabel{newenv}
-
-Einige Anwender setzen mit \Package{scrjura} keine Verträge oder Kommentare
-zu einzelnen Gesetzen, sondern Werke, in denen unterschiedliche Arten von
-Gesetzen behandelt werden. Es ist daher erforderlich, dass ein Paragraph
-nicht immer mit demselben Präfix »\S« versehen wird, sondern beispielsweise
-als »Art.« oder »IAS« oder was auch immer bezeichnet wird. Darüber hinaus wird
-eine unabhängige Zählung der unterschiedlichen Paragraphen benötigt.
-
-\begin{Declaration}
- \Macro{DeclareNewJuraEnvironment}\Parameter{Name}\OParameter{Optionen}
- \Parameter{Start-Anweisungen}
- \Parameter{End-Anweisungen}
-\end{Declaration}
-Über\ChangedAt{v0.9}{\Package{scrjura}} diese Anweisung können weitere,
-voneinander unabhängige Umgebungen für Vertrags- oder Gesetzestexte deklariert
-werden. Das Argument \PName{Name} ist dabei der Name der neuen
-Umgebung. \PName{Start-Anweisungen} sind Anweisungen, die immer am Anfang der
-Umgebung ausgeführt werden, ganz als ob man sie jedes Mal unmittelbar hinter
-\Macro{begin}\Parameter{Name} einfügen würde. Entsprechend werden
-\PName{End-Anweisungen} immer am Ende der Umgebung ausgeführt, ganz als ob man
-sie jedes Mal unmittelbar vor \Macro{end}\Parameter{Name} einfügen würde. Ohne
-\PName{Optionen} entspricht die neue Umgebung \PName{Name} einer
-\DescRef{\LabelBase.env.contract}-Umgebung mit eigenen Zählern. Es besteht
-jedoch die Möglichkeit über eine mit Komma separierte Liste an
-\PName{Optionen} darauf Einfluss zu
-nehmen. \autoref{tab:\LabelBase.DeclareNewJuraEnvironment} führt die derzeit
-unterstützen \PName{Optionen} auf.%
-\begin{Example}
- Um beispielsweise die in der Einleitung zu diesem Abschnitt erwähnte
- Umgebung für Artikel zu definieren, genügt:
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Artikel}
- [ClauseNumberFormat=Art.~]{}{}
-\end{lstcode}
- Sollen die Artikel unter Verwendung einer \KOMAScript-Klasse mit
- Absatzabstand statt Absatzeinzug gesetzt werden, kann
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Artikel}
- [ClauseNumberFormat=Art.~]
- {\KOMAoptions{parskip}}{}
-\end{lstcode}
- verwendet werden. Natürlich wird dann auch bei der Referenzierung
- automatisch »Art.« anstelle von »\S« vorangestellt.%
-
- Angewendet wird die neue Umgebung wie
- \DescRef{\LabelBase.env.contract}:
-\begin{lstcode}
- \begin{Artikel}
- \Clause{}
- Die Würde des Menschen ist unantastbar. Sie zu
- achten und zu schützen ist Verpflichtung aller
- staatlichen Gewalt.
- \end{Artikel}
-\end{lstcode}
-\end{Example}%
-%
-\begin{desclist}
- \desccaption{Von \Macro{DeclareNewJuraEnvironment} unterstützte Optionen zur
- Konfigurierung neuer
- Vertragsumgebungen\label{tab:\LabelBase.DeclareNewJuraEnvironment}}%
- {Optionen für \Macro{DeclareNewJuraEnvironment} (\emph{Fortsetzung})}%
- \entry{\OptionVName{Clause}{Anweisung}}{%
- \DescRef{\LabelBase.cmd.Clause} wird innerhalb der neuen Umgebung auf
- \PName{Anweisung} abgebildet. Die \PName{Anweisung} sollte wie die für
- \DescRef{\LabelBase.env.contract} dokumentierte Anweisung genau ein
- Argument erwarten. Für eine korrekte Anwendung dieser Option sind
- erweiterte Kenntnisse über die interne Funktion von \Package{scrjura}
- notwendig. Außerdem können sich die Anforderungen an die \PName{Anweisung}
- von Version zu Version noch ändern. Daher wird derzeit empfohlen, die
- Option nicht zu verwenden!%
- }%
- \entry{\OptionVName{ClauseFont}{Anweisungen}}{%
- \leavevmode\BeginIndex{FontElement}{\PName{Name}.Clause}%
- \LabelFontElement{\PName{Name}.Clause}%
- Ist diese Option angegeben, so wird eine neues Element
- \FontElement{\PName{Name}.Clause}\IndexFontElement{\PName{Name}.Clause}
- mit \DescRef{maincls-experts.cmd.newkomafont} definiert und
- \PName{Anweisungen} für dessen Voreinstellung verwendet. Sollte das
- Element bisher als Alias definiert gewesen sein (siehe
- \DescRef{maincls-experts.cmd.aliaskomafont} in
- \autoref{sec:maincls-experts.fonts},
- \DescPageRef{maincls-experts.cmd.aliaskomafont}), so wird es stattdessen
- zu einem selbstständigen Element. Sollte das Element bereits definiert
- gewesen sein, so werden lediglich die \PName{Anweisungen} mit
- \DescRef{\LabelBase.cmd.setkomafont} als neue Einstellung gesetzt. Bitte
- beachten Sie die in \autoref{sec:\LabelBase.textmarkup},
- \DescPageRef{\LabelBase.cmd.setkomafont} erklärten Einschränkungen
- bezüglich der erlaubten \PName{Anweisungen}!%
- \EndIndex{FontElement}{\PName{Name}.Clause}%
- }%
- \entry{\OptionVName{SubClause}{Anweisung}}{%
- \DescRef{\LabelBase.cmd.SubClause} wird innerhalb der Umgebung auf
- \PName{Anweisung} abgebildet. Die \PName{Anweisung} sollte wie die für
- \DescRef{\LabelBase.env.contract} dokumentierte Anweisung genau ein
- Argument erwarten. Für eine korrekte Anwendung dieser Option sind
- erweiterte Kenntnisse über die interne Funktion von \Package{scrjura}
- notwendig. Außerdem können sich die Anforderungen an die \PName{Anweisung}
- von Version zu Version noch ändern. Daher wird derzeit empfohlen, die
- Option nicht zu verwenden!%
- }%
- \entry{\OptionVName{Sentence}{Anweisung}}{%
- \DescRef{\LabelBase.cmd.Sentence} wird innerhalb der Umgebung auf
- \PName{Anweisung} abgebildet. Die \Macro{Anweisung} sollte kein Argument
- besitzen. Normalerweise sollte sie den Zähler
- \Counter{sentence}\IndexCounter{sentence} mit
- \Macro{refstepcounter}\IndexCmd{refstepcounter} erhöhen und dann in
- geeigneter Form ausgeben. Dabei ist besonders darauf zu achten, dass keine
- unerwünschten Leerzeichen eingebaut werden!%
- }%
- \entry{\OptionVName{ClauseNumberFormat}{Anweisung}}{%
- \PName{Anweisung} legt die Formatierung für Paragraphen-Nummern innerhalb
- der Umgebung fest. Es wird eine \PName{Anweisung} mit genau einem Argument
- erwartet, der Nummer des Paragraphen. Falls diese Nummer das letzte
- Argument einer Kette von Anweisungen ist, so kann diese Kette an
- Anweisungen auch direkt angegeben werden.%
- }%
-\end{desclist}
-\EndIndexGroup
-
-
-\section{Unterstützung verschiedener Sprachen}
-\seclabel{babel}
-
-Das Paket \Package{scrjura} wurde in Zusammenarbeit mit einem Anwalt für
-Deutsches Recht entwickelt. Daher unterstützte es zunächst auch nur die
-Sprachen \PValue{german}, \PValue{ngerman}, \PValue{austrian} und
-\PValue{naustrian}. Das Paket wurde aber so entworfen, dass es mit üblichen
-Sprachpaketen wie
-\Package{babel}\important{\Package{babel}}\IndexPackage{babel}
-zusammenarbeitet. Anwender können solche Anpassungen einfach mit
-\DescRef{scrbase.cmd.providecaptionname} (siehe
-\autoref{sec:scrbase.languageSupport},
-\DescPageRef{scrbase.cmd.providecaptionname}) vornehmen. Sollten Sie über
-gesicherte Informationen zu den im juristischen Umfeld gebräuchlichen
-Begriffen in anderen Sprachen verfügen, würde sich der Autor über
-entsprechende Rückmeldungen freuen. Auf diesem Weg ist inzwischen auch
-Unterstützung für \PValue{english}, \PValue{american}, \PValue{british},
-\PValue{canadian}, \PValue{USenglish} und \PValue{UKenglish} hinzugekommen.
-
-\begin{Declaration}
- \Macro{parname}
- \Macro{parshortname}
- \Macro{sentencename}
- \Macro{sentenceshortname}
-\end{Declaration}
-Dies sind die sprachabhängigen Bezeichnungen, die von \Package{scrjura}
-verwendet werden. Die Bedeutung und die im Deutschen vordefinierten Werte sind
-\autoref{tab:scrjura.captionnames} zu entnehmen. Dabei nimmt \Package{scrjura}
-die entsprechenden Definitionen innerhalb von
-\Macro{begin}\PParameter{document} nur vor, wenn nicht bereits andere Vorgaben
-getroffen wurden. Wird \Package{scrjura} mit einer nicht unterstützten Sprache
-verwendet, so wird eine entsprechende Fehlermeldung ausgegeben.%
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}
- [{%
- Bedeutungen und Voreinstellungen sprachabhängiger Begriffe%
- }]{%
- Bedeutungen und Voreinstellungen für die sprachabhängigen Begriffe
- soweit nicht bereits definiert%
- }
- [l]
- \begin{tabular}[t]{lll}
- \toprule
- Anweisung & Bedeutung & Voreinstellung \\
- \midrule
- \Macro{parname} & Langform »Absatz« & Absatz \\
- \Macro{parshortname} & Kurzform »Absatz« & Abs. \\
- \Macro{sentencename} & Langform »Satz« & Satz \\
- \Macro{sentenceshortname} & Kurzform »Satz« & S. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.captionnames}
-\end{table}
-%
-\EndIndexGroup
-
-
-\section{Ein ausführliches Beispiel}
-\seclabel{example}
-
-Erinnern wir uns an den Brief aus \autoref{cha:scrlttr2}, in dem ein
-Vereinsmitglied die überfällige Mitgliederversammlung in Erinnerung bringen
-wollte. Damit so etwas möglich ist, muss es auch einen Verein mit einer
-Satzung geben, die das vorschreibt. Eine Vereinssatzung ist letztlich eine Art
-Vertrag und kann mit \Package{scrjura} gesetzt werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=1-2}]{scrjura-example-de.tex}%
-Als Klasse wird \Class{scrartcl} verwendet. Da es bei Satzungen eher üblich
-ist, die Absätze mit einem Abstand zu setzen, wird Option
-\OptionValueRef{maincls}{parskip}{half} verwendet (siehe
-\autoref{sec:maincls.parmarkup}, \DescPageRef{maincls.option.parskip}).
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=4-4}]{scrjura-example-de.tex}%
-Die Satzung soll in Deutsch verfasst werden. Daher wird das Paket
-\Package{babel} mit Option \Option{ngerman} geladen.
-
-\iffree{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,8-8}}]{scrjura-example-de.tex}%
-}{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,9-9}}]{scrjura-example-de.tex}%
-}%
-Es werden einige Standardeinstellungen für die Schrift vorgenommen. In
-früheren Versionen wurde im Beispiel außerdem das Paket \Package{textcomp}
-geladen, um für einige Schriften ein verbessertes Paragraphenzeichen zu
-erhalten. Diese Funktionalität ist seit \LaTeX{} 2020/02/01 jedoch in den
-\LaTeX-Kern integriert.
-
-Wie Sie am Laden von \Package{fontenc} erkennen können, wird für das Beispiel
-PDF\LaTeX{} verwendet. Soll stattdessen \LuaLaTeX{} oder \XeLaTeX{} verwendet
-werden, entfallen die beiden Zeilen. Wahlweise kann dann \Package{fontspec}
-geladen oder einfach mit den Voreinstellungen gearbeitet werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=11-11}]{scrjura-example-de.tex}%
-Später sollen Listen nicht mit arabischen Zahlen, sondern mit Kleinbuchstaben
-nummeriert werden. Dies ist beispielsweise mit dem Paket \Package{enumerate}
-möglich.
-
-\lstinputcode[{moretexcs={useshorthands,defineshorthand},%
- xleftmargin=2em,%
- linerange=13-20}]{scrjura-example-de.tex}%
-Nun ist es Zeit für \Package{scrjura}. Mit Option
-\OptionValueRef{\LabelBase}{clausemark}{forceboth} wird für Paragraphen das
-Setzen von linken und rechten Marken für Kolumnentitel erzwungen. Da
-andererseits nicht erwünscht ist, dass \DescRef{maincls.cmd.section}
-Kolumnentitel erzeugen, wird Seitenstil \PageStyle{myheadings} verwendet, der
-normalerweise keine lebenden Kolumnentitel aktiviert.
-
-Es soll später auch ein Inhaltsverzeichnis erstellt werden, in das die
-Paragraphen ebenfalls aufgenommen werden. Das wird mit
-\DescRef{\LabelBase.option.juratotoc} erreicht. Später werden wir feststellen,
-dass die voreingestellte Breite für die Paragraphennummern im
-Inhaltsverzeichnis nicht genügt. Daher wird mit
-\OptionValueRef{\LabelBase}{juratocnumberwidth}{2.5em} für etwas mehr Platz
-gesorgt.
-
-Die Definition der Abkürzungen wurde bereits in
-\autoref{sec:scrjura.shorthandexample} erklärt. Im Beispiel wurde sie
-übernommen, um später die Eingabe zu vereinfachen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=22-22}]{scrjura-example-de.tex}%
-Es ist Zeit, das eigentliche Dokument zu beginnen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=24-28}]{scrjura-example-de.tex}%
-Wie jedes Dokument hat auch eine Satzung einen Titel. Dieser wird mit den
-gewohnten \KOMAScript-Mitteln (siehe \autoref{sec:maincls.titlepage}, ab
-\autopageref{sec:maincls.titlepage}) erstellt.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=30-30}]{scrjura-example-de.tex}%
-Wie bereits erwähnt, soll ein Inhaltsverzeichnis erstellt werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=32-36}]{scrjura-example-de.tex}%
-Präambeln sind in Satzungen nicht ungewöhnlich. Hier wird sie mit
-\DescRef{maincls.cmd.addsec} gesetzt, damit sie auch einen Eintrag ins
-Inhaltsverzeichnis erhält.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=38-38}]{scrjura-example-de.tex}%
-Hier wird ein kleiner Trick angewendet. Die einzelnen Artikel der Satzung
-sollen nicht mit arabischen Zahlen, sondern mit Großbuchstaben nummeriert
-werden -- genau wie dies auch im Anhang eines Artikels mit \Class{scrartcl}
-der Fall ist.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=40-42}]{scrjura-example-de.tex}%
-Mit dem ersten Artikel beginnt auch der Vertrag.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=43-52}]{scrjura-example-de.tex}%
-Der erste Paragraph erhält neben der Nummer auch einen Titel. Dies wird auch
-bei den nachfolgenden Paragraphen so sein.
-
-Der erste Absatz des Vertrags enthält nichts Ungewöhnliches. Da es nicht der
-einzige Absatz ist, werden bei der Ausgabe jedem Absatz automatisch
-Absatznummern voran gestellt werden. Damit dies auch beim ersten Absatz
-geschieht, sind allerdings zwei \LaTeX-Läufe notwendig. Da dies für das
-Inhaltsverzeichnis ohnehin der Fall sein wird, stört das aber auch nicht
-weiter.
-
-Im zweiten Absatz stehen zwei Sätze. Hier finden zum ersten Mal die
-Abkürzungen \texttt{'S} und
-\texttt{'.} Anwendung. Mit der ersten wird lediglich eine Satznummer
-erzeugt. Mit der zweiten wird nicht nur ein Punkt, sondern nachfolgend
-auch eine Satznummer erzeugt. Beide Sätze des Absatzes sind somit nummeriert.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=53-68}]{scrjura-example-de.tex}%
-Der zweite Paragraph: Auch dieser enthält wieder mehrere Absätze, die
-teilweise auch mehrere Sätze umfassen. Im zweiten Absatz ist darüber hinaus
-eine Aufzählung zu finden. Beim letzten Absatz wurde ein Label gesetzt, da auf
-diesen später noch verwiesen werden soll.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=70-77}]{scrjura-example-de.tex}%
-Der dritte Paragraph enthält als Besonderheit einen Querverweis. In diesem
-Fall wird in der Langform mit Paragraph, Absatz und Satz referenziert. Soll
-der Satz später doch entfallen, so kann dies global durch Setzen der Option
-\OptionValueRef{\LabelBase}{ref}{nosentence} erreicht werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=79-80}]{scrjura-example-de.tex}%
-Hier gibt es nun einen ersten Spezialfall eines Paragraphen. Dieser Paragraph
-war in einer früheren Fassung der Satzung noch enthalten, wurde dann aber
-entfernt. Dabei sollen jedoch die nachfolgenden Paragraphen nicht neu
-nummeriert werden, sondern ihre alte Nummer behalten. Deshalb wurde die
-\DescRef{\LabelBase.cmd.Clause}-Anweisung nicht entfernt, sondern lediglich um
-die Eigenschaft \Option{dummy} erweitert. Außerdem kann so auch weiterhin ein
-Label für diesen Paragraphen gesetzt werden, obwohl der Paragraph selbst nicht
-angezeigt wird.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=81-85}]{scrjura-example-de.tex}%
-Es wird ein weiterer Artikel begonnen. Damit Probleme mit der
-Absatznummerierung ausgeschlossen sind, wird dazu kurzzeitig die
-\DescRef{\LabelBase.env.contract}-Umgebung unterbrochen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=86-86}]{scrjura-example-de.tex}%
-Auch der erste Paragraph im nächsten Artikel wurde gestrichen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=88-98}]{scrjura-example-de.tex}%
-Hier haben wir wieder einen echten Paragraphen. Darin wird zum einen auf einen
-der gestrichenen Paragraphen verwiesen. Zum anderen wird auch wieder ein Label
-gesetzt.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=100-105}]{scrjura-example-de.tex}%
-Hier haben wir den zweiten Spezialfall eines Paragraphen. In diesem Fall wurde
-kein Paragraph gestrichen, sondern ein neuer Paragraph eingefügt, ohne dass
-nachfolgend Paragraphen neu nummeriert werden. Dazu wurde
-\DescRef{\LabelBase.cmd.SubClause} verwendet. Somit erhält dieser Paragraph
-die Nummer des vorherigen Paragraphen, die zur Unterscheidung um ein kleines
-»a« erweitert wurde.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=107-127}]{scrjura-example-de.tex}%
-Die übrigen Paragraphen dieses Artikels enthalten nur bereits bekannte
-Anweisungen und keine neuen Besonderheiten.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=129-143}]{scrjura-example-de.tex}%
-Es folgt noch ein weiterer Artikel ohne Besonderheiten.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=145-145}]{scrjura-example-de.tex}%
-Danach endet das \LaTeX-Dokument, dessen vordere drei Seiten
-\autoref{fig:scrjura.example} zeigt.%
-%
-\begin{figure}
- \setcapindent{0pt}%
- \iffree{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-de}}\enskip
- \frame{\includegraphics[page=2,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-de}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Beispiel: Drei Seiten einer Beispielsatzung%
- }]{%
- Die ersten drei Seiten der Beispielsatzung aus
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-de}}\enskip
- \end{captionbeside}
- }{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth]{scrjura-example-de}}%
- \enskip
- \frame{\includegraphics[page=2,width=.482\textwidth]{scrjura-example-de}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Beispiel: Drei Seiten einer Beispielsatzung%
- }]{%
- Die ersten drei Seiten der Beispielsatzung aus
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth]{scrjura-example-de}}%
- \enskip
- \end{captionbeside}
- }%
- \label{fig:scrjura.example}
-\end{figure}
-
-
-\section{Entwicklungsstand}
-\seclabel{draft}
-
-Seit \KOMAScript~3.24 teilt \Package{scrjura} die Versionsnummer der Klassen
-und anderer wichtiger Pakete. Dennoch sei auf einen wichtigen Punkt
-hingewiesen: Bisher ist weder das Zusammenspiel mit vielen anderen Paketen
-noch die Funktion der \DescRef{\LabelBase.env.contract}-Umgebung mit allen
-möglichen \LaTeX-Umgebungen und Einstellungen verschiedener Klassen und Pakete
-getestet. Dies liegt nicht zuletzt daran, dass es sich bei \Package{scrjura}
-um ein sehr spezielles Paket handelt, das weit außerhalb der täglichen Praxis
-des Autors liegt. Damit ist der Autor diesbezüglich in hohem Maße auf
-ausführliche Rückmeldungen durch die Anwender angewiesen.%
\EndIndexGroup
%%% Local Variables:
@@ -1275,8 +79,5 @@ ausführliche Rückmeldungen durch die Anwender angewiesen.%
%%% eval: (flyspell-mode 1)
%%% End:
-% LocalWords: Seitenstil bedarfsweise Ebenennummer Absatznummerierung
-% LocalWords: Paragraphenüberschrift Präambeln renewcommand Gesetzestexte
-% LocalWords: Grundgesetzartikel Absatzabstand umbrechbaren Wortabstand
-% LocalWords: Beispielsatzung Paragraphensymbol Vordefinierung Absatznummer
-% LocalWords: Expandierbarkeit umbrechbarer Satznummer Paragraphenzeichen
+% LocalWords: anwaltlicher Paketmanager Kompatibilitätspaket
+% LocalWords: Originaldefinition
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-en.tex b/macros/latex/contrib/koma-script/doc/scrjura-en.tex
index a918873861..bda4771e05 100644
--- a/macros/latex/contrib/koma-script/doc/scrjura-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrjura-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrjura-en.tex
-% Copyright (c) Markus Kohm, 2011-2022
+% Copyright (c) Markus Kohm, 2011-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,1135 +24,52 @@
% ======================================================================
\KOMAProvidesFile{scrjura-en.tex}%
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2024-10-15 10:33:25 +0200 (Di, 15. Okt 2024) $
KOMA-Script guide (chapter: scrjura)]
-\translator{Alexander Willand\and Markus Kohm\and Karl Hagen}
+\translator{Markus Kohm}
\chapter{Support for the Law Office with \Package{scrjura}}
\labelbase{scrjura}
\BeginIndexGroup
\BeginIndex{Package}{scrjura}
+\BeginIndex{Package}{contract}
-If you want to write a contract\Index{contract}, the articles of association
-for a company or an association, a law, or a legal commentary, the package
-\Package{scrjura} will provide typographical support. Although
-\Package{scrjura} is intended to provide general help for legal documents, the
-contract is the central element of the package. Particular attention is paid
-to clauses, titles, and numbered provisions\,---\,if there are several of
-them in a clause\,---, numbered sentences, entries in the table of
-contents, and cross references according to German standards.
+Up to and including version~3.41, \KOMAScript{} officially provided the
+package \Package{scrjura} to support legal documents. These were mainly
+statutes, laws, commentaries on them or, in the broadest sense, contracts of
+all kinds. In the course of the restructuring of \KOMAScript{}, the package
+was spun off. Since the contract is the central element of the package, it was
+given the new name \Package{contract}. Under this name it can not only be
+found on CTAN (see \cite{package:contract}). It has also been integrated into
+common \TeX{} distributions and can be installed via their package manager.
-The package has been developed in cooperation with Dr Alexander Willand of
-Karlsruhe. Many of its features go back to constructive inquiries from Prof
-Heiner Richter of the Hochschule Stralsund University of Applied Sciences.
-
-Note\textnote{Attention!} that the package works with
-\Package{hyperref}\IndexPackage{hyperref}. Nevertheless, \Package{hyperref}
-has to be loaded after \Package{scrjura} as usual.
-
-\LoadCommonFile{options}% \section{Early or late Selection of Options}
-
-\LoadCommonFile{textmarkup}% \section{Text Markup}
-
-\section{Table of Contents}
-\seclabel{toc}
-
-The headings of clauses can also be added automatically to the table of
-contents, if desired.
-% TODO: Fix new translation
-Therefore\ChangedAt{v3.27}{\Package{scrjura}} the package uses
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-(see \autoref{sec:tocbasic.tocstyle},
-\DescPageRef{tocbasic.cmd.DeclareTOCStyleEntry}) to define an \PName{entry
- level} named \PValue{cpar}.
-% :ODOT
-
-
-\begin{Declaration}
- \OptionVName{juratotoc}{simple switch}%
- \OptionVName{juratotoc}{level number}
-\end{Declaration}
-Clauses\Index{clause} are shown in the table of contents only if their
-\PName{level number} is less than or equal to the
-\DescRef{maincls.counter.tocdepth}%
-\important{\DescRef{maincls.counter.tocdepth}}\IndexCounter{tocdepth} counter
-(see \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}). By
-default, the \PName{level number} is \Length{maxdimen}, which is also used if
-the option is switched off with the \PName{simple
- switch}\important{\OptionValue{juratotoc}{false}} (see
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}). Because the
-\DescRef{maincls.counter.tocdepth} counter usually has a one-digit value,
-clause entries are therefore not normally displayed in the table of contents.
-
-If you switch on the option using the \PName{simple switch}%
-\important{\OptionValue{juratotoc}{true}}, the \PName{level number} 2 is used
-so that clauses are shown in the table of contents on the same level as
-subsections. For the default setting of \DescRef{maincls.counter.tocdepth},
-clauses are then shown in all \KOMAScript{} classes.
-
-% TODO: Fix new translation
-Internally\ChangedAt{v3.27}{\Package{scrjura}} usage of this option results in
-a call of
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-with the \PName{style} \PValue{default} and a corresponding value of
-\Option{level} in the \PName{option list}.%
-% :ODOT
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratocindent}{indent}%
- \OptionVName{juratocnumberwidth}{number width}
-\end{Declaration}
-These two options can be used to determine the indentation for the clause
-entries in the table of contents as well as the space reserved for the numbers
-there. The defaults are the same as for subsection entries in
-\Class{scrartcl}.
-
-% TODO: Fix new translation
-Internally\ChangedAt{v3.27}{\Package{scrjura}} usage of these options results
-in calls of
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-with the \PName{style} \PValue{default} and \OptionVName{indent}{indent}
-respectively \OptionVName{numwidth}{number width} in the \PName{option list}.%
-% :ODOT
-\EndIndexGroup
-
-
-\section{Environment for Contracts}
-\seclabel{contract}
-
-\BeginIndexGroup
-\BeginIndex{}{contract}
-The essential mechanisms of \Package{scrjura} are available only inside the
-contract environment.
-
-\begin{Declaration}
- \begin{Environment}{contract}\end{Environment}
-\end{Declaration}
-Currently, this is the one and only environment for \Package{scrjura}. Using
-it activates automatic numbering of paragraphs and the
-\DescRef{\LabelBase.cmd.Clause} and \DescRef{\LabelBase.cmd.SubClause}
-commands, which will be documented below, are given concrete form.
-
-The\textnote{Attention!} \DescRef{\LabelBase.env.contract} environment must
-not be nested within itself. Within a document, however, you can use the
-environment several times. The clauses within these environments are treated
-as if they were within a single environment. As a result, ending the
-environment really only temporarily interrupts it, and the old environment is
-continued by the beginning of a new environment. However, you cannot end the
-environment within a clause.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Option{contract}
-\end{Declaration}
-The whole document becomes a contract if you use this option while loading the
-package with \DescRef{\LabelBase.cmd.usepackage}%
-\important{\DescRef{\LabelBase.cmd.usepackage}} or as a global option with
-\DescRef{\LabelBase.cmd.documentclass}%
-\important{\DescRef{\LabelBase.cmd.documentclass}}. The document then behaves
-exactly as if it contained one \DescRef{\LabelBase.env.contract} environment.
-
-Note\textnote{Attention!} that you cannot set the \Option{contract} option
-with \DescRef{\LabelBase.cmd.KOMAoption} or
-\DescRef{\LabelBase.cmd.KOMAoptions}. Thus you cannot switch the option off
-again. Instead, you should use a \DescRef{\LabelBase.env.contract} environment
-directly.%
-\EndIndexGroup
-
-
-\subsection{Clauses}
-\label{sec:scrjura.clause}
-\index{section|seealso{clause}}
-
-Clauses\footnote{%
- In English, a ``clause'' in a legal document is a section, paragraph, or
- phrase that relates to a particular point. Although it is common in English
- to also use the terms ``article'' or ``section'' for what we here call a
- ``clause'', we use the latter term throughout to avoid confusion with the
- \Class{article} class and the \DescRef{maincls.cmd.section} and
- \DescRef{maincls.cmd.paragraph} sectioning divisions of most document
- classes.} in a legal sense are defined in \Package{scrjura} only within
-contracts, that is inside the \DescRef{\LabelBase.env.contract} environment or
-other environments declared with
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} (see
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}).
-
-\begin{Declaration}
- \Macro{Clause}\OParameter{options}%
- \Macro{SubClause}\OParameter{options}
-\end{Declaration}
-These are the most important commands inside of a contract. Without using any
-additional \PName{options}, \Macro{Clause} creates the heading of a clause,
-which consists of the sign ``\S'', followed by its number. In contrast,
-\Macro{SubClause} creates the heading of a clause with the last number used by
-\Macro{Clause} and adds a lower-case letter. \Macro{SubClause} is mainly
-intended for cases where an act or a contract is amended and not only are
-clauses changed or deleted but new clauses are inserted between existing ones
-without completely changing the numbering.
-
-Both commands accept a a comma-separated list of \PName{options}. An overview
-of the available properties is shown in \autoref{tab:scrjura.Clause.options}.
-The most important of them will be discussed in more detail.
-
-\begin{table}
- \caption{Available properties for the optional argument of \Macro{Clause} and
- \Macro{SubClause}}
- \label{tab:scrjura.Clause.options}
- \begin{desctabular}
- \entry{\Option{dummy}}{%
- The heading will not be printed but is counted in the automatic
- numbering.%
- }%
- \entry{\OptionVName{head}{running head}}{%
- If running heads are active, this \PName{running head} is used instead of
- the clause \PName{title}.%
- }%
- \entry{\Option{nohead}}{%
- The running head stays unchanged.%
- }%
- \entry{\Option{notocentry}}{%
- Does not make an entry into the table of contents.%
- }%
- \entry{\OptionVName{number}{number}}{%
- Uses \PName{number} for the output of the clause number.%
- }%
- \entry{\OptionVName{preskip}{skip}}{%
- Changes the vertical \PName{skip} before the clause heading.%
- }%
- \entry{\OptionVName{postskip}{skip}}{%
- Changes the vertical \PName{skip} after the clause heading.%
- }%
- \entry{\OptionVName{title}{title}}{%
- The clause \PName{title} will be printed in addition to the clause
- number. This is also used as the default for the \PName{running head}
- and the \PName{entry} in the table of contents.%
- }%
- \entry{\OptionVName{tocentry}{entry}}{%
- Regardless of the clause \PName{title}, an \PName{entry} into the
- table of contents will be made, if such entries are activated.%
- }%
- \end{desctabular}
-\end{table}
-
-By default, a skip of two lines is inserted before the heading and a skip of
-one line afterwards. You can change the size of these skips with the
-\Option{preskip}\important[i]{\Option{preskip}, \Option{postskip}} and
-\Option{postskip} options. The new values apply not only to the current
-clause but from the current clause until the end of the current contract
-environment. You can also make the appropriate settings in advance with
-\begin{flushleft}\quad\small
- \textbf{\Macro{setkeys}}\PParameter{contract}%
- \PParameter{preskip=\PName{skip},\\
- \normalsize\quad\small
- \hspace{11.5em}postskip=\PName{skip}}
-\end{flushleft}
-regardless of the specific clause and outside of a contract environment. You
-can also set these options inside the preamble after loading
-\Package{scrjura}, but you cannot set them while loading the package or by
-using \DescRef{\LabelBase.cmd.KOMAoptions} or
-\DescRef{\LabelBase.cmd.KOMAoption}.
-
-\BeginIndex{FontElement}{contract.Clause}\LabelFontElement{contract.Clause}%
-\BeginIndex{FontElement}{Clause}\LabelFontElement{Clause}%
-By default, clause headings use the font style
-\Macro{sffamily}\Macro{bfseries}\Macro{large}. You can change this font style
-at any time using the
-\FontElement{contract.Clause}\important{\FontElement{contract.Clause}} element
-with \DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
-\DescRef{\LabelBase.cmd.addtokomafont}} and
-\DescRef{\LabelBase.cmd.addtokomafont} (see \autoref{sec:maincls.textmarkup},
-\DescPageRef{\LabelBase.cmd.setkomafont}). Inside the
-\DescRef{\LabelBase.env.contract} environment, you can also use
-\FontElement{Clause}\important{\FontElement{Clause}} instead of
-\FontElement{contract.Clause}.%
-\EndIndex{FontElement}{Clause}%
-\EndIndex{FontElement}{contract.Clause}
-
-With the \Option{title}\important[i]{\Option{title}, \Option{head},
- \Option{tocentry}}, \Option{head}, and \Option{tocentry} options, you can
-title a clause in addition to the number. You\textnote{Attention!} should put
-the value of each options inside curly brackets. Otherwise, for example,
-commas which are meant to be part of the value will be confused with the
-delimiters between different options. Empty values for \Option{head} and
-\Option{tocentry} cause empty entries. If you want to avoid an entry, use the
-\Option{nohead}\important[i]{\Option{nohead}, \Option{notocentry}} and
-\Option{notocentry} options.
-
-Instead of consecutive numbers, you can also set a clause number manually with
-the \Option{number}\important{\Option{number}} option. However, this does not
-affect the numbers of the subsequent clauses. Empty numbers are not possible.
-Fragile commands inside \PName{number} have to be protected with
-\Macro{protect}. You\textnote{Attention!} should use only numbers and letters
-as a \Option{number}.
-
-With the \Option{dummy}\important{\Option{dummy}} option, you can suppress the
-output of the whole heading of a clause. The automatic numbering, however,
-will still count this clause. In this way, you can skip an automatically
-numbered clause with\textnote{Example}
-\begin{lstcode}
- \Clause{dummy}
-\end{lstcode}
-in case the clause corresponding clause has been deleted in a later version of
-a contract.
-
-Note\textnote{Attention!} that the \Option{dummy} option only accepts the
-values \PValue{true} and \PValue{false}. All other values are usually ignored,
-but can lead to an error message in the worst case scenario.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{Clauseformat}\Parameter{number}
-\end{Declaration}
-As already mentioned, clauses and subclauses are normally numbered. The number
-is formatted with the help of the \Macro{Clauseformat} command, which expects
-the number as the only argument. The default is the following:
-\begin{lstcode}
- \newcommand*{\Clauseformat}[1]{\S~#1}
-\end{lstcode}
-This produces the section mark, \Macro{S}\IndexCmd{S} (\S), followed by a
-non-breaking space and the number. If you redefine this command, be sure it
-remains expandable.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratitlepagebreak}{simple switch}
-\end{Declaration}%
-Usually, page breaks are prohibited within heading of all kinds. However, some
-lawyers require page breaks within clause headings. You can allow such a break
-by using \Option{juratitlepagebreak}\important{\Option{juratitlepagebreak}}.
-You can find the available values for \PName{simple switch} in
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.%
-\EndIndexGroup
-
-\begin{Declaration}
- \OptionVName{clausemark}{value}
-\end{Declaration}%
-Since clauses are a subordinate structure with independent numbering, they do
-not produce running heads by default. You can, however, create running heads
-with various settings. You can find the available \PName{values} and their
-meanings in \autoref{tab:scrjura.clausemark}.%
-%
-\begin{table}
- \caption{Available values for the \Option{clausemark} option to activate
- running heads}%
- \label{tab:scrjura.clausemark}%
- \begin{desctabular}
- \entry{\PValue{both}}{%
- Clauses generate left and right marks for running heads, if the document
- provides automatic running heads.%
- \IndexOption{clausemark~=\textKValue{both}}%
- }%
- \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
- Clauses do not generate marks for running heads and therefore do not
- change running heads.%
- \IndexOption{clausemark~=\textKValue{false}}%
- }%
- \entry{\PValue{forceboth}}{%
- Clauses use \DescRef{maincls.cmd.markboth} to generate left and right
- marks for running heads even if the document does not provide automatic
- running heads for the current page style.%
- \IndexOption{clausemark~=\textKValue{forceboth}}%
- }%
- \entry{\PValue{forceright}}{%
- Clauses use \DescRef{maincls.cmd.markright} to generate right marks for
- running heads even if the document does not provide automatic running
- heads for the current page style.%
- \IndexOption{clausemark~=\textKValue{forceright}}%
- }%
- \entry{\PValue{right}}{%
- Clauses generate right marks for running heads, if the document provides
- automatic running heads.%
- \IndexOption{clausemark~=\textKValue{right}}%
- }%
- \end{desctabular}
-\end{table}
-%
-\EndIndexGroup
-
-
-\subsection{Paragraphs}
-\label{sec:scrjura.par}
-\BeginIndexGroup
-\BeginIndex{}{paragraph>numbering}%
-Within clauses, \Package{scrjura} usually numbers paragraphs automatically.
-With this, the paragraphs provide a powerful structuring element, similar to
-\DescRef{maincls.cmd.paragraph} or \DescRef{maincls.cmd.subparagraph} in
-normal documents. For this reason, contracts usually use a vertical skip
-between paragraphs. The \Package{scrjura} package does not provide its own
-mechanism for this. Instead, it uses the \DescRef{maincls.option.parskip}%
-\IndexOption{parskip}\important{\DescRef{maincls.option.parskip}} option of
-the \KOMAScript{} classes (see \autoref{sec:maincls.parmarkup},
-\DescPageRef{maincls.option.parskip}).
-
-
-\begin{Declaration}
- \OptionVName{parnumber}{value}
-\end{Declaration}
-The default numbering of paragraphs is \OptionValue{parnumber}{auto} and
-\OptionValue{parnumber}{true}. Sometimes you may need to disable the automatic
-numbering. You can do this with \OptionValue{parnumber}{false}%
-\important{\OptionValue{parnumber}{false}}%
-\IndexOption{parnumber~=\textKValue{false}}. In this case, only the sentence
-numbering is reset.
-
-To implement this option, it has been necessary to hook into the
-paragraph-building mechanism of \LaTeX. In some rare cases, this can have a
-negative effect. If so, you can undo the change with
-\OptionValue{parnumber}{manual}%
-\important{\OptionValue{parnumber}{manual}}%
-\IndexOption{parnumber~=\textKValue{manual}}. On the other hand, \LaTeX{}
-itself sometimes undoes the change. In those cases you can activate it again
-with \OptionValue{parnumber}{auto}%
-\important{\OptionValue{parnumber}{auto}}%
-\IndexOption{parnumber~=\textKValue{auto}}.
-
-Clauses that consist of a single paragraph do not automatically receive a
-paragraph number. For this to work, there must not be two clauses with an
-identical number in a document. However should you ever need such numbering,
-you should switch to another contract environment (see
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment},
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}).
-Note\textnote{Attention!} that the number of paragraphs in a clause is not
-available before the end of the clause. Therefore you need a least two
-\LaTeX{} runs before the automatic paragraph numbering is correct.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Counter{par}%
- \Macro{thepar}%
- \Macro{parformat}%
- \Macro{parformatseparation}
-\end{Declaration}%
-For numbering the paragraphs inside a clause we use the \Counter{par} counter.
-The output of \Macro{thepar} will display an Arabic number, because the
-default is \Macro{arabic}\PParameter{par}. \Macro{parformat} provides the
-format, which is \Macro{thepar} in rounded brackets. When numbering a
-paragraph manually, you should also use \Macro{parformat}. It makes sense to
-call \Macro{parformat} with a subsequent \Macro{parformatseparation}, or at
-least a \Macro{nobreakspace} or tilde.
-
-With\ChangedAt{v0.7}{\Package{scrjura}} automatic numbering, \Macro{parformat}
-is followed by \Macro{parformatseparation}, which currently consists of
-\Macro{nonbreakspace}, the non-breakable space.
-
-\BeginIndex{FontElement}{parnumber}\LabelFontElement{parnumber}%
-The paragraph number is usually printed using the currently active font.
-However, you can change this default for the \FontElement{parnumber} element
-at any time with \DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
-\DescRef{\LabelBase.cmd.addtokomafont}} and
-\DescRef{\LabelBase.cmd.addtokomafont} (see
-\autoref{sec:\LabelBase.textmarkup},
-\DescPageRef{\LabelBase.cmd.setkomafont}).%
-\EndIndex{FontElement}{parnumber}%
-
-Note\textnote{Attention!} that \Package{scrjura} assumes internally that
-\Macro{thepar} is an Arabic number. Therefore you should definitely not
-redefine it!%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{withoutparnumber}
-\end{Declaration}
-If the paragraph number is not printed, \Package{scrjura} executes the
-\Macro{withoutparnumber} command at the beginning of the new paragraph. The
-initial definition of this command is empty. This means it is a kind of dummy
-command that does nothing. It has been implemented because of a user request.
-Most users can ignore this command.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{ellipsispar}\OParameter{number}%
- \Macro{parellipsis}
-\end{Declaration}
-Sometimes\ChangedAt{v0.7}{\Package{scrjura}}\,---\,particularly in comparative
-commentaries\,---\,it is desirable to omit paragraphs but to mark the
-omission. Those omitted paragraphs\Index{paragraph>omission} should be taken
-into account by the paragraph counter. The package \Package{scrjura} provides
-the command \Macro{ellipsispar} to do this.
-
-By default, \Macro{ellipsispar} omits precisely one paragraph. Using the
-optional argument, you can omit multiple paragraphs. In any case, the output
-shows just one unnumbered paragraph, which consists only of the ellipsis
-defined by \Macro{parellipsis}. The automatic numbering of paragraphs takes
-the \PName{number} of omitted paragraphs into account.
-\begin{Example}
- Suppose you are writing a comment on the German\footnote{Please remember,
- this translation does not refer to an existing law but is only an example
- of how you might realise such a commentary with \Package{scrjura}.} penal
- code, but only on paragraph 3 of \S~2. Nevertheless, you'd like to indicate
- the omission indirectly. You can do this with:
-\begin{lstcode}
- \documentclass[parskip=half]{scrartcl}
- \usepackage{scrjura}
- \begin{document}
- \begin{contract}
- \Clause{title={Temporal application},number=2}
- \ellipsispar[2]
-
- If the law that applies at the time the criminal act is
- committed is changed before the verdict, then the most
- lenient law shall be applicable.
-
- \ellipsispar[3]
- \end{contract}
- \end{document}
-\end{lstcode}
- To see the result, just give it a try.
-\end{Example}
-
-The ellipsis is by default \Macro{textellipsis}\IndexCmd{textellipsis}, if
-such a command is defined. If not, \Macro{dots} is used. You can redefine
-\Macro{parellipsis} at any time with \Macro{renewcommand}.%
-\EndIndexGroup
-%
-\EndIndexGroup
-
-
-\subsection{Sentences}
-\label{sec:scrjura.sentence}
-
-\BeginIndexGroup%
-\BeginIndex{}{sentence>number}%
-Paragraphs in contracts consist of one or more sentences, some of which may
-also be numbered. However, as automatic numbering is cumbersome and
-error-prone, it has not yet been implemented in
-\Package{scrjura}. Semi-automatic numbering, however, is supported.
+For compatibility reasons, there will still be a package \Package{scrjura} in
+\KOMAScript{} for the time being. However, this is merely a different
+packaging of the new \Package{contract}, in which some of the
+incompatibilities between the new package and the previous \Package{scrjura}
+have been fixed. Therefore, it should generally be possible to continue
+editing existing documents based on \Package{scrjura}. For new documents, it
+is strongly recommended to switch to \Package{contract} instead. Switching is
+also recommended when revising old documents. Please refer to the
+\Package{contract} user manual for the changes to be taken into account.
\begin{Declaration}
- \Counter{sentence}
- \Macro{thesentence}
- \Macro{sentencenumberformat}
- \Macro{Sentence}
+ \Macro{Clause}\Parameter{options}%
+ \Macro{SubClause}\Parameter{options}
\end{Declaration}
-Manual numbering of sentences is done with the \Macro{Sentence} command. It
-adds one to the \Counter{sentence} counter. By default,
-\Macro{sentencenumberformat}\ChangedAt{v3.26}{\Package{scrjura}} prints
-\Macro{thesentence} as an Arabic number in superscript.
-
-\BeginIndex{FontElement}{sentencenumber}\LabelFontElement{sentencenumber}%
-The\ChangedAt{v3.26}{\Package{scrjura}} sentence number is usually printed
-using the currently active font. However, you can change this default for the
-\FontElement{parnumber} element at any time with
-\DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} and
-\DescRef{\LabelBase.cmd.addtokomafont} (see
-\autoref{sec:\LabelBase.textmarkup},
-\DescPageRef{\LabelBase.cmd.setkomafont}).%
-\EndIndex{FontElement}{sentencenumber}%
-
-Using\textnote{Hint!} \Package{babel}\IndexPackage{babel} offers an easy way
-to define a shorthand for \Macro{Sentence}:%
-\phantomsection\label{sec:scrjura.shorthandexample}%
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \useshorthands{'}
- \defineshorthand{'S}{\Sentence\ignorespaces}
-\end{lstcode}
-With this definition, any space after \lstinline|'S| will be ignored. You can
-even use the dot as an abbreviation for a dot and a new sentence number:
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \defineshorthand{'.}{. \Sentence\ignorespaces}
-\end{lstcode}
-For details regarding \Macro{useshorthands} and \Macro{defineshorthands},
-please consult the manual of the \Package{babel} package (see
-\cite{package:babel}). You can find an example of their application in
-\autoref{sec:scrjura.example}, \autopageref{sec:scrjura.example}.%
-\EndIndexGroup
+The most important difference when using \Package{scrjura} compared to
+\Package{contract} is that the \PName{options} for the two instructions
+\Macro{Clause} and \Macro{SubClause} within a \Environment{contract}
+environment with package \Package{contract} represent an optional argument,
+i.e. must be specified in square brackets. In the \Package{scrjura} package,
+however, the \PName{options} were always a required argument, i.e. to be
+specified in braces. This is still the case with \Package{scrjura}.%
%
\EndIndexGroup
%
\EndIndexGroup
-
-\section{Cross-References}
-\seclabel{ref}
-
-The conventional mechanism to set cross-references using
-\Macro{label}\IndexCmd{label}\important{\Macro{label}}, \Macro{ref}, and
-\Macro{pageref} does not suffice for clauses, paragraphs, and sentences.
-Therefore \Package{scrjura} provides additional commands.
-
-\begin{Declaration}
- \Macro{ref}\Parameter{label}%
- \Macro{refL}\Parameter{label}%
- \Macro{refS}\Parameter{label}%
- \Macro{refN}\Parameter{label}
-\end{Declaration}
-The commands \Macro{refL}, \Macro{refS}, and \Macro{refN} give a full
-reference to clause, paragraph and sentence. \Macro{refL} is a long text,
-\Macro{refS} a short text, and \Macro{refN} an abbreviated, numeric form.
-\Macro{ref} defaults to \Macro{refL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refClause}\Parameter{label}%
- \Macro{refClauseN}\Parameter{label}
-\end{Declaration}
-These commands reference a clause without displaying the paragraph or
-sentences. \Macro{refClause} puts a section mark (\S) in front of the
-reference, while \Macro{refClauseN} does not.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refPar}\Parameter{label}%
- \Macro{refParL}\Parameter{label}%
- \Macro{refParS}\Parameter{label}%
- \Macro{refParN}\OParameter{number format}\Parameter{label}
-\end{Declaration}
-You can reference just a paragraph with \Macro{refParL}, \Macro{refParS} and
-\Macro{refParN}. The differences between the forms correspond to the
-differences between \DescRef{\LabelBase.cmd.refL},
-\DescRef{\LabelBase.cmd.refN} and \DescRef{\LabelBase.cmd.refS}. A feature
-worth noting is the optional argument of \Macro{refParN}. Usually the numeric
-reference to a paragraph uses a Roman number. You can, however, specify a
-different \PName{number format} in the optional argument. This option
-primarily makes sense to use Arabic numbers. By default, \Macro{refPar} is
-\Macro{refParL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refSentence}\Parameter{label}%
- \Macro{refSentenceL}\Parameter{label}%
- \Macro{refSentenceS}\Parameter{label}%
- \Macro{refSentenceN}\Parameter{label}
-\end{Declaration}
-You can reference a sentence with \Macro{refSentenceL}, \Macro{refSentenceS},
-or \Macro{refSentenceN}. Again, there is a long text form, a short text form,
-and a numerical form. By default, \Macro{refSentence} is
-\Macro{refSentenceL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{ref}{value}
-\end{Declaration}
-The results of \DescRef{\LabelBase.cmd.ref}, \DescRef{\LabelBase.cmd.refPar},
-and \DescRef{\LabelBase.cmd.refSentence} depend on the \PName{value} of the
-\Option{ref} option. The defaults are \DescRef{\LabelBase.cmd.refL},
-\DescRef{\LabelBase.cmd.refParL} and \DescRef{\LabelBase.cmd.refSentenceL}.
-You can find the available values and their meaning in
-\autoref{tab:scrjura.ref}.%
-%
-\begin{table}
-%\begin{desclist}
-% \desccaption
- \caption[{%
- Available values for the \Option{ref} option to configure the
- cross-reference format%
- }]{%
- Available values for the \Option{ref} option to configure the
- cross-reference format of \DescRef{\LabelBase.cmd.ref},
- \DescRef{\LabelBase.cmd.refPar}, and \DescRef{\LabelBase.cmd.refSentence}%
- \label{tab:scrjura.ref}%
- }%
- \begin{desctabular}
- \entry{\PValue{long}}{%
- A combination of \PValue{parlong} and \PValue{sentencelong}.%
- \IndexOption{ref~=\textKValue{long}}%
- }%
- \entry{\PValue{numeric}}{%
- A combination of \PValue{parnumeric} and \PValue{sentencenumeric}.%
- \IndexOption{ref~=\textKValue{numeric}}%
- }%
- \entry{\PValue{clauseonly}, \PValue{onlyclause}, \PValue{ClauseOnly},
- \PValue{OnlyClause}}{%
- A combination of \PValue{paroff} and \PValue{sentenceoff}. Note that
- \DescRef{\LabelBase.cmd.refPar} and \DescRef{\LabelBase.cmd.refSentence}
- produce empty results!%
- \IndexOption{ref~=\textKValue{long}}%
- }%
- \entry{\PValue{parlong}, \PValue{longpar}, \PValue{ParL}}{%
- Paragraphs are referenced in long textual form.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }%
- \entry{\PValue{parnumeric}, \PValue{numericpar}, \PValue{ParN}}{%
- Paragraphs are referenced in simple numerical form.%
- \IndexOption{ref~=\textKValue{parnumeric}}%
- }%
- \entry{\PValue{paroff}, \PValue{nopar}}{%
- Paragraphs have no reference. Note that \DescRef{\LabelBase.cmd.refPar}
- produces an empty result!%
- \IndexOption{ref~=\textKValue{paroff}}%
- }%
- \entry{\PValue{parshort}, \PValue{shortpar}, \PValue{ParS}}{%
- Paragraphs are referenced in short textual form.%
- \IndexOption{ref~=\textKValue{parshort}}%
- }%
- \entry{\PValue{sentencelong}, \PValue{longsentence}, \PValue{SentenceL}}{%
- Sentences are referenced in long textual form.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }%
- \entry{\PValue{sentencenumeric}, \PValue{numericsentence},
- \PValue{SentenceN}}{%
- Sentences are referenced in simple numeric form.%
- \IndexOption{ref~=\textKValue{sentencenumeric}}%
- }%
- \entry{\PValue{sentenceoff}, \PValue{nosentence}}{%
- Sentences have no reference. Note that
- \DescRef{\LabelBase.cmd.refSentence} produces an empty result!%
- \IndexOption{ref~=\textKValue{sentenceoff}}%
- }%
- \entry{\PValue{sentenceshort}, \PValue{shortsentence},
- \PValue{SentenceS}}{%
- Sentences are referenced in short textual form.%
- \IndexOption{ref~=\textKValue{sentenceshort}}%
- }%
- \entry{\PValue{short}}{%
- A combination of \PValue{parshort} and \PValue{sentenceshort}.%
- \IndexOption{ref~=\textKValue{value}}%
- }%
-\end{desctabular}
-\end{table}
-
-\begin{Example}
- Suppose you always want to reference paragraphs in the form ``paragraph 1
- in clause 1''. As there is no predefined command for this, you have
- to create your own definition from the available options. You can achieve
- this easily with:%
-\begin{lstcode}
- \newcommand*{\refParM}[1]{%
- paragraph~\refParN[arabic]{#1}
- in clause~\refClauseN{#1}%
- }
-\end{lstcode}
- This new command can be used in the same way as
- \DescRef{\LabelBase.cmd.refParL}.%
-\end{Example}%
-
-You can find examples of results of the basic commands in
-\autoref{tab:scrjura.refexamples}.%
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}{Example outputs of the \Option{ref}-independent
- cross-reference commands}[l]
- \begin{tabular}[t]{ll}
- \toprule
- Command & Example output \\
- \midrule
- \DescRef{\LabelBase.cmd.refL}\Parameter{label} & \S{} 1 paragraph 1 sentence 1 \\
- \DescRef{\LabelBase.cmd.refS}\Parameter{label} & \S{} 1 par. 1 sent. 1 \\
- \DescRef{\LabelBase.cmd.refN}\Parameter{label} & \S{} 1 I 1. \\
- \DescRef{\LabelBase.cmd.refClause}\Parameter{label} & \S{} 1 \\
- \DescRef{\LabelBase.cmd.refClauseN}\Parameter{label} & 1 \\
- \DescRef{\LabelBase.cmd.refParL}\Parameter{label} & paragraph 1 \\
- \DescRef{\LabelBase.cmd.refParS}\Parameter{label} & par. 1 \\
- \DescRef{\LabelBase.cmd.refParN}\Parameter{label} & I \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{arabic}\Parameter{label} & 1 \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{roman}\Parameter{label} & i \\
- \DescRef{\LabelBase.cmd.refSentenceL}\Parameter{label} & sentence 1 \\
- \DescRef{\LabelBase.cmd.refSentenceS}\Parameter{label} & sent. 1 \\
- \DescRef{\LabelBase.cmd.refSentenceN}\Parameter{label} & 1. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.refexamples}
-\end{table}
-\EndIndexGroup
-
-
-\section{Additional Environments}
-\seclabel{newenv}
-
-Some users do not use \Package{scrjura} to draft contracts or commentaries on
-individual laws but to examine different types of laws, which may not
-necessarily use the section prefix (\S) before the title of each clause but
-perhaps something like ``Art.'' or ``IAS'', and so forth. An independent
-counter is also required for each of these different clause types.
-
-\begin{Declaration}
- \Macro{DeclareNewJuraEnvironment}\Parameter{name}\OParameter{options}%
- \Parameter{start commands}\Parameter{end commands}
-\end{Declaration}
-You\ChangedAt{v0.9}{\Package{scrjura}} can use this command to define new and
-independent environments for contracts or other legal texts. The argument
-\PName{name} is the name of the new environment, of course. The \PName{start
-commands} are commands which will be executed at the beginning of the
-environment, as if they were added directly after
-\Macro{begin}\Parameter{name}. Correspondingly \PName{end commands} will be
-executed at the end of the environment, as if added directly before
-\Macro{end}\Parameter{name}. Without any \PName{options} the new environment
-behaves like the \DescRef{\LabelBase.env.contract} environment, but with its
-own counters. It is possible to set \PName{options} in a comma-separated list.
-See \autoref{tab:\LabelBase.DeclareNewJuraEnvironment} for the currently
-supported \PName{options}.
-
-\begin{desclist}
- \desccaption{Options provided by \Macro{DeclareNewJuraEnvironment} for new
- contract environments\label{tab:\LabelBase.DeclareNewJuraEnvironment}}%
- {Options of \Macro{DeclareNewJuraEnvironment} (\emph{continued})}%
- \entry{\OptionVName{Clause}{command}}{%
- Defines the \PName{command} to which the \DescRef{\LabelBase.cmd.Clause}
- command is mapped within the environment. This \PName{command}, like the
- one documented for \DescRef{\LabelBase.env.contract}, expects exactly one
- argument. To use it correctly requires advanced knowledge of the
- \Package{scrjura}'s internal functioning. Furthermore, the requirements
- for the \PName{command} may change in future versions. Therefore it is
- recommended not to use this option!%
- }%
- \entry{\OptionVName{ClauseFont}{commands}}{%
- \leavevmode\BeginIndex{FontElement}{\PName{Name}.Clause}%
- \LabelFontElement{\PName{Name}.Clause}%
- If this option is used, a new
- \FontElement{\PName{Name}.Clause}\IndexFontElement{\PName{Name}.Clause}
- element is defined using
- \DescRef{maincls-experts.cmd.newkomafont}\IndexCmd{newkomafont}, with the
- \PName{commands} used as its default setting. If the element was
- previously defined as an alias (see
- \DescRef{maincls-experts.cmd.aliaskomafont} in
- \autoref{sec:maincls-experts.fonts},
- \DescPageRef{maincls-experts.cmd.aliaskomafont}), it will become an
- independent element instead. If it has already been defined as an
- independent element, \DescRef{\LabelBase.cmd.setkomafont} is used to set
- the \PName{commands} a new font settings. Please note the limitations for
- font settings in \autoref{sec:\LabelBase.textmarkup},
- \DescPageRef{\LabelBase.cmd.setkomafont}.
- \EndIndex{FontElement}{\PName{Name}.Clause}%
- }%
- \entry{\OptionVName{SubClause}{command}}{%
- Defines the \PName{command} to which the
- \DescRef{\LabelBase.cmd.SubClause} command is mapped within the
- environment. This \PName{command}, like the one documented for
- \DescRef{\LabelBase.env.contract}, expects exactly one argument. To use it
- correctly requires advanced knowledge of the \Package{scrjura}'s internal
- functioning. Furthermore, the requirements for the \PName{command} may
- change in future versions. Therefore it is recommended not to use this
- option!%
- }%
- \entry{\OptionVName{Sentence}{command}}{%
- Defines the \PName{command} to which the
- \DescRef{\LabelBase.cmd.Sentence} is mapped within the environment. This
- \PName{command} must not have an argument. Typically it should add one to
- the \Counter{sentence}\IndexCounter{sentence} (using
- \Macro{refstepcounter}\IndexCmd{refstepcounter}) counter and display it
- appropriately. It is particularly important to avoid adding unwanted
- spaces.%
- }%
- \entry{\OptionVName{ClauseNumberFormat}{command}}{%
- Formats the numbers of clauses within the environment. The \PName{command}
- should expect exactly one argument: the number of the clause. If the
- \PName{command} implements a series of commands and the number is the last
- argument of a that series, you can directly use the series of commands as
- \PName{command}.%
- }
-\end{desclist}
-\begin{Example}
- To define the environment for articles we mentioned in the preface of this
- section, it is sufficient to write:
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]{}{}
-\end{lstcode}
- If we are using a \KOMAScript{} class and want to separate the paragraphs in
- this environment with space instead of using paragraph indentation, we can
- use:
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]
- {\KOMAoptions{parskip}}{}
-\end{lstcode}
- In cross-references, ``Art.'' will of course be used instead of ``\S''.%
-
- The new environment is used like \DescRef{\LabelBase.env.contract}:
-\begin{lstcode}
- \begin{Article}
- \Clause{}
- Human dignity is inviolable. To respect and protect people is a
- duty of all state authority.
- \end{Article}
-\end{lstcode}
-\end{Example}%
-\EndIndexGroup
-
-
-\section{Support for Different Languages}
-\seclabel{babel}
-
-The \Package{scrjura} package has been developed in cooperation with a German
-lawyer. Therefore it initially supported only the languages \PValue{german},
-\PValue{ngerman}, \PValue{austrian}, and \PValue{naustrian}. Nevertheless, it
-has been designed to support common language packages like
-\Package{babel}\important{\Package{babel}}\IndexPackage{babel}. Users can
-easily make changes by using \DescRef{scrbase.cmd.providecaptionname} (see
-\autoref{sec:scrbase.languageSupport},
-\DescPageRef{scrbase.cmd.providecaptionname}). If you have definitive
-information about the correct legal terms and conventions of a language,
-please contact the \KOMAScript{} author. Support for English has been added in
-this way, and so \Package{scrjura} now also provides terms for the languages
-\PValue{english}, \PValue{american}, \PValue{british}, \PValue{canadian},
-\PValue{USenglish}, and \PValue{UKenglish}.
-
-\begin{Declaration}
- \Macro{parname}%
- \Macro{parshortname}%
- \Macro{sentencename}%
- \Macro{sentenceshortname}
-\end{Declaration}
-These are the language-dependent terms used by \Package{scrjura}. The meaning
-of the terms and their English defaults are shown in
-\autoref{tab:scrjura.captionnames}. The package itself defines them by using
-\DescRef{scrbase.cmd.providecaptionname} inside
-\Macro{begin}\PParameter{document} only if other requirements have not already
-been met. If you use \Package{scrjura} with an unsupported language, the
-package will throw an error.%
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}
- [{%
- Meanings and English defaults of language-dependent terms%
- }]{%
- Meanings and English defaults of language-dependent terms, if not
- already defined%
- } [l]
- \begin{tabular}[t]{lll}
- \toprule
- Command & Meaning & Default \\
- \midrule
- \Macro{parname} & long form ``paragraph'' & paragraph \\
- \Macro{parshortname} & short form ``paragraph'' & par. \\
- \Macro{sentencename} & long form ``sentence'' & sentence \\
- \Macro{sentenceshortname} & short form ``sentence'' & sent. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.captionnames}
-\end{table}
-%
-\EndIndexGroup
-
-
-\section{A Detailed Example}
-\seclabel{example}
-
-You may remember the letter from \autoref{cha:scrlttr2}, in which a club
-member wanted to remind the board about an overdue meeting that was prescribed
-by the club's by-laws. Such club by-laws are a kind of contract, and you can
-create them using \Package{scrjura}.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=1-2}]{scrjura-example-en.tex}%
-We use class \Class{scrartcl}. Because paragraph distance instead of paragraph
-indentation is usual in club by-laws, we load the class with option
-\OptionValueRef{maincls}{parskip}{half} (see \autoref{sec:maincls.parmarkup},
-\DescPageRef{maincls.option.parskip}).
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=4-4}]{scrjura-example-en.tex}%
-The club rules are in British English. Therefore we load the \Package{babel}
-package with the \Option{british} option too.
-
-\iffree{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,8-8}}]{scrjura-example-en.tex}%
-}{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,9-9}}]{scrjura-example-en.tex}%
-}%
-We make some default font settings. Earlier versions of the example also
-loaded the \Package{textcomp} package here for an improved section mark
-(\S). Since \LaTeX{} 2020/02/01, however, the desired functionality is directly
-integrated in the \LaTeX{} kernel.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=11-11}]{scrjura-example-en.tex}%
-Later in the document, we want lists numbered not with Arabic numbers but with
-lower-case letters. We can do this easily with the \Package{enumerate}
-package. Alternatively, we could have used the \Package{enumitem} package.
-
-\lstinputcode[{moretexcs={useshorthands,defineshorthand},%
- xleftmargin=2em,%
- linerange=13-21}]{scrjura-example-en.tex}%
-Now it is time for \Package{scrjura}. The
-\OptionValueRef{\LabelBase}{clausemark}{forceboth} option forces clauses to
-create left and right marks for the running head. On the other hand, we do not
-want \DescRef{maincls.cmd.section} to change the marks for the running head.
-Therefore we use the \PageStyle{myheadings} page style. This page style
-generally does not provide automatic running heads.
-
-Later, we also want a table of contents with the clauses. This can be achieved
-with the \DescRef{\LabelBase.option.juratotoc} option. Doing so we will see
-that the default width for these numbers is insufficient for the clause
-numbers in the table of contents. With
-\OptionValueRef{\LabelBase}{juratocnumberwidth}{2.5em}, we reserve more space.
-
-The definition of shorthands has already been explained in
-\autoref{sec:scrjura.shorthandexample}. In this example we do the same thing
-to simplify the input.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=23-23}]{scrjura-example-en.tex}%
-It is time to begin the actual document.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=25-29}]{scrjura-example-en.tex}%
-Like other documents, the by-laws have a title. We created it with the usual
-\KOMAScript{} commands (see \autoref{sec:maincls.titlepage}, starting on
-\autopageref{sec:maincls.titlepage}).
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=31-31}]{scrjura-example-en.tex}%
-As already mentioned, we want to create a table of contents.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=33-37}]{scrjura-example-en.tex}%
-Preambles are not unusual in club by-laws. Here we use
-\DescRef{maincls.cmd.addsec} to create one because we want it to have an entry
-in the table of contents.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=39-39}]{scrjura-example-en.tex}%
-Here we use a small trick. The articles of the club by-laws should be numbered
-with upper-case letters instead of Arabic numbers, just as
-the appendix sections of an article using \Class{scrartcl} are.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=41-43}]{scrjura-example-en.tex}%
-We begin the contract with the first article.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=44-54}]{scrjura-example-en.tex}%
-The first clause has a number and a title. We will do the same with all
-following clauses.
-
-The first paragraph of the clause contains nothing unusual. Because it is not
-the only paragraph, every paragraph will be automatically preceded by a
-paragraph number. Note that the numbering the first paragraph requires at
-least two \LaTeX{} runs. Since this is the case for the table of contents as
-well, this does not create any additional problems.
-
-In the second paragraph we have two sentences. Here we can see the shorthands
-\texttt{'S} and \texttt{'.} in action. The first one only generates the
-sentence number. The second one generates not only the full stop but also the
-sentence number. With this, both sentences are numbered.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=55-70}]{scrjura-example-en.tex}%
-The second clause: again this contains several paragraphs, some of which
-include several sentences. The second paragraph also has a numbered list. In
-the last paragraph, we set a label, because we want to reference it later.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=72-78}]{scrjura-example-en.tex}%
-The third clause contains something special: a cross-reference. Here we use
-the long form with clause, paragraph, and sentence. If we decided later that
-sentences should not be included in the reference, we could use the
-\OptionValueRef{\LabelBase}{ref}{nosentence} option to set this globally.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=80-81}]{scrjura-example-en.tex}%
-Here we have a special kind of clause. In earlier versions of the club by-laws,
-this was a real clause, but it was later removed. However, the
-numbering of the following clauses should not be changed by removing this
-one. Therefore the \DescRef{\LabelBase.cmd.Clause} statement has not been
-removed but supplemented by option \Option{dummy}. With this, we also can set
-a label even though the clause will not be printed.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=82-86}]{scrjura-example-en.tex}%
-Another article begins. To avoid problems with the paragraph numbering, we
-interrupt the \DescRef{\LabelBase.env.contract} environment.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=87-87}]{scrjura-example-en.tex}%
-The first clause of the next article also has been deleted.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=89-98}]{scrjura-example-en.tex}%
-Here we have a real clause again. We cross-reference one of the deleted
-clauses and also set a label.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=100-104}]{scrjura-example-en.tex}%
-Once more, this is a special kind of clause. This time we have not removed a
-clause but added one without renumbering the following clauses. To do so,
-we use \DescRef{\LabelBase.cmd.SubClause}. Therefore the clause number is the
-same like the previous one but with an appended ``a''.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=106-126}]{scrjura-example-en.tex}%
-The other clauses of this article are very usual. You already know all the
-features used for them.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=128-141}]{scrjura-example-en.tex}%
-There follows another article no special features.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=143-143}]{scrjura-example-en.tex}%
-Then the \LaTeX{} document ends. You can see first three pages in
-\autoref{fig:scrjura.example}.%
-%
-\begin{figure}
- \setcapindent{0pt}%
- \iffree{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-en}}\enskip
- \frame{\includegraphics[page=2,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-en}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Example: First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }]{%
- First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-en}}\enskip
- \end{captionbeside}
- }{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth]{scrjura-example-en}}%
- \enskip
- \frame{\includegraphics[page=2,width=.482\textwidth]{scrjura-example-en}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Example: First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }]{%
- First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth]{scrjura-example-en}}%
- \enskip
- \end{captionbeside}
- }%
- \label{fig:scrjura.example}
-\end{figure}
-
-\section{State of Development}
-\seclabel{draft}
-
-Since \KOMAScript~3.24, the \Package{scrjura} package has shared the version
-number of the classes and other important packages of \KOMAScript.
-Nevertheless, you should note that so far, the interaction of the
-\DescRef{\LabelBase.env.contract} environment with the many different settings
-possible with other \LaTeX{} environments, packages, or classes has not been
-tested. The main reason for this is that \Package{scrjura} is very specialised
-and far beyond the author's ordinary practice. So the author mostly relies on
-detailed user feedback.%
-\EndIndexGroup
-
\endinput
%%% Local Variables:
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf b/macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf
deleted file mode 100644
index 57d2efce69..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-de.tex b/macros/latex/contrib/koma-script/doc/scrjura-example-de.tex
deleted file mode 100644
index 602422b0f2..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-de.tex
+++ /dev/null
@@ -1,145 +0,0 @@
-\documentclass[fontsize=12pt,parskip=half]
- {scrartcl}
-
-\usepackage[ngerman]{babel}
-
-\usepackage[T1]{fontenc}
-% Hinweis: Nur einer der beiden folgenden Zeilen wird benötigt.
-\usepackage{lmodern}
-\usepackage{charter,helvet}
-
-\usepackage{enumerate}
-
-\usepackage[clausemark=forceboth,
- juratotoc, juratocnumberwidth=2.5em]
- {scrjura}
-\useshorthands{'}
-\defineshorthand{'S}{\Sentence\ignorespaces}
-\defineshorthand{'.}{. \Sentence\ignorespaces}
-
-\pagestyle{myheadings}
-
-\begin{document}
-
-\subject{Satzung}
-\title{VfVmai}
-\subtitle{Verein für Vereinsmaierei mit ai n.\,e.\,V.}
-\date{11.\,11.\,2011}
-\maketitle
-
-\tableofcontents
-
-\addsec{Präambel}
-
-Die Vereinslandschaft in Deutschland ist vielfältig.
-Doch leider mussten wir feststellen, dass es dabei oft
-am ernsthaften Umgang mit der Ernsthaftigkeit krankt.
-
-\appendix
-
-\section{Allgemeines}
-
-\begin{contract}
-\Clause{title={Name, Rechtsform, Sitz des Vereins}}
-
-Der Verein führt den Namen »Verein für Vereinsmaierei mit
-ai n.e.V.« und ist in keinem Vereinsregister eingetragen.
-
-'S Der Verein ist ein nichtwirtschaftlicher, unnützer
-Verein'. Er hat keinen Sitz und muss daher stehen.
-
-Geschäftsjahr ist vom 31.~März bis zum 1.~April.
-
-\Clause{title={Zweck des Vereins}}
-
-'S Der Verein ist zwar sinnlos, aber nicht zwecklos'.
-Vielmehr soll er den ernsthaften Umgang mit der
-Ernsthaftigkeit auf eine gesunde Basis stellen.
-
-Zu diesem Zweck kann der Verein
-\begin{enumerate}[\qquad a)]
-\item in der Nase bohren,
-\item Nüsse knacken,
-\item am Daumen lutschen.
-\end{enumerate}
-
-Der Verein ist selbstsüchtig und steht dazu.
-
-Der Verein verfügt über keinerlei Mittel.\label{a:mittel}
-
-\Clause{title={Vereinsämter}}
-
-Die Vereinsämter sind Ehrenämter.
-
-'S Würde der Verein über Mittel verfügen
-(siehe \ref{a:mittel}), so könnte er einen
-hauptamtlichen Geschäftsführer bestellen'. Ohne
-die notwendigen Mittel ist dies nicht möglich.
-
-\Clause{title={Vereinsmaier},dummy}
-\label{p.maier}
-\end{contract}
-
-\section{Mitgliedschaft}
-
-\begin{contract}
-\Clause{title={Mitgliedsarten},dummy}
-
-\Clause{title={Erwerb der Mitgliedschaft}}
-
-Die Mitgliedschaft kann jeder zu einem angemessenen
-Preis von einem der in \refClause{p.maier}
-genannten Vereinsmaier erwerben.\label{a.preis}
-
-'S Zum Erwerb der Mitgliedschaft ist ein formloser
-Antrag erforderlich'. Dieser Antrag ist in grüner
-Tinte auf rosa Papier einzureichen.
-
-Die Mitgliedschaft kann nicht abgelehnt werden.
-
-\SubClause{title={Ergänzung zu vorstehendem
- Paragraphen}}
-
-'S Mit Abschaffung von \refClause{p.maier} verliert
-\ref{a.preis} seine Umsetzbarkeit'. Mitgliedschaften
-können ersatzweise vererbt werden.
-
-\Clause{title={Ende der Mitgliedschaft}}
-
-'S Die Mitgliedschaft endet mit dem Leben'. Bei nicht
-lebenden Mitgliedern endet die Mitgliedschaft nicht.
-
-\Clause{title={Mitgliederversammlung}}
-
-Zweimal jährlich findet eine Mitgliederversammlung statt.
-
-Der Abstand zwischen zwei Mitgliederversammlungen
-beträgt höchstens 6~Monate, 1~Woche und 2~Tage.
-
-Frühestens 6~Monate nach der letzten Mitgliederversammlung
-hat die Einladung zur nächsten Mitgliederversammlung zu
-erfolgen.
-
-\SubClause{title={Ergänzung zur Mitgliederversammlung}}
-
-Die Mitgliederversammlung darf frühstens 2~Wochen nach
-letztem Eingang der Einladung abgehalten werden.
-\end{contract}
-
-\section{Gültigkeit}
-
-\begin{contract}
-\Clause{title={In Kraft treten}}
-
-Diese Satzung tritt am 11.\,11.\,2011 um 11:11~Uhr
-in Kraft.
-
-'S Sollten irgendwelche Bestimmungen dieser Satzung im
-Widerspruch zueinander stehen, tritt die Satzung am
-11.\,11.\,2011 um 11:11~Uhr und 11~Sekunden wieder
-außer Kraft'. Der Verein ist in diesem Fall als
-aufgelöst zu betrachten.
-
-\end{contract}
-
-\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf b/macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf
deleted file mode 100644
index 6fc41cf650..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-en.tex b/macros/latex/contrib/koma-script/doc/scrjura-example-en.tex
deleted file mode 100644
index fbc009ca8a..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-en.tex
+++ /dev/null
@@ -1,143 +0,0 @@
-\documentclass[fontsize=12pt,parskip=half]
- {scrartcl}
-
-\usepackage[british]{babel}
-
-\usepackage[T1]{fontenc}
-% Note: Only one of the following two lines is needed.
-\usepackage{lmodern}
-\usepackage{charter,helvet}
-
-\usepackage{enumerate}
-
-\usepackage[clausemark=forceboth,
- juratotoc,
- juratocnumberwidth=2.5em]
- {scrjura}
-\useshorthands{'}
-\defineshorthand{'S}{\Sentence\ignorespaces}
-\defineshorthand{'.}{. \Sentence\ignorespaces}
-
-\pagestyle{myheadings}
-
-\begin{document}
-
-\subject{By-Laws}
-\title{CfCH}
-\subtitle{Club for Club Hoppers}
-\date{11.\,11.\,2011}
-\maketitle
-
-\tableofcontents
-
-\addsec{Preamble}
-
-The club landscape in England is diverse. But we have
-unfortunately been forced to conclude that it often
-suffers seriously when dealing with seriousness.
-
-\appendix
-
-\section{Overview}
-
-\begin{contract}
-\Clause{title={Name, Legal Form, Headquarters}}
-
-The name of this club shall be the ``Club for Club
-Hoppers'' and is not registered in any club register.
-
-'S The club is a non-economic, useless club'. It has no
-headquarters because its members heads are in their
-hindquarters.
-
-The fiscal year is from March 31st through April 1st.
-
-\Clause{title={Purpose of the Club}}
-
-'S The club is pointless but not useless'. Rather,
-it should put the serious handling of seriousness on a
-sound footing.
-
-For this purpose, the club members can
-\begin{enumerate}[\qquad a)]
-\item pick their noses,
-\item crack nuts,
-\item such their thumbs.
-\end{enumerate}
-
-The club is selfish and stands by it.
-
-The club has no financial means.\label{a:mittel}
-
-\Clause{title={Club Officers}}
-
-The club officers hold honorary positions.
-
-'S If the club had resources (see \ref{a:mittel}), it
-could afford a full-time manager'. Without the necessary
-funds, this is not possible.
-
-\Clause{title={Club Hopper},dummy}
-\label{p.maier}
-\end{contract}
-
-\section{Membership}
-
-\begin{contract}
-\Clause{title={Types of Members},dummy}
-
-\Clause{title={Becoming a Member}}
-
-Everyone can purchase a membership from one of the
-associations listed in \refClause{p.maier}.\label{a.preis}
-
-'S To become a member, an informal application is
-required'. This application should be submitted in green
-ink on pink paper.
-
-Membership applications cannot be rejected.
-
-\SubClause{title={Amendment to the Previous Clause}}
-
-'S With the repeal of \refClause{p.maier},
-\ref{a.preis} has become impractical'. In its place,
-memberships can be inherited.
-
-\Clause{title={Termination of Membership}}
-
-'S Membership ends with one's life'. For non-living
-members, membership does not end.
-
-\Clause{title={General Meeting}}
-
-A general meeting shall take place twice per year.
-
-The interval between two general meetings shall be
-no more than 6~months, 1~week, and 2~days.
-
-The invitation to the next general meeting shall be sent
-no earlier than 6~months from the previous general
-meeting.
-
-\SubClause{title={Amendment to the General Meeting}}
-
-The general meeting may be held at the earliest 2~weeks after
-the invitation is received.
-\end{contract}
-
-\section{Validity}
-
-\begin{contract}
-\Clause{title={Effective Date}}
-
-These articles will enter into force on 11.\,11.\,2011 at
-11:11~am.
-
-'S If any provision of these by-laws is in conflict with
-any other, the by-laws will be repealed on
-11.\,11.\,2011 at 11:11~am and 11~seconds'. The club is
-considered to be dissolved in this case.
-
-\end{contract}
-
-\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
index 8d924561fd..a9eb9524f1 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-de.tex
-% Copyright (c) Markus Kohm, 2013-2022
+% Copyright (c) Markus Kohm, 2013-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -29,7 +29,7 @@
% ============================================================================
\KOMAProvidesFile{scrlayer-notecolumn.tex}
- [$Date: 2022-07-17 12:36:46 +0200 (So, 17. Jul 2022) $
+ [$Date: 2024-02-13 16:06:28 +0100 (Di, 13. Feb 2024) $
KOMA-Script guide (chapter:scrlayer-notecolumn)]
\chapter{Notizspalten mit \Package{scrlayer-notecolumn}}
@@ -296,7 +296,7 @@ entnehmen.
\usepackage{lmodern}
\usepackage{xcolor}
- \usepackage{scrjura}
+ \usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -330,9 +330,9 @@ entnehmen.
genutzt.}{}
Bezüglich des Setzens von Gesetzestexten\textnote{Gesetz mit
- \hyperref[cha:scrjura]{\Package{scrjura}}} mit
- \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} sei auf
- \iffree{dessen Anleitung}{\autoref{cha:scrjura}} verwiesen.
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}} mit
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}\IndexPackage{contract}
+ sei auf dessen Anleitung verwiesen.
Da ein Seitenstil\textnote{Seitenstil mit
\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} mit
@@ -471,9 +471,9 @@ verwendet.%
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{%
+ \protect\Clause[%
title={Kein Witz ohne Publikum}%
- }
+ ]
Ein Witz kann nur dort witzig sein, wo er
auf ein Publikum trifft.
\protect\end{contract}%
@@ -605,7 +605,7 @@ wird nachfolgend beschrieben.%
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Komik der Kultur}}
+ \protect\Clause[title={Komik der Kultur}]
\setcounter{par}{0}%
Die Komik eines Witzes kann durch das
kulturelle Umfeld, in dem er erzählt wird,
@@ -798,5 +798,5 @@ Das Ergebnis des Beispiels ist übrigens in
% LocalWords: Neukonfigurierung Synchronisierungspunkt marginpar marginline
% LocalWords: Haupttext Demonstrationszwecken Längenausdruck Gesetzestexten
% LocalWords: Längenausdrücken Satzspiegels typearea scrlayer notecolumn
-% LocalWords: AfterCalculatingTypearea scrjura scrpage Farbeinstellung
+% LocalWords: AfterCalculatingTypearea scrpage Farbeinstellung
% LocalWords: Sternvariante
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
index 709f68fb8f..9063803bc7 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-en.tex
-% Copyright (c) Markus Kohm, 2013-2022
+% Copyright (c) Markus Kohm, 2013-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -209,7 +209,7 @@ layers see \autoref{sec:scrlayer.layers}, starting on
\usepackage{lmodern}
\usepackage{xcolor}
- \usepackage{scrjura}
+ \usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -237,9 +237,9 @@ layers see \autoref{sec:scrlayer.layers}, starting on
the colour selection uses the \Package{xcolor}\IndexPackage{xcolor} package.
For formatting legal texts\textnote{legal texts with
- \hyperref[cha:scrjura]{\Package{scrjura}}} with the
- \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} package, see
- \autoref{cha:scrjura}.
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}} with the
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}\IndexPackage{contract}
+ package, see the user manual of the package.
Since this document uses a page style\textnote{page style with
\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} with a
@@ -415,9 +415,9 @@ default note column \PValue{marginpar} is used.%
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{%
+ \protect\Clause[%
title={No Joke without an Audience}%
- }
+ ]
A joke can only be funny if is has an
audience.
\protect\end{contract}%
@@ -534,7 +534,7 @@ The recommended command for this is described below.%
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Humor of a Culture}}
+ \protect\Clause[title={Humor of a Culture}]
\setcounter{par}{0}%
The humour of a joke can be determined by the
cultural environment in which it is told.
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
index 5c8d7a10d8..50b0939fbf 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
index 263fba4598..817d7e6217 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-example-de.tex
-% Copyright (c) Markus Kohm, 2013-2022
+% Copyright (c) Markus Kohm, 2013-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -29,7 +29,7 @@
\usepackage{lmodern}
\usepackage{xcolor}
-\usepackage{scrjura}
+\usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -73,7 +73,7 @@ urkomischen, am 9.\,9.\,1999 war der Weg für dieses Gesetz endlich frei.
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Kein Witz ohne Publikum}}
+ \protect\Clause[title={Kein Witz ohne Publikum}]
Ein Witz kann nur dort witzig sein, wo er auf ein Publikum trifft.
\protect\end{contract}
}
@@ -84,7 +84,7 @@ urkomischen, am 9.\,9.\,1999 war der Weg für dieses Gesetz endlich frei.
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Komik der Kultur}}
+ \protect\Clause[title={Komik der Kultur}]
\setcounter{par}{0}Die Komik eines Witzes kann durch das kulturelle
Umfeld, in dem er erzählt wird, bestimmt sein.
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
index 540cc82230..f4e146d4bb 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
index c624244cf7..d13b17faa2 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-example-en.tex
-% Copyright (c) Markus Kohm, 2018-2022
+% Copyright (c) Markus Kohm, 2018-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -27,7 +27,7 @@
\usepackage{lmodern}
\usepackage{xcolor}
-\usepackage{scrjura}
+\usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -70,7 +70,7 @@ was the way finally clear for this law.
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={No Joke without an Audience}}
+ \protect\Clause[title={No Joke without an Audience}]
A joke can only be funny if is has an audience.
\protect\end{contract}
}
@@ -80,7 +80,7 @@ was the way finally clear for this law.
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Humor of a Culture}}
+ \protect\Clause[title={Humor of a Culture}]
\setcounter{par}{0}The humour of a joke can be determined by the
cultural environment in which it is told.
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
index d5a722b766..f6e6791be6 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
@@ -37,12 +37,12 @@
<h1 class="right">Notizspalten mit <tt>scrlayer-notecolumn</tt></h1>
<div id="en">
I think you are searching for the chapter
- <a href="scrguide-en.pdf#chapter.19">“Note Columns with <tt>scrlayer-notecolumn</tt>”</a> in the
+ <a href="scrguide-en.pdf#chapter.18">“Note Columns with <tt>scrlayer-notecolumn</tt>”</a> in the
KOMA-Script documentation.
</div>
<div id="de">
Ich nehme an, Sie suchen nach dem Kapitel
- <a href="scrguide-de.pdf#chapter.19">„Notizspalten mit <tt>scrlayer-notecolumn</tt>”</a> in der
+ <a href="scrguide-de.pdf#chapter.18">„Notizspalten mit <tt>scrlayer-notecolumn</tt>”</a> in der
KOMA-Script-Anleitung.
</div>
<div id="fn">
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
index 80673ca33c..27f3f663e3 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
@@ -23,7 +23,7 @@
% ============================================================================
\KOMAProvidesFile{scrlayer-scrpage-de.tex}%
- [$Date: 2023-04-06 10:35:02 +0200 (Do, 06. Apr 2023) $
+ [$Date: 2023-04-06 10:35:02 +0200 (Do, 06 Apr 2023) $
KOMA-Script guide (chapter:scrlayer-scrpage)]
\chapter[{Kopf- und Fußzeilen mit \Package{scrlayer-scrpage}}]
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer.html b/macros/latex/contrib/koma-script/doc/scrlayer.html
index 318e212638..d9e5ed4cc2 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer.html
+++ b/macros/latex/contrib/koma-script/doc/scrlayer.html
@@ -37,12 +37,12 @@
<h1 class="right">Definition von Ebenen und Seitenstilen mit <tt>scrlayer</tt></h1>
<div id="en">
I think you are searching for the chapter
- <a href="scrguide-en.pdf#chapter.17">“Defining Layers and Page Styles with <tt>scrlayer</tt>”</a> in the
+ <a href="scrguide-en.pdf#chapter.16">“Defining Layers and Page Styles with <tt>scrlayer</tt>”</a> in the
KOMA-Script documentation.
</div>
<div id="de">
Ich nehme an, Sie suchen nach dem Kapitel
- <a href="scrguide-de.pdf#chapter.17">„Definition von Ebenen und Seitenstilen mit <tt>scrlayer</tt>”</a> in der
+ <a href="scrguide-de.pdf#chapter.16">„Definition von Ebenen und Seitenstilen mit <tt>scrlayer</tt>”</a> in der
KOMA-Script-Anleitung.
</div>
<div id="fn">
diff --git a/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex b/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
index a0f0b8e1e4..00cec703b9 100644
--- a/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{scrlttr2-experts-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-08-10 10:46:50 +0200 (Do, 10 Aug 2023) $
KOMA-Script guide (chapter: scrlttr2 for experts)]
\translator{Harald Bongartz\and Georg Grandke\and Raimund Kohl\and Jens-Uwe
@@ -496,15 +496,13 @@ limitations of \TeX.
\BeginIndexGroup
\BeginIndex{}{languages}%
-% TODO: New translation of the shorter into in German manual should be used.
-% :ODOT
The \Class{scrlttr2} class and the \Package{scrletter} package support many
languages. These include German\Index{language>German} (\PValue{german} for
the old German orthography, \PValue{ngerman} for the new orthography;
\PValue{austrian} for Austrian with the old German orthography,
\PValue{naustrian}\ChangedAt{v3.09}{\Class{scrlttr2}} for Austrian with the
new orthography; and \PValue{nswissgerman}\ChangedAt{v3.13}{\Class{scrlttr2}}
-for Swiss German with the new orthogrphy, \PValue{swissgerman} for Swiss
+for Swiss German with the new orthography, \PValue{swissgerman} for Swiss
German with the old orthography), English\Index{language>English} (among
others, \PValue{english} without specification as to whether American or
British should be used, \PValue{american} and \PValue{USenglish} for American
diff --git a/macros/latex/contrib/koma-script/doc/tocbasic-de.tex b/macros/latex/contrib/koma-script/doc/tocbasic-de.tex
index 6f1a6de96e..ef5fd955ee 100644
--- a/macros/latex/contrib/koma-script/doc/tocbasic-de.tex
+++ b/macros/latex/contrib/koma-script/doc/tocbasic-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% tocbasic-de.tex
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{tocbasic-de.tex}
- [$Date: 2023-04-04 10:50:12 +0200 (Di, 04. Apr 2023) $
+ [$Date: 2024-06-30 20:35:47 +0200 (So, 30. Jun 2024) $
KOMA-Script guide (package tocbasic)]
\chapter{Verzeichnisse verwalten mit Hilfe von \Package{tocbasic}}
@@ -50,8 +50,8 @@ Als kleiner Nebeneffekt kann das Paket auch verwendet werden, um neue
Gleitumgebungen oder den Gleitumgebungen ähnliche nicht gleitende Umgebungen
für Konsultationsobjekte zu definieren. Näheres dazu wird nach der Erklärung
der grundlegenden Anweisungen in den folgenden vier Abschnitten durch ein
-Beispiel in \autoref{sec:tocbasic.example} verdeutlicht, das in kompakter Form
-noch einmal in \autoref{sec:tocbasic.declarenewtoc} aufgegriffen wird.
+Beispiel in \autoref{sec:\LabelBase.example} verdeutlicht, das in kompakter Form
+noch einmal in \autoref{sec:\LabelBase.declarenewtoc} aufgegriffen wird.
\KOMAScript{} verwendet \Package{tocbasic} sowohl für das Inhaltsverzeichnis
als auch für die bereits erwähnten Verzeichnisse für Abbildungen und Tabellen.
@@ -194,16 +194,20 @@ Abbildungsverzeichnis und »\PValue{lot}« für das Tabellenverzeichnis mit der
Kategorie »\PValue{float}« als \PName{Besitzer} anmeldet und die Optionen für
diesen Besitzer setzt.
-Das Paket \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{ \hyperref[cha:scrhack]{\Package{scrhack}}} enthält übrigens
-Patches für mehrere Pakete wie \Package{float}\IndexPackage{float} oder
-\Package{listings}\IndexPackage{listings}, die eigene Verzeichnisse
-bereitstellen. Bei Verwendung von \hyperref[cha:scrhack]{\Package{scrhack}}
-wird unter anderem die jeweilige Dateierweiterung der Liste der bekannten
-Dateierweiterungen hinzugefügt. Dabei wird als \PName{Besitzer}
-»\PValue{float}« verwendet. Dies ist sozusagen der grundlegende Baustein, um
-die Möglichkeiten von \Package{tocbasic} und der \KOMAScript-Klassen auch für
-diese Verzeichnisse automatisch nutzen zu können.%
+Das Paket
+\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}{\Package{scrhack}}%
+\IndexPackage{scrhack}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} enthält
+übrigens Patches für mehrere Pakete wie \Package{float}\IndexPackage{float}
+oder \Package{floatrow}\IndexPackage{floatrow}, die eigene Verzeichnisse
+bereitstellen. Bei Verwendung von
+\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}} wird unter anderem
+die jeweilige Dateierweiterung der Liste der bekannten Dateierweiterungen
+hinzugefügt. Dabei wird als \PName{Besitzer} »\PValue{float}« verwendet. Dies
+ist sozusagen der grundlegende Baustein, um die Möglichkeiten von
+\Package{tocbasic} und der \KOMAScript-Klassen auch für diese Verzeichnisse
+automatisch nutzen zu können. Siehe \cite{pkg:scrhack:manual} für weitere
+Informationen.%
\EndIndexGroup
@@ -238,7 +242,7 @@ Beispiel erforderlich, weil das Argument von
\DescRef{\LabelBase.cmd.tocbasic@extend@babel} zwingend bereits expandiert
sein muss. Siehe dazu auch die Erklärung zu
\DescRef{\LabelBase.cmd.tocbasic@extend@babel} in
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@extend@babel}.
%
\EndIndexGroup
@@ -287,7 +291,7 @@ Die \KOMAScript-Klassen \Class{scrbook} und \Class{scrreprt} verwenden die
Anweisung, um für Verzeichnisse, für die Eigenschaft \PValue{chapteratlist}
gesetzt ist, optional einen vertikalen Abstand oder die Kapitelüberschrift in
das Verzeichnis einzutragen. Wie Sie diese Eigenschaft setzen können, ist
-in \autoref{sec:tocbasic.toc} ab \DescPageRef{\LabelBase.cmd.setuptoc} zu
+in \autoref{sec:\LabelBase.toc} ab \DescPageRef{\LabelBase.cmd.setuptoc} zu
finden.%
\EndIndexGroup
@@ -303,7 +307,7 @@ Dateierweiterung in die Liste der bekannten Dateierweiterungen eingefügt wird,
soweit sie dort noch nicht vorhanden ist. Außerdem wird dann
\DescRef{\LabelBase.cmd.tocbasic@starttoc} anstelle von \Macro{@starttoc}
verwendet. Näheres zu \DescRef{\LabelBase.cmd.tocbasic@starttoc} und
-\Macro{@starttoc} ist \autoref{sec:tocbasic.internals},
+\Macro{@starttoc} ist \autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@starttoc} zu entnehmen.
Mit Hilfe von \Macro{tocbasicautomode} wird also jedes Verzeichnis, das mit
@@ -394,7 +398,7 @@ Anweisung nicht definiert, wird stattdessen die interne Anweisung
alle vier Argumente als obligatorische Argumente und verwendet dann
ihrerseits \Macro{addcontentsline}, um den gewünschten Eintrag
vorzunehmen. Näheres zu \DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} ist
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@addxcontentsline} zu entnehmen.
Ein Vorteil der Verwendung von \Macro{addxcontentsline} gegenüber
@@ -537,13 +541,14 @@ diesem Fall das Laden von Paket
\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
\cite{package:scrwfile} oder die Verwendung von \LuaLaTeX{} bieten.
-Das Paket \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{ \hyperref[cha:scrhack]{\Package{scrhack}}} enthält übrigens
-Patches für mehrere Pakete wie \Package{float}\IndexPackage{float} oder
-\Package{listings}\IndexPackage{listings}, damit deren Verzeichnisbefehle
+Das Paket \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} enthält
+übrigens Patches für mehrere Pakete wie \Package{float}\IndexPackage{float}
+oder \Package{floatrow}\IndexPackage{floatrow}, damit deren Verzeichnisbefehle
\Macro{listoftoc} verwenden. Dadurch stehen viele Möglichkeiten von
\Package{tocbasic} und den \KOMAScript-Klassen auch für deren Verzeichnisse
-zur Verfügung.%
+zur Verfügung. Für weitere Informationen siehe
+\cite{pkg:scrhack:manual}.%
\EndIndexGroup
@@ -692,8 +697,8 @@ Komma getrennte Folge von \PName{Eigenschaften}. Das Paket
Dateierweiterungen gesetzt sein muss, damit sie eine Wirkung hat.
\item[\PValue{noindent}]\ChangedAt{v3.27}{\Package{tocbasic}} veranlasst alle
von \KOMAScript{} bereitgestellten Verzeichniseintragsstile ihre Eigenschaft
- \PValue{indent} (siehe \autoref{tab:tocbasic.tocstyle.attributes},
- \autopageref{tab:tocbasic.tocstyle.attributes.indent}) zu ignorieren und
+ \PValue{indent} (siehe \autoref{tab:\LabelBase.tocstyle.attributes},
+ \autopageref{tab:\LabelBase.tocstyle.attributes.indent}) zu ignorieren und
stattdessen den Einzug zu deaktivieren.
\item[\PValue{noparskipfake}] verhindert\ChangedAt{v3.17}{\Package{tocbasic}},
dass vor dem Abschalten des Absatzabstandes für die Verzeichnisse ein
@@ -740,8 +745,8 @@ Komma getrennte Folge von \PName{Eigenschaften}. Das Paket
Verzeichniseintragsstils \PValue{tocline} kann die Eigenschaft weitere
Auswirkungen haben. Siehe dazu die Stil-Eigenschaften
\Option{breakafternumber} und \Option{entrynumberformat} in
- \autoref{tab:tocbasic.tocstyle.attributes} ab
- \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \autoref{tab:\LabelBase.tocstyle.attributes} ab
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.
Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung der Option
\OptionValueRef{maincls}{listof}{numberline}%
@@ -965,7 +970,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
Einträgen wird der Einzug ab der zweiten Zeile um \PValue{numwidth}
erhöht. Die Seitenzahl wird mit \Macro{normalfont} ausgegeben. Eintragstext
und Seitenzahl werden durch eine punktierte Linie
- verbunden. \autoref{fig:tocbasic.dottedtocline} illustriert die
+ verbunden. \autoref{fig:\LabelBase.dottedtocline} illustriert die
Eigenschaften des Stils.
\begin{figure}
\centering
@@ -1012,7 +1017,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{dottedtocline}}
- \label{fig:tocbasic.dottedtocline}
+ \labelofbase[fig]{dottedtocline}
\end{figure}
\item[\PValue{gobble}] ist der denkbar einfachste Stil. Einträge in diesem
Stil werden unabhängig von allen Einstellungen für
@@ -1037,7 +1042,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
\DescRef{\LabelBase.cmd.numberline}. Der Wert hat bei mehrzeiligen Einträgen
auch keine Auswirkung auf den Einzug ab der zweiten Zeile.
- \autoref{fig:tocbasic.largetocline} illustriert die
+ \autoref{fig:\LabelBase.largetocline} illustriert die
Eigenschaften
des Stils. Dabei wird auch auf"|fällig, dass der Stil einige Ungereimtheiten
der Standardklassen übernommen hat, beispielsweise den fehlenden Einzug ab
@@ -1082,7 +1087,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{largetocline}}
- \label{fig:tocbasic.largetocline}
+ \labelofbase[fig]{largetocline}
\end{figure}
\item[\PValue{tocline}] ist ein flexibler Stil, der in der Voreinstellung für
alle Einträge der \KOMAScript-Klassen verwendet wird. Entsprechend
@@ -1117,9 +1122,9 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
ersetzen, bedarf dann jedoch teilweise eines höheren Aufwands bei der
Konfiguration.
- \autoref{fig:tocbasic.tocline} illustriert einige Längen-Eigenschaften des
- Stils. Die weiteren sind in \autoref{tab:tocbasic.tocstyle.attributes}, ab
- \autopageref{tab:tocbasic.tocstyle.attributes} erklärt.
+ \autoref{fig:\LabelBase.tocline} illustriert einige Längen-Eigenschaften des
+ Stils. Die weiteren sind in \autoref{tab:\LabelBase.tocstyle.attributes}, ab
+ \autopageref{tab:\LabelBase.tocstyle.attributes} erklärt.
\begin{figure}
\centering
\resizebox{.8\linewidth}{!}{\hspace{-2em}% Leicht nach links schieben
@@ -1262,7 +1267,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{tocline}}
- \label{fig:tocbasic.tocline}
+ \labelofbase[fig]{tocline}
\end{figure}
\item[\PValue{toctext}]\ChangedAt{v3.27}{\Package{tocbasic}}%
stellt eine Besonderheit dar. Während alle anderen Stile je Eintrag einen
@@ -1293,7 +1298,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
der genannten Ebenen bieten. \DescRef{\LabelBase.cmd.numberline} wird nicht
umdefiniert. Die Breite der Nummer wird von \PValue{numwidth} bestimmt. Bei
mehrzeiligen Einträgen wird der Einzug ab der zweiten Zeile um
- \PValue{numwidth} erhöht. \autoref{fig:tocbasic.undottedtocline} illustriert
+ \PValue{numwidth} erhöht. \autoref{fig:\LabelBase.undottedtocline} illustriert
die Eigenschaften des Stils.
\begin{figure}
\centering
@@ -1331,11 +1336,11 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{undottedtocline} am Beispiel einer Kapitelüberschrift}
- \label{fig:tocbasic.undottedtocline}
+ \labelofbase[fig]{undottedtocline}
\end{figure}
\end{description}
Eine Erklärung zu den Eigenschaften der von \Package{tocbasic} definierten
-Stile findet sich in \autoref{tab:tocbasic.tocstyle.attributes}.
+Stile findet sich in \autoref{tab:\LabelBase.tocstyle.attributes}.
Neben\ChangedAt{v3.27}{\Package{tocbasic}} der normalen Zuweisung eines Wertes
in der Form \Option{\PName{Schlüssel}=\PName{Wert}} verstehen beide Befehle
für alle Optionen der durch \KOMAScript{} definierten Stile auch die
@@ -1387,7 +1392,7 @@ angegebenen Einstellungen definiert.%
\desccaption{%
Attribute für die vordefinierten Verzeichniseintragsstile von
\Package{tocbasic}%
- \label{tab:tocbasic.tocstyle.attributes}%
+ \labelofbase[tab]{tocstyle.attributes}%
}{%
Attribute der Verzeichniseintragsstile (\emph{Fortsetzung})%
}%
@@ -1401,7 +1406,7 @@ angegebenen Einstellungen definiert.%
\entry{\OptionVName{beforeskip}{Länge}}{%
Vertikaler Abstand, der vor einem Eintrag dieser Ebene im Stil
\PValue{tocline} eingefügt wird (siehe
- \autoref{fig:tocbasic.tocline}). Der Abstand wird je nach Ebene mit
+ \autoref{fig:\LabelBase.tocline}). Der Abstand wird je nach Ebene mit
\Macro{vskip} oder \Macro{addvspace} eingefügt, so dass diesbezüglich
möglichst Kompatibilität zu den Standardklassen und früheren Versionen von
\KOMAScript{} besteht.
@@ -1432,7 +1437,7 @@ angegebenen Einstellungen definiert.%
Ist %\textnote{Achtung!}
für ein Verzeichnis mit \DescRef{\LabelBase.cmd.setuptoc} die Eigenschaft
- \Option{numberline} gesetzt (siehe \autoref{sec:tocbasic.toc},
+ \Option{numberline} gesetzt (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}), wie das bei den
\KOMAScript-Klassen und Verwendung deren Option
\OptionValueRef{maincls}{toc}{numberline}%
@@ -1491,7 +1496,7 @@ angegebenen Einstellungen definiert.%
Ist %\textnote{Achtung!}
für ein Verzeichnis mit \DescRef{\LabelBase.cmd.setuptoc} die Eigenschaft
- \Option{numberline} gesetzt (siehe \autoref{sec:tocbasic.toc},
+ \Option{numberline} gesetzt (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}), wie dies bei den
\KOMAScript-Klassen und Verwendung deren Option
\OptionValueRef{maincls}{toc}{numberline}%
@@ -1501,15 +1506,15 @@ angegebenen Einstellungen definiert.%
}%
\entry{%
\OptionVName{indent}{Länge}%
- {\phantomsection\label{tab:tocbasic.tocstyle.attributes.indent}}%
+ {\phantomsection\labelofbase[tab]{tocstyle.attributes.indent}}%
}{%
Beim\ChangedAt{v3.27}{\Package{tocbasic}} Stil \PValue{toctext} ist
\PName{Länge} der horizontale Abstand des Absatzes vom linken Rand. Haben
die unterschiedlichen Einträge des Absatzes unterschiedliche
Einstellungen, so gewinnt der letzte Eintrag. Bei den übrigen Stilen ist
\PValue{Länge} entsprechend der horizontale Abstand des Eintrags vom
- linken Rand (siehe \autoref{fig:tocbasic.dottedtocline} und
- \autoref{fig:tocbasic.tocline}).
+ linken Rand (siehe \autoref{fig:\LabelBase.dottedtocline} und
+ \autoref{fig:\LabelBase.tocline}).
Bei den Stilen \PValue{tocline} und \PValue{toctext} wird für alle
Eintragsebenen, deren Name mit »\texttt{sub}« beginnt, eine
@@ -1600,8 +1605,8 @@ angegebenen Einstellungen definiert.%
}%
\entry{\OptionVName{numwidth}{Länge}}{%
Für die Nummer eines Eintrags reservierte Breite (siehe
- \autoref{fig:tocbasic.dottedtocline} bis
- \autoref{fig:tocbasic.undottedtocline}). Dieser Wert wird bei den
+ \autoref{fig:\LabelBase.dottedtocline} bis
+ \autoref{fig:\LabelBase.undottedtocline}). Dieser Wert wird bei den
Stilen \PValue{dottedtocline}, \PValue{tocline} und
\PValue{undottedtocline} ab der zweiten Zeile eines Eintrags zum linken
Einzug hinzugerechnet.
@@ -1828,7 +1833,7 @@ definieren. Üblicherweise werden Verzeichniseinträge mit
\Macro{addcontentsline}\IndexCmd{addcontentsline} oder bei Verwendung von
\Package{tocbasic} vorzugsweise mit
\DescRef{\LabelBase.cmd.addxcontentsline}\IndexCmd{addxcontentsline} (siehe
-\autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline})
+\autoref{sec:\LabelBase.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline})
erzeugt. Dabei schreibt \LaTeX{} eine zugehörige Anweisung
\Macro{contentsline}\IndexCmd{contentsline} in die jeweilige Hilfsdatei. Beim
Einlesen dieser Hilfsdatei führt \LaTeX{} dann für jedes \Macro{contentsline}
@@ -2086,7 +2091,7 @@ In der Voreinstellung wird diese Anweisung normalerweise für alle
\PName{Dateierweiterungen}, die mit \DescRef{\LabelBase.cmd.addtotoclist} zur
Liste der bekannten Dateierweiterungen hinzugefügt werden, aufgerufen. Über
die Eigenschaft \PValue{nobabel}\important{\PValue{nobabel}} (siehe
-\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}) kann das unterdrückt werden. Für die
Dateinamenerweiterungen \File{toc}, \File{lof} und \File{lot} unterdrückt
\Package{tocbasic} dies bereits selbst, %
@@ -2114,7 +2119,7 @@ dies für jede Dateierweiterung nur einmal geschieht!%
Diese Anweisung ist der eigentliche Ersatz der Anweisung
\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} aus dem
\LaTeX-Kern. Es ist die Anweisung, die sich hinter
-\DescRef{\LabelBase.cmd.listoftoc*} (siehe \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc*} (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc*}) verbirgt. Klassen- oder Paketautoren,
die Vorteile von \Package{tocbasic} nutzen wollen, sollten zumindest diese
Anweisung, besser jedoch \DescRef{\LabelBase.cmd.listoftoc} verwenden. Die
@@ -2243,9 +2248,9 @@ gewohnt \DescRef{\LabelBase.cmd.numberline} mit \PName{Gliederungsnummer} als
Argument verwendet.
Die Anweisung \Macro{nonumberline} wird innerhalb
-\DescRef{\LabelBase.cmd.listoftoc} (siehe \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc} (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc}) entsprechend der Eigenschaft
-\PValue{numberline} (siehe \autoref{sec:tocbasic.toc},
+\PValue{numberline} (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}) umdefiniert. Dadurch wirkt sich das
Setzen oder Löschen dieser Eigenschaft \iffree{bereits beim nächsten
\LaTeX-Lauf}{unmittelbar} % Umbruchvarianten
@@ -2259,7 +2264,7 @@ aus.%
\Macro{tocbasic@SetPenaltyByTOCLevel}\Parameter{Eintragsebene}
\end{Declaration}
Der\ChangedAt{v3.20}{\Package{tocbasic}} Verzeichniseintragsstil
-\PValue{tocline} (siehe \autoref{sec:tocbasic.tocstyle}) setzt am Ende jedes
+\PValue{tocline} (siehe \autoref{sec:\LabelBase.tocstyle}) setzt am Ende jedes
Eintrags über \Macro{tocbasic@SetPenaltyByTOCLevel} \Macro{penalty} so, dass
nach einem Eintrag kein Seitenumbruch erfolgen darf. Der genaue Wert wird
dabei abhängig von der \PName{Eintragsebene} gewählt.
@@ -2490,8 +2495,8 @@ dieses neue Verzeichnis erzeugt. Auch die Erweiterungen
können dann verwendet werden.
\PName{Dateierweiterung} definiert dabei die Dateiendung der Hilfsdatei, die
-das Verzeichnis repräsentiert, wie dies in \autoref{sec:tocbasic.basics}, ab
-\autopageref{sec:tocbasic.basics} bereits erläutert
+das Verzeichnis repräsentiert, wie dies in \autoref{sec:\LabelBase.basics}, ab
+\autopageref{sec:\LabelBase.basics} bereits erläutert
wurde. Dieser\textnote{Achtung!} Parameter muss angegeben werden und darf
nicht leer sein!
@@ -2501,13 +2506,13 @@ nicht leer sein!
Optionen\textnote{Achtung!} können jedoch \emph{nicht} mit
\DescRef{maincls.cmd.KOMAoptions}\IndexCmd{KOMAoptions} gesetzt werden! Eine
Übersicht über die möglichen Optionen bietet
-\autoref{tab:tocbasic.DeclareNewTOC-options}\iffalse ab
-\autopageref{tab:tocbasic.DeclareNewTOC-options}\fi.
+\autoref{tab:\LabelBase.DeclareNewTOC-options}\iffalse ab
+\autopageref{tab:\LabelBase.DeclareNewTOC-options}\fi.
Wird\ChangedAt{v3.20}{\Package{tocbasic}} Option
\Option{tocentrystyle} nicht gesetzt, so wird bei Bedarf der Stil
\PValue{default} verwendet. Näheres zu diesem Stil ist
-\autoref{sec:tocbasic.tocstyle} zu entnehmen. Soll kein Befehl für
+\autoref{sec:\LabelBase.tocstyle} zu entnehmen. Soll kein Befehl für
Verzeichniseinträge definiert werden, so kann ein leeres Argument, also
wahlweise \OptionValue{tocentrystyle}{}\iffree{}{\unskip} oder
\OptionValue{tocentrystyle}{\PParameter{}} verwendet werden.
@@ -2515,14 +2520,14 @@ wahlweise \OptionValue{tocentrystyle}{}\iffree{}{\unskip} oder
Abhängig\ChangedAt{v3.21}{\Package{tocbasic}} vom Stil der
Verzeichniseinträge können auch alle für diesen Stil gültigen Eigenschaften
gesetzt werden, indem die entsprechenden in
-\autoref{tab:tocbasic.tocstyle.attributes} ab
-\autopageref{tab:tocbasic.tocstyle.attributes} aufgeführten Namen, mit dem
+\autoref{tab:\LabelBase.tocstyle.attributes} ab
+\autopageref{tab:\LabelBase.tocstyle.attributes} aufgeführten Namen, mit dem
Präfix \PValue{tocentry} versehen, in der \PName{Optionenliste} angegeben
werden. Nachträgliche Änderungen am Stil sind mit
\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}%
\IndexCmd{DeclareTOCStyleEntry}%
\important{\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}} jederzeit
-möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
+möglich. Siehe dazu \autoref{sec:\LabelBase.tocstyle},
\DescPageRef{\LabelBase.cmd.DeclareTOCStyleEntry}.
% Umbruchoptimierung: Tabelle verschoben.
@@ -2533,7 +2538,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
}]{%
Optionen für die Anweisung
\Macro{DeclareNewTOC}\ChangedAt{v3.06}{\Package{tocbasic}}%
- \label{tab:tocbasic.DeclareNewTOC-options}%
+ \labelofbase[tab]{DeclareNewTOC-options}%
}{%
Optionen für die Anweisung \Macro{DeclareNewTOC} (\emph{Fortsetzung})%
}%
@@ -2663,7 +2668,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
sie verwendet wird, durchbricht.}%
\entry{\OptionVName{owner}{Besitzer}}{%
Jedes neue Verzeichnis hat bei \Package{tocbasic} einen Besitzer (siehe
- \autoref{sec:tocbasic.basics}). Dieser kann hier angegeben werden. Ist
+ \autoref{sec:\LabelBase.basics}). Dieser kann hier angegeben werden. Ist
kein \PName{Besitzer} angegeben, so wird als \PName{Besitzer} die
Kategorie »\PValue{float}« verwendet, die auch von den \KOMAScript-Klassen
für das Abbildungs- und das Tabellenverzeichnis verwendet wird.}%
@@ -2684,18 +2689,18 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
indem die Namen der Eigenschaften mit dem Präfix \PValue{tocentry} ergänzt
werden. So kann der numerische Wert der Ebene beispielsweise als
\Option{tocentrylevel} angegeben werden. Näheres zu den Stilen ist
- \autoref{sec:tocbasic.tocstyle} ab \autopageref{sec:tocbasic.tocstyle} zu
+ \autoref{sec:\LabelBase.tocstyle} ab \autopageref{sec:\LabelBase.tocstyle} zu
entnehmen.%
}%
\entry{\OptionVName{tocentry\PName{Stiloption}}{Wert}}{%
\ChangedAt{v3.20}{\Package{tocbasic}}%
Weitere Optionen in Abhängigkeit vom via \Option{tocentrystyle} gewählten
- \PName{Eintragsstil}. Siehe dazu \autoref{sec:tocbasic.tocstyle} ab
- \autopageref{sec:tocbasic.tocstyle}. Für die von \Package{tocbasic}
+ \PName{Eintragsstil}. Siehe dazu \autoref{sec:\LabelBase.tocstyle} ab
+ \autopageref{sec:\LabelBase.tocstyle}. Für die von \Package{tocbasic}
vordefinierten Verzeichniseintragsstile finden sich die als
\PName{Stiloption} verwendbaren Attribute in
- \autoref{tab:tocbasic.tocstyle.attributes}, ab
- \autopageref{tab:tocbasic.tocstyle.attributes}.%
+ \autoref{tab:\LabelBase.tocstyle.attributes}, ab
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.%
}%
\entry{\OptionVName{type}{Eintragstyp}}{%
\PName{Eintragstyp} gibt den Typ der Einträge in das entsprechende
@@ -2721,7 +2726,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
\end{desclist}
\begin{Example}
- Das Beispiel aus \autoref{sec:tocbasic.example} kann mit Hilfe der neuen
+ Das Beispiel aus \autoref{sec:\LabelBase.example} kann mit Hilfe der neuen
Anweisung deutlich verkürzt werden:
\begin{lstcode}
\DeclareNewTOC[%
@@ -2751,7 +2756,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
in der ebenfalls \DescRef{maincls.cmd.caption}\IndexCmd{caption} verwendet
werden kann.
- Zum besseren Verständnis zeigt \autoref{tab:tocbasic.comparison} eine
+ Zum besseren Verständnis zeigt \autoref{tab:\LabelBase.comparison} eine
Gegenüberstellung der Anweisungen und Umgebungen für die neu erstellte
Beispielumgebung \Environment{remarkbox} mit den entsprechenden Befehlen und
Umgebungen für Abbildungen.%
@@ -2759,7 +2764,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
\centering
\caption{Gegenüberstellung von Beispielumgebung \Environment{remarkbox}
und Umgebung \Environment{figure}}
- \label{tab:tocbasic.comparison}
+ \labelofbase[tab]{comparison}
\begin{tabularx}{\textwidth}{l@{\hskip\tabcolsep}l@{\hskip\tabcolsep}>{\raggedright}p{7em}@{\hskip\tabcolsep}X}
\toprule
\begin{tabular}[t]{@{}l@{}}
@@ -2850,6 +2855,190 @@ zurecht kommt, das benötigt wird, um den ersten Buchstaben des Wertes von
Verwendung eines aktuellen \Package{hyperref} mit einem aktuellen \LaTeX.%
\EndIndexGroup%
+\section{Nutzung von \Package{tocbasic} mit Fremdklassen}
+\seclabel{standardclasses}
+
+Das Paket \Package{tocbasic} kann natürlich auch mit anderen Klassen als den
+\KOMAScript-Klassen verwendet werden. Ab Version
+3.42\ChangedAt{v3.42}{\Package{tocbasic}} verfügt das Paket sogar über
+zusätzliche Möglichkeiten, um die Integration in solche Fremdklassen zu
+verbessern. Getestet sind diese Möglichkeiten ausschließlich mit den
+Standardklassen. Da diese neuen Möglichkeiten Eingriffe in die Fremdklasse
+benötigen, sind sie als invasiv zu betrachten. Aus diesem Grund ist keine der
+Möglichkeiten in der Voreinstellung aktiv. Stattdessen müssen sie über
+Optionen -- in einem Fall alternativ per Befehl -- aktiviert werden.
+
+Diese neuen Optionen können \emph{nicht} mit
+\DescRef{maincls.cmd.KOMAoptions} oder \DescRef{maincls.cmd.KOMAoption}
+gesetzt werden. Stattdessen sind sie beim Laden von \Package{tocbasic} als
+optionales Argument von \Macro{usepackage} -- bzw. \Macro{RequirePackage} für
+Klassen- und Paketautoren -- anzugeben. Zum Ausgleich ist es möglich, das
+Paket mehrfach mit unterschiedlichen Optionen zu laden.\textnote{Achtung!}
+Allerdings benötigen die Optionen zwingen eine
+\LaTeX-Version\textnote{\LaTeX{} 2022/06/01} ab
+2022/06/01. Mit älteren \LaTeX-Versionen sind die neuen Möglichkeiten daher
+\emph{nicht} verfügbar.
+
+\begin{Declaration}
+ \OptionVName{enablepatch}{Patchliste}
+ \OptionVName{disablepatch}{Patchliste}
+\end{Declaration}
+Option\ChangedAt{v3.42}{\Package{tocbasic}} \Option{enablepatch} aktiviert die
+in der \PName{Patchliste} angegebenen Patches. Dagegen deaktiviert
+\Option{disablepatch} die in der \PName{Patchliste} angegebenen Patches. In
+beiden Fällen ist \PName{Patchliste} eine in einfache geschweifte Klammern
+eingeschlossene, durch Komma separierte Liste von einzelnen Patches. Eine
+Liste der verfügbaren Patches ist in \autoref{tab:\LabelBase.patches} zu
+finden. Beide Optionen können mehrfach verwendet werden. Dabei wäre
+beispielsweise
+\begin{lstcode}
+ \usepackage[enablepatch=chapter,enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+gleichbedeutend mit
+\begin{lstcode}
+ \usepackage[enablepatch={chapter,listoffigure}]{tocbasic}
+\end{lstcode}
+Man beachte, dass im zweiten Fall genau eine geschweiftes Klammernpaar für den
+Wert zu setzen ist. Das Vergessen dieser Klammern führt unweigerlich zu einer
+Fehlermeldung!
+
+Die Patches selbst werden erst bei \verb|\begin{document}| ausgeführt. Daher
+wäre ebenfalls
+\begin{lstcode}
+ \usepackage[enablepatch=chapter]{tocbasic}
+ \usepackage[enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+möglich und würde zu demselben Ergebnis führen.
+
+\begin{table}
+ \centering
+ \caption{für \Package{tocbasic} verfügbare Patches}
+ \labelofbase[tab]{patches}
+ \begin{desctabular}
+ \pventry{all}{%
+ \IndexOption{enablepatch~=all}\IndexOption{disablepatch~=all}%
+ Bei Aktivierung werden alle anderen Patches unabhängig von der
+ individuellen Einstellung ausgeführt. Falls eine \KOMAScript-Klasse
+ geladen ist, gilt dies nicht für \PValue{chapter}.%
+ }%
+ \pventry{chapter}{%
+ \IndexOption{enablepatch~=chapter}\IndexOption{disablepatch~=chapter}%
+ \IndexCmd{chapter}%
+ Über einen generischen Hook wird die Anweisung
+ \Macro{@makechapterhead}\IndexCmd{@makechapterhead} so erweitert,
+ dass bei einem neuen Kapitel ähnlich dem Abbildungsverzeichnis und dem
+ Tabellenverzeichnis ein vertikaler Abstand in alle Verzeichnisse der
+ Kategorie bzw. des Besitzers \PValue{float} eingefügt
+ wird. \important{Achtung!}Nicht nummerierte Kapitel, die mit
+ \Macro{chapter*} oder \Macro{@makeschapterhead} realisiert werden,
+ sind davon nicht betroffen.%
+ }%
+ \pventry{listoffigures}{%
+ \IndexOption{enablepatch~=listoffigures}%
+ \IndexOption{disablepatch~=listoffigures}%
+ Die Anweisung \Macro{listoffigures}\IndexCmd{listoffigures} wird so
+ umdefiniert, dass sie durch \Package{tocbasic} realisiert wird. Damit
+ stehen all von \Package{tocbasic} via \DescRef{\LabelBase.cmd.setuptoc}
+ bereitgestellten und in \autoref{sec:\LabelBase.toc} ab
+ \DescPageRef{\LabelBase.cmd.setuptoc} dokumentierten Möglichkeiten zur
+ Verfügung.%
+ }%
+ \pventry{listoftables}{%
+ \IndexOption{enablepatch~=listoftables}%
+ \IndexOption{disablepatch~=listoftables}%
+ Die Anweisung \Macro{listoftables}\IndexCmd{listoftables} wird so
+ umdefiniert, dass sie durch \Package{tocbasic} realisiert wird. Damit
+ stehen all von \Package{tocbasic} via \DescRef{\LabelBase.cmd.setuptoc}
+ bereitgestellten und in \autoref{sec:\LabelBase.toc} ab
+ \DescPageRef{\LabelBase.cmd.setuptoc} dokumentierten Möglichkeiten zur
+ Verfügung.%
+ }%
+ \pventry{starttoc}{%
+ \IndexOption{enablepatch~=starttoc}%
+ \IndexOption{disablepatch~=starttoc}%
+ \IndexCmd{@starttoc}%
+ Es wird die in \autoref{sec:\LabelBase.basics},
+ \DescPageRef{\LabelBase.cmd.tocbasicautomode} dokumentierte Anweisung
+ \DescRef{\LabelBase.cmd.tocbasicautomode} ausgeführt.%
+ }%
+ \end{desctabular}
+\end{table}
+
+Eine erste Besonderheit stellt
+\OptionValue{enablepatch}{all}\important{\OptionValue{enablepatch}{all}}%
+\IndexOption{enablepatch~=all} dar. Dies ist kein Patch im eigentlichen
+Sinn. Stattdessen sorgt die Einstellung dafür, dass alle Patches unabhängig
+von ihrer individuellen Einstellung ausgeführt werden. Dies kann mit
+\OptionValue{disablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all} wieder aufgehoben
+werden. \textnote{Achtung!}Mit \OptionValue{disablepatch}{all} werden also
+nicht sämtliche Patches deaktiviert, sondern es werden wieder die
+Einstellungen für die einzelnen Patches beachtet.
+
+Eine zweite Besonderheit stellt \OptionValue{enablepatch}{chapter}%
+\important{\OptionValue{enablepatch}{chapter}}%
+\IndexOption{enablepatch~=chapter} dar. Da dieser Patch auch Schaden
+anrichten kann, wird seine Verwendung immer in der Terminalausgabe und der
+\File{log}-Datei gemeldet. Bei Verwendung einer \KOMAScript-Klasse kann der
+Patch sogar echten Schaden anrichten. Daher wird in diesem Fall sogar eine
+Warnung ausgegeben.
+
+Da der \PValue{chapter}-Patch mit den \KOMAScript-Klassen normalerweise keinen
+Sinn ergibt, wird er von
+\OptionValue{enablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all} bei Verwendung einer \KOMAScript-Klasse zur
+Vermeidung eines eventuellen Schadens auch nicht aktiviert. Bei Verwendung
+einer \KOMAScript-Klasse müsste zur Aktivierung dieses Patches also explizit
+\OptionValue{enablepatch}{chapter} verwendet werden. In der Regel ist in
+diesem Fall davon abzusehen.
+
+\begin{Example}
+ Den Unterschied zwischen Verwendung von \Package{tocbasic} mit und ohne
+ Patch ist rasch zu erkennen, wenn wir das \Environment{remarkbox}-Beispiel
+ aus \autoref{sec:\LabelBase.declarenewtoc} einmal mit der Standardklasse
+ \Class{book} betrachten. Laden wir \Package{tocbasic} zunächst ohne
+ Optionen:%
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-nopatch-de.tex}%
+ Wie in den oberen Reihe von \autoref{fig:remarkbox} zu sehen, wird das
+ Abbildungsverzeichnis nicht ins Inhaltsverzeichnis aufgenommen. Die
+ Anweisung \verb|\setuptoc{lof}{totoc}| hat also keine Auswirkungen. Dagegen
+ erscheint das Verzeichnis der Merksätze in Folge von
+ \verb|\setuptoc{lor}{totoc}| sehr wohl im Inhaltsverzeichnis.
+ Zwar erscheint im Abbildungsverzeichnis selbst ein vertikaler Abstand
+ zwischen den Abbildungen von Kapitel~1 und Kapitel~2, nicht jedoch im
+ Verzeichnis der Merksätze.
+
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-nopatch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-nopatch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-nopatch-de.pdf}}\\
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-patch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-patch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-patch-de.pdf}}
+ \caption[{Beispiel für \Package{tocbasic} ohne und mit Patch bei Verwendung
+ von Klasse \Class{book}}]{Beispiel für \Package{tocbasic} ohne (oben)
+ und mit (unten) Patch bei Verwendung von Klasse \Class{book}}
+ \label{fig:remarkbox}
+ \end{figure}
+
+ Die zweite Reihe von \autoref{fig:remarkbox} zeigt dagegen wie es sein soll,
+ nämlich mit einem Eintrag sowohl für das Abbildungsverzeichnis als auch das
+ Verzeichnis der Merksätze im Inhaltsverzeichhnis und außerdem mit einem
+ vertikalen Abstand beim Kapitelwechsel in beiden dieser Verzeichnisse. Der
+ Eintrag für das Abbildungsverzeichnis wurde in nachfolgendem Code durch den
+ \PValue{listoffigures}-Patch erreicht. Dieser sogt dafür, dass
+ \verb|\setuptoc{lof}{totoc}| tatsächlich beachtet wird. Gleichzeitig sorgt
+ der \PValue{chapter}-Patch dafür, dass der Abstand wir gewünscht ins
+ Verzeichnis der Merksätze eingefügt wird.%
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-patch-de.tex}%
+ Ja, in der Tat, der einzige Unterschied zwischen den beiden Beispielen ist
+ das Laden von Paket \Package{tocbasic} ohne oder mit Option
+ \OptionValue{enablepatch}{\{chapter,listoffigures\}}.%
+\end{Example}%
+\EndIndexGroup
+\ExampleEndFix
+
\section{Obsolete Befehle}
\seclabel{obsolete}
diff --git a/macros/latex/contrib/koma-script/doc/tocbasic-en.tex b/macros/latex/contrib/koma-script/doc/tocbasic-en.tex
index 768c933207..cb264196b4 100644
--- a/macros/latex/contrib/koma-script/doc/tocbasic-en.tex
+++ b/macros/latex/contrib/koma-script/doc/tocbasic-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% tocbasic-en.tex
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{tocbasic-en.tex}
- [$Date: 2023-04-04 10:50:12 +0200 (Di, 04. Apr 2023) $
+ [$Date: 2024-06-30 20:35:47 +0200 (So, 30. Jun 2024) $
KOMA-Script guide (package tocbasic)]
\translator{Markus Kohm\and Arndt Schubert\and Karl Hagen}
@@ -49,14 +49,14 @@ implementing such features themselves.
As a minor side effect, the package can also be used to define new floating
environments, or floating environments like non-floating environments for
reference objects. For more details, after you read about the basic commands
-in the next four sections, see the example in \autoref{sec:tocbasic.example},
-which is compactly summarized in \autoref{sec:tocbasic.declarenewtoc}.
+in the next four sections, see the example in \autoref{sec:\LabelBase.example},
+which is compactly summarized in \autoref{sec:\LabelBase.declarenewtoc}.
\KOMAScript{} itself uses \Package{tocbasic} not only for the table of
contents but also for the already mentioned lists of figures and tables.
\section{Basic Commands}
-\label{sec:tocbasic.basics}
+\seclabel{basics}
The basic commands are primarily used to handle a list of all known file
extensions\textnote{file extension, content lists} that represent a table or
@@ -182,17 +182,18 @@ the file extensions ``\PValue{lof}'' for the list of figures and
``\PValue{lot}'' for the list of tables with the owner ``\PValue{float}'' and
sets the options for this owner.
-By the way, the \hyperref[cha:scrhack]{\Package{scrhack}}%
-\IndexPackage{scrhack}\important{\hyperref[cha:scrhack]{\Package{scrhack}}}
-package contains patches for several packages, such as
+By the way, the \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\IndexPackage{scrhack}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} package
+contains patches for several packages, such as
\Package{float}\IndexPackage{float} or
-\Package{listings}\IndexPackage{listings}, which provide their own content
-lists. If you use \hyperref[cha:scrhack]{\Package{scrhack}}, among other
-things, the respective file extensions will be added to the list of known file
-extensions. Their \PName{owner} is also ``\PValue{float}''. This is the basic
-building block, so to speak, allowing you to use the features of
+\Package{floatrow}\IndexPackage{floatrow}, which provide their own content
+lists. If you use \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}},
+among other things, the respective file extensions will be added to the list
+of known file extensions. Their \PName{owner} is also ``\PValue{float}''. This
+is the basic building block, so to speak, allowing you to use the features of
\Package{tocbasic} and the \KOMAScript{} classes with these content lists as
-well.%
+well. See \cite{pkg:scrhack:manual} for more information.%
\EndIndexGroup
@@ -224,7 +225,7 @@ extension of the extension currently being added.
The two \Macro{expandafter} commands in the example are needed because the
argument of \DescRef{\LabelBase.cmd.tocbasic@extend@babel} has to be expanded.
See the description of \DescRef{\LabelBase.cmd.tocbasic@extend@babel} in
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@extend@babel} for more information.%
\EndIndexGroup
@@ -271,7 +272,7 @@ owner will be processed.
The \KOMAScript{} classes \Class{scrbook} and \Class{scrreprt} use this
command to optionally put a vertical skip or the chapter heading in content
lists using the \PValue{chapteratlist} feature. You can learn how to set this
-feature in \autoref{sec:tocbasic.toc} on
+feature in \autoref{sec:\LabelBase.toc} on
\DescPageRef{\LabelBase.cmd.setuptoc}.%
\EndIndexGroup
@@ -283,7 +284,7 @@ This command redefines \LaTeX{} kernel macro \Macro{@starttoc} for class and
package authors so that every time \Macro{@starttoc} is called, the specified
file extension is added to the list of known extensions, if it has not already
been added. It also uses \DescRef{\LabelBase.cmd.tocbasic@starttoc} instead of
-\Macro{@starttoc}. See \autoref{sec:tocbasic.internals},
+\Macro{@starttoc}. See \autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@starttoc} for more information about
\DescRef{\LabelBase.cmd.tocbasic@starttoc} and \Macro{@starttoc}.
@@ -299,7 +300,7 @@ explicitly. That way they can also take advantage of the other features of
\section{Creating a Content List}
-\label{sec:tocbasic.toc}
+\seclabel{toc}
In the previous section, you learned how to maintain a list of known file
extensions and how to automatically execute commands when adding new
@@ -368,7 +369,7 @@ command is undefined, the internal command
all four arguments as mandatory arguments and then uses
\Macro{addcontentsline} to create the desired entry. You can find more about
\DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} in
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@addxcontentsline}.
One advantage of using \Macro{addxcontentsline} rather than
@@ -500,12 +501,15 @@ if there are no more write handles left. Loading the
\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
package \cite{package:scrwfile} can solve this problem.
-Also, the \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{\hyperref[cha:scrhack]{\Package{scrhack}}} package contains patches
-for several packages, such as \Package{float}\IndexPackage{float} or
-\Package{listings}\IndexPackage{listings}, so that their content-list commands
+Also, the \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\IndexPackage{scrhack}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} package
+contains patches for several packages, such as
+\Package{float}\IndexPackage{float} or
+\Package{floatrow}\IndexPackage{floatrow}, so that their content-list commands
can use \Macro{listoftoc}. As a result, many features of \Package{tocbasic}
-and the \KOMAScript{} classes are also available for their content lists.%
+and the \KOMAScript{} classes are also available for their content lists. See
+\cite{pkg:scrhack:manual} for more information.%
\EndIndexGroup
@@ -642,8 +646,8 @@ recognizes following features:
\item[\PValue{noindent}]\ChangedAt{v3.27}{\Package{tocbasic}}%
causes all content-list entry styles provided by \KOMAScript{} to ignore
the \PValue{indent} attribute (see
- \autoref{tab:tocbasic.tocstyle.attributes},
- \autopageref{tab:tocbasic.tocstyle.attributes.indent}) and instead to
+ \autoref{tab:\LabelBase.tocstyle.attributes},
+ \autopageref{tab:\LabelBase.tocstyle.attributes.indent}) and instead to
deactivate the indentation.%
\item[\PValue{noparskipfake}] prevents\ChangedAt{v3.17}{\Package{tocbasic}}
the insertion of a final \Length{parskip} before switched off paragraph
@@ -681,8 +685,8 @@ recognizes following features:
Using\ChangedAt{v3.20}{\Package{tocbasic}} the \PValue{tocline} entry style
can have additional side effects. See the style attribute
\Option{breakafternumber} and \Option{entrynumberformat} in
- \autoref{tab:tocbasic.tocstyle.attributes} starting on
- \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \autoref{tab:\LabelBase.tocstyle.attributes} starting on
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.
\KOMAScript{} classes set this feature for the file extensions with the
owner \PValue{float} if you use the
@@ -706,7 +710,7 @@ recognizes following features:
not use the \PValue{leveldown}\important{\PValue{leveldown}} feature. The
\KOMAScript{} classes \Class{scrbook} and \Class{scrreprt} activate this
feature with \DescRef{\LabelBase.cmd.AtAddToTocList} (see
- \autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.AtAddToTocList})
+ \autoref{sec:\LabelBase.basics}, \DescPageRef{\LabelBase.cmd.AtAddToTocList})
for all content lists with the owner \PValue{float} or with themselves as
owner. Thus, for example, the table of contents, the list of figures, and
the list of tables are automatically printed in a single column for both
@@ -879,8 +883,8 @@ Currently, \Package{tocbasic} defines the following entry styles:
entries, the indent will be increased by the value of \PValue{numwidth} for
the second and following lines. The page number is printed using
\Macro{normalfont}\IndexCmd{normalfont}. The entry text and the page number
- are connected by a dotted line. \hyperref[fig:tocbasic.dottedtocline]%
- {Figure~\ref*{fig:tocbasic.dottedtocline}} illustrates the attributes of
+ are connected by a dotted line. \hyperref[fig:\LabelBase.dottedtocline]%
+ {Figure~\ref*{fig:\LabelBase.dottedtocline}} illustrates the attributes of
this style.
\begin{figure}
\centering
@@ -927,7 +931,7 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustrations of some attributes of a TOC entry with the
\PValue{dottedtocline} style}
- \label{fig:tocbasic.dottedtocline}
+ \labelofbase[fig]{dottedtocline}
\end{figure}
\item[\PValue{gobble}] is the simplest possible style. Entries in this style,
regardless of the setting of \DescRef{\LabelBase.counter.tocdepth}%
@@ -949,8 +953,8 @@ Currently, \Package{tocbasic} defines the following entry styles:
value of \PName{indent} also has no effect on the indentation from the
second line and after in a multi-line entry.
- \hyperref[fig:tocbasic.largetocline]%
- {Figure~\ref*{fig:tocbasic.largetocline}} illustrates the characteristics of
+ \hyperref[fig:\LabelBase.largetocline]%
+ {Figure~\ref*{fig:\LabelBase.largetocline}} illustrates the characteristics of
this style. You will also notice that the style has adopted some
inconsistencies present in the standard classes, e.\,g. the missing indent
of the second and following lines of an entry or the different values of
@@ -993,7 +997,7 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustrations of some attributes of a TOC entry with style
\PValue{largetocline}}
- \label{fig:tocbasic.largetocline}
+ \labelofbase[fig]{largetocline}
\end{figure}
\item[\PValue{tocline}] is a flexible style. The \KOMAScript{} classes use
this style by default for all kinds of entries. Likewise, these classes
@@ -1025,11 +1029,11 @@ Currently, \Package{tocbasic} defines the following entry styles:
\PValue{dottedtocline}, \PValue{undottedtocline}, and \PValue{largetocline}
styles, but this requires more effort to configure.
- \hyperref[fig:tocbasic.tocline]%
- {Figure~\ref*{fig:tocbasic.tocline}} illustrates some of the length
+ \hyperref[fig:\LabelBase.tocline]%
+ {Figure~\ref*{fig:\LabelBase.tocline}} illustrates some of the length
attributes of this style. The others are explained in
- \autoref{tab:tocbasic.tocstyle.attributes} starting on
- \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \autoref{tab:\LabelBase.tocstyle.attributes} starting on
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.
\begin{figure}
\centering
\resizebox{.8\linewidth}{!}{%
@@ -1175,7 +1179,7 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustrations of some attributes of a TOC entry with the
\PValue{tocline} style}
- \label{fig:tocbasic.tocline}
+ \labelofbase[fig]{tocline}
\end{figure}
\item[\PValue{toctext}]\ChangedAt{v3.27}{\Package{tocbasic}}%
is a special feature. While all other styles produce one paragraph per
@@ -1204,8 +1208,8 @@ Currently, \Package{tocbasic} defines the following entry styles:
\DescRef{\LabelBase.cmd.numberline} is used unchanged. The width of the
entry number is determined by \PValue{numwidth}. For multi-line entries the
indent will be increased by the value of \PValue{numwidth} for the second
- and following lines. \hyperref[fig:tocbasic.undottedtocline]%
- {Figure~\ref*{fig:tocbasic.undottedtocline}} illustrates the attributes of
+ and following lines. \hyperref[fig:\LabelBase.undottedtocline]%
+ {Figure~\ref*{fig:\LabelBase.undottedtocline}} illustrates the attributes of
this style.
\begin{figure}
\centering
@@ -1243,11 +1247,11 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustration of some attributes of the \PValue{undottedtocline}
style with the example of a chapter title}%
- \label{fig:tocbasic.undottedtocline}
+ \labelofbase[fig]{undottedtocline}
\end{figure}
\end{description}
You can find an explanation of the attributes of all styles that
-\Package{tocbasic} defines in \autoref{tab:tocbasic.tocstyle.attributes}.
+\Package{tocbasic} defines in \autoref{tab:\LabelBase.tocstyle.attributes}.
In\ChangedAt{v3.27}{\Package{tocbasic}} addition to the usual assignment with
\Option{\PName{key}=\PName{value}}, both commands understand an assignment in
the form \Option{\PName{key}:=\PName{entry level}} for all options of the
@@ -1287,7 +1291,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
\begin{desclist}
\desccaption{%
Attributes of the predefined TOC-entry styles of \Package{tocbasic}%
- \label{tab:tocbasic.tocstyle.attributes}%
+ \labelofbase[tab]{tocstyle.attributes}%
}{%
Attributes of the TOC-entry styles (\emph{continued})%
}%
@@ -1300,7 +1304,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
}%
\entry{\OptionVName{beforeskip}{length}}{%
The vertical distance inserted before an entry of this level in the
- \PValue{tocline} style (see \autoref{fig:tocbasic.tocline}). The distance
+ \PValue{tocline} style (see \autoref{fig:\LabelBase.tocline}). The distance
is made using either \Macro{vskip} or \Macro{addvspace} depending on the
\PName{entry level}, to maintain compatibility as far as possible with the
standard classes and earlier versions of \KOMAScript.
@@ -1329,7 +1333,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
If\textnote{Attention!} the \Option{numberline} feature has been activated
for a content list (see \DescRef{\LabelBase.cmd.setuptoc},
- \autoref{sec:tocbasic.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
+ \autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
the case with the \KOMAScript{} classes when the
\OptionValueRef{maincls}{toc}{numberline}%
\IndexOption{toc~=\textKValue{numberline}} option is used, then the
@@ -1380,7 +1384,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
If\textnote{Attention!} the \Option{numberline} feature for a content list
has been activated (see \DescRef{\LabelBase.cmd.setuptoc},
- \autoref{sec:tocbasic.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
+ \autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
the case with the \KOMAScript{} classes using the
\OptionValueRef{maincls}{toc}{numberline}%
\IndexOption{toc~=\textKValue{numberline}} option, the unnumbered entries
@@ -1388,14 +1392,14 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
}%
\entry{%
\OptionVName{indent}{length}%
- {\phantomsection\label{tab:tocbasic.tocstyle.attributes.indent}}%
+ {\phantomsection\labelofbase[tab]{tocstyle.attributes.indent}}%
}{%
For\ChangedAt{v3.27}{\Package{tocbasic}} the \PValue{toctext} style, the
\PName{length} is the horizontal distance of the paragraph from the left
margin. If different entries within the paragraph have different settings,
the last one is used. For the remaining styles, the \PName{length} is the
horizontal distance of the entry from the left margin (see
- \autoref{fig:tocbasic.dottedtocline} and \autoref{fig:tocbasic.tocline}).
+ \autoref{fig:\LabelBase.dottedtocline} and \autoref{fig:\LabelBase.tocline}).
For the styles \PValue{tocline} and \PValue{toctext}, all entry levels
whose names start with ``\texttt{sub}'' are initialised with the
@@ -1476,8 +1480,8 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
}%
\entry{\OptionVName{numwidth}{length}}{%
The width reserved for the entry number (see
- \autoref{fig:tocbasic.dottedtocline} to
- \autoref{fig:tocbasic.undottedtocline}). With the \PValue{dottedtocline},
+ \autoref{fig:\LabelBase.dottedtocline} to
+ \autoref{fig:\LabelBase.undottedtocline}). With the \PValue{dottedtocline},
\PValue{tocline}, and \PValue{undottedtocline} styles, this \PName{length}
is added to the \PName{length} of attribute \PValue{indent} for the second
and following lines of the entry text.
@@ -1702,7 +1706,7 @@ content lists are made using
\Macro{addcontentsline}\IndexCmd{addcontentsline}, or preferably, if you use
\Package{tocbasic}, with
\DescRef{\LabelBase.cmd.addxcontentsline}\IndexCmd{addxcontentsline} (see
-\autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline}).
+\autoref{sec:\LabelBase.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline}).
In both cases \LaTeX{} writes a corresponding
\Macro{contentsline}\IndexCmd{contentsline} to the appropriate auxiliary file.
When reading this auxiliary file, \LaTeX{} then executes a
@@ -1927,7 +1931,7 @@ This command is typically invoked by default for every file \PName{extension}
added to the list of known extensions with
\DescRef{\LabelBase.cmd.addtotoclist}. You can suppress this with the
\PValue{nobabel}\important{\PValue{nobabel}} feature (see
-\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}). \Package{tocbasic} does this
automatically for the extensions \File{toc}, \File{lof}, and \File{lot} to
avoid switching languages twice in the corresponding files.
@@ -1948,7 +1952,7 @@ file extension!%
This command is the actual replacement for the
\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} command
from the \LaTeX{} kernel. It is the command behind
-\DescRef{\LabelBase.cmd.listoftoc*} (see \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc*} (see \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc*}). Class or package authors who want to
take advantage of \Package{tocbasic} should at least use this command, or even
better, \DescRef{\LabelBase.cmd.listoftoc}. The command uses
@@ -2063,9 +2067,9 @@ be prefixed by \Macro{nonumberline} without any argument. Otherwise,
as usual.
The \Macro{nonumberline} command is redefined inside
-\DescRef{\LabelBase.cmd.listoftoc} (see \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc} (see \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc}) depending on the \PValue{numberline}
-feature (see \autoref{sec:tocbasic.toc},
+feature (see \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}). As a result, changing this feature
results in changes of the corresponding TOC immediately at the next \LaTeX{}
run.%
@@ -2077,7 +2081,7 @@ run.%
\Macro{tocbasic@SetPenaltyByTOCLevel}\Parameter{entry level}
\end{Declaration}
The\ChangedAt{v3.20}{\Package{tocbasic}} \PValue{tocline}
-content-list style (see \autoref{sec:tocbasic.tocstyle}) sets a
+content-list style (see \autoref{sec:\LabelBase.tocstyle}) sets a
\Macro{penalty} at the end of each entry via
\Macro{tocbasic@SetPenaltyByTOCLevel} so that no page break can occur after an
entry. The exact value chosen depends on the \PName{entry level}.
@@ -2245,7 +2249,7 @@ is sufficient to set a list of features passed as an argument to
\File{lor}.
\section{Everything with Only One Command}
-\label{sec:tocbasic.declarenewtoc}
+\seclabel{declarenewtoc}
The example in the previous section has shows that \Package{tocbasic} makes it
easy to define your own floating environments with their own content lists.
@@ -2267,7 +2271,7 @@ for this new content list. You can also use the \KOMAScript{} extensions
\DescRef{maincls.env.captionbeside} (see \autoref{sec:maincls.floats}).
The \PName{extension} argument is the file extension of the TOC file that
-represents the content list, as explained in \autoref{sec:tocbasic.basics}.
+represents the content list, as explained in \autoref{sec:\LabelBase.basics}.
This argument is mandatory and must not be empty!
The \PName{options} argument is a comma-separated list, of the same type as,
@@ -2275,11 +2279,11 @@ for example, \DescRef{maincls.cmd.KOMAoptions} (see
\autoref{sec:typearea.options}). However\textnote{Attention!}, those options
cannot be set using \DescRef{maincls.cmd.KOMAoptions}\IndexCmd{KOMAoptions}!
You can find an overview of all available options in
-\autoref{tab:tocbasic.DeclareNewTOC-options}.
+\autoref{tab:\LabelBase.DeclareNewTOC-options}.
If\ChangedAt{v3.20}{\Package{tocbasic}} the \Option{tocentrystyle}
option is not used, the \PValue{default} style will be used if required. For
-information about this style, see \autoref{sec:tocbasic.tocstyle}. If you do
+information about this style, see \autoref{sec:\LabelBase.tocstyle}. If you do
not want to define a command for entries to the content list, you can use an
empty argument, i.\,e. \OptionValue{tocentrystyle}{} or
\OptionValue{tocentrystyle}{\PParameter{}}.
@@ -2289,13 +2293,13 @@ Depending\ChangedAt{v3.20}{\Package{tocbasic}}%
the content list, you can set all valid attributes of the selected style as
part of the \PName{options}. To do so, you must add the prefix
\PValue{tocentry} to the names of the attributes given in
-\autoref{tab:tocbasic.tocstyle.attributes}, starting on
-\autopageref{tab:tocbasic.tocstyle.attributes}. You can make later changes to
+\autoref{tab:\LabelBase.tocstyle.attributes}, starting on
+\autopageref{tab:\LabelBase.tocstyle.attributes}. You can make later changes to
the style of the entries at any time using
\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}%
\IndexCmd{DeclareTOCStyleEntry}%
\important{\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}}. See
-\autoref{sec:tocbasic.tocstyle},
+\autoref{sec:\LabelBase.tocstyle},
\DescPageRef{\LabelBase.cmd.DeclareTOCStyleEntry} for more information about
the styles.%
%
@@ -2304,7 +2308,7 @@ the styles.%
\desccaption[{Options for command \Macro{DeclareNewTOC}}]{%
Options for the
\Macro{DeclareNewTOC}\ChangedAt{v3.06}{\Package{tocbasic}} command%
- \label{tab:tocbasic.DeclareNewTOC-options}%
+ \labelofbase[tab]{DeclareNewTOC-options}%
}{%
Options for the \Macro{DeclareNewTOC} command (\emph{continued})%
}%
@@ -2431,7 +2435,7 @@ the styles.%
}%
\entry{\OptionVName{owner}{string}}{%
Every new content list has an owner in \Package{tocbasic} (see
- \autoref{sec:tocbasic.basics}). You can specify this here. If no owner is
+ \autoref{sec:\LabelBase.basics}). You can specify this here. If no owner is
specified, the owner ``\PValue{float}'' is used. The \KOMAScript{} classes
use this owner for the list of figures and the list of tables.%
}%
@@ -2452,16 +2456,16 @@ the styles.%
such an attribute with \PValue{tocentry}. For example, you can change the
numerical level of the entries using the \Option{tocentrylevel} option.
For more information about the styles and their attributes see
- \autoref{sec:tocbasic.tocstyle}, starting on
- \autopageref{sec:tocbasic.tocstyle}.%
+ \autoref{sec:\LabelBase.tocstyle}, starting on
+ \autopageref{sec:\LabelBase.tocstyle}.%
}%
\entry{\OptionVName{tocentry\PName{style-option}}{value}}{%
\ChangedAt{v3.20}{\Package{tocbasic}}%
Additional options depending on the \PName{TOC-entry style} given by
- \Option{tocentrystyle}. See \autoref{sec:tocbasic.tocstyle},
- \autopageref{sec:tocbasic.tocstyle} for additional information about
- TOC-entry styles. See \autoref{tab:tocbasic.tocstyle.attributes},
- \autopageref{tab:tocbasic.tocstyle.attributes} for information about the
+ \Option{tocentrystyle}. See \autoref{sec:\LabelBase.tocstyle},
+ \autopageref{sec:\LabelBase.tocstyle} for additional information about
+ TOC-entry styles. See \autoref{tab:\LabelBase.tocstyle.attributes},
+ \autopageref{tab:\LabelBase.tocstyle.attributes} for information about the
attributes of the predefined TOC-entry styles of package
\Package{tocbasic} that can be used as \PName{style-option}.%
}%
@@ -2487,7 +2491,7 @@ the styles.%
\begin{Example}
Using \Macro{DeclareNewTOC} significantly shortens the example from
- \autoref{sec:tocbasic.example}:
+ \autoref{sec:\LabelBase.example}:
\begin{lstcode}
\DeclareNewTOC[%
type=remarkbox,%
@@ -2499,25 +2503,26 @@ the styles.%
]{lor}
\setuptoc{lor}{chapteratlist}
\end{lstcode}
- In addition to the \Environment{remarkbox} and \Environment{remarkbox*} environments,
- this also defines the \Counter{remarkbox} counter; the commands \Macro{theremarkbox},
- \Macro{remarkboxname}, and \Macro{remarkboxformat} that are used for
- captions; the commands \Macro{listremarkboxnames} and
- \Macro{listofremarkboxes} that are used in the list of remarks; and some
- internal commands that depend on the file name extension \File{lor}.
- If the package should use a default for the floating type, the
- Option{floattype} option can be omitted. If the \Option{nonfloat} option is specified,
- a non-floating environment, \Environment{remarkbox-}, will
- also be defined, inside which you can use \DescRef{maincls.cmd.caption}\IndexCmd{caption}.
- \hyperref[tab:tocbasic.comparison]{Figure~\ref*{tab:tocbasic.comparison}}
- compares the commands, counters, and environments of the
- example \Environment{remarkbox} environment to the commands, counters,
- and environments of figures.%
+ In addition to the \Environment{remarkbox} and \Environment{remarkbox*}
+ environments, this also defines the \Counter{remarkbox} counter; the
+ commands \Macro{theremarkbox}, \Macro{remarkboxname}, and
+ \Macro{remarkboxformat} that are used for captions; the commands
+ \Macro{listremarkboxnames} and \Macro{listofremarkboxes} that are used in
+ the list of remarks; and some internal commands that depend on the file name
+ extension \File{lor}. If the package should use a default for the floating
+ type, the \Option{floattype} option can be omitted. If the \Option{nonfloat}
+ option is specified, a non-floating environment, \Environment{remarkbox-},
+ will also be defined, inside which you can use
+ \DescRef{maincls.cmd.caption}\IndexCmd{caption}.
+ \hyperref[tab:\LabelBase.comparison]{Figure~\ref*{tab:\LabelBase.comparison}}
+ compares the commands, counters, and environments of the example
+ \Environment{remarkbox} environment to the commands, counters, and
+ environments of figures.%
\begin{table}
\centering
\caption{Comparing the example \Environment{remarkbox} environment
with the \Environment{figure} environment}
- \label{tab:tocbasic.comparison}
+ \labelofbase[tab]{comparison}
\begin{tabularx}{\textwidth}{ll>{\raggedright}p{6em}X}
\toprule
\Environment{remarkbox} & \Environment{figure}
@@ -2592,15 +2597,182 @@ convert the first letter of \Option{types} to upper case. Better is of course
to use an up-to-date \Package{hyperref} with an up-to-date \LaTeX.%
\EndIndexGroup
-
-\section{Obsolete Befehle}
+
+\section{Using \Package{tocbasic} with Third-Party Classes}
+\seclabel{standardclasses}
+
+The \Package{tocbasic} package can be utilized with classes beyond the
+\KOMAScript{} ones. Starting from version
+3.42\ChangedAt{v3.42}{\Package{tocbasic}}, the package also provides
+additional functionality to ensure seamless integration with other
+classes. However, note that these new features have been thoroughly tested
+only with standard classes and require invasive adjustments to foreign
+classes. For this reason, none of the features are active in the default
+setting. Instead, they must be activated through options\,---\,in one
+instance, alternatively by command\,---\,to be enabled.
+
+These new options \emph{cannot} be set with \DescRef{maincls.cmd.KOMAoptions}
+or \DescRef{maincls.cmd.KOMAoption}. Instead, when loading \Package{tocbasic}
+they are optional arguments of \Macro{usepackage} --
+resp. \Macro{RequirePackage} for class and package authors. To compensate, it
+is possible to load the package multiple times with different
+options. \textnote{Attention!}However, the options require a \LaTeX{} version
+2022/06/01\textnote{\LaTeX{} 2022/06/01} onwards, so with older \LaTeX{}
+versions the new features are \emph{not} available.
+
+\begin{Declaration}
+ \OptionVName{enablepatch}{list of patches}
+ \OptionVName{disablepatch}{list of patches}
+\end{Declaration}
+Option\ChangedAt{v3.42}{\Package{tocbasic}} enables the patches listed, while
+\Option{disablepatch} disables them. In both cases, the \PName{list of
+ patches} is a comma-separated list of individual patches enclosed in single
+curly braces. A list of available patches can be found in
+\autoref{tab:\LabelBase.patches}. Both options can be used several times. For
+example:
+\begin{lstcode}
+ \usepackage[enablepatch=chapter,enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+is equivalent to
+\begin{lstcode}
+ \usepackage[enablepatch={chapter,listoffigure}]{tocbasic}
+\end{lstcode}
+Note that in the second case, exactly one pair of curly braces must be set for
+the value. Forgetting these brackets will inevitably lead to an error message!
+
+The patches themselves are executed at \verb|\begin{document}|. Therefore
+\begin{lstcode}
+ \usepackage[enablepatch=chapter]{tocbasic}
+ \usepackage[enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+is also possible and would lead to the same result.
+
+\begin{table}
+ \centering
+ \caption{with \Package{tocbasic} available patches}
+ \labelofbase[tab]{patches}
+ \begin{desctabular}
+ \pventry{all}{%
+ \IndexOption{enablepatch~=all}\IndexOption{disablepatch~=all}%
+ When activated, all other patches are executed regardless of the
+ individual setting. If a \KOMAScript{} class is loaded, this does not
+ apply to \PValue{chapter}.%
+ }%
+ \pventry{chapter}{%
+ \IndexOption{enablepatch~=chapter}\IndexOption{disablepatch~=chapter}%
+ \IndexCmd{chapter}%
+ Via a generic hook, the \Macro{@makechapterhead} command is extended to
+ insert a vertical spacing in all lists of the category or owner
+ \PValue{float} in case of a new chapter similar to the list of figures
+ and the list of tables. Non-numbered chapters created with
+ \Macro{chapter*} or \Macro{@makeschapterhead} are not impacted by this
+ modification.%
+ }%
+ \pventry{listoffigures}{%
+ \IndexOption{enablepatch~=listoffigures}%
+ \IndexOption{disablepatch~=listoffigures}%
+ The \Macro{listoffigures}\IndexCmd{listoffigures} command is now
+ redefined to be implemented by \Package{tocbasic}, allowing for all the
+ features provided by \Package{tocbasic} to be accessed through
+ \DescRef{\LabelBase.cmd.setuptoc}. These features are documented in
+ \autoref{sec:\LabelBase.toc} on \DescPageRef{\LabelBase.cmd.setuptoc}.%
+ }%
+ \pventry{listoftables}{%
+ \IndexOption{enablepatch~=listoftables}%
+ \IndexOption{disablepatch~=listoftables}%
+ The \Macro{listoftables}\IndexCmd{listoftables} command is now redefined
+ to be implemented by \Package{tocbasic}, allowing for all the features
+ provided by \Package{tocbasic} to be accessed through
+ \DescRef{\LabelBase.cmd.setuptoc}. These features are documented in
+ \autoref{sec:\LabelBase.toc} on \DescPageRef{\LabelBase.cmd.setuptoc}.%
+ }%
+ \pventry{starttoc}{%
+ \IndexOption{enablepatch~=starttoc}%
+ \IndexOption{disablepatch~=starttoc}%
+ \IndexCmd{@starttoc}%
+ The \DescPageRef{\LabelBase.cmd.tocbasicautomode} command, which is
+ explained in \autoref{sec:\LabelBase.basics},
+ \DescPageRef{\LabelBase.cmd.tocbasicautomode}, is invoked.%
+ }%
+ \end{desctabular}
+\end{table}
+
+A first noteworthy feature is
+\OptionValue{enablepatch}{all}\important{\OptionValue{enablepatch}{all}}%
+\IndexOption{enablepatch~=all}. While not a true patch, this setting
+guarantees that all patches are executed, irrespective of their individual
+settings. However, this can be overridden by
+\OptionValue{disablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all}. \textnote{Attention!}With
+\OptionValue{disablepatch}{all} not all patches are deactivated, but rather
+the individual settings for each patch are respected.
+
+A second noteworthy feature is
+\OptionValue{enablepatch}{chapter}\important{\OptionValue{enablepatch}{chapter}}%
+\IndexOption{enablepatch~=chapter}. Its usage may result in damage, hence a
+notification is displayed in the terminal output and add to the \File{log}
+file. Utilizing the patch with a \KOMAScript{} class can lead to actual
+damage, and therefore is triggering a warning.
+
+Since the \PValue{chapter} patch has no useful function with the \KOMAScript{}
+classes, it will not be employed by
+\OptionValue{enablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all} when using a \KOMAScript{} class to prevent
+potential harm. Hence, when using a \KOMAScript{} class,
+\OptionValue{enablepatch}{chapter} would be needed explicitly to enable this
+patch. But you usually should not enable it in this case.
+
+\begin{Example}
+ The contrast between employing \Package{tocbasic} with and without patching
+ is readily apparent when examining the \Environment{remarkbox} example from
+ \autoref{sec:\LabelBase.declarenewtoc} using the class
+ \Class{book}. Initially, let us load \Package{tocbasic} sans options:
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-nopatch-en.tex}%
+
+ As you can see from the upper row of \autoref{fig:remarkbox}, the table of
+ figures is not included in the table of contents. The statement
+ \verb|\setuptoc{lof}{totoc}| has no effect. On the other hand, the list of
+ remarks appears in the table of contents as a result of
+ \verb|\setuptoc{lor}{totoc}|. Although a vertical space appears in the list
+ of figures itself between the figures of chapter~1 and chapter~2, it does
+ not appear in the list of remarks.
+
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-nopatch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-nopatch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-nopatch-en.pdf}}\\
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-patch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-patch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-patch-en.pdf}}
+ \caption[{Example for \Package{tocbasic} without and with patch when using
+ class \Class{book}}]{Example for \Package{tocbasic} without (above) and
+ with (below) patch when using class \Class{book}}
+ \label{fig:remarkbox}
+ \end{figure}
+
+ The second row of \autoref{fig:remarkbox} demonstrates the proper listing
+ format: including entries for both the list of figures and the list of
+ remarks in the table of contents, as well as vertical spacing when changing
+ chapters in both lists. The code has been updated with the
+ \PValue{listoffigures} patch, replacing the entry for the list of
+ figures. This guarantees that \verb|\setuptoc{lof}{totoc}| will be correctly
+ applied. At the same time, the \PValue{chapter} patch ensures that the
+ offset is inserted into the list of remarks as intended.%
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-patch-en.tex}%
+ Yes, indeed, the only difference of both examples is loading
+ the package \Package{tocbasic} without or with option
+ \OptionValue{enablepatch}{\{chapter,listoffigures\}}.%
+\end{Example}%
+\EndIndexGroup
+\ExampleEndFix
+
+\section{Deprecated Commands}
\seclabel{obsolete}
-% TODO: new translation
-Prior releases of \Package{tocbasic} provide some commands that has been
-renamed, because of a statement of The \LaTeX{} Project Team. Those deprecated
-commands should not be used any longer.
-% :ODOT
+Earlier versions of \Package{tocbasic} had commands that were renamed in
+response to feedback from members of the \LaTeX{} Project Team. These deprecated
+commands should not be used anymore.
\LoadNonFree{tocbasic}{0}%
%
diff --git a/macros/latex/contrib/koma-script/scraddr.dtx b/macros/latex/contrib/koma-script/scraddr.dtx
index 78027dfaf3..9eb34a3693 100644
--- a/macros/latex/contrib/koma-script/scraddr.dtx
+++ b/macros/latex/contrib/koma-script/scraddr.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scraddr.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scraddr.dtx 4104 2024-02-01 09:52:39Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{scraddr.dtx}
@@ -201,13 +201,19 @@
\fi}
% \end{macrocode}
% Not existing files result in an error message. Found files are only noted.
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
\InputIfFileExists{#1.adr}
- {\typeout{Load addressfile: #1.adr.}}
- {\PackageError{scraddr}
- {File #1.adr not found}
- {The addressfile you wanted is not
- available}}
+ {%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {scraddr}{Address file `#1.adr' loaded}%
+ }%
+ {%
+ \PackageError{scraddr}
+ {File `#1.adr' not found}
+ {The address file you wanted is not available}%
+ }
\endgroup}
% \end{macrocode}
% \end{command}
diff --git a/macros/latex/contrib/koma-script/scrdoc.cls b/macros/latex/contrib/koma-script/scrdoc.cls
deleted file mode 100644
index c80ada6078..0000000000
--- a/macros/latex/contrib/koma-script/scrdoc.cls
+++ /dev/null
@@ -1,354 +0,0 @@
-% ======================================================================
-% scrdoc.cls
-% Copyright (c) Markus Kohm, 2002-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.md.
-% ======================================================================
-% Note: This class was made to shrink size of dtx files.
-% Do not use this class for anything because it may change
-% incompatible from distribution to distribution
-% ======================================================================
-% $Id: scrdoc.cls 3900 2022-06-24 08:00:42Z kohm $
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{scrdoc}[%
- 2022/06/24 v0.1j KOMA-Script source documentation class (deprecated)]
-
-\ClassWarningNoLine{scrdoc}{%
- This class is depreacted since KOMA-Script 3.36!\MessageBreak
- The internal KOMA-Script source documentation class\MessageBreak
- scrdoc is not used any longer for the implementation\MessageBreak
- documentation of KOMA-Script.\MessageBreak
- It is also not compatible with version 3 of the\MessageBreak
- doc package and currently only a workaround is used to\MessageBreak
- force using doc version 2 and to ignore ltxdoc.cfg.\MessageBreak
- You should replace this class urgently, because it will\MessageBreak
- be removed from KOMA-Script soon%
-}
-
-% scrdoc is incompatible with doc v3. Several changes would be needed
-% to improve this. However, currently a kind of emergency workaround can be
-% used.
-\PassOptionsToClass{nocfg,doc2}{scrdoc}
-
-% Replace article class by scrartcl class.
-\newcommand*{\sd@saved@LoadClass}{}
-\let\sd@saved@LoadClass=\LoadClass
-\renewcommand*{\LoadClass}[2][]{%
- \begingroup
- \edef\@tempc{#2}\def\@tempb{article}%
- \ifx\@tempc\@tempb
- \let\LoadClass\sd@saved@LoadClass
- \def\@tempc{scrartcl}%
- \fi
- \edef\@tempc{%
- \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}%
- \@tempc
-}
-\newcommand*{\sd@saved@PassOptionsToClass}{}
-\let\sd@saved@PassOptionsToClass=\PassOptionsToClass
-\renewcommand*{\PassOptionsToClass}[2]{%
- \begingroup
- \edef\@tempc{#2}\def\@tempb{article}%
- \ifx\@tempc\@tempb
- \def\@tempc{scrartcl}%
- \fi
- \edef\@tempc{%
- \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{%
- \@tempc}}%
- \@tempc
-}
-\LoadClassWithOptions{ltxdoc}[2022/06/14]
-\@ifundefined{cs}{\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}}{}
-
-% Use two columns at index
-\setcounter{IndexColumns}{2}
-
-% If \EnableCrossrefs is used, we don't want following macros to be
-% indexed:
-
-\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{\@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}
-\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{\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{\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}
-\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,\RequirePackage,\reset@font}
-\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\@Roman,\@roman}
-\DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength}
-\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
-\DoNotIndex{\string}
-\DoNotIndex{\the,\thispagestyle,\triangleright,\ttfamily}
-\DoNotIndex{\twocolumn,\typeout}
-\DoNotIndex{\undefined,\usecounter}
-\DoNotIndex{\vfil,\vfill,\vspace}
-\DoNotIndex{\wd,\xdef,\year,\z@}
-% More may be set by the source files.
-
-% Redefine some defaults to handle not only macros and environments
-% but also options, Length, Counters, KOMAvars. Also define some new.
-\def\macro{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{0}}
-\def\environment{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{1}}
-\def\option{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{2}}
-\def\Length{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{3}}
-\def\Counter{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{4}}
-\def\KOMAvar{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{5}}
-\def\KOMAfont{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{6}}
-\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
- \edef\saved@macroname{\string#2}%
- \ifcase #1
- \edef\saved@indexname{\expandafter\@gobble\string#2}%
- \else
- \let\saved@indexname\saved@macroname
- \fi
- \def\makelabel##1{\llap{##1}}%
- \if@inlabel
- \let\@tempa\@empty \count@\macro@cnt
- \loop \ifnum\count@>\z@
- \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne
- \repeat
- \edef\makelabel##1{\llap{\vtop to\baselineskip
- {\@tempa\hbox{##1}\vss}}}%
- \advance \macro@cnt \@ne
- \else \macro@cnt\@ne \fi
- \edef\@tempa{\noexpand\item[%
- \ifcase #1
- \noexpand\PrintMacroName
- \or
- \noexpand\PrintEnvName
- \or
- \noexpand\PrintOptionName
- \or
- \noexpand\PrintLengthName
- \or
- \noexpand\PrintCounterName
- \or
- \noexpand\PrintKOMAvarName
- \or
- \noexpand\PrintKOMAfontName
- \fi
- {\string#2}]}%
- \@tempa
- \global\advance\c@CodelineNo\@ne
- \ifcase #1
- \SpecialMainIndex{#2}\nobreak
- \DoNotIndex{#2}%
- \or
- \SpecialMainEnvIndex{#2}\nobreak
- \or
- \SpecialMainOptionIndex{#2}\nobreak
- \or
- \SpecialMainLengthIndex{#2}\nobreak
- \DoNotIndex{#2}%
- \or
- \SpecialMainCounterIndex{#2}\nobreak
- \or
- \SpecialMainKOMAvarIndex{#2}\nobreak
- \or
- \SpecialMainKOMAfontIndex{#2}\nobreak
- \fi
- \global\advance\c@CodelineNo\m@ne
- \ignorespaces}
-\let\endoption\endmacro
-\let\endLength\endmacro
-\let\endCounter\endmacro
-\let\endKOMAvar\endmacro
-
-% Some new command
-\newcommand*{\File}[1]{\texttt{\mbox{#1}}}
-\newcommand*{\Class}{\File}
-\newcommand*{\Package}{\File}
-\newcommand*{\Macro}{\cs}
-\newcommand*{\Option}{\File}
-
-% The new names we need
-\providecommand*{\EnvName}{Umgebung}% This is german
-\providecommand*{\EnvsName}{Umgebungen}% This is german
-\providecommand*{\OptionName}{Option}% This is german
-\providecommand*{\OptionsName}{Optionen}% This is german
-\providecommand*{\PrintOptionName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeOption}[1]{\strut \MacroFont #1\ }
-\providecommand*{\LengthName}{L\"ange}% This is german
-\providecommand*{\LengthsName}{L\"angen}% This is german
-\providecommand*{\PrintLengthName}[1]{\strut \MacroFont \string #1\ }
-\providecommand*{\PrintDescribeLength}[1]{\strut \MacroFont \string #1\ }
-\providecommand*{\CounterName}{Z\"ahler}% This is german
-\providecommand*{\CountersName}{Z\"ahler}% This is german
-\providecommand*{\PrintCounterName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeCounter}[1]{\strut \MacroFont #1\ }
-\providecommand*{\KOMAvarName}{Variable}% This is german
-\providecommand*{\KOMAvarsName}{Variablen}% This is german
-\providecommand*{\PrintKOMAvarName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeKOMAvar}[1]{\strut \MacroFont #1\ }
-\providecommand*{\KOMAfontName}{Element mit Schrift}% This is german
-\providecommand*{\KOMAfontsName}{Elemente mit Schrift}% This is german
-\providecommand*{\PrintKOMAfontName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeKOMAfont}[1]{\strut \MacroFont #1\ }
-
-% Defining new main index commands
-\newcommand*{\SpecialMainIndex@Type}[3]{%
- \@bsphack\special@index{%
- #1\actualchar
- {\string\ttfamily\space#1}
- (\string #2)%
- \encapchar main}%
- \special@index{%
- #3:\levelchar{%
- \string\ttfamily\space#1}\encapchar
- main}\@esphack}
-\renewcommand*{\SpecialMainEnvIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\EnvName}{\EnvsName}}
-\newcommand*{\SpecialMainOptionIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
-\newcommand*{\SpecialMainLengthIndex}[1]{%
- \@bsphack\SpecialIndex@{#1}{(\string\LengthName )\encapchar main}%
- \@esphack}
-\newcommand*{\SpecialMainCounterIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
-\newcommand*{\SpecialMainKOMAvarIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
-\newcommand*{\SpecialMainKOMAfontIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\KOMAfontName}{\KOMAfontsName}}
-
-% Defining new usage index commands
-\newcommand*{\SpecialIndex@Type}[3]{%
- \@bsphack
- \index{#1\actualchar{\protect\ttfamily#1}
- (#2)\encapchar usage}%
- \index{#3:\levelchar{\protect\ttfamily#1}\encapchar
- usage}\@esphack}
-\renewcommand{\SpecialEnvIndex}[1]{%
- \SpecialIndex@Type{#1}{\EnvName}{\EnvsName}}
-\newcommand*{\SpecialOptionIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
-\newcommand*{\SpecialLengthIndex}[1]{\@bsphack%
- {\let\special@index\index
- \SpecialIndex@{#1}{(\string\LengthName )\encapchar usage}}%
- \@esphack}
-\newcommand*{\SpecialCounterIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
-\newcommand*{\SpecialKOMAvarIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
-
-% Define new describe commands
-\newcommand*{\newDescribe}[1]{%
- \expandafter\newcommand\expandafter*\csname Describe#1\endcsname{%
- \leavevmode\@bsphack\begingroup\MakePrivateLetters
- \csname Describe@#1\endcsname}%
- \expandafter\newcommand\expandafter*\csname Describe@#1\endcsname[1]{%
- \endgroup
- \marginpar{\raggedleft\csname PrintDescribe#1\endcsname{##1}}%
- \csname Special#1Index\endcsname{##1}\@esphack\ignorespaces}%
-}
-\newDescribe{Option}
-
-% We use left margin very much, so shift everything to the right
-\if@twoside
-\else
-\addtolength{\oddsidemargin}{1in}
-\setlength{\oddsidemargin}{1.5\oddsidemargin}
-\addtolength{\oddsidemargin}{-1in}
-\fi
-
-% We need some logos:
-\providecommand*{\eTeX}{$\m@th\varepsilon$-\TeX}
-
-% Terms for other languages:
-\AtBeginDocument{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname addto\endcsname\relax
- \ClassWarning{scrdoc}{Package babel not loaded}%
- \else
- \addto\captionsenglish{%
- \def\partname{File}%
- }%
- \addto\captionsngerman{%
- \def\partname{Datei}%
- }%
- \ClassInfo{scrdoc}{Select language \languagename}%
- \expandafter\selectlanguage\expandafter{\languagename}%
- \fi
-}
-
-\endinput
-% end of ``scrdoc.cls''
diff --git a/macros/latex/contrib/koma-script/scrhack.dtx b/macros/latex/contrib/koma-script/scrhack.dtx
deleted file mode 100644
index a08943ed50..0000000000
--- a/macros/latex/contrib/koma-script/scrhack.dtx
+++ /dev/null
@@ -1,2041 +0,0 @@
-% \iffalse meta-comment
-% ======================================================================
-% scrhack.dtx
-% Copyright (c) Markus Kohm, 2008-2023
-%
-% 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.md.
-%
-% To create `scrhack.sty' run `tex scrhack.dtx'. Using LaTeX instead
-% of TeX would generate the implementation documentation.
-% ======================================================================
-%%% From File: $Id: scrhack.dtx 4063 2023-06-28 08:28:26Z kohm $
-%<package&identify>%%% using: package,identify
-%<package&option>%%% using: package,option
-%<package&body>%%% using: package,body
-%<package&identity>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-%<*dtx>
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\begingroup
- \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-28 10:28:26 +0200 (Mi, 28. Jun 2023) $
- \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4063 $
-\endgroup
-\ProvidesFile{scrhack.dtx}[\filedate\space\filerevision\space
-%</dtx>
-%<package&identify>\ProvidesPackage{scrhack}[%
-%<hyperref&identify>\ProvidesFile{hyperref.hak}[%
-%<float&identify>\ProvidesFile{float.hak}[%
-%<floatrow&identify>\ProvidesFile{floatrow.hak}[%
-%<listings&identify>\ProvidesFile{listings.hak}[%
-%<setspace&identify>\ProvidesFile{setspace.hak}[%
-%<lscape&identify>\ProvidesFile{lscape.hak}[%
-%<nomencl&identify>\ProvidesFile{nomencl.hak}[%
-%<standardsections&identify>\ProvidesFile{standardsections.hak}[%
-%<*dtx|identify>
-%!KOMAScriptVersion
-%<*dtx>
- source of
-%</dtx>
-%<*dtx|package>
- package (hacking other packages)%
-%</dtx|package>
-%<*hack>
-%<hack> scrhack part
-%<!standardsections> (hacking package
-%<hyperref&identify> hyperref)%
-%<float&identify> float)%
-%<floatrow&identify> floatrow)%
-%<listings&identify> listings)%
-%<setspace&identify> setspace)%
-%<lscape&identify> lscape)%
-%<nomencl&identify> nomencl)%
-%<standardsections&identify> (defining standard LaTeX class section headings)%
-%</hack>
-]
-%</dtx|identify>
-%<*dtx>
-\ifx\documentclass\undefined
- \input scrdocstrip.tex
- \@@input scrkernel-version.dtx
- \@@input scrstrip.inc
- \KOMAdefVariable{COPYRIGHTFROM}{2008}
- \generate{\usepreamble\defaultpreamble
- \file{scrhack.sty}{%
- \from{scrkernel-version.dtx}{package,scrhack}%
- \from{scrhack.dtx}{package,identify}%
- \from{scrkernel-basics.dtx}{load}%
- \from{scrhack.dtx}{package,option}%
- \from{scrhack.dtx}{package,body}%
- \from{scrlogo.dtx}{logo}%
- }%
- \file{hyperref.hak}{%
- \from{scrkernel-version.dtx}{file,hyperref.hak}%
- \from{scrhack.dtx}{hack,hyperref,identify}%
- \from{scrhack.dtx}{hack,hyperref,body}%
- }%
- \file{float.hak}{%
- \from{scrkernel-version.dtx}{file,float.hak}%
- \from{scrhack.dtx}{hack,float,identify}%
- \from{scrhack.dtx}{hack,float,body}%
- }%
- \file{floatrow.hak}{%
- \from{scrkernel-version.dtx}{file,floatrow.hak}%
- \from{scrhack.dtx}{hack,floatrow,identify}%
- \from{scrhack.dtx}{hack,floatrow,body}%
- }%
- \file{listings.hak}{%
- \from{scrkernel-version.dtx}{file,listings.hak}%
- \from{scrhack.dtx}{hack,listings,identify}%
- \from{scrhack.dtx}{hack,listings,body}%
- }%
- \file{setspace.hak}{%
- \from{scrkernel-version.dtx}{file,setspace.hak}%
- \from{scrhack.dtx}{hack,setspace,identify}%
- \from{scrhack.dtx}{hack,setspace,body}%
- }%
- \file{lscape.hak}{%
- \from{scrkernel-version.dtx}{file,lscape.hak}%
- \from{scrhack.dtx}{hack,lscape,identify}%
- \from{scrhack.dtx}{hack,lscape,body}%
- }%
- \file{nomencl.hak}{%
- \from{scrkernel-version.dtx}{file,nomencl.hak}%
- \from{scrhack.dtx}{hack,nomencl,identify}%
- \from{scrhack.dtx}{hack,nomencl,body}%
- }%
- \file{standardsections.hak}{%
- \from{scrkernel-version.dtx}{file,standardsections.hak}%
- \from{scrhack.dtx}{hack,standardsections,identify}%
- \from{scrhack.dtx}{hack,standardsections,body}%
- }%
- }
- \@@input scrstrop.inc
-\else
- \let\endbatchfile\relax
-\fi
-\endbatchfile
-\documentclass[USenglish]{koma-script-source-doc}
-\usepackage{babel}
-\setcounter{StandardModuleDepth}{2}
-\begin{document}
- \DocInput{scrhack.dtx}
-\end{document}
-%</dtx>
-%\fi
-%
-% \changes{v3.03}{2009/03/12}{first version ever}
-% \changes{v3.36}{2022/02/08}{switch over from \cls*{scrdoc} to
-% \cls*{koma-script-source-doc}}
-% \changes{v3.36}{2022/02/08}{require package \pkg*{scrlogo} instead of
-% defining \cs{KOMAScript}}
-% \changes{v3.36}{2022/02/08}{whole implementation documentation in English}
-% \changes{v3.40}{2023/04/17}{guide names changed}
-%
-% \GetFileInfo{scrhack.dtx}
-% \title{Patching Third-Party Packages using
-% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrhack}}
-% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
-% \date{Revision \fileversion{} of \filedate}
-% \maketitle
-% \begin{abstract}
-% Some packages from other authors may have problems with \KOMAScript{}. In
-% my opinion some packages could be improved. With some packages this makes
-% only sense, if \KOMAScript{} was used. With some other packages the
-% package author has another opinion. Sometimes proposals was never
-% answered. Package \pkg*{scrhack} contains all those improvement proposals
-% for other packages. This means, \pkg*{scrhack} redefines macros of packages
-% from other authors! The redefinitions are only activated, if those
-% packages were loaded. Users may prevent \pkg*{scrhack} from redefining
-% macros of individual packages.
-% \end{abstract}
-% \tableofcontents
-%
-% \section{User Manual}
-%
-% You can find the user manuals of \pkg*{scrhack} in the \KOMAScript{} manual,
-% either the German \file{scrguide-de.pdf} or the English
-% \file{scrguide-en.pdf}.
-%
-% \MaybeStop{\PrintIndex}
-%
-% \section{Implementation of \pkg*{scrhack}}
-%
-% \changes{v3.04b}{2009/08/05}{order of commands/macros and options changed}
-%
-% \subsection{Optionen}
-%
-% The package uses \cs{KOMAoptions} of \pkg*{scrkbase}, which is loaded by
-% (virtual) \file{scrkbase.ins}.
-%
-% The options allow the selection of the used manipulations of other
-% packages. But all these options are valid only until both \pkg*{scrhack} and
-% the other package has been loaded. Later settings are invalid.
-%
-%
-% \subsection{Used Macros and Commands}
-% \label{sec:macros}
-% \begin{macrocode}
-%<*package&body>
-% \end{macrocode}
-%
-% \begin{macro}{\scr@ifexpected}
-% Mentioned to do (re)definitions only, if local execution of code does not
-% change a command. Concrete, if (local) execution of \marg{test code} of
-% \begin{quote}
-% \cs{scr@ifexpected}\marg{command}\marg{test code}\marg{then
-% code}\marg{else code}
-% \end{quote}
-% would not result in a change of \cs{\meta{command}}, the \marg{then code}
-% will be executed, otherwise the \marg{else code}.
-% \begin{description}\item[Note:] \meta{test code} must not have any global
-% side effect!\end{description}
-% \begin{macrocode}
-\newcommand{\scr@ifexpected}[2]{%
- \begingroup
- \let\@tempa#1
- #2
- \ifx\@tempa#1
- \aftergroup\@firstoftwo
- \else
- \aftergroup\@secondoftwo
- \fi
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\scr@hack@load}
-% Conditionally loading of a hack file.
-% \begin{quote}
-% \cs{scr@hack@load}\marg{extension}\marg{basename}\marg{hack}%
-% \marg{true code}\marg{false code}
-% \end{quote}
-% The first two arguments \marg{} and \marg{extension} and \marg{basename} are
-% same to the internal\LaTeX{} kernel command \cs{@ifl@aded}. With \LaTeX{}
-% from 2021/11/15 we even could use \cs{@ifl@aded} for the test, because it is
-% not restricted to the preamble any more. But because it is restricted with
-% older \LaTeX{} kernels, we test the definition of
-% \cs{ver@}\meta{basename}\texttt{.}\meta{extension}. If it is defined, we
-% also test the definition of \cs{ver@}\meta{basename}\texttt{.hak}. If this
-% is not defined, \file{\meta{hack}.hak} is loaded and \meta{true code} is
-% executed. Otherwise \meta{false code} is executed. This means: A hack file
-% is only loaded, if a class or package (or other file with version) has
-% already been loaded, but the hack file has not already been loaded.
-% \begin{macrocode}
-\newcommand*{\scr@hack@load}[2]{%
- \expandafter\ifx\csname ver@#2.#1\endcsname\relax
- \expandafter\@secondoftwo
- \else
-% \end{macrocode}
-% Load a hack only once.
-% \begin{macrocode}
- \expandafter\ifx\csname ver@#2.hak\endcsname\relax
- \expandafter\expandafter\expandafter\@firstoftwo
- \else
- \expandafter\expandafter\expandafter\@secondoftwo
- \fi
- \fi
- {%
- \PackageInfo{scrhack}{loading #2 hack}%
- \edef\reserved@a{%
- \noexpand\makeatletter\noexpand\input{#2.hak}%
- \noexpand\catcode`\noexpand\@\the\catcode`\@\relax
- }\reserved@a
- }{%
- \PackageInfo{scrhack}{ignorring #2 hack}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</package&body>
-% \end{macrocode}
-%
-% \subsection{The \pkg*{hyperref} hack}
-%
-% Package \pkg{hyperref} places the anchor of the star variant of a heading
-% after the heading, but the anchor of the normal variant before the heading
-% even if the heading is not numbered because of the value of
-% \cnt{secnumdepth}. The hack changes this to more consistent placing always
-% before the heading.
-%
-% \begin{option}{hyperref}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{defaults by \cs{KOMAExecuteOptions}}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{hyperref}{@scrhack@hyperref}%
-\KOMAExecuteOptions{hyperref=true}%
-%</package&option>
-% \end{macrocode}
-% \changes{v3.04b}{2009/11/09}{loading \pkg{hyperref} hack earlier}
-% \changes{v3.17}{2015/03/09}{auto deactivation for newer versions of
-% \pkg{hyperref}}
-% \changes{v3.18}{2015/05/22}{newer versions of \KOMAScript{} classes also
-% deactivate the the hack}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% and \cs{KOMAExecuteOptions} removed}
-% This is a little bit tricky, because \pkg{hyperref} loads the driver file
-% via \cs{AtEndOfPackage} and the hack cannot be loaded before loading the
-% driver file. Using \cs{AfterPackage*} would not be good enough therefore,
-% because it would load the hack before the driver file. But using
-% \cs{AtEndOfPackage} inside \cs{AfterPackage*} should delay the loading
-% enough. This also works, if \pkg{hyperref} has already been loaded. In this
-% case the code will be executed at the end of \pkg*{scrhack} instead of
-% \pkg{hyperref}. This is no problem.
-% \begin{macrocode}
-%<*package&body>
-\BeforePackage{hyperref}{%
- \scr@ifundefinedorrelax{hy@insteadofrefstepcounter}{}{%
- \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
- detection of KOMA-Script class, that doesn't\MessageBreak
- need that hack,}%
- \KOMAExecuteOptions[scrhack.sty]{hyperref=false}%
- }%
-}
-\AfterPackage*{hyperref}{%
- \if@scrhack@hyperref
- \@ifpackagelater{hyperref}{2009/11/24}{%
- \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
- detection of hyperref version, that doesn't\MessageBreak
- need that hack,}%
- \KOMAExecuteOptions[scrhack.sty]{hyperref=false}%
- }{%
- \AtEndOfPackage{%
- \KOMA@key[scrhack.sty]{hyperref}{%
- \PackageWarning{scrhack}{option `hyperref=#1' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@hyperref\scr@hack@load\@pkgextension{hyperref}\fi
- }%
- }%
- \fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{macro}{\@schapter,\@spart,\@ssect}
-% We do not hack \pkg{hyperref} itself, but the driver files. After loading
-% \pkg{hyperref} the driver file is also loaded. Moreover, all driver files
-% that re-define these commands have to be patched also. So the patch is
-% related to the loading of \pkg{hyperref} instead of every single driver
-% file. This have already been tested by \cs{scr@hack@load}. So we just have
-% to test, whether the definition of these commands are the expected one.
-% derzeit den erwarteten Inhalt haben.
-% \begin{macrocode}
-%<*hyperref&body>
-\scr@ifexpected\@schapter{%
- \def\@schapter#1{%
- \H@old@schapter{#1}%
- \begingroup
- \let\@mkboth\@gobbletwo
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \endgroup
- }%
-}{%
- \PackageInfo{scrhack}{redefining \string\@schapter}%
- \def\@schapter#1{%
- \begingroup
- \let\@mkboth\@gobbletwo
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \endgroup
- \H@old@schapter{#1}%
- }%
-}{%
- \scr@ifexpected\@schapter{%
- \def\@schapter#1{%
- \begingroup
- \let\@mkboth\@gobbletwo
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \endgroup
- \H@old@schapter{#1}%
- }%
- }{}{%
- \PackageWarningNoLine{scrhack}{unknown \string\@schapter\space
- definition found!\MessageBreak
- Maybe you are using a unsupported hyperref version}%
- }%
-}
-\scr@ifexpected\@spart{%
- \def\@spart#1{%
- \H@old@spart{#1}%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{part*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- }%
-}{%
- \PackageInfo{scrhack}{redefining \string\@spart}%
- \def\@spart#1{%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{part*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \H@old@spart{#1}%
- }%
-}{%
- \scr@ifexpected\@spart{%
- \def\@spart#1{%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{part*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \H@old@spart{#1}%
- }%
- }{}{%
- \PackageWarningNoLine{scrhack}{unknown \string\@spart\space
- definition found!\MessageBreak
- Maybe you are using a unsupported hyperref version}%
- }%
-}
-\scr@ifexpected\@ssect{%
- \def\@ssect#1#2#3#4#5{%
- \H@old@ssect{#1}{#2}{#3}{#4}{#5}%
- \phantomsection
- }%
-}{%
- \PackageInfo{scrhack}{redefining \string\@ssect}%
- \def\@ssect#1#2#3#4#5{%
- \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
- }%
-}{%
- \scr@ifexpected\@ssect{%
- \def\@ssect#1#2#3#4#5{%
- \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
- }%
- }{}{%
- \PackageWarningNoLine{scrhack}{unknown \string\@ssect\space
- definition found!\MessageBreak
- Maybe you are using a unsupported hyperref version}%
- }%
-}
-%</hyperref&body>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The \pkg*{floatrow} hack}
-%
-% Package \pkg{floatrow} insists in using \cs{float@listhead} for the setting
-% of the headings. This is not recommended any longer since \KOMAScript~2.95
-% from July 2006! The \KOMAScript{} classes will remove the support for
-% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
-% effort to do so, it very small and I do not understand, why package authors
-% are not willing to use it. Because the benefit would be a lot.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{floatrow}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{floatrow}.
-%
-% \begin{option}{floatrow}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
-% \changes{v3.34}{2021/06/03}{deactivation of the \pkg{float} hack}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% removed}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{floatrow}{@scrhack@floatrow}
-\KOMAExecuteOptions{floatrow=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{floatrow}{%
- \KOMAoptions{float=false}%
- \PackageInfo{scrhack}{option `float' deactivated}%
- \KOMA@key[scrhack.sty]{floatrow}{%
- \PackageWarning{scrhack}{option `floatrow' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{command}{\DeclareNewFloatType,\listof}
-% \changes{v3.25}{2018/03/16}{using \cs{DeclareTOCStyleEntry}}
-% Command \cs{DeclareNewFloatType} is used to define a new float
-% environment. We have to add registration of the file extension (third
-% argument) with \pkg*{tocbasic}.
-% Command \cs{listof} outputs the list of the float environments. Here we
-% just use the corresponding macro of \pkg*{tocbasic}.
-% \begin{macro}{\float@addtolists}
-% The deprecated macro \cs{float@addtolists} is not needed any longer an will
-% be reset to the original definition.
-% \begin{macrocode}
-%<*floatrow&body>
-\scr@ifexpected{\DeclareNewFloatType}{%
- \long\def\DeclareNewFloatType#1#2{\def\FB@captype{#1}%
- \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
- \addtocounter{float@type}{\value{float@type}}%
- \@namedef{#1name}{#1}\newcounter{#1}%
- \expandafter\edef\csname fnum@#1\endcsname
- {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
- \expandafter\noexpand\csname the#1\endcsname}%
- \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
- \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
- \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
- \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
- \@tempa}%
-}{%
- \scr@ifexpected{\listof}{%
- \def\listof#1#2{%
- \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
- \expandafter\providecommand\csname l@#1\endcsname
- {\@dottedtocline{1}{1.5em}{2.3em}}%
- \float@listhead{#2}%
- \begingroup\setlength{\parskip}{\z@}%
- \@starttoc{\@nameuse{ext@#1}}%
- \endgroup}}%
- }{%
- \RequirePackage{tocbasic}%
- \PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}%
-% \end{macrocode}
-% \begin{description}
-% \item[Note:] It would be better to first test, if the new extension is
-% already in use like done at the \pkg{float} hack. But I don't know the
-% \pkg{floatrow} code good enough to make such a change!
-% \end{description}
-% \begin{macrocode}
- \renewcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}%
- \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
- \addtocounter{float@type}{\value{float@type}}%
- \@namedef{#1name}{#1}\newcounter{#1}%
- \expandafter\edef\csname fnum@#1\endcsname
- {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
- \expandafter\noexpand\csname the#1\endcsname}%
- \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
- \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}%
- \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
- \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
- \@tempa
- \xdef\@tempa{\noexpand\addtotoclist[float]{\@nameuse{ext@\FB@captype}}%
- \noexpand\setuptoc{\@nameuse{ext@\FB@captype}}{chapteratlist}%
- }%
- \@tempa
- }%
- \PackageInfo{scrhack}{redefining \string\listof}%
- \renewcommand*\listof[2]{%
- \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
- \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
- \@ifundefined{l@#1}{%
- \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
- {default}{#1}%
- }{}%
- }{}%
- \listoftoc[{#2}]{\csname ext@#1\endcsname}%
- }%
- }%
- \scr@ifexpected{\float@addtolists}{%
- \long\def\float@addtolists#1{%
- \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
- }{%
- \PackageInfo{scrhack}{undefining \string\float@addtolists}%
- \let\float@addtolists\relax
- }{%
- \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
- definition found!\MessageBreak
- Maybe you are using a unsupported floatrow version}%
- }%
- }{%
- \PackageWarningNoLine{scrhack}{unknown \string\listof\space
- definition found!\MessageBreak
- Maybe you are using a unsupported floatrow version}%
- }%
-}{%
- \PackageWarningNoLine{scrhack}{unknown \string\DeclareNewFloatType\space
- definition found!\MessageBreak
- Maybe you are using a unsupported floatrow version}%
-}
-%</floatrow&body>
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-%
-% \subsection{The \pkg*{float} hack}
-%
-% Package \pkg{float} insists in using \cs{float@listhead} for the setting
-% of the headings. This is not recommended any longer since \KOMAScript~2.95
-% from July 2006! The \KOMAScript{} classes will remove the support for
-% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
-% effort to do so, it very small and I do not understand, why package authors
-% are not willing to use it. Because the benefit would be a lot.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{float}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{float}.
-%
-% \begin{option}{float}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% removed}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{float}{@scrhack@float}%
-\KOMAExecuteOptions{float=true}%
-%</package&option>
-%<*package&body>
-\AfterPackage*{float}{%
- \KOMA@key[scrhack.sty]{float}{%
- \PackageWarning{scrhack}{option `float' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{command}{\newfloat}
-% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by
-% \cs{Ifattoclist}}
-% \changes{v3.25}{2018/03/16}{using \cs{DeclareTOCStyleEntry}}
-% We have to add registration of the file extension (third argument of
-% \cs{newfloat}) with \pkg*{tocbasic}.
-% \begin{command}{\listof}
-% Command \cs{listof} outputs the list of the float environments. Here we
-% just use the corresponding macro of \pkg*{tocbasic}.
-% \begin{macro}{\float@addtolists}
-% The deprecated macro \cs{float@addtolists} is not needed any longer an will
-% be reset to the original definition.
-% \begin{macrocode}
-%<*float&body>
-\scr@ifexpected{\newfloat}{%
- \long\def\newfloat#1#2#3{\@namedef{ext@#1}{#3}
- \let\float@do=\relax
- \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
- \@tempa
- \floatplacement{#1}{#2}%
- \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}
- \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
- \addtocounter{float@type}{\value{float@type}}
- \restylefloat{#1}%
- \expandafter\edef\csname fnum@#1\endcsname%
- {\expandafter\noexpand\csname fname@#1\endcsname{}
- \expandafter\noexpand\csname the#1\endcsname}
- \@ifnextchar[%]
- {\float@newx{#1}}%
- {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
- {}}}%
-}{%
- \scr@ifexpected{\listof}{%
- \def\listof#1#2{%
- \@ifundefined{ext@#1}{\float@error{#1}}{%
- \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
- \float@listhead{#2}%
- \begingroup\setlength{\parskip}{\z@}%
- \@starttoc{\@nameuse{ext@#1}}%
- \endgroup}}%
- }{%
- \RequirePackage{tocbasic}%
- \PackageInfo{scrhack}{redefining \string\newfloat}%
- \renewcommand\newfloat[3]{%
- \Ifattoclist{#3}{%
- \PackageError{scrhack}{extension `#3' already in use}{%
- Each extension may be used only once.\MessageBreak
- You, the class, or another package already uses extension
- `#3'.\MessageBreak
- \string\newfloat\space command will be ignored!}%
- }{%
- \addtotoclist[float]{#3}%
- \setuptoc{#3}{chapteratlist}%
- \@namedef{ext@#1}{#3}%
- \let\float@do=\relax
- \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
- \@tempa
- \floatplacement{#1}{#2}%
- \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}%
- \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
- \addtocounter{float@type}{\value{float@type}}
- \restylefloat{#1}%
- \expandafter\edef\csname fnum@#1\endcsname%
- {\expandafter\noexpand\csname fname@#1\endcsname{}
- \expandafter\noexpand\csname the#1\endcsname}%
- \@ifnextchar[%]
- {\float@newx{#1}}%
- {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
- {}}}%
- }%
- \PackageInfo{scrhack}{redefining \string\listof}%
- \renewcommand*\listof[2]{%
- \@ifundefined{ext@#1}{\float@error{#1}}{%
- \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
- \@ifundefined{l@#1}{%
- \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
- {default}{#1}%
- }{}%
- }{}%
- \listoftoc[{#2}]{\csname ext@#1\endcsname}%
- }%
- }%
- \scr@ifexpected{\float@addtolists}{%
- \long\def\float@addtolists#1{%
- \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
- }{%
- \PackageInfo{scrhack}{undefining \string\float@addtolists}%
- \let\float@addtolists\relax
- }{%
- \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
- definition found!\MessageBreak
- Maybe you are using a unsupported float version}%
- }%
- }{%
- \PackageWarningNoLine{scrhack}{unknown \string\listof\space
- definition found!\MessageBreak
- Maybe you are using a unsupported float version}%
- }%
-}{%
- \PackageWarningNoLine{scrhack}{unknown \string\newfloat\space
- definition found!\MessageBreak
- Maybe you are using a unsupported float version}%
-}
-%</float&body>
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-% \end{command}
-%
-%
-% \subsection{The \pkg*{listings} hack}
-%
-% Package \pkg{listing} insists in using \cs{float@listhead} for the setting
-% of the headings. This is not recommended any longer since \KOMAScript~2.95
-% from July 2006! The \KOMAScript{} classes will remove the support for
-% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
-% effort to do so, it very small and I do not understand, why package authors
-% are not willing to use it. Because the benefit would be a lot.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{listings}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{listings}.
-%
-% \begin{option}{listings}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% removed}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{listings}{@scrhack@listings}
-\KOMAExecuteOptions{listings=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{listings}{%
- \KOMA@key[scrhack.sty]{listings}{%
- \PackageWarning{scrhack}{option `listings' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{macro}{\scr@do@hack@listings}
-% \changes{v3.41}{2023/06/28}{patching \cs{lst@MakeCaption} to use
-% \cs{ext@lstlisting}}
-% \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}{\ext@lstlisting,\lst@MakeCaption,\float@addtolists}
-% Macro \cs{ext@lstlisting} is defined, to make \cs{captionof} work with
-% argument \texttt{lstlisting}. Additionally \cs{lst@MakeCaption} is patched
-% to use the new macro. The deprecated macro \cs{float@addtolists} is not
-% needed any longer an will be reset to the original definition. But, because
-% \pkg{listings} delays the redefinition with \cs{AtBeginDocument} we have to
-% do the same here.
-% \begin{macrocode}
-%<*listings&body>
-\newcommand*{\scr@do@hack@listings}{%
- \RequirePackage{tocbasic}%
- \addtotoclist[float]{lol}%
- \setuptoc{lol}{chapteratlist}%
- \PackageInfo{scrhack}{redefining \string\lstlistoflistings}%
- \renewcommand*{\lstlistoflistings}{\listoftoc[{\lstlistlistingname}]{lol}}%
- \providecommand*{\ext@lstlisting}{lol}%
- \@tempswafalse
- \xpatchcmd\lst@MakeCaption
- {\addcontentsline{lol}}%
- {\addcontentsline{\ext@lstlisting}}%
- {\PackageInfo{scrhack}{patching \string\lst@MakeCaption}\@tempswatrue}%
- {\PackageWarning{scrhack}{cannot patch \string\lst@MakeCaption}}%
- \@whilesw\if@tempswa\fi{%
- \xpatchcmd\lst@MakeCaption
- {\addcontentsline{lol}}%
- {\addcontentsline{\ext@lstlisting}}%
- {}%
- {\@tempswafalse}%
- }%
- \AtBeginDocument{%
- \scr@ifexpected{\float@addtolists}{%
- \def\float@addtolists##1{\addtocontents{lol}{##1}}%
- }{%
- \PackageInfo{scrhack}{undefining \string\float@addtolists}%
- \let\float@addtolists\relax
- }{%
- \scr@ifexpected{\float@addtolists}{%
- \def\float@addtolists##1{\addtocontents{lol}{##1}%
- \orig@float@addtolists{##1}}%
- }{%
- \PackageInfo{scrhack}{setting \string\float@addtolists\MessageBreak
- to \string\orig@float@addtolists}%
- \let\float@addtolists\orig@float@addtolists
- }{%
- \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
- definition found!\MessageBreak
- Maybe you are using a unsupported listings version}%
- }%
- }%
- }%
-% \end{macrocode}
-% \begin{macro}{\lst@makecaption}
-% \changes{v3.30}{2020/04/01}{setting of \cs{@captype} added}
-% From version~3.30 setting of \cs{@captype} to \texttt{lstlisting} is added
-% to \cs{lst@makecaption}. This adds support for usage of
-% \cs{raggedlstlistingcaption} (if the user or a package author defines
-% it). The change is a little bit dangerous, because it will break, if
-% \pkg{listings} would add an argument to \cs{lst@makecaption}.
-% \begin{macrocode}
- \expandafter\def\expandafter\lst@makecaption\expandafter{%
- \expandafter\def\expandafter\@captype\expandafter{%
- \expandafter l\expandafter s\expandafter t\expandafter l%
- \expandafter i\expandafter s\expandafter t\expandafter i%
- \expandafter n\expandafter g\expandafter}\lst@makecaption
- }%
- \let\scr@do@hack@listings\relax
-}
-\scr@ifexpected{\lstlistoflistings}{%
- \def\lstlistoflistings{\bgroup
- \let\contentsname\lstlistlistingname
- \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
- \tableofcontents \egroup}%
-}{%
- \scr@do@hack@listings
-}{%
- \scr@ifexpected{\lstlistoflistings}{%
- \def\lstlistoflistings{%
- \begingroup
- \@ifundefined{@restonecoltrue}{}{%
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse
- \fi
- }%
- \float@listhead{\lstlistlistingname}%
- \parskip\z@\parindent\z@\parfillskip \z@ \@plus 1fil%
- \@starttoc{lol}%
- \@ifundefined{@restonecoltrue}{}{%
- \if@restonecol\twocolumn\fi
- }%
- \endgroup
- }%
- }{%
- \scr@do@hack@listings
- }{%
- \PackageWarningNoLine{scrhack}{unknown \string\lstlistoflistings\space
- definition found!\MessageBreak
- Maybe you are using a unsupported listings version}%
- }%
-}
-%</listings&body>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{command}
-% \end{macro}
-%
-%
-%
-% \subsection{The \pkg*{nomencl} hack}
-%
-% With package \pkg{nomencl} and the \KOMAScript{} classes there is only a
-% small disharmony between relating the ToC entry. Nevertheless the package
-% can benefit from using \pkg*{tocbasic}.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{nomencl}. This is done using
-% \pkg{xpatch} Nevertheless it is much more complicated than adding real
-% \pkg*{tocbasic} support into \pkg{nomencl}. The mess is, that every new
-% release of \pkg{nomencl} changes the kind of ``support'' of
-% \pkg*{tocbasic}. For some versions there isn't any such support. Other
-% versions use \pkg*{tocbasic} if it has been loaded. Other versions need an
-% option to activate usage of \pkg*{tocbasic}. So don't expect that the
-% following hack does the correct thing for every version of \pkg{nomencl}!
-%
-% \begin{option}{nomencl}
-% \changes{v3.23}{2017/03/31}{added}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% removed}
-% \begin{macrocode}
-%<*package&option>
-\RequirePackage{xpatch}%
-\KOMA@ifkey{nomencl}{@scrhack@nomencl}
-\KOMAExecuteOptions{nomencl=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{nomencl}{%
- \KOMA@key[scrhack.sty]{nomencl}{%
- \PackageWarning{scrhack}{option `nomencl' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@nomencl\scr@hack@load\@pkgextension{nomencl}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}^^A nomencl
-%
-% \begin{command}{\thenomenclature}
-% \changes{v3.23}{2017/03/31}{added}
-% Instead of using the several definitions by cases of the several versions of
-% \pkg{nomencl} we use a patch, that should remove all such cases and use
-% \pkg*{tocbasic} always.
-% \begin{macrocode}
-%<*nomencl&body>
-\RequirePackage{tocbasic}
-% \end{macrocode}
-% With \pkg{nomencl} > 5.0 this should be all.
-% Unfortunately is isn't, because newer versions of \pkg{nomencl} need option
-% \opt{tocbasic} to be set. Good luck: It is the default. So the chances
-% are good, that with new versions of \pkg{nomencl} usage of \pkg*{tocbasic} is
-% the default.
-% \begin{macrocode}
-\@ifpackagelater{nomencl}{2019/01/01}{%
- \PackageInfo{scrhack}{only `tocbasic' loaded for `nomencl'}%
- \expandafter\endinput
-}{}
-% \end{macrocode}
-% Otherwise we have to patch it.
-% \begin{macrocode}
-\addtotoclist[nomencl]{nlo}
-\addtotoclist[nomencl]{nls}
-\xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- {
- \section*{\nomname}
- \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
- }%
- {
- \chapter*{\nomname}
- \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
- }%
-}{%
- \scr@hack@nomencl@head
-}{%
- \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
-}{%
-% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{new \pkg{nomencl} 5.0}
-% From \pkg{nomencl} 5.0 another code is used if the nomenclature is a
-% chapter. So we need another patch:
-% \begin{macrocode}
- \xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- {
- \section*{\nomname}
- \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
- }%
- {
- \chapter*{\nomname}
- \markboth{\nomname}{\nomname}%
- \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
- }%
- }{%
- \scr@hack@nomencl@head
- }{%
- \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
- }{%
-% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \pkg{nomencl}}
-% But this code is also wrong, because it breaks manual running heads, e.g.,
-% of page style \texttt{myheadings}. So I hope, there will be another code,
-% that needs a somehow different patch:
-% \begin{macrocode}
- \xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- {
- \section*{\nomname}
- \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
- }%
- {
- \chapter*{\nomname}
- \@mkboth{\nomname}{\nomname}%
- \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
- }%
- }{%
- \scr@hack@nomencl@head
- }{%
- \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
- }{%
-% \end{macrocode}
-% \changes{v3.25}{2019/01/23}{emergency patch added}
-% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}
-% If this also does not work, we try an emergency patch, that could break
-% things.
-% \begin{macrocode}
- \xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- }{%
- \scr@hack@nomencl@head
- \@gobbletwo
- }{%
- \PackageWarning{scrhack}{%
- using emergency patch of \string\thenomenclature.\MessageBreak
- This could happen if you are using an unknown\MessageBreak
- release of package `nomencl'.\MessageBreak
- Mostly this patch does work too, but it also could\MessageBreak
- break `nomencl`. If this happens, please deactivate\MessageBreak
- the `nomencl` hack of `scrhack`%
- }%
- }{%
- \PackageWarning{scrhack}{%
- cannot patch \string\thenomenclature.\MessageBreak
- This could happen if you are using an unknown\MessageBreak
- release of package `nomencl'%
- }%
- }%
- }%
- }%
-}
-%</nomencl&body>
-% \end{macrocode}
-% \end{command}^^A \thenomenclature
-%
-% \begin{macro}{\scr@hack@nomencl@head}
-% \changes{v3.23}{2017/03/31}{heading of \env{thenomenclature} by
-% \pkg*{tocbasic}}
-% \changes{v3.31}{2020/07/08}{internal \cs{list@fname} eliminated}
-% We don't need an extra group, because \env{thenomenclature} already adds the
-% group.
-% \begin{macrocode}
-%<*nomencl&body>
-\newcommand*{\scr@hack@nomencl@head}{%
- \providecommand*{\listofnlsname}{\nomname}%
- \def\@currext{nls}%
- \tocbasic@listhead{\nomname}%
-}
-%</nomencl&body>
-% \end{macrocode}
-% \begin{description}
-% \item[Note:] Only the heading hooks of \pkg*{tocbasic} are used. The other
-% hooks can be set, but would never be used!
-% \end{description}
-% \end{macro}^^A \scr@hack@nomencl@head
-%
-% \begin{macro}{\if@intoc}
-% \changes{3.23}{2017/03/31}{support of \cs{if@intoc}}
-% Generally we have to support \pkg{nomencl}'s option \opt{intoc} and the
-% switch \cs{if@intoc}. This is done by (un-)setting \pkg*{tocbasic} feature
-% \texttt{totoc}. So additional changes of the feature can be done at first
-% after loading both, \pkg{nomencl} and \pkg*{scrhack}. Moreover, later changes
-% of \cs{if@intoc} are not recognized.
-% \begin{macrocode}
-%<*nomencl&body>
-\if@intoc
- \setuptoc{nls}{totoc}
-\fi
-%</nomencl&body>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The \pkg*{setspace} hack}
-%
-% Package \pkg{setspace} internally uses \cs{@ptsize} in a way, that only
-% works as long as \cs{@ptsize} is an integer. But because \KOMAScript{}
-% supports non integer font sizes, \cs{@ptsize} can also contain non-integer
-% values. Moreover for \opt{11pt}, \LaTeX{} does not use a 11\,pt font but
-% a 10.95\,pt font with a \len{baselineskip} of 13.6\,pt, the correct factor
-% for, e.g., \cs{onehalfspacing} would be:
-% \[ 10{,}95\,\mathrm{pt} \dot 1{,5} / 13{,}6\,\mathrm{pt} \equiv 1{,}208 \]
-% But \pkg{setspace} uses 1.213, which would be correct for 11\,pt. Moreover
-% the factor is always relative to the base font size and not the current font
-% size. Because of this
-% \begin{verbatim}
-% \documentclass[10pt]{article}
-% \usepackage{setspace}
-% \begin{document}
-% \large\onehalfspacing\raggedright
-% Fontsize: \csname f@size\endcsname pt\\
-% Normal baselineskip: \csname f@baselineskip\endcsname\\
-% baselineskip: \the\baselineskip
-% \end{document}
-% \end{verbatim}
-% results in another \len{baselineskip} than:
-% \begin{verbatim}
-% \documentclass[11pt]{article}
-% \usepackage{setspace}
-% \begin{document}
-% \large\onehalfspacing\raggedright
-% Fontsize: \csname f@size\endcsname pt\\
-% Normal baselineskip: \csname f@baselineskip\endcsname\\
-% baselineskip: \the\baselineskip
-% \end{document}
-% \end{verbatim}
-% despite both examples use the same font size. So, to make it absolutely
-% correct, the factor would have to change with every change of the font
-% size. But the hack also does not do so. It just calculates the factor
-% depending on the base font size an the current font size. This is enough to
-% have the same \len{baselineskip} with both of the examples above.
-%
-% \begin{option}{setspace}
-% \changes{v3.17}{2015/04/16}{added}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% removed}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{setspace}{@scrhack@setspace}
-\KOMAExecuteOptions{setspace=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{setspace}{%
- \KOMA@key[scrhack.sty]{setspace}{%
- \PackageWarning{scrhack}{option `setspace' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@setspace\scr@hack@load\@pkgextension{setspace}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{command}{\onehalfspacing}
-% \changes{v3.17}{2015/04/16}{added}
-% This selects the one half line spacing. I think, a factor with three digits
-% for the decimals should be enough.
-% \begin{macrocode}
-%<*setspace&body>
-\scr@ifexpected{\onehalfspacing}{%
- \long\def\onehalfspacing{%
- \setstretch{1.25}% default
- \ifcase \@ptsize \relax % 10pt
- \setstretch {1.25}%
- \or % 11pt
- \setstretch {1.213}%
- \or % 12pt
- \setstretch {1.241}%
- \fi
- }%
-}{%
- \renewcommand*{\onehalfspacing}{%
- \@tempdima=\dimexpr (\f@size pt)*1500/
- (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
- \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
- }%
-}{%
-% \end{macrocode}
-% \changes{v3.39}{2023/03/15}{support for \pkg{setspace} 6.7b added}
-% \begin{macrocode}
- \scr@ifexpected{\onehalfspacing}{%
- \long\def\onehalfspacing{%
- \setstretch{1.25}% default
-% DPC 6.7b guard \@ptsize
- \ifx\@ptsize\@undefined\else
- \ifcase \@ptsize \relax % 10pt
- \setstretch {1.25}%
- \or % 11pt
- \setstretch {1.213}%
- \or % 12pt
- \setstretch {1.241}%
- \fi
- \fi
- }%
- }{%
- \renewcommand*{\onehalfspacing}{%
- \@tempdima=\dimexpr (\f@size pt)*1500/
- (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
- \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
- }%
- }{%
- \PackageWarning{scrhack}{unknown \string\onehalfspacing\space
- definition found!\MessageBreak
- Maybe you are using a unsupported setpace version}%
- }%
-}
-% \end{macrocode}
-% \end{command}
-% \begin{command}{\doublespacing}
-% \changes{v3.17}{2015/04/16}{new}
-% This selects the double line spacing. I think, a factor with three digits
-% for the decimals should be enough.
-% \begin{macrocode}
-\scr@ifexpected{\doublespacing}{%
- \long\def\doublespacing{%
- \setstretch{1.667}% default
- \ifcase \@ptsize \relax % 10pt
- \setstretch {1.667}%
- \or % 11pt
- \setstretch {1.618}%
- \or % 12pt
- \setstretch {1.655}%
- \fi
- }%
-}{%
- \renewcommand*{\doublespacing}{%
- \@tempdima=\dimexpr (\f@size pt)*2000/
- (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
- \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
- }%
-}{%
-% \end{macrocode}
-% \changes{v3.39}{2023/03/15}{support for \pkg{setspace} 6.7b added}
-% \begin{macrocode}
- \scr@ifexpected{\doublespacing}{%
- \long\def\doublespacing{%
- \setstretch {1.667}% default
-% DPC 6.7b guard \@ptsize
- \ifx\@ptsize\@undefined\else
- \ifcase \@ptsize \relax % 10pt
- \setstretch {1.667}%
- \or % 11pt
- \setstretch {1.618}%
- \or % 12pt
- \setstretch {1.655}%
- \fi
- \fi
- }%
- }{%
- \renewcommand*{\doublespacing}{%
- \@tempdima=\dimexpr (\f@size pt)*2000/
- (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
- \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
- }%
- }{%
- \PackageWarning{scrhack}{unknown \string\doublespacing\space
- definition found!\MessageBreak
- Maybe you are using a unsupported setpace version}%
- }%
-}
-%</setspace&body>
-% \end{macrocode}
-% \end{command}
-%
-%
-% \subsection{The \pkg*{lscape} hack}
-% \changes{v3.18a}{2015/07/07}{\pkg{lscape} hack added}
-%
-% The package does change \len{textheight} inside \env{landscape} to the prior
-% value of \len{textwidth}, nevertheless is does not change \len{textwidth} to
-% the prior value of \len{textheight}. This is at least inconsistent. After
-% asking him, David~Carlisle answered, that he does not change
-% \len{textwidth}, because this could result in problems. Therefore it is very
-% strange, that he does change \cs{textheight}, despite this also to problems,
-% e.g., with packages \pkg{showframe} or \pkg*{scrlayer}. So the patch here
-% also keeps \len{textheight} unchanged. This also has to take care for
-% \pkg{pdflscape}. The patches are done using \pkg{xpatch}.
-%
-%
-% \begin{option}{lscape}
-% \changes{v3.18a}{2015/07/07}{added}
-% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
-% removed}
-% \begin{macrocode}
-%<*package&option>
-\RequirePackage{xpatch}%
-\KOMA@ifkey{lscape}{@scrhack@lscape}%
-\KOMAExecuteOptions{lscape=true}%
-%</package&option>
-%<*package&body>
-\AfterPackage*{lscape}{%
- \if@scrhack@lscape\scr@hack@load\@pkgextension{lscape}\else
- \KOMA@key[scrhack.sty]{lscape}{%
- \PackageWarning{scrhack}{option `lscape' ignored}%
- \FamilyKeyStateProcessed
- }%
- \fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-% \begin{command}{\landscape}
-% \changes{v3.18a}{2015/07/07}{added}
-% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
-% This command is the beginning of environment \env{landscape}. This has to be
-% patched using \pkg{xpatch}.
-% \begin{description}
-% \item[Note:] This is a load time option and cannot be changed after loading
-% the package!
-% \end{description}
-% \begin{macrocode}
-%<*lscape&body>
-\xpatchcmd{\landscape}{\textheight=\vsize}{%
- \if@scrhack@lscape
-% \end{macrocode}
-% \begin{macro}{\@outputpage}
-% \changes{v3.18a}{2015/08/11}{added}
-% Here the changed value of \len{textheight} is needed for initialization of
-% \cs{@colht}. So we patch it to use the new internal \len{scr@LT@textheight}
-% instead of \len{textheight}.
-% \begin{macrocode}
- \scrh@LT@textheight=\vsize
- \let\scrh@LT@outputpage\@outputpage
- \def\@outputpage{\scrh@LT@outputpage\global\@colht\scrh@LT@textheight}%
- \else
- \textheight=\vsize
- \fi
-}{%
- \PackageInfo{scrhack}{\string\landscape\space patched to make
- \string\textheight\space change optional}%
-}{%
- \PackageWarning{scrhack}{Cannot patch \string\landscape!\MessageBreak
- Maybe you are using a unsupported lscape version}%
- \@scrhack@lscapefalse
-}
-% \end{macrocode}
-% \begin{ilength}{\scrh@LT@textheight}
-% \changes{v3.18a}{2015/08/11}{new}
-% \begin{macrocode}
-\newlength{\scrh@LT@textheight}
-%</lscape&body>
-% \end{macrocode}
-% \end{ilength}^^A \scrh@LT@textheight
-% \end{macro}^^A \@outputpage
-% \end{command}^^A \landscape
-%
-%
-% \subsection{The standard classes sections hack}
-% \label{sec:standardsections}
-% The \emph{standard classes sections hack} differs from each other
-% hack. First of all it does not patch a specific package but the class
-% definitions of section commands from \cs{part} till
-% \cs{subparagraph}. Additionally it resets several internal \LaTeX{} macros
-% which are changed by \KOMAScript{} classes to their original
-% definition. Last but not least it is not activated by default, but the user
-% has to activate it, if he needs it. The hack has more potential to break
-% things than to make things better. Because of this, there is not any support
-% for using this hack and the hack shows several warning messages.
-%
-% \begin{option}{standardsections}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{standardsections}{@scrhack@standardsections}
-\KOMAExecuteOptions{standardsections=false}
-%</package&option>
-%<*package&body>
-\AtEndOfPackage{%
- \if@scrhack@standardsections
- \PackageInfo{scrhack}{loading standard classes sections hack}%
- \input{standardsections.hak}%
- \fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}^^A standardsections
-%
-% \begin{command}{\part,\chapter,
-% \section,\subsection,\subsubsection,
-% \paragraph,\subparagraph}
-% The hack redefines all these commands to a definition copied from the
-% standard \LaTeX{} classes version v1.4i. Copyright of this code is by the
-% \LaTeX3{} Project. The complete, unmodified code can be found on
-% \url{https://ctan.org/tex-archive/macros/latex/base/classes.dtx}.
-% \begin{macrocode}
-%<*standardsections&body>
-\PackageWarningNoLine{scrhack}{%
- You are loosing every kind of support because of\MessageBreak
- using the dangerous standard classes sections hack!\MessageBreak
- This hack can break several classes and packages.\MessageBreak
- However, sometimes it is needed to make a\MessageBreak
- package work%
-}%
-\PackageInfo{scrhack}{%
- Using code from the standard LaTeX classes.\MessageBreak
- For more information about this code and the\MessageBreak
- license of this code, please see:\MessageBreak
- https://ctan.org/tex-archive/macros/latex/base/classes.dtx
-}%
-\@ifpackageloaded{hyperref}{%
- \PackageWarning{scrhack}{this hack should not be loaded after `hyperref'}%
-}{}
-\@ifpackageloaded{titlesec}{%
- \PackageWarning{scrhack}{this hack should not be loaded after `titlesec'}%
-}{}
-\@ifpackageloaded{sectsty}{%
- \PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
-}{}
-\@ifpackageloaded{sectsty}{%
- \PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
-}{}
-\scr@ifundefinedorrelax{chapter}{%
-% \end{macrocode}
-% It seems to be an article class, so we use the code from
-% \href{http://mirrors.ctan.org/macros/latex/base/classes.dtx}{\cls*{article}}.
-% \begin{macrocode}
- \scr@ifundefinedorrelax{c@part}{\newcounter{part}}{}%
- \scr@ifundefinedorrelax{c@section}{\newcounter{section}}{}%
- \scr@ifundefinedorrelax{c@subsection}{\newcounter{subsection}[section]}{}%
- \scr@ifundefinedorrelax{c@subsubsection}{%
- \newcounter{subsubsection}[subsection]}{}%
- \scr@ifundefinedorrelax{c@paragraph}{%
- \newcounter{paragraph}[subsubsection]}{}%
- \scr@ifundefinedorrelax{c@subparagraph}{%
- \newcounter{subparagraph}[paragraph]}{}%
- \renewcommand\thepart {\@Roman\c@part}%
- \renewcommand\thesection {\@arabic\c@section}%
- \renewcommand\thesubsection {\thesection.\@arabic\c@subsection}%
- \renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}%
- \renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}%
- \renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}%
- \def\part{%
- \if@noskipsec \leavevmode \fi
- \par
- \addvspace{4ex}%
- \@afterindentfalse
- \secdef\@part\@spart}%
- \def\@part[#1]#2{%
- \ifnum \c@secnumdepth >\m@ne
- \refstepcounter{part}%
- \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
- \else
- \addcontentsline{toc}{part}{#1}%
- \fi
- {\parindent \z@ \raggedright
- \interlinepenalty \@M
- \normalfont
- \ifnum \c@secnumdepth >\m@ne
- \Large\bfseries \partname\nobreakspace\thepart
- \par\nobreak
- \fi
- \huge \bfseries #2%
- \markboth{}{}\par}%
- \nobreak
- \vskip 3ex
- \@afterheading}%
- \def\@spart#1{%
- {\parindent \z@ \raggedright
- \interlinepenalty \@M
- \normalfont
- \huge \bfseries #1\par}%
- \nobreak
- \vskip 3ex
- \@afterheading}%
- \def\section{\@startsection {section}{1}{\z@}%
- {-3.5ex \@plus -1ex \@minus -.2ex}%
- {2.3ex \@plus.2ex}%
- {\normalfont\Large\bfseries}}%
- \def\subsection{\@startsection{subsection}{2}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\large\bfseries}}%
- \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\normalsize\bfseries}}%
- \def\paragraph{\@startsection{paragraph}{4}{\z@}%
- {3.25ex \@plus1ex \@minus.2ex}%
- {-1em}%
- {\normalfont\normalsize\bfseries}}%
- \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
- {3.25ex \@plus1ex \@minus .2ex}%
- {-1em}%
- {\normalfont\normalsize\bfseries}}%
-}{%
-% \end{macrocode}
-% It seems to be either a book or report class.
-% \begin{macrocode}
- \scr@ifundefinedorrelax{c@part}{\newcounter{part}}{}%
- \scr@ifundefinedorrelax{c@chapter}{\newcounter{chapter}}{}%
- \scr@ifundefinedorrelax{c@section}{\newcounter{section}[chapter]}{}%
- \scr@ifundefinedorrelax{c@subsection}{\newcounter{subsection}[section]}{}%
- \scr@ifundefinedorrelax{c@subsubsection}{%
- \newcounter{subsubsection}[subsection]}{}%
- \scr@ifundefinedorrelax{c@paragraph}{%
- \newcounter{paragraph}[subsubsection]}{}%
- \scr@ifundefinedorrelax{c@subparagraph}{%
- \newcounter{subparagraph}[paragraph]}{}%
- \def\@chapapp{\chaptername}%
- \scr@ifundefinedorrelax{frontmatter}{%
-% \end{macrocode}
-% It seems not to be a book class.
-% \begin{macrocode}
- \def\part{%
- \if@openright
- \cleardoublepage
- \else
- \clearpage
- \fi
- \thispagestyle{plain}%
- \if@twocolumn
- \onecolumn
- \@tempswatrue
- \else
- \@tempswafalse
- \fi
- \null\vfil
- \secdef\@part\@spart}
-
- \def\@part[#1]#2{%
- \ifnum \c@secnumdepth >-2\relax
- \refstepcounter{part}%
- \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
- \else
- \addcontentsline{toc}{part}{#1}%
- \fi
- \markboth{}{}%
- {\centering
- \interlinepenalty \@M
- \normalfont
- \ifnum \c@secnumdepth >-2\relax
- \huge\bfseries \partname\nobreakspace\thepart
- \par
- \vskip 20\p@
- \fi
- \Huge \bfseries #2\par}%
- \@endpart}
- \def\@spart#1{%
- {\centering
- \interlinepenalty \@M
- \normalfont
- \Huge \bfseries #1\par}%
- \@endpart}
- \def\@endpart{\vfil\newpage
- \if@twoside
- \if@openright
- \null
- \thispagestyle{empty}%
- \newpage
- \fi
- \fi
- \if@tempswa
- \twocolumn
- \fi}
- \def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
- \thispagestyle{plain}%
- \global\@topnum\z@
- \@afterindentfalse
- \secdef\@chapter\@schapter}
- \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
- \refstepcounter{chapter}%
- \typeout{\@chapapp\space\thechapter.}%
- \addcontentsline{toc}{chapter}%
- {\protect\numberline{\thechapter}#1}%
- \else
- \addcontentsline{toc}{chapter}{#1}%
- \fi
- \chaptermark{#1}%
- \addtocontents{lof}{\protect\addvspace{10\p@}}%
- \addtocontents{lot}{\protect\addvspace{10\p@}}%
- \if@twocolumn
- \@topnewpage[\@makechapterhead{#2}]%
- \else
- \@makechapterhead{#2}%
- \@afterheading
- \fi}
- \def\@makechapterhead#1{%
- \vspace*{50\p@}%
- {\parindent \z@ \raggedright \normalfont
- \ifnum \c@secnumdepth >\m@ne
- \huge\bfseries \@chapapp\space \thechapter
- \par\nobreak
- \vskip 20\p@
- \fi
- \interlinepenalty\@M
- \Huge \bfseries #1\par\nobreak
- \vskip 40\p@
- }}
- \def\@schapter#1{\if@twocolumn
- \@topnewpage[\@makeschapterhead{#1}]%
- \else
- \@makeschapterhead{#1}%
- \@afterheading
- \fi}
- \def\@makeschapterhead#1{%
- \vspace*{50\p@}%
- {\parindent \z@ \raggedright
- \normalfont
- \interlinepenalty\@M
- \Huge \bfseries #1\par\nobreak
- \vskip 40\p@
- }}
- \def\section{\@startsection {section}{1}{\z@}%
- {-3.5ex \@plus -1ex \@minus -.2ex}%
- {2.3ex \@plus.2ex}%
- {\normalfont\Large\bfseries}}%
- \def\subsection{\@startsection{subsection}{2}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\large\bfseries}}%
- \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\normalsize\bfseries}}%
- \def\paragraph{\@startsection{paragraph}{4}{\z@}%
- {3.25ex \@plus1ex \@minus.2ex}%
- {-1em}%
- {\normalfont\normalsize\bfseries}}%
- \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
- {3.25ex \@plus1ex \@minus .2ex}%
- {-1em}%
- {\normalfont\normalsize\bfseries}}%
- }{%
-% \end{macrocode}
-% It seems to be a book class.
-% \begin{macrocode}
- \scr@ifundefinedorrelax{if@mainmatter}{%
- \expandafter\newif\csname if@mainmatter\endcsname
- }{}%
- \def\frontmatter{%
- \cleardoublepage
- \@mainmatterfalse
- \pagenumbering{roman}}%
- \def\mainmatter{%
- \cleardoublepage
- \@mainmattertrue
- \pagenumbering{arabic}}%
- \def\backmatter{%
- \if@openright
- \cleardoublepage
- \else
- \clearpage
- \fi
- \@mainmatterfalse}%
- \def\part{%
- \if@openright
- \cleardoublepage
- \else
- \clearpage
- \fi
- \thispagestyle{plain}%
- \if@twocolumn
- \onecolumn
- \@tempswatrue
- \else
- \@tempswafalse
- \fi
- \null\vfil
- \secdef\@part\@spart}%
-
- \def\@part[#1]#2{%
- \ifnum \c@secnumdepth >-2\relax
- \refstepcounter{part}%
- \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
- \else
- \addcontentsline{toc}{part}{#1}%
- \fi
- \markboth{}{}%
- {\centering
- \interlinepenalty \@M
- \normalfont
- \ifnum \c@secnumdepth >-2\relax
- \huge\bfseries \partname\nobreakspace\thepart
- \par
- \vskip 20\p@
- \fi
- \Huge \bfseries #2\par}%
- \@endpart}%
- \def\@spart#1{%
- {\centering
- \interlinepenalty \@M
- \normalfont
- \Huge \bfseries #1\par}%
- \@endpart}%
- \def\@endpart{\vfil\newpage
- \if@twoside
- \if@openright
- \null
- \thispagestyle{empty}%
- \newpage
- \fi
- \fi
- \if@tempswa
- \twocolumn
- \fi}%
- \def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
- \thispagestyle{plain}%
- \global\@topnum\z@
- \@afterindentfalse
- \secdef\@chapter\@schapter}%
- \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \refstepcounter{chapter}%
- \typeout{\@chapapp\space\thechapter.}%
- \addcontentsline{toc}{chapter}%
- {\protect\numberline{\thechapter}#1}%
- \else
- \addcontentsline{toc}{chapter}{#1}%
- \fi
- \else
- \addcontentsline{toc}{chapter}{#1}%
- \fi
- \chaptermark{#1}%
- \addtocontents{lof}{\protect\addvspace{10\p@}}%
- \addtocontents{lot}{\protect\addvspace{10\p@}}%
- \if@twocolumn
- \@topnewpage[\@makechapterhead{#2}]%
- \else
- \@makechapterhead{#2}%
- \@afterheading
- \fi}%
- \def\@makechapterhead#1{%
- \vspace*{50\p@}%
- {\parindent \z@ \raggedright \normalfont
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \huge\bfseries \@chapapp\space \thechapter
- \par\nobreak
- \vskip 20\p@
- \fi
- \fi
- \interlinepenalty\@M
- \Huge \bfseries #1\par\nobreak
- \vskip 40\p@
- }}%
- \def\@schapter#1{\if@twocolumn
- \@topnewpage[\@makeschapterhead{#1}]%
- \else
- \@makeschapterhead{#1}%
- \@afterheading
- \fi}%
- \def\@makeschapterhead#1{%
- \vspace*{50\p@}%
- {\parindent \z@ \raggedright
- \normalfont
- \interlinepenalty\@M
- \Huge \bfseries #1\par\nobreak
- \vskip 40\p@
- }}%
- \def\section{\@startsection {section}{1}{\z@}%
- {-3.5ex \@plus -1ex \@minus -.2ex}%
- {2.3ex \@plus.2ex}%
- {\normalfont\Large\bfseries}}%
- \def\subsection{\@startsection{subsection}{2}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\large\bfseries}}%
- \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\normalsize\bfseries}}%
- \def\paragraph{\@startsection{paragraph}{4}{\z@}%
- {3.25ex \@plus1ex \@minus.2ex}%
- {-1em}%
- {\normalfont\normalsize\bfseries}}%
- \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
- {3.25ex \@plus1ex \@minus .2ex}%
- {-1em}%
- {\normalfont\normalsize\bfseries}}%
- }%
-}% End of the derived code.
-% \end{macrocode}
-% \end{command}
-%
-% \begin{macro}{\@startsection}
-% \KOMAScript{} classes redefine this internal \LaTeX{} kernel macro. In this
-% case \cs{scr@saved@startsection} is defined, differs from
-% \cs{@startsection} and has the definition found before redefining the
-% original macro. We do nothing else but resetting \cs{@startsection} to this
-% saved definition.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{scr@saved@startsection}{}{%
- \ifx\@startsection\scr@saved@startsection\else
- \PackageWarningNoLine{scrhack}{%
- Resetting \string\@startsection,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \let\@startsection\scr@saved@startsection
- \fi
-}
-% \end{macrocode}
-% \end{macro}^^A \@startsection
-%
-% \begin{macro}{\@sect,\@ssect,\@xsect}
-% All these should be resetted to their original definitions stored in
-% \cs{scr@latex@\dots}.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{scr@latex@sect}{}{%
- \ifx\@sect\scr@latex@sect\else
- \PackageWarningNoLine{scrhack}{%
- Resetting \string\@sect,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \let\@sect\scr@latex@sect
- \fi
-}
-\scr@ifundefinedorrelax{scr@latex@ssect}{}{%
- \ifx\@ssect\scr@latex@ssect\else
- \PackageWarningNoLine{scrhack}{%
- Resetting \string\@ssect,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \let\@sect\scr@latex@ssect
- \fi
-}
-\scr@ifundefinedorrelax{scr@latex@xsect}{}{%
- \ifx\@xsect\scr@latex@xsect\else
- \PackageWarningNoLine{scrhack}{%
- Resetting \string\@xsect,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \let\@sect\scr@latex@sect
- \fi
-}
-% \end{macrocode}
-% \end{macro}^^A \@xsect,\@ssect,\@sect
-%
-% \begin{command}{\DeclareSectionCommand,\RedeclareSectionCommand,
-% \DeclareNewSectionCommand,\ProvideSectionCommand,
-% \DeclareSectionCommands,\RedeclareSectionCommands,
-% \DeclareNewSectionCommands,\ProvideSectionCommands}
-% These \KOMAScript{} commands do not make sense any longer after forced
-% redefinition of \cs{part} \dots{} \cs{subparagraph}. They even would not
-% work correctly after resetting, e.g., \cs{@startsection}. So best reaction
-% is to \emph{undefine} them.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{DeclareSectionCommand}{}{%
- \PackageWarningNoLine{scrhack}{%
- \string\DeclareSectionCommand\space
- and all derivates deactivated,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \let\DeclareSectionCommand\undefined
- \let\DeclareSectionCommands\undefined
- \let\RedeclareSectionCommand\undefined
- \let\RedeclareSectionCommands\undefined
- \let\DeclareNewSectionCommand\undefined
- \let\DeclareNewSectionCommands\undefined
- \let\ProvideSectionCommand\undefined
- \let\ProvideSectionCommands\undefined
-}
-% \end{macrocode}
-% \begin{macro}{\scr@chapter@before@hyperref@patch,
-% \scr@chapter@after@hyperref@patch}
-% Now, definitions without respecting \pkg{hyperref} are used, so
-% \pkg{hyperref} should again be able to patch them. So the hack should
-% deactivate the patch deactivation of the \KOMAScript{} classes.
-% \begin{macrocode}
-\let\scr@chapter@before@hyperref@patch\relax
-\let\scr@chapter@after@hyperref@patch\relax
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{macro}{\scr@osectarg}
-% The \KOMAScript{} classes use this macro to store how to use the optional
-% argument of section commands. But with the standard class definition the
-% only possibility is to use it as running head and write it into the table of
-% contents without any extended handling. So the only value, that makes sense
-% is 0.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{scr@osectarg}{}{%
- \def\reserved@a{0}%
- \ifx\scr@osectarg\reserved@a\else
- \let\scr@osectarg\reserved@a
- \PackageWarningNoLine{scrhack}{%
- Extended option handling for section commands deactivated,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \fi
-}%
-% \end{macrocode}
-% \begin{macro}{\scr@activate@xsection}
-% Further changing of the value has to be deactivated.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{scr@activate@xsection}{}{%
- \renewcommand*{\scr@activate@xsection}[1]{%
- \edef\scr@osectarg{#1}\def\reserved@a{0}%
- \ifx\scr@osectarg\reserved@a
- \else
- \let\scr@osectarg\reserved@a
- \PackageWarning{scrhack}{%
- Because of loading the standard classes\MessageBreak
- sections hack, the extended option handling\MessageBreak
- of section commands failed%
- }%
- \fi
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \scr@activate@xsection
-% \end{macro}^^A \scr@osectarg
-%
-% \begin{command}{\partformat,\chapterformat}
-% Most \cs{\dots format} macros of \KOMAScript{} are still used, because of
-% the redefinition of \cs{@seccntformat}. But \cs{part} and \cs{chapter} are
-% defined without using them.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{partformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- Usage of \string\partformat\space
- deactivated,\MessageBreak
- because of loading the standard classes sections hack%
- }%
-}
-\scr@ifundefinedorrelax{chapterformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- Usage of \string\chapterformat\space
- deactivated,\MessageBreak
- because of loading the standard classes sections hack%
- }%
-}
-% \end{macrocode}
-% \end{command}^^A \chapterformat,\partformat
-%
-% \begin{command}{\sectionformat,\subsectionformat,\subsubsectionformat,
-% \paragraphformat,\subparagraphformat}
-% All these commands have to be resetted to not use the automatic dot and to
-% add a \cs{quad} instead of an \cs{enskip}.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{sectionformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- \string\sectionformat\space set to
- `\string\thesection\string\quad',\MessageBreak
- because of loading the standard classes sections hack%
- }%
- \renewcommand*{\sectionformat}{\thesection\quad}%
-}
-\scr@ifundefinedorrelax{subsectionformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- \string\subsectionformat\space set to
- `\string\thesubsection\string\quad'\MessageBreak
- because of loading the standard classes sections hack%
- }%
- \renewcommand*{\subsectionformat}{\thesubsection\quad}%
-}
-\scr@ifundefinedorrelax{subsubsectionformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- \string\subsubsectionformat\space set to
- `\string\thesubsubsection\string\quad'\MessageBreak
- because of loading the standard classes sections hack%
- }%
- \renewcommand*{\subsubsectionformat}{\thesubsubsection\quad}%
-}
-\scr@ifundefinedorrelax{paragraphformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- \string\paragraphformat\space set to
- `\string\theparagraph\string\quad'\MessageBreak
- because of loading the standard classes sections hack%
- }%
- \renewcommand*{\paragraphformat}{\theparagraph\quad}%
-}
-\scr@ifundefinedorrelax{subparagraphformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- \string\subparagraphformat\space set to
- `\string\thesubparagraph\string\quad'\MessageBreak
- because of loading the standard classes sections hack%
- }%
- \renewcommand*{\subparagraphformat}{\thesubparagraph\quad}%
-}
-% \end{macrocode}
-% \end{command}
-%
-% \begin{command}{\partlineswithprefixformat,
-% \chapterlineswithprefixformat,\chapterlinesformat,
-% \sectionlinesformat,\sectioncatchphraseformat}
-% These \KOMAScript{} commands are not used any longer.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{partlineswithprefixformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- Usage of \string\partlineswithprefixformat\space deactivated,\MessageBreak
- because of loading the standard classes sections hack%
- }%
-}
-\scr@ifundefinedorrelax{chapterlineswithprefixformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- Usage of \string\chapterlineswithprefixformat\space and\MessageBreak
- \string\chapterlinesformat\space deactivated,\MessageBreak
- because of using standard classes sections hack%
- }%
-}
-\scr@ifundefinedorrelax{sectionlinesformat}{}{%
- \PackageWarningNoLine{scrhack}{%
- Usage of \string\sectionlinesformat\space and\MessageBreak
- \string\sectioncatchphraseformat\space deactivated,\MessageBreak
- because of using standard classes sections hack%
- }%
-}
-% \end{macrocode}
-% \end{command}^^A \partlineswithprefixformat …
-%
-% \begin{option}{headings}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% The \KOMAScript{} option does not make sense any longer. So it is
-% deactivated and usage will throw an error.
-% \begin{macrocode}
-\scr@ifundefinedorrelax{KOMAClassName}{}{%
- \PackageWarningNoLine{scrhack}{%
- KOMA-Script option `headings' removed,\MessageBreak
- because of loading standard classes sections hack%
- }%
- \RelaxFamilyKey[.\KOMAClassFileName]{KOMA}{headings}%
- \KOMA@kav@removekey{\KOMAClassFileName}{headings}%
-}
-% \end{macrocode}
-% \end{option}^^A headings
-%
-% \begin{macro}{\scr@class@titlesec@warning}
-% The warning about loading \pkg{titlesec} has to be changes, because we do
-% not expect errors any longer.
-% \begin{macrocode}
-\def\scr@class@titlesec@warning{%
- \PackageWarning{scrhack}{%
- Usage of `titlesec' should work, because of\MessageBreak
- loading the standard classes sections hack.\MessageBreak
- However, you should know, there is not any\MessageBreak
- support for this combination by the\MessageBreak
- KOMA-Script author%
- }%
-}
-%</standardsections&body>
-% \end{macrocode}
-% \end{macro}^^A \scr@class@titlesec@warning
-%
-% \subsection{Executing options}
-%
-% Last but not least the options have to be processed. In the generated
-% package this will be done before the commands of \autoref{sec:macros}.
-% \begin{macrocode}
-%<*package&option>
-\KOMAProcessOptions\relax
-%</package&option>
-% \end{macrocode}
-%
-% \Finale
-% \PrintChanges
-%
-\endinput
-% Local Variables:
-% mode: doctex
-% ispell-local-dictionary: "en_US"
-% eval: (flyspell-mode 1)
-% TeX-master: t
-% TeX-engine: luatex-dev
-% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
-% End:
diff --git a/macros/latex/contrib/koma-script/scrjura.dtx b/macros/latex/contrib/koma-script/scrjura.dtx
index ee0f36a24c..14d96e6ea1 100644
--- a/macros/latex/contrib/koma-script/scrjura.dtx
+++ b/macros/latex/contrib/koma-script/scrjura.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrjura.dtx
-% Copyright (c) Markus Kohm, 2007-2023
+% Copyright (c) Markus Kohm, 2007-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% The KOMA-Script bundle consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrjura.dtx 4062 2023-06-24 15:55:11Z kohm $
+%%% From File: $Id: scrjura.dtx 4106 2024-02-13 15:06:28Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -28,16 +28,16 @@
%<*dtx>
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-24 17:55:11 +0200 (Sa, 24. Jun 2023) $
+ \filedate$Date: 2024-02-13 16:06:28 +0100 (Di, 13. Feb 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4062 $
+ \filerevision$Revision: 4106 $
\endgroup
\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]
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<package&identify>\ProvidesPackage{scrjura}[%
%<*dtx|(package&identify)>
%!KOMAScriptVersion
@@ -62,11 +62,7 @@
}%
\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}%
}%
}%
@@ -93,6 +89,7 @@
% \changes{v3.36}{2022/01/25}{switch over from \cls*{scrdoc} to
% \cls*{koma-script-source-doc}}
% \changes{v3.40}{2023/04/17}{guide names changed}
+% \changes{v3.42}{2024/02/13}{compatibility wrapper to \pkg*{contract}}
%
% \GetFileInfo{scrjura.dtx}
% \title{\KOMAScript{} in the Law Office\\
@@ -101,11 +98,8 @@
% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
% \maketitle
% \begin{abstract}
-% 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.
+% From \KOMAScript{} version~3.42, the \pkg*{scrjura} package is deprecated
+% and only a compatibility wrapper to package \pkg{contract}.
% \end{abstract}
%
% \tableofcontents
@@ -121,1941 +115,23 @@
% \section{Implementation}
%
% \begin{macrocode}
-%<*package>
+%<*package&body>
+\RequirePackageWithOptions{contract}[=v0.9]
% \end{macrocode}
%
-% \changes{v0.7b}{2014/11/11}{General renaming of ``Paragraph'' into
-% ``Clause''}
-%
-% \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\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.}%
-}
-%</init>
-% \end{macrocode}
-%
-% \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}
-%
-% And now, \pkg*{tocbasic}.
-% \begin{macrocode}
-%<*init>
-\RequirePackage{tocbasic}
-%</init>
-% \end{macrocode}
-%
-% \subsection{Options}
-%
-% \begin{option}{contract}
-% \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>
-\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}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% 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}{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}{new, because of \pkg{hyperref}}
-% \changes{v3.27}{2019/02/25}{handled by \pkg*{tocbasic}}
-% \begin{macrocode}
-%<*options>
-\KOMA@key{juratotoc}[true]{%
- \KOMA@set@ifkey{juratotoc}{@tempswa}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \if@tempswa
- \DeclareTOCStyleEntry[level=2]{default}{cpar}%
- \else
- \DeclareTOCStyleEntry[level=\maxdimen]{default}{cpar}%
- \fi
- \else
- \DeclareTOCStyleEntry[level=#1]{default}{cpar}%
- \fi
- \KOMA@kav@xreplacevalue{scrjura.sty}{juratotoc}{\cpartocdepth}%
-}
-\KOMA@kav@xadd{scrjura.sty}{juratotoc}{\cpartocdepth}%
-%</options>
-% \end{macrocode}
-% \end{macro}
-% \end{counter}
-% \end{macro}
-% \end{option}
-%
-% \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}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% \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}{%
- \DeclareTOCStyleEntry[numwidth=#1]{default}{cpar}%
- \FamilyKeyStateProcessed
- \KOMA@kav@replacevalue{scrjura.sty}{juratocnumberwidth}{#1}%
-}
-\KOMA@kav@add{scrjura.sty}{juratocnumberwidth}{2em}
-\KOMA@key{juratocindent}{%
- \DeclareTOCStyleEntry[indent=#1]{default}{cpar}%
- \FamilyKeyStateProcessed
- \KOMA@kav@replacevalue{scrjura.sty}{juratocindent}{#1}%
-}
-\KOMA@kav@add{scrjura.sty}{juratocindent}{1.5em}%
-%</options>
-% \end{macrocode}
-% \end{ilength}
-% \end{option}
-%
-% \begin{option}{juratitlepagebreak}
-% \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}
-%</options>
-% \end{macrocode}
-% \end{macro}
-% \end{option}
-%
-% \begin{option}{parnumber}
-% \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}}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% The options switches the (automatic) paragraph numbering.
-% \begin{macrocode}
-%<*options>
-\newif\ifparnumber
-\KOMA@key{parnumber}[true]{%
- \Ifstr{#1}{auto}{%
- \AutoPar
- \FamilyKeyStateProcessed
- \KOMA@kav@remove{scrjura.sty}{parnumber}{manual}%
- \KOMA@kav@remove{scrjura.sty}{parnumber}{auto}%
- \KOMA@kav@add{scrjura.sty}{parnumber}{auto}%
- }{%
- \Ifstr{#1}{manual}{%
- \ManualPar
- \FamilyKeyStateProcessed
- \KOMA@kav@remove{scrjura.sty}{parnumber}{manual}%
- \KOMA@kav@remove{scrjura.sty}{parnumber}{auto}%
- \KOMA@kav@add{scrjura.sty}{parnumber}{manual}%
- }{%
- \KOMA@set@ifkey{parnumber}{parnumber}{#1}%
- \KOMA@kav@replacebool{scrjura.sty}{parnumber}{parnumber}%
- }%
- }%
-}
-\KOMA@kav@add{scrjura.sty}{parnumber}{true}
-\KOMA@kav@add{scrjura.sty}{parnumber}{auto}
-%</options>
-% \end{macrocode}
-% \end{option}
-%
-% \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}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% \begin{option}{markright,markboth}
-% \changes{v0.7}{2013/11/04}{deprecated}
-% \changes{v3.39}{2022/11/16}{only with \KOMAScript~3}
-% \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]{}
-\KOMA@key{clausemark}{%
- \begingroup
- \KOMA@set@ncmdkey{clausemark}{@tempa}{%
- {false}{0},{off}{0},{no}{0},%
- {forceright}{1},%
- {forceboth}{2},%
- {right}{3},%
- {both}{4}%
- }{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \ifcase\number\@tempa
- \endgroup
- \let\Clausemark\@gobble
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \markright{\csname MakeMarkcase\endcsname{##1}}}%
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \markboth{\csname MakeMarkcase\endcsname{##1}}%
- {\csname MakeMarkcase\endcsname{##1}}}%
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \ifx
- \@mkboth\@gobbletwo
- \else
- \markright{\csname MakeMarkcase\endcsname{##1}}%
- \fi}%
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \@mkboth{\csname MakeMarkcase\endcsname{##1}}%
- {\csname MakeMarkcase\endcsname{##1}}}%
- \else
- \endgroup
- \fi
- \FamilyKeyStateProcessed
- \else
- \endgroup
- \FamilyKeyStateUnknownValue
- \fi
- \KOMA@kav@xreplacevalue{scrjura.sty}{clausemark}{#1}%
-}
-\KOMA@kav@add{scrjura.sty}{clausemark}{false}
-\@ifundefined{KOMA@DeclareDeprecatedOption}{}{%
- \KOMA@DeclareDeprecatedOption[scrjura]{markright}{clausemark=forceright}%
- \KOMA@DeclareDeprecatedOption[scrjura]{markboth}{clausemark=forceboth}%
-}
-\KOMA@key{paragraphmark}{%
- \PackageWarningNoLine{scrjura}{%
- You've used obsolete option `paragraphmark'.\MessageBreak
- Usage of this option is deprecated.\MessageBreak
- You should simply replace `paragraphmark'\MessageBreak
- by `clausemark'%
- }%
- \KOMAExecuteOptions[.scrjura.sty]{clausemark=#1}%
-}
-%</options>
-% \end{macrocode}
-% \end{command}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{ref}
-% \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}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% \begin{option}{parcitename,sentencecitename}
-% \changes{v0.5d}{2010/06/07}{deprecated}
-% \changes{v3.39}{2022/11/16}{only with \KOMAScript~3}
-% 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}
-% The options can be used to change the default.
-% \begin{macrocode}
-\KOMA@key{ref}{%
- \begingroup
- \KOMA@set@ncmdkey{ref}{@tempa}{%
- {parlong}{1},{longpar}{1},{ParL}{1},%
- {parshort}{2},{shortpar}{2},{ParS}{2},%
- {parnumeric}{3},{numericpar}{3},{ParN}{3},%
- {paroff}{4},{nopar}{4},%
- {sentencelong}{10},{longsentence}{10},{SentenceL}{10},%
- {sentenceshort}{20},{shortsentence}{20},{SentenceS}{20},%
- {sentencenumeric}{30},{numericsentence}{30},{SentenceN}{30},%
- {sentenceoff}{40},{nosentence}{40},%
- {long}{11},%
- {short}{22},%
- {numeric}{33},%
- {paragraphonly}{44},{onlyparagraph}{44},%
- {ParagraphOnly}{44},{OnlyParagraph}{44}%
- }{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \aftergroup\FamilyKeyStateProcessed
- \@tempcnta=\@tempa\relax
- \@tempcntb=\z@
- \@whilenum \@tempcnta>9 \do{%
- \advance\@tempcnta -10\relax
- \advance\@tempcntb \@ne\relax
- }%
- \ifcase \@tempcnta
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup0\aftergroup}%
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup1\aftergroup}%
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup2\aftergroup}%
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup-\aftergroup1\aftergroup}%
- \fi
- \ifcase \@tempcntb
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup0\aftergroup}%
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup1\aftergroup}%
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup2\aftergroup}%
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup-\aftergroup1\aftergroup}%
- \fi
- \else
- \aftergroup\FamilyKeyStateUnknownValue
- \fi
- \endgroup
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \KOMA@kav@removekey{scrjura.sty}{ref}%
- \ifcase\parcite@format
- \KOMA@kav@add{scrjura.sty}{ref}{parlong}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{parshort}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{parnumeric}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{paroff}%
- \fi
- \ifcase\sentencecite@format
- \KOMA@kav@add{scrjura.sty}{ref}{sentencelong}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{sentenceshort}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{sentencenumeric}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{sentenceoff}%
- \fi
- \fi
-}
-\KOMA@kav@add{scrjura.sty}{ref}{parlong}%
-\KOMA@kav@add{scrjura.sty}{ref}{sentencelong}%
-\@ifundefined{KOMA@DeclareDeprecatedOption}{}{%
- \KOMA@DeclareDeprecatedOption[scrjura]{parcitename}{ref=parlong}
- \KOMA@DeclareDeprecatedOption[scrjura]{sentencecitename}{ref=sentencelong}
-}
-%</options>
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% Execute the options.
-% \begin{macrocode}
-%<*postoptions>
-\KOMAProcessOptions\relax
-%</postoptions>
-% \end{macrocode}
-%
-% \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}{%
- \PackageError{scrjura}{modification of old document needed}{%
- It seem that this document was made for scrjura up to version
- 0.7a.\MessageBreak
- Since scrjura version 0.9 \string\Paragraph, \string\SubParagraph, and all
- depending\MessageBreak
- commands, options, and counters have been renamed.\MessageBreak
- You should replace the terms `Paragraph' and `paragraph` by `Clause`
- and\MessageBreak
- `clause` if they are part of the name of a scrjura feature, otherwise
- this\MessageBreak
- document may produce severall additional error messages and maybe the
- wrong\MessageBreak
- result. Sorry for the inconvenience.%
- }%
- \ParagraphCompatibilityHacks
-}
-\newcommand*{\ParagraphCompatibilityHacks}{%
- \PackageWarning{scrjura}{compatibility hacks for `\string\Paragraph'
- executed.\MessageBreak
- There is no support for documents using these hacks!\MessageBreak
- There is no warranty for real compatibility!\MessageBreak
- Even if the LaTeX run of the document doesn't report\MessageBreak
- any error, the result may be completely wrong.\MessageBreak
- Therefore it is recommended to solve the problem,\MessageBreak
- instead of trying to work around using the\MessageBreak
- compatibility hacks%
- }%
- \gdef\Paragraph{\Clause}%
- \gdef\SubParagraph{\SubClause}%
- \gdef\c@Paragraph{\c@Clause}%
- \gdef\cl@Paragraph{\cl@Clause}%
- \gdef\c@SubParagraph{\c@SubClause}%
- \gdef\cl@SubParagraph{\cl@SubClause}%
- \gdef\theParagraph{\theClause}%
- \gdef\theSubParagraph{\theSubClause}%
- \gdef\refParagraph{\refClause}%
- \gdef\refParagraphN{\refClauseN}%
- \aliaskomafont{Paragraph}{Clause}%
- \scr@ifundefinedorrelax{Paragraphmark}{}{%
- \global\let\Clausemark\Paragraphmark
- }%
-}
-\providecommand*{\Paragraph}{\DeprecatedParagraph\Paragraph}
-\providecommand*{\SubParagraph}{\DeprecatedParagraph\SubParagraph}
-\providecommand*{\refParagraph}{\DeprecatedParagraph\refParagraph}
-\providecommand*{\refParagraphN}{\DeprecatedParagraph\refParagraphN}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-%
-% \subsection{Contracts, clauses, paragraphs and sentences}
-%
-%
-% \begin{macro}{\scrjura@env@type}
-% \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}{}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \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]{%
- \begingroup
- \KOMAoptions{parnumber=manual}\parellipsis\par
- \addtocounter{par}{#1}%
- \if@filesw
- \protected@write\@auxout{}{%
- \string\newmaxpar{\scrjura@env@type}%
- {\csname the\scrjura@env@type
- AbsoluteClause\endcsname}%
- {\thepar}%
- }%
- \fi
- \endgroup
- \addtocounter{par}{-1}\refstepcounter{par}%
- \ignorespaces
-}
-\newcommand*{\parellipsis}{%
- \scr@ifundefinedorrelax{textellipsis}{\dots}{\textellipsis}%
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-% \end{command}
-%
-% \begin{environment}{contract}
-% \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{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>
-\newenvironment{contract}{%
- \ifx\scrjura@env@type\@empty
- \let\@doendpe\scrjura@doendpe
- \let\Clause\contract@paragraph
- \let\c@Clause\c@contractClause
- \edef\cl@Clause{\cl@Clause\cl@contractClause}%
- \let\SubClause\contract@subparagraph
- \let\c@SubClause\c@contractSubClause
- \edef\cl@SubClause{\cl@SubClause\cl@contractSubClause}%
- \let\Sentence\contract@sentence
- \renewcommand*{\scrjura@env@type}{contract}%
- \aliaskomafont{Clause}{contract.Clause}%
- \else
- \PackageError{scrjura}{nested `contract` detected}{%
- You may not use a `contract' environment inside\MessageBreak
- 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
-\newcounter{contractClause}
-\renewcommand*{\thecontractClause}{%
- {\contract@Clauseformat{\arabic{Clause}}}}
-\DeclareRobustCommand*{\contract@Clauseformat}[1]{\Clauseformat{#1}}
-\newcommand*{\Clauseformat}[1]{\S~#1}
-\newcounter{contractSubClause}
-\@addtoreset{SubClause}{Clause}
-\renewcommand*{\thecontractSubClause}{%
- {\theClause\alph{SubClause}}}
-\newcounter{contractAbsoluteClause}
-%</body>
-% \end{macrocode}
-% \end{counter}
-% \end{command}
-% \end{counter}
-% \end{command}
-% \end{macro}
-% \end{command}
-% \end{counter}
-% \end{environment}
-%
-% \begin{command}{\DeclareNewJuraEnvironment}
-% \changes{v0.9}{2014/11/12}{new}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \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]{%
- \@ifundefined{#1}{\expandafter\let\csname #1\expandafter\endcsname
- \csname end#1\endcsname}{}%
- \@ifundefined{#1}{\let\reserved@defjuraenvironment\@defjuraenvironment}{%
- \PackageError{scrjura}{ignorring declaration of `#1'}{%
- You've tried to declare jura environment `#1', but
- environment\MessageBreak
- `#1' or command
- \expandafter\string\csname #1\endcsname\space or
- \expandafter\string\csname end#1\endcsname\MessageBreak
- already exists.\MessageBreak
- Declaration will be ignored}%
- \long\def\reserved@defjuraenvironment##1[##2]##3##4{}%
- }%
- \kernel@ifnextchar [%]
- {\reserved@defjuraenvironment{#1}}{\reserved@defjuraenvironment{#1}[]}%
-}
-\@onlypreamble\DeclareNewJuraEnvironment
-% \end{macrocode}
-% \begin{macro}{\@defjuraenvironment}
-% \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}
-\newcommand{\@defjuraenvironment}{}
-\long\def\@defjuraenvironment#1[#2]#3#4{%
- \let\reserved@defjuraenvironment\relax
-% \end{macrocode}
-% The counters:
-% \begin{macrocode}
- \newcounter{#1Clause}%
- \newcounter{#1AbsoluteClause}%
- \newcounter{#1SubClause}%
- \FamilyCSKey[.scrjura.sty]{KOMAarg}{Clause}{#1@Clause}%
- \FamilyCSKey[.scrjura.sty]{KOMAarg}{SubClause}{#1@SubClause}%
- \FamilyCSKey[.scrjura.sty]{KOMAarg}{Sentence}{#1@Sentence}%
- \DefineFamilyKey[.scrjura.sty]{KOMAarg}{ClauseNumberFormat}{%
- \expandafter\def\csname #1@Clauseformat \endcsname####1{##1{####1}}%
- \expandafter\edef\csname #1@Clauseformat\endcsname{%
- \noexpand\protect\expandafter\noexpand\csname #1@Clauseformat \endcsname
- }%
- \FamilyKeyStateProcessed
- }
- \DefineFamilyKey[.scrjura.sty]{KOMAarg}{ClauseFont}{%
- \IfExistskomafont{#1.Clause}{%
- \IfIsAliaskomafont{#1.Clause}{%
- \expandafter\let\csname scr@fnt@instead@#1.Clause\endcsname\relax
- \newkomafont{#1.Clause}{##1}%
- }{\setkomafont{#1.Clause}{##1}}%
- }{%
- \newkomafont{#1.Clause}{##1}%
- }%
- }
- \FamilyExecuteOptions[.scrjura.sty]{KOMAarg}{#2}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{ClauseFont}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{ClauseNumberFormat}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{Sentence}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{SubClause}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{Clause}%
- \@ifundefined{#1@Clauseformat}{%
- \expandafter\DeclareRobustCommand\expandafter*%
- \csname #1@Clauseformat\endcsname[1]{\Clauseformat{##1}}%
- }{}%
-% \end{macrocode}
-% \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}
-% Environment:
-% \begin{macrocode}
- \newenvironment{#1}{%
- \par
- \ifx\scrjura@env@type\@empty
- \edef\scrjura@env@type{#1}%
- \let\@doendpe\scrjura@doendpe
- \expandafter\let\expandafter\c@Clause\csname c@#1Clause\endcsname
- \edef\cl@Clause{\cl@Clause\csname cl@#1Clause\endcsname}%
- \expandafter\let\expandafter\c@SubClause
- \csname c@#1SubClause\endcsname
- \edef\cl@SubClause{\cl@SubClause
- \csname cl@#1SubClause\endcsname}%
- \@ifundefined{#1@Clause}{%
- \let\Clause\contract@paragraph
- }{%
- \expandafter\let\expandafter\Clause
- \csname #1@Clause\endcsname
- }%
- \@ifundefined{#1@SubClause}{%
- \let\SubClause\contract@subparagraph
- }{%
- \expandafter\let\expandafter\SubClause
- \csname #1@SubClause\endcsname
- }%
- \@ifundefined{#1@Sentence}{%
- \let\Sentence\contract@sentence
- }{%
- \expandafter\let\expandafter\Sentence\csname #1@Sentence\endcsname
- }%
- \@ifundefined{\scrjura@env@type @everypar}{%
- \expandafter\let
- \csname \scrjura@env@type @everypar\endcsname
- \contract@everypar
- }{}%
-% \end{macrocode}
-% 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}{%
- \aliaskomafont{Clause}{\csname scr@fnt@instead@#1.Clause\endcsname}%
- }{%
- \aliaskomafont{Clause}{#1.Clause}%
- }%
- }{%
- \aliaskomafont{Clause}{contract.Clause}%
- }%
- #3%
- \else
- \PackageError{scrjura}{nested scrjura environments detected}{%
- You must not use a `#1' environment inside\MessageBreak
- a `\scrjura@env@type' environment or after loading\MessageBreak
- package `scrjura' with option `\scrjura@env@type'!}%
- \fi
- }{%
- #4%
- \par
- }%
-}
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \@dewjuraenvironment
-% \end{command}%^^A \DeclareNewJuraEnvironment
-%
-% \begin{macro}{\contract@paragraph}
-% 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}{%
- \def\contract@title{#1}%
- \ifx\contract@entry\relax\def\contract@entry{\contract@title}\fi
- \ifx\contract@head\relax\def\contract@head{\contract@title}\fi
-}
-\define@key{contract}{entry}{%
- \PackageWarning{scrjura}{deprecated option `entry'.\MessageBreak
- You should use option `tocentry' instead of\MessageBreak
- option `entry'%
- }%
- \def\contract@entry{#1}}
-\define@key{contract}{tocentry}{\def\contract@entry{#1}}
-\define@key{contract}{noentry}[]{%
- \PackageWarning{scrjura}{deprecated option `noentry'.\MessageBreak
- You should use option `notocentry' instead of\MessageBreak
- option `noentry'%
- }%
- \let\contract@entry\relax}
-\define@key{contract}{notocentry}[]{\let\contract@entry\relax}
-\define@key{contract}{head}{\def\contract@head{#1}}
-\define@key{contract}{nohead}[]{\let\contract@head\relax}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
-% \begin{option}{number}
-% 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,\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}
-\define@key{contract}{preskip}{\def\contract@preskip{#1}}
-\define@key{contract}{postskip}{\def\contract@postskip{#1}}
-% \end{macrocode}
-% \end{option}
-% \end{macro}
-% \begin{option}{dummy}
-% The option switches the boolean \cs{ifcontract@dummy}.
-% \begin{macro}{\ifcontract@dummy}
-% 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}{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}
-% \end{fontelement}
-% \begin{counter}{@AbsClause}
-% \begin{macro}{\theH@AbsClause}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{command}{\theHClause,\theHSubClause}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{macrocode}
-% Here we have some not good tested code for \pkg{hyperref}.
-\newcounter{@AbsClause}
-\def\theH@AbsClause{P-\arabic{@AbsClause}}
-\def\theHClause{\theH@AbsClause}
-\def\theHSubClause{\theH@AbsClause}
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-% \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}%
- \ManualPar\parnumbertrue
- \let\contract@title\relax
- \let\contract@entry\relax
- \let\contract@head\relax
- \let\contract@number\relax
- \contract@dummyfalse
- \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
-% \end{macrocode}
-% 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
- \@afterindentfalse
- \addvspace{\contract@preskip}%
- \fi
-% \end{macrocode}
-% 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
- \expandafter\let\expandafter\theClause
- \csname the\scrjura@env@type Clause\endcsname
- \refstepcounter{Clause}%
- \else
- \begingroup
- \let\@elt\@stpelt
- \cl@Clause
- \endgroup
-% \end{macrocode}
-% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} instead of
-% \cs{csname}\dots\cs{endcsname}}
-% \changes{v3.41}{2023/06/24}{update of \cs{@currentcounter} added}
-% \begin{macrocode}
- \protected@edef\theClause{%
- \protect\@nameuse{\scrjura@env@type @Clauseformat}{\contract@number}%
- }%
- \protected@edef\@currentlabel{\theClause}%
- \def\@currentcounter{Clause}%
- \fi
- \stepcounter{@AbsClause}%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname if@skiphyperref\endcsname\relax
- \else
- \expandafter\let\csname if@scrjura@skiphyperref\expandafter\endcsname
- \csname if@skiphyperref\endcsname
- \fi
- \if@scrjura@skiphyperref\else
- \hyper@refstepcounter{@AbsClause}%
- \typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
- \fi
-% \end{macrocode}
-% For simplification we use the code of clauses for sub-clauses.
-% \begin{macrocode}
- \let\theSubClause\theClause
-% \end{macrocode}
-% 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
- \if@juratitlepagebreak\else\interlinepenalty\@M\fi
- \contract@paragraph@font{\theClause
- \ifx\contract@title\relax\else\enskip\fi}%
- \contract@title
- \ifx\contract@entry\relax\else
- \expandafter\addxcontentsline\expandafter{\ext@toc}%
- {cpar}[\theClause]\contract@entry
- \addxcontentsline{cpa}{cpar}[\theClause]\contract@entry
- \fi
- \ifx\contract@head\relax\else
- \expandafter\Clausemark\expandafter{%
- \expandafter\theSubClause\expandafter\enskip\contract@head}%
- \fi
- \par
- \endgroup\nobreak\vskip\contract@postskip
-% \end{macrocode}
-% Last but not least paragraph numbering is initialized.
-% \begin{macrocode}
- \scrjura@afterheading
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\contract@subparagraph}
-% \changes{v0.6a}{2012/10/08}{fehlendes \cs{par} ergänzt}
-% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteClause} wird
-% erhöht}
-% \changes{v0.7}{2013/04/28}{Abstand nach der Nummer als Bestandteil der
-% Nummer setzen}
-% \changes{v0.9i}{2017/02/23}{Verwendung von \cs{ext@toc}}
-% \changes{v3.41}{2023/06/24}{update of \cs{@currentcounter} added}
-% Das entspricht bis auf wenige Kleinigkeiten, die Unterparagraphen betreffen,
-% |\contract@paragraph|
-% \begin{macrocode}
-%<*body>
-\newcommand*{\contract@subparagraph}[1]{%
- \stepcounter{\scrjura@env@type AbsoluteClause}%
- \ManualPar\parnumbertrue
- \let\contract@title\relax
- \let\contract@entry\relax
- \let\contract@head\relax
- \let\contract@number\relax
- \contract@dummyfalse
- \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
- \ifcontract@dummy\else
- \par
- \@afterindentfalse
- \vskip\contract@preskip
- \fi
- \ifx\contract@number\relax
- \let\p@SubClause\@empty
- \let\theSubClause\thecontractSubClause
- \refstepcounter{SubClause}%
- \else
- \begingroup
- \let\@elt\@stpelt
- \cl@SubClause
- \endgroup
- \protected@edef\theSubClause{\theClause\contract@number}%
- \protected@edef\@currentlabel{\theSubClause}%
- \def\@currentcounter{SubClause}%
- \fi
- \stepcounter{@AbsClause}%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname if@skiphyperref\endcsname\relax
- \else
- \expandafter\let\csname if@scrjura@skiphyperref\expandafter\endcsname
- \csname if@skiphyperref\endcsname
- \fi
- \if@scrjura@skiphyperref\else
- \hyper@refstepcounter{@AbsClause}%
- \typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
- \fi
- \ifcontract@dummy\else
- \begingroup
- \if@juratitlepagebreak\else\interlinepenalty\@M\fi
- \contract@paragraph@font{\theSubClause
- \ifx\contract@title\relax\else\enskip\fi}%
- \contract@title
- \ifx\contract@entry\relax\else
- \expandafter\addxcontentsline\expandafter{\ext@toc}%
- {cpar}[\theSubClause]\contract@entry
- \addxcontentsline{cpa}{cpar}[\theSubClause]\contract@entry
- \fi
- \ifx\contract@head\relax\else
- \expandafter\Clausemark\expandafter{%
- \expandafter\theSubClause\expandafter\enskip\contract@head}%
- \fi
- \par
- \endgroup
- \nobreak\vskip\contract@postskip
- \scrjura@afterheading
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{command}{\AutoPar,\ManualPar}
-% Switching between automatic or manual paragraph numbers for all
-% \pkg*{scrjura} environments.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\AutoPar}{%
- \expandafter\let\expandafter\scrjura@everypar
- \csname \scrjura@env@type @everypar\endcsname
-}
-\newcommand*{\ManualPar}{%
- \let\scrjura@everypar\relax
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-% \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}{%
- \@nobreaktrue
- \everypar{%
- \if@nobreak
- \@nobreakfalse
- \clubpenalty \@M
- \if@afterindent \else
- {\setbox\z@\lastbox}%
- \fi
- \else
- \clubpenalty \@clubpenalty
- \everypar{}%
- \fi}%
-}
-\newcommand*{\scrjura@afterheading}{%
- \@nobreaktrue
- \everypar{%
- \if@nobreak
- \@nobreakfalse
- \clubpenalty \@M
- \if@afterindent \else
- {\setbox\z@\lastbox}%
- \fi
- \else
- \clubpenalty \@clubpenalty
- \everypar{%
- \scrjura@everypar
- }%
- \fi
- \scrjura@everypar
- }%
- \AutoPar
-}
-% \end{macrocode}
-% \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}
-% \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}{used temporary}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
-% \begin{macro}{\@gobble@IncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{used temporary}
-% \begin{macro}{\EndIncludeInRelease}
-% \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{macro}{\contract@paragraph,\contract@subparagraph}
+% Both macros of \pkg{contract} support an optional argument, but
+% \pkg*{scrjura} expects a mandatory argument instead.
% \begin{macrocode}
-\providecommand*{\IncludeInRelease}[3]{%
- \PackageInfo{scrjura}{temporary definition of \string\IncludeInRelease}%
- \Ifstr{#1}{0000/00/00}{%
- \let\IncludeInRelease\@undefined
- \def\EndIncludeInRelease{\let\EndIncludeInRelease\@undefined}%
- }{%
- \let\EndIncludeInRelease\relax
- \long\def\@gobble@IncludeInRelease##1\EndIncludeInRelease{%
- \let\@gobble@IncludeInRelease\@undefined
- }%
- \expandafter\@gobble@IncludeInRelease
- }%
-}
-\IncludeInRelease{2015/01/01}{\@doendpe}{clubpenalty fix}
-\CheckCommand*\@doendpe{\@endpetrue
- \def\par{\@restorepar
- \clubpenalty\@clubpenalty
- \everypar{}\par\@endpefalse}\everypar
- {{\setbox\z@\lastbox}%
- \everypar{}\@endpefalse}}
-\newcommand*{\scrjura@doendpe}{%
- \@endpetrue
- \def\par{%
- \@restorepar
- \clubpenalty\@clubpenalty
- \everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \par\@endpefalse
- }%
- \everypar{%
- {\setbox\z@\lastbox}\everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \@endpefalse
- }%
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\@doendpe}{clubpenalty fix}
-\CheckCommand*\@doendpe{\@endpetrue
- \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
- {{\setbox\z@\lastbox}\everypar{}\@endpefalse}}
-\newcommand*{\scrjura@doendpe}{%
- \@endpetrue
- \def\par{%
- \@restorepar\everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \par\@endpefalse
- }%
- \everypar{%
- {\setbox\z@\lastbox}\everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \@endpefalse
- }%
-}
-\EndIncludeInRelease
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \EndIncludeInRelease
-% \end{macro}%^^A \@gobble@IncludeInRelease
-% \end{macro}%^^A \IncludeInRelease
-% \end{macro}%^^A \scrjura@doendpe
-% \end{macro}%^^A \@doendpe
-% \end{macro}%^^A \scrjura@everypar
-%
-% \subsection{Entry to table of contents}
-% \begin{macro}{\l@cpar}
-% 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[%
- indent=1.5em,
- numwidth=2em,
- level=\maxdimen
-]{default}{cpar}
-%</init>
-% \end{macrocode}
-% \end{macro}
-%
-% \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}
-%</body>
+\NewCommandCopy{\scrjura@paragraph}{\contract@paragraph}
+\NewCommandCopy{\scrjura@subparagraph}{\contract@subparagraph}
+\RenewDocumentCommand\contract@paragraph{m}{\scrjura@paragraph[{#1}]}
+\RenewDocumentCommand\contract@subparagraph{m}{\scrjura@subparagraph[{#1}]}
% \end{macrocode}
% \end{macro}
%
-% \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}}
-\newcommand*{\scrjura@@usetype}[1]{}
-%</body>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\contract@everypar}
-% 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}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \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}{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}
-\renewcommand*{\thepar}{\arabic{par}}
-\def\theHpar{\theH@AbsClause-\Roman{par}}
-\newcommand*{\parformat}{(\thepar)}
-\newcommand*{\parformatseparation}{\nobreakspace}
-\newkomafont{parnumber}{}
-\renewcommand*\p@par{{\scrjura@usetype{\scrjura@env@type}\theSubClause\scrjura@separator{\nobreakspace}}}
-\@addtoreset{par}{Clause}
-\@addtoreset{par}{SubClause}
-\newcommand*{\withoutparnumber}{}
-%</body>
-% \end{macrocode}
-% \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}{%
- \ifparnumber
- \ifx\scrjura@special@par\relax
- \ifx\scrjura@special@reset@par\relax\else
- \global\let\thepar\scrjura@special@reset@par
- \global\let\scrjura@special@reset@par\relax
- \fi
- \refstepcounter{par}%
- \refstepcounter{sentence}%
- \else
- \ifx\scrjura@special@reset@par\relax
- \global\let\scrjura@special@reset@par\thepar
- \fi
- \global\let\thepar\scrjura@special@par
- \global\let\scrjura@special@par\relax
- \setcounter{sentence}{0}\refstepcounter{sentence}%
- \fi
- \begingroup
- \if@filesw
- \protected@write\@auxout{%
- \expandafter\let\csname \scrjura@env@type @Clauseformat\endcsname
- \@firstofone
- }{%
- \string\newmaxpar{\scrjura@env@type}%
- {\csname the\scrjura@env@type
- AbsoluteClause\endcsname}%
- {\thepar}%
- }%
- \fi
- \getmaxpar\@tempa{\scrjura@env@type}%
- {\csname the\scrjura@env@type AbsoluteClause\endcsname}%
- \typeout{Stored max is \@tempa}%
- \def\reserved@a##1\@nnil{\def\@tempa{##1}}%
- \afterassignment\reserved@a\@tempcnta=0\@tempa\relax\@nnil
- \ifnum \@tempcnta>\@ne
- {\usekomafont{parnumber}{\parformat\parformatseparation}}%
- \else
- \def\reserved@a{\relax}%
- \ifx\@tempa\reserved@a
- \withoutparnumber
- \else
- {\usekomafont{parnumber}{\parformat\parformatseparation}}%
- \fi
- \fi
- \endgroup
- \else
- \begingroup\withoutparnumber\endgroup
- \setcounter{sentence}{-1}\refstepcounter{sentence}%
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-% \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]{%
- \def\scrjura@special@par{#1}%
-}
-\newcommand*{\scrjura@special@par}{}
-\let\scrjura@special@par\relax
-\newcommand*{\scrjura@special@reset@par}{}
-\let\scrjura@special@reset@par\relax
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \scrjura@special@par
-% \end{command}%^^A\thisparnumber
-%
-%
-% \subsection{Referencing}
-%
-% \begin{command}{\refL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@L}
-% Similar to \cs{ref} but always the long form.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\refL}{\kernel@ifstar {\ref@L*}{\ref@L{}}}
-\newcommand*{\ref@L}[2]{%
- \begingroup
- \def\parcite@format{0}%
- \let\sentencecite@format\parcite@format
- \ref#1{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@S}
-% Similar to \cs{ref} but always the short form.
-% \begin{macrocode}
-\newcommand*{\refS}{\kernel@ifstar {\ref@S*}{\ref@S{}}}
-\newcommand*{\ref@S}[2]{%
- \begingroup
- \def\parcite@format{1}%
- \let\sentencecite@format\parcite@format
- \ref#1{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@N}
-% Similar to \cs{ref} but always the numerical form.
-% \begin{macrocode}
-\newcommand*{\refN}{\kernel@ifstar {\ref@N*}{\ref@N{}}}
-\newcommand*{\ref@N}[2]{%
- \begingroup
- \def\parcite@format{2}%
- \let\sentencecite@format\parcite@format
- \ref#1{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refClause}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@Clause}
-% 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{}}
-}
-\newcommand*{\ref@Clause}[2]{%
- \expandafter\ifx\csname r@#2\endcsname\relax
- \ref#1{#2}%
- \else
- \begingroup
-% \end{macrocode}
-% Copy all parts of the reference but the first one to \cs{@tempb}.
-% \begin{macrocode}
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\@tempb
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter{%
- \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
-% \end{macrocode}
-% 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}
-% Copy the first part of \cs{@tempa} to \cs{@tempb}.
-% \begin{macrocode}
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \@tempa\@nil}%
- \let\@@protect\protect
- \let\protect\noexpand
- \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
- \let\protect\@@protect
- \ref#1{#2}%
- \endgroup
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refClauseN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@ClauseN}
-% 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{}}
-}
-\newcommand*{\ref@ClauseN}[2]{%
- \begingroup
- \let\Clauseformat\relax
- \ref@Clause{#1}{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refPar}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@Par}
-% 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{}}
-}
-\newcommand*{\ref@Par}[2]{%
- \expandafter\ifx\csname r@#2\endcsname\relax
- \ref#1{#2}%
- \else
- \begingroup
-% \end{macrocode}
-% Copy all parts of the reference but the first one to \cs{@tempb}.
-% \begin{macrocode}
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\@tempb
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter{%
- \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
-% \end{macrocode}
-% 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}
-% 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
- \@tempa{%
- \protect\G@refundefinedtrue
- \nfss@text{\reset@font\bfseries ??}%
- \@latex@warning{Reference `#2' on page \thepage \space
- with undefined par number}%
- }\noexpand\@nil}%
- \let\@@protect\protect
- \let\protect\noexpand
- \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
- \let\protect\@@protect
- \ref#1{#2}%
- \endgroup
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \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}
-\newcommand*{\refParL}{%
- \kernel@ifstar {\ref@ParX0*}{\ref@ParX0{}}
-}
-\newcommand*{\ref@ParX}[3]{%
- \begingroup
- \def\parcite@format{#1}%
- \let\sentencecite@format\parcite@format
- \ref@Par{#2}{#3}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \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{command}
-%
-% \begin{command}{\refParN}
-% \begin{macro}{\ref@ParN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@@ParN}
-% The same but numerical.
-% \begin{macrocode}
-\newcommand*{\refParN}{%
- \kernel@ifstar {\ref@ParN2*}{\ref@ParN2{}}
-}
-\newcommand*{\ref@ParN}[2]{%
- \kernel@ifnextchar [%]
- {\ref@@ParN{#1}{#2}}%
- {\ref@ParX{#1}{#2}}%
-}
-\newcommand*{\ref@@ParN}{}
-\def\ref@@ParN#1#2[#3]#4{%
- \begingroup
- \renewcommand*{\parnumericformat}[1]{%
- \csname @#3\endcsname{\number ##1\relax}%
- }%
- \ref@ParX{#1}{#2}{#4}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refSentence}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@Sentence}
-% 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{}}
-}
-\newcommand*{\ref@Sentence}[2]{%
- \expandafter\ifx\csname r@#2\endcsname\relax
- \ref#1{#2}%
- \else
- \begingroup
-% \end{macrocode}
-% Copy all parts of the reference to \cs{@tempb}.
-% \begin{macrocode}
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\@tempb
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter{%
- \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
-% \end{macrocode}
-% 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}
-% 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
- \@tempa{}{%
- \protect\G@refundefinedtrue
- \nfss@text{\reset@font\bfseries ??}%
- \@latex@warning{Reference `#2' on page \thepage \space
- with undefined sentence number}%
- }\noexpand\@nil}%
- \let\@@protect\protect
- \let\protect\noexpand
- \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
- \let\protect\@@protect
- \ref#1{#2}%
- \endgroup
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \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}
-\newcommand*{\refSentenceL}{%
- \kernel@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}}
-}
-\newcommand*{\ref@SentenceX}[3]{%
- \begingroup
- \def\parcite@format{#1}%
- \let\sentencecite@format\parcite@format
- \ref@Sentence{#2}{#3}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \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{command}
-%
-% \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{command}
-%
-% \begin{macro}{\contract@sentence}
-% \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}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{macro}{\p@sentence}
-% \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]
-\renewcommand*{\thesentence}{\arabic{sentence}}
-\def\theHsentence{\theHpar-\arabic{sentence}}
-\scr@ifundefinedorrelax{labelformat}{%
- \renewcommand*{\p@sentence}{\expandafter\p@@sentence}
- \newcommand*{\p@@sentence}[1]{\p@par{{\par@cite{\thepar}}%
- \scrjura@separator{\nobreakspace}}{\sentence@cite{#1}}}%
-}{%
- \labelformat{sentence}{\p@par{{\par@cite{\thepar}}%
- \scrjura@separator{\nobreakspace}}{\sentence@cite{#1}}}%
-}
-\newcommand*{\contract@sentence}{%
-% \end{macrocode}
-% \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
- \refstepcounter{sentence}%
- \else
- \leavevmode
- \fi
- \else
- \refstepcounter{sentence}%
- \fi
- {\usekomafont{sentencenumber}{\sentencenumberformat}}%
- \nobreak\hskip\z@
-}
-% \end{macrocode}
-% \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{command}
-% \end{counter}
-% \end{macro}
-%
-% \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}}
-\newcommand*{\parciteformat}[1]{%
- \ifcase \parcite@format
- \expandafter\parlongformat
- \or
- \expandafter\parshortformat
- \or
- \expandafter\parnumericformat
- \else
- \unskip\expandafter\@gobble
- \fi
- {#1}%
-}
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-%
-% \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]{%
- \ifcase \sentencecite@format
- \expandafter\sentencelongformat
- \or
- \expandafter\sentenceshortformat
- \or
- \expandafter\sentencenumericformat
- \else
- \unskip\expandafter\@gobble
- \fi
- {#1}%
-}
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-%
-% \begin{command}{\parlongformat,\parshortformat,\parnumericformat,
-% \sentencelongformat,\sentenceshortformat,
-% \sentencenumericformat}
-% The six formattings.
-% \begin{macrocode}
-\newcommand*{\parlongformat}[1]{\parname~#1}
-\newcommand*{\parshortformat}[1]{\parshortname~#1}
-\newcommand*{\parnumericformat}[1]{\@Roman{\number #1\relax}}
-\newcommand*{\sentencelongformat}[1]{\sentencename~#1}
-\newcommand*{\sentenceshortformat}[1]{\sentenceshortname~#1}
-\newcommand*{\sentencenumericformat}[1]{\@arabic{\number #1\relax}.}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-% \subsection{Language dependent names}
-%
-% \begin{command}{\parname,\parshortname,\sentencename,\sentenceshortname}
-% \begin{macro}{\scrjura@lang@error}
-% \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}
-\AtBeginDocument{%
- \providecaptionname{german,ngerman,austrian,naustrian}\parname{Absatz}%
- \providecaptionname{german,ngerman,austrian,naustrian}\parshortname{Abs.}%
- \providecaptionname{german,ngerman,austrian,naustrian}\sentencename{Satz}%
- \providecaptionname{german,ngerman,austrian,naustrian}\sentenceshortname{S.}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\parname{paragraph}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\parshortname{par.}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\sentencename{sentence}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\sentenceshortname{sent.}%
-}
-\providecommand*{\parname}{\scrjura@lang@error{\parname}}
-\providecommand*{\parshortname}{\scrjura@lang@error{\parshortname}}
-\providecommand*{\sentencename}{\scrjura@lang@error{\sentencename}}
-\providecommand*{\sentenceshortname}{\scrjura@lang@error{\sentenceshortname}}
-\newcommand*{\scrjura@lang@error}[1]{%
- \PackageError{scrjura}{%
- current language not supported%
- }{%
- Currently scrjura only supports languages `german', `ngerman',
- `austrian',\MessageBreak
- `naustrian', `english', `american', `british', `canadian',
- `USenglish',\MessageBreak
- `UKenglish', `usenglish`, and `ukenglish'.\MessageBreak
- It seems, that you are using another language (maybe `\languagename') or
- that\MessageBreak
- your language selection isn't compatible to package `babel'.\MessageBreak
- Because of this you have to define `\string#1' by yourself!\MessageBreak
- It would be nice if you'll send your definitions to the author.%
- }%
- \textbf{??}%
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \subsection{Using values from last \LaTeX{} run}
-%
-% \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]{%
- \begingroup
- \expandafter\let\csname #1@Clauseformat\endcsname\@firstofone
- \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa
- \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}%
- \endgroup
-}
-\newcommand*{\getmaxpar}[3]{%
- \begingroup
- \expandafter\let\csname #2@Clauseformat\endcsname\@firstofone
- \protected@edef\@tempa{#3}%
- \@onelevel@sanitize\@tempa
- \expandafter\ifx \csname max@#2@\@tempa\endcsname\relax
- \edef\@tempa{\endgroup\edef\noexpand#1{\expandafter\the\value{par}}}%
- \else
- \edef\@tempa{\endgroup
- \edef\noexpand#1{\csname max@#2@\@tempa\endcsname}}%
- \fi
- \@tempa
-}
-% \end{macrocode}
-% \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
- \immediate\write\@auxout{%
- \string\providecommand*\string\newmaxpar[3]{}
- }%
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-% \end{command}
-%
% \iffalse
-%</package>
+%</package&body>
% \fi
%
% \Finale
diff --git a/macros/latex/contrib/koma-script/scrkernel-basics.dtx b/macros/latex/contrib/koma-script/scrkernel-basics.dtx
index 63264a8d3f..3c1075688e 100644
--- a/macros/latex/contrib/koma-script/scrkernel-basics.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-basics.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-basics.dtx 4051 2023-04-26 16:01:28Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 4074 2023-07-14 15:56:59Z kohm $
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<body>%%% (run: body)
@@ -28,9 +28,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-26 18:01:28 +0200 (Mi, 26. Apr 2023) $
+ \filedate$Date: 2023-07-14 17:56:59 +0200 (Fr, 14 Jul 2023) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 4051 $
+ \filerevision$Revision: 4074 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-basics.dtx}%
@@ -1105,9 +1105,10 @@
\fi
% \end{macrocode}
% Continue the adaption of code from \cs{ProcessOptions}.
+% \changes{v3.42}{2023/07/14}{\cs{edef} replaced by \cs{protected@edef}}
% \begin{macrocode}
\let\ds@\@empty
- \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
+ \protected@edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
\ifx\@currext\@clsextension\else
% \end{macrocode}
% Within classes the current option list is same like the global option
diff --git a/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx b/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
index ab2fed77c5..3e94b3d299 100644
--- a/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-compatibility.dtx 4054 2023-05-10 14:35:36Z kohm $
+%%% From File: $Id: scrkernel-compatibility.dtx 4073 2023-07-13 08:37:54Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<option>%%% (run: option)
@@ -27,9 +27,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2023-05-10 16:35:36 +0200 (Mi, 10. Mai 2023) $
+ \filedate$Date: 2023-07-13 10:37:54 +0200 (Do, 13. Jul 2023) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 4054 $
+ \filerevision$Revision: 4073 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-compatibility.dtx}%
@@ -460,6 +460,8 @@
% \changes{v3.40}{2023/04/17}{added}
% \begin{macro}{\scr@v@3.41}
% \changes{v3.41}{2023/04/24}{added}
+% \begin{macro}{\scr@v@3.42}
+% \changes{v3.42}{2023/07/13}{added}
% \begin{macro}{\scr@v@last}
% \changes{v2.9u}{2005/03/05}{added}
% Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die
@@ -550,6 +552,7 @@
\@namedef{scr@v@3.39}{20}
\@namedef{scr@v@3.40}{20}
\@namedef{scr@v@3.41}{21}
+\@namedef{scr@v@3.42}{21}
\@namedef{scr@v@last}{21}
% \end{macrocode}
% \end{macro}
@@ -639,6 +642,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
% \end{option}
% \begin{macrocode}
%</init>
diff --git a/macros/latex/contrib/koma-script/scrkernel-language.dtx b/macros/latex/contrib/koma-script/scrkernel-language.dtx
index 75060afa91..d34c70c0f5 100644
--- a/macros/latex/contrib/koma-script/scrkernel-language.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-language.dtx
@@ -18,16 +18,16 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-language.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-language.dtx 4107 2024-04-10 17:24:53Z 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: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-04-10 19:24:53 +0200 (Mi, 10 Apr 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4107 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-language.dtx}
@@ -169,7 +169,6 @@
\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{%
\@onelevel@sanitize\languagename
\@tempswafalse
-%<trace> \typeout{comparing `\languagename' and `\scr@reserved@a'}%
\ifx\languagename\scr@reserved@a
\@tempswatrue
\else
@@ -194,7 +193,6 @@
\expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
\csname iftrue\endcsname swiss\else german\fi\fi
}%
-%<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
@@ -1032,8 +1030,12 @@
%
%
% \begin{macro}{\g@addnumerical@date}
+% \changes{v3.42}{2024/04/10}{recognize and use \pkg{datetime2}}
% We need to redefine the already existing textual date of a language package
-% by a numerical one.
+% by a numerical one. The code also supports \pkg{datetime2} and should even
+% work with obsolete package \pkg{datetime}. However, usage of \pkg{datetime}
+% is not recommended. And it even works, if someone defines \cs{DTMtoday}
+% using \cs{today}, which should not be done!
% \begin{macrocode}
%<*letter&body>
\newcommand*{\g@addnumerical@date}[2]{%
@@ -1046,15 +1048,42 @@
}%
}{%
\expandafter\g@addto@macro\csname date#1\endcsname{%
- \let\sym@date=\today%
\def\num@date{#2}%
- \def\today{\if@orgdate\sym@date\else\num@date\fi}%
+ \ifx\today\sym@num@date
+ \@ifundefined{DTMtoday}{%
+%<class> \ClassWarning{scrlttr2}
+%<package> \PackageWarning{scrletter}
+ {%
+ no original date found for language `#1'\MessageBreak
+ --> using numerical date%
+ }%
+ \let\sym@date\num@date
+ }{%
+ \begingroup
+ \gdef\scr@global@tempa{\let\sym@date\DTMtoday}%
+ \def\today{\gdef\scr@global@tempa{\let\sym@date\num@date}}%
+ \sbox\@tempboxa{\sym@date}%
+ \endgroup
+ \scr@global@tempa
+ }%
+ \else
+ \DeclareCommandCopy{\sym@date}{\today}%
+ \let\today=\sym@num@date
+ \fi
}%
}%
}
+% \end{macrocode}
+% \begin{macro}{\sym@num@date}
+% \changes{v3.42}{2024/04/10}{added}
+% Used inside \cs{date\meta{language name}} to define \cs{today} respecting
+% option \opt{numericaldate}.
+% \begin{macrocode}
+\newcommand*{\sym@num@date}{\if@orgdate\sym@date\else\num@date\fi}
%</letter&body>
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
% \subsection{Language dependent terms and dates in letters}
diff --git a/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx b/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
index aa68d0175f..6893689cbc 100644
--- a/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-miscellaneous.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-miscellaneous.dtx 4094 2023-12-05 16:17:40Z kohm $
%<init>%%% (run: init)
%<option>%%% (run: option)
%<execoption>%%% (run: execoption)
@@ -27,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: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2023-12-05 17:17:40 +0100 (Di, 05 Dez 2023) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4094 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-miscellaneous.dtx}%
@@ -522,6 +522,8 @@
% \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}
+% \changes{v3.42}{2023/12/05}{using \cs{number} instead of \cs{arabic} to fix
+% \href{https://sourceforge.net/p/koma-script/tickets/58/}{issue 58}}
% The main workers of \cs{Ifthispageodd}. It is used to set
% \cs{ifthispagewasodd} depending on the information it adds to the \file{aux}
% file.
@@ -529,6 +531,8 @@
% \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}?
+% \item[ToDo:] From \LaTeX~2023-11-01 use the page property instead of
+% \cs{new@tpo@label}.
% \end{description}
% \begin{macrocode}
\newcommand*{\is@thispageodd}[1][\is@thispageodd@setlabel]{%
@@ -554,9 +558,9 @@
\endgroup
\edef\is@thispageodd@setlabel{%
\if@filesw
- \unexpanded{\protected@write\@auxout{\let\arabic\relax}}{%
+ \unexpanded{\protected@write\@auxout{\let\number\relax}}{%
\noexpand\string
- \noexpand\new@tpo@label{\scr@tpo}{\noexpand\arabic{page}}}%
+ \noexpand\new@tpo@label{\scr@tpo}{\noexpand\number\c@page}}%
\fi
\noexpand\def\noexpand\is@thispageodd@setlabel
{\unexpanded\expandafter{\is@thispageodd@setlabel}}%
@@ -714,6 +718,8 @@
% \changes{v3.12}{2013/07/08}{added}
% \begin{macro}{\class@shoulddisablepackagewarning@list}
% \changes{v3.24}{2017/06/25}{added}
+% \changes{v3.42}{2023/07/26}{indirect warnings can be redefined after loading
+% the class}
% Loading of several incompatible packages should result in warnings using:
% \begin{quote}
% \cs{scr@package@not@recommended}\marg{package}\marg{alternatives}
@@ -721,9 +727,11 @@
% 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
+% \cs{class@shoulddisablepackagewarning@list}. 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.
+% class author is responsible for the drawbacks. Similar the indirect warning
+% messages \cs{scr@class@\meta{package}@warning} could be redefined after
+% loading the class, but this is also not recommended.
% \begin{macrocode}
%<*class&body>
\newcommand*{\scr@package@not@recommended}[2]{%
@@ -735,7 +743,7 @@
\reserved@a
\ifin@\expandafter\@gobble\else\expandafter\@firstofone\fi
}{%
- \BeforePackage{#1}{%
+ \expandafter\providecommand\csname scr@class@#1@warning\endcsname{%
\ClassWarning{\KOMAClassName}{%
Usage of package `#1' together\MessageBreak
with a KOMA-Script class is not recommended.\MessageBreak
@@ -746,6 +754,9 @@
package `#1'%
}%
}%
+ \BeforePackage{#1}{%
+ \csname scr@class@#1@warning\endcsname
+ }%
}%
}%
% \end{macrocode}
diff --git a/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx b/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
index bb47ebe2a6..fe44c3092c 100644
--- a/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
@@ -18,16 +18,16 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-notepaper.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-notepaper.dtx 4113 2024-06-07 08:20:20Z 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: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-06-07 10:20:20 +0200 (Fr, 07 Jun 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4113 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-notepaper.dtx}
@@ -452,6 +452,8 @@
% \changes{v3.17}{2015/03/16}{using internal value storage}
% \changes{v3.39}{2022/11/11}{initial dot removed from member argument of
% option storage commands}
+% \changes{v3.42}{2024/06/07}{missing \cs{FamilyKeyStateProcessed} after end
+% of group added}
% \begin{macro}{\@biglocfalse,\@bigloctrue,\if@bigloc}
% We allow two different automatic settings for the location field right
% beside the addressee's address field:
@@ -471,6 +473,7 @@
\begingroup
\KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \aftergroup\FamilyKeyStateProcessed
\ifcase\@tempa
\endgroup
\@bigloctrue
@@ -2961,7 +2964,7 @@
%<*class|!willbe>
\newcommand*{\@foldmarks}{%
\if@fold%
- \typeout{Foldmarks: yes}%
+%<trace> \typeout{Foldmarks: yes}%
\move@topt
\ifdim \useplength{pfoldmarklength}=\z@
\setplength{pfoldmarklength}{4mm}%
@@ -2989,8 +2992,7 @@
\@hfoldmark{B}%
\@vfoldmark{L}%
\move@frompt
- \else
- \typeout{Foldmarks: no}%
+%<trace> \else \typeout{Foldmarks: no}%
\fi%
}
%</class|!willbe>
@@ -3066,7 +3068,7 @@
\newcommand*{\@firstheadfootfield}{%
%<*class|!willbe>
\if@firsthead
- \typeout{Head of first page}%
+%<trace> \typeout{Head of first page}%
\move@topt\vskip\useplength{firstheadvpos}%
\vb@t@z{%
\rlap{\move@topl
@@ -3121,11 +3123,11 @@
}%
\vskip-\useplength{firstheadvpos}\move@frompt
\else
- \typeout{No head at first page}%
+%<trace> \typeout{No head at first page}%
\fi
\move@topt
\if@firstfoot
- \typeout{Foot of first page}%
+%<trace> \typeout{Foot of first page}%
\vb@t@z{%
\rlap{\move@topl
% \end{macrocode}
@@ -3170,8 +3172,7 @@
}%
}%
}%
- \else
- \typeout{No foot at first page}%
+%<trace> \else \typeout{No foot at first page}%
\fi
\move@frompt%
%</class|!willbe>
@@ -3222,7 +3223,7 @@
%<*class|!willbe>
\newcommand*{\@addrfield}{%
\ifcase \ifnum\@afieldmode=5 \@ne\else\@afieldmode\fi\relax
- \typeout{Address: No}%
+%<trace> \typeout{Address: No}%
\or
\begingroup%
\if@baddr
@@ -3243,7 +3244,7 @@
\or
\edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
\fi
- \typeout{Address (\@tempa\@tempb addressee)}%
+%<trace> \typeout{Address (\@tempa\@tempb addressee)}%
\endgroup%
\move@topt\vskip\useplength{toaddrvpos}%
\vb@t@z{{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
@@ -3335,7 +3336,7 @@
\or
\edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
\fi
- \typeout{Address (\@tempa\@tempb addressee)}%
+%<trace> \typeout{Address (\@tempa\@tempb addressee)}%
\endgroup%
\move@topt\vskip\useplength{toaddrvpos}%
\vb@t@z{{%
@@ -3537,9 +3538,9 @@
% Report if the location is empty or calculate the position and width.
% \begin{macrocode}
\Ifkomavarempty{location}{%
- \typeout{Location field: empty}%
+%<trace> \typeout{Location field: empty}%
}{%
- \typeout{Location field: yes}%
+%<trace> \typeout{Location field: yes}%
\ifdim \useplength{lochpos}=\z@%
\setplength{lochpos}{\useplength{toaddrhpos}}%
\fi
@@ -3917,9 +3918,9 @@
% \begin{macrocode}
\newcommand*{\@makelettertitle}{%
\Ifkomavarempty{title}{%
- \typeout{Title: no}%
+%<trace> \typeout{Title: no}%
}{%
- \typeout{Title: yes}%
+%<trace> \typeout{Title: yes}%
{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\centering\LARGE\usekomafont{lettertitle}\usekomavar{title}\par}%
\vskip\baselineskip%
@@ -3942,19 +3943,19 @@
\newcommand*{\@subjfield}{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\Ifkomavarempty{subject}{%
- \typeout{Subject: no}%
+%<trace> \typeout{Subject: no}%
}{%
\ifx\raggedsubject\@empty
\ifdim\useplength{subjectvpos}=\z@
\if@subjafter%
- \typeout{Subject: after opening}%
+%<trace> \typeout{Subject: after opening}%
\let\raggedsubject\centering%
\else
- \typeout{Subject: before opening}%
+%<trace> \typeout{Subject: before opening}%
\def\raggedsubject{\noindent\@hangfrom}%
\fi
\else
- \typeout{Subject: at absolute vertical position}%
+%<trace> \typeout{Subject: at absolute vertical position}%
\def\raggedsubject{\noindent\@hangfrom}%
\fi
\fi
@@ -4792,7 +4793,7 @@
\def\scr@symbol@fax{\FAX}%
\def\scr@symbol@email{\Email}%
\def\scr@symbol@mobilephone{\Mobilefone}%
- \def\scr@symbol@www{\@empty}%
+ \let\scr@symbol@www\@empty
}{%
\def\scr@symbol@phone{\faPhone}%
\def\scr@symbol@fax{\faFax}%
@@ -4894,14 +4895,16 @@
% \end{macro}^^A \if@scrsymbols
% \end{option}^^A symbolicnames
%
-% \begin{variable}{placeseparator,subjectseparator,ccseparator,enclseparator,
-% backaddressseparator}
+% \begin{variable}{backaddressseparator,ccseparator,enclseparator,
+% placeseparator,subjectseparator}
% \changes{v2.8q}{2002/01/22}{added}
-% \begin{variable}{phoneseparator,faxseparator,emailseparator,urlseparator,
-% mobilephoneseparator}
+% \begin{variable}{emailseparator,faxseparator,mobilephoneseparator,
+% phoneseparator,urlseparator}
% \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}
+% \changes{v3.42}{2023/08/25}{defaults changed to fix
+% \href{https://sourceforge.net/p/koma-script/tickets/56/}{issue \#56}}
% \begin{variable}{zipcodeseparator}
% \changes{v3.03}{2009/03/04}{added}
% We also have variables with (predefined) output names and predefined
@@ -4919,23 +4922,31 @@
\newkomavar{backaddressseparator}
\setkomavar{backaddressseparator}{,\nobreakspace}
\newkomavar[\if@scrsymbols\scr@symbol@phone\else\phonename\fi]{phoneseparator}
-\setkomavar{phoneseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\setkomavar{phoneseparator}{%
+ \Ifkomavarxempty*{phoneseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar[%
\if@scrsymbols\scr@symbol@mobilephone\else\mobilephonename\fi
]{mobilephoneseparator}
\setkomavar{mobilephoneseparator}{\usekomavar{phoneseparator}}
\newkomavar[\if@scrsymbols\scr@symbol@fax\else\faxname\fi]{faxseparator}
-\setkomavar{faxseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\setkomavar{faxseparator}{%
+ \Ifkomavarxempty*{faxseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar[\if@scrsymbols\scr@symbol@email\else\emailname\fi]{emailseparator}
-\setkomavar{emailseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\setkomavar{emailseparator}{%
+ \Ifkomavarxempty*{emailseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar[\if@scrsymbols\scr@symbol@www\else\wwwname\fi]{urlseparator}
-\setkomavar{urlseparator}{\if@scrsymbols\else:\nobreakspace\fi}
+\setkomavar{urlseparator}{%
+ \Ifkomavarxempty*{urlseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar{zipcodeseparator}
\setkomavar{zipcodeseparator}{\,--\,}
% \end{macrocode}
% \end{variable}^^A zipcodeseparator
-% \end{variable}^^A phoneseparator … mobilephoneseparator
-% \end{variable}^^A placeseparator … backaddressseparator
+% \end{variable}^^A emailseparator … urlseparator
+% \end{variable}^^A backaddressseparator .. subjectseparator
%
% \begin{variable}{addressee}
% \changes{v3.27}{2019/03/24}{new variable}
diff --git a/macros/latex/contrib/koma-script/scrkernel-sections.dtx b/macros/latex/contrib/koma-script/scrkernel-sections.dtx
index edfbd4d459..7bffdfa272 100644
--- a/macros/latex/contrib/koma-script/scrkernel-sections.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-sections.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-sections.dtx 4069 2023-06-29 08:55:54Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 4112 2024-06-04 08:46:46Z kohm $
% The runs of run-time file generation:
%<preidentify>%%% (run: preidentify)
% - everything that is needed before selfidentification of resulting files
@@ -40,9 +40,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-29 10:55:54 +0200 (Do, 29. Jun 2023) $
+ \filedate$Date: 2024-06-04 10:46:46 +0200 (Di, 04 Jun 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4069 $
+ \filerevision$Revision: 4112 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-sections.dtx}%
@@ -2427,13 +2427,9 @@
\relax
\FamilyKeyStateProcessed
}{%
-%<trace> \typeout{TRACE: option tocstyle=##1}%
-%<trace> \typeout{TRACE: command=\scr@dsc@current}%
\scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
-%<trace> \typeout{TRACE: style not defined}%
\FamilyKeyStateUnknownValue
}{%
-%<trace> \typeout{TRACE: style defined}%
\@namedef{scr@dte@\scr@dsc@current @style}{##1}%
\@namedef{scr@tso@\scr@dsc@current @style}{##1}%
\FamilyKeyStateProcessed
@@ -2480,13 +2476,10 @@
% \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}
% And initialize the ToC style.
% \begin{macrocode}
-%<trace> \typeout{TRACE: tocstyle=%
-%<trace> \@nameuse{scr@tso@\scr@dsc@current @style}}%
\scr@ifundefinedorrelax{scr@tso@\scr@dsc@current @style}{%
\scr@ifundefinedorrelax{l@\scr@dsc@current}{%
\@namedef{scr@tso@\scr@dsc@current @style}{default}%
@@ -3304,6 +3297,31 @@
\@ifpackageloaded{bookmark}{}{%
\if@scr@autoloadbookmarkpackage
% \end{macrocode}
+% \changes{v3.42}{2024/06/04}{load \pkg{bookmark} only if available}
+% Now we test for existing package file \file{bookmark.sty}. If it does not
+% exist, we show a warning an deactivate option \opt{bookmarkpackage}.
+% \begin{macrocode}
+ \IfFileExists{bookmark.sty}{}{%
+ \ClassWarningNoLine{\KOMAClassName}{%
+ Using `bookmark' together with `hyperref' is
+ recommended,\MessageBreak
+ because of handling of possible bookmark level gaps.\MessageBreak
+ However, the package seems not to be installed and\MessageBreak
+ therefore cannot be loaded automatically.\MessageBreak
+ It is recommended to install package `bookmark'!\MessageBreak
+ However, you can avoid this warning without\MessageBreak
+ installation of package `bookmark', if you'd
+ deactivate\MessageBreak
+ automatically loading of `bookmark' using KOMA-Script\MessageBreak
+ option `bookmarkpackage=false' before
+ \string\begin{document}%
+ }%
+ \@scr@autoloadbookmarkpackagefalse
+ \KOMA@kav@replacevalue{\KOMAClassFileName}{bookmarkpackage}{false}%
+ }%
+ \fi
+ \if@scr@autoloadbookmarkpackage
+% \end{macrocode}
% \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
@@ -3385,18 +3403,22 @@
}%
% \end{macrocode}
% \changes{v3.26b}{2019/01/17}{workaround for \cs{@beginmainauxhook} added}
-% \changes{v3.38}{2022/10/04}{\pkg{auxhook} not needed with newer \pkg{hyperref}}
+% \changes{v3.38}{2022/10/04}{\pkg{auxhook} not needed with newer
+% \pkg{hyperref}}
+% \changes{v3.99}{2024/02/10}{no workaround for old \pkg{hyperref}}
% 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}
+%<*!v4>
\@ifpackagelater{hyperref}{2022/09/22}{}{%
\ifx\@beginmainauxhook\relax
\else
\if@filesw
\ClassWarning{\KOMAClassName}{%
seems someone has broken package `auxhook'.\MessageBreak
- Usually this happens, if `auxhook' is loaded or used\MessageBreak
+ Usually this happens, if `auxhook' is loaded or
+ used\MessageBreak
implicitly or explicitly by patching
\string\document%
\scr@ifundefinedorrelax{AtEndPreamble}{}{%
@@ -3412,6 +3434,7 @@
\fi
\fi
}%
+%</!v4>
\fi
}%
}%
diff --git a/macros/latex/contrib/koma-script/scrkernel-typearea.dtx b/macros/latex/contrib/koma-script/scrkernel-typearea.dtx
index 42a1934b49..ae07e952df 100644
--- a/macros/latex/contrib/koma-script/scrkernel-typearea.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-typearea.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-typearea.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-typearea.dtx 4100 2024-02-01 09:40:30Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -29,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: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-02-01 10:40:30 +0100 (Do, 01 Feb 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4100 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-typearea.dtx}[%
@@ -2281,9 +2281,12 @@
% 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
% paper. For classic paper size this should be a harmonious result.
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
\ifnum\ta@div=3
- \typeout{DIV calculation for classic typearea.}%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {typearea}{DIV calculation for classic typearea.}%
\setlength{\ta@temp}{\paperwidth}%
\addtolength{\ta@temp}{-\ta@bcor}%
% \end{macrocode}
@@ -2336,7 +2339,8 @@
% \changes{v2.4n}{1997/05/28}{improved optimal divisor calculation}
% \begin{macrocode}
\ifnum\ta@div <4
- \typeout{DIV calculation for typearea with good linewidth.}%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {typearea}{DIV calculation for classic typearea.}%
% \end{macrocode}
% The width of the typing area could at most be the width of the paper without
% the binding correction.
@@ -3300,14 +3304,13 @@
% |\BeforeFamilyProcessOptions[.typearea.sty]{KOMA}{...}|.
%
% \changes{v2.0e}{1994/10/28}{configuration file \file{typearea.cfg}}
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
%<*package&typearea&options>
\InputIfFileExists{typearea.cfg}{%
- \typeout{%
- ***************************************^^J%
- * Local config file typearea.cfg used^^J%
- ***************************************%
- }
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {typearea}{Local configuration file typearea.cfg loaded}%
}{}
%</package&typearea&options>
% \end{macrocode}
diff --git a/macros/latex/contrib/koma-script/scrkernel-variables.dtx b/macros/latex/contrib/koma-script/scrkernel-variables.dtx
index 8896055ebc..e09c49057e 100644
--- a/macros/latex/contrib/koma-script/scrkernel-variables.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-variables.dtx
@@ -18,16 +18,16 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-variables.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-variables.dtx 4109 2024-04-24 12:06:57Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-04-24 14:06:57 +0200 (Mi, 24 Apr 2024) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4109 $
\xdef\fileinfo{\filedate\space\filerevision\space}
\edef\reserved@a{%
\noexpand\endgroup
@@ -72,6 +72,10 @@
% You can find the user documentation the commands implemented here in the
% \KOMAScript{} manual, either the German \file{scrguide-de.pdf} or the
% English \file{scrguide-en.pdf}.
+%
+% \DescribeCommand{\Ifkomavarxempty}
+% Similar to \cs{Ifkomavarempty} but the variable or description will be
+% expanded before testing.
%
% \MaybeStop{\PrintIndex}
%
@@ -87,50 +91,40 @@
%
% \subsection{Commands and macros for variables}
%
-% \begin{command}{\newkomavar*,\newkomavar}
+% \begin{command}{newkomavar}
% \changes{v2.8q}{2002/01/14}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced \cs{kernel@ifstar} by}
+% \changes{v3.42}{2023/08/25}{new implementation using \cs{NewDocumentCommand}}
% We have two kinds of fields and so variables:
% \begin{itemize}
% \item to be printed in the reference line,
% \item for other purpose, but not printed in the reference line.
% \end{itemize}
-% 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}
-% 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
+% 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. Both \cs{newkomavar} and
+% \cs{newkomavar*} have one optional argument, the \meta{description}. It is
+% intended to be printed. In opposite to this the first mandatory argument 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]{%
- \@ifundefined{scr@#2@name}{%
- \@ifundefined{scr@#2@var}{%
- \begingroup
- \def\@tempa{#1}\def\@tempb{\relax}%
- \ifx\@tempa\@tempb\endgroup\else
- \endgroup\@namedef{scr@#2@name}{#1}%
- \fi%
- \expandafter\let\csname scr@#2@var\endcsname=\@empty
- \if@tempswa\addtoreffields{#2}\fi
+\NewDocumentCommand{\newkomavar}{som}{%
+ \@ifundefined{scr@#3@name}{%
+ \@ifundefined{scr@#3@var}{%
+ \IfValueT{#2}{\@namedef{scr@#3@name}{#2}}%
+ \@namedef{scr@#3@var}{}%
+ \IfBooleanT{#1}{\addtoreffields{#3}}%
}{%
%<class> \ClassError{scrlttr2}
%<package> \PackageError{scrletter}
{%
This should never happen%
}{%
- The contents of the KOMA-Script variable `#2'\MessageBreak
+ The description of the KOMA-Script variable `#3'\MessageBreak
is undefined, but the name of the variable is
defined.\MessageBreak
This should never happen. So someone crashs me!%
@@ -140,75 +134,52 @@
%<class> \ClassError{scrlttr2}
%<package> \PackageError{scrletter}
{%
- Variable `#2' already defined%
+ Variable `#3' already defined%
}{%
I'll ignore this command, if you'll continue.%
}%
}%
}
% \end{macrocode}
+% \begin{macro}{\@newkomavar}
+% \changes{v3.42}{2023/08/25}{removed}
% \end{macro}
% \end{command}
%
-% \begin{command}{\setkomavar*,\setkomavar}
+% \begin{command}{\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}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}
+% \changes{v3.42}{2024/04/24}{new implementation using
+% \cs{NewDocumentCommand}}
% 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}{added}
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
-% \begin{macro}{\@@setkomavar}
-% \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.
+% the \meta{name}. The \meta{description} can be set with the optional first
+% argument (\texttt{\#1}). But for the case only the \meta{description}
+% 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{description} (\texttt{\#2}). Both also executes two
+% hooks \cs{scr@\meta{name}@postsetname} and \cs{scr@\meta{name}@postsetvar}
+% after setting the \meta{description} resp. the \meta{value}. So package
+% authors can define additional actions for the case a variable changes.
% \begin{macrocode}
-\newcommand*{\setkomavar}{%
- \kernel@ifstar {\@setkomaname}{\@setkomavar}}
-\newcommand*{\@setkomavar}[1]{%
- \kernel@ifnextchar [%]
- {\@@setkomavar{#1}}{\@@setkomavar{#1}[\relax]}}
-\newcommand*{\@setkomaname}[2]{%
- \@ifundefined{scr@#1@var}{%
- \@komavar@err{set}{#1}%
- }{%
- \@namedef{scr@#1@name}{#2}%
- \csname scr@#1@postsetname\endcsname
- }%
-}
-\newcommand*{\@@setkomavar}{}
-\long\def\@@setkomavar#1[#2]#3{%
- \@ifundefined{scr@#1@var}{%
- \@komavar@err{set}{#1}%
+\NewDocumentCommand{\setkomavar}{smo+m}{%
+ \Ifkomavar{#2}{%
+ \IfValueT{#3}{\@namedef{scr@#2@name}{#3}}%
+ \@namedef{scr@#2@\IfBooleanTF{#1}{name}{var}}{#4}%
}{%
- \@namedef{scr@#1@var}{#3}%
- \csname scr@#1@postsetvar\endcsname
- \begingroup
- \def\@tempa{#2}\def\@tempb{\relax}%
- \ifx\@tempa\@tempb\endgroup\else
- \endgroup\@namedef{scr@#1@name}{#2}%
- \csname scr@#1@postsetname\endcsname
- \fi
+ \@koma@var@err{set}{#2}%
}%
}
% \end{macrocode}
-% \end{macro}^^A \@setkomaname
-% \end{macro}^^A \@@setkomavar
-% \end{macro}^^A \@setkomavar
+% \begin{macro}{\@setkomavar,\@@setkomavar,\@setkomaname}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.42}{2023/08/25}{removed}
+% \end{macro}^^A \@setkomavar, \@@setkomavar, \@setkomaname
% \end{command}^^A \setkomavar*,\setkomavar
%
% \begin{macro}{\@komavar@err}
@@ -232,39 +203,37 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{command}{\usekomavar*,\usekomavar}
+% \begin{command}{\usekomavar}
% \changes{v2.8q}{2002/01/14}{added}
% \changes{v2.9i}{2002/09/04}{robust}
+% \changes{v2.9i}{2002/09/04}{optional argument}
+% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} as default for the optional
+% argument}
% \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
+% \changes{v3.42}{2023/08/25}{new implementation using \cs{NewDocumentCommand}}
+% User command to get either the \meta{description} (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}
+% is added before the \meta{description} 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{description} or \meta{value} or change the formatting.
% \begin{macrocode}
-\DeclareRobustCommand*{\usekomavar}{%
- \kernel@ifstar {\@usekomaname}{\@usekomavar}}
-\newcommand*{\@usekomavar}[2][\@firstofone]{%
- \@ifundefined{scr@#2@var}{%
- \@komavar@err{use}{#2}%
- }{%
- #1{\@nameuse{scr@#2@var}}%
- }%
-}
-\newcommand*{\@usekomaname}[2][\@firstofone]{%
- \@ifundefined{scr@#2@var}{%
- \@komavar@err{use}{#2}%
+\NewDocumentCommand{\usekomavar}{sO{\@firstofone}m}{%
+ \Ifkomavar{#3}{%
+ \IfBooleanTF{#1}{%
+ #2{\@nameuse{scr@#3@name}}%
+ }{%
+ #2{\@nameuse{scr@#3@var}}%
+ }%
}{%
- #1{\@nameuse{scr@#2@name}}%
+ \@koma@var@err{use}{#3}%
}%
}
% \end{macrocode}
+% \begin{macro}{\@usekomavar,\@usekomaname}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.42}{2023/08/25}{removed}
% \end{macro}^^A \@usekomavar,\@usekomaname
% \end{command}
%
@@ -299,28 +268,25 @@
% \end{command}
%
%
-% \begin{command}{\ifkomavarempty*,\ifkomavarempty,\Ifkomavarempty*,\Ifkomavarempty}
+% \begin{command}{\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.03}{2009/03/04}{using \cs{ifkomavar}}
+% \changes{v3.03}{2009/03/04}{don't read the arguments but delegate them}
% \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}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavar} replaced by \cs{Ifkomavar}}
+% \changes{v3.42}{2023/08/25}{new implementation using \cs{NewDocumentCommand}}
% \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
+% resp. \meta{description} (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}{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}{%
@@ -332,39 +298,57 @@
}%
\Ifkomavarempty
}
-\DeclareRobustCommand*{\Ifkomavarempty}{%
- \begingroup
- \kernel@ifstar {\@tempswatrue\@ifkomavarempty}%
- {\@tempswafalse\@ifkomavarempty}%
-}
-\newcommand{\@ifkomavarempty}[1]{%
- \Ifkomavar{#1}{%
- \if@tempswa
- \@ifundefined{scr@#1@name}{%
- \aftergroup\@firstoftwo
- }{%
- \expandafter\ifx\csname scr@#1@name\endcsname\@empty
- \aftergroup\@firstoftwo
- \else
- \aftergroup\@secondoftwo
- \fi
- }%
- \else
- \expandafter\ifx\csname scr@#1@var\endcsname\@empty
- \aftergroup\@firstoftwo
+\NewDocumentCommand{\Ifkomavarempty}{sm}{%
+ \Ifkomavar{#2}{%
+ \IfBooleanTF{#1}{%
+ \@ifundefined{scr@#2@name}\@firstoftwo{%
+ \expandafter\ifx\csname scr@#2@name\endcsname\@empty
+ \expandafter\@firstoftwo
\else
- \aftergroup\@secondoftwo
+ \expandafter\@secondoftwo
\fi
- \fi
+ }%
}{%
- \@komavar@err{use}{#1}%
- \aftergroup\@gobbletwo
- }%
- \endgroup
+ \expandafter\ifx\csname scr@#2@var\endcsname\@empty
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }
+ }{%
+ \@komavar@err{use}{#2}%
+ \@gobbletwo
+ }%
}
% \end{macrocode}
+% \begin{macro}{\if@komavarempty}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.42}{2023/08/25}{removed}
% \end{macro}%^^A \@ifkomavarempty
-% \end{command}%^^A \ifkomavarempty* … \Ifkomavarempty
+% \end{command}%^^A \ifkomavarempty, \Ifkomavarempty
+%
+% \begin{command}{\Ifkomavarxempty}
+% \changes{v3.42}{2023/08/25}{added}
+% This command is similar to the \cs{Ifkomavarempty} but uses \cs{Ifstr} for
+% the comparison and therefore does a full expansion of the variable
+% or output name.
+% \begin{macrocode}
+\NewDocumentCommand{\Ifkomavarxempty}{sm}{%
+ \Ifkomavar{#2}{%
+ \IfBooleanTF{#1}{%
+ \@ifundefined{scr@#2@name}\@firstoftwo{%
+ \Ifstr{\@nameuse{scr@#2@name}}{}%
+ }%
+ }{%
+ \Ifstr{\@nameuse{scr@#2@var}}{}%
+ }%
+ }{%
+ \@komavar@err{use}{#2}%
+ \@gobbletwo
+ }%
+}
+% \end{macrocode}
+% \end{command}
%
%
% \begin{command}{\foreachkomavar}
diff --git a/macros/latex/contrib/koma-script/scrkernel-version.dtx b/macros/latex/contrib/koma-script/scrkernel-version.dtx
index 7fc1e7c784..6c456af513 100644
--- a/macros/latex/contrib/koma-script/scrkernel-version.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-version.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-version.dtx
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-version.dtx 4070 2023-07-07 07:08:40Z kohm $
+%%% From File: $Id: scrkernel-version.dtx 4123 2024-10-15 08:36:12Z 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
@@ -63,94 +63,112 @@
%
% \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.
+% The main purpose of this command it to prevent mixture of files of
+% different \KOMAScript{} versions. But users can also use this command to
+% detect \KOMAScript{}. It is 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}{added}
+% \changes{v3.42}{2024/04/17}{command is defined only once but \pkg{expl3}
+% hard}
+% \changes{v3.42}{2024/04/17}{command is no longer defined in \file{clo}
+% or \file{lco} files}
% 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.
+% also to classes or packages. Note, the version check is also done in
+% \file{clo} or \file{lco} files, but the macros \cs{@CheckKOMAScriptVersion}
+% and \cs{@@CheckKOMAScriptVersion} are not defined in those, because those
+% files should not always be loaded by \KOMAScript{} classes or packages,
+% which would already define the command.
% \begin{macrocode}
-\begingroup
- \catcode`\@11\relax
%<*ignorethis>
- \ifx\newcommand\undefined
- \gdef\@CheckKOMAScriptVersion#1{%
- \global\KOMAdefVariable{KOMAScriptVersion}{\space\space#1}%
- \expandafter\ifx\csname ifbeta\endcsname\relax
- \def\@defbeta##1 ##2 ##3KOMA-Script{%
- \def\@cmpstrA{##3}\def\@cmpstrB{BETA }%
- \ifx\@cmpstrA\@cmpstrB
- \expandafter\expandafter\expandafter\global
- \expandafter\expandafter\expandafter\let
- \expandafter\csname ifbeta\expandafter\endcsname
- \csname iftrue\endcsname
- \fi
- }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion
- \fi
- \expandafter\ifx\csname ifbeta\endcsname\relax
- \def\@defbeta##1 ##2.##3.##4 KOMA-Script\@nil{%
- \def\@cmpstrA{##4}\def\@cmpstrB{}%
- \ifx\@cmpstrA\@cmpstrB\else
- \expandafter\expandafter\expandafter\global
- \expandafter\expandafter\expandafter\let
- \expandafter\csname ifbeta\expandafter\endcsname
- \csname iftrue\endcsname
- \fi
- }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion. KOMA-Script\@nil
- \fi
- \expandafter\ifx\csname ifbeta\endcsname\relax
- \expandafter\expandafter\expandafter\global
- \expandafter\expandafter\expandafter\let
- \expandafter\csname ifbeta\expandafter\endcsname
- \csname iffalse\endcsname
- \fi
- \aftergroup\endinput
- }%
- \else
+\ifx\newcommand\undefined
+ \catcode`\@11\relax
+ \def\@CheckKOMAScriptVersion#1{%
+ \global\KOMAdefVariable{KOMAScriptVersion}{\space\space#1}%
+ \expandafter\ifx\csname ifbeta\endcsname\relax
+ \def\@defbeta##1 ##2 ##3KOMA-Script{%
+ \def\@cmpstrA{##3}\def\@cmpstrB{BETA }%
+ \ifx\@cmpstrA\@cmpstrB
+ \expandafter\expandafter\expandafter\global
+ \expandafter\expandafter\expandafter\let
+ \expandafter\csname ifbeta\expandafter\endcsname
+ \csname iftrue\endcsname
+ \fi
+ }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion
+ \fi
+ \expandafter\ifx\csname ifbeta\endcsname\relax
+ \def\@defbeta##1 ##2.##3.##4 KOMA-Script\@nil{%
+ \def\@cmpstrA{##4}\def\@cmpstrB{}%
+ \ifx\@cmpstrA\@cmpstrB\else
+ \expandafter\expandafter\expandafter\global
+ \expandafter\expandafter\expandafter\let
+ \expandafter\csname ifbeta\expandafter\endcsname
+ \csname iftrue\endcsname
+ \fi
+ }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion. KOMA-Script\@nil
+ \fi
+ \expandafter\ifx\csname ifbeta\endcsname\relax
+ \expandafter\expandafter\expandafter\global
+ \expandafter\expandafter\expandafter\let
+ \expandafter\csname ifbeta\expandafter\endcsname
+ \csname iffalse\endcsname
+ \fi
+ \let\@CheckKOMAScriptVersion\undefined
+ \endinput
+ }%
+\else
+ \makeatletter
%</ignorethis>
- \ifx\KOMAScriptVersion\undefined
- \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+%<*class|package>
+\providecommand*{\@CheckKOMAScriptVersion}{%
+ \begingroup
+ \ExplSyntaxOff
+ \@@CheckKOMAScriptVersion
+}
+\providecommand*{\@@CheckKOMAScriptVersion}[1]{%
+ \@ifundefined{KOMAScriptVersion}{%
\gdef\KOMAScriptVersion{#1}%
- }%
- \else
- \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+ }{%
\def\@tempa{#1}%
\ifx\KOMAScriptVersion\@tempa\else
- \@latex@warning@no@line{%
- \noexpand\KOMAScriptVersion\space is
- `\KOMAScriptVersion',\MessageBreak
+ \GenericWarning{\space\@spaces\@spaces\@spaces\@spaces}{%
+ Version warning:
+ \noexpand\KOMAScriptVersion is
+ `\csname KOMAScriptVersion\endcsname',\MessageBreak
but `#1' was expected!\MessageBreak
You should not use classes, packages or files
from\MessageBreak
- different KOMA-Script versions%
+ different KOMA-Script versions\@gobble
}%
\fi
- }
+ }%
+ \endgroup
+}
+%</class|package>
%<*ignorethis>
- \fi
+\fi
%</ignorethis>
- \fi
% \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}
%<*!v4>
- \@CheckKOMAScriptVersion{2023/07/07 v3.41 KOMA-Script}%
+\@CheckKOMAScriptVersion{2024/10/15 v3.42 KOMA-Script}%
%</!v4>
-%<v4> \@nameuse{@CheckKOMAScriptVersion}{2023/07/07 v3.41 KOMA-Script}%
-\endgroup
+%<v4> \@nameuse{@CheckKOMAScriptVersion}{2022/10/25 v3.99 ALPHA KOMA-Script}%
% \end{macrocode}
% \end{macro}
% \end{command}
%
% \iffalse
%<*dtx>
+\makeatother
\ProvidesFile{scrkernel-version.dtx}[\KOMAScriptVersion (versions)]
\documentclass[USenglish]{koma-script-source-doc}
\usepackage{babel}
diff --git a/macros/latex/contrib/koma-script/scrlayer.dtx b/macros/latex/contrib/koma-script/scrlayer.dtx
index 338cdc4403..2abe55bc40 100644
--- a/macros/latex/contrib/koma-script/scrlayer.dtx
+++ b/macros/latex/contrib/koma-script/scrlayer.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlayer.dtx
-% Copyright (c) Markus Kohm, 2012-2023
+% Copyright (c) Markus Kohm, 2012-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrlayer.dtx 4058 2023-06-16 08:32:27Z kohm $
+%%% From File: $Id: scrlayer.dtx 4118 2024-09-02 12:05:30Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -28,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: 2023-06-16 10:32:27 +0200 (Fr, 16. Jun 2023) $
+ \filedate$Date: 2024-09-02 14:05:30 +0200 (Mo, 02 Sep 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4058 $
+ \filerevision$Revision: 4118 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlayer.dtx}%
@@ -169,7 +169,6 @@
}%
}
\newcommand*{\scrlayer@inherit@option}[2]{%
-%<trace> \typeout{TRACE: Define key `#2' of member `#1'}%
\DefineFamilyMember[#1]{KOMA}%
\expandafter\let\csname KV@KOMA#1@#2\expandafter\endcsname
\csname KV@KOMA.scrlayer.sty@#2\endcsname
@@ -900,9 +899,21 @@
\else
% \end{macrocode}
% Level of left mark is less than level of right mark. This is
-% usual.
+% unusual, nevertheless it should work:
+% \changes{v3.42}{2024/09/02}{argument reversal corrected
+% (\href{https://sourceforge.net/p/koma-script/tickets/74/}{issue 74})}
% \begin{macrocode}
\expandafter\def\csname #1mark\endcsname##1{%
+ \@mkboth{}{%
+ \ifnum \c@secnumdepth
+ < \numexpr \csname #1numdepth\endcsname +0\relax
+ \else
+ \if@mainmatter \MakeMarkcase{\csname #1markformat\endcsname}\fi
+ \fi
+ \MakeMarkcase{##1}%
+ }%
+ }%
+ \expandafter\def\csname #2mark\endcsname##1{%
\begingroup
\@tempswafalse
\if@twoside\@tempswatrue
@@ -911,24 +922,14 @@
\if@tempswa
\@mkleft{%
\ifnum \c@secnumdepth
- < \numexpr\csname #1numdepth\endcsname +0\relax
+ < \numexpr\csname #2numdepth\endcsname +0\relax
\else
- \if@mainmatter \MakeMarkcase{\csname #1markformat\endcsname}\fi
+ \if@mainmatter \MakeMarkcase{\csname #2markformat\endcsname}\fi
\fi
\MakeMarkcase{##1}%
}%
\fi
}%
- \expandafter\def\csname #2mark\endcsname##1{%
- \@mkboth{}{%
- \ifnum \c@secnumdepth
- < \numexpr \csname #2numdepth\endcsname +0\relax
- \else
- \if@mainmatter \MakeMarkcase{\csname #2markformat\endcsname}\fi
- \fi
- \MakeMarkcase{##1}%
- }%
- }%
\fi
\fi
}{}%
@@ -936,10 +937,10 @@
}
% \end{macrocode}
% \begin{macro}{\ifscrlayer@level@prepared}
-% Test, whether or not this level has been prepared.
+% Test, whether or not this level has been prepared.
+% \changes{v3.42}{2024/02/01}{removed overlooked debug message}
% \begin{macrocode}
\newcommand*{\ifscrlayer@level@prepared}[1]{%
- \typeout{1: \detokenize{#1}}%
\scr@ifundefinedorrelax{#1numdepth}{%
\PackageError{scrlayer}{numbering depth of `#1' unknown}{%
Someone told me to use a section mark for level `#1',\MessageBreak
diff --git a/macros/latex/contrib/koma-script/scrmain.ins b/macros/latex/contrib/koma-script/scrmain.ins
index 9b2edae840..593b49c4ba 100644
--- a/macros/latex/contrib/koma-script/scrmain.ins
+++ b/macros/latex/contrib/koma-script/scrmain.ins
@@ -18,7 +18,7 @@
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-% $Id: scrmain.ins 4019 2023-03-31 14:23:35Z kohm $
+% $Id: scrmain.ins 4076 2023-07-31 13:38:10Z kohm $
% ---------- KOMA-Script default docstrip declarations -----------------
@@ -434,7 +434,6 @@
\batchinput{scrlogo.dtx}% scrlogo.sty
\batchinput{scrkernel-typearea.dtx}% typearea.sty
\batchinput{scrkernel-basics.dtx}% scrbase.sty
-\batchinput{scrhack.dtx}% scrhack.sty and the hak files
\batchinput{scrtime.dtx}% scrtime.sty, scrdate.sty
\batchinput{scrlfile.dtx}% scrlfile.sty
\batchinput{scraddr.dtx}% scraddr.sty
diff --git a/macros/latex/contrib/koma-script/scrtime.dtx b/macros/latex/contrib/koma-script/scrtime.dtx
index f5fdcb4919..1cb57a604c 100644
--- a/macros/latex/contrib/koma-script/scrtime.dtx
+++ b/macros/latex/contrib/koma-script/scrtime.dtx
@@ -1,7 +1,7 @@
% \iffalse
% ======================================================================
% scrtime.dtx
-% Copyright (c) Markus Kohm, 1995-2023
+% Copyright (c) Markus Kohm, 1995-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,15 +18,15 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrtime.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrtime.dtx 4099 2024-02-01 09:36:51Z 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: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-02-01 10:36:51 +0100 (Do, 01 Feb 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4099 $
\endgroup
\ProvidesFile{scrtime.dtx}[\filedate\space\filerevision\space
%</driver>
@@ -739,12 +739,14 @@
%
% Last but not least file \file{scrdate.cfg} has to be included,
% if it exists.
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
\InputIfFileExists{scrdate.cfg}
- {\typeout{*************************************^^J%
- * Local config file scrdate.cfg used^^J%
- *************************************}}
- {}
+ {%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {scrdate}{Local configuration file scrdate.cfg loaded}%
+ }{}
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/contrib/koma-script/tocbasic.dtx b/macros/latex/contrib/koma-script/tocbasic.dtx
index b9b75070af..452c7f48f6 100644
--- a/macros/latex/contrib/koma-script/tocbasic.dtx
+++ b/macros/latex/contrib/koma-script/tocbasic.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: tocbasic.dtx 4067 2023-06-28 14:37:03Z kohm $
+%%% From File: $Id: tocbasic.dtx 4089 2023-09-08 19:57:09Z kohm $
%<identify>%%% (run: identify)
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
@@ -29,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: 2023-06-28 16:37:03 +0200 (Mi, 28. Jun 2023) $
+ \filedate$Date: 2023-09-08 21:57:09 +0200 (Fr, 08. Sep 2023) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4067 $
+ \filerevision$Revision: 4089 $
\endgroup
\ProvidesFile{tocbasic.dtx}[\filedate\space\filerevision\space
%</dtx>
@@ -124,6 +124,7 @@
% manual, either the German \file{scrguide-de.pdf} or the English
% \file{scrguide-en.pdf}.
%
+%
% \MaybeStop{\PrintIndex}
%
%
@@ -144,9 +145,32 @@
% out-sourced into file \file{scrkernel-tocbasic.dtx}.
%
%
-% \subsection{Required packages}
+% \subsection{Requirements}
% \label{sec:packages}
%
+% \changes{v3.42}{2023/09/08}{We need at least \LaTeX{} 2022-06-01}
+% For full functionality at least \LaTeX{} 2022-06-01 is needed.
+% \begin{macrocode}
+%<*prepare>
+\newif\if@tocbasic@old@latex@found
+\ifnum 0=\ifcsname IfFormatAtLeastTF\endcsname
+ \IfFormatAtLeastTF{2022-06-01}{1}{0}
+ \else
+ 0
+ \fi\relax
+ \PackageWarningNoLine{tocbasic}{%
+ LaTeX kernel too old!\MessageBreak
+ For full functionality the package needs at least\MessageBreak
+ LaTeX 2022-06-01.\MessageBreak
+ You are using an older LaTeX version.\MessageBreak
+ So the functionality will be limited.\MessageBreak
+ Note that this also can result in error messages,\MessageBreak
+ that would not raise with an up-to-date LaTeX%
+ }
+ \@tocbasic@old@latex@foundtrue
+\fi
+%</prepare>
+% \end{macrocode}
% \changes{v3.41}{2023/06/28}{required packages moved to \texttt{prepare} run}
% \changes{v3.41}{2023/06/28}{\pkg{expl3} and \pkg{xparse} are required}
% Package \pkg*{scrbase} is needed to process all macro options.
@@ -169,14 +193,206 @@
% \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{RequirePackage}. Using different options by different packages would
-% result in an option clash. Nevertheless, the not existing options are
-% processed.
+% \changes{v3.42}{2023/09/08}{with old \LaTeX{} all options are unknown}
+%
+% \begin{option}{enablepatch,disablepatch}
+% \changes{v3.42}{2023/09/08}{new}
+% From version 3.42 there a several optional patches executed while
+% |\begin{document}|. Every one of that patch can be enabled or disabled.
+% \ExplSyntaxOn
+% \begin{macro}{\@@_patch_all_bool,\@@_patch_starttoc_bool,\@@_patch_chapter_bool,
+% \@@_patch_listoffigures_bool,\@@_patch_listoftables_bool}
+% \ExplSyntaxOff
+% \changes{v3.42}{2023/09/08}{new}
+% Enabling and disabling will be done using a boolean variable with default
+% |false| (disabled). The |all| patch is somehow different. In enables or
+% disables doing all patches. So |disablepatch=all| does not disable all
+% patches but disables to ignore the single patches.
+% \begin{macrocode}
+%<@@=tocbasic>
+%<*option>
+\if@tocbasic@old@latex@found\else
+ \ExplSyntaxOn
+
+ \bool_new:N \@@_patch_all_bool
+ \bool_new:N \@@_patch_starttoc_bool
+ \bool_new:N \@@_patch_chapter_bool
+ \bool_new:N \@@_patch_listoffigures_bool
+ \bool_new:N \@@_patch_listoftables_bool
+
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+% The most simple part of the story is the definition of the two
+% options. Both allow a comma separated list of patches to set the
+% corresponding boolean value to |true| or |false|.
+% \begin{macrocode}
+ \DeclareKeys
+ {
+ enablepatch .code = \@@_endisable_patch:nn {#1} \c_true_bool,
+ enablepatch .usage = preamble,
+ enablepatch .value_required:n = true,
+ disablepatch .code = \@@_endisable_patch:nn {#1} \c_false_bool,
+ disablepatch .usage = preamble,
+ disablepatch .value_required:n = true,
+ }
+
+% \end{macrocode}
+% \ExplSyntaxOn
+% \begin{macro}{\@@_endisable_patch:nn}
+% \ExplSyntaxOff
+% \changes{v3.42}{2023/09/08}{new}
+% Switch the patch \#1 depending on argument \#2 or raise a warning for
+% unknown patches.
+% \begin{macrocode}
+ \msg_new:nnnn { tocbasic } { unknown-patch }
+ {
+ \char_uppercase:N #1bling~of~unknown~patch~#2~ignored.
+ }
+ {
+ You've~tried~to~#1able~patch~#2,~
+ but~this~is~not~a~known~patch.~
+ Because~of~this~your~attempt~is~ignored.~
+ See~the~KOMA-Script~user~manual~for~more~information~about~known~patches.
+ }
+
+ \cs_new:Nn \@@_endisable_patch:nn
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \cs_if_exist:cTF { @@_patch_##1_bool }
+ {
+ \bool_set_eq:cN { @@_patch_##1_bool } #2
+ }
+ {
+ \exp_args:Nnnx \msg_warning:nnnn { tocbasic } { unknown-patch }
+ { \bool_if:NTF #2 { en } { dis } } { ##1 }
+ }
+ }
+ }
+
+ \ExplSyntaxOff
+\fi
+%</option>
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+% The patch codes are executed while |\begin{document}|. Some patches may be
+% dangerous, in which case message |dangerous-patch| is used.
+% \begin{description}
+% \item[ToDo:] We are using the old \cs{AtBeginDocument} here. Maybe a new
+% hook would be cleaner.
+% \end{description}
+% \begin{macrocode}
+%<*body>
+\if@tocbasic@old@latex@found\else
+ \ExplSyntaxOn
+ \msg_new:nnnn { tocbasic } { dangerous-patch }
+ {
+ Dangerous~#2~patch~enabled \str_if_empty:nF { #1 } { ~using~#1 } .
+ }
+ {
+ \str_if_empty:nF { #1 } { Class~#1~does~not~need~the~#2~patch.~ }
+ Using~this~patch~can~even~result~in~harm.~
+ If~you~are~not~sure~that~this~patch~is~needed,~
+ you~should~not~enable~it.~
+ Please,~see~the~KOMA-Script~user~manual~for~more~information~about~
+ the~#2~patch.
+ }
+
+ \AtBeginDocument
+ {
+
+% \end{macrocode}
+% The patches are:
+% \begin{description}
+% \item[\texttt{all}:] activate all other patches. The \texttt{chapter} patch
+% is not enabled for \KOMAScript{} classes. So if you want to use this patch
+% with a \KOMAScript{} class\,---\,which usually will not make sense\,---\,,
+% you have to use an explicit |enabelpatch=chapter|.
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_all_bool
+ {
+ \bool_set_true:N \@@_patch_starttoc_bool
+ \cs_if_exist:NF \KOMAClassName
+ { \bool_set_true:N \@@_patch_chapter_bool }
+ \bool_set_true:N \@@_patch_listoffigures_bool
+ \bool_set_true:N \@@_patch_listoftables_bool
+ }
+
+% \end{macrocode}
+% \item[\texttt{chapter}:] patches \cs{@makechapterhead} to add \cs{addvspace}
+% to every float list. It does \emph{not} patch \cs{@makeschapterhead}. Note
+% that this patch should not be activated using a \KOMAScript{} class unless
+% you are using an incompatible \cs{chapter} definition. This patch is
+% potentially dangerous. So we raise at least a note and maybe a warning.
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_chapter_bool
+ {
+ \cs_if_exist:NTF \KOMAClassName
+ {
+ \exp_args:Nnnx \msg_warn:nnnn { tocbasic } { dangerous-patch }
+ { \KOMAClassName } { chapter }
+ }
+ {
+ \exp_args:Nnnx \msg_note:nnnn { tocbasic } { dangerous-patch }
+ { } { chapter }
+ }
+ \hook_gput_code:nnn { cmd/@makechapterhead/before } { tocbasic }
+ {
+ \doforeachtocfile[float]{
+ \addtocontents{\@currext}{\protect\addvspace{10\p@}}
+ }
+ }
+ }
+
+% \end{macrocode}
+% \item[\texttt{starttoc}:] executes \cs{tocbasicautomode}
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_starttoc_bool \tocbasicautomode
+
+% \end{macrocode}
+% \item[\texttt{listoffigures}] redefines \cs{listoffigures} to use
+% \pkg*{tocbasic} (but without changing \cs{l@figure}, because
+% \cs{DeclareTOCSTyleEntry} already has defaults for \texttt{figure}).
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_listoffigures_bool
+ {
+ \renewcommand*{\listoffigures}{\listoftoc{\ext@figure}}%
+ \providecommand*{\listoflofname}{\listfigurename}%
+ }
+
+% \end{macrocode}
+% \item[\texttt{listoftables}] redefines \cs{listoftables} to use
+% \pkg*{tocbasic} (but without changing \cs{l@table}, because
+% \cs{DeclareTOCSTyleEntry} already has defaults for \texttt{table}).
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_listoftables_bool
+ {
+ \renewcommand*{\listoftables}{\listoftoc{\ext@table}}%
+ \providecommand*{\listoflotname}{\listtablename}%
+ }
+
+% \end{macrocode}
+% \end{description}
+% \begin{macrocode}
+ }
+
+ \ExplSyntaxOff
+\fi
+%</body>
+%<@@=>
+% \end{macrocode}
+% \end{option}
+% \ExplSyntaxOff
+%
% \begin{macrocode}
%<*execoption>
-\ProcessOptions\relax
+\if@tocbasic@old@latex@found
+ \ProcessOptions
+\else
+ \ProcessKeyOptions
+\fi
%</execoption>
% \end{macrocode}
%
diff --git a/macros/latex/contrib/notebeamer/README.md b/macros/latex/contrib/notebeamer/README.md
index 5f8a8393b9..bfe07955ce 100644
--- a/macros/latex/contrib/notebeamer/README.md
+++ b/macros/latex/contrib/notebeamer/README.md
@@ -10,10 +10,4 @@ This work may be distributed and/or modified under the conditions of the [LaTeX
This work has the LPPL maintenance status `maintained`.
-The Current Maintainer of this work is [Mingyu Hsia](https://www.ctan.org/author/xia-my).
-
-## Derivative Works
-
-- [fadingimage](https://ctan.org/pkg/fadingimage): Package provides macros for inputting full width picture at the edges of pages quickly.
-
-- [litesolution](https://ctan.org/pkg/litesolution): Class designed for typesetting solutions of problems in exams, textbooks, etc.
+The Current Maintainer of this work is [Mingyu Xia](https://www.ctan.org/author/xia-my). \ No newline at end of file
diff --git a/macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdf b/macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdf
deleted file mode 100644
index d4b3615265..0000000000
--- a/macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdf b/macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdf
deleted file mode 100644
index 158ef35fe8..0000000000
--- a/macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdf b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdf
new file mode 100644
index 0000000000..d029b3789d
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdf
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex
new file mode 100644
index 0000000000..188bfab232
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex
@@ -0,0 +1,18 @@
+ \documentclass[svgnames]{article}
+
+ \usepackage{geometry,notebeamer}
+ \geometry{margin = .75in}
+
+ \begin{document}
+
+ \includebeamer
+ [ color = MidnightBlue, ratio = .54, lines = 32, nup = 4,
+ pages = {2 - 4, 6 - 8}, lefthead = Chapter 1, righthead = Page~\thepage
+ ] { example-image-duck.pdf }
+
+ \includebeamer
+ [ color = MidnightBlue, ratio = .32, lines = 32, nup = 3,
+ pages = -, lefthead = Chapter 2, righthead = Page~\thepage
+ ] { example-image-a4-numbered.pdf }
+
+ \end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdf b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdf
new file mode 100644
index 0000000000..4eef41106a
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdf
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex
new file mode 100644
index 0000000000..ad9a8c913b
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex
@@ -0,0 +1,13 @@
+ \documentclass[svgnames,landscape]{article}
+
+ \usepackage{geometry,notebeamer}
+ \geometry{margin = .75in}
+
+ \begin{document}
+
+ \includebeamer
+ [ color = MidnightBlue, ratio = .57, sep = 4ex, nup = 1,
+ pages = -, lefthead = Chapter 3, righthead = Page~\thepage
+ ] { example-image-letter.pdf }
+
+ \end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer.pdf b/macros/latex/contrib/notebeamer/doc/notebeamer.pdf
index 6a882ce051..3bd4b874b8 100644
--- a/macros/latex/contrib/notebeamer/doc/notebeamer.pdf
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer.pdf
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer.tex b/macros/latex/contrib/notebeamer/doc/notebeamer.tex
index c0e59b9287..ea351a29a2 100644
--- a/macros/latex/contrib/notebeamer/doc/notebeamer.tex
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer.tex
@@ -1,142 +1,80 @@
-\documentclass[11pt,svgnames]{article}
-\usepackage[notelinecolor=MidnightBlue,notemargin=.75in]{notebeamer}
-\usepackage{indentfirst,titlesec,authblk,hyperref,hologo,pgfpages,lipsum}
-\geometry{margin=1in}
-\titleformat*{\section}{\bfseries\large}
-\titleformat*{\subsection}{\bfseries\normalsize}
-\hologoFontSetup{general=\sffamily}
-\usepackage{datetime}\yyyymmdddate
-\usepackage[libertine,mono=false]{newtx}
-\usepackage{listings}
-\lstset{language=[LaTeX]TeX,basicstyle=\ttfamily,breaklines=true,columns=flexible}
-\hypersetup{colorlinks,urlcolor=MidnightBlue}
-\def\pkg#1{\textcolor{DarkGreen}{\textsf{#1}}}
-\def\mode#1{\textcolor{Indigo}{\textsf{#1}}}
-\def\cmd#1{\textcolor{MidnightBlue}{\texttt{\string#1}}}
-
-\title{\bfseries The \pkg{notebeamer} Package}
-\author{Mingyu Hsia, \href{mailto:xiamyphys@hdu.edu.cn}{\ttfamily xiamyphys@hdu.edu.cn}}
-\affil{Hangzhou Dianzi University}
-\date{\today\quad Version 3.0b\thanks{\url{https://github.com/xiamyphys/notebeamer}}}
+\documentclass[svgnames,letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\hologoFontSetup{general = \sffamily}
+\usepackage[mono = false]{libertine}
+\usepackage{hologo,verbatim,geometry,framed,notebeamer,pdfpages}
+\hologoFontSetup{general = \sffamily}
+\setlength{\oddsidemargin}{63pt}\setlength{\evensidemargin}{63pt}
+\FrameSep = 0pt
+\linespread{1.1}
+\usepackage{indentfirst}
+\setlength{\parindent}{2em}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries
+ The \cls{notebeamer} Package
+ \thanks{\url{https://github.com/xiamyphys/notebeamer}}
+}
+\author
+{
+ Mingyu Xia \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+}
+\date{Version 4.0A, \today}
\begin{document}
\maketitle
-\begin{abstract}
+\section{Introduction}
-This is the document for the \pkg{notebeamer} package, which provides an easy way to input slides on notepages quickly for making annotations.
+The \pkg{notebeamer} package provides an easy way to input slides on notepages quickly for making annotations, based on \pkg{expl3} and \pkg{tikz}. It is compatible with \hologo{TeX} Live 2019 or later distributions, they all work fine for \hologo{pdfLaTeX} and \hologo{XeLaTeX} compilers. This is the English manual for the \pkg{notebeamer} package.
-Welcome to feedback bugs or ideas via email \href{mailto:xiamyphys@hdu.edu.cn}{\ttfamily xiamyphys@hdu.edu.cn} or \href{https://github.com/xiamyphys/notebeamer}{GitHub}.
+\section{Loading \pkg{notebeamer} and input}
-\end{abstract}
+Just like loading any class, write
-\section{Installing \pkg{notebeamer} and loading it}
+\begin{framed}
+ \begin{verbatim}
+ \usepackage{notebeamer}
+ \end{verbatim}
+\end{framed}
-Simply download \verb|notebeamer.cls| file from \href{https://github.com/xiamyphys/notebeamer}{GitHub} or \href{https://ctan.org/pkg/notebeamer}{CTAN} and save it under your working directory. However, I strongly suggest to use terminal to install and update all packages to the latest version
+\begin{function}{\includebeamer}
+ \begin{syntax}
+ \cs{includebeamer} \oarg{keyvals} \marg{filename} \oarg{keyvals}
+ \end{syntax}
+\end{function}
-\begin{verbatim}
- sudo tlmgr update --self --all
-\end{verbatim}
+The \cs{includebeamer} command can create pages with note lines, and import the specific pages of the \file{.pdf} file on the left side of the note pages. The optional argument accepts the following keys: \keys{\cmdmac~color} \keys{\cmdmac~ratio} \keys{\cmdmac~sep} \keys{\cmdmac~nup} \keys{\cmdmac~pages} \keys{\cmdmac~lefthead} \keys{\cmdmac~righthead}, and the mandatory argument can set the \file{.pdf} file that you want to insert.
-To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \hologo{TeX} distribution?}
+\begin{itemize}
+ \item The key \keys{\cmdmac~color} can set the color of the note lines, its default value is \cmd{black}.
+ \item The key \keys{\cmdmac~ratio} can set the ratio of the widths of imported beamer frames and empty area, its default value is \cmd{0.48}.
+ \item The key \keys{\cmdmac~sep} can set the vertical space between beamer frames, its default value is \cmd{2ex}.
+ \item The key \keys{\cmdmac~nup} can set the number of beamer frames on every physical page, its default value is \cmd{3}.
+ \item The key \keys{\cmdmac~pages} can select pages to insert. The argument is a comma separated list, containing page numbers, ranges of page numbers or any combination. Its default value is \cmd{1}.
+ \item The keys \keys{\cmdmac~lefthead} and \keys{\cmdmac~righthead} can set the left header and right header of the note pages.
+\end{itemize}
-\section{Key values of this package}
+\section{Working Examples}
-\begin{verbatim}
- \usepackage[notelinecolor=<color>,notemargin=<margin>]{notebeamer}
-\end{verbatim}
+For 4 logical pages per physical page and 3 logical pages per physical page
-This package has two keys: \cmd{notelinecolor} and \cmd{notemargin}.
+\begin{framed}
+ \verbatiminput{notebeamer-demo1.tex}
+\end{framed}
-The \cmd{notelinecolor} key can set the color notelines, the \cmd{notemargin} key can set the margin of notepages.
+For one logical page per page, landscape is recommanded:
-If you have not set the keys, the default values of the four keys will be applied
+\begin{framed}
+ \verbatiminput{notebeamer-demo2.tex}
+\end{framed}
-\begin{verbatim}
- notelinecolor=MidnightBlue, notemargin=.75in
-\end{verbatim}
+\includepdfmerge[nup = 2x2]
+ { notebeamer-demo1, -, notebeamer-demo2, -}
-Please set the geometry for the whole document \textbf{after} you set the notemargin, that is
-
-\begin{verbatim}
- \usepackage[notemargin=<margin>]{notebeamer} \geometry{<keyval list>}
-\end{verbatim}
-
-otherwise the notemargin configuration won't work.
-
-\section{The margin of notepages}
-
-The relation of the margin of notepages and the margin configuration of package \pkg{geometry} satisfies the following expression
-
-\begin{verbatim}
- topmargin = bottommargin = (\paperwidth-\textwidth)/3
- leftmargin = rightmargin = (2\paperheight-2\textheight)/5
-\end{verbatim}
-
-\section{Commands of \pkg{notebeamer}}
-
-\subsection{The \cmd{notechap} command}
-
-\begin{verbatim}
- \notechap [<notetitle>] {<filename>}
-\end{verbatim}
-
-This command can assign the following notetitle and the PDF file you want to input.
-
-\subsection{The \cmd{notelinenum} and \cmd{notecolumnratio} commands}
-
-\begin{verbatim}
- \notelinenum{<number>} \notecolumnratio{<number>}
-\end{verbatim}
-
-The two commands can assign the number of notelines and the ratio of columns on following notepages respectively. The default value of the number of notelines is \verb|27| and that of the ratio of columns is \verb|0.5|.
-
-\subsection{The \cmd{hidenotelinetrue} and \cmd{hidenotelinefalse} commands}
-
-Notepages after the \cmd{hidenotelinetrue} command the notelines will be hidden while notepages after command \cmd{hidenotelinefalse} the notelines will be restored.
-
-\subsection{The \cmd{newnotepage}}
-
-\begin{verbatim}
- \newnotepage[<number>] \newnotepage*[<number>]
-\end{verbatim}
-
-The \cmd{newnotepage} command can create empty notepage(s). If a star (*) is added after the command, the created empty notepage(s) won't have column rule.
-
-\subsection{The \cmd{includebeamer} command}
-
-\begin{verbatim}
- \includebeamer[<number of slides per page>]{<start page>}{<end page>}
-\end{verbatim}
-
-This commands will create notepages that were inserted images on the left sidnumber of slides per page and the last two variables can set the start page and end page of the PDF file you want to insert that assigned by the command \cmd{notechap}.
-
-\appendix
-\section{Related packages}
-
-\subsection{The \pkg{fadingimage} package}
-
-This package provides macros for inputting full width picture at the edges of pages quickly.
-
-\subsection{The \pkg{litesolution} class}
-
-This class is designed for typesetting solutions of problems in exams, textbooks, etc. The \pkg{notebeamer} package is contained in the \pkg{litesolution} class now.
-
-\clearpage
-\pgfpagesuselayout{4 on 1}[letterpaper]
-
-\notelinenum{27}\pagecolor{yellow!2}
-
-\notechap[Chapter 1. Introduction \& Fundamental Concepts]{figures/beamerdemo.pdf}
-\notecolumnratio{.57}
-\hidenotelinefalse \includebeamer[3]{2}{4}
-\notecolumnratio{.43}
-\hidenotelinetrue \includebeamer[4]{3}{6}
-
-\notechap[Phys. Rev. B. Volume 50, Number 8]{figures/paperdemo.pdf}
-\notecolumnratio{.72}
-\hidenotelinefalse \includebeamer[1]{2}{2}
-
-\notecolumnratio{.5} \newnotepage
-
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/notebeamer/tex/notebeamer.sty b/macros/latex/contrib/notebeamer/tex/notebeamer.sty
index 86189cb513..a2e941785a 100644
--- a/macros/latex/contrib/notebeamer/tex/notebeamer.sty
+++ b/macros/latex/contrib/notebeamer/tex/notebeamer.sty
@@ -1,5 +1,5 @@
%% ***********************************************************
-%% Copyright 2024 by Mingyu Hsia <xiamyphys@hdu.edu.cn> *
+%% Copyright 2024 by M.Y. XIA <xiamyphys@gmail.com> *
%% *
%% This work may be distributed and/or modified under *
%% the conditions of the LaTeX Project Public License *
@@ -11,150 +11,193 @@
%% *
%% This work has the LPPL maintenance status `maintained'. *
%% *
-%% The Current Maintainer of this work is Mingyu Hsia. *
+%% The Current Maintainers of this work is M.Y. XIA *
%% *
%% This work consists of the files notebeamer.sty, *
%% and README.md. *
%% available at https://github.com/xiamyphys/notebeamer *
-%% Thanks `wipet' (https://petr.olsak.net/) provides *
-%% Beamers automatically inserts module *
%% ***********************************************************
-% !Mode:: "TeX:UTF-8"
-\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesPackage{notebeamer}[2024/05/06 v3.0b Package provides macros for inputting slides on note papers quickly.]
-\RequirePackage{xkeyval}
+\RequirePackage{xparse}% For TeX Live 2019 - 2020 Compatibility
+\ProvidesExplPackage{notebeamer}{2024/10/15}{4.0A}
+ {Package provides macros for inputting slides on note papers quickly.}
-\DeclareOptionX{notelinecolor}{\gdef\@notelinecolor{#1}}
-\ExecuteOptionsX{notelinecolor=darkgray}
-\DeclareOptionX{notemargin}{\gdef\@notemargin{#1}}
-\ExecuteOptionsX{notemargin=.75in}
+\RequirePackage{l3graphics,tikz,tikzpagenodes}
-\DeclareOptionX*{\PackageWarning{notebeamer}{`\CurrentOption' ignored}}
-\ProcessOptionsX\relax
+\cs_new:Nn \int_div_roundup:nn { \fp_eval:n { ceil(#1/#2,0) } }
-\RequirePackage{geometry,calc,tikz}
-\newgeometry{margin=\@notemargin}
-\tikzset{every picture/.append style={%
- line join=round,line cap=round,thick}}
-\usetikzlibrary{calc}
+\seq_new:N \l__notebeamer_tmpa_seq
+\seq_new:N \l__notebeamer_tmpb_seq
+\clist_new:N \l__notebeamer_tmpa_clist
+\cs_set_nopar:Npn \notebeamer_range_to_list:nN #1#2
+ {
+ \clist_clear:N #2
+ \seq_set_split:Nnn \l__notebeamer_tmpa_seq { , } {#1}
+ \seq_map_inline:Nn \l__notebeamer_tmpa_seq
+ {
+ \tl_if_in:nnTF {##1}{ - }
+ {
+ \seq_set_split:Nnn \l__notebeamer_tmpb_seq { - } { ##1 }
+ \int_step_inline:nnn
+ { \seq_item:Nn \l__notebeamer_tmpb_seq { 1 } }
+ { \seq_item:Nn \l__notebeamer_tmpb_seq { 2 } }
+ { \clist_put_right:Nn #2 {####1} }
+ }
+ { \clist_put_right:Nn #2 {##1} }
+ }
+ }
-\newcounter{note}
-\NewDocumentCommand\notechap{o m}{
- \gdef\@notechap{#1}
- \gdef\@beamer{#2}
- \setcounter{note}{0}}
+\keys_define:nn { notebeamer / includebeamer }
+ {
+ pages .tl_set:N = \l__includebeamer_pages_tl,
+ pages .initial:n = 1,
+ nup .int_set:N = \l__includebeamer_nup_int,
+ nup .initial:n = 3,
+ lines .int_set:N = \l__includebeamer_lines_int,
+ color .tl_set:N = \l__includebeamer_color_tl,
+ color .initial:n = black,
+ ratio .fp_set:N = \l__includebeamer_ratio_fp,
+ ratio .initial:n = .48,
+ sep .dim_set:N = \l__includebeamer_sep_dim,
+ sep .initial:n = 2ex,
+ lefthead .tl_set:N = \l__includebeamer_lefthead_tl,
+ righthead .tl_set:N = \l__includebeamer_righthead_tl,
+ }
-\newlength\hnotemargin\newlength\vnotemargin
-\setlength\hnotemargin{(\paperwidth-\textwidth)/3}
-\setlength\vnotemargin{(2\paperheight-2\textheight)/5}
-\newlength\notewidth\newlength\noteheight
-\setlength\notewidth{\paperwidth-2\hnotemargin}
-\setlength\noteheight{\paperheight-2\vnotemargin}
-\newlength\notelinespace
+\int_new:N \l__notebeamer_pages_total_int
+\int_new:N \l__notebeamer_pages_residue_int
+\cs_new_protected_nopar:Npn \__notebeamer_empty_note_aux:
+ {
+ \tikz [ remember~picture, overlay ]
+ {
+ \draw [ very~thick, \l__includebeamer_color_tl!80 ]
+ (current~page~text~area.north~west) --
+ (current~page~text~area.north~east)
+ node [ at~start, above~right, font = \sffamily\Large\bfseries ]
+ { \l__includebeamer_lefthead_tl }
+ node [ above~left, font = \sffamily\Large\bfseries ]
+ { \l__includebeamer_righthead_tl };
+ \draw [ very~thick, \l__includebeamer_color_tl!80 ]
+ (current~page~text~area.south~west) --
+ (current~page~text~area.south~east);
+ \int_step_inline:nn { \l__includebeamer_lines_int - 1 }
+ {
+ \draw [ thick, \l__includebeamer_color_tl!60 ]
+ ([shift =
+ {(
+ \fp_use:N \l__includebeamer_ratio_fp \textwidth,
+ -\textheight/\l__includebeamer_lines_int * ##1
+ )}
+ ]current~page~text~area.north~west) --++
+ (\fp_eval:n { 1 - \l__includebeamer_ratio_fp } \textwidth,0);
+ }
+ }
+ \pagestyle{empty}
+ }
-\def\notelinenum#1{%
- \gdef\@notelinenum{#1}
- \setlength\notelinespace{\noteheight/#1}}
-\ifcsname @notelinenum\endcsname
-\else
- \gdef\@notelinenum{27}
- \setlength\notelinespace{\noteheight/27}
-\fi
-\def\notecolumnratio#1{\gdef\@notecolumnratio{#1}}
-\ifcsname @notecolumnratio\endcsname
-\else
- \gdef\@notecolumnratio{.5}
-\fi
-
-\newif\ifhidenoteline
-
-\def\@onepaper#1{
- \refstepcounter{note}\addtocounter{note}{-1}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- %%%%%% notepage lines
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin,{\vnotemargin+(\a-1)*\notelinespace})$) --++ (\notewidth,0); % 横线
- \fi
- %%%%%% imput file
- \node [below,yshift=\thenote*\noteheight-1ex,inner sep=0pt] at ($(current page.north west)+(\hnotemargin+.5*\@notecolumnratio*\notewidth,-\vnotemargin)$) {\ifcsname @notechap\endcsname\includegraphics[width=\dimeval{\@notecolumnratio\notewidth},page=#1]{\@beamer}\fi};
- \end{tikzpicture}
-}
-
-\def\@threebeamer#1#2#3{
- \refstepcounter{note}\addtocounter{note}{-1}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- %%%%%% notepage lines
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth+1ex,{\vnotemargin+(\a-1)*\notelinespace})$) --++ ({(1-\@notecolumnratio)*\notewidth-1ex},0); % 横线
- \fi
- \draw [\@notelinecolor!80,opacity=.5,very thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth,\vnotemargin+1ex)$) --++ (0,\noteheight-2ex); % 分栏线
- %%%%%% imput file
- \foreach \n in {#1,#2,#3}
- \node [yshift=(2*#1-2*\n-1)*\noteheight/6+\thenote*\noteheight,inner sep=0pt] at ($(current page.north west)+(\hnotemargin+.5*\@notecolumnratio*\notewidth,-\vnotemargin)$) {\ifcsname @notechap\endcsname\includegraphics[height=\dimeval{\noteheight/3-2ex},page=\n]{\@beamer}\fi};
- \end{tikzpicture}
-}
-
-\def\@fourbeamer#1#2#3#4{
- \refstepcounter{note}\addtocounter{note}{-1}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [opacity=.5,\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth+1ex,{\vnotemargin+(\a-1)*\notelinespace})$) --++ ({(1-\@notecolumnratio)*\notewidth-1ex},0); % 横线
- \fi
- \draw [\@notelinecolor,opacity=.5,very thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth,\vnotemargin+1ex)$) --++ (0,\noteheight-2ex); % 分栏线
- %%%%%% imput file
- \foreach \n in {#1,#2,#3,#4}
- \node [yshift=(2*#1-2*\n-1)*\noteheight/8+\thenote*\noteheight,inner sep=0pt] at ($(current page.north west)+(\hnotemargin+.5*\@notecolumnratio*\notewidth,-\vnotemargin)$) {\ifcsname @notechap\endcsname\includegraphics[height=\dimeval{\noteheight/4-2ex},page=\n]{\@beamer}\fi};
- \end{tikzpicture}
-}
-
-\ExplSyntaxOn\cs_new_eq:NN \Repeat \prg_replicate:nn\ExplSyntaxOff
-\NewDocumentCommand\newnotepage{s O{1}}{\Repeat{#2}{
- \refstepcounter{note}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin,{\vnotemargin+(\a-1)*\notelinespace})$) --++ (\notewidth,0); % 横线
- \fi
- \IfBooleanF{#1}{% 分栏线
- \draw [\@notelinecolor,opacity=.5,very thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth,\vnotemargin+1ex)$) --++ (0,\noteheight-2ex);}
-\end{tikzpicture}}
+\cs_new_protected_nopar:Npn \__notebeamer_includebeamer_aux:n #1
+ {
+ \graphics_get_pagecount:nN {#1} \l__includebeamer_filepages_int
+ \tl_if_eq:NnTF \l__includebeamer_pages_tl { - }
+ {
+ \notebeamer_range_to_list:nN
+ { 1 - \l__includebeamer_filepages_int } \l__notebeamer_tmpa_clist
+ }
+ {
+ \exp_args:NV
+ \notebeamer_range_to_list:nN
+ \l__includebeamer_pages_tl \l__notebeamer_tmpa_clist
+ }
+ \int_set:Nn \l__notebeamer_pages_total_int
+ {
+ \int_div_roundup:nn { \clist_count:N \l__notebeamer_tmpa_clist }
+ { \l__includebeamer_nup_int } - 1
+ }
+ \int_set:Nn \l__notebeamer_pages_residue_int
+ {
+ \int_eval:n
+ {
+ \clist_count:N \l__notebeamer_tmpa_clist -
+ \l__includebeamer_nup_int * \l__notebeamer_pages_total_int
+ }
+ }
+ \int_step_inline:nn { \int_use:N \l__notebeamer_pages_total_int }
+ {
+ \clearpage
+ \__notebeamer_empty_note_aux:
+ \int_step_inline:nn { \l__includebeamer_nup_int }
+ {
+ \tikz [ remember~picture, overlay ]
+ {
+ \node
+ [
+ yshift = - ( ####1 - 1 ) *
+ \textheight/\l__includebeamer_nup_int
+ ] at
+ ([shift =
+ {(
+ \fp_use:N \l__includebeamer_ratio_fp \textwidth/2,
+ -\textheight/\l__includebeamer_nup_int/2
+ )}
+ ]current~page~text~area.north~west)
+ {
+ \includegraphics
+ [
+ height =
+ \dim_eval:n
+ {
+ \textheight/\l__includebeamer_nup_int -
+ \l__includebeamer_sep_dim
+ },
+ page =
+ \clist_item:Nn \l__notebeamer_tmpa_clist
+ { ####1 + \l__includebeamer_nup_int * ( ##1 - 1 ) }
+ ] {#1}
+ };
+ }
+ }
+ \clearpage
+ }
+ \__notebeamer_empty_note_aux:
+ \int_step_inline:nn { \int_use:N \l__notebeamer_pages_residue_int }
+ {
+ \tikz [ remember~picture, overlay ]
+ {
+ \node
+ [
+ yshift = - ( ##1 - 1 ) * \textheight/\l__includebeamer_nup_int
+ ] at
+ ([shift =
+ {(
+ \fp_use:N \l__includebeamer_ratio_fp \textwidth/2,
+ -\textheight/\l__includebeamer_nup_int/2
+ )}
+ ]current~page~text~area.north~west)
+ {
+ \includegraphics
+ [
+ height =
+ \dim_eval:n
+ {
+ \textheight/\l__includebeamer_nup_int -
+ \l__includebeamer_sep_dim
+ },
+ page =
+ \clist_item:Nn \l__notebeamer_tmpa_clist
+ {
+ \l__includebeamer_nup_int *
+ \l__notebeamer_pages_total_int + ##1
+ }
+ ] {#1}
+ };
+ }
+ }
+ \clearpage
+ }
+\NewDocumentCommand{\includebeamer}{ O{} m O{} }{
+ \group_begin:
+ \keys_set:nn { notebeamer / includebeamer } { #1 #3 }
+ \__notebeamer_includebeamer_aux:n {#2}
+ \group_end:
}
-\newcount\tmpnum
-\def\valnum#1{%
- \ifnum\maxnum>\numexpr\tmpnum+#1\relax
- \the\numexpr\tmpnum+#1\relax \else \maxnum\fi}
-\NewDocumentCommand\includebeamer{ o m m }{%
- \ifnum #1=1
- \def\maxnum{#3}\tmpnum=#2
- \loop
- \unless\ifnum\tmpnum>#3 \@onepaper{\valnum0}
- \advance\tmpnum by1
- \repeat\fi
- \ifnum #1=3
- \def\maxnum{#3}\tmpnum=#2
- \loop
- \unless\ifnum\tmpnum>#3 \@threebeamer{\valnum0}{\valnum1}{\valnum2}
- \advance\tmpnum by3
- \repeat\fi
- \ifnum #1=4
- \def\maxnum{#3}\tmpnum=#2
- \loop
- \unless\ifnum\tmpnum>#3 \@fourbeamer{\valnum0}{\valnum1}{\valnum2}{\valnum3}
- \advance\tmpnum by4
- \repeat\fi}
+% End of file notebeamer.sty
diff --git a/macros/latex/contrib/numbersets/numbersets-doc.pdf b/macros/latex/contrib/numbersets/numbersets-doc.pdf
index 1ae9960f81..5e6fb7ba08 100644
--- a/macros/latex/contrib/numbersets/numbersets-doc.pdf
+++ b/macros/latex/contrib/numbersets/numbersets-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/numbersets/numbersets-doc.tex b/macros/latex/contrib/numbersets/numbersets-doc.tex
index db063bc141..32bd4c3698 100644
--- a/macros/latex/contrib/numbersets/numbersets-doc.tex
+++ b/macros/latex/contrib/numbersets/numbersets-doc.tex
@@ -23,13 +23,14 @@
\setsansfont{TeX Gyre Heros}
\setmonofont{Latin Modern Mono}
\setmathfont{TeX Gyre Pagella Math}
+\usepackage{changelog}
\NewDocumentCommand{\ThisPackageName}{}{\pkg{numbersets}}
\NewDocumentCommand{\sourcecode}{m}{\texttt{#1}}
-\title{The \ThisPackageName{} Package}
+\title{The \ThisPackageName{} Package (v0.2.0)}
\author{Takumi Noguchi (enunun)}
-\date{2024-10-13}
+\date{2024-10-15}
\begin{document}
@@ -137,15 +138,15 @@ when you want to create descriptive names for commonly used number sets.
\begin{function}{\DeclareNumberSetCommand}
\begin{syntax}
- \cs{DeclareNumberSetCommand}\marg{name}\marg{symbol}
+ \cs{DeclareNumberSetCommand}\marg{cs}\marg{symbol}
\end{syntax}
- This command defines a new number set command. The first argument \meta{name} specifies the name of the new command,
+ This command defines a new number set command. The first argument \meta{cs} specifies the control sequence for the new command,
while the second argument \meta{symbol} represents the symbol that will be displayed.
\end{function}
For example, to define a command for the set of all quaternions by \(\NumberSet{H}\), you would write:
\begin{lstlisting}
- \DeclareNumberSetCommand{Quaternions}{H}
+ \DeclareNumberSetCommand{\Quaternions}{H}
\end{lstlisting}
Once defined, you can use the new command \cs[no-index]{Quaternions} in your document to display the symbol for the set of all quaternions.
@@ -156,9 +157,10 @@ To display the set of all quaternions that you just defined above, you would wri
\Quaternions[style=bfup]
\end{lstlisting}
-Internally, the definition using \cs[no-index]{DeclareNumberSetCommand}\marg{name}\marg{symbol} is equivalent to the following definition:
+Internally, the definition using \cs[no-index]{DeclareNumberSetCommand}\marg{cs}\marg{symbol}
+is equivalent to the following definition:
\begin{lstlisting}
- \NewDocumentCommand\|\meta{name}|
+ \NewDocumentCommand{|\meta{cs}|}
{o}
{
\IfValueTF{#1}
@@ -296,6 +298,24 @@ If you have any suggestions, feature requests, or bug reports,
we encourage you to submit them via the repository's issue tracker.
This ensures that improvements and fixes are addressed efficiently. You can visit the ``Issues'' tab in the repository to create a new issue.
+\section{Changelog}
+
+The first is the version 0.1.0. The changelog of this package is shown in this seciton.
+
+\begin{changelog}[section=false]
+ \begin{version}[v=0.2.0, date=2024-10-15]
+ \changed
+ \item Modified the \cs[no-index]{DeclareNumberSetCommand} to accept the control sequence directly
+ \end{version}
+ \begin{version}[v=0.1.0, date=2024-10-13]
+ \added
+ \item Provided the \cs[no-index]{NumberSet} command
+ \item Provided the \cs[no-index]{DeclareNumberSetCommand} command
+ \item Provided the \cs[no-index]{DeclareNumberSetStyle} command
+ \item Provided the commands \cs[no-index]{NaturalNumbers}, \cs[no-index]{Integers}, \cs[no-index]{RationalNumbers}, \cs[no-index]{RealNumbers}, \cs[no-index]{ComplexNumbers}
+ \end{version}
+\end{changelog}
+
\printindex
\end{document}
diff --git a/macros/latex/contrib/numbersets/numbersets.sty b/macros/latex/contrib/numbersets/numbersets.sty
index a2b4f2c4e2..cceabf53e0 100644
--- a/macros/latex/contrib/numbersets/numbersets.sty
+++ b/macros/latex/contrib/numbersets/numbersets.sty
@@ -1,4 +1,4 @@
-\ProvidesExplPackage{numbersets}{2024-10-13}{v0.1.0}{A package for displaying number sets with customizable typefaces}
+\ProvidesExplPackage{numbersets}{2024-10-15}{v0.2.0}{A package for displaying number sets with customizable typefaces}
% List of properties to store style commands
\prop_new:N \g_numbersets_styles_prop
@@ -87,7 +87,7 @@
% Command to declare custom commands for set composed of numbers
\NewDocumentCommand{\DeclareNumberSetCommand}{ m m }
{
- \expandafter\NewDocumentCommand\cs:w#1\cs_end:
+ \NewDocumentCommand{#1}
{o}
{
\IfValueTF{##1}
@@ -103,18 +103,18 @@
% Presets for some sets composed of numbers
% Natural numbers
-\DeclareNumberSetCommand{NaturalNumbers}{N}
+\DeclareNumberSetCommand{\NaturalNumbers}{N}
% Integers
-\DeclareNumberSetCommand{Integers}{Z}
+\DeclareNumberSetCommand{\Integers}{Z}
% Rational numbers
-\DeclareNumberSetCommand{RationalNumbers}{Q}
+\DeclareNumberSetCommand{\RationalNumbers}{Q}
% Real Numbers
-\DeclareNumberSetCommand{RealNumbers}{R}
+\DeclareNumberSetCommand{\RealNumbers}{R}
% Complex Numbers
-\DeclareNumberSetCommand{ComplexNumbers}{C}
+\DeclareNumberSetCommand{\ComplexNumbers}{C}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/passopt/README.md b/macros/latex/contrib/passopt/README.md
index f8eb8f4c43..535c1ead91 100644
--- a/macros/latex/contrib/passopt/README.md
+++ b/macros/latex/contrib/passopt/README.md
@@ -1,5 +1,5 @@
# The `passopt` package
-Passing options to packages or classes (v1.01a)
+Passing options to packages or classes (v1.01b)
## Abstract
`passopt` allow reset the global options of a loaded macro package or document class, or to change the position of the pre-passed options in the list to the right.
diff --git a/macros/latex/contrib/passopt/passopt.pdf b/macros/latex/contrib/passopt/passopt.pdf
index ce6e437c65..b1de39de99 100644
--- a/macros/latex/contrib/passopt/passopt.pdf
+++ b/macros/latex/contrib/passopt/passopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/passopt/passopt.sty b/macros/latex/contrib/passopt/passopt.sty
index d74c698d27..e55dec80a0 100644
--- a/macros/latex/contrib/passopt/passopt.sty
+++ b/macros/latex/contrib/passopt/passopt.sty
@@ -8,7 +8,7 @@
% The latest version of this license is in
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
-\ProvidesExplPackage{passopt}{2024/07/17}{1.01a}
+\ProvidesExplPackage{passopt}{2024/10/14}{1.01b}
{Passing options to packages or classes}
\cs_generate_variant:Nn \tl_if_blank:nTF { v }
diff --git a/macros/latex/contrib/passopt/passopt.tex b/macros/latex/contrib/passopt/passopt.tex
index fb4473e356..db07cc28b4 100644
--- a/macros/latex/contrib/passopt/passopt.tex
+++ b/macros/latex/contrib/passopt/passopt.tex
@@ -1,13 +1,14 @@
\documentclass[load-preamble+]{cnltx-doc}
-\usepackage{setspace,hologo,changelog,enumitem}
+\usepackage{hologo,changelog,enumitem,codehigh}
\usepackage[margin = 1in,marginparwidth = 0.6in,footskip = 0.5in]{geometry}
\setcnltx
{
package = passopt,
- version = v1.01a,
- date = 2024/07/17,
+ version = v1.01b,
+ date = 2024/10/14,
authors = Qu Yi,
+ title = \passopt{} package,
info = Passing options to packages or classes,
email = toquyi@163.com,
url = https://github.com/texno3/passopt,
@@ -16,10 +17,7 @@
\pkg*{passopt} allow reset the global options of a loaded macro package or document class, or to change the position of the pre-passed options in the list to the right.
},
color-scheme = blue,
- listings-options = {numbers = none,gobble = 2,lineskip = 1pt},
- pre-output = {\parindent = 0em\setstretch{1.3}},
- before-skip = \smallskipamount,
- after-skip = \smallskipamount
+ title-format = \LARGE
}
\makeatletter
\newcommand{\splitmeta}[2]{\meta{#1}\texttt{,}\meta{#2}}
@@ -39,22 +37,24 @@
\newnote{\newtag}[1]{\textcolor{red}{#1}}
\renewcommand{\emph}[1]{\textcolor{red}{#1}}
\renewcommand{\cnltx@write@lastname}{}
+\renewcommand{\cnltxpackagenameformat}[1]{\textcolor{cnltx}{\textsf{#1}}}
\setlist{nosep,topsep = \smallskipamount}
\setlist[description,1]{leftmargin = \parindent}
\setlist[itemize,1]{leftmargin = *}
+\SetCodeHighStyle[default]{2}{cs}
\makeatother
\begin{document}
\section{Preface}
For a developer, there are some cases where packages and classes may load other packages or classes with options. However, other developers or users may wish to disable the enabled options or enable new ones. To enable new options, \hologo{LaTeXe} provides the \cs{PassOptionsToPackage} and \cs{PassOptionsToClass} commands to pass the options before the package or class is loaded, but the passed options are located on the \textcolor{red}{left} side of the final options list.
-\begin{sourcecode}
- \PassOptionsToPackage{opt1,opt2=A}{mypackage}
+\begin{codehigh}
+\PassOptionsToPackage{opt1,opt2=A}{mypackage}
- \documentclass{book}
- \usepackage[opt3]{mypackage}
+\documentclass{book}
+\usepackage[opt3]{mypackage}
- \begin{document}
-\end{sourcecode}
+\begin{document}
+\end{codehigh}
In the example above, the list of options that the \pkg*{mypackage} macro package ends up executing is \fbox{\code{opt1,opt2=A,opt3}}. If you wish to \textcolor{red}{disable} the pre-enabled options or place the newly enabled options to the \textcolor{red}{right} of the list (last executed), then you need to modify the code of the load command in the package or class file, but this is not recommended for public sharing. Therefore, this macro package provides commands to reset the options and change the order of the new options.
@@ -65,25 +65,25 @@ Four commands are provided to set the options to be passed later, all of which a
Passes options to the macro package, the location of the passed options is to the right of the options used when loading the macro package. If an asterisk parameter is used, only the passed options were ultimately retained.
\command{SetOptionsToClass}[\sarg\marg{options list}\marg{class}]
Similar to the previous command, but passing options for the document class.
- \begin{sourcecode}
- \RequirePackage{passopt}
- \SetOptionsToPackage{opt1,opt2=A}{mypackage}
+\begin{codehigh}
+\RequirePackage{passopt}
+\SetOptionsToPackage{opt1,opt2=A}{mypackage}
- \documentclass{book}
- \usepackage[opt3]{mypackage}
+\documentclass{book}
+\usepackage[opt3]{mypackage}
- \begin{document}
- \end{sourcecode}
+\begin{document}
+\end{codehigh}
In the example above, the list of options that the \pkg*{mypackage} macro package ends up executing is \fbox{\code{opt3,opt1,opt2=A}}. If the asterisk parameter is used, the list is \fbox{\code{opt1,opt2=A}}.
Note that since macro packages or document classes can only be loaded effectively once (using the \cs{usepackage} and \cs{RequirePackage} commands), only options passed before the first loading of a macro package or document class are effective, and it is recommended for users to use commands that pass options before \cs{documentclass}.
\command{ClearPackageOptions}[\marg{package}]
Clears the options that will be loaded into the macro package. The following commands has the same effect as \cs*{SetOptionsToPackage}\code{*}.
- \begin{sourcecode}
- \ClearPackageOptions{mypackage}
- \SetOptionsToPackage{opt1,opt2=A}{mypackage}
- \end{sourcecode}
+\begin{codehigh}
+\ClearPackageOptions{mypackage}
+\SetOptionsToPackage{opt1,opt2=A}{mypackage}
+\end{codehigh}
\command{ClearClassOptions}[\marg{class}]
Similar to the previous command, but passing options for the document class.
\end{commands}
@@ -99,5 +99,6 @@ Thanks Jonathan P. Spratte for the improvement suggestions.
\end{version}
\end{changelog}
\nocite{*}
+\AddToHook{cmd/printindex/before}{\clearpage}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/postnotes/CHANGELOG.md b/macros/latex/contrib/postnotes/CHANGELOG.md
index df5807e78e..016ab2ebbc 100644
--- a/macros/latex/contrib/postnotes/CHANGELOG.md
+++ b/macros/latex/contrib/postnotes/CHANGELOG.md
@@ -1,6 +1,15 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/postnotes/compare/v0.2.8...HEAD)
+## [Unreleased](https://github.com/gusbrs/postnotes/compare/v0.3.0...HEAD)
+
+## [v0.3.0](https://github.com/gusbrs/postnotes/compare/v0.2.8...v0.3.0) (2024-10-15)
+
+### Added
+- Provide `multiple` option, with functionality akin the the same named option
+ from `footmisc`.
+- Provide (experimental) support for PDF tagging. For this, the required LaTeX
+ kernel version was bumped to 2024-06-01. Tagging support requires
+ `testphase=phase-III` (`phase-II` with `listenv=none`).
## [v0.2.8](https://github.com/gusbrs/postnotes/compare/v0.2.7...v0.2.8) (2023-12-12)
diff --git a/macros/latex/contrib/postnotes/postnotes-code.pdf b/macros/latex/contrib/postnotes/postnotes-code.pdf
index b21c5b36d3..5742cac6a2 100644
--- a/macros/latex/contrib/postnotes/postnotes-code.pdf
+++ b/macros/latex/contrib/postnotes/postnotes-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/postnotes/postnotes-code.tex b/macros/latex/contrib/postnotes/postnotes-code.tex
index 6cc43c80af..8a217038f2 100644
--- a/macros/latex/contrib/postnotes/postnotes-code.tex
+++ b/macros/latex/contrib/postnotes/postnotes-code.tex
@@ -4,7 +4,7 @@
%
% This file is part of the LaTeX package "postnotes".
%
-% Copyright (C) 2022-2023 gusbrs
+% Copyright (C) 2022-2024 gusbrs
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/postnotes/postnotes-doc.pdf b/macros/latex/contrib/postnotes/postnotes-doc.pdf
index a7e5c5893c..952c0446d7 100644
--- a/macros/latex/contrib/postnotes/postnotes-doc.pdf
+++ b/macros/latex/contrib/postnotes/postnotes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/postnotes/postnotes-doc.tex b/macros/latex/contrib/postnotes/postnotes-doc.tex
index 805b72d69e..30bbcc1cba 100644
--- a/macros/latex/contrib/postnotes/postnotes-doc.tex
+++ b/macros/latex/contrib/postnotes/postnotes-doc.tex
@@ -385,6 +385,16 @@ maketextmark = {#2#1.#3} ,
At the point \opt{maketextmark} gets typeset, the \cs{pnthepage} variable
contains the value of \cs{thepage} where its corresponding note was set.
+\DescribeMacro{multiple} %
+\DescribeMacro{multisep} %
+Just as for footnotes, when two or more \cs{postnote}s are called in imediate
+sequence, the marks typeset in superscript give impression of being one large
+number, instead of the sequence of smaller ones they were supposed to convey.
+Enabling the \opt{multiple} option makes \pkg{postnotes} typeset a separator
+between marks occurring in sequence. The separator can be configured with the
+\opt{multisep} option, which has a comma as initial value. \opt{multiple} is
+a boolean option, and has \texttt{false} as initial value.
+
\DescribeOption{pretextmark} %
\DescribeOption{posttextmark} %
\DescribeOption{postprintnote} %
@@ -1079,17 +1089,24 @@ provided by (in chronological order):
% 2023-02-10: https://chat.stackexchange.com/transcript/message/62955941#62955941 (and discussion)
% 2023-02-19: https://tex.stackexchange.com/q/675818#comment1678904_675818
% 2023-12-12: https://chat.stackexchange.com/transcript/message/64848034#64848034 (and discussion)
+ % 2024-01-28: https://chat.stackexchange.com/transcript/message/65071091#65071091 (discussion)
+ % 2024-10-09: https://chat.stackexchange.com/transcript/message/66415504#66415504 (discussion)
+ % 2024-10-10: https://chat.stackexchange.com/transcript/message/66421777#66421777 (discussion)
+ % 2024-10-15: https://chat.stackexchange.com/transcript/message/66444011#66444011 (discussion)
David Carlisle,
% 2022-03-28: https://chat.stackexchange.com/transcript/message/60754383#60754383
% 2022-04-08: https://tex.stackexchange.com/a/640035 (comments)
% 2023-02-10: https://chat.stackexchange.com/transcript/message/62955941#62955941 (and discussion)
% 2023-02-10: https://tex.stackexchange.com/a/674846
% 2023-12-12: https://chat.stackexchange.com/transcript/message/64848034#64848034 (and discussion)
+ % 2024-01-28: https://chat.stackexchange.com/transcript/message/65071091#65071091 (discussion)
+ % 2024-10-15: https://chat.stackexchange.com/transcript/message/66444011#66444011 (discussion)
Moritz Wemheuer,
% 2022-04-05: https://tex.stackexchange.com/q/597359#comment1594585_597389
Joseph Wright,
% 2023-02-10: https://chat.stackexchange.com/transcript/message/62955941#62955941 (and discussion)
% 2023-12-12: https://chat.stackexchange.com/transcript/message/64848034#64848034 (and discussion)
+ % 2024-10-15: https://chat.stackexchange.com/transcript/message/66444011#66444011 (discussion)
\username{SwitWu},
% 2023-11-29: https://github.com/gusbrs/postnotes/pull/4
% 2023-11-30: https://github.com/gusbrs/postnotes/pull/5
diff --git a/macros/latex/contrib/postnotes/postnotes.dtx b/macros/latex/contrib/postnotes/postnotes.dtx
index c01e6af7ef..46c677a646 100644
--- a/macros/latex/contrib/postnotes/postnotes.dtx
+++ b/macros/latex/contrib/postnotes/postnotes.dtx
@@ -4,7 +4,7 @@
%
% This file is part of the LaTeX package "postnotes".
%
-% Copyright (C) 2022-2023 gusbrs
+% Copyright (C) 2022-2024 gusbrs
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -132,12 +132,13 @@
% simplifies the relation with \pkg{hyperref} (\texttt{ltnews35},
% \texttt{hyperref-linktarget}): the provision of \cs{MakeLinkTarget} and the
% definition by the kernel of the starred version of \cs{ref}, which we can
-% use regardless of \pkg{hyperref} being loaded. Finally, since we followed
-% the move to \texttt{e}-type expansion, to play safe we require the
-% 2023-11-01 kernel or newer.
+% use regardless of \pkg{hyperref} being loaded. Also, since we followed the
+% move to \texttt{e}-type expansion, to play safe we require the 2023-11-01
+% kernel or newer. Finally, the tagging sockets and block code required for
+% tagging support need the 2024-06-01 kernel.
%
% \begin{macrocode}
-\def\postnotes@required@kernel{2023-11-01}
+\def\postnotes@required@kernel{2024-06-01}
\NeedsTeXFormat{LaTeX2e}[\postnotes@required@kernel]
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{\postnotes@required@kernel}
@@ -152,7 +153,7 @@
%
%
% \begin{macrocode}
-\ProvidesExplPackage {postnotes} {2023-12-12} {0.2.8}
+\ProvidesExplPackage {postnotes} {2024-10-15} {0.3.0}
{Endnotes for LaTeX}
% \end{macrocode}
%
@@ -541,6 +542,7 @@
maketextmark .value_required:n = true ,
maketextmark .initial:n = { #2 #1 . #3 } ,
}
+\cs_generate_variant:Nn \@@_make_mark:nnn { Vnn }
% \end{macrocode}
%
%
@@ -625,6 +627,159 @@
% \end{macrocode}
%
%
+% \subsection*{\opt{multiple}, \opt{multisep} options}
+%
+% As far as I can tell, the \opt{multiple} option has its origins in the
+% \pkg{footmisc} package, which offers this feature for footnotes. About this
+% option, \file{footmisc.dtx} observes:
+%
+% \begin{quote}
+% This (revised) code derives from a suggestion by Alexander Rozhenko (the
+% author of the \pkg{manyfoot} package): the intention is that
+% \pkg{footmisc} and \pkg{manyfoot} should be able to `interwork', in the
+% sense that each would recognize the other's footnote marks and behave
+% appropriately. The trick is that both \cs{footnote} and \cs{footnotemark}
+% insert a marker (a cancelling pair of kerns of \cs{multiplefootnotemarker}
+% (of opposite signs), which is detected in following \cs{footnote} or
+% \cs{footnotemark} commands.
+% \end{quote}
+%
+% About the same option, \file{manyfoot.dtx} notes:
+%
+% \begin{quote}
+% To support \opt{multiple} option from \pkg{footmisc} we add the
+% \cs{FN@mf@prepare} command from \pkg{footmisc} (suggested by Frank
+% Mittelbach).
+% \end{quote}
+%
+% Whatever the exact origin of this feature, the fact is that it has spread
+% throughout the ecosystem, using not only the same basic mechanism but,
+% typically, using \emph{the same variables}: \cs{multiplefootnotemarker} and
+% \cs{multfootsep}. With the intention, naturally, that different classes and
+% packages can ``interwork'' with regard to this feature. And this became a
+% sort of ``shared feature'' in the ecosystem (the list includes
+% \pkg{footmisc}, \texttt{KOMA-Script}, \pkg{eledmac}, \pkg{reledmac},
+% \cls{tufte}, \cls{memoir}, \pkg{parnotes}, \pkg{sidenotes}, and now also
+% \pkg{postnotes}, see discussion at
+% \url{https://chat.stackexchange.com/transcript/message/66421777#66421777}).
+% What is crucial for this interplay, however, is not quite the variables
+% themselves, but \emph{the value of the canceling pair of kerns}, stored in
+% \cs{multiplefootnotemarker}. The fact that the same variables are used by
+% most of the classes and packages which provide the feature speaks for
+% convenience, in that a change in one of them reflects in all participating
+% in the ``pool''.
+%
+% Convenient as it is, this shared use of the same variables can only work as
+% long as the community agrees in what these variables contain to some degree.
+% As far as \cs{multiplefootnotemarker} goes, I see no divergence, and
+% everybody uses the value of \texttt{3sp} for the canceling kerns from
+% \cs{FN@mf@prepare}. \file{latex-lab-footnotes.dtx} even documents this
+% value for this purpose in its list of ``use of kerns to mark h-mode
+% positions'' (see
+% \url{https://chat.stackexchange.com/transcript/message/66421893#66421893}).
+% Things are not as smooth with regard to \cs{multfootsep} though.
+% \pkg{footmisc} stores a plain comma in \cs{multfootsep} and applies
+% formatting around it in \cs{FN@mf@check} (hard-coded as
+% \cs{textsuperscript}). \texttt{KOMA-Script} also stores plain content in
+% \cs{multfootsep} and applies the formatting in the check function.
+% \cls{memoir}, however, stores the formatting directly \cs{multfootsep} and
+% applies no formatting later. Also, \file{latex-lab-footmisc.ltx}, in adding
+% PDF tagging support for \pkg{footmisc} stores the tagging code directly in
+% \cs{multfootsep}. I don't know if there are others, but these cases are
+% already relevant enough to spoil things. The problem is not that they
+% disagree on the value of \cs{multfootsep}, but on the function(s) this macro
+% is supposed to perform. That given, any other parties trying to partake in
+% this feature have to handle things differently depending on the value of
+% \cs{multfootsep}. All in all, \pkg{postnotes} takes the cautious stance of
+% using internal variables, instead of the shared ones, to implement the
+% \opt{multiple} option. The only thing that really needs to be common is the
+% value of the canceling kerns of \texttt{3sp} in \cs{@@_multiple_prepare:}.
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@@_multiple_prepare: \prg_do_nothing:
+\cs_new_eq:NN \@@_multiple_check: \prg_do_nothing:
+\cs_new_eq:NN \@@_multiple_store_lastkern: \prg_do_nothing:
+\tl_new:N \l_@@_multisep_tl
+\tl_const:Nn \c_postnotes_multi_notemarker_tl { 3sp }
+\dim_new:N \l_@@_multi_lastkern_dim
+\bool_new:N \l_@@_multi_stored_lastkern_bool
+\tl_new:N \l_@@_saved_spacefactor_multi_tl
+\keys_define:nn { postnotes/setup }
+ {
+ multiple .choice: ,
+ multiple / true .code:n =
+ {
+% \end{macrocode}
+% I'm using the definitions in \pkg{latex-lab-footmisc.ltx} as base, see
+% \texttt{texdoc latex-lab-footnotes}. For the formatting of the separator,
+% though, I take inspiration from \texttt{KOMA-Script} and use
+% \cs{@@_make_mark:nnn}, instead of hard-coding \cs{textsuperscript}.
+% \begin{macrocode}
+ \cs_set_protected:Npn \@@_multiple_prepare:
+ {
+ \kern -\c_postnotes_multi_notemarker_tl
+ \kern \c_postnotes_multi_notemarker_tl
+ \scan_stop:
+ }
+ \cs_set_protected:Npn \@@_multiple_check:
+ {
+ \dim_compare:nNnT
+ { \c_postnotes_multi_notemarker_tl } =
+ {
+ \bool_if:NTF \l_@@_multi_stored_lastkern_bool
+ { \l_@@_multi_lastkern_dim }
+ { \lastkern }
+ }
+ {
+ \tl_set:Ne \l_@@_saved_spacefactor_multi_tl
+ { \int_use:N \spacefactor }
+% \end{macrocode}
+% \pkg{latex-lab-footmisc.ltx} comments at this point ``shouldn't that be 2
+% unkerns?? (none would also be ok)'' and goes on to add a second \cs{unkern}.
+% If these calls are supposed to undo the \cs{kern}s in
+% \cs{@@_multiple_prepare:}, in our case we probably lost those at this point,
+% for the same reason we have to store \cs{lastkern} at the beginning of
+% \cs{posnote} (see below). So, we might as well go with ``none'', since
+% otherwise we might be removing from the list a kern we didn't intend to.
+% \begin{macrocode}
+ % \unkern
+ % \unkern
+ \tag_socket_use:n { postnotes/multsep/begin }
+ \@@_make_mark:Vnn \l_@@_multisep_tl { } { }
+ \tag_socket_use:n { postnotes/multsep/end }
+ \spacefactor \l_@@_saved_spacefactor_multi_tl
+ \scan_stop:
+ }
+ }
+% \end{macrocode}
+% \cs{postnote} does quite a lot of stuff before actually calling
+% \cs{@@_typeset_mark:eV} which results in \cs{lastkern} set by the previous
+% \cs{@@_multiple_prepare:} being lost (why?), so we need to store it earlier.
+% \begin{macrocode}
+ \cs_set_protected:Npn \@@_multiple_store_lastkern:
+ {
+ \dim_set_eq:NN \l_@@_multi_lastkern_dim \lastkern
+ \bool_set_true:N \l_@@_multi_stored_lastkern_bool
+ }
+ } ,
+ multiple / false .code:n =
+ {
+ \cs_set_eq:NN \@@_multiple_prepare: \prg_do_nothing:
+ \cs_set_eq:NN \@@_multiple_check: \prg_do_nothing:
+ \cs_set_eq:NN \@@_multiple_store_lastkern: \prg_do_nothing:
+ } ,
+ multiple / unknown .code:n =
+ { \msg_error:nnn { postnotes } { boolean-values-only } { multiple } } ,
+ multiple .default:n = true ,
+ multisep .tl_set:N = \l_@@_multisep_tl ,
+ multisep .initial:n = {,} ,
+ }
+\msg_new:nnnn { postnotes } { boolean-values-only }
+ { Key~'#1'~accepts~boolean~values~only. }
+ { The~key~'#1'~only~accepts~the~values~'true'~and~'false'. }
+% \end{macrocode}
+%
+%
% \subsection*{\opt{sort} option}
%
% \begin{macrocode}
@@ -766,7 +921,7 @@
% what is distinctive of the kernel's footnote apparatus, which allows it as
% much flexibility as one would like, is receiving an arbitrary number as
% argument and not stepping the counter. And as far as \cs{footnotemark} and
-% \cs{footnotetext}) are concerned, the main point of the optional argument is
+% \cs{footnotetext} are concerned, the main point of the optional argument is
% really to ``manually establish the relation'' between the two of them. So,
% if \emph{not stepping the counter} is what is needed to handle the general
% case, is it viable to do so? What would we loose in so doing?
@@ -903,6 +1058,7 @@
\cs_new_protected:Npn \@@_note:nn #1#2
{
\group_begin:
+ \@@_multiple_store_lastkern:
\keys_set:nn { postnotes/note } {#1}
\@@_inhibit_note:F
{
@@ -920,12 +1076,13 @@
\MakeLinkTarget* { postnote. \l_postnotes_note_id_tl .mark }
\@@_set_mark_page_label:e { \l_postnotes_note_id_tl }
\@@_set_user_labels:
- \bool_if:NF \l_@@_nomark_bool
+ \@@_store:nn { \l_postnotes_note_id_tl } {#2}
+ \bool_if:NTF \l_@@_nomark_bool
+ { \tag_socket_use:n { postnotes/mark/nomark } }
{
\@@_typeset_mark:eV
{ \l_postnotes_note_id_tl } \l_@@_mark_tl
}
- \@@_store:nn { \l_postnotes_note_id_tl } {#2}
}
\group_end:
}
@@ -1017,8 +1174,13 @@
\tl_set:Nn \l_@@_mark_tl { \thepostnote }
}
}
- \@@_typeset_mark_wrapper:n
- { \@@_make_mark:nnn { \l_@@_mark_tl } { } { } }
+ \group_begin:
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/begin } { noop }
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/end } { noop }
+ \@@_typeset_mark_wrapper:nnn
+ { \@@_make_mark:Vnn \l_@@_mark_tl { } { } }
+ { } { }
+ \group_end:
}
\bool_if:NTF \l_@@_inhibit_note_bool
{ \prg_return_true: }
@@ -1031,19 +1193,20 @@
% \begin{macro}
% {
% \@@_typeset_mark:nn ,
-% \@@_typeset_mark_wrapper:n ,
+% \@@_typeset_mark_wrapper:nnn ,
% }
% Auxiliary functions for mark typesetting in \cs{@@_note:nn}.
-% \cs{@@_typeset_mark_wrapper:n} is based on the definition of
+% \cs{@@_typeset_mark_wrapper:nnn} is based on the definition of
% \cs{@footnotemark} in the kernel.
% \begin{syntax}
% \cs{@@_typeset_mark:nn} \Arg{note id} \Arg{mark}
-% \cs{@@_typeset_mark_wrapper:n} \Arg{mark}
+% \cs{@@_typeset_mark_wrapper:nnn}
+% \Arg{mark} \Arg{begin tagging} \Arg{end tagging}
% \end{syntax}
% \begin{macrocode}
\cs_new_protected:Npn \@@_typeset_mark:nn #1#2
{
- \@@_typeset_mark_wrapper:n
+ \@@_typeset_mark_wrapper:nnn
{
\bool_if:NTF \l_@@_hyperlink_bool
{
@@ -1053,18 +1216,25 @@
}
{ \@@_make_mark:nnn {#2} { } { } }
}
+ { \tag_socket_use:n { postnotes/mark/begin } }
+ { \tag_socket_use:n { postnotes/mark/end } }
}
\cs_generate_variant:Nn \@@_typeset_mark:nn { eV }
\tl_new:N \l_@@_saved_spacefactor_tl
-\cs_new_protected:Npn \@@_typeset_mark_wrapper:n #1
+\cs_new_protected:Npn \@@_typeset_mark_wrapper:nnn #1#2#3
{
\mode_leave_vertical:
\mode_if_horizontal:T
{
- \tl_set:Ne \l_@@_saved_spacefactor_tl { \the\spacefactor }
+ \tl_set:Ne \l_@@_saved_spacefactor_tl
+ { \int_use:N \spacefactor }
+ \@@_multiple_check:
\nobreak
}
- #1
+ #2 % begin tagging function
+ #1 % mark
+ #3 % end tagging function
+ \@@_multiple_prepare:
\mode_if_horizontal:T
{ \spacefactor \l_@@_saved_spacefactor_tl }
\scan_stop:
@@ -1081,7 +1251,7 @@
{
\tl_if_empty:NF \l_@@_note_label_tl
{ \exp_args:NV \label \l_@@_note_label_tl }
- \tl_if_empty:NF \l_@@_note_zlabel_tl
+ \tl_if_empty:NF \l_@@_note_zlabel_tl
{ \exp_args:NV \zlabel \l_@@_note_zlabel_tl }
}
% \end{macrocode}
@@ -1107,10 +1277,12 @@
% \cs{@@_note_ref:nn} \Arg{star bool} \Arg{label}
% \end{syntax}
% \begin{macrocode}
+\tl_new:N \l_@@_note_ref_label_tl
\cs_new_protected:Npn \@@_note_ref:nn #1#2
{
\group_begin:
- \@@_typeset_mark_wrapper:n
+ \tl_set:Nn \l_@@_note_ref_label_tl {#2}
+ \@@_typeset_mark_wrapper:nnn
{
\bool_lazy_and:nnTF
{ ! #1 }
@@ -1121,6 +1293,8 @@
}
{ \@@_make_mark:nnn { \ref*{#2} } { } { } }
}
+ { \tag_socket_use:n { postnotes/postnoteref/begin } }
+ { \tag_socket_use:n { postnotes/postnoteref/end } }
\group_end:
}
% \end{macrocode}
@@ -1404,6 +1578,7 @@
\bool_if:NTF \l_@@_print_as_list_bool
{ \exp_args:Ne \begin { \l_@@_print_env_tl } }
{ \group_begin: }
+ \tag_socket_use:n { postnotes/printlist/begin }
\l_@@_print_format_tl
}
\group_begin:
@@ -1424,6 +1599,7 @@
{ \l_@@_print_counter_tl }
\cs_set:Npe \@currentlabel
{ \p@postnote \l_@@_print_mark_tl }
+ \tag_socket_use:n { postnotes/printnote/begin }
\@@_text_mark_wrapper:n
{
\MakeLinkTarget*
@@ -1434,7 +1610,10 @@
{ \l_postnotes_print_note_id_tl }
\l_@@_print_mark_tl
}
+ \tag_socket_use:n { postnotes/printtext/begin }
\l_@@_print_content_tl
+ \tag_socket_use:n { postnotes/printtext/end }
+ \tag_socket_use:n { postnotes/printnote/end }
\l_@@_post_printnote_tl
\group_end:
% \end{macrocode}
@@ -1457,6 +1636,7 @@
}
\tl_if_eq:NnF \l_@@_print_type_next_tl { note }
{
+ \tag_socket_use:n { postnotes/printlist/end }
\bool_if:NTF \l_@@_print_as_list_bool
{ \exp_args:Ne \end { \l_@@_print_env_tl } }
{ \group_end: }
@@ -1524,14 +1704,23 @@
{
\bool_if:NTF \l_@@_print_as_list_bool
{
- \item [ \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl ]
+ \item
+ [
+ \tag_socket_use:n { postnotes/printmark/begin }
+ \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl
+ \tag_socket_use:n { postnotes/printmark/end }
+ ]
% \end{macrocode}
% Leave vertical mode to avoid ``perhaps a missing \cs{item}'' error for empty
% notes.
% \begin{macrocode}
\mode_leave_vertical:
}
- { \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl }
+ {
+ \tag_socket_use:n { postnotes/printmark/begin }
+ \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl
+ \tag_socket_use:n { postnotes/printmark/end }
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2345,10 +2534,12 @@
% \cs{@@_note_zref:nn} \Arg{star bool} \Arg{label}
% \end{syntax}
% \begin{macrocode}
+ \tl_new:N \l_@@_note_zref_zlabel_tl
\cs_new_protected:Npn \@@_note_zref:nn #1#2
{
\group_begin:
- \@@_typeset_mark_wrapper:n
+ \tl_set:Nn \l_@@_note_zref_zlabel_tl {#2}
+ \@@_typeset_mark_wrapper:nnn
{
\bool_lazy_all:nTF
{
@@ -2363,6 +2554,8 @@
}
{ \@@_make_mark:nnn { \zref{#2} } { } { } }
}
+ { \tag_socket_use:n { postnotes/postnotezref/begin } }
+ { \tag_socket_use:n { postnotes/postnotezref/end } }
\group_end:
}
% \end{macrocode}
@@ -2578,6 +2771,663 @@
% \end{macrocode}
%
%
+% \subsection*{PDF Tagging (experimental)}
+%
+% Note: All of this mostly presumes
+% \texttt{\cs{DocumentMetadata}\{testphase=phase-III\}} and was tested with
+% it. For \opt{listenv=none}, I'd expect things to work with
+% \texttt{phase-II}, but this is only lightly tested.
+%
+% A first thing to consider in tagging endnotes is how we want to represent
+% them in the PDF structure. My first thought, for lack of another, was:
+% emulate footnotes. There's no relevant semantic difference at the structure
+% level between the two, and the tagging support for footnotes was done by the
+% pros. And one distinctive characteristic the the footnotes tagging is that
+% the footnote itself is placed in the structure as a child to the (parent)
+% \texttt{text} element which surrounds the footnote mark. However, for
+% endnotes this introduces a number of problems and complicates things. While
+% footnotes ``float around'' and have no real structure of their own, that is
+% not true for endnotes. Endnotes comprise a proper document section, and may
+% be printed in a list environment, etc. So when the tagging of footnotes
+% places the footnote structure element as a child element of the mark's
+% surrounding text, this is arguably for a lack of other options. Where else,
+% after all? Indeed, a typical \texttt{html} would render footnotes at the
+% end of the page, and not inline. True the normal \texttt{html} page is much
+% smaller than our typical PDF, but the point stands. We can have a hover
+% over call out for footnotes, but the same could be done for end notes,
+% regardless of the parent-child relation (as long as the required
+% cross-references are in place). On the other hand, for endnotes this is not
+% an issue: they have a natural place to be plugged into. Furthermore, making
+% an endnote a child of the text surrounding its mark leaves an empty
+% ``skeleton'' of the endnotes section: the heading, the list structure, etc.
+% Technically, we could clean that too, but clearly that's not the way to
+% go\dots{}.
+%
+% Finally, the parent-child relation is not required by \texttt{PDF} standards
+% for the relevant structure types. The \texttt{PDF} 2.0 standard
+% (ISO~32000-2:2020), says the following about \texttt{FENote}:
+%
+% \begin{quote}
+% Used to markup footnotes and endnotes. Footnotes and endnotes are content
+% that is not normally read as part of the enclosing content from which it
+% is referenced, but rather consulted at the reading person's discretion.
+% In order for text to be considered a footnote or endnote, there should be
+% a reference from the enclosing content to the footnote or endnote. Such
+% reference may be achieved by means of a Link structure element through a
+% structure destination in its link annotation (see ``Table 368 — General
+% inline level structure types''), or use of Ref in structure elements (see
+% ``Table 355 — Entries in a structure element dictionary'').
+% \end{quote}
+%
+% The \texttt{PDF} 1.7 standard (PDF~32000-1:2008), says the following about
+% \texttt{Note}:
+%
+% \begin{quote}
+% An item of explanatory text, such as a footnote or an endnote, that is
+% referred to from within the body of the document. It may have a label
+% (structure type Lbl; see ``List Elements'' in 14.8.4.3, ``Block-Level
+% Structure Elements'') as a child. The note may be included as a child of
+% the structure element in the body text that refers to it, or it may be
+% included elsewhere (such as in an endnotes section) and accessed by means
+% of a reference (structure type Reference).
+%
+% Tagged PDF does not prescribe the placement of footnotes in the page
+% content order. They may be either inline or at the end of the page, at
+% the discretion of the conforming writer.
+% \end{quote}
+%
+% So, the note \emph{may} be included as a child of the surrounding text, but
+% that's not required (PDF 2.0 does not even mention that). What is required
+% is the reference between the elements. All in all, let's not follow
+% footnotes in establishing the parent-child relation.
+%
+%
+% Another smaller but related issue is how to treat the list structure in
+% \cs{printpostnotes} when \opt{listenv} is used. The natural thing here
+% would be to use an \env{enumerate} type list (or, in PDF lingo, for the
+% \texttt{ListNumbering} attribute to be \texttt{Ordered}), where the mark is
+% used as the item's label (even if, technically, we use the list like a
+% \env{description} in that we feed the label of every \cs{item} and though
+% there is an implicit underlying counter, the list itself has no bearing upon
+% it). The problem here is that the PDF 2.0 standards determine that the
+% \texttt{FENote} structure element cannot be a child of a \texttt{LI} (list
+% item). However, at least in principle, we also would like to have the
+% \texttt{endnotelabel} element to be a child of the \texttt{endnote} element.
+% Thus, we have a conflict, the mc-chunk can only be used once, and can be
+% either the \texttt{Lbl} of the \texttt{LI}, or the \texttt{endnotelabel} for
+% the \texttt{endnote}. Currently, for the list case, I'm using an
+% \texttt{EndnotesList} class, which we define to have \texttt{ListNumbering}
+% as \texttt{Ordered}, with the mark as \texttt{Lbl} for \texttt{LI}, and
+% letting \texttt{endnote} be a child of \texttt{LBody}. In a way, the
+% possibility of exporting the tagged content to different formats makes me
+% think that this is the most appropriate for the this case. For the case of
+% \texttt{listenv=none}, the \texttt{endnote}s were made child of the
+% \texttt{Sect} in which they occur. The \texttt{endnotelabel} was then
+% included as part (child) of the \texttt{endnote}. In this, this treatment
+% emulates the one given for footnotes in the kernel. But, at the same time,
+% it is less than ideal for machine readability purposes, since whether the
+% \texttt{endnotelabel} is part of \texttt{endnote} or not depends on if there
+% is a list environment involved. Alas, I see no easy way around the PDF
+% standard restriction for the list case.
+%
+%
+% On the \LaTeX{} side of things, adding support for tagging entails two basic
+% tasks: i) applying the tagging markup at the appropriate places; ii)
+% generating references between the ``mark(s)'' and the ``text'' (plus
+% cross-reference commands to their respective targets).
+%
+% Regarding tagging references, we have three different cases: i) a regular
+% \cs{postnote}; ii) a \cs{postnoteref} to a note labeled from inside the
+% note; and iii) a \cs{postnoteref} to a note labeled with the \opt{label}
+% option.
+%
+% For regular \cs{postnote}s it is trivial to establish the reference using
+% the \texttt{label} / \texttt{ref} options of \pkg{tagpdf}.
+%
+% For \cs{postnoteref}s, however labeled, the connection \emph{must} be
+% established at \cs{postnoteref}, for the simple fact that any \cs{postnote}
+% can be referenced by arbitrarily many \cs{postnotref}s. So we need to be
+% able to retrieve the note ID from the ``text'' to which the reference refers
+% to at \cs{postnoteref}. However, at \cs{postnotref} the only information we
+% have is the \meta{label} but, since it is unique, we can establish a
+% connection through it.
+%
+% When the label is set from inside the note, it is actually set at
+% \cs{printposntones}, at which place we have access to
+% \cs{l_postnotes_print_note_id_tl} so we can use the \meta{label} to pass
+% that information around to \cs{postnoteref}. With a standard \cs{label} we
+% must set an additional \pkg{ltproperties} label, using the new
+% \texttt{label} hook, which \cs{postnoteref} can retrieve from its own
+% \meta{label} argument. For \cs{zlabel} this particular task is trivial,
+% since we can simply add a property to store the note ID with the label,
+% which \cs{postnotezref} can extract.
+%
+% When the label is set from the option, things are slightly more complicated,
+% because the label is set at \cs{postnote}, at which place we do not have
+% access to the note ID of the ``text''. What we do here is then store the
+% label with the note and restore it later at \cs{printpostnotes} as usual.
+% Then, at that point, we can set an auxiliary label which can be retrieved
+% from \cs{postnoteref} from its own \meta{label} argument, as we did for the
+% case of labels inside the note. Auxiliary labels are handled with
+% \pkg{ltproperties} labels.
+%
+%
+% Unconditionally define tagging support sockets.
+% \begin{macrocode}
+\socket_new:nn { tagsupport/postnotes/mark/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/mark/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/mark/nomark }{ 0 }
+\socket_new:nn { tagsupport/postnotes/multsep/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/multsep/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printlist/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printlist/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printnote/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printnote/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printmark/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printmark/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printtext/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printtext/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnoteref/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnoteref/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnotezref/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnotezref/end }{ 0 }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\bool_lazy_and:nnT
+ { \cs_if_exist_p:N \tag_if_active_p: }
+ { \tag_if_active_p: }
+ {
+% \end{macrocode}
+% FIXME Review or remove these settings if/when they are included upstream
+% (see \url{https://github.com/latex3/tagging-project/issues/728}).
+% \begin{macrocode}
+ \tagpdfsetup
+ {
+ role/new-tag = { tag=endnote, role=FENote } ,
+ role/new-tag = { tag=endnotemark, role=Lbl } ,
+ role/new-tag = { tag=endnotelabel, role=Lbl } ,
+ role/new-attribute =
+ { EndnoteType } { /O /FENote /NoteType /Endnote } ,
+ role/new-attribute =
+ { EndnotesList } { /O /List /ListNumbering /Ordered } ,
+ }
+% \end{macrocode}
+% \cs{postnote}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/mark/begin } { default }
+ {
+ \tag_mc_end_push:
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ label = { postnotemark. \l_postnotes_note_id_tl } ,
+ ref = { postnote. \l_postnotes_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnotemark } \l_postnotes_note_id_tl
+ \tag_mc_begin:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/mark/end } { default }
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotemark
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/mark/nomark } { default }
+ {
+ \tag_struct_begin:n
+ {
+ tag = NonStruct ,
+ label = { postnotemark. \l_postnotes_note_id_tl } ,
+ ref = { postnote. \l_postnotes_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnotemark } \l_postnotes_note_id_tl
+ \tag_struct_end: % NonStruct
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/mark/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/mark/end } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/mark/nomark } { default }
+% \end{macrocode}
+% \opt{multiple}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/multsep/begin } { default }
+ {
+ \tag_mc_end_push:
+ \tag_mc_begin:n { artifact }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/multsep/end } { default }
+ {
+ \tag_mc_end:
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/end } { default }
+% \end{macrocode}
+% \cs{printpostnotes}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/printlist/begin } { default }
+ { \tag_tool:n { para/tagging=false } }
+ \socket_new_plug:nnn { tagsupport/postnotes/printlist/end } { default }
+ { }
+ \socket_assign_plug:nn { tagsupport/postnotes/printlist/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printlist/end } { default }
+ \socket_new_plug:nnn { tagsupport/postnotes/printnote/begin } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ {
+ \tag_struct_begin:n
+ {
+ tag = endnote ,
+ attribute-class = EndnoteType ,
+ label = { postnote. \l_postnotes_print_note_id_tl } ,
+% \end{macrocode}
+% CHECK Should we really add a back reference here? I couldn't find any hint
+% about this in the standards, but \pkg{latex-lab-footnotes} does it. No
+% harm, I guess.
+% \begin{macrocode}
+ ref = { postnotemark. \l_postnotes_print_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnote } \l_postnotes_print_note_id_tl
+ }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/printnote/end } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ { \tag_struct_end: } % endnote
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/printnote/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printnote/end } { default }
+ \socket_new_plug:nnn { tagsupport/postnotes/printmark/begin } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ {
+ \tag_struct_begin:n { tag=endnotelabel }
+ \tag_mc_begin:n{ tag=Lbl }
+ }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/printmark/end } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotelabel
+ }
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/printmark/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printmark/end } { default }
+ \socket_new_plug:nnn { tagsupport/postnotes/printtext/begin } { default }
+ {
+ \bool_if:NTF \l_@@_print_as_list_bool
+ {
+ \tag_struct_begin:n
+ {
+ tag = endnote ,
+ attribute-class = EndnoteType ,
+ label = { postnote. \l_postnotes_print_note_id_tl } ,
+% \end{macrocode}
+% CHECK Ditto.
+% \begin{macrocode}
+ ref = { postnotemark. \l_postnotes_print_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnote } \l_postnotes_print_note_id_tl
+ \tag_struct_begin:n { tag=text-unit }
+ \tag_struct_begin:n { tag=text }
+ \tag_tool:n { para/tagging=true }
+ \tag_mc_begin:n{}
+ }
+ {
+ \tag_struct_begin:n { tag=text-unit }
+ \tag_struct_begin:n { tag=text }
+ \tag_tool:n { para/tagging=true }
+ \tag_mc_begin:n{}
+ }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/printtext/end } { default }
+ {
+ \bool_if:NTF \l_@@_print_as_list_bool
+ {
+ \tag_mc_end:
+ \tag_tool:n { para/tagging=false }
+ \tag_struct_end: % text
+ \tag_struct_end: % text-unit
+ \tag_struct_end: % endnote
+ }
+ {
+ \tag_mc_end:
+ \tag_tool:n { para/tagging=false }
+ \tag_struct_end: % text
+ \tag_struct_end: % text-unit
+ }
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/printtext/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printtext/end } { default }
+% \end{macrocode}
+% Provide \pkg{xtemplate} based redefinitions of \env{postnoteslist} and
+% \pkg{postnoteslisthang}. This is needed because, as far as I can tell, it
+% is the only way to set \opt{tag} and \opt{attribute-class} for the list
+% struct without tampering with \pkg{latex-lab-testphase-block}'s internals.
+% \begin{macrocode}
+ \IfInstanceExistsT { blockenv } { list }
+ {
+ \DeclareInstance { blockenv } { postnoteslist } { display }
+ {
+ env-name = postnoteslist ,
+ tag-name = L ,
+ tag-class = EndnotesList ,
+ tagging-recipe = list ,
+ inner-level-counter = ,
+ level-increase = true ,
+ setup-code = ,
+ block-instance = list ,
+ inner-instance = postnoteslist ,
+ }
+ \DeclareInstanceCopy { blockenv }
+ { postnoteslisthang } { postnoteslist }
+ \EditInstance { blockenv } { postnoteslisthang }
+ { env-name = postnoteslisthang }
+ \DeclareInstance { list } { postnoteslist } { std }
+ { item-instance = postnoteslist }
+ \DeclareInstance { item } { postnoteslist } { std }
+ {
+ label-format = { \hspace { \labelsep } \normalfont ~ #1 } ,
+ label-align = left ,
+ }
+ \RenewDocumentEnvironment { postnoteslist } { }
+ {
+ \UseInstance { blockenv } { postnoteslist }
+ {
+ leftmargin = 0pt ,
+ label-width = 0pt ,
+ item-indent = .5\parindent ,
+ rightmargin = 0pt ,
+ parindent = \parindent ,
+ par-skip = \parskip ,
+ item-skip = 0pt ,
+ beginsep = .5\topsep ,
+ begin-par-skip = .5\partopsep ,
+ }
+ }
+ { \endblockenv }
+ \RenewDocumentEnvironment { postnoteslisthang } { }
+ {
+ \UseInstance { blockenv } { postnoteslisthang }
+ {
+ leftmargin = 1em ,
+ label-width = -\leftmargin ,
+ item-indent = -2\leftmargin ,
+ rightmargin = 0pt ,
+ parindent = \parindent ,
+ par-skip = \parskip ,
+ item-skip = 0pt ,
+ beginsep = .5\topsep ,
+ begin-par-skip = .5\partopsep ,
+ }
+ }
+ { \endblockenv }
+ }
+% \end{macrocode}
+% Setup for \cs{label} and \cs{zlabel} inside the note.
+% \begin{macrocode}
+ \bool_new:N \l_@@_inside_note_bool
+ \AddToHookWithArguments { label } [ postnotes/tagsup ]
+ {
+ \bool_if:NT \l_@@_inside_note_bool
+ {
+ \property_record:nn { postnote@label@innote. #1 }
+ { postnotes/tagsup@noteid }
+ }
+ }
+ \AddToHook { postnotes/print/note/begin } [ postnotes/tagsup ]
+ { \bool_set_true:N \l_@@_inside_note_bool }
+ \property_new:nnnn { postnotes/tagsup@noteid } { now } { 0 }
+ { \l_postnotes_print_note_id_tl }
+ \AddToHook { package/zref-user/after } [ postnotes/tagsup ]
+ {
+ \zref@newprop { postnotes@tagsup@noteid } [ 0 ]
+ { \l_postnotes_print_note_id_tl }
+ \AddToHook { postnotes/print/note/begin } [ postnotes/tagsup ]
+ { \zref@localaddprop { main } { postnotes@tagsup@noteid } }
+ }
+% \end{macrocode}
+% Setup for \opt{label} and \opt{zlabel} options.
+% \begin{macrocode}
+ \AddToHook { postnotes/note/store } [ postnotes/tagsup ]
+ {
+ \tl_if_empty:NF \l_@@_note_label_tl
+ {
+ \prop_gput:cnV
+ { \@@_data_name:e { \l_postnotes_note_id_tl } }
+ { label } \l_@@_note_label_tl
+ }
+ }
+ \AddToHook { package/zref-user/after } [ postnotes/tagsup ]
+ {
+ \AddToHook { postnotes/note/store } [ postnotes/tagsup ]
+ {
+ \tl_if_empty:NF \l_@@_note_zlabel_tl
+ {
+ \prop_gput:cnV
+ { \@@_data_name:e { \l_postnotes_note_id_tl } }
+ { zlabel } \l_@@_note_zlabel_tl
+ }
+ }
+ }
+ \AddToHook { postnotes/print/note/begin } [ postnotes/tagsup ]
+ {
+ \@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
+ { label } \l_@@_restore_tmp_tl
+ \tl_if_empty:NF \l_@@_restore_tmp_tl
+ {
+ \exp_args:Ne \property_record:nn
+ { postnote@label@option. \l_@@_restore_tmp_tl }
+ { postnotes/tagsup@noteid }
+ }
+ \@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
+ { zlabel } \l_@@_restore_tmp_tl
+ \tl_if_empty:NF \l_@@_restore_tmp_tl
+ {
+ \exp_args:Ne \property_record:nn
+ { postnote@zlabel@option. \l_@@_restore_tmp_tl }
+ { postnotes/tagsup@noteid }
+ }
+ }
+% \end{macrocode}
+% CHECK \pkg{latex-lab-footnotes} creates the footnote structure element
+% (\texttt{FENote} tag) and adds to it a \texttt{/Ref} entry pointing to the
+% structures of \emph{all} marks related to the note, and that includes
+% \cs{footref}s. I don't see anything stating something of the sort in the
+% standards, the backref of the original mark is already a stretch. I also
+% fail to see why this is needed, and how it could be used. But\dots{} I
+% trust Ulrike knows better than me.
+% \begin{macro}
+% {
+% \@@_tagsup_store_sctructnum:nN
+% \@@_tagsup_store_crossref:nN
+% }
+% \begin{syntax}
+% \cs{@@_tagsup_store_sctructnum:nN} \Arg{ref type} \Arg{ID number of note}
+% \cs{@@_tagsup_store_crossref:nN} \Arg{ref type} \Arg{ID number of note}
+% \end{syntax}
+% \meta{ref type} is either ``\texttt{postnote}'' or
+% ``\texttt{postnotemark}''.
+% \begin{macrocode}
+ \prop_new:N \g_@@_tagsup_structnums_prop
+ \cs_new_protected:Npn \@@_tagsup_store_sctructnum:nN #1#2
+ {
+ \prop_gput:Nee \g_@@_tagsup_structnums_prop
+ { #1 . #2 } { \tag_get:n { struct_num } }
+ }
+ \prop_new:N \g_@@_tagsup_crossrefs_prop
+ \cs_new_protected:Npn \@@_tagsup_store_crossref:nN #1#2
+ {
+ \prop_gput:Nee \g_@@_tagsup_crossrefs_prop
+ { \tag_get:n { struct_num } } { #1 . #2 }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_tagsup_gput_ref:nn}
+% \begin{syntax}
+% \cs{@@_tagsup_gput_ref:nn} \Arg{structnum refering from}
+% ~~~~\Arg{structnum being referenced to}
+% \end{syntax}
+% See \cs{__fnote_gput_ref:nn}.
+% \begin{macrocode}
+ \cs_new_protected:Npn \@@_tagsup_gput_ref:nn #1#2
+ {
+ \tag_if_active:T
+ { \tag_struct_gput:ene {#1} {ref} { \tag_struct_object_ref:e {#2} } }
+ }
+% \end{macrocode}
+% \end{macro}
+% The actual inclusion of the reference has to be done at the end, since the
+% \opt{ref} option called by \cs{tag_struct_begin:n} does not check if the
+% variable to store the refs already exists, resulting in a clash if we add it
+% immediately and a \cs{posnoteref} is made before \cs{printposnotes}, and
+% also so that the ``main'' reference always comes first at the list.
+% \begin{macrocode}
+ \AddToHook { tagpdf/finish/before } [ postnotes/tagsup ]
+ {
+ \prop_map_inline:Nn \g_@@_tagsup_crossrefs_prop
+ {
+ \@@_tagsup_gput_ref:nn
+ { \prop_item:Nn \g_@@_tagsup_structnums_prop {#2} }
+ {#1}
+ }
+ }
+% \end{macrocode}
+% \cs{postnoteref}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/postnoteref/begin } { default }
+ {
+ \tag_mc_end_push:
+ \property_if_recorded:eeTF
+ { postnote@label@innote. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \cs{label} inside the note.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \property_ref:ee
+ { postnote@label@innote. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnote. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnote } \l_@@_tmpa_tl
+ }
+ {
+ \property_if_recorded:eeTF
+ { postnote@label@option. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \opt{label} option.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \property_ref:ee
+ { postnote@label@option. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnotemark. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnotemark } \l_@@_tmpa_tl
+ }
+ { \tag_struct_begin:n { tag = endnotemark } }
+ }
+ \tag_mc_begin:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/postnoteref/end } { default }
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotemark
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnoteref/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnoteref/end } { default }
+% \end{macrocode}
+% \cs{postnotezref}
+% \begin{macrocode}
+ \AddToHook { package/zref-user/after } [ postnotes/tagsup ]
+ {
+ \socket_new_plug:nnn { tagsupport/postnotes/postnotezref/begin } { default }
+ {
+ \tag_mc_end_push:
+ \zref@ifrefcontainsprop { \l_@@_note_zref_zlabel_tl }
+ { postnotes@tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \cs{zlabel} inside the note.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \zref@extract { \l_@@_note_zref_zlabel_tl }
+ { postnotes@tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnote. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnote } \l_@@_tmpa_tl
+ }
+ {
+ \property_if_recorded:eeTF
+ { postnote@zlabel@option. \l_@@_note_zref_zlabel_tl }
+ { postnotes/tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \opt{zlabel} option.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \property_ref:ee
+ {
+ postnote@zlabel@option.
+ \l_@@_note_zref_zlabel_tl
+ }
+ { postnotes/tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnotemark. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnotemark } \l_@@_tmpa_tl
+ }
+ { \tag_struct_begin:n { tag = endnotemark } }
+ }
+ \tag_mc_begin:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/postnotezref/end } { default }
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotemark
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnotezref/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnotezref/end } { default }
+ }
+ }
+% \end{macrocode}
+%
+%
% \section{Languages}
% \label{sec:languages}
%
@@ -2804,3 +3654,7 @@
% \PrintIndex
%
%
+
+% Local Variables:
+% jinx-local-words: "endnote endnotes"
+% End:
diff --git a/macros/latex/contrib/postnotes/postnotes.ins b/macros/latex/contrib/postnotes/postnotes.ins
index 8cac7bab06..ffa9341b1b 100644
--- a/macros/latex/contrib/postnotes/postnotes.ins
+++ b/macros/latex/contrib/postnotes/postnotes.ins
@@ -4,7 +4,7 @@
%
% This file is part of the LaTeX package "postnotes".
%
-% Copyright (C) 2022-2023 gusbrs
+% Copyright (C) 2022-2024 gusbrs
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
This file was generated from file(s) of the LaTeX package "postnotes".
-Copyright (C) 2022-2023 gusbrs
+Copyright (C) 2022-2024 gusbrs
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/spbmark/README.md b/macros/latex/contrib/spbmark/README.md
index 9fe0dc2c5c..b366904475 100644
--- a/macros/latex/contrib/spbmark/README.md
+++ b/macros/latex/contrib/spbmark/README.md
@@ -1,5 +1,5 @@
# The `spbmark` package
-Customize superscripts and subscripts (v1.46n)
+Customize superscripts and subscripts (v1.46p)
## Abstract
`spbmark` provides three commands `\super`, `\sub` and `\supersub` to improve the layout of superscripts and subscripts which can be adjusted the relative position and format, and can be used in text and math mode.
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index c0f3a42077..66efc0b928 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index 4046c8bf9c..5a5c17a4e9 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse}
-\ProvidesExplPackage{spbmark}{2024/07/14}{1.46n}
+\ProvidesExplPackage{spbmark}{2024/10/15}{1.46p}
{Customize superscripts and subscripts}
\cs_generate_variant:Nn \box_set_ht:Nn { cv }
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index d452fd0904..372be138e0 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -1,15 +1,16 @@
\documentclass[load-preamble+]{cnltx-doc}
-\usepackage{siunitx,setspace,hologo,changelog,enumitem}
+\usepackage{siunitx,hologo,changelog,enumitem,codehigh}
\usepackage[spbmark]{altsubsup}
\usepackage[margin = 1in,marginparwidth = 0.6in,footskip = 0.5in]{geometry}
\usepackage[noto]{newtxmath}
\setcnltx
{
package = spbmark,
- version = v1.46n,
- date = 2024/07/14,
+ version = v1.46p,
+ date = 2024/10/15,
authors = Qu Yi,
+ title = \spbmark{} package,
info = Customize superscripts and subscripts,
email = toquyi@163.com,
url = https://github.com/texno3/spbmark,
@@ -18,10 +19,7 @@
\pkg*{spbmark} provides three commands \cs{super}, \cs{sub} and \cs{supersub} to improve the layout of superscripts and subscripts which can be adjusted the relative position and format, and can be used in text and math mode.
},
color-scheme = blue,
- listings-options = {numbers = none,gobble = 2,lineskip = 1pt},
- pre-output = {\parindent = 0em\setstretch{1.3}},
- before-skip = \smallskipamount,
- after-skip = \smallskipamount
+ title-format = \LARGE
}
\makeatletter
\newcommand{\splitmeta}[2]{\meta{#1}\texttt{,}\meta{#2}}
@@ -41,9 +39,11 @@
\newnote{\newtag}[1]{\textcolor{red}{#1}}
\renewcommand{\emph}[1]{\textcolor{red}{#1}}
\renewcommand{\cnltx@write@lastname}{}
+\renewcommand{\cnltxpackagenameformat}[1]{\textcolor{cnltx}{\textsf{#1}}}
\setlist{nosep,topsep = \smallskipamount}
\setlist[description,1]{leftmargin = \parindent}
\setlist[itemize,1]{leftmargin = *}
+\SetCodeHighStyle[default]{2}{cs}
\makeatother
\begin{document}
@@ -58,27 +58,27 @@ The following macro package options will redefine the script commands of the \La
The \code{\^{}} and \code{\_{}} tokens in the math mode are equivalent to the \cs{super} and \cs{sub} commands. The command \cs{defspbstyle} can be used to define the style \code{mathsp*} and \code{mathsb*} to change the format of the math superscripts and subscripts.
\keychoice{foot}{true,\fbox{false}}
The format of the footnote mark match the superscripts global move and format settings. \cs{defspbstyle} can be used to define the superscripts style \code{fnmark} to change the format of the footnote mark.
- \begin{example}[code-only]
- \defspbstyle{textsp}{vmove=-1pt,cmd=\bfseries}
- \defspbstyle{mathsb}{hmove=0.5em}
- \defspbstyle{fnmark}{cmd=\small\color{red}}
- \end{example}
+\begin{codehigh}
+\defspbstyle{textsp}{vmove=-1pt,cmd=\bfseries}
+\defspbstyle{mathsb}{hmove=0.5em}
+\defspbstyle{fnmark}{cmd=\small\color{red}}
+\end{codehigh}
\keychoice{both}{true,\fbox{false}}
The values of \option{text} and \option{math} two options are \code{true} or \code{false} at the same time.
\keychoice{all}{true,\fbox{false}}
The values of \option{text}, \option{math} and \option{foot} three options are \code{true} or \code{false} at the same time.
- \begin{example}[code-only]
- \usepackage[both]{spbmark}
- \usepackage[text,foot=true]{spbmark}
- \spbset{all=false,math}
- \end{example}
+\begin{codehigh}
+\usepackage[both]{spbmark}
+\usepackage[text,foot=true]{spbmark}
+\spbset{all=false,math}
+\end{codehigh}
\keychoice{spcore}{\fbox{trad},none}\newtag{New\\v1.46k}%
Kernel command case for text and math modes superscripts. If \code{none} is selected, support for the superscripts kernel command is removed, and the \option{cmd} and \option{vmove} options need to be set to control the size and offset of the superscripts.
- \begin{example}[code-only]
- \usepackage[spcore=none]{spbmark}
- \usepackage{graphicx}
- \spbset{spcmd=\scalebox{0.6},spvmove=5pt}
- \end{example}
+\begin{codehigh}
+\usepackage[spcore=none]{spbmark}
+\usepackage{graphicx}
+\spbset{spcmd=\scalebox{0.6},spvmove=5pt}
+\end{codehigh}
\keychoice{sbcore}{\fbox{trad},none}\newtag{New\\v1.46k}%
Option for subscripts kernel command case, similar to the \option{spcore} option.
\end{options}
@@ -101,13 +101,13 @@ There are currently three commands to print superscripts and subscripts. Their f
Save the width of the previous marker and provide center alignment.
\command{rlastwd}
Save the width of the previous marker and provide right alignment. Actually this is the width of the next marker.
- \begin{example}
- 1A\super{bcd}\sub{e}B \\
- 2A\super{bcd}\sub[hmove=-\llastwd]{e}B \\
- 3A\sub{e}\super{bcd}[hmove=-\llastwd]B \\
- 4A\super{bcd}\sub[hmove=-\clastwd]{e}B \\
- 5A\super{bcd}\sub[hmove=-\rlastwd]{e}B
- \end{example}
+\begin{demohigh}
+1A\super{bcd}\sub{e}B \\
+2A\super{bcd}\sub[hmove=-\llastwd]{e}B \\
+3A\sub{e}\super{bcd}[hmove=-\llastwd]B \\
+4A\super{bcd}\sub[hmove=-\clastwd]{e}B \\
+5A\super{bcd}\sub[hmove=-\rlastwd]{e}B
+\end{demohigh}
\command{supersub}[\sarg\oarg{kv list}\marg{super cont}\marg{sub cont}\oarg{kv list}]
This is a command that outputs both superscript and subscript at the same time. You can also use the shorter command \cs{spb} instead of it. The two \meta{kv list} are equivalent.
\command{superwd}
@@ -118,42 +118,42 @@ There are currently three commands to print superscripts and subscripts. Their f
Save the maximum width of superscript and subscript in the previous super-subscript command. That is, it is the larger of the \cs{superwd} and \cs{subwd} commands.
If horizontally move is negative and its absolute value is \emph{less} than the maximum width of the marker, then the marker overlaps the subsequent text. To avoid this use the command with the \emph{asterisk} parameter or adjust the horizontal distance with the marker length commands.
- \begin{example}
- \spbset{spvmove=5pt,vsep=1.8ex,spcmd=\color{blue}}
- 1A\super[hmove=-8pt]{super}B \\
- 2A\supersub[hmove=-8pt]{examsuper}{sub}B \\
- 3A\super*[hmove=-8pt]{super}B \\
- 4A\supersub*[hmove=-8pt]{examsuper}{sub}B \\
- 5A\super[hmove=-8pt]{super}\hspace{\dimexpr(\llastwd-8pt)}B \\
- 6A\supersub[hmove=-8pt]{examsuper}{sub}\hspace{\dimexpr(\maxwd-8pt)}B
- \end{example}
+\begin{demohigh}
+\spbset{spvmove=5pt,vsep=1.8ex,spcmd=\color{blue}}
+1A\super[hmove=-8pt]{super}B \\
+2A\supersub[hmove=-8pt]{examsuper}{sub}B \\
+3A\super*[hmove=-8pt]{super}B \\
+4A\supersub*[hmove=-8pt]{examsuper}{sub}B \\
+5A\super[hmove=-8pt]{super}\hspace{\dimexpr(\llastwd-8pt)}B \\
+6A\supersub[hmove=-8pt]{examsuper}{sub}\hspace{\dimexpr(\maxwd-8pt)}B
+\end{demohigh}
\command{defspbstyle}[\marg{style name}\marg{kv list}]
Defines the style of the superscripts or subscripts used for the \option{style} option.
\command{spbifmath}[\marg{math code}\marg{text code}]
In some cases, \code{math} or \code{text} output modes require different code for format or move. This command can be used when using the \code{match} option or changing the output mode locally, whitch should be used in the move or format options. It can switch the corresponding code according to different output modes.
\command{spbshortkv}[\marg{short opt}\marg{key value}]
Converts any existing key-value pair to a shorthand option. The value of key \code{\#1} indicates that the shorthand option needs to be assigned a value.
- \begin{example}
- \spbshortkv{x}{sphmove=#1}
- \defspbstyle{fancy}{sbcmd=\color{blue},mode=math}
- \spbshortkv{mysb}{style=fancy}
- 1A\super[x=2pt]{b} \\
- 2A\sub{b}[mysb]
- \end{example}
+\begin{demohigh}
+\spbshortkv{x}{sphmove=#1}
+\defspbstyle{fancy}{sbcmd=\color{blue},mode=math}
+\spbshortkv{mysb}{style=fancy}
+1A\super[x=2pt]{b} \\
+2A\sub{b}[mysb]
+\end{demohigh}
\end{commands}
The options common to \meta{kv list} of the three commands are as follows. They can also be used in \meta {key-value list} of the \cs{spbset} command. In this situation, in addition to \option{style} and \option{mode}, they will be set according to the type of the previous most recent command.
\begin{options}
\keyval{vmove}{fixed length}\Default{0pt}
- Vertical move of superscript or subscript. Represents the extra vertical distance \option{vsep} between superscript and subscript in super-subscript command. The vertical movement starts at the marker horizontal baseline position.
+ Vertical move of superscripts or subscripts. Represents the extra vertical distance \option{vsep} between superscript and subscript in super-subscript command. The vertical movement starts at the marker horizontal baseline position.
\keyval{hmove}{fixed length}\Default{0pt}
- Horizontal move of superscript or subscript. Represents the \emph{common} move of superscript and subscript in super-subscript command. The starting point for horizontal movement is to the left of the marker. Moved values can be expressed mathematically:
- \begin{example}
- 1A\super{b}[vmove=0.4ex+4pt/2,hmove=2pt*3-11.5pt] \\
- 2A\supersub[vsep={3pt,6pt-2bp}]{examsuper}{sub}
- \end{example}
+ Horizontal move of superscripts or subscripts. Represents the \emph{common} move of superscript and subscript in super-subscript command. The starting point for horizontal movement is to the left of the marker. Moved values can be expressed mathematically:
+\begin{demohigh}
+1A\super{b}[vmove=0.4ex+4pt/2,hmove=2pt*3-11.5pt] \\
+2A\supersub[vsep={3pt,6pt-2bp}]{examsuper}{sub}
+\end{demohigh}
\keyval{cmd}{format cmds}
- The format commands of superscript or subscript. The last command can take a parameter, which accepts superscript or subscript. Represents the format of superscript and subscript in the superscript and subscript commands.
+ The format commands of superscripts or subscripts. The last command can take a parameter, which accepts superscript or subscript. Represents the format \option{spbcmd} of superscript and subscript in super-subscript command.
\keyval{cmd+}{format cmds}
Add code to the previous option \option{cmd}.
\keyval{height}{fixed length}
@@ -163,22 +163,22 @@ The options common to \meta{kv list} of the three commands are as follows. They
\keyval{style}{style name}
Use the \meta{style name} defined by the \cs{defspbstyle} command to make it work global or local.
\keychoice{mode}{text,math,\fbox{match}}
- The mode of superscript or subscript output can be \code{text} or \code{math} mode. The \code{match} option automatically matches output modes according to the current mode.
+ The mode of superscripts or subscripts output can be \code{text} or \code{math} mode. The \code{match} option automatically matches output modes according to the current mode.
\keychoice{thiswd}{auto,\fbox{keep}}
Sets how the length of the this marker is handled after this command is used. If it is \code{keep}, the width of the previous marker remains the same. If it is \code{auto}, if the next token is a marker command and the upper or lower position is the \textcolor{red}{opposite} of the this command, the width of the this marker is maintained, otherwise the width automatically returns to \textcolor{red}{zero}.
- \begin{example}
- \spbset{sbhmove=-\llastwd,sbthiswd=auto,sbcmd=\color{red}}
- 1A\super{bcd}\sub[thiswd=keep]{e}Some texts\sub{e} \\
- 3A\super{bcd}\sub{e}Some texts\sub{e} \\
- 3A\sub{bcd}[thiswd=keep]\sub{e}Some texts\sub{e} \\
- 4A\sub{bcd}\sub{e}Some texts\sub{e}
- \end{example}
+\begin{demohigh}
+\spbset{sbhmove=-\llastwd,sbthiswd=auto,sbcmd=\color{red}}
+1A\super{bcd}\sub[thiswd=keep]{e}Some texts\sub{e} \\
+3A\super{bcd}\sub{e}Some texts\sub{e} \\
+3A\sub{bcd}[thiswd=keep]\sub{e}Some texts\sub{e} \\
+4A\sub{bcd}\sub{e}Some texts\sub{e}
+\end{demohigh}
\keyval{regex}{regular expression}
- After using the superscript or subscript command, this option is used to determine whether the \textcolor{red}{following} tokens match the \meta{regular expression}. If it does \textcolor{red}{not}, the width of the this marker returns to zero.
- \begin{example}[code-only]
- \newcommand{\mysp}[2][]{\super[regex=\c{mysb},#1]{#2}}
- \newcommand{\mysb}[2][]{\sub[regex=\c{mysp},#1]{#2}}
- \end{example}
+ After using a superscript or subscript command, this option is used to determine whether the \textcolor{red}{following} tokens match the \meta{regular expression}. If it does \textcolor{red}{not}, the width of the this marker returns to zero.
+\begin{codehigh}
+\newcommand{\mysp}[2][]{\super[regex=\c{mysb},#1]{#2}}
+\newcommand{\mysb}[2][]{\sub[regex=\c{mysp},#1]{#2}}
+\end{codehigh}
\end{options}
\section{Global control interface}
@@ -253,39 +253,39 @@ The following list of keys control the format of superscripts \emph{and} subscri
\section{Examples of use}
Here is a list of the three commands, please pay attention to the usage of optional parameter. Note when the horizontal move is negative, the starting point is at the right end of the mark.
-\begin{example}
- \defspbstyle{fancy}{cmd=\color{purple}}
- \spbset{spbcmd={\spbifmath{\mathtt}{\ttfamily},\color{blue}}}
- 1A\super[vmove=0.2ex,hmove=0.2em,cmd=\textcolor{red}]{exam}B \\
- 2$A\sub[style=fancy,cmd+=\mathsf,mode=math]{exam}B$ \\
- 3A\supersub[vsep=0.6ex,halign=c]{examsuper}{sub}B \\
- 4A\super{c}[vmove=5pt,hmove=-5.5pt]B\sub[vmove=5pt,hmove=-5pt]{d}AB \\
- 5A\super{c\super{d}}B
-\end{example}
+\begin{demohigh}
+\defspbstyle{fancy}{cmd=\color{purple}}
+\spbset{spbcmd={\spbifmath{\mathtt}{\ttfamily},\color{blue}}}
+1A\super[vmove=0.2ex,hmove=0.2em,cmd=\textcolor{red}]{exam}B \\
+2$A\sub[style=fancy,cmd+=\mathsf,mode=math]{exam}B$ \\
+3A\supersub[vsep=0.6ex,halign=c]{examsuper}{sub}B \\
+4A\super{c}[vmove=5pt,hmove=-5.5pt]B\sub[vmove=5pt,hmove=-5pt]{d}AB \\
+5A\super{c\super{d}}B
+\end{demohigh}
\subsection{siunitx}
It can also be used with the \pkg*{siunitx} package to output superscripts and subscripts in the unit:
-\begin{example}
- \spbset{spcmd=\spbifmath{}{\color{purple}}}
- \sisetup{text-superscript-command=\super}
- 1-\qty[mode=text]{10}{A^2} \\
- 2-\unit[mode=math]{kg.m/s\super[vmove=-1pt]{2}} \\
- 3-\qty[mode=text]{30}{A\supersub[hmove=1pt,cmd=\color{blue}]{b}{c}} \\
- 4-\spbset{sbhmove=2pt}\unit[mode=text]{A\sub{b}}
-\end{example}
+\begin{demohigh}
+\spbset{spcmd=\spbifmath{}{\color{purple}}}
+\sisetup{text-superscript-command=\super}
+1-\qty[mode=text]{10}{A^2} \\
+2-\unit[mode=math]{kg.m/s\super[vmove=-1pt]{2}} \\
+3-\qty[mode=text]{30}{A\supersub[hmove=1pt,cmd=\color{blue}]{b}{c}} \\
+4-\spbset{sbhmove=2pt}\unit[mode=text]{A\sub{b}}
+\end{demohigh}
\subsection{realscripts}
If the OpenType text font you are using does not have optical sizes, the superscripts and subscripts may not appear correctly. Loading the \pkg*{realscripts} package before the \pkg*{spbmark} package fixes this behavior.
-\begin{example}[code-only]
- \usepackage{realscripts,spbmark}
-\end{example}
+\begin{codehigh}
+\usepackage{realscripts,spbmark}
+\end{codehigh}
\subsection{altsubsup}
The \pkg*{altsubsup} package allows to write alternate superscripts and subscripts in math mode with \code{\^{}}\oarg{mark} and \code{\_{}}\oarg{mark} dimensions. When the package is loaded using the \code{spbmark} option, the superscripts and subscripts mechanism of \pkg*{spbmark} is used, you can use \cs{defspbstyle} to define its superscripts style \code{altsup} and subscripts style \code{altsub}.
-\begin{example}
- \defspbstyle{altsup}{sphmove=-\llastwd,spthiswd=auto,spvmove=1pt}
- $A_[bcd]^[e]B$
-\end{example}
+\begin{demohigh}
+\defspbstyle{altsup}{sphmove=-\llastwd,spthiswd=auto,spvmove=1pt}
+$A_[bcd]^[e]B$
+\end{demohigh}
\subsection{footnote}
\pkg*{spbmark} also patches the footer markers for standard document class and \cls*{KOMA-Script}. You can format the footer markers by redefining the \cs{fnmarkfont} command. Note that extra horizontal move does not work with footnote markers.