diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index c6be03b0ae4..1285abf7ae1 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,9 +20,9 @@ %% %% File: l3color.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2019-05-03}{} +\ProvidesExplPackage{l3color}{2019-05-28}{} {L3 Experimental color support} -\tl_new:N \l__color_tmp_tl +\tl_new:N \l__color_internal_tl \prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF } { \tl_if_exist:cTF { l__color_named_ #1 _tl } @@ -88,15 +88,7 @@ { \driver_color_pickup:N \l__color_current_tl \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl - \group_begin: - \seq_map_inline:Nn \l_char_active_seq - { - \tl_set:Nx \l__color_tmp_tl { \cs_to_str:N ##1 } - \char_set_active_eq:NN ##1 \l__color_tmp_tl - } - \tl_set:Nx \l__color_tmp_tl {#1} - \exp_args:NNV \group_end: - \__color_parse:nN \l__color_tmp_tl #2 + \exp_args:Ne \__color_parse:nN { \tl_to_str:n {#1} } #2 } \cs_new_protected:Npn \__color_parse:nN #1#2 { @@ -123,10 +115,10 @@ \group_begin: \__color_extract:nNN {#2} \l__color_model_tl \l__color_value_tl \__color_parse_loop:w #3 ! ! ! ! \q_stop - \tl_set:Nx \l__color_tmp_tl + \tl_set:Nx \l__color_internal_tl { \l__color_model_tl \c_space_tl \l__color_value_tl } \exp_args:NNNV \group_end: - \tl_set:Nn #1 \l__color_tmp_tl + \tl_set:Nn #1 \l__color_internal_tl } \cs_new_protected:Npn \__color_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \q_stop { @@ -222,14 +214,28 @@ \fp_eval:n { #4 * #1 + #8 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #5 * #1 + #9 * ( 1 - #1 ) } } -\cs_new:Npn \__color_parse_gray:w #1 , #2 \q_stop {#1} -\cs_new:Npn \__color_parse_rgb:w #1 , #2 , #3 , #4 \q_stop { #1 ~ #2 ~ #3 } -\cs_new:Npn \__color_parse_cmyk:w #1 , #2 , #3 , #4 , #5 \q_stop - { #1 ~ #2 ~ #3 ~ #4 } -\cs_new:Npn \__color_parse_spot:w #1 , #2 \q_stop +\cs_new:Npn \__color_parse_model_gray:w #1 , #2 \q_stop { \__color_parse_number:n {#1} } +\cs_new:Npn \__color_parse_model_rgb:w #1 , #2 , #3 , #4 \q_stop + { + \__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 \q_stop + { + \__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 \q_stop { \__color_parse_spot_aux:w #1 ! 100 ! \q_stop } \cs_new:Npn \__color_parse_spot_aux:w #1 ! #2 ! #3 \q_stop { #1 ~ \fp_eval:n { #2 / 100 } } +\cs_new:Npn \__color_parse_number:n #1 + { \__color_parse_number:w #1 . 0 . \q_stop } +\cs_new:Npn \__color_parse_number:w #1 . #2 . #3 \q_stop + { \tl_if_blank:nTF {#1} { 0 } {#1} . #2 } \tl_new:N \l_color_fixed_model_tl \cs_new_protected:Npn \__color_check_model:N #1 { @@ -267,10 +273,10 @@ } \cs_new_protected:Npn \__color_direct:nnN #1#2#3 { - \cs_if_exist:cTF { __color_parse_ #1 :w } + \cs_if_exist:cTF { __color_parse_model_ #1 :w } { \tl_set:Nx #3 - { #1 ~ \use:c { __color_parse_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } + { #1 ~ \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } \__color_check_model:N #3 } { |