[latex3-commits] [git/LaTeX3-latex3-latex3] main: Better DeviceN support (00de45504)

Joseph Wright joseph.wright at morningstar2.co.uk
Fri Oct 15 09:03:06 CEST 2021


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/00de455041faa0bd4748df6687cf76c9fe96c83f

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

commit 00de455041faa0bd4748df6687cf76c9fe96c83f
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Fri Oct 15 08:03:06 2021 +0100

    Better DeviceN support


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

00de455041faa0bd4748df6687cf76c9fe96c83f
 l3backend/CHANGELOG.md                  |  3 +++
 l3backend/l3backend-color.dtx           | 33 ++++++++++++++++++++++++++++++---
 l3kernel/CHANGELOG.md                   |  3 +++
 l3kernel/testfiles/m3expl001.luatex.tlg |  3 ++-
 l3kernel/testfiles/m3expl001.tlg        |  3 ++-
 l3kernel/testfiles/m3expl001.xetex.tlg  |  3 ++-
 l3kernel/testfiles/m3expl003.luatex.tlg |  3 ++-
 l3kernel/testfiles/m3expl003.tlg        |  3 ++-
 l3kernel/testfiles/m3expl003.xetex.tlg  |  3 ++-
 9 files changed, 48 insertions(+), 9 deletions(-)

diff --git a/l3backend/CHANGELOG.md b/l3backend/CHANGELOG.md
index f98528e31..3f0cdde6a 100644
--- a/l3backend/CHANGELOG.md
+++ b/l3backend/CHANGELOG.md
@@ -6,6 +6,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Changed
+- Better DeviceN support
+
 ## [2021-10-12]
 
 ### Fixed
