[latex3-commits] [git/LaTeX3-latex3-latex2e] develop: Update l3backend and l3kernel to 2021-10-18 (66ae5346)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Oct 18 20:32:00 CEST 2021


Repository : https://github.com/latex3/latex2e
On branch  : develop
Link       : https://github.com/latex3/latex2e/commit/66ae5346305589aec5ab7cc8c85ba808fae97bfa

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

commit 66ae5346305589aec5ab7cc8c85ba808fae97bfa
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Mon Oct 18 19:31:56 2021 +0100

    Update l3backend and l3kernel to 2021-10-18


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

66ae5346305589aec5ab7cc8c85ba808fae97bfa
 texmf/tex/latex/l3backend/l3backend-dvipdfmx.def |  54 ++++++++++-
 texmf/tex/latex/l3backend/l3backend-dvips.def    |   4 +-
 texmf/tex/latex/l3backend/l3backend-dvisvgm.def  |  20 +++-
 texmf/tex/latex/l3backend/l3backend-luatex.def   |  54 ++++++++++-
 texmf/tex/latex/l3backend/l3backend-pdftex.def   |  54 ++++++++++-
 texmf/tex/latex/l3backend/l3backend-xetex.def    |  54 ++++++++++-
 texmf/tex/latex/l3kernel/expl3-code.tex          | 112 ++++++++++++++++++++++-
 texmf/tex/latex/l3kernel/expl3-generic.tex       |   2 +-
 texmf/tex/latex/l3kernel/expl3.ltx               |   2 +-
 texmf/tex/latex/l3kernel/expl3.sty               |   2 +-
 10 files changed, 343 insertions(+), 15 deletions(-)

