在 xespotcolor 中混合专色

在 xespotcolor 中混合专色

我被要求制作一个带有 PANTONE 专色的 PDF 文件。我使用了以下代码(来自上一篇)在 XeLaTeX 中:

\documentclass{article}
\usepackage[pantone]{xespotcolor}
\NewSpotColorSpace{PANTONE}
\AddSpotColor     {PANTONE}  {PANTONE293C} {PANTONE\SpotSpace 293\SpotSpace C} {1 0.68 0.0 0.02}
\AddSpotColor     {PANTONE}  {PANTONE485C} {PANTONE\SpotSpace 485\SpotSpace C} {0 0.93 0.95 0}
\SetPageColorSpace{PANTONE}
\definecolor{PANTONE293C}  {spotcolor} {PANTONE293C,1.0}
\definecolor{PANTONE485C}  {spotcolor} {PANTONE485C,1.0}
\begin{document}
\color{PANTONE293C}
Test (blue)
\color{PANTONE485C}
Test (red)
\end{document}

它工作得很好。但现在我需要混合两种专色。在包中colorspace我发现了以下代码:

\definecolorspace{mymix}{mixed}{PANTONE293C,PANTONE485C}

通常情况下,我可以使用 50%-50% 的混合比例,如下所示:

\color[mymix]{.5,.5}

但显然xespotcolorcolorspace不兼容,\definecolorspace前者不知道该命令,当我加载两者时收到错误消息。

我怎样才能混合专色xespotcolor

答案1

这可以通过 来实现l3color,它支持dvips、XeTeX/dvipdfmx和直接 PDF 输出 (pdfTeX/LuaTeX) 的色彩空间。使用最新的系统

\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{uncompress}
\RequirePackage{expl3}
\documentclass{article}
\ExplSyntaxOn
\NewDocumentCommand \definespotcolor { m m m }
  {
    \color_model_new:nnn {#1} { Separation } 
      {
        name = {#2} ,
        alternative-model = cmyk,
        alternative-values = {#3}
      }
  }
\NewDocumentCommand \definecolorspace { m m m }
  {
    \color_model_new:nnn {#1} { DeviceN }
      {
        names  = {#3}
      }
  }
\NewDocumentCommand \definecolor { m m m }
  {
    \color_set:nnn {#1} {#2} {#3}
  }
\NewDocumentCommand \color { o m }
  {
    \IfNoValueTF {#1}
      { \color_select:n {#2} }
      { \color_select:nn {#1} {#2} }
  }
\ExplSyntaxOff

\definespotcolor{fooA}{PANTONE 293 C}{1, 0.68, 0.0, 0.02}
\definespotcolor{fooB}{PANTONE 485 C}{0, 0.93, 0.95, 0}

\definecolor{fooA}{fooA}{1}
\definecolor{fooB}{fooB}{1}
\definecolorspace{mymix}{mixed}{fooA,fooB}
\definecolor{mix1}{mymix}{1,0}
\definecolor{mix2}{mymix}{0,1}
\definecolor{mix3}{mymix}{0.75,0.25}
 
\begin{document}
\color{fooA}abc%
\color{fooB}abc%
\color{mix1}abc%
\color{mix2}abc%
\color{mix3}abc
\end{document}

将得到期望的结果。

相关内容