summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx12
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx52
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx10
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx25
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx37
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx130
-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.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.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.dtx11
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx2
-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/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx15
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3final.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3flag.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/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.dtx134
-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, 403 insertions, 187 deletions
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
index 71085fb1bac..26c516150af 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -71,23 +71,23 @@
%<*package>
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2020-05-05}{}
+ {l3backend-dvipdfmx.def}{2020-06-03}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2020-05-05}{}
+ {l3backend-dvips.def}{2020-06-03}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2020-05-05}{}
+ {l3backend-dvisvgm.def}{2020-06-03}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*pdfmode>
- {l3backend-pdfmode.def}{2020-05-05}{}
+ {l3backend-pdfmode.def}{2020-06-03}{}
{L3 backend support: PDF mode}
%</pdfmode>
%<*xdvipdfmx>
- {l3backend-xdvipdfmx.def}{2020-05-05}{}
+ {l3backend-xdvipdfmx.def}{2020-06-03}{}
{L3 backend support: xdvipdfmx}
%</xdvipdfmx>
%</package>
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
index 5544192ea60..323756837e4 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
index faadeb83add..2b3e4d37084 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -98,10 +98,10 @@
}
{
\exp_last_unbraced:Nx \@@_backend_pickup:w
- { \current@color } \q_stop #1
+ { \current@color } \s_@@_stop #1
}
}
- \cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \q_stop #3
+ \cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3
{ \tl_set:Nn #3 { #1 ~ #2 } }
}
}
@@ -110,17 +110,17 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@@_backend_cmyk:nnnn}
-% \begin{macro}{\@@_backend_gray:n}
-% \begin{macro}{\@@_backend_rgb:nnn}
-% \begin{macro}{\@@_backend_spot:nn}
+% \begin{macro}{\@@_backend_cmyk:w}
+% \begin{macro}{\@@_backend_gray:w}
+% \begin{macro}{\@@_backend_rgb:w}
+% \begin{macro}{\@@_backend_spot:w}
% \begin{macro}{\@@_backend_select:n, \@@_backend_select:x}
% \begin{macro}{\@@_backend_reset:}
% \begin{macro}{color.fc}
% Push the data to the stack. In the case of \texttt{dvips} also reset the
% drawing fill color in raw PostScript.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_cmyk:nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
{
\@@_backend_select:x
{
@@ -129,14 +129,14 @@
\fp_eval:n {#3} ~ \fp_eval:n {#4}
}
}
-\cs_new_protected:Npn \@@_backend_gray:n #1
+\cs_new_protected:Npn \@@_backend_gray:w #1 \s_@@_stop
{ \@@_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \@@_backend_rgb:nnn #1#2#3
+\cs_new_protected:Npn \@@_backend_rgb:w #1 ~ #2 ~ #3 \s_@@_stop
{
\@@_backend_select:x
{ rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
}
-\cs_new_protected:Npn \@@_backend_spot:nn #1#2
+\cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop
{ \@@_backend_select:n { #1 } }
\cs_new_protected:Npn \@@_backend_select:n #1
{
@@ -186,10 +186,10 @@
\cs_set_protected:Npn \@@_backend_pickup:N #1
{
\exp_last_unbraced:Nx \@@_backend_pickup:w
- { \current@color } ~ 0 ~ 0 ~ 0 \q_stop #1
+ { \current@color } ~ 0 ~ 0 ~ 0 \s_@@_stop #1
}
\cs_new_protected:Npn \@@_backend_pickup:w
- #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop #7
+ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7
{
\str_if_eq:nnTF {#2} { g }
{ \tl_set:Nn #7 { gray ~ #1 } }
@@ -226,47 +226,47 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_backend_cmyk:nnnn, \@@_backend_cmyk_aux:nnnn}
-% \begin{macro}{\@@_backend_gray:n, \@@_backend_gray_aux:n}
-% \begin{macro}{\@@_backend_rgb:nnn, \@@_backend_rgb_aux:nnn}
-% \begin{macro}{\@@_backend_spot:nn}
+% \begin{macro}{\@@_backend_cmyk:w, \@@_backend_cmyk:nnnn}
+% \begin{macro}{\@@_backend_gray:w, \@@_backend_gray:n}
+% \begin{macro}{\@@_backend_rgb:w, \@@_backend_rgb:nnn}
+% \begin{macro}{\@@_backend_spot:w}
% \begin{macro}{\@@_backend_select:n, \@@_backend_select:x}
% \begin{macro}{\@@_backend_reset:}
% Simply dump the data, but allowing for \LuaTeX{}.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_cmyk:nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
{
\use:x
{
- \@@_backend_cmyk_aux:nnnn
+ \@@_backend_cmyk:nnnn
{ \fp_eval:n {#1} }
{ \fp_eval:n {#2} }
{ \fp_eval:n {#3} }
{ \fp_eval:n {#4} }
}
}
-\cs_new_protected:Npn \@@_backend_cmyk_aux:nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_backend_cmyk:nnnn #1#2#3#4
{
\@@_backend_select:n
{ #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K }
}
+\cs_new_protected:Npn \@@_backend_gray:w #1 \s_@@_stop
+ { \exp_args:Nx \@@_backend_gray:n { \fp_eval:n {#1} } }
\cs_new_protected:Npn \@@_backend_gray:n #1
- { \exp_args:Nx \@@_backend_gray_aux:n { \fp_eval:n {#1} } }
-\cs_new_protected:Npn \@@_backend_gray_aux:n #1
{ \@@_backend_select:n { #1 ~ g ~ #1 ~ G } }
-\cs_new_protected:Npn \@@_backend_rgb:nnn #1#2#3
+\cs_new_protected:Npn \@@_backend_rgb:w #1~ #2 ~ #3 \s_@@_stop
{
\use:x
{
- \@@_backend_rgb_aux:nnn
+ \@@_backend_rgb:nnn
{ \fp_eval:n {#1} }
{ \fp_eval:n {#2} }
{ \fp_eval:n {#3} }
}
}
-\cs_new_protected:Npn \@@_backend_rgb_aux:nnn #1#2#3
+\cs_new_protected:Npn \@@_backend_rgb:nnn #1#2#3
{ \@@_backend_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } }
-\cs_new_protected:Npn \@@_backend_spot:nn #1#2
+\cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop
{ \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } }
\cs_new_protected:Npx \@@_backend_select:n #1
{
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
index f1d83363db8..6b235e4faae 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
index f986a2d1a7b..dd19bba9a10 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -536,12 +536,12 @@
\cs_new_protected:Npn \@@_backend_include_pdf:n #1
{
\tex_XeTeXpdffile:D
- \@@_backend_include_pdf_quote:w #1 "#1" \q_stop \c_space_tl
+ \@@_backend_include_pdf_quote:w #1 "#1" \s_@@_stop \c_space_tl
\int_compare:nNnT \l_graphics_page_int > 0
{ page ~ \int_use:N \l_graphics_page_int \c_space_tl }
\exp_after:wN \@@_backend_getbb_pagebox:w \l_graphics_pagebox_tl
}
-\cs_new:Npn \@@_backend_include_pdf_quote:w #1 " #2 " #3 \q_stop
+\cs_new:Npn \@@_backend_include_pdf_quote:w #1 " #2 " #3 \s_@@_stop
{ " #2 " }
% \end{macrocode}
% \end{macro}
@@ -635,11 +635,11 @@
dvisvgm:img~
\dim_to_decimal:n { \l_graphics_ury_dim } ~
\dim_to_decimal:n { \l_graphics_ury_dim } ~
- \@@_backend_include_bitmap_quote:w #1 " #1 " \q_stop
+ \@@_backend_include_bitmap_quote:w #1 " #1 " \s_@@_stop
}
}
\cs_new_eq:NN \@@_backend_include_jpg:n \@@_backend_include_png:n
-\cs_new:Npn \@@_backend_include_bitmap_quote:w #1 " #2 " #3 \q_stop
+\cs_new:Npn \@@_backend_include_bitmap_quote:w #1 " #2 " #3 \s_@@_stop
{ " #2 " }
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
index b3c7f0527ea..955f8a3b144 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
index 95d1cc6530b..5382b4a92c3 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 2020-05-05}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -134,8 +134,9 @@
% \begin{macro}{\@@_backend_object_write:nn, \@@_backend_object_write:nx}
% \begin{macro}
% {
-% \@@_backend_object_write_array:nn ,
-% \@@_backend_object_write_dict:nn ,
+% \@@_backend_object_write_array:nn ,
+% \@@_backend_object_write_dict:nn ,
+% \@@_backend_object_write_fstream:nn ,
% \@@_backend_object_write_stream:nn
% }
% \begin{macro}{\@@_backend_object_write_stream:nnn}
@@ -166,13 +167,28 @@
\cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2
{
\@@_backend_pdfmark:x
- { #1 [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL }
+ { #1 ~0~ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL }
}
\cs_new_protected:Npn \@@_backend_object_write_dict:nn #1#2
{
\@@_backend_pdfmark:x
{ #1 << \exp_not:n {#2} >> /PUT }
}
+\cs_new_protected:Npn \@@_backend_object_write_fstream:nn #1#2
+ {
+ \exp_args:Nx
+ \@@_backend_object_write_fstream:nnn {#1} #2
+ }
+\cs_new_protected:Npn \@@_backend_object_write_fstream:nnn #1#2#3
+ {
+ \__kernel_backend_postscript:n
+ {
+ SDict ~ begin ~
+ mark ~ #1 ~ << #2 >> /PUT ~ pdfmark ~
+ mark ~ #1 ~ ( #3 )~ ( r )~ file ~ /PUT ~ pdfmark ~
+ end
+ }
+ }
\cs_new_protected:Npn \@@_backend_object_write_stream:nn #1#2
{
\exp_args:Nx
@@ -182,7 +198,6 @@
{
\__kernel_backend_postscript:n
{
- [nobreak]
mark ~ #1 ~ ( #3 ) /PUT ~ pdfmark ~
mark ~ #1 ~ << #2 >> /PUT ~ pdfmark
}
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
index 9794e24e5f7..2589bb9c6c1 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -130,7 +130,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3benchmark}{2020-05-18}{}
+\ProvidesExplPackage{l3benchmark}{2020-06-03}{}
{L3 Experimental benchmarking}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx b/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx
index 51bbf90bf03..4d758c1ad4f 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -114,6 +114,14 @@
% the matching \cs{cctab_begin:N} was used.
% \end{function}
%
+% \begin{function}[added = 2020-05-19]{\cctab_select:N}
+% \begin{syntax}
+% \cs{cctab_select:N}\meta{category code table}
+% \end{syntax}
+% Selects the \meta{category code table} for the scope of the current
+% group.
+% \end{function}
+%
% \subsection{Category code table conditionals}
%
% \begin{function}[pTF]{\cctab_if_exist:N,\cctab_if_exist:c}
@@ -171,7 +179,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3cctab}{2020-05-18}{}
+\ProvidesExplPackage{l3cctab}{2020-06-03}{}
{L3 Experimental category code tables}
%</package>
% \end{macrocode}
@@ -392,7 +400,7 @@
% \cs{cctab_end:}.
% \begin{macrocode}
\cs_new_protected:Npn \cctab_begin:N #1
- { \@@_chk_if_valid:NT #1 { \__cctab_begin:N #1 } }
+ { \@@_chk_if_valid:NT #1 { \@@_begin:N #1 } }
\cs_generate_variant:Nn \cctab_begin:N { c }
\cs_new_protected:Npn \cctab_end:
{
@@ -403,6 +411,29 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\cctab_select:N}
+% \begin{macro}{\@@_end_fast:}
+% Select a catcode table within a group.
+% \begin{macrocode}
+\cs_new_protected:Npn \cctab_select:N #1
+ {
+ \@@_chk_if_valid:NT #1
+ {
+ \@@_begin:N #1
+ \group_insert_after:N \@@_end_fast:
+ }
+ }
+\cs_generate_variant:Nn \cctab_select:N { c }
+\cs_new_protected:Npx \@@_end_fast:
+ {
+ \int_gsub:Nn \exp_not:N \g_@@_stack_int { 2 }
+ \sys_if_engine_luatex:T
+ { \seq_gpop:NN \exp_not:N \g_@@_stack_seq \exp_not:N \l_@@_tmp_tl }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\cctab_if_exist:N,\cctab_if_exist:c}
% Checks whether a \meta{cctab~var} is defined.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
index 9438e8110f3..c7addda60be 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -61,7 +61,9 @@
% space. In contrast, various proprietary models are available which define
% \emph{spot} colors.
%
-% The models supported here are
+% Core models are used to pass color information to output; these are
+% \enquote{native} to \pkg{l3color}. Core models use real numbers in the range
+% $[0,1]$ to represent values. The core models supported here are
% \begin{itemize}
% \item \texttt{gray} Grayscale color, with a single axis running from
% $0$ (fully black) to $1$ (fully white)
@@ -73,7 +75,24 @@
% (see \url{https://helpx.adobe.com/indesign/using/spot-process-colors.html}
% for details of the use of spot colors in print)
% \end{itemize}
-%
+% There are also interface models: these are convenient for users but have
+% to be manipulated before storing/passing to the backend. Interface models
+% are primarily integer-based: see below for more detail. The supported
+% interface models are
+% \begin{itemize}
+% \item \texttt{Hsb} Hue-saturation-brightness color, with three axes, integer
+% in the range $[0,360]$ for hue, real values in the range $[0,1]$ for
+% saturation and brightness
+% \item \texttt{HSB} Hue-saturation-brightness color, with three axes, integer
+% in the range $[0,360]$ for hue, integer values in the range $[0,255]$ for
+% saturation and brightness
+% \item \texttt{HTML} HTML format representation of RGB color given as a
+% single six-digit hexadecimal number
+% \item \texttt{RGB} Red-green-blue color, with three axes, one for each of
+% the components, values as integers from $0$ to $255$
+% \end{itemize}
+% All interface models are internally stored as |rgb|.
+%
% Additional models may be created to allow mixing of spot colors
% with each other or with those from other models. See
% Section~\ref{l3color:sec:spot} for more detail of spot color support.
@@ -267,7 +286,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3color}{2020-05-18}{}
+\ProvidesExplPackage{l3color}{2020-06-03}{}
{L3 Experimental color support}
%</package>
% \end{macrocode}
@@ -643,22 +662,28 @@
% \begin{macro}[EXP]{\@@_parse_spot_aux:w}
% Turn the input into internal form, also tidying up the number quickly.
% \begin{macrocode}
-\cs_new:Npn \@@_parse_model_gray:w #1 , #2 \s_@@_stop { \@@_parse_number:n {#1} }
+\cs_new:Npn \@@_parse_model_gray:w #1 , #2 \s_@@_stop
+ { gray ~ \@@_parse_number:n {#1} }
\cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \s_@@_stop
{
+ rgb ~
\@@_parse_number:n {#1} ~
\@@_parse_number:n {#2} ~
\@@_parse_number:n {#3}
}
\cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s_@@_stop
{
+ cmyk ~
\@@_parse_number:n {#1} ~
\@@_parse_number:n {#2} ~
\@@_parse_number:n {#3} ~
\@@_parse_number:n {#4}
}
\cs_new:Npn \@@_parse_model_spot:w #1 , #2 \s_@@_stop
- { \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop }
+ {
+ spot ~
+ \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop
+ }
\cs_new:Npn \@@_parse_spot_aux:w #1 ! #2 ! #3 \s_@@_stop
{ #1 ~ \fp_eval:n { #2 / 100 } }
\cs_new:Npn \@@_parse_number:n #1
@@ -671,6 +696,83 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}[EXP]
+% {
+% \@@_parse_model_Hsb:w, \@@_parse_model_HSB:w,
+% \@@_parse_model_HTML:w, \@@_parse_model_RGB:w
+% }
+% \begin{macrocode}
+\cs_new:Npn \@@_parse_model_Hsb:w #1 , #2 , #3 , #4 \s_@@_stop
+ {
+ \exp_args:Ne \@@_parse_model_hsb:nnn { \fp_eval:n { #1 / 360 } }
+ {#2} {#3}
+ }
+% \end{macrocode}
+% The conversion here is non-trivial but is described at length
+% in the \pkg{xcolor} manual. For ease, we calculate the integer
+% and fractional parts of the hue first, then use them to work out the
+% possible values for $r$, $g$ and $b$ before putting them in the correct
+% places.
+% \begin{macrocode}
+\cs_new:Npn \@@_parse_model_hsb:nnn #1#2#3
+ {
+ rgb ~
+ \exp_args:Ne \@@_parse_model_hsb_aux:nnn
+ { \fp_eval:n { 6 * #1 } } {#2} {#3}
+ }
+\cs_new:Npn \@@_parse_model_hsb_aux:nnn #1#2#3
+ {
+ \exp_args:Nee \@@_parse_model_hsb_aux:nnnn
+ { \fp_eval:n { floor(#1) } } { \fp_eval:n { #1 - floor(#1) } }
+ {#2} {#3}
+ }
+\cs_new:Npn \@@_parse_model_hsb_aux:nnnn #1#2#3#4
+ {
+ \use:e
+ {
+ \exp_not:N \@@_parse_model_hsb_aux:nnnnn
+ { \@@_parse_number:n {#4} }
+ { \fp_eval:n { round(#4 * (1 - #3) ,5) } }
+ { \fp_eval:n { round(#4 * ( 1 - #3 * #2 ) ,5) } }
+ { \fp_eval:n { round(#4 * ( 1 - #3 * (1 - #2) ) ,5) } }
+ {#1}
+ }
+ }
+\cs_new:Npn \@@_parse_model_hsb_aux:nnnnn #1#2#3#4#5
+ { \use:c { @@_parse_model_hsb_ #5 :nnnn } {#1} {#2} {#3} {#4} }
+\cs_new:cpn { @@_parse_model_hsb_0:nnnn } #1#2#3#4 { #1 ~ #4 ~ #2 }
+\cs_new:cpn { @@_parse_model_hsb_1:nnnn } #1#2#3#4 { #3 ~ #1 ~ #2 }
+\cs_new:cpn { @@_parse_model_hsb_2:nnnn } #1#2#3#4 { #2 ~ #1 ~ #4 }
+\cs_new:cpn { @@_parse_model_hsb_3:nnnn } #1#2#3#4 { #2 ~ #3 ~ #1 }
+\cs_new:cpn { @@_parse_model_hsb_4:nnnn } #1#2#3#4 { #4 ~ #2 ~ #1 }
+\cs_new:cpn { @@_parse_model_hsb_5:nnnn } #1#2#3#4 { #1 ~ #2 ~ #3 }
+\cs_new:cpn { @@_parse_model_hsb_6:nnnn } #1#2#3#4 { #1 ~ #2 ~ #2 }
+\cs_new:Npn \@@_parse_model_HSB:w #1 , #2 , #3 , #4 \s_@@_stop
+ {
+ \exp_args:Neee \@@_parse_model_hsb:nnn
+ { \fp_eval:n {#1 / 360} }
+ { \fp_eval:n {#2 / 255} }
+ { \fp_eval:n {#3 / 255} }
+ }
+\cs_new:Npn \@@_parse_model_HTML:w #1 , #2 \s_@@_stop
+ { \@@_parse_model_HTML_aux:w #1 0 0 0 0 0 0 \s_@@_stop }
+\cs_new:Npn \@@_parse_model_HTML_aux:w #1#2#3#4#5#6#7 \s_@@_stop
+ {
+ rgb ~
+ \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~
+ \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~
+ \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) }
+ }
+\cs_new:Npn \@@_parse_model_RGB:w #1 , #2 , #3 , #4 \s_@@_stop
+ {
+ rgb ~
+ \fp_eval:n { round(#1 / 255,5) } ~
+ \fp_eval:n { round(#2 / 255,5) } ~
+ \fp_eval:n { round(#3 / 255,5) }
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Selecting colors (and color models)}
%
% \begin{variable}{\l_color_fixed_model_tl}
@@ -750,11 +852,11 @@
\cs_if_exist:cTF { @@_parse_model_ #1 :w }
{
\tl_set:Nx #3
- { #1 ~ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop }
+ { \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop }
\@@_check_model:N #3
}
{
- \__kernel_msg_error:nnn { color } { invalid-model } {#1}
+ \__kernel_msg_error:nnn { color } { unknown-model } {#1}
}
}
% \end{macrocode}
@@ -878,18 +980,18 @@
% \subsection{Messages}
%
% \begin{macrocode}
-\__kernel_msg_new:nnnn { color } { invalid-model }
- { Invalid~color~model~'#1'. }
- {
- LaTeX~has~been~asked~to~use~a~color~model~called~'#1',~
- but~this~model~is~not~set~up.
- }
\__kernel_msg_new:nnnn { color } { unknown-color }
{ Unknown~color~'#1'. }
{
LaTeX~has~been~asked~to~use~a~color~named~'#1',~
but~this~has~never~been~defined.
}
+\__kernel_msg_new:nnnn { color } { unknown-model }
+ { Unknown~color~model~'#1'. }
+ {
+ LaTeX~has~been~asked~to~use~a~color~model~called~'#1',~
+ but~this~model~is~not~set~up.
+ }
% \end{macrocode}
%
% \begin{macrocode}
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 b1c1b8f9bba..bca71310a17 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 1711561dc72..690d02578f4 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 1d79852ddc1..a90ccb85d86 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 6874d149ae1..5e54f11a70a 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 13592541066..a33447016ec 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 ca1f161df56..40823c2cf31 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 74f4f6a0720..42adda47ce0 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \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 beb6582e0e7..2b0ac7a84c1 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
index f485aa69a25..66b0074a872 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -1146,7 +1146,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3draw}{2020-05-18}{}
+\ProvidesExplPackage{l3draw}{2020-06-03}{}
{L3 Experimental core drawing support}
%</package>
% \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 36a63818c15..92d93a4c979 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -241,7 +241,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3graphics}{2020-05-18}{}
+\ProvidesExplPackage{l3graphics}{2020-06-03}{}
{L3 Experimental graphics inclusion support}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx b/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
index 2b9f2564e74..b444b49524c 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -191,7 +191,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3pdf}{2020-05-18}{}
+\ProvidesExplPackage{l3pdf}{2020-06-03}{}
{L3 Experimental core PDF support}
%</package>
% \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 5cc7827af5f..5bdde511913 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -167,7 +167,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3str-format}{2020-05-18}{}
+\ProvidesExplPackage{l3str-format}{2020-06-03}{}
{L3 Experimental string formatting}
%</package>
% \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 52cfcd634ad..6ed71eb1bae 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -136,7 +136,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3sys-shell}{2020-05-18}{}
+\ProvidesExplPackage{l3sys-shell}{2020-06-03}{}
{L3 Experimental system shell functions}
%</package>
% \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 6b1686b6cfd..9b4f9a1250e 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
@@ -56,7 +56,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -675,7 +675,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2020-05-18}{}
+\ProvidesExplPackage{xcoffins}{2020-06-03}{}
{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 e8a59c07709..2ba61cdf1cf 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 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -687,7 +687,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3galley}{2020-05-18}{}
+\ProvidesExplPackage{l3galley}{2020-06-03}{}
{L3 Experimental galley code}
%</package>
% \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 577ed6b90b7..ce329cf3603 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-18}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -734,7 +734,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2020-05-18}{}
+\ProvidesExplPackage{xgalley}{2020-06-03}{}
{L3 Experimental galley}
\RequirePackage{xparse,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 1abb69d728f..e1502692225 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{2020-05-15}%
+\def\ExplFileDate{2020-06-03}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -365,6 +365,13 @@
% distinguish variables from functions in the source when the |@@|
% convention is used.
%
+% Please note that you have to use the \pkg{l3docstrip} and
+% \textbf{not} the \pkg{docstrip} program in your \texttt{.ins} files
+% to make this work---the original \LaTeXe{} \pkg{docstrip} doesn't
+% understand the \texttt{@@} and will just copy it into your code
+% unmodified!
+%
+%
% \subsubsection{Variables: declaration}
%
% In well-formed \pkg{expl3} code, variables should always be declared before
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
index 7d54407af64..9784c0abc80 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 44085b9b536..3e56c6d86ff 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 6efb99a6cc6..fe25ffaf7fe 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 8576615d6e3..90c12659420 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index e5995e626c2..5b9533868c9 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index f05a10aa2b4..1a71aaf93fe 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index eda6dcbd217..5051cd7fd34 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
index d44274517d3..a042985a33a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -156,8 +156,6 @@
%
% \begin{macro}{\@@_select:n, \@@_select:V}
% \begin{macro}{\@@_select:w}
-% \begin{macro}
-% {\@@_select_cmyk:w, \@@_select_gray:w, \@@_select_rgb:w, \@@_select_spot:w}
% Take an internal color specification and pass it to the driver. This code
% is needed to ensure the current color but will also be used by the
% higher-level experimental material.
@@ -166,19 +164,10 @@
{ \@@_select:w #1 \s_@@_stop }
\cs_generate_variant:Nn \@@_select:n { V }
\cs_new_protected:Npn \@@_select:w #1 ~ #2 \s_@@_stop
- { \use:c { @@_select_ #1 :w } #2 \s_@@_stop }
-\cs_new_protected:Npn \@@_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
- { \@@_backend_cmyk:nnnn {#1} {#2} {#3} {#4} }
-\cs_new_protected:Npn \@@_select_gray:w #1 \s_@@_stop
- { \@@_backend_gray:n {#1} }
-\cs_new_protected:Npn \@@_select_rgb:w #1 ~ #2 ~ #3 \s_@@_stop
- { \@@_backend_rgb:nnn {#1} {#2} {#3} }
-\cs_new_protected:Npn \@@_select_spot:w #1 ~ #2 \s_@@_stop
- { \@@_backend_spot:nn {#1} {#2} }
+ { \use:c { @@_backend_ #1 :w } #2 \s_@@_stop }
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
%
% \begin{variable}{\l_@@_current_tl}
% As the setting data is used only
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index 9c7bb162eba..f52b59a86ef 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index eaa3b19256e..647c6ac1f79 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 9c8e7be645f..5a5a8714a96 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -79,7 +79,7 @@ and all files in that bundle must be distributed together.
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2020-05-15}
+% \date{Released 2020-06-03}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 54e806acd0a..1651afd3e22 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 839b255623b..bb8218281b7 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index 6e2af806599..e93d117612b 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
index e51ee444416..85926053240 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index d09d1bb5966..281ef1a9b7f 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index 00bdfef0696..c0dff407321 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 2020-05-15}
+% \date{Released 2020-06-03}
% \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 f251d60c4f7..46d089b2c66 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index c97cd6c83d6..7d01b20929c 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index cd317883bc0..15150ba29d2 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index 70ad1c58f3d..42597305e65 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index c5377c74dda..445f206b511 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 9371abf9ef2..9f08120f3b0 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 17eac4a16b1..442d10c798d 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index d5e52059b96..2815ad46706 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 6dfd891faed..15cdb3b3cd2 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index 96083857d18..123c376a679 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 2020-05-15}
+% \date{Released 2020-06-03}
% \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 b8c7aa16575..28d41e3d065 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index 287c60c8ffd..ff90a196264 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index 455dcaf33e6..0338cc9e764 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 73043231ef3..9e05786b9ae 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 1c5ff9c6e6c..3e4f8659c32 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index b042b96d3f5..c15b4c7b9e6 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 2433d161623..4032b445815 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index 344e7997e51..0ff70d14655 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index fc654e2b17d..6fe7da633c0 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index f8b68f8c23d..af1e78d3ed2 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index a400eaf1aa0..23472c21411 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index a7ddadeef66..e699596a5bf 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index f5076b9ffb8..7158f5e8480 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index d0ed90c4e7d..c8e466b3cb4 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index 39f97fd1c1b..e20a6ca6ec0 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index 0f6c9dbfbef..7b2121719de 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index fcc18befca6..d8a1466c2fb 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index 4c781cd471d..f614da1a7ef 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index 5836bea27ba..4000a2d1f70 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
@@ -186,6 +186,19 @@
% encoding. Instead, the \meta{false code} is performed.
% \end{function}
%
+% \section{Conversion by expansion (for PDF contexts)}
+%
+% A small number of expandable functions are provided for use in PDF string/name
+% contexts. These \emph{assume UTF-8} and \emph{no escaping} in the input.
+%
+% \begin{function}[EXP]{\str_convert_pdfname:n}
+% \begin{syntax}
+% \cs{str_convert_pdfname:n} \meta{string}
+% \end{syntax}
+% As \cs{str_set_convert:Nnnn}, converts the \meta{string} on a byte-by-byte
+% basis with non-ASCII codepoints escaped using hashes.
+% \end{function}
+%
% \section[Creating 8-bit mappings]{Creating $8$-bit mappings}
%
% \begin{function}{\str_declare_eight_bit_encoding:nnn}
@@ -345,39 +358,41 @@
%
% \subsection{String conditionals}
%
-% \begin{macro}[EXP]{\@@_if_contains_char:NNT, \@@_if_contains_char:NNTF}
-% \begin{macro}[EXP]{\@@_if_contains_char:nNTF}
-% \begin{macro}[EXP]{\@@_if_contains_char_aux:NN}
+% \begin{macro}[EXP]{\@@_if_contains_char:NnT, \@@_if_contains_char:NnTF}
+% \begin{macro}[EXP]{\@@_if_contains_char:nnTF}
+% \begin{macro}[EXP]{\@@_if_contains_char_aux:nn,\@@_if_contains_char_auxi:nN}
% \begin{macro}[EXP]{\@@_if_contains_char_true:}
% \begin{syntax}
-% \cs{@@_if_contains_char:nNTF} \Arg{token list} \meta{char}
+% \cs{@@_if_contains_char:nnTF} \Arg{token list} \meta{char}
% \end{syntax}
% Expects the \meta{token list} to be an \meta{other string}: the
% caller is responsible for ensuring that no (too-)special catcodes
-% remain. Spaces with catcode $10$ are ignored.
+% remain.
% Loop over the characters of the string, comparing character codes.
% The loop is broken if character codes match. Otherwise we return
% \enquote{false}.
% \begin{macrocode}
-\prg_new_conditional:Npnn \@@_if_contains_char:NN #1#2 { T , TF }
+\prg_new_conditional:Npnn \@@_if_contains_char:Nn #1#2 { T , TF }
{
- \exp_after:wN \@@_if_contains_char_aux:NN \exp_after:wN #2
- #1 { \prg_break:n { ? \fi: } }
+ \exp_after:wN \@@_if_contains_char_aux:nn \exp_after:wN {#1} {#2}
+ { \prg_break:n { ? \fi: } }
\prg_break_point:
\prg_return_false:
}
-\prg_new_conditional:Npnn \@@_if_contains_char:nN #1#2 { TF }
+\cs_new:Npn \@@_if_contains_char_aux:nn #1#2
+ { \@@_if_contains_char_auxi:nN {#2} #1 }
+\prg_new_conditional:Npnn \@@_if_contains_char:nn #1#2 { TF }
{
- \@@_if_contains_char_aux:NN #2 #1 { \prg_break:n { ? \fi: } }
+ \@@_if_contains_char_auxi:nN {#2} #1 { \prg_break:n { ? \fi: } }
\prg_break_point:
\prg_return_false:
}
-\cs_new:Npn \@@_if_contains_char_aux:NN #1#2
+\cs_new:Npn \@@_if_contains_char_auxi:nN #1#2
{
\if_charcode:w #1 #2
\exp_after:wN \@@_if_contains_char_true:
\fi:
- \@@_if_contains_char_aux:NN #1
+ \@@_if_contains_char_auxi:nN {#1}
}
\cs_new:Npn \@@_if_contains_char_true:
{ \prg_break:n { \prg_return_true: \use_none:n } }
@@ -1595,8 +1610,8 @@
% \end{macro}
%
% \begin{macro}{\@@_convert_escape_name:}
-% \begin{macro}[rEXP]{\@@_escape_name_char:N}
-% \begin{macro}[rEXP]{\@@_if_escape_name:NTF}
+% \begin{macro}[rEXP]{\@@_escape_name_char:n}
+% \begin{macro}[rEXP]{\@@_if_escape_name:nTF}
% \begin{variable}{\c_@@_escape_name_str}
% \begin{variable}{\c_@@_escape_name_not_str}
% For each byte, test whether it should be output as is, or be
@@ -1609,22 +1624,22 @@
\str_const:Nn \c_@@_escape_name_not_str { ! " $ & ' } %$
\str_const:Nn \c_@@_escape_name_str { {}/<>[] }
\cs_new_protected:Npn \@@_convert_escape_name:
- { \@@_convert_gmap:N \@@_escape_name_char:N }
-\cs_new:Npn \@@_escape_name_char:N #1
+ { \@@_convert_gmap:N \@@_escape_name_char:n }
+\cs_new:Npn \@@_escape_name_char:n #1
{
- \@@_if_escape_name:NTF #1 {#1}
+ \@@_if_escape_name:nTF {#1} {#1}
{ \c_hash_str \@@_output_hexadecimal:n {`#1} }
}
-\prg_new_conditional:Npnn \@@_if_escape_name:N #1 { TF }
+\prg_new_conditional:Npnn \@@_if_escape_name:n #1 { TF }
{
\if_int_compare:w `#1 < "2A \exp_stop_f:
- \@@_if_contains_char:NNTF \c_@@_escape_name_not_str #1
+ \@@_if_contains_char:NnTF \c_@@_escape_name_not_str {#1}
\prg_return_true: \prg_return_false:
\else:
\if_int_compare:w `#1 > "7E \exp_stop_f:
\prg_return_false:
\else:
- \@@_if_contains_char:NNTF \c_@@_escape_name_str #1
+ \@@_if_contains_char:NnTF \c_@@_escape_name_str {#1}
\prg_return_false: \prg_return_true:
\fi:
\fi:
@@ -1652,8 +1667,8 @@
{
\@@_if_escape_string:NTF #1
{
- \@@_if_contains_char:NNT
- \c_@@_escape_string_str #1
+ \@@_if_contains_char:NnT
+ \c_@@_escape_string_str {#1}
{ \c_backslash_str }
#1
}
@@ -1683,28 +1698,28 @@
% \end{macro}
%
% \begin{macro}{\@@_convert_escape_url:}
-% \begin{macro}[rEXP]{\@@_escape_url_char:N}
-% \begin{macro}[rEXP]{\@@_if_escape_url:NTF}
+% \begin{macro}[rEXP]{\@@_escape_url_char:n}
+% \begin{macro}[rEXP]{\@@_if_escape_url:nTF}
% This function is similar to \cs{@@_convert_escape_name:}, escaping
% different characters.
% \begin{macrocode}
\cs_new_protected:Npn \@@_convert_escape_url:
- { \@@_convert_gmap:N \@@_escape_url_char:N }
-\cs_new:Npn \@@_escape_url_char:N #1
+ { \@@_convert_gmap:N \@@_escape_url_char:n }
+\cs_new:Npn \@@_escape_url_char:n #1
{
- \@@_if_escape_url:NTF #1 {#1}
+ \@@_if_escape_url:nTF {#1} {#1}
{ \c_percent_str \@@_output_hexadecimal:n { `#1 } }
}
-\prg_new_conditional:Npnn \@@_if_escape_url:N #1 { TF }
+\prg_new_conditional:Npnn \@@_if_escape_url:n #1 { TF }
{
\if_int_compare:w `#1 < "41 \exp_stop_f:
- \@@_if_contains_char:nNTF { "-.<> } #1
+ \@@_if_contains_char:nnTF { "-.<> } {#1}
\prg_return_true: \prg_return_false:
\else:
\if_int_compare:w `#1 > "7E \exp_stop_f:
\prg_return_false:
\else:
- \@@_if_contains_char:nNTF { [ ] } #1
+ \@@_if_contains_char:nnTF { [ ] } {#1}
\prg_return_false: \prg_return_true:
\fi:
\fi:
@@ -2581,6 +2596,63 @@
\group_end:
% \end{macrocode}
%
+% \subsection{PDF names and strings by expansion}
+%
+% \begin{macro}[EXP]{\str_convert_pdfname:n}
+% \begin{macro}[EXP]{\@@_convert_pdfname:n}
+% \begin{macro}[EXP]
+% {\@@_convert_pdfname_bytes:n, \@@_convert_pdfname_bytes_aux:n}
+% \begin{macro}[EXP]{\@@_convert_pdfname_bytes_aux:nnn}
+% To convert to PDF names by expansion, we work purely on UTF-8 input. The
+% first step is to make a string with \enquote{other} spaces,
+% after which we use a simple token-by-token approach. In Unicode
+% engines, we break down everything before one-byte codepoints, but for
+% $8$-bit engines there is no need to worry. Actual escaping is covered
+% by the same code as used in the non-expandable route.
+% \begin{macrocode}
+\cs_new:Npn \str_convert_pdfname:n #1
+ {
+ \exp_args:Ne \tl_to_str:n
+ { \str_map_function:nN {#1} \@@_convert_pdfname:n }
+ }
+\bool_lazy_or:nnTF
+ { \sys_if_engine_luatex_p: }
+ { \sys_if_engine_xetex_p: }
+ {
+ \cs_new:Npn \@@_convert_pdfname:n #1
+ {
+ \int_compare:nNnTF { `#1 } > { "7F }
+ { \@@_convert_pdfname_bytes:n {#1} }
+ { \@@_escape_name_char:n {#1} }
+ }
+ \cs_new:Npn \@@_convert_pdfname_bytes:n #1
+ {
+ \exp_args:Ne \@@_convert_pdfname_bytes_aux:n
+ { \char_to_utfviii_bytes:n {`#1} }
+ }
+ \cs_new:Npn \@@_convert_pdfname_bytes_aux:n #1
+ { \@@_convert_pdfname_bytes_aux:nnnn #1 }
+ \cs_new:Npx \@@_convert_pdfname_bytes_aux:nnnn #1#2#3#4
+ {
+ \c_hash_str \exp_not:N \@@_output_hexadecimal:n {#1}
+ \c_hash_str \exp_not:N \@@_output_hexadecimal:n {#2}
+ \exp_not:N \tl_if_blank:nF {#3}
+ {
+ \c_hash_str \exp_not:N \@@_output_hexadecimal:n {#3}
+ \exp_not:N \tl_if_blank:nF {#4}
+ {
+ \c_hash_str \exp_not:N \@@_output_hexadecimal:n {#4}
+ }
+ }
+ }
+ }
+ { \cs_new_eq:NN \@@_convert_pdfname:n \@@_escape_name_char:n }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index efd5d4f6f80..97d8fa5b436 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index 15b06c49262..911986e5d8c 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index ed23d7204ad..d2b228bb80d 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
index 312d7e180dc..9509997cfde 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index 35f1cbb9818..65032dbe3b9 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 297bceb6820..23bac066573 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 3aa06887054..d265802b0f4 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index fbdbd04bd9b..b3780ba69ed 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index 03cdf2f0f15..109d860637b 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 2020-05-15}
+% \date{Released 2020-06-03}
%
% \maketitle
%