考虑以下:
\colorlet{mycolour1}{black}
和
\colorlet{mycolour2}{black}
如何使用类似命令
\ifthenelse{\equal{mycolour1}{mycolour2}}{TRUE}{FALSE}
换句话说,我如何检查两种颜色之间的相等性?
答案1
正如 Werner 指出的那样,etoolbox
e-TeX 的强大功能比ifthen
提供的更好。\ifdefequal
在这里特别方便。
\documentclass{article}
\usepackage{etoolbox}
\usepackage{xcolor}
\makeatletter
\newcommand\ifcolorsequalthenelse[4]{%
\extractcolorspec{#1}{\@spec@A}
\extractcolorspec{#2}{\@spec@B}
\ifdefequal{\@spec@A}{\@spec@B}%
{%
#3%
}{%
#4%
}
}
\makeatother
\begin{document}
\colorlet{mycolor1}{red}
\definecolor{mycolor2}{rgb}{1 0 0.1}
\noindent
Test 1:\ifcolorsequalthenelse{mycolor1}{red}{equal}{not equal}\\
Test 2:\ifcolorsequalthenelse{mycolor1}{mycolor2}{equal}{not equal}
\end{document}
答案2
我解决了。
\makeatletter
\extractcolorspec{mycolor1}{\@spec@A}
\extractcolorspec{mycolor2}{\@spec@B}
\ifthenelse{\equal{\@spec@A}{\@spec@B}}{
%TRUE
}{
%FALSE
}
\makeatother