From bb24aab36b14425d5408e5c0c889c83a70cc7a5a Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 19 May 2020 03:03:34 +0000 Subject: CTAN sync 202005190303 --- macros/latex/contrib/l3experimental/l3color.dtx | 87 +++++++++++++------------ 1 file changed, 47 insertions(+), 40 deletions(-) (limited to 'macros/latex/contrib/l3experimental/l3color.dtx') diff --git a/macros/latex/contrib/l3experimental/l3color.dtx b/macros/latex/contrib/l3experimental/l3color.dtx index de6616acf3..9438e8110f 100644 --- a/macros/latex/contrib/l3experimental/l3color.dtx +++ b/macros/latex/contrib/l3experimental/l3color.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -243,7 +243,7 @@ % \cs{color_parse:nN} \Arg{color expression} \Arg{tl} % \end{syntax} % Parses the \meta{color expression} as described above, and sets the -% \meta{tl} the the equivalent \meta{core color representation} +% \meta{tl} to the equivalent \meta{core color representation} % (used at the backend level and based on \texttt{dvips} color % representation). % \end{function} @@ -267,7 +267,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3color}{2020-01-12}{} +\ProvidesExplPackage{l3color}{2020-05-18}{} {L3 Experimental color support} % % \end{macrocode} @@ -300,6 +300,13 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{\s_@@_mark} +% Internal scan marks. \cs{s_@@_stop} is already defined in \pkg{l3color-base}. +% \begin{macrocode} +\scan_new:N \s_@@_mark +% \end{macrocode} +% \end{variable} +% % \subsection{Utility functions} % % \begin{macro}[int, TF, EXP]{\@@_if_defined:n} @@ -328,10 +335,10 @@ \@@_extract:NNw \exp_after:wN \exp_after:wN \exp_after:wN #2 \exp_after:wN \exp_after:wN \exp_after:wN #3 - \cs:w l_@@_named_ #1 _tl \cs_end: \q_stop + \cs:w l_@@_named_ #1 _tl \cs_end: \s_@@_stop } \cs_generate_variant:Nn \@@_extract:nNN { V } -\cs_new_protected:Npn \@@_extract:NNw #1#2 #3 ~ #4 \q_stop +\cs_new_protected:Npn \@@_extract:NNw #1#2 #3 ~ #4 \s_@@_stop { \tl_set:Nn #1 {#3} \tl_set:Nn #2 {#4} @@ -366,18 +373,18 @@ \str_if_eq:nnT {#1} { spot } % TO DO!!! { } \tl_set:Nx #4 - { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \q_stop } + { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \s_@@_stop } } \cs_generate_variant:Nn \@@_convert:nnnN { nnV } -\cs_new:Npn \@@_convert_gray_rgb:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_convert_gray_rgb:w #1 ~ #2 \s_@@_stop { #1 ~ #1 ~ #1 } -\cs_new:Npn \@@_convert_gray_cmyk:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_convert_gray_cmyk:w #1 ~ #2 \s_@@_stop { 0 ~ 0 ~ 0 ~ \fp_eval:n { 1 - #1 } } % \end{macrocode} % These rather odd values are based on \textsc{ntsc} television: the set are % used for the |cmyk| conversion. % \begin{macrocode} -\cs_new:Npn \@@_convert_rgb_gray:w #1 ~ #2 ~ #3 ~ #4 \q_stop +\cs_new:Npn \@@_convert_rgb_gray:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { \fp_eval:n { 0.3 * #1 + 0.59 * #2 + 0.11 * #3 } } % \end{macrocode} % The conversion from |rgb| to |cmyk| is the most complex: a two-step @@ -387,7 +394,7 @@ % Moreover, as the likelihood of anyone using a non-unitary matrix here is % tiny, we simplify and treat those two concepts as no-ops. % \begin{macrocode} -\cs_new:Npn \@@_convert_rgb_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop +\cs_new:Npn \@@_convert_rgb_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { \exp_args:Nf \@@_convert_rgb_cmyk:nnnn { \fp_eval:n { min ( 1 - #1 , 1 - #2 , 1 - #3 ) } } {#1} {#2} {#3} @@ -399,9 +406,9 @@ \fp_eval:n { min ( 1 , max ( 0 , 1 - #4 - #1 ) ) } \c_space_tl #1 } -\cs_new:Npn \@@_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \q_stop +\cs_new:Npn \@@_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \s_@@_stop { \fp_eval:n { 1 - min ( 1 , 0.3 * #1 + 0.59 * #2 + 0.11 * #3 + #4 ) } } -\cs_new:Npn \@@_convert_cmyk_rgb:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \q_stop +\cs_new:Npn \@@_convert_cmyk_rgb:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \s_@@_stop { \fp_eval:n { 1 - min ( 1 , #1 + #4 ) } \c_space_tl \fp_eval:n { 1 - min ( 1 , #2 + #4 ) } \c_space_tl @@ -464,10 +471,10 @@ { \tl_if_exist:cTF { l_@@_named_ #1 _tl } { \tl_set_eq:Nc #2 { l_@@_named_ #1 _tl } } - { \@@_parse:Nw #2#1 ! \q_stop } + { \@@_parse:Nw #2#1 ! \s_@@_stop } \@@_check_model:N #2 } -\cs_new_protected:Npn \@@_parse:Nw #1#2 ! #3 \q_stop +\cs_new_protected:Npn \@@_parse:Nw #1#2 ! #3 \s_@@_stop { \@@_if_defined:nTF {#2} { @@ -489,7 +496,7 @@ { \group_begin: \@@_extract:nNN {#2} \l_@@_model_tl \l_@@_value_tl - \@@_parse_loop:w #3 ! ! ! ! \q_stop + \@@_parse_loop:w #3 ! ! ! ! \s_@@_stop \tl_set:Nx \l_@@_internal_tl { \l_@@_model_tl \c_space_tl \l_@@_value_tl } \exp_args:NNNV \group_end: @@ -507,7 +514,7 @@ % sorted out by checking if we have further data to process: in contrast % to \pkg{xcolor}, we don't allow |!!| so the test can be simplified. % \begin{macrocode} -\cs_new_protected:Npn \@@_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \q_stop +\cs_new_protected:Npn \@@_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \s_@@_stop { \bool_lazy_or:nnF { \tl_if_blank_p:n {#1} } @@ -529,7 +536,7 @@ } } \tl_if_blank:nF {#3} - { \@@_parse_loop:w #3 ! #4 ! #5 \q_stop } + { \@@_parse_loop:w #3 ! #4 ! #5 \s_@@_stop } \@@_parse_end: } % \end{macrocode} @@ -594,19 +601,19 @@ \cs_new:Npn \@@_parse_mix:nNnn #1#2#3#4 { \use:c { @@_parse_mix_ #2 :nw } {#1} - #3 \q_mark #4 \q_stop + #3 \s_@@_mark #4 \s_@@_stop } -\cs_new:Npn \@@_parse_mix_gray:nw #1#2 \q_mark #3 \q_stop +\cs_new:Npn \@@_parse_mix_gray:nw #1#2 \s_@@_mark #3 \s_@@_stop { \fp_eval:n { #2 * #1 + #3 * ( 1 - #1 ) } } \cs_new:Npn \@@_parse_mix_rgb:nw - #1#2 ~ #3 ~ #4 \q_mark #5 ~ #6 ~ #7 \q_stop + #1#2 ~ #3 ~ #4 \s_@@_mark #5 ~ #6 ~ #7 \s_@@_stop { \fp_eval:n { #2 * #1 + #5 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #3 * #1 + #6 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #4 * #1 + #7 * ( 1 - #1 ) } } \cs_new:Npn \@@_parse_mix_cmyk:nw - #1#2 ~ #3 ~ #4 ~ #5 \q_mark #6 ~ #7 ~ #8 ~ #9 \q_stop + #1#2 ~ #3 ~ #4 ~ #5 \s_@@_mark #6 ~ #7 ~ #8 ~ #9 \s_@@_stop { \fp_eval:n { #2 * #1 + #6 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #3 * #1 + #7 * ( 1 - #1 ) } \c_space_tl @@ -636,27 +643,27 @@ % \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 \q_stop { \@@_parse_number:n {#1} } -\cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \q_stop +\cs_new:Npn \@@_parse_model_gray:w #1 , #2 \s_@@_stop { \@@_parse_number:n {#1} } +\cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \s_@@_stop { - \@@_parse_number:n {#1} ~ + \@@_parse_number:n {#1} ~ \@@_parse_number:n {#2} ~ \@@_parse_number:n {#3} } -\cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \q_stop +\cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s_@@_stop { - \@@_parse_number:n {#1} ~ + \@@_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 \q_stop - { \@@_parse_spot_aux:w #1 ! 100 ! \q_stop } -\cs_new:Npn \@@_parse_spot_aux:w #1 ! #2 ! #3 \q_stop +\cs_new:Npn \@@_parse_model_spot:w #1 , #2 \s_@@_stop + { \@@_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 - { \@@_parse_number:w #1 . 0 . \q_stop } -\cs_new:Npn \@@_parse_number:w #1 . #2 . #3 \q_stop + { \@@_parse_number:w #1 . 0 . \s_@@_stop } +\cs_new:Npn \@@_parse_number:w #1 . #2 . #3 \s_@@_stop { \tl_if_blank:nTF {#1} { 0 } {#1} . #2 } % \end{macrocode} % \end{macro} @@ -681,7 +688,7 @@ { \tl_if_empty:NF \l_color_fixed_model_tl { - \exp_after:wN \@@_check_model:w #1 \q_stop + \exp_after:wN \@@_check_model:w #1 \s_@@_stop \tl_if_eq:NNF \l_@@_model_tl \l_color_fixed_model_tl { \@@_convert:VVN \l_@@_model_tl \l_color_fixed_model_tl @@ -691,7 +698,7 @@ { \l_color_fixed_model_tl \c_space_tl \l_@@_value_tl } } } -\cs_new_protected:Npn \@@_check_model:w #1 ~ #2 \q_stop +\cs_new_protected:Npn \@@_check_model:w #1 ~ #2 \s_@@_stop { \tl_set:Nn \l_@@_model_tl {#1} \tl_set:Nn \l_@@_value_tl {#2} @@ -743,7 +750,7 @@ \cs_if_exist:cTF { @@_parse_model_ #1 :w } { \tl_set:Nx #3 - { #1 ~ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } + { #1 ~ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop } \@@_check_model:N #3 } { @@ -848,21 +855,21 @@ {#1} { \@@_if_defined:nTF {#1} - { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \q_stop } + { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \s_@@_stop } { } } { } { } } -\cs_new:Npn \@@_show:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_show:w #1 ~ #2 \s_@@_stop { \msg_show_item_unbraced:nn { model } {#1} \exp_args:Nnf \msg_show_item_unbraced:nn { value } - { \use:c { @@_show_ #1 :w } #2 \q_stop } + { \use:c { @@_show_ #1 :w } #2 \s_@@_stop } } -\cs_new:Npn \@@_show_gray:w #1 \q_stop { #1 } -\cs_new:Npn \@@_show_rgb:w #1 ~ #2 ~ #3 \q_stop { #1 ,~ #2 ,~ #3 } -\cs_new:Npn \@@_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop { #1 ,~ #2 ,~ #3 ,~ #4 } +\cs_new:Npn \@@_show_gray:w #1 \s_@@_stop { #1 } +\cs_new:Npn \@@_show_rgb:w #1 ~ #2 ~ #3 \s_@@_stop { #1 ,~ #2 ,~ #3 } +\cs_new:Npn \@@_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { #1 ,~ #2 ,~ #3 ,~ #4 } % \end{macrocode} % \end{macro} % \end{macro} -- cgit v1.2.3