情况

情况

情况

假设我定义了一些颜色。我想制作一个测试页面,作为开发人员的颜色键。

例子

定义的颜色coloracolorbcolorc应该进行迭代,而无需再次明确提及它们(自动发生)。这是一种高效的编程,因为我可以拥有任意数量的颜色(可能 50 种左右),并创建一个节省时间的颜色键。

\documentclass{article}
\usepackage{fontspec}
\usepackage{tikz}
\usepackage{pgffor}

\definecolor{colora}{cmyk}{0,.5,1,.3}
\definecolor{colorb}{cmyk}{.4,.6,.5,.1}
\definecolor{colorc}{cmyk}{.6,.2,.5,.2}

\begin{document}

%\foreach \definedcolor in {defined colors} % pseudo-code
%   \tikz \node [fill=definedcolor, minimum width=2cm, minimum height=1cm,text=white] {name of defined color}; % pseudo-code
\color{colora} COLORA

\color{colorb} COLORB

\color{colorc} COLORC
\end{document}

答案1

一种可能的方法是使用您自己的宏来拦截颜色定义。

\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}

在此处输入图片描述

相关内容