LaTeX:在条件中使用命令参数?

LaTeX:在条件中使用命令参数?

我正在编写一个命令,只有当其参数为非零数字时,该命令才会输出特定文本。我希望能够编写类似以下内容的代码:

\newcommand{mycommand}[1]{
\if{#1 != 0}
Some text, because it's nonzero
\else
Some other text, because it's zero
\fi
}

\mycommand{0}
\mycommand{1}

并得到输出:

其他文本,因为它是零
一些文本,因为它非零

不过,我在正确使用条件时遇到了麻烦 - 我不确定 LaTeX 是否将其#1视为要检查的整数(或者即使这是不等于的正确语法 - 我找不到大量有关整数条件的信息)。我该如何编写这个条件?

答案1

你可以这样做:

\newcommand{\mycommand}[1]{%
\ifnum0=#1\relax
  Some other text, because it's zero
\else
  Some text, because it's nonzero
\fi
}

或者使用以下ifthen包:

\ifthenelse{0=#1}{%
    Some other text, because it's zero
}{%
    Some text, because it's nonzero
}

答案2

对于希望在 ConTeXt 中执行此操作的人来说,等效的解决方案是

\define[1]\mycommand%
  {\doifelse{#1}{0}
       {Some text, because it is zero}
       {Some other text, because it is not zero}}

请参阅维基页面分枝更多细节。

相关内容