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 | 89 |
1 files changed, 78 insertions, 11 deletions
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~ |