From 95a2d3f7d676d1d4217a485d10543784f3ef2c91 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 14 Oct 2020 21:47:42 +0000 Subject: firstaid (14oct20) git-svn-id: svn://tug.org/texlive/trunk@56668 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/firstaid/changes.txt | 5 + .../latex2e-first-aid-for-external-files.pdf | Bin 208937 -> 223600 bytes .../texmf-dist/source/latex/firstaid/firstaid.ins | 6 +- .../latex2e-first-aid-for-external-files.dtx | 146 +++++++++++++++++---- .../texmf-dist/tex/latex/firstaid/filehook-ltx.sty | 18 +-- .../latex2e-first-aid-for-external-files.ltx | 80 ++++++++++- 6 files changed, 205 insertions(+), 50 deletions(-) diff --git a/Master/texmf-dist/doc/latex/firstaid/changes.txt b/Master/texmf-dist/doc/latex/firstaid/changes.txt index ef734a335a4..75067562e71 100644 --- a/Master/texmf-dist/doc/latex/firstaid/changes.txt +++ b/Master/texmf-dist/doc/latex/firstaid/changes.txt @@ -1,3 +1,8 @@ +2020-10-13 Frank Mittelbach + + * latex2e-first-aid-for-external-files.dtx: + Fix for gh408 to be taken out later when it moves to the kernel. + 2020-10-04 Frank Mittelbach * latex2e-first-aid-for-external-files.dtx: diff --git a/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf b/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf index 7e9157f792f..70301b7646a 100644 Binary files a/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf and b/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf differ diff --git a/Master/texmf-dist/source/latex/firstaid/firstaid.ins b/Master/texmf-dist/source/latex/firstaid/firstaid.ins index 5d888cf65bc..9965480f207 100644 --- a/Master/texmf-dist/source/latex/firstaid/firstaid.ins +++ b/Master/texmf-dist/source/latex/firstaid/firstaid.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2020 +%% Copyright (C) 2020 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -44,12 +44,12 @@ reports for it can be opened at https://latex-project.org/bugs/ (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2020 +Copyright (C) 2020 The LaTeX3 Project and any individual authors listed elsewhere in this file. This file was generated from file(s) of the Standard LaTeX `First Aid Bundle'. --------------------------------------------------------------------------- +------------------------------------------------------------------------------ It may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c diff --git a/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx b/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx index 78f52ca78a2..55e0d01e263 100644 --- a/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx @@ -87,6 +87,17 @@ % doesn't get out of bounds. % \end{quote} % +% \subsection{Minor kernel fixes} +% +% If we encounter issues with the kernel code that should get fixed +% before the next main release we normally generate a patch release +% for \LaTeX{}. However, depending on the complexity of the fix we +% might first add the fix here and generate a full patch release +% only when a number of such issues have accumulated. This way we +% lessen the impact on CTAN maintainers because for each tach +% release we have to make and distribute also a matching +% development release. +% % \StopEventually{\setlength\IndexMin{200pt} \PrintIndex } % % @@ -99,8 +110,8 @@ % \end{macrocode} % % \begin{macrocode} -\def\LaTeXFirstAidDate{2020/10/04} -\def\LaTeXFirstAidVersion{v1.0e} +\def\LaTeXFirstAidDate{2020/10/13} +\def\LaTeXFirstAidVersion{v1.0f} % \end{macrocode} % % \begin{macrocode} @@ -147,37 +158,28 @@ % implementation. % % The package has now got an update so we aren't activating the -% first aid. However, it basically bypasses the new hook mechanism -% and puts the old hooks in thereby disabling, for example, the -% possibility to reorder code through rules. +% first aid. However, at the moment it basically bypasses the new +% hook mechanism and puts the old hooks in thereby disabling, for +% example, the possibility to re-order code through rules. % % We therefore keep \texttt{filehook-ltx.sty} around as a guideline % for further updates. % +% Replacing \pkg{filehook} with a leaner version would then work +% like this: % \begin{macrocode} %<*kernel> %\declare@file@substitution{filehook.sty}{filehook-ltx.sty} % -% \End{macrocode} -% -% If a new filehook package becomes available it can be tested -% simply by undoing the above substitution via -% \begin{verbatim} -% \undeclare@file@substitution{filehook.sty} -% \end{verbatim} -% Once ready this will then taken out of the first aid file. +% \end{macrocode} % -% What follows is a partial implementation of the \pkg{filehook} +% What follows is a simplified (partial) implementation of the \pkg{filehook} % interfaces. -% % Not implemented are: %\begin{verbatim} -% \AtBeginOfFiles -% \AtEndOfFiles -% \AtBeginOfInputs -% \AtEndOfInputs -% \AtBeginOfInputFile -% \AtEndOfInputFile +% \AtBeginOfFiles \AtEndOfFiles +% \AtBeginOfInputs \AtEndOfInputs +% \AtBeginOfInputFile \AtEndOfInputFile %\end{verbatim} % % \begin{macrocode} @@ -214,14 +216,14 @@ {\AddToHook{class/after}{#1}} % \end{macrocode} % -% For normal files we drop the \texttt{.tex} extension for now: % \begin{macrocode} \newcommand\AtBeginOfFile [2] {\AddToHook{file/before/#1}{#2}} \newcommand\AtEndOfFile [2] {\AddToHook{file/after/#1}{#2}} % \end{macrocode} -% +% +% Some commands offered a starred form % \begin{macrocode} \DeclareDocumentCommand \AtBeginOfPackageFile {smm} {\IfBooleanTF{#1}% @@ -230,6 +232,9 @@ {\AddToHook{package/before/#2}{#3}}}% {\AddToHook{package/before/#2}{#3}}% } +% \end{macrocode} +% +% \begin{macrocode} \DeclareDocumentCommand \AtEndOfPackageFile {smm} {\IfBooleanTF{#1}% {\@ifpackageloaded{#2}% @@ -294,6 +299,10 @@ % is still in the kernel. % % \begin{macrocode} +%<*kernel> +% \end{macrocode} +% +% \begin{macrocode} \AddToHook{file/after/biditools.sty}[firstaid]{% \FirstAidNeededT{biditools}{sty}% {2020/05/13 v2 Programming tools for bidi package}% @@ -322,10 +331,6 @@ } % \end{macrocode} % -% \begin{macrocode} -%<*kernel> -% \end{macrocode} -% % % % \subsection{The \pkg{dinbrief} class first aid} @@ -341,6 +346,93 @@ % % % +% \subsection[Temporary fixes for the kernel (until the next +% patch-level release)] +% {Temporary fixes for the kernel \\ +% (until the next patch-level release)} +% +% This is fixing GitHub issue 408. Looks rather long but changes +% only 3 or 4 lines in the macros. +% \begin{macrocode} +\def\@pr@videpackage[#1]{% + \expandafter\protected@xdef % <-- protected... + \csname ver@\@currname.\@currext\endcsname{#1}% Loaded package + \expandafter\let + \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package + \csname ver@\@currname.\@currext\endcsname + \ifx\@currext\@clsextension + \typeout{Document Class: \@gtempa\space#1}% + \else + \protected@wlog{Package: \@gtempa\space#1}% <--- protected + \fi} +% \end{macrocode} +% +% \begin{macrocode} +\def\load@onefilewithoptions#1[#2][#3]#4{% % <--- \@onefilewithoptions + % earlier in the kernel + \@pushfilename + \xdef\@currname{#1}% + \global\let\@currext#4% + \@ifl@aded\@currext\@currname + {\@if@ptions\@currext{\@currname}{#2}{}% + {\@latex@error + {Option clash for \@cls@pkg\space \@currname}% + {The package \@currname\space has already been loaded + with options:\MessageBreak + \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak + There has now been an attempt to load it + with options\MessageBreak + \space\space[#2]\MessageBreak + Adding the global options:\MessageBreak + \space\space + \@ptionlist{\@currname.\@currext},#2\MessageBreak + to your \noexpand\documentclass declaration may fix this.% + \MessageBreak + Try typing \space \space to proceed.}}% + \@firstofone}% + {\makeatletter + \@reset@ptions + \IfFileExists{\@currname.\@currext}{}% + {\@missing@onefilewithoptions{#2}}% + \ifx\@currname\@empty + \expandafter\@gobble + \else + \@disable@packageload@do{\@currname.\@currext}% + {\@expl@@@filehook@file@push@@ + \set@curr@file{\@currname.\@currext}% + \@filehook@set@CurrentFile + \expandafter\@swaptwoargs\expandafter + {\expandafter{\@currpkg@reqd}}% + {% < + \edef\@currpkg@reqd{\@currname.\@currext}% + \ifx\CurrentFile\CurrentFileUsed + \else + \filename@parse\@curr@file + \edef\@currname{\string@makeletter\filename@base}% + \edef\@currext{\string@makeletter\filename@ext}% + \fi + \load@onefile@withoptions{#2}% + \def\@currpkg@reqd%{\@currpkg@reqd} + }% > + \@expl@@@filehook@file@pop@@}% + \expandafter\@firstofone + \fi}% + {\@ifl@ter\@currext{\@currname}{#3}{}% + {\@latex@warning@no@line + {You have requested,\on@line, + version\MessageBreak + `#3' of \@cls@pkg\space \@currname,\MessageBreak + but only version\MessageBreak + `\csname ver@\@currname.\@currext\endcsname'\MessageBreak + is available}}% + \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}% + \@popfilename + \@reset@ptions} +% \end{macrocode} +% +% \begin{macrocode} +\let\@currpkg@reqd\@empty +% \end{macrocode} % % % \begin{macrocode} diff --git a/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty b/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty index b2840b92a9b..6493507a925 100644 --- a/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty +++ b/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty @@ -11,12 +11,12 @@ %% (but please observe conditions on bug reports sent to that address!) %% %% -%% Copyright (C) 1993-2020 +%% Copyright (C) 2020 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% %% This file was generated from file(s) of the Standard LaTeX `First Aid Bundle'. -%% -------------------------------------------------------------------------- +%% ------------------------------------------------------------------------------ %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -89,20 +89,6 @@ {\AddToHook{include/end/#1}{#2}} \newcommand\AfterIncludeFile [2] {\AddToHook{include/after/#1}{#2}} -\AddToHook{file/after/biditools.sty}[firstaid]{% - \FirstAidNeededT{biditools}{sty}% - {2020/05/13 v2 Programming tools for bidi package}% - { - \def\firstaid@bidi@document@patch - \endgroup#1\begingroup#2\firstaid@bidi@document@patch - {\unexpanded{#1#2}}% - \edef\document{\expandafter\firstaid@bidi@document@patch\document - \firstaid@bidi@document@patch}% - \AddToHook{enddocument/info}% - {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone - \bidi@afterenddocumentchecklabelsrerunhook}% - } -} \endinput %% %% End of file `filehook-ltx.sty'. diff --git a/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx b/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx index 664e4c182d7..f4a48bc8fdb 100644 --- a/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx +++ b/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx @@ -11,12 +11,12 @@ %% (but please observe conditions on bug reports sent to that address!) %% %% -%% Copyright (C) 1993-2020 +%% Copyright (C) 2020 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% %% This file was generated from file(s) of the Standard LaTeX `First Aid Bundle'. -%% -------------------------------------------------------------------------- +%% ------------------------------------------------------------------------------ %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -33,8 +33,8 @@ %% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. -\def\LaTeXFirstAidDate{2020/10/04} -\def\LaTeXFirstAidVersion{v1.0e} +\def\LaTeXFirstAidDate{2020/10/13} +\def\LaTeXFirstAidVersion{v1.0f} \ProvidesFile{latex2e-first-aid-for-external-files.ltx} [\LaTeXFirstAidDate\space \LaTeXFirstAidVersion\space LaTeX kernel fixes to external files and packages] @@ -63,6 +63,78 @@ \FirstAidNeededT{dinbrief}{cls}{2000/03/02 LaTeX2e class}% {\AddToHook{env/document/begin}{\begingroup}}% } +\def\@pr@videpackage[#1]{% + \expandafter\protected@xdef % <-- protected... + \csname ver@\@currname.\@currext\endcsname{#1}% Loaded package + \expandafter\let + \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package + \csname ver@\@currname.\@currext\endcsname + \ifx\@currext\@clsextension + \typeout{Document Class: \@gtempa\space#1}% + \else + \protected@wlog{Package: \@gtempa\space#1}% <--- protected + \fi} +\def\load@onefilewithoptions#1[#2][#3]#4{% % <--- \@onefilewithoptions + % earlier in the kernel + \@pushfilename + \xdef\@currname{#1}% + \global\let\@currext#4% + \@ifl@aded\@currext\@currname + {\@if@ptions\@currext{\@currname}{#2}{}% + {\@latex@error + {Option clash for \@cls@pkg\space \@currname}% + {The package \@currname\space has already been loaded + with options:\MessageBreak + \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak + There has now been an attempt to load it + with options\MessageBreak + \space\space[#2]\MessageBreak + Adding the global options:\MessageBreak + \space\space + \@ptionlist{\@currname.\@currext},#2\MessageBreak + to your \noexpand\documentclass declaration may fix this.% + \MessageBreak + Try typing \space \space to proceed.}}% + \@firstofone}% + {\makeatletter + \@reset@ptions + \IfFileExists{\@currname.\@currext}{}% + {\@missing@onefilewithoptions{#2}}% + \ifx\@currname\@empty + \expandafter\@gobble + \else + \@disable@packageload@do{\@currname.\@currext}% + {\@expl@@@filehook@file@push@@ + \set@curr@file{\@currname.\@currext}% + \@filehook@set@CurrentFile + \expandafter\@swaptwoargs\expandafter + {\expandafter{\@currpkg@reqd}}% + {% < + \edef\@currpkg@reqd{\@currname.\@currext}% + \ifx\CurrentFile\CurrentFileUsed + \else + \filename@parse\@curr@file + \edef\@currname{\string@makeletter\filename@base}% + \edef\@currext{\string@makeletter\filename@ext}% + \fi + \load@onefile@withoptions{#2}% + \def\@currpkg@reqd%{\@currpkg@reqd} + }% > + \@expl@@@filehook@file@pop@@}% + \expandafter\@firstofone + \fi}% + {\@ifl@ter\@currext{\@currname}{#3}{}% + {\@latex@warning@no@line + {You have requested,\on@line, + version\MessageBreak + `#3' of \@cls@pkg\space \@currname,\MessageBreak + but only version\MessageBreak + `\csname ver@\@currname.\@currext\endcsname'\MessageBreak + is available}}% + \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}% + \@popfilename + \@reset@ptions} +\let\@currpkg@reqd\@empty \endinput %% %% End of file `latex2e-first-aid-for-external-files.ltx'. -- cgit v1.2.3