我想使用条件颜色。
我生成了以下 MWE,但它不起作用。问题是什么?
\documentclass{article}
\usepackage{tikz}
\begin{document}
%\def\versionNB{}
\def\versionColor{}
% -----------------------------------%
%
\newcommand{\conditionalColor}[2]
{%
\ifdefined\versionNB
#1
\else
#2
\fi}
\def\myColor{\conditionalColor{black}{blue}}
% -----------------------------------%
\begin{center}
\begin{tikzpicture}
\draw[fill, \myColor] (0, 0) circle (0.75pt) ;
\end{tikzpicture}
\end{center}
\end{document}
答案1
如果没有 tikz,如果你添加
{\color{\myColor} abc}
你会得到
! Package xcolor Error: Undefined color `blue '.
See the xcolor package documentation for explanation.
Type H <return> for immediate help.
...
l.22 {\color{\myColor}
abc}
?
\myColor
扩展为blue<space>
你的意图
\newcommand{\conditionalColor}[2]
{%
\ifdefined\versionNB
#1%
\else
#2%
\fi}
然后你的原始作品(可能是偶然的)你不能真正依赖命令键值解析器识别\myColor
为已知键,因为它扩展为颜色名称。此外,你在每次使用时进行测试,使用定义的颜色(而不是宏)会更加强大,mycolor
并且只在定义点进行一次条件测试,将其定义为蓝色或黑色