You can use the logical combination and
and or
in the test \ifboolexpr
\ifboolexpr{%
test {\ifnumless{a}{b}}
and
test{\ifnumgreater{x}{100}}
}{YES}{NO}
For more details see the documentation (section 3.6.5).
I want to show an example.
\documentclass{article}
\usepackage{etoolbox}
\newcounter{a}\newcounter{b}\newcounter{x}
\newrobustcmd*\setabx[3]{%
\setcounter{a}{#1}\setcounter{b}{#2}\setcounter{x}{#3}%
}
\newrobustcmd*\iftwocont{%
\ifboolexpr{%
test {\ifnumless{\value{a}}{\value{b}}}
and
test{\ifnumgreater{\value{x}}{100}}%
}%
}
\begin{document}
\setabx{1}{1}{1}
\iftwocont{$a<b$ and $x>100$}{The logical combination is false}
\setabx{5}{10}{300}
\iftwocont{$a<b$ and $x>100$}{The logical combination is false}
\end{document}
Result:
The logical combination is false
a < b and x > 100
\ifnumless{a}{b}{\ifnumgreater{x}{100}{True}{False}}{}
False
in his code (between the final{}
). But you will end up with only 1 "False". Since the evaluation can always only end up in one branch. I think that it's a perfectly acceptable answer otherwise and Werner should add it.