diff options
author | Karl Berry <karl@freefriends.org> | 2020-09-27 21:27:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-09-27 21:27:46 +0000 |
commit | 88f3fea0e61c7d9183c2d9de8d59af21db852d82 (patch) | |
tree | 64ee0af542867c76e3f686efedbfddbea8d9b3bf /Master/texmf-dist/tex/latex/koma-script/scrlfile.sty | |
parent | f7a5fce4f1f54626e099adbbfc80dcf92745b4de (diff) |
koma-script (27sep20)
git-svn-id: svn://tug.org/texlive/trunk@56454 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrlfile.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrlfile.sty | 554 |
1 files changed, 39 insertions, 515 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrlfile.sty b/Master/texmf-dist/tex/latex/koma-script/scrlfile.sty index b2c0a9fe1cd..5849374f9e0 100644 --- a/Master/texmf-dist/tex/latex/koma-script/scrlfile.sty +++ b/Master/texmf-dist/tex/latex/koma-script/scrlfile.sty @@ -4,8 +4,7 @@ %% %% The original source files were: %% -%% scrlfile.dtx (with options: `scrlfile') -%% scrlogo.dtx (with options: `logo') +%% scrlfile.dtx (with options: `package') %% %% Copyright (c) 2002-2019 Markus Kohm [komascript at gmx info] %% @@ -39,525 +38,50 @@ %% find a complete unmodified copy of LaTeX2e at %% <http://mirror.ctan.org/tex-archive/macros/latex/base/>. %% -%%% From File: $Id: scrlfile.dtx 3447 2020-01-06 16:40:47Z kohm $ +%%% From File: $Id: scrlfile.dtx 3537 2020-09-14 07:30:10Z kohm $ \ProvidesPackage{scrlfile}[% - 2020/07/22 v3.31 KOMA-Script + 2020/09/21 v3.32 KOMA-Script package - (loading files)] -\ExecuteOptions{} -\ProcessOptions\relax -\@ifclassloaded{memoir}{% - \PackageInfo{scrlfile}{class `memoir' detected.\MessageBreak - Using a compatible redefinition of \string\InputIfFileExists,\MessageBreak - but always robust and with the fix of the\MessageBreak - argument order bug even for old versions of the\MessageBreak - LaTeX kernel% - }% -}{% - \long\def\reserved@a#1#2{% - \IfFileExists{#1}% - {#2\@addtofilelist{#1}\@@input \@filef@und}}% - \ifx\reserved@a\InputIfFileExists\else - \expandafter\CheckCommand\expandafter*\expandafter\InputIfFileExists - \expandafter{% - \expandafter\protect\csname InputIfFileExists \endcsname - }% - \expandafter\CheckCommand \csname InputIfFileExists \endcsname[2]{% - \IfFileExists {#1}{% - \expandafter \@swaptwoargs \expandafter {\@filef@und }% - {#2\@addtofilelist {#1}\@@input }% - }% - }% - \fi -} -\expandafter\renewcommand\expandafter*\expandafter\InputIfFileExists -\expandafter{\expandafter - \protect\csname InputIfFileExists \endcsname}% -\expandafter\long\expandafter\def\csname InputIfFileExists \endcsname#1#2{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1-@alias\endcsname\relax - \expandafter\@secondoftwo - \else - \scr@replacefile@msg{\csname #1-@alias\endcsname}{#1}% - \expandafter\@firstoftwo - \fi - {% - \expandafter\InputIfFileExists\expandafter{\csname - #1-@alias\endcsname}{#2}% - }% - {\IfFileExists{#1}{% - \expandafter\scr@input@withhook\expandafter{\@filef@und}{#1}{#2}% - }}% -} -\@ifclassloaded{memoir}{% - \newcommand{\scr@input@withhook}[3]{% - \scr@load@hook{before}{#2}% - #3\@addtofilelist{#2}% - \@ifundefined{m@matbeginf}{}{\m@matbeginf{#2}}% - \@@input #1% - \@ifundefined{m@matendf}{}{\m@matendf{#2}}% - \@ifundefined{killm@matf}{}{\killm@matf{#2}}% - \scr@load@hook{after}{#2}% - }% + (file load hooks)] +\@ifundefined{AddToHook}{% + \RequirePackage{scrlfile-patcholdlatex}% + \RequirePackage{xparse}% }{% - \newcommand{\scr@input@withhook}[3]{% - \scr@load@hook{before}{#2}% - #3\@addtofilelist{#2}% - \@@input #1% - \scr@load@hook{after}{#2}% - }% -} -\newcommand*{\scr@@loadwithoptions}{} -\newcommand*{\scr@loadwithoptions}{} -\let\scr@loadwithoptions\@loadwithoptions -\renewcommand*{\@loadwithoptions}[3]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #3.#1-@aliasname\endcsname\relax - \def\scr@@loadwithoptions{\scr@loadwithoptions{#1}{#2}{#3}}% - \else - \scr@replacefile@msg{\csname #3.#1-@aliasname\endcsname.#1}{#3.#1}% - \def\scr@@loadwithoptions{% - \@loadwithoptions{#1}{#2}{\csname #3.#1-@aliasname\endcsname}% - }% - \fi - \scr@@loadwithoptions -} -\newcommand*{\scr@onefilewithoptions}{} -\let\scr@onefilewithoptions\@onefilewithoptions -\def\@onefilewithoptions#1[#2][#3]#4{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1.#4-@aliasname\endcsname\relax - \def\scr@@onefilewithoptions{\scr@onefilewithoptions{#1}}% - \else - \scr@replacefile@msg{\csname #1.#4-@aliasname\endcsname.#4}{#1.#4}% - \edef\scr@@onefilewithoptions{% - \noexpand\@onefilewithoptions{\csname #1.#4-@aliasname\endcsname}}% - \fi - \scr@@onefilewithoptions[{#2}][{#3}]{#4}% - \scr@load@hook{lateafter}{#1.#4}% -} -\newcommand*{\ReplaceInput}[2]{% - \expandafter\edef\csname #1-@alias\endcsname{#2}% -} -\newcommand*{\ReplaceFile}{% - \PackageError{scrlfile}{% - usage of not documented command `\string\ReplaceFile'% - }{% - Command `\string\ReplaceFile' has been implemented accidentally in - KOMA-Script 2.96\MessageBreak - and replaced by `\string\ReplaceInput' in KOMA-Script 3.12.\MessageBreak - You should replace `\string\ReplaceFile' by `\string\ReplaceInput' to - avoid this error\MessageBreak - message% - }% - \ReplaceInput -} -\newcommand*{\UnReplaceInput}[1]{% - \ifcsname #1-@alias\endcsname - \expandafter\let\csname #1-@alias\endcsname\relax - \fi -} -\newcommand*{\@replacefilewithext}[3]{% - \expandafter\edef\csname #1.#3-@aliasname\endcsname{#2}% - } -\newcommand*{\ReplacePackage}[2]{% - \@replacefilewithext{#1}{#2}\@pkgextension -} -\newcommand*{\ReplaceClass}[2]{% - \@replacefilewithext{#1}{#2}\@clsextension -} -\newcommand*{\@unreplacefilewithext}[2]{% - \ifcsname #1.#2-@aliasname\endcsname - \expandafter\let\csname #1.#2-@aliasname\endcsname\relax - \fi -} -\newcommand*{\UnReplacePackage}[1]{% - \@unreplacefilewithext{#1}\@pkgextension -} -\newcommand*{\UnReplaceClass}[1]{% - \@unreplacefilewithext{#1}\@clsextension -} -\newcommand*{\scr@replacefile@msg}[2]{% - \PackageInfo{scrlfile}{inputing `#1' instead of `#2'}% -} -\newcommand*{\scr@load@hook}[2]{% - \ifx\@begindocumenthook\@undefined\else - \edef\scrlfile@hookname{#1}% - \def\scrlfile@cmp@hook{before}% - \ifx\scrlfile@hookname\scrlfile@cmp@hook - \expandafter\def\csname #2-l@ading\endcsname{#2}% - \fi - \let\scrlfile@cmp@hook\@undefined - \fi - \@ifundefined{#2-@#1}{}{% - \@nameuse{#2-@#1}% - \expandafter\let\csname #2-@#1\endcsname\relax - }% - \ifx\@begindocumenthook\@undefined\else - \edef\scrlfile@hookname{#1}% - \def\scrlfile@cmp@hook{after}% - \ifx\scrlfile@hookname\scrlfile@cmp@hook - \expandafter\let\csname #2-l@ading\endcsname\@undefined - \fi - \let\scrlfile@cmp@hook\@undefined - \let\scrlfile@hookname\@undefined - \fi -} -\newcommand*{\scr@set@load@hook}[2]{% - \@ifundefined{#2-@#1}{\@namedef{#2-@#1}{}}{}% - \expandafter\g@addto@macro\csname #2-@#1\endcsname} -\newcommand*{\BeforeFile}{\scr@set@load@hook{before}} -\newcommand*{\AfterFile}{\scr@set@load@hook{after}} -\newcommand*{\BeforeClass}[1]{% - \scr@set@load@hook{before}{#1.\@clsextension}} -\newcommand*{\AfterClass}{% - \kernel@ifstar {\@sAfterClass}{% - \kernel@ifnextchar +\@pAfterClass{% - \kernel@ifnextchar !\@xAfterClass\@AfterClass - }% - }% -} -\newcommand*{\@AfterClass}[1]{% - \scr@set@load@hook{after}{#1.\@clsextension}} -\newcommand*{\@sAfterClass}[1]{% - \@ifclassloaded{#1}{% - \@secondoftwo - }{% - \@AfterClass - }% - {#1}% -} -\newcommand*{\@pAfterClass}[2]{% - \@ifundefined{#2.\@clsextension-l@ading}{% - \@sAfterClass - }{% - \@AfterClass - }% - {#2}% -} -\newcommand*{\@xAfterClass}[2]{% - \@ifundefined{#2.\@clsextension-l@ading}{% - \@ifclassloaded{#2}{% - \@sAfterClass - }{% - \AfterAtEndOfClass - }% - }{% - \AfterAtEndOfClass - }% - {#2}% -} -\newcommand*{\AfterAtEndOfClass}[1]{% - \scr@set@load@hook{lateafter}{#1.\@clsextension}} -\newcommand*{\BeforePackage}[1]{% - \scr@set@load@hook{before}{#1.\@pkgextension}} -\newcommand*{\AfterPackage}{% - \kernel@ifstar {\@sAfterPackage}{% - \kernel@ifnextchar +\@pAfterPackage{% - \kernel@ifnextchar !\@xAfterPackage\@AfterPackage - }% - }% -} -\newcommand*{\@AfterPackage}[1]{% - \scr@set@load@hook{after}{#1.\@pkgextension}} -\newcommand*{\@sAfterPackage}[1]{% - \@ifpackageloaded{#1}{% - \@secondoftwo - }{% - \@AfterPackage - }% - {#1}% -} -\newcommand*{\@pAfterPackage}[2]{% - \@ifundefined{#2.\@pkgextension-l@ading}{% - \@sAfterPackage - }{% - \@AfterPackage - }% - {#2}% -} -\newcommand*{\@xAfterPackage}[2]{% - \@ifundefined{#2.\@pkgextension-l@ading}{% - \@ifpackageloaded{#2}{% - \@sAfterPackage - }{% - \@AfterAtEndOfPackage - }% - }{% - \@AfterAtEndOfPackage - }% - {#2}% -} -\newcommand*{\AfterAtEndOfPackage}[1]{% - \@ifpackageloaded{#1}{% - \@ifundefined{#1.\@pkgextension-l@ading}{% - \@gobbletwo - }{% - \@AfterAtEndOfPackage - }% - }{% - \@AfterAtEndOfPackage - }% - {#1}% -} -\newcommand*{\@AfterAtEndOfPackage}[1]{% - \scr@set@load@hook{lateafter}{#1.\@pkgextension}% -} -\newcommand*{\scrlfile@excludedpackages}{} -\let\scrlfile@excludedpackages\@empty -\newcommand*{\scrlfile@saved@RequirePackage}{} -\newcommand*{\PreventPackageFromLoading}{% - \kernel@ifstar{\@PreventPackageFromLoading\PackageInfo}% - {\@PreventPackageFromLoading\PackageWarning}% -} -\newcommand*{\@PreventPackageFromLoading}[1]{% - \kernel@ifnextchar [%] - {\@@PreventPackageFromLoading#1}{\@@PreventPackageFromLoading#1[]}% -} -\newcommand*{\@@PreventPackageFromLoading}{} -\def\@@PreventPackageFromLoading#1[#2]#3{% - \edef\reserved@b{\zap@space#3 \@empty}% - \ifx \reserved@b\@empty - #1{scrlfile}{% - \string\PreventPackageFromLoading\space with empty packages\MessageBreak - argument ignored% - }% - \else - \ifx\scrlfile@excludedpackages\@empty - \let\scrlfile@saved@RequirePackage\RequirePackage - \let\RequirePackage\scrlfile@RequirePackage - \def\reserved@a##1##{% - \@latex@error - {\noexpand \usepackage before \string\documentclass}% - {\noexpand \usepackage may only appear in the document - preamble, i.e.,\MessageBreak - between \noexpand\documentclass and - \string\begin{document}.}% - \@gobble}% - \ifx\reserved@a\usepackage\else - \ifx\usepackage\scrlfile@saved@RequirePackage\else - \PackageWarning{scrlfile}{% - Maybe serious problem: unexpected definition of\MessageBreak - \string\usepackage - }% - \fi - \let\usepackage\RequirePackage - \fi - \fi - \@for\reserved@a:=\reserved@b\do {% - \ifx\reserved@a\@empty - #1{scrlfile}{% - empty package argument for - \string\PreventPackageFromLoading\MessageBreak - ignored% - }% - \else - \expandafter\@ifpackageloaded\expandafter{\reserved@a}{% - #1{scrlfile}{% - package `\reserved@a' already loaded.\MessageBreak - Cannot prevent it from beeing loaded% - }% - }{% - \edef\scrlfile@excludedpackages{\scrlfile@excludedpackages,% - \reserved@a}% - \if\relax\detokenize{#2}\relax\else - \@ifundefined{scrlfile@exclude@package@\reserved@a @do}{% - \@namedef{scrlfile@exclude@package@\reserved@a @do}{}% - }{}% - \expandafter\def - \csname scrlfile@exclude@package@\reserved@a - @do\expandafter\expandafter\expandafter\endcsname - \expandafter\expandafter\expandafter{% - \csname scrlfile@exclude@package@\reserved@a @do\endcsname - #2% - }% - \fi - }% - \fi - }% - \ifx\scrlfile@excludedpackages\@empty - \ResetPreventPackageFromLoading - \fi - \fi -} -\@onlypreamble\PreventPackageFromLoading -\newcommand*{\ResetPreventPackageFromLoading}{% - \let\scrlfile@excludedpackages\@empty - \ifx\RequirePackage\scrlfile@RequirePackage - \ifx\usepackage\RequirePackage - \let\usepackage\scrlfile@saved@RequirePackage - \fi - \let\RequirePackage\scrlfile@saved@RequirePackage - \fi -} -\@onlypreamble\ResetPreventPackageFromLoading -\newcommand*{\StorePreventPackageFromLoading}[1]{% - \let#1\scrlfile@excludedpackages -} -\@onlypreamble\StorePreventPackageFromLoading -\newcommand*{\UnPreventPackageFromLoading}{% - \kernel@ifstar {\@tempswatrue\@UnPreventPackageFromLoading}% - {\@tempswafalse\@UnPreventPackageFromLoading}% -} -\newcommand*{\@UnPreventPackageFromLoading}[1]{% - \edef\reserved@b{\zap@space#1 \@empty}% - \if@tempswa - \@for\reserved@a:=\reserved@b\do {% - \ifx\reserved@a\@empty \else - \ifcsname scrlfile@exclude@package@\reserved@a @do\endcsname - \expandafter\let - \csname scrlfile@exclude@package@\reserved@a @do\endcsname - \undefined - \fi - \fi - }% - \fi - \ifcsname scrlfile@excludedpackages\endcsname - \let\reserved@a\scrlfile@excludedpackages - \let\scrlfile@excludedpackages\@empty - \expandafter\@for\expandafter\reserved@c - \expandafter:\expandafter=\reserved@a - \do{% - \ifx\reserved@c\@empty\else - \@expandtwoargs\in@{,\reserved@c,}{,\reserved@b,}% - \ifin@ - \else - \edef\scrlfile@excludedpackages{% - \scrlfile@excludedpackages,\reserved@c - }% - \fi - \fi - }% - \ifx\scrlfile@excludedpackages\@empty\ResetPreventPackageFromLoading\fi - \fi -} -\newcommand*{\scrlfile@RequirePackage}[2][]{% - \let\reserved@c\@empty - \let\reserved@d\@empty - \edef\reserved@b{\zap@space#2 \@empty}% - \expandafter\@for\expandafter\reserved@b\expandafter:\expandafter=\reserved@b - \do {% - \begingroup - \@tempswatrue - \@for\reserved@a:=\scrlfile@excludedpackages\do {% - \ifx\reserved@a\reserved@b - \@tempswafalse - \fi + \RequirePackage{scrlfile-hook}% +} +\DeclareOption{withdeprecated}{% + \RenewDocumentCommand\AfterClass{}{% + \kernel@ifnextchar +% + {\scrlfile@emulatedeprecated{Class}}% + {% + \kernel@ifnextchar !% + {\scrlfile@emulatedeprecated{Class}}% + \scrlfile@AfterClass }% - \if@tempswa - \xdef\reserved@c{\reserved@c,\reserved@b}% - \else - \ifx\reserved@b\@empty\else - \PackageInfo{scrlfile}{Excluding package `\reserved@b'\MessageBreak - from loading}% - \@ifundefined{scrlfile@exclude@package@\reserved@b @do}{% - }{% - \expandafter\g@addto@macro\expandafter\reserved@d - \csname scrlfile@exclude@package@\reserved@b @do\endcsname - }% - \fi - \fi - \endgroup - }% - \ifx\reserved@c\@empty - \let\reserved@a\scr@gobbleopt - \else - \edef\reserved@a{\noexpand\scrlfile@saved@RequirePackage[#1]{% - \expandafter\@gobble\reserved@c\@empty}}% - \fi - \expandafter\reserved@d - \reserved@a -} -\newcommand{\scr@gobbleopt}[1][]{} -\providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}} -\AtEndDocument{% - \let\scr@saved@checkend=\@checkend - \renewcommand*{\@checkend}[1]{% - \def\reserved@a{#1}\def\reserved@b{document}% - \scr@saved@checkend{#1}% - \ifx\reserved@a\reserved@b - \let\scr@saved@clearpage=\clearpage - \renewcommand*{\clearpage}{\scr@saved@clearpage - \scr@hook@bcma - \scr@restore@newpage - \let\clearpage=\scr@saved@clearpage}% - \fi% - \let\scr@saved@dofilelist\@dofilelist - \def\@dofilelist{% - \scr@hook@acma - \let\@dofilelist\scr@saved@dofilelist - \scr@saved@dofilelist - }% - }% -} -\newcommand*{\scr@saved@checkend}{} -\newcommand*{\scr@saved@dofilelist}{} -\newcommand*{\scr@redefine@newpage}{% - \let\scr@saved@newpage\newpage - \def\scr@restore@newpage{% - \renewcommand*{\newpage}{% - \PackageWarningNoLine{% - scrlfile% - }{% - \string\newpage\space at main aux file!\MessageBreak - You have output material at the main aux file.\MessageBreak - Note, that the \string\BeforeClosingMainAux\space commands\MessageBreak - are processed before the output from aux file% + } + \RenewDocumentCommand\AfterPackage{}{% + \kernel@ifnextchar +% + {\scrlfile@emulatedeprecated{Package}}% + {% + \kernel@ifnextchar !% + {\scrlfile@emulatedeprecated{Package}}% + \scrlfile@AfterPackage }% - \let\newpage\scr@saved@newpage - \newpage - }% - }% - \renewcommand*{\newpage}{% - \PackageError{% - scrlfile% - }{% - \string\newpage\space at \string\BeforeClosingMainAux - }{% - You should never use \string\newpage\space or - \string\clear(double)page or other output material at the\MessageBreak - argument of \string\BeforeClosingMainAux!\MessageBreak - If you'll continue, the \string\newpage\space will be ignored to - avoid corruption of\MessageBreak - every prior use of \string\BeforeClosingMainAux. - }% - }% + } + \newcommand*{\scrlfile@emulatedeprecated}[2]{% + \PackageWarning{scrlfile}{% + emulating deprecated \expandafter\string\csname After#1#2\endcsname + \space by\MessageBreak + \expandafter\string\csname AfterAtEndOf#1*\endcsname.\MessageBreak + Note, this may fail, so you should not use\MessageBreak + \expandafter\string\csname After#1#2\endcsname + }% + \csname AfterAtEndOf#1\endcsname*% + } } -\newcommand*{\scr@restore@newpage}{} -\newcommand*{\scr@hook@bcma}{} -\newcommand*{\scr@hook@acma}{} -\newcommand*{\BeforeClosingMainAux}{% - \ifx\scr@hook@bcma\@empty - \gdef\scr@hook@bcma{% - \renewcommand*{\BeforeClosingMainAux}[1]{####1}% - \let\protected@write\protected@immediate@write - \scr@redefine@newpage - }% - \fi - \g@addto@macro\scr@hook@bcma% -} -\newcommand*{\AfterReadingMainAux}{% - \ifx\scr@hook@acma\@empty - \gdef\scr@hook@acma{% - \renewcommand*{\AfterReadingMainAux}[1]{####1}% - \let\protected@write\protected@immediate@write - }% - \fi - \g@addto@macro\scr@hook@acma% -} -\long\def\protected@immediate@write#1#2#3{% - \begingroup - #2% - \let\protect\@unexpandable@protect - \edef\reserved@a{\immediate\write#1{#3}}% - \reserved@a - \endgroup - \if@nobreak\ifvmode\nobreak\fi\fi -} -%%% From File: $Id: scrlogo.dtx 2640 2017-05-08 09:36:55Z kohm $ -\@ifundefined{KOMAScript}{% - \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% - M\kern.05em A\kern.1em-\kern.1em Script}}}{} +\ExecuteOptions{} +\ProcessOptions\relax +\RequirePackage{scrlogo} \endinput %% %% End of file `scrlfile.sty'. |