我想尝试一下$T=0$
,但似乎有点不对,因为我们没有分配而是检查值==
......那么正确的说法是什么?某个地方没有这样的变量(比如名为 T)等于某个值(比如 0)?
答案1
您可以使用构造首先检查变量是否已定义,然后检查它是否具有适当的值。在这里我使用了该xstring
包的 \IfEq
用于数值比较,但任何其他方法都可以:
代码:
\documentclass{article}
\usepackage{xstring}
\newcommand{\CheckValue}[1]{%
\ifdefined\T%
\IfEq{\T}{0}{%
Variable T is defined and is zero%
}{%
Variable T is defined and is not zero%
}%
\else%
Variable T not defined%
\fi%
}%
\begin{document}
\CheckValue{\T}
\newcommand{\T}{1}
\CheckValue{\T}
\renewcommand{\T}{0}
\CheckValue{\T}
\end{document}
如果不使用该xstring
包,您可以(感谢@egreg):
使用
\pdfstrcmp
which 将检查宏是否\T
扩展为零,但如果\T
是计数器则不会\newcommand{\CheckValue}[1]{% \ifdefined\T% \ifnum\pdfstrcmp{\T}{0}=0\relax% Variable T is defined and is zero% \else% Variable T is defined and is not zero% \fi% \else% Variable T not defined% \fi% }%
如果您确定这
\T
是一个计数器或者一个扩展为数字的宏,那么\ifnum\T=0
就足够了:\newcommand{\CheckValue}[1]{% \ifdefined\T% \ifnum\T=0\relax% Variable T is defined and is zero% \else% Variable T is defined and is not zero% \fi% \else% Variable T not defined% \fi% }%