我已经使用以下方法定义了颜色:
\definecolor{canvascolor}{rgb}{0.643,0.690,0.843}
canvascolor!75!white
然后将其与类似from 的命令一起使用xcolor
。这实际上是在beamer
主题中完成的wkbeamer
。
我知道这两种颜色的混合,但我如何输出这种颜色的 RGB 颜色以匹配绘画程序。我认为这应该很容易。我浏览了手册,xcolor
但找不到如何做到这一点。我也浏览了一下,只是想看看它是如何确定或使用算法从混合中得到新的 RGB 颜色的,但没有看到这一点。我没有读完整个手册,但从快速浏览中我找不到这个算法,或者尝试用几个命令输出颜色,但没有一个能正常工作。
答案1
该\extractcolorspec
宏将定义一个包含颜色规范的宏;我们可以使用它和配套宏\convertcolorspec
来定义一个包含另一个模型规范的宏:
\definecolor{canvascolor}{rgb}{0.643,0.690,0.843}
\extractcolorspec{canvascolor!75!white}{\test}
\expandafter\convertcolorspec\test{HTML}\test
现在\test
将扩大到BBC4E1
。
的第一个定义\test
将是{rgb}{0.73225,0.7675,0.88225}
,因此适合把它放在后面\convertcolorspec
,但我们必须先将其扩展。
如果您还需要保留第一个规范,请使用两个不同的宏。
我们可以用一个函数来实现它
\newcommand{\getColorSpec}[3][\getColorSpecTemp]{%
\extractcolorspec{#3}\getColorSpecTemp
\expandafter\convertcolorspec\getColorSpecTemp{#2}#1}
与\getColorSpec{HTML}{canvascolor!75!white}
规范将存储在\getColorSpecTemp
;与
\getColorSpec[\HTMLcolor]{HTML}{canvascolor!75!white}
相同的规格将存储在中\HTMLcolor
。
答案2
\documentclass{article}
\usepackage{xcolor}
\definecolor{canvascolor}{rgb}{0.643,0.690,0.843}
\colorlet{canvas75}{canvascolor!75!white}
\begin{document}
\noindent\ttfamily
\color{canvas75}RGB colour canvascolor!75!white\\
html : \convertcolorspec{named}{canvas75}{HTML}\HTMLcolour
\HTMLcolour\\
cmyk : \convertcolorspec{named}{canvas75}{cmyk}\CMYKcolour
\CMYKcolour
\end{document}