我想定义一组颜色并打印这些颜色的值,而无需再次明确定义它们。
xcolor
定义
\definecolor{colora}{cmyk}{0,.5,1,.3}
\definecolor{colorb}{cmyk}{.4,.6,.5,.1}
\definecolor{colorc}{rgb}{1,0,0}
\definecolor{colord}{rgb}{0,0,1}
实际上,我正在使用 Percusse 的花哨代码:https://tex.stackexchange.com/a/235759/13552
我想创建一个这样的颜色图表,但包含颜色的实际值(困难的部分)和颜色的名称(简单的部分)。
代码
代码来自 Percusse。我不需要 rgb 值,但是为了完整性,它们被放在那里。
\documentclass{article}
\usepackage{tikz}
\def\appendcolor#1#2#3{%
\csname pgfutil@ifundefined\endcsname{definedcolorsofar}{\def\definedcolorsofar{#1}}{%
\expandafter\def\expandafter\definedcolorsofar\expandafter{\definedcolorsofar,#1}}%
\definecolor{#1}{#2}{#3}%
}
\appendcolor{colora}{cmyk}{0,.5,1,.3}
\appendcolor{colorb}{cmyk}{.4,.6,.5,.1}
\appendcolor{colorc}{rgb}{1,0,0}
\appendcolor{colord}{rgb}{0,0,1}
\begin{document}
\tikz{
\foreach \x[count=\xi] in \definedcolorsofar
\node at (0,\xi)[fill=\x, minimum width=2cm,
minimum height=1cm,text=white] {\x};
}
\end{document}
奖金代码
理想情况下,我可以打印 cmyk 值 + 遮盖力(不透明度)百分比。
\documentclass{article}
\usepackage{fontspec}%xelatex
\usepackage[margin=2cm]{geometry}
\usepackage{tikz}
\def\appendcolor#1#2#3{%
\csname pgfutil@ifundefined\endcsname{definedcolorsofar}{\def\definedcolorsofar{#1}}{%
\expandafter\def\expandafter\definedcolorsofar\expandafter{\definedcolorsofar,#1}}%
\definecolor{#1}{#2}{#3}%
}
\appendcolor{colora}{cmyk}{0,.5,1,.3}
\appendcolor{colorb}{cmyk}{.4,.6,.5,.1}
\appendcolor{colorc}{rgb}{1,0,0}
\appendcolor{colord}{rgb}{0,0,1}
\newcommand\printcolors{
\foreach \x[count=\xi] in \definedcolorsofar {
\foreach \colorpercent[count=\coli] in {100,85,65,35,15} {
\pgfmathtruncatemacro\step{\coli - 1}
\pgfmathsetmacro\nodeselect{ifthenelse(equal(int(\step),0),"firstnode","restnode")}%
\tikz [firstnode/.style={name=\x},restnode/.style={}] \node [\nodeselect,fill=\x!\colorpercent, minimum width=2cm, minimum height=1cm,text=white,outer sep=0pt, inner sep=0pt] {\colorpercent\%};%
}%
\hfill{\x}\par
}%
}%
\begin{document}
\printcolors{}
\end{document}
答案1
您可以通过首先提取 RGB 中任何颜色定义的规格并转换为任何颜色模型来获取值
\extractcolorspecs{blue!20!red}{\model}{\mycolor}
\convertcolorspec{\model}{\mycolor}{cmyk}\tmp\tmp
将打印出来
0,0.8,0.6,0.2
您可以出于任何原因使用它们。