summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-04-19 20:13:27 +0000
committerKarl Berry <karl@freefriends.org>2023-04-19 20:13:27 +0000
commit7205df83f0e5aba8062fbe04f85f9a5db4ddf04c (patch)
tree2ab0d6a7b7816c7b0bda554fc20bf68935d06778 /Master
parentd529e97b80a83d8a5b94a1e551c8ecaf931164d6 (diff)
l3 (19apr23)
git-svn-id: svn://tug.org/texlive/trunk@66896 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md15
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdfbin933580 -> 934066 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md11
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdfbin308403 -> 308937 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdfbin404278 -> 404794 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdfbin679499 -> 679710 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdfbin517668 -> 518188 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdfbin382031 -> 384038 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdfbin313467 -> 313994 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdfbin367903 -> 368426 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdfbin347924 -> 348450 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdfbin394348 -> 394864 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdfbin408782 -> 409299 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdfbin299507 -> 300021 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md24
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/expl3.pdfbin622894 -> 623355 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.pdfbin1741657 -> 1725275 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3doc.pdfbin557821 -> 558346 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdfbin151614 -> 152135 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news.pdfbin395876 -> 395876 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news01.pdfbin122710 -> 122710 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news02.pdfbin150674 -> 150674 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news03.pdfbin148706 -> 148706 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news04.pdfbin114586 -> 114586 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news05.pdfbin112485 -> 112485 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news06.pdfbin151569 -> 151569 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news07.pdfbin128316 -> 128316 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news08.pdfbin163456 -> 163456 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news09.pdfbin250136 -> 250136 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news10.pdfbin150283 -> 150283 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news11.pdfbin170076 -> 170076 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news12.pdfbin204992 -> 204992 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdfbin81640 -> 81640 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdfbin296152 -> 296617 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdfbin242796 -> 243260 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdfbin215323 -> 215775 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.pdfbin7339540 -> 7327044 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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx37
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx12
-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.dtx8
-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.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx22
-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.dtx223
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx226
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx2
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx4
-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.dtx122
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text.dtx31
-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.def6
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def4
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def5
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def33
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def33
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def6
-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.sty12
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty5
-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.tex299
-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
148 files changed, 819 insertions, 543 deletions
diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
index 82228400e2e..5877ce53d3b 100644
--- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
@@ -6,11 +6,19 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2023-04-19]
+
+### Changed
+- Pass additional attributes when loading graphics in PDF mode
+
+### Fixed
+- Remove a stray `>` from graphics inclusion code for `dvipdfmx`
+
## [2023-03-30]
### Changed
-- Integrate l3color and l3opacity with luaotfload to ensure that
- opacity specifications don't conflict.
+- Integrate `l3color` and `l3opacity` with `luaotfload` to ensure that
+ opacity specifications don't conflict
## [2023-01-16]
@@ -288,7 +296,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/2023-03-30...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-04-19...HEAD
+[2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19
[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-16...2023-03-30
[2023-01-16]: https://github.com/latex3/latex3/compare/2022-10-26...2023-01-16
[2022-10-26]: https://github.com/latex3/latex3/compare/2022-09-28...2022-10-26
diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md
index 02fab16f9f5..0aa2b14b5f9 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 2023-03-30
+Release 2023-04-19
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 1ce7f2d3a8c..6f9ea9a52e2 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 a3be92ce0f3..fa3928d9334 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
@@ -7,6 +7,14 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2023-04-19]
+
+### Added
+- Key `pdf-attr` to `l3graphics` for additional attribute setting
+
+### Fixed
+- Grouping in `\draw_path_arc_axes:nnnn` (see \#1195)
+
## [2023-03-30]
### Fixed
@@ -262,7 +270,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/2023-03-30...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-04-19...HEAD
+[2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19
[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-24...2023-03-30
[2023-01-24]: https://github.com/latex3/latex3/compare/2022-04-20...2023-01-24
[2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-20
diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md
index 9415c76d926..ebd40bba2eb 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 2023-03-30
+Release 2023-04-19
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
index 7abb2355b20..e82c024daca 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 b151ffb1554..dfcf42b9aba 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 3614cec3bef..bdac951ab3d 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 30899fd0ca1..b087608e835 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 731fbae62ef..3d5fb2bcc27 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 1ed2e3f71eb..967c1ca92f6 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 f44719f92af..d315eeffcd8 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 2c80015c8fe..81ed18d9eb6 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 09c8d7a1628..d5a1678b8fc 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 09c42913745..0470a5b1378 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 af229347da6..26a7ab7d04d 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 7cbc8d71c09..0545e088580 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
@@ -7,8 +7,27 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
-## [2023-03-30]
+## [2023-04-19]
+
+### Added
+- `\box_set_clipped:N` and variants (renamed from `\box_clip:N`)
+- `\text_declare_lowercase_mapping:nn(n)`,
+ `\text_declare_titlecase_mapping:nn(n)`
+ and `\text_declare_uppercase_mapping:nn(n)` to allow customization of
+ case changing outcomes
+
+### Changed
+- `\box_set_trim:Nnnnn` and `\box_set_viewport:Nnnnn` moved to
+ stable kernel
+### Fixed
+- Incorrect internal name in `\pdf_pagesize_gset:nn`
+
+### Removed
+- Experimental `\box_clip:N` and variants (renamed to
+ `\box_set_clipped:N`)
+
+## [2023-03-30]
### Added
- `\tex_endlocalcontrol:D` as expl3 name for the LuaTeX primitive
@@ -1319,7 +1338,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/2023-03-30...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-04-19...HEAD
+[2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19
[2023-03-30]: https://github.com/latex3/latex3/compare/2023-02-22...2023-03-30
[2023-02-22]: https://github.com/latex3/latex3/compare/2023-02-07...2023-02-22
[2023-02-07]: https://github.com/latex3/latex3/compare/2023-02-02...2023-02-07
diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md
index 0df952a6211..9438a5eea79 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 2023-03-30
+Release 2023-04-19
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
index 067a8936046..e99e454a52c 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 102275e76a7..12a87f5da99 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 6824f38aefb..3f6b5732c78 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
@@ -62,7 +62,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-03-30}
+\date{Released 2023-04-19}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
index fb8f1d82b34..9280d8c138e 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 b16829443d3..8b7604532a8 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 dcf940275b3..7d4d69e6156 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 d9bb9779a1f..c75a768729e 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 f8a160c4c08..2f8dc584221 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 f33e9649cd5..d6d820d1c3f 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 93700a72d37..ce0b3c0887c 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 b922a0083fa..bfef40d37c2 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 adfe4c942b9..7997c8bb23b 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 4c668945bbc..53e66907305 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 b536ddde2b4..bcff1d2ee8c 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 02d2819fd5b..aaa5bb07794 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 0a1f80cd251..9ba010ae614 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 de7dfb6e2c9..964089be249 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 60fb03748aa..b5daf9527a1 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 7d03b58f921..05cf98d3b69 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 885afe83a18..f65fc763031 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 248f40b448a..6a57059d33f 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 2023-03-30}
+\date{Released 2023-04-19}
\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 9c8164ddb4c..f76ea7a1cb8 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 383af6cc447..1a018c7fc16 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 2023-03-30}
+\date{Released 2023-04-19}
\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 a9bd06e0709..6441ffcb73d 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 ffa4204e75a..1394f755881 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 2023-03-30}
+\date{Released 2023-04-19}
\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 0caa972f9fc..10f47a1fd39 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 ba0668514c3..ea8d5af8921 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 2023-03-30}
+\date{Released 2023-04-19}
\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 1f821aff253..cf4ad444ba6 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2023-03-30}{}
+ {l3backend-dvipdfmx.def}{2023-04-19}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2023-03-30}{}
+ {l3backend-dvips.def}{2023-04-19}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2023-03-30}{}
+ {l3backend-dvisvgm.def}{2023-04-19}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2023-03-30}{}
+ {l3backend-luatex.def}{2023-04-19}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2023-03-30}{}
+ {l3backend-pdftex.def}{2023-04-19}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2023-03-30}{}
+ {l3backend-xetex.def}{2023-04-19}{}
{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 ae7e2281fc3..6d8d4ede020 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
index 786282333e0..5049aae5f92 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
index 6577bc30087..170f4090cd9 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
index b042bd04e50..da7dc7516e8 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -68,7 +68,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
@@ -148,7 +148,7 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{variable}{\l_@@_graphics_attr_tl}
+% \begin{variable}{\l_@@_attr_tl}
% In PDF mode, additional attributes of an graphic (such as page number) are
% needed both to obtain the bounding box and when inserting the graphic: this
% occurs as the graphic dictionary approach means they are read as part of
@@ -156,7 +156,7 @@
% attributes using a dedicated |tl| rather than build up the same data
% twice.
% \begin{macrocode}
-\tl_new:N \l_@@_graphics_attr_tl
+\tl_new:N \l_@@_attr_tl
% \end{macrocode}
% \end{variable}
%
@@ -185,14 +185,15 @@
{
\int_zero:N \l_@@_page_int
\tl_clear:N \l_@@_pagebox_tl
- \tl_set:Nx \l_@@_graphics_attr_tl
+ \tl_set:Nx \l_@@_attr_tl
{
\tl_if_empty:NF \l_@@_decodearray_str
{ :D \l_@@_decodearray_str }
\bool_if:NT \l_@@_interpolate_bool
{ :I }
+ \str_if_empty:NF \l_@@_pdf_str
+ { :X \l_@@_pdf_str }
}
- \tl_clear:N \l_@@_graphics_attr_tl
\@@_backend_getbb_auxi:n {#1}
}
\cs_new_eq:NN \@@_backend_getbb_jpeg:n \@@_backend_getbb_jpg:n
@@ -201,17 +202,19 @@
{
\tl_clear:N \l_@@_decodearray_str
\bool_set_false:N \l_@@_interpolate_bool
- \tl_set:Nx \l_@@_graphics_attr_tl
+ \tl_set:Nx \l_@@_attr_tl
{
: \l_@@_pagebox_tl
\int_compare:nNnT \l_@@_page_int > 1
{ :P \int_use:N \l_@@_page_int }
+ \str_if_empty:NF \l_@@_pdf_str
+ { :X \l_@@_pdf_str }
}
\@@_backend_getbb_auxi:n {#1}
}
\cs_new_protected:Npn \@@_backend_getbb_auxi:n #1
{
- \@@_bb_restore:xF { #1 \l_@@_graphics_attr_tl }
+ \@@_bb_restore:xF { #1 \l_@@_attr_tl }
{ \@@_backend_getbb_auxii:n {#1} }
}
% \end{macrocode}
@@ -225,16 +228,19 @@
{
\exp_args:Ne \@@_backend_getbb_auxiii:n
{ \@@_backend_dequote:w #1 " #1 " \s_@@_stop }
- \int_const:cn { c_@@_ #1 \l_@@_graphics_attr_tl _int }
+ \int_const:cn { c_@@_ #1 \l_@@_attr_tl _int }
{ \tex_the:D \tex_pdflastximage:D }
- \@@_bb_save:x { #1 \l_@@_graphics_attr_tl }
+ \@@_bb_save:x { #1 \l_@@_attr_tl }
}
\cs_new_protected:Npn \@@_backend_getbb_auxiii:n #1
{
\tex_immediate:D \tex_pdfximage:D
- \bool_lazy_or:nnT
- { \l_@@_interpolate_bool }
- { ! \tl_if_empty_p:N \l_@@_decodearray_str }
+ \bool_lazy_any:nT
+ {
+ { \l_@@_interpolate_bool }
+ { ! \tl_if_empty_p:N \l_@@_decodearray_str }
+ { ! \str_if_empty_p:N \l_@@_pdf_str }
+ }
{
attr ~
{
@@ -242,6 +248,7 @@
{ /Decode~[ \l_@@_decodearray_str ] }
\bool_if:NT \l_@@_interpolate_bool
{ /Interpolate~true }
+ \l_@@_pdf_str
}
}
\int_compare:nNnT \l_@@_page_int > 0
@@ -274,7 +281,7 @@
\cs_new_protected:Npn \@@_backend_include_jpg:n #1
{
\tex_pdfrefximage:D
- \int_use:c { c_@@_ #1 \l_@@_graphics_attr_tl _int }
+ \int_use:c { c_@@_ #1 \l_@@_attr_tl _int }
}
\cs_new_eq:NN \@@_backend_include_jpeg:n \@@_backend_include_jpg:n
\cs_new_eq:NN \@@_backend_include_pdf:n \@@_backend_include_jpg:n
@@ -522,7 +529,7 @@
\tl_if_empty:NF \l_@@_decodearray_str
{ /Decode~[ \l_@@_decodearray_str ] }
\bool_if:NT \l_@@_interpolate_bool
- { /Interpolate~true> }
+ { /Interpolate~true }
>>
}
}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
index 595e6a29247..0cb6767908f 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
index 3f3dd1c84a0..033ab150f0b 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
index bb80237d4da..a95aff4070b 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -69,7 +69,11 @@
% \subsection{Shared code}
%
% A very small number of items that belong at the backend level but which
-% are common to all backends.
+% are common to most backends.
+%
+% \begin{macrocode}
+%<*!dvisvgm>
+% \end{macrocode}
%
% \begin{variable}{\l_@@_internal_box}
% \begin{macrocode}
@@ -77,6 +81,10 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{macrocode}
+%</!dvisvgm>
+% \end{macrocode}
+%
% \subsection{\texttt{dvips} backend}
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
index e8290bc4353..c8ea43e4ac2 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -122,7 +122,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2023-03-30}{}
+\ProvidesExplPackage{l3benchmark}{2023-04-19}{}
{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 f3b7c26e1ce..5eaffe87728 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
% \begin{documentation}
@@ -264,7 +264,7 @@
%<@@=bitset>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2023-03-30}{}
+\ProvidesExplPackage{l3bitset}{2023-04-19}{}
{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 c03fa2770ad..b07d763e833 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \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 36f3433092d..e72350c26ad 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \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 70b7608f2bf..d747daf2f82 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -590,8 +590,10 @@
% \begin{macrocode}
\cs_new_protected:Npn \draw_path_arc_axes:nnnn #1#2#3#4
{
- \draw_transform_triangle:nnn { 0cm , 0cm } {#3} {#4}
- \draw_path_arc:nnn {#1} {#2} { 1pt }
+ \group_begin:
+ \draw_transform_triangle:nnn { 0cm , 0cm } {#3} {#4}
+ \draw_path_arc:nnn {#1} {#2} { 1pt }
+ \group_end:
}
% \end{macrocode}
% \end{macro}
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 6467e012021..fea92037456 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \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 9727e9ce6e7..2601b04f25a 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \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 234c4930ef9..3b1b4cdf077 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \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 86275a52263..aa4b539157d 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \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 e7d370a2455..bc15d518bd7 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -262,12 +262,12 @@
\@@_point_process:nnn
{
\@@_point_process:nn
- { \@@_tranform_triangle:nnnnnn }
+ { \@@_transform_triangle:nnnnnn }
{#1}
}
{#2} {#3}
}
-\cs_new_protected:Npn \@@_tranform_triangle:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \@@_transform_triangle:nnnnnn #1#2#3#4#5#6
{
\use:x
{
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
index c3d10d3b3ea..8aafa2681ed 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -340,7 +340,7 @@
% \draw_join_round:
% }
% \begin{syntax}
-% \cs{draw_cap_butt:}
+% \cs{draw_join_miter:}
% \end{syntax}
% Sets the style of stroke joins to one of bevel, miter or round.
% \end{function}
@@ -1173,7 +1173,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2023-03-30}{}
+\ProvidesExplPackage{l3draw}{2023-04-19}{}
{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 942b15fd7d9..209660e870b 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
@@ -22,9 +22,6 @@
%
% for those people who are interested.
%
-%<*driver|package>
-\RequirePackage{expl3}
-%</driver|package>
%<*driver>
\documentclass[full]{l3doc}
\begin{document}
@@ -46,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -81,6 +78,13 @@
% which may contain multiple pages.
% \end{variable}
%
+% \begin{variable}{pdf-attr}
+% Additional PDF-focussed attributes: available to allow control of
+% extended |.pdf| structures beyond those needed for graphic inclusion.
+% Due to backend restrictions, this key is only functional with direct
+% PDF mode (pdf\TeX{} and Lua\TeX{}).
+% \end{variable}
+%
% \begin{variable}{pagebox}
% The nature of the page box setting used to determine the bounding box of
% material: used for |.pdf| files which feature multiple page box
@@ -88,11 +92,6 @@
% The standard setting is |crop|.
% \end{variable}
%
-% \begin{variable}{draft}
-% Switch to enable draft mode: graphics are read but not included when this is
-% true.
-% \end{variable}
-%
% \begin{variable}{type}
% The type of graphic file beign included: if this key is not set, the
% \emph{type} is determined from the file extension.
@@ -185,7 +184,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2023-03-30}{}
+\ProvidesExplPackage{l3graphics}{2023-04-19}{}
{L3 Experimental graphics inclusion support}
% \end{macrocode}
%
@@ -214,6 +213,7 @@
% \l_@@_interpolate_bool ,
% \l_@@_page_int ,
% \l_@@_pagebox_tl ,
+% \l_@@_pdf_str ,
% \l_@@_type_str
% }
% Keys which control features of graphics. The standard value of |pagebox|
@@ -243,6 +243,8 @@
crop ,
page .int_set:N =
\l_@@_page_int ,
+ pdf-attr .str_set:N =
+ \l_@@_pdf_str ,
type . str_set:N =
\l_@@_type_str
}
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
index 4d2de0fc69d..50dac876201 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -96,7 +96,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3opacity}{2023-03-30}{}
+\ProvidesExplPackage{l3opacity}{2023-04-19}{}
{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 05f466dbd40..2616f41a68f 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2023-03-30}{}
+\ProvidesExplPackage{l3str-format}{2023-04-19}{}
{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 f830455bf62..f27e5405636 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -151,7 +151,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2023-03-30}{}
+\ProvidesExplPackage{l3sys-shell}{2023-04-19}{}
{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 7b41377cc2e..49b65d6ff2e 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -672,7 +672,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2023-03-30}{}
+\ProvidesExplPackage{xcoffins}{2023-04-19}{}
{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 405b248b648..5ad2b5c90ea 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -686,7 +686,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2023-03-30}{}
+\ProvidesExplPackage{l3galley}{2023-04-19}{}
{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 b4505281256..f464ca8c020 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -731,7 +731,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2023-03-30}{}
+\ProvidesExplPackage{xgalley}{2023-04-19}{}
{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 263dff0730e..b0392ded24e 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{2023-03-30}%
+\def\ExplFileDate{2023-04-19}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 37af99717ed..c8acfdf5939 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 73064e4ce4d..f757cc2a603 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 26fb88edd96..bc24a673fa1 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -874,6 +874,70 @@
% dependent on the height of the original and \emph{vice versa}.
% \end{function}
%
+% \section{Viewing part of a box}
+%
+% \begin{function}[updated = 2023-04-14]
+% {
+% \box_set_clipped:N, \box_set_clipped:c,
+% \box_gset_clipped:N, \box_gset_clipped:c
+% }
+% \begin{syntax}
+% \cs{box_set_clipped:N} \meta{box}
+% \end{syntax}
+% Clips the \meta{box} in the output so that only material inside the
+% bounding box is displayed in the output. The updated \meta{box} is an
+% hbox, irrespective of the nature of the \meta{box} before the clipping is
+% applied. Additional box levels are also generated by this operation.
+%
+% \begin{texnote}
+% Clipping is implemented by the driver, and as such the full content of
+% the box is placed in the output file. Thus clipping does not remove
+% any information from the raw output, and hidden material can therefore
+% be viewed by direct examination of the file.
+% \end{texnote}
+% \end{function}
+%
+% \begin{function}[added = 2019-01-23]
+% {
+% \box_set_trim:Nnnnn, \box_set_trim:cnnnn,
+% \box_gset_trim:Nnnnn, \box_gset_trim:cnnnn
+% }
+% \begin{syntax}
+% \cs{box_set_trim:Nnnnn} \meta{box} \Arg{left} \Arg{bottom} \Arg{right} \Arg{top}
+% \end{syntax}
+% Adjusts the bounding box of the \meta{box} \meta{left} is removed from
+% the left-hand edge of the bounding box, \meta{right} from the right-hand
+% edge and so fourth. All adjustments are \meta{dim exprs}.
+% Material outside of the bounding box is still displayed in the output
+% unless \cs{box_set_clipped:N} is subsequently applied.
+% The updated \meta{box} is an
+% hbox, irrespective of the nature of the \meta{box} before the trim
+% operation is applied.
+% Additional box levels are also generated by this operation.
+% The behavior of the operation where the trims requested is
+% greater than the size of the box is undefined.
+% \end{function}
+%
+% \begin{function}[added = 2019-01-23]
+% {
+% \box_set_viewport:Nnnnn, \box_set_viewport:cnnnn,
+% \box_gset_viewport:Nnnnn, \box_gset_viewport:cnnnn
+% }
+% \begin{syntax}
+% \cs{box_set_viewport:Nnnnn} \meta{box} \Arg{llx} \Arg{lly} \Arg{urx} \Arg{ury}
+% \end{syntax}
+% Adjusts the bounding box of the \meta{box} such that it has lower-left
+% co-ordinates (\meta{llx}, \meta{lly}) and upper-right co-ordinates
+% (\meta{urx}, \meta{ury}). All four co-ordinate positions are
+% \meta{dim exprs}. Material outside of the bounding box is
+% still displayed in the output unless \cs{box_set_clipped:N} is
+% subsequently applied.
+% The updated \meta{box} is an
+% hbox, irrespective of the nature of the \meta{box} before the viewport
+% operation is applied.
+% Additional box levels are also generated by this operation.
+% \end{function}
+%
% \section{Primitive box conditionals}
%
% \begin{function}[EXP]{\if_hbox:N}
@@ -2298,6 +2362,163 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Viewing part of a box}
+%
+% \begin{macro}{\box_set_clipped:N, \box_set_clipped:c, \box_gset_clipped:N, \box_gset_clipped:c}
+% A wrapper around the driver-dependent code.
+% \begin{macrocode}
+\cs_new_protected:Npn \box_set_clipped:N #1
+ { \hbox_set:Nn #1 { \@@_backend_clip:N #1 } }
+\cs_generate_variant:Nn \box_set_clipped:N { c }
+\cs_new_protected:Npn \box_gset_clipped:N #1
+ { \hbox_gset:Nn #1 { \@@_backend_clip:N #1 } }
+\cs_generate_variant:Nn \box_gset_clipped:N { c }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \box_set_trim:Nnnnn, \box_set_trim:cnnnn,
+% \box_gset_trim:Nnnnn, \box_gset_trim:cnnnn
+% }
+% \begin{macro}{\@@_set_trim:NnnnnN}
+% Trimming from the left- and right-hand edges of the box is easy: kern the
+% appropriate parts off each side.
+% \begin{macrocode}
+\cs_new_protected:Npn \box_set_trim:Nnnnn #1#2#3#4#5
+ { \@@_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
+\cs_generate_variant:Nn \box_set_trim:Nnnnn { c }
+\cs_new_protected:Npn \box_gset_trim:Nnnnn #1#2#3#4#5
+ { \@@_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
+\cs_generate_variant:Nn \box_gset_trim:Nnnnn { c }
+\cs_new_protected:Npn \@@_set_trim:NnnnnN #1#2#3#4#5#6
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \__kernel_kern:n { -#2 }
+ \box_use:N #1
+ \__kernel_kern:n { -#4 }
+ }
+% \end{macrocode}
+% For the height and depth, there is a need to watch the baseline is
+% respected. Material always has to stay on the correct side, so trimming
+% has to check that there is enough material to trim. First, the bottom
+% edge. If there is enough depth, simply set the depth, or if not move
+% down so the result is zero depth. \cs{box_move_down:nn} is used in both
+% cases so the resulting box always contains a \tn{lower} primitive.
+% The internal box is used here as it allows safe use of \cs{box_set_dp:Nn}.
+% \begin{macrocode}
+ \dim_compare:nNnTF { \box_dp:N #1 } > {#3}
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_down:nn \c_zero_dim
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_dp:Nn \l_@@_internal_box { \box_dp:N #1 - (#3) }
+ }
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_down:nn { (#3) - \box_dp:N #1 }
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_dp:Nn \l_@@_internal_box \c_zero_dim
+ }
+% \end{macrocode}
+% Same thing, this time from the top of the box.
+% \begin{macrocode}
+ \dim_compare:nNnTF { \box_ht:N \l_@@_internal_box } > {#5}
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_up:nn \c_zero_dim
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_ht:Nn \l_@@_internal_box
+ { \box_ht:N \l_@@_internal_box - (#5) }
+ }
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_up:nn { (#5) - \box_ht:N \l_@@_internal_box }
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_ht:Nn \l_@@_internal_box \c_zero_dim
+ }
+ #6 #1 \l_@@_internal_box
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \box_set_viewport:Nnnnn, \box_set_viewport:cnnnn,
+% \box_gset_viewport:Nnnnn, \box_gset_viewport:cnnnn
+% }
+% \begin{macro}{\@@_viewport:NnnnnN}
+% The same general logic as for the trim operation, but with absolute
+% dimensions. As a result, there are some things to watch out for in the
+% vertical direction.
+% \begin{macrocode}
+\cs_new_protected:Npn \box_set_viewport:Nnnnn #1#2#3#4#5
+ { \@@_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
+\cs_generate_variant:Nn \box_set_viewport:Nnnnn { c }
+\cs_new_protected:Npn \box_gset_viewport:Nnnnn #1#2#3#4#5
+ { \@@_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
+\cs_generate_variant:Nn \box_gset_viewport:Nnnnn { c }
+\cs_new_protected:Npn \@@_set_viewport:NnnnnN #1#2#3#4#5#6
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \__kernel_kern:n { -#2 }
+ \box_use:N #1
+ \__kernel_kern:n { #4 - \box_wd:N #1 }
+ }
+ \dim_compare:nNnTF {#3} < \c_zero_dim
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_down:nn \c_zero_dim
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_dp:Nn \l_@@_internal_box { - \@@_dim_eval:n {#3} }
+ }
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ { \box_move_down:nn {#3} { \box_use_drop:N \l_@@_internal_box } }
+ \box_set_dp:Nn \l_@@_internal_box \c_zero_dim
+ }
+ \dim_compare:nNnTF {#5} > \c_zero_dim
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_up:nn \c_zero_dim
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_ht:Nn \l_@@_internal_box
+ {
+ (#5)
+ \dim_compare:nNnT {#3} > \c_zero_dim
+ { - (#3) }
+ }
+ }
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \box_move_up:nn { - \@@_dim_eval:n {#5} }
+ { \box_use_drop:N \l_@@_internal_box }
+ }
+ \box_set_ht:Nn \l_@@_internal_box \c_zero_dim
+ }
+ #6 #1 \l_@@_internal_box
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index 3b804316c2e..23208c82209 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -84,68 +84,6 @@
% into the kernel. However, real use sometimes leads to better ideas, so functions from this module are
% \textbf{not necessarily stable} and we may have to adjust them!
%
-% \section{Additions to \pkg{l3box}}
-%
-% \begin{function}[updated = 2019-01-23]
-% {\box_clip:N, \box_clip:c, \box_gclip:N, \box_gclip:c}
-% \begin{syntax}
-% \cs{box_clip:N} \meta{box}
-% \end{syntax}
-% Clips the \meta{box} in the output so that only material inside the
-% bounding box is displayed in the output. The updated \meta{box} is an
-% hbox, irrespective of the nature of the \meta{box} before the clipping is
-% applied.
-%
-% \textbf{These functions require the \LaTeX3 native drivers: they do
-% not work with the \LaTeXe{} \pkg{graphics} drivers!}
-%
-% \begin{texnote}
-% Clipping is implemented by the driver, and as such the full content of
-% the box is placed in the output file. Thus clipping does not remove
-% any information from the raw output, and hidden material can therefore
-% be viewed by direct examination of the file.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}[added = 2019-01-23]
-% {
-% \box_set_trim:Nnnnn, \box_set_trim:cnnnn,
-% \box_gset_trim:Nnnnn, \box_gset_trim:cnnnn
-% }
-% \begin{syntax}
-% \cs{box_set_trim:Nnnnn} \meta{box} \Arg{left} \Arg{bottom} \Arg{right} \Arg{top}
-% \end{syntax}
-% Adjusts the bounding box of the \meta{box} \meta{left} is removed from
-% the left-hand edge of the bounding box, \meta{right} from the right-hand
-% edge and so fourth. All adjustments are \meta{dim exprs}.
-% Material outside of the bounding box is still displayed in the output
-% unless \cs{box_clip:N} is subsequently applied.
-% The updated \meta{box} is an
-% hbox, irrespective of the nature of the \meta{box} before the trim
-% operation is applied.
-% The behavior of the operation where the trims requested is
-% greater than the size of the box is undefined.
-% \end{function}
-%
-% \begin{function}[added = 2019-01-23]
-% {
-% \box_set_viewport:Nnnnn, \box_set_viewport:cnnnn,
-% \box_gset_viewport:Nnnnn, \box_gset_viewport:cnnnn
-% }
-% \begin{syntax}
-% \cs{box_set_viewport:Nnnnn} \meta{box} \Arg{llx} \Arg{lly} \Arg{urx} \Arg{ury}
-% \end{syntax}
-% Adjusts the bounding box of the \meta{box} such that it has lower-left
-% co-ordinates (\meta{llx}, \meta{lly}) and upper-right co-ordinates
-% (\meta{urx}, \meta{ury}). All four co-ordinate positions are
-% \meta{dim exprs}. Material outside of the bounding box is
-% still displayed in the output unless \cs{box_clip:N} is
-% subsequently applied.
-% The updated \meta{box} is an
-% hbox, irrespective of the nature of the \meta{box} before the viewport
-% operation is applied.
-% \end{function}
-%
% \section{Additions to \pkg{l3expan}}
%
% \begin{function}[added = 2018-04-04, updated = 2019-02-08]
@@ -669,168 +607,6 @@
%<*package>
% \end{macrocode}
%
-% \subsection{Additions to \pkg{l3box}}
-%
-% \begin{macrocode}
-%<@@=box>
-% \end{macrocode}
-%
-% \subsubsection{Viewing part of a box}
-%
-% \begin{macro}{\box_clip:N, \box_clip:c, \box_gclip:N, \box_gclip:c}
-% A wrapper around the driver-dependent code.
-% \begin{macrocode}
-\cs_new_protected:Npn \box_clip:N #1
- { \hbox_set:Nn #1 { \@@_backend_clip:N #1 } }
-\cs_generate_variant:Nn \box_clip:N { c }
-\cs_new_protected:Npn \box_gclip:N #1
- { \hbox_gset:Nn #1 { \@@_backend_clip:N #1 } }
-\cs_generate_variant:Nn \box_gclip:N { c }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}
-% {
-% \box_set_trim:Nnnnn, \box_set_trim:cnnnn,
-% \box_gset_trim:Nnnnn, \box_gset_trim:cnnnn
-% }
-% \begin{macro}{\@@_set_trim:NnnnnN}
-% Trimming from the left- and right-hand edges of the box is easy: kern the
-% appropriate parts off each side.
-% \begin{macrocode}
-\cs_new_protected:Npn \box_set_trim:Nnnnn #1#2#3#4#5
- { \@@_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
-\cs_generate_variant:Nn \box_set_trim:Nnnnn { c }
-\cs_new_protected:Npn \box_gset_trim:Nnnnn #1#2#3#4#5
- { \@@_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
-\cs_generate_variant:Nn \box_gset_trim:Nnnnn { c }
-\cs_new_protected:Npn \@@_set_trim:NnnnnN #1#2#3#4#5#6
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \__kernel_kern:n { -#2 }
- \box_use:N #1
- \__kernel_kern:n { -#4 }
- }
-% \end{macrocode}
-% For the height and depth, there is a need to watch the baseline is
-% respected. Material always has to stay on the correct side, so trimming
-% has to check that there is enough material to trim. First, the bottom
-% edge. If there is enough depth, simply set the depth, or if not move
-% down so the result is zero depth. \cs{box_move_down:nn} is used in both
-% cases so the resulting box always contains a \tn{lower} primitive.
-% The internal box is used here as it allows safe use of \cs{box_set_dp:Nn}.
-% \begin{macrocode}
- \dim_compare:nNnTF { \box_dp:N #1 } > {#3}
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_down:nn \c_zero_dim
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_dp:Nn \l_@@_internal_box { \box_dp:N #1 - (#3) }
- }
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_down:nn { (#3) - \box_dp:N #1 }
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_dp:Nn \l_@@_internal_box \c_zero_dim
- }
-% \end{macrocode}
-% Same thing, this time from the top of the box.
-% \begin{macrocode}
- \dim_compare:nNnTF { \box_ht:N \l_@@_internal_box } > {#5}
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_up:nn \c_zero_dim
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_ht:Nn \l_@@_internal_box
- { \box_ht:N \l_@@_internal_box - (#5) }
- }
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_up:nn { (#5) - \box_ht:N \l_@@_internal_box }
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_ht:Nn \l_@@_internal_box \c_zero_dim
- }
- #6 #1 \l_@@_internal_box
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}
-% {
-% \box_set_viewport:Nnnnn, \box_set_viewport:cnnnn,
-% \box_gset_viewport:Nnnnn, \box_gset_viewport:cnnnn
-% }
-% \begin{macro}{\@@_viewport:NnnnnN}
-% The same general logic as for the trim operation, but with absolute
-% dimensions. As a result, there are some things to watch out for in the
-% vertical direction.
-% \begin{macrocode}
-\cs_new_protected:Npn \box_set_viewport:Nnnnn #1#2#3#4#5
- { \@@_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
-\cs_generate_variant:Nn \box_set_viewport:Nnnnn { c }
-\cs_new_protected:Npn \box_gset_viewport:Nnnnn #1#2#3#4#5
- { \@@_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
-\cs_generate_variant:Nn \box_gset_viewport:Nnnnn { c }
-\cs_new_protected:Npn \@@_set_viewport:NnnnnN #1#2#3#4#5#6
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \__kernel_kern:n { -#2 }
- \box_use:N #1
- \__kernel_kern:n { #4 - \box_wd:N #1 }
- }
- \dim_compare:nNnTF {#3} < \c_zero_dim
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_down:nn \c_zero_dim
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_dp:Nn \l_@@_internal_box { - \@@_dim_eval:n {#3} }
- }
- {
- \hbox_set:Nn \l_@@_internal_box
- { \box_move_down:nn {#3} { \box_use_drop:N \l_@@_internal_box } }
- \box_set_dp:Nn \l_@@_internal_box \c_zero_dim
- }
- \dim_compare:nNnTF {#5} > \c_zero_dim
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_up:nn \c_zero_dim
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_ht:Nn \l_@@_internal_box
- {
- (#5)
- \dim_compare:nNnT {#3} > \c_zero_dim
- { - (#3) }
- }
- }
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \box_move_up:nn { - \@@_dim_eval:n {#5} }
- { \box_use_drop:N \l_@@_internal_box }
- }
- \box_set_ht:Nn \l_@@_internal_box \c_zero_dim
- }
- #6 #1 \l_@@_internal_box
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
% \subsection{Additions to \pkg{l3flag}}
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
index 8233acdc79d..9337a4347a4 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index c8a9d89bcb3..3d92c2b3c55 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 4a496da85ff..d351a8b3e66 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
index 017cad63c5c..533e5411d71 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index 854f4f5b619..d46b1ceed5b 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 1e8af300224..5794a86fb3d 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index f4f19d5aaac..0adf0d030d3 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 2023-03-30}
+% \date{Released 2023-04-19}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 750356ac9f5..a97448cfac6 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index d8a6c8cc996..e73d77c8df5 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index dfc1c6338dd..ca59e7ab61f 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index e30f49f7f28..b3feeda330e 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index 3efd5655759..8ea284a32ee 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 2023-03-30}
+% \date{Released 2023-04-19}
% \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 0391f3e34fc..480e428a2be 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 9af50e58506..460f64c48ea 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index d7a1936e773..29d765afe6a 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index 1ea73e116e7..5618124ff72 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index 5384037de14..a42b35aa7bc 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 2956f840a59..9e012f46b6d 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index ef58cd8600b..7bc00e16b6e 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index a8929a1faed..59d7a42c7bc 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index e721fc76c51..5e02ed2a645 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index c09a940b1be..9c99cfa009a 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 2023-03-30}
+% \date{Released 2023-04-19}
% \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 07f5211c98e..41c7fe98cf9 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index 7cf429eaf83..ca8fcd7b9b0 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index 121be8ee5b0..fe225b1a0ed 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index b90f881036d..d0095ef63d7 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 8dc10287a81..5cdfd9c81c7 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index ddf3ed637e3..39e4a93c7c8 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 46509752170..4d3efad1546 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index dfb25ad07b6..5002449bc75 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index e25d630c234..1b347b50fe5 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index e2c93d95049..f223686e5ad 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index edf14241cd2..8c1dc438bb7 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
index eacb62eb6fc..6e08bd818fb 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -489,7 +489,7 @@
% \begin{macro}{\pdf_pagesize_gset:nn}
% \begin{macrocode}
\cs_new_protected:Npn \pdf_pagesize_gset:nn #1#2
- { \@@_pagesize_gset:nn {#1} {#2} }
+ { \@@_backend_pagesize_gset:nn {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 86e1e0e3394..ebedfa06c0b 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index dc611ae192e..e83bff42eb8 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index 2f52ef9d1e7..84200625305 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index 09d078cd548..416c383acd0 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index 47e48b2e1e5..a1d377e9292 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 36e70ce35ac..0be87af0997 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index e92a11b5286..544122ad453 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index 09539a13def..c7d3483b5ed 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index c9229b83b50..3e04178113b 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index 23115dde504..0ac54300312 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index b93243040da..a71bbc38f4f 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -153,7 +153,7 @@
% \begin{macro}[EXP]{\@@_change_case_exclude:nnNw}
% \begin{macro}[EXP]{\@@_change_case_exclude:nnNnn}
% \begin{macro}[EXP]{\@@_change_case_replace:nnN}
-% \begin{macro}[EXP]{\@@_change_case_replace:nnn}
+% \begin{macro}[EXP]{\@@_change_case_replace:nnn, \@@_change_case_replace:vnn}
% \begin{macro}[EXP]{\@@_change_case_switch:nnN}
% \begin{macro}[EXP]
% {
@@ -172,6 +172,14 @@
% \begin{macro}[EXP]{\@@_change_case_letterlike:nnnnN}
% \begin{macro}[EXP]
% {
+% \@@_change_case_custom_lower:nnn ,
+% \@@_change_case_custom_title:nnn ,
+% \@@_change_case_custom_upper:nnn ,
+% \@@_change_case_custom_titleonly:nnn
+% }
+% \begin{macro}[EXP]{\@@_change_case_custom:nnn}
+% \begin{macro}[EXP]
+% {
% \@@_change_case_codepoint_lower:nnn ,
% \@@_change_case_codepoint_upper:nnn ,
% \@@_change_case_codepoint_title:nnn ,
@@ -439,7 +447,7 @@
{ \@@_change_case_exclude:nnN {#1} {#2} }
{
\@@_codepoint_process:nN
- { \use:c { @@_change_case_codepoint_ #1 :nnn } {#1} {#2} }
+ { \use:c { @@_change_case_custom_ #1 :nnn } {#1} {#2} }
}
#3
}
@@ -497,13 +505,14 @@
{
\cs_if_exist:cTF { l_@@_case_ \token_to_str:N #3 _tl }
{
- \exp_args:Nv \@@_change_case_replace:nnn
+ \@@_change_case_replace:vnn
{ l_@@_case_ \token_to_str:N #3 _tl } {#1} {#2}
}
{ \@@_change_case_switch:nnN {#1} {#2} #3 }
}
\cs_new:Npn \@@_change_case_replace:nnn #1#2#3
{ \@@_change_case_loop:nnw {#2} {#3} #1 }
+\cs_generate_variant:Nn \@@_change_case_replace:nnn { v }
% \end{macrocode}
% Allow for manually-controlled case switching.
% \begin{macrocode}
@@ -570,6 +579,42 @@
}
}
% \end{macrocode}
+% Check for a customised codepoint result.
+% \begin{macrocode}
+\cs_new:Npn \@@_change_case_custom_lower:nnn #1#2#3
+ {
+ \@@_change_case_custom:nnnnn {#1} {#2} {#3} {#1}
+ { \use:c { @@_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
+ }
+\cs_new_eq:NN \@@_change_case_custom_upper:nnn
+ \@@_change_case_custom_lower:nnn
+\cs_new:Npn \@@_change_case_custom_title:nnn #1#2#3
+ {
+ \@@_change_case_custom:nnnnn { title } {#2} {#3} {#1}
+ {
+ \@@_change_case_custom:nnnnn { upper } {#2} {#3} {#1}
+ { \use:c { @@_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
+ }
+ }
+\cs_new_eq:NN \@@_change_case_custom_titleonly:nnn
+ \@@_change_case_custom_title:nnn
+\cs_new:Npn \@@_change_case_custom:nnnnn #1#2#3#4#5
+ {
+ \tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#3} _ #2 _tl }
+ {
+ \@@_change_case_replace:vnn
+ { l_@@_ #1 case _ \tl_to_str:n {#3} _ #2 _tl } {#4} {#2}
+ }
+ {
+ \tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#3} _tl }
+ {
+ \@@_change_case_replace:vnn
+ { l_@@_ #1 case _ \tl_to_str:n {#3} _tl } {#4} {#2}
+ }
+ {#5}
+ }
+ }
+% \end{macrocode}
% For upper- and lowercase changes, once we get to this stage there are only
% a couple of questions remaining: is there a language-specific mapping and
% is there the special case of a terminal sigma. If not, then we pass to
@@ -806,6 +851,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\text_declare_case_equivalent:Nn}
% Create equivalents to allow replacement.
@@ -818,6 +865,62 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}
+% {
+% \text_declare_lowercase_mapping:nn ,
+% \text_declare_titlecase_mapping:nn ,
+% \text_declare_uppercase_mapping:nn
+% }
+% \begin{macro}
+% {\@@_declare_case_mapping:nnn, \@@_declare_case_mapping_aux:nnn}
+% \begin{macro}
+% {
+% \text_declare_lowercase_mapping:nnn ,
+% \text_declare_titlecase_mapping:nnn ,
+% \text_declare_uppercase_mapping:nnn
+% }
+% \begin{macro}
+% {\@@_declare_case_mapping:nnnn, \@@_declare_case_mapping_aux:nnnn}
+% Codepoint customisation.
+% \begin{macrocode}
+\cs_new_protected:Npn \text_declare_lowercase_mapping:nn #1#2
+ { \@@_declare_case_mapping:nnn { lower } {#1} {#2} }
+\cs_new_protected:Npn \text_declare_titlecase_mapping:nn #1#2
+ { \@@_declare_case_mapping:nnn { title } {#1} {#2} }
+\cs_new_protected:Npn \text_declare_uppercase_mapping:nn #1#2
+ { \@@_declare_case_mapping:nnn { upper } {#1} {#2} }
+\cs_new_protected:Npn \@@_declare_case_mapping:nnn #1#2#3
+ {
+ \exp_args:Ne \@@_declare_case_mapping_aux:nnn
+ { \codepoint_str_generate:n {#2} } {#1} {#3}
+ }
+\cs_new_protected:Npn \@@_declare_case_mapping_aux:nnn #1#2#3
+ {
+ \tl_clear_new:c { l_@@_ #2 case _ #1 _tl }
+ \tl_set:cn { l_@@_ #2 case _ #1 _ tl } {#3}
+ }
+\cs_new_protected:Npn \text_declare_lowercase_mapping:nnn #1#2#3
+ { \@@_declare_case_mapping:nnnn { lower } {#1} {#2} {#3} }
+\cs_new_protected:Npn \text_declare_titlecase_mapping:nnn #1#2#3
+ { \@@_declare_case_mapping:nnnn { title } {#1} {#2} {#3} }
+\cs_new_protected:Npn \text_declare_uppercase_mapping:nnn #1#2#3
+ { \@@_declare_case_mapping:nnnn { upper } {#1} {#2} {#3} }
+\cs_new_protected:Npn \@@_declare_case_mapping:nnnn #1#2#3#4
+ {
+ \exp_args:Ne \@@_declare_case_mapping_aux:nnnn
+ { \codepoint_str_generate:n {#2} } {#1} {#3} {#4}
+ }
+\cs_new_protected:Npn \@@_declare_case_mapping_aux:nnnn #1#2#3#4
+ {
+ \tl_clear_new:c { l_@@_ #2 case _ #1 _ #3 _tl }
+ \tl_set:cn { l_@@_ #2 case _ #1 _ #3 _ tl } {#4}
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\text_case_switch:nnnn}
% \begin{macro}{\@@_case_switch_marker:}
% Set up the mechanism for manual case switching.
@@ -2038,6 +2141,17 @@
}
% \end{macrocode}
%
+% A few adjustments to case mapping for combining chars: these are not needed
+% for the Unicode engines
+% \begin{macrocode}
+\bool_lazy_or:nnF
+ { \sys_if_engine_luatex_p: }
+ { \sys_if_engine_xetex_p: }
+ {
+ \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
+ }
+% \end{macrocode}
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
index 8d350649330..c30686b6c36 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
index 247dd7a0c37..a1d3413c60c 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index eb5d2bede7a..40c8e5a6a2f 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
@@ -102,7 +102,7 @@
% }
% \begin{syntax}
% \cs{text_uppercase:n} \Arg{tokens}
-% \cs{text_uppercase:nn} \Arg{language} \Arg{tokens}
+% \cs{text_uppercase:nn} \Arg{BCP-47} \Arg{tokens}
% \end{syntax}
% Takes user input \meta{text} first applies \cs{text_expand}, then
% transforms the case of character tokens as specified by the
@@ -145,9 +145,9 @@
% \texttt{SpecialCasing.txt}. For \pTeX{}, only the ASCII range is
% covered as the engine treats input outside of this range as east Asian.
%
-% Language-sensitive conversions are enabled using the \meta{language}
+% Locale-sensitive conversions are enabled using the \meta{BCP-47}
% argument, and follow Unicode Consortium guidelines. Currently, the
-% languages recognised for special handling are as follows.
+% locale strings recognized for special handling are as follows.
% \begin{itemize}
% \item Armenian (\texttt{hy} and \texttt{hy-x-yiwn})
% The setting \texttt{hy} maps the codepoint U+0587, the ligature of
@@ -172,7 +172,6 @@
% which converts the \textit{ypogegrammeni} (subscript muted iota)
% to capital iota when uppercasing: the standard version retains the
% subscript versions.
-% capital iota.
% \item Lithuanian (\texttt{lt}).
% The lowercase letters i and j should retain a dot above when the
% accents grave, acute or tilde are present. This is implemented for
@@ -181,7 +180,7 @@
% combining dot is removed when uppercasing in these cases. Note that
% \emph{only} the accents used in Lithuanian are covered: the behaviour
% of other accents are not modified.
-% \item Medieval Latin (\texttt{la-xmedieval}).
+% \item Medieval Latin (\texttt{la-x-medieval}).
% The characters |u| and |V| are interchanged on case changing.
% \item Dutch (\texttt{nl}).
% Capitalisation of \texttt{ij} at the beginning of titlecased
@@ -217,6 +216,26 @@
% \meta{cmd} (a single token) is encountered during case changing.
% \end{function}
%
+% \begin{function}[added = 2023-04-11]
+% {
+% \text_declare_lowercase_mapping:nn ,
+% \text_declare_lowercase_mapping:nnn ,
+% \text_declare_titlecase_mapping:nn ,
+% \text_declare_titlecase_mapping:nnn ,
+% \text_declare_uppercase_mapping:nn ,
+% \text_declare_uppercase_mapping:nnn
+% }
+% \begin{syntax}
+% \cs{text_declare_lowercase_mapping:nn} \Arg{codeppoint} \Arg{replacement}
+% \cs{text_declare_lowercase_mapping:nnn} \Arg{codeppoint} \Arg{BCP-47} \Arg{replacement}
+% \end{syntax}
+% Declares that the \meta{replacement} tokens should be used when case mapping
+% the \meta{codepoint}, rather than the standard mapping given in the
+% Unicode data files. The \texttt{nnn} version takes a BCP-47 tag, which
+% can be used to specify that the customisation only applies to that
+% locale.
+% \end{function}
+%
% \begin{function}[EXP, added = 2022-07-04]{\text_case_switch:nnnn}
% \begin{syntax}
% \cs{text_case_switch:nnnn} \Arg{normal} \Arg{upper} \Arg{lower} \Arg{title}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 8a281accd7e..c64b79604b7 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 70f545d0cf8..a21d18fd938 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index ad94a328479..710fcab68b8 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index 664a788f4f0..bd78db18ba2 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 2023-03-30}
+% \date{Released 2023-04-19}
%
% \maketitle
%
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
index 1605e579e34..4f3eb45eb97 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}{2023-03-30}{}
+ {l3backend-dvipdfmx.def}{2023-04-19}{}
{L3 backend support: dvipdfmx}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -488,7 +488,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
@@ -592,7 +592,7 @@
\tl_if_empty:NF \l__graphics_decodearray_str
{ /Decode~[ \l__graphics_decodearray_str ] }
\bool_if:NT \l__graphics_interpolate_bool
- { /Interpolate~true> }
+ { /Interpolate~true }
>>
}
}
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
index 330811ca4e6..62287189df8 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}{2023-03-30}{}
+ {l3backend-dvips.def}{2023-04-19}{}
{L3 backend support: dvips}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -584,7 +584,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
index 07a699aa05b..def201f4e9d 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}{2023-03-30}{}
+ {l3backend-dvisvgm.def}{2023-04-19}{}
{L3 backend support: dvisvgm}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -479,7 +479,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
@@ -629,7 +629,6 @@
\__graphics_backend_loaded:n
{ \cs_new_eq:NN \__graphics_backend_get_pagecount:n \__graphics_get_pagecount:n }
%% File: l3backend-pdf.dtx
-\box_new:N \l__pdf_internal_box
\cs_new_protected:Npn \__pdf_backend_annotation:nnnn #1#2#3#4 { }
\cs_new:Npn \__pdf_backend_annotation_last: { }
\cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2 { }
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
index 6ca51746e32..040c5415daf 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}{2023-03-30}{}
+ {l3backend-luatex.def}{2023-04-19}{}
{L3 backend support: PDF output (LuaTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -493,7 +493,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
@@ -505,19 +505,20 @@
\l_graphics_search_ext_seq
{ .pdf , .eps , .ps , .png , .jpg , .jpeg }
}
-\tl_new:N \l__graphics_graphics_attr_tl
+\tl_new:N \l__graphics_attr_tl
\cs_new_protected:Npn \__graphics_backend_getbb_jpg:n #1
{
\int_zero:N \l__graphics_page_int
\tl_clear:N \l__graphics_pagebox_tl
- \tl_set:Nx \l__graphics_graphics_attr_tl
+ \tl_set:Nx \l__graphics_attr_tl
{
\tl_if_empty:NF \l__graphics_decodearray_str
{ :D \l__graphics_decodearray_str }
\bool_if:NT \l__graphics_interpolate_bool
{ :I }
+ \str_if_empty:NF \l__graphics_pdf_str
+ { :X \l__graphics_pdf_str }
}
- \tl_clear:N \l__graphics_graphics_attr_tl
\__graphics_backend_getbb_auxi:n {#1}
}
\cs_new_eq:NN \__graphics_backend_getbb_jpeg:n \__graphics_backend_getbb_jpg:n
@@ -526,33 +527,38 @@
{
\tl_clear:N \l__graphics_decodearray_str
\bool_set_false:N \l__graphics_interpolate_bool
- \tl_set:Nx \l__graphics_graphics_attr_tl
+ \tl_set:Nx \l__graphics_attr_tl
{
: \l__graphics_pagebox_tl
\int_compare:nNnT \l__graphics_page_int > 1
{ :P \int_use:N \l__graphics_page_int }
+ \str_if_empty:NF \l__graphics_pdf_str
+ { :X \l__graphics_pdf_str }
}
\__graphics_backend_getbb_auxi:n {#1}
}
\cs_new_protected:Npn \__graphics_backend_getbb_auxi:n #1
{
- \__graphics_bb_restore:xF { #1 \l__graphics_graphics_attr_tl }
+ \__graphics_bb_restore:xF { #1 \l__graphics_attr_tl }
{ \__graphics_backend_getbb_auxii:n {#1} }
}
\cs_new_protected:Npn \__graphics_backend_getbb_auxii:n #1
{
\exp_args:Ne \__graphics_backend_getbb_auxiii:n
{ \__graphics_backend_dequote:w #1 " #1 " \s__graphics_stop }
- \int_const:cn { c__graphics_ #1 \l__graphics_graphics_attr_tl _int }
+ \int_const:cn { c__graphics_ #1 \l__graphics_attr_tl _int }
{ \tex_the:D \tex_pdflastximage:D }
- \__graphics_bb_save:x { #1 \l__graphics_graphics_attr_tl }
+ \__graphics_bb_save:x { #1 \l__graphics_attr_tl }
}
\cs_new_protected:Npn \__graphics_backend_getbb_auxiii:n #1
{
\tex_immediate:D \tex_pdfximage:D
- \bool_lazy_or:nnT
- { \l__graphics_interpolate_bool }
- { ! \tl_if_empty_p:N \l__graphics_decodearray_str }
+ \bool_lazy_any:nT
+ {
+ { \l__graphics_interpolate_bool }
+ { ! \tl_if_empty_p:N \l__graphics_decodearray_str }
+ { ! \str_if_empty_p:N \l__graphics_pdf_str }
+ }
{
attr ~
{
@@ -560,6 +566,7 @@
{ /Decode~[ \l__graphics_decodearray_str ] }
\bool_if:NT \l__graphics_interpolate_bool
{ /Interpolate~true }
+ \l__graphics_pdf_str
}
}
\int_compare:nNnT \l__graphics_page_int > 0
@@ -576,7 +583,7 @@
\cs_new_protected:Npn \__graphics_backend_include_jpg:n #1
{
\tex_pdfrefximage:D
- \int_use:c { c__graphics_ #1 \l__graphics_graphics_attr_tl _int }
+ \int_use:c { c__graphics_ #1 \l__graphics_attr_tl _int }
}
\cs_new_eq:NN \__graphics_backend_include_jpeg:n \__graphics_backend_include_jpg:n
\cs_new_eq:NN \__graphics_backend_include_pdf:n \__graphics_backend_include_jpg:n
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
index 4e63907755c..1592155c3c0 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}{2023-03-30}{}
+ {l3backend-pdftex.def}{2023-04-19}{}
{L3 backend support: PDF output (pdfTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -492,7 +492,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
@@ -504,19 +504,20 @@
\l_graphics_search_ext_seq
{ .pdf , .eps , .ps , .png , .jpg , .jpeg }
}
-\tl_new:N \l__graphics_graphics_attr_tl
+\tl_new:N \l__graphics_attr_tl
\cs_new_protected:Npn \__graphics_backend_getbb_jpg:n #1
{
\int_zero:N \l__graphics_page_int
\tl_clear:N \l__graphics_pagebox_tl
- \tl_set:Nx \l__graphics_graphics_attr_tl
+ \tl_set:Nx \l__graphics_attr_tl
{
\tl_if_empty:NF \l__graphics_decodearray_str
{ :D \l__graphics_decodearray_str }
\bool_if:NT \l__graphics_interpolate_bool
{ :I }
+ \str_if_empty:NF \l__graphics_pdf_str
+ { :X \l__graphics_pdf_str }
}
- \tl_clear:N \l__graphics_graphics_attr_tl
\__graphics_backend_getbb_auxi:n {#1}
}
\cs_new_eq:NN \__graphics_backend_getbb_jpeg:n \__graphics_backend_getbb_jpg:n
@@ -525,33 +526,38 @@
{
\tl_clear:N \l__graphics_decodearray_str
\bool_set_false:N \l__graphics_interpolate_bool
- \tl_set:Nx \l__graphics_graphics_attr_tl
+ \tl_set:Nx \l__graphics_attr_tl
{
: \l__graphics_pagebox_tl
\int_compare:nNnT \l__graphics_page_int > 1
{ :P \int_use:N \l__graphics_page_int }
+ \str_if_empty:NF \l__graphics_pdf_str
+ { :X \l__graphics_pdf_str }
}
\__graphics_backend_getbb_auxi:n {#1}
}
\cs_new_protected:Npn \__graphics_backend_getbb_auxi:n #1
{
- \__graphics_bb_restore:xF { #1 \l__graphics_graphics_attr_tl }
+ \__graphics_bb_restore:xF { #1 \l__graphics_attr_tl }
{ \__graphics_backend_getbb_auxii:n {#1} }
}
\cs_new_protected:Npn \__graphics_backend_getbb_auxii:n #1
{
\exp_args:Ne \__graphics_backend_getbb_auxiii:n
{ \__graphics_backend_dequote:w #1 " #1 " \s__graphics_stop }
- \int_const:cn { c__graphics_ #1 \l__graphics_graphics_attr_tl _int }
+ \int_const:cn { c__graphics_ #1 \l__graphics_attr_tl _int }
{ \tex_the:D \tex_pdflastximage:D }
- \__graphics_bb_save:x { #1 \l__graphics_graphics_attr_tl }
+ \__graphics_bb_save:x { #1 \l__graphics_attr_tl }
}
\cs_new_protected:Npn \__graphics_backend_getbb_auxiii:n #1
{
\tex_immediate:D \tex_pdfximage:D
- \bool_lazy_or:nnT
- { \l__graphics_interpolate_bool }
- { ! \tl_if_empty_p:N \l__graphics_decodearray_str }
+ \bool_lazy_any:nT
+ {
+ { \l__graphics_interpolate_bool }
+ { ! \tl_if_empty_p:N \l__graphics_decodearray_str }
+ { ! \str_if_empty_p:N \l__graphics_pdf_str }
+ }
{
attr ~
{
@@ -559,6 +565,7 @@
{ /Decode~[ \l__graphics_decodearray_str ] }
\bool_if:NT \l__graphics_interpolate_bool
{ /Interpolate~true }
+ \l__graphics_pdf_str
}
}
\int_compare:nNnT \l__graphics_page_int > 0
@@ -575,7 +582,7 @@
\cs_new_protected:Npn \__graphics_backend_include_jpg:n #1
{
\tex_pdfrefximage:D
- \int_use:c { c__graphics_ #1 \l__graphics_graphics_attr_tl _int }
+ \int_use:c { c__graphics_ #1 \l__graphics_attr_tl _int }
}
\cs_new_eq:NN \__graphics_backend_include_jpeg:n \__graphics_backend_include_jpg:n
\cs_new_eq:NN \__graphics_backend_include_pdf:n \__graphics_backend_include_jpg:n
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
index 8948cec19de..1f9966125c4 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}{2023-03-30}{}
+ {l3backend-xetex.def}{2023-04-19}{}
{L3 backend support: XeTeX}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -488,7 +488,7 @@
\cs_if_exist:NTF \hook_gput_code:nnn
{
\hook_gput_code:nnn
- { file / l3graphics.sty / after }
+ { package / l3graphics / after }
{ backend }
{#1}
}
@@ -575,7 +575,7 @@
\tl_if_empty:NF \l__graphics_decodearray_str
{ /Decode~[ \l__graphics_decodearray_str ] }
\bool_if:NT \l__graphics_interpolate_bool
- { /Interpolate~true> }
+ { /Interpolate~true }
>>
}
}
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 6134995a38c..96a289f4917 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}{2023-03-30}{}
+\ProvidesExplPackage{l3benchmark}{2023-04-19}{}
{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 20e5ef0b314..d976fc26022 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}{2023-03-30}{}
+\ProvidesExplPackage{l3bitset}{2023-04-19}{}
{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 b5038dbf77d..f1c94331d30 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}{2023-03-30}{}
+\ProvidesExplPackage{l3draw}{2023-04-19}{}
{L3 Experimental core drawing support}
\scan_new:N \s__draw_mark
\scan_new:N \s__draw_stop
@@ -502,8 +502,10 @@
\fp_const:cn { c__draw_path_arc_60_fp } { 4/3 * tand(15) }
\cs_new_protected:Npn \draw_path_arc_axes:nnnn #1#2#3#4
{
- \draw_transform_triangle:nnn { 0cm , 0cm } {#3} {#4}
- \draw_path_arc:nnn {#1} {#2} { 1pt }
+ \group_begin:
+ \draw_transform_triangle:nnn { 0cm , 0cm } {#3} {#4}
+ \draw_path_arc:nnn {#1} {#2} { 1pt }
+ \group_end:
}
\cs_new_protected:Npn \draw_path_ellipse:nnn #1#2#3
{
@@ -1888,12 +1890,12 @@
\__draw_point_process:nnn
{
\__draw_point_process:nn
- { \__draw_tranform_triangle:nnnnnn }
+ { \__draw_transform_triangle:nnnnnn }
{#1}
}
{#2} {#3}
}
-\cs_new_protected:Npn \__draw_tranform_triangle:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \__draw_transform_triangle:nnnnnn #1#2#3#4#5#6
{
\use:x
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index 6fc957e3890..86eb457ab5a 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
@@ -19,8 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3graphics.dtx
-\RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2023-03-30}{}
+\ProvidesExplPackage{l3graphics}{2023-04-19}{}
{L3 Experimental graphics inclusion support}
\dim_new:N \l__graphics_internal_dim
\ior_new:N \l__graphics_internal_ior
@@ -45,6 +44,8 @@
crop ,
page .int_set:N =
\l__graphics_page_int ,
+ pdf-attr .str_set:N =
+ \l__graphics_pdf_str ,
type . str_set:N =
\l__graphics_type_str
}
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
index ec9ddace1aa..39b151f59da 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}{2023-03-30}{}
+\ProvidesExplPackage{l3opacity}{2023-04-19}{}
{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 6f58e2c75ec..ec5d0375665 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}{2023-03-30}{}
+\ProvidesExplPackage{l3str-format}{2023-04-19}{}
{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 83bc04ad27c..dd0f6e97317 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}{2023-03-30}{}
+\ProvidesExplPackage{l3sys-shell}{2023-04-19}{}
{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 431af7ba1f7..631f8b2b305 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}{2023-03-30}{}
+\ProvidesExplPackage{xcoffins}{2023-04-19}{}
{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 80b7911e9d2..730873f94fe 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}{2023-03-30}{}
+\ProvidesExplPackage{l3galley}{2023-04-19}{}
{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 0153d1d876b..16d9f0ee0da 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}{2023-03-30}{}
+\ProvidesExplPackage{xgalley}{2023-04-19}{}
{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 a163950e5ff..58d68175ece 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -71,7 +71,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-03-30}%
+\def\ExplFileDate{2023-04-19}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -28466,6 +28466,116 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
}
}
+\cs_new_protected:Npn \box_set_clipped:N #1
+ { \hbox_set:Nn #1 { \__box_backend_clip:N #1 } }
+\cs_generate_variant:Nn \box_set_clipped:N { c }
+\cs_new_protected:Npn \box_gset_clipped:N #1
+ { \hbox_gset:Nn #1 { \__box_backend_clip:N #1 } }
+\cs_generate_variant:Nn \box_gset_clipped:N { c }
+\cs_new_protected:Npn \box_set_trim:Nnnnn #1#2#3#4#5
+ { \__box_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
+\cs_generate_variant:Nn \box_set_trim:Nnnnn { c }
+\cs_new_protected:Npn \box_gset_trim:Nnnnn #1#2#3#4#5
+ { \__box_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
+\cs_generate_variant:Nn \box_gset_trim:Nnnnn { c }
+\cs_new_protected:Npn \__box_set_trim:NnnnnN #1#2#3#4#5#6
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \__kernel_kern:n { -#2 }
+ \box_use:N #1
+ \__kernel_kern:n { -#4 }
+ }
+ \dim_compare:nNnTF { \box_dp:N #1 } > {#3}
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_down:nn \c_zero_dim
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_dp:Nn \l__box_internal_box { \box_dp:N #1 - (#3) }
+ }
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_down:nn { (#3) - \box_dp:N #1 }
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_dp:Nn \l__box_internal_box \c_zero_dim
+ }
+ \dim_compare:nNnTF { \box_ht:N \l__box_internal_box } > {#5}
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_up:nn \c_zero_dim
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_ht:Nn \l__box_internal_box
+ { \box_ht:N \l__box_internal_box - (#5) }
+ }
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_up:nn { (#5) - \box_ht:N \l__box_internal_box }
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_ht:Nn \l__box_internal_box \c_zero_dim
+ }
+ #6 #1 \l__box_internal_box
+ }
+\cs_new_protected:Npn \box_set_viewport:Nnnnn #1#2#3#4#5
+ { \__box_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
+\cs_generate_variant:Nn \box_set_viewport:Nnnnn { c }
+\cs_new_protected:Npn \box_gset_viewport:Nnnnn #1#2#3#4#5
+ { \__box_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
+\cs_generate_variant:Nn \box_gset_viewport:Nnnnn { c }
+\cs_new_protected:Npn \__box_set_viewport:NnnnnN #1#2#3#4#5#6
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \__kernel_kern:n { -#2 }
+ \box_use:N #1
+ \__kernel_kern:n { #4 - \box_wd:N #1 }
+ }
+ \dim_compare:nNnTF {#3} < \c_zero_dim
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_down:nn \c_zero_dim
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_dp:Nn \l__box_internal_box { - \__box_dim_eval:n {#3} }
+ }
+ {
+ \hbox_set:Nn \l__box_internal_box
+ { \box_move_down:nn {#3} { \box_use_drop:N \l__box_internal_box } }
+ \box_set_dp:Nn \l__box_internal_box \c_zero_dim
+ }
+ \dim_compare:nNnTF {#5} > \c_zero_dim
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_up:nn \c_zero_dim
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_ht:Nn \l__box_internal_box
+ {
+ (#5)
+ \dim_compare:nNnT {#3} > \c_zero_dim
+ { - (#3) }
+ }
+ }
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \box_move_up:nn { - \__box_dim_eval:n {#5} }
+ { \box_use_drop:N \l__box_internal_box }
+ }
+ \box_set_ht:Nn \l__box_internal_box \c_zero_dim
+ }
+ #6 #1 \l__box_internal_box
+ }
+
%% File: l3color.dtx
\cs_new_eq:NN \color_group_begin: \group_begin:
\cs_new_eq:NN \color_group_end: \group_end:
@@ -30316,7 +30426,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new:Npn \pdf_version_major: { \__pdf_backend_version_major: }
\cs_new:Npn \pdf_version_minor: { \__pdf_backend_version_minor: }
\cs_new_protected:Npn \pdf_pagesize_gset:nn #1#2
- { \__pdf_pagesize_gset:nn {#1} {#2} }
+ { \__pdf_backend_pagesize_gset:nn {#1} {#2} }
\cs_new_protected:Npn \pdf_destination:nn #1#2
{ \__pdf_backend_destination:nn {#1} {#2} }
\cs_new_protected:Npn \pdf_destination:nnnn #1#2#3#4
@@ -33215,7 +33325,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \__text_change_case_exclude:nnN {#1} {#2} }
{
\__text_codepoint_process:nN
- { \use:c { __text_change_case_codepoint_ #1 :nnn } {#1} {#2} }
+ { \use:c { __text_change_case_custom_ #1 :nnn } {#1} {#2} }
}
#3
}
@@ -33264,13 +33374,14 @@ Type H <return> for immediate help}\def~{\errmessage{%
{
\cs_if_exist:cTF { l__text_case_ \token_to_str:N #3 _tl }
{
- \exp_args:Nv \__text_change_case_replace:nnn
+ \__text_change_case_replace:vnn
{ l__text_case_ \token_to_str:N #3 _tl } {#1} {#2}
}
{ \__text_change_case_switch:nnN {#1} {#2} #3 }
}
\cs_new:Npn \__text_change_case_replace:nnn #1#2#3
{ \__text_change_case_loop:nnw {#2} {#3} #1 }
+\cs_generate_variant:Nn \__text_change_case_replace:nnn { v }
\cs_new:Npn \__text_change_case_switch:nnN #1#2#3
{
\cs_if_eq:NNTF #3 \text_case_switch:nnnn
@@ -33326,6 +33437,39 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \__text_change_case_loop:nnw {#3} {#4} }
}
}
+\cs_new:Npn \__text_change_case_custom_lower:nnn #1#2#3
+ {
+ \__text_change_case_custom:nnnnn {#1} {#2} {#3} {#1}
+ { \use:c { __text_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
+ }
+\cs_new_eq:NN \__text_change_case_custom_upper:nnn
+ \__text_change_case_custom_lower:nnn
+\cs_new:Npn \__text_change_case_custom_title:nnn #1#2#3
+ {
+ \__text_change_case_custom:nnnnn { title } {#2} {#3} {#1}
+ {
+ \__text_change_case_custom:nnnnn { upper } {#2} {#3} {#1}
+ { \use:c { __text_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
+ }
+ }
+\cs_new_eq:NN \__text_change_case_custom_titleonly:nnn
+ \__text_change_case_custom_title:nnn
+\cs_new:Npn \__text_change_case_custom:nnnnn #1#2#3#4#5
+ {
+ \tl_if_exist:cTF { l__text_ #1 case _ \tl_to_str:n {#3} _ #2 _tl }
+ {
+ \__text_change_case_replace:vnn
+ { l__text_ #1 case _ \tl_to_str:n {#3} _ #2 _tl } {#4} {#2}
+ }
+ {
+ \tl_if_exist:cTF { l__text_ #1 case _ \tl_to_str:n {#3} _tl }
+ {
+ \__text_change_case_replace:vnn
+ { l__text_ #1 case _ \tl_to_str:n {#3} _tl } {#4} {#2}
+ }
+ {#5}
+ }
+ }
\cs_new:Npn \__text_change_case_codepoint_lower:nnn #1#2#3
{
\cs_if_exist_use:cF { __text_change_case_lower_ #2 :nnnn }
@@ -33499,6 +33643,38 @@ Type H <return> for immediate help}\def~{\errmessage{%
\tl_clear_new:c { l__text_case_ \token_to_str:N #1 _tl }
\tl_set:cn { l__text_case_ \token_to_str:N #1 _tl } {#2}
}
+\cs_new_protected:Npn \text_declare_lowercase_mapping:nn #1#2
+ { \__text_declare_case_mapping:nnn { lower } {#1} {#2} }
+\cs_new_protected:Npn \text_declare_titlecase_mapping:nn #1#2
+ { \__text_declare_case_mapping:nnn { title } {#1} {#2} }
+\cs_new_protected:Npn \text_declare_uppercase_mapping:nn #1#2
+ { \__text_declare_case_mapping:nnn { upper } {#1} {#2} }
+\cs_new_protected:Npn \__text_declare_case_mapping:nnn #1#2#3
+ {
+ \exp_args:Ne \__text_declare_case_mapping_aux:nnn
+ { \codepoint_str_generate:n {#2} } {#1} {#3}
+ }
+\cs_new_protected:Npn \__text_declare_case_mapping_aux:nnn #1#2#3
+ {
+ \tl_clear_new:c { l__text_ #2 case _ #1 _tl }
+ \tl_set:cn { l__text_ #2 case _ #1 _ tl } {#3}
+ }
+\cs_new_protected:Npn \text_declare_lowercase_mapping:nnn #1#2#3
+ { \__text_declare_case_mapping:nnnn { lower } {#1} {#2} {#3} }
+\cs_new_protected:Npn \text_declare_titlecase_mapping:nnn #1#2#3
+ { \__text_declare_case_mapping:nnnn { title } {#1} {#2} {#3} }
+\cs_new_protected:Npn \text_declare_uppercase_mapping:nnn #1#2#3
+ { \__text_declare_case_mapping:nnnn { upper } {#1} {#2} {#3} }
+\cs_new_protected:Npn \__text_declare_case_mapping:nnnn #1#2#3#4
+ {
+ \exp_args:Ne \__text_declare_case_mapping_aux:nnnn
+ { \codepoint_str_generate:n {#2} } {#1} {#3} {#4}
+ }
+\cs_new_protected:Npn \__text_declare_case_mapping_aux:nnnn #1#2#3#4
+ {
+ \tl_clear_new:c { l__text_ #2 case _ #1 _ #3 _tl }
+ \tl_set:cn { l__text_ #2 case _ #1 _ #3 _ tl } {#4}
+ }
\cs_new:Npn \text_case_switch:nnnn #1#2#3#4
{
\__text_case_switch_marker:
@@ -34440,6 +34616,12 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
}
}
+\bool_lazy_or:nnF
+ { \sys_if_engine_luatex_p: }
+ { \sys_if_engine_xetex_p: }
+ {
+ \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
+ }
%% File: l3text-map.dtx
\cs_new:Npn \text_map_function:nN #1#2
{ \exp_args:Ne \__text_map_function:nN { \text_expand:n {#1} } #2 }
@@ -35358,115 +35540,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\q_recursion_stop
\group_end:
%% File: l3candidates.dtx
-\cs_new_protected:Npn \box_clip:N #1
- { \hbox_set:Nn #1 { \__box_backend_clip:N #1 } }
-\cs_generate_variant:Nn \box_clip:N { c }
-\cs_new_protected:Npn \box_gclip:N #1
- { \hbox_gset:Nn #1 { \__box_backend_clip:N #1 } }
-\cs_generate_variant:Nn \box_gclip:N { c }
-\cs_new_protected:Npn \box_set_trim:Nnnnn #1#2#3#4#5
- { \__box_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
-\cs_generate_variant:Nn \box_set_trim:Nnnnn { c }
-\cs_new_protected:Npn \box_gset_trim:Nnnnn #1#2#3#4#5
- { \__box_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
-\cs_generate_variant:Nn \box_gset_trim:Nnnnn { c }
-\cs_new_protected:Npn \__box_set_trim:NnnnnN #1#2#3#4#5#6
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \__kernel_kern:n { -#2 }
- \box_use:N #1
- \__kernel_kern:n { -#4 }
- }
- \dim_compare:nNnTF { \box_dp:N #1 } > {#3}
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_down:nn \c_zero_dim
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_dp:Nn \l__box_internal_box { \box_dp:N #1 - (#3) }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_down:nn { (#3) - \box_dp:N #1 }
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_dp:Nn \l__box_internal_box \c_zero_dim
- }
- \dim_compare:nNnTF { \box_ht:N \l__box_internal_box } > {#5}
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_up:nn \c_zero_dim
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_ht:Nn \l__box_internal_box
- { \box_ht:N \l__box_internal_box - (#5) }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_up:nn { (#5) - \box_ht:N \l__box_internal_box }
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_ht:Nn \l__box_internal_box \c_zero_dim
- }
- #6 #1 \l__box_internal_box
- }
-\cs_new_protected:Npn \box_set_viewport:Nnnnn #1#2#3#4#5
- { \__box_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
-\cs_generate_variant:Nn \box_set_viewport:Nnnnn { c }
-\cs_new_protected:Npn \box_gset_viewport:Nnnnn #1#2#3#4#5
- { \__box_set_viewport:NnnnnN #1 {#2} {#3} {#4} {#5} \box_gset_eq:NN }
-\cs_generate_variant:Nn \box_gset_viewport:Nnnnn { c }
-\cs_new_protected:Npn \__box_set_viewport:NnnnnN #1#2#3#4#5#6
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \__kernel_kern:n { -#2 }
- \box_use:N #1
- \__kernel_kern:n { #4 - \box_wd:N #1 }
- }
- \dim_compare:nNnTF {#3} < \c_zero_dim
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_down:nn \c_zero_dim
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_dp:Nn \l__box_internal_box { - \__box_dim_eval:n {#3} }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- { \box_move_down:nn {#3} { \box_use_drop:N \l__box_internal_box } }
- \box_set_dp:Nn \l__box_internal_box \c_zero_dim
- }
- \dim_compare:nNnTF {#5} > \c_zero_dim
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_up:nn \c_zero_dim
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_ht:Nn \l__box_internal_box
- {
- (#5)
- \dim_compare:nNnT {#3} > \c_zero_dim
- { - (#3) }
- }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_up:nn { - \__box_dim_eval:n {#5} }
- { \box_use_drop:N \l__box_internal_box }
- }
- \box_set_ht:Nn \l__box_internal_box \c_zero_dim
- }
- #6 #1 \l__box_internal_box
- }
\cs_new:Npn \flag_raise_if_clear:n #1
{
\if_cs_exist:w flag~#1~0 \cs_end:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 198d834f086..21e73fab842 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{2023-03-30}%
+\def\ExplFileDate{2023-04-19}%
\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 2dd58eebb4f..294451fd986 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{2023-03-30}%
+\def\ExplFileDate{2023-04-19}%
\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 787ffb3187b..b5e40bc17d8 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{2023-03-30}%
+\def\ExplFileDate{2023-04-19}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%