为什么 TikZ 不接受条件颜色?

为什么 TikZ 不接受条件颜色?

我想使用条件颜色。

我生成了以下 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并且只在定义点进行一次条件测试,将其定义为蓝色或黑色

相关内容