tikzexternalize 和 xespotcolor

tikzexternalize 和 xespotcolor

使用包xespotcolor,我可以用 定义和使用专色XeLaTeX。即使与 一起使用,也可以正常工作tikz

然而,当我尝试使用专色时,我遇到了麻烦外化tikz 图片。pdf为图片生成的文件已损坏,因此,在包含图片(第二次 tex 运行)之后,最终的 pdf 文件也已损坏。

我已将问题追溯到图片 pdf 中缺少颜色空间定义。pdf 中应该有如下代码

  /ColorSpace <<
    /PANTONE285C [
      /Separation
      /PANTONE#20285#20C
      /DeviceCMYK
      632 0 R
    ]
  >>

但是没有。似乎在生成图片pdf时tikzexternalize跳过了生成的输出。xespotcolor

有没有办法强制tikzexternalize在生成图片 pdf 时不跳过某些内容?或者在每个图片 pdf 中包含特定代码?我需要像钩子这样的东西。

最小非工作示例——通过编译它xelatex --shell-escape [filename]会产生损坏的图形 pdf,其中缺少颜色空间定义。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize

\RequirePackage[xcolor]{xespotcolor}
\NewSpotColorSpace{PANTONE}
\AddSpotColor{PANTONE}{PANTONE285C}{PANTONE\SpotSpace 285\SpotSpace C} {1 .45 0 0.19}
\SetPageColorSpace{PANTONE}
\definecolor{myblue}{spotcolor}{PANTONE285C,1.0}

\begin{document}
\begin{tikzpicture}
\draw [myblue] (0,0) -- (2,0);
\end{tikzpicture}
\end{document}

答案1

我可以用 texlive 2019 重现你的问题。

但是在 texlive 2020 和新的 LaTeX 2020-10-01 以及使用新 LaTeX 挂钩的新 everypage 中,pdf 很好,并且色彩空间就在那里。

相关内容