[latex3-commits] [git/LaTeX3-latex3-latex3] fallback-model: Use fallback color models instead of fallback colors (7d2025c79)

Marcel Fabian Krüger tex at 2krueger.de
Tue Oct 26 17:07:18 CEST 2021


Repository : https://github.com/latex3/latex3
On branch  : fallback-model
Link       : https://github.com/latex3/latex3/commit/7d2025c7948c2665b39b296115602bacf922d604

>---------------------------------------------------------------

commit 7d2025c7948c2665b39b296115602bacf922d604
Author: Marcel Fabian Krüger <tex at 2krueger.de>
Date:   Tue Oct 26 17:07:18 2021 +0200

    Use fallback color models instead of fallback colors


>---------------------------------------------------------------

7d2025c7948c2665b39b296115602bacf922d604
 l3kernel/l3color.dtx                    | 137 +++++++++++++++++++-------------
 l3kernel/testfiles/m3color002.tlg       |   4 +-
 l3kernel/testfiles/m3color003.ptex.tlg  |  34 ++++----
 l3kernel/testfiles/m3color003.tlg       |  34 ++++----
 l3kernel/testfiles/m3color003.uptex.tlg |  34 ++++----
 l3kernel/testfiles/m3color003.xetex.tlg |  34 ++++----
 6 files changed, 142 insertions(+), 135 deletions(-)

diff --git a/l3kernel/l3color.dtx b/l3kernel/l3color.dtx
index a64e67f21..be1c7e3d8 100644
--- a/l3kernel/l3color.dtx
+++ b/l3kernel/l3color.dtx
@@ -634,31 +634,61 @@
 % \begin{macro}{\@@_convert:nnnN, \@@_convert:nVnN, \@@_convert:nnVN}
 % \begin{macro}[aux, EXP]
 %   {
+%     \@@_convert_gray_gray:w
 %     \@@_convert_gray_rgb:w
 %     \@@_convert_gray_cmyk:w
 %     \@@_convert_cmyk_gray:w
 %     \@@_convert_cmyk_rgb:w
+%     \@@_convert_cmyk_cmyk:w
 %     \@@_convert_rgb_gray:w
+%     \@@_convert_rgb_rgb:w
 %     \@@_convert_rgb_cmyk:w
 %   }
 %  \begin{macro}[aux, EXP]{\@@_convert_rgb_cmyk:nnnn}
