From a4410f9e5a2763c12cda6a12dd8241265fd0d169 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 10 Jan 2021 21:49:38 +0000 Subject: l3 (9jan21) git-svn-id: svn://tug.org/texlive/trunk@57375 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md | 13 +- Master/texmf-dist/doc/latex/l3backend/README.md | 4 +- .../doc/latex/l3backend/l3backend-code.pdf | Bin 773062 -> 786373 bytes Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md | 14 +- Master/texmf-dist/doc/latex/l3kernel/README.md | 4 +- Master/texmf-dist/doc/latex/l3kernel/expl3.pdf | Bin 590307 -> 590320 bytes .../texmf-dist/doc/latex/l3kernel/interface3.pdf | Bin 1571265 -> 1573631 bytes .../texmf-dist/doc/latex/l3kernel/interface3.tex | 4 +- .../texmf-dist/doc/latex/l3kernel/l3docstrip.pdf | Bin 263181 -> 263275 bytes Master/texmf-dist/doc/latex/l3kernel/l3news.pdf | Bin 384459 -> 384459 bytes Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf | Bin 113533 -> 113533 bytes Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf | Bin 140873 -> 140873 bytes Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf | Bin 143207 -> 143207 bytes Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf | Bin 107122 -> 107122 bytes Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf | Bin 105090 -> 105090 bytes Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf | Bin 140905 -> 140905 bytes Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf | Bin 119094 -> 119094 bytes Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf | Bin 152504 -> 152504 bytes Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf | Bin 241016 -> 241016 bytes Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf | Bin 145548 -> 145548 bytes Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf | Bin 164409 -> 164409 bytes Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf | Bin 197648 -> 197648 bytes .../texmf-dist/doc/latex/l3kernel/l3prefixes.csv | 2 + .../texmf-dist/doc/latex/l3kernel/l3prefixes.pdf | Bin 76183 -> 76251 bytes .../texmf-dist/doc/latex/l3kernel/l3styleguide.pdf | Bin 279953 -> 279972 bytes .../texmf-dist/doc/latex/l3kernel/l3styleguide.tex | 4 +- .../doc/latex/l3kernel/l3syntax-changes.pdf | Bin 228253 -> 228269 bytes .../doc/latex/l3kernel/l3syntax-changes.tex | 4 +- .../doc/latex/l3kernel/l3term-glossary.pdf | Bin 217624 -> 217632 bytes .../doc/latex/l3kernel/l3term-glossary.tex | 4 +- Master/texmf-dist/doc/latex/l3kernel/source3.pdf | Bin 5990023 -> 5995281 bytes Master/texmf-dist/doc/latex/l3kernel/source3.tex | 4 +- .../texmf-dist/dvips/l3backend/l3backend-dvips.pro | 2 +- .../source/latex/l3backend/l3backend-basics.dtx | 50 ++- .../source/latex/l3backend/l3backend-box.dtx | 4 +- .../source/latex/l3backend/l3backend-color.dtx | 382 +++++++++++++-------- .../source/latex/l3backend/l3backend-draw.dtx | 4 +- .../source/latex/l3backend/l3backend-graphics.dtx | 4 +- .../source/latex/l3backend/l3backend-header.dtx | 4 +- .../source/latex/l3backend/l3backend-pdf.dtx | 46 ++- .../source/latex/l3backend/l3backend.ins | 4 +- Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 6 +- Master/texmf-dist/source/latex/l3kernel/l3.ins | 6 +- .../texmf-dist/source/latex/l3kernel/l3basics.dtx | 4 +- .../source/latex/l3kernel/l3bootstrap.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3box.dtx | 4 +- .../source/latex/l3kernel/l3candidates.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3cctab.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3clist.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3coffins.dtx | 4 +- .../source/latex/l3kernel/l3color-base.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3debug.dtx | 4 +- .../source/latex/l3kernel/l3deprecation.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3doc.dtx | 6 +- .../source/latex/l3kernel/l3docstrip.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3expan.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3file.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3flag.dtx | 4 +- .../source/latex/l3kernel/l3fp-assign.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3fp-aux.dtx | 4 +- .../source/latex/l3kernel/l3fp-basics.dtx | 4 +- .../source/latex/l3kernel/l3fp-convert.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3fp-expo.dtx | 4 +- .../source/latex/l3kernel/l3fp-extended.dtx | 4 +- .../source/latex/l3kernel/l3fp-logic.dtx | 4 +- .../source/latex/l3kernel/l3fp-parse.dtx | 4 +- .../source/latex/l3kernel/l3fp-random.dtx | 4 +- .../source/latex/l3kernel/l3fp-round.dtx | 4 +- .../source/latex/l3kernel/l3fp-traps.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3fp-trig.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3fp.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3fparray.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3int.dtx | 4 +- .../source/latex/l3kernel/l3intarray.dtx | 4 +- .../source/latex/l3kernel/l3kernel-functions.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | 161 ++++++--- .../texmf-dist/source/latex/l3kernel/l3legacy.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3luatex.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3msg.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3names.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3prg.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3prop.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3quark.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3regex.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3seq.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3skip.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3sort.dtx | 4 +- .../source/latex/l3kernel/l3str-convert.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3str.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3sys.dtx | 12 +- .../source/latex/l3kernel/l3text-case.dtx | 4 +- .../source/latex/l3kernel/l3text-purify.dtx | 28 +- Master/texmf-dist/source/latex/l3kernel/l3text.dtx | 4 +- .../source/latex/l3kernel/l3tl-analysis.dtx | 4 +- Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3token.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3unicode.dtx | 4 +- .../tex/latex/l3backend/l3backend-dvipdfmx.def | 140 ++++++-- .../tex/latex/l3backend/l3backend-dvips.def | 7 +- .../tex/latex/l3backend/l3backend-dvisvgm.def | 6 +- .../tex/latex/l3backend/l3backend-luatex.def | 36 +- .../tex/latex/l3backend/l3backend-pdftex.def | 36 +- .../tex/latex/l3backend/l3backend-xetex.def | 140 ++++++-- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 110 +++--- .../tex/latex/l3kernel/expl3-generic.tex | 4 +- Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 4 +- Master/texmf-dist/tex/latex/l3kernel/expl3.lua | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3debug.def | 2 +- .../tex/latex/l3kernel/l3deprecation.def | 2 +- Master/texmf-dist/tex/latex/l3kernel/l3doc.cls | 2 +- .../texmf-dist/tex/latex/l3kernel/l3docstrip.tex | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88591.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso885910.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso885911.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso885913.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso885914.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso885915.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso885916.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88592.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88593.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88594.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88595.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88596.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88597.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88598.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88599.def | 2 +- 127 files changed, 998 insertions(+), 505 deletions(-) diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md index 61b75641de9..242cacf93aa 100644 --- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md @@ -6,6 +6,16 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2021-01-09] + +### Added +- Support for referencing last link with `(x)dvipdfmx` (requires an up-to-date + backend) + +### Changed +- Implementation of color wtih (x)dvipdfmx (requires an up-to-date + backend) + ## [2020-09-24] ### Fixed @@ -125,7 +135,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-09-24...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2021-01-09...HEAD +[2021-01-09]: https://github.com/latex3/latex3/compare/2020-09-24...2021-01-09 [2020-09-24]: https://github.com/latex3/latex3/compare/2020-09-11...2020-09-24 [2020-09-11]: https://github.com/latex3/latex3/compare/2020-09-01...2020-09-11 [2020-09-01]: https://github.com/latex3/latex3/compare/2020-08-07...2020-09-01 diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md index 0d40ed996b1..21f57acd743 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-09-24 +Release 2021-01-09 This package forms parts of `expl3`, and contains the code used to interface with backends (drivers) across the `expl3` codebase. The functions here are @@ -11,6 +11,6 @@ on an independent schedule. ----- -

Copyright (C) 2019,2020 The LaTeX3 Project
+

Copyright (C) 2019-2021 The LaTeX3 Project
http://latex-project.org/
All rights reserved.

diff --git a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf index 0be885472ac..f0a28c396f3 100644 Binary files a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf and b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md index 10e05200813..ce020127f45 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] +## [2021-01-09] + +### Added +- `\keyval_parse:nnn` + +### Changed +- `\keyval_parse:NNn` is set equal to `\keyval_parse:nnn` + +### Fixed +- Handling of encoding-specfic commands in `\text_purify:n` + ## [2020-12-07] ### Fixed @@ -815,7 +826,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-12-07...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2021-01-09...HEAD +[2021-01-09]: https://github.com/latex3/latex3/compare/2020-12-07...2021-01-09 [2020-12-07]: https://github.com/latex3/latex3/compare/2020-12-05...2020-12-07 [2020-12-05]: https://github.com/latex3/latex3/compare/2020-12-03...2020-12-05 [2020-12-03]: https://github.com/latex3/latex3/compare/2020-10-27...2020-12-03 diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md index b4146044e67..00087c46d8f 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-12-07 +Release 2021-01-09 Overview -------- @@ -80,6 +80,6 @@ the [LaTeX-L list](#Discussion) should be used. ----- -

Copyright (C) 1998-2012,2015-2020 The LaTeX3 Project
+

Copyright (C) 1998-2012,2015-2021 The LaTeX3 Project
http://latex-project.org/
All rights reserved.

diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf index d8f391aa0ed..f87cfdb041b 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf index d4129e66fd4..7d756df4619 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex index 2940d491477..bc2c61ff387 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex @@ -2,7 +2,7 @@ File: interfaces3.tex -Copyright (C) 1990-2011,2017-2020 The LaTeX3 Project +Copyright (C) 1990-2011,2017-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -54,7 +54,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2020-12-07} +\date{Released 2021-01-09} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf index a55d29b254d..7cac6864c4e 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf index 5d39e930745..107af7a97da 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf index 2e8b35dc525..36b89432353 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf index b9d2926fd4e..0e39a68409e 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf index 068def0bfc5..c48bc3a25f6 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf index dbc31a5fdab..98d34ef070f 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf index 8730edbf012..71958e1c4bc 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf index d61db5f17f2..bdec3b54d48 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf index 226e5aae4f8..6d8daca1e32 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf index d44db337be9..c17dbd55636 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf index 0d792547fac..2f102b2c54a 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf index 26130e3f1ff..3697b42045a 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf index e9c62ffafbc..637c1df8f06 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf index 6ba240b0591..7d690fd463b 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv index 46ce3a046b6..47a2abf9e04 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv +++ b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv @@ -164,6 +164,7 @@ qrbill,qrbill,Marei Peischl,https://github.com/peiTeX/qrbill,https://github.com/ quark,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27, randomwalk,randomwalk,Bruno Le Floch,https://github.com/blefloch/latex-randomwalk,https://github.com/blefloch/latex-randomwalk.git,https://github.com/blefloch/latex-randomwalk/issues,2013-03-16,2015-09-22, recursion,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12, +ref,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-12-24,2020-12-24, regex,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2018-04-06, reverse,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-28,2012-09-28, right,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12, @@ -175,6 +176,7 @@ sdaps,sdaps,Benjamin Berg,https://sdaps.org,https://github.com/sdaps/sdaps-class seq,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27, shipout,ltshipout,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2020-10-01,2020-10-01, siunitx,siunitx,Joseph Wright,https://github.com/josephwright/siunitx,https://github.com/josephwright/siunitx.git,https://github.com/josephwright/siunitx/issues,2012-11-04,2012-11-04, +skel,skeldoc,Magnus Lie Hetland,https://github.com/mlhetland/skeldoc.sty,https://github.com/mlhetland/skeldoc.sty.git,https://github.com/mlhetland/skeldoc.sty/issues,2021-01-04,2021-01-04, skip,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27, sort,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2017-02-13, space,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12, diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf index 6bf8a501e97..a71383c327b 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf index 3538053a0be..81ae7f0b4ec 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex index ac90e607df7..c5013154a39 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex @@ -2,7 +2,7 @@ File: l3styleguide.tex -Copyright (C) 2011,2012,2014-2020 The LaTeX3 Project +Copyright (C) 2011,2012,2014-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-12-07} +\date{Released 2021-01-09} \begin{document} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf index d19e3d7bb45..9bf1317663f 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex index 75552220057..3ae6759ea51 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex @@ -2,7 +2,7 @@ File: l3syntax-changes.tex -Copyright (C) 2011,2012,2017-2020 The LaTeX3 Project +Copyright (C) 2011,2012,2017-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-12-07} +\date{Released 2021-01-09} \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 index 1e22a89464f..8b35fa230c0 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex index bf2967e713e..88f1bc395c6 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex @@ -2,7 +2,7 @@ File: l3term-glossary.tex -Copyright (C) 2018-2020 The LaTeX3 Project +Copyright (C) 2018-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-12-07} +\date{Released 2021-01-09} \newcommand{\TF}{\textit{(TF)}} diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf index 2437a516783..05f9221ca1b 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex index 00c11e871fb..b1349ddcb77 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex @@ -2,7 +2,7 @@ File: source3.tex -Copyright (C) 1990-2012,2017-2020 The LaTeX3 Project +Copyright (C) 1990-2012,2017-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2020-12-07} +\date{Released 2021-01-09} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro b/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro index d459f8d47ae..6bc37a2f3f3 100644 --- a/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro +++ b/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro @@ -6,7 +6,7 @@ %% %% l3backend-header.dtx (with options: `header,dvips') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index 8b01e543ce0..9fad72c75d0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-basics.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2020-09-24}{} + {l3backend-dvipdfmx.def}{2021-01-09}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2020-09-24}{} + {l3backend-dvips.def}{2021-01-09}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2020-09-24}{} + {l3backend-dvisvgm.def}{2021-01-09}{} {L3 backend support: dvisvgm} % %<*luatex> - {l3backend-luatex.def}{2020-09-24}{} + {l3backend-luatex.def}{2021-01-09}{} {L3 backend support: PDF output (LuaTeX)} % %<*pdftex> - {l3backend-pdftex.def}{2020-09-24}{} + {l3backend-pdftex.def}{2021-01-09}{} {L3 backend support: PDF output (pdfTeX)} % %<*xetex> - {l3backend-xetex.def}{2020-09-24}{} + {l3backend-xetex.def}{2021-01-09}{} {L3 backend support: XeTeX} % % \end{macrocode} @@ -348,8 +348,9 @@ % required. % % \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:x} -% Equivalent to \texttt{pdf:content} but favored as the link to -% the \pdfTeX{} primitive approach is clearer. +% Undocumented but equivalent to \pdfTeX{}'s |literal| keyword. It's similar to +% be not the same as the documented |contents| keyword as that adds a |q|/|Q| +% pair. % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_pdf:n #1 { \__kernel_backend_literal:n { pdf:literal~ #1 } } @@ -379,6 +380,35 @@ % \end{macro} % % \begin{macrocode} +%<@@=sys> +% \end{macrocode} +% +% \begin{macro}{\c__kernel_sys_dvipdfmx_version_int} +% A short excursion into the |sys| module to set up the backend version +% information. +% \begin{macrocode} +\group_begin: + \cs_set:Npn \@@_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2} + \sys_get_shell:nnNTF { extractbb~--version } + { \char_set_catcode_space:n { `\ } } + \l_@@_internal_tl + { + \int_const:Nn \c__kernel_sys_dvipdfmx_version_int + { + \exp_after:wN \@@_tmp:w \l_@@_internal_tl + \q_stop + } + } + { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } } +\group_end: +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%<@@=> +% \end{macrocode} +% +% \begin{macrocode} % % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index e233c729f3a..9fd7b70694e 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-box.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index baefde5d3cb..f3087b0904d 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-color.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % @@ -60,59 +60,16 @@ %<@@=color> % \end{macrocode} % -% Color support is split into parts: general color, separations, and color for +% Color support is split into parts: collecting data from \LaTeXe{}, the color stack, general color, separations, and color for % drawings. We have different approaches in each backend, and have some choices % to make about \texttt{dvipdfmx}/\XeTeX{} in particular. Whilst it is in some ways % convenient to use the same approach in multiple backends, the fact that % \texttt{dvipdfmx}/\XeTeX{} is PDF-based means it (largely) sticks closer to % direct PDF output. % -% \subsection{\texttt{dvipmdfx}/\XeTeX{}} +% \subsection{Collecting information from \LaTeXe{}} % -% \begin{macrocode} -%<*dvipdfmx|xetex> -% \end{macrocode} -% -% These backends have the most possible approaches: it recognises both -% \texttt{dvips}-based color specials and it's own format, plus one can -% include PDF statements directly. The latter are not subject to the stack, -% so are not suitable for general use. Of the two stack methods, the dedicated -% one has been extended to cover color spaces, so it is used in preference to -% the \texttt{dvips} one. -% -% The \LaTeXe{} backend code uses \texttt{dvips}-based code with -% \texttt{dvipmdfx}/\XeTeX{}, and so we leave getting color from \LaTeXe{} to -% a shared code path below. -% -% \begin{macro} -% { -% \@@_backend_select_cmyk:n , -% \@@_backend_select_gray:n , -% \@@_backend_select_rgb:n -% } -% \begin{macro}{\@@_backend_reset:} -% \begin{macro}{color.sc, color.fc} -% Push the data to the stack. -% \begin{macrocode} -\cs_new_protected:Npn \@@_backend_select_cmyk:n #1 - { - \__kernel_backend_literal:n { pdf: bc ~ [#1] } - \group_insert_after:N \@@_backend_reset: - } -\cs_new_eq:NN \@@_backend_select_gray:n \@@_backend_select_cmyk:n -\cs_new_eq:NN \@@_backend_select_rgb:n \@@_backend_select_cmyk:n -\cs_new_protected:Npn \@@_backend_reset: - { \__kernel_backend_literal:n { pdf: ec } } -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{\texttt{dvips}-style} +% \subsubsection{\texttt{dvips}-style} % % \begin{macrocode} %<*dvisvgm|dvipdfmx|dvips|xetex> @@ -128,7 +85,7 @@ \cs_new_protected:Npn \@@_backend_pickup:N #1 { } \cs_if_exist:cT { ver@color.sty } { - \cs_set_protected:Npn \@@_backend_pickup:N #1 + \cs_set_protected:Npn \@@_backend_pickup:N #1 { \exp_args:NV \tl_if_head_is_space:nTF \current@color { @@ -154,49 +111,7 @@ % % \end{macrocode} % -% \begin{macrocode} -%<*dvisvgm|dvips> -% \end{macrocode} -% -% \begin{macro} -% { -% \@@_backend_select_cmyk:n , -% \@@_backend_select_gray:n , -% \@@_backend_select_rgb:n , -% \@@_backend_select:n -% } -% \begin{macro}{\@@_backend_reset:} -% \begin{macro}{color.sc, color.fc} -% Push the data to the stack. In the case of \texttt{dvips} also saves the -% drawing color in raw PostScript. -% \begin{macrocode} -\cs_new_protected:Npn \@@_backend_select_cmyk:n #1 - { \@@_backend_select:n { cmyk ~ #1 } } -\cs_new_protected:Npn \@@_backend_select_gray:n #1 - { \@@_backend_select:n { gray ~ #1 } } -\cs_new_protected:Npn \@@_backend_select_rgb:n #1 - { \@@_backend_select:n { rgb ~ #1 } } -\cs_new_protected:Npn \@@_backend_select:n #1 - { - \__kernel_backend_literal:n { color~push~ #1 } -%<*dvips> - \__kernel_backend_postscript:n { /color.sc~ { ~ } ~def } - \__kernel_backend_postscript:n { /color.fc~ { ~ } ~def } -% - \group_insert_after:N \@@_backend_reset: - } -\cs_new_protected:Npn \@@_backend_reset: - { \__kernel_backend_literal:n { color~pop } } -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{\LuaTeX{} and \pdfTeX{}} +% \subsubsection{\LuaTeX{} and \pdfTeX{}} % % \begin{macrocode} %<*luatex|pdftex> @@ -247,9 +162,192 @@ % \end{macro} % \end{macro} % +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsection{The color stack} +% +% For PDF-based engines, we have a color stack available inside the specials. +% This is used for concepts beyond color itself: it is needed to manage th graphics +% state generally. The exact form depends on the engine, and for +% \texttt{dvipdfmx}/\XeTeX{} the backend version. +% +% \subsubsection{\texttt{dvipdfmx}/\XeTeX{}} +% +% \begin{macrocode} +%<*dvipdfmx|xetex> +% \end{macrocode} +% +% \begin{macro}{\__kernel_color_stack_init:Nnn} +% \begin{variable}{\g__color_stack_int} +% In \texttt{(x)dvipdfmx}, the base color stack is not set up, so we have to +% force that, as well as providing a mechanism more generally. +% \begin{macrocode} +\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \int_new:N \g__color_stack_int + \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3 + { + \int_gincr:N \g__color_stack_int + \int_const:Nn #1 { \g__color_stack_int } + \__kernel_backend_literal:x + { + pdfcolorstackinit ~ + \int_use:N \g__color_stack_int \c_space_tl + \tl_if_blank:nF {#2} { #2 ~ } + (#3) + } + } + } +% \end{macrocode} +% \end{variable} +% \end{macro} +% +% \begin{macro}{\__kernel_color_stack_push:nn} +% \begin{macro}{\__kernel_color_stack_pop:n} +% Simple enough but needs a version check. +% \begin{macrocode} +\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2 + { + \__kernel_backend_literal:x + { + pdfcolorstack ~ + \int_eval:n {#1} ~ + push ~ (#2) + } + } + \cs_new_protected:Npn \__kernel_color_stack_pop:n #1 + { + \__kernel_backend_literal:x + { + pdfcolorstack ~ + \int_eval:n {#1} ~ + pop + } + } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsubsection{\LuaTeX and \pdfTeX{}} +% +% \begin{macrocode} +%<*luatex|pdftex> +% \end{macrocode} +% +% \begin{macro}{\__kernel_color_stack_init:Nnn} +% \begin{macrocode} +\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3 + { + \int_const:Nn #1 + { +%<*luatex> + \tex_pdffeedback:D colorstackinit ~ +% +%<*pdftex> + \tex_pdfcolorstackinit:D +% + \tl_if_blank:nF {#2} { #2 ~ } + {#3} + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\__kernel_color_stack_push:nn} +% \begin{macro}{\__kernel_color_stack_pop:n} +% \begin{macrocode} +\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2 + { +%<*luatex> + \tex_pdfextension:D colorstack ~ +% +%<*pdftex> + \tex_pdfcolorstack:D +% + \int_eval:n {#1} ~ push ~ {#2} + } +\cs_new_protected:Npn \__kernel_color_stack_pop:n #1 + { +%<*luatex> + \tex_pdfextension:D colorstack ~ +% +%<*pdftex> + \tex_pdfcolorstack:D +% + \int_eval:n {#1} ~ pop \scan_stop: + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsection{General color} +% +% \subsubsection{\texttt{dvips}-style} +% +% \begin{macrocode} +%<*dvips|dvisvgm> +% \end{macrocode} +% +% \begin{macro} +% { +% \@@_backend_select_cmyk:n , +% \@@_backend_select_gray:n , +% \@@_backend_select_rgb:n , +% \@@_backend_select:n +% } +% \begin{macro}{\@@_backend_reset:} +% \begin{macro}{color.sc, color.fc} +% Push the data to the stack. In the case of \texttt{dvips} also saves the +% drawing color in raw PostScript. +% \begin{macrocode} +\cs_new_protected:Npn \@@_backend_select_cmyk:n #1 + { \@@_backend_select:n { cmyk ~ #1 } } +\cs_new_protected:Npn \@@_backend_select_gray:n #1 + { \@@_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \@@_backend_select_rgb:n #1 + { \@@_backend_select:n { rgb ~ #1 } } +\cs_new_protected:Npn \@@_backend_select:n #1 + { + \__kernel_backend_literal:n { color~push~ #1 } +%<*dvips> + \__kernel_backend_postscript:n { /color.sc~ { ~ } ~def } + \__kernel_backend_postscript:n { /color.fc~ { ~ } ~def } +% + \group_insert_after:N \@@_backend_reset: + } +\cs_new_protected:Npn \@@_backend_reset: + { \__kernel_backend_literal:n { color~pop } } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsubsection{\LuaTeX{} and \pdfTeX{}} +% +% \begin{macrocode} +%<*dvipdfmx|luatex|pdftex|xetex> +% \end{macrocode} +% % \begin{variable}{\l__kernel_color_stack_int} -% \pdfTeX{} and \LuaTeX{} have multiple stacks available, and to track -% which one is in use a variable is required. +% \pdfTeX{}, \LuaTeX{} and recent \texttt{(x)dvipdfmx} have multiple stacks +% available, and to track which one is in use a variable is required. % \begin{macrocode} \int_new:N \l__kernel_color_stack_int % \end{macrocode} @@ -272,31 +370,60 @@ { \@@_backend_select:n { #1 ~ rg ~ #1 ~ RG } } \cs_new_protected:Npn \@@_backend_select:n #1 { -%<*luatex> - \tex_pdfextension:D colorstack -% -%<*pdftex> - \tex_pdfcolorstack:D -% - \l__kernel_color_stack_int push {#1} + \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1} \group_insert_after:N \@@_backend_reset: } \cs_new_protected:Npn \@@_backend_reset: + { \__kernel_color_stack_pop:n \l__kernel_color_stack_int } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsubsection{\texttt{dvipmdfx}/\XeTeX{}} +% +% \begin{macrocode} +%<*dvipdfmx|xetex> +% \end{macrocode} +% +% These backends have the most possible approaches: it recognises both +% \texttt{dvips}-based color specials and it's own format, plus one can +% include PDF statements directly. Recent releases also have a color stack +% approach similar to \pdfTeX{}. Of the stack methods, the dedicated +% the most versatile is the latter as it can cover all of the use cases +% we have. Thus it is used in preference to the \texttt{dvips}-style interface +% or the \enquote{native} color specials (which have only one stack). +% +% \begin{macro} +% { +% \@@_backend_select_cmyk:n , +% \@@_backend_select_gray:n , +% \@@_backend_select_rgb:n +% } +% \begin{macro}{\@@_backend_reset:} +% Push the data to the stack. +% \begin{macrocode} +\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 } { -%<*luatex> - \tex_pdfextension:D colorstack -% -%<*pdftex> - \tex_pdfcolorstack:D -% - \l__kernel_color_stack_int pop \scan_stop: + \cs_gset_protected:Npn \@@_backend_select_cmyk:n #1 + { + \__kernel_backend_literal:n { pdf: bc ~ [#1] } + \group_insert_after:N \@@_backend_reset: + } + \cs_gset_eq:NN \@@_backend_select_gray:n \@@_backend_select_cmyk:n + \cs_gset_eq:NN \@@_backend_select_rgb:n \@@_backend_select_cmyk:n + \cs_gset_protected:Npn \@@_backend_reset: + { \__kernel_backend_literal:n { pdf: ec } } } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macrocode} -% +% % \end{macrocode} % % \subsection{Separations} @@ -601,22 +728,12 @@ % % \begin{macro}{\@@_backend_select_separation:nn, \@@_backend_select_devicen:nn} % \begin{macro}{\@@_backend_select:n} -% Different syntaxes here as the stacks are accessed very differently. +% Although \texttt{(x)dvipdfmx} has a built-in approach to color spaces, that +% can't be used with the generic color stacks. So we take an approach in which +% we share the same code as for \pdfTeX{}. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 -%<*dvipdfmx|xetex> - { \@@_backend_select:n { @#1 ~ [#2] } } -% -%<*luatex|pdftex> { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } -% -%<*dvipdfmx|xetex> -\cs_new_protected:Npn \@@_backend_select:n #1 - { - \__kernel_backend_literal:n { pdf: bc ~ #1 } - \group_insert_after:N \@@_backend_reset: - } -% \cs_new_eq:NN \@@_backend_select_devicen:nn \@@_backend_select_separation:nn % \end{macrocode} % \end{macro} @@ -627,9 +744,7 @@ % \begin{macro}{\@@_backend_separation_init_CIELAB:nnn} % Initialising the PDF structures needs two parts: creating an object % containing the \enquote{real} name of the Separation, then adding a reference -% to that to each page. The latter uses the internal name of the \texttt{cs}. -% For \texttt{dvipdfmx}/\XeTeX{}, the backend does most of the work so we need a -% simplified version. We use a separate object for the tint transformation +% to that to each page. We use a separate object for the tint transformation % following the model in the PDF reference. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 @@ -648,30 +763,19 @@ / \str_convert_pdfname:n {#1} ~ #2 ~ \pdf_object_last: } -%<*luatex|pdftex> \use:x { - \pdfcoredict_gput:nnn + \pdfmanagement_add:nnn { Page / Resources / ColorSpace } { color \int_use:N \g_@@_model_int } { \pdf_object_last: } } -% } \cs_if_exist:NF \pdf_object_now:nn { \cs_gset_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 { } } \cs_new_protected:Npn \@@_backend_separation_init:n #1 { -%<*dvipdfmx|xetex> - \__kernel_backend_literal:x - { - pdf:obj ~ @color \int_use:N \g_@@_model_int \c_space_tl - [#1] - } -% -%<*luatex|pdftex> \pdf_object_now:nx { array } {#1} -% } % \end{macrocode} % For CIELAB colors, we need one object per document for the illuminant, @@ -746,15 +850,13 @@ #2 ~ \pdf_object_last: } -%<*luatex|pdftex> \use:x { - \pdfcoredict_gput:nnn + \pdfmanagement_add:nnn { Page / Resources / ColorSpace } { color \int_use:N \g_@@_model_int } { \pdf_object_last: } } -% } \cs_if_exist:NF \pdf_object_now:nn { \cs_gset_protected:Npn \@@_backend_devicen_init:nnn #1#2#3 { } } diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index 8de6910edf0..2951e215041 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-draw.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index e72bbe9a588..7d288ac17d8 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-graphics.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index e1584916888..80dac57f72b 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-header.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index 58c7da7f086..e74ac8286b0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx @@ -2,7 +2,7 @@ % %% File: l3backend-pdf.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-09-24} +% \date{Released 2021-01-09} % % \maketitle % @@ -565,7 +565,6 @@ % question about the name of the hook: to be resolved at the \LaTeXe{} % end. % \begin{macrocode} -%<*package> \use_none:n { \cs_if_exist:NT \@makecol@hook @@ -593,7 +592,6 @@ \cs_set_eq:NN \@@_breaklink_usebox:N \hbox_unpack:N } } -% % \end{macrocode} % \end{macro} % @@ -622,6 +620,7 @@ % Here, we need to turn the zoom into a scale. We also need to know where % the current anchor point actually is: worked out in PostScript. For the % rectangle version, we have a bit more PostScript: we need two points. +% fitr without rule spec doesn't work, so it falls back to /Fit here. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_destination:nn #1#2 { @@ -639,6 +638,7 @@ { fitbv } { /FitBV ~ pdf.dest.x } { fith } { /FitH ~ pdf.dest.y } { fitv } { /FitV ~ pdf.dest.x } + { fitr } { /Fit } } { /XYZ ~ pdf.dest.point ~ \fp_eval:n { (#2) / 100 } @@ -883,6 +883,7 @@ { fitbv } { fitbv } { fith } { fith } { fitv } { fitv } + { fitr } { fitr } } { xyz ~ zoom \fp_eval:n { #2 * 10 } } \scan_stop: @@ -1406,6 +1407,13 @@ % \end{macrocode} % \end{macro} % +% \begin{variable}{\g_@@_backend_link_int} +% To track annotations which are links. +% \begin{macrocode} +\int_new:N \g_@@_backend_link_int +% \end{macrocode} +% \end{variable} +% % \begin{macro} % {\@@_backend_link_begin_goto:nnw, \@@_backend_link_begin_user:nnw} % \begin{macro}{\@@_backend_link_begin:n} @@ -1416,11 +1424,21 @@ { \@@_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2 { \@@_backend_link_begin:n {#1#2} } -\cs_new_protected:Npn \@@_backend_link_begin:n #1 +\cs_new_protected:Npx \@@_backend_link_begin:n #1 { - \@@_backend:n + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } { - bann + \exp_not:N \int_gincr:N \exp_not:N \g_@@_backend_link_int + } + \@@_backend:x + { + bann ~ + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + @pdf.lnk + \exp_not:N \int_use:N \exp_not:N \g_@@_backend_link_int + \c_space_tl + } << /Type /Annot #1 @@ -1435,9 +1453,17 @@ % \end{macro} % % \begin{macro}{\@@_backend_link_last:} -% Data not available. +% Available using the backend mechanism with a suitably-recent +% version. % \begin{macrocode} -\cs_new:Npn \@@_backend_link_last: { } +\cs_new:Npx \@@_backend_link_last: + { + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + @pdf.lnk + \exp_not:N \int_use:N \exp_not:N \g_@@_backend_link_int + } + } % \end{macrocode} % \end{macro} % @@ -1453,6 +1479,7 @@ % Here, we need to turn the zoom into a scale. The method for \texttt{FitR} % is from Alexander Grahn: the idea is to avoid needing to do any calculations % in \TeX{} by using the backend data for \texttt{@xpos} and \texttt{@ypos}. +% fitr without rule spec doesn't work, so it falls back to /Fit here. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_destination:nn #1#2 { @@ -1470,6 +1497,7 @@ { fitbv } { /FitBV ~ @xpos } { fith } { /FitH ~ @ypos } { fitv } { /FitV ~ @xpos } + { fitr } { /Fit } } { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } } ] diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend.ins b/Master/texmf-dist/source/latex/l3backend/l3backend.ins index 3babb97da13..ebce5ad0267 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend.ins +++ b/Master/texmf-dist/source/latex/l3backend/l3backend.ins @@ -2,7 +2,7 @@ File l3backend.ins -Copyright (C) 2019,2020 The LaTeX3 Project +Copyright (C) 2019-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -35,7 +35,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 1990-2020 The LaTeX3 Project +Copyright (C) 1990-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index 1f96c8298d6..b684859b760 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -2,7 +2,7 @@ % %% File: expl3.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> % -\def\ExplFileDate{2020-12-07}% +\def\ExplFileDate{2021-01-09}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3.ins b/Master/texmf-dist/source/latex/l3kernel/l3.ins index ad3b5267ddb..f567f2a8c65 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3.ins +++ b/Master/texmf-dist/source/latex/l3kernel/l3.ins @@ -2,7 +2,7 @@ File l3.ins -Copyright (C) 2011,2012,2014-2020 The LaTeX3 Project +Copyright (C) 2011,2012,2014-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -35,7 +35,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 1990-2020 The LaTeX3 Project +Copyright (C) 1990-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of @@ -151,7 +151,7 @@ and all files in that bundle must be distributed together. \def\MetaPrefix{--} \preamble -Copyright (C) 1990-2020 The LaTeX3 Project +Copyright (C) 1990-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 82f1a25c026..dd95416e5aa 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -2,7 +2,7 @@ % %% File: l3basics.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 6643fb36be8..65397d52863 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -2,7 +2,7 @@ % %% File: l3bootstrap.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index 572cb9b5a6e..eade06c7349 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx @@ -2,7 +2,7 @@ % %% File: l3box.dtx % -% Copyright (C) 2005-2020 The LaTeX3 Project +% Copyright (C) 2005-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index d5cefd0946f..1a3d67c01eb 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -2,7 +2,7 @@ % %% File: l3candidates.dtx % -% Copyright (C) 2012-2020 The LaTeX3 Project +% Copyright (C) 2012-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx index 5084481a356..1d393df1d40 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx @@ -2,7 +2,7 @@ % %% File: l3cctab.dtx % -% Copyright (C) 2018-2020 The LaTeX3 Project +% Copyright (C) 2018-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 3c8d9149c0e..f88dd61968c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx @@ -3,7 +3,7 @@ %% File: l3clist.dtx % % Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project -% (C) 2012-2020 The LaTeX3 Project +% (C) 2012-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index c37a6d7c042..4c7784cdba7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx @@ -2,7 +2,7 @@ % %% File: l3coffins.dtx % -% Copyright (C) 2010-2020 The LaTeX3 Project +% Copyright (C) 2010-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx index 6796bbafa69..8612fb93614 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx @@ -2,7 +2,7 @@ % %% File: l3color-base.dtx % -% Copyright (C) 2011,2012,2014,2016-2020 The LaTeX3 Project +% Copyright (C) 2011,2012,2014,2016-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index 802ce32441d..bd46449673e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx @@ -2,7 +2,7 @@ % %% File: l3debug.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index b112eb89aed..77183e8c73b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx @@ -2,7 +2,7 @@ % %% File: l3deprecation.dtx % -% Copyright (C) 2017-2020 The LaTeX3 Project +% Copyright (C) 2017-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index 76bbdfd3412..b0411437b3b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx @@ -2,7 +2,7 @@ % %% File: l3doc.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -31,7 +31,7 @@ \askforoverwritefalse \preamble -Copyright (C) 1990-2020 The LaTeX3 Project +Copyright (C) 1990-2021 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of @@ -79,7 +79,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % \maketitle % \tableofcontents % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index f41250c05e0..4f5122da27e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx @@ -2,7 +2,7 @@ % %% File l3dosctrip.dtx % -% Copyright (C) 2012,2014-2020 The LaTeX3 Project +% Copyright (C) 2012,2014-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index a516c83742b..b842b242abd 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -2,7 +2,7 @@ % %% File: l3expan.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index cb523d6e461..a97a7a9a761 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx @@ -2,7 +2,7 @@ % %% File: l3file.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 4de5934170c..7a7546f27ce 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx @@ -2,7 +2,7 @@ % %% File: l3flag.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index eb424f6907d..12eb3971900 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-assign.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % \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 2d8e315ba84..149ccb46f9c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-aux.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 1c6bfe0fe38..b040ac3e969 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-basics.dtx % -% Copyright (C) 2011-2014,2016-2020 The LaTeX3 Project +% Copyright (C) 2011-2014,2016-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index c334df2d46b..8c4e5270f6a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-convert.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index 3f4f5cd07c6..3f7b065f05a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-expo.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index 9927e0b9cb1..dcccbe502ad 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-extended.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 4e28c734879..0b220209a3d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-logic.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index 1cde3d1e99e..4d72f67104f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-parse.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index f171d02bf27..b5d9012689e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-random.dtx % -% Copyright (C) 2016-2020 The LaTeX3 Project +% Copyright (C) 2016-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index 66628c9d8c6..9a9ff30a580 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-round.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 3a8eedaadee..456999ed1b8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-traps.dtx % -% Copyright (C) 2011-2014,2016-2020 The LaTeX3 Project +% Copyright (C) 2011-2014,2016-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % \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 c65aa762de7..57ff263e7db 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx @@ -2,7 +2,7 @@ % %% File: l3fp-trig.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index 898fca2a0a4..2319504a4ac 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx @@ -2,7 +2,7 @@ % %% File: l3fp.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index e98ceb52b4e..6847cb1e0c9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx @@ -2,7 +2,7 @@ % %% File: l3fparray.dtx % -% Copyright (C) 2018-2020 The LaTeX3 Project +% Copyright (C) 2018-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index cb1ab5db501..d5bfaf26b65 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx @@ -2,7 +2,7 @@ % %% File: l3int.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index c261fa5c843..1dacedc38ba 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx @@ -2,7 +2,7 @@ % %% File: l3intarray.dtx % -% Copyright (C) 2017-2020 The LaTeX3 Project +% Copyright (C) 2017-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index 22f33e1d41b..68771e076a8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx @@ -2,7 +2,7 @@ % %% File: l3kernel-functions.dtx % -% Copyright (C) 2018-2020 The LaTeX3 Project +% Copyright (C) 2018-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index d1f9f192687..860854cc779 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -2,7 +2,7 @@ % %% File: l3keys.dtx % -% Copyright (C) 2006-2020 The LaTeX3 Project +% Copyright (C) 2006-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % @@ -891,7 +891,45 @@ % \end{verbatim} % are treated identically. % -% \begin{function}[EXP,updated = 2020-02-20]{\keyval_parse:NNn} +% \begin{function}[rEXP, added=2020-12-19]{\keyval_parse:nnn} +% \begin{syntax} +% \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list} +% \end{syntax} +% Parses the \meta{key--value list} into a series of \meta{keys} and +% associated \meta{values}, or keys alone (if no \meta{value} was +% given). \meta{code_1} receives each \meta{key} (with no \meta{value}) as a +% trailing brace group, whereas \meta{code_2} is appended by two brace groups, +% the \meta{key} and \meta{value}. +% The order of the \meta{keys} in the \meta{key--value list} +% is preserved. Thus +% \begin{verbatim} +% \keyval_parse:nnn +% { \use_none:nn { code 1 } } +% { \use_none:nnn { code 2 } } +% { key1 = value1 , key2 = value2, key3 = , key4 } +% \end{verbatim} +% is converted into an input stream +% \begin{verbatim} +% \use_none:nnn { code 2 } { key1 } { value1 } +% \use_none:nnn { code 2 } { key2 } { value2 } +% \use_none:nnn { code 2 } { key3 } { } +% \use_none:nn { code 1 } { key4 } +% \end{verbatim} +% Note that there is a difference between an empty value (an equals +% sign followed by nothing) and a missing value (no equals sign at +% all). Spaces are trimmed from the ends of the \meta{key} and \meta{value}, +% then one \emph{outer} set of braces is removed from the \meta{key} +% and \meta{value} as part of the processing. If you need exactly the output +% shown above, you'll need to either \texttt{x}-type or \texttt{e}-type expand +% the function. +% \begin{texnote} +% The result of each list element is returned within \cs{exp_not:n}, which +% means that the converted input stream does not expand further when +% appearing in an \texttt{x}-type or \texttt{e}-type argument expansion. +% \end{texnote} +% \end{function} +% +% \begin{function}[rEXP,updated = 2020-12-19]{\keyval_parse:NNn} % \begin{syntax} % \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list} % \end{syntax} @@ -920,6 +958,9 @@ % all). Spaces are trimmed from the ends of the \meta{key} and \meta{value}, % then one \emph{outer} set of braces is removed from the \meta{key} % and \meta{value} as part of the processing. +% +% This shares the implementation of \cs{keyval_parse:nnn}, the difference is +% only semantically. % \begin{texnote} % The result is returned within \cs{exp_not:n}, which means that the % converted input stream does not expand further when appearing in an @@ -969,30 +1010,31 @@ { % \end{macrocode} % -% \begin{macro}[EXP]{\keyval_parse:NNn} +% \begin{macro}[EXP]{\keyval_parse:nnn, \keyval_parse:NNn} % The main function starts the first of two loops. The outer loop splits the % key--value list at active commas, the inner loop will do so at other commas. % The use of \cs{s_@@_mark} here prevents loss of braces from the key % argument. % \begin{macrocode} - \cs_new:Npn \keyval_parse:NNn ##1 ##2 ##3 - { \@@_loop_active:NNw ##1 ##2 \s_@@_mark ##3 #1 \s_@@_tail #1 } + \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 + { \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 } + \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_loop_active:NNw} +% \begin{macro}[EXP]{\@@_loop_active:nnw} % First a fast test for the end of the loop is done, it'll gobble everything % up to a \cs{s_@@_tail}. The loop ending macro will gobble everything to the -% last \cs{s_@@_mark} in this definition. +% last comma in this definition. % If the end isn't reached yet, start the second loop splitting at other -% commas, and after that one iterate the current loop. +% commas, the next iteration of this first loop will be inserted by the end of +% \cs{@@_loop_other:nnw}. % \begin{macrocode} - \cs_new:Npn \@@_loop_active:NNw ##1 ##2 ##3 #1 + \cs_new:Npn \@@_loop_active:nnw ##1 ##2 ##3 #1 { \@@_if_recursion_tail:w ##3 \@@_end_loop_active:w \s_@@_tail - \@@_loop_other:NNw ##1 ##2 ##3 , \s_@@_tail , - \@@_loop_active:NNw ##1 ##2 \s_@@_mark + \@@_loop_other:nnw {##1} {##2} ##3 , \s_@@_tail , } % \end{macrocode} % \end{macro} @@ -1003,14 +1045,14 @@ % token following \cs{s_@@_mark} that followed the equals sign. Hence they % also test for the presence of such an equals sign simultaneously. % \begin{macrocode} - \cs_new:Npn \@@_split_other:w ##1 = ##2 \s_@@_mark ##3 ##4 \s_@@_stop + \cs_new:Npn \@@_split_other:w ##1 = ##2 \s_@@_mark ##3 { ##3 ##1 \s_@@_stop \s_@@_mark ##2 } - \cs_new:Npn \@@_split_active:w ##1 #2 ##2 \s_@@_mark ##3 ##4 \s_@@_stop + \cs_new:Npn \@@_split_active:w ##1 #2 ##2 \s_@@_mark ##3 { ##3 ##1 \s_@@_stop \s_@@_mark ##2 } % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_loop_other:NNw} +% \begin{macro}[EXP]{\@@_loop_other:nnw} % The second loop uses the same test for its end as the first loop, next it % splits at the first active equals sign using \cs{@@_split_active:w}. The % \cs{s_@@_nil} prevents accidental brace stripping and acts as a delimiter in @@ -1018,16 +1060,15 @@ % number of necessary expansion steps for the expected average use case of % other equals signs and hence perform better on average. % \begin{macrocode} - \cs_new:Npn \@@_loop_other:NNw ##1 ##2 ##3 , + \cs_new:Npn \@@_loop_other:nnw ##1 ##2 ##3 , { \@@_if_recursion_tail:w ##3 \@@_end_loop_other:w \s_@@_tail \@@_split_active:w ##3 \s_@@_nil \s_@@_mark \@@_split_active_auxi:w #2 \s_@@_mark \@@_clean_up_active:w - \s_@@_stop - ##1 ##2 - \@@_loop_other:NNw ##1 ##2 \s_@@_mark + {##1} {##2} + \s_@@_mark } % \end{macrocode} % \end{macro} @@ -1050,7 +1091,6 @@ \@@_split_other:w ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_after_active_error:w = \s_@@_mark \@@_split_active_auxii:w - \s_@@_stop } % \end{macrocode} % \cs{@@_split_active_auxii:w} gets the correct key name with a leading @@ -1061,7 +1101,8 @@ \cs_new:Npn \@@_split_active_auxii:w ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_after_active_error:w \s_@@_stop \s_@@_mark - { \@@_trim:nN { ##1 } \@@_split_active_auxiii:w } + ##2 \s_@@_nil #2 \s_@@_mark \@@_clean_up_active:w + { \@@_trim:nN {##1} \@@_split_active_auxiii:w ##2 \s_@@_nil } % \end{macrocode} % Next we test for a misplaced active equals sign in the value, if none is % found \cs{@@_split_active_auxiv:w} will be called. @@ -1071,8 +1112,7 @@ \@@_split_active:w ##2 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w #2 \s_@@_mark \@@_split_active_auxiv:w - \s_@@_stop - { ##1 } + {##1} } % \end{macrocode} % This runs the last test after sanitising the remainder of the previous one. @@ -1086,16 +1126,15 @@ \@@_split_other:w ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w = \s_@@_mark \@@_split_active_auxv:w - \s_@@_stop } % \end{macrocode} % This last macro in this execution branch sanitises the last test, trims the -% value and passes it to \cs{@@_pair:nnNN}. +% value and passes it to \cs{@@_pair:nnnn}. % \begin{macrocode} \cs_new:Npn \@@_split_active_auxv:w ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w \s_@@_stop \s_@@_mark - { \@@_trim:nN { ##1 } \@@_pair:nnNN } + { \@@_trim:nN { ##1 } \@@_pair:nnnn } % \end{macrocode} % \end{macro} % \end{macro} @@ -1115,7 +1154,6 @@ \@@_split_other:w ##1 \s_@@_nil \s_@@_mark \@@_split_other_auxi:w = \s_@@_mark \@@_clean_up_other:w - \s_@@_stop } % \end{macrocode} % \end{macro} @@ -1132,24 +1170,25 @@ { \@@_trim:nN { ##1 } \@@_split_other_auxii:w } % \end{macrocode} % We know that the value doesn't contain misplaced active equals signs but we -% have to test for others. +% have to test for others. Also we need to sanitise the previous test, which +% is done here and not earlier to avoid superfluous argument grabbing. % \begin{macrocode} - \cs_new:Npn \@@_split_other_auxii:w ##1 ##2 \s_@@_nil + \cs_new:Npn \@@_split_other_auxii:w + ##1 ##2 \s_@@_nil = \s_@@_mark \@@_clean_up_other:w { \@@_split_other:w ##2 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w = \s_@@_mark \@@_split_other_auxiii:w - \s_@@_stop { ##1 } } % \end{macrocode} % \cs{@@_split_other_auxiii:w} sanitises the test for other equals signs, -% trims the value and forwards it to \cs{@@_pair:nnNN}. +% trims the value and forwards it to \cs{@@_pair:nnnn}. % \begin{macrocode} \cs_new:Npn \@@_split_other_auxiii:w ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w \s_@@_stop \s_@@_mark - { \@@_trim:nN { ##1 } \@@_pair:nnNN } + { \@@_trim:nN { ##1 } \@@_pair:nnnn } % \end{macrocode} % \end{macro} % \end{macro} @@ -1159,14 +1198,14 @@ % \cs{@@_clean_up_other:w} is the last branch that might exist. It is called % if no equals sign was found, hence the only possibilities left are a blank % list element, which is to be skipped, or a lonely key. If it's no empty list -% element this will trim the key name and forward it to \cs{@@_key:nNN}. +% element this will trim the key name and forward it to \cs{@@_key:nn}. % \begin{macrocode} \cs_new:Npn \@@_clean_up_other:w ##1 \s_@@_nil \s_@@_mark \@@_split_other_auxi:w \s_@@_stop \s_@@_mark { \@@_if_blank:w ##1 \s_@@_nil \s_@@_stop \@@_blank_true:w - \s_@@_mark \s_@@_stop \use:n - { \@@_trim:nN { ##1 } \@@_key:nNN } + \s_@@_mark \s_@@_stop + \@@_trim:nN { ##1 } \@@_key:nn } % \end{macrocode} % \end{macro} @@ -1174,21 +1213,26 @@ % \begin{macro}[EXP]{\@@_misplaced_equal_after_active_error:w} % \begin{macro}[EXP]{\@@_misplaced_equal_in_split_error:w} % All these two macros do is gobble the remainder of the current other loop -% execution and throw an error. +% execution and throw an error. Afterwards they have to insert the next loop +% iteration. % \begin{macrocode} \cs_new:Npn \@@_misplaced_equal_after_active_error:w \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil - \s_@@_mark ##3 \s_@@_nil ##4 ##5 + = \s_@@_mark \@@_split_active_auxii:w + \s_@@_mark ##3 \s_@@_nil + #2 \s_@@_mark \@@_clean_up_active:w { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } + \@@_loop_other:nnw } \cs_new:Npn \@@_misplaced_equal_in_split_error:w \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil - ##3 ##4 ##5 + ##3 \s_@@_mark ##4 ##5 { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } + \@@_loop_other:nnw } % \end{macrocode} % \end{macro} @@ -1197,21 +1241,20 @@ % \begin{macro}[EXP]{\@@_end_loop_other:w, \@@_end_loop_active:w} % All that's left for the parsing loops are the macros which end the % recursion. Both just gobble the remaining tokens of the respective loop -% including the next recursion call. +% including the next recursion call. \cs{@@_end_loop_other:w} also has to +% insert the next iteration of the active loop. % \begin{macrocode} \cs_new:Npn \@@_end_loop_other:w \s_@@_tail - \@@_split_active:w ##1 \s_@@_nil - \s_@@_mark \@@_split_active_auxi:w + \@@_split_active:w + \s_@@_mark \s_@@_tail + \s_@@_nil \s_@@_mark + \@@_split_active_auxi:w #2 \s_@@_mark \@@_clean_up_active:w - \s_@@_stop - ##2 ##3 - \@@_loop_other:NNw ##4 \s_@@_mark - { } + { \@@_loop_active:nnw } \cs_new:Npn \@@_end_loop_active:w \s_@@_tail - \@@_loop_other:NNw ##1 , \s_@@_tail , - \@@_loop_active:NNw ##2 \s_@@_mark + \@@_loop_other:nnw ##1 \s_@@_mark \s_@@_tail , \s_@@_tail , { } % \end{macrocode} % \end{macro} @@ -1226,23 +1269,26 @@ \group_end: % \end{macrocode} % -% \begin{macro}[EXP]{\@@_pair:nnNN, \@@_key:nNN} +% \begin{macro}[EXP]{\@@_pair:nnnn, \@@_key:nn} % These macros will be called on the parsed keys and values of the key--value % list. All arguments are completely trimmed. They test for blank key names -% and call the functions passed to \cs{keyval_parse:NNn} inside of -% \cs{exp_not:n} with the correct arguments. +% and call the functions passed to \cs{keyval_parse:nnn} inside of +% \cs{exp_not:n} with the correct arguments. Afterwards they insert the next +% iteration of the other loop. % \begin{macrocode} -\cs_new:Npn \@@_pair:nnNN #1 #2 #3 #4 +\cs_new:Npn \@@_pair:nnnn #1 #2 #3 #4 { \@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n { #4 { #2 } { #1 } } + \@@_loop_other:nnw {#3} {#4} } -\cs_new:Npn \@@_key:nNN #1 #2 #3 +\cs_new:Npn \@@_key:nn #1 #2 { \@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n { #2 { #1 } } + \@@_loop_other:nnw {#2} } % \end{macrocode} % \end{macro} @@ -1263,7 +1309,8 @@ % These macros will be called if the tests above didn't gobble them, they % execute the branching. % \begin{macrocode} -\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \use:n #1 #2 #3 { } +\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \@@_trim:nN #1 \@@_key:nn + { \@@_loop_other:nnw } \cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1 { \__kernel_msg_expandable_error:nn @@ -1303,7 +1350,6 @@ \@@_trim_auxiii:w #1 \s_@@_nil \@@_trim_auxiv:w - \s_@@_stop } \cs_new:Npn \@@_trim_auxi:w ##1 \s_@@_mark #1 ##2 \s_@@_mark ##3 { @@ -1327,8 +1373,11 @@ % \end{macrocode} % This is the one macro which differs from the original definition. % \begin{macrocode} - \cs_new:Npn \@@_trim_auxiv:w \s_@@_mark ##1 \s_@@_nil ##2 \s_@@_stop ##3 - { ##3 { ##1 } } + \cs_new:Npn \@@_trim_auxiv:w + \s_@@_mark ##1 \s_@@_nil + \@@_trim_auxiii:w \s_@@_nil \@@_trim_auxiii:w + ##2 + { ##2 { ##1 } } } \@@_tmp:n { ~ } \group_end: diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index 257b01f4557..6bf78a7c4ce 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx @@ -2,7 +2,7 @@ % %% File: l3legacy.dtx % -% Copyright (C) 2019,2020 The LaTeX3 Project +% Copyright (C) 2019-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index d8456d8cb0b..80b3d855915 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx @@ -2,7 +2,7 @@ % %% File: l3luatex.dtx % -% Copyright (C) 2010-2020 The LaTeX3 Project +% Copyright (C) 2010-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index 19a89cf03f6..6e2ff77f361 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx @@ -2,7 +2,7 @@ % %% File: l3msg.dtx % -% Copyright (C) 2009-2020 The LaTeX3 Project +% Copyright (C) 2009-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 45e4f74f1cf..24a3fad8040 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx @@ -2,7 +2,7 @@ % %% File: l3names.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index 88cec672de8..539bb5489b8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -2,7 +2,7 @@ % %% File: l3prg.dtx % -% Copyright (C) 2005-2020 The LaTeX3 Project +% Copyright (C) 2005-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index 36a8be39389..ea5d85a3fa0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -2,7 +2,7 @@ % %% File: l3prop.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index 427244ce5dc..17348c29ee2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx @@ -2,7 +2,7 @@ % %% File: l3quark.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 85e9cf12b95..9d52a75857a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx @@ -2,7 +2,7 @@ % %% File: l3regex.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 4b9905e3bbf..a7c22d7331b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx @@ -2,7 +2,7 @@ % %% File: l3seq.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index e6750a998f8..13d88972bc6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx @@ -3,7 +3,7 @@ %% File: l3skip.dtx % % Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project -% (C) 2012-2020 The LaTeX3 Project +% (C) 2012-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index 47e12e7466c..a4fcbcfe6b4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx @@ -2,7 +2,7 @@ % %% File l3sort.dtx % -% Copyright (C) 2012-2020 The LaTeX3 Project +% Copyright (C) 2012-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index 8c540d7e076..66c23b73ada 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx @@ -2,7 +2,7 @@ % %% File: l3str-convert.dtx % -% Copyright (C) 2013-2020 The LaTeX3 Project +% Copyright (C) 2013-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 3152e7dae7f..bbe072d2a08 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx @@ -2,7 +2,7 @@ % %% File: l3str.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index 9b50d089628..30a86af7d8a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx @@ -2,7 +2,7 @@ % %% File: l3sys.dtx % -% Copyright (C) 2015-2020 The LaTeX3 Project +% Copyright (C) 2015-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % @@ -975,10 +975,14 @@ end \__kernel_tl_gset:Nx \g_@@_backend_tl { \sys_if_engine_xetex:TF - { xdvipdfmx } + { xetex } { \sys_if_output_pdf:TF - { pdfmode } + { + \sys_if_engine_pdftex:TF + { pdftex } + { luatex } + } { dvips } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index 4d94fb2b78e..d1415b5a8ca 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx @@ -2,7 +2,7 @@ % %% File: l3text-case.dtx % -% Copyright (C) 2020 The LaTeX3 Project +% Copyright (C) 2020,2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 0166cc20f6a..0241a11e60c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx @@ -2,7 +2,7 @@ % %% File: l3text-purify.dtx % -% Copyright (C) 2020 The LaTeX3 Project +% Copyright (C) 2020,2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % @@ -94,7 +94,8 @@ % \begin{macro}[EXP]{\@@_purify_math_cmd:Nn} % \begin{macro}[EXP]{\@@_purify_replace:N} % \begin{macro}[EXP]{\@@_purify_replace:n} -% \begin{macro}[EXP]{\@@_purify_expand:N, \@@_purify_protect:N} +% \begin{macro}[EXP]{\@@_purify_expand:N, \@@_purify_protect:N, \@@_purify_encoding:N} +% \begin{macro}[EXP]{\@@_purify_encoding_escape:NN} % As in the other parts of the module, we start off with a standard % \enquote{action} loop, with expansion applied up-front. % \begin{macrocode} @@ -288,15 +289,31 @@ { \str_if_eq:nnTF {#1} { \protect } { \@@_purify_protect:N } + { \@@_purify_encoding:N #1 } + } +\cs_new:Npn \@@_purify_protect:N #1 + { + \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w } + \@@_purify_loop:w + } +% \end{macrocode} +% Handle encoding commands, as detailed for expansion. +% \begin{macrocode} +\cs_new:Npn \@@_purify_encoding:N #1 + { + \bool_lazy_or:nnTF + { \cs_if_eq_p:NN #1 \@current@cmd } + { \cs_if_eq_p:NN #1 \@changed@cmd } + { \@@_purify_encoding_escape:NN } { \@@_if_expandable:NTF #1 { \exp_after:wN \@@_purify_loop:w #1 } { \@@_purify_loop:w } } } -\cs_new:Npn \@@_purify_protect:N #1 +\cs_new:Npn \@@_purify_encoding_escape:NN #1#2 { - \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w } + \@@_purify_store:n {#1} \@@_purify_loop:w } % \end{macrocode} @@ -323,6 +340,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro} % { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 38e52aa9db6..7dcf87b3de2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx @@ -2,7 +2,7 @@ % %% File: l3text.dtx % -% Copyright (C) 2020 The LaTeX3 Project +% Copyright (C) 2020,2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index 69f73aab0c6..30ebe4814bf 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx @@ -2,7 +2,7 @@ % %% File: l3tl-analysis.dtx % -% Copyright (C) 2011-2020 The LaTeX3 Project +% Copyright (C) 2011-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index d335824821d..b31fe6e5e9f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -2,7 +2,7 @@ % %% File: l3tl.dtx % -% Copyright (C) 1990-2020 The LaTeX3 Project +% Copyright (C) 1990-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index b28987a8589..c01bf675a41 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx @@ -2,7 +2,7 @@ % %% File: l3token.dtx % -% Copyright (C) 2005-2020 The LaTeX3 Project +% Copyright (C) 2005-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index dd28393b471..76384b25a68 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx @@ -2,7 +2,7 @@ % %% File: l3unicode.dtx % -% Copyright (C) 2018-2020 The LaTeX3 Project +% Copyright (C) 2018-2021 The LaTeX3 Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-12-07} +% \date{Released 2021-01-09} % % \maketitle % diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index 8643b498c4a..b64b2f1b028 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -11,7 +11,7 @@ %% l3backend-graphics.dtx (with options: `package,dvipdfmx') %% l3backend-pdf.dtx (with options: `package,dvipdfmx') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2020-09-24}{} + {l3backend-dvipdfmx.def}{2021-01-09}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -54,20 +54,25 @@ { \__kernel_backend_literal:n { x:gsave } } \cs_new_protected:Npn \__kernel_backend_scope_end: { \__kernel_backend_literal:n { x:grestore } } +\group_begin: + \cs_set:Npn \__sys_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2} + \sys_get_shell:nnNTF { extractbb~--version } + { \char_set_catcode_space:n { `\ } } + \l__sys_internal_tl + { + \int_const:Nn \c__kernel_sys_dvipdfmx_version_int + { + \exp_after:wN \__sys_tmp:w \l__sys_internal_tl + \q_stop + } + } + { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } } +\group_end: %% File: l3backend-color.dtx -\cs_new_protected:Npn \__color_backend_select_cmyk:n #1 - { - \__kernel_backend_literal:n { pdf: bc ~ [#1] } - \group_insert_after:N \__color_backend_reset: - } -\cs_new_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n -\cs_new_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n -\cs_new_protected:Npn \__color_backend_reset: - { \__kernel_backend_literal:n { pdf: ec } } \cs_new_protected:Npn \__color_backend_pickup:N #1 { } \cs_if_exist:cT { ver@color.sty } { - \cs_set_protected:Npn \__color_backend_pickup:N #1 + \cs_set_protected:Npn \__color_backend_pickup:N #1 { \exp_args:NV \tl_if_head_is_space:nTF \current@color { @@ -85,13 +90,71 @@ \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 { \tl_set:Nn #3 { {#1} {#2} } } } -\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 - { \__color_backend_select:n { @#1 ~ [#2] } } +\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \int_new:N \g__color_stack_int + \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3 + { + \int_gincr:N \g__color_stack_int + \int_const:Nn #1 { \g__color_stack_int } + \__kernel_backend_literal:x + { + pdfcolorstackinit ~ + \int_use:N \g__color_stack_int \c_space_tl + \tl_if_blank:nF {#2} { #2 ~ } + (#3) + } + } + } +\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2 + { + \__kernel_backend_literal:x + { + pdfcolorstack ~ + \int_eval:n {#1} ~ + push ~ (#2) + } + } + \cs_new_protected:Npn \__kernel_color_stack_pop:n #1 + { + \__kernel_backend_literal:x + { + pdfcolorstack ~ + \int_eval:n {#1} ~ + pop + } + } + } +\int_new:N \l__kernel_color_stack_int +\cs_new_protected:Npn \__color_backend_select_cmyk:n #1 + { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } } +\cs_new_protected:Npn \__color_backend_select_gray:n #1 + { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } } +\cs_new_protected:Npn \__color_backend_select_rgb:n #1 + { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } } \cs_new_protected:Npn \__color_backend_select:n #1 { - \__kernel_backend_literal:n { pdf: bc ~ #1 } + \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1} \group_insert_after:N \__color_backend_reset: } +\cs_new_protected:Npn \__color_backend_reset: + { \__kernel_color_stack_pop:n \l__kernel_color_stack_int } +\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \cs_gset_protected:Npn \__color_backend_select_cmyk:n #1 + { + \__kernel_backend_literal:n { pdf: bc ~ [#1] } + \group_insert_after:N \__color_backend_reset: + } + \cs_gset_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n + \cs_gset_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n + \cs_gset_protected:Npn \__color_backend_reset: + { \__kernel_backend_literal:n { pdf: ec } } + } +\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 + { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { @@ -109,16 +172,19 @@ / \str_convert_pdfname:n {#1} ~ #2 ~ \pdf_object_last: } + \use:x + { + \pdfmanagement_add:nnn + { Page / Resources / ColorSpace } + { color \int_use:N \g__color_model_int } + { \pdf_object_last: } + } } \cs_if_exist:NF \pdf_object_now:nn { \cs_gset_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { } } \cs_new_protected:Npn \__color_backend_separation_init:n #1 { - \__kernel_backend_literal:x - { - pdf:obj ~ @color \int_use:N \g__color_model_int \c_space_tl - [#1] - } + \pdf_object_now:nx { array } {#1} } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { @@ -178,6 +244,13 @@ #2 ~ \pdf_object_last: } + \use:x + { + \pdfmanagement_add:nnn + { Page / Resources / ColorSpace } + { color \int_use:N \g__color_model_int } + { \pdf_object_last: } + } } \cs_if_exist:NF \pdf_object_now:nn { \cs_gset_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { } } @@ -621,15 +694,26 @@ } \cs_new:Npn \__pdf_backend_annotation_last: { @pdf.obj \int_use:N \g__pdf_backend_annotation_int } +\int_new:N \g__pdf_backend_link_int \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2 { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2 { \__pdf_backend_link_begin:n {#1#2} } -\cs_new_protected:Npn \__pdf_backend_link_begin:n #1 +\cs_new_protected:Npx \__pdf_backend_link_begin:n #1 { - \__pdf_backend:n + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \exp_not:N \int_gincr:N \exp_not:N \g__pdf_backend_link_int + } + \__pdf_backend:x { - bann + bann ~ + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + @pdf.lnk + \exp_not:N \int_use:N \exp_not:N \g__pdf_backend_link_int + \c_space_tl + } << /Type /Annot #1 @@ -638,7 +722,14 @@ } \cs_new_protected:Npn \__pdf_backend_link_end: { \__pdf_backend:n { eann } } -\cs_new:Npn \__pdf_backend_link_last: { } +\cs_new:Npx \__pdf_backend_link_last: + { + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + @pdf.lnk + \exp_not:N \int_use:N \exp_not:N \g__pdf_backend_link_int + } + } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2 @@ -657,6 +748,7 @@ { fitbv } { /FitBV ~ @xpos } { fith } { /FitH ~ @ypos } { fitv } { /FitV ~ @xpos } + { fitr } { /Fit } } { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } } ] diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index 32425e0870a..61f8f584ea8 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -11,7 +11,7 @@ %% l3backend-graphics.dtx (with options: `package,dvips') %% l3backend-pdf.dtx (with options: `package,dvips') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2020-09-24}{} + {l3backend-dvips.def}{2021-01-09}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -77,7 +77,7 @@ \cs_new_protected:Npn \__color_backend_pickup:N #1 { } \cs_if_exist:cT { ver@color.sty } { - \cs_set_protected:Npn \__color_backend_pickup:N #1 + \cs_set_protected:Npn \__color_backend_pickup:N #1 { \exp_args:NV \tl_if_head_is_space:nTF \current@color { @@ -894,6 +894,7 @@ { fitbv } { /FitBV ~ pdf.dest.x } { fith } { /FitH ~ pdf.dest.y } { fitv } { /FitV ~ pdf.dest.x } + { fitr } { /Fit } } { /XYZ ~ pdf.dest.point ~ \fp_eval:n { (#2) / 100 } diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index a85b91ed169..28a6be023e0 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -11,7 +11,7 @@ %% l3backend-graphics.dtx (with options: `package,dvisvgm') %% l3backend-pdf.dtx (with options: `package,dvisvgm') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2020-09-24}{} + {l3backend-dvisvgm.def}{2021-01-09}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -89,7 +89,7 @@ \cs_new_protected:Npn \__color_backend_pickup:N #1 { } \cs_if_exist:cT { ver@color.sty } { - \cs_set_protected:Npn \__color_backend_pickup:N #1 + \cs_set_protected:Npn \__color_backend_pickup:N #1 { \exp_args:NV \tl_if_head_is_space:nTF \current@color { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def index 80181c90df3..69caa65acef 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def @@ -11,7 +11,7 @@ %% l3backend-graphics.dtx (with options: `package,luatex') %% l3backend-pdf.dtx (with options: `package,luatex') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-luatex.def}{2020-09-24}{} + {l3backend-luatex.def}{2021-01-09}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -103,6 +103,25 @@ } } } +\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3 + { + \int_const:Nn #1 + { + \tex_pdffeedback:D colorstackinit ~ + \tl_if_blank:nF {#2} { #2 ~ } + {#3} + } + } +\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2 + { + \tex_pdfextension:D colorstack ~ + \int_eval:n {#1} ~ push ~ {#2} + } +\cs_new_protected:Npn \__kernel_color_stack_pop:n #1 + { + \tex_pdfextension:D colorstack ~ + \int_eval:n {#1} ~ pop \scan_stop: + } \int_new:N \l__kernel_color_stack_int \cs_new_protected:Npn \__color_backend_select_cmyk:n #1 { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } } @@ -112,15 +131,11 @@ { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } } \cs_new_protected:Npn \__color_backend_select:n #1 { - \tex_pdfextension:D colorstack - \l__kernel_color_stack_int push {#1} + \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1} \group_insert_after:N \__color_backend_reset: } \cs_new_protected:Npn \__color_backend_reset: - { - \tex_pdfextension:D colorstack - \l__kernel_color_stack_int pop \scan_stop: - } + { \__kernel_color_stack_pop:n \l__kernel_color_stack_int } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn @@ -142,7 +157,7 @@ } \use:x { - \pdfcoredict_gput:nnn + \pdfmanagement_add:nnn { Page / Resources / ColorSpace } { color \int_use:N \g__color_model_int } { \pdf_object_last: } @@ -214,7 +229,7 @@ } \use:x { - \pdfcoredict_gput:nnn + \pdfmanagement_add:nnn { Page / Resources / ColorSpace } { color \int_use:N \g__color_model_int } { \pdf_object_last: } @@ -574,6 +589,7 @@ { fitbv } { fitbv } { fith } { fith } { fitv } { fitv } + { fitr } { fitr } } { xyz ~ zoom \fp_eval:n { #2 * 10 } } \scan_stop: diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def index fa05b1f7721..ec7b463b0a5 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def @@ -11,7 +11,7 @@ %% l3backend-graphics.dtx (with options: `package,pdftex') %% l3backend-pdf.dtx (with options: `package,pdftex') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdftex.def}{2020-09-24}{} + {l3backend-pdftex.def}{2021-01-09}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -103,6 +103,25 @@ } } } +\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3 + { + \int_const:Nn #1 + { + \tex_pdfcolorstackinit:D + \tl_if_blank:nF {#2} { #2 ~ } + {#3} + } + } +\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2 + { + \tex_pdfcolorstack:D + \int_eval:n {#1} ~ push ~ {#2} + } +\cs_new_protected:Npn \__kernel_color_stack_pop:n #1 + { + \tex_pdfcolorstack:D + \int_eval:n {#1} ~ pop \scan_stop: + } \int_new:N \l__kernel_color_stack_int \cs_new_protected:Npn \__color_backend_select_cmyk:n #1 { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } } @@ -112,15 +131,11 @@ { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } } \cs_new_protected:Npn \__color_backend_select:n #1 { - \tex_pdfcolorstack:D - \l__kernel_color_stack_int push {#1} + \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1} \group_insert_after:N \__color_backend_reset: } \cs_new_protected:Npn \__color_backend_reset: - { - \tex_pdfcolorstack:D - \l__kernel_color_stack_int pop \scan_stop: - } + { \__kernel_color_stack_pop:n \l__kernel_color_stack_int } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn @@ -142,7 +157,7 @@ } \use:x { - \pdfcoredict_gput:nnn + \pdfmanagement_add:nnn { Page / Resources / ColorSpace } { color \int_use:N \g__color_model_int } { \pdf_object_last: } @@ -214,7 +229,7 @@ } \use:x { - \pdfcoredict_gput:nnn + \pdfmanagement_add:nnn { Page / Resources / ColorSpace } { color \int_use:N \g__color_model_int } { \pdf_object_last: } @@ -574,6 +589,7 @@ { fitbv } { fitbv } { fith } { fith } { fitv } { fitv } + { fitr } { fitr } } { xyz ~ zoom \fp_eval:n { #2 * 10 } } \scan_stop: diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def index fa755e56742..9c90ca0c6fc 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def @@ -11,7 +11,7 @@ %% l3backend-graphics.dtx (with options: `package,xetex') %% l3backend-pdf.dtx (with options: `package,xetex') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xetex.def}{2020-09-24}{} + {l3backend-xetex.def}{2021-01-09}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -54,20 +54,25 @@ { \__kernel_backend_literal:n { x:gsave } } \cs_new_protected:Npn \__kernel_backend_scope_end: { \__kernel_backend_literal:n { x:grestore } } +\group_begin: + \cs_set:Npn \__sys_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2} + \sys_get_shell:nnNTF { extractbb~--version } + { \char_set_catcode_space:n { `\ } } + \l__sys_internal_tl + { + \int_const:Nn \c__kernel_sys_dvipdfmx_version_int + { + \exp_after:wN \__sys_tmp:w \l__sys_internal_tl + \q_stop + } + } + { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } } +\group_end: %% File: l3backend-color.dtx -\cs_new_protected:Npn \__color_backend_select_cmyk:n #1 - { - \__kernel_backend_literal:n { pdf: bc ~ [#1] } - \group_insert_after:N \__color_backend_reset: - } -\cs_new_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n -\cs_new_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n -\cs_new_protected:Npn \__color_backend_reset: - { \__kernel_backend_literal:n { pdf: ec } } \cs_new_protected:Npn \__color_backend_pickup:N #1 { } \cs_if_exist:cT { ver@color.sty } { - \cs_set_protected:Npn \__color_backend_pickup:N #1 + \cs_set_protected:Npn \__color_backend_pickup:N #1 { \exp_args:NV \tl_if_head_is_space:nTF \current@color { @@ -85,13 +90,71 @@ \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 { \tl_set:Nn #3 { {#1} {#2} } } } -\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 - { \__color_backend_select:n { @#1 ~ [#2] } } +\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \int_new:N \g__color_stack_int + \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3 + { + \int_gincr:N \g__color_stack_int + \int_const:Nn #1 { \g__color_stack_int } + \__kernel_backend_literal:x + { + pdfcolorstackinit ~ + \int_use:N \g__color_stack_int \c_space_tl + \tl_if_blank:nF {#2} { #2 ~ } + (#3) + } + } + } +\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2 + { + \__kernel_backend_literal:x + { + pdfcolorstack ~ + \int_eval:n {#1} ~ + push ~ (#2) + } + } + \cs_new_protected:Npn \__kernel_color_stack_pop:n #1 + { + \__kernel_backend_literal:x + { + pdfcolorstack ~ + \int_eval:n {#1} ~ + pop + } + } + } +\int_new:N \l__kernel_color_stack_int +\cs_new_protected:Npn \__color_backend_select_cmyk:n #1 + { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } } +\cs_new_protected:Npn \__color_backend_select_gray:n #1 + { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } } +\cs_new_protected:Npn \__color_backend_select_rgb:n #1 + { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } } \cs_new_protected:Npn \__color_backend_select:n #1 { - \__kernel_backend_literal:n { pdf: bc ~ #1 } + \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1} \group_insert_after:N \__color_backend_reset: } +\cs_new_protected:Npn \__color_backend_reset: + { \__kernel_color_stack_pop:n \l__kernel_color_stack_int } +\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \cs_gset_protected:Npn \__color_backend_select_cmyk:n #1 + { + \__kernel_backend_literal:n { pdf: bc ~ [#1] } + \group_insert_after:N \__color_backend_reset: + } + \cs_gset_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n + \cs_gset_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n + \cs_gset_protected:Npn \__color_backend_reset: + { \__kernel_backend_literal:n { pdf: ec } } + } +\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 + { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { @@ -109,16 +172,19 @@ / \str_convert_pdfname:n {#1} ~ #2 ~ \pdf_object_last: } + \use:x + { + \pdfmanagement_add:nnn + { Page / Resources / ColorSpace } + { color \int_use:N \g__color_model_int } + { \pdf_object_last: } + } } \cs_if_exist:NF \pdf_object_now:nn { \cs_gset_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { } } \cs_new_protected:Npn \__color_backend_separation_init:n #1 { - \__kernel_backend_literal:x - { - pdf:obj ~ @color \int_use:N \g__color_model_int \c_space_tl - [#1] - } + \pdf_object_now:nx { array } {#1} } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { @@ -178,6 +244,13 @@ #2 ~ \pdf_object_last: } + \use:x + { + \pdfmanagement_add:nnn + { Page / Resources / ColorSpace } + { color \int_use:N \g__color_model_int } + { \pdf_object_last: } + } } \cs_if_exist:NF \pdf_object_now:nn { \cs_gset_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { } } @@ -667,15 +740,26 @@ } \cs_new:Npn \__pdf_backend_annotation_last: { @pdf.obj \int_use:N \g__pdf_backend_annotation_int } +\int_new:N \g__pdf_backend_link_int \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2 { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2 { \__pdf_backend_link_begin:n {#1#2} } -\cs_new_protected:Npn \__pdf_backend_link_begin:n #1 +\cs_new_protected:Npx \__pdf_backend_link_begin:n #1 { - \__pdf_backend:n + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + \exp_not:N \int_gincr:N \exp_not:N \g__pdf_backend_link_int + } + \__pdf_backend:x { - bann + bann ~ + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + @pdf.lnk + \exp_not:N \int_use:N \exp_not:N \g__pdf_backend_link_int + \c_space_tl + } << /Type /Annot #1 @@ -684,7 +768,14 @@ } \cs_new_protected:Npn \__pdf_backend_link_end: { \__pdf_backend:n { eann } } -\cs_new:Npn \__pdf_backend_link_last: { } +\cs_new:Npx \__pdf_backend_link_last: + { + \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 } + { + @pdf.lnk + \exp_not:N \int_use:N \exp_not:N \g__pdf_backend_link_int + } + } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2 @@ -703,6 +794,7 @@ { fitbv } { /FitBV ~ @xpos } { fith } { /FitH ~ @ypos } { fitv } { /FitV ~ @xpos } + { fitr } { /Fit } } { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } } ] diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 73bfa9ffd80..1a33daae9a2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -56,7 +56,7 @@ %% l3legacy.dtx (with options: `package') %% l3deprecation.dtx (with options: `package,kernel') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -69,7 +69,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-12-07}% +\def\ExplFileDate{2021-01-09}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -7582,10 +7582,14 @@ \__kernel_tl_gset:Nx \g__sys_backend_tl { \sys_if_engine_xetex:TF - { xdvipdfmx } + { xetex } { \sys_if_output_pdf:TF - { pdfmode } + { + \sys_if_engine_pdftex:TF + { pdftex } + { luatex } + } { dvips } } } @@ -12486,48 +12490,46 @@ \group_begin: \cs_set_protected:Npn \__keyval_tmp:NN #1#2 { - \cs_new:Npn \keyval_parse:NNn ##1 ##2 ##3 - { \__keyval_loop_active:NNw ##1 ##2 \s__keyval_mark ##3 #1 \s__keyval_tail #1 } - \cs_new:Npn \__keyval_loop_active:NNw ##1 ##2 ##3 #1 + \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 + { \__keyval_loop_active:nnw {##1} {##2} \s__keyval_mark ##3 #1 \s__keyval_tail #1 } + \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn + \cs_new:Npn \__keyval_loop_active:nnw ##1 ##2 ##3 #1 { \__keyval_if_recursion_tail:w ##3 \__keyval_end_loop_active:w \s__keyval_tail - \__keyval_loop_other:NNw ##1 ##2 ##3 , \s__keyval_tail , - \__keyval_loop_active:NNw ##1 ##2 \s__keyval_mark + \__keyval_loop_other:nnw {##1} {##2} ##3 , \s__keyval_tail , } - \cs_new:Npn \__keyval_split_other:w ##1 = ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop + \cs_new:Npn \__keyval_split_other:w ##1 = ##2 \s__keyval_mark ##3 { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 } - \cs_new:Npn \__keyval_split_active:w ##1 #2 ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop + \cs_new:Npn \__keyval_split_active:w ##1 #2 ##2 \s__keyval_mark ##3 { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 } - \cs_new:Npn \__keyval_loop_other:NNw ##1 ##2 ##3 , + \cs_new:Npn \__keyval_loop_other:nnw ##1 ##2 ##3 , { \__keyval_if_recursion_tail:w ##3 \__keyval_end_loop_other:w \s__keyval_tail \__keyval_split_active:w ##3 \s__keyval_nil \s__keyval_mark \__keyval_split_active_auxi:w #2 \s__keyval_mark \__keyval_clean_up_active:w - \s__keyval_stop - ##1 ##2 - \__keyval_loop_other:NNw ##1 ##2 \s__keyval_mark + {##1} {##2} + \s__keyval_mark } \cs_new:Npn \__keyval_split_active_auxi:w ##1 \s__keyval_stop { \__keyval_split_other:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w = \s__keyval_mark \__keyval_split_active_auxii:w - \s__keyval_stop } \cs_new:Npn \__keyval_split_active_auxii:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w \s__keyval_stop \s__keyval_mark - { \__keyval_trim:nN { ##1 } \__keyval_split_active_auxiii:w } + ##2 \s__keyval_nil #2 \s__keyval_mark \__keyval_clean_up_active:w + { \__keyval_trim:nN {##1} \__keyval_split_active_auxiii:w ##2 \s__keyval_nil } \cs_new:Npn \__keyval_split_active_auxiii:w ##1 ##2 \s__keyval_nil { \__keyval_split_active:w ##2 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w #2 \s__keyval_mark \__keyval_split_active_auxiv:w - \s__keyval_stop - { ##1 } + {##1} } \cs_new:Npn \__keyval_split_active_auxiv:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w @@ -12536,90 +12538,93 @@ \__keyval_split_other:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w = \s__keyval_mark \__keyval_split_active_auxv:w - \s__keyval_stop } \cs_new:Npn \__keyval_split_active_auxv:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w \s__keyval_stop \s__keyval_mark - { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN } + { \__keyval_trim:nN { ##1 } \__keyval_pair:nnnn } \cs_new:Npn \__keyval_clean_up_active:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_active_auxi:w \s__keyval_stop \s__keyval_mark { \__keyval_split_other:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_other_auxi:w = \s__keyval_mark \__keyval_clean_up_other:w - \s__keyval_stop } \cs_new:Npn \__keyval_split_other_auxi:w ##1 \s__keyval_stop { \__keyval_trim:nN { ##1 } \__keyval_split_other_auxii:w } - \cs_new:Npn \__keyval_split_other_auxii:w ##1 ##2 \s__keyval_nil + \cs_new:Npn \__keyval_split_other_auxii:w + ##1 ##2 \s__keyval_nil = \s__keyval_mark \__keyval_clean_up_other:w { \__keyval_split_other:w ##2 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w = \s__keyval_mark \__keyval_split_other_auxiii:w - \s__keyval_stop { ##1 } } \cs_new:Npn \__keyval_split_other_auxiii:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w \s__keyval_stop \s__keyval_mark - { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN } + { \__keyval_trim:nN { ##1 } \__keyval_pair:nnnn } \cs_new:Npn \__keyval_clean_up_other:w ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_other_auxi:w \s__keyval_stop \s__keyval_mark { \__keyval_if_blank:w ##1 \s__keyval_nil \s__keyval_stop \__keyval_blank_true:w - \s__keyval_mark \s__keyval_stop \use:n - { \__keyval_trim:nN { ##1 } \__keyval_key:nNN } + \s__keyval_mark \s__keyval_stop + \__keyval_trim:nN { ##1 } \__keyval_key:nn } \cs_new:Npn \__keyval_misplaced_equal_after_active_error:w \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil - \s__keyval_mark ##3 \s__keyval_nil ##4 ##5 + = \s__keyval_mark \__keyval_split_active_auxii:w + \s__keyval_mark ##3 \s__keyval_nil + #2 \s__keyval_mark \__keyval_clean_up_active:w { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } + \__keyval_loop_other:nnw } \cs_new:Npn \__keyval_misplaced_equal_in_split_error:w \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil - ##3 ##4 ##5 + ##3 \s__keyval_mark ##4 ##5 { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } + \__keyval_loop_other:nnw } \cs_new:Npn \__keyval_end_loop_other:w \s__keyval_tail - \__keyval_split_active:w ##1 \s__keyval_nil - \s__keyval_mark \__keyval_split_active_auxi:w + \__keyval_split_active:w + \s__keyval_mark \s__keyval_tail + \s__keyval_nil \s__keyval_mark + \__keyval_split_active_auxi:w #2 \s__keyval_mark \__keyval_clean_up_active:w - \s__keyval_stop - ##2 ##3 - \__keyval_loop_other:NNw ##4 \s__keyval_mark - { } + { \__keyval_loop_active:nnw } \cs_new:Npn \__keyval_end_loop_active:w \s__keyval_tail - \__keyval_loop_other:NNw ##1 , \s__keyval_tail , - \__keyval_loop_active:NNw ##2 \s__keyval_mark + \__keyval_loop_other:nnw ##1 \s__keyval_mark \s__keyval_tail , \s__keyval_tail , { } } \char_set_catcode_active:n { `\, } \char_set_catcode_active:n { `\= } \__keyval_tmp:NN , = \group_end: -\cs_new:Npn \__keyval_pair:nnNN #1 #2 #3 #4 +\cs_new:Npn \__keyval_pair:nnnn #1 #2 #3 #4 { \__keyval_if_blank:w \s__keyval_mark #2 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n { #4 { #2 } { #1 } } + \__keyval_loop_other:nnw {#3} {#4} } -\cs_new:Npn \__keyval_key:nNN #1 #2 #3 +\cs_new:Npn \__keyval_key:nn #1 #2 { \__keyval_if_blank:w \s__keyval_mark #1 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n { #2 { #1 } } + \__keyval_loop_other:nnw {#2} } \cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { } \cs_new:Npn \__keyval_if_blank:w \s__keyval_mark #1 { \__keyval_if_empty:w \s__keyval_mark } \cs_new:Npn \__keyval_if_recursion_tail:w \s__keyval_mark #1 \s__keyval_tail { } -\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n #1 #2 #3 { } +\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \__keyval_trim:nN #1 \__keyval_key:nn + { \__keyval_loop_other:nnw } \cs_new:Npn \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n #1 { \__kernel_msg_expandable_error:nn @@ -12642,7 +12647,6 @@ \__keyval_trim_auxiii:w #1 \s__keyval_nil \__keyval_trim_auxiv:w - \s__keyval_stop } \cs_new:Npn \__keyval_trim_auxi:w ##1 \s__keyval_mark #1 ##2 \s__keyval_mark ##3 { @@ -12663,8 +12667,11 @@ ##1 \s__keyval_nil \__keyval_trim_auxiii:w } - \cs_new:Npn \__keyval_trim_auxiv:w \s__keyval_mark ##1 \s__keyval_nil ##2 \s__keyval_stop ##3 - { ##3 { ##1 } } + \cs_new:Npn \__keyval_trim_auxiv:w + \s__keyval_mark ##1 \s__keyval_nil + \__keyval_trim_auxiii:w \s__keyval_nil \__keyval_trim_auxiii:w + ##2 + { ##2 { ##1 } } } \__keyval_tmp:n { ~ } \group_end: @@ -30879,15 +30886,28 @@ { \str_if_eq:nnTF {#1} { \protect } { \__text_purify_protect:N } + { \__text_purify_encoding:N #1 } + } +\cs_new:Npn \__text_purify_protect:N #1 + { + \__text_if_recursion_tail_stop_do:Nn #1 { \__text_purify_end:w } + \__text_purify_loop:w + } +\cs_new:Npn \__text_purify_encoding:N #1 + { + \bool_lazy_or:nnTF + { \cs_if_eq_p:NN #1 \@current@cmd } + { \cs_if_eq_p:NN #1 \@changed@cmd } + { \__text_purify_encoding_escape:NN } { \__text_if_expandable:NTF #1 { \exp_after:wN \__text_purify_loop:w #1 } { \__text_purify_loop:w } } } -\cs_new:Npn \__text_purify_protect:N #1 +\cs_new:Npn \__text_purify_encoding_escape:NN #1#2 { - \__text_if_recursion_tail_stop_do:Nn #1 { \__text_purify_end:w } + \__text_purify_store:n {#1} \__text_purify_loop:w } \cs_new_protected:Npn \text_declare_purify_equivalent:Nn #1#2 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 4c46ec1083e..85131f78f0c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `generic,loader') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-12-07}% +\def\ExplFileDate{2021-01-09}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 25f25219663..0e0330f336e 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `2ekernel,loader') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-12-07}% +\def\ExplFileDate{2021-01-09}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.lua b/Master/texmf-dist/tex/latex/l3kernel/expl3.lua index 5b23084328a..8218ea12d9b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.lua +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.lua @@ -9,7 +9,7 @@ -- l3sys.dtx (with options: `package,lua') -- l3token.dtx (with options: `package,lua') -- --- Copyright (C) 1990-2020 The LaTeX3 Project +-- Copyright (C) 1990-2021 The LaTeX3 Project -- -- It may be distributed and/or modified under the conditions of -- the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 19aeabe2956..8dd408cbee4 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `package,loader') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-12-07}% +\def\ExplFileDate{2021-01-09}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index d597ed9713c..b90ae791235 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def @@ -6,7 +6,7 @@ %% %% l3debug.dtx (with options: `package') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def index 2984fcc0afb..d55d6b99413 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def @@ -6,7 +6,7 @@ %% %% l3deprecation.dtx (with options: `package,patches') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 0e0ce537e00..25c80b62148 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -6,7 +6,7 @@ %% %% l3doc.dtx (with options: `class') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex index 376e7325765..1d2e8d72a2e 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex @@ -6,7 +6,7 @@ %% %% l3docstrip.dtx (with options: `program') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def index 45c44f027f7..ca316ec0a35 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88591') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def index 948529059e4..ccb65d42a0d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885910') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def index 8499b3db482..22ca3b73747 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885911') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def index e4a37283767..bd0013fa24d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885913') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def index 80b71c435db..06cd8059b46 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885914') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def index c691fac5e6e..59a23d2eb62 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885915') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def index a6f069150e4..0208439013a 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885916') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def index 9535a516311..f66a2b07ae7 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88592') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def index b94b703010b..2504eb7566f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88593') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def index 4187032f3dc..a022191de7b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88594') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def index e69031c44c1..0b1d0a636cd 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88595') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def index 2d821d5904c..9f64c9702bc 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88596') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def index 73218e58d49..06ab82da2e2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88597') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def index c0e4dd6e6d6..d1d0e4bad79 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88598') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def index 914d367b892..1a4d5a3e145 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88599') %% -%% Copyright (C) 1990-2020 The LaTeX3 Project +%% Copyright (C) 1990-2021 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of -- cgit v1.2.3