这个简单的例子将会失败,因为没有考虑优先级规则:
\documentclass{article}
\usepackage{ifthen}
\begin{document}
\newcommand{\bibi}2
\newcommand{\toto}3
\ifthenelse{ {\toto=3\and\bibi=2} \or {\bibi=5\and\toto=1} }{Yes}{No}
\end{document}
它应该输出“Yes”,但却输出“No”,因为最后的“\and”测试不满足。
那么处理这类测试的最佳方法是什么呢?更复杂的测试给我带来了麻烦,那就是:
[(a and b) or (c and d)] and (e or f)
其中 a,...,f 是布尔值?
答案1
您可以在条件语句中使用\(
and来显式嵌套表达式。请勿使用括号组(如您的示例所示)。\)
\ifthenelse
{}