From 34310603e5253ef5742542e3f0123b341a70ee20 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 28 Sep 2020 03:04:08 +0000 Subject: CTAN sync 202009280304 --- macros/latex/contrib/eso-pic/README | 2 +- macros/latex/contrib/eso-pic/eso-ex1.tex | 24 +- macros/latex/contrib/eso-pic/eso-pic.dtx | 94 +- macros/latex/contrib/eso-pic/eso-pic.pdf | Bin 250322 -> 250230 bytes macros/latex/contrib/filehook/README | 2 +- macros/latex/contrib/filehook/filehook.dtx | 688 +++++- macros/latex/contrib/filehook/filehook.ins | 2 + macros/latex/contrib/filehook/filehook.pdf | Bin 266229 -> 301526 bytes macros/latex/contrib/koma-script/README | 80 +- macros/latex/contrib/koma-script/doc/manifest.txt | 7 +- macros/latex/contrib/koma-script/doc/scrguide.html | 738 +++--- macros/latex/contrib/koma-script/doc/scrguide.pdf | Bin 3259445 -> 3262021 bytes macros/latex/contrib/koma-script/doc/scrguien.html | 31 +- macros/latex/contrib/koma-script/doc/scrguien.pdf | Bin 3178504 -> 3180171 bytes .../contrib/koma-script/doc/scrlayer-fancyhdr.pdf | Bin 195988 -> 195987 bytes .../koma-script/source-doc/english/scrbase.tex | 8 +- .../koma-script/source-doc/english/scrlfile.tex | 274 ++- .../koma-script/source-doc/ngerman/scrbase.tex | 8 +- .../koma-script/source-doc/ngerman/scrlfile.tex | 327 ++- macros/latex/contrib/koma-script/source/Makefile | 5 + .../koma-script/source/scrkernel-basics.dtx | 38 +- .../koma-script/source/scrkernel-compatibility.dtx | 10 +- .../koma-script/source/scrkernel-miscellaneous.dtx | 9 +- .../koma-script/source/scrkernel-sections.dtx | 16 +- .../koma-script/source/scrkernel-version.dtx | 4 +- .../koma-script/source/scrlayer-notecolumn.dtx | 1727 +++++++------- .../koma-script/source/scrlayer-scrpage.dtx | 2365 +++++++++----------- .../latex/contrib/koma-script/source/scrlayer.dtx | 70 +- .../contrib/koma-script/source/scrlfile-hook.dtx | 634 ++++++ .../koma-script/source/scrlfile-patcholdlatex.dtx | 1269 +++++++++++ .../latex/contrib/koma-script/source/scrlfile.dtx | 1326 +---------- .../latex/contrib/koma-script/source/scrlogo.dtx | 58 +- .../latex/contrib/koma-script/source/scrmain.ins | 4 +- .../latex/contrib/koma-script/source/tocbasic.dtx | 43 +- macros/latex/contrib/semantex/semantex.pdf | Bin 361207 -> 356833 bytes macros/latex/contrib/semantex/semantex.sty | 578 ++--- macros/latex/contrib/semantex/semantex.tex | 257 +-- macros/latex/contrib/semantex/stripsemantex.lua | 71 +- macros/latex/contrib/semantex/stripsemantex.sty | 87 +- macros/latex/contrib/semtex/semtex.pdf | Bin 76606 -> 61300 bytes macros/latex/contrib/semtex/semtex.sty | 53 +- macros/latex/contrib/semtex/semtex.tex | 61 +- 42 files changed, 6029 insertions(+), 4941 deletions(-) create mode 100644 macros/latex/contrib/koma-script/source/scrlfile-hook.dtx create mode 100644 macros/latex/contrib/koma-script/source/scrlfile-patcholdlatex.dtx (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/eso-pic/README b/macros/latex/contrib/eso-pic/README index 57772f8909..2633b5dc54 100644 --- a/macros/latex/contrib/eso-pic/README +++ b/macros/latex/contrib/eso-pic/README @@ -7,5 +7,5 @@ The pack­age adds one or more user com­mands to LaTeX’s shipout rou­tine, w may be used to place the out­put at fixed po­si­tions. The grid op­tion may be used to find the cor­rect places. -Rolf Niepraschk (Rolf.Niepraschk@gmx.de) +Rolf Niepraschk diff --git a/macros/latex/contrib/eso-pic/eso-ex1.tex b/macros/latex/contrib/eso-pic/eso-ex1.tex index 6241e37d3f..c9a43c24f9 100644 --- a/macros/latex/contrib/eso-pic/eso-ex1.tex +++ b/macros/latex/contrib/eso-pic/eso-ex1.tex @@ -1,23 +1,23 @@ % file `eso-ex1.tex'; a framed background example -% Rolf Niepraschk, 2015-07-14, Rolf.Niepraschk@gmx.de +% Rolf Niepraschk, 2020-09-27, Rolf.Niepraschk@gmx.de \documentclass[a4paper]{article} -\usepackage{eso-pic,calc} +\usepackage{eso-pic} \listfiles -\makeatletter +\newdimen\myTempdima +\newdimen\myTempdimb +\newdimen\myTempdimc + \AddToShipoutPicture{% - \begingroup - \setlength{\@tempdima}{15mm}% - \setlength{\@tempdimb}{\paperwidth-2\@tempdima}% - \setlength{\@tempdimc}{\paperheight-2\@tempdima}% - \thicklines% - \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdima}){% - \framebox(\LenToUnit{\@tempdimb},\LenToUnit{\@tempdimc}){}}% - \endgroup + \setlength{\myTempdima}{15mm}% + \setlength{\myTempdimb}{\dimexpr\paperwidth-2\myTempdima}% + \setlength{\myTempdimc}{\dimexpr\paperheight-2\myTempdima}% + \thicklines% + \put(\LenToUnit{\myTempdima},\LenToUnit{\myTempdima}){% + \framebox(\LenToUnit{\myTempdimb},\LenToUnit{\myTempdimc}){}}% } -\makeatother \begin{document} diff --git a/macros/latex/contrib/eso-pic/eso-pic.dtx b/macros/latex/contrib/eso-pic/eso-pic.dtx index 5c7ec360c5..74060e560e 100644 --- a/macros/latex/contrib/eso-pic/eso-pic.dtx +++ b/macros/latex/contrib/eso-pic/eso-pic.dtx @@ -25,7 +25,7 @@ % \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{eso-pic} -% [2018/04/12 v2.0h eso-pic (RN)] +% [2020/09/27 v2.0i eso-pic (RN)] % %<*driver> \documentclass[a4paper]{ltxdoc} @@ -37,7 +37,7 @@ % % \fi % -% \CheckSum{778} +% \CheckSum{782} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -220,6 +220,16 @@ \providecommand*\LenToUnit[1]{\strip@pt\dimexpr#1*\p@/\unitlength} % \end{macrocode} % \end{macro} +% \changes{v2.0i}{2020/09/27}{no more system dimension registers} +% \begin{macro}{\ESO@tempdima} +% \begin{macro}{\ESO@tempdimb} +% Some auxiliary dimension registers +% \begin{macrocode} +\newdimen\ESO@tempdima +\newdimen\ESO@tempdimb +% \end{macrocode} +% \end{macro} +% \end{macro} % \begin{macro}{\ESO@isMEMOIR} % Support for the \clsname{memoir} class. % \begin{macrocode} @@ -254,17 +264,17 @@ \ESO@isMEMOIR{% \renewcommand\AtStockLowerLeft[1]{% \begingroup - \@tempdima=-\stockwidth - \advance\@tempdima\trimedge - \advance\@tempdima\paperwidth + \ESO@tempdima=-\stockwidth + \advance\ESO@tempdima\trimedge + \advance\ESO@tempdima\paperwidth \if@twoside\ifodd\c@page\else - \@tempdima=-\trimedge + \ESO@tempdima=-\trimedge \fi\fi - \@tempdimb=-\stockheight - \advance\@tempdimb\paperheight - \advance\@tempdimb\trimtop + \ESO@tempdimb=-\stockheight + \advance\ESO@tempdimb\paperheight + \advance\ESO@tempdimb\trimtop \AtPageLowerLeft{% - \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){#1}% + \put(\LenToUnit{\ESO@tempdima},\LenToUnit{\ESO@tempdimb}){#1}% }% \endgroup } @@ -311,37 +321,37 @@ \newcommand\AtTextUpperLeft[1]{% \begingroup \ifodd\c@page - \@tempdima=\spinemargin + \ESO@tempdima=\spinemargin \else - \@tempdima=\paperwidth - \advance\@tempdima-\textwidth - \advance\@tempdima-\spinemargin + \ESO@tempdima=\paperwidth + \advance\ESO@tempdima-\textwidth + \advance\ESO@tempdima-\spinemargin \fi - \@tempdimb=-\uppermargin + \ESO@tempdimb=-\uppermargin \AtPageUpperLeft{% - \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){#1}% + \put(\LenToUnit{\ESO@tempdima},\LenToUnit{\ESO@tempdimb}){#1}% }% \endgroup } }{% \newcommand\AtTextUpperLeft[1]{% \begingroup - \@tempdima=1in\relax + \ESO@tempdima=1in\relax \if@twoside \ifodd\c@page - \advance\@tempdima\oddsidemargin + \advance\ESO@tempdima\oddsidemargin \else - \advance\@tempdima\evensidemargin + \advance\ESO@tempdima\evensidemargin \fi \else - \advance\@tempdima\oddsidemargin + \advance\ESO@tempdima\oddsidemargin \fi - \@tempdimb=-1in\relax - \advance\@tempdimb-\topmargin - \advance\@tempdimb-\headheight - \advance\@tempdimb-\headsep + \ESO@tempdimb=-1in\relax + \advance\ESO@tempdimb-\topmargin + \advance\ESO@tempdimb-\headheight + \advance\ESO@tempdimb-\headsep \AtPageUpperLeft{% - \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){#1}% + \put(\LenToUnit{\ESO@tempdima},\LenToUnit{\ESO@tempdimb}){#1}% }% \endgroup } @@ -418,25 +428,25 @@ % \begin{macrocode} \ESO@isMEMOIR{% \AtBeginShipout{% - \@tempdima=-\trimedge - \advance\@tempdima-\paperwidth - \advance\@tempdima\stockwidth + \ESO@tempdima=-\trimedge + \advance\ESO@tempdima-\paperwidth + \advance\ESO@tempdima\stockwidth \if@twoside\ifodd\c@page\else - \advance\@tempdima2\trimedge - \advance\@tempdima\paperwidth - \advance\@tempdima-\stockwidth + \advance\ESO@tempdima2\trimedge + \advance\ESO@tempdima\paperwidth + \advance\ESO@tempdima-\stockwidth \fi\fi - \@tempdimb=\ESO@yoffsetI - \advance\@tempdimb-\trimtop + \ESO@tempdimb=\ESO@yoffsetI + \advance\ESO@tempdimb-\trimtop \nointerlineskip \AtBeginShipoutUpperLeft{% - \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){% + \put(\LenToUnit{\ESO@tempdima},\LenToUnit{\ESO@tempdimb}){% \ESO@HookIIIBG\ESO@HookIBG\ESO@HookIIBG \global\let\ESO@HookIIBG\@empty }% }% \AtBeginShipoutUpperLeftForeground{% - \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){% + \put(\LenToUnit{\ESO@tempdima},\LenToUnit{\ESO@tempdimb}){% \ESO@HookIFG\ESO@HookIIFG\ESO@HookIIIFG \global\let\ESO@HookIIFG\@empty }% @@ -566,9 +576,9 @@ % Result is in \cmd{\@tempcnta}. % \begin{macrocode} \newcommand\ESO@div[2]{% - \@tempdima=#1\relax\@tempdimb=\ESO@gridunit\relax - \@tempdimb=#2\@tempdimb\divide\@tempdima by \@tempdimb - \@tempcnta\@tempdima\advance\@tempcnta\@ne} + \ESO@tempdima=#1\relax\ESO@tempdimb=\ESO@gridunit\relax + \ESO@tempdimb=#2\ESO@tempdimb\divide\ESO@tempdima by \ESO@tempdimb + \@tempcnta\ESO@tempdima\advance\@tempcnta\@ne} % \end{macrocode} % \end{macro} % \changes{v1.1c}{2005/12/24}{Remove the disadvantageous check of @@ -668,8 +678,8 @@ \@tempcntb=\@tempcnta\advance\@tempcntb-\@multicnt \ifnum\@tempcntb>1\relax \multiply\@tempcntb by \ESO@gridDelta\relax - \@tempdima=\@tempcntb sp\@tempdima=\ESO@labelfactor\@tempdima - \@tempcntb=\@tempdima% + \ESO@tempdima=\@tempcntb sp\ESO@tempdima=\ESO@labelfactor\ESO@tempdima + \@tempcntb=\ESO@tempdima% \makebox(0,0)[c]{\ESO@colorbox{white}{\the\@tempcntb}}% \fi}% % \end{macrocode} @@ -681,8 +691,8 @@ \@tempcntb=\@tempcnta\advance\@tempcntb-\@multicnt% \ifnum\@tempcntb>\@tempa\relax \multiply\@tempcntb by \ESO@gridDelta\relax% - \@tempdima=\@tempcntb sp\@tempdima=\ESO@labelfactor\@tempdima - \@tempcntb=\@tempdima + \ESO@tempdima=\@tempcntb sp\ESO@tempdima=\ESO@labelfactor\ESO@tempdima + \@tempcntb=\ESO@tempdima \makebox(0,0)[c]{\ESO@colorbox{white}{\the\@tempcntb}}% \fi }% diff --git a/macros/latex/contrib/eso-pic/eso-pic.pdf b/macros/latex/contrib/eso-pic/eso-pic.pdf index 53c9ba100b..c1b4fe471b 100644 Binary files a/macros/latex/contrib/eso-pic/eso-pic.pdf and b/macros/latex/contrib/eso-pic/eso-pic.pdf differ diff --git a/macros/latex/contrib/filehook/README b/macros/latex/contrib/filehook/README index 25cc0e39b1..aeac2f848e 100644 --- a/macros/latex/contrib/filehook/README +++ b/macros/latex/contrib/filehook/README @@ -1,7 +1,7 @@ LaTeX package 'filehook' ~~~~~~~~~~~~~~~~~~~~~~~~ Copyright (c) 2010-2020 by Martin Scharrer -Code repository: https://bitbucket.org/martin_scharrer/filehook +Code repository: ssh://hth@helixteamhub.cloud/scharrer/projects/filehook/ Provides several file hooks for files read by \input, \include and \InputIfFileExists. diff --git a/macros/latex/contrib/filehook/filehook.dtx b/macros/latex/contrib/filehook/filehook.dtx index 0cd0f63354..07cb49537f 100644 --- a/macros/latex/contrib/filehook/filehook.dtx +++ b/macros/latex/contrib/filehook/filehook.dtx @@ -26,15 +26,17 @@ %<*driver> \ProvidesFile{filehook.dtx}[% %<=*DATE> - 2020/02/03 + 2020/09/27 %<=/DATE> %<=*VERSION> - v0.7 + v0.8 %<=/VERSION> Hooks for input files] \documentclass{ydoc} \GetFileInfo{filehook.dtx} \usepackage{filehook}[\filedate] +\usepackage[utf8]{inputenc} +\usepackage[TS1,T1]{fontenc} \EnableCrossrefs \CodelineIndex \RecordChanges @@ -55,7 +57,7 @@ % % \fi % -% \CheckSum{1011} +% \CheckSum{1478} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -526,6 +528,37 @@ % % \subsection{Options} % \begin{macrocode} +\DeclareOption{force}{\PassOptionsToPackage{forse}{filehook-2019}} +\ProcessOptions\relax +% \end{macrocode} +% +% \subsection{Load actual package} +% \begin{macrocode} +\@ifl@t@r\fmtversion{2020/10/01}{\RequirePackage{filehook-2020}}{\RequirePackage{filehook-2019}} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \iffalse +%<*filehook-2019.sty> +% \fi +% \begin{macrocode} +% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{filehook-2019}[% +% +% +%<*DRIVER> + 2099/01/01 develop +% + Hooks for input files] +% \end{macrocode} +% +% +% \subsection{Options} +% \begin{macrocode} \newif\iffilehook@force \DeclareOption{force}{\filehook@forcetrue} \ProcessOptions\relax @@ -1311,7 +1344,654 @@ % \end{macrocode} % % \iffalse -% +% +% \fi +% +% \iffalse +%<*filehook-2020.sty> +% \fi +% \begin{macrocode} +% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{filehook-2020}[% +% +% +%<*DRIVER> + 2099/01/01 develop +% + Hooks for input files] +% \end{macrocode} +% +% +% \subsection{Options} +% \begin{macrocode} +\DeclareOption{force}{} +\ProcessOptions\relax +% \end{macrocode} +% +% \subsection{General stuff} +% +% \subsection{Initialisation of Hooks} +% The general hooks are initialised to call the file specific hooks. +% +% \begin{macro}{\filehook@csuse} +% \begin{macrocode} +\begingroup +\gdef\filehook@csuse#1{\ifcsname #1\endcsname\csname #1\expandafter\endcsname\fi} +\expandafter\ifx\csname csuse\endcsname\relax + \expandafter\ifx\csname ifcsname\endcsname\relax + \gdef\filehook@csuse#1{\expandafter\ifx\csname #1\endcsname\relax\else\csname #1\expandafter\endcsname\fi} + \fi +\else + \global\let\filehook@csuse\csuse +\fi +\endgroup +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@include@atbegin} +% \begin{macrocode} +\def\filehook@include@atbegin#1{% + \filehook@csuse{\filehook@include@atbegin@#1}% + \filehook@include@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@include@@atbegin} +% \begin{macrocode} +\def\filehook@include@@atbegin{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@include@atend} +% \begin{macrocode} +\def\filehook@include@atend#1{% + \filehook@include@@atend + \filehook@csuse{\filehook@include@atend@#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@include@@atend} +% \begin{macrocode} +\def\filehook@include@@atend{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@include@after} +% \begin{macrocode} +\def\filehook@include@after#1{% + \filehook@include@@after + \filehook@csuse{\filehook@include@after@#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@include@@after} +% \begin{macrocode} +\def\filehook@include@@after{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@input@atbegin} +% \begin{macrocode} +\def\filehook@input@atbegin#1{% + \filehook@csuse{\filehook@input@atbegin@\filehook@ensureext{#1}}% + \filehook@input@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@input@@atbegin} +% \begin{macrocode} +\def\filehook@input@@atbegin{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@input@atend} +% \begin{macrocode} +\def\filehook@input@atend#1{% + \filehook@input@@atend + \filehook@csuse{\filehook@input@atend@\filehook@ensureext{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@input@@atend} +% \begin{macrocode} +\def\filehook@input@@atend{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@atbegin} +% \begin{macrocode} +\def\filehook@atbegin#1{% + \filehook@csuse{\filehook@atbegin@\filehook@ensureext{#1}}% + \filehook@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@@atbegin} +% \begin{macrocode} +\def\filehook@@atbegin{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@atend} +% \begin{macrocode} +\def\filehook@atend#1{% + \filehook@@atend + \filehook@csuse{\filehook@atend@\filehook@ensureext{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@@atend} +% \begin{macrocode} +\def\filehook@@atend{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@every@atbegin} +% \begin{macrocode} +\def\filehook@every@atbegin#1{% + \filehook@every@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@every@@atbegin} +% \begin{macrocode} +\def\filehook@every@@atbegin{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@every@atend} +% \begin{macrocode} +\def\filehook@every@atend#1{% + \filehook@every@@atend +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@every@@atend} +% \begin{macrocode} +\def\filehook@every@@atend{} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Hook Modification Macros} +% The following macros are used to modify the hooks, i.e.\ to prefix or append code to them. +% +% +% \subsubsection*{Internal Macros} +% +% The macro prefixes for the file specific hooks are stored in macros to reduce the number of +% tokens in the following macro definitions. +% \begin{macrocode} +\def\filehook@include@atbegin@{filehook@include@atbegin@} +\def\filehook@include@atend@{filehook@include@atend@} +\def\filehook@include@after@{filehook@include@after@} +\def\filehook@input@atbegin@{filehook@input@atbegin@} +\def\filehook@input@atend@{filehook@input@atend@} +\def\filehook@input@after@{filehook@input@after@} +\def\filehook@atbegin@{filehook@atbegin@} +\def\filehook@atend@{filehook@atend@} +\def\filehook@after@{filehook@after@} +% \end{macrocode} +% +% +% \begin{macro}{\filehook@append} +% Uses default \LaTeX{} macro. +% \begin{macrocode} +\def\filehook@append{\g@addto@macro} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@appendwarg} +% Appends code with one macro argument. The |\@tempa| intermediate step is required because of the +% included |##1| which wouldn't correctly expand otherwise. +% \begin{macrocode} +\long\def\filehook@appendwarg#1#2{% + \begingroup + \toks@\expandafter{#1{##1}#2}% + \edef\@tempa{\the\toks@}% + \expandafter\gdef\expandafter#1\expandafter##\expandafter1\expandafter{\@tempa}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@prefix} +% Prefixes code to a hook. +% \begin{macrocode} +\long\def\filehook@prefix#1#2{% + \begingroup + \@temptokena{#2}% + \toks@\expandafter{#1}% + \xdef#1{\the\@temptokena\the\toks@}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@prefixwarg} +% Prefixes code with an argument to a hook. +% \begin{macrocode} +\long\def\filehook@prefixwarg#1#2{% + \begingroup + \@temptokena{#2}% + \toks@\expandafter{#1{##1}}% + \edef\@tempa{\the\@temptokena\the\toks@}% + \expandafter\gdef\expandafter#1\expandafter##\expandafter1\expandafter{\@tempa}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@addtohook}[3]{Macro which should be used to add the material to the hook}{Macro name prefix}{End of macro name (file name)} +% The macro first expands the file name (|#3|) to flatten all included macros. An extension is added if missing, as well as the prefix. +% All modifications of |\@tempa| are made inside a group to keep them local. +% \begin{macrocode} +\def\filehook@addtohook#1#2#3{% + \begingroup + \edef\@tempa{#3}% + \edef\@tempa{#2\filehook@ensureext{\@tempa}}% + \@ifundefined{\@tempa}{\global\@namedef{\@tempa}{}}{}% + \expandafter\endgroup + \expandafter#1\csname\@tempa\endcsname +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection*{User Level Macros} +% The user level macros simple use the above defined macros on the appropriate hook. +% +% \begin{macro}{\AtBeginOfIncludes} +% \begin{macrocode} +\newcommand*\AtBeginOfIncludes{% + \filehook@append\filehook@include@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfIncludes} +% \begin{macrocode} +\newcommand*\AtEndOfIncludes{% + \filehook@prefix\filehook@include@@atend +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AfterIncludes} +% \begin{macrocode} +\newcommand*\AfterIncludes{% + \filehook@prefix\filehook@include@@after +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfIncludeFile} +% \begin{macrocode} +\newcommand*\AtBeginOfIncludeFile[1]{% + \filehook@addtohook\filehook@append\filehook@include@atbegin@{\filehook@ensuretex{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfIncludeFile} +% \begin{macrocode} +\newcommand*\AtEndOfIncludeFile[1]{% + \filehook@addtohook\filehook@prefix\filehook@include@atend@{\filehook@ensuretex{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AfterIncludeFile} +% \begin{macrocode} +\newcommand*\AfterIncludeFile[1]{% + \filehook@addtohook\filehook@prefix\filehook@include@after@{\filehook@ensuretex{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfInputs} +% \begin{macrocode} +\newcommand*\AtBeginOfInputs{% + \filehook@append\filehook@input@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfInputs} +% \begin{macrocode} +\newcommand*\AtEndOfInputs{% + \filehook@prefix\filehook@input@@atend +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfInputFile} +% \begin{macrocode} +\newcommand*\AtBeginOfInputFile{% + \filehook@addtohook\filehook@append\filehook@input@atbegin@ +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfInputFile} +% \begin{macrocode} +\newcommand*\AtEndOfInputFile{% + \filehook@addtohook\filehook@prefix\filehook@input@atend@ +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfFiles} +% \begin{macrocode} +\newcommand*\AtBeginOfFiles{% + \filehook@append\filehook@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfFiles} +% \begin{macrocode} +\newcommand*\AtEndOfFiles{% + \filehook@prefix\filehook@@atend +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfEveryFile} +% \begin{macrocode} +\newcommand*\AtBeginOfEveryFile{% + \filehook@append\filehook@every@@atbegin +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfEveryFile} +% \begin{macrocode} +\newcommand*\AtEndOfEveryFile{% + \filehook@prefix\filehook@every@@atend +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfFile} +% \begin{macrocode} +\newcommand*\AtBeginOfFile{% + \filehook@addtohook\filehook@append\filehook@atbegin@ +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfFile} +% \begin{macrocode} +\newcommand*\AtEndOfFile{% + \filehook@addtohook\filehook@prefix\filehook@atend@ +} +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\AtBeginOfClassFile} +% \begin{macrocode} +\newcommand*\AtBeginOfClassFile{% + \@ifnextchar* + {\AtBeginOfXFile@star\@clsextension}% + {\AtBeginOfXFile@normal\@clsextension}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfPackageFile} +% \begin{macrocode} +\newcommand*\AtBeginOfPackageFile{% + \@ifnextchar* + {\AtBeginOfXFile@star\@pkgextension}% + {\AtBeginOfXFile@normal\@pkgextension}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfXFile@star}[2]{extension}{name} +% If the class or package is already loaded the code is executed right away. +% Otherwise it is installed normally. +% \begin{macrocode} +\def\AtBeginOfXFile@star#1*#2{% + \@ifl@aded{#1}{#2}% + {\@firstofone}% + {\AtBeginOfXFile@normal{#1}{#2}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginOfXFile@normal}[2]{extension}{name} +% \begin{macrocode} +\def\AtBeginOfXFile@normal#1#2{% + \AtBeginOfFile{#2.#1}% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\AtEndOfClassFile} +% \begin{macrocode} +\newcommand*\AtEndOfClassFile{% + \@ifnextchar* + {\AtEndOfXFile@star\@clsextension}% + {\AtEndOfXFile@normal\@clsextension}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfPackageFile} +% \begin{macrocode} +\newcommand*\AtEndOfPackageFile{% + \@ifnextchar* + {\AtEndOfXFile@star\@pkgextension}% + {\AtEndOfXFile@normal\@pkgextension}% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\AtEndOfXFile@star}[2]{extension}{name} +% If the class or package is already loaded the code is executed right away. +% Otherwise it is installed normally. +% \begin{macrocode} +\def\AtEndOfXFile@star#1*#2{% + \@ifl@aded{#1}{#2}% + {\@firstofone}% + {\AtEndOfXFile@normal{#1}{#2}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtEndOfXFile@normal}[2]{extension}{name} +% Note that \Macro\AtEndOfClass is identical to \Macro\AtEndOfPackage, so no +% differentiation between classes and packages is needed here. +% \begin{macrocode} +\long\def\AtEndOfXFile@normal#1#2#3{% + \AtEndOfFile{#2.#1}{\AtEndOfPackage{#3}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ClearHook} +% Clears the hook by temporary redefining the prefix and append macros +% to do a simple definition to empty. +% \begin{macrocode} +\newcommand*\ClearHook{% + \begingroup + \def\filehook@prefix##1##2{% + \gdef##1{}% + \endgroup + }% + \let\filehook@append\filehook@prefix +} +% \end{macrocode} +% \end{macro} +% +% +% +% +% \subsection{Installation of Hooks} +% The \Macro\@input@ and \Macro\@iinput macros from |latex.ltx| are redefined to install the hooks. +% +% \begin{macro}{\@input@} +% This macro is redefined for the \Macro\include file hooks. +% Checks if the next command is \Macro\clearpage which indicates that we are inside \Macro\@include. +% If so the hooks are installed, otherwise the original macro is used unchanged. +% For the `after' hook an own \Macro\clearpage is inserted and the original one is gobbled. +% +% \begin{macrocode} +\def\DEPRECATED@input@#1{% + \@ifnextchar\clearpage + {% + \filehook@every@atbegin{#1}% + \filehook@include@atbegin{#1}% + \filehook@orig@@input@{#1}% + \filehook@include@atend{#1}% + \clearpage + \filehook@include@after{#1}% + \filehook@every@atend{#1}% + \@gobble + }% + {\filehook@orig@@input@{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iinput} +% This macro is redefined for the \Macro\input file hooks. +% it simply surrounds the original macro with the hooks. +% \begin{macrocode} +\def\filehook@@iinput#1{% + \filehook@every@atbegin{#1}% + \filehook@input@atbegin{#1}% + \filehook@orig@@iinput{#1}% + \filehook@input@atend{#1}% + \filehook@every@atend{#1}% +} +%\let\@iinput\filehook@@iinput +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@ensureext} +% This macro ensures the existence of a file name extension. If non is given `|.tex|' is +% added. +% \begin{macrocode} +\def\filehook@ensureext#1{% + \expandafter\filehook@@ensureext#1\empty.tex\empty\empty +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@@ensureext} +% \begin{macrocode} +\def\filehook@@ensureext#1.#2\empty#3\empty{#1.#2} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\filehook@ensuretex} +% Ensures a `|.tex|' extension, i.e. adds it if missing, even if there is a different one. +% \begin{macrocode} +\def\filehook@ensuretex#1{% + \expandafter\filehook@@ensuretex#1\empty.tex\empty\empty +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@@ensuretex} +% \begin{macrocode} +\def\filehook@@ensuretex#1.tex\empty#2\empty{#1.tex} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hook} +% \begin{macrocode} +\AddToHook{include/before}{% + \filehook@include@atbegin{\CurrentFile}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hook} +% \begin{macrocode} +\AddToHook{include/end}{% + \filehook@include@atend{\CurrentFile}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hook} +% \begin{macrocode} +\AddToHook{include/after}{% + \filehook@include@after{\CurrentFile}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@istexfile} +% \begin{macrocode} +\begingroup +\edef\dottex{\expandafter\expandafter\expandafter\@gobble\expandafter\string\csname.tex\endcsname} +\expandafter +\gdef\expandafter\filehook@istexfile\expandafter#\expandafter1\expandafter{% + \expandafter\expandafter\expandafter\filehook@istexfile@\expandafter#\expandafter1\expandafter\empty\dottex\empty\empty\@nil +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\filehook@istexfile@} +% \begin{macrocode} +\expandafter\gdef\expandafter\filehook@istexfile@\expandafter#\expandafter1\dottex\empty#2\empty#3\@nil{% + \begingroup + \def\@tempa{#2}% + \ifx\@tempa\empty + \endgroup + \expandafter\@secondoftwo + \else + \endgroup + \expandafter\@firstoftwo + \fi +} +\endgroup +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\Hook} +% \begin{macrocode} +\AddToHook{file/before}{% + \filehook@every@atbegin{\CurrentFile}% + \filehook@istexfile\CurrentFile{\filehook@input@atbegin{\CurrentFile}}{}% + \filehook@atbegin{\CurrentFile}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hook} +% \begin{macrocode} +\AddToHook{file/after}{% + \filehook@atend{\CurrentFile}% + \filehook@istexfile\CurrentFile{\filehook@input@atend{\CurrentFile}}{}% + \filehook@every@atend{\CurrentFile}% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +% % \fi % % \iffalse diff --git a/macros/latex/contrib/filehook/filehook.ins b/macros/latex/contrib/filehook/filehook.ins index 0d381c3b77..baead81637 100644 --- a/macros/latex/contrib/filehook/filehook.ins +++ b/macros/latex/contrib/filehook/filehook.ins @@ -5,6 +5,8 @@ \askforoverwritefalse \generate{% \file{filehook.sty}{\nopreamble\from{filehook.dtx}{filehook.sty}}% + \file{filehook-2019.sty}{\nopreamble\from{filehook.dtx}{filehook-2019.sty}}% + \file{filehook-2020.sty}{\nopreamble\from{filehook.dtx}{filehook-2020.sty}}% \file{filehook-scrlfile.sty}{\nopreamble\from{filehook.dtx}{filehook-scrlfile.sty}}% \file{filehook-memoir.sty}{\nopreamble\from{filehook.dtx}{filehook-memoir.sty}}% \file{filehook-listings.sty}{\nopreamble\from{filehook.dtx}{filehook-listings.sty}}% diff --git a/macros/latex/contrib/filehook/filehook.pdf b/macros/latex/contrib/filehook/filehook.pdf index 4d3462623b..dcd978b5f2 100644 Binary files a/macros/latex/contrib/filehook/filehook.pdf and b/macros/latex/contrib/filehook/filehook.pdf differ diff --git a/macros/latex/contrib/koma-script/README b/macros/latex/contrib/koma-script/README index 0b37a62c41..b999cbcdf7 100644 --- a/macros/latex/contrib/koma-script/README +++ b/macros/latex/contrib/koma-script/README @@ -1,5 +1,5 @@ -KOMA-Script 2020/07/22 v3.31 +KOMA-Script 2020/09/21 v3.32 Copyright (c) Markus Kohm , 1994-2020 This material is subject to the LaTeX Project Public License. See @@ -58,7 +58,7 @@ Requires: scrkbase - internal KOMA-Script package Recommended: scrlayer-scrpage - KOMA-Script package License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrarticle - wrapper class to scrartcl ------------------------------------------------------------------------------ @@ -73,7 +73,7 @@ Abstract: scrreport is a very simple wrapper class to scrartcl. Is has Requires: scrartcl.cls - KOMA-Script class License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrbase - basic features for KOMA-Script, e.g. conditionals and key=value ------------------------------------------------------------------------------ @@ -112,7 +112,7 @@ Requires: keyval - key=value package from the graphics bundle manipulation License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrbook - versatile class may be used as a drop-in replacement of book ------------------------------------------------------------------------------ @@ -132,7 +132,7 @@ Requires: scrkbase - internal KOMA-Script package typearea - KOMA-Script package License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrdate - calender date operations, e.g. calculation of the day of the week ------------------------------------------------------------------------------ @@ -151,7 +151,7 @@ Requires: scrkbase - KOMA-Script package for some basic features. manipulation License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrdoc - internal source documentation class of KOMA-Script ------------------------------------------------------------------------------ @@ -180,7 +180,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrfontsizes - package to generate a KOMA-Script font size file ------------------------------------------------------------------------------ @@ -192,7 +192,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrhack - patch some isues with other packages ------------------------------------------------------------------------------ @@ -210,7 +210,7 @@ Requires: scrkbase - internal KOMA-Script package with basics xpatch - extending etoolbox patching commands License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrjura - contract environment for advocates and scholary persons in law ------------------------------------------------------------------------------ @@ -226,7 +226,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrkbase - internal basic features for KOMA-Script classes and packages ------------------------------------------------------------------------------ @@ -241,7 +241,7 @@ Requires: scrbase - KOMA-Script package for some basic features. manipulation License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrlayer-fancyhdr - combining scrlayer with fancyhdr ------------------------------------------------------------------------------ @@ -281,7 +281,7 @@ Abstract: scrlayer-notecolumn is a LaTeX package of the KOMA-Script Requires: scrlayer.sty License: LPPL 1.3c or later State: Author maintained, proof of concept -Version: 2019/12/02 v0.3.3426 +Version: 2020/09/11 v0.3.3533 ============================================================================== scrlayer-scrpage - controlling page headers and footers ------------------------------------------------------------------------------ @@ -301,7 +301,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrlayer - defining layers and controlling page headers and footers ------------------------------------------------------------------------------ @@ -326,7 +326,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrletter - wrapper class to scrlttr2 ------------------------------------------------------------------------------ @@ -341,7 +341,7 @@ Abstract: scrreport is a very simple wrapper class to scrlttr2. Is has Requires: scrlttr2.cls - KOMA-Script class License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrletter - letter extention to KOMA-Script classes ------------------------------------------------------------------------------ @@ -356,7 +356,29 @@ Requires: scrkbase - internal KOMA-Script package Recommended: marvosym - package by Martin Vogel providing symbols License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 +============================================================================== +scrlfile-hook - internal subpackage of scrlfile +------------------------------------------------------------------------------ +Maintainer: Markus Kohm +E-Mail: komascript at gmx info +Abstract: scrlfile-hook is an internal subpackage of scrlfile to be + be used with LaTeX from version 2010-10-01 on. +Requires: scrlogo.sty +License: LPPL 1.3c or later +State: Author maintained +Version: 2020/09/21 v3.32 +============================================================================== +scrlfile-pacholdlatex - internal subpackage of scrlfile +------------------------------------------------------------------------------ +Maintainer: Markus Kohm +E-Mail: komascript at gmx info +Abstract: scrlfile-patcholdlatex is an internal subpackage of scrlfile + to be be used with LaTeX up to version 2010-04-01. +Requires: scrlogo.sty +License: LPPL 1.3c or later +State: Author maintained +Version: 2020/09/21 v3.32 ============================================================================== scrlfile - control of package dependencies ------------------------------------------------------------------------------ @@ -371,10 +393,22 @@ Abstract: scrlfile is a LaTeX package of the KOMA-Script bundle. It closing the main aux file during \end{document}. It has been used by the KOMA-Script classes for more than a decade. +Requires: scrlfile-hook.sty, scrlfile-patcholdlatex.sty, scrlogo.sty +License: LPPL 1.3c or later +State: Author maintained +Version: 2020/09/21 v3.32 +============================================================================== +scrlogo - print the KOMA-Script logo +------------------------------------------------------------------------------ +Maintainer: Markus Kohm +E-Mail: komascript at gmx info +Abstract: scrlogo is a LaTeX package of the KOMA-Script bundle. It + provides the command \KOMAScript to print the official + KOMA-Script logo. Requires: License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrlttr2 - versatile letter class with separation of text area and note paper ------------------------------------------------------------------------------ @@ -407,7 +441,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrreport - wrapper class to scrreprt ------------------------------------------------------------------------------ @@ -422,7 +456,7 @@ Abstract: scrreport is a very simple wrapper class to scrreprt. Is has Requires: scrreprt.cls - KOMA-Script class License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrreprt - versatile class may be used as a drop-in replacement of report ------------------------------------------------------------------------------ @@ -442,7 +476,7 @@ Requires: scrkbase - internal KOMA-Script package typearea - KOMA-Script package License: LPPL 1.3c or later State: Author maintained -Version: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrtime - show the time of the LaTeX run ------------------------------------------------------------------------------ @@ -454,7 +488,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== scrwfile - Spare write handles for helper files to avoid `No room' messages ------------------------------------------------------------------------------ @@ -508,7 +542,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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== typearea - Calculating typeing area and margins depending on typographic rules ------------------------------------------------------------------------------ @@ -529,5 +563,5 @@ 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: 2020/07/22 v3.31 +Version: 2020/09/21 v3.32 ============================================================================== diff --git a/macros/latex/contrib/koma-script/doc/manifest.txt b/macros/latex/contrib/koma-script/doc/manifest.txt index dae3054476..af2d7d523d 100644 --- a/macros/latex/contrib/koma-script/doc/manifest.txt +++ b/macros/latex/contrib/koma-script/doc/manifest.txt @@ -35,7 +35,7 @@ % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== % -% CONTENTS OF THE KOMA-SCRIPT RELEASE 2020/07/22 v3.31 +% CONTENTS OF THE KOMA-SCRIPT RELEASE 2020/09/21 v3.32 % ------------------------------------------------------ % % @@ -303,6 +303,9 @@ % tocbasic.dtx - KOMA-Script toc-file package % % scrlfile.dtx - KOMA-Script load file package +% scrlfile-hook.dtx - subpackage of scrlfile +% scrlfile-patcholdlatex.dtx +% - subpackage of scrlfile % % scrwfile.dtx - KOMA-Script write file package % @@ -507,6 +510,8 @@ scrextend.dtx tocbasic.dtx scrlfile.dtx +scrlfile-hook.dtx +scrlfile-patcholdlatex.dtx scrwfile.dtx diff --git a/macros/latex/contrib/koma-script/doc/scrguide.html b/macros/latex/contrib/koma-script/doc/scrguide.html index 8729266a5d..38ca39718f 100644 --- a/macros/latex/contrib/koma-script/doc/scrguide.html +++ b/macros/latex/contrib/koma-script/doc/scrguide.html @@ -29,11 +29,11 @@
  • adrFreeIVstop → 303
  • adrFreeIVwarn → 303
  • appendixprefix → 101
  • -
  • areasetadvanced → 504
  • -
  • autoclearnotecolumns → 501
  • +
  • areasetadvanced → 503
  • +
  • autoclearnotecolumns → 500
  • autoenlargeheadfoot → 266
  • -
  • automark → 283, 471
  • -
  • autooneside → 283, 471
  • +
  • automark → 283, 470
  • +
  • autooneside → 283, 470
  • backaddress → 213
  • bibliography → 156
  • captions → 136
  • @@ -44,8 +44,8 @@
  • cleardoublepage → 243, 316, 91
  • clines → 292
  • contract → 330
  • -
  • deactivatepagestylelayers → 466
  • -
  • draft → 165, 284, 308, 459, 58
  • +
  • deactivatepagestylelayers → 465
  • +
  • draft → 165, 284, 308, 458, 58
  • enlargefirstpage → 233
  • extendedfeature → 308
  • firstfoot → 233
  • @@ -75,7 +75,7 @@
  • headsepline → 238, 291, 84
  • headtopline → 291
  • headwidth → 289
  • -
  • hmode → 486
  • +
  • hmode → 485
  • ilines → 292
  • index → 160
  • juratitlepagebreak → 332
  • @@ -85,22 +85,22 @@
  • leqno → 135
  • listof → 151
  • locfield → 219
  • -
  • manualmark → 283, 471
  • -
  • markcase → 284, 472
  • +
  • manualmark → 283, 470
  • +
  • markcase → 284, 471
  • mpinclude → 44
  • numbers → 104
  • numericaldate → 222
  • olines → 292
  • -
  • onpsbackground → 466
  • -
  • onpsevenpage → 466
  • -
  • onpsfloatpage → 466
  • -
  • onpsforeground → 466
  • -
  • onpsinit → 466
  • -
  • onpsnonfloatpage → 466
  • -
  • onpsoddpage → 466
  • -
  • onpsoneside → 466
  • -
  • onpsselect → 466
  • -
  • onpstwoside → 466
  • +
  • onpsbackground → 465
  • +
  • onpsevenpage → 465
  • +
  • onpsfloatpage → 465
  • +
  • onpsforeground → 465
  • +
  • onpsinit → 465
  • +
  • onpsnonfloatpage → 465
  • +
  • onpsoddpage → 465
  • +
  • onpsoneside → 465
  • +
  • onpsselect → 465
  • +
  • onpstwoside → 465
  • open → 100
  • origlongtable → 151
  • overfullrule → 165, 308, 58
  • @@ -118,115 +118,113 @@
  • ref → 339
  • refline → 222
  • sectionentrydots → 78
  • -
  • singlespacing → 466
  • +
  • singlespacing → 465
  • subject → 227
  • symbolicnames → 206
  • titlepage → 311, 67
  • toc → 75
  • twocolumn → 42
  • twoside → 41
  • -
  • usegeometry → 503
  • +
  • usegeometry → 502
  • version → 164, 307, 33, 57
  • Anweisungen

    Umgebungen

      @@ -875,8 +873,8 @@

    Längen

    Pseudolängen

      @@ -973,8 +971,8 @@

    Seitenstile

    Stile für das float-Paket

      diff --git a/macros/latex/contrib/koma-script/doc/scrguide.pdf b/macros/latex/contrib/koma-script/doc/scrguide.pdf index e508b48c3e..1af8d213fb 100644 Binary files a/macros/latex/contrib/koma-script/doc/scrguide.pdf and b/macros/latex/contrib/koma-script/doc/scrguide.pdf differ diff --git a/macros/latex/contrib/koma-script/doc/scrguien.html b/macros/latex/contrib/koma-script/doc/scrguien.html index 110875b259..53c7248b93 100644 --- a/macros/latex/contrib/koma-script/doc/scrguien.html +++ b/macros/latex/contrib/koma-script/doc/scrguien.html @@ -128,6 +128,7 @@
    • twoside → 41
    • usegeometry → 471
    • version → 154, 292, 33, 56
    • +
    • withdeprecated → 361

    Commands

      @@ -146,19 +147,17 @@
    • \Address → 286
    • \AddtoDoHook → 357
    • \AddtoOneTimeDoHook → 357
    • +
    • \AfterAtEndOfClass* → 362
    • \AfterAtEndOfClass → 362
    • +
    • \AfterAtEndOfPackage* → 362
    • \AfterAtEndOfPackage → 362
    • \AfterBibliographyPreamble → 149
    • \AfterCalculatingTypearea* → 473
    • \AfterCalculatingTypearea → 473
    • -
    • \AfterClass! → 362
    • \AfterClass* → 362
    • -
    • \AfterClass+ → 362
    • \AfterClass → 362
    • \AfterFile → 361
    • -
    • \AfterPackage! → 362
    • \AfterPackage* → 362
    • -
    • \AfterPackage+ → 362
    • \AfterPackage → 362
    • \AfterReadingMainAux → 364
    • \AfterRestoreareas* → 472
    • @@ -177,11 +176,11 @@
    • \AtEndOfFamilyOptions → 339
    • \Before@sect → 500
    • \Before@ssect → 500
    • -
    • \BeforeClass → 361
    • +
    • \BeforeClass → 362
    • \BeforeClosingMainAux → 364
    • \BeforeFamilyProcessOptions → 336
    • \BeforeFile → 361
    • -
    • \BeforePackage → 361
    • +
    • \BeforePackage → 362
    • \BeforeRestoreareas* → 472
    • \BeforeRestoreareas → 472
    • \BeforeSelectAnyPageStyle → 433
    • @@ -346,25 +345,25 @@
    • \RedeclareSectionCommands → 491
    • \RelaxFamilyKey → 335
    • \RemoveLayersFromPageStyle → 438
    • -
    • \ReplaceClass → 366
    • -
    • \ReplaceInput → 365
    • -
    • \ReplacePackage → 366
    • -
    • \ResetPreventPackageFromLoading → 369
    • +
    • \ReplaceClass → 367
    • +
    • \ReplaceInput → 366
    • +
    • \ReplacePackage → 367
    • +
    • \ResetPreventPackageFromLoading → 368
    • \SecDef → 499
    • \Sentence → 318
    • \SplitDoHook → 358
    • -
    • \StorePreventPackageFromLoading → 369
    • +
    • \StorePreventPackageFromLoading → 368
    • \SubClause → 313
    • \TOCEntryStyleInitCode → 400
    • \TOCEntryStyleStartInitCode → 400
    • \TOCLineLeaderFill → 401
    • \TOCclone → 372
    • \Telephone → 286
    • -
    • \UnPreventPackageFromLoading* → 370
    • -
    • \UnPreventPackageFromLoading → 370
    • -
    • \UnReplaceClass → 368
    • -
    • \UnReplaceInput → 368
    • -
    • \UnReplacePackage → 368
    • +
    • \UnPreventPackageFromLoading* → 369
    • +
    • \UnPreventPackageFromLoading → 369
    • +
    • \UnReplaceClass → 367
    • +
    • \UnReplaceInput → 367
    • +
    • \UnReplacePackage → 367
    • \UnifyLayersAtPageStyle → 439
    • \XdivY → 355
    • \XmodY → 355
    • diff --git a/macros/latex/contrib/koma-script/doc/scrguien.pdf b/macros/latex/contrib/koma-script/doc/scrguien.pdf index 484bee5042..7d4e484dc0 100644 Binary files a/macros/latex/contrib/koma-script/doc/scrguien.pdf and b/macros/latex/contrib/koma-script/doc/scrguien.pdf differ diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf b/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf index 0067363ec9..479fe1eb26 100644 Binary files a/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf and b/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf differ diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex b/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex index d90b1ef5e0..56f4899802 100644 --- a/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex +++ b/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2019 +% Copyright (c) Markus Kohm, 2002-2020 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2019 +% Copyright (c) Markus Kohm, 2002-2020 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -46,11 +46,11 @@ % ====================================================================== \KOMAProvidesFile{scrbase.tex} - [$Date: 2019-12-03 09:41:21 +0100 (Tue, 03 Dec 2019) $ + [$Date: 2020-08-24 15:34:10 +0200 (Mon, 24 Aug 2020) $ KOMA-Script package scrbase] \translator{Markus Kohm\and Melvin Hendrix\and Karl Hagen} -% Date of the translated German file: 2019-12-03 +% Date of the translated German file: 2020-08-24 \chapter{Basic Functions in the \Package{scrbase} Package} \labelbase{scrbase} diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex index f3333d3140..f6a7220ca8 100644 --- a/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex +++ b/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2019 +% Copyright (c) Markus Kohm, 2001-2020 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2019 +% Copyright (c) Markus Kohm, 2001-2020 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -46,11 +46,11 @@ % ============================================================================ \KOMAProvidesFile{scrlfile.tex} - [$Date: 2019-12-03 09:41:21 +0100 (Tue, 03 Dec 2019) $ + [$Date: 2020-09-14 09:43:36 +0200 (Mon, 14 Sep 2020) $ KOMA-Script guide (chapter: scrlfile)] \translator{Gernot Hassenpflug\and Markus Kohm\and Karl Hagen} -% Date of the translated German file: 2019-12-03 +% Date of the translated German file: 2020-09-14 \chapter{Controlling Package Dependencies with \Package{scrlfile}} \labelbase{scrlfile} @@ -111,6 +111,32 @@ are also applications for normal \LaTeX{} users. Therefore, this chapter gives examples for both groups. %\end{Explain} +\begin{Declaration} + \Option{withdeprecated} +\end{Declaration} +With\ChangedAt{v3.32}{\Package{scrlfile}} \LaTeX{} 2020-10-01 a completely new +hook mechanism is available. Instead of redefining macros of the \LaTeX{} +kernel, \Package{scrlfile} 3.32 and newer makes use of it. For this purpose it +loads the internal package +\Package{scrfile-hook}\IndexPackage[indexmain]{scrlfile-hook}. With older +\LaTeX{} versions, the internal package \Package{scrlayer-patcholdkernel}% +\IndexPackage[indexmain]{scrlfile-patcholdkernel} is used. However, since it +was not possible to achieve identical functionality with the new mechanism in +\LaTeX, some commands of \Package{scrlfile} were marked as +deprecated. Furthermore, the opportunity was taken to organize the +proliferation of command variants. If a user uses a class or package that is +still based on the commands that are no longer supported by +\Package{scrlfile}, the package \Package{scrlfile} can be loaded with +\begin{lstcode} + \RequirePackage[withdeprecated]{scrlfile} +\end{lstcode} +before loading the class. \Package{scrlfile} then additionally emulates some +of the deprecated commands in a way that should be sufficient in most +cases. In any case, the author of the corresponding class or package should be +informed, so that he or she can make an adaptation to the current version of +\Package{scrlfile} or directly to \LaTeX{} from version 2020-10-01.% +% +\EndIndexGroup \section{Actions Before and After Loading} \seclabel{macros} @@ -120,8 +146,8 @@ loading files. The commands used to do so distinguish between ordinary files, classes, and packages. \begin{Declaration} - \Macro{BeforeFile}\Parameter{file}\Parameter{commands}% - \Macro{AfterFile}\Parameter{file}\Parameter{commands} + \Macro{BeforeFile}\Parameter{file}\OParameter{label}\Parameter{commands}% + \Macro{AfterFile}\Parameter{file}\OParameter{label}\Parameter{commands} \end{Declaration}% \Macro{BeforeFile} ensures that the \PName{commands} are executed before the next time \PName{file} is loaded. \Macro{AfterFile} works in a similar @@ -130,11 +156,21 @@ been loaded. Of course, if \PName{file} is never loaded, the \PName{commands} will never be executed. For \PName{file}, you should specify any extensions as part of the file name, as you would with \Macro{input}. -To implement those features, \Package{scrlfile} redefines the well-known -\LaTeX{} command \Macro{InputIfFileExists}. If this command does not have the -expected definition, \Package{scrlfile} issues a warning. This occurs in case -the command is changed in future \LaTeX{} versions or has already been -redefined by another package. +To implement those featuresfor \LaTeX{} before version 2020-10-01, +\Package{scrlfile-patcholdlatex} redefines the well-known \LaTeX{} command +\Macro{InputIfFileExists}. If this command does not have the expected +definition, \Package{scrlfile-patcholdlatex} issues a warning. This occurs in +case the command has already been redefined by an incompatible package. + +With\ChangedAt{v3.32}{\Package{scrlfile}}\IndexCmd{AddToHook} \LaTeX{} from +version 2020-10-01 on, \Package{scrlfile-hook} uses +\Macro{AddToHook}\PParameter{file/before/\PName{file}}\OParameter{label}\Parameter{commands} +or +\Macro{AddToHook}\PParameter{file/after/\PName{file}}\OParameter{label}\Parameter{commands}. +For more information on the meaning of the optional argument \PName{label}, +please refer to the corresponding manual of the \LaTeX{} core statement +\Macro{AddToHook}. As a rule, the omission of the optional argument is +recommended. With older \LaTeX{} versions this is ignored anyway. \LaTeX{} uses the \Macro{InputIfFileExists} command every time it loads a file. This occurs regardless of whether the file is loaded with @@ -154,28 +190,33 @@ instead. Notice the parentheses surrounding the file name!% \begin{Declaration} - \Macro{BeforeClass}\Parameter{class}\Parameter{commands}% - \Macro{BeforePackage}\Parameter{package}\Parameter{commands} + \Macro{BeforeClass}\Parameter{class}\OParameter{label}\Parameter{commands}% + \Macro{BeforePackage}\Parameter{package}\OParameter{label}\Parameter{commands} \end{Declaration}% These two commands work the same way as \DescRef{\LabelBase.cmd.BeforeFile}. The only difference is that the \PName{class} or \PName{package} is specified with its class or package name and not with its file name. That means you -should omit the file extensions \File{.cls} or \File{.sty}.% -% +should omit the file extensions \File{.cls} or \File{.sty}. + +Note,\important{Attention!} \Package{scrlfile-hook} also uses \PValue{file} +and not \PValue{class} or \PValue{package} for the hook. This is the only way +to ensure that the execution of the \PName{commands} already takes place in +the context of the class or package. For the meaning of the optional argument +\PName{label} please refer to the \LaTeX{} core statement +\Macro{AddToHook}\IndexCmd{AddToHook}. As a rule, the omission of the optional +argument is recommended. With older \LaTeX{} versions this is ignored anyway.% \EndIndexGroup \begin{Declaration} - \Macro{AfterClass}\Parameter{class}\Parameter{commands}% - \Macro{AfterClass*}\Parameter{class}\Parameter{commands}% - \Macro{AfterClass+}\Parameter{class}\Parameter{commands}% - \Macro{AfterClass!}\Parameter{class}\Parameter{commands}% - \Macro{AfterAtEndOfClass}\Parameter{class}\Parameter{commands}% - \Macro{AfterPackage}\Parameter{package}\Parameter{commands}% - \Macro{AfterPackage*}\Parameter{package}\Parameter{commands}% - \Macro{AfterPackage+}\Parameter{package}\Parameter{commands}% - \Macro{AfterPackage!}\Parameter{package}\Parameter{commands}% - \Macro{AfterAtEndOfPackage}\Parameter{package}\Parameter{commands} + \Macro{AfterClass}\Parameter{class}\OParameter{label}\Parameter{commands}% + \Macro{AfterClass*}\Parameter{class}\OParameter{label}\Parameter{commands}% + \Macro{AfterAtEndOfClass}\Parameter{class}\OParameter{label}\Parameter{commands}% + \Macro{AfterAtEndOfClass*}\Parameter{class}\OParameter{label}\Parameter{commands}% + \Macro{AfterPackage}\Parameter{package}\OParameter{label}\Parameter{commands}% + \Macro{AfterPackage*}\Parameter{package}\OParameter{label}\Parameter{commands}% + \Macro{AfterAtEndOfPackage}\Parameter{package}\OParameter{label}\Parameter{commands} + \Macro{AfterAtEndOfPackage*}\Parameter{package}\OParameter{label}\Parameter{commands} \end{Declaration}% The \Macro{AfterClass} and \Macro{AfterPackage} commands work much like \DescRef{\LabelBase.cmd.AfterFile}. The only difference is that the @@ -188,28 +229,27 @@ function somewhat differently. If the class or package has already been loaded, they execute the \PName{commands} immediately rather than waiting until the next time the class or package is loaded. -The\important[i]{\Macro{AfterClass+}\\\Macro{AfterPackage+}} -plus\ChangedAt{v3.09}{\Package{scrlfile}} version executes the -\PName{commands} after the class or package has been completely loaded. This -behaviour differs from that of the starred version only if you use the command -when the class or package has begun loading but has not yet finished. If the -class or package has not finished loading, the \PName{commands} will always be -executed before the commands in \Macro{AtEndOfClass} or -\Macro{AtEndOfPackage}. - -If\important[i]{\Macro{AfterClass!}\\\Macro{AfterPackage!}} a class uses -\Macro{AtEndOfClass} or a package uses \Macro{AtEndOfPackage} to execute -commands after the class of package file has been loaded completely, and -if you want to execute \PName{commands} after these deferred -commands have been executed, you can use the exclamation-mark versions -\Macro{AfterClass!}\ChangedAt{v3.09}{\Package{scrlfile}} or -\Macro{AfterPackage!}. - -If\important[i]{\Macro{AfterAtEndOfClass}\\\Macro{AfterAtEndOfPackage}} you -want to execute the \PName{commands} only when the class or package is loaded -later and outside the context of that class or package, you can use -\Macro{AfterAtEndOfClass}\ChangedAt{v3.09}{\Package{scrlfile}} for classes and -\Macro{AfterAtEndOfPackage} for packages. +However\ChangedAt{v3.09}{\Package{scrlfile}}% +\important[i]{\Macro{AfterAtEndOfClass}\\\Macro{AfterAtEndOfPackage}}, code +whose execution is delayed by \Macro{AtEndOfClass} or \Macro{AtEndOfPackage} +within the class or package is first executed afterwards. In contrast, +\Macro{AfterAtEndOfClass} or \Macro{AfterAtEndOfPackage} ensures that +\PName{commands} are executed after such code. + +Again\ChangedAt{v3.32}{\Package{scrlfile}}% +\important[i]{\Macro{AfterAtEndOfClass*}\\\Macro{AfterAtEndOfPackage*}}, there +are star variants that ensure that \PName{commands} are executed immediately +if the class or package is already completely loaded. If a class or package is +currently loaded, the execution is delayed like in the version without star. + +Note that \Package{scrlfile-hook} uses a \PValue{file/after} hook for +\Macro{AfterClass}, \Macro{AfterPackage} and their star variants. In contrast +\Macro{AfterAtEndOfClass} and its star variant set a \PValue{class/after} hook +and \Macro{AfterAtEndOfPackage} and its star variant set a +\PValue{package/after} hook accordingly. For the meaning of the optional +argument \PName{label} please refer to the \LaTeX{} core statement +\Macro{AddToHook}\IndexCmd{AddToHook}. As a rule, the omission of the optional +argument is recommended. With older \LaTeX{} versions this is ignored anyway. \begin{Example} The following example for class and package authors shows how \KOMAScript{} @@ -396,46 +436,55 @@ actions before or after loading a particular file, package, or class. You can also use \Package{scrlfile} to input a completely different file than the one that was requested. - \begin{Declaration} \Macro{ReplaceInput}\Parameter{original file}% \Parameter{replacement file}% \end{Declaration}% -This\ChangedAt{v2.96}{\Package{scrlfile}} command defines a replacement for -the file specified in the first argument, \PName{original file}. If \LaTeX{} -is instructed to load this file, the \PName{replacement file} will be loaded -instead. The replacement-file definition affects all files loaded using +This command\ChangedAt{v2.96}{\Package{scrlfile}} defines a replacement +for the file specified in the first argument, \PName{original file}. If +\LaTeX{} is instructed to load this file, the \PName{replacement file} will be +loaded instead. The replacement-file definition affects all files loaded using \Macro{InputIfFileExists}, whether they are loaded by the user or internally by \LaTeX{}. To do so, \Package{scrlfile} redefines \Macro{InputIfFileExists}. +When\ChangedAt{v3.32}{\Package{scrlfile}} using a \LaTeX{} version up to +2020-04-01, the package \Package{scrlfile-patcholdlatex} must redefine the +\Macro{InputIfFileExists} statement for this purpose. When using \LaTeX{} from +version 2020-10-01 on, \Package{scrlfile-hook} uses the internal \LaTeX{} +statement \Macro{declare@file@substitution}. The \LaTeX{} team asks to make +such a substitution only if there is no other way to achieve the desired +result, for example if such a substitution is indispensable to maintain +compatibility and if the \PName{replacement file} provides the same +functionality. + \begin{Example} - You want to input the \File{\Macro{jobname}.xua} file instead of the - \File{\Macro{jobname.aux}} file. To do this, you use + You want to input the \File{\Macro{jobname}.tol} file instead of the + \File{\Macro{jobname.lot}} file. To do this, you use \begin{lstcode} - \ReplaceInput{\jobname.aux}{\jobname.xua} + \ReplaceInput{\jobname.tol}{\jobname.lot} \end{lstcode} - If additionally you replace \File{\Macro{jobname}.xua} by - \File{\Macro{jobname}.uxa} using + If additionally you replace \File{\Macro{jobname}.tol} by + \File{\Macro{jobname}.tlo} using \begin{lstcode} - \ReplaceInput{\jobname.xua}{\jobname.uxa} + \ReplaceInput{\jobname.tol}{\jobname.tlo} \end{lstcode} - then \File{\Macro{jobname}.aux} will also be replaced by - \File{\Macro{jobname}.uxa}. In this way, you can process the whole + then \File{\Macro{jobname}.tol} will also be replaced by + \File{\Macro{jobname}.tlo}. In this way, you can process the whole replacement chain. However, a replacement that results in a loop such as \begin{lstcode} - \ReplaceInput{\jobname.aux}{\jobname.xua} - \ReplaceInput{\jobname.xua}{\jobname.aux} + \ReplaceInput{\jobname.lot}{\jobname.tol} + \ReplaceInput{\jobname.tol}{\jobname.lot} \end{lstcode} - will cause a \emph{stack size error}. So it is not possible to replace + will cause an error. So it is not possible to replace a file that has already been replaced once by itself again. \end{Example} In theory, it would also be possible to use this command to replace one -package or class with another. But \LaTeX{} would recognize that the requested -file name does not match the name of the package or class. You can find a -solution for this problem below.% +package or class with another .However, it is recommended to use the following +instructions for replacing a package or class. For older \LaTeX{} versions +this is even mandatory.% \EndIndexGroup @@ -447,26 +496,8 @@ solution for this problem below.% \end{Declaration}% You\ChangedAt{v2.96}{\Package{scrlfile}}\textnote{Attention!} should never replace a class or package using the \DescRef{\LabelBase.cmd.ReplaceInput} -command described above. Doing so would result in a \LaTeX{} warning about -mismatched class or package names. Real errors are also possible if a class or -package is loaded under an incorrect file name. -\begin{Example} - You replace the \Package{scrpage2} package with its official successor, - \Package{scrlayer-scrpage}, by using -\begin{lstcode}[escapechar=\$] - \ReplaceInput{scrpage2.sty}{scrlayer-scrpage.sty}$\textnote{Do not try this!}$ -\end{lstcode} - Loading \Package{scrpage2} will then lead to the following warning: -\begin{lstcode} - LaTeX warning: You have requested `scrpage2', - but the package provides `scrlayer-scrpage'. -\end{lstcode} - Users may be greatly confused by such a warning because they requested not - \Package{scrlayer-scrpage} but \Package{scrpage2}, which was replaced by - \Package{scrlayer-scrpage}. -\end{Example} -One solution to this problem is to use \Macro{ReplaceClass} or -\Macro{ReplacePackage} instead of \DescRef{\LabelBase.cmd.ReplaceInput}. Note +command described above. Instead, \Macro{ReplacePackage} should be used for +package replacements and \Macro{ReplaceClass} for class replacements. Note that in this case, as with \Macro{documentclass} and \Macro{usepackage}, you should give the name of the class or package and not the complete file name. @@ -480,66 +511,21 @@ Please\textnote{Attention!} note that the \PName{replacement class} or the \PName{replacement package} will be loaded with the same options that would have been passed to the \PName{original class} or \PName{original package}. If you replace a class or package with one that does not support a requested -option, you will receive the usual warnings and errors. However, you can -declare such missing options using \DescRef{\LabelBase.cmd.BeforeClass} or -\DescRef{\LabelBase.cmd.BeforePackage}. - -\begin{Example} - Suppose you want to replace the \Package{oldfoo} package with the - \Package{newfoo} package when the former package is loaded. You can do this with -\begin{lstcode} - \ReplacePackage{oldfoo}{newfoo} -\end{lstcode} - Suppose the old package provides an \Option{oldopt} option, but the new - package does not. With -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{% - \PackageInfo{newfoo}% - {option `oldopt' not supported}% - }}% -\end{lstcode} - you can declare this missing option for the \Package{newfoo} package. This - avoids an error message when the \Package{oldfoo} package is loaded with the - option that is unsupported by \Package{newfoo}. - - If, on the other hand, the \Package{newfoo} package supports a - \Option{newopt} option that should be used instead of the \Option{oldopt} - option, you can also achieved this: -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{% - \ExecuteOptions{newopt}% - }}% -\end{lstcode} - You can even specify different default options that apply when loading the - new package: -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{% - \ExecuteOptions{newopt}% - }% - \PassOptionsToPackage{newdefoptA,newdefoptB}% - {newfoo}% - } -\end{lstcode} - or directly: -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{% - \ExecuteOptions{newopt}% - }% - }% - \PassOptionsToPackage{newdefoptA,newdefoptB}% - {newfoo}% -\end{lstcode} - Note that in the last example, the call to \Macro{PassOptionsToPackage} - occurs not within but after \Macro{BeforePackage} -\end{Example} +option, you will receive the usual warnings and errors. Of course, to replace classes, you must load \Package{scrlfile} before the class using \Macro{RequirePackage} instead of \Macro{usepackage}. -% + +When\ChangedAt{v3.32}{\Package{scrlfile}} using a \LaTeX{} version up to +2020-04-01 the package \Package{scrlfile-patcholdlatex} must redefine the +internal statements \Macro{@onefilewithoptions} and +\Macro{@loadwithoptions}. When using \LaTeX{} from version 2020-10-01 on, +\Package{scrlfile-hook} uses the internal \LaTeX{} statement +\Macro{declare@file@substitution}. The \LaTeX{} Team asks to perform such a +substitution only if there is no other way to achieve the desired result, +e.g. if such a substitution is indispensable to maintain compatibility and the +\PName{replacement package} or \PName{replacement class} provides the same +functionality.% \EndIndexGroup @@ -551,7 +537,7 @@ class using \Macro{RequirePackage} instead of \Macro{usepackage}. You\ChangedAt{v3.12}{\Package{scrlfile}} can also remove a replacement. You should remove the replacement definition for an input file using \Macro{UnReplaceInput}, for a package using \Macro{UnReplacePackage}, and for -a class using \Macro{UnReplaceClass}.% +a class using \Macro{UnReplaceClass}.% \EndIndexGroup diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex index 435588f9b5..e287d4f38c 100644 --- a/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex +++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2019 +% Copyright (c) Markus Kohm, 2002-2020 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2019 +% Copyright (c) Markus Kohm, 2002-2020 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -46,7 +46,7 @@ % ====================================================================== \KOMAProvidesFile{scrbase.tex} - [$Date: 2019-12-03 09:41:21 +0100 (Tue, 03 Dec 2019) $ + [$Date: 2020-08-24 15:34:10 +0200 (Mon, 24 Aug 2020) $ KOMA-Script package scrbase] \chapter{Grundlegende Funktionen im Paket \Package{scrbase}} @@ -1996,7 +1996,7 @@ genommen wird. \item \PValue{heading/begingroup/}\PName{Name} mit leerem Argument für Einmalcode. \end{enumerate} - Der Platzhalter \PName{Name} ist dabei indentisch mit dem bei + Der Platzhalter \PName{Name} ist dabei identisch mit dem bei \DescRef{maincls-experts.cmd.DeclareSectionCommand}, \DescRef{maincls-experts.cmd.DeclareNewSectionCommand} oder \DescRef{maincls-experts.cmd.ProvideSectionCommand} diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex index 13aab4afc1..a65ab2312f 100644 --- a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex +++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2019 +% Copyright (c) Markus Kohm, 2001-2020 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2019 +% Copyright (c) Markus Kohm, 2001-2020 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -46,7 +46,7 @@ % ============================================================================ \KOMAProvidesFile{scrlfile.tex}% - [$Date: 2019-12-03 09:41:21 +0100 (Tue, 03 Dec 2019) $ + [$Date: 2020-09-14 09:43:36 +0200 (Mon, 14 Sep 2020) $ KOMA-Script guide (chapter: scrlfile)] \chapter{Paketabhängigkeiten mit \Package{scrlfile} @@ -124,6 +124,35 @@ dürfte, gibt es durchaus auch Anwendungen für normale \LaTeX-Benutzer. Deshalb sind in diesem Kapitel auch für beide Gruppen Beispiele aufgeführt. %\end{Explain} +\begin{Declaration} + \Option{withdeprecated} +\end{Declaration} +Mit\ChangedAt{v3.32}{\Package{scrlfile}} \LaTeX{} 2020-10-01 steht ein +komplett neuer \emph{Hook}-Mechanismus zur Verfügung. Statt Makros des +\LaTeX-Kerns umzudefinieren, macht \Package{scrlfile} ab Version 3.32 davon +auch Gebrauch. Dazu lädt es das interne Paket +\Package{scrlfile-hook}\IndexPackage[indexmain]{scrlfile-hook}. Bei älteren +\LaTeX-Versionen wird dagegen das interne Paket +\Package{scrlfile-patcholdkernel}% +\IndexPackage[indexmain]{scrlfile-patcholdkernel} verwendet. Da mit dem neuen +Mechanismus in \LaTeX{} jedoch keine identische Funktionalität zu erreichen +war, wurden einige Anweisungen von \Package{scrlfile} als veraltet +markiert. Darüber hinaus wurde die Gelegenheit genutzt, den Wildwuchs an +Befehlsvarianten zu ordnen. Sollte ein Anwender eine Klasse oder Pakete +verwenden, die noch auf den dadurch nicht mehr unterstützten Befehlen +basieren, so kann vor \Package{scrlfile} vor dem Laden der Klasse mit +\begin{lstcode} + \RequirePackage[withdeprecated]{scrlfile} +\end{lstcode} +geladen werden. \Package{scrlfile} emuliert dann zusätzlich einige der +veralteten Befehle in einer Weise, die in den meisten Fällen ausreichend sein +sollte. In jedem Fall sollte jedoch der Autor der entsprechenden Klasse oder +des entsprechenden Pakets verständigt werden, damit dieser eine Anpassung an +die aktuelle Version von \Package{scrlfile} oder direkt an \LaTeX{} ab Version +2020-10-01 vornimmt.% +% +\EndIndexGroup + \section{Aktionen vor und nach dem Laden} \seclabel{macros} @@ -134,8 +163,8 @@ Dateien, Klassen und Paketen unterschieden. \begin{Declaration} - \Macro{BeforeFile}\Parameter{Datei}\Parameter{Anweisungen} - \Macro{AfterFile}\Parameter{Datei}\Parameter{Anweisungen} + \Macro{BeforeFile}\Parameter{Datei}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterFile}\Parameter{Datei}\OParameter{Label}\Parameter{Anweisungen} \end{Declaration}% Mit Hilfe von \Macro{BeforeFile} kann dafür gesorgt werden, dass die \PName{Anweisungen} vor dem nächsten Laden einer bestimmten \PName{Datei} @@ -145,13 +174,23 @@ ausgeführt. Wird die Datei nie geladen, so werden die \PName{Anweisungen} in beiden Fällen natürlich auch nie ausgeführt. Bei \PName{Datei} sind etwaige Dateiendungen wie bei \Macro{input} als Teil des Dateinamens anzugeben. -Um die Funktionalität bereitstellen zu können, bedient sich \Package{scrlfile} -der bekannten \LaTeX-Anweisung -\Macro{InputIfFileExists}. Diese\textnote{Achtung!} wird hierzu umdefiniert. -Falls die Anweisung nicht die erwartete Definition hat, gibt -\Package{scrlfile} eine Warnung aus. Dies geschieht für den Fall, dass die -Anweisung in späteren \LaTeX-Versionen geändert wird oder bereits von einem -anderen Paket umdefiniert wurde. +Um die Funktionalität für \LaTeX{} vor Version 2020-10-01 bereitstellen zu +können, bedient sich \Package{scrlfile-patcholdlatex} der bekannten +\LaTeX-Anweisung \Macro{InputIfFileExists}. Diese\textnote{Achtung!} wird +hierzu umdefiniert. Falls die Anweisung nicht die erwartete Definition hat, +gibt \Package{scrlfile-patcholdlatex} eine Warnung aus. Dies geschieht für +den Fall, dass die Anweisung bereits von einem inkompatiblen Paket umdefiniert +wurde. + +Bei\ChangedAt{v3.32}{\Package{scrlfile}}\IndexCmd{AddToHook} \LaTeX{} ab +Version 2020-10-01 wird von \Package{scrlfile-hook} hingegen +\Macro{AddToHook}\PParameter{file/before/\PName{Datei}}\OParameter{Label}\Parameter{Anweisungen} +beziehungsweise +\Macro{AddToHook}\PParameter{file/after/\PName{Datei}}\OParameter{Label}\Parameter{Anweisungen} +verwendet. Näheres zur Bedeutung des optionalen Arguments \PName{Label} ist +der zugehörigen Anleitung zur \LaTeX-Kern-Anweisung \Macro{AddToHook} zu +entnehmen. Empfohlen wird in der Regel der Verzicht auf das optionale +Argument. Bei älteren \LaTeX-Versionen wird dieses ohnehin ignoriert. Die Anweisung \Macro{InputIfFileExists} wird von \LaTeX{} immer verwendet, wenn eine Datei geladen werden soll. Dies geschieht unabhängig davon, ob die @@ -174,68 +213,76 @@ verwenden. Beachten Sie die Klammern um den Dateinamen!% \begin{Declaration} - \Macro{BeforeClass}\Parameter{Klasse}\Parameter{Anweisungen} - \Macro{BeforePackage}\Parameter{Paket}\Parameter{Anweisungen} + \Macro{BeforeClass}\Parameter{Klasse}\OParameter{Label}\Parameter{Anweisungen} + \Macro{BeforePackage}\Parameter{Paket}\OParameter{Label}\Parameter{Anweisungen} \end{Declaration}% Diese beiden Befehle arbeiten vergleichbar zu \DescRef{\LabelBase.cmd.BeforeFile} mit dem einen Unterschied, dass die \PName{Klasse} beziehungsweise das \PName{Paket} mit seinem Namen und nicht mit seinem Dateinamen angegeben wird. Die Endungen »\File{.cls}« und -»\File{.sty}« entfallen hier also.% -% +»\File{.sty}« entfallen hier also. + +Es ist zu beachten\important{Achtung!}, dass hier von \Package{scrlfile-hook} +ebenfalls \PValue{file} und nicht \PValue{class} respektive \PValue{package} +für den Hook verwendet wird. Nur so ist sichergestellt, dass die Ausführung +der \PName{Anweisungen} bereits im Kontext der Klasse beziehungsweise des +Pakets erfolgt. Zur Bedeutung des optionalen Arguments \PName{label} sei +wiederum auf die Anleitung der \LaTeX-Kernanweisung +\Macro{AddToHook}\IndexCmd{AddToHook} verwiesen. Empfohlen wird in der Regel +der Verzicht auf das optionale Argument. Bei älteren \LaTeX-Versionen wird +dieses ohnehin ignoriert.% \EndIndexGroup \begin{Declaration} - \Macro{AfterClass}\Parameter{Klasse}\Parameter{Anweisungen} - \Macro{AfterClass*}\Parameter{Klasse}\Parameter{Anweisungen} - \Macro{AfterClass+}\Parameter{Klasse}\Parameter{Anweisungen} - \Macro{AfterClass!}\Parameter{Klasse}\Parameter{Anweisungen} - \Macro{AfterAtEndOfClass}\Parameter{Klasse}\Parameter{Anweisungen} - \Macro{AfterPackage}\Parameter{Paket}\Parameter{Anweisungen} - \Macro{AfterPackage*}\Parameter{Paket}\Parameter{Anweisungen} - \Macro{AfterPackage+}\Parameter{Paket}\Parameter{Anweisungen} - \Macro{AfterPackage!}\Parameter{Paket}\Parameter{Anweisungen} - \Macro{AfterAtEndOfPackage}\Parameter{Paket}\Parameter{Anweisungen} + \Macro{AfterClass}\Parameter{Klasse}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterClass*}\Parameter{Klasse}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterAtEndOfClass}\Parameter{Klasse}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterAtEndOfClass*}\Parameter{Klasse}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterPackage}\Parameter{Paket}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterPackage*}\Parameter{Paket}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterAtEndOfPackage}\Parameter{Paket}\OParameter{Label}\Parameter{Anweisungen} + \Macro{AfterAtEndOfPackage*}\Parameter{Paket}\OParameter{Label}\Parameter{Anweisungen} \end{Declaration}% -Die Anweisungen \Macro{AfterClass} und \Macro{AfterPackage} arbeiten -weitgehend wie \DescRef{\LabelBase.cmd.AfterFile}, mit dem winzigen -Unterschied, dass die \PName{Klasse} beziehungsweise das \PName{Paket} mit -seinem Namen und nicht mit seinem Dateinamen angegeben wird. Die Endungen -»\File{.cls}« und »\File{.sty}« entfallen hier also. +Die\important[i]{\Macro{AfterClass}\\\Macro{AfterPackage}} Anweisungen +\Macro{AfterClass} und \Macro{AfterPackage} arbeiten weitgehend wie +\DescRef{\LabelBase.cmd.AfterFile}, mit dem winzigen Unterschied, dass die +\PName{Klasse} beziehungsweise das \PName{Paket} mit seinem Namen und nicht +mit seinem Dateinamen angegeben wird. Die Endungen »\File{.cls}« und +»\File{.sty}« entfallen hier also. Bei\important[i]{\Macro{AfterClass*}\\\Macro{AfterPackage*}} den -Sternvarianten gibt es eine zusätzliche Funktionalität. Wurde oder wird die -entsprechende Klasse oder das entsprechende Paket bereits geladen, so werden -die \PName{Anweisungen} nicht nach dem nächsten Laden, sondern unmittelbar -ausgeführt. - -Bei\important[i]{\Macro{AfterClass+}\\\Macro{AfterPackage+}} der -Plusvariante\ChangedAt{v3.09}{\Package{scrlfile}} werden die -\PName{Anweisungen} sicher erst dann ausgeführt, wenn die Klasse oder das -Paket vollständig geladen wurde. Der Unterschied zwischen der Stern- und der -Plusvariante kommt nur zum Tragen, falls die Anweisung verwendet wird, während -das Laden der Klassen bzw. des Pakets zwar bereits begonnen hat, aber noch -nicht beendet wurde. Wenn das Laden der Klasse bzw. des Pakets noch nicht -abgeschlossen wurde, werden die \PName{Anweisungen} in allen Fällen vor den in -der Klasse bzw. dem Paket mit \Macro{AtEndOfClass} oder \Macro{AtEndOfPackage} -verzögerten Anweisungen ausgeführt. - -Um\important[i]{\Macro{AfterClass!}\\\Macro{AfterPackage!}} eine Ausführung -nach den in der Klasse oder dem Paket selbst mit \Macro{AtEndOfClass} oder -\Macro{AtEndOfPackage} verzögerten Anweisungen sicherzustellen, ist die -Variante mit Ausrufezeichen\ChangedAt{v3.09}{\Package{scrlfile}} zu -verwenden. Bei dieser Spielart werden die \PName{Anweisungen} nicht mehr im -Kontext der angegebenen Klasse oder des angegebenen Pakets ausgeführt. - -Will\important[i]{\Macro{AfterAtEndOfClass}\\\Macro{AfterAtEndOfPackage}} man -nur für den Fall, dass die Klasse bzw. das Paket noch nicht geladen wurde, -erreichen, dass \PName{Anweisungen} nach der Klasse bzw. dem Paket und -außerhalb des Kontextes der angegebenen Klasse bzw. des angegebenen Pakets -ausgeführt werden, so verwendet man für Klassen die Anweisung -\Macro{AfterAtEndOfClass}\ChangedAt{v3.09}{\Package{scrlfile}} -und für Pakete \Macro{AfterAtEndOfPackage}.% -% +Sternvarianten \Macro{AfterClass*} und \Macro{AfterPackage*} gibt es eine +zusätzliche Funktionalität. Wurde oder wird die entsprechende Klasse oder das +entsprechende Paket bereits geladen, so werden die \PName{Anweisungen} nicht +nach dem nächsten Laden, sondern unmittelbar ausgeführt. + +Code,\ChangedAt{v3.09}{\Package{scrlfile}}% +\important[i]{\Macro{AfterAtEndOfClass}\\\Macro{AfterAtEndOfPackage}} +dessen Ausführung per \Macro{AtEndOfClass}\IndexCmd{AtEndOfClass} oder +\Macro{AtEndOfPackage}\IndexCmd{AtEndOfPackage} innerhalb der Klasse +respektive des Pakets verzögert wird, wird allerdings erst danach +ausgeführt. Mit \Macro{AfterAtEndOfClass} beziehungsweise +\Macro{AfterAtEndOfPackage} wird dagegen sichergestellt, dass +\PName{Anweisungen} erst nach solchem Code ausgeführt wird. + +Auch\ChangedAt{v3.32}{\Package{scrlfile}}% +\important[i]{\Macro{AfterAtEndOfClass*}\\\Macro{AfterAtEndOfPackage*}} +hierzu gibt es Sternvarianten, die dafür sorgen, dass \PName{Anweisungen} +sofort ausgeführt werden, falls die Klasse beziehungsweise das Paket bereits +vollständig geladen ist. Wird eine Klasse oder ein Paket gerade geladen, so +wird die Ausführung wie bei der Version ohne Stern verzögert. + +Es ist zu beachten, dass \Package{scrlfile-hook} für \Macro{AfterClass}, +\Macro{AfterPackage} und deren Sternvarianten einen \PValue{file/after}-Hook +verwendet. Dagegen setzen \Macro{AfterAtEndOfClass} und dessen Sternvariante +einen \PValue{class/after}-Hook und \Macro{AfterAtEndOfPackage} und dessen +Sternvariante entsprechend einen \PValue{package/after}-Hook. Zur Bedeutung +des optionalen Arguments \PName{label} sei wiederum auf die Anleitung der +\LaTeX-Kernanweisung \Macro{AddToHook}\IndexCmd{AddToHook} +verwiesen. Empfohlen wird in der Regel der Verzicht auf das optionale +Argument. Bei älteren \LaTeX-Versionen wird dieses ohnehin ignoriert. + \begin{Example} Als Beispiel für Paket- oder Klassenautoren will ich zunächst erklären, wie \KOMAScript{} selbst Gebrauch von den neuen @@ -266,7 +313,7 @@ und für Pakete \Macro{AfterAtEndOfPackage}.% es sich um eine verträgliche Version handelt. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben. - An anderer Stelle findet sich in drei der \KOMAScript-Klassen Folgendes: + An anderer Stelle findet sich in drei der \KOMAScript-Klassen folgendes: \begin{lstcode} \AfterPackage{caption2}{% \renewcommand*{\setcapindent}{% @@ -447,38 +494,47 @@ der Datei mit dem als erstes angegebenen \PName{Dateiname} definiert. Wenn \LaTeX{} anschließend angewiesen wird, diese Datei zu laden, wird stattdessen \PName{Ersatzdatei} geladen. Die Definition der Ersatzdatei wirkt sich auf alle Dateien aus, die vom Anwender oder intern von \LaTeX{} mit Hilfe von -\Macro{InputIfFileExists} geladen werden. Dazu ist es allerdings erforderlich, -dass \Package{scrlfile} diese Anweisung umdefiniert. +\Macro{InputIfFileExists} geladen werden. + +Bei\ChangedAt{v3.32}{\Package{scrlfile}} Verwendung eines \LaTeX-Version bis +2020-04-01 muss dass Paket \Package{scrlfile-patcholdlatex} dazu die Anweisung +\Macro{InputIfFileExists} umdefinieren. Bei Verwendung von \LaTeX{} ab Version +2020-10-01 wird hingegen von \Package{scrlfile-hook} die interne +\LaTeX-Anweisung \Macro{declare@file@substitution} verwendet. Das +\LaTeX{}-Team bittet darum, eine derartige Dateiersetzung nur vorzunehmen, +wenn es keine andere Möglichkeit gibt, zu dem gewünschten Ergebnis zu +gelangen, beispielsweise wenn eine solche Ersetzung zum Erhalt der +Kompatibilität unabdingbar ist und dabei die \PName{Ersatzdatei} die gleiche +Funktionalität bereitstellt. \begin{Example} - Sie wollen, dass anstelle der Datei \File{\Macro{jobname}.aux}, die Datei - \File{\Macro{jobname}.xua} geladen wird. Dazu verwenden Sie: + Sie wollen, dass anstelle der Datei \File{\Macro{jobname}.lot}, die Datei + \File{\Macro{jobname}.tol} geladen wird. Dazu verwenden Sie: \begin{lstcode} - \ReplaceInput{\jobname.aux}{\jobname.xua} + \ReplaceInput{\jobname.lot}{\jobname.tol} \end{lstcode} - Wenn Sie nun zusätzlich \File{\Macro{jobname}.xua} auch noch durch - \File{\Macro{jobname}.uxa} ersetzen: + Wenn Sie nun zusätzlich \File{\Macro{jobname}.tol} auch noch durch + \File{\Macro{jobname}.tlo} ersetzen: \begin{lstcode} - \ReplaceInput{\jobname.xua}{\jobname.uxa} + \ReplaceInput{\jobname.tol}{\jobname.tlo} \end{lstcode} - dann wird \File{\Macro{jobname}.aux} am Ende durch - \File{\Macro{jobname}.uxa} ersetzt. Es wird also die komplette + dann wird \File{\Macro{jobname}.lot} am Ende durch + \File{\Macro{jobname}.tlo} ersetzt. Es wird also die komplette Ersetzungskette abgearbeitet. Einer Ersetzung im Kreis: \begin{lstcode} - \ReplaceInput{\jobname.aux}{\jobname.xua} - \ReplaceInput{\jobname.xua}{\jobname.aux} + \ReplaceInput{\jobname.lot}{\jobname.tol} + \ReplaceInput{\jobname.tol}{\jobname.lot} \end{lstcode} - würde jedoch zu einem \emph{stack size error} führen. Es ist also nicht - möglich, eine einmal ersetzte Datei wieder durch ihren Ursprung zu ersetzen. + würde jedoch zu einem Fehler führen. Es ist also nicht möglich, eine einmal + ersetzte Datei wieder durch ihren Ursprung zu ersetzen. \end{Example} Theoretisch wäre es auch möglich, auf diesem Wege ein Paket durch ein anderes -oder eine Klasse durch eine andere zu ersetzen. Dabei würde \LaTeX{} aber -erkennen, dass die angeforderten Dateinamen nicht zum Namen des Pakets oder -der Klasse passen. Eine Lösung dieses Problems finden Sie nachfolgend. -% +oder eine Klasse durch eine andere zu ersetzen. Es wird jedoch empfohlen, für +das Ersetzen eines Pakets oder einer Klasse die nachfolgenden Anweisungen zu +verwenden. Bei älteren \LaTeX-Versionen ist dies sogar zwingend.% \EndIndexGroup @@ -488,101 +544,40 @@ der Klasse passen. Eine Lösung dieses Problems finden Sie nachfolgend. \end{Declaration} Eine\ChangedAt{v2.96}{\Package{scrlfile}}\textnote{Achtung!} Klasse oder ein Paket sollte niemals mit Hilfe der oben erklärten Anweisung -\DescRef{\LabelBase.cmd.ReplaceInput} ersetzt werden. In diesem Fall würde -\LaTeX{} eine Warnung über nicht übereinstimmende Klassen- oder Paketnamen -melden. Auch echte Fehler sind möglich, wenn eine Klasse oder ein Paket unter -einem falschen Dateinamen geladen wird. -\begin{Example} - Sie ersetzen das Paket \Package{scrpage2} durch dessen offiziellen - Nachfolger \Package{scrlayer-scrpage}, indem Sie -\begin{lstcode}[escapechar=\$] - \ReplaceInput{scrpage2.sty}{scrlayer-scrpage.sty}$\textnote{Nicht nachmachen!}$ -\end{lstcode} - verwenden. Dies wird beim Laden von \Package{scrpage2} zu der Warnung -\begin{lstcode} - LaTeX warning: You have requested `scrpage2', - but the package provides - `scrlayer-scrpage'. -\end{lstcode} - führen. Für den Anwender wäre diese Warnung mehr als verwirrend, hat er doch - gar nicht \Package{scrlayer-scrpage}, sondern tatsächlich \Package{scrpage2} - angefordert, das jedoch durch \Package{scrlayer-scrpage} ersetzt wurde. -\end{Example} -Eine Lösung dieser Probleme besteht nun darin, statt -\DescRef{\LabelBase.cmd.ReplaceInput} eine der Anweisungen -\Macro{ReplaceClass} oder \Macro{ReplacePackage} zu verwenden. Es ist zu -beachten, dass wie bei \Macro{documentclass} und \Macro{usepackage} der Name -der Klasse oder des Pakets und nicht deren kompletter Dateiname anzugeben ist. - -Die Ersetzung funktioniert für Klassen, die mit -\Macro{documentclass}, \Macro{LoadClassWithOptions} oder \Macro{LoadClass} -geladen werden. Für Pakete funktioniert die Ersetzung beim Laden mit -\Macro{usepackage}, \Macro{RequirePackageWithOptions} und -\Macro{RequirePackage}. +\DescRef{\LabelBase.cmd.ReplaceInput} ersetzt werden. Stattdessen sollte für +Paketersetzungen \Macro{ReplacePackage} und für Klassenersetzungen +\Macro{ReplaceClass} verwendet werden. Es ist zu beachten, dass wie bei +\Macro{documentclass} und \Macro{usepackage} der Name der Klasse oder des +Pakets und nicht deren kompletter Dateiname anzugeben ist. + +Die Ersetzung funktioniert für Klassen, die mit \Macro{documentclass}, +\Macro{LoadClassWithOptions} oder \Macro{LoadClass} geladen werden. Für Pakete +funktioniert die Ersetzung beim Laden mit \Macro{usepackage}, +\Macro{RequirePackageWithOptions} und \Macro{RequirePackage}. Es\textnote{Achtung!} ist zu beachten, dass die \PName{Ersatzklasse} oder das \PName{Ersatzpaket} mit denselben Optionen geladen wird, mit denen die ursprünglich geforderte Klasse oder das ursprünglich geforderte Paket geladen würden. Wird ein Paket oder eine Klasse durch ein Paket oder eine Klasse ersetzt, die eine geforderte Option nicht unterstützt, würde das zu den -üblichen Warnungen und Fehlern führen. Es ist jedoch möglich, solche in der -\PName{Ersatzklasse} oder dem \PName{Ersatzpaket} fehlenden Optionen per -\DescRef{\LabelBase.cmd.BeforeClass} oder -\DescRef{\LabelBase.cmd.BeforePackage} neu zu definieren. - -\begin{Example} - Angenommen, das Paket \Package{oldfoo} soll beim Laden durch das - Paket \Package{newfoo} ersetzt werden. Dies wird mit -\begin{lstcode} - \ReplacePackage{oldfoo}{newfoo} -\end{lstcode} - erreicht. Das alte Paket hat eine Option \Option{oldopt}, die das neue Paket - jedoch nicht hat. Mit -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{% - \PackageInfo{newfoo}% - {option `oldopt' not supported}}}% -\end{lstcode} - wird diese Option nun für das Paket \Package{newfoo} nachdefiniert. Dadurch - wird vermieden, dass beim Laden des Pakets \Package{oldfoo} ein Fehler über - die im Paket \Package{newfoo} nicht unterstützte Option gemeldet wird. - - Existiert hingegen eine Option \Option{newopt}, die anstelle der Option - \Option{oldopt} verwendet werden soll, so kann dies ebenfalls erreicht - werden: -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{\ExecuteOptions{newopt}}}% -\end{lstcode} - Es ist sogar möglich, festzulegen, dass beim Laden des neuen Pakets - andere Voreinstellung gelten sollen: -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{\ExecuteOptions{newopt}}% - \PassOptionsToPackage{newdefoptA,newdefoptB}% - {newfoo}% - } -\end{lstcode} - oder auch direkt: -\begin{lstcode} - \BeforePackage{newfoo}{% - \DeclareOption{oldopt}{\ExecuteOptions{newopt}}% - }% - \PassOptionsToPackage{newdefoptA,newdefoptB}% - {newfoo}% -\end{lstcode} - \iffalse% Umbruchkorrektur - Man beachte, dass im letzten Beispiel der Aufruf von - \Macro{PassOptionsToPackage} nicht innerhalb, sondern nach - \Macro{BeforePackage} erfolgt.% - \fi% -\end{Example} +üblichen Warnungen und Fehlern führen. Damit Klassen mit \Macro{ReplaceClass} ersetzt werden können, ist es natürlich erforderlich \Package{scrlfile} vor der Klasse zu laden. Dazu ist \Macro{RequirePackage}\IndexCmd{RequirePackage} anstelle von -\DescRef{maincls.cmd.usepackage} zu verwenden (siehe \cite{latex:clsguide}).% +\DescRef{maincls.cmd.usepackage} zu verwenden (siehe \cite{latex:clsguide}). + +Bei\ChangedAt{v3.32}{\Package{scrlfile}} Verwendung eines \LaTeX-Version bis +2020-04-01 muss dass Paket \Package{scrlfile-patcholdlatex} die internen +Anweisung \Macro{@onefilewithoptions} und \Macro{@loadwithoptions} +umdefinieren. Bei Verwendung von \LaTeX{} ab Version 2020-10-01 wird hingegen +von \Package{scrlfile-hook} die interne \LaTeX-Anweisung +\Macro{declare@file@substitution} verwendet. Das \LaTeX{}-Team bittet darum, +eine derartige Ersetzung nur vorzunehmen, wenn es keine andere Möglichkeit +gibt, zu dem gewünschten Ergebnis zu gelangen, beispielsweise wenn eine solche +Ersetzung zum Erhalt der Kompatibilität unabdingbar ist und dabei die +\PName{Ersatzpaket} beziehungsweise \PName{Ersatzklasse} die gleiche +Funktionalität bereitstellt.% \EndIndexGroup diff --git a/macros/latex/contrib/koma-script/source/Makefile b/macros/latex/contrib/koma-script/source/Makefile index d3951af116..cd385982da 100644 --- a/macros/latex/contrib/koma-script/source/Makefile +++ b/macros/latex/contrib/koma-script/source/Makefile @@ -97,6 +97,9 @@ CLS_MAIN = scrbook.cls \ scrsize11pt.clo \ scrsize12pt.clo \ scrlfile.sty \ + scrlfile-hook.sty \ + scrlfile-patcholdlatex.sty \ + scrlogo.sty \ scrwfile.sty \ scrbase.sty \ scrkbase.sty \ @@ -163,6 +166,8 @@ CLS_MAIN_DTX = scrkernel-basics.dtx \ scrkernel-variables.dtx \ scrkernel-version.dtx \ scrlfile.dtx \ + scrlfile-hook.dtx \ + scrlfile-patcholdlatex.dtx \ scrwfile.dtx \ scraddr.dtx \ scrtime.dtx \ diff --git a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx index e46fa55950..6a65c8fc81 100644 --- a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx +++ b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx @@ -1,4 +1,3 @@ -% \CheckSum{4366} % \iffalse meta-comment % ====================================================================== % scrkernel-basics.dtx @@ -36,26 +35,8 @@ % % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== -% \fi -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} % -% \iffalse -%%% From File: $Id: scrkernel-basics.dtx 3465 2020-03-07 10:23:56Z kohm $ +%%% From File: $Id: scrkernel-basics.dtx 3527 2020-09-11 09:44:32Z kohm $ %%%% (run: prepare) %