diff options
author | Karl Berry <karl@freefriends.org> | 2020-06-18 21:08:59 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-06-18 21:08:59 +0000 |
commit | 700211024849d94938004ff91e0a3928b1578e98 (patch) | |
tree | a577e99bdf389f5e3a443561cb0162e4a13cd8ad /Master | |
parent | 0e574a322aeab7e91f801eec35e961965f597e7a (diff) |
l3 (18jun20)
git-svn-id: svn://tug.org/texlive/trunk@55586 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
149 files changed, 993 insertions, 1106 deletions
diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md index 4a6efebd0ae..cbd624e0249 100644 --- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md @@ -6,6 +6,13 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-06-18] + +### Changed +- Use `scn` operator for separations +- Internal color model +- Internal performance enhancements + ## [2020-06-03] ### Fixed @@ -76,7 +83,8 @@ this project uses date-based 'snapshot' version identifiers. - Include `l3backend` in file names - Moved backend code to internal for each 'parent' module -[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-03...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-18...HEAD +[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-05...2020-06-03 [2020-05-05]: https://github.com/latex3/latex3/compare/2020-03-12...2020-05-05 [2020-03-12]: https://github.com/latex3/latex3/compare/2020-02-23...2020-03-12 diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md index f03026a6b9d..ca54b35b762 100644 --- a/Master/texmf-dist/doc/latex/l3backend/README.md +++ b/Master/texmf-dist/doc/latex/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2020-06-03 +Release 2020-06-18 This package forms parts of `expl3`, and contains the code used to interface with backends (drivers) across the `expl3` codebase. The functions here are diff --git a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md index 8cf1b5f051c..51a104cc702 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md @@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-06-18] + +### Changed +- Internal color model +- Internal performance enhancements + ## [2020-06-03] ### Added @@ -133,7 +139,8 @@ this project uses date-based 'snapshot' version identifiers. - New `l3color` module using `xcolor`-like expression syntax - New `l3draw` module, based on `pgf` layer of the TikZ system -[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-03...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-18...HEAD +[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-18...2020-06-03 [2020-05-18]: https://github.com/latex3/latex3/compare/2020-01-12...2020-05-18 [2020-01-12]: https://github.com/latex3/latex3/compare/2019-10-11...2020-01-12 diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md index 8685228cdd6..0a3e72316ac 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/README.md +++ b/Master/texmf-dist/doc/latex/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2020-06-03 +Release 2020-06-18 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf Binary files differindex 72a9adab9ba..6bfd2b5bec2 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3cctab/l3cctab.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3cctab/l3cctab.pdf Binary files differindex e9dee318078..bd691d11c23 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3cctab/l3cctab.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3cctab/l3cctab.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf Binary files differindex e0b2ff021e5..26f43e0e1fa 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf Binary files differindex 47c0c200a81..33c81c0e605 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf Binary files differindex dd2d618601e..a6cc55f4a1f 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf Binary files differindex 527b5d58a37..976b88a4187 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf Binary files differindex 582ddc3f736..82a5328fd33 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf Binary files differindex 3c59c400f01..aa887d20cca 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf Binary files differindex 916298e8827..df3c4c985af 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf Binary files differindex 6f82415408a..7a311ee7017 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf Binary files differindex 3a812733374..d7a782681c8 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf Binary files differindex e8ab5d76466..2070aa9727a 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf Binary files differindex f73c94d31a9..dfd42005709 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md index fce45da350b..d487068859f 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md @@ -7,6 +7,17 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-06-18] + +### Changed +- Use `scn` operator for separations +- Internal color model +- Internal performance enhancements +- Moved `\msg_expandable_error:nn(nnnn)` to stable. +- Moved `\seq_indexed_map_inline:Nn` and `\seq_indexed_map_function:Nn` + to stable as `\seq_map_indexed_inline:Nn` and `\seq_map_indexed_function:Nn`. +- Internal changes to `expl3` to allow loading earlier in LaTeX2e. + ## [2020-06-03] ### Added @@ -693,7 +704,8 @@ this project uses date-based 'snapshot' version identifiers. - Step funcÂtions have been added for dim variÂables, e.g. `\dim_step_inÂline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-03...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-18...HEAD +[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-15...2020-06-03 [2020-05-15]: https://github.com/latex3/latex3/compare/2020-05-14...2020-05-15 [2020-05-14]: https://github.com/latex3/latex3/compare/2020-05-11...2020-05-14 diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md index 0ccf0dd7b76..8ff01699d7e 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/README.md +++ b/Master/texmf-dist/doc/latex/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2020-06-03 +Release 2020-06-18 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf Binary files differindex 1fa7547ef70..18721992ab5 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf Binary files differindex f4469c52230..8f3d8ec7874 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex index 82a9ce9aa61..2c600d46964 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex @@ -54,7 +54,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2020-06-03} +\date{Released 2020-06-18} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf Binary files differindex f9e4794c1cc..52aaff704f1 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf Binary files differindex 68891b4cb4c..b5ccaa4abda 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf Binary files differindex 05d8f5b4510..9df1d2e3572 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf Binary files differindex 4971e668a7e..986447ba43f 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf Binary files differindex 92c47924974..b574f29d399 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf Binary files differindex abfb4d4e063..bd289867158 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf Binary files differindex 414e9c5ea21..98f1049a042 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf Binary files differindex 86ca1299d26..09db9922509 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf Binary files differindex 7ad6cfd9885..7c1d2e11a66 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf Binary files differindex c9fd5acb044..fde17f43055 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf Binary files differindex e5b0088c549..b088958a78f 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf Binary files differindex 76eee99422f..bc0ccc14ecf 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf Binary files differindex efa6befc92b..6a3bc0787df 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf Binary files differindex 2e6b0bec703..573feb45f8b 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt index 3ca1989e72e..b7a97f48b0d 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt +++ b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt @@ -73,6 +73,8 @@ Function Expires end \str_lower_case:n 2022 \str_upper_case:f 2022 \str_upper_case:n 2022 +\seq_indexed_map_inline:Nn 2023 +\seq_indexed_map_function:NN 2023 \tl_gset_from_file:cnn 2020 \tl_gset_from_file:Nnn 2020 \tl_gset_from_file_x:cnn 2020 diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf Binary files differindex 16b24d95d79..fe9b65c217c 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf Binary files differindex 3fbedfb1717..73d3f8840b0 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex index e4f0d040d8e..915534ed114 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-06-03} +\date{Released 2020-06-18} \begin{document} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf Binary files differindex f47d9fbf9eb..15c831eb553 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex index 4b9951bed19..4e280f75d2b 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex +++ b/Master/texmf-dist/doc/latex/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 2020-06-03} +\date{Released 2020-06-18} \newcommand{\TF}{\textit{(TF)}} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf Binary files differindex e0b64a7edc9..1a6beba13f3 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex index 5b10a1457fc..99464b67c97 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex +++ b/Master/texmf-dist/doc/latex/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 2020-06-03} +\date{Released 2020-06-18} \newcommand{\TF}{\textit{(TF)}} diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf Binary files differindex 6f9dbc22387..4ea4120d6de 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex index c236ce8d47d..985adb77b5f 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2020-06-03} +\date{Released 2020-06-18} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index 26c516150af..80d8714358f 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -71,23 +71,23 @@ %<*package> \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2020-06-03}{} + {l3backend-dvipdfmx.def}{2020-06-18}{} {L3 backend support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-dvips.def}{2020-06-03}{} + {l3backend-dvips.def}{2020-06-18}{} {L3 backend support: dvips} %</dvips> %<*dvisvgm> - {l3backend-dvisvgm.def}{2020-06-03}{} + {l3backend-dvisvgm.def}{2020-06-18}{} {L3 backend support: dvisvgm} %</dvisvgm> %<*pdfmode> - {l3backend-pdfmode.def}{2020-06-03}{} + {l3backend-pdfmode.def}{2020-06-18}{} {L3 backend support: PDF mode} %</pdfmode> %<*xdvipdfmx> - {l3backend-xdvipdfmx.def}{2020-06-03}{} + {l3backend-xdvipdfmx.def}{2020-06-18}{} {L3 backend support: xdvipdfmx} %</xdvipdfmx> %</package> diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index 323756837e4..ca94b19e9b8 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index 2b3e4d37084..2c0dd47ea18 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -78,7 +78,8 @@ % \begin{macro}{\@@_backend_pickup:w} % Allow for \LaTeXe{} color. Here, the possible input values are limited: % \texttt{dvips}-style colors can mainly be taken as-is with the exception -% spot ones (here we need a model and a tint). +% spot ones (here we need a model and a tint). The \texttt{x}-type expansion +% is there to cover the case where \pkg{xcolor} is in use. % \begin{macrocode} %<*package> \cs_new_protected:Npn \@@_backend_pickup:N #1 { } @@ -92,8 +93,8 @@ { \tl_set:Nx #1 { - spot ~ - \exp_after:wN \use:n \current@color \c_space_tl 1 + { spot } + { \exp_after:wN \use:n \current@color \c_space_tl 1 } } } { @@ -102,7 +103,7 @@ } } \cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3 - { \tl_set:Nn #3 { #1 ~ #2 } } + { \tl_set:Nn #3 { {#1} {#2} } } } } %</package> @@ -110,34 +111,27 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_cmyk:w} -% \begin{macro}{\@@_backend_gray:w} -% \begin{macro}{\@@_backend_rgb:w} -% \begin{macro}{\@@_backend_spot:w} -% \begin{macro}{\@@_backend_select:n, \@@_backend_select:x} +% \begin{macro} +% { +% \@@_backend_cmyk:n , +% \@@_backend_gray:n , +% \@@_backend_rgb:n , +% \@@_backend_spot:n , +% \@@_backend_select:n +% } % \begin{macro}{\@@_backend_reset:} % \begin{macro}{color.fc} % Push the data to the stack. In the case of \texttt{dvips} also reset the % drawing fill color in raw PostScript. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop - { - \@@_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \@@_backend_gray:w #1 \s_@@_stop - { \@@_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \@@_backend_rgb:w #1 ~ #2 ~ #3 \s_@@_stop - { - \@@_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } -\cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop - { \@@_backend_select:n { #1 } } +\cs_new_protected:Npn \@@_backend_cmyk:n #1 + { \@@_backend_select:n { cmyk ~ #1 } } +\cs_new_protected:Npn \@@_backend_gray:n #1 + { \@@_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \@@_backend_rgb:n #1 + { \@@_backend_select:n { rgb ~ #1 } } +\cs_new_protected:Npn \@@_backend_spot:n #1 + { \@@_backend_select:n {#1} } \cs_new_protected:Npn \@@_backend_select:n #1 { \__kernel_backend_literal:n { color~push~ #1 } @@ -146,17 +140,12 @@ %</dvips> \group_insert_after:N \@@_backend_reset: } -\cs_generate_variant:Nn \@@_backend_select:n { x } \cs_new_protected:Npn \@@_backend_reset: { \__kernel_backend_literal:n { color~pop } } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} % % \begin{macrocode} %</dvisvgm|dvipdfmx|dvips|xdvipdfmx> @@ -192,20 +181,20 @@ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7 { \str_if_eq:nnTF {#2} { g } - { \tl_set:Nn #7 { gray ~ #1 } } + { \tl_set:Nn #7 { { gray } {#1} } } { \str_if_eq:nnTF {#4} { rg } - { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } } + { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } } { \str_if_eq:nnTF {#5} { k } - { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } } + { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } } { \str_if_eq:nnTF {#2} { cs } { - \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 } + \tl_set:Nx #7 { { spot } { \use_none:n #1 ~ #5 } } } { - \tl_set:Nn #7 { gray ~ 0 } + \tl_set:Nn #7 { { gray } { 0 } } } } } @@ -226,48 +215,28 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\@@_backend_cmyk:w, \@@_backend_cmyk:nnnn} -% \begin{macro}{\@@_backend_gray:w, \@@_backend_gray:n} -% \begin{macro}{\@@_backend_rgb:w, \@@_backend_rgb:nnn} +% \begin{macro} +% { +% \@@_backend_cmyk:n , +% \@@_backend_gray:n , +% \@@_backend_rgb:n , +% \@@_backend_spot:n +% } % \begin{macro}{\@@_backend_spot:w} -% \begin{macro}{\@@_backend_select:n, \@@_backend_select:x} +% \begin{macro}{\@@_backend_select:n} % \begin{macro}{\@@_backend_reset:} % Simply dump the data, but allowing for \LuaTeX{}. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop - { - \use:x - { - \@@_backend_cmyk:nnnn - { \fp_eval:n {#1} } - { \fp_eval:n {#2} } - { \fp_eval:n {#3} } - { \fp_eval:n {#4} } - } - } -\cs_new_protected:Npn \@@_backend_cmyk:nnnn #1#2#3#4 - { - \@@_backend_select:n - { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } - } -\cs_new_protected:Npn \@@_backend_gray:w #1 \s_@@_stop - { \exp_args:Nx \@@_backend_gray:n { \fp_eval:n {#1} } } +\cs_new_protected:Npn \@@_backend_cmyk:n #1 + { \@@_backend_select:n { #1 ~ k ~ #1 ~ K } } \cs_new_protected:Npn \@@_backend_gray:n #1 { \@@_backend_select:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \@@_backend_rgb:w #1~ #2 ~ #3 \s_@@_stop - { - \use:x - { - \@@_backend_rgb:nnn - { \fp_eval:n {#1} } - { \fp_eval:n {#2} } - { \fp_eval:n {#3} } - } - } -\cs_new_protected:Npn \@@_backend_rgb:nnn #1#2#3 - { \@@_backend_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } } +\cs_new_protected:Npn \@@_backend_rgb:n #1 + { \@@_backend_select:n { #1 ~ rg ~ #1 ~ RG } } +\cs_new_protected:Npn \@@_backend_spot:n #1 + { \@@_backend_spot:w #1 \s_@@_stop } \cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop - { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } } + { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_protected:Npx \@@_backend_select:n #1 { \cs_if_exist:NTF \tex_pdfextension:D @@ -276,7 +245,6 @@ \exp_not:N \l__kernel_color_stack_int push {#1} \group_insert_after:N \exp_not:N \@@_backend_reset: } -\cs_generate_variant:Nn \@@_backend_select:n { x } \cs_new_protected:Npx \@@_backend_reset: { \cs_if_exist:NTF \tex_pdfextension:D @@ -289,8 +257,6 @@ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} -% \end{macro} % % \begin{macrocode} %</pdfmode> diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index 6b235e4faae..6c82820a901 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -313,7 +313,7 @@ { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \@@_backend_literal:x { \fp_eval:n {#1} ~ setmiterlimit } } + { \@@_backend_literal:n { #1 ~ setmiterlimit } } \cs_new_protected:Npn \@@_backend_cap_butt: { \@@_backend_literal:n { 0 ~ setlinecap } } \cs_new_protected:Npn \@@_backend_cap_round: @@ -335,8 +335,8 @@ % % \begin{macro} % { -% \@@_backend_color_fill_cmyk:nnnn , -% \@@_backend_color_stroke_cmyk:nnnn +% \@@_backend_color_fill_cmyk:n , +% \@@_backend_color_stroke_cmyk:n % } % \begin{macro} % { @@ -345,63 +345,37 @@ % } % \begin{macro} % { -% \@@_backend_color_fill_rgb:nnn , -% \@@_backend_color_stroke_rgb:nnn -% } -% \begin{macro} -% { -% \@@_backend_color_fill:n, \@@_backend_color_fill:x, -% \@@_backend_color_stroke:n, \@@_backend_color_stroke:x +% \@@_backend_color_fill_rgb:n , +% \@@_backend_color_stroke_rgb:n % } +% \begin{macro}{\@@_backend_color_fill:n, \@@_backend_color_stroke:n} % For \texttt{dvips}, we can use the standard color stack to deal with % stroke color, but for fills have to switch to raw PostScript. This is % thus not handled by the stack, but the context is very restricted. See % also how fills are implemented. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_color_fill_cmyk:nnnn #1#2#3#4 - { - \@@_backend_color_fill:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - setcmykcolor - } - } -\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \@@_backend_color_stroke:x - { - cmyk ~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \@@_backend_color_fill_gray:n #1 - { \@@_backend_color_fill:x { \fp_eval:n {#1} ~ setgray } } +\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1 + { \@@_backend_color_fill:n { #1 ~ setcmykcolor } } +\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1 + { \@@_backend_color_stroke:n { cmyk ~ #1 } } \cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1 - { \@@_backend_color_stroke:x { gray ~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \@@_backend_color_fill_rgb:nnn #1#2#3 - { - \@@_backend_color_fill:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor } - } -\cs_new_protected:Npn \@@_backend_color_stroke_rgb:nnn #1#2#3 - { - \@@_backend_color_stroke:x - { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } + { \@@_backend_color_fill:n { #1 ~ setgray } } +\cs_new_protected:Npn \@@_backend_color_fill_gray:n #1 + { \@@_backend_color_stroke:n { gray ~ #1 } } +\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1 + { \@@_backend_color_fill:n { #1 ~ setrgbcolor } } +\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1 + { \@@_backend_color_stroke:n { rgb ~ #1 } } \cs_new_protected:Npn \@@_backend_color_fill:n #1 { \__kernel_backend_postscript:n { /color.fc ~ { #1 } ~ def } } -\cs_generate_variant:Nn \@@_backend_color_fill:n { x } \cs_new_protected:Npn \@@_backend_color_stroke:n #1 { \__kernel_backend_literal:n { color~push~#1 } \group_insert_after:N \@@_color_reset: } -\cs_generate_variant:Nn \@@_backend_color_stroke:n { x } % \end{macrocode} % \end{macro} % \end{macro} @@ -418,14 +392,7 @@ \cs_new_protected:Npn \@@_backend_cm:nnnn #1#2#3#4 { \@@_backend_literal:n - { - [ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - 0 ~ 0 - ] ~ - concat - } + { [ #1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat } } % \end{macrocode} % \end{macro} @@ -633,7 +600,7 @@ { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \@@_backend_literal:x { \fp_eval:n {#1} ~ M } } + { \@@_backend_literal:x { #1 ~ M } } \cs_new_protected:Npn \@@_backend_cap_butt: { \@@_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \@@_backend_cap_round: @@ -655,8 +622,8 @@ % % \begin{macro} % { -% \@@_backend_color_fill_cmyk:nnnn , -% \@@_backend_color_stroke_cmyk:nnnn +% \@@_backend_color_fill_cmyk:n , +% \@@_backend_color_stroke_cmyk:n % } % \begin{macro} % { @@ -665,46 +632,26 @@ % } % \begin{macro} % { -% \@@_backend_color_fill_rgb:nnn , -% \@@_backend_color_stroke_rgb:nnn +% \@@_backend_color_fill_rgb:n , +% \@@_backend_color_stroke_rgb:n % } % \begin{macro}{\@@_backend_color_select:n, \@@_backend_color_select:x} % \begin{macro}{\@@_backend_color_reset:} % Color has to be split between \texttt{(x)dvipdfmx} and the PDF engines % as there is no color stack for fill/stroke separation in the former. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_color_fill_cmyk:nnnn #1#2#3#4 - { - \@@_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \@@_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } +\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1 + { \@@_backend_color_select:n { #1 ~ k } } +\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1 + { \@@_backend_color_select:n { #1 ~ K } } \cs_new_protected:Npn \@@_backend_color_fill_gray:n #1 - { \@@_backend_color_select:x { \fp_eval:n {#1} ~ g } } + { \@@_backend_color_select:n { #1 ~ g } } \cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1 - { \@@_backend_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \@@_backend_color_fill_rgb:nnn #1#2#3 - { - \@@_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \@@_backend_color_stroke_rgb:nnn #1#2#3 - { - \@@_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } + { \@@_backend_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1 + { \@@_backend_color_select:n { #1 ~ rg } } +\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1 + { \@@_backend_color_select:n { #1 ~ RG } } %<*pdfmode> \cs_new_protected:Npx \@@_backend_color_select:n #1 { @@ -746,11 +693,7 @@ \cs_new_protected:Npn \@@_backend_cm:nnnn #1#2#3#4 { %<*pdfmode> - \__kernel_backend_matrix:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } + \__kernel_backend_matrix:n { #1 ~ #2 ~ #3 ~ #4 } %</pdfmode> %<*dvipdfmx|xdvipdfmx> \@@_backend_cm_decompose:nnnnN {#1} {#2} {#3} {#4} @@ -904,13 +847,8 @@ \@@_backend_cm:nnnn {#2} {#3} {#4} {#5} %</pdfmode> %<*dvipdfmx|xdvipdfmx> - \__kernel_backend_literal:x - { - pdf:btrans~matrix~ - \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ - \fp_eval:n {#4} ~ \fp_eval:n {#5} ~ - 0 ~ 0 - } + \__kernel_backend_literal:n + { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 } %</dvipdfmx|xdvipdfmx> \hbox_overlap_right:n { \box_use:N #1 } %<*dvipdfmx|xdvipdfmx> @@ -1199,7 +1137,7 @@ \cs_new_protected:Npn \@@_backend_linewidth:n #1 { \@@_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \@@_backend_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } } + { \@@_backend_scope:x { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \@@_backend_cap_butt: { \@@_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \@@_backend_cap_round: @@ -1222,43 +1160,41 @@ % % \begin{macro} % { -% \@@_backend_color_fill_cmyk:nnnn , -% \@@_backend_color_stroke_cmyk:nnnn +% \@@_backend_color_fill_cmyk:n , +% \@@_backend_color_stroke_cmyk:n % } +% \begin{macro}{\@@_backend_color_fill_cmyk:w} % \begin{macro} % { % \@@_backend_color_fill_gray:n , % \@@_backend_color_stroke_gray:n % } +% \begin{macro}{\@@_backend_color_gray_aux:n} % \begin{macro} % { -% \@@_backend_color_fill_rgb:nnn , -% \@@_backend_color_stroke_rgb:nnn +% \@@_backend_color_fill_rgb:n , +% \@@_backend_color_stroke_rgb:n % } % \begin{macro}{\@@_backend_color_fill:nnn} % SVG fill color has to be covered outside of the stack, as for % \texttt{dvips}. Here, we are only allowed RGB colors so there is some % conversion to do. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_color_fill_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1 + { \@@_backend_color_fill_cmyk:w #1 \s_@@_stop } +\cs_new_protected:Npn \@@_backend_color_fill_cmyk:w + #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { \use:x { \@@_backend_color_fill:nnn - { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } } - { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } } - { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } } - } - } -\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \@@_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} + { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } } } } +\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1 + { \@@_backend_select:n { cmyk ~ #1 } } \cs_new_protected:Npn \@@_backend_color_fill_gray:n #1 { \use:x @@ -1271,7 +1207,7 @@ { \@@_backend_color_fill:nnn {#1} {#1} {#1} } \cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1 { \@@_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \@@_backend_color_fill_rgb:nnn #1#2#3 +\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1 { \use:x { @@ -1296,16 +1232,15 @@ " } } -\cs_new_protected:Npn \@@_backend_color_stroke_rgb:nnn #1#2#3 - { - \@@_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } +\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1 + { \@@_backend_select:n { rgb ~ #1 } } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\@@_backend_cm:nnnn} % The four arguments here are floats (the affine matrix), the last @@ -1316,14 +1251,7 @@ \@@_backend_scope:n { transform = - " - matrix - ( - \fp_eval:n {#1} , \fp_eval:n {#2} , - \fp_eval:n {#3} , \fp_eval:n {#4} , - 0pt , 0pt - ) - " + " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) " } } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index dd19bba9a10..305d1759a12 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index 955f8a3b144..a66cb0f1456 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index 5382b4a92c3..e10ad17e8f6 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx index 2589bb9c6c1..a5654f97cdd 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -130,7 +130,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3benchmark}{2020-06-03}{} +\ProvidesExplPackage{l3benchmark}{2020-06-18}{} {L3 Experimental benchmarking} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx b/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx index 4d758c1ad4f..4bda61148d0 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -179,7 +179,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3cctab}{2020-06-03}{} +\ProvidesExplPackage{l3cctab}{2020-06-18}{} {L3 Experimental category code tables} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx index c7addda60be..8a87d390b4f 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -240,20 +240,9 @@ % \section{Core color representation} % % To allow data to be handled internally, \pkg{l3color} uses a simple -% representation of color, based on that used by the \pkg{dvips} program. -% This is a token list made up of the model name followed by one or more -% data entries, each separated by a \emph{space}. The valid forms are thus -% \begin{itemize} -% \item \texttt{gray \meta{gray}} Grayscale color with the \meta{gray} -% value running from $0$ (fully black) to $1$ (fully white) -% \item \texttt{cmyk \meta{cyan} \meta{magenta} \meta{yellow} \meta{black}}, -% each of which falls in the range $[0,1]$ -% \item \texttt{rgb \meta{red} \meta{green} \meta{blue}}, -% each of which falls in the range $[0,1]$ -% \item \texttt{spot \meta{name} \meta{tint}} A pre-defined spot color, -% where the \meta{name} should be a pre-defined string color name and the -% \meta{tint} should be in the range $[0,1]$. -% \end{itemize} +% representation of color, comprising two \meta{balanced text} entries, the first +% the \meta{model} and the second the \meta{values} given +% \emph{separated by spaces}. % % This core representation is produced when parsing color expressions. % @@ -286,7 +275,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3color}{2020-06-03}{} +\ProvidesExplPackage{l3color}{2020-06-18}{} {L3 Experimental color support} %</package> % \end{macrocode} @@ -342,7 +331,7 @@ % \end{macro} % % \begin{macro}{\@@_extract:nNN, \@@_extract:VNN} -% \begin{macro}{\@@_extract:NNw} +% \begin{macro}{\@@_extract:NNnn} % Split the model and color from a named color, and store the two. No test % for the existence of the color: that is assumed to be the case (this % is internal only). Somewhat \enquote{old-fashioned} but should be quite @@ -351,13 +340,13 @@ \cs_new_protected:Npn \@@_extract:nNN #1#2#3 { \exp_after:wN \exp_after:wN \exp_after:wN - \@@_extract:NNw + \@@_extract:NNnn \exp_after:wN \exp_after:wN \exp_after:wN #2 \exp_after:wN \exp_after:wN \exp_after:wN #3 - \cs:w l_@@_named_ #1 _tl \cs_end: \s_@@_stop + \cs:w l_@@_named_ #1 _tl \cs_end: } \cs_generate_variant:Nn \@@_extract:nNN { V } -\cs_new_protected:Npn \@@_extract:NNw #1#2 #3 ~ #4 \s_@@_stop +\cs_new_protected:Npn \@@_extract:NNnn #1#2#3#4 { \tl_set:Nn #1 {#3} \tl_set:Nn #2 {#4} @@ -517,7 +506,7 @@ \@@_extract:nNN {#2} \l_@@_model_tl \l_@@_value_tl \@@_parse_loop:w #3 ! ! ! ! \s_@@_stop \tl_set:Nx \l_@@_internal_tl - { \l_@@_model_tl \c_space_tl \l_@@_value_tl } + { { \l_@@_model_tl } { \l_@@_value_tl } } \exp_args:NNNV \group_end: \tl_set:Nn #1 \l_@@_internal_tl } @@ -663,26 +652,30 @@ % Turn the input into internal form, also tidying up the number quickly. % \begin{macrocode} \cs_new:Npn \@@_parse_model_gray:w #1 , #2 \s_@@_stop - { gray ~ \@@_parse_number:n {#1} } + { { gray } { \@@_parse_number:n {#1} } } \cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \s_@@_stop { - rgb ~ - \@@_parse_number:n {#1} ~ - \@@_parse_number:n {#2} ~ - \@@_parse_number:n {#3} + { rgb } + { + \@@_parse_number:n {#1} ~ + \@@_parse_number:n {#2} ~ + \@@_parse_number:n {#3} + } } \cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s_@@_stop { - cmyk ~ - \@@_parse_number:n {#1} ~ - \@@_parse_number:n {#2} ~ - \@@_parse_number:n {#3} ~ - \@@_parse_number:n {#4} + { cmyk } + { + \@@_parse_number:n {#1} ~ + \@@_parse_number:n {#2} ~ + \@@_parse_number:n {#3} ~ + \@@_parse_number:n {#4} + } } \cs_new:Npn \@@_parse_model_spot:w #1 , #2 \s_@@_stop { - spot ~ - \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop + { spot } + { \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop } } \cs_new:Npn \@@_parse_spot_aux:w #1 ! #2 ! #3 \s_@@_stop { #1 ~ \fp_eval:n { #2 / 100 } } @@ -716,9 +709,11 @@ % \begin{macrocode} \cs_new:Npn \@@_parse_model_hsb:nnn #1#2#3 { - rgb ~ - \exp_args:Ne \@@_parse_model_hsb_aux:nnn - { \fp_eval:n { 6 * #1 } } {#2} {#3} + { rgb } + { + \exp_args:Ne \@@_parse_model_hsb_aux:nnn + { \fp_eval:n { 6 * #1 } } {#2} {#3} + } } \cs_new:Npn \@@_parse_model_hsb_aux:nnn #1#2#3 { @@ -758,17 +753,21 @@ { \@@_parse_model_HTML_aux:w #1 0 0 0 0 0 0 \s_@@_stop } \cs_new:Npn \@@_parse_model_HTML_aux:w #1#2#3#4#5#6#7 \s_@@_stop { - rgb ~ - \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~ - \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~ - \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) } + { rgb } + { + \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~ + \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~ + \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) } + } } \cs_new:Npn \@@_parse_model_RGB:w #1 , #2 , #3 , #4 \s_@@_stop { - rgb ~ - \fp_eval:n { round(#1 / 255,5) } ~ - \fp_eval:n { round(#2 / 255,5) } ~ - \fp_eval:n { round(#3 / 255,5) } + { rgb } + { + \fp_eval:n { round(#1 / 255,5) } ~ + \fp_eval:n { round(#2 / 255,5) } ~ + \fp_eval:n { round(#3 / 255,5) } + } } % \end{macrocode} % \end{macro} @@ -783,24 +782,24 @@ % \end{variable} % % \begin{macro}{\@@_check_model:N} -% \begin{macro}{\@@_check_model:w} +% \begin{macro}{\@@_check_model:nn} % Check that the model in use is the one required. % \begin{macrocode} \cs_new_protected:Npn \@@_check_model:N #1 { \tl_if_empty:NF \l_color_fixed_model_tl { - \exp_after:wN \@@_check_model:w #1 \s_@@_stop + \exp_after:wN \@@_check_model:nn #1 \tl_if_eq:NNF \l_@@_model_tl \l_color_fixed_model_tl { \@@_convert:VVN \l_@@_model_tl \l_color_fixed_model_tl \l_@@_value_tl } \tl_set:Nx #1 - { \l_color_fixed_model_tl \c_space_tl \l_@@_value_tl } + { { \l_color_fixed_model_tl } { \l_@@_value_tl } } } } -\cs_new_protected:Npn \@@_check_model:w #1 ~ #2 \s_@@_stop +\cs_new_protected:Npn \@@_check_model:nn #1#2 { \tl_set:Nn \l_@@_model_tl {#1} \tl_set:Nn \l_@@_value_tl {#2} @@ -818,7 +817,7 @@ \cs_new_protected:Npn \@@_select: { \tl_set_eq:cN { l_@@_named_ . _tl } \l_@@_current_tl - \@@_select:V \l_@@_current_tl + \@@_select:N \l_@@_current_tl } % \end{macrocode} % \end{macro} @@ -852,7 +851,7 @@ \cs_if_exist:cTF { @@_parse_model_ #1 :w } { \tl_set:Nx #3 - { \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop } + { \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop } \@@_check_model:N #3 } { @@ -946,8 +945,7 @@ % \subsection{Diagnostics} % % \begin{macro}{\color_show:n} -% \begin{macro}{\@@_show:w} -% \begin{macro}{\@@_show_gray:w, \@@_show_rgb:w, \@@_show_cmyk:w} +% \begin{macro}{\@@_show:nn} % Extract the information about a color and format for the user: the approach % is similar to the keys module here. % \begin{macrocode} @@ -957,25 +955,20 @@ {#1} { \@@_if_defined:nTF {#1} - { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \s_@@_stop } + { \exp_last_unbraced:Nv \@@_show:nn { l_@@_named_ #1 _tl } } { } } { } { } } -\cs_new:Npn \@@_show:w #1 ~ #2 \s_@@_stop +\cs_new:Npn \@@_show:nn #1#2 { \msg_show_item_unbraced:nn { model } {#1} - \exp_args:Nnf \msg_show_item_unbraced:nn { value } - { \use:c { @@_show_ #1 :w } #2 \s_@@_stop } + \msg_show_item_unbraced:nn { value } {#2} } -\cs_new:Npn \@@_show_gray:w #1 \s_@@_stop { #1 } -\cs_new:Npn \@@_show_rgb:w #1 ~ #2 ~ #3 \s_@@_stop { #1 ,~ #2 ,~ #3 } -\cs_new:Npn \@@_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { #1 ,~ #2 ,~ #3 ,~ #4 } % \end{macrocode} % \end{macro} % \end{macro} -% \end{macro} % % \subsection{Messages} % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx index bca71310a17..8a20c1a3485 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx index 690d02578f4..1f1debc79e5 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx index a90ccb85d86..bf446436807 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx index 5e54f11a70a..6e578a694a4 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx index a33447016ec..b2cd3db4456 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx index 40823c2cf31..943484d811f 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx index 42adda47ce0..4f434d924b6 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -124,7 +124,7 @@ % Pass through to the driver layer. % \begin{macrocode} \cs_new_protected:Npn \draw_miterlimit:n #1 - { \@@_backend_miterlimit:n { \fp_eval:n {#1} } } + { \exp_args:Nx \@@_backend_miterlimit:n { \fp_eval:n {#1} } } % \end{macrocode} % \end{macro} % @@ -156,13 +156,7 @@ % % \begin{macro}{\draw_color:n, \draw_color_fill:n, \draw_color_stroke:n} % \begin{macro}{\@@_color:nn} -% \begin{macro}{\@@_color_aux:nn, \@@_color_aux:Vn} -% \begin{macro}{\@@_color:nw} -% \begin{macro} -% { -% \@@_select_cmyk:nw, \@@_select_gray:nw, -% \@@_select_rgb:nw, \@@_split_select:nw -% } +% \begin{macro}{\@@_color:nnn} % Much the same as for core color support but calling the relevant % driver-level function. % \begin{macrocode} @@ -174,27 +168,14 @@ \cs_new_protected:Npn \@@_color:nn #1#2 { \color_parse:nN {#2} \l_@@_color_tmp_tl - \@@_color_aux:Vn \l_@@_color_tmp_tl {#1} + \exp_after:wN \@@_color:nnn \l_@@_color_tmp_tl {#1} } -\cs_new_protected:Npn \@@_color_aux:nn #1#2 - { \@@_color:nw {#2} #1 \s_@@_stop } -\cs_generate_variant:Nn \@@_color_aux:nn { V } -\cs_new_protected:Npn \@@_color:nw #1#2 ~ #3 \s_@@_stop - { \use:c { @@_color_ #2 :nw } {#1} #3 \s_@@_stop } -\cs_new_protected:Npn \@@_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \s_@@_stop - { \use:c { @@_backend_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} } -\cs_new_protected:Npn \@@_color_gray:nw #1#2 \s_@@_stop - { \use:c { @@_backend_color_ #1 _gray:n } {#2} } -\cs_new_protected:Npn \@@_color_rgb:nw #1#2 ~ #3 ~ #4 \s_@@_stop - { \use:c { @@_backend_color_ #1 _rgb:nnn } {#2} {#3} {#4} } -\cs_new_protected:Npn \@@_color_spot:nw #1#2 ~ #3 \s_@@_stop - { \use:c { @@_backend_color_ #1 _spot:nn } {#2} {#3} } +\cs_new_protected:Npn \@@_color:nnn #1#2#3 + { \use:c { @@_backend_color_ #3 _ #1 :n } {#2} } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} -% \end{macro} -% \end{macro} % % \begin{macrocode} %</initex|package> diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx index 2b0ac7a84c1..b995cf6fc9a 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx index 66b0074a872..4ba0e2cb74e 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx @@ -110,7 +110,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -1146,7 +1146,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3draw}{2020-06-03}{} +\ProvidesExplPackage{l3draw}{2020-06-18}{} {L3 Experimental core drawing support} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx index 92d93a4c979..73517bfe80e 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -241,7 +241,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3graphics}{2020-06-03}{} +\ProvidesExplPackage{l3graphics}{2020-06-18}{} {L3 Experimental graphics inclusion support} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx b/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx index b444b49524c..1a21347ef3b 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -191,7 +191,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3pdf}{2020-06-03}{} +\ProvidesExplPackage{l3pdf}{2020-06-18}{} {L3 Experimental core PDF support} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx index 5bdde511913..52902e21a81 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -167,7 +167,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3str-format}{2020-06-03}{} +\ProvidesExplPackage{l3str-format}{2020-06-18}{} {L3 Experimental string formatting} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx index 6ed71eb1bae..7da0422159b 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -136,7 +136,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3sys-shell}{2020-06-03}{} +\ProvidesExplPackage{l3sys-shell}{2020-06-18}{} {L3 Experimental system shell functions} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx index 9b4f9a1250e..68776e0572f 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx @@ -56,7 +56,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -675,7 +675,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2020-06-03}{} +\ProvidesExplPackage{xcoffins}{2020-06-18}{} {L3 Experimental design level coffins} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx index 2ba61cdf1cf..639e7ade994 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx @@ -61,7 +61,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -687,7 +687,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3galley}{2020-06-03}{} +\ProvidesExplPackage{l3galley}{2020-06-18}{} {L3 Experimental galley code} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx index ce329cf3603..59be5e01ea1 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -734,7 +734,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2020-06-03}{} +\ProvidesExplPackage{xgalley}{2020-06-18}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index e1502692225..0710d88c5d0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> %</driver|generic|package|2ekernel> -\def\ExplFileDate{2020-06-03}% +\def\ExplFileDate{2020-06-18}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -1156,23 +1156,40 @@ % % \begin{macro}{\ProvidesExplPackage, \ProvidesExplClass, \ProvidesExplFile} % For other packages and classes building on this one it is convenient -% not to need \cs{ExplSyntaxOn} each time. +% not to need \cs{ExplSyntaxOn} each time. All macros use the same +% internal one with the proper \LaTeXe{} command. % \begin{macrocode} -\protected\def\ProvidesExplPackage#1#2#3#4% - {% - \ProvidesPackage{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% - \ExplSyntaxOn - }% -\protected\def\ProvidesExplClass#1#2#3#4% +\protected\def\ProvidesExplPackage + {\@expl@provides@file@@Nnnnnn\ProvidesPackage{Package}} +\protected\def\ProvidesExplClass + {\@expl@provides@file@@Nnnnnn\ProvidesClass{Document Class}} +\protected\def\ProvidesExplFile + {\@expl@provides@file@@Nnnnnn\ProvidesFile{File}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@expl@provides@file@@Nnnnnn, \@expl@provides@generic@@wnnw} +% We need to check the existence of the +% \cs[no-index]{Provides\meta{thing}}, since we need to load this very +% early in the \LaTeXe{} kernel. +% \begin{macrocode} +\protected\long\def\@expl@provides@file@@Nnnnnn#1#2#3#4#5#6% {% - \ProvidesClass{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% + \ifnum0% + \ifdefined#11\fi + \ifx\relax#1\else1\fi + =11 + \expandafter#1% + \else + \@expl@provides@generic@@wnnw{#2}% + \fi + {#3}[{#4 \ifx\relax#5\relax\else v#5\space\fi #6}]% \ExplSyntaxOn - }% -\protected\def\ProvidesExplFile#1#2#3#4% + } +\protected\long\def\@expl@provides@generic@@wnnw#1\fi#2[#3]% {% - \ProvidesFile{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% - \ExplSyntaxOn - }% + \immediate\write-1{#1: #2 #3}% + } % \end{macrocode} % \end{macro} % @@ -1198,24 +1215,35 @@ \fi % \end{macrocode} % -% If \pkg{expl3} was pre-loaded, we now have to deal with the fact that -% the syntax will not be activated for the package mode version: -% simply turn it on. We use \tn{@pushfilenameaux} as a marker: it's defined -% a little later. % \begin{macrocode} -\ifdefined\@pushfilenameaux - \ExplSyntaxOn -\fi +%<@@=expl> % \end{macrocode} % +% Here we can also detect whether we're reloading. This code goes into +% \texttt{expl3.ltx} and \texttt{expl3.sty}, the former loaded into the +% \LaTeXe{} format. When this code is loaded for the first time, the +% \cs{g_@@_reload_bool} boolean doesn't exist (\cs{else} branch of the +% \cs{ifcsname} below), so we create it. If the \cs{ifcsname} is true, +% then we do \cs{ExplSyntaxOn} (because when reloading, +% \texttt{expl3-code.tex} isn't read again), and set +% \cs{g_@@_reload_bool} to true. % \begin{macrocode} -%<@@=expl> +\ifcsname\detokenize{g_@@_reload_bool}\endcsname + \ExplSyntaxOn + \bool_gset_true:N \g_@@_reload_bool +\else + \bool_new:N \g_@@_reload_bool +\fi % \end{macrocode} % % \begin{variable}{\c_@@_def_ext_tl} -% Needed by \LaTeXe{}, and avoiding a re-load issue. +% Needed by \LaTeXe{}, and avoiding a re-load issue. Variables are +% best checked explicitly, rather than with \cs{g_@@_reload_bool} +% because some appear only in one of the code files, so +% \cs{g_@@_reload_bool} doesn't necessarily mean that the variable +% is already declared. % \begin{macrocode} -\cs_if_exist:NF \c_@@_def_ext_tl +\tl_if_exist:NF \c_@@_def_ext_tl { \tl_const:Nn \c_@@_def_ext_tl { def } } % \end{macrocode} % \end{variable} @@ -1255,7 +1283,7 @@ % \begin{variable}{\l_@@_options_clist} % \begin{macrocode} %<*!2ekernel> -\cs_if_exist:NF \l_@@_options_clist +\clist_if_exist:NF \l_@@_options_clist { \clist_new:N \l_@@_options_clist } \DeclareOption* { \clist_put_right:NV \l_@@_options_clist \CurrentOption } @@ -1295,19 +1323,74 @@ } % \end{macrocode} % -% A backend has to be in place by the start of the document: this has to be -% before global options are checked for use. The odd group stuff avoids -% needing to actually patch \tn{document}. +% \begin{macro}{\@expl@sys@load@backend@@@@} +% A backend has to be in place by the start of the document: this has +% to be before global options are checked for use. +% +% The \cs[no-index]{@expl@...@@@@} macros defined in this package are +% interfaces for \LaTeXe{}. There are currently (this will change +% with the next release of \LaTeXe{}) two possible cases, at this +% point of the code: either \cs{@expl@sys@load@backend@@@@} (and the +% others) already exist because they were defined in +% \texttt{ltexpl.ltx} (in \texttt{2ekernel} mode) or in +% \texttt{expl3.ltx} (in \texttt{package} mode). +% +% In \texttt{2ekernel} mode, if they exist we are using a future +% (2020-10-01) release of \LaTeXe{} and we don't need (and can't) +% patch \LaTeXe's internals because these commands are already there. +% Though if they don't exist in \texttt{2ekernel} mode, we're using +% an older version of the kernel, so we \emph{must} patch. +% +% In \texttt{package} mode, if these commands exist, then we are using +% a version of \LaTeXe{} with \textsf{expl3} preloaded (any version) +% and in any case patching is already done or the macros are in the +% format itself, so nothing to do. +% But if in \texttt{package} mode these macros don't exist, we have an +% even older version of \LaTeXe{} which doesn't even have +% \textsf{expl3} preloaded, so patching is necessary. +% +% All this means that in both \texttt{2ekernel} and \texttt{package} +% mode we have to check whether \cs{@expl@sys@load@backend@@@@} +% exists, and patch some \LaTeXe{} internals if it doesn't. +% +% In newer \LaTeXe{}, these macros have an empty definition in +% \texttt{ltexpl.dtx} in case something wrong happens while loading +% this file (\texttt{expl3.ltx}), so they can safely be used in the +% \LaTeXe{} kernel. +% +% \cs{@expl@sys@load@backend@@@@} is inserted right at the beginning +% of \cs{document}, but after closing the group started by \cs{begin}. +% When using \cs{tl_put_left:Nn} to patch the backend loading in +% \cs{document}, we need to make sure that it happens at group level +% zero, thus the strange |\endgroup...\begingroup| thing. +% +% This chunk of code should only be executed when loading +% \texttt{expl3.sty} in a \LaTeXe{} without \pkg{expl3} preloaded, so +% we check if \cs{@expl@sys@load@backend@@@@} exists. % \begin{macrocode} -%<*2ekernel> -\tl_put_left:Nn \document +\cs_if_exist:NF \@expl@sys@load@backend@@@@ + { + \tl_put_left:Nn \document + { + \endgroup + \@expl@sys@load@backend@@@@ + \begingroup + } + } +% \end{macrocode} +% +% Now we define it anyhow. +% \begin{macrocode} +\cs_gset_protected:Npn \@expl@sys@load@backend@@@@ { - \endgroup \str_if_exist:NF \c_sys_backend_str { \sys_load_backend:n { } } - \begingroup } -%</2ekernel> +% \end{macrocode} +% \end{macro} +% +% Process package options. +% \begin{macrocode} %<*!2ekernel> \keys_set:nV { sys } \l_@@_options_clist \str_if_exist:NF \c_sys_backend_str @@ -1315,15 +1398,14 @@ %</!2ekernel> % \end{macrocode} % -% A test for pre-loading: does \tn{@pushfilenameaux} already exist. -% The alrady-loaded mechanism will handle everything now. % \begin{macrocode} %<*!2ekernel> -\cs_if_exist:NT \@pushfilenameaux +\bool_if:NT \g_@@_reload_bool { \cs_gset_eq:NN \__kernel_sys_configuration_load:n \__kernel_sys_configuration_load_std:n - \endinput + \ExplSyntaxOff + \file_input_stop: } %</!2ekernel> % \end{macrocode} @@ -1354,17 +1436,28 @@ % % \begin{macro}{\@pushfilename, \@popfilename} % \begin{macro}{\@@_status_pop:w} +% \begin{macro}{\@expl@push@filename@@@@} +% \begin{macro}{\@expl@push@filename@aux@@@@} +% \begin{macro}{\@expl@pop@filename@@@@} % The idea here is to use \LaTeXe{}'s \tn{@pushfilename} and % \tn{@popfilename} to track the current syntax status. This can be % achieved by saving the current status flag at each push to a stack, % then recovering it at the pop stage and checking if the code % environment should still be active. +% +% Here the code follows the same patching logic than above for +% \cs{@expl@sys@load@backend@@@@}. % \begin{macrocode} -\tl_put_left:Nn \@pushfilename +\cs_if_exist:NF \@expl@push@filename@@@@ + { + \tl_put_left:Nn \@pushfilename { \@expl@push@filename@@@@ } + \tl_put_right:Nn \@pushfilename { \@expl@push@filename@aux@@@@ } + } +\cs_gset_protected:Npn \@expl@push@filename@@@@ { \exp_args:Nx \__kernel_file_input_push:n { - \tl_to_str:N \@currname + \tl_to_str:N \@currname . \tl_to_str:N \@currext } \tl_put_left:Nx \l_@@_status_stack_tl @@ -1375,17 +1468,24 @@ } \ExplSyntaxOff } -\tl_put_right:Nn \@pushfilename { \@pushfilenameaux } % \end{macrocode} % This bit of trickery is needed to grab the name of the file being loaded % so we can record it. % \begin{macrocode} -\cs_set_protected:Npn \@pushfilenameaux #1#2#3 +\cs_gset_protected:Npn \@expl@push@filename@aux@@@@ #1#2#3 { \str_gset:Nn \g_file_curr_name_str {#3} #1 #2 {#3} } -\tl_put_right:Nn \@popfilename +% \end{macrocode} +% +% \begin{macrocode} +\cs_if_exist:NF \@expl@pop@filename@@@@ + { + \tl_put_right:Nn \@popfilename + { \@expl@pop@filename@@@@ } + } +\cs_gset_protected:Npn \@expl@pop@filename@@@@ { \__kernel_file_input_pop: \tl_if_empty:NTF \l_@@_status_stack_tl @@ -1407,6 +1507,9 @@ % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{variable}{\l_@@_status_stack_tl} % As \pkg{expl3} itself cannot be loaded with the code environment diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx index 9784c0abc80..4fdce60bdc6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 3e56c6d86ff..c871aeb7594 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index fe25ffaf7fe..8ff412298c0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index 90c12659420..a30bed22c79 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index 5b9533868c9..a307cb02df5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -268,44 +268,6 @@ % % \section{Additions to \pkg{l3msg}} % -% In very rare cases it may be necessary to produce errors in an -% expansion-only context. The functions in this section should only be -% used if there is no alternative approach using \cs{msg_error:nnnnnn} -% or other non-expandable commands from the previous section. Despite -% having a similar interface as non-expandable messages, expandable -% errors must be handled internally very differently from normal error -% messages, as none of the tools to print to the terminal or the log -% file are expandable. As a result, short-hands such as |\{| or |\\| do -% not work, and messages must be very short (with default settings, -% they are truncated after approximately 50 characters). It is -% advisable to ensure that the message is understandable even when -% truncated, by putting the most important information up front. -% Another particularity of expandable messages is that they -% cannot be redirected or turned off by the user. -% -% \begin{function}[EXP, added = 2015-08-06, updated = 2019-02-28] -% { -% \msg_expandable_error:nnnnnn , -% \msg_expandable_error:nnnnn , -% \msg_expandable_error:nnnn , -% \msg_expandable_error:nnn , -% \msg_expandable_error:nn , -% \msg_expandable_error:nnffff , -% \msg_expandable_error:nnfff , -% \msg_expandable_error:nnff , -% \msg_expandable_error:nnf , -% } -% \begin{syntax} -% \cs{msg_expandable_error:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} -% \end{syntax} -% Issues an \enquote{Undefined error} message from \TeX{} itself -% using the undefined control sequence \cs{::error} then prints -% \enquote{! \meta{module}: }\meta{error message}, which should be -% short. With default settings, anything beyond approximately $60$ -% characters long (or bytes in some engines) is cropped. A leading -% space might be removed as well. -% \end{function} -% % \begin{function}[added = 2017-12-04]{\msg_show_eval:Nn, \msg_log_eval:Nn} % \begin{syntax} % \cs{msg_show_eval:Nn} \meta{function} \Arg{expression} @@ -520,26 +482,6 @@ % mappings. % \end{function} % -% \begin{function}[rEXP,added = 2018-05-03]{\seq_indexed_map_function:NN} -% \begin{syntax} -% \cs{seq_indexed_map_function:NN} \meta{seq~var} \meta{function} -% \end{syntax} -% Applies \meta{function} to every entry in the \meta{sequence -% variable}. The \meta{function} should have signature |:nn|. It -% receives two arguments for each iteration: the \meta{index} (namely -% |1| for the first entry, then |2| and so on) and the \meta{item}. -% \end{function} -% -% \begin{function}[added = 2018-05-03]{\seq_indexed_map_inline:Nn} -% \begin{syntax} -% \cs{seq_indexed_map_inline:Nn} \meta{seq~var} \Arg{inline function} -% \end{syntax} -% Applies \meta{inline function} to every entry in the \meta{sequence -% variable}. The \meta{inline function} should consist of code which -% receives the \meta{index} (namely |1| for the first entry, then |2| -% and so on) as~|#1| and the \meta{item} as~|#2|. -% \end{function} -% % \section{Additions to \pkg{l3sys}} % % \begin{variable}[added = 2018-05-02]{\c_sys_engine_version_str} @@ -958,56 +900,6 @@ %<@@=msg> % \end{macrocode} % -% \begin{macro}[EXP] -% { -% \msg_expandable_error:nnnnnn , -% \msg_expandable_error:nnnnn , -% \msg_expandable_error:nnnn , -% \msg_expandable_error:nnn , -% \msg_expandable_error:nn , -% \msg_expandable_error:nnffff , -% \msg_expandable_error:nnfff , -% \msg_expandable_error:nnff , -% \msg_expandable_error:nnf -% } -% \begin{macro}{\@@_expandable_error_module:nn} -% Pass to an auxiliary the message to display and the module name -% \begin{macrocode} -\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6 - { - \exp_args:Ne \@@_expandable_error_module:nn - { - \exp_args:Nc \exp_args:Noooo - { \c_@@_text_prefix_tl #1 / #2 } - { \tl_to_str:n {#3} } - { \tl_to_str:n {#4} } - { \tl_to_str:n {#5} } - { \tl_to_str:n {#6} } - } - {#1} - } -\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5 - { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } } -\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4 - { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } } -\cs_new:Npn \msg_expandable_error:nnn #1#2#3 - { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } } -\cs_new:Npn \msg_expandable_error:nn #1#2 - { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } } -\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff } -\cs_generate_variant:Nn \msg_expandable_error:nnnnn { nnfff } -\cs_generate_variant:Nn \msg_expandable_error:nnnn { nnff } -\cs_generate_variant:Nn \msg_expandable_error:nnn { nnf } -\cs_new:Npn \@@_expandable_error_module:nn #1#2 - { - \exp_after:wN \exp_after:wN - \exp_after:wN \@@_use_none_delimit_by_s_stop:w - \use:n { \::error ! ~ #2 : ~ #1 } \s_@@_stop - } -% \end{macrocode} -% \end{macro} -% \end{macro} -% % \begin{macro}{\msg_show_eval:Nn, \msg_log_eval:Nn, \@@_show_eval:nnN} % A short-hand used for \cs{int_show:n} and similar functions that % passes to \cs{tl_show:n} the result of applying |#1| (a @@ -1301,50 +1193,6 @@ % \end{macrocode} % \end{macro} % -% \begin{macro} -% { -% \seq_indexed_map_function:NN, \seq_indexed_map_inline:Nn, -% \@@_indexed_map:nNN, \@@_indexed_map:Nw -% } -% Similar to \cs{seq_map_function:NN} but we keep track of the item -% index as a |;|-delimited argument of \cs{@@_indexed_map:Nw}. -% \begin{macrocode} -\cs_new:Npn \seq_indexed_map_function:NN #1#2 - { - \@@_indexed_map:NN #1#2 - \prg_break_point:Nn \seq_map_break: { } - } -\cs_new_protected:Npn \seq_indexed_map_inline:Nn #1#2 - { - \int_gincr:N \g__kernel_prg_map_int - \cs_gset_protected:cpn - { @@_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2} - \exp_args:NNc \@@_indexed_map:NN #1 - { @@_map_ \int_use:N \g__kernel_prg_map_int :w } - \prg_break_point:Nn \seq_map_break: - { \int_gdecr:N \g__kernel_prg_map_int } - } -\cs_new:Npn \@@_indexed_map:NN #1#2 - { - \exp_after:wN \@@_indexed_map:Nw - \exp_after:wN #2 - \int_value:w 1 - \exp_after:wN \use_i:nn - \exp_after:wN ; - #1 - \prg_break: \@@_item:n { } \prg_break_point: - } -\cs_new:Npn \@@_indexed_map:Nw #1#2 ; #3 \@@_item:n #4 - { - #3 - #1 {#2} {#4} - \exp_after:wN \@@_indexed_map:Nw - \exp_after:wN #1 - \int_value:w \int_eval:w 1 + #2 ; - } -% \end{macrocode} -% \end{macro} -% % \subsection{Additions to \pkg{l3sys}} % % \begin{macrocode} @@ -1449,6 +1297,8 @@ % \end{macro} % \end{macro} % +% \subsection{Additions to \pkg{l3tl}} +% % \subsubsection{Building a token list} % % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 1a71aaf93fe..a05860e2868 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 5051cd7fd34..b19b71f3f99 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx index a042985a33a..178cd98b19e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -116,10 +116,9 @@ % number of data entries these require will depend on the number of % colors to be mixed. % \begin{texnote} -% The content of \cs{l_@@_current_tl} is space-separated as -% this allows it to be used directly in specials in many common cases. -% This internal representation is close to that used by the \texttt{dvips} -% program. +% The content of \cs{l_@@_current_tl} comprises two brace groups, the +% first containing the color model and the second containing the value(s) +% applicable in that model. % \end{texnote} % \end{variable} % @@ -142,7 +141,7 @@ %<*package> \@@_backend_pickup:N \l_@@_current_tl %</package> - \@@_select:V \l_@@_current_tl + \@@_select:N \l_@@_current_tl } % \end{macrocode} % \end{macro} @@ -154,28 +153,25 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\@@_select:n, \@@_select:V} -% \begin{macro}{\@@_select:w} +% \begin{macro}{\@@_select:N} +% \begin{macro}{\@@_select:nn} % Take an internal color specification and pass it to the driver. This code % is needed to ensure the current color but will also be used by the % higher-level experimental material. % \begin{macrocode} -\cs_new_protected:Npn \@@_select:n #1 - { \@@_select:w #1 \s_@@_stop } -\cs_generate_variant:Nn \@@_select:n { V } -\cs_new_protected:Npn \@@_select:w #1 ~ #2 \s_@@_stop - { \use:c { @@_backend_ #1 :w } #2 \s_@@_stop } +\cs_new_protected:Npn \@@_select:N #1 + { \exp_after:wN \@@_select:nn #1 } +\cs_new_protected:Npn \@@_select:nn #1#2 + { \use:c { @@_backend_ #1 :n } {#2} } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{variable}{\l_@@_current_tl} -% As the setting data is used only -% for specials, and those are always space-separated, it makes most sense to -% hold the internal information in that form. +% The current color, with the model and % \begin{macrocode} \tl_new:N \l_@@_current_tl -\tl_set:Nn \l_@@_current_tl { gray~0 } +\tl_set:Nn \l_@@_current_tl { { gray } { 0 } } % \end{macrocode} % \end{variable} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index f52b59a86ef..3aa7eb3998a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index 647c6ac1f79..012e0d32088 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -930,6 +930,20 @@ % \end{macro} % \end{macro} % +% \subsection{Deprecated \pkg{l3seq} functions} +% +% \begin{macro}[EXP, deprecated = 2023-01-01] +% { +% \seq_indexed_map_inline:Nn, \seq_indexed_map_function:NN +% } +% \begin{macrocode} +\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_inline:Nn } +\cs_gset:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn } +\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_function:NN } +\cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN } +% \end{macrocode} +% \end{macro} +% % \subsubsection{Deprecated \pkg{l3tl} functions} % % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index 5a5a8714a96..ffb7269f492 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/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 2020-06-03} +% \date{Released 2020-06-18} % \maketitle % \tableofcontents % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index 1651afd3e22..a334b443d02 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index bb8218281b7..df60bcd3ab8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index e93d117612b..c189e4bdd95 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx index 85926053240..5f3a74fb0d0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 281ef1a9b7f..de8f7b5046f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index c0dff407321..3ef09ee2c7b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % \maketitle % % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx index 46d089b2c66..adce22a4265 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 7d01b20929c..fd1cffd4948 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index 15150ba29d2..8c8d4749181 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index 42597305e65..93835e8c71c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index 445f206b511..67960e47fe6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 9f08120f3b0..26c7ed784a3 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index 442d10c798d..28257218e7e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index 2815ad46706..25e1d1cb9dc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index 15cdb3b3cd2..281e5339d0a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 123c376a679..6c68c6181e1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % \maketitle % % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx index 28d41e3d065..dcf57a15f99 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index ff90a196264..81b652565ae 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index 0338cc9e764..da04ae867c2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 9e05786b9ae..a3d0ca4a8f8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index 3e4f8659c32..6ab5647a82a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index c15b4c7b9e6..e63035f68e8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index 4032b445815..c9dd6209f66 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index 0ff70d14655..0a71938f2b2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 6fe7da633c0..56181c77b80 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index af1e78d3ed2..f7182ea0920 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -423,6 +423,46 @@ % all (see the discussion of message redirection). % \end{function} % +% \subsection{Expandable error messages} +% +% In very rare cases it may be necessary to produce errors in an +% expansion-only context. The functions in this section should only be +% used if there is no alternative approach using \cs{msg_error:nnnnnn} +% or other non-expandable commands from the previous section. Despite +% having a similar interface as non-expandable messages, expandable +% errors must be handled internally very differently from normal error +% messages, as none of the tools to print to the terminal or the log +% file are expandable. As a result, short-hands such as |\{| or |\\| do +% not work, and messages must be very short (with default settings, +% they are truncated after approximately 50 characters). It is +% advisable to ensure that the message is understandable even when +% truncated, by putting the most important information up front. +% Another particularity of expandable messages is that they +% cannot be redirected or turned off by the user. +% +% \begin{function}[EXP, added = 2015-08-06, updated = 2019-02-28] +% { +% \msg_expandable_error:nnnnnn , +% \msg_expandable_error:nnnnn , +% \msg_expandable_error:nnnn , +% \msg_expandable_error:nnn , +% \msg_expandable_error:nn , +% \msg_expandable_error:nnffff , +% \msg_expandable_error:nnfff , +% \msg_expandable_error:nnff , +% \msg_expandable_error:nnf , +% } +% \begin{syntax} +% \cs{msg_expandable_error:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} +% \end{syntax} +% Issues an \enquote{Undefined error} message from \TeX{} itself +% using the undefined control sequence \cs{::error} then prints +% \enquote{! \meta{module}: }\meta{error message}, which should be +% short. With default settings, anything beyond approximately $60$ +% characters long (or bytes in some engines) is cropped. A leading +% space might be removed as well. +% \end{function} +% % \section{Redirecting messages} % % Each message has a \enquote{name}, which can be used to alter the behaviour @@ -2098,6 +2138,56 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}[EXP] +% { +% \msg_expandable_error:nnnnnn , +% \msg_expandable_error:nnnnn , +% \msg_expandable_error:nnnn , +% \msg_expandable_error:nnn , +% \msg_expandable_error:nn , +% \msg_expandable_error:nnffff , +% \msg_expandable_error:nnfff , +% \msg_expandable_error:nnff , +% \msg_expandable_error:nnf +% } +% \begin{macro}{\@@_expandable_error_module:nn} +% Pass to an auxiliary the message to display and the module name +% \begin{macrocode} +\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6 + { + \exp_args:Ne \@@_expandable_error_module:nn + { + \exp_args:Nc \exp_args:Noooo + { \c_@@_text_prefix_tl #1 / #2 } + { \tl_to_str:n {#3} } + { \tl_to_str:n {#4} } + { \tl_to_str:n {#5} } + { \tl_to_str:n {#6} } + } + {#1} + } +\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5 + { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } } +\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4 + { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } } +\cs_new:Npn \msg_expandable_error:nnn #1#2#3 + { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } } +\cs_new:Npn \msg_expandable_error:nn #1#2 + { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } } +\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff } +\cs_generate_variant:Nn \msg_expandable_error:nnnnn { nnfff } +\cs_generate_variant:Nn \msg_expandable_error:nnnn { nnff } +\cs_generate_variant:Nn \msg_expandable_error:nnn { nnf } +\cs_new:Npn \@@_expandable_error_module:nn #1#2 + { + \exp_after:wN \exp_after:wN + \exp_after:wN \@@_use_none_delimit_by_s_stop:w + \use:n { \::error ! ~ #2 : ~ #1 } \s_@@_stop + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macrocode} %</initex|package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 23472c21411..3a49253af67 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index e699596a5bf..52d6794833d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index 7158f5e8480..a85becf5e34 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index c8e466b3cb4..3368fa159bc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index e20a6ca6ec0..30e355eada4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -914,13 +914,12 @@ % % \subsection{Helpers} % -% \begin{macro} -% {\@@_int_eval:w} +% \begin{macro}{\@@_int_eval:w} % Access the primitive: performance is key here, so we do not use % the slower route \emph{via} \cs{int_eval:n}. % \begin{macrocode} \cs_new_eq:NN \@@_int_eval:w \tex_numexpr:D -% \end{macrocode} +% \end{macrocode} % \end{macro} % % \begin{macro}{\@@_standard_escapechar:} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 7b2121719de..40d829f96cb 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % @@ -578,6 +578,26 @@ % \meta{items} are returned from left to right. % \end{function} % +% \begin{function}[rEXP,added = 2018-05-03]{\seq_map_indexed_function:NN} +% \begin{syntax} +% \cs{seq_map_indexed_function:NN} \meta{seq~var} \meta{function} +% \end{syntax} +% Applies \meta{function} to every entry in the \meta{sequence +% variable}. The \meta{function} should have signature |:nn|. It +% receives two arguments for each iteration: the \meta{index} (namely +% |1| for the first entry, then |2| and so on) and the \meta{item}. +% \end{function} +% +% \begin{function}[added = 2018-05-03]{\seq_map_indexed_inline:Nn} +% \begin{syntax} +% \cs{seq_map_indexed_inline:Nn} \meta{seq~var} \Arg{inline function} +% \end{syntax} +% Applies \meta{inline function} to every entry in the \meta{sequence +% variable}. The \meta{inline function} should consist of code which +% receives the \meta{index} (namely |1| for the first entry, then |2| +% and so on) as~|#1| and the \meta{item} as~|#2|. +% \end{function} +% % \begin{function}[rEXP, updated = 2012-06-29]{\seq_map_break:} % \begin{syntax} % \cs{seq_map_break:} @@ -2018,6 +2038,50 @@ % \end{macrocode} % \end{macro} % +% \begin{macro} +% { +% \seq_map_indexed_function:NN, \seq_map_indexed_inline:Nn, +% \@@_map_indexed:nNN, \@@_map_indexed:Nw +% } +% Similar to \cs{seq_map_function:NN} but we keep track of the item +% index as a |;|-delimited argument of \cs{@@_map_indexed:Nw}. +% \begin{macrocode} +\cs_new:Npn \seq_map_indexed_function:NN #1#2 + { + \@@_map_indexed:NN #1#2 + \prg_break_point:Nn \seq_map_break: { } + } +\cs_new_protected:Npn \seq_map_indexed_inline:Nn #1#2 + { + \int_gincr:N \g__kernel_prg_map_int + \cs_gset_protected:cpn + { @@_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2} + \exp_args:NNc \@@_map_indexed:NN #1 + { @@_map_ \int_use:N \g__kernel_prg_map_int :w } + \prg_break_point:Nn \seq_map_break: + { \int_gdecr:N \g__kernel_prg_map_int } + } +\cs_new:Npn \@@_map_indexed:NN #1#2 + { + \exp_after:wN \@@_map_indexed:Nw + \exp_after:wN #2 + \int_value:w 1 + \exp_after:wN \use_i:nn + \exp_after:wN ; + #1 + \prg_break: \@@_item:n { } \prg_break_point: + } +\cs_new:Npn \@@_map_indexed:Nw #1#2 ; #3 \@@_item:n #4 + { + #3 + #1 {#2} {#4} + \exp_after:wN \@@_map_indexed:Nw + \exp_after:wN #1 + \int_value:w \int_eval:w 1 + #2 ; + } +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\seq_count:N, \seq_count:c} % \begin{macro}{\@@_count:w, \@@_count_end:w} % Since counting the items in a sequence is quite common, we optimize diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index d8a1466c2fb..7b534be25c8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index f614da1a7ef..9163b494d0e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index 4000a2d1f70..6a910b80400 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 97d8fa5b436..a6fad22d022 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index 911986e5d8c..8a27d4b78e8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index d2b228bb80d..b8e534b4b6e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 9509997cfde..2543dbebae7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 65032dbe3b9..00648a4b842 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index 23bac066573..a5662491e16 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index d265802b0f4..b10167ca25d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index b3780ba69ed..d12c5deeed7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index 109d860637b..28452d5a2c8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-03} +% \date{Released 2020-06-18} % % \maketitle % diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index a82491c6aaa..8f5e5c407e6 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2020-06-03}{} + {l3backend-dvipdfmx.def}{2020-06-18}{} {L3 backend support: dvipdfmx} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -52,8 +52,8 @@ { \tl_set:Nx #1 { - spot ~ - \exp_after:wN \use:n \current@color \c_space_tl 1 + { spot } + { \exp_after:wN \use:n \current@color \c_space_tl 1 } } } { @@ -62,33 +62,22 @@ } } \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 - { \tl_set:Nn #3 { #1 ~ #2 } } + { \tl_set:Nn #3 { {#1} {#2} } } } } -\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { - \__color_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop - { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop - { - \__color_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } -\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_select:n { #1 } } +\cs_new_protected:Npn \__color_backend_cmyk:n #1 + { \__color_backend_select:n { cmyk ~ #1 } } +\cs_new_protected:Npn \__color_backend_gray:n #1 + { \__color_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \__color_backend_rgb:n #1 + { \__color_backend_select:n { rgb ~ #1 } } +\cs_new_protected:Npn \__color_backend_spot:n #1 + { \__color_backend_select:n {#1} } \cs_new_protected:Npn \__color_backend_select:n #1 { \__kernel_backend_literal:n { color~push~ #1 } \group_insert_after:N \__color_backend_reset: } -\cs_generate_variant:Nn \__color_backend_select:n { x } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_backend_literal:n { color~pop } } %% File: l3backend-box.dtx @@ -219,7 +208,7 @@ { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { \fp_eval:n {#1} ~ M } } + { \__draw_backend_literal:x { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -232,38 +221,18 @@ { \__draw_backend_literal:n { 1 ~ j } } \cs_new_protected:Npn \__draw_backend_join_bevel: { \__draw_backend_literal:n { 2 ~ j } } -\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } +\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1 + { \__draw_backend_color_select:n { #1 ~ k } } +\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 + { \__draw_backend_color_select:n { #1 ~ K } } \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 - { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ g } } + { \__draw_backend_color_select:n { #1 ~ g } } \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 - { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3 - { - \__draw_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3 - { - \__draw_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } + { \__draw_backend_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1 + { \__draw_backend_color_select:n { #1 ~ rg } } +\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1 + { \__draw_backend_color_select:n { #1 ~ RG } } \cs_new_eq:NN \__draw_backend_color_select:n \__kernel_backend_literal_pdf:n \cs_generate_variant:Nn \__draw_backend_color_select:n { x } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 @@ -339,13 +308,8 @@ \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x - { - pdf:btrans~matrix~ - \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ - \fp_eval:n {#4} ~ \fp_eval:n {#5} ~ - 0 ~ 0 - } + \__kernel_backend_literal:n + { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 } \hbox_overlap_right:n { \box_use:N #1 } \__kernel_backend_literal:n { pdf:etrans } \__kernel_backend_scope_end: diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index 4c768d9628a..bf161ed1b35 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2020-06-03}{} + {l3backend-dvips.def}{2020-06-18}{} {L3 backend support: dvips} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -73,8 +73,8 @@ { \tl_set:Nx #1 { - spot ~ - \exp_after:wN \use:n \current@color \c_space_tl 1 + { spot } + { \exp_after:wN \use:n \current@color \c_space_tl 1 } } } { @@ -83,34 +83,23 @@ } } \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 - { \tl_set:Nn #3 { #1 ~ #2 } } + { \tl_set:Nn #3 { {#1} {#2} } } } } -\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { - \__color_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop - { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop - { - \__color_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } -\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_select:n { #1 } } +\cs_new_protected:Npn \__color_backend_cmyk:n #1 + { \__color_backend_select:n { cmyk ~ #1 } } +\cs_new_protected:Npn \__color_backend_gray:n #1 + { \__color_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \__color_backend_rgb:n #1 + { \__color_backend_select:n { rgb ~ #1 } } +\cs_new_protected:Npn \__color_backend_spot:n #1 + { \__color_backend_select:n {#1} } \cs_new_protected:Npn \__color_backend_select:n #1 { \__kernel_backend_literal:n { color~push~ #1 } \__kernel_backend_postscript:n { /color.fc~{ }~def } \group_insert_after:N \__color_backend_reset: } -\cs_generate_variant:Nn \__color_backend_select:n { x } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_backend_literal:n { color~pop } } %% File: l3backend-box.dtx @@ -324,7 +313,7 @@ { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { \fp_eval:n {#1} ~ setmiterlimit } } + { \__draw_backend_literal:n { #1 ~ setmiterlimit } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ setlinecap } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -337,61 +326,32 @@ { \__draw_backend_literal:n { 1 ~ setlinejoin } } \cs_new_protected:Npn \__draw_backend_join_bevel: { \__draw_backend_literal:n { 2 ~ setlinejoin } } -\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_fill:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - setcmykcolor - } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_stroke:x - { - cmyk ~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 - { \__draw_backend_color_fill:x { \fp_eval:n {#1} ~ setgray } } +\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1 + { \__draw_backend_color_fill:n { #1 ~ setcmykcolor } } +\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 + { \__draw_backend_color_stroke:n { cmyk ~ #1 } } \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 - { \__draw_backend_color_stroke:x { gray ~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3 - { - \__draw_backend_color_fill:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3 - { - \__draw_backend_color_stroke:x - { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } + { \__draw_backend_color_fill:n { #1 ~ setgray } } +\cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 + { \__draw_backend_color_stroke:n { gray ~ #1 } } +\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1 + { \__draw_backend_color_fill:n { #1 ~ setrgbcolor } } +\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1 + { \__draw_backend_color_stroke:n { rgb ~ #1 } } \cs_new_protected:Npn \__draw_backend_color_fill:n #1 { \__kernel_backend_postscript:n { /color.fc ~ { #1 } ~ def } } -\cs_generate_variant:Nn \__draw_backend_color_fill:n { x } \cs_new_protected:Npn \__draw_backend_color_stroke:n #1 { \__kernel_backend_literal:n { color~push~#1 } \group_insert_after:N \__draw_color_reset: } -\cs_generate_variant:Nn \__draw_backend_color_stroke:n { x } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 { \__draw_backend_literal:n - { - [ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - 0 ~ 0 - ] ~ - concat - } + { [ #1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat } } \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index 06d084a246d..a8c31ce3c10 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2020-06-03}{} + {l3backend-dvisvgm.def}{2020-06-18}{} {L3 backend support: dvisvgm} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -53,8 +53,8 @@ { \tl_set:Nx #1 { - spot ~ - \exp_after:wN \use:n \current@color \c_space_tl 1 + { spot } + { \exp_after:wN \use:n \current@color \c_space_tl 1 } } } { @@ -63,33 +63,22 @@ } } \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 - { \tl_set:Nn #3 { #1 ~ #2 } } + { \tl_set:Nn #3 { {#1} {#2} } } } } -\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { - \__color_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop - { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop - { - \__color_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } -\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_select:n { #1 } } +\cs_new_protected:Npn \__color_backend_cmyk:n #1 + { \__color_backend_select:n { cmyk ~ #1 } } +\cs_new_protected:Npn \__color_backend_gray:n #1 + { \__color_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \__color_backend_rgb:n #1 + { \__color_backend_select:n { rgb ~ #1 } } +\cs_new_protected:Npn \__color_backend_spot:n #1 + { \__color_backend_select:n {#1} } \cs_new_protected:Npn \__color_backend_select:n #1 { \__kernel_backend_literal:n { color~push~ #1 } \group_insert_after:N \__color_backend_reset: } -\cs_generate_variant:Nn \__color_backend_select:n { x } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_backend_literal:n { color~pop } } %% File: l3backend-box.dtx @@ -353,7 +342,7 @@ \cs_new_protected:Npn \__draw_backend_linewidth:n #1 { \__draw_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } } + { \__draw_backend_scope:x { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -366,25 +355,21 @@ { \__draw_backend_scope:n { stroke-linejoin="round" } } \cs_new_protected:Npn \__draw_backend_join_bevel: { \__draw_backend_scope:n { stroke-linejoin="bevel" } } -\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1 + { \__draw_backend_color_fill_cmyk:w #1 \s__draw_stop } +\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:w + #1 ~ #2 ~ #3 ~ #4 \s__draw_stop { \use:x { \__draw_backend_color_fill:nnn - { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } } - { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } } - { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } } - } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} + { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } } } } +\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 + { \__draw_backend_select:n { cmyk ~ #1 } } \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 { \use:x @@ -397,7 +382,7 @@ { \__draw_backend_color_fill:nnn {#1} {#1} {#1} } \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 { \__draw_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1 { \use:x { @@ -422,24 +407,14 @@ " } } -\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3 - { - \__draw_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } +\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1 + { \__draw_backend_select:n { rgb ~ #1 } } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 { \__draw_backend_scope:n { transform = - " - matrix - ( - \fp_eval:n {#1} , \fp_eval:n {#2} , - \fp_eval:n {#3} , \fp_eval:n {#4} , - 0pt , 0pt - ) - " + " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) " } } \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5#6#7 diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def index 1e89dc857e6..688d84b9c79 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdfmode.def}{2020-06-03}{} + {l3backend-pdfmode.def}{2020-06-18}{} {L3 backend support: PDF mode} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -82,20 +82,20 @@ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7 { \str_if_eq:nnTF {#2} { g } - { \tl_set:Nn #7 { gray ~ #1 } } + { \tl_set:Nn #7 { { gray } {#1} } } { \str_if_eq:nnTF {#4} { rg } - { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } } + { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } } { \str_if_eq:nnTF {#5} { k } - { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } } + { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } } { \str_if_eq:nnTF {#2} { cs } { - \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 } + \tl_set:Nx #7 { { spot } { \use_none:n #1 ~ #5 } } } { - \tl_set:Nn #7 { gray ~ 0 } + \tl_set:Nn #7 { { gray } { 0 } } } } } @@ -104,40 +104,16 @@ } } \int_new:N \l__kernel_color_stack_int -\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { - \use:x - { - \__color_backend_cmyk:nnnn - { \fp_eval:n {#1} } - { \fp_eval:n {#2} } - { \fp_eval:n {#3} } - { \fp_eval:n {#4} } - } - } -\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 - { - \__color_backend_select:n - { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } - } -\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop - { \exp_args:Nx \__color_backend_gray:n { \fp_eval:n {#1} } } +\cs_new_protected:Npn \__color_backend_cmyk:n #1 + { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } } \cs_new_protected:Npn \__color_backend_gray:n #1 { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \__color_backend_rgb:w #1~ #2 ~ #3 \s__color_stop - { - \use:x - { - \__color_backend_rgb:nnn - { \fp_eval:n {#1} } - { \fp_eval:n {#2} } - { \fp_eval:n {#3} } - } - } -\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 - { \__color_backend_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } } +\cs_new_protected:Npn \__color_backend_rgb:n #1 + { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } } +\cs_new_protected:Npn \__color_backend_spot:n #1 + { \__color_backend_spot:w #1 \s__color_stop } \cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } } + { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_protected:Npx \__color_backend_select:n #1 { \cs_if_exist:NTF \tex_pdfextension:D @@ -146,7 +122,6 @@ \exp_not:N \l__kernel_color_stack_int push {#1} \group_insert_after:N \exp_not:N \__color_backend_reset: } -\cs_generate_variant:Nn \__color_backend_select:n { x } \cs_new_protected:Npx \__color_backend_reset: { \cs_if_exist:NTF \tex_pdfextension:D @@ -295,7 +270,7 @@ { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { \fp_eval:n {#1} ~ M } } + { \__draw_backend_literal:x { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -308,38 +283,18 @@ { \__draw_backend_literal:n { 1 ~ j } } \cs_new_protected:Npn \__draw_backend_join_bevel: { \__draw_backend_literal:n { 2 ~ j } } -\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } +\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1 + { \__draw_backend_color_select:n { #1 ~ k } } +\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 + { \__draw_backend_color_select:n { #1 ~ K } } \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 - { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ g } } + { \__draw_backend_color_select:n { #1 ~ g } } \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 - { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3 - { - \__draw_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3 - { - \__draw_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } + { \__draw_backend_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1 + { \__draw_backend_color_select:n { #1 ~ rg } } +\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1 + { \__draw_backend_color_select:n { #1 ~ RG } } \cs_new_protected:Npx \__draw_backend_color_select:n #1 { \cs_if_exist:NTF \tex_pdfextension:D @@ -358,11 +313,7 @@ \cs_generate_variant:Nn \__draw_backend_color_select:n { x } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 { - \__kernel_backend_matrix:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } + \__kernel_backend_matrix:n { #1 ~ #2 ~ #3 ~ #4 } } \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def index e385c1bcf80..2a093aae8dc 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xdvipdfmx.def}{2020-06-03}{} + {l3backend-xdvipdfmx.def}{2020-06-18}{} {L3 backend support: xdvipdfmx} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -52,8 +52,8 @@ { \tl_set:Nx #1 { - spot ~ - \exp_after:wN \use:n \current@color \c_space_tl 1 + { spot } + { \exp_after:wN \use:n \current@color \c_space_tl 1 } } } { @@ -62,33 +62,22 @@ } } \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 - { \tl_set:Nn #3 { #1 ~ #2 } } + { \tl_set:Nn #3 { {#1} {#2} } } } } -\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { - \__color_backend_select:x - { - cmyk~ - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop - { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop - { - \__color_backend_select:x - { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } - } -\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_select:n { #1 } } +\cs_new_protected:Npn \__color_backend_cmyk:n #1 + { \__color_backend_select:n { cmyk ~ #1 } } +\cs_new_protected:Npn \__color_backend_gray:n #1 + { \__color_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \__color_backend_rgb:n #1 + { \__color_backend_select:n { rgb ~ #1 } } +\cs_new_protected:Npn \__color_backend_spot:n #1 + { \__color_backend_select:n {#1} } \cs_new_protected:Npn \__color_backend_select:n #1 { \__kernel_backend_literal:n { color~push~ #1 } \group_insert_after:N \__color_backend_reset: } -\cs_generate_variant:Nn \__color_backend_select:n { x } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_backend_literal:n { color~pop } } %% File: l3backend-box.dtx @@ -219,7 +208,7 @@ { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { \fp_eval:n {#1} ~ M } } + { \__draw_backend_literal:x { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -232,38 +221,18 @@ { \__draw_backend_literal:n { 1 ~ j } } \cs_new_protected:Npn \__draw_backend_join_bevel: { \__draw_backend_literal:n { 2 ~ j } } -\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__draw_backend_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } +\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1 + { \__draw_backend_color_select:n { #1 ~ k } } +\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 + { \__draw_backend_color_select:n { #1 ~ K } } \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 - { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ g } } + { \__draw_backend_color_select:n { #1 ~ g } } \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 - { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3 - { - \__draw_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3 - { - \__draw_backend_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } + { \__draw_backend_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1 + { \__draw_backend_color_select:n { #1 ~ rg } } +\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1 + { \__draw_backend_color_select:n { #1 ~ RG } } \cs_new_eq:NN \__draw_backend_color_select:n \__kernel_backend_literal_pdf:n \cs_generate_variant:Nn \__draw_backend_color_select:n { x } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 @@ -339,13 +308,8 @@ \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x - { - pdf:btrans~matrix~ - \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ - \fp_eval:n {#4} ~ \fp_eval:n {#5} ~ - 0 ~ 0 - } + \__kernel_backend_literal:n + { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 } \hbox_overlap_right:n { \box_use:N #1 } \__kernel_backend_literal:n { pdf:etrans } \__kernel_backend_scope_end: diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty index 460e957494e..8cfd64a9f3c 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty @@ -20,7 +20,7 @@ %% %% File: l3benchmark.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3benchmark}{2020-06-03}{} +\ProvidesExplPackage{l3benchmark}{2020-06-18}{} {L3 Experimental benchmarking} \sys_if_engine_luatex:TF { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty index fb13a807d29..05010d629cf 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty @@ -20,7 +20,7 @@ %% %% File: l3cctab.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3cctab}{2020-06-03}{} +\ProvidesExplPackage{l3cctab}{2020-06-18}{} {L3 Experimental category code tables} \int_new:N \g__cctab_allocate_int \int_gset:Nn \g__cctab_allocate_int { -1 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index 86ebda3e33e..5020a57c4dd 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,7 +20,7 @@ %% %% File: l3color.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2020-06-03}{} +\ProvidesExplPackage{l3color}{2020-06-18}{} {L3 Experimental color support} \tl_new:N \l__color_internal_tl \scan_new:N \s__color_mark @@ -33,13 +33,13 @@ \cs_new_protected:Npn \__color_extract:nNN #1#2#3 { \exp_after:wN \exp_after:wN \exp_after:wN - \__color_extract:NNw + \__color_extract:NNnn \exp_after:wN \exp_after:wN \exp_after:wN #2 \exp_after:wN \exp_after:wN \exp_after:wN #3 - \cs:w l__color_named_ #1 _tl \cs_end: \s__color_stop + \cs:w l__color_named_ #1 _tl \cs_end: } \cs_generate_variant:Nn \__color_extract:nNN { V } -\cs_new_protected:Npn \__color_extract:NNw #1#2 #3 ~ #4 \s__color_stop +\cs_new_protected:Npn \__color_extract:NNnn #1#2#3#4 { \tl_set:Nn #1 {#3} \tl_set:Nn #2 {#4} @@ -117,7 +117,7 @@ \__color_extract:nNN {#2} \l__color_model_tl \l__color_value_tl \__color_parse_loop:w #3 ! ! ! ! \s__color_stop \tl_set:Nx \l__color_internal_tl - { \l__color_model_tl \c_space_tl \l__color_value_tl } + { { \l__color_model_tl } { \l__color_value_tl } } \exp_args:NNNV \group_end: \tl_set:Nn #1 \l__color_internal_tl } @@ -216,26 +216,30 @@ \fp_eval:n { #5 * #1 + #9 * ( 1 - #1 ) } } \cs_new:Npn \__color_parse_model_gray:w #1 , #2 \s__color_stop - { gray ~ \__color_parse_number:n {#1} } + { { gray } { \__color_parse_number:n {#1} } } \cs_new:Npn \__color_parse_model_rgb:w #1 , #2 , #3 , #4 \s__color_stop { - rgb ~ - \__color_parse_number:n {#1} ~ - \__color_parse_number:n {#2} ~ - \__color_parse_number:n {#3} + { rgb } + { + \__color_parse_number:n {#1} ~ + \__color_parse_number:n {#2} ~ + \__color_parse_number:n {#3} + } } \cs_new:Npn \__color_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s__color_stop { - cmyk ~ - \__color_parse_number:n {#1} ~ - \__color_parse_number:n {#2} ~ - \__color_parse_number:n {#3} ~ - \__color_parse_number:n {#4} + { cmyk } + { + \__color_parse_number:n {#1} ~ + \__color_parse_number:n {#2} ~ + \__color_parse_number:n {#3} ~ + \__color_parse_number:n {#4} + } } \cs_new:Npn \__color_parse_model_spot:w #1 , #2 \s__color_stop { - spot ~ - \__color_parse_spot_aux:w #1 ! 100 ! \s__color_stop + { spot } + { \__color_parse_spot_aux:w #1 ! 100 ! \s__color_stop } } \cs_new:Npn \__color_parse_spot_aux:w #1 ! #2 ! #3 \s__color_stop { #1 ~ \fp_eval:n { #2 / 100 } } @@ -250,9 +254,11 @@ } \cs_new:Npn \__color_parse_model_hsb:nnn #1#2#3 { - rgb ~ - \exp_args:Ne \__color_parse_model_hsb_aux:nnn - { \fp_eval:n { 6 * #1 } } {#2} {#3} + { rgb } + { + \exp_args:Ne \__color_parse_model_hsb_aux:nnn + { \fp_eval:n { 6 * #1 } } {#2} {#3} + } } \cs_new:Npn \__color_parse_model_hsb_aux:nnn #1#2#3 { @@ -292,34 +298,38 @@ { \__color_parse_model_HTML_aux:w #1 0 0 0 0 0 0 \s__color_stop } \cs_new:Npn \__color_parse_model_HTML_aux:w #1#2#3#4#5#6#7 \s__color_stop { - rgb ~ - \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~ - \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~ - \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) } + { rgb } + { + \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~ + \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~ + \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) } + } } \cs_new:Npn \__color_parse_model_RGB:w #1 , #2 , #3 , #4 \s__color_stop { - rgb ~ - \fp_eval:n { round(#1 / 255,5) } ~ - \fp_eval:n { round(#2 / 255,5) } ~ - \fp_eval:n { round(#3 / 255,5) } + { rgb } + { + \fp_eval:n { round(#1 / 255,5) } ~ + \fp_eval:n { round(#2 / 255,5) } ~ + \fp_eval:n { round(#3 / 255,5) } + } } \tl_new:N \l_color_fixed_model_tl \cs_new_protected:Npn \__color_check_model:N #1 { \tl_if_empty:NF \l_color_fixed_model_tl { - \exp_after:wN \__color_check_model:w #1 \s__color_stop + \exp_after:wN \__color_check_model:nn #1 \tl_if_eq:NNF \l__color_model_tl \l_color_fixed_model_tl { \__color_convert:VVN \l__color_model_tl \l_color_fixed_model_tl \l__color_value_tl } \tl_set:Nx #1 - { \l_color_fixed_model_tl \c_space_tl \l__color_value_tl } + { { \l_color_fixed_model_tl } { \l__color_value_tl } } } } -\cs_new_protected:Npn \__color_check_model:w #1 ~ #2 \s__color_stop +\cs_new_protected:Npn \__color_check_model:nn #1#2 { \tl_set:Nn \l__color_model_tl {#1} \tl_set:Nn \l__color_value_tl {#2} @@ -327,7 +337,7 @@ \cs_new_protected:Npn \__color_select: { \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl - \__color_select:V \l__color_current_tl + \__color_select:N \l__color_current_tl } \cs_new_protected:Npn \color_select:n #1 { @@ -344,7 +354,7 @@ \cs_if_exist:cTF { __color_parse_model_ #1 :w } { \tl_set:Nx #3 - { \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop } + { \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop } \__color_check_model:N #3 } { @@ -399,21 +409,17 @@ {#1} { \__color_if_defined:nTF {#1} - { \exp_last_unbraced:Nv \__color_show:w { l__color_named_ #1 _tl } \s__color_stop } + { \exp_last_unbraced:Nv \__color_show:nn { l__color_named_ #1 _tl } } { } } { } { } } -\cs_new:Npn \__color_show:w #1 ~ #2 \s__color_stop +\cs_new:Npn \__color_show:nn #1#2 { \msg_show_item_unbraced:nn { model } {#1} - \exp_args:Nnf \msg_show_item_unbraced:nn { value } - { \use:c { __color_show_ #1 :w } #2 \s__color_stop } + \msg_show_item_unbraced:nn { value } {#2} } -\cs_new:Npn \__color_show_gray:w #1 \s__color_stop { #1 } -\cs_new:Npn \__color_show_rgb:w #1 ~ #2 ~ #3 \s__color_stop { #1 ,~ #2 ,~ #3 } -\cs_new:Npn \__color_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { #1 ,~ #2 ,~ #3 ,~ #4 } \__kernel_msg_new:nnnn { color } { unknown-color } { Unknown~color~'#1'. } { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index 76faead77f0..8c812a5529c 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -28,7 +28,7 @@ %% %% File: l3draw.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2020-06-03}{} +\ProvidesExplPackage{l3draw}{2020-06-18}{} {L3 Experimental core drawing support} \RequirePackage { l3color } \scan_new:N \s__draw_mark @@ -1677,7 +1677,7 @@ } \seq_new:N \l__draw_tmp_seq \cs_new_protected:Npn \draw_miterlimit:n #1 - { \__draw_backend_miterlimit:n { \fp_eval:n {#1} } } + { \exp_args:Nx \__draw_backend_miterlimit:n { \fp_eval:n {#1} } } \cs_new_protected:Npn \draw_cap_butt: { \__draw_backend_cap_butt: } \cs_new_protected:Npn \draw_cap_rectangle: { \__draw_backend_cap_rectangle: } \cs_new_protected:Npn \draw_cap_round: { \__draw_backend_cap_round: } @@ -1695,21 +1695,10 @@ \cs_new_protected:Npn \__draw_color:nn #1#2 { \color_parse:nN {#2} \l__draw_color_tmp_tl - \__draw_color_aux:Vn \l__draw_color_tmp_tl {#1} - } -\cs_new_protected:Npn \__draw_color_aux:nn #1#2 - { \__draw_color:nw {#2} #1 \s__draw_stop } -\cs_generate_variant:Nn \__draw_color_aux:nn { V } -\cs_new_protected:Npn \__draw_color:nw #1#2 ~ #3 \s__draw_stop - { \use:c { __draw_color_ #2 :nw } {#1} #3 \s__draw_stop } -\cs_new_protected:Npn \__draw_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \s__draw_stop - { \use:c { __draw_backend_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} } -\cs_new_protected:Npn \__draw_color_gray:nw #1#2 \s__draw_stop - { \use:c { __draw_backend_color_ #1 _gray:n } {#2} } -\cs_new_protected:Npn \__draw_color_rgb:nw #1#2 ~ #3 ~ #4 \s__draw_stop - { \use:c { __draw_backend_color_ #1 _rgb:nnn } {#2} {#3} {#4} } -\cs_new_protected:Npn \__draw_color_spot:nw #1#2 ~ #3 \s__draw_stop - { \use:c { __draw_backend_color_ #1 _spot:nn } {#2} {#3} } + \exp_after:wN \__draw_color:nnn \l__draw_color_tmp_tl {#1} + } +\cs_new_protected:Npn \__draw_color:nnn #1#2#3 + { \use:c { __draw_backend_color_ #3 _ #1 :n } {#2} } %% File: l3draw-transforms.dtx \bool_new:N \l__draw_matrix_active_bool \fp_new:N \l__draw_matrix_a_fp diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty index 807a3339bf7..1b43f2d5701 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty @@ -20,7 +20,7 @@ %% %% File: l3graphics.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3graphics}{2020-06-03}{} +\ProvidesExplPackage{l3graphics}{2020-06-18}{} {L3 Experimental graphics inclusion support} \ior_new:N \l__graphics_tmp_ior \tl_new:N \l__graphics_tmp_tl diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty index 255f388a75f..937f0a65c35 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty @@ -20,7 +20,7 @@ %% %% File: l3pdf.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3pdf}{2020-06-03}{} +\ProvidesExplPackage{l3pdf}{2020-06-18}{} {L3 Experimental core PDF support} \scan_new:N \s__pdf_stop \bool_new:N \g__pdf_init_bool diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index a0b0da8da52..444c8280fcd 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -20,7 +20,7 @@ %% %% File: l3str-format.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2020-06-03}{} +\ProvidesExplPackage{l3str-format}{2020-06-18}{} {L3 Experimental string formatting} \cs_generate_variant:Nn \use:nn { nf } \cs_generate_variant:Nn \use:nnn { fnf } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty index 92c47b4066a..53e0ebf675b 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty @@ -20,7 +20,7 @@ %% %% File: l3sys-shell.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3sys-shell}{2020-06-03}{} +\ProvidesExplPackage{l3sys-shell}{2020-06-18}{} {L3 Experimental system shell functions} \scan_new:N \s__sys_stop \quark_new:N \q__sys_nil diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty index af5f8feeb48..d87a6c8fc7e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty @@ -20,7 +20,7 @@ %% %% File: xcoffins.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xcoffins}{2020-06-03}{} +\ProvidesExplPackage{xcoffins}{2020-06-18}{} {L3 Experimental design level coffins} \keys_define:nn { coffin } { diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty index 7de602702be..00729fb634f 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2020-06-03}{} +\ProvidesExplPackage{l3galley}{2020-06-18}{} {L3 Experimental galley code} \int_new:N \l__galley_tmp_int \seq_new:N \g__galley_tmpa_seq diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty index 8b61537746d..ef965f138dd 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -20,7 +20,7 @@ %% %% File: xgalley.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xgalley}{2020-06-03}{} +\ProvidesExplPackage{xgalley}{2020-06-18}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} \clist_new:N \l__galley_tmpa_clist diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index d1eab62be8b..c954b30dfb2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -68,7 +68,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-03}% +\def\ExplFileDate{2020-06-18}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -6410,6 +6410,39 @@ } \cs_generate_variant:Nn \seq_map_variable:NNn { Nc } \cs_generate_variant:Nn \seq_map_variable:NNn { c , cc } +\cs_new:Npn \seq_map_indexed_function:NN #1#2 + { + \__seq_map_indexed:NN #1#2 + \prg_break_point:Nn \seq_map_break: { } + } +\cs_new_protected:Npn \seq_map_indexed_inline:Nn #1#2 + { + \int_gincr:N \g__kernel_prg_map_int + \cs_gset_protected:cpn + { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2} + \exp_args:NNc \__seq_map_indexed:NN #1 + { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } + \prg_break_point:Nn \seq_map_break: + { \int_gdecr:N \g__kernel_prg_map_int } + } +\cs_new:Npn \__seq_map_indexed:NN #1#2 + { + \exp_after:wN \__seq_map_indexed:Nw + \exp_after:wN #2 + \int_value:w 1 + \exp_after:wN \use_i:nn + \exp_after:wN ; + #1 + \prg_break: \__seq_item:n { } \prg_break_point: + } +\cs_new:Npn \__seq_map_indexed:Nw #1#2 ; #3 \__seq_item:n #4 + { + #3 + #1 {#2} {#4} + \exp_after:wN \__seq_map_indexed:Nw + \exp_after:wN #1 + \int_value:w \int_eval:w 1 + #2 ; + } \cs_new:Npn \seq_count:N #1 { \int_eval:n @@ -10823,6 +10856,37 @@ \cs_generate_variant:Nn \__kernel_msg_expandable_error:nnnnn { nnfff } \cs_generate_variant:Nn \__kernel_msg_expandable_error:nnnn { nnff } \cs_generate_variant:Nn \__kernel_msg_expandable_error:nnn { nnf } +\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6 + { + \exp_args:Ne \__msg_expandable_error_module:nn + { + \exp_args:Nc \exp_args:Noooo + { \c__msg_text_prefix_tl #1 / #2 } + { \tl_to_str:n {#3} } + { \tl_to_str:n {#4} } + { \tl_to_str:n {#5} } + { \tl_to_str:n {#6} } + } + {#1} + } +\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5 + { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } } +\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4 + { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } } +\cs_new:Npn \msg_expandable_error:nnn #1#2#3 + { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } } +\cs_new:Npn \msg_expandable_error:nn #1#2 + { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } } +\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff } +\cs_generate_variant:Nn \msg_expandable_error:nnnnn { nnfff } +\cs_generate_variant:Nn \msg_expandable_error:nnnn { nnff } +\cs_generate_variant:Nn \msg_expandable_error:nnn { nnf } +\cs_new:Npn \__msg_expandable_error_module:nn #1#2 + { + \exp_after:wN \exp_after:wN + \exp_after:wN \__msg_use_none_delimit_by_s_stop:w + \use:n { \::error ! ~ #2 : ~ #1 } \s__msg_stop + } %% File: l3file.dtx \tl_new:N \l__ior_internal_tl \int_const:Nn \c__ior_term_ior { 16 } @@ -26688,16 +26752,15 @@ \cs_new_protected:Npn \color_ensure_current: { \__color_backend_pickup:N \l__color_current_tl - \__color_select:V \l__color_current_tl + \__color_select:N \l__color_current_tl } \scan_new:N \s__color_stop -\cs_new_protected:Npn \__color_select:n #1 - { \__color_select:w #1 \s__color_stop } -\cs_generate_variant:Nn \__color_select:n { V } -\cs_new_protected:Npn \__color_select:w #1 ~ #2 \s__color_stop - { \use:c { __color_backend_ #1 :w } #2 \s__color_stop } +\cs_new_protected:Npn \__color_select:N #1 + { \exp_after:wN \__color_select:nn #1 } +\cs_new_protected:Npn \__color_select:nn #1#2 + { \use:c { __color_backend_ #1 :n } {#2} } \tl_new:N \l__color_current_tl -\tl_set:Nn \l__color_current_tl { gray~0 } +\tl_set:Nn \l__color_current_tl { { gray } { 0 } } %% File: l3coffins.dtx \box_new:N \l__coffin_internal_box \dim_new:N \l__coffin_internal_dim @@ -30448,37 +30511,6 @@ \cs:w flag~#1 \cs_end: 0 ; \fi: } -\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6 - { - \exp_args:Ne \__msg_expandable_error_module:nn - { - \exp_args:Nc \exp_args:Noooo - { \c__msg_text_prefix_tl #1 / #2 } - { \tl_to_str:n {#3} } - { \tl_to_str:n {#4} } - { \tl_to_str:n {#5} } - { \tl_to_str:n {#6} } - } - {#1} - } -\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5 - { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } } -\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4 - { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } } -\cs_new:Npn \msg_expandable_error:nnn #1#2#3 - { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } } -\cs_new:Npn \msg_expandable_error:nn #1#2 - { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } } -\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff } -\cs_generate_variant:Nn \msg_expandable_error:nnnnn { nnfff } -\cs_generate_variant:Nn \msg_expandable_error:nnnn { nnff } -\cs_generate_variant:Nn \msg_expandable_error:nnn { nnf } -\cs_new:Npn \__msg_expandable_error_module:nn #1#2 - { - \exp_after:wN \exp_after:wN - \exp_after:wN \__msg_use_none_delimit_by_s_stop:w - \use:n { \::error ! ~ #2 : ~ #1 } \s__msg_stop - } \cs_new_protected:Npn \msg_show_eval:Nn #1#2 { \exp_args:Nf \__msg_show_eval:nnN { #1 {#2} } {#2} \tl_show:n } \cs_new_protected:Npn \msg_log_eval:Nn #1#2 @@ -30619,39 +30651,6 @@ { \seq_set_from_inline_x:Nnn #1 {#2} { #3 {##1} } } \cs_new_protected:Npn \seq_gset_from_function:NnN #1#2#3 { \seq_gset_from_inline_x:Nnn #1 {#2} { #3 {##1} } } -\cs_new:Npn \seq_indexed_map_function:NN #1#2 - { - \__seq_indexed_map:NN #1#2 - \prg_break_point:Nn \seq_map_break: { } - } -\cs_new_protected:Npn \seq_indexed_map_inline:Nn #1#2 - { - \int_gincr:N \g__kernel_prg_map_int - \cs_gset_protected:cpn - { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2} - \exp_args:NNc \__seq_indexed_map:NN #1 - { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } - \prg_break_point:Nn \seq_map_break: - { \int_gdecr:N \g__kernel_prg_map_int } - } -\cs_new:Npn \__seq_indexed_map:NN #1#2 - { - \exp_after:wN \__seq_indexed_map:Nw - \exp_after:wN #2 - \int_value:w 1 - \exp_after:wN \use_i:nn - \exp_after:wN ; - #1 - \prg_break: \__seq_item:n { } \prg_break_point: - } -\cs_new:Npn \__seq_indexed_map:Nw #1#2 ; #3 \__seq_item:n #4 - { - #3 - #1 {#2} {#4} - \exp_after:wN \__seq_indexed_map:Nw - \exp_after:wN #1 - \int_value:w \int_eval:w 1 + #2 ; - } \str_const:Nx \c_sys_engine_version_str { \str_case:on \c_sys_engine_str diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index cb8d09c4f0d..52f1e1edb19 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-03}% +\def\ExplFileDate{2020-06-18}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 538c3fddab2..b385a59bd6e 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,26 +19,34 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-03}% +\def\ExplFileDate{2020-06-18}% \let\ExplLoaderFileDate\ExplFileDate \everyjob\expandafter{\the\everyjob \message{L3 programming layer <\ExplFileDate>}% } -\protected\def\ProvidesExplPackage#1#2#3#4% +\protected\def\ProvidesExplPackage + {\@expl@provides@file@@Nnnnnn\ProvidesPackage{Package}} +\protected\def\ProvidesExplClass + {\@expl@provides@file@@Nnnnnn\ProvidesClass{Document Class}} +\protected\def\ProvidesExplFile + {\@expl@provides@file@@Nnnnnn\ProvidesFile{File}} +\protected\long\def\@expl@provides@file@@Nnnnnn#1#2#3#4#5#6% {% - \ProvidesPackage{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% + \ifnum0% + \ifdefined#11\fi + \ifx\relax#1\else1\fi + =11 + \expandafter#1% + \else + \@expl@provides@generic@@wnnw{#2}% + \fi + {#3}[{#4 \ifx\relax#5\relax\else v#5\space\fi #6}]% \ExplSyntaxOn - }% -\protected\def\ProvidesExplClass#1#2#3#4% - {% - \ProvidesClass{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% - \ExplSyntaxOn - }% -\protected\def\ProvidesExplFile#1#2#3#4% + } +\protected\long\def\@expl@provides@generic@@wnnw#1\fi#2[#3]% {% - \ProvidesFile{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% - \ExplSyntaxOn - }% + \immediate\write-1{#1: #2 #3}% + } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname tex\string _let:D\endcsname\relax \expandafter\@firstofone @@ -50,10 +58,13 @@ \expandafter\ifx\csname tex\string _let:D\endcsname\relax \expandafter\endinput \fi -\ifdefined\@pushfilenameaux +\ifcsname\detokenize{g__expl_reload_bool}\endcsname \ExplSyntaxOn + \bool_gset_true:N \g__expl_reload_bool +\else + \bool_new:N \g__expl_reload_bool \fi -\cs_if_exist:NF \c__expl_def_ext_tl +\tl_if_exist:NF \c__expl_def_ext_tl { \tl_const:Nn \c__expl_def_ext_tl { def } } \cs_gset_protected:Npn \__kernel_sys_configuration_load:n #1 { @@ -88,12 +99,19 @@ \sys_load_deprecation: } } -\tl_put_left:Nn \document +\cs_if_exist:NF \@expl@sys@load@backend@@ + { + \tl_put_left:Nn \document + { + \endgroup + \@expl@sys@load@backend@@ + \begingroup + } + } +\cs_gset_protected:Npn \@expl@sys@load@backend@@ { - \endgroup \str_if_exist:NF \c_sys_backend_str { \sys_load_backend:n { } } - \begingroup } \cs_if_free:cTF { ver@expl3.sty } { @@ -107,11 +125,16 @@ \reverse_if:N \if_cs_exist:N \s__expl_stop \scan_new:N \s__expl_stop \fi: -\tl_put_left:Nn \@pushfilename +\cs_if_exist:NF \@expl@push@filename@@ + { + \tl_put_left:Nn \@pushfilename { \@expl@push@filename@@ } + \tl_put_right:Nn \@pushfilename { \@expl@push@filename@aux@@ } + } +\cs_gset_protected:Npn \@expl@push@filename@@ { \exp_args:Nx \__kernel_file_input_push:n { - \tl_to_str:N \@currname + \tl_to_str:N \@currname . \tl_to_str:N \@currext } \tl_put_left:Nx \l__expl_status_stack_tl @@ -122,13 +145,17 @@ } \ExplSyntaxOff } -\tl_put_right:Nn \@pushfilename { \@pushfilenameaux } -\cs_set_protected:Npn \@pushfilenameaux #1#2#3 +\cs_gset_protected:Npn \@expl@push@filename@aux@@ #1#2#3 { \str_gset:Nn \g_file_curr_name_str {#3} #1 #2 {#3} } -\tl_put_right:Nn \@popfilename +\cs_if_exist:NF \@expl@pop@filename@@ + { + \tl_put_right:Nn \@popfilename + { \@expl@pop@filename@@ } + } +\cs_gset_protected:Npn \@expl@pop@filename@@ { \__kernel_file_input_pop: \tl_if_empty:NTF \l__expl_status_stack_tl diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 4ded77abe6b..17df13adb3f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,28 +19,36 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-03}% +\def\ExplFileDate{2020-06-18}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% \ExplFileDate\space L3 programming layer (loader) ]% -\protected\def\ProvidesExplPackage#1#2#3#4% +\protected\def\ProvidesExplPackage + {\@expl@provides@file@@Nnnnnn\ProvidesPackage{Package}} +\protected\def\ProvidesExplClass + {\@expl@provides@file@@Nnnnnn\ProvidesClass{Document Class}} +\protected\def\ProvidesExplFile + {\@expl@provides@file@@Nnnnnn\ProvidesFile{File}} +\protected\long\def\@expl@provides@file@@Nnnnnn#1#2#3#4#5#6% {% - \ProvidesPackage{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% + \ifnum0% + \ifdefined#11\fi + \ifx\relax#1\else1\fi + =11 + \expandafter#1% + \else + \@expl@provides@generic@@wnnw{#2}% + \fi + {#3}[{#4 \ifx\relax#5\relax\else v#5\space\fi #6}]% \ExplSyntaxOn - }% -\protected\def\ProvidesExplClass#1#2#3#4% - {% - \ProvidesClass{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% - \ExplSyntaxOn - }% -\protected\def\ProvidesExplFile#1#2#3#4% + } +\protected\long\def\@expl@provides@generic@@wnnw#1\fi#2[#3]% {% - \ProvidesFile{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]% - \ExplSyntaxOn - }% + \immediate\write-1{#1: #2 #3}% + } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname tex\string _let:D\endcsname\relax \expandafter\@firstofone @@ -52,10 +60,13 @@ \expandafter\ifx\csname tex\string _let:D\endcsname\relax \expandafter\endinput \fi -\ifdefined\@pushfilenameaux +\ifcsname\detokenize{g__expl_reload_bool}\endcsname \ExplSyntaxOn + \bool_gset_true:N \g__expl_reload_bool +\else + \bool_new:N \g__expl_reload_bool \fi -\cs_if_exist:NF \c__expl_def_ext_tl +\tl_if_exist:NF \c__expl_def_ext_tl { \tl_const:Nn \c__expl_def_ext_tl { def } } \cs_gset_protected:Npn \__kernel_sys_configuration_load:n #1 { @@ -71,7 +82,7 @@ \@onefilewithoptions {#1} [ ] [ ] \c__expl_def_ext_tl } -\cs_if_exist:NF \l__expl_options_clist +\clist_if_exist:NF \l__expl_options_clist { \clist_new:N \l__expl_options_clist } \DeclareOption* { \clist_put_right:NV \l__expl_options_clist \CurrentOption } @@ -103,14 +114,29 @@ \sys_load_deprecation: } } +\cs_if_exist:NF \@expl@sys@load@backend@@ + { + \tl_put_left:Nn \document + { + \endgroup + \@expl@sys@load@backend@@ + \begingroup + } + } +\cs_gset_protected:Npn \@expl@sys@load@backend@@ + { + \str_if_exist:NF \c_sys_backend_str + { \sys_load_backend:n { } } + } \keys_set:nV { sys } \l__expl_options_clist \str_if_exist:NF \c_sys_backend_str { \sys_load_backend:n { } } -\cs_if_exist:NT \@pushfilenameaux +\bool_if:NT \g__expl_reload_bool { \cs_gset_eq:NN \__kernel_sys_configuration_load:n \__kernel_sys_configuration_load_std:n - \endinput + \ExplSyntaxOff + \file_input_stop: } \cs_if_free:cTF { ver@expl3.sty } { @@ -124,11 +150,16 @@ \reverse_if:N \if_cs_exist:N \s__expl_stop \scan_new:N \s__expl_stop \fi: -\tl_put_left:Nn \@pushfilename +\cs_if_exist:NF \@expl@push@filename@@ + { + \tl_put_left:Nn \@pushfilename { \@expl@push@filename@@ } + \tl_put_right:Nn \@pushfilename { \@expl@push@filename@aux@@ } + } +\cs_gset_protected:Npn \@expl@push@filename@@ { \exp_args:Nx \__kernel_file_input_push:n { - \tl_to_str:N \@currname + \tl_to_str:N \@currname . \tl_to_str:N \@currext } \tl_put_left:Nx \l__expl_status_stack_tl @@ -139,13 +170,17 @@ } \ExplSyntaxOff } -\tl_put_right:Nn \@pushfilename { \@pushfilenameaux } -\cs_set_protected:Npn \@pushfilenameaux #1#2#3 +\cs_gset_protected:Npn \@expl@push@filename@aux@@ #1#2#3 { \str_gset:Nn \g_file_curr_name_str {#3} #1 #2 {#3} } -\tl_put_right:Nn \@popfilename +\cs_if_exist:NF \@expl@pop@filename@@ + { + \tl_put_right:Nn \@popfilename + { \@expl@pop@filename@@ } + } +\cs_gset_protected:Npn \@expl@pop@filename@@ { \__kernel_file_input_pop: \tl_if_empty:NTF \l__expl_status_stack_tl diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def index 2eb91079290..f088cf38802 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def @@ -207,6 +207,10 @@ \cs_gset:Npn \str_if_eq_x:nnF { \str_if_eq:eeF } \__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_if_eq:eeTF } \cs_gset:Npn \str_if_eq_x:nnTF { \str_if_eq:eeTF } +\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_inline:Nn } +\cs_gset:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn } +\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_function:NN } +\cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN } \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \file_get:nnN } \cs_gset_protected:Npn \tl_set_from_file:Nnn #1#2#3 { \file_get:nnN {#3} {#2} #1 } |