summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty89
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~