[latex3-commits] [git/LaTeX3-latex3-pdfresources] backendtest: corrected pgf patches (3b9865f)
Ulrike Fischer
fischer at troubleshooting-tex.de
Mon Aug 26 23:56:21 CEST 2019
Repository : https://github.com/latex3/pdfresources
On branch : backendtest
Link : https://github.com/latex3/pdfresources/commit/3b9865f5dc0cc7add5e8fd2d327d3de041d1c3b6
>---------------------------------------------------------------
commit 3b9865f5dc0cc7add5e8fd2d327d3de041d1c3b6
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Mon Aug 26 23:56:21 2019 +0200
corrected pgf patches
>---------------------------------------------------------------
3b9865f5dc0cc7add5e8fd2d327d3de041d1c3b6
pdfresources.dtx | 99 ++++++++++------
.../extgstate-patches.pdftex.tpf | 129 +++++++++-----------
testfiles-noxetex/extgstate-patches.pvt | 25 ++++
.../extgstate-patches.tpf | 131 ++++++++++-----------
testfiles-pool/extgstate-patches.pvt | 13 +-
5 files changed, 215 insertions(+), 182 deletions(-)
diff --git a/pdfresources.dtx b/pdfresources.dtx
index 72d624d..658a06b 100644
--- a/pdfresources.dtx
+++ b/pdfresources.dtx
@@ -93,6 +93,8 @@
% \begin{macrocode}
\msg_new:nnn { pdf } { patches }
{ loading~patch~code }
+\msg_new:nnn { pdf } { pgf-too-late }
+ { pgf~is~already~loaded.~Patching~not~possible.}
\msg_new:nnn { pdf } { empty-value }
{ The~value~for~#1~is~empty~and~will~be~ignored }
\msg_new:nnn { pdf } { wrong-path }
@@ -2669,12 +2671,61 @@
% ColorSpace and Pattern (Shadings are added to the xform resources and so probably
% unproblematic for now).
% \begin{macrocode}
+% patches for xetex/dvips doesn't make much sense for colorspace and
+% transparent. But pgf should be tested sometime.
+% currently only pdftex/luatex is handled here.
\bool_if:nT { !\g_@@_patches_bool || \sys_if_output_dvi_p: }
{
\file_input_stop:
}
-\msg_info:nn{pdf}{patches}
\RequirePackage{etoolbox}
+\@ifpackageloaded{pgfrcs}
+ {
+ \msg_warning:nn{pdf}{pgf-too-late}
+ \file_input_stop:
+ }
+ {
+ \msg_info:nn{pdf}{patches}
+ }
+\RequirePackage{pgfrcs}
+%
+%\def\pgfutil at addpdfresource@extgs#1{\pgf at sys@addpdfresource at extgs@plain{#1}}
+%\def\pgfutil at addpdfresource@colorspaces#1{\pgf at sys@addpdfresource at colorspaces@plain{#1}}
+%\def\pgfutil at addpdfresource@patterns#1{\pgf at sys@addpdfresource at patterns@plain{#1}}
+%\def\pgfutil at setuppdfresources{\pgf at sys@setuppdfresources at plain}
+% \pgf at sys@pdf at possible@resources %used in xform
+%Trying to patch pgf ..
+\cs_new_protected:Npn \@@_pgf_sys_setuppdfresources_plain:
+ {
+ %objects are already created ...
+ \def\pgf at sys@pdf at possible@resources
+ {
+ /ColorSpace~\pdf_object_ref:n {PageN/Resources/ColorSpace}
+ /Pattern ~\pdf_object_ref:n {PageN/Resources/Pattern}
+ /ExtGState ~\pdf_object_ref:n {PageN/Resources/ExtGState}
+ }
+ \let\pgf at sys@pdf at check@resources=\relax%
+ %not sure if needed, but perhaps the lists are used somewhere else ...
+ \let\pgf at sys@pgf at resource@list at extgs=\pgfutil at empty%
+ \let\pgf at sys@pgf at resource@list at patterns=\pgfutil at empty%
+ \let\pgf at sys@pgf at resource@list at colorspaces=\pgfutil at empty%
+ % the commands to add page resources
+ \def\pgf at sys@addpdfresource at extgs@plain##1
+ {
+ \exp_after:wN %for transparent which passes a command
+ \@@_patch_pgfextgs:w ##1\q_stop
+ }
+ \def\pgf at sys@addpdfresource at patterns@plain##1
+ {
+ \@@_patch_pgfpatterns:w ##1\q_stop
+ }
+ \def\pgf at sys@addpdfresource at colorspaces@plain##1
+ {
+ \@@_patch_pgfcolorspaces:w ##1\q_stop
+ }
+ }
+\def\pgfutil at setuppdfresources{\@@_pgf_sys_setuppdfresources_plain:}
+% helper commands as pgf doesn't pass resources as two arguments
% code to add to the resources existing stuff in the format "/name value":
\cs_new:Npn \@@_split_dict_entry_aux:NNw #1 #2 /#3~#4\q_stop
{
@@ -2684,7 +2735,6 @@
\tl_new:N \l_@@_name_tmp_tl
\tl_new:N \l_@@_value_tmp_tl
-
\cs_generate_variant:Nn \pdf_pageresources_gput:nnn {noo}
\cs_new_protected:Npn \pdf_pageresources_split_gput:nn #1 #2 %#1 resources
@@ -2693,43 +2743,20 @@
\pdf_pageresources_gput:noo {#1}{\l_@@_name_tmp_tl}{\l_@@_value_tmp_tl}
}
-%Trying to patch pgf ..
-\AtBeginDocument
+\cs_new:Npn \@@_patch_pgfextgs:w #1/#2<<#3>>#4\q_stop
{
- % extgstate
- \cs_new:Npn \@@_patch_pgfextgs:w #1/#2<<#3>>#4\q_stop
- {
- \@@_backend_PageNResources_gput:nnn {ExtGState}{#2}{<<#3>>}
- }
+ \@@_backend_PageNResources_gput:nnn {ExtGState}{#2}{<<#3>>}
+ }
+\cs_new:Npn \@@_patch_pgfpatterns:w #1/#2\space#3\q_stop
+ {
+ \exp_args:Nnnx \@@_backend_PageNResources_gput:nnn {Pattern}{#2}{#3}
+ }
+\cs_new:Npn \@@_patch_pgfcolorspaces:w #1/#2[#3]#4\q_stop
+ {
+ \@@_backend_PageNResources_gput:nnn {ColorSpace}{#2}{[#3]}
+ }
- \def\pgf at sys@addpdfresource at extgs@plain#1
- {
- \exp_after:wN %for transparent which passes a command
- \@@_patch_pgfextgs:w #1\q_stop
- }
- % patterns
- \cs_new:Npn \@@_patch_pgfpatterns:w #1/#2\space#3\q_stop
- {
- \exp_args:Nnnx \@@_backend_PageNResources_gput:nnn {Pattern}{#2}{#3}
- }
- \def\pgf at sys@addpdfresource at patterns@plain#1
- {
- \@@_patch_pgfpatterns:w #1\q_stop
- }
-
- %colorspace is already set when tikz is loaded:
- \cs_new:Npn \@@_patch_pgfcolorspace:w #1/#2[#3]#4\q_stop
- {
- \@@_backend_PageNResources_gput:nnn {ColorSpace}{#2}{[#3]}
- }
- \tl_if_exist:NT \pgf at sys@pgf at resource@list at colorspaces
- {
- \exp_last_unbraced:NV
- \@@_patch_pgfcolorspace:w \pgf at sys@pgf at resource@list at colorspaces\q_stop
- \pgfutil at everybye{}
- }
- }
% transparent, we assume that pdfresource is loaded first.
\AtEndPreamble
diff --git a/testfiles-pool/extgstate-patches.tpf b/testfiles-noxetex/extgstate-patches.pdftex.tpf
similarity index 65%
copy from testfiles-pool/extgstate-patches.tpf
copy to testfiles-noxetex/extgstate-patches.pdftex.tpf
index 3950b77..474c4f2 100644
--- a/testfiles-pool/extgstate-patches.tpf
+++ b/testfiles-noxetex/extgstate-patches.pdftex.tpf
@@ -1,27 +1,33 @@
%PDF-1.5
%ÐÔÅØ
-9 0 obj
+5 0 obj
<< /Type /ExtGState /op false /OP false >>
endobj
-10 0 obj
+6 0 obj
<< /Type /ExtGState /op true /OP true /OPM 0 >>
endobj
-11 0 obj
+7 0 obj
<< /Type /ExtGState /op true /OP true /OPM 1 >>
endobj
-12 0 obj
-<< /SPCko 9 0 R /SPCmz 10 0 R /SPCop 11 0 R >>
+8 0 obj
+<< /SPCko 5 0 R /SPCmz 6 0 R /SPCop 7 0 R >>
endobj
-13 0 obj
+9 0 obj
<< /Type/ExtGState /op false /OP false >>
endobj
-14 0 obj
+10 0 obj
<< /Type/ExtGState /op true /OP true /OPM 0 >>
endobj
-15 0 obj
+11 0 obj
<< /Type/ExtGState /op true /OP true /OPM 1 >>
endobj
-18 0 obj
+1 0 obj
+<< /SPCko 9 0 R /SPCmz 10 0 R /SPCop 11 0 R /TRP.6 <</ca .6/CA .6>> /TRP1 <</ca 1/CA 1>> /pgf at CA0.4 << /CA 0.4 >> /pgf at ca0.4 << /ca 0.4 >> /bearopacity <</ca 0.7/CA 0.7>> >>
+endobj
+2 0 obj
+<< /pgfprgb [/Pattern /DeviceRGB] >>
+endobj
+14 0 obj
<<
/Length 429
>>
@@ -66,41 +72,26 @@ BT
ET
endstream
endobj
-17 0 obj
+13 0 obj
<<
/Type /Page
-/Contents 18 0 R
-/Resources 16 0 R
+/Contents 14 0 R
+/Resources 12 0 R
/MediaBox [0 0 612 792]
-/Parent 20 0 R
+/Parent 16 0 R
>>
endobj
-16 0 obj
+12 0 obj
<<
-/ExtGState 1 0 R /ColorSpace 2 0 R /Pattern 3 0 R /Shading 4 0 R /Properties 5 0 R
-/Font << /F8 19 0 R >>
+/ExtGState 1 0 R/ColorSpace 2 0 R
+/Font << /F8 15 0 R >>
/ProcSet [ /PDF /Text ]
>>
endobj
-1 0 obj
-<< /SPCko 13 0 R /SPCmz 14 0 R /SPCop 15 0 R /TRP.6 <</ca .6/CA .6>> /TRP1 <</ca 1/CA 1>> /pgf at CA0.4 << /CA 0.4 >> /pgf at ca0.4 << /ca 0.4 >> >>
-endobj
-2 0 obj
-<< /pgfprgb [/Pattern /DeviceRGB] >>
-endobj
-3 0 obj
-<< >>
-endobj
-4 0 obj
-<< >>
-endobj
-5 0 obj
-<< >>
-endobj
-21 0 obj
+17 0 obj
[500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4]
endobj
-22 0 obj
+18 0 obj
<<
/Length1 1421
/Length2 8159
@@ -109,7 +100,7 @@ endobj
>>
[BINARY STREAM]
endobj
-23 0 obj
+19 0 obj
<<
/Type /FontDescriptor
/FontName /BYEZUZ+CMR10
@@ -122,34 +113,34 @@ endobj
/StemV 69
/XHeight 431
/CharSet (/X/a/b/c/one)
-/FontFile 22 0 R
+/FontFile 18 0 R
>>
endobj
-19 0 obj
+15 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /BYEZUZ+CMR10
-/FontDescriptor 23 0 R
+/FontDescriptor 19 0 R
/FirstChar 49
/LastChar 99
-/Widths 21 0 R
+/Widths 17 0 R
>>
endobj
-20 0 obj
+16 0 obj
<<
/Type /Pages
/Count 1
-/Kids [17 0 R]
+/Kids [13 0 R]
>>
endobj
-24 0 obj
+20 0 obj
<<
/Type /Catalog
-/Pages 20 0 R
+/Pages 16 0 R
>>
endobj
-25 0 obj
+21 0 obj
<<
/Producer (pdfTeX)
/Creator (TeX)
@@ -157,38 +148,34 @@ endobj
>>
endobj
xref
-0 26
-0000000006 65535 f
-0000001197 00000 n
-0000001358 00000 n
-0000001412 00000 n
-0000001434 00000 n
-0000001456 00000 n
-0000000007 00000 f
-0000000008 00000 f
+0 22
+0000000003 65535 f
+0000000442 00000 n
+0000000634 00000 n
+0000000004 00000 f
0000000000 00000 f
0000000015 00000 n
0000000073 00000 n
-0000000137 00000 n
-0000000201 00000 n
-0000000264 00000 n
-0000000322 00000 n
-0000000385 00000 n
-0000001044 00000 n
-0000000936 00000 n
-0000000448 00000 n
-0000011668 00000 n
-0000011807 00000 n
-0000001478 00000 n
-0000001763 00000 n
-0000011441 00000 n
-0000011866 00000 n
-0000011917 00000 n
+0000000136 00000 n
+0000000199 00000 n
+0000000259 00000 n
+0000000316 00000 n
+0000000379 00000 n
+0000001284 00000 n
+0000001176 00000 n
+0000000688 00000 n
+0000011577 00000 n
+0000011716 00000 n
+0000001387 00000 n
+0000001672 00000 n
+0000011350 00000 n
+0000011775 00000 n
+0000011826 00000 n
trailer
-<< /Size 26
-/Root 24 0 R
-/Info 25 0 R
+<< /Size 22
+/Root 20 0 R
+/Info 21 0 R
>>
startxref
-11989
+11898
%%EOF
diff --git a/testfiles-noxetex/extgstate-patches.pvt b/testfiles-noxetex/extgstate-patches.pvt
new file mode 100644
index 0000000..bc45c9a
--- /dev/null
+++ b/testfiles-noxetex/extgstate-patches.pvt
@@ -0,0 +1,25 @@
+% NOK /ExtGState 5 0 R /ExtGState 1 0 R with luatex, pdftex is ok ...
+% and also two colorspace ....
+% Test doesn't make sense with xelatex/dvips as they don't
+% work with transparent and colorspace anyway ...
+% the patches looks ok, there are a few duplicates in the object
+% but nothing harmful
+\RequirePackage[enable-debug,check-declarations]{expl3}
+\RequirePackage[patches]{pdfresources}
+\input{regression-test}
+\documentclass{article}
+
+\usepackage{tikz,transparent}
+\usetikzlibrary{patterns,shadings}
+\usepackage[overprint]{colorspace}
+
+
+\begin{document}
+\tikz\fill[opacity=0.4,red](0,0)rectangle (1,1);
+
+abc\texttransparent{0.6}{XXXXXXXXXX}
+
+\ExplSyntaxOn
+\pdf_pageresources_gput:nnn {ExtGState}{bearopacity}{<</ca~0.7/CA~0.7>>}
+\ExplSyntaxOff
+\end{document}
\ No newline at end of file
diff --git a/testfiles-pool/extgstate-patches.luatex.tpf b/testfiles-noxetex/extgstate-patches.tpf
similarity index 66%
copy from testfiles-pool/extgstate-patches.luatex.tpf
copy to testfiles-noxetex/extgstate-patches.tpf
index ab0c808..67c7c11 100644
--- a/testfiles-pool/extgstate-patches.luatex.tpf
+++ b/testfiles-noxetex/extgstate-patches.tpf
@@ -1,27 +1,33 @@
%PDF-1.5
%ÌÕÁÔÅØÐÄÆ
-9 0 obj
+5 0 obj
<< /Type /ExtGState /op false /OP false >>
endobj
-10 0 obj
+6 0 obj
<< /Type /ExtGState /op true /OP true /OPM 0 >>
endobj
-11 0 obj
+7 0 obj
<< /Type /ExtGState /op true /OP true /OPM 1 >>
endobj
-12 0 obj
-<< /SPCko 9 0 R /SPCmz 10 0 R /SPCop 11 0 R >>
+8 0 obj
+<< /SPCko 5 0 R /SPCmz 6 0 R /SPCop 7 0 R >>
endobj
-13 0 obj
+9 0 obj
<< /Type/ExtGState /op false /OP false >>
endobj
-14 0 obj
+10 0 obj
<< /Type/ExtGState /op true /OP true /OPM 0 >>
endobj
-15 0 obj
+11 0 obj
<< /Type/ExtGState /op true /OP true /OPM 1 >>
endobj
-18 0 obj
+1 0 obj
+<< /SPCko 9 0 R /SPCmz 10 0 R /SPCop 11 0 R /TRP.6 <</ca .6/CA .6>> /TRP1 <</ca 1/CA 1>> /pgf at CA0.4 << /CA 0.4 >> /pgf at ca0.4 << /ca 0.4 >> /bearopacity <</ca 0.7/CA 0.7>> >>
+endobj
+2 0 obj
+<< /pgfprgb [/Pattern /DeviceRGB] >>
+endobj
+14 0 obj
<< /Length 512 >>
stream
/TRP1 gs
@@ -65,42 +71,27 @@ BT
ET
endstream
endobj
-17 0 obj
-<< /Type /Page /Contents 18 0 R /Resources 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 20 0 R >>
-endobj
-16 0 obj
-<< /ExtGState 1 0 R /ColorSpace 2 0 R /Pattern 3 0 R /Shading 4 0 R /Properties 5 0 R /Font << /F25 19 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1 0 obj
-<< /SPCko 13 0 R /SPCmz 14 0 R /SPCop 15 0 R /TRP.6 <</ca .6/CA .6>> /TRP1 <</ca 1/CA 1>> /pgf at CA0.4 << /CA 0.4 >> /pgf at ca0.4 << /ca 0.4 >> >>
-endobj
-2 0 obj
-<< /pgfprgb [/Pattern /DeviceRGB] >>
-endobj
-3 0 obj
-<< >>
-endobj
-4 0 obj
-<< >>
+13 0 obj
+<< /Type /Page /Contents 14 0 R /Resources 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R >>
endobj
-5 0 obj
-<< >>
+12 0 obj
+<< /ExtGState 1 0 R/ColorSpace 2 0 R /Font << /F25 15 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-21 0 obj
+17 0 obj
[ 28 [ 500 ] 35 [ 556 ] 43 [ 444 ] 82 [ 500 ] 115 [ 750 ] ]
endobj
-23 0 obj
+19 0 obj
<< /Length 15 >>
[BINARY STREAM]
endobj
-24 0 obj
+20 0 obj
<< /Subtype /CIDFontType0C /Length 1138 >>
[BINARY STREAM]
endobj
-22 0 obj
-<< /Type /FontDescriptor /FontName /LGSPPO+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 24 0 R /CIDSet 23 0 R >>
+18 0 obj
+<< /Type /FontDescriptor /FontName /LGSPPO+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 20 0 R /CIDSet 19 0 R >>
endobj
-25 0 obj
+21 0 obj
<< /Length 748 >>
stream
%!PS-Adobe-3.0 Resource-CMap
@@ -140,54 +131,50 @@ end
%%EOF
endstream
endobj
-19 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LGSPPO+LMRoman10-Regular /DescendantFonts [ 26 0 R ] /ToUnicode 25 0 R >>
+15 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LGSPPO+LMRoman10-Regular /DescendantFonts [ 22 0 R ] /ToUnicode 21 0 R >>
endobj
-26 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LGSPPO+LMRoman10-Regular /FontDescriptor 22 0 R /W 21 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+22 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LGSPPO+LMRoman10-Regular /FontDescriptor 18 0 R /W 17 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-20 0 obj
-<< /Type /Pages /Count 1 /Kids [ 17 0 R ] >>
+16 0 obj
+<< /Type /Pages /Count 1 /Kids [ 13 0 R ] >>
endobj
-27 0 obj
-<< /Type /Catalog /Pages 20 0 R >>
+23 0 obj
+<< /Type /Catalog /Pages 16 0 R >>
endobj
-28 0 obj
+24 0 obj
<< /Producer (LuaTeX) /Creator (TeX) /Trapped /False >>
endobj
xref
-0 29
-0000000006 65535 f
-0000001289 00000 n
-0000001450 00000 n
-0000001504 00000 n
-0000001526 00000 n
-0000001548 00000 n
-0000000007 00000 f
-0000000008 00000 f
+0 25
+0000000003 65535 f
+0000000447 00000 n
+0000000639 00000 n
+0000000004 00000 f
0000000000 00000 f
0000000020 00000 n
0000000078 00000 n
-0000000142 00000 n
-0000000206 00000 n
-0000000269 00000 n
-0000000327 00000 n
-0000000390 00000 n
-0000001135 00000 n
-0000001025 00000 n
-0000000453 00000 n
-0000003987 00000 n
-0000004341 00000 n
-0000001570 00000 n
-0000002943 00000 n
-0000001646 00000 n
-0000001721 00000 n
-0000003179 00000 n
-0000004141 00000 n
-0000004403 00000 n
-0000004454 00000 n
+0000000141 00000 n
+0000000204 00000 n
+0000000264 00000 n
+0000000321 00000 n
+0000000384 00000 n
+0000001375 00000 n
+0000001265 00000 n
+0000000693 00000 n
+0000003896 00000 n
+0000004250 00000 n
+0000001479 00000 n
+0000002852 00000 n
+0000001555 00000 n
+0000001630 00000 n
+0000003088 00000 n
+0000004050 00000 n
+0000004312 00000 n
+0000004363 00000 n
trailer
-<< /Size 29 /Root 27 0 R /Info 28 0 R >>
+<< /Size 25 /Root 23 0 R /Info 24 0 R >>
startxref
-4526
+4435
%%EOF
diff --git a/testfiles-pool/extgstate-patches.pvt b/testfiles-pool/extgstate-patches.pvt
index 64cfa00..bc45c9a 100644
--- a/testfiles-pool/extgstate-patches.pvt
+++ b/testfiles-pool/extgstate-patches.pvt
@@ -1,11 +1,14 @@
-%NOK /ExtGState 5 0 R /ExtGState 1 0 R with luatex + xelatex. pdftex is ok ...
+% NOK /ExtGState 5 0 R /ExtGState 1 0 R with luatex, pdftex is ok ...
% and also two colorspace ....
-%
-
+% Test doesn't make sense with xelatex/dvips as they don't
+% work with transparent and colorspace anyway ...
+% the patches looks ok, there are a few duplicates in the object
+% but nothing harmful
\RequirePackage[enable-debug,check-declarations]{expl3}
\RequirePackage[patches]{pdfresources}
\input{regression-test}
\documentclass{article}
+
\usepackage{tikz,transparent}
\usetikzlibrary{patterns,shadings}
\usepackage[overprint]{colorspace}
@@ -15,4 +18,8 @@
\tikz\fill[opacity=0.4,red](0,0)rectangle (1,1);
abc\texttransparent{0.6}{XXXXXXXXXX}
+
+\ExplSyntaxOn
+\pdf_pageresources_gput:nnn {ExtGState}{bearopacity}{<</ca~0.7/CA~0.7>>}
+\ExplSyntaxOff
\end{document}
\ No newline at end of file
More information about the latex3-commits
mailing list