我该如何做类似这样的伪代码:
\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!}%
}