如何在 tex 中表示“缺少 T = 0”(这意味着没有这样的 T == 0)?

如何在 tex 中表示“缺少 T = 0”(这意味着没有这样的 T == 0)?

我想尝试一下$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):

  1. 使用\pdfstrcmpwhich 将检查宏是否\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%
    }%
    
  2. 如果您确定这\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%
    }%
    

相关内容