这个问题导致了一个新的方案的出现:
xspotcolor
我在使用包时遇到问题spotcolor
。当使用该包重新定义标题、标题\emph
等时,颜色会渗入周围环境。这种行为与xcolor
包的行为完全不同。
我是猜测这是软件包问题。我联系了作者,但他无法提供帮助,因为他已经多年没有从事 LaTeX 业务了。由于这确实是一个很小的软件包,是否有人可以查看它并(万一有错误)纠正它?
梅威瑟:
\documentclass[a4paper]{article}
\usepackage{spotcolor}
\usepackage{xcolor}
\NewSpotColorSpace{PANTONE}
\AddSpotColor{PANTONE} {PANTONE3035PC} {PANTONE\SpotSpace 3035\SpotSpace PC} {1 0 0.05 0.72}
% Redefinition of \emph command
\begin{document}
\SetPageColorSpace{PANTONE}
\makeatletter
\DeclareRobustCommand\em{%
\@nomath\em
\SpotColor{PANTONE3035PC}{1}
\ifdim \fontdimen\@ne\font >\z@
\upshape
\else
\itshape
\fi}
\makeatother
The \emph{Pantone colour} spills outside of \slash emph command.
\makeatletter
\DeclareRobustCommand\em{%
\@nomath\em
\color{red}
\ifdim \fontdimen\@ne\font >\z@
\upshape
\else
\itshape
\fi}
\makeatother
The \emph{normal red} does not.
\end{document}
答案1
首先,请注意,如果您不想使用xcolor
但对原始color
包装感到满意,那么您可以使用颜色模型像普通颜色一样切换到专色spotcolor
。
尝试这个修改后的例子:
\documentclass[a4paper]{article}
\usepackage{spotcolor}
\usepackage{color}
\NewSpotColorSpace{PANTONE}
\AddSpotColor{PANTONE} {PANTONE3035PC} {PANTONE\SpotSpace 3035\SpotSpace PC} {1 0 0.05 0.72}
% Redefinition of \emph command
\begin{document}
\SetPageColorSpace{PANTONE}
\makeatletter
\DeclareRobustCommand\em{%
\@nomath\em
\color[spotcolor]{PANTONE3035PC,1.0}
\ifdim \fontdimen\@ne\font >\z@
\upshape
\else
\itshape
\fi}
\makeatother
The \emph{Pantone colour} does no longer spill outside of \verb|\emph| command.
\textcolor[spotcolor]{PANTONE3035PC,0.5}{Lighter shade}.
\makeatletter
\DeclareRobustCommand\em{%
\@nomath\em
\color{red}
\ifdim \fontdimen\@ne\font >\z@
\upshape
\else
\itshape
\fi}
\makeatother
The \emph{normal red} does neither.
\end{document}
您正在使用的包xcolor
与 存在一些不兼容性spotcolor
。
我写了一个包xspotcolor
它把两个包合并在一起。目前它位于 TEX-SX 存储库中等待测试,但希望它能很快进入 CTAN。
试试看!