diff options
author | Norbert Preining <norbert@preining.info> | 2022-10-28 03:01:22 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-10-28 03:01:22 +0000 |
commit | 577cb5a42c6f06b209011b90703e7809ea47d43f (patch) | |
tree | 7244eb3e1cbf04e31d65467fcf27e05fdfa4c2f9 /macros/latex/contrib/l3kernel | |
parent | 876d640726265ada7e067f22dda368dd49ed9ad1 (diff) |
CTAN sync 202210280301
Diffstat (limited to 'macros/latex/contrib/l3kernel')
87 files changed, 296 insertions, 164 deletions
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md index 33b9759edd..9ee6d0516b 100644 --- a/macros/latex/contrib/l3kernel/CHANGELOG.md +++ b/macros/latex/contrib/l3kernel/CHANGELOG.md @@ -7,6 +7,19 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2022-10-26] + +### Changed +- Usage of `\exp_not:n`/`\exp_not:N` in `\peek_analysis_map_inline:n` output + +### Fixed +- `\peek_analysis_map_inline:n` support for macro parameter characters (issue + [\#1109](https://github.com/latex3/latex3/issues/1109)), for many expandable + tokens (issue [\#1110](https://github.com/latex3/latex3/issues/1110)), and an + esoteric case (issue [\#1113](https://github.com/latex3/latex3/issues/1113)) +- Creation of a message with some engines (issue + [\#1139](https://github.com/latex3/latex3/issues/1139)) + ## [2022-09-28] ### Added @@ -1208,7 +1221,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/2022-09-28...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2022-10-26...HEAD +[2022-10-26]: https://github.com/latex3/latex3/compare/2022-09-28...2022-10-26 [2022-09-28]: https://github.com/latex3/latex3/compare/2022-08-30...2022-09-28 [2022-08-30]: https://github.com/latex3/latex3/compare/2022-08-23...2022-08-30 [2022-08-23]: https://github.com/latex3/latex3/compare/2022-08-05...2022-08-23 diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md index 3553676388..bb0a574831 100644 --- a/macros/latex/contrib/l3kernel/README.md +++ b/macros/latex/contrib/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2022-09-28 +Release 2022-10-26 Overview -------- diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx index b38c98239a..defefaa3e2 100644 --- a/macros/latex/contrib/l3kernel/expl3.dtx +++ b/macros/latex/contrib/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> %</driver|generic|package|2ekernel> -\def\ExplFileDate{2022-09-28}% +\def\ExplFileDate{2022-10-26}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf Binary files differindex df634990ec..38cd427a5f 100644 --- a/macros/latex/contrib/l3kernel/expl3.pdf +++ b/macros/latex/contrib/l3kernel/expl3.pdf diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf Binary files differindex 138489c04d..346b670e7f 100644 --- a/macros/latex/contrib/l3kernel/interface3.pdf +++ b/macros/latex/contrib/l3kernel/interface3.pdf diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex index 443c656a7b..54cc9a46cf 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 2022-09-28} +\date{Released 2022-10-26} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx index b971bdcc60..bf1b580d8f 100644 --- a/macros/latex/contrib/l3kernel/l3basics.dtx +++ b/macros/latex/contrib/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx index 2c7ee330b8..cc920a7ec9 100644 --- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx +++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -335,12 +335,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \protected\def\noexpand\ExplSyntaxOff{}% \catcode 9 = \the\catcode 9\relax \catcode 32 = \the\catcode 32\relax - \catcode 34 = \the\catcode 34\relax - \catcode 38 = \the\catcode 38\relax \catcode 58 = \the\catcode 58\relax - \catcode 94 = \the\catcode 94\relax \catcode 95 = \the\catcode 95\relax - \catcode 124 = \the\catcode 124\relax \catcode 126 = \the\catcode 126\relax \endlinechar = \the\endlinechar\relax \chardef\csname\detokenize{l_@@_expl_bool}\endcsname = 0\relax @@ -350,14 +346,10 @@ Type H <return> for immediate help}\def~{\errmessage{% % % The code environment is now set up. % \begin{macrocode} -\catcode 9 = 9\relax -\catcode 32 = 9\relax -\catcode 34 = 12\relax -\catcode 38 = 4\relax -\catcode 58 = 11\relax -\catcode 94 = 7\relax -\catcode 95 = 11\relax -\catcode 124 = 12\relax +\catcode 9 = 9\relax +\catcode 32 = 9\relax +\catcode 58 = 11\relax +\catcode 95 = 11\relax \catcode 126 = 10\relax \endlinechar = 32\relax % \end{macrocode} @@ -383,14 +375,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_set_protected:Npx \ExplSyntaxOff { - \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } - \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } - \char_set_catcode:nn { 34 } { \char_value_catcode:n { 34 } } - \char_set_catcode:nn { 38 } { \char_value_catcode:n { 38 } } - \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } } - \char_set_catcode:nn { 94 } { \char_value_catcode:n { 94 } } - \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } } - \char_set_catcode:nn { 124 } { \char_value_catcode:n { 124 } } + \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } + \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } + \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } } + \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } } \char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } } \tex_endlinechar:D = \tex_the:D \tex_endlinechar:D \scan_stop: @@ -398,14 +386,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_protected:Npn \ExplSyntaxOff { } } } - \char_set_catcode_ignore:n { 9 } % tab - \char_set_catcode_ignore:n { 32 } % space - \char_set_catcode_other:n { 34 } % double quote - \char_set_catcode_alignment:n { 38 } % ampersand - \char_set_catcode_letter:n { 58 } % colon - \char_set_catcode_math_superscript:n { 94 } % circumflex - \char_set_catcode_letter:n { 95 } % underscore - \char_set_catcode_other:n { 124 } % pipe + \char_set_catcode_ignore:n { 9 } % tab + \char_set_catcode_ignore:n { 32 } % space + \char_set_catcode_letter:n { 58 } % colon + \char_set_catcode_letter:n { 95 } % underscore \char_set_catcode_space:n { 126 } % tilde \tex_endlinechar:D = 32 \scan_stop: \bool_set_true:N \l_@@_expl_bool diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx index cc21049baf..0226abf4b1 100644 --- a/macros/latex/contrib/l3kernel/l3box.dtx +++ b/macros/latex/contrib/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx index 1bcbfc4ece..81afd86ad6 100644 --- a/macros/latex/contrib/l3kernel/l3candidates.dtx +++ b/macros/latex/contrib/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx index f7c26612b8..3c047ab7f0 100644 --- a/macros/latex/contrib/l3kernel/l3cctab.dtx +++ b/macros/latex/contrib/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx index 643e98223e..84c1a1a795 100644 --- a/macros/latex/contrib/l3kernel/l3clist.dtx +++ b/macros/latex/contrib/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx index 1552a03c34..cd22444a32 100644 --- a/macros/latex/contrib/l3kernel/l3coffins.dtx +++ b/macros/latex/contrib/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx index a40f5fd381..027737ea6f 100644 --- a/macros/latex/contrib/l3kernel/l3color.dtx +++ b/macros/latex/contrib/l3kernel/l3color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx index 767041cbb1..161e2d1483 100644 --- a/macros/latex/contrib/l3kernel/l3debug.dtx +++ b/macros/latex/contrib/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx index 02f353516f..c0f0feeffd 100644 --- a/macros/latex/contrib/l3kernel/l3deprecation.dtx +++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx index f3182d54fb..823423f013 100644 --- a/macros/latex/contrib/l3kernel/l3doc.dtx +++ b/macros/latex/contrib/l3kernel/l3doc.dtx @@ -85,7 +85,7 @@ and all files in that bundle must be distributed together. % require you to do updates, if the class changes.}} % % \author{\Team} -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % \maketitle % \tableofcontents % diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf Binary files differindex d2cfc22fed..87982a35fc 100644 --- a/macros/latex/contrib/l3kernel/l3doc.pdf +++ b/macros/latex/contrib/l3kernel/l3doc.pdf diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx index 4d918812bb..a73d717a89 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.dtx +++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf Binary files differindex 6c75d44a1a..276706f931 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.pdf +++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx index 6543b82274..163c4d97d6 100644 --- a/macros/latex/contrib/l3kernel/l3expan.dtx +++ b/macros/latex/contrib/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx index 5927ee425d..bf15b1f7bc 100644 --- a/macros/latex/contrib/l3kernel/l3file.dtx +++ b/macros/latex/contrib/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx index c22d20e881..5d34f19004 100644 --- a/macros/latex/contrib/l3kernel/l3flag.dtx +++ b/macros/latex/contrib/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx index 90ab28c215..943dbf96f9 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 2022-09-28} +% \date{Released 2022-10-26} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx index e5d18a8d85..744911e3d4 100644 --- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx index be408dda0a..dd3816c244 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx index 4ec2f5ec5e..1b11113672 100644 --- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx index 920993a13a..9340e74ce4 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx index fef1d48c59..611547c830 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx index abd24f7219..938aa9a075 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx index 75e61a6f2f..a8fd37a0c8 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx index 5f6ebaa316..cd42aa5c44 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx index cb76873a8a..ed1c40f45b 100644 --- a/macros/latex/contrib/l3kernel/l3fp-round.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx index 2845a9801f..757eb42005 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 2022-09-28} +% \date{Released 2022-10-26} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx index ce7c423ca8..59060899fd 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 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx index bce8ddb14b..10b8c6b102 100644 --- a/macros/latex/contrib/l3kernel/l3fp.dtx +++ b/macros/latex/contrib/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx index ee47549dac..b5cddb7f83 100644 --- a/macros/latex/contrib/l3kernel/l3fparray.dtx +++ b/macros/latex/contrib/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx index 359b0671b5..47fb9606da 100644 --- a/macros/latex/contrib/l3kernel/l3int.dtx +++ b/macros/latex/contrib/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx index ae476fb771..69abc52616 100644 --- a/macros/latex/contrib/l3kernel/l3intarray.dtx +++ b/macros/latex/contrib/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx index d7c0879fc2..4de59cf073 100644 --- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx +++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx index f7ed4e7fbd..d79fe7264a 100644 --- a/macros/latex/contrib/l3kernel/l3keys.dtx +++ b/macros/latex/contrib/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx index 8cf6620f80..66bc7274cf 100644 --- a/macros/latex/contrib/l3kernel/l3legacy.dtx +++ b/macros/latex/contrib/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx index 175fa42d86..7539ef2647 100644 --- a/macros/latex/contrib/l3kernel/l3luatex.dtx +++ b/macros/latex/contrib/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx index b369bb560d..7182ebb5e9 100644 --- a/macros/latex/contrib/l3kernel/l3msg.dtx +++ b/macros/latex/contrib/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -1761,6 +1761,12 @@ LaTeX~has~been~asked~to~replace~an~empty~pattern~by~'#1':~that~ would~lead~to~an~infinite~loop! } +\cs_if_exist:NF \tex_elapsedtime:D + { + \msg_new:nnnn { kernel } { no-elapsed-time } + { No~clock~detected~for~#1. } + { The~current~engine~provides~no~way~to~access~the~system~time. } + } \msg_new:nnnn { kernel } { non-base-function } { Function~'#1'~is~not~a~base~function } { diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx index f5ab42eade..dbda606578 100644 --- a/macros/latex/contrib/l3kernel/l3names.dtx +++ b/macros/latex/contrib/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf Binary files differindex 9bb99485aa..f66f0802d2 100644 --- a/macros/latex/contrib/l3kernel/l3news.pdf +++ b/macros/latex/contrib/l3kernel/l3news.pdf diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf Binary files differindex 4ee70dc6ee..aff17ed51c 100644 --- a/macros/latex/contrib/l3kernel/l3news01.pdf +++ b/macros/latex/contrib/l3kernel/l3news01.pdf diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf Binary files differindex 2a0fa6436a..de14d7cad8 100644 --- a/macros/latex/contrib/l3kernel/l3news02.pdf +++ b/macros/latex/contrib/l3kernel/l3news02.pdf diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf Binary files differindex 08404d7013..c13c9d8afe 100644 --- a/macros/latex/contrib/l3kernel/l3news03.pdf +++ b/macros/latex/contrib/l3kernel/l3news03.pdf diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf Binary files differindex 4b2ae23422..9ace65ebc9 100644 --- a/macros/latex/contrib/l3kernel/l3news04.pdf +++ b/macros/latex/contrib/l3kernel/l3news04.pdf diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf Binary files differindex e8fefe11ee..eaff40a1f7 100644 --- a/macros/latex/contrib/l3kernel/l3news05.pdf +++ b/macros/latex/contrib/l3kernel/l3news05.pdf diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf Binary files differindex c0c4a9506f..56df1d9052 100644 --- a/macros/latex/contrib/l3kernel/l3news06.pdf +++ b/macros/latex/contrib/l3kernel/l3news06.pdf diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf Binary files differindex 7dd8191920..0a0b2aaf96 100644 --- a/macros/latex/contrib/l3kernel/l3news07.pdf +++ b/macros/latex/contrib/l3kernel/l3news07.pdf diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf Binary files differindex 4181681985..202fa45077 100644 --- a/macros/latex/contrib/l3kernel/l3news08.pdf +++ b/macros/latex/contrib/l3kernel/l3news08.pdf diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf Binary files differindex 0f8e475609..fd3b1e0136 100644 --- a/macros/latex/contrib/l3kernel/l3news09.pdf +++ b/macros/latex/contrib/l3kernel/l3news09.pdf diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf Binary files differindex a04326f21e..b5a449ebef 100644 --- a/macros/latex/contrib/l3kernel/l3news10.pdf +++ b/macros/latex/contrib/l3kernel/l3news10.pdf diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf Binary files differindex 17e1d46497..b7cec21f17 100644 --- a/macros/latex/contrib/l3kernel/l3news11.pdf +++ b/macros/latex/contrib/l3kernel/l3news11.pdf diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf Binary files differindex 5ea38f32af..a3bac623b0 100644 --- a/macros/latex/contrib/l3kernel/l3news12.pdf +++ b/macros/latex/contrib/l3kernel/l3news12.pdf diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx index 091ece8b43..b6132f51f2 100644 --- a/macros/latex/contrib/l3kernel/l3pdf.dtx +++ b/macros/latex/contrib/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -508,6 +508,7 @@ { \cs_if_exist_p:N \stockwidth } { \cs_if_exist_p:N \IfDocumentMetadataTF } { \IfDocumentMetadataTF { \c_true_bool } { \c_false_bool } } + { \int_compare_p:nNn \tex_mag:D = { 1000 } } } { \bool_lazy_and:nnTF @@ -538,7 +539,7 @@ % % \subsection{Deprecated functions} % -% \begin{variable}{\g_@@_obejct_prop} +% \begin{variable}{\g_@@_object_prop} % For tracking objects. % \begin{macrocode} \prop_new:N \g_@@_object_prop diff --git a/macros/latex/contrib/l3kernel/l3prefixes.csv b/macros/latex/contrib/l3kernel/l3prefixes.csv index 9b4a1d638e..31d77835d4 100644 --- a/macros/latex/contrib/l3kernel/l3prefixes.csv +++ b/macros/latex/contrib/l3kernel/l3prefixes.csv @@ -183,6 +183,7 @@ pgf,pgf,The PGF/TikZ Team,https://pgf-tikz.github.io,https://github.com/pgf-tikz pgfmxfp,pgfmath-xfp,Jonathan P. Spratte,https://github.com/Skillmon/ltx_pgfmath-xfp,https://github.com/Skillmon/ltx_pgfmath-xfp,https://github.com/Skillmon/ltx_pgfmath-xfp/issues,2021-05-20,2021-05-20, phone,phonenumbers,Keno Wehr,https://ctan.org/pkg/phonenumbers,https://github.com/wehro/phonenumbers,https://github.com/wehro/phonenumbers/issues,2021-08-23,2021-08-23, pi,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12, +piton,piton,François Pantigny,,,,29/09/2022,29/09/2022, pkgploader,pkgploader,Michiel Helvensteijn,,,,2014-02-05,2014-02-05, platex,platex,Japanese TeX Development Community,https://github.com/texjporg/platex,https://github.com/texjporg/platex.git,https://github.com/texjporg/platex/issues,2020-09-30,2020-09-30, polyglossia,polyglossia,Arthur Reutenauer,https://www.polyglossia.org/,https://github.com/reutenauer/polyglossia,https://github.com/reutenauer/polyglossia/issues,2019-09-03,, diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf Binary files differindex 40c5daf8f9..112961635f 100644 --- a/macros/latex/contrib/l3kernel/l3prefixes.pdf +++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx index b1e789bba9..625cd9449f 100644 --- a/macros/latex/contrib/l3kernel/l3prg.dtx +++ b/macros/latex/contrib/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx index 6c97ea7ea7..3d4a5f65ac 100644 --- a/macros/latex/contrib/l3kernel/l3prop.dtx +++ b/macros/latex/contrib/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx index a2d23c521b..1b7574b411 100644 --- a/macros/latex/contrib/l3kernel/l3quark.dtx +++ b/macros/latex/contrib/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx index c1f668f21b..9d4e219293 100644 --- a/macros/latex/contrib/l3kernel/l3regex.dtx +++ b/macros/latex/contrib/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -198,7 +198,7 @@ % % \subsection{Characters classes} % -% Character types. +% Character properties. % \begin{l3regex-syntax} % \item[.] A single period matches any token. % \item[\\d] Any decimal digit. @@ -413,17 +413,19 @@ % value $1$. % \end{l3regex-syntax} % -% The option |(?i)| makes the match case insensitive (identifying -% \texttt{A}--\texttt{Z} with \texttt{a}--\texttt{z}; no Unicode support -% yet). This applies until the end of the group in which it appears, and +% The option |(?i)| makes the match case insensitive (treating +% \texttt{A}--\texttt{Z} and \texttt{a}--\texttt{z} as equivalent, with +% no support yet for Unicode case changing). This +% applies until the end of the group in which it appears, and % can be reverted using |(?-i)|. For instance, in % \verb"(?i)(a(?-i)b|c)d", the letters |a| and |d| are affected by the % |i| option. Characters within ranges and classes are affected -% individually: |(?i)[Y-\\]| is equivalent to |[YZ\[\\yz]|, and -% |(?i)[^aeiou]| matches any character which is not a vowel. Neither -% character properties, nor |\c{...}| nor |\u{...}| are affected by the -% |i| option. -% ^^A \] +% individually: |(?i)[\?-B]| is equivalent to |[\?@ABab]| +% (and differs from the much larger class |[\?-b]|), and +% |(?i)[^aeiou]| matches any character which is not a vowel. +% The |i|~option has no effect on |\c{...}|, on |\u{...}|, on character +% properties, or on character classes, for instance it has no effect at +% all in |(?i)\u{l_foo_tl}\d\d[[:lower:]]|. % % \section{Syntax of the replacement text} % diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx index d8d696d104..178034caba 100644 --- a/macros/latex/contrib/l3kernel/l3seq.dtx +++ b/macros/latex/contrib/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx index 08e5504b2f..2c52fd9ba9 100644 --- a/macros/latex/contrib/l3kernel/l3skip.dtx +++ b/macros/latex/contrib/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx index 75574e3251..dec31092cb 100644 --- a/macros/latex/contrib/l3kernel/l3sort.dtx +++ b/macros/latex/contrib/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx index f2d3793461..24b1300a53 100644 --- a/macros/latex/contrib/l3kernel/l3str-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx index ea62c4946d..85482a7d0b 100644 --- a/macros/latex/contrib/l3kernel/l3str.dtx +++ b/macros/latex/contrib/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf Binary files differindex 6a572e6ba7..c9fba1756f 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.pdf +++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex index bba7fc00b9..c59c54db03 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 2022-09-28} +\date{Released 2022-10-26} \begin{document} diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf Binary files differindex 3df33c43d9..f4b32d45c6 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex index ce7d578d7b..7fee61e9ec 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 2022-09-28} +\date{Released 2022-10-26} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx index 28e4f0b83c..1ee1bce8ff 100644 --- a/macros/latex/contrib/l3kernel/l3sys.dtx +++ b/macros/latex/contrib/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -927,9 +927,6 @@ end { \int_value:w \tex_elapsedtime:D } } { - \msg_new:nnnn { kernel } { no-elapsed-time } - { No~clock~detected~for~#1. } - { The~current~engine~provides~no~way~to~access~the~system~time. } \cs_new:Npn \sys_timer: { \int_value:w diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf Binary files differindex 26aadf38b0..39c69d8b43 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf +++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex index 8fcf1fd489..38f6f3e9ad 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 2022-09-28} +\date{Released 2022-10-26} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx index cad0ed2954..7e218e709b 100644 --- a/macros/latex/contrib/l3kernel/l3text-case.dtx +++ b/macros/latex/contrib/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-map.dtx b/macros/latex/contrib/l3kernel/l3text-map.dtx index 3373f7508c..f98ce2d3f3 100644 --- a/macros/latex/contrib/l3kernel/l3text-map.dtx +++ b/macros/latex/contrib/l3kernel/l3text-map.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx index 7caaeb0b5e..8ea14baa55 100644 --- a/macros/latex/contrib/l3kernel/l3text-purify.dtx +++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx index d4b841adfe..37a21b19a0 100644 --- a/macros/latex/contrib/l3kernel/l3text.dtx +++ b/macros/latex/contrib/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx index 612ab5e724..9679a13c5e 100644 --- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -169,6 +169,13 @@ % \cs{exp_not:n} \Arg{character} \cs{s_@@} \meta{hex catcode} % \meta{char code} \cs{s_@@}. % \end{itemize} +% In contrast, for \cs{peek_analysis_map_inline:n} we must allow for an +% input stream containing \tn{outer} macros, so that wrapping all +% control sequences in \cs{exp_not:n} is unsafe. Instead, we write the +% more elaborate \cs{__kernel_exp_not:w} \cs{exp_after:wN} |{| +% \cs{exp_not:N} |\cs| |}|. (On the other hand we make a better effort +% by avoiding \cs{exp_not:n} for characters other than active and macro +% parameters.) % % ^^A todo: ask LuaTeX list for an \ifx\undefined <active char> % ^^A which does not add the <active char> in memory. @@ -219,9 +226,10 @@ % A token list containing the character number~$32$ (space) with all % possible category codes except $1$ and $2$ (begin-group and % end-group). Why $32$? Because some \LuaTeX{} versions only allow -% creation of catcode~$10$ (space) tokens with this character code, -% and because even in other engines it is much easier to produce since -% \cs{char_generate:nn} refuses to produce spaces. +% creation of catcode~$10$ (space) tokens with this character code, so +% that we decided to make \cs{char_generate:nn} refuse to create such +% weird spaces as well. We do not include the macro parameter case +% (catcode~$6$) because it cannot be used as a macro delimiter. % \begin{macrocode} \group_begin: \char_set_active_eq:NN \ \scan_stop: @@ -229,7 +237,6 @@ { \char_generate:nn { 32 } { 3 } 3 \char_generate:nn { 32 } { 4 } 4 - # \char_generate:nn { 32 } { 6 } 6 \char_generate:nn { 32 } { 7 } 7 \char_generate:nn { 32 } { 8 } 8 \c_space_tl \token_to_str:N A @@ -809,7 +816,8 @@ \scan_stop: \exp_after:wN \use_none:n \token_to_str:N #3 \prg_do_nothing: \scan_stop: - \exp_after:wN \@@_analysis_b_char:Nww + \exp_after:wN \@@_analysis_b_char:Nn + \exp_after:wN \@@_analysis_b_char_aux:nww \else: \exp_after:wN \@@_analysis_b_cs:Nww \fi: @@ -819,35 +827,43 @@ % \end{macro} % \end{macro} % -% \begin{macro}[EXP]{\@@_analysis_b_char:Nww} +% \begin{macro}[EXP]{\@@_analysis_b_char:Nn, \@@_analysis_b_char_aux:nww} +% This function is called here with arguments +% \cs{@@_analysis_b_char_aux:nww} and a normal character, while in the +% peek analysis code it is called with \cs{use_none:n} and possibly a +% space character, which is why the function has signature |Nn|. % If the normal token we grab is a character, leave % \meta{catcode} \meta{charcode} followed by \cs{s_@@} % in the input stream, and call \cs{@@_analysis_b_normals:ww} % with its first argument decremented. % \begin{macrocode} -\cs_new:Npx \@@_analysis_b_char:Nww #1 +\cs_new:Npx \@@_analysis_b_char:Nn #1#2 { - \exp_not:N \if_meaning:w #1 \exp_not:N \tex_undefined:D + \exp_not:N \if_meaning:w #2 \exp_not:N \tex_undefined:D \token_to_str:N D \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_catcode_other_token + \exp_not:N \if_catcode:w #2 \c_catcode_other_token \token_to_str:N C \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_catcode_letter_token + \exp_not:N \if_catcode:w #2 \c_catcode_letter_token \token_to_str:N B \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_math_toggle_token 3 + \exp_not:N \if_catcode:w #2 \c_math_toggle_token 3 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_alignment_token 4 + \exp_not:N \if_catcode:w #2 \c_alignment_token 4 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_math_superscript_token 7 + \exp_not:N \if_catcode:w #2 \c_math_superscript_token 7 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_math_subscript_token 8 + \exp_not:N \if_catcode:w #2 \c_math_subscript_token 8 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_space_token + \exp_not:N \if_catcode:w #2 \c_space_token \token_to_str:N A \exp_not:N \else: 6 \exp_not:n { \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: } - \exp_not:N \int_value:w `#1 \s_@@ - \exp_not:N \exp_after:wN \exp_not:N \@@_analysis_b_normals:ww - \exp_not:N \int_value:w \exp_not:N \int_eval:w - 1 + + #1 {#2} + } +\cs_new:Npn \@@_analysis_b_char_aux:nww #1 + { + \int_value:w `#1 \s_@@ + \exp_after:wN \@@_analysis_b_normals:ww + \int_value:w \int_eval:w - 1 + } % \end{macrocode} % \end{macro} @@ -1170,10 +1186,12 @@ % { % \peek_analysis_map_inline:n, % \@@_peek_analysis_loop:NNn, \@@_peek_analysis_test:, -% \@@_peek_analysis_normal:N, \@@_peek_analysis_cs:, -% \@@_peek_analysis_char:N, \@@_peek_analysis_char:nN, +% \@@_peek_analysis_exp:N, \@@_peek_analysis_exp_active:N, +% \@@_peek_analysis_nonexp:N, \@@_peek_analysis_cs:N, +% \@@_peek_analysis_char:N, \@@_peek_analysis_char:w, % \@@_peek_analysis_special:, \@@_peek_analysis_retest:, -% \@@_peek_analysis_next:, \@@_peek_analysis_str:, +% \@@_peek_analysis_next:, \@@_peek_analysis_nextii:, +% \@@_peek_analysis_str:, % \@@_peek_analysis_str:w, \@@_peek_analysis_str:n, % \@@_peek_analysis_active_str:n, \@@_peek_analysis_explicit:n, % \@@_peek_analysis_escape:, \@@_peek_analysis_collect:w, @@ -1184,7 +1202,8 @@ % nested maps. We may wish to pass to this function an \tn{outer} % control sequence or active character; for this we will undefine % potentially-\tn{outer} tokens within a group, closed after the -% function receives its arguments. This user's code function also +% function reads its arguments (for an \tn{outer} active character +% there is no good alternative). This user's code function also % calls the loop auxiliary, and includes the trailing % \cs{prg_break_point:Nn} for when the user wants to stop the loop. % The loop auxiliary must remove that break point because it must look @@ -1209,7 +1228,8 @@ % \end{macrocode} % The loop starts a group (closed by the user-code function defined % above) with a normalized escape character, and checks if the next -% token is special or \texttt{N}-type. +% token is special or \texttt{N}-type (distinguishing expandable from +% non-expandable tokens). % \begin{macrocode} \cs_new_protected:Npn \@@_peek_analysis_loop:NNn #1#2#3 { @@ -1224,60 +1244,159 @@ } \cs_new_protected:Npn \@@_peek_analysis_test: { - \if_int_odd:w - \if_catcode:w \exp_not:N \l_peek_token { \c_zero_int \fi: - \if_catcode:w \exp_not:N \l_peek_token } \c_zero_int \fi: - \if_meaning:w \l_peek_token \c_space_token \c_zero_int \fi: - \c_one_int + \if_case:w + \if_catcode:w \exp_not:N \l_peek_token { \c_max_int \fi: + \if_catcode:w \exp_not:N \l_peek_token } \c_max_int \fi: + \if_meaning:w \l_peek_token \c_space_token \c_max_int \fi: + \exp_after:wN \if_meaning:w \exp_not:N \l_peek_token \l_peek_token + \c_one_int + \fi: + \c_zero_int \exp_after:wN \exp_after:wN - \exp_after:wN \@@_peek_analysis_normal:N + \exp_after:wN \@@_peek_analysis_exp:N \exp_after:wN \exp_not:N + \or: + \exp_after:wN \@@_peek_analysis_nonexp:N \else: \exp_after:wN \@@_peek_analysis_special: \fi: } % \end{macrocode} -% Normal tokens are not too hard, but can be \tn{outer}, hence the -% \cs{exp_not:N} in the code above. If the token is expandable then -% it might be an \tn{outer} or a \TeX{} conditional, so to be safe we -% set it to \cs{scan_stop:} (the assignment is local and stopped by -% the \cs{group_end:} upon calling the user's code). Then distinguish -% characters (including active ones and macro parameter characters) -% from control sequences (whose string representation is more than one -% character because the escape character is printable). For a control -% sequence call the user code with suitable arguments. +% Expandable tokens (which are automatically |N|-type) can be +% \tn{outer} macros, hence the need for \cs{exp_after:wN} and +% \cs{exp_not:N} in the code above, which allows the next function to +% safely grab the token as an argument. We run some code that is +% expanded using the primitive \cs{cs_set_nopar:Npx} rather than +% \cs{tl_set:Nx} to avoid grabbing it as an argument as |#1| may be +% \tn{outer}. To allow~|#1| as an argument of the user's function +% (stored in \cs{l_@@_peek_code_tl}), we set it equal to +% \cs{scan_stop:}, but we do it at the last minute because |#1| +% may be some pretty important function such as \cs{exp_after:wN}. +% Then we put the user's function and the elaborate first argument +% \cs{__kernel_exp_not:w} \cs{exp_after:wN} |{| \cs{exp_not:N} |#1| |}|: +% indeed we cannot use \cs{exp_not:n} |{#1}| as this breaks for an +% \tn{outer} macro and we cannot use \cs{exp_not:N} |#1|, as +% \texttt{o}-expanding this yields a \enquote{notexpanded} token equal +% to (a weird) \tn{relax}, which would have the wrong value for +% primitive \TeX{} conditionals such as \cs{if_meaning:w}. +% +% Then we must add |{-1}0| if the token is a +% control sequence and \Arg{charcode}|D| otherwise. Distinguishing +% the two cases is easy: since we have made the escape character +% printable, \cs{token_to_str:N} gives at least two characters for a +% control sequence versus a single one for an active character +% (possibly being a space). Producing the right outcome is trickier, +% as |#1| cannot appear in either branch of the conditional (it could +% be \tn{outer}, or simply a \TeX{} conditional), and can only be +% safely discarded by \cs{use_none:n} if it is first hit with +% \cs{exp_not:N}. % \begin{macrocode} -\cs_new_protected:Npn \@@_peek_analysis_normal:N #1 +\cs_new_protected:Npn \@@_peek_analysis_exp:N #1 + { + \cs_set_nopar:Npx \l_@@_peek_code_tl + { + \tex_let:D \exp_not:N #1 \scan_stop: + \exp_not:o \l_@@_peek_code_tl + { + \exp_not:n { \__kernel_exp_not:w \exp_after:wN } + { \exp_not:N \exp_not:N \exp_not:N #1 } + } + \if:w \scan_stop: + \exp_after:wN \use_none:n \token_to_str:N #1 \prg_do_nothing: + \scan_stop: + \exp_after:wN \exp_after:wN + \exp_after:wN \@@_peek_analysis_exp_active:N + \else: + { -1 } 0 + \exp_after:wN \exp_after:wN + \exp_after:wN \use_none:n + \fi: + \exp_not:N #1 + } + \l_@@_peek_code_tl + } +\cs_new:Npx \@@_peek_analysis_exp_active:N #1 + { { \exp_not:N \int_value:w `#1 } \token_to_str:N D } +% \end{macrocode} +% For normal non-expandable tokens we must distinguish characters +% (including active ones and macro parameter characters) from control +% sequences (whose string representation is more than one character +% because we made the escape character printable). For a control +% sequence call the user code with suitable arguments, wrapping |#1| +% within \cs{exp_not:n} just in case it happens to be equal to a macro +% parameter character. We do not skip \cs{exp_not:n} when +% unnecessary, because there might be situations where the argument +% could be used by the user after further redefinitions of the token, +% and it seems more convenient to know that \cs{exp_not:n} is always +% used. +% \begin{macrocode} +\cs_new_protected:Npn \@@_peek_analysis_nonexp:N #1 { - \exp_after:wN \reverse_if:N \exp_after:wN \if_meaning:w - \exp_not:N #1 #1 - \tex_let:D #1 \scan_stop: - \tl_put_right:Nn \l_@@_peek_code_tl { { \exp_not:N #1 } } - \else: - \tl_put_right:Nn \l_@@_peek_code_tl { { \exp_not:n {#1} } } - \fi: \if_charcode:w \scan_stop: \exp_after:wN \use_none:n \token_to_str:N #1 \prg_do_nothing: \scan_stop: \exp_after:wN \@@_peek_analysis_char:N - \exp_after:wN #1 \else: - \exp_after:wN \@@_peek_analysis_cs: + \exp_after:wN \@@_peek_analysis_cs:N \fi: + #1 } -\cs_new_protected:Npn \@@_peek_analysis_cs: - { \l_@@_peek_code_tl { -1 } 0 } -\cs_new_protected:Npn \@@_peek_analysis_char:N #1 +\cs_new_protected:Npn \@@_peek_analysis_cs:N #1 + { \l_@@_peek_code_tl { \exp_not:n {#1} } { -1 } 0 } +% \end{macrocode} +% For normal characters we must determine their catcode. The main +% difficulty is that the character may be an active character +% masquerading as (i.e., set equal to) itself with a different +% catcode. Two approaches based on \tn{lowercase} can detect this. +% One could make an active character with the same catcode as~|#1| and +% change its definition before testing the catcode of~|#1|, but in +% some Unicode engine this fills up the hash table uselessly. +% Instead, we lowercase~|#1| itself, changing its character code +% to~$32$, namely space (because \LuaTeX{} cannot turn catcode~$10$ +% characters to anything else than character code~$32$), then we apply +% \cs{@@_analysis_b_char:Nn}, which detects active characters by +% comparing them to \cs{tex_undefined:D}, and we must have undefined +% the active space for this test to work ---we use an |x|-expanding +% assignment to get the active space in the right place. Finally +% \cs{@@_peek_analysis_char:w} puts the arguments in the correct +% order, including \cs{exp_not:n} for macro parameter characters and +% active characters (the latter could be macro parameter characters, +% and it seems more uniform to always put \cs{exp_not:n}). +% \begin{macrocode} +\group_begin: +\char_set_active_eq:NN \ \scan_stop: +\cs_new_protected:Npx \@@_peek_analysis_char:N #1 { - \char_set_lccode:nn { `#1 } { 32 } - \tex_lowercase:D { \@@_peek_analysis_char:nN {#1} } #1 + \cs_set_eq:NN + \char_generate:nn { 32 } { 13 } + \exp_not:N \tex_undefined:D + \tex_lccode:D `#1 = 32 \exp_stop_f: + \tex_lowercase:D + { + \tl_put_right:Nx \exp_not:N \l_@@_peek_code_tl + { \exp_not:n { \@@_analysis_b_char:Nn \use_none:n } {#1} } + } + \exp_not:n + { + \exp_after:wN \@@_peek_analysis_char:w + \int_value:w + } + `#1 + \exp_not:n { \exp_after:wN \s_@@ \l_@@_peek_code_tl } + #1 } -\cs_new_protected:Npn \@@_peek_analysis_char:nN #1#2 +\group_end: +\cs_new_protected:Npn \@@_peek_analysis_char:w #1 \s_@@ #2#3#4 { - \cs_set_protected:Npn \@@_tmp:w ##1 #1 ##2 ##3 \scan_stop: - { \exp_args:No \l_@@_peek_code_tl { \int_value:w `#2 } ##2 } - \exp_after:wN \@@_tmp:w \c_@@_peek_catcodes_tl \scan_stop: + \if_charcode:w 6 #3 + \else: + \if_charcode:w D #3 + \else: + \exp_args:NNNo + \fi: + \fi: + #2 { \exp_not:n {#4} } {#1} #3 } % \end{macrocode} % For special characters the idea is to eventually act with @@ -1319,6 +1438,8 @@ % active character with the same character code as its meaning or as % the escape character). Now look at the \meta{next token} following % it using a combination of \tn{afterassignment} and \tn{futurelet}. +% (In fact look twice to reset an internal \TeX{} flag in case the +% \meta{next token} had been hit with \cs{exp_not:N}.) % The syntax of this primitive is \tn{futurelet} \meta{peek token} % \meta{first token} \meta{next token}, and it sets \meta{peek token} % equal to \meta{next token}. Traditionally, one takes \meta{first @@ -1335,6 +1456,11 @@ { \tl_if_empty:oT { \tex_the:D \tex_everyeof:D } { \tex_everyeof:D { \scan_stop: } } + \tex_afterassignment:D \@@_peek_analysis_nextii: + \tex_futurelet:D \l_@@_analysis_next_token + } +\cs_new_protected:Npn \@@_peek_analysis_nextii: + { \tex_afterassignment:D \@@_peek_analysis_str: \tex_futurelet:D \l_@@_analysis_next_token } diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx index bf9708a153..9b26c3f165 100644 --- a/macros/latex/contrib/l3kernel/l3tl.dtx +++ b/macros/latex/contrib/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx index 0312bf9874..10869db922 100644 --- a/macros/latex/contrib/l3kernel/l3token.dtx +++ b/macros/latex/contrib/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % @@ -960,7 +960,8 @@ % (as appropriate to the result of the test). % \end{function} % -% \begin{function}[added = 2020-12-03]{\peek_analysis_map_inline:n} +% \begin{function}[added = 2020-12-03, updated = 2022-10-03] +% {\peek_analysis_map_inline:n} % \begin{syntax} % \cs{peek_analysis_map_inline:n} \Arg{inline function} % \end{syntax} diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx index 069301057d..b46688c843 100644 --- a/macros/latex/contrib/l3kernel/l3unicode.dtx +++ b/macros/latex/contrib/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-09-28} +% \date{Released 2022-10-26} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf Binary files differindex 2baa614c2a..e23e5a6fc3 100644 --- a/macros/latex/contrib/l3kernel/source3.pdf +++ b/macros/latex/contrib/l3kernel/source3.pdf diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex index 51e9ca106d..04d819c2ae 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 2022-09-28} +\date{Released 2022-10-26} \pagenumbering{roman} \maketitle |