summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md10
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdfbin906761 -> 908468 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md8
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdfbin308189 -> 308083 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdfbin404028 -> 403912 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdfbin667715 -> 667718 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdfbin517374 -> 517252 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdfbin381794 -> 381672 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdfbin334716 -> 334603 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdfbin367649 -> 367526 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdfbin347684 -> 347562 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdfbin394120 -> 394009 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdfbin408561 -> 408448 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdfbin299343 -> 299230 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md8
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/expl3.pdfbin622447 -> 622328 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.pdfbin1763985 -> 1763854 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3doc.pdfbin554414 -> 554292 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdfbin151536 -> 151420 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news.pdfbin395879 -> 395879 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news01.pdfbin122710 -> 122710 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news02.pdfbin150676 -> 150676 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news03.pdfbin148702 -> 148702 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news04.pdfbin114588 -> 114588 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news05.pdfbin112487 -> 112487 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news06.pdfbin151573 -> 151573 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news07.pdfbin128309 -> 128309 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news08.pdfbin163454 -> 163454 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news09.pdfbin250139 -> 250139 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news10.pdfbin150279 -> 150279 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news11.pdfbin170063 -> 170063 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news12.pdfbin204990 -> 204990 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdfbin81407 -> 81407 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdfbin295942 -> 295814 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdfbin242612 -> 242479 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdfbin230994 -> 230878 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.pdfbin6952124 -> 6953226 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.tex2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx380
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx24
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx23
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color.dtx7
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx13
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3flag.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prop.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3quark.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3regex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3seq.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sort.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx2
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def208
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def5
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def5
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def104
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def104
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def208
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty15
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex18
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
147 files changed, 597 insertions, 773 deletions
diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
index e725149f03e..48187b02ea5 100644
--- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
@@ -6,6 +6,13 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-04-20]
+
+### Changed
+- Adjust `(x)dvipdfmx` backend approach to color following issues with
+ multiple color stacks in `xetex.def`
+- Move some functions to `l3color`
+
## [2022-04-14]
### Added
@@ -238,7 +245,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/2022-04-14...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-04-20...HEAD
+[2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-14...2022-04-20
[2022-04-14]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-14
[2022-04-10]: https://github.com/latex3/latex3/compare/2022-02-07...2022-04-10
[2022-02-07]: https://github.com/latex3/latex3/compare/2022-01-12...2022-02-07
diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md
index 824db1bdd30..20ec9a84fe1 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 2022-04-14
+Release 2022-04-20
This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
diff --git a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
index a5c00203937..3d69a13b8e9 100644
--- a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
+++ b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
index eb5896536a1..78831e58278 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
@@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-04-20]
+
+### Fixed
+- Finding graphics files with multiple extensions
+
## [2022-04-10]
### Added
@@ -246,7 +251,8 @@ this project uses date-based 'snapshot' version identifiers.
- New `l3color` module using `xcolor`-like expression syntax
- New `l3draw` module, based on `pgf` layer of the TikZ system
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-04-10...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-04-20...HEAD
+[2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-20
[2022-04-10]: https://github.com/latex3/latex3/compare/2022-02-05...2022-04-10
[2022-02-05]: https://github.com/latex3/latex3/compare/2021-11-12...2022-02-05
[2021-11-12]: https://github.com/latex3/latex3/compare/2021-08-27...2021-11-12
diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md
index 8d02dbf001e..61893ee1444 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/README.md
+++ b/Master/texmf-dist/doc/latex/l3experimental/README.md
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================
-Release 2022-04-10
+Release 2022-04-20
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
index e5f7ea9bc15..cc2eafedb33 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf
index 47e6e50d2b1..6be2638c8b1 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
index 31b8834d68e..a980d5775f2 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
index d58318d5d3a..36d736d883c 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
index 3d5ce27457e..cd16e12ff39 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf
index ffdc6588468..46163501c3b 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
index 74e1f21ef0c..547cc3b5570 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
index 8baa8395b8c..2e673babe4e 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
index 269b1c2ffa6..1cf45fa2ec8 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
index af4ba00c962..f1911808266 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
index 7addf4afe80..d9e7678c0eb 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
index 81af951ced4..39130c2abfe 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
@@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-04-20]
+
+### Changed
+- Collect some common code from `l3backend-color`
+
## [2022-04-10]
### Added
@@ -1073,7 +1078,8 @@ this project uses date-based 'snapshot' version identifiers.
- Step functions have been added for dim variables,
e.g. `\dim_step_inline:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-04-10...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-04-20...HEAD
+[2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-20
[2022-04-10]: https://github.com/latex3/latex3/compare/2022-02-24...2022-04-10
[2022-02-24]: https://github.com/latex3/latex3/compare/2022-02-21...2022-02-24
[2022-02-21]: https://github.com/latex3/latex3/compare/2022-02-05...2022-02-21
diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md
index c3054ed481f..22712dc9379 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 2022-04-10
+Release 2022-04-20
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
index 17f1287430e..29776ed923f 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
index fa6f1230619..229072c9ba6 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
index 9274fe46c33..fa53f4fe9ff 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
@@ -54,7 +54,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-04-10}
+\date{Released 2022-04-20}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
index 1577ec2375d..d7c60a5bc6f 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
index c4ccf582496..e853d5aea90 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
index 9ca06a0a682..c4d0d407a84 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
index 1976dbbfc50..be6541557d2 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
index 96c2a091579..453e2f405a6 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
index 68b424976f7..bafa452ea8f 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
index 4337d21355e..115e960a077 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
index 6a23c7d8bbc..025aea91cd8 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
index 07b0787506f..0cf9c2f3fc4 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
index 221fdc815a0..1861ba93d6d 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
index 88dce292213..e96b64b0f5e 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
index 0e81abd0933..2a10b6e0b9e 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
index 96bbed22455..a56a5e4b3b6 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
index 39754d32c5c..64c19e20874 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
index 9035265fc7e..6f43ea20a87 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
index 433569b9b2b..12350c7ad7d 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
index 21449e7b02e..cdb2b804b83 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
index 6fd43ce8019..f28431faa48 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-04-10}
+\date{Released 2022-04-20}
\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 587c0c8b36d..c3e6f8dc4fe 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
index 722a90977aa..86f0f57d129 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-04-10}
+\date{Released 2022-04-20}
\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 d200cd3e0c7..6e0af9c77ac 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
index 90b3a71af2e..0239a0ee4ba 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-04-10}
+\date{Released 2022-04-20}
\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 c00c8648b57..4a9e9656321 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
index 3defa4b47ae..f889363f679 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
@@ -53,7 +53,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-04-10}
+\date{Released 2022-04-20}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
index adaf33ee445..1eb47c105e2 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2022-04-14}{}
+ {l3backend-dvipdfmx.def}{2022-04-20}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2022-04-14}{}
+ {l3backend-dvips.def}{2022-04-20}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2022-04-14}{}
+ {l3backend-dvisvgm.def}{2022-04-20}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2022-04-14}{}
+ {l3backend-luatex.def}{2022-04-20}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2022-04-14}{}
+ {l3backend-pdftex.def}{2022-04-20}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2022-04-14}{}
+ {l3backend-xetex.def}{2022-04-20}{}
{L3 backend support: XeTeX}
%</xetex>
% \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 4093f8b3a73..872e2dadcb3 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
index 7166fb693d9..6f766bc88a1 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -60,9 +60,10 @@
%<@@=color>
% \end{macrocode}
%
-% 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
+% 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.
@@ -169,119 +170,29 @@
% \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.
+% This is used for concepts beyond color itself: it is needed to manage the
+% graphics state generally. Although \texttt{dvipdfmx}/\XeTeX{} have multiple
+% color stacks in recent releases, the way these interact with the original
+% single stack and with other graphic state operations means that currently it
+% is not feasible to use the multiple stacks.
%
% \subsubsection{Common code}
%
% \begin{macrocode}
-%<*dvipdfmx|luatex|pdftex|xetex>
+%<*luatex|pdftex>
% \end{macrocode}
%
% \begin{variable}{\l_@@_backend_stack_int}
-% \pdfTeX{}, \LuaTeX{} and recent \texttt{(x)dvipdfmx} have multiple stacks
-% available, and to track which one is in use a variable is required.
+% For tracking which stack is in use where multiple stacks are used:
+% currently just \pdfTeX{}/\LuaTeX{} but at some future stage may also cover
+% \texttt{dvipdfmx}/\XeTeX{}.
% \begin{macrocode}
\int_new:N \l_@@_backend_stack_int
% \end{macrocode}
% \end{variable}
%
% \begin{macrocode}
-%</dvipdfmx|luatex|pdftex|xetex>
-% \end{macrocode}
-%
-% \subsubsection{\texttt{dvipdfmx}/\XeTeX{}}
-%
-% \begin{macrocode}
-%<*dvipdfmx|xetex>
-% \end{macrocode}
-%
-% \begin{macro}{\__kernel_color_backend_stack_init:Nnn}
-% \begin{variable}
-% {\g_@@_backend_stack_int, \c_@@_backend_main_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_new:N \g_@@_backend_stack_int
-\cs_new_protected:Npx \__kernel_color_backend_stack_init:Nnn #1#2#3
- {
- \int_gincr:N \exp_not:N \g_@@_backend_stack_int
- \int_const:Nn #1 { \exp_not:N \g_@@_backend_stack_int }
- \use:x
- {
- \__kernel_backend_first_shipout:n
- {
- \__kernel_backend_literal:n
- {
- pdfcolorstackinit ~
- \exp_not:N \int_use:N \exp_not:N \g_@@_backend_stack_int
- \c_space_tl
- \exp_not:N \tl_if_blank:nF {#2} { #2 ~ }
- (#3)
- }
- }
- }
- }
-\cs_if_exist:cTF { main@pdfcolorstack }
- {
- \int_set:Nn \l_@@_backend_stack_int
- { \int_use:c { main@pdfcolorstack } }
- }
- {
- \__kernel_color_backend_stack_init:Nnn \c_@@_backend_main_stack_int
- { page ~ direct } { 0 ~ g ~ 0 ~ G }
- \int_set_eq:NN \l_@@_backend_stack_int
- \c_@@_backend_main_stack_int
- \int_const:cn { main@pdfcolorstack } { \c_@@_backend_main_stack_int }
- }
-% \end{macrocode}
-% The backend automatically restores the stack color from the \enquote{classical}
-% approach (\texttt{pdf:bcolor}) after a scope. That will be an issue for us, so
-% we manually ensure that the one we are using is inserted.
-% \begin{macrocode}
-\cs_gset_protected:Npn \__kernel_backend_scope_end:
- {
- \__kernel_backend_literal:n { x:grestore }
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_use:N \g_@@_backend_stack_int \c_space_tl current
- }
- }
-% \end{macrocode}
-% \end{variable}
-% \end{macro}
-%
-% \begin{macro}{\__kernel_color_backend_stack_push:nn, \__kernel_color_backend_stack_push:nx}
-% \begin{macro}{\__kernel_color_backend_stack_pop:n}
-% Simple enough but needs a version check.
-% \begin{macrocode}
-\cs_new_protected:Npn \__kernel_color_backend_stack_push:nn #1#2
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- push ~ (#2)
- }
- }
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
-\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- pop
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macrocode}
-%</dvipdfmx|xetex>
+%</luatex|pdftex>
% \end{macrocode}
%
% \subsubsection{\LuaTeX and \pdfTeX{}}
@@ -309,7 +220,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\__kernel_color_backend_stack_push:nn, \__kernel_color_backend_stack_push:nx}
+% \begin{macro}{\__kernel_color_backend_stack_push:nn}
% \begin{macro}{\__kernel_color_backend_stack_pop:n}
% \begin{macrocode}
\cs_new_protected:Npn \__kernel_color_backend_stack_push:nn #1#2
@@ -322,7 +233,6 @@
%</pdftex>
\int_eval:n {#1} ~ push ~ {#2}
}
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
{
%<*luatex>
@@ -392,7 +302,7 @@
% \subsubsection{\LuaTeX{} and \pdfTeX{}}
%
% \begin{macrocode}
-%<*dvipdfmx|luatex|pdftex|xetex>
+%<*luatex|pdftex>
% \end{macrocode}
%
% \begin{variable}{\l_@@_backend_fill_tl, \l_@@_backend_stroke_tl}
@@ -431,6 +341,45 @@
% \end{macro}
% \end{macro}
%
+% \begin{macrocode}
+%</luatex|pdftex>
+% \end{macrocode}
+%
+% \subsubsection{\texttt{dvipmdfx}/\XeTeX{}}
+%
+% These backends have the most possible approaches: it recognises both
+% \texttt{dvips}-based color specials and its 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. However, at present this interacts problematically with any color
+% on the original stack. We therefore stick to a single-stack approach here.
+%
+% \begin{macrocode}
+%<*dvipdfmx|xetex>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_select:n ,
+% \@@_backend_select_cmyk:n ,
+% \@@_backend_select_gray:n ,
+% \@@_backend_select_rgb:n
+% }
+% \begin{macro}{\@@_backend_reset:}
+% Using the single stack is relatively easy as there is only one route.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_select:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
+\cs_new_eq:NN \@@_backend_select_cmyk:n \@@_backend_select:n
+\cs_new_eq:NN \@@_backend_select_gray:n \@@_backend_select:n
+\cs_new_eq:NN \@@_backend_select_rgb:n \@@_backend_select:n
+\cs_new_protected:Npn \@@_backend_reset:
+ { \__kernel_backend_literal:n { pdf : ec } }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\@@_backend_select_named:n}
% For classical named colors, the only value we should get is |Black|.
% \begin{macrocode}
@@ -446,19 +395,9 @@
% \end{macro}
%
% \begin{macrocode}
-%</dvipdfmx|luatex|pdftex|xetex>
+%</dvipdfmx|xetex>
% \end{macrocode}
%
-% \subsubsection{\texttt{dvipmdfx}/\XeTeX{}}
-%
-% 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).
-%
% \subsection{Separations}
%
% Here, life gets interesting and we need essentially one approach per
@@ -867,24 +806,53 @@
% \@@_backend_select_devicen:nn ,
% \@@_backend_select_iccbased:nn
% }
-% 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}
+%<*dvipdfmx|xetex>
+\cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
+ { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } }
+%</dvipdfmx|xetex>
+%<*luatex|pdftex>
\cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
{ \@@_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
+%</luatex|pdftex>
\cs_new_eq:NN \@@_backend_select_devicen:nn \@@_backend_select_separation:nn
\cs_new_eq:NN \@@_backend_select_iccbased:nn \@@_backend_select_separation:nn
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_init_resource:n}
+% Resource initiation comes up a few times. For \texttt{dvipdfmx}/\XeTeX{},
+% we skip this as at present it's handled by the backend.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_init_resource:n #1
+ {
+%<*luatex|pdftex>
+ \bool_lazy_and:nnT
+ { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
+ { \pdfmanagement_if_active_p: }
+ {
+ \use:x
+ {
+ \pdfmanagement_add:nnn
+ { Page / Resources / ColorSpace }
+ { #1 }
+ { \pdf_object_ref_last: }
+ }
+ }
+%</luatex|pdftex>
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_backend_separation_init:nnnnn}
% \begin{macro}{\@@_backend_separation_init:nn}
% \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. We use a separate object for the tint transformation
-% following the model in the PDF reference.
+% following the model in the PDF reference. The object here for the color
+% needs to be named as that way it's accessible to
+% \texttt{dvipdfmx}/\XeTeX{}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5
{
@@ -898,23 +866,16 @@
}
\exp_args:Nx \@@_backend_separation_init:nn
{ \str_convert_pdfname:n {#1} } {#2}
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g_@@_model_int }
- { \pdf_object_ref_last: }
- }
- }
+ \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int }
}
\cs_new_protected:Npn \@@_backend_separation_init:nn #1#2
{
- \pdf_object_unnamed_write:nx { array }
- { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ \use:x
+ {
+ \pdf_object_new:nn { color \int_use:N \g_@@_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g_@@_model_int }
+ { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ }
\prop_gput:Nnx \g_@@_backend_colorant_prop { /#1 }
{ \pdf_object_ref_last: }
}
@@ -978,26 +939,19 @@
}
{ {#3} }
}
- \pdf_object_unnamed_write:nx { array }
- {
- /DeviceN ~
- [ ~ #1 ~ ] ~
- #2 ~
- \pdf_object_ref_last:
- \@@_backend_devicen_colorants:n {#1}
- }
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
+ \use:x
{
- \use:x
+ \pdf_object_new:nn { color \int_use:N \g_@@_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g_@@_model_int }
{
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g_@@_model_int }
- { \pdf_object_ref_last: }
+ /DeviceN ~
+ [ ~ #1 ~ ] ~
+ #2 ~
+ \pdf_object_ref_last:
+ \@@_backend_devicen_colorants:n {#1}
}
}
+ \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int }
}
\cs_new:Npn \@@_backend_devicen_init:w #1 ~ #2 \s_@@_stop
{
@@ -1029,23 +983,14 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
- { color \int_use:N \g_@@_model_int }
- { ~ \pdf_object_ref_last: }
- }
- }
+ \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int }
}
% \end{macrocode}
% \end{macro}
-
%
% \begin{macro}{\@@_backend_iccbased_device:nnn}
% This is very similar to setting up a color space: the only part we
-% skip is adding it to the page resources.
+% add to the page resources differently.
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_iccbased_device:nnn #1#2#3
{
@@ -1060,16 +1005,7 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { Default #2 }
- { \pdf_object_ref_last: }
- }
- }
+ \@@_backend_init_resource:n { Default #2 }
}
% \end{macrocode}
% \end{macro}
@@ -1080,13 +1016,78 @@
%
% \subsection{Fill and stroke color}
%
-% Here, \texttt{dvipdfmx}/\XeTeX{} follows \LuaTeX{} and \pdfTeX{},
-% while for \texttt{dvips}
+% Here, \texttt{dvipdfmx}/\XeTeX{} we write direct PDF specials for the fill,
+% and only use the stack for the stroke color (see above for comments on why
+% we cannot use multiple stacks with these backends). \LuaTeX{} and \pdfTeX{}
+% have mutiple stacks that can deal with fill and stroke. For \texttt{dvips}
% we have to manage fill and stroke color ourselves. We also handle
% \texttt{dvisvgm} independently, as there we can create SVG directly.
%
% \begin{macrocode}
-%<*dvipdfmx|luatex|pdftex|xetex>
+%<*dvipdfmx|xetex>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill:n ,
+% \@@_backend_fill_cmyk:n ,
+% \@@_backend_fill_gray:n ,
+% \@@_backend_fill_rgb:n ,
+% \@@_backend_stroke:n ,
+% \@@_backend_stroke_cmyk:n ,
+% \@@_backend_stroke_gray:n ,
+% \@@_backend_stroke_rgb:n
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ fill ~ [ #1 ] } }
+\cs_new_eq:NN \@@_backend_fill_cmyk:n \@@_backend_fill:n
+\cs_new_eq:NN \@@_backend_fill_gray:n \@@_backend_fill:n
+\cs_new_eq:NN \@@_backend_fill_rgb:n \@@_backend_fill:n
+\cs_new_protected:Npn \@@_backend_stroke:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ stroke ~ [ #1 ] } }
+\cs_new_eq:NN \@@_backend_stroke_cmyk:n \@@_backend_stroke:n
+\cs_new_eq:NN \@@_backend_stroke_gray:n \@@_backend_stroke:n
+\cs_new_eq:NN \@@_backend_stroke_rgb:n \@@_backend_stroke:n
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_separation:nn,
+% \@@_backend_stroke_separation:nn,
+% \@@_backend_fill_devicen:nn,
+% \@@_backend_stroke_devicen:nn
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2
+ {
+ \__kernel_backend_literal:x
+ { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
+ }
+\cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2
+ {
+ \__kernel_backend_literal:x
+ { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
+ }
+\cs_new_eq:NN \@@_backend_fill_devicen:nn \@@_backend_fill_separation:nn
+\cs_new_eq:NN \@@_backend_stroke_devicen:nn \@@_backend_stroke_separation:nn
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
+% \begin{macrocode}
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_eq:NN \@@_backend_stroke_reset: \@@_backend_reset:
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvipdfmx|xetex>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*luatex|pdftex>
% \end{macrocode}
%
% \begin{macro}
@@ -1117,7 +1118,6 @@
\tl_set:Nn \l_@@_backend_fill_tl {#1}
\__kernel_color_backend_stack_push:nn \l_@@_backend_stack_int
{ #1 ~ \l_@@_backend_stroke_tl }
- \group_insert_after:N \@@_backend_reset:
}
\cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
{ \@@_backend_stroke:n { #1 ~ K } }
@@ -1130,7 +1130,6 @@
\tl_set:Nn \l_@@_backend_stroke_tl {#1}
\__kernel_color_backend_stack_push:nn \l_@@_backend_stack_int
{ \l_@@_backend_fill_tl \c_space_tl #1 }
- \group_insert_after:N \@@_backend_reset:
}
% \end{macrocode}
% \end{macro}
@@ -1152,8 +1151,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
% \begin{macrocode}
-%</dvipdfmx|luatex|pdftex|xetex>
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_eq:NN \@@_backend_stroke_reset: \@@_backend_reset:
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</luatex|pdftex>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1182,7 +1188,6 @@
\cs_new_protected:Npn \@@_backend_fill:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \group_insert_after:N \@@_backend_reset:
}
\cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
{ \__kernel_backend_postscript:n { /color.sc { #1 ~ setcmykcolor } def } }
@@ -1210,6 +1215,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
+% \begin{macrocode}
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_protected:Npn \@@_backend_stroke_reset: { }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</dvips>
% \end{macrocode}
@@ -1237,7 +1249,6 @@
\cs_new_protected:Npn \@@_backend_fill:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \group_insert_after:N \@@_backend_reset:
}
% \end{macrocode}
% \end{macro}
@@ -1327,6 +1338,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
+% \begin{macrocode}
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_protected:Npn \@@_backend_stroke_reset: { }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_backend_devicen_init:nnn, \@@_backend_iccbased_init:nnn}
% No support at present.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
index 4a0d7796822..c8029dfca5d 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
index 08df3f16b5d..9d5b31faa98 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
index 2298af2a4e3..cad715a2004 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
index 9fd8426741d..4c5de69fb4a 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -139,14 +139,16 @@
% \end{macrocode}
%
% \begin{variable}{\c_@@_backend_stack_int}
-% Set up a stack.
+% Set up a stack, where that is applicable.
% \begin{macrocode}
\bool_lazy_and:nnT
{ \cs_if_exist_p:N \pdfmanagement_if_active_p: }
{ \pdfmanagement_if_active_p:}
{
+%<*luatex|pdftex>
\__kernel_color_backend_stack_init:Nnn \c_@@_backend_stack_int
{ page ~ direct } { /opacity 1 ~ gs }
+%</luatex|pdftex>
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
}
@@ -178,7 +180,12 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity #1 }
{ << /ca ~ #1 /CA ~ #1 >> }
+%<*dvipdfmx|xetex>
+ \__kernel_backend_literal:n
+%</dvipdfmx|xetex>
+%<*luatex|pdftex>
\__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+%</luatex|pdftex>
{ /opacity #1 ~ gs }
\group_insert_after:N \@@_backend_reset:
}
@@ -189,7 +196,11 @@
\cs_gset_protected:Npn \@@_backend_select_aux:n #1 { }
}
\cs_new_protected:Npn \@@_backend_reset:
- { \__kernel_color_backend_stack_pop:n \c_@@_backend_stack_int }
+ {
+%<*luatex|pdftex>
+ \__kernel_color_backend_stack_pop:n \c_@@_backend_stack_int
+%</luatex|pdftex>
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -224,7 +235,12 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity.stroke #1 }
{ << /CA ~ #2 >> }
- \__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+%<*dvipdfmx|xetex>
+ \__kernel_backend_literal:n
+%</dvipdfmx|xetex>
+%<*luatex|pdftex>
+ \__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+%</luatex|pdftex>
{ /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
\group_insert_after:N \@@_backend_reset:
}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
index 071b8805f5c..f8cf0111602 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
index 0eb34e5c0c7..a2cc6311a95 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -122,7 +122,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2022-04-10}{}
+\ProvidesExplPackage{l3benchmark}{2022-04-20}{}
{L3 Experimental benchmarking}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
index 3443ca7d25b..0038883adf2 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
% \begin{documentation}
@@ -264,7 +264,7 @@
%<@@=bitset>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2022-04-10}{}
+\ProvidesExplPackage{l3bitset}{2022-04-20}{}
{L3 Experimental bitset support}
% \end{macrocode}
% A bitset is a string variable.
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
index 926ff3387ea..4059deb74c1 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
index e82e7a1e2a9..bbdc422604c 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
index 024faef3247..27252d36c4d 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
index fe3c28351ea..d67f61cbcc5 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
index 2fcc7e8ac0f..2a4968ba782 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
index 53dfd48728f..91f16e362d5 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
index b93f593a7e8..b4cdd7b1f38 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
index bdc96e0c88d..3461dd983c2 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
index 31ac35f0425..9dcca5c6f8f 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
@@ -110,7 +110,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -1173,7 +1173,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2022-04-10}{}
+\ProvidesExplPackage{l3draw}{2022-04-20}{}
{L3 Experimental core drawing support}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
index cf4a70983d2..0a3556c5bed 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -185,13 +185,14 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2022-04-10}{}
+\ProvidesExplPackage{l3graphics}{2022-04-20}{}
{L3 Experimental graphics inclusion support}
% \end{macrocode}
%
-% \begin{variable}{\l_@@_internal_ior, \l_@@_internal_tl}
+% \begin{variable}{\l_@@_internal_dim, \l_@@_internal_ior, \l_@@_internal_tl}
% Scratch space.
% \begin{macrocode}
+\dim_new:N \l_@@_internal_dim
\ior_new:N \l_@@_internal_ior
\tl_new:N \l_@@_internal_tl
% \end{macrocode}
@@ -631,7 +632,9 @@
% \begin{macro}{\graphics_get_full_name:nN}
% \begin{macro}[TF]{\graphics_get_full_name:nN}
% \begin{macro}{\@@_get_full_name:n}
-% A simple search.
+% As well as searching by path, etc., there is a need here to check that
+% we do not trip over |foo.bar| if |.bar| is not a known extension for
+% the current backend.
% \begin{macrocode}
\cs_new_protected:Npn \graphics_get_full_name:nN #1#2
{
@@ -645,8 +648,18 @@
\seq_set_eq:NN \l_file_search_path_seq \l_graphics_search_path_seq
\file_get_full_name:nNTF {#1} \l_@@_full_name_str
{
- \str_if_eq:eeT { \l_@@_full_name_str } { #1 .tex }
+ \str_if_eq:eeTF { \l_@@_full_name_str } { #1 .tex }
{ \@@_get_full_name:n {#1} }
+ {
+ \file_parse_full_name:VNNN \l_@@_full_name_str
+ \l_@@_dir_str \l_@@_name_str \l_@@_ext_str
+ \seq_map_inline:Nn \l_graphics_search_ext_seq
+ {
+ \str_if_eq:nVT {##1} \l_@@_ext_str
+ { \seq_map_break:n { \use_none:nn } }
+ }
+ \@@_get_full_name:n {#1}
+ }
}
{ \@@_get_full_name:n {#1} }
\exp_args:NNNV \group_end:
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
index 192f6b6818d..0ad59425ff9 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -97,7 +97,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3opacity}{2022-04-10}{}
+\ProvidesExplPackage{l3opacity}{2022-04-20}{}
{L3 Experimental opacity support}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
index c84c77c6081..6ca47a96939 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2022-04-10}{}
+\ProvidesExplPackage{l3str-format}{2022-04-20}{}
{L3 Experimental string formatting}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
index db10bbbf606..3f8f711278f 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -151,7 +151,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2022-04-10}{}
+\ProvidesExplPackage{l3sys-shell}{2022-04-20}{}
{L3 Experimental system shell functions}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
index e7773188c01..44a79131812 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -672,7 +672,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2022-04-10}{}
+\ProvidesExplPackage{xcoffins}{2022-04-20}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
index 5dd9d565eba..08bc1732934 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -686,7 +686,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2022-04-10}{}
+\ProvidesExplPackage{l3galley}{2022-04-20}{}
{L3 Experimental galley code}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
index 2e541d65507..1d721dd5902 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -731,7 +731,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2022-04-10}{}
+\ProvidesExplPackage{xgalley}{2022-04-20}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 34e12e7d550..4b64f6a13df 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2022-04-10}%
+\def\ExplFileDate{2022-04-20}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index c945620eced..322813f1634 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 5b137477ca3..42be007851e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 7c19e49bfd4..5376ce1713a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index d8e01d0d0bf..79a4b5a0a1e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
index 69409085fe7..2bb46eda42f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index a2e5dd0ec0e..8bce2d8d74d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index d00fe3918d4..db9d753ee58 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
index 93f42374efe..1cb9c71bb68 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -1600,7 +1600,10 @@
\exp_after:wN \@@_draw:nnn \l_@@_current_tl { stroke }
}
\cs_new_protected:Npn \@@_draw:nnn #1#2#3
- { \use:c { @@_backend_ #3 _ #1 :n } {#2} }
+ {
+ \use:c { @@_backend_ #3 _ #1 :n } {#2}
+ \exp_args:Nc \group_insert_after:N { @@_backend_ #3 _ reset: }
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index 65457cbdeaf..ce4c2b02796 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 4d48f2a0077..ed7222bf67c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -487,15 +487,14 @@
%
% \subsection{Deprecated \pkg{l3sys} functions}
%
+% \begin{macrocode}
+%<@@=sys>
+% \end{macrocode}
+%
% \begin{macro}{\sys_load_deprecation:}
% \begin{macrocode}
\__kernel_patch_deprecation:nnNNpn { 2021-01-11 } { (no~longer~required) }
-\cs_gset_protected:Npn \sys_load_deprecation:
- {
- \bool_if:NF \g_@@_deprecation_bool
- { \__kernel_sys_configuration_load:n { l3deprecation } }
- \bool_gset_true:N \g_@@_deprecation_bool
- }
+\cs_gset_protected:Npn \sys_load_deprecation: { }
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 0db227edf9d..b948b6ef148 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -85,7 +85,7 @@ and all files in that bundle must be distributed together.
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 9319cd39e51..adaab466635 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 614a73d29e2..5f68d32791b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index adf73279bc7..b3c86f0117f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index 22fae08ae6d..a36e3e7f30c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index 38f6d3ff6ac..ec8dcce6390 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
% \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 9ae275ac225..169bfa4b4d9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 8cd126989af..1c4abe1c822 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index 6fc2681f561..62c44efe0ab 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index fdaece8932a..9ec52f82363 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index d116ce92211..56b5bcab2b5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 7c24b0822c9..909f20d9e79 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 307a848a088..cb2630f5dad 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index 8ad1b848804..c437ea1cb18 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 8cb45a097bd..fddead799ab 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index 6cd2dd1b9b5..45977704d63 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
% \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 993db8a0b62..b4e1b6bfb6e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index c0f2daa4829..1b692e111d6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index 2b279e18d7c..1dcd88b349e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index e8dc857816b..1def079f9c7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 916cef5db2f..ef7cedf8d93 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index bd62a0dbca6..f5e3dd4c325 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 81eb124edd9..dcfa2a5c8b0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index 534d37be27c..19e3a8c0ea4 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index 04786d3c1f5..1d54693b884 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index ef95cabf996..d315aff78e5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index 50512593c3c..94a18e5ee5b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -794,6 +794,8 @@
\@@_primitive:NN \crampedscriptstyle \tex_crampedscriptstyle:D
\@@_primitive:NN \crampedtextstyle \tex_crampedtextstyle:D
\@@_primitive:NN \csstring \tex_csstring:D
+ \@@_primitive:NN \discretionaryligaturemode
+ \tex_discretionaryligaturemode:D
\@@_primitive:NN \directlua \tex_directlua:D
\@@_primitive:NN \dviextension \tex_dviextension:D
\@@_primitive:NN \dvifeedback \tex_dvifeedback:D
@@ -840,10 +842,12 @@
\@@_primitive:NN \luatexbanner \tex_luatexbanner:D
\@@_primitive:NN \luatexrevision \tex_luatexrevision:D
\@@_primitive:NN \luatexversion \tex_luatexversion:D
+ \@@_primitive:NN \mathdefaultsmode \tex_mathdefaultsmode:D
\@@_primitive:NN \mathdelimitersmode \tex_mathdelimitersmode:D
\@@_primitive:NN \mathdir \tex_mathdir:D
\@@_primitive:NN \mathdirection \tex_mathdirection:D
\@@_primitive:NN \mathdisplayskipmode \tex_mathdisplayskipmode:D
+ \@@_primitive:NN \matheqdirmode \tex_matheqdirmode:D
\@@_primitive:NN \matheqnogapstep \tex_matheqnogapstep:D
\@@_primitive:NN \mathnolimitsmode \tex_mathnolimitsmode:D
\@@_primitive:NN \mathoption \tex_mathoption:D
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
index b2ed19cb085..d94bd4f0342 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 98f62111870..da352b14fc1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index 1d0694fe6a2..b86bb5f6ddf 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index 53ea8dfc182..3088a12d35f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index e9c254bb029..192dd6ecc67 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index bf285df9646..545321f959e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 75e80b0c54f..dac1117ef4b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index 11604bbf817..a677ae672ee 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index 8646c378e52..52cbcc19a29 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index ddfdd102793..00b4e96dd2f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index a211af619bd..ca862ca831e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index faa9960f790..9ffd8a140a9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
index a055aec838d..7b7b2957e7b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index 3cb5795a5df..caa3ba34a25 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 0db5f15d7ab..bcce1944fd3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 68d2cdaf8a5..af83797cd19 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 3d5858a37ad..6b1b1759ffd 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index db57bd0f386..19134440aea 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
index e5141ab8ed1..fdf2baaab68 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvipdfmx.def}{2022-04-14}{}
+ {l3backend-dvipdfmx.def}{2022-04-20}{}
{L3 backend support: dvipdfmx}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -87,83 +87,13 @@
\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
{ \tl_set:Nn #3 { {#1} {#2} } }
}
-\int_new:N \l__color_backend_stack_int
-\int_new:N \g__color_backend_stack_int
-\cs_new_protected:Npx \__kernel_color_backend_stack_init:Nnn #1#2#3
- {
- \int_gincr:N \exp_not:N \g__color_backend_stack_int
- \int_const:Nn #1 { \exp_not:N \g__color_backend_stack_int }
- \use:x
- {
- \__kernel_backend_first_shipout:n
- {
- \__kernel_backend_literal:n
- {
- pdfcolorstackinit ~
- \exp_not:N \int_use:N \exp_not:N \g__color_backend_stack_int
- \c_space_tl
- \exp_not:N \tl_if_blank:nF {#2} { #2 ~ }
- (#3)
- }
- }
- }
- }
-\cs_if_exist:cTF { main@pdfcolorstack }
- {
- \int_set:Nn \l__color_backend_stack_int
- { \int_use:c { main@pdfcolorstack } }
- }
- {
- \__kernel_color_backend_stack_init:Nnn \c__color_backend_main_stack_int
- { page ~ direct } { 0 ~ g ~ 0 ~ G }
- \int_set_eq:NN \l__color_backend_stack_int
- \c__color_backend_main_stack_int
- \int_const:cn { main@pdfcolorstack } { \c__color_backend_main_stack_int }
- }
-\cs_gset_protected:Npn \__kernel_backend_scope_end:
- {
- \__kernel_backend_literal:n { x:grestore }
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_use:N \g__color_backend_stack_int \c_space_tl current
- }
- }
-\cs_new_protected:Npn \__kernel_color_backend_stack_push:nn #1#2
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- push ~ (#2)
- }
- }
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
-\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- pop
- }
- }
-\tl_new:N \l__color_backend_fill_tl
-\tl_new:N \l__color_backend_stroke_tl
-\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
- { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
-\cs_new_protected:Npn \__color_backend_select_gray:n #1
- { \__color_backend_select:nn { #1 ~ g } { #1 ~ G } }
-\cs_new_protected:Npn \__color_backend_select_rgb:n #1
- { \__color_backend_select:nn { #1 ~ rg } { #1 ~ RG } }
-\cs_new_protected:Npn \__color_backend_select:nn #1#2
- {
- \tl_set:Nn \l__color_backend_fill_tl {#1}
- \tl_set:Nn \l__color_backend_stroke_tl {#2}
- \__kernel_color_backend_stack_push:nn \l__color_backend_stack_int { #1 ~ #2 }
- }
+\cs_new_protected:Npn \__color_backend_select:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
+\cs_new_eq:NN \__color_backend_select_cmyk:n \__color_backend_select:n
+\cs_new_eq:NN \__color_backend_select_gray:n \__color_backend_select:n
+\cs_new_eq:NN \__color_backend_select_rgb:n \__color_backend_select:n
\cs_new_protected:Npn \__color_backend_reset:
- { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int }
+ { \__kernel_backend_literal:n { pdf : ec } }
\cs_new_protected:Npn \__color_backend_select_named:n #1
{
\str_if_eq:nnTF {#1} { Black }
@@ -199,9 +129,12 @@
\__color_backend_devicen_colorants:w
}
\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
- { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
+ { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
+\cs_new_protected:Npn \__color_backend_init_resource:n #1
+ {
+ }
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
{
\pdf_object_unnamed_write:nx { dict }
@@ -214,23 +147,16 @@
}
\exp_args:Nx \__color_backend_separation_init:nn
{ \str_convert_pdfname:n {#1} } {#2}
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
\cs_new_protected:Npn \__color_backend_separation_init:nn #1#2
{
- \pdf_object_unnamed_write:nx { array }
- { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ \use:x
+ {
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ }
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
{ \pdf_object_ref_last: }
}
@@ -280,26 +206,19 @@
}
{ {#3} }
}
- \pdf_object_unnamed_write:nx { array }
- {
- /DeviceN ~
- [ ~ #1 ~ ] ~
- #2 ~
- \pdf_object_ref_last:
- \__color_backend_devicen_colorants:n {#1}
- }
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
+ \use:x
{
- \use:x
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
{
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { \pdf_object_ref_last: }
+ /DeviceN ~
+ [ ~ #1 ~ ] ~
+ #2 ~
+ \pdf_object_ref_last:
+ \__color_backend_devicen_colorants:n {#1}
}
}
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
\cs_new:Npn \__color_backend_devicen_init:w #1 ~ #2 \s__color_stop
{
@@ -323,17 +242,8 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { ~ \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
-
\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
@@ -347,49 +257,32 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { Default #2 }
- { \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { Default #2 }
}
-\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__color_backend_fill:n { #1 ~ k } }
-\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__color_backend_fill:n { #1 ~ g } }
-\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__color_backend_fill:n { #1 ~ rg } }
\cs_new_protected:Npn \__color_backend_fill:n #1
- {
- \tl_set:Nn \l__color_backend_fill_tl {#1}
- \__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
- { #1 ~ \l__color_backend_stroke_tl }
- \group_insert_after:N \__color_backend_reset:
- }
-\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__color_backend_stroke:n { #1 ~ K } }
-\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__color_backend_stroke:n { #1 ~ G } }
-\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__color_backend_stroke:n { #1 ~ RG } }
+ { \__kernel_backend_literal:n { pdf : bc ~ fill ~ [ #1 ] } }
+\cs_new_eq:NN \__color_backend_fill_cmyk:n \__color_backend_fill:n
+\cs_new_eq:NN \__color_backend_fill_gray:n \__color_backend_fill:n
+\cs_new_eq:NN \__color_backend_fill_rgb:n \__color_backend_fill:n
\cs_new_protected:Npn \__color_backend_stroke:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ stroke ~ [ #1 ] } }
+\cs_new_eq:NN \__color_backend_stroke_cmyk:n \__color_backend_stroke:n
+\cs_new_eq:NN \__color_backend_stroke_gray:n \__color_backend_stroke:n
+\cs_new_eq:NN \__color_backend_stroke_rgb:n \__color_backend_stroke:n
+\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
{
- \tl_set:Nn \l__color_backend_stroke_tl {#1}
- \__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
- { \l__color_backend_fill_tl \c_space_tl #1 }
- \group_insert_after:N \__color_backend_reset:
+ \__kernel_backend_literal:x
+ { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
}
-\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
+ {
+ \__kernel_backend_literal:x
+ { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
+ }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+\cs_new_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
@@ -923,8 +816,6 @@
{ \cs_if_exist_p:N \pdfmanagement_if_active_p: }
{ \pdfmanagement_if_active_p:}
{
- \__kernel_color_backend_stack_init:Nnn \c__opacity_backend_stack_int
- { page ~ direct } { /opacity 1 ~ gs }
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
}
@@ -942,7 +833,7 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity #1 }
{ << /ca ~ #1 /CA ~ #1 >> }
- \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+ \__kernel_backend_literal:n
{ /opacity #1 ~ gs }
\group_insert_after:N \__opacity_backend_reset:
}
@@ -953,7 +844,8 @@
\cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
}
\cs_new_protected:Npn \__opacity_backend_reset:
- { \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int }
+ {
+ }
\cs_new_protected:Npn \__opacity_backend_fill:n #1
{
\__opacity_backend_fill_stroke:xx
@@ -979,7 +871,7 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity.stroke #1 }
{ << /CA ~ #2 >> }
- \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+ \__kernel_backend_literal:n
{ /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
\group_insert_after:N \__opacity_backend_reset:
}
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
index bc3c87d637f..382f862f97d 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvips.def}{2022-04-14}{}
+ {l3backend-dvips.def}{2022-04-20}{}
{L3 backend support: dvips}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -336,7 +336,6 @@
\cs_new_protected:Npn \__color_backend_fill:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
{ \__kernel_backend_postscript:n { /color.sc { #1 ~ setcmykcolor } def } }
@@ -350,6 +349,8 @@
{ \__kernel_backend_postscript:n { /color.sc { separation ~ #1 ~ #2 } def } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+\cs_new_protected:Npn \__color_backend_stroke_reset: { }
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
index 6742f2433bc..9aec9f6c630 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvisvgm.def}{2022-04-14}{}
+ {l3backend-dvisvgm.def}{2022-04-20}{}
{L3 backend support: dvisvgm}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -161,7 +161,6 @@
\cs_new_protected:Npn \__color_backend_fill:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
{ \__color_backend_cmyk:w #1 \s__color_stop }
@@ -218,6 +217,8 @@
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2 { }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+\cs_new_protected:Npn \__color_backend_stroke_reset: { }
\cs_new_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { }
\cs_new_protected:Npn \__color_backend_iccbased_init:nnn #1#2#3 { }
%% File: l3backend-box.dtx
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
index ae3b02531c3..deb03202f5a 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-luatex.def}{2022-04-14}{}
+ {l3backend-luatex.def}{2022-04-20}{}
{L3 backend support: PDF output (LuaTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -129,7 +129,6 @@
\tex_pdfextension:D colorstack ~
\int_eval:n {#1} ~ push ~ {#2}
}
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
{
\tex_pdfextension:D colorstack ~
@@ -151,14 +150,6 @@
}
\cs_new_protected:Npn \__color_backend_reset:
{ \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int }
-\cs_new_protected:Npn \__color_backend_select_named:n #1
- {
- \str_if_eq:nnTF {#1} { Black }
- { \__color_backend_select_gray:n { 0 } }
- { \msg_error:nnn { color } { unknown-named-color } {#1} }
- }
-\msg_new:nnn { color } { unknown-named-color }
- { Named~color~'#1'~is~not~known. }
\prop_new:N \g__color_backend_colorant_prop
\cs_new:Npx \__color_backend_devicen_colorants:n #1
{
@@ -189,18 +180,8 @@
{ \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
-\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \__color_backend_init_resource:n #1
{
- \pdf_object_unnamed_write:nx { dict }
- {
- /FunctionType ~ 2
- /Domain ~ [0 ~ 1]
- \tl_if_blank:nF {#3} { /Range ~ [#3] }
- /C0 ~ [#4] ~
- /C1 ~ [#5] /N ~ 1
- }
- \exp_args:Nx \__color_backend_separation_init:nn
- { \str_convert_pdfname:n {#1} } {#2}
\bool_lazy_and:nnT
{ \cs_if_exist_p:N \pdfmanagement_if_active_p: }
{ \pdfmanagement_if_active_p: }
@@ -209,15 +190,33 @@
{
\pdfmanagement_add:nnn
{ Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
+ { #1 }
{ \pdf_object_ref_last: }
}
}
}
+\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
+ {
+ \pdf_object_unnamed_write:nx { dict }
+ {
+ /FunctionType ~ 2
+ /Domain ~ [0 ~ 1]
+ \tl_if_blank:nF {#3} { /Range ~ [#3] }
+ /C0 ~ [#4] ~
+ /C1 ~ [#5] /N ~ 1
+ }
+ \exp_args:Nx \__color_backend_separation_init:nn
+ { \str_convert_pdfname:n {#1} } {#2}
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
+ }
\cs_new_protected:Npn \__color_backend_separation_init:nn #1#2
{
- \pdf_object_unnamed_write:nx { array }
- { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ \use:x
+ {
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ }
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
{ \pdf_object_ref_last: }
}
@@ -267,26 +266,19 @@
}
{ {#3} }
}
- \pdf_object_unnamed_write:nx { array }
- {
- /DeviceN ~
- [ ~ #1 ~ ] ~
- #2 ~
- \pdf_object_ref_last:
- \__color_backend_devicen_colorants:n {#1}
- }
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
+ \use:x
{
- \use:x
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
{
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { \pdf_object_ref_last: }
+ /DeviceN ~
+ [ ~ #1 ~ ] ~
+ #2 ~
+ \pdf_object_ref_last:
+ \__color_backend_devicen_colorants:n {#1}
}
}
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
\cs_new:Npn \__color_backend_devicen_init:w #1 ~ #2 \s__color_stop
{
@@ -310,17 +302,8 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { ~ \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
-
\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
@@ -334,16 +317,7 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { Default #2 }
- { \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { Default #2 }
}
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
{ \__color_backend_fill:n { #1 ~ k } }
@@ -356,7 +330,6 @@
\tl_set:Nn \l__color_backend_fill_tl {#1}
\__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
{ #1 ~ \l__color_backend_stroke_tl }
- \group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
{ \__color_backend_stroke:n { #1 ~ K } }
@@ -369,7 +342,6 @@
\tl_set:Nn \l__color_backend_stroke_tl {#1}
\__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
{ \l__color_backend_fill_tl \c_space_tl #1 }
- \group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
{ \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
@@ -377,6 +349,8 @@
{ \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+\cs_new_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
@@ -922,7 +896,9 @@
\cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
}
\cs_new_protected:Npn \__opacity_backend_reset:
- { \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int }
+ {
+ \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int
+ }
\cs_new_protected:Npn \__opacity_backend_fill:n #1
{
\__opacity_backend_fill_stroke:xx
@@ -948,7 +924,7 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity.stroke #1 }
{ << /CA ~ #2 >> }
- \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+ \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
{ /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
\group_insert_after:N \__opacity_backend_reset:
}
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
index ddc356a7bee..32cec72b2e3 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-pdftex.def}{2022-04-14}{}
+ {l3backend-pdftex.def}{2022-04-20}{}
{L3 backend support: PDF output (pdfTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -129,7 +129,6 @@
\tex_pdfcolorstack:D
\int_eval:n {#1} ~ push ~ {#2}
}
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
{
\tex_pdfcolorstack:D
@@ -151,14 +150,6 @@
}
\cs_new_protected:Npn \__color_backend_reset:
{ \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int }
-\cs_new_protected:Npn \__color_backend_select_named:n #1
- {
- \str_if_eq:nnTF {#1} { Black }
- { \__color_backend_select_gray:n { 0 } }
- { \msg_error:nnn { color } { unknown-named-color } {#1} }
- }
-\msg_new:nnn { color } { unknown-named-color }
- { Named~color~'#1'~is~not~known. }
\prop_new:N \g__color_backend_colorant_prop
\cs_new:Npx \__color_backend_devicen_colorants:n #1
{
@@ -189,18 +180,8 @@
{ \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
-\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \__color_backend_init_resource:n #1
{
- \pdf_object_unnamed_write:nx { dict }
- {
- /FunctionType ~ 2
- /Domain ~ [0 ~ 1]
- \tl_if_blank:nF {#3} { /Range ~ [#3] }
- /C0 ~ [#4] ~
- /C1 ~ [#5] /N ~ 1
- }
- \exp_args:Nx \__color_backend_separation_init:nn
- { \str_convert_pdfname:n {#1} } {#2}
\bool_lazy_and:nnT
{ \cs_if_exist_p:N \pdfmanagement_if_active_p: }
{ \pdfmanagement_if_active_p: }
@@ -209,15 +190,33 @@
{
\pdfmanagement_add:nnn
{ Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
+ { #1 }
{ \pdf_object_ref_last: }
}
}
}
+\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
+ {
+ \pdf_object_unnamed_write:nx { dict }
+ {
+ /FunctionType ~ 2
+ /Domain ~ [0 ~ 1]
+ \tl_if_blank:nF {#3} { /Range ~ [#3] }
+ /C0 ~ [#4] ~
+ /C1 ~ [#5] /N ~ 1
+ }
+ \exp_args:Nx \__color_backend_separation_init:nn
+ { \str_convert_pdfname:n {#1} } {#2}
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
+ }
\cs_new_protected:Npn \__color_backend_separation_init:nn #1#2
{
- \pdf_object_unnamed_write:nx { array }
- { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ \use:x
+ {
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ }
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
{ \pdf_object_ref_last: }
}
@@ -267,26 +266,19 @@
}
{ {#3} }
}
- \pdf_object_unnamed_write:nx { array }
- {
- /DeviceN ~
- [ ~ #1 ~ ] ~
- #2 ~
- \pdf_object_ref_last:
- \__color_backend_devicen_colorants:n {#1}
- }
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
+ \use:x
{
- \use:x
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
{
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { \pdf_object_ref_last: }
+ /DeviceN ~
+ [ ~ #1 ~ ] ~
+ #2 ~
+ \pdf_object_ref_last:
+ \__color_backend_devicen_colorants:n {#1}
}
}
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
\cs_new:Npn \__color_backend_devicen_init:w #1 ~ #2 \s__color_stop
{
@@ -310,17 +302,8 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { ~ \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
-
\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
@@ -334,16 +317,7 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { Default #2 }
- { \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { Default #2 }
}
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
{ \__color_backend_fill:n { #1 ~ k } }
@@ -356,7 +330,6 @@
\tl_set:Nn \l__color_backend_fill_tl {#1}
\__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
{ #1 ~ \l__color_backend_stroke_tl }
- \group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
{ \__color_backend_stroke:n { #1 ~ K } }
@@ -369,7 +342,6 @@
\tl_set:Nn \l__color_backend_stroke_tl {#1}
\__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
{ \l__color_backend_fill_tl \c_space_tl #1 }
- \group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
{ \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
@@ -377,6 +349,8 @@
{ \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+\cs_new_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
@@ -922,7 +896,9 @@
\cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
}
\cs_new_protected:Npn \__opacity_backend_reset:
- { \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int }
+ {
+ \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int
+ }
\cs_new_protected:Npn \__opacity_backend_fill:n #1
{
\__opacity_backend_fill_stroke:xx
@@ -948,7 +924,7 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity.stroke #1 }
{ << /CA ~ #2 >> }
- \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+ \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
{ /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
\group_insert_after:N \__opacity_backend_reset:
}
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
index 710543cd4bf..1e070ebdc30 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-xetex.def}{2022-04-14}{}
+ {l3backend-xetex.def}{2022-04-20}{}
{L3 backend support: XeTeX}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -87,83 +87,13 @@
\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
{ \tl_set:Nn #3 { {#1} {#2} } }
}
-\int_new:N \l__color_backend_stack_int
-\int_new:N \g__color_backend_stack_int
-\cs_new_protected:Npx \__kernel_color_backend_stack_init:Nnn #1#2#3
- {
- \int_gincr:N \exp_not:N \g__color_backend_stack_int
- \int_const:Nn #1 { \exp_not:N \g__color_backend_stack_int }
- \use:x
- {
- \__kernel_backend_first_shipout:n
- {
- \__kernel_backend_literal:n
- {
- pdfcolorstackinit ~
- \exp_not:N \int_use:N \exp_not:N \g__color_backend_stack_int
- \c_space_tl
- \exp_not:N \tl_if_blank:nF {#2} { #2 ~ }
- (#3)
- }
- }
- }
- }
-\cs_if_exist:cTF { main@pdfcolorstack }
- {
- \int_set:Nn \l__color_backend_stack_int
- { \int_use:c { main@pdfcolorstack } }
- }
- {
- \__kernel_color_backend_stack_init:Nnn \c__color_backend_main_stack_int
- { page ~ direct } { 0 ~ g ~ 0 ~ G }
- \int_set_eq:NN \l__color_backend_stack_int
- \c__color_backend_main_stack_int
- \int_const:cn { main@pdfcolorstack } { \c__color_backend_main_stack_int }
- }
-\cs_gset_protected:Npn \__kernel_backend_scope_end:
- {
- \__kernel_backend_literal:n { x:grestore }
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_use:N \g__color_backend_stack_int \c_space_tl current
- }
- }
-\cs_new_protected:Npn \__kernel_color_backend_stack_push:nn #1#2
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- push ~ (#2)
- }
- }
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
-\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- pop
- }
- }
-\tl_new:N \l__color_backend_fill_tl
-\tl_new:N \l__color_backend_stroke_tl
-\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
- { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
-\cs_new_protected:Npn \__color_backend_select_gray:n #1
- { \__color_backend_select:nn { #1 ~ g } { #1 ~ G } }
-\cs_new_protected:Npn \__color_backend_select_rgb:n #1
- { \__color_backend_select:nn { #1 ~ rg } { #1 ~ RG } }
-\cs_new_protected:Npn \__color_backend_select:nn #1#2
- {
- \tl_set:Nn \l__color_backend_fill_tl {#1}
- \tl_set:Nn \l__color_backend_stroke_tl {#2}
- \__kernel_color_backend_stack_push:nn \l__color_backend_stack_int { #1 ~ #2 }
- }
+\cs_new_protected:Npn \__color_backend_select:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
+\cs_new_eq:NN \__color_backend_select_cmyk:n \__color_backend_select:n
+\cs_new_eq:NN \__color_backend_select_gray:n \__color_backend_select:n
+\cs_new_eq:NN \__color_backend_select_rgb:n \__color_backend_select:n
\cs_new_protected:Npn \__color_backend_reset:
- { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int }
+ { \__kernel_backend_literal:n { pdf : ec } }
\cs_new_protected:Npn \__color_backend_select_named:n #1
{
\str_if_eq:nnTF {#1} { Black }
@@ -199,9 +129,12 @@
\__color_backend_devicen_colorants:w
}
\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
- { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
+ { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
+\cs_new_protected:Npn \__color_backend_init_resource:n #1
+ {
+ }
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
{
\pdf_object_unnamed_write:nx { dict }
@@ -214,23 +147,16 @@
}
\exp_args:Nx \__color_backend_separation_init:nn
{ \str_convert_pdfname:n {#1} } {#2}
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
\cs_new_protected:Npn \__color_backend_separation_init:nn #1#2
{
- \pdf_object_unnamed_write:nx { array }
- { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ \use:x
+ {
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ }
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
{ \pdf_object_ref_last: }
}
@@ -280,26 +206,19 @@
}
{ {#3} }
}
- \pdf_object_unnamed_write:nx { array }
- {
- /DeviceN ~
- [ ~ #1 ~ ] ~
- #2 ~
- \pdf_object_ref_last:
- \__color_backend_devicen_colorants:n {#1}
- }
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
+ \use:x
{
- \use:x
+ \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g__color_model_int }
{
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { \pdf_object_ref_last: }
+ /DeviceN ~
+ [ ~ #1 ~ ] ~
+ #2 ~
+ \pdf_object_ref_last:
+ \__color_backend_devicen_colorants:n {#1}
}
}
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
\cs_new:Npn \__color_backend_devicen_init:w #1 ~ #2 \s__color_stop
{
@@ -323,17 +242,8 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
- { color \int_use:N \g__color_model_int }
- { ~ \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { color \int_use:N \g__color_model_int }
}
-
\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
@@ -347,49 +257,32 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { Default #2 }
- { \pdf_object_ref_last: }
- }
- }
+ \__color_backend_init_resource:n { Default #2 }
}
-\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__color_backend_fill:n { #1 ~ k } }
-\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__color_backend_fill:n { #1 ~ g } }
-\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__color_backend_fill:n { #1 ~ rg } }
\cs_new_protected:Npn \__color_backend_fill:n #1
- {
- \tl_set:Nn \l__color_backend_fill_tl {#1}
- \__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
- { #1 ~ \l__color_backend_stroke_tl }
- \group_insert_after:N \__color_backend_reset:
- }
-\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__color_backend_stroke:n { #1 ~ K } }
-\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__color_backend_stroke:n { #1 ~ G } }
-\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__color_backend_stroke:n { #1 ~ RG } }
+ { \__kernel_backend_literal:n { pdf : bc ~ fill ~ [ #1 ] } }
+\cs_new_eq:NN \__color_backend_fill_cmyk:n \__color_backend_fill:n
+\cs_new_eq:NN \__color_backend_fill_gray:n \__color_backend_fill:n
+\cs_new_eq:NN \__color_backend_fill_rgb:n \__color_backend_fill:n
\cs_new_protected:Npn \__color_backend_stroke:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ stroke ~ [ #1 ] } }
+\cs_new_eq:NN \__color_backend_stroke_cmyk:n \__color_backend_stroke:n
+\cs_new_eq:NN \__color_backend_stroke_gray:n \__color_backend_stroke:n
+\cs_new_eq:NN \__color_backend_stroke_rgb:n \__color_backend_stroke:n
+\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
{
- \tl_set:Nn \l__color_backend_stroke_tl {#1}
- \__kernel_color_backend_stack_push:nn \l__color_backend_stack_int
- { \l__color_backend_fill_tl \c_space_tl #1 }
- \group_insert_after:N \__color_backend_reset:
+ \__kernel_backend_literal:x
+ { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
}
-\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
+ {
+ \__kernel_backend_literal:x
+ { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
+ }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+\cs_new_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
@@ -977,8 +870,6 @@
{ \cs_if_exist_p:N \pdfmanagement_if_active_p: }
{ \pdfmanagement_if_active_p:}
{
- \__kernel_color_backend_stack_init:Nnn \c__opacity_backend_stack_int
- { page ~ direct } { /opacity 1 ~ gs }
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
}
@@ -996,7 +887,7 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity #1 }
{ << /ca ~ #1 /CA ~ #1 >> }
- \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+ \__kernel_backend_literal:n
{ /opacity #1 ~ gs }
\group_insert_after:N \__opacity_backend_reset:
}
@@ -1007,7 +898,8 @@
\cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
}
\cs_new_protected:Npn \__opacity_backend_reset:
- { \__kernel_color_backend_stack_pop:n \c__opacity_backend_stack_int }
+ {
+ }
\cs_new_protected:Npn \__opacity_backend_fill:n #1
{
\__opacity_backend_fill_stroke:xx
@@ -1033,7 +925,7 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity.stroke #1 }
{ << /CA ~ #2 >> }
- \__kernel_color_backend_stack_push:nn \c__opacity_backend_stack_int
+ \__kernel_backend_literal:n
{ /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
\group_insert_after:N \__opacity_backend_reset:
}
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 4c7b9e96214..c84c141eea2 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
@@ -20,7 +20,7 @@
%%
%% File: l3benchmark.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2022-04-10}{}
+\ProvidesExplPackage{l3benchmark}{2022-04-20}{}
{L3 Experimental benchmarking}
\fp_new:N \g_benchmark_duration_target_fp
\fp_gset:Nn \g_benchmark_duration_target_fp { 1 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
index 4fa73bedaa7..fc83c269194 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3bitset.dtx
-\ProvidesExplPackage{l3bitset}{2022-04-10}{}
+\ProvidesExplPackage{l3bitset}{2022-04-20}{}
{L3 Experimental bitset support}
\cs_new_protected:Npn \bitset_new:N #1
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index 58e1769f88d..19163062860 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -28,7 +28,7 @@
%%
%% File: l3draw.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2022-04-10}{}
+\ProvidesExplPackage{l3draw}{2022-04-20}{}
{L3 Experimental core drawing support}
\scan_new:N \s__draw_mark
\scan_new:N \s__draw_stop
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index 3b4f473f480..9b13f3782aa 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
@@ -20,8 +20,9 @@
%%
%% File: l3graphics.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2022-04-10}{}
+\ProvidesExplPackage{l3graphics}{2022-04-20}{}
{L3 Experimental graphics inclusion support}
+\dim_new:N \l__graphics_internal_dim
\ior_new:N \l__graphics_internal_ior
\tl_new:N \l__graphics_internal_tl
\scan_new:N \s__graphics_stop
@@ -292,8 +293,18 @@
\seq_set_eq:NN \l_file_search_path_seq \l_graphics_search_path_seq
\file_get_full_name:nNTF {#1} \l__graphics_full_name_str
{
- \str_if_eq:eeT { \l__graphics_full_name_str } { #1 .tex }
+ \str_if_eq:eeTF { \l__graphics_full_name_str } { #1 .tex }
{ \__graphics_get_full_name:n {#1} }
+ {
+ \file_parse_full_name:VNNN \l__graphics_full_name_str
+ \l__graphics_dir_str \l__graphics_name_str \l__graphics_ext_str
+ \seq_map_inline:Nn \l_graphics_search_ext_seq
+ {
+ \str_if_eq:nVT {##1} \l__graphics_ext_str
+ { \seq_map_break:n { \use_none:nn } }
+ }
+ \__graphics_get_full_name:n {#1}
+ }
}
{ \__graphics_get_full_name:n {#1} }
\exp_args:NNNV \group_end:
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
index 2bc5ff3b45d..e72e975a612 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
@@ -20,7 +20,7 @@
%%
%% File: l3opacity.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3opacity}{2022-04-10}{}
+\ProvidesExplPackage{l3opacity}{2022-04-20}{}
{L3 Experimental opacity support}
\cs_new_protected:Npn \opacity_select:n #1
{ \__opacity_select:nN {#1} \__opacity_backend_select:n }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index 9d3a1cec381..4b52e462886 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2022-04-10}{}
+\ProvidesExplPackage{l3str-format}{2022-04-20}{}
{L3 Experimental string formatting}
\cs_generate_variant:Nn \use:nn { nf }
\cs_generate_variant:Nn \use:nnn { fnf }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
index 82c3e44bad9..1f66cb02587 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
@@ -20,7 +20,7 @@
%%
%% File: l3sys-shell.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2022-04-10}{}
+\ProvidesExplPackage{l3sys-shell}{2022-04-20}{}
{L3 Experimental system shell functions}
\scan_new:N \s__sys_stop
\quark_new:N \q__sys_nil
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 4c3d6d531a0..62a999ede6a 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xcoffins.dtx
-\ProvidesExplPackage{xcoffins}{2022-04-10}{}
+\ProvidesExplPackage{xcoffins}{2022-04-20}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index 8d52f950685..1913ee12844 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2022-04-10}{}
+\ProvidesExplPackage{l3galley}{2022-04-20}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index d65e9bf4ece..69373ce1948 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xgalley.dtx
-\ProvidesExplPackage{xgalley}{2022-04-10}{}
+\ProvidesExplPackage{xgalley}{2022-04-20}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 8d286c95e9a..998c1dcc6c5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -70,7 +70,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2022-04-10}%
+\def\ExplFileDate{2022-04-20}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -922,6 +922,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__kernel_primitive:NN \crampedscriptstyle \tex_crampedscriptstyle:D
\__kernel_primitive:NN \crampedtextstyle \tex_crampedtextstyle:D
\__kernel_primitive:NN \csstring \tex_csstring:D
+ \__kernel_primitive:NN \discretionaryligaturemode
+ \tex_discretionaryligaturemode:D
\__kernel_primitive:NN \directlua \tex_directlua:D
\__kernel_primitive:NN \dviextension \tex_dviextension:D
\__kernel_primitive:NN \dvifeedback \tex_dvifeedback:D
@@ -968,10 +970,12 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__kernel_primitive:NN \luatexbanner \tex_luatexbanner:D
\__kernel_primitive:NN \luatexrevision \tex_luatexrevision:D
\__kernel_primitive:NN \luatexversion \tex_luatexversion:D
+ \__kernel_primitive:NN \mathdefaultsmode \tex_mathdefaultsmode:D
\__kernel_primitive:NN \mathdelimitersmode \tex_mathdelimitersmode:D
\__kernel_primitive:NN \mathdir \tex_mathdir:D
\__kernel_primitive:NN \mathdirection \tex_mathdirection:D
\__kernel_primitive:NN \mathdisplayskipmode \tex_mathdisplayskipmode:D
+ \__kernel_primitive:NN \matheqdirmode \tex_matheqdirmode:D
\__kernel_primitive:NN \matheqnogapstep \tex_matheqnogapstep:D
\__kernel_primitive:NN \mathnolimitsmode \tex_mathnolimitsmode:D
\__kernel_primitive:NN \mathoption \tex_mathoption:D
@@ -29076,7 +29080,10 @@ Type H <return> for immediate help}\def~{\errmessage{%
\exp_after:wN \__color_draw:nnn \l__color_current_tl { stroke }
}
\cs_new_protected:Npn \__color_draw:nnn #1#2#3
- { \use:c { __color_backend_ #3 _ #1 :n } {#2} }
+ {
+ \use:c { __color_backend_ #3 _ #1 :n } {#2}
+ \exp_args:Nc \group_insert_after:N { __color_backend_ #3 _ reset: }
+ }
\tl_new:N \l__color_named_tl
\cs_new_protected:Npn \color_set:nn #1#2
{
@@ -35365,12 +35372,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__kernel_patch_deprecation:nnNNpn { 2020-06-18 } { \seq_map_indexed_function:NN }
\cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN }
\__kernel_patch_deprecation:nnNNpn { 2021-01-11 } { (no~longer~required) }
-\cs_gset_protected:Npn \sys_load_deprecation:
- {
- \bool_if:NF \g__str_deprecation_bool
- { \__kernel_sys_configuration_load:n { l3deprecation } }
- \bool_gset_true:N \g__str_deprecation_bool
- }
+\cs_gset_protected:Npn \sys_load_deprecation: { }
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_lowercase:n }
\cs_gset:Npn \tl_lower_case:n #1
{ \text_lowercase:n {#1} }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index a7a2ac6dbfd..e579987e0a7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2022-04-10}%
+\def\ExplFileDate{2022-04-20}%
\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 08875b5a725..2cb7f12271e 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2022-04-10}%
+\def\ExplFileDate{2022-04-20}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index b4b85ce414d..3ff81a91a75 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2022-04-10}%
+\def\ExplFileDate{2022-04-20}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%