diff options
author | Karl Berry <karl@freefriends.org> | 2021-06-17 20:41:07 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-06-17 20:41:07 +0000 |
commit | 9978e24ea9abb36dad75d81184c809b88b895449 (patch) | |
tree | 7f49934a6082be52afda251f9120d2b2febcd2fb /Master/texmf-dist/source/latex-dev | |
parent | 81ca63e0ddfa735dbeeb77c1b8f80d5606e318ea (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')
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 \\ |