From 810785e2302cd260eb73f01e897c5e5978963cb8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 3 Jun 2020 21:26:23 +0000 Subject: l3 (3jun20) git-svn-id: svn://tug.org/texlive/trunk@55406 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/l3backend/l3backend-dvipdfmx.def | 14 ++-- .../tex/latex/l3backend/l3backend-dvips.def | 32 +++++--- .../tex/latex/l3backend/l3backend-dvisvgm.def | 18 ++--- .../tex/latex/l3backend/l3backend-pdfmode.def | 24 +++--- .../tex/latex/l3backend/l3backend-xdvipdfmx.def | 18 ++--- .../l3experimental/l3benchmark/l3benchmark.sty | 2 +- .../tex/latex/l3experimental/l3cctab/l3cctab.sty | 17 +++- .../tex/latex/l3experimental/l3color/l3color.sty | 89 ++++++++++++++++++--- .../tex/latex/l3experimental/l3draw/l3draw.sty | 2 +- .../latex/l3experimental/l3graphics/l3graphics.sty | 2 +- .../tex/latex/l3experimental/l3pdf/l3pdf.sty | 2 +- .../latex/l3experimental/l3str/l3str-format.sty | 2 +- .../l3experimental/l3sys-shell/l3sys-shell.sty | 2 +- .../tex/latex/l3experimental/xcoffins/xcoffins.sty | 2 +- .../tex/latex/l3experimental/xgalley/l3galley.sty | 2 +- .../tex/latex/l3experimental/xgalley/xgalley.sty | 2 +- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 93 ++++++++++++++-------- .../tex/latex/l3kernel/expl3-generic.tex | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 +- 20 files changed, 228 insertions(+), 101 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index 2e4d20ed039..a82491c6aaa 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2020-05-05}{} + {l3backend-dvipdfmx.def}{2020-06-03}{} {L3 backend support: dvipdfmx} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -58,14 +58,14 @@ } { \exp_last_unbraced:Nx \__color_backend_pickup:w - { \current@color } \q_stop #1 + { \current@color } \s__color_stop #1 } } - \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \q_stop #3 + \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 { \tl_set:Nn #3 { #1 ~ #2 } } } } -\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { \__color_backend_select:x { @@ -74,14 +74,14 @@ \fp_eval:n {#3} ~ \fp_eval:n {#4} } } -\cs_new_protected:Npn \__color_backend_gray:n #1 +\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop { \__color_backend_select:x { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } } -\cs_new_protected:Npn \__color_backend_spot:nn #1#2 +\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop { \__color_backend_select:n { #1 } } \cs_new_protected:Npn \__color_backend_select:n #1 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index bc6e7ba30f7..4c768d9628a 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2020-05-05}{} + {l3backend-dvips.def}{2020-06-03}{} {L3 backend support: dvips} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -79,14 +79,14 @@ } { \exp_last_unbraced:Nx \__color_backend_pickup:w - { \current@color } \q_stop #1 + { \current@color } \s__color_stop #1 } } - \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \q_stop #3 + \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 { \tl_set:Nn #3 { #1 ~ #2 } } } } -\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { \__color_backend_select:x { @@ -95,14 +95,14 @@ \fp_eval:n {#3} ~ \fp_eval:n {#4} } } -\cs_new_protected:Npn \__color_backend_gray:n #1 +\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop { \__color_backend_select:x { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } } -\cs_new_protected:Npn \__color_backend_spot:nn #1#2 +\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop { \__color_backend_select:n { #1 } } \cs_new_protected:Npn \__color_backend_select:n #1 { @@ -472,13 +472,28 @@ \cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2 { \__pdf_backend_pdfmark:x - { #1 [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL } + { #1 ~0~ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL } } \cs_new_protected:Npn \__pdf_backend_object_write_dict:nn #1#2 { \__pdf_backend_pdfmark:x { #1 << \exp_not:n {#2} >> /PUT } } +\cs_new_protected:Npn \__pdf_backend_object_write_fstream:nn #1#2 + { + \exp_args:Nx + \__pdf_backend_object_write_fstream:nnn {#1} #2 + } +\cs_new_protected:Npn \__pdf_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 \__pdf_backend_object_write_stream:nn #1#2 { \exp_args:Nx @@ -488,7 +503,6 @@ { \__kernel_backend_postscript:n { - [nobreak] mark ~ #1 ~ ( #3 ) /PUT ~ pdfmark ~ mark ~ #1 ~ << #2 >> /PUT ~ pdfmark } diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index c548b96c3aa..06d084a246d 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2020-05-05}{} + {l3backend-dvisvgm.def}{2020-06-03}{} {L3 backend support: dvisvgm} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -59,14 +59,14 @@ } { \exp_last_unbraced:Nx \__color_backend_pickup:w - { \current@color } \q_stop #1 + { \current@color } \s__color_stop #1 } } - \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \q_stop #3 + \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 { \tl_set:Nn #3 { #1 ~ #2 } } } } -\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { \__color_backend_select:x { @@ -75,14 +75,14 @@ \fp_eval:n {#3} ~ \fp_eval:n {#4} } } -\cs_new_protected:Npn \__color_backend_gray:n #1 +\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop { \__color_backend_select:x { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } } -\cs_new_protected:Npn \__color_backend_spot:nn #1#2 +\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop { \__color_backend_select:n { #1 } } \cs_new_protected:Npn \__color_backend_select:n #1 { @@ -498,11 +498,11 @@ dvisvgm:img~ \dim_to_decimal:n { \l_graphics_ury_dim } ~ \dim_to_decimal:n { \l_graphics_ury_dim } ~ - \__graphics_backend_include_bitmap_quote:w #1 " #1 " \q_stop + \__graphics_backend_include_bitmap_quote:w #1 " #1 " \s__graphics_stop } } \cs_new_eq:NN \__graphics_backend_include_jpg:n \__graphics_backend_include_png:n -\cs_new:Npn \__graphics_backend_include_bitmap_quote:w #1 " #2 " #3 \q_stop +\cs_new:Npn \__graphics_backend_include_bitmap_quote:w #1 " #2 " #3 \s__graphics_stop { " #2 " } %% File: l3backend-pdf.dtx \box_new:N \l__pdf_internal_box diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def index 17ebeeafbdd..1e89dc857e6 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdfmode.def}{2020-05-05}{} + {l3backend-pdfmode.def}{2020-06-03}{} {L3 backend support: PDF mode} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -76,10 +76,10 @@ \cs_set_protected:Npn \__color_backend_pickup:N #1 { \exp_last_unbraced:Nx \__color_backend_pickup:w - { \current@color } ~ 0 ~ 0 ~ 0 \q_stop #1 + { \current@color } ~ 0 ~ 0 ~ 0 \s__color_stop #1 } \cs_new_protected:Npn \__color_backend_pickup:w - #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop #7 + #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7 { \str_if_eq:nnTF {#2} { g } { \tl_set:Nn #7 { gray ~ #1 } } @@ -104,39 +104,39 @@ } } \int_new:N \l__kernel_color_stack_int -\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { \use:x { - \__color_backend_cmyk_aux:nnnn + \__color_backend_cmyk:nnnn { \fp_eval:n {#1} } { \fp_eval:n {#2} } { \fp_eval:n {#3} } { \fp_eval:n {#4} } } } -\cs_new_protected:Npn \__color_backend_cmyk_aux:nnnn #1#2#3#4 +\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 { \__color_backend_select:n { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } } +\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop + { \exp_args:Nx \__color_backend_gray:n { \fp_eval:n {#1} } } \cs_new_protected:Npn \__color_backend_gray:n #1 - { \exp_args:Nx \__color_backend_gray_aux:n { \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_gray_aux:n #1 { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__color_backend_rgb:w #1~ #2 ~ #3 \s__color_stop { \use:x { - \__color_backend_rgb_aux:nnn + \__color_backend_rgb:nnn { \fp_eval:n {#1} } { \fp_eval:n {#2} } { \fp_eval:n {#3} } } } -\cs_new_protected:Npn \__color_backend_rgb_aux:nnn #1#2#3 +\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 { \__color_backend_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } } -\cs_new_protected:Npn \__color_backend_spot:nn #1#2 +\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } } \cs_new_protected:Npx \__color_backend_select:n #1 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def index 8065a5ce5ca..e385c1bcf80 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xdvipdfmx.def}{2020-05-05}{} + {l3backend-xdvipdfmx.def}{2020-06-03}{} {L3 backend support: xdvipdfmx} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -58,14 +58,14 @@ } { \exp_last_unbraced:Nx \__color_backend_pickup:w - { \current@color } \q_stop #1 + { \current@color } \s__color_stop #1 } } - \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \q_stop #3 + \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3 { \tl_set:Nn #3 { #1 ~ #2 } } } } -\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { \__color_backend_select:x { @@ -74,14 +74,14 @@ \fp_eval:n {#3} ~ \fp_eval:n {#4} } } -\cs_new_protected:Npn \__color_backend_gray:n #1 +\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop { \__color_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop { \__color_backend_select:x { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} } } -\cs_new_protected:Npn \__color_backend_spot:nn #1#2 +\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop { \__color_backend_select:n { #1 } } \cs_new_protected:Npn \__color_backend_select:n #1 { @@ -480,12 +480,12 @@ \cs_new_protected:Npn \__graphics_backend_include_pdf:n #1 { \tex_XeTeXpdffile:D - \__graphics_backend_include_pdf_quote:w #1 "#1" \q_stop \c_space_tl + \__graphics_backend_include_pdf_quote:w #1 "#1" \s__graphics_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 \__graphics_backend_getbb_pagebox:w \l_graphics_pagebox_tl } -\cs_new:Npn \__graphics_backend_include_pdf_quote:w #1 " #2 " #3 \q_stop +\cs_new:Npn \__graphics_backend_include_pdf_quote:w #1 " #2 " #3 \s__graphics_stop { " #2 " } %% File: l3backend-pdf.dtx \box_new:N \l__pdf_internal_box diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty index e3131323517..460e957494e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty @@ -20,7 +20,7 @@ %% %% File: l3benchmark.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3benchmark}{2020-05-18}{} +\ProvidesExplPackage{l3benchmark}{2020-06-03}{} {L3 Experimental benchmarking} \sys_if_engine_luatex:TF { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty index 4b1c560d98e..fb13a807d29 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty @@ -20,7 +20,7 @@ %% %% File: l3cctab.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3cctab}{2020-05-18}{} +\ProvidesExplPackage{l3cctab}{2020-06-03}{} {L3 Experimental category code tables} \int_new:N \g__cctab_allocate_int \int_gset:Nn \g__cctab_allocate_int { -1 } @@ -153,6 +153,21 @@ { \__kernel_msg_error:nn { kernel } { cctab-extra-end } } { \__cctab_end: } } +\cs_new_protected:Npn \cctab_select:N #1 + { + \__cctab_chk_if_valid:NT #1 + { + \__cctab_begin:N #1 + \group_insert_after:N \__cctab_end_fast: + } + } +\cs_generate_variant:Nn \cctab_select:N { c } +\cs_new_protected:Npx \__cctab_end_fast: + { + \int_gsub:Nn \exp_not:N \g__cctab_stack_int { 2 } + \sys_if_engine_luatex:T + { \seq_gpop:NN \exp_not:N \g__cctab_stack_seq \exp_not:N \l__cctab_tmp_tl } + } \prg_new_eq_conditional:NNn \cctab_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \cctab_if_exist:c \cs_if_exist:c diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index d7829a472ac..86ebda3e33e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,7 +20,7 @@ %% %% File: l3color.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2020-05-18}{} +\ProvidesExplPackage{l3color}{2020-06-03}{} {L3 Experimental color support} \tl_new:N \l__color_internal_tl \scan_new:N \s__color_mark @@ -215,28 +215,95 @@ \fp_eval:n { #4 * #1 + #8 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #5 * #1 + #9 * ( 1 - #1 ) } } -\cs_new:Npn \__color_parse_model_gray:w #1 , #2 \s__color_stop { \__color_parse_number:n {#1} } +\cs_new:Npn \__color_parse_model_gray:w #1 , #2 \s__color_stop + { gray ~ \__color_parse_number:n {#1} } \cs_new:Npn \__color_parse_model_rgb:w #1 , #2 , #3 , #4 \s__color_stop { + rgb ~ \__color_parse_number:n {#1} ~ \__color_parse_number:n {#2} ~ \__color_parse_number:n {#3} } \cs_new:Npn \__color_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s__color_stop { + cmyk ~ \__color_parse_number:n {#1} ~ \__color_parse_number:n {#2} ~ \__color_parse_number:n {#3} ~ \__color_parse_number:n {#4} } \cs_new:Npn \__color_parse_model_spot:w #1 , #2 \s__color_stop - { \__color_parse_spot_aux:w #1 ! 100 ! \s__color_stop } + { + spot ~ + \__color_parse_spot_aux:w #1 ! 100 ! \s__color_stop + } \cs_new:Npn \__color_parse_spot_aux:w #1 ! #2 ! #3 \s__color_stop { #1 ~ \fp_eval:n { #2 / 100 } } \cs_new:Npn \__color_parse_number:n #1 { \__color_parse_number:w #1 . 0 . \s__color_stop } \cs_new:Npn \__color_parse_number:w #1 . #2 . #3 \s__color_stop { \tl_if_blank:nTF {#1} { 0 } {#1} . #2 } +\cs_new:Npn \__color_parse_model_Hsb:w #1 , #2 , #3 , #4 \s__color_stop + { + \exp_args:Ne \__color_parse_model_hsb:nnn { \fp_eval:n { #1 / 360 } } + {#2} {#3} + } +\cs_new:Npn \__color_parse_model_hsb:nnn #1#2#3 + { + rgb ~ + \exp_args:Ne \__color_parse_model_hsb_aux:nnn + { \fp_eval:n { 6 * #1 } } {#2} {#3} + } +\cs_new:Npn \__color_parse_model_hsb_aux:nnn #1#2#3 + { + \exp_args:Nee \__color_parse_model_hsb_aux:nnnn + { \fp_eval:n { floor(#1) } } { \fp_eval:n { #1 - floor(#1) } } + {#2} {#3} + } +\cs_new:Npn \__color_parse_model_hsb_aux:nnnn #1#2#3#4 + { + \use:e + { + \exp_not:N \__color_parse_model_hsb_aux:nnnnn + { \__color_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 \__color_parse_model_hsb_aux:nnnnn #1#2#3#4#5 + { \use:c { __color_parse_model_hsb_ #5 :nnnn } {#1} {#2} {#3} {#4} } +\cs_new:cpn { __color_parse_model_hsb_0:nnnn } #1#2#3#4 { #1 ~ #4 ~ #2 } +\cs_new:cpn { __color_parse_model_hsb_1:nnnn } #1#2#3#4 { #3 ~ #1 ~ #2 } +\cs_new:cpn { __color_parse_model_hsb_2:nnnn } #1#2#3#4 { #2 ~ #1 ~ #4 } +\cs_new:cpn { __color_parse_model_hsb_3:nnnn } #1#2#3#4 { #2 ~ #3 ~ #1 } +\cs_new:cpn { __color_parse_model_hsb_4:nnnn } #1#2#3#4 { #4 ~ #2 ~ #1 } +\cs_new:cpn { __color_parse_model_hsb_5:nnnn } #1#2#3#4 { #1 ~ #2 ~ #3 } +\cs_new:cpn { __color_parse_model_hsb_6:nnnn } #1#2#3#4 { #1 ~ #2 ~ #2 } +\cs_new:Npn \__color_parse_model_HSB:w #1 , #2 , #3 , #4 \s__color_stop + { + \exp_args:Neee \__color_parse_model_hsb:nnn + { \fp_eval:n {#1 / 360} } + { \fp_eval:n {#2 / 255} } + { \fp_eval:n {#3 / 255} } + } +\cs_new:Npn \__color_parse_model_HTML:w #1 , #2 \s__color_stop + { \__color_parse_model_HTML_aux:w #1 0 0 0 0 0 0 \s__color_stop } +\cs_new:Npn \__color_parse_model_HTML_aux:w #1#2#3#4#5#6#7 \s__color_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 \__color_parse_model_RGB:w #1 , #2 , #3 , #4 \s__color_stop + { + rgb ~ + \fp_eval:n { round(#1 / 255,5) } ~ + \fp_eval:n { round(#2 / 255,5) } ~ + \fp_eval:n { round(#3 / 255,5) } + } \tl_new:N \l_color_fixed_model_tl \cs_new_protected:Npn \__color_check_model:N #1 { @@ -277,11 +344,11 @@ \cs_if_exist:cTF { __color_parse_model_ #1 :w } { \tl_set:Nx #3 - { #1 ~ \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop } + { \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop } \__color_check_model:N #3 } { - \__kernel_msg_error:nnn { color } { invalid-model } {#1} + \__kernel_msg_error:nnn { color } { unknown-model } {#1} } } \tl_new:N \l__color_named_tl @@ -347,18 +414,18 @@ \cs_new:Npn \__color_show_gray:w #1 \s__color_stop { #1 } \cs_new:Npn \__color_show_rgb:w #1 ~ #2 ~ #3 \s__color_stop { #1 ,~ #2 ,~ #3 } \cs_new:Npn \__color_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { #1 ,~ #2 ,~ #3 ,~ #4 } -\__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. + } \__kernel_msg_new:nnn { color } { show } { The~color~#1~ diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index 2939b76fb99..76faead77f0 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -28,7 +28,7 @@ %% %% File: l3draw.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2020-05-18}{} +\ProvidesExplPackage{l3draw}{2020-06-03}{} {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 35752a1defe..807a3339bf7 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty @@ -20,7 +20,7 @@ %% %% File: l3graphics.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3graphics}{2020-05-18}{} +\ProvidesExplPackage{l3graphics}{2020-06-03}{} {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 e60cfed9fbf..255f388a75f 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty @@ -20,7 +20,7 @@ %% %% File: l3pdf.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3pdf}{2020-05-18}{} +\ProvidesExplPackage{l3pdf}{2020-06-03}{} {L3 Experimental core PDF support} \scan_new:N \s__pdf_stop \bool_new:N \g__pdf_init_bool 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 90025ff46e5..a0b0da8da52 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -20,7 +20,7 @@ %% %% File: l3str-format.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2020-05-18}{} +\ProvidesExplPackage{l3str-format}{2020-06-03}{} {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 eb2f53c68e9..92c47b4066a 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty @@ -20,7 +20,7 @@ %% %% File: l3sys-shell.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3sys-shell}{2020-05-18}{} +\ProvidesExplPackage{l3sys-shell}{2020-06-03}{} {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 e3c873bbf9b..af5f8feeb48 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty @@ -20,7 +20,7 @@ %% %% File: xcoffins.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xcoffins}{2020-05-18}{} +\ProvidesExplPackage{xcoffins}{2020-06-03}{} {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 d2811198790..7de602702be 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2020-05-18}{} +\ProvidesExplPackage{l3galley}{2020-06-03}{} {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 2812635e380..8b61537746d 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -20,7 +20,7 @@ %% %% File: xgalley.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xgalley}{2020-05-18}{} +\ProvidesExplPackage{xgalley}{2020-06-03}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} \clist_new:N \l__galley_tmpa_clist diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 5249b817c19..d1eab62be8b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -68,7 +68,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-05-15}% +\def\ExplFileDate{2020-06-03}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -21066,25 +21066,27 @@ \bool_new:N \g__str_error_bool \flag_new:n { str_byte } \flag_new:n { str_error } -\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF } +\prg_new_conditional:Npnn \__str_if_contains_char:Nn #1#2 { T , TF } { - \exp_after:wN \__str_if_contains_char_aux:NN \exp_after:wN #2 - #1 { \prg_break:n { ? \fi: } } + \exp_after:wN \__str_if_contains_char_aux:nn \exp_after:wN {#1} {#2} + { \prg_break:n { ? \fi: } } \prg_break_point: \prg_return_false: } -\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF } +\cs_new:Npn \__str_if_contains_char_aux:nn #1#2 + { \__str_if_contains_char_auxi:nN {#2} #1 } +\prg_new_conditional:Npnn \__str_if_contains_char:nn #1#2 { TF } { - \__str_if_contains_char_aux:NN #2 #1 { \prg_break:n { ? \fi: } } + \__str_if_contains_char_auxi:nN {#2} #1 { \prg_break:n { ? \fi: } } \prg_break_point: \prg_return_false: } -\cs_new:Npn \__str_if_contains_char_aux:NN #1#2 +\cs_new:Npn \__str_if_contains_char_auxi:nN #1#2 { \if_charcode:w #1 #2 \exp_after:wN \__str_if_contains_char_true: \fi: - \__str_if_contains_char_aux:NN #1 + \__str_if_contains_char_auxi:nN {#1} } \cs_new:Npn \__str_if_contains_char_true: { \prg_break:n { \prg_return_true: \use_none:n } } @@ -21777,22 +21779,22 @@ \str_const:Nn \c__str_escape_name_not_str { ! " $ & ' } %$ \str_const:Nn \c__str_escape_name_str { {}/<>[] } \cs_new_protected:Npn \__str_convert_escape_name: - { \__str_convert_gmap:N \__str_escape_name_char:N } -\cs_new:Npn \__str_escape_name_char:N #1 + { \__str_convert_gmap:N \__str_escape_name_char:n } +\cs_new:Npn \__str_escape_name_char:n #1 { - \__str_if_escape_name:NTF #1 {#1} + \__str_if_escape_name:nTF {#1} {#1} { \c_hash_str \__str_output_hexadecimal:n {`#1} } } -\prg_new_conditional:Npnn \__str_if_escape_name:N #1 { TF } +\prg_new_conditional:Npnn \__str_if_escape_name:n #1 { TF } { \if_int_compare:w `#1 < "2A \exp_stop_f: - \__str_if_contains_char:NNTF \c__str_escape_name_not_str #1 + \__str_if_contains_char:NnTF \c__str_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: - \__str_if_contains_char:NNTF \c__str_escape_name_str #1 + \__str_if_contains_char:NnTF \c__str_escape_name_str {#1} \prg_return_false: \prg_return_true: \fi: \fi: @@ -21805,8 +21807,8 @@ { \__str_if_escape_string:NTF #1 { - \__str_if_contains_char:NNT - \c__str_escape_string_str #1 + \__str_if_contains_char:NnT + \c__str_escape_string_str {#1} { \c_backslash_str } #1 } @@ -21830,22 +21832,22 @@ \fi: } \cs_new_protected:Npn \__str_convert_escape_url: - { \__str_convert_gmap:N \__str_escape_url_char:N } -\cs_new:Npn \__str_escape_url_char:N #1 + { \__str_convert_gmap:N \__str_escape_url_char:n } +\cs_new:Npn \__str_escape_url_char:n #1 { - \__str_if_escape_url:NTF #1 {#1} + \__str_if_escape_url:nTF {#1} {#1} { \c_percent_str \__str_output_hexadecimal:n { `#1 } } } -\prg_new_conditional:Npnn \__str_if_escape_url:N #1 { TF } +\prg_new_conditional:Npnn \__str_if_escape_url:n #1 { TF } { \if_int_compare:w `#1 < "41 \exp_stop_f: - \__str_if_contains_char:nNTF { "-.<> } #1 + \__str_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: - \__str_if_contains_char:nNTF { [ ] } #1 + \__str_if_contains_char:nnTF { [ ] } {#1} \prg_return_false: \prg_return_true: \fi: \fi: @@ -22330,6 +22332,43 @@ \prg_break: } \group_end: +\cs_new:Npn \str_convert_pdfname:n #1 + { + \exp_args:Ne \tl_to_str:n + { \str_map_function:nN {#1} \__str_convert_pdfname:n } + } +\bool_lazy_or:nnTF + { \sys_if_engine_luatex_p: } + { \sys_if_engine_xetex_p: } + { + \cs_new:Npn \__str_convert_pdfname:n #1 + { + \int_compare:nNnTF { `#1 } > { "7F } + { \__str_convert_pdfname_bytes:n {#1} } + { \__str_escape_name_char:n {#1} } + } + \cs_new:Npn \__str_convert_pdfname_bytes:n #1 + { + \exp_args:Ne \__str_convert_pdfname_bytes_aux:n + { \char_to_utfviii_bytes:n {`#1} } + } + \cs_new:Npn \__str_convert_pdfname_bytes_aux:n #1 + { \__str_convert_pdfname_bytes_aux:nnnn #1 } + \cs_new:Npx \__str_convert_pdfname_bytes_aux:nnnn #1#2#3#4 + { + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#1} + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#2} + \exp_not:N \tl_if_blank:nF {#3} + { + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#3} + \exp_not:N \tl_if_blank:nF {#4} + { + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#4} + } + } + } + } + { \cs_new_eq:NN \__str_convert_pdfname:n \__str_escape_name_char:n } %% File: l3tl-analysis.dtx \scan_new:N \s__tl \cs_new_eq:NN \l__tl_analysis_token ? @@ -26656,15 +26695,7 @@ { \__color_select:w #1 \s__color_stop } \cs_generate_variant:Nn \__color_select:n { V } \cs_new_protected:Npn \__color_select:w #1 ~ #2 \s__color_stop - { \use:c { __color_select_ #1 :w } #2 \s__color_stop } -\cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { \__color_backend_cmyk:nnnn {#1} {#2} {#3} {#4} } -\cs_new_protected:Npn \__color_select_gray:w #1 \s__color_stop - { \__color_backend_gray:n {#1} } -\cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \s__color_stop - { \__color_backend_rgb:nnn {#1} {#2} {#3} } -\cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_spot:nn {#1} {#2} } + { \use:c { __color_backend_ #1 :w } #2 \s__color_stop } \tl_new:N \l__color_current_tl \tl_set:Nn \l__color_current_tl { gray~0 } %% File: l3coffins.dtx diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index e3eba08c2c6..cb8d09c4f0d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-05-15}% +\def\ExplFileDate{2020-06-03}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index c0cbe0e53ab..538c3fddab2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-05-15}% +\def\ExplFileDate{2020-06-03}% \let\ExplLoaderFileDate\ExplFileDate \everyjob\expandafter{\the\everyjob \message{L3 programming layer <\ExplFileDate>}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 8878c82ddf8..4ded77abe6b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-05-15}% +\def\ExplFileDate{2020-06-03}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% -- cgit v1.2.3