我何时以及为何要使用包
named
的关键字xcolor
?具体来说,请考虑以下场景。假设我
MyNewCol
使用之前定义过的颜色 来定义一种新颜色MyOldCol
。我应该将什么指定为模型named
??\definecolor{我的新Col}{模型}{我的旧Col}
根据大卫·卡莱尔的回答,
named
是颜色模型,如rgb
或cmyk
但是
rgb
和cmyk
(以及除之外的所有其他颜色模型named
)具有固定的值域,例如在的情况下,rgb
域为 [0,1]^3,而在的情况下,cmyk
域为 [0,1]^4。 指定模型的固定值域是什么?以下说法正确吗?
该模型的规格
named
包括第 4.1 节中列出的所有基本颜色手册xcolor
,并且,如果指定了一个或多个包选项dvipsnames
,svgnames
,x11names
那么另外还会指定手册第 4.2-4.4 节中相应列表中指定的所有颜色名称。
答案1
这来自color
包,named
是一个颜色模型,rgb
问题cmyk
不在于用户是否通过名称访问定义,而在于颜色是否由名称而不是后端的数值定义。例如,使用 latex+dvips,后端驱动程序知道一种颜色,GreenYellow
而 latex 可以通过命名的颜色模型使用该颜色,而无需任何有关该颜色的信息。(是的,{cmyk}{0.15,0,0.69,0}
但您只需要知道,如果GreenYellow
为某些没有内置此名称的系统定义。)
答案2
1)...
\definecolor
没有根据先前定义的颜色来定义颜色,您是在考虑吗\colorlet
?2) 我没有意识到
\definecolor
不能与先前定义的颜色一起使用。这是难题的一个重要部分。
实际上,\definecolor
做允许您使用模型进行引用named
— 不仅包括基色的名称(以及由包选项启用的任何其他颜色),还包括您已使用其他\definecolor
命令定义的任何命名颜色。请参阅下面的 MWE 及其输出。
\documentclass{article}
\usepackage{xcolor}
\definecolor{mycolor}{rgb}{1,0,0}
\definecolor{anothercolor}{named}{mycolor}
\begin{document}
\noindent
\textcolor{mycolor}{This is \texttt{mycolor}.}\\
\textcolor{anothercolor}{This is \texttt{anothercolor}.}
\end{document}