From bcdf6c829c6761de02484473ebe43fa3760adcaa Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 12 May 2021 03:01:15 +0000 Subject: CTAN sync 202105120301 --- macros/latex/contrib/l3kernel/CHANGELOG.md | 17 ++++- macros/latex/contrib/l3kernel/README.md | 2 +- macros/latex/contrib/l3kernel/expl3.dtx | 8 ++- macros/latex/contrib/l3kernel/expl3.pdf | Bin 623531 -> 623415 bytes macros/latex/contrib/l3kernel/interface3.pdf | Bin 1704394 -> 1707327 bytes macros/latex/contrib/l3kernel/interface3.tex | 2 +- macros/latex/contrib/l3kernel/l3basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3bootstrap.dtx | 2 +- macros/latex/contrib/l3kernel/l3box.dtx | 2 +- macros/latex/contrib/l3kernel/l3candidates.dtx | 2 +- macros/latex/contrib/l3kernel/l3cctab.dtx | 41 +++++++++++- macros/latex/contrib/l3kernel/l3clist.dtx | 74 ++++++++++++++++++++- macros/latex/contrib/l3kernel/l3coffins.dtx | 2 +- macros/latex/contrib/l3kernel/l3color.dtx | 6 +- macros/latex/contrib/l3kernel/l3debug.dtx | 2 +- macros/latex/contrib/l3kernel/l3deprecation.dtx | 2 +- macros/latex/contrib/l3kernel/l3doc.dtx | 2 +- macros/latex/contrib/l3kernel/l3docstrip.dtx | 2 +- macros/latex/contrib/l3kernel/l3docstrip.pdf | Bin 151853 -> 151697 bytes macros/latex/contrib/l3kernel/l3expan.dtx | 2 +- macros/latex/contrib/l3kernel/l3file.dtx | 2 +- macros/latex/contrib/l3kernel/l3flag.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-assign.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-aux.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-expo.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-extended.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-logic.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-parse.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-random.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-round.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-traps.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-trig.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp.dtx | 2 +- macros/latex/contrib/l3kernel/l3fparray.dtx | 2 +- macros/latex/contrib/l3kernel/l3int.dtx | 2 +- macros/latex/contrib/l3kernel/l3intarray.dtx | 2 +- .../latex/contrib/l3kernel/l3kernel-functions.dtx | 2 +- macros/latex/contrib/l3kernel/l3keys.dtx | 20 ++++-- macros/latex/contrib/l3kernel/l3legacy.dtx | 2 +- macros/latex/contrib/l3kernel/l3luatex.dtx | 2 +- macros/latex/contrib/l3kernel/l3msg.dtx | 72 ++++++++++---------- macros/latex/contrib/l3kernel/l3names.dtx | 2 +- macros/latex/contrib/l3kernel/l3news.pdf | Bin 395934 -> 395934 bytes macros/latex/contrib/l3kernel/l3news01.pdf | Bin 122713 -> 122713 bytes macros/latex/contrib/l3kernel/l3news02.pdf | Bin 150672 -> 150672 bytes macros/latex/contrib/l3kernel/l3news03.pdf | Bin 148707 -> 148707 bytes macros/latex/contrib/l3kernel/l3news04.pdf | Bin 114588 -> 114588 bytes macros/latex/contrib/l3kernel/l3news05.pdf | Bin 112485 -> 112485 bytes macros/latex/contrib/l3kernel/l3news06.pdf | Bin 151572 -> 151572 bytes macros/latex/contrib/l3kernel/l3news07.pdf | Bin 128312 -> 128312 bytes macros/latex/contrib/l3kernel/l3news08.pdf | Bin 163405 -> 163405 bytes macros/latex/contrib/l3kernel/l3news09.pdf | Bin 250134 -> 250134 bytes macros/latex/contrib/l3kernel/l3news10.pdf | Bin 150289 -> 150289 bytes macros/latex/contrib/l3kernel/l3news11.pdf | Bin 170069 -> 170069 bytes macros/latex/contrib/l3kernel/l3news12.pdf | Bin 204992 -> 204992 bytes macros/latex/contrib/l3kernel/l3pdf.dtx | 2 +- macros/latex/contrib/l3kernel/l3prefixes.pdf | Bin 79776 -> 79776 bytes macros/latex/contrib/l3kernel/l3prg.dtx | 15 +++-- macros/latex/contrib/l3kernel/l3prop.dtx | 2 +- macros/latex/contrib/l3kernel/l3quark.dtx | 2 +- macros/latex/contrib/l3kernel/l3regex.dtx | 34 ++++++---- macros/latex/contrib/l3kernel/l3seq.dtx | 2 +- macros/latex/contrib/l3kernel/l3skip.dtx | 2 +- macros/latex/contrib/l3kernel/l3sort.dtx | 2 +- macros/latex/contrib/l3kernel/l3str-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3str.dtx | 2 +- macros/latex/contrib/l3kernel/l3styleguide.pdf | Bin 296251 -> 296129 bytes macros/latex/contrib/l3kernel/l3styleguide.tex | 2 +- macros/latex/contrib/l3kernel/l3syntax-changes.pdf | Bin 242931 -> 242807 bytes macros/latex/contrib/l3kernel/l3syntax-changes.tex | 2 +- macros/latex/contrib/l3kernel/l3sys.dtx | 2 +- macros/latex/contrib/l3kernel/l3term-glossary.pdf | Bin 231313 -> 231193 bytes macros/latex/contrib/l3kernel/l3term-glossary.tex | 2 +- macros/latex/contrib/l3kernel/l3text-case.dtx | 2 +- macros/latex/contrib/l3kernel/l3text-purify.dtx | 2 +- macros/latex/contrib/l3kernel/l3text.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl-analysis.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl.dtx | 2 +- macros/latex/contrib/l3kernel/l3token.dtx | 11 ++- macros/latex/contrib/l3kernel/l3unicode.dtx | 2 +- macros/latex/contrib/l3kernel/source3.pdf | Bin 6766562 -> 6780088 bytes macros/latex/contrib/l3kernel/source3.tex | 2 +- 84 files changed, 283 insertions(+), 121 deletions(-) (limited to 'macros/latex/contrib/l3kernel') diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md index 447668b7bf..1813e73d11 100644 --- a/macros/latex/contrib/l3kernel/CHANGELOG.md +++ b/macros/latex/contrib/l3kernel/CHANGELOG.md @@ -7,6 +7,20 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2021-05-11] + +### Added +- `\cctab_item:Nn` (issue #880) +- `\clist_use:nnnn` and `\clist_use:nn` (issue #561) + +### Fixed +- Loading of backend in generic DVI mode (issue #905) +- Make `\keyval_parse:nnn` alignment-safe (issue #896) +- Control sequences and category codes in regex replacements (issue #909) + +### Changed +- Speed up \group_align_safe_begin: (pull #906) + ## [2021-05-07] ### Added @@ -883,7 +897,8 @@ this project uses date-based 'snapshot' version identifiers. - Step functions have been added for dim variables, e.g. `\dim_step_inline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-07...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-11...HEAD +[2021-05-11]: https://github.com/latex3/latex3/compare/2021-05-07...2021-05-11 [2021-05-07]: https://github.com/latex3/latex3/compare/2021-02-18...2021-05-07 [2021-02-18]: https://github.com/latex3/latex3/compare/2021-02-06...2021-02-18 [2021-02-06]: https://github.com/latex3/latex3/compare/2021-02-02...2021-02-06 diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md index 5acfbb5d3b..3127e246c5 100644 --- a/macros/latex/contrib/l3kernel/README.md +++ b/macros/latex/contrib/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2021-05-07 +Release 2021-05-11 Overview -------- diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx index a2f5c86cbe..16632dbd99 100644 --- a/macros/latex/contrib/l3kernel/expl3.dtx +++ b/macros/latex/contrib/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> % -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1756,11 +1756,15 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\g__kernel_backend_header_bool} % Load the dynamic code and standard back-end. % \begin{macrocode} \sys_everyjob: +\bool_new:N \g__kernel_backend_header_bool +\bool_gset_true:N \g__kernel_backend_header_bool \sys_load_backend:n { } % \end{macrocode} +% \end{macro} % % For the generic loader, a few final steps to take. Turn of \cs{expl3} % syntax and tidy up the small number of temporary changes. diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf index 7e9a3d01ba..7872487af2 100644 Binary files a/macros/latex/contrib/l3kernel/expl3.pdf and b/macros/latex/contrib/l3kernel/expl3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf index e73bc3462c..4ab31e9042 100644 Binary files a/macros/latex/contrib/l3kernel/interface3.pdf and b/macros/latex/contrib/l3kernel/interface3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex index 0108f11ddd..c41b45bf4e 100644 --- a/macros/latex/contrib/l3kernel/interface3.tex +++ b/macros/latex/contrib/l3kernel/interface3.tex @@ -54,7 +54,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx index 83c8f2b20f..47c746ee43 100644 --- a/macros/latex/contrib/l3kernel/l3basics.dtx +++ b/macros/latex/contrib/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx index 2897f94237..40047fe446 100644 --- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx +++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx index d83fdb914e..1eb6848d85 100644 --- a/macros/latex/contrib/l3kernel/l3box.dtx +++ b/macros/latex/contrib/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx index b03b3831c5..84fd99a2b0 100644 --- a/macros/latex/contrib/l3kernel/l3candidates.dtx +++ b/macros/latex/contrib/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx index a84852f73b..9a0bc54933 100644 --- a/macros/latex/contrib/l3kernel/l3cctab.dtx +++ b/macros/latex/contrib/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -110,7 +110,7 @@ % matching \cs{cctab_begin:N}. % \end{function} % -% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N} +% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N, \cctab_select:c} % \begin{syntax} % \cs{cctab_select:N} \meta{category code table} % \end{syntax} @@ -120,6 +120,15 @@ % and \cs{cctab_gset:Nn}. % \end{function} % +% \begin{function}[EXP, added = 2021-05-10]{\cctab_item:Nn, \cctab_item:cn} +% \begin{syntax} +% \cs{cctab_item:Nn} \meta{category code table} \Arg{integer expression} +% \end{syntax} +% Determines the \meta{character} with character code given by the +% \meta{integer expression} and expands to its category code specified +% by the \meta{category code table}. +% \end{function} +% % \section{Category code table conditionals} % % \begin{function}[pTF]{\cctab_if_exist:N, \cctab_if_exist:c} @@ -660,6 +669,34 @@ } % \end{macrocode} % +% +% \begin{macro}{\cctab_item:Nn, \cctab_item:cn} +% Evaluate the integer argument only once. In most engines the +% |cctab| variable only has $256$ entries so we only look up the +% catcode for these entries, otherwise we use the current catcode. In +% particular, for out-of-range values we use whatever fall-back +% \cs{char_value_catcode:n}. In \LuaTeX{}, we use the +% |tex.getcatcode| function. +% \begin{macrocode} +\cs_new:Npn \cctab_item:Nn #1#2 + { \exp_args:Nf \@@_item:nN { \int_eval:n {#2} } #1 } +\sys_if_engine_luatex:TF + { + \cs_new:Npn \@@_item:nN #1#2 + { \lua_now:e { tex.print(-2, tex.getcatcode(\int_use:N #2, #1)) } } + } + { + \cs_new:Npn \@@_item:nN #1#2 + { + \int_compare:nNnTF {#1} < { 256 } + { \intarray_item:Nn #2 { #1 + 1 } } + { \char_value_catcode:n {#1} } + } + } +\cs_generate_variant:Nn \cctab_item:Nn { c } +% \end{macrocode} +% \end{macro} +% % \subsection{Category code table conditionals} % % \begin{macro}{\cctab_if_exist:N,\cctab_if_exist:c} diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx index 3db9365a1f..f61fedb483 100644 --- a/macros/latex/contrib/l3kernel/l3clist.dtx +++ b/macros/latex/contrib/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -591,6 +591,20 @@ % \end{texnote} % \end{function} % +% \begin{function}[EXP, added = 2021-05-10]{\clist_use:nnnn, \clist_use:nn} +% \begin{syntax} +% \cs{clist_use:nnnn} \meta{comma~list} \Arg{separator~between~two} \Arg{separator~between~more~than~two} \Arg{separator~between~final~two} +% \cs{clist_use:nn} \meta{comma~list} \Arg{separator} +% \end{syntax} +% Places the contents of the \meta{comma~list} in the input stream, +% with the appropriate \meta{separator} between the items. As for +% \cs{clist_set:Nn}, blank items are omitted, spaces are removed from +% both sides of each item, then a set of braces is removed if the +% resulting space-trimmed item is braced. The \meta{separators} are +% then inserted in the same way as for \cs{clist_use:Nnnn} and +% \cs{clist_use:Nn}, respectively. +% \end{function} +% % \section{Comma lists as stacks} % % Comma lists can be used as stacks, where data is pushed to and popped @@ -805,11 +819,13 @@ % \end{variable} % % \begin{macro}[EXP]{ +% \@@_use_none_delimit_by_s_mark:w, % \@@_use_none_delimit_by_s_stop:w, % \@@_use_i_delimit_by_s_stop:nw % } % Functions to gobble up to a scan mark. % \begin{macrocode} +\cs_new:Npn \@@_use_none_delimit_by_s_mark:w #1 \s_@@_mark { } \cs_new:Npn \@@_use_none_delimit_by_s_stop:w #1 \s_@@_stop { } \cs_new:Npn \@@_use_i_delimit_by_s_stop:nw #1 #2 \s_@@_stop {#1} % \end{macrocode} @@ -1941,6 +1957,62 @@ % \end{macro} % \end{macro} % +% \begin{macro} +% { +% \clist_use:nnnn, \clist_use:nn, \@@_use:Nw, +% \@@_use_one:w, \@@_use_end:w, \@@_use_more:w +% } +% Items are grabbed by \cs{@@_use:Nw}, which detects blank items with +% a \cs{tl_if_empty:oTF} test (in which case it recurses). Non-blank +% items are either the end of the list, in which case the argument +% |#1| of \cs{@@_use:Nw} is used to properly end the list, or are +% normal items, which must be trimmed and properly unbraced. As we +% find successive items, the long list of \cs{@@_use:Nw} calls gets +% shortened and we end up calling \cs{@@_use_more:w} once we have +% found $3$ items. This auxiliary leaves the first-found item and the +% general separator, and calls \cs{@@_use:Nw} to find more items. +% A subtlety is that we use \cs{@@_use_end:w} both in the case of a +% two-item list and for the last two items of a general list: to get +% the correct separator, \cs{@@_use_more:w} replaces the +% separator-of-two by the last-separator when called, namely as soon +% as we have found three items. +% \begin{macrocode} +\cs_new:Npn \clist_use:nnnn #1#2#3#4 + { + \@@_use:Nw \@@_use_none_delimit_by_s_stop:w + \@@_use:Nw \@@_use_one:w + \@@_use:Nw \@@_use_end:w + \@@_use_more:w ; + {#2} {#3} {#4} ; + \prg_do_nothing: #1 , \s_@@_mark , + \s_@@_stop + } +\cs_new:Npn \@@_use:Nw #1#2 ; #3 ; #4 , + { + \tl_if_empty:oTF { \use_none:nn #4 ? } + { \@@_use:Nw #1#2 ; } + { + \@@_use_none_delimit_by_s_mark:w #4 #1 \s_@@_mark + \tl_trim_spaces_apply:oN {#4} \@@_use_ii_i:nn + \@@_map_unbrace:wn , { #2 ; } + } + #3 ; \prg_do_nothing: + } +\cs_new:Npn \@@_use_one:w \s_@@_mark #1 , #2#3#4 \s_@@_stop + { \exp_not:n {#3} } +\cs_new:Npn \@@_use_end:w + \s_@@_mark #1 , #2#3#4#5#6 \s_@@_stop + { \exp_not:n { #4 #5 #3 } } +\cs_new:Npn \@@_use_more:w ; #1#2#3#4#5#6 ; + { + \exp_not:n { #3 #5 } + \@@_use:Nw \@@_use_end:w \@@_use_more:w ; + {#1} {#2} {#6} {#5} {#6} ; + } +\cs_new:Npn \clist_use:nn #1#2 { \clist_use:nnnn {#1} {#2} {#2} {#2} } +% \end{macrocode} +% \end{macro} +% % \subsection{Using a single item} % % \begin{macro}{\clist_item:Nn, \clist_item:cn} diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx index 1291f40128..e0cdd606b3 100644 --- a/macros/latex/contrib/l3kernel/l3coffins.dtx +++ b/macros/latex/contrib/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx index 1b59215b8a..9b72bdc466 100644 --- a/macros/latex/contrib/l3kernel/l3color.dtx +++ b/macros/latex/contrib/l3kernel/l3color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -158,8 +158,8 @@ % red!50!cyan % \end{verbatim} % will result in a color specification using the |rgb| model, made up of -% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. As color -% model interconversion is not exact. +% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. +% This may be important as color model interconversion is not exact. % % The one exception to the above is where the first model in an expression is % |gray|. In this case, the order of mixing is \enquote{swapped} internally, so diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx index 56b74c3a34..b7eb9d0215 100644 --- a/macros/latex/contrib/l3kernel/l3debug.dtx +++ b/macros/latex/contrib/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx index 29e0f37051..42e7283436 100644 --- a/macros/latex/contrib/l3kernel/l3deprecation.dtx +++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx index 9e079c7f43..aa9fce6c58 100644 --- a/macros/latex/contrib/l3kernel/l3doc.dtx +++ b/macros/latex/contrib/l3kernel/l3doc.dtx @@ -79,7 +79,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % \tableofcontents % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx index 6555eb4c3b..fa01fb954e 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.dtx +++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf index 2c252c5ca9..8d05bf60a8 100644 Binary files a/macros/latex/contrib/l3kernel/l3docstrip.pdf and b/macros/latex/contrib/l3kernel/l3docstrip.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx index 1c6b1bd01d..163e867881 100644 --- a/macros/latex/contrib/l3kernel/l3expan.dtx +++ b/macros/latex/contrib/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx index eb025e0b16..a89f6540c6 100644 --- a/macros/latex/contrib/l3kernel/l3file.dtx +++ b/macros/latex/contrib/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx index ee3458bb46..1b8dfa7c7a 100644 --- a/macros/latex/contrib/l3kernel/l3flag.dtx +++ b/macros/latex/contrib/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx index d4f03e55f2..59eb0b65df 100644 --- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx index 172735f54d..1811a17475 100644 --- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx index 9ded69aa6f..0a5662979d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx index 97d449608f..097da442af 100644 --- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx index 1ae1a4faf8..0be0e3f605 100644 --- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx index ebb2852223..44ae9a5d7d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx index 75823bbb95..165d955d7b 100644 --- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx index c43da846b6..dcfa86e227 100644 --- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx index a8c2f8403b..7b854343ed 100644 --- a/macros/latex/contrib/l3kernel/l3fp-random.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx index e61833552b..5012e48e9b 100644 --- a/macros/latex/contrib/l3kernel/l3fp-round.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx index faba0ea08a..c4dbfa4d15 100644 --- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx index 7ca054e7d2..669642d2e8 100644 --- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx index e56560e88d..27ee89c073 100644 --- a/macros/latex/contrib/l3kernel/l3fp.dtx +++ b/macros/latex/contrib/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx index 7a110305cb..a66073e073 100644 --- a/macros/latex/contrib/l3kernel/l3fparray.dtx +++ b/macros/latex/contrib/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx index 54f36dbab5..5994a193c6 100644 --- a/macros/latex/contrib/l3kernel/l3int.dtx +++ b/macros/latex/contrib/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx index d0be26dc67..f67e937989 100644 --- a/macros/latex/contrib/l3kernel/l3intarray.dtx +++ b/macros/latex/contrib/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx index c5586a9a0d..428774aa93 100644 --- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx +++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx index cf04ec82d2..8f5f984c79 100644 --- a/macros/latex/contrib/l3kernel/l3keys.dtx +++ b/macros/latex/contrib/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -891,7 +891,7 @@ % \end{verbatim} % are treated identically. % -% \begin{function}[rEXP, added=2020-12-19]{\keyval_parse:nnn} +% \begin{function}[rEXP, added=2020-12-19, updated = 2021-05-10]{\keyval_parse:nnn} % \begin{syntax} % \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list} % \end{syntax} @@ -929,7 +929,7 @@ % \end{texnote} % \end{function} % -% \begin{function}[rEXP,updated = 2020-12-19]{\keyval_parse:NNn} +% \begin{function}[rEXP, updated = 2021-05-10]{\keyval_parse:NNn} % \begin{syntax} % \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list} % \end{syntax} @@ -1017,7 +1017,10 @@ % argument. % \begin{macrocode} \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 - { \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 } + { + \group_align_safe_begin: + \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 + } \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn % \end{macrocode} % \end{macro} @@ -1255,7 +1258,7 @@ \cs_new:Npn \@@_end_loop_active:w \s_@@_tail \@@_loop_other:nnw ##1 \s_@@_mark \s_@@_tail , \s_@@_tail , - { } + { \group_align_safe_end: } % \end{macrocode} % \end{macro} % @@ -1280,14 +1283,18 @@ { \@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop + \group_align_safe_end: \exp_not:n { #4 { #2 } { #1 } } + \group_align_safe_begin: \@@_loop_other:nnw {#3} {#4} } \cs_new:Npn \@@_key:nn #1 #2 { \@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop + \group_align_safe_end: \exp_not:n { #2 { #1 } } + \group_align_safe_begin: \@@_loop_other:nnw {#2} } % \end{macrocode} @@ -1311,7 +1318,8 @@ % \begin{macrocode} \cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \@@_trim:nN #1 \@@_key:nn { \@@_loop_other:nnw } -\cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1 +\cs_new:Npn \@@_blank_key_error:w + \s_@@_mark \s_@@_stop \group_align_safe_end: \exp_not:n #1 { \__kernel_msg_expandable_error:nn { keyval } { blank-key-name } diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx index a843e28ffe..05b98fed56 100644 --- a/macros/latex/contrib/l3kernel/l3legacy.dtx +++ b/macros/latex/contrib/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx index 7e4f729ca5..35c8df065d 100644 --- a/macros/latex/contrib/l3kernel/l3luatex.dtx +++ b/macros/latex/contrib/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx index b408c181b2..ed2169b94f 100644 --- a/macros/latex/contrib/l3kernel/l3msg.dtx +++ b/macros/latex/contrib/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -125,6 +125,40 @@ % defined. % \end{function} % +% \section{Customizable information for message modules} +% +% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n} +% \begin{syntax} +% \cs{msg_module_name:n} \Arg{module} +% \end{syntax} +% Expands to the public name of the \meta{module} as defined by +% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module} +% unchanged). +% \end{function} +% +% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n} +% \begin{syntax} +% \cs{msg_module_type:n} \Arg{module} +% \end{syntax} +% Expands to the description which applies to the \meta{module}, +% for example a |Package| or |Class|. The information here is defined +% in \cs{g_msg_module_type_prop}, and will default to |Package| if an +% entry is not present. +% \end{function} +% +% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop} +% Provides a mapping between the module name used for messages, and that +% for documentation. For example, \LaTeX{}3 core messages are stored in +% the reserved |LaTeX| tree, but are printed as |LaTeX3|. +% \end{variable} +% +% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop} +% Provides a mapping between the module name used for messages, and that +% type of module. For example, for \LaTeX{}3 core messages, an empty entry +% is set here meaning that they are not described using the standard +% |Package| text. +% \end{variable} +% % \section{Contextual information for messages} % % \begin{function}[rEXP]{\msg_line_context:} @@ -215,25 +249,6 @@ % |Package| is the standard outcome: see \cs{msg_module_type:n}. % \end{function} % -% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n} -% \begin{syntax} -% \cs{msg_module_name:n} \Arg{module} -% \end{syntax} -% Expands to the public name of the \meta{module} as defined by -% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module} -% unchanged). -% \end{function} -% -% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n} -% \begin{syntax} -% \cs{msg_module_type:n} \Arg{module} -% \end{syntax} -% Expands to the description which applies to the \meta{module}, -% for example a |Package| or |Class|. The information here is defined -% in \cs{g_msg_module_type_prop}, and will default to |Package| if an -% entry is not present. -% \end{function} -% % \begin{function}[EXP,updated = 2018-09-30]{\msg_see_documentation_text:n} % \begin{syntax} % \cs{msg_see_documentation_text:n} \Arg{module} @@ -246,23 +261,10 @@ % \end{quote} % This function can be redefined to alter the language in which the % message is given, using |#1| as the name of the \meta{module} to -% be included. The name of the \meta{module} may be altered by use of -% \cs{g_msg_module_documentation_prop} +% be included. The name of the \meta{module} is produced using +% \cs{msg_module_name:n}. % \end{function} % -% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop} -% Provides a mapping between the module name used for messages, and that -% for documentation. For example, \LaTeX{}3 core messages are stored in -% the reserved |LaTeX| tree, but are printed as |LaTeX3|. -% \end{variable} -% -% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop} -% Provides a mapping between the module name used for messages, and that -% type of module. For example, for \LaTeX{}3 core messages, an empty entry -% is set here meaning that they are not described using the standard -% |Package| text. -% \end{variable} -% % \section{Issuing messages} % % Messages behave differently depending on the message class. In all cases, diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx index 9a548a5391..44239f2348 100644 --- a/macros/latex/contrib/l3kernel/l3names.dtx +++ b/macros/latex/contrib/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf index 2971e2c1ef..187147d56c 100644 Binary files a/macros/latex/contrib/l3kernel/l3news.pdf and b/macros/latex/contrib/l3kernel/l3news.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf index 9d5e2fe3e6..58d8d08397 100644 Binary files a/macros/latex/contrib/l3kernel/l3news01.pdf and b/macros/latex/contrib/l3kernel/l3news01.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf index 0b8f621fc2..382e0212ad 100644 Binary files a/macros/latex/contrib/l3kernel/l3news02.pdf and b/macros/latex/contrib/l3kernel/l3news02.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf index e90998a0bf..46912dfb9f 100644 Binary files a/macros/latex/contrib/l3kernel/l3news03.pdf and b/macros/latex/contrib/l3kernel/l3news03.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf index 5c8945b925..a41de356e1 100644 Binary files a/macros/latex/contrib/l3kernel/l3news04.pdf and b/macros/latex/contrib/l3kernel/l3news04.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf index 31af650bda..11357e96ce 100644 Binary files a/macros/latex/contrib/l3kernel/l3news05.pdf and b/macros/latex/contrib/l3kernel/l3news05.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf index 2d22191459..4ec096a2d6 100644 Binary files a/macros/latex/contrib/l3kernel/l3news06.pdf and b/macros/latex/contrib/l3kernel/l3news06.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf index 632e781463..d13185fb0f 100644 Binary files a/macros/latex/contrib/l3kernel/l3news07.pdf and b/macros/latex/contrib/l3kernel/l3news07.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf index d308888b50..4ae5d0c89b 100644 Binary files a/macros/latex/contrib/l3kernel/l3news08.pdf and b/macros/latex/contrib/l3kernel/l3news08.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf index 5f45b57bcf..65b65444fc 100644 Binary files a/macros/latex/contrib/l3kernel/l3news09.pdf and b/macros/latex/contrib/l3kernel/l3news09.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf index c2f0363c44..3817070064 100644 Binary files a/macros/latex/contrib/l3kernel/l3news10.pdf and b/macros/latex/contrib/l3kernel/l3news10.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf index aeefd9ab82..27d0e8042d 100644 Binary files a/macros/latex/contrib/l3kernel/l3news11.pdf and b/macros/latex/contrib/l3kernel/l3news11.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf index 78d84d6f13..5a9e0fe8f8 100644 Binary files a/macros/latex/contrib/l3kernel/l3news12.pdf and b/macros/latex/contrib/l3kernel/l3news12.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx index 747f46aa9f..71a0f85469 100644 --- a/macros/latex/contrib/l3kernel/l3pdf.dtx +++ b/macros/latex/contrib/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf index a21877e64c..345295840d 100644 Binary files a/macros/latex/contrib/l3kernel/l3prefixes.pdf and b/macros/latex/contrib/l3kernel/l3prefixes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx index 972e417998..eedb4f271a 100644 --- a/macros/latex/contrib/l3kernel/l3prg.dtx +++ b/macros/latex/contrib/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1620,7 +1620,7 @@ % \TeX{}'s alignment structures present many problems. As Knuth says % himself in \emph{\TeX : The Program}: \enquote{It's sort of a miracle % whenever \tn{halign} or \tn{valign} work, [\ldots]} One problem relates -% to commands that internally issues a \tn{cr} but also peek ahead for +% to commands that internally issue a \tn{cr} but also peek ahead for % the next character for use in, say, an optional argument. If the % next token happens to be a |&| with category code~4 we get some % sort of weird error message because the underlying @@ -1631,14 +1631,21 @@ % special group so that \TeX{} still thinks it's on safe ground but at % the same time we don't want to introduce any brace group that may % find its way to the output. The following functions help with this -% by using code documented only in Appendix~D of +% by using behaviour documented only in Appendix~D of % \emph{The \TeX{}book}\dots +% In short evaluating |`{| and |`}| as numbers will not change the counter +% \TeX{} uses to keep track of its state in an alignment, whereas gobbling a +% brace using \cs{if_false:} will affect \TeX's state without producing any +% real group. % We place the \cs{if_false:} |{| \cs{fi:} part at that place so % that the successive expansions of \cs{group_align_safe_begin/end:} % are always brace balanced. % \begin{macrocode} +\group_begin: +\tex_catcode:D `\^^@ = 2 \exp_stop_f: \cs_new:Npn \group_align_safe_begin: - { \if_int_compare:w \if_false: { \fi: `} = \c_zero_int \fi: } + { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: } +\group_end: \cs_new:Npn \group_align_safe_end: { \if_int_compare:w `{ = \c_zero_int } \fi: } % \end{macrocode} diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx index 38acc36a4c..371f894c42 100644 --- a/macros/latex/contrib/l3kernel/l3prop.dtx +++ b/macros/latex/contrib/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx index 8106e1746e..10ccfa7483 100644 --- a/macros/latex/contrib/l3kernel/l3quark.dtx +++ b/macros/latex/contrib/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx index 0824cbcb97..4962ca6fa2 100644 --- a/macros/latex/contrib/l3kernel/l3regex.dtx +++ b/macros/latex/contrib/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -270,11 +270,15 @@ % \item[\{$n,m$\}] At least $n$, no more than $m$, greedy. % \item[\{$n,m$\}?] At least $n$, no more than $m$, lazy. % \end{l3regex-syntax} +% For greedy quantifiers the regex code will first investigate matches +% that involve as many repetitions as possible, while for lazy +% quantifiers it investigates matches with as few repetitions as +% possible first. % % Alternation and capturing groups. % \begin{l3regex-syntax} % \item[A\char`|B\char`|C] Either one of \texttt{A}, \texttt{B}, -% or \texttt{C}. +% or \texttt{C}, investigating \texttt{A} first. % \item[(\ldots{})] Capturing group. % \item[(?:\ldots{})] Non-capturing group. % \item[(?\char`|\ldots{})] Non-capturing group which resets @@ -5652,17 +5656,21 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_replacement_normal:n #1 { - \tl_if_empty:NTF \l_@@_replacement_category_tl - { \@@_replacement_normal_aux:N #1 } - { % ( - \token_if_eq_charcode:NNTF #1 ) - { - \seq_pop:NN \l_@@_replacement_category_seq - \l_@@_replacement_category_tl - } - { - \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w } - ? #1 + \int_compare:nNnTF { \l_@@_replacement_csnames_int } > 0 + { \exp_args:No \@@_replacement_put:n { \token_to_str:N #1 } } + { + \tl_if_empty:NTF \l_@@_replacement_category_tl + { \@@_replacement_normal_aux:N #1 } + { % ( + \token_if_eq_charcode:NNTF #1 ) + { + \seq_pop:NN \l_@@_replacement_category_seq + \l_@@_replacement_category_tl + } + { + \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w } + ? #1 + } } } } diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx index 7b6cc0c857..18e954d9e1 100644 --- a/macros/latex/contrib/l3kernel/l3seq.dtx +++ b/macros/latex/contrib/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx index 67c71a890b..fa2b011f99 100644 --- a/macros/latex/contrib/l3kernel/l3skip.dtx +++ b/macros/latex/contrib/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx index 58e65d59b1..46ed7ca906 100644 --- a/macros/latex/contrib/l3kernel/l3sort.dtx +++ b/macros/latex/contrib/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx index 23fbf0421b..c9ce040eee 100644 --- a/macros/latex/contrib/l3kernel/l3str-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx index 10d4fa865e..aecd6d3c0d 100644 --- a/macros/latex/contrib/l3kernel/l3str.dtx +++ b/macros/latex/contrib/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf index 82ed3e5bf5..de7203d202 100644 Binary files a/macros/latex/contrib/l3kernel/l3styleguide.pdf and b/macros/latex/contrib/l3kernel/l3styleguide.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex index 00e041f294..375691e3a2 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.tex +++ b/macros/latex/contrib/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \begin{document} diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf index 6e0445de7d..397508a83c 100644 Binary files a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf and b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex index d4282431b8..834a27a6e1 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx index 57f3361c51..6399f57f31 100644 --- a/macros/latex/contrib/l3kernel/l3sys.dtx +++ b/macros/latex/contrib/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf index 9bd43ef0f0..667db28a6c 100644 Binary files a/macros/latex/contrib/l3kernel/l3term-glossary.pdf and b/macros/latex/contrib/l3kernel/l3term-glossary.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex index 7ea79a155f..253dc77e19 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.tex +++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx index 6f6bef57ec..3fb6816d12 100644 --- a/macros/latex/contrib/l3kernel/l3text-case.dtx +++ b/macros/latex/contrib/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx index 18cc1db064..54fa33d04e 100644 --- a/macros/latex/contrib/l3kernel/l3text-purify.dtx +++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx index aee505c0c5..58e87ba0e3 100644 --- a/macros/latex/contrib/l3kernel/l3text.dtx +++ b/macros/latex/contrib/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx index f2f10d1664..05f32c25fe 100644 --- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx index 30a9612af1..fb2a14b6f0 100644 --- a/macros/latex/contrib/l3kernel/l3tl.dtx +++ b/macros/latex/contrib/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx index 3db1f706c8..ce65d87061 100644 --- a/macros/latex/contrib/l3kernel/l3token.dtx +++ b/macros/latex/contrib/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1080,6 +1080,15 @@ % \cs{peek_regex:nTF} as control sequences, while functions that % inspect individual tokens (for instance \cs{peek_charcode:NTF}) % only take into account their meaning. +% +% The \cs{peek_regex:nTF} function only inspects as few tokens as +% necessary to determine whether the regular expression matches. +% For instance \cs{peek_regex:nTF} \verb"{ abc | [a-z] }" |{ } { }| +% |abc| will only inspect the first token~|a| even though the first +% branch |abc| of the alternative is preferred in functions such as +% \cs{peek_regex_remove_once:n}. This may have an effect on +% tokenization if the input stream has not yet been tokenized and +% category codes are changed. % \end{texnote} % \end{function} % diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx index 6165c802ae..0d2a3bedbc 100644 --- a/macros/latex/contrib/l3kernel/l3unicode.dtx +++ b/macros/latex/contrib/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf index e6503168dc..b962910210 100644 Binary files a/macros/latex/contrib/l3kernel/source3.pdf and b/macros/latex/contrib/l3kernel/source3.pdf differ diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex index 95e707b01f..05de34a9e4 100644 --- a/macros/latex/contrib/l3kernel/source3.tex +++ b/macros/latex/contrib/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \pagenumbering{roman} \maketitle -- cgit v1.2.3