summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-01-29 22:37:37 +0000
committerKarl Berry <karl@freefriends.org>2021-01-29 22:37:37 +0000
commit88b40fe28cf8ad53d15f707a0e4a3f99c953bb4b (patch)
treebc34852e40c7d6417600fca15591bdb58acbaf5c /Master/texmf-dist/tex
parent7ae58a3bf77274814f2c766b55c3713cab428aea (diff)
l3 (29jan21)
git-svn-id: svn://tug.org/texlive/trunk@57554 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def284
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def110
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def74
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def145
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def145
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def255
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty234
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty11
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty4
17 files changed, 1016 insertions, 278 deletions
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
index b64b2f1b028..9947b2830aa 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -10,8 +10,9 @@
%% l3backend-draw.dtx (with options: `package,dvipdfmx')
%% l3backend-graphics.dtx (with options: `package,dvipdfmx')
%% l3backend-pdf.dtx (with options: `package,dvipdfmx')
+%% l3backend-opacity.dtx (with options: `package,dvipdfmx')
%%
-%% Copyright (C) 1990-2021 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvipdfmx.def}{2021-01-09}{}
+ {l3backend-dvipdfmx.def}{2020-01-29}{}
{L3 backend support: dvipdfmx}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -90,25 +91,44 @@
\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
{ \tl_set:Nn #3 { {#1} {#2} } }
}
-\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+\int_new:N \l__color_backend_stack_int
+\int_compare:nNnTF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ { \cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3 { } }
{
- \int_new:N \g__color_stack_int
- \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+ \int_new:N \g__color_backend_stack_int
+ \cs_new_protected:Npx \__kernel_color_backend_stack_init:Nnn #1#2#3
{
- \int_gincr:N \g__color_stack_int
- \int_const:Nn #1 { \g__color_stack_int }
- \__kernel_backend_literal:x
+ \int_gincr:N \exp_not:N \g__color_backend_stack_int
+ \int_const:Nn #1 { \exp_not:N \g__color_backend_stack_int }
+ \cs_if_exist:NTF \AtBeginDvi
+ { \exp_not:N \AtBeginDvi }
+ { \exp_not:N \use:n }
{
- pdfcolorstackinit ~
- \int_use:N \g__color_stack_int \c_space_tl
- \tl_if_blank:nF {#2} { #2 ~ }
- (#3)
+ \__kernel_backend_literal:x
+ {
+ pdfcolorstackinit ~
+ \exp_not:N \int_use:N \exp_not:N \g__color_backend_stack_int
+ \c_space_tl
+ \exp_not:N \tl_if_blank:nF {#2} { #2 ~ }
+ (#3)
+ }
}
}
+ \cs_if_exist:cTF { main@pdfcolorstack }
+ {
+ \int_set:Nn \l__color_backend_stack_int
+ { \int_use:c { main@pdfcolorstack } }
+ }
+ {
+ \__kernel_color_backend_stack_init:Nnn \c__color_backend_main_stack_int
+ { page ~ direct } { 0 ~ g ~ 0 ~ G }
+ \int_set_eq:NN \l__color_backend_stack_int
+ \c__color_backend_main_stack_int
+ }
}
\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
{
- \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+ \cs_new_protected:Npn \__color_backend_stack_push:nn #1#2
{
\__kernel_backend_literal:x
{
@@ -117,7 +137,8 @@
push ~ (#2)
}
}
- \cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+ \cs_generate_variant:Nn \__color_backend_stack_push:nn { nx }
+ \cs_new_protected:Npn \__color_backend_stack_pop:n #1
{
\__kernel_backend_literal:x
{
@@ -127,20 +148,23 @@
}
}
}
-\int_new:N \l__kernel_color_stack_int
+\tl_new:N \l__color_backend_fill_tl
+\tl_new:N \l__color_backend_stroke_tl
\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
- { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
+ { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_select_gray:n #1
- { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
+ { \__color_backend_select:nn { #1 ~ g } { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_select_rgb:n #1
- { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
-\cs_new_protected:Npn \__color_backend_select:n #1
+ { \__color_backend_select:nn { #1 ~ rg } { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_select:nn #1#2
{
- \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \tl_set:Nn \l__color_backend_stroke_tl {#2}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int { #1 ~ #2 }
\group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_reset:
- { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+ { \__color_backend_stack_pop:n \l__color_backend_stack_int }
\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
{
\cs_gset_protected:Npn \__color_backend_select_cmyk:n #1
@@ -154,7 +178,7 @@
{ \__kernel_backend_literal:n { pdf: ec } }
}
\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
- { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
+ { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
{
@@ -261,24 +285,65 @@
{ \__color_backend_devicen_init:w #2 \s__color_stop }
}
\cs_new_eq:NN \__color_backend_devicen_init:n \__color_backend_separation_init:n
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ {
+ \cs_gset_protected:Npn \__color_backend_select_separation:nn #1#2 { }
+ \cs_gset_eq:NN \__color_backend_select_devicen:nn
+ \__color_backend_select_separation:nn
+ }
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ k } }
+ { \__color_backend_fill:n { #1 ~ k } }
\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ g } }
+ { \__color_backend_fill:n { #1 ~ g } }
\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ rg } }
- \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ K } }
+ { \__color_backend_fill:n { #1 ~ rg } }
+\cs_new_protected:Npn \__color_backend_fill:n #1
+ {
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { #1 ~ \l__color_backend_stroke_tl }
+ \group_insert_after:N \__color_backend_reset:
+ }
+\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
+ { \__color_backend_stroke:n { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ G } }
+ { \__color_backend_stroke:n { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ RG } }
+ { \__color_backend_stroke:n { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_stroke:n #1
+ {
+ \tl_set:Nn \l__color_backend_stroke_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { \l__color_backend_fill_tl \c_space_tl #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ cs ~ #2 ~ scn } }
+ { \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ CS ~ #2 ~ SCN } }
+ { \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ {
+ \cs_gset_protected:Npn \__color_backend_fill_cmyk:n #1
+ {
+ \__kernel_backend_literal:n { pdf: bc ~ [#1] }
+ \group_insert_after:N \__color_backend_reset:
+ }
+ \cs_gset_eq:NN \__color_backend_fill_gray:n \__color_backend_fill_cmyk:n
+ \cs_gset_eq:NN \__color_backend_fill_rgb:n \__color_backend_fill_cmyk:n
+ \cs_gset_protected:Npn \__color_backend_reset:
+ { \__kernel_backend_literal:n { pdf: ec } }
+ \cs_gset_protected:Npn \__color_backend_stroke:n #1
+ { \__kernel_backend_literal:n {#1} }
+ \cs_gset_protected:Npn \__color_backend_fill_separation:nn #1#2 { }
+ \cs_gset_eq:NN \__color_backend_fill_devicen:nn
+ \__color_backend_fill_separation:nn
+ \cs_gset_eq:NN \__color_backend_stroke_separation:nn
+ \__color_backend_fill_separation:nn
+ \cs_gset_eq:NN \__color_backend_stroke_devicen:nn
+ \__color_backend_stroke_separation:nn
+ }
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
@@ -754,36 +819,43 @@
]
}
}
-\cs_new_protected:Npn \__pdf_backend_destination_box:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4
{
- \group_begin:
- \hbox_set:Nn \l__pdf_internal_box {#2}
- \box_move_down:nn { \box_dp:N \l__pdf_internal_box }
- {
- \hbox:n
- {
- \__pdf_backend:n { obj ~ @pdf_ #1 _llx ~ @xpos }
- \__pdf_backend:n { obj ~ @pdf_ #1 _lly ~ @ypos }
- }
- }
- \box_use:N \l__pdf_internal_box
- \box_move_up:nn { \box_ht:N \l__pdf_internal_box }
- {
- \hbox:n
- {
- \__pdf_backend:n
- {
- dest ~ (#1)
- [
- @thispage
- /FitR ~
- @pdf_ #1 _llx ~ @pdf_ #1 _lly ~
- @xpos ~ @ypos
- ]
- }
- }
- }
- \group_end:
+ \exp_args:Ne \__pdf_backend_destination_aux:nnnn
+ { \dim_eval:n {#2} } {#1} {#3} {#4}
+ }
+\cs_new_protected:Npn \__pdf_backend_destination_aux:nnnn #1#2#3#4
+ {
+ \vbox_to_zero:n
+ {
+ \tex_kern:D \dim_eval:n {#4} \scan_stop:
+ \hbox:n
+ {
+ \__pdf_backend:n { obj ~ @pdf_ #2 _llx ~ @xpos }
+ \__pdf_backend:n { obj ~ @pdf_ #2 _lly ~ @ypos }
+ }
+ \tex_vss:D
+ }
+ \tex_kern:D #1 \scan_stop:
+ \vbox_to_zero:n
+ {
+ \tex_kern:D \dim_eval:n { -#3 } \scan_stop:
+ \hbox:n
+ {
+ \__pdf_backend:n
+ {
+ dest ~ (#2)
+ [
+ @thispage
+ /FitR ~
+ @pdf_ #2 _llx ~ @pdf_ #2 _lly ~
+ @xpos ~ @ypos
+ ]
+ }
+ }
+ \tex_vss:D
+ }
+ \tex_kern:D -#1 \scan_stop:
}
\cs_new_protected:Npn \__pdf_backend_compresslevel:n #1
{ \__kernel_backend_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
@@ -808,6 +880,98 @@
{ \__kernel_backend_literal_page:n { /#1 ~ #2 ~ BDC } }
\cs_new_protected:Npn \__pdf_backend_emc:
{ \__kernel_backend_literal_page:n { EMC } }
+%% File: l3backend-opacity.dtx
+\cs_if_exist:NT \pdfmanagement_add:nnn
+ {
+ \__kernel_color_backend_stack_init:Nnn \c__opacity_backend_stack_int
+ { page ~ direct } { /opacity 1 ~ gs }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
+ }
+\tl_new:N \l__opacity_backend_fill_tl
+\tl_new:N \l__opacity_backend_stroke_tl
+\cs_new_protected:Npn \__opacity_backend_select:n #1
+ {
+ \exp_args:Nx \__opacity_backend_select_aux:n
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_select_aux:n #1
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#1}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity #1 }
+ { << /ca ~ #1 /CA ~ #1 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity #1 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+\cs_if_exist:NF \pdfmanagement_add:nnn
+ {
+ \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
+ }
+\cs_new_protected:Npn \__opacity_backend_reset:
+ { \__opacity_backend_stack_pop:n \c__opacity_backend_stack_int }
+\cs_new_protected:Npn \__opacity_backend_fill:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ { \fp_eval:n { min(max(0,#1),1) } }
+ \l__opacity_backend_stroke_tl
+ }
+\cs_new_protected:Npn \__opacity_backend_stroke:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ \l__opacity_backend_fill_tl
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_fill_stroke:nn #1#2
+ {
+ \str_if_eq:nnTF {#1} {#2}
+ { \__opacity_backend_select_aux:n {#1} }
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#2}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.fill #1 }
+ { << /ca ~ #1 >> }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.stroke #1 }
+ { << /CA ~ #2 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+ }
+\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx }
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ {
+ \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#1}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity #1 }
+ { << /ca ~ #1 /CA ~ #1 >> }
+ \__kernel_backend_literal_pdf:n { /opacity #1 ~ gs }
+ }
+ \cs_gset_protected:Npn \__opacity_backend_fill_stroke:nn #1#2
+ {
+ \str_if_eq:nnTF {#1} {#2}
+ { \__opacity_backend_select_aux:n {#1} }
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#2}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.fill #1 }
+ { << /ca ~ #1 >> }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.stroke #1 }
+ { << /CA ~ #2 >> }
+ \__kernel_backend_literal_pdf:n
+ { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+ }
+ }
+ }
%%
%%
%% End of file `l3backend-dvipdfmx.def'.
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
index 61f8f584ea8..ff4307c4acf 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
@@ -10,8 +10,9 @@
%% l3backend-draw.dtx (with options: `package,dvips')
%% l3backend-graphics.dtx (with options: `package,dvips')
%% l3backend-pdf.dtx (with options: `package,dvips')
+%% l3backend-opacity.dtx (with options: `package,dvips')
%%
-%% Copyright (C) 1990-2021 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvips.def}{2021-01-09}{}
+ {l3backend-dvips.def}{2020-01-29}{}
{L3 backend support: dvips}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -104,8 +105,7 @@
\cs_new_protected:Npn \__color_backend_select:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
- \__kernel_backend_postscript:n { /color.sc~ { ~ } ~def }
- \__kernel_backend_postscript:n { /color.fc~ { ~ } ~def }
+ \__kernel_backend_postscript:n { /color.sc ~ { } ~ def }
\group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_reset:
@@ -282,21 +282,26 @@
}
}
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__kernel_backend_postscript:n { /color.fc { #1 ~ setcmykcolor } def } }
+ { \__color_backend_fill:n { cmyk ~ #1 } }
\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__kernel_backend_postscript:n { /color.fc { #1 ~ setgray } def } }
+ { \__color_backend_fill:n { gray ~ #1 } }
\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__kernel_backend_postscript:n { /color.fc { #1 ~ setrgbcolor } def } }
- \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
+ { \__color_backend_fill:n { rgb ~ #1 } }
+\cs_new_protected:Npn \__color_backend_fill:n #1
+ {
+ \__kernel_backend_literal:n { color~push~ #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
+\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
{ \__kernel_backend_postscript:n { /color.sc { #1 ~ setcmykcolor } def } }
\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
{ \__kernel_backend_postscript:n { /color.sc { #1 ~ setgray } def } }
\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
{ \__kernel_backend_postscript:n { /color.sc { #1 ~ setrgbcolor } def } }
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__kernel_backend_postscript:n { /color.fc { #1 } def } }
+ { \__color_backend_fill:n { separation ~ #1 ~ #2 } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__kernel_backend_postscript:n { /color.sc { #1 } def } }
+ { \__kernel_backend_postscript:n { /color.sc { separation ~ #1 ~ #2 } def } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
%% File: l3backend-box.dtx
@@ -436,14 +441,11 @@
}
\cs_new_protected:Npn \__draw_backend_fill:
{
- \__draw_backend_literal:n { gsave }
- \__draw_backend_literal:n { color.fc }
\__draw_backend_literal:x
{
\bool_if:NT \g__draw_draw_eor_bool { eo }
fill
}
- \__draw_backend_literal:n { grestore }
\bool_if:NT \g__draw_draw_clip_bool
{
\__draw_backend_literal:x
@@ -457,16 +459,15 @@
}
\cs_new_protected:Npn \__draw_backend_fillstroke:
{
- \__draw_backend_literal:n { gsave }
- \__draw_backend_literal:n { color.sc }
- \__draw_backend_literal:n { color.fc }
\__draw_backend_literal:x
{
\bool_if:NT \g__draw_draw_eor_bool { eo }
fill
}
- \__draw_backend_literal:n { grestore }
+ \__draw_backend_literal:n { gsave }
+ \__draw_backend_literal:n { color.sc }
\__draw_backend_literal:n { stroke }
+ \__draw_backend_literal:n { grestore }
\bool_if:NT \g__draw_draw_clip_bool
{
\__draw_backend_literal:x
@@ -904,29 +905,38 @@
/DEST
}
}
-\cs_new_protected:Npn \__pdf_backend_destination_box:nn #1#2
- {
- \group_begin:
- \hbox_set:Nn \l__pdf_internal_box {#2}
- \box_move_down:nn
- { \box_dp:N \l__pdf_internal_box }
- { \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } } }
- \box_use:N \l__pdf_internal_box
- \box_move_up:nn
- { \box_ht:N \l__pdf_internal_box }
- { \hbox:n { \__kernel_backend_postscript:n { pdf.save.ur } } }
- \__pdf_backend_pdfmark:n
- {
- /View
- [
- /FitR ~
- pdf.llx ~ pdf.lly ~ pdf.dest2device ~
- pdf.urx ~ pdf.ury ~ pdf.dest2device
- ]
- /Dest ( #1 ) cvn
- /DEST
- }
- \group_end:
+\cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4
+ {
+ \exp_args:Ne \__pdf_backend_destination_aux:nnnn
+ { \dim_eval:n {#2} } {#1} {#3} {#4}
+ }
+\cs_new_protected:Npn \__pdf_backend_destination_aux:nnnn #1#2#3#4
+ {
+ \vbox_to_zero:n
+ {
+ \tex_kern:D \dim_eval:n {#4} \scan_stop:
+ \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } }
+ \tex_vss:D
+ }
+ \tex_kern:D #1 \scan_stop:
+ \vbox_to_zero:n
+ {
+ \tex_kern:D \dim_eval:n { -#3 } \scan_stop:
+ \hbox:n { \__kernel_backend_postscript:n { pdf.save.ur } }
+ \tex_vss:D
+ }
+ \tex_kern:D -#1 \scan_stop:
+ \__pdf_backend_pdfmark:n
+ {
+ /View
+ [
+ /FitR ~
+ pdf.llx ~ pdf.lly ~ pdf.dest2device ~
+ pdf.urx ~ pdf.ury ~ pdf.dest2device
+ ]
+ /Dest ( #2 ) cvn
+ /DEST
+ }
}
\cs_new_protected:Npn \__pdf_backend_compresslevel:n #1
{
@@ -960,6 +970,26 @@
{ \__pdf_backend_pdfmark:n { /#1 ~ #2 /BDC } }
\cs_new_protected:Npn \__pdf_backend_emc:
{ \__pdf_backend_pdfmark:n { /EMC } }
+%% File: l3backend-opacity.dtx
+\cs_new_protected:Npn \__opacity_backend_select:n #1
+ {
+ \exp_args:Nx \__opacity_backend_select_aux:n
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_select_aux:n #1
+ {
+ \__kernel_backend_postscript:n
+ { #1 ~ .setfillconstantalpha ~ #1 ~ .setstrokeconstantalpha }
+ }
+\cs_new_protected:Npn \__opacity_backend_fill:n #1
+ { \__opacity_backend:xn { \fp_eval:n { min(max(0,#1),1) } } { fill } }
+\cs_new_protected:Npn \__opacity_backend_stroke:n #1
+ { \__opacity_backend:xn { \fp_eval:n { min(max(0,#1),1) } } { stroke } }
+\cs_new_protected:Npn \__opacity_backend:nn #1#2
+ {
+ \__kernel_backend_postscript:n { #1 ~ .set #2 constantalpha }
+ }
+\cs_generate_variant:Nn \__opacity_backend:nn { x }
%%
%%
%% End of file `l3backend-dvips.def'.
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
index 28a6be023e0..1f8ebeb0408 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -10,8 +10,9 @@
%% l3backend-draw.dtx (with options: `package,dvisvgm')
%% l3backend-graphics.dtx (with options: `package,dvisvgm')
%% l3backend-pdf.dtx (with options: `package,dvisvgm')
+%% l3backend-opacity.dtx (with options: `package,dvisvgm')
%%
-%% Copyright (C) 1990-2021 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvisvgm.def}{2021-01-09}{}
+ {l3backend-dvisvgm.def}{2020-01-29}{}
{L3 backend support: dvisvgm}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -125,63 +126,63 @@
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { }
\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnnnnn #1#2#3 { }
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__color_backend_cmyk:nw { fill } #1 \s__color_stop }
+ { \__color_backend_fill:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \__color_backend_fill_gray:n #1
+ { \__color_backend_fill:n { gray ~ #1 } }
+\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
+ { \__color_backend_fill:n { rgb ~ #1 } }
+\cs_new_protected:Npn \__color_backend_fill:n #1
+ {
+ \__kernel_backend_literal:n { color~push~ #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__color_backend_cmyk:nw { stroke } #1 \s__color_stop }
-\cs_new_protected:Npn \__color_backend_cmyk:nw
- #1#2 ~ #3 ~ #4 ~ #5 \s__color_stop
+ { \__color_backend_cmyk:w #1 \s__color_stop }
+\cs_new_protected:Npn \__color_backend_stroke_cmyk:w
+ #1 ~ #2 ~ #3 ~ #4 \s__color_stop
{
\use:x
{
- \__color_backend:nnnn
- {#1}
- { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #5 ) ) } }
- { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #5 ) ) } }
- { \fp_eval:n { -100 * ( 1 - min ( 1 , #4 + #5 ) ) } }
+ \__color_backend:nnn
+ { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } }
+ { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } }
+ { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } }
}
}
-\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__color_backend_grab:nn { fill } {#1} }
\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__color_backend_grab:nn { stroke } {#1} }
-\cs_new_protected:Npn \__color_backend_gray:nn #1#2
{
\use:x
{
- \__color_backend_gray_aux:nn
- {#1}
- { \fp_eval:n { 100 * (#2) } }
+ \__color_backend_stroke_gray_aux:n
+ { \fp_eval:n { 100 * (#1) } }
}
}
-\cs_new_protected:Npn \__color_backend_gray_aux:nn #1#2
- { \__color_backend:nnn {#1} {#2} {#2} {#2} }
-\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__color_backend_rgb:nw { fill } #1 \s__color_stop }
+\cs_new_protected:Npn \__color_backend_stroke_gray_aux:n #1
+ { \__color_backend:nnn {#1} {#1} {#1} }
\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__color_backend_rgb:nw { stroke } #1 \s__color_stop }
-\cs_new_protected:Npn \__color_backend_rgb:nw
- #1#2 ~ #3 ~ #4\s__color_stop
+ { \__color_backend_rgb:w #1 \s__color_stop }
+\cs_new_protected:Npn \__color_backend_stroke_rgb:w
+ #1 ~ #2 ~ #3 \s__color_stop
{
\use:x
{
- \__color_backend:nnnn
- { fill }
+ \__color_backend:nnn
+ { \fp_eval:n { 100 * (#1) } }
{ \fp_eval:n { 100 * (#2) } }
{ \fp_eval:n { 100 * (#3) } }
- { \fp_eval:n { 100 * (#4) } }
}
}
-\cs_new_protected:Npx \__color_backend:nnnn #1#2#3#4
+\cs_new_protected:Npx \__color_backend:nnn #1#2#3
{
\__kernel_backend_scope:n
{
- #1 =
+ stroke =
"
rgb
(
+ #1 \c_percent_str ,
#2 \c_percent_str ,
- #3 \c_percent_str ,
- #4 \c_percent_str
+ #3 \c_percent_str
)
"
}
@@ -524,6 +525,15 @@
\cs_new:Npn \__pdf_backend_version_minor: { -1 }
\cs_new_protected:Npn \__pdf_backend_bdc:nn #1#2 { }
\cs_new_protected:Npn \__pdf_backend_emc: { }
+%% File: l3backend-opacity.dtx
+\cs_new_protected:Npn \__opacity_backend_select:n #1
+ { \__opacity_backend:nn {#1} { } }
+\cs_new_protected:Npn \__opacity_backend_fill:n #1
+ { \__opacity_backend:nn {#1} { fill- } }
+\cs_new_protected:Npn \__opacity_backend_stroke:n #1
+ { \__opacity_backend:nn { {#1} } { stroke- } }
+\cs_new_protected:Npn \__opacity_backend:nn #1#2
+ { \__kernel_backend_scope:x { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } }
%%
%%
%% End of file `l3backend-dvisvgm.def'.
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
index 69caa65acef..1a5b246fa6b 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
@@ -10,8 +10,9 @@
%% l3backend-draw.dtx (with options: `package,luatex')
%% l3backend-graphics.dtx (with options: `package,luatex')
%% l3backend-pdf.dtx (with options: `package,luatex')
+%% l3backend-opacity.dtx (with options: `package,luatex')
%%
-%% Copyright (C) 1990-2021 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-luatex.def}{2021-01-09}{}
+ {l3backend-luatex.def}{2020-01-29}{}
{L3 backend support: PDF output (LuaTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -103,7 +104,8 @@
}
}
}
-\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+\int_new:N \l__color_backend_stack_int
+\cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3
{
\int_const:Nn #1
{
@@ -112,32 +114,36 @@
{#3}
}
}
-\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+\cs_new_protected:Npn \__color_backend_stack_push:nn #1#2
{
\tex_pdfextension:D colorstack ~
\int_eval:n {#1} ~ push ~ {#2}
}
-\cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+\cs_generate_variant:Nn \__color_backend_stack_push:nn { nx }
+\cs_new_protected:Npn \__color_backend_stack_pop:n #1
{
\tex_pdfextension:D colorstack ~
\int_eval:n {#1} ~ pop \scan_stop:
}
-\int_new:N \l__kernel_color_stack_int
+\tl_new:N \l__color_backend_fill_tl
+\tl_new:N \l__color_backend_stroke_tl
\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
- { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
+ { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_select_gray:n #1
- { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
+ { \__color_backend_select:nn { #1 ~ g } { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_select_rgb:n #1
- { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
-\cs_new_protected:Npn \__color_backend_select:n #1
+ { \__color_backend_select:nn { #1 ~ rg } { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_select:nn #1#2
{
- \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \tl_set:Nn \l__color_backend_stroke_tl {#2}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int { #1 ~ #2 }
\group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_reset:
- { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+ { \__color_backend_stack_pop:n \l__color_backend_stack_int }
\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
- { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
+ { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
{
@@ -245,21 +251,35 @@
}
\cs_new_eq:NN \__color_backend_devicen_init:n \__color_backend_separation_init:n
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ k } }
+ { \__color_backend_fill:n { #1 ~ k } }
\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ g } }
+ { \__color_backend_fill:n { #1 ~ g } }
\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ rg } }
- \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ K } }
+ { \__color_backend_fill:n { #1 ~ rg } }
+\cs_new_protected:Npn \__color_backend_fill:n #1
+ {
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { #1 ~ \l__color_backend_stroke_tl }
+ \group_insert_after:N \__color_backend_reset:
+ }
+\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
+ { \__color_backend_stroke:n { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ G } }
+ { \__color_backend_stroke:n { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ RG } }
+ { \__color_backend_stroke:n { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_stroke:n #1
+ {
+ \tl_set:Nn \l__color_backend_stroke_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { \l__color_backend_fill_tl \c_space_tl #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ cs ~ #2 ~ scn } }
+ { \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ CS ~ #2 ~ SCN } }
+ { \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
%% File: l3backend-box.dtx
@@ -594,18 +614,14 @@
{ xyz ~ zoom \fp_eval:n { #2 * 10 } }
\scan_stop:
}
-\cs_new_protected:Npn \__pdf_backend_destination_box:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4
{
- \group_begin:
- \hbox_set:Nn \l__pdf_internal_box {#2}
- \tex_pdfextension:D dest ~
- name {#1}
- fitr ~
- width \box_wd:N \l__pdf_internal_box
- height \box_ht:N \l__pdf_internal_box
- depth \box_dp:N \l__pdf_internal_box
- \box_use:N \l__pdf_internal_box
- \group_end:
+ \tex_pdfextension:D dest ~
+ name {#1}
+ fitr ~
+ width \dim_eval:n {#2} ~
+ height \dim_eval:n {#3} ~
+ depth \dim_eval:n {#4} \scan_stop:
}
\cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2
{
@@ -735,6 +751,69 @@
{ \__kernel_backend_literal_page:n { /#1 ~ #2 ~ BDC } }
\cs_new_protected:Npn \__pdf_backend_emc:
{ \__kernel_backend_literal_page:n { EMC } }
+%% File: l3backend-opacity.dtx
+\cs_if_exist:NT \pdfmanagement_add:nnn
+ {
+ \__kernel_color_backend_stack_init:Nnn \c__opacity_backend_stack_int
+ { page ~ direct } { /opacity 1 ~ gs }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
+ }
+\tl_new:N \l__opacity_backend_fill_tl
+\tl_new:N \l__opacity_backend_stroke_tl
+\cs_new_protected:Npn \__opacity_backend_select:n #1
+ {
+ \exp_args:Nx \__opacity_backend_select_aux:n
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_select_aux:n #1
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#1}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity #1 }
+ { << /ca ~ #1 /CA ~ #1 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity #1 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+\cs_if_exist:NF \pdfmanagement_add:nnn
+ {
+ \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
+ }
+\cs_new_protected:Npn \__opacity_backend_reset:
+ { \__opacity_backend_stack_pop:n \c__opacity_backend_stack_int }
+\cs_new_protected:Npn \__opacity_backend_fill:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ { \fp_eval:n { min(max(0,#1),1) } }
+ \l__opacity_backend_stroke_tl
+ }
+\cs_new_protected:Npn \__opacity_backend_stroke:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ \l__opacity_backend_fill_tl
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_fill_stroke:nn #1#2
+ {
+ \str_if_eq:nnTF {#1} {#2}
+ { \__opacity_backend_select_aux:n {#1} }
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#2}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.fill #1 }
+ { << /ca ~ #1 >> }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.stroke #1 }
+ { << /CA ~ #2 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+ }
+\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx }
%%
%%
%% End of file `l3backend-luatex.def'.
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
index ec7b463b0a5..1c1e221a1f0 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
@@ -10,8 +10,9 @@
%% l3backend-draw.dtx (with options: `package,pdftex')
%% l3backend-graphics.dtx (with options: `package,pdftex')
%% l3backend-pdf.dtx (with options: `package,pdftex')
+%% l3backend-opacity.dtx (with options: `package,pdftex')
%%
-%% Copyright (C) 1990-2021 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-pdftex.def}{2021-01-09}{}
+ {l3backend-pdftex.def}{2020-01-29}{}
{L3 backend support: PDF output (pdfTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -103,7 +104,8 @@
}
}
}
-\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+\int_new:N \l__color_backend_stack_int
+\cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3
{
\int_const:Nn #1
{
@@ -112,32 +114,36 @@
{#3}
}
}
-\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+\cs_new_protected:Npn \__color_backend_stack_push:nn #1#2
{
\tex_pdfcolorstack:D
\int_eval:n {#1} ~ push ~ {#2}
}
-\cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+\cs_generate_variant:Nn \__color_backend_stack_push:nn { nx }
+\cs_new_protected:Npn \__color_backend_stack_pop:n #1
{
\tex_pdfcolorstack:D
\int_eval:n {#1} ~ pop \scan_stop:
}
-\int_new:N \l__kernel_color_stack_int
+\tl_new:N \l__color_backend_fill_tl
+\tl_new:N \l__color_backend_stroke_tl
\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
- { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
+ { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_select_gray:n #1
- { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
+ { \__color_backend_select:nn { #1 ~ g } { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_select_rgb:n #1
- { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
-\cs_new_protected:Npn \__color_backend_select:n #1
+ { \__color_backend_select:nn { #1 ~ rg } { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_select:nn #1#2
{
- \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \tl_set:Nn \l__color_backend_stroke_tl {#2}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int { #1 ~ #2 }
\group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_reset:
- { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+ { \__color_backend_stack_pop:n \l__color_backend_stack_int }
\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
- { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
+ { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
{
@@ -245,21 +251,35 @@
}
\cs_new_eq:NN \__color_backend_devicen_init:n \__color_backend_separation_init:n
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ k } }
+ { \__color_backend_fill:n { #1 ~ k } }
\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ g } }
+ { \__color_backend_fill:n { #1 ~ g } }
\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ rg } }
- \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ K } }
+ { \__color_backend_fill:n { #1 ~ rg } }
+\cs_new_protected:Npn \__color_backend_fill:n #1
+ {
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { #1 ~ \l__color_backend_stroke_tl }
+ \group_insert_after:N \__color_backend_reset:
+ }
+\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
+ { \__color_backend_stroke:n { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ G } }
+ { \__color_backend_stroke:n { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ RG } }
+ { \__color_backend_stroke:n { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_stroke:n #1
+ {
+ \tl_set:Nn \l__color_backend_stroke_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { \l__color_backend_fill_tl \c_space_tl #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ cs ~ #2 ~ scn } }
+ { \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ CS ~ #2 ~ SCN } }
+ { \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
%% File: l3backend-box.dtx
@@ -594,18 +614,14 @@
{ xyz ~ zoom \fp_eval:n { #2 * 10 } }
\scan_stop:
}
-\cs_new_protected:Npn \__pdf_backend_destination_box:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4
{
- \group_begin:
- \hbox_set:Nn \l__pdf_internal_box {#2}
- \tex_pdfdest:D
- name {#1}
- fitr ~
- width \box_wd:N \l__pdf_internal_box
- height \box_ht:N \l__pdf_internal_box
- depth \box_dp:N \l__pdf_internal_box
- \box_use:N \l__pdf_internal_box
- \group_end:
+ \tex_pdfdest:D
+ name {#1}
+ fitr ~
+ width \dim_eval:n {#2} ~
+ height \dim_eval:n {#3} ~
+ depth \dim_eval:n {#4} \scan_stop:
}
\cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2
{
@@ -735,6 +751,69 @@
{ \__kernel_backend_literal_page:n { /#1 ~ #2 ~ BDC } }
\cs_new_protected:Npn \__pdf_backend_emc:
{ \__kernel_backend_literal_page:n { EMC } }
+%% File: l3backend-opacity.dtx
+\cs_if_exist:NT \pdfmanagement_add:nnn
+ {
+ \__kernel_color_backend_stack_init:Nnn \c__opacity_backend_stack_int
+ { page ~ direct } { /opacity 1 ~ gs }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
+ }
+\tl_new:N \l__opacity_backend_fill_tl
+\tl_new:N \l__opacity_backend_stroke_tl
+\cs_new_protected:Npn \__opacity_backend_select:n #1
+ {
+ \exp_args:Nx \__opacity_backend_select_aux:n
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_select_aux:n #1
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#1}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity #1 }
+ { << /ca ~ #1 /CA ~ #1 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity #1 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+\cs_if_exist:NF \pdfmanagement_add:nnn
+ {
+ \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
+ }
+\cs_new_protected:Npn \__opacity_backend_reset:
+ { \__opacity_backend_stack_pop:n \c__opacity_backend_stack_int }
+\cs_new_protected:Npn \__opacity_backend_fill:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ { \fp_eval:n { min(max(0,#1),1) } }
+ \l__opacity_backend_stroke_tl
+ }
+\cs_new_protected:Npn \__opacity_backend_stroke:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ \l__opacity_backend_fill_tl
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_fill_stroke:nn #1#2
+ {
+ \str_if_eq:nnTF {#1} {#2}
+ { \__opacity_backend_select_aux:n {#1} }
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#2}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.fill #1 }
+ { << /ca ~ #1 >> }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.stroke #1 }
+ { << /CA ~ #2 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+ }
+\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx }
%%
%%
%% End of file `l3backend-pdftex.def'.
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
index 9c90ca0c6fc..d9bf8704302 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
@@ -10,8 +10,9 @@
%% l3backend-draw.dtx (with options: `package,xetex')
%% l3backend-graphics.dtx (with options: `package,xetex')
%% l3backend-pdf.dtx (with options: `package,xetex')
+%% l3backend-opacity.dtx (with options: `package,xetex')
%%
-%% Copyright (C) 1990-2021 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-xetex.def}{2021-01-09}{}
+ {l3backend-xetex.def}{2020-01-29}{}
{L3 backend support: XeTeX}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -90,25 +91,44 @@
\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
{ \tl_set:Nn #3 { {#1} {#2} } }
}
-\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+\int_new:N \l__color_backend_stack_int
+\int_compare:nNnTF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ { \cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3 { } }
{
- \int_new:N \g__color_stack_int
- \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+ \int_new:N \g__color_backend_stack_int
+ \cs_new_protected:Npx \__kernel_color_backend_stack_init:Nnn #1#2#3
{
- \int_gincr:N \g__color_stack_int
- \int_const:Nn #1 { \g__color_stack_int }
- \__kernel_backend_literal:x
+ \int_gincr:N \exp_not:N \g__color_backend_stack_int
+ \int_const:Nn #1 { \exp_not:N \g__color_backend_stack_int }
+ \cs_if_exist:NTF \AtBeginDvi
+ { \exp_not:N \AtBeginDvi }
+ { \exp_not:N \use:n }
{
- pdfcolorstackinit ~
- \int_use:N \g__color_stack_int \c_space_tl
- \tl_if_blank:nF {#2} { #2 ~ }
- (#3)
+ \__kernel_backend_literal:x
+ {
+ pdfcolorstackinit ~
+ \exp_not:N \int_use:N \exp_not:N \g__color_backend_stack_int
+ \c_space_tl
+ \exp_not:N \tl_if_blank:nF {#2} { #2 ~ }
+ (#3)
+ }
}
}
+ \cs_if_exist:cTF { main@pdfcolorstack }
+ {
+ \int_set:Nn \l__color_backend_stack_int
+ { \int_use:c { main@pdfcolorstack } }
+ }
+ {
+ \__kernel_color_backend_stack_init:Nnn \c__color_backend_main_stack_int
+ { page ~ direct } { 0 ~ g ~ 0 ~ G }
+ \int_set_eq:NN \l__color_backend_stack_int
+ \c__color_backend_main_stack_int
+ }
}
\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
{
- \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+ \cs_new_protected:Npn \__color_backend_stack_push:nn #1#2
{
\__kernel_backend_literal:x
{
@@ -117,7 +137,8 @@
push ~ (#2)
}
}
- \cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+ \cs_generate_variant:Nn \__color_backend_stack_push:nn { nx }
+ \cs_new_protected:Npn \__color_backend_stack_pop:n #1
{
\__kernel_backend_literal:x
{
@@ -127,20 +148,23 @@
}
}
}
-\int_new:N \l__kernel_color_stack_int
+\tl_new:N \l__color_backend_fill_tl
+\tl_new:N \l__color_backend_stroke_tl
\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
- { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
+ { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_select_gray:n #1
- { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
+ { \__color_backend_select:nn { #1 ~ g } { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_select_rgb:n #1
- { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
-\cs_new_protected:Npn \__color_backend_select:n #1
+ { \__color_backend_select:nn { #1 ~ rg } { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_select:nn #1#2
{
- \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \tl_set:Nn \l__color_backend_stroke_tl {#2}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int { #1 ~ #2 }
\group_insert_after:N \__color_backend_reset:
}
\cs_new_protected:Npn \__color_backend_reset:
- { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+ { \__color_backend_stack_pop:n \l__color_backend_stack_int }
\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
{
\cs_gset_protected:Npn \__color_backend_select_cmyk:n #1
@@ -154,7 +178,7 @@
{ \__kernel_backend_literal:n { pdf: ec } }
}
\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
- { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
+ { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn } { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
\cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
{
@@ -261,24 +285,65 @@
{ \__color_backend_devicen_init:w #2 \s__color_stop }
}
\cs_new_eq:NN \__color_backend_devicen_init:n \__color_backend_separation_init:n
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ {
+ \cs_gset_protected:Npn \__color_backend_select_separation:nn #1#2 { }
+ \cs_gset_eq:NN \__color_backend_select_devicen:nn
+ \__color_backend_select_separation:nn
+ }
\cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ k } }
+ { \__color_backend_fill:n { #1 ~ k } }
\cs_new_protected:Npn \__color_backend_fill_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ g } }
+ { \__color_backend_fill:n { #1 ~ g } }
\cs_new_protected:Npn \__color_backend_fill_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ rg } }
- \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ K } }
+ { \__color_backend_fill:n { #1 ~ rg } }
+\cs_new_protected:Npn \__color_backend_fill:n #1
+ {
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { #1 ~ \l__color_backend_stroke_tl }
+ \group_insert_after:N \__color_backend_reset:
+ }
+\cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
+ { \__color_backend_stroke:n { #1 ~ K } }
\cs_new_protected:Npn \__color_backend_stroke_gray:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ G } }
+ { \__color_backend_stroke:n { #1 ~ G } }
\cs_new_protected:Npn \__color_backend_stroke_rgb:n #1
- { \__kernel_backend_literal_pdf:n { #1 ~ RG } }
+ { \__color_backend_stroke:n { #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_stroke:n #1
+ {
+ \tl_set:Nn \l__color_backend_stroke_tl {#1}
+ \__color_backend_stack_push:nn \l__color_backend_stack_int
+ { \l__color_backend_fill_tl \c_space_tl #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
\cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ cs ~ #2 ~ scn } }
+ { \__color_backend_fill:n { /#1 ~ cs ~ #2 ~ scn } }
\cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2
- { \__kernel_backend_literal_pdf:n { /#1 ~ CS ~ #2 ~ SCN } }
+ { \__color_backend_stroke:n { /#1 ~ CS ~ #2 ~ SCN } }
\cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn
\cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+ {
+ \cs_gset_protected:Npn \__color_backend_fill_cmyk:n #1
+ {
+ \__kernel_backend_literal:n { pdf: bc ~ [#1] }
+ \group_insert_after:N \__color_backend_reset:
+ }
+ \cs_gset_eq:NN \__color_backend_fill_gray:n \__color_backend_fill_cmyk:n
+ \cs_gset_eq:NN \__color_backend_fill_rgb:n \__color_backend_fill_cmyk:n
+ \cs_gset_protected:Npn \__color_backend_reset:
+ { \__kernel_backend_literal:n { pdf: ec } }
+ \cs_gset_protected:Npn \__color_backend_stroke:n #1
+ { \__kernel_backend_literal:n {#1} }
+ \cs_gset_protected:Npn \__color_backend_fill_separation:nn #1#2 { }
+ \cs_gset_eq:NN \__color_backend_fill_devicen:nn
+ \__color_backend_fill_separation:nn
+ \cs_gset_eq:NN \__color_backend_stroke_separation:nn
+ \__color_backend_fill_separation:nn
+ \cs_gset_eq:NN \__color_backend_stroke_devicen:nn
+ \__color_backend_stroke_separation:nn
+ }
%% File: l3backend-box.dtx
\cs_new_protected:Npn \__box_backend_clip:N #1
{
@@ -800,36 +865,43 @@
]
}
}
-\cs_new_protected:Npn \__pdf_backend_destination_box:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4
{
- \group_begin:
- \hbox_set:Nn \l__pdf_internal_box {#2}
- \box_move_down:nn { \box_dp:N \l__pdf_internal_box }
- {
- \hbox:n
- {
- \__pdf_backend:n { obj ~ @pdf_ #1 _llx ~ @xpos }
- \__pdf_backend:n { obj ~ @pdf_ #1 _lly ~ @ypos }
- }
- }
- \box_use:N \l__pdf_internal_box
- \box_move_up:nn { \box_ht:N \l__pdf_internal_box }
- {
- \hbox:n
- {
- \__pdf_backend:n
- {
- dest ~ (#1)
- [
- @thispage
- /FitR ~
- @pdf_ #1 _llx ~ @pdf_ #1 _lly ~
- @xpos ~ @ypos
- ]
- }
- }
- }
- \group_end:
+ \exp_args:Ne \__pdf_backend_destination_aux:nnnn
+ { \dim_eval:n {#2} } {#1} {#3} {#4}
+ }
+\cs_new_protected:Npn \__pdf_backend_destination_aux:nnnn #1#2#3#4
+ {
+ \vbox_to_zero:n
+ {
+ \tex_kern:D \dim_eval:n {#4} \scan_stop:
+ \hbox:n
+ {
+ \__pdf_backend:n { obj ~ @pdf_ #2 _llx ~ @xpos }
+ \__pdf_backend:n { obj ~ @pdf_ #2 _lly ~ @ypos }
+ }
+ \tex_vss:D
+ }
+ \tex_kern:D #1 \scan_stop:
+ \vbox_to_zero:n
+ {
+ \tex_kern:D \dim_eval:n { -#3 } \scan_stop:
+ \hbox:n
+ {
+ \__pdf_backend:n
+ {
+ dest ~ (#2)
+ [
+ @thispage
+ /FitR ~
+ @pdf_ #2 _llx ~ @pdf_ #2 _lly ~
+ @xpos ~ @ypos
+ ]
+ }
+ }
+ \tex_vss:D
+ }
+ \tex_kern:D -#1 \scan_stop:
}
\cs_new_protected:Npn \__pdf_backend_compresslevel:n #1
{ \__kernel_backend_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
@@ -854,6 +926,69 @@
{ \__kernel_backend_literal_page:n { /#1 ~ #2 ~ BDC } }
\cs_new_protected:Npn \__pdf_backend_emc:
{ \__kernel_backend_literal_page:n { EMC } }
+%% File: l3backend-opacity.dtx
+\cs_if_exist:NT \pdfmanagement_add:nnn
+ {
+ \__kernel_color_backend_stack_init:Nnn \c__opacity_backend_stack_int
+ { page ~ direct } { /opacity 1 ~ gs }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity 1 } { << /ca ~ 1 /CA ~ 1 >> }
+ }
+\tl_new:N \l__opacity_backend_fill_tl
+\tl_new:N \l__opacity_backend_stroke_tl
+\cs_new_protected:Npn \__opacity_backend_select:n #1
+ {
+ \exp_args:Nx \__opacity_backend_select_aux:n
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_select_aux:n #1
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#1}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity #1 }
+ { << /ca ~ #1 /CA ~ #1 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity #1 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+\cs_if_exist:NF \pdfmanagement_add:nnn
+ {
+ \cs_gset_protected:Npn \__opacity_backend_select_aux:n #1 { }
+ }
+\cs_new_protected:Npn \__opacity_backend_reset:
+ { \__opacity_backend_stack_pop:n \c__opacity_backend_stack_int }
+\cs_new_protected:Npn \__opacity_backend_fill:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ { \fp_eval:n { min(max(0,#1),1) } }
+ \l__opacity_backend_stroke_tl
+ }
+\cs_new_protected:Npn \__opacity_backend_stroke:n #1
+ {
+ \__opacity_backend_fill_stroke:xx
+ \l__opacity_backend_fill_tl
+ { \fp_eval:n { min(max(0,#1),1) } }
+ }
+\cs_new_protected:Npn \__opacity_backend_fill_stroke:nn #1#2
+ {
+ \str_if_eq:nnTF {#1} {#2}
+ { \__opacity_backend_select_aux:n {#1} }
+ {
+ \tl_set:Nn \l__opacity_backend_fill_tl {#1}
+ \tl_set:Nn \l__opacity_backend_stroke_tl {#2}
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.fill #1 }
+ { << /ca ~ #1 >> }
+ \pdfmanagement_add:nnn { Page / Resources / ExtGState }
+ { opacity.stroke #1 }
+ { << /CA ~ #2 >> }
+ \__opacity_backend_stack_push:nn \c__opacity_backend_stack_int
+ { /opacity.fill #1 ~ gs /opacity.stroke #2 ~ gs }
+ \group_insert_after:N \__opacity_backend_reset:
+ }
+ }
+\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx }
%%
%%
%% End of file `l3backend-xetex.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index f25673ab551..85981d16f38 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
@@ -6,7 +6,7 @@
%%
%% l3benchmark.dtx (with options: `package')
%%
-%% Copyright (C) 2018-2020 The LaTeX3 Project
+%% Copyright (C) 2018-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: l3benchmark.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2020-10-27}{}
+\ProvidesExplPackage{l3benchmark}{2020-01-29}{}
{L3 Experimental benchmarking}
\sys_if_engine_luatex:TF
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
new file mode 100644
index 00000000000..df0bdb61709
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
@@ -0,0 +1,234 @@
+%%
+%% This is file `l3bitset.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3bitset.dtx (with options: `package')
+%%
+%% Copyright (C) 2020 The LaTeX3 Project
+%%
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version. The latest
+%% version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% File: l3bitset.dtx
+\ProvidesExplPackage{l3bitset}{2020-01-29}{}
+ {L3 Experimental bitset support}
+\cs_new_protected:Npn \bitset_new:N #1
+ {
+ \__kernel_chk_if_free_cs:N #1
+ \cs_gset_eq:NN #1 \c_zero_str
+ \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
+ }
+
+\cs_new_protected:Npn \bitset_new:Nn #1 #2
+ {
+ \__kernel_chk_if_free_cs:N #1
+ \cs_gset_eq:NN #1 \c_zero_str
+ \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
+ \prop_gset_from_keyval:cn
+ { g__bitset_ \cs_to_str:N #1 _name_prop }
+ {#2}
+ }
+\cs_generate_variant:Nn \bitset_new:N { c }
+\prop_new:N \l__bitset_tmpa_prop
+\cs_new_protected:Npn \bitset_addto_named_index:Nn #1#2
+ {
+ \prop_set_from_keyval:Nn \l__bitset_tmpa_prop {#2}
+ \prop_map_inline:Nn \l__bitset_tmpa_prop
+ {
+ \prop_gput:cnn
+ { g__bitset_ \cs_to_str:N #1 _name_prop }
+ {##1}
+ {##2}
+ }
+ }
+\prg_new_eq_conditional:NNn
+ \bitset_if_exist:N \str_if_exist:N { p , T , F , TF }
+\prg_new_eq_conditional:NNn
+ \bitset_if_exist:c \str_if_exist:c
+ { p , T , F , TF }
+\cs_new_protected:Npn \__bitset_set_true:Nn #1#2
+ { \__bitset_set:NNnN \str_set:Nx #1 {#2} 1 }
+\cs_new_protected:Npn \__bitset_gset_true:Nn #1#2
+ { \__bitset_set:NNnN \str_gset:Nx #1 {#2} 1 }
+\cs_new_protected:Npn \__bitset_set_false:Nn #1#2
+ { \__bitset_set:NNnN \str_set:Nx #1 {#2} 0 }
+\cs_new_protected:Npn \__bitset_gset_false:Nn #1#2
+ { \__bitset_set:NNnN \str_gset:Nx #1 {#2} 0 }
+\cs_new_protected:Npn \__bitset_set:NNnN #1#2#3#4
+ {
+ \int_compare:nNnT {#3} > { 0 }
+ {
+ \int_compare:nNnTF { \str_count:N #2 } < {#3}
+ {
+ #1 #2
+ {
+ #4
+ \prg_replicate:nn { #3 - \str_count:N #2 - 1 } { 0 }
+ #2
+ }
+ }
+ {
+ #1 #2
+ {
+ \str_range:Nnn #2 { 1 } { -1 - (#3) }
+ #4
+ \str_range:Nnn #2 { 1 - (#3) } { -1 }
+ }
+ }
+ }
+ }
+\int_new:N \l__bitset_internal_int
+\prg_new_protected_conditional:Npnn \__bitset_test_digits:n #1 { TF }
+ {
+ \tex_afterassignment:D \__bitset_test_digits:w
+ \l__bitset_internal_int = 0 \tl_trim_spaces_apply:nN {#1} \tl_to_str:n
+ \__bitset_test_digits_end:
+ \use_i:nnn \if_false:
+ \__bitset_test_digits_end:
+ \if_int_compare:w \c_zero_int < \l__bitset_internal_int
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
+\cs_new_eq:NN \__bitset_test_digits_end: \exp_stop_f:
+\cs_new_protected:Npn \__bitset_test_digits:w #1 \__bitset_test_digits_end: { }
+\cs_new_protected:Npn \bitset_set_true:Nn #1#2
+ { \__bitset_set:NNn \__bitset_set_true:Nn #1 {#2} }
+\cs_new_protected:Npn \bitset_gset_true:Nn #1#2
+ { \__bitset_set:NNn \__bitset_gset_true:Nn #1 {#2} }
+\cs_new_protected:Npn \bitset_set_false:Nn #1#2
+ { \__bitset_set:NNn \__bitset_set_false:Nn #1 {#2} }
+\cs_new_protected:Npn \bitset_gset_false:Nn #1#2
+ { \__bitset_set:NNn \__bitset_gset_false:Nn #1 {#2} }
+\cs_new_protected:Npn \__bitset_set:NNn #1#2#3
+ {
+ \prop_if_in:cnTF { g__bitset_ \cs_to_str:N #2 _name_prop } {#3}
+ {
+ #1 #2
+ {
+ \prop_item:cn { g__bitset_ \cs_to_str:N #2 _name_prop } {#3}
+ }
+ }
+ {
+ \__bitset_test_digits:nTF {#3}
+ {
+ #1 #2 {#3}
+ \prop_gput:cnn { g__bitset_ \cs_to_str:N #2 _name_prop } {#3} {#3}
+ }
+ {
+ \__kernel_msg_warning:nnxx { bitset } { bitset-unknown-name }
+ { \token_to_str:N #2 }
+ { \tl_to_str:n {#3} }
+ }
+ }
+ }
+\cs_generate_variant:Nn \bitset_set_true:Nn { c }
+\cs_generate_variant:Nn \bitset_gset_true:Nn { c }
+\cs_generate_variant:Nn \bitset_set_false:Nn { c }
+\cs_generate_variant:Nn \bitset_gset_false:Nn { c }
+\cs_new_protected:Npn \bitset_clear:N #1
+ {
+ \str_set_eq:NN #1 \c_zero_str
+ }
+\cs_new_protected:Npn \bitset_gclear:N #1
+ {
+ \str_gset_eq:NN #1 \c_zero_str
+ }
+\cs_generate_variant:Nn \bitset_clear:N { c }
+\cs_generate_variant:Nn \bitset_gclear:N { c }
+\cs_new:Npn \bitset_to_arabic:N #1
+ {
+ \int_compare:nNnTF { \str_count:N #1 } < { 32 }
+ { \exp_args:No \int_from_bin:n {#1} }
+ {
+ \exp_after:wN \__bitset_to_int:nN \exp_after:wN 0
+ #1 \q_recursion_tail \q_recursion_stop
+ }
+ }
+
+\cs_new:Npn \__bitset_to_int:nN #1#2
+ {
+ \quark_if_recursion_tail_stop_do:Nn #2 {#1}
+ \exp_args:Nf \__bitset_to_int:nN { \fp_eval:n { #1 * 2 + #2 } }
+ }
+
+\cs_new:Npn \bitset_to_bin:N #1
+ {
+ #1
+ }
+\cs_generate_variant:Nn \bitset_to_arabic:N { c }
+\cs_generate_variant:Nn \bitset_to_bin:N { c }
+\cs_new:Npn \bitset_item:Nn #1#2
+ {
+ \prop_if_in:cnTF { g__bitset_ \cs_to_str:N #1 _name_prop } {#2}
+ {
+ \int_eval:n
+ {
+ \str_item:Nn #1
+ { 0 - ( \prop_item:cn { g__bitset_ \cs_to_str:N #1 _name_prop } {#2} ) }
+ +0
+ }
+ }
+ {
+ 0
+ }
+ }
+\cs_generate_variant:Nn \bitset_item:Nn { c }
+
+\cs_new_protected:Npn \bitset_show:N { \__bitset_show:NN \msg_show:nnxxxx }
+\cs_generate_variant:Nn \bitset_show:N { c }
+\cs_new_protected:Npn \bitset_log:N { \__bitset_show:NN \msg_log:nnxxxx }
+\cs_generate_variant:Nn \bitset_log:N { c }
+\cs_new_protected:Npn \bitset_show_named_index:N { \__bitset_show_named_index:NN \msg_show:nnxxxx }
+\cs_generate_variant:Nn \bitset_show_named_index:N { c }
+\cs_new_protected:Npn \__bitset_show:NN #1#2
+ {
+ \__kernel_chk_defined:NT #2
+ {
+ #1 { LaTeX/bitset } { show-bitset }
+ { \token_to_str:N #2 }
+ { \bitset_to_bin:N #2 }
+ { \bitset_to_arabic:N #2 }
+ { }
+ }
+ }
+\cs_new_protected:Npn \__bitset_show_named_index:NN #1#2
+ {
+ \__kernel_chk_defined:NT #2
+ {
+ #1 { LaTeX/bitset } { show-names }
+ { \token_to_str:N #2 }
+ { \prop_map_function:cN { g__bitset_ \cs_to_str:N #2 _name_prop } \msg_show_item:nn }
+ { }
+ { }
+ }
+ }
+ \__kernel_msg_new:nnn { bitset } { show-bitset }
+ {
+ The~bitset~#1~has~the~representation: \\
+ >~binary:~#2 \\
+ >~arabic:~#3 .
+ }
+\__kernel_msg_new:nnn { bitset } { show-names }
+ {
+ The~bitset~#1~
+ \tl_if_empty:nTF {#2}
+ { knows~no~names~yet \\>~ . }
+ { knows~the~name/index~pairs~(without~outer~braces): #2 . }
+ }
+\__kernel_msg_new:nnn { bitset } { bitset-unknown-name }
+ { The~name~'#2'~is~unknown~for~bitset~\tl_to_str:n {#1} }
+
+%%
+%%
+%% End of file `l3bitset.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
index 6eb28eca242..e4e2fde1c93 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
@@ -6,7 +6,7 @@
%%
%% l3color.dtx (with options: `package')
%%
-%% Copyright (C) 2017-2020 The LaTeX3 Project
+%% Copyright (C) 2017-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: l3color.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3color}{2020-10-27}{}
+\ProvidesExplPackage{l3color}{2020-01-29}{}
{L3 Experimental color support}
\int_new:N \l__color_internal_int
\tl_new:N \l__color_internal_tl
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index ecc7791c0da..fe13d4d5347 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -14,7 +14,7 @@
%% l3draw-state.dtx (with options: `package')
%% l3draw-transforms.dtx (with options: `package')
%%
-%% Copyright (C) 2018-2020 The LaTeX3 Project
+%% Copyright (C) 2018-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -28,7 +28,7 @@
%%
%% File: l3draw.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2020-10-27}{}
+\ProvidesExplPackage{l3draw}{2020-01-29}{}
{L3 Experimental core drawing support}
\RequirePackage { l3color }
\scan_new:N \s__draw_mark
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index 533b62e1b12..b8baaccfa7c 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
@@ -6,7 +6,7 @@
%%
%% l3graphics.dtx (with options: `package')
%%
-%% Copyright (C) 2019,2020 The LaTeX3 Project
+%% Copyright (C) 2019-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: l3graphics.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2020-10-27}{}
+\ProvidesExplPackage{l3graphics}{2020-01-29}{}
{L3 Experimental graphics inclusion support}
\ior_new:N \l__graphics_tmp_ior
\tl_new:N \l__graphics_tmp_tl
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
index c7d232ad352..08b7db7f24f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
@@ -6,7 +6,7 @@
%%
%% l3pdf.dtx (with options: `package')
%%
-%% Copyright (C) 2019,2020 The LaTeX3 Project
+%% Copyright (C) 2019-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: l3pdf.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3pdf}{2020-10-27}{}
+\ProvidesExplPackage{l3pdf}{2020-01-29}{}
{L3 Experimental core PDF support}
\scan_new:N \s__pdf_stop
\bool_new:N \g__pdf_init_bool
@@ -106,6 +106,13 @@
{ \__pdf_backend_version_major: . \__pdf_backend_version_minor: }
\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_destination:nn #1 #2
+ { \__pdf_backend_destination:nn {#1}{#2} }
+\cs_new_protected:Npn \pdf_destination:nnnn #1 #2 #3 #4
+ {
+ \hbox_to_zero:n
+ { \__pdf_backend_destination:nnnn {#1} {#2} {#3} {#4} }
+ }
%%
%%
%% End of file `l3pdf.sty'.
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 3d392de62fc..bfad5070e53 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -6,7 +6,7 @@
%%
%% l3str-format.dtx (with options: `package')
%%
-%% Copyright (C) 2011-2020 The LaTeX3 Project
+%% Copyright (C) 2011-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2020-10-27}{}
+\ProvidesExplPackage{l3str-format}{2020-01-29}{}
{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 6aaa332685f..77dacbd1104 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
@@ -6,7 +6,7 @@
%%
%% l3sys-shell.dtx (with options: `package')
%%
-%% Copyright (C) 2018-2020 The LaTeX3 Project
+%% Copyright (C) 2018-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: l3sys-shell.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2020-10-27}{}
+\ProvidesExplPackage{l3sys-shell}{2020-01-29}{}
{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 84a58c3a145..43e8b940b96 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -6,7 +6,7 @@
%%
%% xcoffins.dtx (with options: `package')
%%
-%% Copyright (C) 2010-2020 The LaTeX3 Project
+%% Copyright (C) 2010-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: xcoffins.dtx
\RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2020-10-27}{}
+\ProvidesExplPackage{xcoffins}{2020-01-29}{}
{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 8c1b8b6834a..5b613332f83 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -6,7 +6,7 @@
%%
%% l3galley.dtx (with options: `package')
%%
-%% Copyright (C) 2010-2020 The LaTeX3 Project
+%% Copyright (C) 2010-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2020-10-27}{}
+\ProvidesExplPackage{l3galley}{2020-01-29}{}
{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 d040fcdbc45..77a5e039e4f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -6,7 +6,7 @@
%%
%% xgalley.dtx (with options: `package')
%%
-%% Copyright (C) 2010-2020 The LaTeX3 Project
+%% Copyright (C) 2010-2021 The LaTeX Project
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -20,7 +20,7 @@
%%
%% File: xgalley.dtx
\RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2020-10-27}{}
+\ProvidesExplPackage{xgalley}{2020-01-29}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist