[latex3-commits] [git/LaTeX3-latex3-latex3] color-multi-model: Merge branch 'master' into color-multi-model (4f67c7a51)
Joseph Wright
joseph.wright at morningstar2.co.uk
Thu Jun 11 09:00:42 CEST 2020
Repository : https://github.com/latex3/latex3
On branch : color-multi-model
Link : https://github.com/latex3/latex3/commit/4f67c7a519594418819c103218f8937dbbf8f516
>---------------------------------------------------------------
commit 4f67c7a519594418819c103218f8937dbbf8f516
Merge: a0dd934d2 1dfbfef9a
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Thu Jun 11 07:28:43 2020 +0100
Merge branch 'master' into color-multi-model
>---------------------------------------------------------------
4f67c7a519594418819c103218f8937dbbf8f516
l3backend/CHANGELOG.md | 5 +
l3backend/l3backend-color.dtx | 105 ++++--------
l3backend/l3backend-draw.dtx | 188 +++++++--------------
l3experimental/CHANGELOG.md | 4 +
l3experimental/l3color/l3color.dtx | 124 +++++++-------
.../l3color/testfiles/m3color001.ptex.tlg | 34 ++--
l3experimental/l3color/testfiles/m3color001.tlg | 34 ++--
.../l3color/testfiles/m3color001.uptex.tlg | 34 ++--
.../l3color/testfiles/m3color001.xetex.tlg | 34 ++--
l3experimental/l3color/testfiles/m3color002.tlg | 22 +--
.../l3color/testfiles/m3color003.ptex.tlg | 6 +-
l3experimental/l3color/testfiles/m3color003.tlg | 6 +-
.../l3color/testfiles/m3color003.uptex.tlg | 6 +-
.../l3color/testfiles/m3color003.xetex.tlg | 6 +-
l3experimental/l3draw/build.lua | 2 +-
l3experimental/l3draw/l3draw-state.dtx | 29 +---
.../l3draw/testfiles/m3draw004.luatex.tlg | 20 +--
l3experimental/l3draw/testfiles/m3draw004.ptex.tlg | 20 +--
l3experimental/l3draw/testfiles/m3draw004.tlg | 20 +--
.../l3draw/testfiles/m3draw004.uptex.tlg | 20 +--
.../l3draw/testfiles/m3draw004.xetex.tlg | 20 +--
l3experimental/l3draw/testfiles/m3draw005.ptex.tlg | 6 +-
.../l3draw/testfiles/m3draw005.uptex.tlg | 6 +-
l3experimental/l3draw/testfiles/m3draw006.ptex.tlg | 54 +++---
.../l3draw/testfiles/m3draw006.uptex.tlg | 54 +++---
l3experimental/l3draw/testfiles/m3draw007.ptex.tlg | 10 +-
l3experimental/l3draw/testfiles/m3draw007.tlg | 10 +-
.../l3draw/testfiles/m3draw007.uptex.tlg | 10 +-
.../l3draw/testfiles/m3draw007.xetex.tlg | 10 +-
l3kernel/CHANGELOG.md | 3 +
l3kernel/l3color-base.dtx | 28 ++-
l3kernel/testfiles/m3expl001.luatex.tlg | 17 +-
l3kernel/testfiles/m3expl001.ptex.tlg | 21 +--
l3kernel/testfiles/m3expl001.tlg | 17 +-
l3kernel/testfiles/m3expl001.uptex.tlg | 21 +--
l3kernel/testfiles/m3expl001.xetex.tlg | 17 +-
l3kernel/testfiles/m3expl003.luatex.tlg | 17 +-
l3kernel/testfiles/m3expl003.ptex.tlg | 21 +--
l3kernel/testfiles/m3expl003.tlg | 17 +-
l3kernel/testfiles/m3expl003.uptex.tlg | 21 +--
l3kernel/testfiles/m3expl003.xetex.tlg | 17 +-
41 files changed, 482 insertions(+), 634 deletions(-)
diff --cc l3experimental/CHANGELOG.md
index b05c5cc4a,fc0de0c55..7e1ba16b9
--- a/l3experimental/CHANGELOG.md
+++ b/l3experimental/CHANGELOG.md
@@@ -7,9 -7,10 +7,13 @@@ this project uses date-based 'snapshot
## [Unreleased]
+### Added
+- Support for multiple color models
+
+ ### Changed
+ - Internal color model
+ - Internal performance enhancements
+
## [2020-06-03]
### Added
diff --cc l3experimental/l3color/l3color.dtx
index f83833d29,8c45bb95c..fb5fed38a
--- a/l3experimental/l3color/l3color.dtx
+++ b/l3experimental/l3color/l3color.dtx
@@@ -855,13 -824,8 +854,13 @@@
%
% \begin{macro}{\color_select:n}
% \begin{macro}{\color_select:nn}
+% \begin{macro}{\@@_select_main:w, \@@_select_loop:w}
+% \begin{macro}{\@@_select:nnN}
- % \begin{macro}{\@@_select_swap:w}
++% \begin{macro}{\@@_select_swap:nn}
% Parse the input expressions then get the backend to actually activate
-% them.
+% them. The main complexity here is the need to check through multiple models.
+% That is done \enquote{locally} here as the approach is subtly different to
+% when different models are being stored.
% \begin{macrocode}
\cs_new_protected:Npn \color_select:n #1
{
@@@ -875,51 -838,25 +874,51 @@@
\@@_select:
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Direct model use}
-%
-% \begin{macro}{\@@_direct:nnN}
-% Directly set a color based on a model/value combination.
+% If the first color model is the fixed one, or if there is no fixed
+% model, we don't need most of the data: just set up and apply the backend
+% function.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_select_main:w
+ #1 / #2 / #3 \s_@@_mark #4 / #5 / #6 \s_@@_stop
+ {
+ \@@_select:nnN {#1} {#4} \l_@@_current_tl
+ \bool_lazy_or:nnF
+ { \tl_if_empty_p:N \l_color_fixed_model_tl }
+ { \str_if_eq_p:nV {#1} \l_color_fixed_model_tl }
+ { \@@_select_loop:w #2 / #3 \s_@@_mark #5 / #6 \s_@@_stop }
+ }
+% \end{macrocode}
+% If a fixed model applies, we need to check each possible value in order.
+% If there is no hit at all, fall back on the generic formula-based
+% interchange.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_direct:nnN #1#2#3
+\cs_new_protected:Npn \@@_select_loop:w #1 / #2 \s_@@_mark #3 / #4 \s_@@_stop
+ {
+ \str_if_eq:nVTF {#1} \l_color_fixed_model_tl
+ { \@@_select:nnN {#1} {#3} \l_@@_current_tl }
+ {
+ \tl_if_blank:nTF {#1}
+ {
- \exp_after:wN \@@_select_swap:w
- \l_@@_current_tl \s_@@_stop
++ \exp_after:wN \@@_select_swap:nn
++ \l_@@_current_tl
+ }
+ { \@@_select_loop:w #2 \s_@@_mark #4 \s_@@_stop }
+ }
+ }
+\cs_new_protected:Npn \@@_select:nnN #1#2#3
{
\cs_if_exist:cTF { @@_parse_model_ #1 :w }
{
\tl_set:Nx #3
{ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop }
- \@@_check_model:N #3
- }
- {
- \__kernel_msg_error:nnn { color } { unknown-model } {#1}
}
+ { \__kernel_msg_error:nnn { color } { unknown-model } {#1} }
+ }
- \cs_new_protected:Npn \@@_select_swap:w #1 ~ #2 \s_@@_stop
++\cs_new_protected:Npn \@@_select_swap:nn #1#2
+ {
+ \@@_convert:nVN {#1} \l_color_fixed_model_tl \l_@@_value_tl
+ \tl_set:Nx #1
- { \l_color_fixed_model_tl \c_space_tl \l_@@_value_tl }
++ { { \l_color_fixed_model_tl } { \l_@@_value_tl } }
}
% \end{macrocode}
% \end{macro}
@@@ -953,14 -886,9 +952,13 @@@
%
% \begin{macro}{\color_set:nn}
% \begin{macro}{\color_set:nnn}
+% \begin{macro}{\@@_set:nw}
+% \begin{macro}{\@@_set_loop:nw}
- % \begin{macro}[EXP]{\@@_gobble_model:w}
% \begin{macro}{\color_set_eq:nn}
-% Defining named colors has to include a step to force creation of the
-% underlying token list to avoid errors when checking is enabled.
+% Defining named colors means working through the model list and saving
+% both the \enquote{main} color and any equivalents in other models. Even
+% if there is only one model, we store a |prop| as well as a |tl|, as there
+% could be grouping weirdness, etc.
% \begin{macrocode}
\cs_new_protected:Npn \color_set:nn #1#2
{
@@@ -968,29 -896,10 +966,28 @@@
\@@_store:Nn \l_@@_named_tl {#1}
}
\cs_new_protected:Npn \color_set:nnn #1#2#3
+ { \@@_set:nw {#1} #2 / / \s_@@_mark #3 / / \s_@@_stop }
+\cs_new_protected:Npn \@@_set:nw
+ #1#2 / #3 / #4 \s_@@_mark #5 / #6 / #7 \s_@@_stop
{
- \@@_direct:nnN {#2} {#3} \l_@@_named_tl
+ \@@_select:nnN {#2} {#5} \l_@@_named_tl
\@@_store:Nn \l_@@_named_tl {#1}
+ \prop_clear_new:c { l_@@_named_ #1 _prop }
+ \prop_put:cnx { l_@@_named_ #1 _prop } {#2}
- { \exp_after:wN \@@_gobble_model:w \l_@@_named_tl }
++ { \exp_after:wN \use_ii:nn \l_@@_named_tl }
+ \@@_set_loop:nw {#1} #3 / #4 \s_@@_mark #6 / #7 \s_@@_stop
+ }
+\cs_new_protected:Npn \@@_set_loop:nw
+ #1#2 / #3 \s_@@_mark #4 / #5 \s_@@_stop
+ {
+ \tl_if_blank:nF {#2}
+ {
+ \@@_select:nnN {#2} {#4} \l_@@_named_tl
+ \prop_put:cnx { l_@@_named_ #1 _prop } {#2}
- { \exp_after:wN \@@_gobble_model:w \l_@@_named_tl }
++ { \exp_after:wN \use_ii:nn \l_@@_named_tl }
+ \@@_set_loop:nw {#1} #3 \s_@@_mark #5 \s_@@_stop
+ }
}
- \cs_new:Npn \@@_gobble_model:w #1 ~ { }
\cs_new_protected:Npn \color_set_eq:nn #1#2
{
\@@_if_defined:nTF {#2}
@@@ -1010,7 -919,7 +1007,6 @@@
% \end{macro}
% \end{macro}
% \end{macro}
--% \end{macro}
%
% A small set of colors are always defined.
% \begin{macrocode}
@@@ -1046,17 -954,9 +1041,17 @@@
\msg_show:nnxxxx { LaTeX / color } { show }
{#1}
{
- \@@_if_defined:nTF {#1}
+ \@@_if_defined:nT {#1}
- { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \s_@@_stop }
+ { \exp_last_unbraced:Nv \@@_show:nn { l_@@_named_ #1 _tl } }
- { }
+ \@@_if_defined:nT {#1}
+ {
+ \int_compare:nNnT { \prop_count:c { l_@@_named_ #1 _prop } } > 1
+ {
+ \prop_map_function:cN
+ { l_@@_named_ #1 _prop }
+ \msg_show_item_unbraced:nn
+ }
+ }
}
{ }
{ }
diff --cc l3experimental/l3color/testfiles/m3color001.ptex.tlg
index e22f5abcf,28706274e..4cebd6bbe
--- a/l3experimental/l3color/testfiles/m3color001.ptex.tlg
+++ b/l3experimental/l3color/testfiles/m3color001.ptex.tlg
@@@ -12,17 -11,15 +12,17 @@@ The color foo1 has the properties
<recently read> }
l. ... }
Defining \l__color_named_foo2_tl on line ...
+Defining \l__color_named_foo2_prop on line ...
The color foo2 has the properties:
> model => rgb
- > value => 0.1, 0.2, 0.3.
+ > value => 0.1 0.2 0.3.
<recently read> }
l. ... }
Defining \l__color_named_foo3_tl on line ...
+Defining \l__color_named_foo3_prop on line ...
The color foo3 has the properties:
> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4.
+ > value => 0.1 0.2 0.3 0.4.
<recently read> }
l. ... }
============================================================
diff --cc l3experimental/l3color/testfiles/m3color001.tlg
index a8d072628,42a2306a4..ac124037d
--- a/l3experimental/l3color/testfiles/m3color001.tlg
+++ b/l3experimental/l3color/testfiles/m3color001.tlg
@@@ -12,17 -11,15 +12,17 @@@ The color foo1 has the properties
<recently read> }
l. ... }
Defining \l__color_named_foo2_tl on line ...
+Defining \l__color_named_foo2_prop on line ...
The color foo2 has the properties:
> model => rgb
- > value => 0.1, 0.2, 0.3.
+ > value => 0.1 0.2 0.3.
<recently read> }
l. ... }
Defining \l__color_named_foo3_tl on line ...
+Defining \l__color_named_foo3_prop on line ...
The color foo3 has the properties:
> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4.
+ > value => 0.1 0.2 0.3 0.4.
<recently read> }
l. ... }
============================================================
diff --cc l3experimental/l3color/testfiles/m3color001.uptex.tlg
index e22f5abcf,28706274e..4cebd6bbe
--- a/l3experimental/l3color/testfiles/m3color001.uptex.tlg
+++ b/l3experimental/l3color/testfiles/m3color001.uptex.tlg
@@@ -12,17 -11,15 +12,17 @@@ The color foo1 has the properties
<recently read> }
l. ... }
Defining \l__color_named_foo2_tl on line ...
+Defining \l__color_named_foo2_prop on line ...
The color foo2 has the properties:
> model => rgb
- > value => 0.1, 0.2, 0.3.
+ > value => 0.1 0.2 0.3.
<recently read> }
l. ... }
Defining \l__color_named_foo3_tl on line ...
+Defining \l__color_named_foo3_prop on line ...
The color foo3 has the properties:
> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4.
+ > value => 0.1 0.2 0.3 0.4.
<recently read> }
l. ... }
============================================================
diff --cc l3experimental/l3color/testfiles/m3color001.xetex.tlg
index 843ccb844,1e8fb9788..de9eb992a
--- a/l3experimental/l3color/testfiles/m3color001.xetex.tlg
+++ b/l3experimental/l3color/testfiles/m3color001.xetex.tlg
@@@ -12,17 -11,15 +12,17 @@@ The color foo1 has the properties
<recently read> }
l. ... }
Defining \l__color_named_foo2_tl on line ...
+Defining \l__color_named_foo2_prop on line ...
The color foo2 has the properties:
> model => rgb
- > value => 0.1, 0.2, 0.3.
+ > value => 0.1 0.2 0.3.
<recently read> }
l. ... }
Defining \l__color_named_foo3_tl on line ...
+Defining \l__color_named_foo3_prop on line ...
The color foo3 has the properties:
> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4.
+ > value => 0.1 0.2 0.3 0.4.
<recently read> }
l. ... }
============================================================
diff --cc l3experimental/l3color/testfiles/m3color002.tlg
index 4f13867a5,186c4b163..1d696bbb2
--- a/l3experimental/l3color/testfiles/m3color002.tlg
+++ b/l3experimental/l3color/testfiles/m3color002.tlg
@@@ -5,10 -5,9 +5,10 @@@ Author: Joseph Wrigh
TEST 1: Hsb model
============================================================
Defining \l__color_named_foo1_tl on line ...
+Defining \l__color_named_foo1_prop on line ...
The color foo1 has the properties:
> model => rgb
- > value => 0.7, 0.315, 0.28.
+ > value => 0.7 0.315 0.28.
<recently read> }
l. ... }
The color foo1 has the properties:
@@@ -61,10 -60,9 +61,10 @@@ The color foo1 has the properties
<recently read> }
l. ... }
Defining \l__color_named_foo2_tl on line ...
+Defining \l__color_named_foo2_prop on line ...
The color foo2 has the properties:
> model => rgb
- > value => 0.07059, 0.20392, 0.68235.
+ > value => 0.07059 0.20392 0.68235.
<recently read> }
l. ... }
============================================================
diff --cc l3experimental/l3color/testfiles/m3color003.ptex.tlg
index 2b1626dbc,000000000..633c2697a
mode 100644,000000..100644
--- a/l3experimental/l3color/testfiles/m3color003.ptex.tlg
+++ b/l3experimental/l3color/testfiles/m3color003.ptex.tlg
@@@ -1,87 -1,0 +1,87 @@@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Joseph Wright
+============================================================
+TEST 1: Multiple models: selecting
+============================================================
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push gray 0.1}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push rgb 0.1 0.1 0.2}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push rgb 0.1 0.2 0.3}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push cmyk 0.1 0.2 0.3 0.4}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+============================================================
+============================================================
+TEST 2: Multiple models: named
+============================================================
+Defining \l__color_named_foo1_tl on line ...
+Defining \l__color_named_foo1_prop on line ...
+Defining \l__color_named_test_tl on line ...
+The color test has the properties:
+> model => cmyk
- > value => 0.55, 0.1, 0.15, 0.2.
++> value => 0.55 0.1 0.15 0.2.
+<recently read> }
+l. ... }
+The color test has the properties:
+> model => rgb
- > value => 0.05, 0.05, 0.6.
++> value => 0.05 0.05 0.6.
+<recently read> }
+l. ... }
+============================================================
+============================================================
+TEST 3: Showing multiple models
+============================================================
+The color foo1 has the properties:
+> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4
++> value => 0.1 0.2 0.3 0.4
+> cmyk => 0.1 0.2 0.3 0.4
+> rgb => 0.1 0.1 0.2.
+<recently read> }
+l. ... }
+============================================================
diff --cc l3experimental/l3color/testfiles/m3color003.tlg
index c61b2ac2e,000000000..ace362097
mode 100644,000000..100644
--- a/l3experimental/l3color/testfiles/m3color003.tlg
+++ b/l3experimental/l3color/testfiles/m3color003.tlg
@@@ -1,83 -1,0 +1,83 @@@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Joseph Wright
+============================================================
+TEST 1: Multiple models: selecting
+============================================================
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\pdfcolorstack 0 push {0.1 g 0.1 G}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\pdfcolorstack 0 pop
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\pdfcolorstack 0 push {0.1 0.1 0.2 rg 0.1 0.1 0.2 RG}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\pdfcolorstack 0 pop
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\pdfcolorstack 0 push {0.1 0.2 0.3 rg 0.1 0.2 0.3 RG}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\pdfcolorstack 0 pop
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\pdfcolorstack 0 push {0.1 0.2 0.3 0.4 k 0.1 0.2 0.3 0.4 K}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\pdfcolorstack 0 pop
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+============================================================
+============================================================
+TEST 2: Multiple models: named
+============================================================
+Defining \l__color_named_foo1_tl on line ...
+Defining \l__color_named_foo1_prop on line ...
+Defining \l__color_named_test_tl on line ...
+The color test has the properties:
+> model => cmyk
- > value => 0.55, 0.1, 0.15, 0.2.
++> value => 0.55 0.1 0.15 0.2.
+<recently read> }
+l. ... }
+The color test has the properties:
+> model => rgb
- > value => 0.05, 0.05, 0.6.
++> value => 0.05 0.05 0.6.
+<recently read> }
+l. ... }
+============================================================
+============================================================
+TEST 3: Showing multiple models
+============================================================
+The color foo1 has the properties:
+> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4
++> value => 0.1 0.2 0.3 0.4
+> cmyk => 0.1 0.2 0.3 0.4
+> rgb => 0.1 0.1 0.2.
+<recently read> }
+l. ... }
+============================================================
diff --cc l3experimental/l3color/testfiles/m3color003.uptex.tlg
index 2b1626dbc,000000000..633c2697a
mode 100644,000000..100644
--- a/l3experimental/l3color/testfiles/m3color003.uptex.tlg
+++ b/l3experimental/l3color/testfiles/m3color003.uptex.tlg
@@@ -1,87 -1,0 +1,87 @@@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Joseph Wright
+============================================================
+TEST 1: Multiple models: selecting
+============================================================
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push gray 0.1}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push rgb 0.1 0.1 0.2}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push rgb 0.1 0.2 0.3}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push cmyk 0.1 0.2 0.3 0.4}
+.\special{ps:SDict begin /color.fc {} def end}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+============================================================
+============================================================
+TEST 2: Multiple models: named
+============================================================
+Defining \l__color_named_foo1_tl on line ...
+Defining \l__color_named_foo1_prop on line ...
+Defining \l__color_named_test_tl on line ...
+The color test has the properties:
+> model => cmyk
- > value => 0.55, 0.1, 0.15, 0.2.
++> value => 0.55 0.1 0.15 0.2.
+<recently read> }
+l. ... }
+The color test has the properties:
+> model => rgb
- > value => 0.05, 0.05, 0.6.
++> value => 0.05 0.05 0.6.
+<recently read> }
+l. ... }
+============================================================
+============================================================
+TEST 3: Showing multiple models
+============================================================
+The color foo1 has the properties:
+> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4
++> value => 0.1 0.2 0.3 0.4
+> cmyk => 0.1 0.2 0.3 0.4
+> rgb => 0.1 0.1 0.2.
+<recently read> }
+l. ... }
+============================================================
diff --cc l3experimental/l3color/testfiles/m3color003.xetex.tlg
index 661293130,000000000..c8d85db92
mode 100644,000000..100644
--- a/l3experimental/l3color/testfiles/m3color003.xetex.tlg
+++ b/l3experimental/l3color/testfiles/m3color003.xetex.tlg
@@@ -1,83 -1,0 +1,83 @@@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Joseph Wright
+============================================================
+TEST 1: Multiple models: selecting
+============================================================
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push gray 0.1}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push rgb 0.1 0.1 0.2}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push rgb 0.1 0.2 0.3}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+> \box...=
+\hbox(6.94444+0.0)x22.50005
+.\special{color push cmyk 0.1 0.2 0.3 0.4}
+.\OT1/cmr/m/n/10 H
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 l
+.\OT1/cmr/m/n/10 o
+.\special{color pop}
+! OK.
+<argument> \l_tmpa_box
+l. ... }
+============================================================
+============================================================
+TEST 2: Multiple models: named
+============================================================
+Defining \l__color_named_foo1_tl on line ...
+Defining \l__color_named_foo1_prop on line ...
+Defining \l__color_named_test_tl on line ...
+The color test has the properties:
+> model => cmyk
- > value => 0.55, 0.1, 0.15, 0.2.
++> value => 0.55 0.1 0.15 0.2.
+<recently read> }
+l. ... }
+The color test has the properties:
+> model => rgb
- > value => 0.05, 0.05, 0.6.
++> value => 0.05 0.05 0.6.
+<recently read> }
+l. ... }
+============================================================
+============================================================
+TEST 3: Showing multiple models
+============================================================
+The color foo1 has the properties:
+> model => cmyk
- > value => 0.1, 0.2, 0.3, 0.4
++> value => 0.1 0.2 0.3 0.4
+> cmyk => 0.1 0.2 0.3 0.4
+> rgb => 0.1 0.1 0.2.
+<recently read> }
+l. ... }
+============================================================
More information about the latex3-commits
mailing list.