条件颜色:为什么这个 MWE 不起作用?

条件颜色:为什么这个 MWE 不起作用?

我想对颜色进行全局控制。

这个 MWE 不起作用...问题是什么?

谢谢

\documentclass{article}
\usepackage{xcolor}


\begin{document}

\def\versionNB
%\def\versionColor

% -----------------------------------%
%
\def\colorNB{black}
\def\colorColor{blue}
%
\def\myColor
{%
\ifdefined\versionNB%
\colorNB%
\else%
\colorColor%
\fi}
% -----------------------------------%

\color{\myColor}

test

\end{document}

答案1

\show在你的例子中添加了一个

\documentclass{article}
\usepackage{xcolor}


\begin{document}

\def\versionNB
%\def\versionColor

% -----------------------------------%
%
\def\colorNB{black}

\show\versionNB

\def\colorColor{blue}
%
\def\myColor
{%
\ifdefined\versionNB%
\colorNB%
\else%
\colorColor%
\fi}
% -----------------------------------%

\color{\myColor}

test

\end{document}

生产

> \versionNB=macro:
\par \def \colorNB ->black.
l.14 \show\versionNB
                    
? 

所以\versionNB定义为

\versionNB\par \def \colorNB

将扩展为black,并且的任何其他使用\versionNB都是错误的。

\colorNB未定义,\def \colorNB是参数文本中未评估的标记,\versionNB因此稍后您会得到

! Undefined control sequence.
\myColor ->\ifdefined \versionNB \colorNB 
                                          \else \colorColor \fi 
l.27 \color{\myColor}
                     
? 

你可能打算

\def\versionNB{}

相关内容