diff --git a/l3backend/l3backend-color.dtx b/l3backend/l3backend-color.dtx
index 029553aac..38ed4c854 100644
--- a/l3backend/l3backend-color.dtx
+++ b/l3backend/l3backend-color.dtx
@@ -835,7 +835,7 @@
   {
     \pdf_object_unnamed_write:nx { array }
       { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
-    \prop_gput:Nnx \g_@@_backend_colorant_prop {#1}
+    \prop_gput:Nnx \g_@@_backend_colorant_prop { /#1 }
       { \pdf_object_ref_last: }
   }
 %    \end{macrocode}
@@ -871,7 +871,8 @@
 %
 % \begin{macro}{\@@_backend_devicen_init:nnn}
 % \begin{macro}[EXP]{\@@_backend_devicen_init:w}
-% \begin{macro}{\@@_backend_devicen_init:n}
+% \begin{macro}[EXP]{\@@_backend_devicen_colorants:n}
+% \begin{macro}[EXP]{\@@_backend_devicen_colorants:w}
 %   Similar to the Separations case, but with an arbitrary function for
 %   the alternative space work.
 %    \begin{macrocode}
@@ -905,6 +906,7 @@
         [ ~ #1 ~ ] ~
         #2 ~
         \pdf_object_ref_last:
+        \@@_backend_devicen_colorants:n {#1}
       }
     \bool_lazy_and:nnT
       { \cs_if_exist_p:N \pdfmanagement_if_active_p: }
@@ -925,11 +927,36 @@
     \tl_if_blank:nF {#2}
       { \@@_backend_devicen_init:w #2 \s_@@_stop }
   }
-\cs_new_eq:NN \@@_backend_devicen_init:n \@@_backend_separation_init:n
+\cs_new:Npx \@@_backend_devicen_colorants:n #1
+  {
+    \exp_not:N \tl_if_blank:nF {#1}
+      {
+        \c_space_tl
+        << ~
+          /Colorants ~
+            << ~
+              \exp_not:N \@@_backend_devicen_colorants:w #1 ~
+                \exp_not:N \q_recursion_tail \c_space_tl
+                \exp_not:N \q_recursion_stop
+            >> ~
+        >>
+      }
+  }
+\cs_new:Npn \@@_backend_devicen_colorants:w #1 ~
+  {
+    \quark_if_recursion_tail_stop:n {#1}
+    \prop_if_in:NnT \g_@@_backend_colorant_prop {#1}
+      {
+        #1 ~
+        \prop_item:Nn \g_@@_backend_colorant_prop {#1} ~
+      }
+    \@@_backend_devicen_colorants:w
+  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 %    \begin{macrocode}
 %</dvipdfmx|luatex|pdftex|xetex>
diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 55e9db4bb..76f76e55b 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -7,6 +7,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Changed
+- Better DeviceN support
+
 ## [2021-10-12]
 
 ### Fixed
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index e0f98c05e..a4e5220ea 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -50,7 +50,8 @@ Defining \__color_backend_separation_init:nn on line ...
 Defining \__color_backend_separation_init_CIELAB:nnn on line ...
 Defining \__color_backend_devicen_init:nnn on line ...
 Defining \__color_backend_devicen_init:w on line ...
-Defining \__color_backend_devicen_init:n on line ...
+Defining \__color_backend_devicen_colorants:n on line ...
+Defining \__color_backend_devicen_colorants:w on line ...
 Defining \__color_backend_fill_cmyk:n on line ...
 Defining \__color_backend_fill_gray:n on line ...
 Defining \__color_backend_fill_rgb:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index e57fd6c28..f4588cf03 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -50,7 +50,8 @@ Defining \__color_backend_separation_init:nn on line ...
 Defining \__color_backend_separation_init_CIELAB:nnn on line ...
 Defining \__color_backend_devicen_init:nnn on line ...
 Defining \__color_backend_devicen_init:w on line ...
-Defining \__color_backend_devicen_init:n on line ...
+Defining \__color_backend_devicen_colorants:n on line ...
+Defining \__color_backend_devicen_colorants:w on line ...
 Defining \__color_backend_fill_cmyk:n on line ...
 Defining \__color_backend_fill_gray:n on line ...
 Defining \__color_backend_fill_rgb:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index adcf7e5d9..9eeef5caf 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -55,7 +55,8 @@ Defining \__color_backend_separation_init:nn on line ...
 Defining \__color_backend_separation_init_CIELAB:nnn on line ...
 Defining \__color_backend_devicen_init:nnn on line ...
 Defining \__color_backend_devicen_init:w on line ...
-Defining \__color_backend_devicen_init:n on line ...
+Defining \__color_backend_devicen_colorants:n on line ...
+Defining \__color_backend_devicen_colorants:w on line ...
 Defining \__color_backend_fill_cmyk:n on line ...
 Defining \__color_backend_fill_gray:n on line ...
 Defining \__color_backend_fill_rgb:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index e0f98c05e..a4e5220ea 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -50,7 +50,8 @@ Defining \__color_backend_separation_init:nn on line ...
 Defining \__color_backend_separation_init_CIELAB:nnn on line ...
 Defining \__color_backend_devicen_init:nnn on line ...
 Defining \__color_backend_devicen_init:w on line ...
-Defining \__color_backend_devicen_init:n on line ...
+Defining \__color_backend_devicen_colorants:n on line ...
+Defining \__color_backend_devicen_colorants:w on line ...
 Defining \__color_backend_fill_cmyk:n on line ...
 Defining \__color_backend_fill_gray:n on line ...
 Defining \__color_backend_fill_rgb:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index e57fd6c28..f4588cf03 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -50,7 +50,8 @@ Defining \__color_backend_separation_init:nn on line ...
 Defining \__color_backend_separation_init_CIELAB:nnn on line ...
 Defining \__color_backend_devicen_init:nnn on line ...
 Defining \__color_backend_devicen_init:w on line ...
-Defining \__color_backend_devicen_init:n on line ...
+Defining \__color_backend_devicen_colorants:n on line ...
+Defining \__color_backend_devicen_colorants:w on line ...
 Defining \__color_backend_fill_cmyk:n on line ...
 Defining \__color_backend_fill_gray:n on line ...
 Defining \__color_backend_fill_rgb:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index adcf7e5d9..9eeef5caf 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -55,7 +55,8 @@ Defining \__color_backend_separation_init:nn on line ...
 Defining \__color_backend_separation_init_CIELAB:nnn on line ...
 Defining \__color_backend_devicen_init:nnn on line ...
 Defining \__color_backend_devicen_init:w on line ...
-Defining \__color_backend_devicen_init:n on line ...
+Defining \__color_backend_devicen_colorants:n on line ...
+Defining \__color_backend_devicen_colorants:w on line ...
 Defining \__color_backend_fill_cmyk:n on line ...
 Defining \__color_backend_fill_gray:n on line ...
 Defining \__color_backend_fill_rgb:n on line ...





More information about the latex3-commits mailing list.