我不明白如何在 TeX 中比较整数。
\documentclass[]{article}
\begin{document}
\if 1<>0
1 is not equal 0.
\else
1 equals 0.
\fi
\end{document}
根据此代码片段,1 等于 0。为什么?我读到整数比较是用 完成的\ifnum
,但此命令会引发错误。
答案1
\if
比较两个标记,而不管它们的含义。测试\if 1<>0
比较1
和<
并得出 false,因此您会看到1 equals 0
。为了举例说明,如果您有,\if 11<>0
那么测试将为 true,因为 TeX 将比较1
和下一个1
和将返回 true。然后测试:
\if 11<>0
11 is not equal 0.
\else
11 equals 0.
\fi
将打印:
<>0 11 is not equal 0.
因为这些标记<>0
不会被使用\if
,所以 TeX 只会将它们写入输出中。
做一个整数 您需要的比较\ifnum
:
\ifnum 1=0
1 equals 0.
\else
1 is not equal 0.
\fi
此外,TeX 没有不等于比较。您只能与<
、=
或进行比较>
。
答案2
只是为了完整性: (La)TeX 确实有一些相当于的东西<>
:\unless\ifnum#1=#2
。
\documentclass[]{article}
\begin{document}
\unless\ifnum1=0
1 is not equal 0.
\else
1 equals 0.
\fi
\end{document}
在这种情况下,它不会使事情变得更短或更简单,但有时这有助于使代码更容易理解。