diff options
Diffstat (limited to 'Master/texmf-dist/source/latex-dev/base')
10 files changed, 222 insertions, 45 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/docstrip.dtx b/Master/texmf-dist/source/latex-dev/base/docstrip.dtx index be373499e6b..776d0e68d7d 100644 --- a/Master/texmf-dist/source/latex-dev/base/docstrip.dtx +++ b/Master/texmf-dist/source/latex-dev/base/docstrip.dtx @@ -31,7 +31,7 @@ \def\filename{docstrip.dtx} \def\fileversion{v2.6b} \def\filedate{2022-09-03} -\def\docdate {2022-09-03} +\def\docdate {2023-10-10} %% % %\iffalse @@ -838,6 +838,29 @@ % suppressed by giving an empty module name, namely using the % syntax \texttt{\%<@@=>}. % +% The exact steps that are carried out by this replacement +% algorithm are the following: +% \begin{enumerate} +% \item First, deal with \texttt{@@@@} as a special case (by using a +% temporary disguise). +% +% \item Then change all |__@@| to |__|\meta{module}. +% +% \item Then change all remaining |_@@| to +% |__|\meta{module}. +% +% \item Then change all remaining \texttt{@@} to +% |__|\meta{module}. +% +% \item Finally, tidy up by changing each ``disguised +% \texttt{@@@@}'' to \texttt{@@}. +% \end{enumerate} +% Thus, replacement means that \texttt{@@} is replaced by the +% \meta{module} name and that 0, 1, or 2 underscores in front of +% \texttt{@@} are replaced by exactly 2 underscores (whilst any +% larger number of underscores is preserved). +% +% % \section{Those other languages} % Since \TeX\ is an open system some of \TeX\ packages include % non-\TeX\ files. Some authors use \ds\ to generate PostScript diff --git a/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx b/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx index ff1717caa97..d84158c161b 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltboxes.dtx} - [2022/09/07 v1.4d LaTeX Kernel (Box Commands)] + [2023/10/26 v1.4e LaTeX Kernel (Box Commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltboxes.dtx} @@ -342,13 +342,36 @@ % \begin{macro}{\@imakebox} % \changes{v0.1a}{1993/12/03} % {macro modified} +% \changes{v1.4e}{2023/10/26} +% {Guard against unknown alignment gh/1072} % Internal form of |\makebox|. % \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@imakebox}{Unknown alignment warning}% +%<*2ekernel|latexrelease> \long\def\@imakebox[#1][#2]#3{% \@begin@tempboxa\hbox{#3}% \setlength\@tempdima{#1}% support calc - \hb@xt@\@tempdima{\csname bm@#2\endcsname}% + \hb@xt@\@tempdima{% + \expandafter\ifx\csname bm@#2\endcsname\relax + \bm@c + \@latex@warning{Unexpected alignment #2}% + \else + \csname bm@#2\endcsname + \fi}% \@end@tempboxa} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@imakebox}{Unknown alignment warning}% +%<latexrelease>\long\def\@imakebox[#1][#2]#3{% +%<latexrelease> \@begin@tempboxa\hbox{#3}% +%<latexrelease> \setlength\@tempdima{#1}% support calc +%<latexrelease> \hb@xt@\@tempdima{\csname bm@#2\endcsname}% +%<latexrelease> \@end@tempboxa} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -748,19 +771,46 @@ % {\cs{leavevmode} moved to \cs{@frameb@x}} % \changes{v1.0s}{1995/04/27} % {Move \cs{leavevmode} for graphics/1512} +% \changes{v1.4e}{2023/10/26} +% {Guard against unknown alignment gh/1072} % In order to set the whole box, including the frame to the % specified dimension, we first determine that dimension % from the natural size of the text, |#3|. % calculated width. % \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@iframebox}{Unknown alignment warning}% +%<*2ekernel|latexrelease> \long\def\@iframebox[#1][#2]#3{% \leavevmode \@begin@tempboxa\hbox{#3}% \setlength\@tempdima{#1}% \setbox\@tempboxa\hb@xt@\@tempdima - {\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}% + {\kern\fboxsep + \expandafter\ifx\csname bm@#2\endcsname\relax + \bm@c + \@latex@warning{Unexpected alignment #2}% + \else + \csname bm@#2\endcsname + \fi + \kern\fboxsep}% \@frameb@x{\kern-\fboxrule}% \@end@tempboxa} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@iframebox}{Unknown alignment warning}% +%<latexrelease>\long\def\@iframebox[#1][#2]#3{% +%<latexrelease> \leavevmode +%<latexrelease> \@begin@tempboxa\hbox{#3}% +%<latexrelease> \setlength\@tempdima{#1}% +%<latexrelease> \setbox\@tempboxa\hb@xt@\@tempdima +%<latexrelease> {\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}% +%<latexrelease> \@frameb@x{\kern-\fboxrule}% +%<latexrelease> \@end@tempboxa} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -881,9 +931,17 @@ % \changes{v1.1g}{2006/05/18} % {Ensure \cs{@parboxto} holds the value of \cs{@tempdimb} not the % register itself (pr/3867)} +% \changes{v1.4e}{2023/10/26} +% {Guard against unknown alignment gh/1072} % The internal version of |\parbox|. % \begin{macrocode} \let\@parboxto\@empty +% \end{macrocode} +% \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@iiiparbox}{Unknown alignment warning}% +%<*2ekernel|latexrelease> \long\def\@iiiparbox#1#2[#3]#4#5{% \leavevmode \@pboxswfalse @@ -899,9 +957,38 @@ \else\@pboxswtrue $\vcenter \fi\fi\fi \@parboxto{\let\hss\vss\let\unhbox\unvbox - \csname bm@#3\endcsname}% + \expandafter\ifx\csname bm@#3\endcsname\relax + \bm@c + \@latex@warning{Unexpected alignment #3}% + \else + \csname bm@#3\endcsname + \fi}% \if@pboxsw \m@th$\fi \@end@tempboxa} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@iiiparbox}{Unknown alignment warning}% +%<latexrelease>\long\def\@iiiparbox#1#2[#3]#4#5{% +%<latexrelease> \leavevmode +%<latexrelease> \@pboxswfalse +%<latexrelease> \setlength\@tempdima{#4}% +%<latexrelease> \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% +%<latexrelease> \ifx\relax#2\else +%<latexrelease> \setlength\@tempdimb{#2}% +%<latexrelease> \edef\@parboxto{to\the\@tempdimb}% +%<latexrelease> \fi +%<latexrelease> \if#1b\vbox +%<latexrelease> \else\if #1t\vtop +%<latexrelease> \else\ifmmode\vcenter +%<latexrelease> \else\@pboxswtrue $\vcenter +%<latexrelease> \fi\fi\fi +%<latexrelease> \@parboxto{\let\hss\vss\let\unhbox\unvbox +%<latexrelease> \csname bm@#3\endcsname}% +%<latexrelease> \if@pboxsw \m@th$\fi +%<latexrelease> \@end@tempboxa} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx index 92e6de52cb6..4e5eba550b0 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltexpl.dtx} - [2022/02/28 v1.3f LaTeX Kernel (expl3-dependent code)] + [2023/10/13 v1.3g LaTeX Kernel (expl3-dependent code)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltexpl.dtx} @@ -516,4 +516,27 @@ %<latexrelease>\EndIncludeInRelease % \end{macrocode} % +% \DescribeMacro\IfExplAtLeastTF +% A pretty simple wrapper. +% +% \begin{macro}{\IfExplAtLeastTF} +% \changes{v1.3g}{2023/10/13}{Provide a test for \pkg{expl3} date (gh/1004)} +% \begin{macrocode} +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\IfExplAtLeastTF}{Test for expl3 date}% +\def\IfExplAtLeastTF{\@ifl@t@r\ExplLoaderFileDate} +% \end{macrocode} +% \end{macro} +% We make sure the command is always available. +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\IfExplAtLeastTF}{Test for expl3 date}% +%<latexrelease> +%<latexrelease>\def\IfExplAtLeastTF{\@ifl@t@r\ExplLoaderFileDate} +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% % \Finale diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx index 9e68b38654e..a0746bd08c0 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx @@ -35,7 +35,7 @@ % % \ProvidesFile{ltfssaxes.dtx} - [2021/03/18 v1.0i LaTeX Kernel (NFSS Axes handing)] + [2023/10/30 v1.0i LaTeX Kernel (NFSS Axes handing)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -1240,9 +1240,9 @@ % The next rule might be a bit surprising and rightly so. Correct % would be that \texttt{sc} is not affected by \texttt{up}, i.e., % remains \texttt{sc} as showed in the commented out rule. However, -% for nearly three decades commands such as \upshape{sc} or +% for nearly three decades commands such as \cs{sc} or % \cs{textup} changed small caps back to the ``normal'' shape. So -% for backward compatibility we keep hat behavior. +% for backward compatibility we keep that behavior. % % As a result you are currently typesetting in \texttt{scit} or % \texttt{scsl} using \cs{upshape} twice will return you to the diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx index fda3d1ca4b0..fa82bd73bb6 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} - [2023/04/01 v3.2l LaTeX Kernel (NFSS Basic Macros)] + [2023/10/21 v3.2l LaTeX Kernel (NFSS Basic Macros)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -279,7 +279,7 @@ % For this we compare the given value \verb=#3= with one where we % 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. +% \cs{reserved@b} so we use that and also issue a warning. % \changes{v3.2j}{2021/06/09}{Improve information message} % \begin{macrocode} \edef\reserved@a{#3}% diff --git a/Master/texmf-dist/source/latex-dev/base/lthooks.dtx b/Master/texmf-dist/source/latex-dev/base/lthooks.dtx index e43fa4ef351..20d48730c48 100644 --- a/Master/texmf-dist/source/latex-dev/base/lthooks.dtx +++ b/Master/texmf-dist/source/latex-dev/base/lthooks.dtx @@ -32,7 +32,7 @@ % % \begin{macrocode} \def\lthooksversion{v1.1f} -\def\lthooksdate{2023/08/11} +\def\lthooksdate{2023/10/02} % \end{macrocode} % %<*driver> @@ -795,7 +795,7 @@ % \end{itemize} % There can only be a single relation between two labels for a % given hook, -% i.e., a later \cs{DeclareHookrule} overwrites any previous +% i.e., a later \cs{DeclareHookRule} overwrites any previous % declaration. % % The \meta{hook} and \meta{label} can be specified using the @@ -1566,8 +1566,8 @@ % % Generic hooks defined in this way are always normal hooks (i.e., % you can't implement reversed hooks this way). This is a -% deliberate limitation, because it speeds up the processessing -% conciderably. +% deliberate limitation, because it speeds up the processing +% considerably. % % % \subsection{Hooks with arguments} diff --git a/Master/texmf-dist/source/latex-dev/base/ltplain.dtx b/Master/texmf-dist/source/latex-dev/base/ltplain.dtx index 89e5017300f..b41810373d0 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltplain.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltplain.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltplain.dtx} - [2023/04/15 v2.3i LaTeX Kernel (Plain TeX)] + [2023/10/21 v2.3i LaTeX Kernel (Plain TeX)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltplain.dtx} @@ -1281,7 +1281,7 @@ % \cs{par} with whatever definition \cs{par} has when it is % executed. It can, however, be % redefined (before calling \cs{obeylines}!) to achieve some -% special effects. If you want to alter is definition when already +% special effects. If you want to alter this definition when already % in the scope of \cs{obeylines}, it has no effect (because % \cs{let} is used above). % In that case simply make another call to \cs{obeylines} diff --git a/Master/texmf-dist/source/latex-dev/base/ltproperties.dtx b/Master/texmf-dist/source/latex-dev/base/ltproperties.dtx index 71b6e2a14fe..40c50cd20a2 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltproperties.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltproperties.dtx @@ -22,8 +22,8 @@ % % for those people who are interested. % \begin{macrocode} -\def\ltpropertiesversion{1.0b} -\def\ltpropertiesdate{2023-09-13} +\def\ltpropertiesversion{1.0c} +\def\ltpropertiesdate{2023-10-15} % \end{macrocode} %<*driver> @@ -177,7 +177,7 @@ % \begin{function} % { % \property_record:nN, -% \property_record:nn, \property_record:nV, \property_record:xx +% \property_record:nn, \property_record:nV, \property_record:ee % } % \begin{syntax} % \cs{property_record:nN} \Arg{label} \Arg{clist var} @@ -227,7 +227,7 @@ % or in some outer group! % \end{function} % -% \begin{function}{\property_ref_undefined_warn:n,\property_ref_undefined_warn:x} +% \begin{function}{\property_ref_undefined_warn:n,\property_ref_undefined_warn:e} % \begin{syntax} % \cs{property_ref_undefined_warn:n} \Arg{label} % \end{syntax} @@ -241,7 +241,7 @@ % \texttt{Reference~`\meta{label}'~on~page~\meta{page}\space undefined}. % \end{function} % -% \begin{function}{\property_ref_undefined_warn:nn,\property_ref_undefined_warn:xx} +% \begin{function}{\property_ref_undefined_warn:nn,\property_ref_undefined_warn:ee} % \begin{syntax} % \cs{property_ref_undefined_warn:nn} \Arg{label} \Arg{property} % \end{syntax} @@ -302,6 +302,8 @@ % \section{\LaTeXe{} interface} % % The LaTeXe{} interfaces always expand label and property arguments. +% This means that one must be careful when using active chars or commands in the +% names. UTF8-chars are protected and should be safe, similar most babel shorthands. % % \begin{function}{\NewProperty,\SetProperty} % \begin{syntax} @@ -397,7 +399,7 @@ % comparisions. % \end{variable} % -% \begin{variable}{currentlabel} +% \begin{variable}{label} % (now) The content of \cs{@currentlabel}. This is the value that % you get also with the standard \cs{label}/\cs{ref}. % \end{variable} @@ -410,10 +412,17 @@ % % \begin{variable}{target} % (now) The content of \cs{@currentHref}. -% This command is normally filled by for example by +% This command is normally filled by for example % \pkg{hyperref} and gives the name of the last destination it created. % \end{variable} % +% \begin{variable}{pagetarget} +% (shipout) The content of \cs{@currentHpage}. +% This command is filled for example by a recent version of +% \pkg{hyperref} and then gives the name of the last page +% destination it created. +% \end{variable} +% % \begin{variable}{counter} % (now) The content of \cs{@currentcounter}. % This command contains after a \cs{refstepcounter} the name of the counter. @@ -486,7 +495,7 @@ } \cs_new_protected:Npn \property_gset:nnnn #1#2#3#4 { - \@@_gset:xnnn { \tl_to_str:n {#1} } + \@@_gset:ennn { \tl_to_str:n {#1} } {#2} {#3} {#4} } \cs_new_protected:Npn \@@_gset:nnnn #1#2#3#4 @@ -504,21 +513,24 @@ } { \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} } } -\cs_generate_variant:Nn \@@_gset:nnnn {xnnn} +\cs_generate_variant:Nn \@@_gset:nnnn {ennn} % \end{macrocode} % \end{macro} % % \begin{macro}{\NewProperty,\SetProperty} % For consistency we expand the property name, but this doesn't warant a % variant of the L3-commands. +% \changes{v1.0c}{2023-09-20}{use \cs{protected@edef}} % \begin{macrocode} \cs_new_protected:Npn \NewProperty #1#2#3#4 { - \exp_args:Nx \property_new:nnnn {#1}{#2}{#3}{#4} + \protected@edef\reserved@a{#1} + \exp_args:No \property_new:nnnn {\reserved@a} {#2}{#3}{#4} } \cs_new_protected:Npn \SetProperty #1#2#3#4 { - \exp_args:Nx \property_gset:nnnn {#1}{#2}{#3}{#4} + \protected@edef\reserved@a{#1} + \exp_args:No \property_gset:nnnn {\reserved@a} {#2}{#3}{#4} } % \end{macrocode} % \end{macro} @@ -528,9 +540,10 @@ % { % \property_record:nn, % \property_record:nV, -% \property_record:xx, +% \property_record:ee, +% \property_record:oo, % \@@_record:nn, -% \@@_record:xn +% \@@_record:en % } % \begin{macro}[EXP] % {\@@_record_value:n, \@@_record_value_aux:n, \@@_record_value_aux:e} @@ -542,8 +555,8 @@ \cs_new_protected:Npn \property_record:nN #1#2 { \property_record:nV {#1} #2 } \cs_new_protected:Npn \property_record:nn #1#2 - { \@@_record:xn { \tl_to_str:n {#1} } {#2} } -\cs_generate_variant:Nn \property_record:nn { nV , xx } + { \@@_record:en { \tl_to_str:n {#1} } {#2} } +\cs_generate_variant:Nn \property_record:nn { nV , ee, oo } \cs_new_protected:Npn \@@_record:nn #1#2 { \legacy_if:nT { @filesw } @@ -556,7 +569,7 @@ } } } -\cs_generate_variant:Nn \@@_record:nn { x } +\cs_generate_variant:Nn \@@_record:nn { e } \cs_new:Npn \@@_record_value:n #1 { \@@_record_value_aux:e { \tl_to_str:n {#1} } } \cs_new:Npn \@@_record_value_aux:n #1 @@ -580,11 +593,14 @@ % \end{macro} % % \begin{macro}{\RecordProperties} +% \changes{v1.0c}{2023-09-20}{use \cs{protected@edef} for safer handling of active chars.} % % \begin{macrocode} \NewDocumentCommand\RecordProperties { m m } { \@bsphack - \property_record:xx {#1}{#2} + \protected@edef\reserved@a{#1} + \protected@edef\reserved@b{#2} + \property_record:oo {\reserved@a}{\reserved@b} \@esphack } % \end{macrocode} @@ -803,8 +819,8 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\property_ref_undefined_warn:nn, -% \property_ref_undefined_warn:xx, +% \begin{macro}{\property_ref_undefined_warn:nn, +% \property_ref_undefined_warn:ee, % \RefUndefinedWarn} % \begin{macrocode} \cs_new_protected:Npn \property_ref_undefined_warn:nn #1#2 %#1 label, #2 property @@ -823,8 +839,8 @@ \@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }% } } -\cs_generate_variant:Nn \property_ref_undefined_warn:nn {xx} -\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:xx +\cs_generate_variant:Nn \property_ref_undefined_warn:nn {ee} +\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:ee % \end{macrocode} % \end{macro} % @@ -849,9 +865,9 @@ % \end{macrocode} % \end{variable} % -% \begin{variable}{currentlabel} +% \begin{variable}{label} % \begin{macrocode} -\property_new:nnnn { currentlabel } { now } { ?? } { \@currentlabel } +\property_new:nnnn { label } { now } { ?? } { \@currentlabel } % \end{macrocode} % \end{variable} % @@ -868,6 +884,13 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{target} +% \begin{macrocode} +\newcommand\@currentHpage{} +\property_new:nnnn { pagetarget } { shipout } { } { \@currentHpage } +% \end{macrocode} +% \end{variable} + % \begin{variable}{counter} % \begin{macrocode} \property_new:nnnn { counter } { now } { } { \@currentcounter } diff --git a/Master/texmf-dist/source/latex-dev/base/ltspace.dtx b/Master/texmf-dist/source/latex-dev/base/ltspace.dtx index 66841cae384..03b34450474 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltspace.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltspace.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltspace.dtx} - [2023/06/14 v1.3q LaTeX Kernel (spacing)] + [2023/10/26 v1.3r LaTeX Kernel (spacing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltspace.dtx} @@ -742,7 +742,7 @@ % true (as |\@esphack| used to do previously). % This is currently used only for floats and similar environments. % \changes{v1.2s}{1996/08/02}{Remove \cs{global} before \cs{@ignore...}} -% \changes{v1.3d}{2015/01/11}{Allow hyphenation (Donald Arseneau pr/3498) (latexrelease)}w +% \changes{v1.3d}{2015/01/11}{Allow hyphenation (Donald Arseneau pr/3498) (latexrelease)} % \begin{macrocode} %</2ekernel> %<latexrelease>\IncludeInRelease{2015/01/01}% @@ -1195,6 +1195,7 @@ % % \begin{macro}{\nobreakspace} % \changes{v1.2k}{1995/12/04}{(Macro added} +% \changes{v1.3r}{2023/10/26}{Protected definition for tilde} % \begin{macro}{\@xobeysp} % \changes{v1.2t}{1996/09/28}{Moved from ltmiscen.dtx and redefined to % use \cs{nobreakspace }} @@ -1213,11 +1214,31 @@ % We need to keep \cs{@xobeysp} as it is widely used; so here it is % let to the non-robust command \cs{nobreakspace }. % +% The fragile version of |~| needs a brace group after \cs{nobreakspace} +% to prevent loss of spaces if it occurs in an expansion context. That's +% not an issue with the updated \cs{protected} definition, so we keep the +% code shorter and avoid that. % \begin{macrocode} \DeclareRobustCommand{\nobreakspace}{% \leavevmode\nobreak\ } \catcode `\~=13 -\def~{\nobreakspace{}} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\tilde}{Protected tilde}% +%<*2ekernel|latexrelease> +\protected\edef~{% + \noexpand\ifincsname\noexpand\expandafter\string~% + \noexpand\else + \noexpand\expandafter\noexpand\nobreakspace + \noexpand\fi +} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\tilde}{Protected tilde}% +%<latexrelease>\def~{\nobreakspace{}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> \expandafter\let\expandafter\@xobeysp\csname nobreakspace \endcsname % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx index 5b78c3bc5ed..e169dee020d 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> - {2023-11-01} + {2024-06-01} %</2ekernel|latexrelease> %<*2ekernel> -\def\patch@level{-1} +\def\patch@level{0} % \end{macrocode} % % \begin{macro}{\development@branch@name} |