diff --git a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
index 3c60e08d..dbe5d960 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2021-10-17}{}
+  {l3backend-dvipdfmx.def}{2021-10-18}{}
   {L3 backend support: dvipdfmx}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -224,6 +224,7 @@
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn  } { /#1 ~ CS ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
+\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
     \pdf_object_unnamed_write:nx { dict }
@@ -329,6 +330,57 @@
     \tl_if_blank:nF {#2}
       { \__color_backend_devicen_init:w #2 \s__color_stop }
   }
+\cs_new_protected:Npn \__color_backend_iccbased_init:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nx { __color_icc_ #1 }
+          {
+            {
+              /N ~ \exp_not:n { #2 } ~
+              \tl_if_empty:nF { #3 } { /Range~[ #3 ] }
+            }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
+              { color \int_use:N \g__color_model_int }
+              { ~ \pdf_object_ref_last: }
+          }
+      }
+  }
+
+\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nn { __color_icc_ #1 }
+          {
+            { /N ~ #3 }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn
+              { Page / Resources / ColorSpace }
+              { Default #2 }
+              { \pdf_object_ref_last: }
+          }
+      }
+  }
 \int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
   {
     \cs_gset_protected:Npn \__color_backend_select_separation:nn #1#2 { }
diff --git a/texmf/tex/latex/l3backend/l3backend-dvips.def b/texmf/tex/latex/l3backend/l3backend-dvips.def
index 2b3314ee..e6a75ffb 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvips.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvips.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2021-10-17}{}
+  {l3backend-dvips.def}{2021-10-18}{}
   {L3 backend support: dvips}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -147,6 +147,7 @@
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:n { separation ~ #1 ~ #2 } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
+\cs_new_protected:Npn \__color_backend_select_iccbased:nn #1#2 { }
 \cs_new_protected:Npx \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
     \bool_if:NT \g__kernel_backend_header_bool
@@ -324,6 +325,7 @@
         end
       }
   }
+\cs_new_protected:Npn \__color_backend_iccbased_init:nnn #1#2#3 { }
 \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
   { \__color_backend_fill:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__color_backend_fill_gray:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
index e76764e7..9f7839f5 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2021-10-17}{}
+  {l3backend-dvisvgm.def}{2021-10-18}{}
   {L3 backend support: dvisvgm}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -132,9 +132,25 @@
 \cs_new_protected:Npn \__color_backend_reset:
   { \__kernel_backend_literal:n { color~pop } }
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 { }
-\cs_new_protected:Npn \__color_backend_select_devicen:nn #1#2 { }
+\cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { }
 \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnnnnn #1#2#3 { }
+\cs_new_protected:Npn \__color_backend_select_iccbased:nn #1#2
+  {
+    \__kernel_backend_literal_svg:x
+      {
+        <style>
+          @color-profile ~
+            \str_if_eq:nnTF {#2} { cmyk }
+              { device-cmyk }
+              { --color \int_use:N \g__color_model_int }
+                \c_space_tl
+            {
+              src:("#1")
+            }
+        </style>
+      }
+  }
 \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
   { \__color_backend_fill:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__color_backend_fill_gray:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-luatex.def b/texmf/tex/latex/l3backend/l3backend-luatex.def
index af99f37a..18d39d72 100644
--- a/texmf/tex/latex/l3backend/l3backend-luatex.def
+++ b/texmf/tex/latex/l3backend/l3backend-luatex.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-luatex.def}{2021-10-17}{}
+  {l3backend-luatex.def}{2021-10-18}{}
   {L3 backend support: PDF output (LuaTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -181,6 +181,7 @@
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn  } { /#1 ~ CS ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
+\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
     \pdf_object_unnamed_write:nx { dict }
@@ -286,6 +287,57 @@
     \tl_if_blank:nF {#2}
       { \__color_backend_devicen_init:w #2 \s__color_stop }
   }
+\cs_new_protected:Npn \__color_backend_iccbased_init:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nx { __color_icc_ #1 }
+          {
+            {
+              /N ~ \exp_not:n { #2 } ~
+              \tl_if_empty:nF { #3 } { /Range~[ #3 ] }
+            }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
+              { color \int_use:N \g__color_model_int }
+              { ~ \pdf_object_ref_last: }
+          }
+      }
+  }
+
+\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nn { __color_icc_ #1 }
+          {
+            { /N ~ #3 }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn
+              { Page / Resources / ColorSpace }
+              { Default #2 }
+              { \pdf_object_ref_last: }
+          }
+      }
+  }
 \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
   { \__color_backend_fill:n { #1 ~ k } }
 \cs_new_protected:Npn \__color_backend_fill_gray:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-pdftex.def b/texmf/tex/latex/l3backend/l3backend-pdftex.def
index 55fb8e16..0cca706a 100644
--- a/texmf/tex/latex/l3backend/l3backend-pdftex.def
+++ b/texmf/tex/latex/l3backend/l3backend-pdftex.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdftex.def}{2021-10-17}{}
+  {l3backend-pdftex.def}{2021-10-18}{}
   {L3 backend support: PDF output (pdfTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -181,6 +181,7 @@
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn  } { /#1 ~ CS ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
+\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
     \pdf_object_unnamed_write:nx { dict }
@@ -286,6 +287,57 @@
     \tl_if_blank:nF {#2}
       { \__color_backend_devicen_init:w #2 \s__color_stop }
   }
+\cs_new_protected:Npn \__color_backend_iccbased_init:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nx { __color_icc_ #1 }
+          {
+            {
+              /N ~ \exp_not:n { #2 } ~
+              \tl_if_empty:nF { #3 } { /Range~[ #3 ] }
+            }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
+              { color \int_use:N \g__color_model_int }
+              { ~ \pdf_object_ref_last: }
+          }
+      }
+  }
+
+\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nn { __color_icc_ #1 }
+          {
+            { /N ~ #3 }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn
+              { Page / Resources / ColorSpace }
+              { Default #2 }
+              { \pdf_object_ref_last: }
+          }
+      }
+  }
 \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1
   { \__color_backend_fill:n { #1 ~ k } }
 \cs_new_protected:Npn \__color_backend_fill_gray:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-xetex.def b/texmf/tex/latex/l3backend/l3backend-xetex.def
index 28afd4cb..2c035ff5 100644
--- a/texmf/tex/latex/l3backend/l3backend-xetex.def
+++ b/texmf/tex/latex/l3backend/l3backend-xetex.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xetex.def}{2021-10-17}{}
+  {l3backend-xetex.def}{2021-10-18}{}
   {L3 backend support: XeTeX}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -224,6 +224,7 @@
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:nn { /#1 ~ cs ~ #2 ~ scn  } { /#1 ~ CS ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
+\cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
     \pdf_object_unnamed_write:nx { dict }
@@ -329,6 +330,57 @@
     \tl_if_blank:nF {#2}
       { \__color_backend_devicen_init:w #2 \s__color_stop }
   }
+\cs_new_protected:Npn \__color_backend_iccbased_init:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nx { __color_icc_ #1 }
+          {
+            {
+              /N ~ \exp_not:n { #2 } ~
+              \tl_if_empty:nF { #3 } { /Range~[ #3 ] }
+            }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn { Page / Resources / ColorSpace }
+              { color \int_use:N \g__color_model_int }
+              { ~ \pdf_object_ref_last: }
+          }
+      }
+  }
+
+\cs_new_protected:Npn \__color_backend_iccbased_device:nnn #1#2#3
+  {
+    \pdf_object_if_exist:nF { __color_icc_ #1 }
+      {
+        \pdf_object_new:nn { __color_icc_ #1 } { fstream }
+        \pdf_object_write:nn { __color_icc_ #1 }
+          {
+            { /N ~ #3 }
+            {#1}
+          }
+      }
+    \pdf_object_unnamed_write:nx { array }
+      { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } }
+    \cs_if_exist:NT \pdfmanagement_add:nnn
+      {
+        \use:x
+          {
+            \pdfmanagement_add:nnn
+              { Page / Resources / ColorSpace }
+              { Default #2 }
+              { \pdf_object_ref_last: }
+          }
+      }
+  }
 \int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
   {
     \cs_gset_protected:Npn \__color_backend_select_separation:nn #1#2 { }
diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex
index d22ab6a2..65bd533c 100644
--- a/texmf/tex/latex/l3kernel/expl3-code.tex
+++ b/texmf/tex/latex/l3kernel/expl3-code.tex
@@ -70,7 +70,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2021-10-17}%
+\def\ExplFileDate{2021-10-18}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -28698,11 +28698,10 @@
           }
       }
   }
-\cs_new_protected:Npn \__color_model_init:nnn #1#2#3
+\cs_new_protected:Npn \__color_model_init:nnnnn #1#2#3#4#5
   {
     \int_gincr:N \g__color_model_int
-    \tl_const:cx { c__color_fallback_ #1 _tl }
-      { 1 \prg_replicate:nn { #2 - 1 } { ~ 1 } }
+    \tl_const:cn { c__color_fallback_ #1 _tl } { #4 }
     \clist_map_inline:nn { fill , stroke , select }
       {
         \cs_new_protected:cpx { __color_backend_ ##1 _ #1 :n } ####1
@@ -28714,12 +28713,23 @@
     \cs_new_protected:cpx { __color_model_ #1 _white: }
       {
         \prop_put:Nnn \exp_not:N \l__color_named_white_prop {#1}
-          { 0 \prg_replicate:nn { #2 - 1 } { ~ 0 } }
+        { \exp_not:n {#5} }
         \exp_not:N \int_compare:nNnF { \tex_currentgrouplevel:D } = 0
           { \group_insert_after:N \exp_not:c { __color_model_ #1 _ white: } }
       }
     \use:c { __color_model_ #1 _white: }
   }
+\cs_generate_variant:Nn \__color_model_init:nnnnn { nnnxx }
+\cs_new_protected:Npn \__color_model_init:nnn #1#2#3
+  {
+    \__color_model_init:nnnxx { #1 } { #2 } { #3 }
+      {
+        1 \prg_replicate:nn { #2 - 1 } { ~ 1 }
+      }
+      {
+        0 \prg_replicate:nn { #2 - 1 } { ~ 0 }
+      }
+  }
 \cs_new_protected:Npn \__color_model_separation:n #1
   {
     \prop_get:NnNTF \l__color_internal_prop { name }
@@ -29237,6 +29247,75 @@
           #4 \s__color_mark #5 \s__color_stop
       }
   }
+\prop_const_from_keyval:Nn \c__color_icc_colorspace_signatures_prop
+  {
+    47524159 = {1} {1} {0} {},
+    52474220 = {3} {0~0~0} {1~1~1} {},
+    434D594B = {4} {0~0~0~1} {0~0~0~0} {},
+    4C616220 = {3} {0~0~0} {100~0~0} {0~100~-128~127~-128~127}
+  }
+\cs_new_protected:Npn \__color_model_iccbased:n #1
+  {
+    \prop_get:NnNTF \l__color_internal_prop { file }
+      \l__color_internal_tl
+      {
+        \exp_args:NV \__color_model_iccbased:nn
+          \l__color_internal_tl {#1}
+      }
+      {
+        \msg_error:nnn { color }
+          { ICCBased-requires-file } {#1}
+      }
+  }
+\cs_new_protected:Npn \__color_model_iccbased:nn #1#2
+  {
+    \exp_args:NNx \prop_get:NnNTF \c__color_icc_colorspace_signatures_prop
+      { \file_hex_dump:nnn { #1 } { 17 } { 20 } } \l__color_internal_tl
+      {
+        \exp_last_unbraced:NV \__color_model_iccbased_aux:nnnnnn
+          \l__color_internal_tl { #2 } { #1 }
+      }
+      {
+        \msg_error:nnn { color }
+        { ICCBased-unsupported-colorspace } {#2}
+      }
+  }
+\cs_new_protected:Npn \__color_model_iccbased_aux:nnnnnn #1#2#3#4#5#6
+  {
+    \__color_model_init:nnnnn {#5} {#1} { iccbased } {#2} {#3}
+    \use:c { __color_model_devicen_parse_ #1 :nn } {#5} {#1}
+    \exp_args:Nx \__color_backend_iccbased_init:nnn
+      { \file_full_name:n {#6} } {#1} {#4}
+  }
+\cs_new_protected:Npn \color_profile_apply:nn #1#2
+  {
+    \exp_args:Ne \__color_profile_apply:nn
+      { \file_full_name:n {#1} } {#2}
+  }
+\cs_new_protected:Npn \__color_profile_apply:nn #1#2
+  {
+    \cs_if_exist_use:cF { __color_profile_apply_ \tl_to_str:n {#2} :n }
+      {
+        \msg_error:nnn { color } { ICC-Device-unknown } {#2}
+        \use_none:n
+      }
+        {#1}
+  }
+\cs_new_protected:Npn \__color_profile_apply_gray:n #1
+  {
+    \int_gincr:N \g__color_model_int
+    \__color_backend_iccbased_device:nnn {#1} { Gray } { 1 }
+  }
+\cs_new_protected:Npn \__color_profile_apply_rgb:n #1
+  {
+    \int_gincr:N \g__color_model_int
+    \__color_backend_iccbased_device:nnn {#1} { RGB } { 3 }
+  }
+\cs_new_protected:Npn \__color_profile_apply_cmyk:n #1
+  {
+    \int_gincr:N \g__color_model_int
+    \__color_backend_iccbased_device:nnn {#1} { CMYK } { 4 }
+  }
 \cs_new_protected:Npn \color_show:n
   { \__color_show:Nn \msg_show:nnxxxx }
 \cs_new_protected:Npn \color_log:n
@@ -29299,6 +29378,29 @@
     \\ \\
     key~was~given~with~the~correct~information.
   }
+\msg_new:nnnn { color } { ICC-Device-unknown }
+  { Unknown~device~color~space~'#1'. }
+  {
+    LaTeX~has~been~asked~to~apply~an~ICC~profile~but~the~device~color~space~
+    '#1'~is~unknown.
+  }
+\msg_new:nnnn { color } { ICCBased-unsupported-colorspace }
+  { ICCBased~color~space~'#1'~uses~an~unsupported~data~color~space. }
+  {
+    LaTeX~has~been~asked~to~create~a~ICCBased~colorspace,~but~the~
+    used~data~colorspace~is~not~supported.~ICC~profiles~used~for~
+    defining~a~ICCBased~colorspace~should~use~a~Lab,~RGB,~or~
+    CMYK~data~colorspace.~LaTeX~will~ignore~this~request.
+  }
+\msg_new:nnnn { color } { ICCBased-requires-file }
+  { ICCBased~color~space~'#1'~require~an~file. }
+  {
+    LaTeX~has~been~asked~to~create~an~ICCBased~color~space,~but~no~\\ \\
+    \iow_indent:n { file~=~<name> }
+    \\ \\
+    key~was~given~with~the~correct~information.~LaTeX~will~ignore~this~
+    request.
+  }
 \msg_new:nnnn { color } { model-already-defined }
   { Color~model~'#1'~already~defined. }
   {
diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex
index e72ec473..3d1e1a7d 100644
--- a/texmf/tex/latex/l3kernel/expl3-generic.tex
+++ b/texmf/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2021-10-17}%
+\def\ExplFileDate{2021-10-18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx
index f7ed2960..64ef124d 100644
--- a/texmf/tex/latex/l3kernel/expl3.ltx
+++ b/texmf/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2021-10-17}%
+\def\ExplFileDate{2021-10-18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty
index 9fa394e6..a76be7b8 100644
--- a/texmf/tex/latex/l3kernel/expl3.sty
+++ b/texmf/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2021-10-17}%
+\def\ExplFileDate{2021-10-18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%





More information about the latex3-commits mailing list.