summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex-dev
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-06-17 20:41:07 +0000
committerKarl Berry <karl@freefriends.org>2021-06-17 20:41:07 +0000
commit9978e24ea9abb36dad75d81184c809b88b895449 (patch)
tree7f49934a6082be52afda251f9120d2b2febcd2fb /Master/texmf-dist/source/latex-dev
parent81ca63e0ddfa735dbeeb77c1b8f80d5606e318ea (diff)
latex-dev (17jun21)
git-svn-id: svn://tug.org/texlive/trunk@59616 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex-dev')
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltclass.dtx75
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltcmd.dtx214
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltdefns.dtx4
-rw-r--r--Master/texmf-dist/source/latex-dev/base/lterror.dtx46
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx5
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx5
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltshipout.dtx16
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltvers.dtx4
-rw-r--r--Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx22
-rw-r--r--Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx73
10 files changed, 321 insertions, 143 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
index a0ab0fa3547..643587b0ef5 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2021/05/18 v1.4b LaTeX Kernel (Class & Package Interface)]
+ [2021/06/09 v1.4c LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -757,14 +757,40 @@
% needed here to insert a \cs{@empty} to prevent the loss of braces.
% \changes{v1.3u}{2020/11/20}{Macro added}
% \changes{v1.3w}{2021/01/21}{Add empty entry for latexrelease}
+% \changes{v1.4c}{2021/06/03}%
+% {Take care of \cs{@kernel@currpathstack} when rolling
+% back/forward.}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}{\@kernel@currpathstack}%
%<latexrelease> {Add \@kernel@currpathstack}%
-\gdef\@kernel@currpathstack{}
-%<latexrelease>\g@addto@macro\@kernel@currpathstack{{}}
+% \end{macrocode}
+% If rolling backwards to this release, \cs{@kernel@currpathstack}
+% will be defined, so the \cs{gdef} line should not be executed, thus
+% the \cs{@gobblethree} will take it out, so the satck isn't touched.
+% \begin{macrocode}
+%<latexrelease>\@ifundefined{@kernel@currpathstack}{}{\@gobblethree}
+\gdef\@kernel@currpathstack{}%
+% \end{macrocode}
+% If rolling forward to this release, then the \cs{gdef} line above
+% will define the path stack to be empty (which it can't be, inside a
+% file), so the code below will traverse the \cs{@currnamestack}, and
+% add as many empty items to \cs{@kernel@currpathstack} as there are
+% items in \cs{@currnamestack}, so both are back in sync. Most of the
+% time \pkg{latexrelease} is loaded on top-level, so only one item is
+% needed, but \pkg{platexrelease} loads it internally, so the more
+% complicated loop is needed.
+% \begin{macrocode}
+%<latexrelease>\ifx\@kernel@currpathstack\@empty
+%<latexrelease> \def\reserved@a#1#2#3{%
+%<latexrelease> \ifx\relax#3\else
+%<latexrelease> \g@addto@macro\@kernel@currpathstack{{}}%
+%<latexrelease> \expandafter\reserved@a
+%<latexrelease> \fi}%
+%<latexrelease> \expandafter\reserved@a\@currnamestack{}{}{\relax}%
+%<latexrelease>\fi
\def\@p@pfilepath#1{%
\gdef\@currpath{#1}\@p@pfilepath@aux\@empty}
\def\@p@pfilepath@aux#1\@nil{%
@@ -1237,10 +1263,14 @@
\csname opt@\reserved@a\endcsname
% \end{macrocode}
% Extend raw option list
+% \changes{v1.4c}{2021/06/06}
+% {apply \cs{expandafter} to raw options for gh/580}
% \begin{macrocode}
\@ifundefined{@raw@opt@#3.#1}%
- {\expandafter\gdef\csname @raw@opt@#3.#1\endcsname{#2}}%
- {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\endcsname{,#2}}%
+ {\expandafter\gdef\csname @raw@opt@#3.#1\expandafter\endcsname
+ \expandafter{#2}}%
+ {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\expandafter\endcsname
+ \expandafter{\expandafter,#2}}%
}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -1680,15 +1710,39 @@
%
% \begin{macro}{\@loadwithoptions}
% \changes{v1.0t}{1995/11/14}{macro added}
+% \changes{v1.4c}{2021/06/06}
+% {handle raw options for gh/580}
% Pass the current option list on to a class or package.
% |#1| is |\@|\emph{cls-or-pkg}|extension|,
% |#2| is |\RequirePackage| or |\LoadClass|,
% |#3| is the class or package to be loaded.
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\@loadwithoptions}{Raw option lists load with options}%
+%<*2ekernel|latexrelease>
\def\@loadwithoptions#1#2#3{%
\expandafter\let\csname opt@#3.#1\expandafter\endcsname
\csname opt@\@currname.\@currext\endcsname
+ \expandafter\let\csname @raw@opt@#3.#1\expandafter\endcsname
+ \csname @raw@opt@\@currname.\@currext\endcsname
#2{#3}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}
+%<latexrelease> {\@loadwithoptions}{Raw option lists load with options}%
+%<latexrelease>\def\@loadwithoptions#1#2#3{%
+%<latexrelease> \expandafter\let\csname opt@#3.#1\expandafter\endcsname
+%<latexrelease> \csname opt@\@currname.\@currext\endcsname
+%<latexrelease> #2{#3}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\@loadwithoptions
% \end{macrocode}
% \end{macro}
@@ -2234,10 +2288,15 @@
% \end{macrocode}
% \changes{v1.3u}{2020/11/20}
% {Copy option list to the requested package.}
+% \changes{v1.4c}{2021/06/06}
+% {Copy raw raw options for gh/580}
% \begin{macrocode}
\expandafter\let
\csname opt@\@currpkg@reqd\expandafter\endcsname
\csname opt@\@currname.\@currext\endcsname
+ \expandafter\let
+ \csname @raw@opt@\@currpkg@reqd\expandafter\endcsname
+ \csname @raw@opt@\@currname.\@currext\endcsname
\global\expandafter
\let\csname ver@\@currname.\@currext\endcsname\@empty
% \end{macrocode}
@@ -2712,11 +2771,12 @@
% \end{macrocode}
%
% Lua\TeX\ has more writes (and 18 is safe here).
+% \changes{v1.4b}{2021/06/09}{Use \cs{@latex@note@no@line} to display the information}
% \begin{macrocode}
\chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
\openin\@inputcheck\q@curr@file \space %
\ifeof\@inputcheck%
- \@latex@warning@no@line%
+ \@latex@note@no@line%
{Writing file `\@currdir\@curr@file'}%
% \end{macrocode}
%
@@ -2730,9 +2790,10 @@
%
% \changes{v1.0y}{1997/10/10}
% {Use \cs{@gobbletwo}}
+% \changes{v1.4b}{2021/06/09}{Use \cs{@latex@note@no@line} to display the information}
% \begin{macrocode}
\if@filesw%
- \@latex@warning@no@line%
+ \@latex@note@no@line%
{File `\@curr@file' already \filec@ntents@where.\MessageBreak%
Not generating it from this source}%
\let\write\@gobbletwo%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx b/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
index 806161d5386..6f2153c6ea0 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.0e}
-\def\ltcmddate{2021-05-24}
+\def\ltcmdversion{v1.0f}
+\def\ltcmddate{2021-06-04}
% \end{macrocode}
%
%<*driver>
@@ -366,7 +366,7 @@
{
\cs_if_exist:NTF #1
{
- \msg_info:nnxx { cmd } { redefine-command }
+ \msg_info:nnxx { cmd } { redefine }
{ \token_to_str:N #1 } { \tl_to_str:n {#2} }
}
{
@@ -536,11 +536,11 @@
{ \tl_trim_spaces:o { \l_@@_environment_str } }
\cs_if_exist:cTF { \l_@@_environment_str }
{
- \msg_info:nnxx { cmd } { redefine-environment }
+ \msg_info:nnxx { cmd } { redefine-env }
{ \l_@@_environment_str } { \tl_to_str:n {#2} }
}
{
- \msg_info:nnxx { cmd } { define-environment }
+ \msg_info:nnxx { cmd } { define-env }
{ \l_@@_environment_str } { \tl_to_str:n {#2} }
}
\bool_set_false:N \l_@@_expandable_bool
@@ -693,7 +693,7 @@
}
\cs_new_protected:Npn \@@_defaults_error:w \q_recursion_stop
{
- \msg_error:nnx { cmd } { loop-in-defaults }
+ \msg_error:nnx { cmd } { default-loop }
{ \@@_environment_or_command: }
}
% \end{macrocode}
@@ -821,7 +821,7 @@
\@@_end_expandable_defaults:nnnNNn {#1} { } {#1} #2#3
{ } { } { } { } { } { } { } { } { } { }
{
- \msg_expandable_error:nnf { cmd } { loop-in-defaults }
+ \msg_expandable_error:nnf { cmd } { default-loop }
{ \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N #4 } }
\use_iv:nnnn
}
@@ -919,7 +919,7 @@
\q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop
\int_compare:nNnT \l_@@_current_arg_int > 9
{
- \msg_error:nnxx { cmd } { too-many-arguments }
+ \msg_error:nnxx { cmd } { too-many-args }
{ \@@_environment_or_command: } { \tl_to_str:n {#1} }
\@@_bad_def:wn
}
@@ -951,7 +951,7 @@
{ \str_if_eq_p:nn {#1} { u } }
}
{
- \msg_error:nnxx { cmd } { xparse-argument-type }
+ \msg_error:nnxx { cmd } { xparse-arg-type }
{ \@@_environment_or_command: } { \tl_to_str:n {#1} }
}
{
@@ -1241,7 +1241,7 @@
{ \use_none:n }
}
{
- \msg_error:nnxxx { cmd } { forbidden-implicit-group-token }
+ \msg_error:nnxxx { cmd } { forbidden-group-token }
{ \@@_environment_or_command: } { \tl_to_str:n {#1} }
{
\token_if_eq_meaning:NNTF #1 \c_group_begin_token
@@ -1261,7 +1261,7 @@
{
\bool_if:NT \l_@@_expandable_bool
{
- \msg_error:nnxx { cmd } { invalid-expandable-argument-type }
+ \msg_error:nnxx { cmd } { invalid-expandable-arg }
{ \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} }
\@@_bad_def:wn
}
@@ -1334,7 +1334,7 @@
{
\bool_if:NT \l_@@_expandable_bool
{
- \msg_error:nnx { cmd } { inconsistent-long }
+ \msg_error:nnx { cmd } { long-short-mix }
{ \iow_char:N \\ \l_@@_function_tl }
\@@_bad_def:wn
}
@@ -1356,7 +1356,7 @@
{
\bool_if:NT \l_@@_some_obey_spaces_bool
{
- \msg_error:nnxx { cmd } { non-trailing-obey-spaces }
+ \msg_error:nnxx { cmd } { invalid-bang }
{ \@@_environment_or_command: } { \tl_to_str:n {#1} }
\@@_bad_def:wn
}
@@ -2587,7 +2587,7 @@
\exp_after:wN \exp_after:wN \exp_after:wN
\peek_meaning_remove:NTF \char_generate:nn { \tex_endlinechar:D } { 6 }
{
- \msg_error:nnxxx { cmd } { verbatim-newline }
+ \msg_error:nnxxx { cmd } { verbatim-nl }
{ \@@_environment_or_command: }
{ \tl_to_str:N \l_@@_v_arg_tl }
{ \tl_to_str:n {#1} }
@@ -3115,7 +3115,7 @@
\ProcessedArgument
\q_stop
}
- \msg_error:nnxxx { cmd } { split-excess-tokens }
+ \msg_error:nnxxx { cmd } { arg-split }
{ \tl_to_str:n {#3} } { \int_eval:n { #2 + 1 } }
{ \tl_to_str:n {#4} }
}
@@ -3504,94 +3504,91 @@
% \end{macro}
%
% Some messages intended as errors when defining commands/environments.
+% \changes{v1.0f}{2021/06/04}{Normalize various error messages}
% \begin{macrocode}
\msg_new:nnnn { cmd } { arg-after-body }
- { In~the~definition~of~#1,~b~(body)~argument~must~be~last. }
+ { Argument~type~'b'~must~be~last~in~#1. }
{
- The~'body'~argument~type~is~followed~by~'#2'~in~the~argument~
- specification~of~the~#1.~This~is~not~allowed.
+ The~'b'~argument~type~must~come~last~but~it~is~followed~
+ by~'#2'~in~the~argument~specification.~This~is~not~allowed.
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { bad-arg-spec }
{ Bad~argument~specification~'#2'~for~#1. }
{
- The~argument~specification~provided~was~not~valid:~
- one~or~more~mandatory~pieces~of~information~were~missing.
+ The~argument~specification~provided~is~not~valid:~
+ one~or~more~mandatory~parts~are~missing.
\c_@@_ignore_def_tl
}
-\msg_new:nnnn { cmd } { command-already-defined }
- { Command~'#1'~already~defined! }
+\msg_new:nnnn { cmd } { already-defined }
+ { Command~'#1'~already~defined. }
{
You~have~used~#2~
with~a~command~that~already~has~a~definition. \\ \\
The~existing~definition~of~'#1'~will~not~be~altered.
}
-\msg_new:nnnn { cmd } { command-not-yet-defined }
- { Command ~'#1'~not~yet~defined! }
+\msg_new:nnnn { cmd } { undefined }
+ { Command ~'#1'~undefined. }
{
You~have~used~#2~
with~a~command~that~was~never~defined.
\c_@@_ignore_def_tl
}
-\msg_new:nnnn { cmd } { environment-already-defined }
- { Environment~'#1'~already~defined! }
+\msg_new:nnnn { cmd } { env-already-defined }
+ { Environment~'#1'~already~defined. }
{
You~have~used~\NewDocumentEnvironment
with~an~environment~that~already~has~a~definition. \\ \\
The~existing~definition~of~'#1'~will~not~be~altered.
}
-\msg_new:nnnn { cmd } { environment-not-yet-defined }
- { Environment~'#1'~not~yet~defined! }
+\msg_new:nnnn { cmd } { env-undefined }
+ { Environment~'#1'~undefined. }
{
You~have~used~\RenewDocumentEnvironment
with~an~environment~that~was~never~defined.
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { expandable-ending-optional }
- {
- Argument~specification~'#2'~for~expandable~command~'#1'~
- ends~with~optional~argument.
- }
+ { Bad~argument~specification~'#2'~for~#1. }
{
Expandable~commands~must~have~a~final~mandatory~argument~
(or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~
argument~with~expandable~commands.
}
-\msg_new:nnnn { cmd } { inconsistent-long }
- { Inconsistent~long~arguments~for~expandable~command~'#1'. }
+\msg_new:nnnn { cmd } { long-short-mix }
+ { Invalid~argument~prefix~'+'~in~command~'#1'. }
{
The~arguments~for~an~expandable~command~must~not~involve~short~
- arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types.
+ arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types~
+ when~defining~'#1'.
}
\msg_new:nnnn { cmd } { invalid-command-arg }
- { Argument~type~'#2'~not~available~for~#1. }
+ { Invalid~argument~type~'#2'~in~#1. }
{
The~letter~'#2'~can~only~be~used~in~environment~argument~
- specifications,~not~for~commands.
+ specifications,~but~not~for~commands.
\\ \\
- LaTeX~will~ignore~this~entire~definition.
+ LaTeX~will~ignore~the~entire~definition.
}
-\msg_new:nnnn { cmd } { invalid-expandable-argument-type }
- { Argument~type~'#2'~not~available~for~expandable~command~'#1'. }
+\msg_new:nnnn { cmd } { invalid-expandable-arg }
+ { Invalid~argument~type~'#2'~in~#1. }
{
The~letter~'#2'~specifies~an~argument~type~which~cannot~be~used~
in~an~expandable~command.
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { invalid-after-optional-expandably }
- {
- Argument~type~'#2'~not~available~after~optional~argument~
- for~expandable~command~'#1'.
- }
+ { Argument~'#2'~invalid~after~optional~arg~in~#1. }
{
The~letter~'#2'~specifies~an~argument~type~which~cannot~be~used~
in~an~expandable~command~after~an~optional~argument.
\c_@@_ignore_def_tl
}
-\msg_new:nnnn { cmd } { non-trailing-obey-spaces }
- { Prefix~'!'~used~before~mandatory~argument~'#2'~of~#1. }
+\msg_new:nnnn { cmd } { invalid-bang }
+ { Invalid~argument~prefix~'!'~in~#1. }
{
- The~prefix~'!'~can~only~apply~to~trailing~optional~arguments.
+ The~prefix~'!'~is~only~allowed~for~trailing~optional~arguments.~
+ You~tried~to~apply~it~to~'#2'.
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { not-definable }
@@ -3611,75 +3608,75 @@
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { not-single-token }
+ { Argument~delimiter~'#2'~invalid~in~#1. }
{
- Argument~delimiter~'#2'~for~the~#1~should~be~
- a~single~non-space~token.
- }
- {
- The~argument~specification~provided~was~not~valid:~in~a~place~
- where~a~single~token~is~required,~LaTeX~found~'#2'.
+ The~argument~specification~contains~
+ \tl_if_empty:nTF{#2}{nothing}{'#2'}~
+ in~a~place~
+ where~a~single~token~is~required.
\c_@@_ignore_def_tl
}
-\msg_new:nnnn { cmd } { forbidden-implicit-group-token }
- { Argument~delimiter~'#2'~for~the~#1~is~not~allowed. }
+\msg_new:nnnn { cmd } { forbidden-group-token }
+ { Argument~delimiter~'#2'~invalid~in~#1. }
{
- The~argument~specification~provided~was~not~valid:~the~implicit~
- #3-group~token~'#2'~is~not~allowed~as~an~argument~delimiter.
+ The~argument~specification~contains~the~implicit~
+ #3-group~token~'#2'~which~is~not~allowed~as~an~argument~delimiter.
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { processor-in-expandable }
- { Argument~processor~'>{#2}'~cannot~be~used~for~the~expandable~command~'#1'. }
+ { Invalid~argument~prefix~'>'~in~command~'#1'. }
{
- The~argument~specification~for~#1~contains~a~processor~function:~
- this~is~only~supported~for~standard~robust~commands.
+ The~argument~specification~for~'#1'~contains~the~processor~function~'>{#2}'.~
+ This~is~only~supported~for~robust~commands,~but~not~for~expandable~ones.
\c_@@_ignore_def_tl
}
-\msg_new:nnnn { cmd } { too-many-arguments }
- { Too~many~arguments~in~argument~specification~'#2'~of~#1. }
+\msg_new:nnnn { cmd } { too-many-args }
+ { Too~many~arguments~for~#1. }
{
- The~argument~specification~provided~has~more~than~9~arguments.~
+ The~argument~specification~'#2'~asks~for~more~than~9~arguments.~
This~cannot~be~implemented.
\c_@@_ignore_def_tl
}
\msg_new:nnnn { cmd } { two-markers }
- { Two~'#2'~apply~to~the~same~argument~in~argument~specification~of~#1. }
+ { Invalid~argument~prefix~'#2'~in~#1. }
{
- The~argument~specification~provided~has~two~markers~'#2'~applying~
- to~the~same~argument;~these~are~redundant.
+ The~argument~specification~provided~for~#1~has~two~'#2'~markers~applied~
+ to~the~same~argument;~one~is~redundant.
}
-\msg_new:nnnn { cmd } { unknown-argument-type }
- { Unknown~argument~type~'#2'~for~the~#1. }
+\msg_new:nnnn { cmd } { unknown-argument-type } % should be unkown-arg-type but dep in xparse
+ { Invalid~argument~type~'#2'~in~#1. }
{
The~letter~'#2'~does~not~specify~a~known~argument~type.
\c_@@_ignore_def_tl
}
-\msg_new:nnnn { cmd } { xparse-argument-type }
- { Deprecated~argument~type~'#2'~for~the~#1~requires~xparse. }
+\msg_new:nnnn { cmd } { xparse-arg-type }
+ { Invalid~argument~type~'#2'~in~#1~(requires~xparse). }
{
- The~letter~'#2'~specifies~a~known~argument~type~that~requires~
- the~xparse~package.
+ The~letter~'#2'~specifies~a~known~but~deprecated~argument~type.~
+ If~you~really~need~it~you~have~to~load~the~xparse~package.
\c_@@_ignore_def_tl
}
% \end{macrocode}
%
% Errors when using commands/environments. The \texttt{if-boolean}
% message is always used in expandable errors. The
-% \texttt{loop-in-defaults} and \texttt{missing-required} messages can
+% \texttt{default-loop} and \texttt{missing-required} messages can
% be expandable or not expandable.
% \begin{macrocode}
\msg_new:nnn { cmd } { if-boolean }
- { Invalid~use~\iow_char:N\\IfBooleanTF~{#1} }
-\msg_new:nnnn { cmd } { loop-in-defaults }
- { Defaults~of~#1~have~circular~dependency. }
+ { Invalid~argument~{#1}~to~\iow_char:N\\IfBoolean... }
+\msg_new:nnnn { cmd } { default-loop }
+ { Circular~dependency~in~defaults~of~#1. }
{
The~default~values~of~two~or~more~arguments~of~the~#1~
depend~on~each~other~in~a~way~that~cannot~be~resolved.
}
\msg_new:nnnn { cmd } { missing-required }
- { Missing~required~argument~for~#1. }
+ { Required~argument~missing~for~#1. }
{
- The~current~#1~expects~an~argument~starting~with~'#2'.~
- LaTeX~did~not~find~it,~and~will~insert~a~default~value~to~be~processed.
+ The~#1~expects~one~of~its~arguments~to~start~with~'#2'.~
+ LaTeX~did~not~find~this~argument~and~will~insert~a~default~value~
+ for~further~processing.
}
\msg_new:nnnn { cmd } { non-xparse }
{ \str_uppercase:n #1~not~defined~using~xparse. }
@@ -3687,12 +3684,12 @@
You~have~asked~for~the~argument~specification~for~the~#1,~
but~this~was~not~defined~using~xparse.
}
-\msg_new:nnnn { cmd } { split-excess-tokens }
- { Too~many~'#1'~tokens~when~trying~to~split~argument. }
+\msg_new:nnnn { cmd } { arg-split }
+ { Too~many~'#1'~separators~in~argument. }
{
LaTeX~was~asked~to~split~the~input~'#3'~
- at~each~occurrence~of~the~token~'#1',~up~to~a~maximum~of~#2~parts.~
- There~were~too~many~'#1'~tokens.
+ at~each~occurrence~of~the~separator~'#1'~into~#2~parts.~
+ Too~many~separators~were~found.
}
\msg_new:nnnn { cmd } { unknown }
{ Unknown~document~#1. }
@@ -3700,54 +3697,62 @@
You~have~asked~for~the~argument~specification~for~the~#1,~
but~it~is~not~defined.
}
-\msg_new:nnnn { cmd } { verbatim-newline }
- { Verbatim~argument~of~#1~ended~by~end~of~line. }
+\msg_new:nnnn { cmd } { verbatim-nl }
+ { Verbatim-like~#1~ended~by~end~of~line. }
{
The~verbatim~argument~of~the~#1~cannot~contain~more~than~one~line,~
but~the~end~
of~the~current~line~has~been~reached.~You~may~have~forgotten~the~
closing~delimiter.
\\ \\
- LaTeX~will~ignore~'#2'.
+ LaTeX~will~ignore~'#2'~and~you~may~get~some~additional~
+ (low-level)~errors.
}
\msg_new:nnnn { cmd } { verbatim-tokenized }
- { The~verbatim~#1~cannot~be~used~inside~an~argument. }
+ { Verbatim-like~#1~illegal~in~argument. }
{
- The~#1~takes~a~verbatim~argument.~
- It~may~not~appear~within~the~argument~of~another~function.~
- It~received~an~illegal~token \tl_if_empty:nF {#3} { ~'#3' } .
+ The~#1~takes~a~verbatim~argument~and~should~therefore~normally~
+ not~be~used~in~arguments~of~other~commands~or~environments.~
+ LaTeX~found~an~illegal~token~ \tl_if_empty:nF {#3} { (#3)~ }
+ after~'#2'~and~will~drop~everything~up~to~this~point.
\\ \\
- LaTeX~will~ignore~'#2'.
+ Expect~further~(low-level)~errors.
}
% \end{macrocode}
%
% Intended more for information.
% \begin{macrocode}
-\msg_new:nnn { cmd } { define-command }
+\msg_new:nnn { cmd } { define-command } % should be just ``define'' but dep in xparse
{
Defining~command~#1~
with~sig.~'#2'~\msg_line_context:.
}
-\msg_new:nnn { cmd } { define-environment }
+\msg_new:nnn { cmd } { define-env }
{
Defining~environment~'#1'~
with~sig.~'#2'~\msg_line_context:.
}
-\msg_new:nnn { cmd } { redefine-command }
+\msg_new:nnn { cmd } { redefine }
{
Redefining~command~#1~
with~sig.~'#2'~\msg_line_context:.
}
-\msg_new:nnn { cmd } { redefine-environment }
+\msg_new:nnn { cmd } { redefine-env }
{
Redefining~environment~'#1'~
with~sig.~'#2'~\msg_line_context:.
}
\msg_new:nnn { cmd } { optional-mandatory }
{
- Since~the~mandatory~argument~'#1'~has~the~same~delimiter~'#2'~
- as~a~previous~optional~argument,~it~will~not~be~possible~to~
- omit~all~optional~arguments~when~calling~this~command.
+ Optional~and~mandatory~argument~with~same~delimiter~'#2'.
+ \\ \\
+ The~mandatory~argument~specified~with~
+ '\str_case:nnF{#1}{ {R/r}{r'~or~'R} }{#1}'~has~the~
+ same~delimiter~'#2'~as~an~earlier~optional~argument.~
+ It~will~therefore~not~be~possible~to~omit~all~the~earlier~
+ optional~arguments~when~calling~this~command.
+ \\ \\
+ This~may~be~intentional,~but~then~it~might~be~a~mistake.
}
\msg_new:nnn { cmd } { unsupported-let }
{
@@ -3787,7 +3792,7 @@
{
\cs_if_exist:NTF #1
{
- \msg_error:nnxx { cmd } { command-already-defined }
+ \msg_error:nnxx { cmd } { already-defined }
{ \use:nnn \token_to_str:N #1 { } }
{ \token_to_str:N \NewDocumentCommand }
}
@@ -3801,7 +3806,7 @@
\cs_if_exist:NTF #1
{ \@@_declare_cmd:Nnn #1 {#2} {#3} }
{
- \msg_error:nnxx { cmd } { command-not-yet-defined }
+ \msg_error:nnxx { cmd } { undefined }
{ \use:nnn \token_to_str:N #1 { } }
{ \token_to_str:N \RenewDocumentCommand }
}
@@ -3832,14 +3837,14 @@
\cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4
{
\cs_if_exist:cTF {#1}
- { \msg_error:nnx { cmd } { environment-already-defined } {#1} }
+ { \msg_error:nnx { cmd } { env-already-defined } {#1} }
{ \@@_declare_env:nnnn {#1} {#2} {#3} {#4} }
}
\cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4
{
\cs_if_exist:cTF {#1}
{ \@@_declare_env:nnnn {#1} {#2} {#3} {#4} }
- { \msg_error:nnx { cmd } { environment-not-yet-defined } {#1} }
+ { \msg_error:nnx { cmd } { env-undefined } {#1} }
}
\cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4
{ \cs_if_exist:cF {#1} { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} } }
@@ -3866,7 +3871,7 @@
{
\cs_if_exist:NTF #1
{
- \msg_error:nnxx { cmd } { command-already-defined }
+ \msg_error:nnxx { cmd } { already-defined }
{ \use:nnn \token_to_str:N #1 { } }
{ \token_to_str:N \NewExpandableDocumentCommand }
}
@@ -3880,7 +3885,7 @@
\cs_if_exist:NTF #1
{ \@@_declare_expandable_cmd:Nnn #1 {#2} {#3} }
{
- \msg_error:nnxx { cmd } { command-not-yet-defined }
+ \msg_error:nnxx { cmd } { undefined }
{ \use:nnn \token_to_str:N #1 { } }
{ \token_to_str:N \RenewExpandableDocumentCommand }
}
@@ -4032,3 +4037,4 @@
% \end{macrocode}
%
% \Finale
+
diff --git a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
index 4f39d922cce..6c85ca915d2 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2021/05/27 v1.5p LaTeX Kernel (definition commands)]
+ [2021/06/04 v1.5q LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -1231,7 +1231,7 @@
\count@=\escapechar
\escapechar=`\\
\@ifundefined{\expandafter\@gobble\string#1}{%
- \@latex@error{Command `\string#1' is undefined!%
+ \@latex@error{Command `\string#1' undefined.%
\MessageBreak There is nothing here to make robust}%
\@eha
}%
diff --git a/Master/texmf-dist/source/latex-dev/base/lterror.dtx b/Master/texmf-dist/source/latex-dev/base/lterror.dtx
index 7f480a0171f..43eef7b2890 100644
--- a/Master/texmf-dist/source/latex-dev/base/lterror.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/lterror.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{lterror.dtx}
- [2019/08/30 v1.2q LaTeX Kernel (errors)]
+ [2021/06/09 v1.2r LaTeX Kernel (errors)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{lterror.dtx}
@@ -446,6 +446,50 @@ Type H <return> for immediate help.}%
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\@latex@note}
+% \begin{macro}{\@latex@note@no@line}
+% These are ``info'' messages that display on the terminal not
+% just in the transcript.
+% \changes{v1.2r}{2021/06/09}{Macros added}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2021/11/15}%
+%<latexrelease> {\@latex@note}{Display notes}%
+\def\@latex@note#1{%
+ \GenericWarning{%
+ \@spaces\@spaces\@spaces
+ }{%
+ LaTeX Info: #1%
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@latex@note@no@line#1{%
+ \@latex@note{#1\@gobble}}
+% \end{macrocode}
+%
+% We don't make them undefined but rather point to \cs{@latex@info}
+% because that's what they replace. This way we can change
+% \cs{@latex@info} elsewhere without the need to further rollback
+% sections.
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@latex@note}{Display notes}%
+%<latexrelease>
+%<latexrelease>\let\@latex@note\@latex@info
+%<latexrelease>\let\@latex@note@no@line\@latex@info@no@line
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+%
% \begin{macro}{\c@errorcontextlines}
% \changes{LaTeX2e}{1993/11/22}{Macro added}
% |\errorcontextlines| as a \LaTeX\ counter, so that it may be
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
index df265d0b0fc..1f30372d063 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2021/04/26 v3.2i LaTeX Kernel (NFSS Basic Macros)]
+ [2021/06/09 v3.2j LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -280,11 +280,12 @@
% may have dropped an ``m''. If nothing has changes,
% fine. Otherwise there was a wrong value which is now corrected in
% \cs{reservedb} so we use that and also issue a warning.
+% \changes{v3.2j}{2021/06/09}{Improve information message}
% \begin{macrocode}
\edef\reserved@a{#3}%
\series@maybe@drop@one@m\reserved@a\reserved@b
\ifx\reserved@a\reserved@b\else
- \@latex@warning{Font shape declaration has incorrect series
+ \@latex@note{Font shape #1/#2/#3/#4 has incorrect series
value `#3'.\MessageBreak It should not contain an `m'!
Please correct it.\MessageBreak Found}%
\fi
diff --git a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
index 8bae3f9bfa3..6cc58907a0d 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmiscen.dtx}
- [2021/02/08 v1.1y LaTeX Kernel (Misc. Environments)]
+ [2021/06/05 v1.1z LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -1471,12 +1471,13 @@
\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi}
% \end{macrocode}
%
+% \changes{v1.1z}{2021/06/05}{Normalize error message}
% \begin{macrocode}
\def\@@sverb#1{%
\catcode`#1\active
\lccode`\~`#1%
\gdef\verb@balance@group{\verb@egroup
- \@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
+ \@latex@error{\noexpand\verb illegal in argument}\@ehc}%
\aftergroup\verb@balance@group
\lowercase{\let~\verb@egroup}%
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx b/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
index f773cd23da2..6e687ee4449 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
@@ -32,8 +32,8 @@
%%% From File: ltshipout.dtx
%
% \begin{macrocode}
-\providecommand\ltshipoutversion{v1.0i}
-\providecommand\ltshipoutdate{2021/03/17}
+\providecommand\ltshipoutversion{v1.0j}
+\providecommand\ltshipoutdate{2021/06/09}
% \end{macrocode}
%
%<*driver>
@@ -867,7 +867,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_execute_main_cont:Nnnn #1#2#3#4 {
\box_if_empty:NTF #1
- { \@latex@warning{Ignoring~ void~ shipout~ box} }
+ { \@latex@warning@no@line{ Ignoring~ void~ shipout~ box } }
{
% \end{macrocode}
% Otherwise we assume that we will ship something and prepare for
@@ -935,9 +935,8 @@
% practice way is to use the request mechanism.
% \begin{macrocode}
{ \box_if_empty:NTF #1
- { \@latex@warning{
- Shipout~ box~ was~ voided~ by~ hook,\MessageBreak
- ignoring~ shipout~ box }
+ { \@latex@warning@no@line { Ignoring~ void~ shipout~ box.
+ \MessageBreak The~ shipout~ box~ was~ voided~ by~ hook~ code }
}
% \end{macrocode}
% Finally, if the box is still non-empty we are nearly ready to
@@ -1183,9 +1182,8 @@
% \begin{macrocode}
\cs_gset_eq:NN \@@_run_firstpage_hook: \prg_do_nothing:
\cs_gset:Npn \@@_add_firstpage_material:Nn ##1 ##2 {
- \@latex@warning{
- First~ page~ is~ already~ shipped~ out,~ ignoring\MessageBreak
- \string##1 }
+ \@latex@warning{ First~ page~ is~ already~ shipped~ out,~ ignoring
+ \MessageBreak \string##1 }
}
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
index 20efb4509e8..9ccd2bd02ef 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
@@ -112,10 +112,10 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2021-12-01}
+ {2021-11-15}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{0}
+\def\patch@level{-1}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx b/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
index 79c725915c7..a517459441d 100644
--- a/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
@@ -216,7 +216,7 @@
%<+ts1> \ProvidesFile{ts1enc.dfu}
%<+x2> \ProvidesFile{x2enc.dfu}
%<+all> \ProvidesFile{utf8enc.dfu}
-%<-utf8-2018> [2021/01/27 v1.2l UTF-8 support for inputenc]
+%<-utf8-2018> [2021/06/08 v1.2m UTF-8 support]
% \end{macrocode}
%
% \begin{macrocode}
@@ -443,14 +443,16 @@
% \changes{v1.1g}{2005/09/27}{Real spaces do not show up so use \cs{space}}
% \changes{v1.1o}{2015/08/28}{Show Unicode number of character in hex}
% \changes{v1.2a}{2018/03/24}{Error message improved for non-UTF-8 sequences}%
+% \changes{v1.2m}{2021/06/08}{Normalize various error messages as kernel errors}
% \begin{macrocode}
\UTFviii@undefined@err{#1}%
% \end{macrocode}
%
% \begin{macrocode}
\else
- \PackageError{inputenc}{Invalid UTF-8 byte sequence}%
- \UTFviii@invalid@help
+ \@latex@error{Invalid UTF-8 byte sequence (\expandafter
+ \@gobblefour\string#1)}%
+ \UTFviii@invalid@help
\fi
% \end{macrocode}
%
@@ -468,8 +470,8 @@
% \changes{v1.2f}{2018/10/05}{Show invalid byte in hex}%
% \begin{macrocode}
\def\UTFviii@invalid@err#1{%
- \PackageError{inputenc}{Invalid UTF-8 byte "\UTFviii@hexnumber{`#1}}%
- \UTFviii@invalid@help}
+ \@latex@error{Invalid UTF-8 byte "\UTFviii@hexnumber{`#1}}%
+ \UTFviii@invalid@help}
% \end{macrocode}
%
% \begin{macrocode}
@@ -487,7 +489,7 @@
% \changes{v1.2a}{2018/03/24}{Macro added}%
% \begin{macrocode}
\def\UTFviii@undefined@err#1{%
- \PackageError{inputenc}{Unicode character \expandafter
+ \@latex@error{Unicode character \expandafter
\UTFviii@splitcsname\string#1\relax
\MessageBreak
not set up for use with LaTeX}%
@@ -776,8 +778,7 @@
\ifnum\catcode\count@=13
\uccode`\~=\count@\uppercase{\def\UTFviii@tmp{\@empty\@empty~}}%
\else
- \PackageError{inputenc}%
- {Cannot define non-active Unicode char value < 00A0}%
+ \@latex@error{Cannot define non-active Unicode char value < 00A0}%
\@eha
\def\UTFviii@tmp{\UTFviii@tmp}%
\fi
@@ -803,7 +804,7 @@
% past this error.
% \begin{macrocode}
\ifnum\count@>"10FFFF\relax
- \PackageError{inputenc}%
+ \@latex@error
{\UTFviii@hexnumber\count@\space too large for Unicode}%
{Values between 0 and 10FFFF are permitted}%
\fi
@@ -2083,8 +2084,7 @@
\ifnum\catcode\count@=13
\uccode`\~=\count@\uppercase{\def\UTFviii@tmp{\@empty\@empty~}}%
\else
- \PackageError{inputenc}%
- {Cannot define non-active Unicode char value < 00A0}%
+ \PackageError{inputenc}{Cannot define non-active Unicode char value < 00A0}%
\@eha
\def\UTFviii@tmp{\UTFviii@tmp}%
\fi
diff --git a/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx b/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
index 7eb108418c1..84ddacb269c 100644
--- a/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
+++ b/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
@@ -111,8 +111,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\LaTeXFirstAidDate{2021/03/15}
-\def\LaTeXFirstAidVersion{v1.0l}
+\def\LaTeXFirstAidDate{2021/06/08}
+\def\LaTeXFirstAidVersion{v1.0m}
% \end{macrocode}
%
% \begin{macrocode}
@@ -134,7 +134,9 @@
% \begin{macrocode}
\ExplSyntaxOn
\cs_new:Npn\FirstAidNeededT#1#2#3{
- \exp_args:Nc\str_if_eq:onT{ver@#1.#2}{#3}
+ \exp_args:Ncx\str_if_eq:onF{ver@#1.#2}{#3}
+ { \typeout{==>~ First~ Aid~ for~ #1.#2~ no~ longer~ applied!} }
+ \exp_args:Ncx\str_if_eq:onT{ver@#1.#2}{#3}
}
\ExplSyntaxOff
% \end{macrocode}
@@ -546,6 +548,71 @@
%
%
%
+% \subsection{\cs{ulem} first aid}
+%
+% In 2020 we fixed various kernel commands to accept \pkg{calc}
+% syntax. The \pkg{ulem} package redefines some internals and that
+% now conflicts with the new definitions as they involve an extra
+% group. So we alter the definition of \cs{@hspace} if \pkg{ulem}
+% was loaded. This is not perfect, obviously, so it will go out the
+% moment \pkg{ulem} gets adjusted.
+%
+% \begin{macrocode}
+\AddToHook{file/after/ulem.sty}[firstaid]{%
+ \def\@hspace#1{\begingroup\setlength\skip@{#1}%
+ \edef\x{\endgroup\hskip\the\skip@\relax}\x}%
+ }
+% \end{macrocode}
+%
+%
+% \subsection{\cs{varwidth} first aid}
+%
+% The \pkg{varwidth} package does a lot of low-level paragraph
+% manipulation assuming traditional \TeX{} paragraphs. However, with
+% the paragraph hooks we end up with one extra glue 0pt item on the
+% vertical list and if that isn't removed then the package doesn't
+% find its penalties.
+%
+% So this needs to be removed as well by adding an additional
+% \cs{unskip}.
+%
+% \begin{macrocode}
+\AddToHook{file/after/varwidth.sty}[firstaid]{%
+ \FirstAidNeededT{varwidth}{sty}%
+ {2009/03/30 ver 0.92; \space Variable-width minipages}%
+ {%
+\def\@vwid@sift{%
+ \skip@\lastskip\unskip
+ \unskip % <---- the first aid here
+ \dimen@\lastkern\unkern
+ \count@\lastpenalty\unpenalty
+ \setbox\z@\lastbox
+ \ifvoid\z@ \advance\sift@deathcycles\@ne \else \sift@deathcycles\z@ \fi
+ \ifnum\sift@deathcycles>33
+ \let\@vwid@sift\relax
+ \PackageWarning{varwidth}{Failed to reprocess entire contents}%
+ \fi
+ \ifnum\count@=\@vwid@preeqp \@vwid@eqmodefalse\fi
+ \ifnum\count@=\@vwid@posteqp \@vwid@eqmodetrue\fi
+ \ifnum\count@=\@vwid@toppen % finished
+ \let\@vwid@sift\relax
+ \else\ifnum\count@=\@vwid@offsets
+ \@vwid@setoffsets
+ \else
+ \ifnum\count@=\@vwid@postw
+ \else
+ \@vwid@resetb % reset box \z@ or measure it
+ \fi
+ \@vwid@append
+ \fi\fi
+ \@vwid@sift}%
+ }%
+ }
+% \end{macrocode}
+%
+%
+%
+%
% \subsection[Temporary fixes for the kernel (until the next
% patch-level release)]
% {Temporary fixes for the kernel \\