如何使用带有算术表达式和布尔运算符的条件(etoolbox)?

如何使用带有算术表达式和布尔运算符的条件(etoolbox)?

我该如何做类似这样的伪代码:

\if{#1==5 or \x>7}{Command 1}
\else{Command 2}

例如, a#1中的某个参数\newcommand可能来自。我正在尝试使用 etoolbox,在阅读了几页手册后,我认为这可能是一份工作\x\foreach \x in {0,1,2}\ifboolexpr 。我正在尝试使用 etoolbox,在阅读了手册的几页之后,我认为这可能是一项工作,但无论我如何尝试编写它,我都会收到无效布尔表达式的错误。我相信我基本上是在问 etoolbox 包中这个答案的等价物是什么:布尔运算符:我可以在 `\ifthenelse` 中使用 AND、OR 吗?怎样使用?

答案1

欢迎来到 TeX.SX!你可能不需要etoolbox

\documentclass{article}

\usepackage{tikz}

\newcommand{\hello}[2]{%
  \ifnum #1 = 5
    Hello!
  \else
    \ifnum #2 > 7
      Hello!
    \else
      Bye!
    \fi
  \fi
}

\begin{document}

\foreach \x in {6,7,8} {

  A: \hello{4}{\x}
  
  B: \hello{5}{\x}
  
}

\end{document}

在此处输入图片描述

如果您仍想使用提供的宏etoolbox,则以下命令可以工作:

\newcommand{\hello}[2]{%
  \ifnumcomp{#1}{=}{5}{Hello!}{%
    \ifnumcomp{#2}{>}{7}{Hello!}{Bye!}}%
}

或者

\newcommand{\hello}[2]{%
  \ifboolexpr{
    test {\ifnumcomp{#1}{=}{5}}
    or
    test {\ifnumcomp{#2}{>}{7}}
  }{Hello!}{Bye!}%
}

相关内容