summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-20 19:45:21 +0000
committerKarl Berry <karl@freefriends.org>2022-04-20 19:45:21 +0000
commit60dc387082bfcbbf8201450601a85a2f369496c0 (patch)
tree89a3ec351ca2792507c9cc8a3268aac8c7b36200 /Master/texmf-dist/source
parente3f9bde7b3a577610c1d2457c789149c41dcacb6 (diff)
l3 (20apr22)
git-svn-id: svn://tug.org/texlive/trunk@63089 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx380
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx24
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx23
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color.dtx7
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx13
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3flag.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prop.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3quark.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3regex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3seq.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sort.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx2
82 files changed, 345 insertions, 292 deletions
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
index adaf33ee445..1eb47c105e2 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2022-04-14}{}
+ {l3backend-dvipdfmx.def}{2022-04-20}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2022-04-14}{}
+ {l3backend-dvips.def}{2022-04-20}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2022-04-14}{}
+ {l3backend-dvisvgm.def}{2022-04-20}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2022-04-14}{}
+ {l3backend-luatex.def}{2022-04-20}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2022-04-14}{}
+ {l3backend-pdftex.def}{2022-04-20}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2022-04-14}{}
+ {l3backend-xetex.def}{2022-04-20}{}
{L3 backend support: XeTeX}
%</xetex>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
index 4093f8b3a73..872e2dadcb3 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
index 7166fb693d9..6f766bc88a1 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -60,9 +60,10 @@
%<@@=color>
% \end{macrocode}
%
-% Color support is split into parts: collecting data from \LaTeXe{}, the color stack, general color, separations, and color for
-% drawings. We have different approaches in each backend, and have some choices
-% to make about \texttt{dvipdfmx}/\XeTeX{} in particular. Whilst it is in some ways
+% Color support is split into parts: collecting data from \LaTeXe{}, the color
+% stack, general color, separations, and color for drawings. We have different
+% approaches in each backend, and have some choices to make about
+% \texttt{dvipdfmx}/\XeTeX{} in particular. Whilst it is in some ways
% convenient to use the same approach in multiple backends, the fact that
% \texttt{dvipdfmx}/\XeTeX{} is PDF-based means it (largely) sticks closer to
% direct PDF output.
@@ -169,119 +170,29 @@
% \subsection{The color stack}
%
% For PDF-based engines, we have a color stack available inside the specials.
-% This is used for concepts beyond color itself: it is needed to manage th graphics
-% state generally. The exact form depends on the engine, and for
-% \texttt{dvipdfmx}/\XeTeX{} the backend version.
+% This is used for concepts beyond color itself: it is needed to manage the
+% graphics state generally. Although \texttt{dvipdfmx}/\XeTeX{} have multiple
+% color stacks in recent releases, the way these interact with the original
+% single stack and with other graphic state operations means that currently it
+% is not feasible to use the multiple stacks.
%
% \subsubsection{Common code}
%
% \begin{macrocode}
-%<*dvipdfmx|luatex|pdftex|xetex>
+%<*luatex|pdftex>
% \end{macrocode}
%
% \begin{variable}{\l_@@_backend_stack_int}
-% \pdfTeX{}, \LuaTeX{} and recent \texttt{(x)dvipdfmx} have multiple stacks
-% available, and to track which one is in use a variable is required.
+% For tracking which stack is in use where multiple stacks are used:
+% currently just \pdfTeX{}/\LuaTeX{} but at some future stage may also cover
+% \texttt{dvipdfmx}/\XeTeX{}.
% \begin{macrocode}
\int_new:N \l_@@_backend_stack_int
% \end{macrocode}
% \end{variable}
%
% \begin{macrocode}
-%</dvipdfmx|luatex|pdftex|xetex>
-% \end{macrocode}
-%
-% \subsubsection{\texttt{dvipdfmx}/\XeTeX{}}
-%
-% \begin{macrocode}
-%<*dvipdfmx|xetex>
-% \end{macrocode}
-%
-% \begin{macro}{\__kernel_color_backend_stack_init:Nnn}
-% \begin{variable}
-% {\g_@@_backend_stack_int, \c_@@_backend_main_stack_int}
-% In \texttt{(x)dvipdfmx}, the base color stack is not set up, so we have to
-% force that, as well as providing a mechanism more generally.
-% \begin{macrocode}
-\int_new:N \g_@@_backend_stack_int
-\cs_new_protected:Npx \__kernel_color_backend_stack_init:Nnn #1#2#3
- {
- \int_gincr:N \exp_not:N \g_@@_backend_stack_int
- \int_const:Nn #1 { \exp_not:N \g_@@_backend_stack_int }
- \use:x
- {
- \__kernel_backend_first_shipout:n
- {
- \__kernel_backend_literal:n
- {
- pdfcolorstackinit ~
- \exp_not:N \int_use:N \exp_not:N \g_@@_backend_stack_int
- \c_space_tl
- \exp_not:N \tl_if_blank:nF {#2} { #2 ~ }
- (#3)
- }
- }
- }
- }
-\cs_if_exist:cTF { main@pdfcolorstack }
- {
- \int_set:Nn \l_@@_backend_stack_int
- { \int_use:c { main@pdfcolorstack } }
- }
- {
- \__kernel_color_backend_stack_init:Nnn \c_@@_backend_main_stack_int
- { page ~ direct } { 0 ~ g ~ 0 ~ G }
- \int_set_eq:NN \l_@@_backend_stack_int
- \c_@@_backend_main_stack_int
- \int_const:cn { main@pdfcolorstack } { \c_@@_backend_main_stack_int }
- }
-% \end{macrocode}
-% The backend automatically restores the stack color from the \enquote{classical}
-% approach (\texttt{pdf:bcolor}) after a scope. That will be an issue for us, so
-% we manually ensure that the one we are using is inserted.
-% \begin{macrocode}
-\cs_gset_protected:Npn \__kernel_backend_scope_end:
- {
- \__kernel_backend_literal:n { x:grestore }
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_use:N \g_@@_backend_stack_int \c_space_tl current
- }
- }
-% \end{macrocode}
-% \end{variable}
-% \end{macro}
-%
-% \begin{macro}{\__kernel_color_backend_stack_push:nn, \__kernel_color_backend_stack_push:nx}
-% \begin{macro}{\__kernel_color_backend_stack_pop:n}
-% Simple enough but needs a version check.
-% \begin{macrocode}
-\cs_new_protected:Npn \__kernel_color_backend_stack_push:nn #1#2
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- push ~ (#2)
- }
- }
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
-\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
- {
- \__kernel_backend_literal:x
- {
- pdfcolorstack ~
- \int_eval:n {#1} ~
- pop
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macrocode}
-%</dvipdfmx|xetex>
+%</luatex|pdftex>
% \end{macrocode}
%
% \subsubsection{\LuaTeX and \pdfTeX{}}
@@ -309,7 +220,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\__kernel_color_backend_stack_push:nn, \__kernel_color_backend_stack_push:nx}
+% \begin{macro}{\__kernel_color_backend_stack_push:nn}
% \begin{macro}{\__kernel_color_backend_stack_pop:n}
% \begin{macrocode}
\cs_new_protected:Npn \__kernel_color_backend_stack_push:nn #1#2
@@ -322,7 +233,6 @@
%</pdftex>
\int_eval:n {#1} ~ push ~ {#2}
}
-\cs_generate_variant:Nn \__kernel_color_backend_stack_push:nn { nx }
\cs_new_protected:Npn \__kernel_color_backend_stack_pop:n #1
{
%<*luatex>
@@ -392,7 +302,7 @@
% \subsubsection{\LuaTeX{} and \pdfTeX{}}
%
% \begin{macrocode}
-%<*dvipdfmx|luatex|pdftex|xetex>
+%<*luatex|pdftex>
% \end{macrocode}
%
% \begin{variable}{\l_@@_backend_fill_tl, \l_@@_backend_stroke_tl}
@@ -431,6 +341,45 @@
% \end{macro}
% \end{macro}
%
+% \begin{macrocode}
+%</luatex|pdftex>
+% \end{macrocode}
+%
+% \subsubsection{\texttt{dvipmdfx}/\XeTeX{}}
+%
+% These backends have the most possible approaches: it recognises both
+% \texttt{dvips}-based color specials and its own format, plus one can
+% include PDF statements directly. Recent releases also have a color stack
+% approach similar to \pdfTeX{}. Of the stack methods, the dedicated
+% the most versatile is the latter as it can cover all of the use cases
+% we have. However, at present this interacts problematically with any color
+% on the original stack. We therefore stick to a single-stack approach here.
+%
+% \begin{macrocode}
+%<*dvipdfmx|xetex>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_select:n ,
+% \@@_backend_select_cmyk:n ,
+% \@@_backend_select_gray:n ,
+% \@@_backend_select_rgb:n
+% }
+% \begin{macro}{\@@_backend_reset:}
+% Using the single stack is relatively easy as there is only one route.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_select:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
+\cs_new_eq:NN \@@_backend_select_cmyk:n \@@_backend_select:n
+\cs_new_eq:NN \@@_backend_select_gray:n \@@_backend_select:n
+\cs_new_eq:NN \@@_backend_select_rgb:n \@@_backend_select:n
+\cs_new_protected:Npn \@@_backend_reset:
+ { \__kernel_backend_literal:n { pdf : ec } }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\@@_backend_select_named:n}
% For classical named colors, the only value we should get is |Black|.
% \begin{macrocode}
@@ -446,19 +395,9 @@
% \end{macro}
%
% \begin{macrocode}
-%</dvipdfmx|luatex|pdftex|xetex>
+%</dvipdfmx|xetex>
% \end{macrocode}
%
-% \subsubsection{\texttt{dvipmdfx}/\XeTeX{}}
-%
-% These backends have the most possible approaches: it recognises both
-% \texttt{dvips}-based color specials and it's own format, plus one can
-% include PDF statements directly. Recent releases also have a color stack
-% approach similar to \pdfTeX{}. Of the stack methods, the dedicated
-% the most versatile is the latter as it can cover all of the use cases
-% we have. Thus it is used in preference to the \texttt{dvips}-style interface
-% or the \enquote{native} color specials (which have only one stack).
-%
% \subsection{Separations}
%
% Here, life gets interesting and we need essentially one approach per
@@ -867,24 +806,53 @@
% \@@_backend_select_devicen:nn ,
% \@@_backend_select_iccbased:nn
% }
-% Although \texttt{(x)dvipdfmx} has a built-in approach to color spaces, that
-% can't be used with the generic color stacks. So we take an approach in which
-% we share the same code as for \pdfTeX{}.
% \begin{macrocode}
+%<*dvipdfmx|xetex>
+\cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
+ { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } }
+%</dvipdfmx|xetex>
+%<*luatex|pdftex>
\cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
{ \@@_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
+%</luatex|pdftex>
\cs_new_eq:NN \@@_backend_select_devicen:nn \@@_backend_select_separation:nn
\cs_new_eq:NN \@@_backend_select_iccbased:nn \@@_backend_select_separation:nn
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_init_resource:n}
+% Resource initiation comes up a few times. For \texttt{dvipdfmx}/\XeTeX{},
+% we skip this as at present it's handled by the backend.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_init_resource:n #1
+ {
+%<*luatex|pdftex>
+ \bool_lazy_and:nnT
+ { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
+ { \pdfmanagement_if_active_p: }
+ {
+ \use:x
+ {
+ \pdfmanagement_add:nnn
+ { Page / Resources / ColorSpace }
+ { #1 }
+ { \pdf_object_ref_last: }
+ }
+ }
+%</luatex|pdftex>
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_backend_separation_init:nnnnn}
% \begin{macro}{\@@_backend_separation_init:nn}
% \begin{macro}{\@@_backend_separation_init_CIELAB:nnn}
% Initialising the PDF structures needs two parts: creating an object
% containing the \enquote{real} name of the Separation, then adding a reference
% to that to each page. We use a separate object for the tint transformation
-% following the model in the PDF reference.
+% following the model in the PDF reference. The object here for the color
+% needs to be named as that way it's accessible to
+% \texttt{dvipdfmx}/\XeTeX{}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5
{
@@ -898,23 +866,16 @@
}
\exp_args:Nx \@@_backend_separation_init:nn
{ \str_convert_pdfname:n {#1} } {#2}
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g_@@_model_int }
- { \pdf_object_ref_last: }
- }
- }
+ \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int }
}
\cs_new_protected:Npn \@@_backend_separation_init:nn #1#2
{
- \pdf_object_unnamed_write:nx { array }
- { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ \use:x
+ {
+ \pdf_object_new:nn { color \int_use:N \g_@@_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g_@@_model_int }
+ { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
+ }
\prop_gput:Nnx \g_@@_backend_colorant_prop { /#1 }
{ \pdf_object_ref_last: }
}
@@ -978,26 +939,19 @@
}
{ {#3} }
}
- \pdf_object_unnamed_write:nx { array }
- {
- /DeviceN ~
- [ ~ #1 ~ ] ~
- #2 ~
- \pdf_object_ref_last:
- \@@_backend_devicen_colorants:n {#1}
- }
- \bool_lazy_and:nnT
- { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
- { \pdfmanagement_if_active_p: }
+ \use:x
{
- \use:x
+ \pdf_object_new:nn { color \int_use:N \g_@@_model_int } { array }
+ \pdf_object_write:nn { color \int_use:N \g_@@_model_int }
{
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { color \int_use:N \g_@@_model_int }
- { \pdf_object_ref_last: }
+ /DeviceN ~
+ [ ~ #1 ~ ] ~
+ #2 ~
+ \pdf_object_ref_last:
+ \@@_backend_devicen_colorants:n {#1}
}
}
+ \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int }
}
\cs_new:Npn \@@_backend_devicen_init:w #1 ~ #2 \s_@@_stop
{
@@ -1029,23 +983,14 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
- { color \int_use:N \g_@@_model_int }
- { ~ \pdf_object_ref_last: }
- }
- }
+ \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int }
}
% \end{macrocode}
% \end{macro}
-
%
% \begin{macro}{\@@_backend_iccbased_device:nnn}
% This is very similar to setting up a color space: the only part we
-% skip is adding it to the page resources.
+% add to the page resources differently.
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_iccbased_device:nnn #1#2#3
{
@@ -1060,16 +1005,7 @@
}
\pdf_object_unnamed_write:nx { array }
{ /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } }
- \cs_if_exist:NT \pdfmanagement_add:nnn
- {
- \use:x
- {
- \pdfmanagement_add:nnn
- { Page / Resources / ColorSpace }
- { Default #2 }
- { \pdf_object_ref_last: }
- }
- }
+ \@@_backend_init_resource:n { Default #2 }
}
% \end{macrocode}
% \end{macro}
@@ -1080,13 +1016,78 @@
%
% \subsection{Fill and stroke color}
%
-% Here, \texttt{dvipdfmx}/\XeTeX{} follows \LuaTeX{} and \pdfTeX{},
-% while for \texttt{dvips}
+% Here, \texttt{dvipdfmx}/\XeTeX{} we write direct PDF specials for the fill,
+% and only use the stack for the stroke color (see above for comments on why
+% we cannot use multiple stacks with these backends). \LuaTeX{} and \pdfTeX{}
+% have mutiple stacks that can deal with fill and stroke. For \texttt{dvips}
% we have to manage fill and stroke color ourselves. We also handle
% \texttt{dvisvgm} independently, as there we can create SVG directly.
%
% \begin{macrocode}
-%<*dvipdfmx|luatex|pdftex|xetex>
+%<*dvipdfmx|xetex>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill:n ,
+% \@@_backend_fill_cmyk:n ,
+% \@@_backend_fill_gray:n ,
+% \@@_backend_fill_rgb:n ,
+% \@@_backend_stroke:n ,
+% \@@_backend_stroke_cmyk:n ,
+% \@@_backend_stroke_gray:n ,
+% \@@_backend_stroke_rgb:n
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ fill ~ [ #1 ] } }
+\cs_new_eq:NN \@@_backend_fill_cmyk:n \@@_backend_fill:n
+\cs_new_eq:NN \@@_backend_fill_gray:n \@@_backend_fill:n
+\cs_new_eq:NN \@@_backend_fill_rgb:n \@@_backend_fill:n
+\cs_new_protected:Npn \@@_backend_stroke:n #1
+ { \__kernel_backend_literal:n { pdf : bc ~ stroke ~ [ #1 ] } }
+\cs_new_eq:NN \@@_backend_stroke_cmyk:n \@@_backend_stroke:n
+\cs_new_eq:NN \@@_backend_stroke_gray:n \@@_backend_stroke:n
+\cs_new_eq:NN \@@_backend_stroke_rgb:n \@@_backend_stroke:n
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_separation:nn,
+% \@@_backend_stroke_separation:nn,
+% \@@_backend_fill_devicen:nn,
+% \@@_backend_stroke_devicen:nn
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2
+ {
+ \__kernel_backend_literal:x
+ { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
+ }
+\cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2
+ {
+ \__kernel_backend_literal:x
+ { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] }
+ }
+\cs_new_eq:NN \@@_backend_fill_devicen:nn \@@_backend_fill_separation:nn
+\cs_new_eq:NN \@@_backend_stroke_devicen:nn \@@_backend_stroke_separation:nn
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
+% \begin{macrocode}
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_eq:NN \@@_backend_stroke_reset: \@@_backend_reset:
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvipdfmx|xetex>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*luatex|pdftex>
% \end{macrocode}
%
% \begin{macro}
@@ -1117,7 +1118,6 @@
\tl_set:Nn \l_@@_backend_fill_tl {#1}
\__kernel_color_backend_stack_push:nn \l_@@_backend_stack_int
{ #1 ~ \l_@@_backend_stroke_tl }
- \group_insert_after:N \@@_backend_reset:
}
\cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
{ \@@_backend_stroke:n { #1 ~ K } }
@@ -1130,7 +1130,6 @@
\tl_set:Nn \l_@@_backend_stroke_tl {#1}
\__kernel_color_backend_stack_push:nn \l_@@_backend_stack_int
{ \l_@@_backend_fill_tl \c_space_tl #1 }
- \group_insert_after:N \@@_backend_reset:
}
% \end{macrocode}
% \end{macro}
@@ -1152,8 +1151,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
% \begin{macrocode}
-%</dvipdfmx|luatex|pdftex|xetex>
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_eq:NN \@@_backend_stroke_reset: \@@_backend_reset:
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</luatex|pdftex>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1182,7 +1188,6 @@
\cs_new_protected:Npn \@@_backend_fill:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \group_insert_after:N \@@_backend_reset:
}
\cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
{ \__kernel_backend_postscript:n { /color.sc { #1 ~ setcmykcolor } def } }
@@ -1210,6 +1215,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
+% \begin{macrocode}
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_protected:Npn \@@_backend_stroke_reset: { }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</dvips>
% \end{macrocode}
@@ -1237,7 +1249,6 @@
\cs_new_protected:Npn \@@_backend_fill:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \group_insert_after:N \@@_backend_reset:
}
% \end{macrocode}
% \end{macro}
@@ -1327,6 +1338,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_backend_fill_reset:, \@@_backend_stroke_reset:}
+% \begin{macrocode}
+\cs_new_eq:NN \@@_backend_fill_reset: \@@_backend_reset:
+\cs_new_protected:Npn \@@_backend_stroke_reset: { }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_backend_devicen_init:nnn, \@@_backend_iccbased_init:nnn}
% No support at present.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
index 4a0d7796822..c8029dfca5d 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
index 08df3f16b5d..9d5b31faa98 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
index 2298af2a4e3..cad715a2004 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
index 9fd8426741d..4c5de69fb4a 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -139,14 +139,16 @@
% \end{macrocode}
%
% \begin{variable}{\c_@@_backend_stack_int}
-% Set up a stack.
+% Set up a stack, where that is applicable.
% \begin{macrocode}
\bool_lazy_and:nnT
{ \cs_if_exist_p:N \pdfmanagement_if_active_p: }
{ \pdfmanagement_if_active_p:}
{
+%<*luatex|pdftex>
\__kernel_color_backend_stack_init:Nnn \c_@@_backend_stack_int
{ page ~ direct } { /opacity 1 ~ gs }
+%</luatex|pdftex>
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
}
@@ -178,7 +180,12 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity #1 }
{ << /ca ~ #1 /CA ~ #1 >> }
+%<*dvipdfmx|xetex>
+ \__kernel_backend_literal:n
+%</dvipdfmx|xetex>
+%<*luatex|pdftex>
\__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+%</luatex|pdftex>
{ /opacity #1 ~ gs }
\group_insert_after:N \@@_backend_reset:
}
@@ -189,7 +196,11 @@
\cs_gset_protected:Npn \@@_backend_select_aux:n #1 { }
}
\cs_new_protected:Npn \@@_backend_reset:
- { \__kernel_color_backend_stack_pop:n \c_@@_backend_stack_int }
+ {
+%<*luatex|pdftex>
+ \__kernel_color_backend_stack_pop:n \c_@@_backend_stack_int
+%</luatex|pdftex>
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -224,7 +235,12 @@
\pdfmanagement_add:nnn { Page / Resources / ExtGState }
{ opacity.stroke #1 }
{ << /CA ~ #2 >> }
- \__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+%<*dvipdfmx|xetex>
+ \__kernel_backend_literal:n
+%</dvipdfmx|xetex>
+%<*luatex|pdftex>
+ \__kernel_color_backend_stack_push:nn \c_@@_backend_stack_int
+%</luatex|pdftex>
{ /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
\group_insert_after:N \@@_backend_reset:
}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
index 071b8805f5c..f8cf0111602 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-14}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
index 0eb34e5c0c7..a2cc6311a95 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -122,7 +122,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2022-04-10}{}
+\ProvidesExplPackage{l3benchmark}{2022-04-20}{}
{L3 Experimental benchmarking}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
index 3443ca7d25b..0038883adf2 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
% \begin{documentation}
@@ -264,7 +264,7 @@
%<@@=bitset>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2022-04-10}{}
+\ProvidesExplPackage{l3bitset}{2022-04-20}{}
{L3 Experimental bitset support}
% \end{macrocode}
% A bitset is a string variable.
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
index 926ff3387ea..4059deb74c1 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
index e82e7a1e2a9..bbdc422604c 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
index 024faef3247..27252d36c4d 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
index fe3c28351ea..d67f61cbcc5 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
index 2fcc7e8ac0f..2a4968ba782 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
index 53dfd48728f..91f16e362d5 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
index b93f593a7e8..b4cdd7b1f38 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
index bdc96e0c88d..3461dd983c2 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
index 31ac35f0425..9dcca5c6f8f 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
@@ -110,7 +110,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -1173,7 +1173,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2022-04-10}{}
+\ProvidesExplPackage{l3draw}{2022-04-20}{}
{L3 Experimental core drawing support}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
index cf4a70983d2..0a3556c5bed 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -185,13 +185,14 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2022-04-10}{}
+\ProvidesExplPackage{l3graphics}{2022-04-20}{}
{L3 Experimental graphics inclusion support}
% \end{macrocode}
%
-% \begin{variable}{\l_@@_internal_ior, \l_@@_internal_tl}
+% \begin{variable}{\l_@@_internal_dim, \l_@@_internal_ior, \l_@@_internal_tl}
% Scratch space.
% \begin{macrocode}
+\dim_new:N \l_@@_internal_dim
\ior_new:N \l_@@_internal_ior
\tl_new:N \l_@@_internal_tl
% \end{macrocode}
@@ -631,7 +632,9 @@
% \begin{macro}{\graphics_get_full_name:nN}
% \begin{macro}[TF]{\graphics_get_full_name:nN}
% \begin{macro}{\@@_get_full_name:n}
-% A simple search.
+% As well as searching by path, etc., there is a need here to check that
+% we do not trip over |foo.bar| if |.bar| is not a known extension for
+% the current backend.
% \begin{macrocode}
\cs_new_protected:Npn \graphics_get_full_name:nN #1#2
{
@@ -645,8 +648,18 @@
\seq_set_eq:NN \l_file_search_path_seq \l_graphics_search_path_seq
\file_get_full_name:nNTF {#1} \l_@@_full_name_str
{
- \str_if_eq:eeT { \l_@@_full_name_str } { #1 .tex }
+ \str_if_eq:eeTF { \l_@@_full_name_str } { #1 .tex }
{ \@@_get_full_name:n {#1} }
+ {
+ \file_parse_full_name:VNNN \l_@@_full_name_str
+ \l_@@_dir_str \l_@@_name_str \l_@@_ext_str
+ \seq_map_inline:Nn \l_graphics_search_ext_seq
+ {
+ \str_if_eq:nVT {##1} \l_@@_ext_str
+ { \seq_map_break:n { \use_none:nn } }
+ }
+ \@@_get_full_name:n {#1}
+ }
}
{ \@@_get_full_name:n {#1} }
\exp_args:NNNV \group_end:
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
index 192f6b6818d..0ad59425ff9 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -97,7 +97,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3opacity}{2022-04-10}{}
+\ProvidesExplPackage{l3opacity}{2022-04-20}{}
{L3 Experimental opacity support}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
index c84c77c6081..6ca47a96939 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2022-04-10}{}
+\ProvidesExplPackage{l3str-format}{2022-04-20}{}
{L3 Experimental string formatting}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
index db10bbbf606..3f8f711278f 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -151,7 +151,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2022-04-10}{}
+\ProvidesExplPackage{l3sys-shell}{2022-04-20}{}
{L3 Experimental system shell functions}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
index e7773188c01..44a79131812 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -672,7 +672,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2022-04-10}{}
+\ProvidesExplPackage{xcoffins}{2022-04-20}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
index 5dd9d565eba..08bc1732934 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -686,7 +686,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2022-04-10}{}
+\ProvidesExplPackage{l3galley}{2022-04-20}{}
{L3 Experimental galley code}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
index 2e541d65507..1d721dd5902 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -731,7 +731,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2022-04-10}{}
+\ProvidesExplPackage{xgalley}{2022-04-20}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 34e12e7d550..4b64f6a13df 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2022-04-10}%
+\def\ExplFileDate{2022-04-20}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index c945620eced..322813f1634 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 5b137477ca3..42be007851e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 7c19e49bfd4..5376ce1713a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index d8e01d0d0bf..79a4b5a0a1e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
index 69409085fe7..2bb46eda42f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index a2e5dd0ec0e..8bce2d8d74d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index d00fe3918d4..db9d753ee58 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
index 93f42374efe..1cb9c71bb68 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -1600,7 +1600,10 @@
\exp_after:wN \@@_draw:nnn \l_@@_current_tl { stroke }
}
\cs_new_protected:Npn \@@_draw:nnn #1#2#3
- { \use:c { @@_backend_ #3 _ #1 :n } {#2} }
+ {
+ \use:c { @@_backend_ #3 _ #1 :n } {#2}
+ \exp_args:Nc \group_insert_after:N { @@_backend_ #3 _ reset: }
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index 65457cbdeaf..ce4c2b02796 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 4d48f2a0077..ed7222bf67c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -487,15 +487,14 @@
%
% \subsection{Deprecated \pkg{l3sys} functions}
%
+% \begin{macrocode}
+%<@@=sys>
+% \end{macrocode}
+%
% \begin{macro}{\sys_load_deprecation:}
% \begin{macrocode}
\__kernel_patch_deprecation:nnNNpn { 2021-01-11 } { (no~longer~required) }
-\cs_gset_protected:Npn \sys_load_deprecation:
- {
- \bool_if:NF \g_@@_deprecation_bool
- { \__kernel_sys_configuration_load:n { l3deprecation } }
- \bool_gset_true:N \g_@@_deprecation_bool
- }
+\cs_gset_protected:Npn \sys_load_deprecation: { }
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 0db227edf9d..b948b6ef148 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -85,7 +85,7 @@ and all files in that bundle must be distributed together.
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 9319cd39e51..adaab466635 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 614a73d29e2..5f68d32791b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index adf73279bc7..b3c86f0117f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index 22fae08ae6d..a36e3e7f30c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index 38f6d3ff6ac..ec8dcce6390 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
index 9ae275ac225..169bfa4b4d9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 8cd126989af..1c4abe1c822 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index 6fc2681f561..62c44efe0ab 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index fdaece8932a..9ec52f82363 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index d116ce92211..56b5bcab2b5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 7c24b0822c9..909f20d9e79 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 307a848a088..cb2630f5dad 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index 8ad1b848804..c437ea1cb18 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 8cb45a097bd..fddead799ab 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index 6cd2dd1b9b5..45977704d63 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
index 993db8a0b62..b4e1b6bfb6e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index c0f2daa4829..1b692e111d6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index 2b279e18d7c..1dcd88b349e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index e8dc857816b..1def079f9c7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 916cef5db2f..ef7cedf8d93 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index bd62a0dbca6..f5e3dd4c325 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 81eb124edd9..dcfa2a5c8b0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index 534d37be27c..19e3a8c0ea4 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index 04786d3c1f5..1d54693b884 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index ef95cabf996..d315aff78e5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index 50512593c3c..94a18e5ee5b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
@@ -794,6 +794,8 @@
\@@_primitive:NN \crampedscriptstyle \tex_crampedscriptstyle:D
\@@_primitive:NN \crampedtextstyle \tex_crampedtextstyle:D
\@@_primitive:NN \csstring \tex_csstring:D
+ \@@_primitive:NN \discretionaryligaturemode
+ \tex_discretionaryligaturemode:D
\@@_primitive:NN \directlua \tex_directlua:D
\@@_primitive:NN \dviextension \tex_dviextension:D
\@@_primitive:NN \dvifeedback \tex_dvifeedback:D
@@ -840,10 +842,12 @@
\@@_primitive:NN \luatexbanner \tex_luatexbanner:D
\@@_primitive:NN \luatexrevision \tex_luatexrevision:D
\@@_primitive:NN \luatexversion \tex_luatexversion:D
+ \@@_primitive:NN \mathdefaultsmode \tex_mathdefaultsmode:D
\@@_primitive:NN \mathdelimitersmode \tex_mathdelimitersmode:D
\@@_primitive:NN \mathdir \tex_mathdir:D
\@@_primitive:NN \mathdirection \tex_mathdirection:D
\@@_primitive:NN \mathdisplayskipmode \tex_mathdisplayskipmode:D
+ \@@_primitive:NN \matheqdirmode \tex_matheqdirmode:D
\@@_primitive:NN \matheqnogapstep \tex_matheqnogapstep:D
\@@_primitive:NN \mathnolimitsmode \tex_mathnolimitsmode:D
\@@_primitive:NN \mathoption \tex_mathoption:D
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
index b2ed19cb085..d94bd4f0342 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 98f62111870..da352b14fc1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index 1d0694fe6a2..b86bb5f6ddf 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index 53ea8dfc182..3088a12d35f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index e9c254bb029..192dd6ecc67 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index bf285df9646..545321f959e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 75e80b0c54f..dac1117ef4b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index 11604bbf817..a677ae672ee 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index 8646c378e52..52cbcc19a29 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index ddfdd102793..00b4e96dd2f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index a211af619bd..ca862ca831e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index faa9960f790..9ffd8a140a9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
index a055aec838d..7b7b2957e7b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index 3cb5795a5df..caa3ba34a25 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 0db5f15d7ab..bcce1944fd3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 68d2cdaf8a5..af83797cd19 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 3d5858a37ad..6b1b1759ffd 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index db57bd0f386..19134440aea 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-04-10}
+% \date{Released 2022-04-20}
%
% \maketitle
%