-%    Model conversion is carried out using standard formulae, as described in
-%    the manual for \pkg{xcolor} (see also the \emph{PostScript Language
-%    Reference Manual}).
+%    Model conversion is carried out using standard formulae for base models,
+%    as described in the manual for \pkg{xcolor} (see also the \emph{PostScript
+%    Language Reference Manual}). For other models direct conversion might not
+%    be defined, so we go throught the fallback models if necessary.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_convert:nnN #1#2#3
   { \@@_convert:nnVN {#1} {#2} #3 #3 }
 \cs_generate_variant:Nn \@@_convert:nnN { VV }
+\cs_generate_variant:Nn \exp_last_unbraced:Nf { c }
 \cs_new_protected:Npn \@@_convert:nnnN #1#2#3#4
   {
     \tl_set:Nx #4
       {
         \cs_if_exist_use:cTF { @@_convert_ #1 _ #2 :w }
           { #3 \s_@@_stop }
-          { \use:c { c_@@_fallback_ #2 _tl } }
+          {
+            \cs_if_exist:cTF { @@_convert_ \use:c { c_@@_fallback_ #1 _tl } _ #2 :w }
+              {
+                \exp_last_unbraced:cf
+                  { @@_convert_ \use:c { c_@@_fallback_ #1 _tl } _ #2 :w }
+                  { \use:c { @@_convert_ #1 _ \use:c { c_@@_fallback_ #1 _tl } :w } #3 \s_@@_stop }
+                  \s_@@_stop
+              }
+              {
+                \exp_last_unbraced:cf
+                  { @@_convert_ \use:c { c_@@_fallback_ #2 _tl } _ #2 :w }
+                  {
+                    \cs_if_exist_use:cTF { @@_convert_ #1 _ \use:c { c_@@_fallback_ #2 _tl } :w }
+                      { #3 \s_@@_stop }
+                      {
+                        \exp_last_unbraced:cf
+                          { @@_convert_ \use:c { c_@@_fallback_ #1 _tl } _ \use:c { c_@@_fallback_ #2 _tl } :w }
+                          { \use:c { @@_convert_ #1 _ \use:c { c_@@_fallback_ #1 _tl } :w } #3 \s_@@_stop }
+                          \s_@@_stop
+                      }
+                  }
+                  \s_@@_stop
+              }
+          }
       }
   }
 \cs_generate_variant:Nn \@@_convert:nnnN { nV , nnV }
+\cs_new:Npn \@@_convert_gray_gray:w #1 \s_@@_stop
+  { #1 }
 \cs_new:Npn \@@_convert_gray_rgb:w #1 \s_@@_stop
   { #1 ~ #1 ~ #1 }
 \cs_new:Npn \@@_convert_gray_cmyk:w #1 \s_@@_stop
@@ -669,6 +699,8 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_convert_rgb_gray:w #1 ~ #2 ~ #3 \s_@@_stop
   { \fp_eval:n { 0.3 * #1 + 0.59 * #2 + 0.11 * #3 } }
+\cs_new:Npn \@@_convert_rgb_rgb:w #1 \s_@@_stop
+  { #1 }
 %    \end{macrocode}
 %   The conversion from |rgb| to |cmyk| is the most complex: a two-step
 %   procedure which requires \emph{black generation} and \emph{undercolor
@@ -697,6 +729,8 @@
     \fp_eval:n { 1 - min ( 1 , #2 + #4 ) } \c_space_tl
     \fp_eval:n { 1 - min ( 1 , #3 + #4 ) }
   }
+\cs_new:Npn \@@_convert_cmyk_cmyk:w #1 \s_@@_stop
+  { #1 }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -1692,12 +1726,12 @@
 %
 % \begin{variable}
 %   {\c_@@_fallback_cmyk_tl, \c_@@_fallback_gray_tl, \c_@@_fallback_rgb_tl}
-%   Conversion from Separation or DeviceN spaces may not be possible; have
-%   a fallback to black.
+%   For every colorspace, we define one of the base colorspaces as a fallback.
+%   The base colorspaces themselves are their own fallback.
 %    \begin{macrocode}
-\tl_const:Nn \c_@@_fallback_cmyk_tl { 0 ~ 0 ~ 0 ~ 1 }
-\tl_const:Nn \c_@@_fallback_gray_tl { 1 }
-\tl_const:Nn \c_@@_fallback_rgb_tl { 1 ~ 1 ~ 1 }
+\tl_const:Nn \c_@@_fallback_cmyk_tl { cmyk }
+\tl_const:Nn \c_@@_fallback_gray_tl { gray }
+\tl_const:Nn \c_@@_fallback_rgb_tl { rgb }
 %    \end{macrocode}
 % \end{variable}
 %
@@ -1805,12 +1839,11 @@
 %
 % \begin{macro}{\@@_model_init:nn}
 %   A shared auxiliary to do the basics of setting up a new model: reserve a
-%   number, create a fallback and white-equivalent, set up links to the backend.
+%   number, create a white-equivalent, set up links to the backend.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_model_init:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \@@_model_init:nnnn #1#2#3#4
   {
     \int_gincr:N \g_@@_model_int
-    \tl_const:cn { c_@@_fallback_ #1 _tl } { #4 }
     \clist_map_inline:nn { fill , stroke , select }
       {
         \cs_new_protected:cpx { @@_backend_ ##1 _ #1 :n } ####1
@@ -1822,13 +1855,13 @@
     \cs_new_protected:cpx { @@_model_ #1 _white: }
       {
         \prop_put:Nnn \exp_not:N \l_@@_named_white_prop {#1}
-        { \exp_not:n {#5} }
+        { \exp_not:n {#4} }
         \exp_not:N \int_compare:nNnF { \tex_currentgrouplevel:D } = 0
           { \group_insert_after:N \exp_not:c { @@_model_ #1 _ white: } }
       }
     \use:c { @@_model_ #1 _white: }
   }
-\cs_generate_variant:Nn \@@_model_init:nnnnn { nnnxx }
+\cs_generate_variant:Nn \@@_model_init:nnnn { nnnx }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1911,7 +1944,7 @@
 \cs_new_protected:Npn \@@_model_separation:w
   #1 , #2 , #3 , #4 , #5 \s_@@_stop #6#7#8
   {
-    \@@_model_init:nnnnn {#6} { 1 } { separation } { 1 } { 0 }
+    \@@_model_init:nnnn {#6} { 1 } { separation } { 0 }
     \cs_new_eq:cN { @@_parse_mix_ #6 :nw } \@@_parse_mix_gray:nw
     \cs_new:cpn { @@_parse_model_ #6 :w } ##1 , ##2 \s_@@_stop
       { {#6} { \@@_parse_number:n {##1} } }
@@ -1923,6 +1956,7 @@
   }
 \cs_new_protected:Npn \@@_model_separation_cmyk:nnnnnn #1#2#3#4#5#6
   {
+    \tl_const:cn { c_@@_fallback_ #1 _tl } { cmyk }
     \cs_new:cpn { @@_convert_ #1 _cmyk:w } ##1 \s_@@_stop
       {
          \fp_eval:n {##1 * #3} ~
@@ -1930,43 +1964,31 @@
          \fp_eval:n {##1 * #5} ~
          \fp_eval:n {##1 * #6}
       }
-    \@@_model_convert:nnn {#1} { cmyk } { rgb }
-    \@@_model_convert:nnn {#1} { cmyk } { gray }
+    \cs_new:cpn { @@_convert_cmyk_ #1 :w } ##1 \s_@@_stop { 1 }
     \prop_gput:Nnn \g_@@_alternative_values_prop {#1} { #3 , #4 , #5 , #6 }
     \@@_backend_separation_init:nnnnn {#2} { /DeviceCMYK } { }
       { 0 ~ 0 ~ 0 ~ 0 } { #3 ~ #4 ~ #5 ~ #6 }
   }
 \cs_new_protected:Npn \@@_model_separation_rgb:nnnnnn #1#2#3#4#5#6
   {
+    \tl_const:cn { c_@@_fallback_ #1 _tl } { rgb }
     \cs_new:cpn { @@_convert_ #1 _rgb:w } ##1 \s_@@_stop
       {
          \fp_eval:n {##1 * #3} ~
          \fp_eval:n {##1 * #4} ~
          \fp_eval:n {##1 * #5}
       }
-    \@@_model_convert:nnn {#1} { rgb } { cmyk }
-    \@@_model_convert:nnn {#1} { rgb } { gray }
+    \cs_new:cpn { @@_convert_rgb_ #1 :w } ##1 \s_@@_stop { 1 }
     \prop_gput:Nnn \g_@@_alternative_values_prop {#1} { #3 , #4 , #5 }
     \@@_backend_separation_init:nnnnn {#2} { /DeviceRGB } { }
       { 0 ~ 0 ~ 0 } { #3 ~ #4 ~ #5 }
   }
 \cs_new_protected:Npn \@@_model_separation_gray:nnnnnn #1#2#3#4#5#6
   {
-    \cs_new:cpn { @@_convert_ #1 _cmyk:w } ##1 \s_@@_stop
-      {
-        \fp_eval:n {##1 * #3} ~
-        \fp_eval:n {##1 * #3} ~
-        \fp_eval:n {##1 * #3} ~
-        \fp_eval:n {##1 * #3}
-      }
+    \tl_const:cn { c_@@_fallback_ #1 _tl } { gray }
     \cs_new:cpn { @@_convert_ #1 _gray:w } ##1 \s_@@_stop
       { \fp_eval:n {##1 * #3} }
-    \cs_new:cpn { @@_convert_ #1 _rgb:w } ##1 \s_@@_stop
-      {
-        \fp_eval:n {##1 * #3} ~
-        \fp_eval:n {##1 * #3} ~
-        \fp_eval:n {##1 * #3}
-      }
+    \cs_new:cpn { @@_convert_gray_ #1 :w } ##1 \s_@@_stop { 1 }
     \prop_gput:Nnn \g_@@_alternative_values_prop {#1} {#3}
     \@@_backend_separation_init:nnnnn {#2} { /DeviceGray } { } { 0 } {#3}
   }
@@ -2011,11 +2033,10 @@
     \tl_if_exist:cTF { c_@@_model_whitepoint_CIELAB_ #1 _tl }
       {
         \@@_backend_separation_init_CIELAB:nnn {#1} {#3} { #4 ~ #5 ~ #6 }
-        \cs_new:cpn { @@_convert_ #2 _cmyk:w } ##1 \s_@@_stop
-          { 0 ~ 0 ~ 0 ~ 1 }
-        \cs_new:cpn { @@_convert_ #2 _rgb:w } ##1 \s_@@_stop
-          { 1 ~ 1 ~ 1 }
+        \tl_const:cn { c_@@_fallback_ #2 _tl } { gray }
         \cs_new:cpn { @@_convert_ #2 _gray:w } ##1 \s_@@_stop
+          { 0 }
+        \cs_new:cpn { @@_convert_gray_ #2 :w } ##1 \s_@@_stop
           { 1 }
       }
       {
@@ -2152,10 +2173,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_model_devicen:nnnn #1#2#3#4
   {
-    \@@_model_init:nnnxx {#4} {#1} { devicen }
-      {
-        1 \prg_replicate:nn { #1 - 1 } { ~ 1 }
-      }
+    \@@_model_init:nnnx {#4} {#1} { devicen }
       {
         0 \prg_replicate:nn { #1 - 1 } { ~ 0 }
       }
@@ -2163,7 +2181,10 @@
       { \@@_model_devicen_parse_generic:nn }
         {#4} {#1}
     \@@_model_devicen_init:nnn {#1} {#2} {#3}
-    \@@_model_devicen_convert:nnn {#4} {#2} {#3}
+    \@@_model_devicen_convert:nnnx {#4} {#2} {#3}
+      {
+        1 \prg_replicate:nn { #1 - 1 } { ~ 1 }
+      }
   }
 %    \end{macrocode}
 %   For short lists of DeviceN colors, we can use hand-tuned parsing. This
@@ -2378,30 +2399,29 @@
 %   to other parameter-based spaces. Essentially the approach is exactly the same
 %   as the PostScript, just expressed in \TeX{} terms.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_model_devicen_convert:nnn #1#2#3
+\cs_new_protected:Npn \@@_model_devicen_convert:nnnn #1#2#3
   {
-    \use:c { @@_model_devicen_convert_ #2 :nn } {#1} {#3}
+    \use:c { @@_model_devicen_convert_ #2 :nnn } {#1} {#3}
   }
-\cs_new_protected:Npn \@@_model_devicen_convert_cmyk:nn #1#2
+\cs_generate_variant:Nn \@@_model_devicen_convert:nnnn { nnnx }
+\cs_new_protected:Npn \@@_model_devicen_convert_cmyk:nnn #1#2
   {
-    \@@_model_convert:nnn {#1} { cmyk } { gray }
-    \@@_model_convert:nnn {#1} { cmyk } { rgb }
-    \@@_model_devicen_convert:nnnn {#1} { cmyk } { 4 } {#2}
+    \tl_const:cn { c_@@_fallback_ #1 _tl } { cmyk }
+    \@@_model_devicen_convert:nnnnn {#1} { cmyk } { 4 } {#2}
   }
-\cs_new_protected:Npn \@@_model_devicen_convert_gray:nn #1#2
+\cs_new_protected:Npn \@@_model_devicen_convert_gray:nnn #1#2
   {
-    \@@_model_convert:nnn {#1} { gray } { cmyk }
-    \@@_model_convert:nnn {#1} { gray } { rgb }
-    \@@_model_devicen_convert:nnnn {#1} { gray } { 1 } {#2}
+    \tl_const:cn { c_@@_fallback_ #1 _tl } { gray }
+    \@@_model_devicen_convert:nnnnn {#1} { gray } { 1 } {#2}
   }
-\cs_new_protected:Npn \@@_model_devicen_convert_rgb:nn #1#2
+\cs_new_protected:Npn \@@_model_devicen_convert_rgb:nnn #1#2
   {
-    \@@_model_convert:nnn {#1} { rgb } { cmyk }
-    \@@_model_convert:nnn {#1} { rgb } { gray }
-    \@@_model_devicen_convert:nnnn {#1} { rgb } { 3 } {#2}
+    \tl_const:cn { c_@@_fallback_ #1 _tl } { rgb }
+    \@@_model_devicen_convert:nnnnn {#1} { rgb } { 3 } {#2}
   }
-\cs_new_protected:Npn \@@_model_devicen_convert:nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_model_devicen_convert:nnnnn #1#2#3#4#5
   {
+    \cs_new:cpn { @@_convert_ #2 _ #1 :w } ##1 \s_@@_stop {#5}
     \cs_new:cpx { @@_convert_ #1 _ #2 :w } ##1 \s_@@_stop
       {
         \exp_not:c { @@_convert_devicen_ #2 : \prg_replicate:nn {#3} { n } w }
@@ -2603,7 +2623,10 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_model_iccbased_aux:nnnnnn #1#2#3#4#5#6
   {
-    \@@_model_init:nnnnn {#5} {#1} { iccbased } {#2} {#3}
+    \@@_model_init:nnnn {#5} {#1} { iccbased } {#3}
+    \tl_const:cn { c_@@_fallback_ #5 _tl } { gray }
+    \cs_new:cpn { @@_convert_ #5 _gray:w } ##1 \s_@@_stop { 0 }
+    \cs_new:cpn { @@_convert_gray_ #5 :w } ##1 \s_@@_stop { #2 }
     \use:c { @@_model_devicen_parse_ #1 :nn } {#5} {#1}
     \exp_args:Nx \@@_backend_iccbased_init:nnn
       { \file_full_name:n {#6} } {#1} {#4}
diff --git a/l3kernel/testfiles/m3color002.tlg b/l3kernel/testfiles/m3color002.tlg
index 0111657d8..b154ecdd6 100644
--- a/l3kernel/testfiles/m3color002.tlg
+++ b/l3kernel/testfiles/m3color002.tlg
@@ -263,7 +263,7 @@ l. ...  }
 > \l_tmpa_tl=57B285.
 <recently read> }
 l. ...  }
-> \l_tmpa_tl=FFFFFF.
+> \l_tmpa_tl=000000.
 <recently read> }
 l. ...  }
 > \l_tmpa_tl=035F31.
@@ -281,7 +281,7 @@ l. ...  }
 > \l_tmpa_tl=0.34 0.7 0.52.
 <recently read> }
 l. ...  }
-> \l_tmpa_tl=1 1 1.
+> \l_tmpa_tl=0 0 0.
 <recently read> }
 l. ...  }
 > \l_tmpa_tl=0.012 0.372 0.192.
diff --git a/l3kernel/testfiles/m3color003.ptex.tlg b/l3kernel/testfiles/m3color003.ptex.tlg
index 3f4ebe310..07ffc6c27 100644
--- a/l3kernel/testfiles/m3color003.ptex.tlg
+++ b/l3kernel/testfiles/m3color003.ptex.tlg
@@ -212,16 +212,15 @@ l. ...  }
 ============================================================
 TEST 8: Creating new models
 ============================================================
-Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_backend_fill_BarToneCMYK:n on line ...
 Defining \__color_backend_stroke_BarToneCMYK:n on line ...
 Defining \__color_backend_select_BarToneCMYK:n on line ...
 Defining \__color_model_BarToneCMYK_white: on line ...
 Defining \__color_parse_mix_BarToneCMYK:nw on line ...
 Defining \__color_parse_model_BarToneCMYK:w on line ...
+Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_convert_BarToneCMYK_cmyk:w on line ...
-Defining \__color_convert_BarToneCMYK_rgb:w on line ...
-Defining \__color_convert_BarToneCMYK_gray:w on line ...
+Defining \__color_convert_cmyk_BarToneCMYK:w on line ...
 Defining \l__color_named_fooCMYK_tl on line ...
 Defining \l__color_named_fooCMYK_prop on line ...
 The color fooCMYK has the properties:
@@ -229,16 +228,15 @@ The color fooCMYK has the properties:
 >  BarToneCMYK  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_backend_fill_BarToneRGB:n on line ...
 Defining \__color_backend_stroke_BarToneRGB:n on line ...
 Defining \__color_backend_select_BarToneRGB:n on line ...
 Defining \__color_model_BarToneRGB_white: on line ...
 Defining \__color_parse_mix_BarToneRGB:nw on line ...
 Defining \__color_parse_model_BarToneRGB:w on line ...
+Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_convert_BarToneRGB_rgb:w on line ...
-Defining \__color_convert_BarToneRGB_cmyk:w on line ...
-Defining \__color_convert_BarToneRGB_gray:w on line ...
+Defining \__color_convert_rgb_BarToneRGB:w on line ...
 Defining \l__color_named_fooRGB_tl on line ...
 Defining \l__color_named_fooRGB_prop on line ...
 The color fooRGB has the properties:
@@ -246,16 +244,15 @@ The color fooRGB has the properties:
 >  BarToneRGB  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_backend_fill_BarToneGray:n on line ...
 Defining \__color_backend_stroke_BarToneGray:n on line ...
 Defining \__color_backend_select_BarToneGray:n on line ...
 Defining \__color_model_BarToneGray_white: on line ...
 Defining \__color_parse_mix_BarToneGray:nw on line ...
 Defining \__color_parse_model_BarToneGray:w on line ...
-Defining \__color_convert_BarToneGray_cmyk:w on line ...
+Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_convert_BarToneGray_gray:w on line ...
-Defining \__color_convert_BarToneGray_rgb:w on line ...
+Defining \__color_convert_gray_BarToneGray:w on line ...
 Defining \l__color_named_fooGray_tl on line ...
 Defining \l__color_named_fooGray_prop on line ...
 The color fooGray has the properties:
@@ -263,16 +260,15 @@ The color fooGray has the properties:
 >  BarToneGray  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_backend_fill_BarToneCIELAB:n on line ...
 Defining \__color_backend_stroke_BarToneCIELAB:n on line ...
 Defining \__color_backend_select_BarToneCIELAB:n on line ...
 Defining \__color_model_BarToneCIELAB_white: on line ...
 Defining \__color_parse_mix_BarToneCIELAB:nw on line ...
 Defining \__color_parse_model_BarToneCIELAB:w on line ...
-Defining \__color_convert_BarToneCIELAB_cmyk:w on line ...
-Defining \__color_convert_BarToneCIELAB_rgb:w on line ...
+Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_convert_BarToneCIELAB_gray:w on line ...
+Defining \__color_convert_gray_BarToneCIELAB:w on line ...
 The color BarToneCIELAB is undefined.
 > .
 <recently read> }
@@ -423,15 +419,14 @@ l. ...  }
 ============================================================
 TEST 13: DeviceN spaces
 ============================================================
-Defining \c__color_fallback_TwoUp_tl on line ...
 Defining \__color_backend_fill_TwoUp:n on line ...
 Defining \__color_backend_stroke_TwoUp:n on line ...
 Defining \__color_backend_select_TwoUp:n on line ...
 Defining \__color_model_TwoUp_white: on line ...
 Defining \__color_parse_model_TwoUp:w on line ...
 Defining \__color_parse_mix_TwoUp:nw on line ...
-Defining \__color_convert_TwoUp_gray:w on line ...
-Defining \__color_convert_TwoUp_rgb:w on line ...
+Defining \c__color_fallback_TwoUp_tl on line ...
+Defining \__color_convert_cmyk_TwoUp:w on line ...
 Defining \__color_convert_TwoUp_cmyk:w on line ...
 Defining \l__color_named_twoup_tl on line ...
 Defining \l__color_named_twoup_prop on line ...
@@ -445,15 +440,14 @@ The color foo has the properties:
 >  TwoUp  =>  0.375 0.125.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_AllIn_tl on line ...
 Defining \__color_backend_fill_AllIn:n on line ...
 Defining \__color_backend_stroke_AllIn:n on line ...
 Defining \__color_backend_select_AllIn:n on line ...
 Defining \__color_model_AllIn_white: on line ...
 Defining \__color_parse_model_AllIn:w on line ...
 Defining \__color_parse_mix_AllIn:nw on line ...
-Defining \__color_convert_AllIn_gray:w on line ...
-Defining \__color_convert_AllIn_rgb:w on line ...
+Defining \c__color_fallback_AllIn_tl on line ...
+Defining \__color_convert_cmyk_AllIn:w on line ...
 Defining \__color_convert_AllIn_cmyk:w on line ...
 Defining \l__color_named_allin_tl on line ...
 Defining \l__color_named_allin_prop on line ...
@@ -481,11 +475,13 @@ constituent colors do not have a common alternative color.
 ============================================================
 TEST 15: ICCBased spaces
 ============================================================
-Defining \c__color_fallback_ICC_tl on line ...
 Defining \__color_backend_fill_ICC:n on line ...
 Defining \__color_backend_stroke_ICC:n on line ...
 Defining \__color_backend_select_ICC:n on line ...
 Defining \__color_model_ICC_white: on line ...
+Defining \c__color_fallback_ICC_tl on line ...
+Defining \__color_convert_ICC_gray:w on line ...
+Defining \__color_convert_gray_ICC:w on line ...
 Defining \__color_parse_model_ICC:w on line ...
 Defining \__color_parse_mix_ICC:nw on line ...
 Defining \l__color_named_ICC3_tl on line ...
diff --git a/l3kernel/testfiles/m3color003.tlg b/l3kernel/testfiles/m3color003.tlg
index 63d24f4b2..27418da6e 100644
--- a/l3kernel/testfiles/m3color003.tlg
+++ b/l3kernel/testfiles/m3color003.tlg
@@ -207,16 +207,15 @@ l. ...  }
 ============================================================
 TEST 8: Creating new models
 ============================================================
-Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_backend_fill_BarToneCMYK:n on line ...
 Defining \__color_backend_stroke_BarToneCMYK:n on line ...
 Defining \__color_backend_select_BarToneCMYK:n on line ...
 Defining \__color_model_BarToneCMYK_white: on line ...
 Defining \__color_parse_mix_BarToneCMYK:nw on line ...
 Defining \__color_parse_model_BarToneCMYK:w on line ...
+Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_convert_BarToneCMYK_cmyk:w on line ...
-Defining \__color_convert_BarToneCMYK_rgb:w on line ...
-Defining \__color_convert_BarToneCMYK_gray:w on line ...
+Defining \__color_convert_cmyk_BarToneCMYK:w on line ...
 Defining \l__color_named_fooCMYK_tl on line ...
 Defining \l__color_named_fooCMYK_prop on line ...
 The color fooCMYK has the properties:
@@ -224,16 +223,15 @@ The color fooCMYK has the properties:
 >  BarToneCMYK  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_backend_fill_BarToneRGB:n on line ...
 Defining \__color_backend_stroke_BarToneRGB:n on line ...
 Defining \__color_backend_select_BarToneRGB:n on line ...
 Defining \__color_model_BarToneRGB_white: on line ...
 Defining \__color_parse_mix_BarToneRGB:nw on line ...
 Defining \__color_parse_model_BarToneRGB:w on line ...
+Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_convert_BarToneRGB_rgb:w on line ...
-Defining \__color_convert_BarToneRGB_cmyk:w on line ...
-Defining \__color_convert_BarToneRGB_gray:w on line ...
+Defining \__color_convert_rgb_BarToneRGB:w on line ...
 Defining \l__color_named_fooRGB_tl on line ...
 Defining \l__color_named_fooRGB_prop on line ...
 The color fooRGB has the properties:
@@ -241,16 +239,15 @@ The color fooRGB has the properties:
 >  BarToneRGB  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_backend_fill_BarToneGray:n on line ...
 Defining \__color_backend_stroke_BarToneGray:n on line ...
 Defining \__color_backend_select_BarToneGray:n on line ...
 Defining \__color_model_BarToneGray_white: on line ...
 Defining \__color_parse_mix_BarToneGray:nw on line ...
 Defining \__color_parse_model_BarToneGray:w on line ...
-Defining \__color_convert_BarToneGray_cmyk:w on line ...
+Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_convert_BarToneGray_gray:w on line ...
-Defining \__color_convert_BarToneGray_rgb:w on line ...
+Defining \__color_convert_gray_BarToneGray:w on line ...
 Defining \l__color_named_fooGray_tl on line ...
 Defining \l__color_named_fooGray_prop on line ...
 The color fooGray has the properties:
@@ -258,7 +255,6 @@ The color fooGray has the properties:
 >  BarToneGray  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_backend_fill_BarToneCIELAB:n on line ...
 Defining \__color_backend_stroke_BarToneCIELAB:n on line ...
 Defining \__color_backend_select_BarToneCIELAB:n on line ...
@@ -266,9 +262,9 @@ Defining \__color_model_BarToneCIELAB_white: on line ...
 Defining \__color_parse_mix_BarToneCIELAB:nw on line ...
 Defining \__color_parse_model_BarToneCIELAB:w on line ...
 Defining \c__pdf_backend_object___color_illuminant_CIELAB_d65_int on line ..
-Defining \__color_convert_BarToneCIELAB_cmyk:w on line ...
-Defining \__color_convert_BarToneCIELAB_rgb:w on line ...
+Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_convert_BarToneCIELAB_gray:w on line ...
+Defining \__color_convert_gray_BarToneCIELAB:w on line ...
 The color BarToneCIELAB is undefined.
 > .
 <recently read> }
@@ -419,15 +415,14 @@ l. ...  }
 ============================================================
 TEST 13: DeviceN spaces
 ============================================================
-Defining \c__color_fallback_TwoUp_tl on line ...
 Defining \__color_backend_fill_TwoUp:n on line ...
 Defining \__color_backend_stroke_TwoUp:n on line ...
 Defining \__color_backend_select_TwoUp:n on line ...
 Defining \__color_model_TwoUp_white: on line ...
 Defining \__color_parse_model_TwoUp:w on line ...
 Defining \__color_parse_mix_TwoUp:nw on line ...
-Defining \__color_convert_TwoUp_gray:w on line ...
-Defining \__color_convert_TwoUp_rgb:w on line ...
+Defining \c__color_fallback_TwoUp_tl on line ...
+Defining \__color_convert_cmyk_TwoUp:w on line ...
 Defining \__color_convert_TwoUp_cmyk:w on line ...
 Defining \l__color_named_twoup_tl on line ...
 Defining \l__color_named_twoup_prop on line ...
@@ -441,15 +436,14 @@ The color foo has the properties:
 >  TwoUp  =>  0.375 0.125.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_AllIn_tl on line ...
 Defining \__color_backend_fill_AllIn:n on line ...
 Defining \__color_backend_stroke_AllIn:n on line ...
 Defining \__color_backend_select_AllIn:n on line ...
 Defining \__color_model_AllIn_white: on line ...
 Defining \__color_parse_model_AllIn:w on line ...
 Defining \__color_parse_mix_AllIn:nw on line ...
-Defining \__color_convert_AllIn_gray:w on line ...
-Defining \__color_convert_AllIn_rgb:w on line ...
+Defining \c__color_fallback_AllIn_tl on line ...
+Defining \__color_convert_cmyk_AllIn:w on line ...
 Defining \__color_convert_AllIn_cmyk:w on line ...
 Defining \l__color_named_allin_tl on line ...
 Defining \l__color_named_allin_prop on line ...
@@ -477,11 +471,13 @@ constituent colors do not have a common alternative color.
 ============================================================
 TEST 15: ICCBased spaces
 ============================================================
-Defining \c__color_fallback_ICC_tl on line ...
 Defining \__color_backend_fill_ICC:n on line ...
 Defining \__color_backend_stroke_ICC:n on line ...
 Defining \__color_backend_select_ICC:n on line ...
 Defining \__color_model_ICC_white: on line ...
+Defining \c__color_fallback_ICC_tl on line ...
+Defining \__color_convert_ICC_gray:w on line ...
+Defining \__color_convert_gray_ICC:w on line ...
 Defining \__color_parse_model_ICC:w on line ...
 Defining \__color_parse_mix_ICC:nw on line ...
 Defining \c__pdf_backend_object___color_icc_sRGB_v4_ICC_preference.icc_int on line ...
diff --git a/l3kernel/testfiles/m3color003.uptex.tlg b/l3kernel/testfiles/m3color003.uptex.tlg
index 3f4ebe310..07ffc6c27 100644
--- a/l3kernel/testfiles/m3color003.uptex.tlg
+++ b/l3kernel/testfiles/m3color003.uptex.tlg
@@ -212,16 +212,15 @@ l. ...  }
 ============================================================
 TEST 8: Creating new models
 ============================================================
-Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_backend_fill_BarToneCMYK:n on line ...
 Defining \__color_backend_stroke_BarToneCMYK:n on line ...
 Defining \__color_backend_select_BarToneCMYK:n on line ...
 Defining \__color_model_BarToneCMYK_white: on line ...
 Defining \__color_parse_mix_BarToneCMYK:nw on line ...
 Defining \__color_parse_model_BarToneCMYK:w on line ...
+Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_convert_BarToneCMYK_cmyk:w on line ...
-Defining \__color_convert_BarToneCMYK_rgb:w on line ...
-Defining \__color_convert_BarToneCMYK_gray:w on line ...
+Defining \__color_convert_cmyk_BarToneCMYK:w on line ...
 Defining \l__color_named_fooCMYK_tl on line ...
 Defining \l__color_named_fooCMYK_prop on line ...
 The color fooCMYK has the properties:
@@ -229,16 +228,15 @@ The color fooCMYK has the properties:
 >  BarToneCMYK  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_backend_fill_BarToneRGB:n on line ...
 Defining \__color_backend_stroke_BarToneRGB:n on line ...
 Defining \__color_backend_select_BarToneRGB:n on line ...
 Defining \__color_model_BarToneRGB_white: on line ...
 Defining \__color_parse_mix_BarToneRGB:nw on line ...
 Defining \__color_parse_model_BarToneRGB:w on line ...
+Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_convert_BarToneRGB_rgb:w on line ...
-Defining \__color_convert_BarToneRGB_cmyk:w on line ...
-Defining \__color_convert_BarToneRGB_gray:w on line ...
+Defining \__color_convert_rgb_BarToneRGB:w on line ...
 Defining \l__color_named_fooRGB_tl on line ...
 Defining \l__color_named_fooRGB_prop on line ...
 The color fooRGB has the properties:
@@ -246,16 +244,15 @@ The color fooRGB has the properties:
 >  BarToneRGB  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_backend_fill_BarToneGray:n on line ...
 Defining \__color_backend_stroke_BarToneGray:n on line ...
 Defining \__color_backend_select_BarToneGray:n on line ...
 Defining \__color_model_BarToneGray_white: on line ...
 Defining \__color_parse_mix_BarToneGray:nw on line ...
 Defining \__color_parse_model_BarToneGray:w on line ...
-Defining \__color_convert_BarToneGray_cmyk:w on line ...
+Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_convert_BarToneGray_gray:w on line ...
-Defining \__color_convert_BarToneGray_rgb:w on line ...
+Defining \__color_convert_gray_BarToneGray:w on line ...
 Defining \l__color_named_fooGray_tl on line ...
 Defining \l__color_named_fooGray_prop on line ...
 The color fooGray has the properties:
@@ -263,16 +260,15 @@ The color fooGray has the properties:
 >  BarToneGray  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_backend_fill_BarToneCIELAB:n on line ...
 Defining \__color_backend_stroke_BarToneCIELAB:n on line ...
 Defining \__color_backend_select_BarToneCIELAB:n on line ...
 Defining \__color_model_BarToneCIELAB_white: on line ...
 Defining \__color_parse_mix_BarToneCIELAB:nw on line ...
 Defining \__color_parse_model_BarToneCIELAB:w on line ...
-Defining \__color_convert_BarToneCIELAB_cmyk:w on line ...
-Defining \__color_convert_BarToneCIELAB_rgb:w on line ...
+Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_convert_BarToneCIELAB_gray:w on line ...
+Defining \__color_convert_gray_BarToneCIELAB:w on line ...
 The color BarToneCIELAB is undefined.
 > .
 <recently read> }
@@ -423,15 +419,14 @@ l. ...  }
 ============================================================
 TEST 13: DeviceN spaces
 ============================================================
-Defining \c__color_fallback_TwoUp_tl on line ...
 Defining \__color_backend_fill_TwoUp:n on line ...
 Defining \__color_backend_stroke_TwoUp:n on line ...
 Defining \__color_backend_select_TwoUp:n on line ...
 Defining \__color_model_TwoUp_white: on line ...
 Defining \__color_parse_model_TwoUp:w on line ...
 Defining \__color_parse_mix_TwoUp:nw on line ...
-Defining \__color_convert_TwoUp_gray:w on line ...
-Defining \__color_convert_TwoUp_rgb:w on line ...
+Defining \c__color_fallback_TwoUp_tl on line ...
+Defining \__color_convert_cmyk_TwoUp:w on line ...
 Defining \__color_convert_TwoUp_cmyk:w on line ...
 Defining \l__color_named_twoup_tl on line ...
 Defining \l__color_named_twoup_prop on line ...
@@ -445,15 +440,14 @@ The color foo has the properties:
 >  TwoUp  =>  0.375 0.125.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_AllIn_tl on line ...
 Defining \__color_backend_fill_AllIn:n on line ...
 Defining \__color_backend_stroke_AllIn:n on line ...
 Defining \__color_backend_select_AllIn:n on line ...
 Defining \__color_model_AllIn_white: on line ...
 Defining \__color_parse_model_AllIn:w on line ...
 Defining \__color_parse_mix_AllIn:nw on line ...
-Defining \__color_convert_AllIn_gray:w on line ...
-Defining \__color_convert_AllIn_rgb:w on line ...
+Defining \c__color_fallback_AllIn_tl on line ...
+Defining \__color_convert_cmyk_AllIn:w on line ...
 Defining \__color_convert_AllIn_cmyk:w on line ...
 Defining \l__color_named_allin_tl on line ...
 Defining \l__color_named_allin_prop on line ...
@@ -481,11 +475,13 @@ constituent colors do not have a common alternative color.
 ============================================================
 TEST 15: ICCBased spaces
 ============================================================
-Defining \c__color_fallback_ICC_tl on line ...
 Defining \__color_backend_fill_ICC:n on line ...
 Defining \__color_backend_stroke_ICC:n on line ...
 Defining \__color_backend_select_ICC:n on line ...
 Defining \__color_model_ICC_white: on line ...
+Defining \c__color_fallback_ICC_tl on line ...
+Defining \__color_convert_ICC_gray:w on line ...
+Defining \__color_convert_gray_ICC:w on line ...
 Defining \__color_parse_model_ICC:w on line ...
 Defining \__color_parse_mix_ICC:nw on line ...
 Defining \l__color_named_ICC3_tl on line ...
diff --git a/l3kernel/testfiles/m3color003.xetex.tlg b/l3kernel/testfiles/m3color003.xetex.tlg
index 509d07d12..ec2d1de1e 100644
--- a/l3kernel/testfiles/m3color003.xetex.tlg
+++ b/l3kernel/testfiles/m3color003.xetex.tlg
@@ -207,16 +207,15 @@ l. ...  }
 ============================================================
 TEST 8: Creating new models
 ============================================================
-Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_backend_fill_BarToneCMYK:n on line ...
 Defining \__color_backend_stroke_BarToneCMYK:n on line ...
 Defining \__color_backend_select_BarToneCMYK:n on line ...
 Defining \__color_model_BarToneCMYK_white: on line ...
 Defining \__color_parse_mix_BarToneCMYK:nw on line ...
 Defining \__color_parse_model_BarToneCMYK:w on line ...
+Defining \c__color_fallback_BarToneCMYK_tl on line ...
 Defining \__color_convert_BarToneCMYK_cmyk:w on line ...
-Defining \__color_convert_BarToneCMYK_rgb:w on line ...
-Defining \__color_convert_BarToneCMYK_gray:w on line ...
+Defining \__color_convert_cmyk_BarToneCMYK:w on line ...
 Defining \l__color_named_fooCMYK_tl on line ...
 Defining \l__color_named_fooCMYK_prop on line ...
 The color fooCMYK has the properties:
@@ -224,16 +223,15 @@ The color fooCMYK has the properties:
 >  BarToneCMYK  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_backend_fill_BarToneRGB:n on line ...
 Defining \__color_backend_stroke_BarToneRGB:n on line ...
 Defining \__color_backend_select_BarToneRGB:n on line ...
 Defining \__color_model_BarToneRGB_white: on line ...
 Defining \__color_parse_mix_BarToneRGB:nw on line ...
 Defining \__color_parse_model_BarToneRGB:w on line ...
+Defining \c__color_fallback_BarToneRGB_tl on line ...
 Defining \__color_convert_BarToneRGB_rgb:w on line ...
-Defining \__color_convert_BarToneRGB_cmyk:w on line ...
-Defining \__color_convert_BarToneRGB_gray:w on line ...
+Defining \__color_convert_rgb_BarToneRGB:w on line ...
 Defining \l__color_named_fooRGB_tl on line ...
 Defining \l__color_named_fooRGB_prop on line ...
 The color fooRGB has the properties:
@@ -241,16 +239,15 @@ The color fooRGB has the properties:
 >  BarToneRGB  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_backend_fill_BarToneGray:n on line ...
 Defining \__color_backend_stroke_BarToneGray:n on line ...
 Defining \__color_backend_select_BarToneGray:n on line ...
 Defining \__color_model_BarToneGray_white: on line ...
 Defining \__color_parse_mix_BarToneGray:nw on line ...
 Defining \__color_parse_model_BarToneGray:w on line ...
-Defining \__color_convert_BarToneGray_cmyk:w on line ...
+Defining \c__color_fallback_BarToneGray_tl on line ...
 Defining \__color_convert_BarToneGray_gray:w on line ...
-Defining \__color_convert_BarToneGray_rgb:w on line ...
+Defining \__color_convert_gray_BarToneGray:w on line ...
 Defining \l__color_named_fooGray_tl on line ...
 Defining \l__color_named_fooGray_prop on line ...
 The color fooGray has the properties:
@@ -258,7 +255,6 @@ The color fooGray has the properties:
 >  BarToneGray  =>  0.5.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_backend_fill_BarToneCIELAB:n on line ...
 Defining \__color_backend_stroke_BarToneCIELAB:n on line ...
 Defining \__color_backend_select_BarToneCIELAB:n on line ...
@@ -266,9 +262,9 @@ Defining \__color_model_BarToneCIELAB_white: on line ...
 Defining \__color_parse_mix_BarToneCIELAB:nw on line ...
 Defining \__color_parse_model_BarToneCIELAB:w on line ...
 Defining \c__pdf_backend_object___color_illuminant_CIELAB_d65_int on line ..
-Defining \__color_convert_BarToneCIELAB_cmyk:w on line ...
-Defining \__color_convert_BarToneCIELAB_rgb:w on line ...
+Defining \c__color_fallback_BarToneCIELAB_tl on line ...
 Defining \__color_convert_BarToneCIELAB_gray:w on line ...
+Defining \__color_convert_gray_BarToneCIELAB:w on line ...
 The color BarToneCIELAB is undefined.
 > .
 <recently read> }
@@ -419,15 +415,14 @@ l. ...  }
 ============================================================
 TEST 13: DeviceN spaces
 ============================================================
-Defining \c__color_fallback_TwoUp_tl on line ...
 Defining \__color_backend_fill_TwoUp:n on line ...
 Defining \__color_backend_stroke_TwoUp:n on line ...
 Defining \__color_backend_select_TwoUp:n on line ...
 Defining \__color_model_TwoUp_white: on line ...
 Defining \__color_parse_model_TwoUp:w on line ...
 Defining \__color_parse_mix_TwoUp:nw on line ...
-Defining \__color_convert_TwoUp_gray:w on line ...
-Defining \__color_convert_TwoUp_rgb:w on line ...
+Defining \c__color_fallback_TwoUp_tl on line ...
+Defining \__color_convert_cmyk_TwoUp:w on line ...
 Defining \__color_convert_TwoUp_cmyk:w on line ...
 Defining \l__color_named_twoup_tl on line ...
 Defining \l__color_named_twoup_prop on line ...
@@ -441,15 +436,14 @@ The color foo has the properties:
 >  TwoUp  =>  0.375 0.125.
 <recently read> }
 l. ...  }
-Defining \c__color_fallback_AllIn_tl on line ...
 Defining \__color_backend_fill_AllIn:n on line ...
 Defining \__color_backend_stroke_AllIn:n on line ...
 Defining \__color_backend_select_AllIn:n on line ...
 Defining \__color_model_AllIn_white: on line ...
 Defining \__color_parse_model_AllIn:w on line ...
 Defining \__color_parse_mix_AllIn:nw on line ...
-Defining \__color_convert_AllIn_gray:w on line ...
-Defining \__color_convert_AllIn_rgb:w on line ...
+Defining \c__color_fallback_AllIn_tl on line ...
+Defining \__color_convert_cmyk_AllIn:w on line ...
 Defining \__color_convert_AllIn_cmyk:w on line ...
 Defining \l__color_named_allin_tl on line ...
 Defining \l__color_named_allin_prop on line ...
@@ -477,11 +471,13 @@ constituent colors do not have a common alternative color.
 ============================================================
 TEST 15: ICCBased spaces
 ============================================================
-Defining \c__color_fallback_ICC_tl on line ...
 Defining \__color_backend_fill_ICC:n on line ...
 Defining \__color_backend_stroke_ICC:n on line ...
 Defining \__color_backend_select_ICC:n on line ...
 Defining \__color_model_ICC_white: on line ...
+Defining \c__color_fallback_ICC_tl on line ...
+Defining \__color_convert_ICC_gray:w on line ...
+Defining \__color_convert_gray_ICC:w on line ...
 Defining \__color_parse_model_ICC:w on line ...
 Defining \__color_parse_mix_ICC:nw on line ...
 Defining \c__pdf_backend_object___color_icc_sRGB_v4_ICC_preference.icc_int on line ...





More information about the latex3-commits mailing list.