加载颜色包会改变字体的默认颜色

加载颜色包会改变字体的默认颜色

我有三个简单的文件,它们加载与颜色相关的包,尽管它们不尝试使用任何花哨的颜色。这些是文件col.tex

\documentclass{minimal}
\usepackage{color}
\begin{document}
ABC
\end{document}

文件col-black.tex

\documentclass{minimal}
\usepackage{color}
\begin{document}
\textcolor{black}{ABC}
\end{document}

和文件xcol.tex

\documentclass{minimal}
\usepackage{xcolor}
\begin{document}
ABC
\end{document}

latex然后我dvips(使用 dvips(k) 5.994)查看每个文件,然后查看附言。我原本希望在所有情况下都得到黑色的“ABC”,就好像我根本没有加载任何颜色包一样。但是,当使用 可视化文件时evince,文件 的情况并非如此col.ps,我得到的“ABC”是深灰色,但显然不是黑色。如果我ps2pdf使用 放大倍数查看附言,差异会更加明显acroread

如果我比较三个 postscript 文件,除了每个文件中对 dvi 文件名的三次提及外,还有几行显示了差异:在col.ps

%%Page: 1 1
TeXDict begin 1 0 bop Black Black 166 83 a Fa(ABC)p Black
Black eop end
%%Trailer

col-black.ps

%%Page: 1 1
TeXDict begin 1 0 bop Black Black 0 TeXcolorgray 166
83 a Fa(ABC)p Black Black Black eop end
%%Trailer

以及xcol.ps

%%Page: 1 1
TeXDict begin 1 0 bop 0 TeXcolorgray Black 0 TeXcolorgray
166 83 a Fa(ABC)p 0 TeXcolorgray 0 TeXcolorgray eop end
%%Trailer

我做错了什么吗?这是包的预期行为吗color?如果是,有什么方法可以设置标题中的默认颜色吗?


问题似乎出在 的定义上Black。在所有文件中,它被定义为

 /Black{0 0 0 1 setcmykcolor}

如果我把定义col.ps改为

 /Black{0 setgray}

我得到了我所期望的正确的黑色。

答案1

默认颜色的选择实际上并不在color包的控制范围内,它是在def所使用的后端文件中处理的(dvips此处。我不确定为什么它的 cmyk 黑色不如 rgb 黑,但无论如何,您可以通过在序言中设置颜色来强制它使用 rgb 黑色作为默认值,比较有或没有注释行的效果。

在此处输入图片描述

\documentclass{minimal}
\usepackage{color}
%\definecolor{black}{rgb}{0,0,0}\color{black}
\begin{document}

 \rule{2cm}{1cm}

 \textcolor[rgb]{0,0,0}{\rule{2cm}{1cm}}

 \textcolor[rgb]{0,0,0}{\rule{2cm}{1cm}}



\end{document}

答案2

您的文档使用不同的颜色模型(以及不同颜色模型中的颜色):rgbcmyk。默认颜色是 cmyk 黑色。并且black形式colorxcolor为 rgb 黑色。

使用xcolor,您可以将颜色从一种模型转换为另一种模型。以下是从 rgb 黑色定义 cmyk 黑色的示例:

\usepackage{xcolor}
\colorlet{black cmyk}[cmyk]{black}

使用xcolor,您可以选择一个全局颜色模型:

\usepackage[rgb]{xcolor}

下面是一个完整的示例,展示了黑色、绿色和青色之间的区别。在这个例子中,大方块的每一行包含三个小方块:来自的颜色xcolor、转换为 cmyk 模型的颜色xcolor和转换为 rgb 模型的颜色形式xcolor。第一行使用全局模型natural(无转换),第二行使用全局模型rgb,第三行使用全局模型cmyk(注意:blackgreen来自xcolor是 rgb 颜色模型,而是cyancmyk 颜色模型)。

在此处输入图片描述

\documentclass{minimal}
\usepackage{xcolor}
\usepackage{graphicx}
\colorlet{black cmyk}[cmyk]{black}
\colorlet{black rgb}[rgb]{black}
\colorlet{green cmyk}[cmyk]{green}
\colorlet{green rgb}[rgb]{green}
\colorlet{cyan cmyk}[cmyk]{cyan}
\colorlet{cyan rgb}[rgb]{cyan}

\def\myrule{\rule[-5mm]{1cm}{1cm}}
\def\mytest{
\textcolor{black}{\myrule}%
\textcolor{black cmyk}{\myrule}%
\textcolor{black rgb}{\myrule}
\textcolor{green}{\myrule}%
\textcolor{green cmyk}{\myrule}%
\textcolor{green rgb}{\myrule}
\textcolor{cyan}{\myrule}%
\textcolor{cyan cmyk}{\myrule}%
\textcolor{cyan rgb}{\myrule}
}
\def\mytitle{
  \parbox{2.5cm}{Colors}
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{black} (default)}}%
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{black cmyk}}}%
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{black rgb}}}
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{green (default)}}}%
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{green cmyk}}}%
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{green rgb}}}
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{cyan} (default)}}%
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{cyan cmyk}}}%
  \parbox{1cm}{\centering\rotatebox{90}{\texttt{cyan rgb}}}
}
\begin{document}
\mytitle

\selectcolormodel{natural}
\parbox{2.5cm}{Model \texttt{natural}:} \mytest

\selectcolormodel{rgb}
\parbox{2.5cm}{Model \texttt{rgb}:} \mytest

\selectcolormodel{cmyk}
\parbox{2.5cm}{Model \texttt{cmyk}:} \mytest

\end{document}

相关内容