xcolor定义

xcolor定义

我想定义一组颜色并打印这些颜色的值,而无需再次明确定义它们。

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

您可以出于任何原因使用它们。

相关内容