diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx | 61 |
1 files changed, 37 insertions, 24 deletions
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx index 92ca58363a2..52e60d2b7a2 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2019-05-03} +% \date{Released 2019-05-28} % % \maketitle % @@ -265,7 +265,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3color}{2019-05-03}{} +\ProvidesExplPackage{l3color}{2019-05-28}{} {L3 Experimental color support} %</package> % \end{macrocode} @@ -292,9 +292,9 @@ % % \subsection{Setup} % -% \begin{variable}{\l_@@_tmp_tl} +% \begin{variable}{\l_@@_internal_tl} % \begin{macrocode} -\tl_new:N \l_@@_tmp_tl +\tl_new:N \l_@@_internal_tl % \end{macrocode} % \end{variable} % @@ -451,15 +451,7 @@ \driver_color_pickup:N \l_@@_current_tl \tl_set_eq:cN { l_@@_named_ . _tl } \l_@@_current_tl %</package> - \group_begin: - \seq_map_inline:Nn \l_char_active_seq - { - \tl_set:Nx \l_@@_tmp_tl { \cs_to_str:N ##1 } - \char_set_active_eq:NN ##1 \l_@@_tmp_tl - } - \tl_set:Nx \l_@@_tmp_tl {#1} - \exp_args:NNV \group_end: - \@@_parse:nN \l_@@_tmp_tl #2 + \exp_args:Ne \@@_parse:nN { \tl_to_str:n {#1} } #2 } % \end{macrocode} % Before going to all of the effort of parsing an expression, these two @@ -496,10 +488,10 @@ \group_begin: \@@_extract:nNN {#2} \l_@@_model_tl \l_@@_value_tl \@@_parse_loop:w #3 ! ! ! ! \q_stop - \tl_set:Nx \l_@@_tmp_tl + \tl_set:Nx \l_@@_internal_tl { \l_@@_model_tl \c_space_tl \l_@@_value_tl } \exp_args:NNNV \group_end: - \tl_set:Nn #1 \l_@@_tmp_tl + \tl_set:Nn #1 \l_@@_internal_tl } % \end{macrocode} % This is the loop proper: there can be an open-ended set of colors to parse, @@ -633,21 +625,42 @@ % \end{macro} % % \begin{macro}[EXP] -% {\@@_parse_gray:w, \@@_parse_rgb:w, \@@_parse_cmyk:w, \@@_parse_spot:w} +% { +% \@@_parse_model_gray:w, \@@_parse_model_rgb:w, +% \@@_parse_model_cmyk:w, \@@_parse_model_spot:w +% } +% \begin{macro}[EXP]{\@@_parse_number:n} +% \begin{macro}[EXP]{\@@_parse_number:w} % \begin{macro}[EXP]{\@@_parse_spot_aux:w} -% Turn the input into internal form. +% Turn the input into internal form, also tidying up the number quickly. % \begin{macrocode} -\cs_new:Npn \@@_parse_gray:w #1 , #2 \q_stop {#1} -\cs_new:Npn \@@_parse_rgb:w #1 , #2 , #3 , #4 \q_stop { #1 ~ #2 ~ #3 } -\cs_new:Npn \@@_parse_cmyk:w #1 , #2 , #3 , #4 , #5 \q_stop - { #1 ~ #2 ~ #3 ~ #4 } -\cs_new:Npn \@@_parse_spot:w #1 , #2 \q_stop +\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 + { + \@@_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 + { + \@@_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 { #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 + { \tl_if_blank:nTF {#1} { 0 } {#1} . #2 } % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % \subsection{Selecting colors (and color models)} % @@ -725,10 +738,10 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_direct:nnN #1#2#3 { - \cs_if_exist:cTF { @@_parse_ #1 :w } + \cs_if_exist:cTF { @@_parse_model_ #1 :w } { \tl_set:Nx #3 - { #1 ~ \use:c { @@_parse_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } + { #1 ~ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } \@@_check_model:N #3 } { |