From d2d86e5041a7b35d055ccfa595df7b1252234d4b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 28 Jun 2021 20:36:34 +0000 Subject: koma-script (28jun21) git-svn-id: svn://tug.org/texlive/trunk@59737 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/koma-script/scrhack.dtx | 300 +++++++++++---------- 1 file changed, 151 insertions(+), 149 deletions(-) (limited to 'Master/texmf-dist/source/latex/koma-script/scrhack.dtx') diff --git a/Master/texmf-dist/source/latex/koma-script/scrhack.dtx b/Master/texmf-dist/source/latex/koma-script/scrhack.dtx index 49cf81ef4e5..1a75956680f 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrhack.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrhack.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % ====================================================================== % scrhack.dtx -% Copyright (c) Markus Kohm, 2008-2020 +% Copyright (c) Markus Kohm, 2008-2021 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -22,7 +22,7 @@ % of TeX would generate the implementation documentation. % ---------------------------------------------------------------------- % scrhack.dtx -% Copyright (c) Markus Kohm, 2008-2020 +% Copyright (c) Markus Kohm, 2008-2021 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -61,7 +61,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrhack.dtx 3508 2020-07-08 08:45:20Z kohm $ +%%% From File: $Id: scrhack.dtx 3602 2021-06-03 17:24:02Z kohm $ %%%% using: package,identify %%%% using: package,option %%%% using: package,body @@ -70,7 +70,7 @@ \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2020-07-08 10:45:20 +0200 (Wed, 08 Jul 2020) $ + \filedate$Date: 2021-06-03 19:24:02 +0200 (Thu, 03 Jun 2021) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} \filerevision$Revision: 1962 $ \endgroup @@ -481,44 +481,44 @@ % \end{macro} % % -% \subsection{Der \textsf{float}-Hack} +% \subsection{Der \textsf{floatrow}-Hack} % -% Das \textsf{float}-Paket verwendet das Makro \cs{float@listhead} zum +% Das \textsf{floatrow}-Paket verwendet das Makro \cs{float@listhead} zum % Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen % und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird % empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist % sehr gering und wird mit vielen neuen Möglichkeiten belohnt. % -% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{float} +% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{floatrow} % nach. % -% \begin{option}{float} -% \changes{v3.12}{2013/03/05}{Signalisierung mit -% \cs{FamilyKeyStateProcessed}}%^^A +% \begin{option}{floatrow} +% \changes{v3.12}{2013/03/05}{Signalisierung mit \cs{FamilyKeyStateProcessed}} % \changes{v3.17}{2015/03/09}{Defaulteinstellung mit -% \cs{KOMAExecuteOptions}}%^^A +% \cs{KOMAExecuteOptions}} +% \changes{v3.34}{2021/06/03}{Deaktivierung des \textsf{float}-Hacks} % \begin{macrocode} %<*package&option> -\KOMA@ifkey{float}{@scrhack@float}% -\KOMAExecuteOptions{float=true}% +\KOMA@ifkey{floatrow}{@scrhack@floatrow} +\KOMAExecuteOptions{floatrow=true} % %<*package&body> -\AfterPackage*{float}{% - \KOMA@key[.scrhack.sty]{float}{% - \PackageWarning{scrhack}{option `float' ignored}% +\AfterPackage*{floatrow}{% + \KOMAoptions{float=false}% + \PackageInfo{scrhack}{option `float' deactivated}% + \KOMA@key[.scrhack.sty]{floatrow}{% + \PackageWarning{scrhack}{option `floatrow' ignored}% \FamilyKeyStateProcessed }% - \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi + \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi } % % \end{macrocode} % \end{option} % % -% \begin{macro}{\newfloat} -% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by -% \cs{Ifattoclist}}%^^A -% Über die Anweisung \cs{newfloat} wird eine neue Gleitumgebung +% \begin{macro}{\DeclareNewFloatType} +% Über die Anweisung \cs{DeclareNewFloatType} wird eine neue Gleitumgebung % definiert. Hier muss die neue Erweiterung aus dem dritten Argument % \textsf{tocbasic} bekannt gemacht werden. % \begin{macro}{\listof} @@ -529,68 +529,51 @@ % Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche % Definition zurückgesetzt. % \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}}}% - {}}}% +%<*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}{\float@error{#1}}{% - \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}% + \@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\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}{% + \PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}% +% \end{macrocode} +% Eigentlich wäre es besser, wie im \textsf{float}-Hack einen Test +% vorzuschalten, ob die Dateiendung bereits in Gebrauch ist. Aber das würde +% voraussetzen, dass die Reihenfolge der Anweisungen geändert wird. Dazu +% stecke ich aber im Code von \textsf{floatrow} zu wenig +% drin. (\emph{\foreignlanguage{english}{Note: It would be better to first +% test, if the new extension is already in use like done at the +% \textsf{float} hack. But I don't know the \textsf{floatrow} code good +% enough to make such a change!}}) +% \begin{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}% % \end{macrocode} % \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}%^^A % Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von @@ -600,6 +583,23 @@ % \end{verbatim} % Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die % Verzeichniseinträge bietet, verwenden wir die hier nun auch: +% \begin{macrocode} + \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}% + \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax + \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}% + \@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}{% +% \end{macrocode} +% Siehe die Anmerkung zur Verwendung von \cs{DeclareTOCStyleEntry} oben. % \begin{macrocode} \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em] {default}{#1}% @@ -617,61 +617,63 @@ }{% \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space definition found!\MessageBreak - Maybe you are using a unsupported float version}% + Maybe you are using a unsupported floatrow version}% }% }{% \PackageWarningNoLine{scrhack}{unknown \string\listof\space definition found!\MessageBreak - Maybe you are using a unsupported float version}% + Maybe you are using a unsupported floatrow version}% }% }{% - \PackageWarningNoLine{scrhack}{unknown \string\newfloat\space + \PackageWarningNoLine{scrhack}{unknown \string\DeclareNewFloatType\space definition found!\MessageBreak - Maybe you are using a unsupported float version}% + Maybe you are using a unsupported floatrow version}% } -% +% % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % -% \subsection{Der \textsf{floatrow}-Hack} +% \subsection{Der \textsf{float}-Hack} % -% Das \textsf{floatrow}-Paket verwendet das Makro \cs{float@listhead} zum +% Das \textsf{float}-Paket verwendet das Makro \cs{float@listhead} zum % Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen % und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird % empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist % sehr gering und wird mit vielen neuen Möglichkeiten belohnt. % -% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{floatrow} +% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{float} % nach. % -% \begin{option}{floatrow} +% \begin{option}{float} % \changes{v3.12}{2013/03/05}{Signalisierung mit % \cs{FamilyKeyStateProcessed}}%^^A % \changes{v3.17}{2015/03/09}{Defaulteinstellung mit % \cs{KOMAExecuteOptions}}%^^A % \begin{macrocode} %<*package&option> -\KOMA@ifkey{floatrow}{@scrhack@floatrow} -\KOMAExecuteOptions{floatrow=true} +\KOMA@ifkey{float}{@scrhack@float}% +\KOMAExecuteOptions{float=true}% % %<*package&body> -\AfterPackage*{floatrow}{% - \KOMA@key[.scrhack.sty]{floatrow}{% - \PackageWarning{scrhack}{option `floatrow' ignored}% +\AfterPackage*{float}{% + \KOMA@key[.scrhack.sty]{float}{% + \PackageWarning{scrhack}{option `float' ignored}% \FamilyKeyStateProcessed }% - \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi + \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi } % % \end{macrocode} % \end{option} % % -% \begin{macro}{\DeclareNewFloatType} -% Über die Anweisung \cs{DeclareNewFloatType} wird eine neue Gleitumgebung +% \begin{macro}{\newfloat} +% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by +% \cs{Ifattoclist}}%^^A +% Über die Anweisung \cs{newfloat} wird eine neue Gleitumgebung % definiert. Hier muss die neue Erweiterung aus dem dritten Argument % \textsf{tocbasic} bekannt gemacht werden. % \begin{macro}{\listof} @@ -682,51 +684,68 @@ % Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche % Definition zurückgesetzt. % \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}% +%<*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}{\flrow@error{Unknown float style `#1'}}{% - \expandafter\providecommand\csname l@#1\endcsname - {\@dottedtocline{1}{1.5em}{2.3em}}% + \@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\DeclareNewFloatType}% -% \end{macrocode} -% Eigentlich wäre es besser, wie im \textsf{float}-Hack einen Test -% vorzuschalten, ob die Dateiendung bereits in Gebrauch ist. Aber das würde -% voraussetzen, dass die Reihenfolge der Anweisungen geändert wird. Dazu -% stecke ich aber im Code von \textsf{floatrow} zu wenig -% drin. (\emph{\foreignlanguage{english}{Note: It would be better to first -% test, if the new extension is already in use like done at the -% \textsf{float} hack. But I don't know the \textsf{floatrow} code good -% enough to make such a change!}}) -% \begin{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}% + \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}{% % \end{macrocode} % \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}%^^A % Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von @@ -736,23 +755,6 @@ % \end{verbatim} % Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die % Verzeichniseinträge bietet, verwenden wir die hier nun auch: -% \begin{macrocode} - \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}% - \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax - \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}% - \@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}{% -% \end{macrocode} -% Siehe die Anmerkung zur Verwendung von \cs{DeclareTOCStyleEntry} oben. % \begin{macrocode} \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em] {default}{#1}% @@ -770,19 +772,19 @@ }{% \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space definition found!\MessageBreak - Maybe you are using a unsupported floatrow version}% + Maybe you are using a unsupported float version}% }% }{% \PackageWarningNoLine{scrhack}{unknown \string\listof\space definition found!\MessageBreak - Maybe you are using a unsupported floatrow version}% + Maybe you are using a unsupported float version}% }% }{% - \PackageWarningNoLine{scrhack}{unknown \string\DeclareNewFloatType\space + \PackageWarningNoLine{scrhack}{unknown \string\newfloat\space definition found!\MessageBreak - Maybe you are using a unsupported floatrow version}% + Maybe you are using a unsupported float version}% } -% +% % \end{macrocode} % \end{macro} % \end{macro} -- cgit v1.2.3