summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3experimental/l3color.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-05-19 03:03:34 +0000
committerNorbert Preining <norbert@preining.info>2020-05-19 03:03:34 +0000
commitbb24aab36b14425d5408e5c0c889c83a70cc7a5a (patch)
treefacbdb453b615f64b1421387e38cfd43222f956a /macros/latex/contrib/l3experimental/l3color.dtx
parent277978fd69546e800dd8c46a0aec0d859d475ebb (diff)
CTAN sync 202005190303
Diffstat (limited to 'macros/latex/contrib/l3experimental/l3color.dtx')
-rw-r--r--macros/latex/contrib/l3experimental/l3color.dtx87
1 files changed, 47 insertions, 40 deletions
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}
%</package>
% \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}