在尝试提出一个更实质性的问题时,我发现我的\bool_if:nTF {\int_compare_p:nNn {...} = {...}}
语句无法编译。为什么?使用mandatory m-type
参数代替optional O-type
没有任何区别。我在其他情况下经常使用此类语句,从来没有任何问题。即使将我的标准大量集合扔给usepackage{}s
它也没有区别。到底发生了什么?
\documentclass{article}
% RN. Melbourne Cup Day 2017
% BRIEF DESCRIPTION:
% Why does this produce compile ERROR "undefined control sequence \bool" ?????
%=======================
\usepackage[check-declarations]{expl3}
\usepackage{xparse}
%-----------------------
\ExplSyntaxOn
\bool_new:N \l_rn_First_bool % TRUE:= First=11
\bool_new:N \l_rn_Second_bool % TRUE:= Second=99
\ExplSyntaxOff
\NewDocumentCommand\myTestingTwoIntegerOperands{O{11}O{99}}
{ %
First~Operand~=~#1\\
Second~Operand~=~#2\\
% Testing First operand:
\bool_if:nTF {\int_compare_p:nNn {#1} = {11}}
{\bool_set_true:N \l_rn_First_bool}
{\bool_set_false:N \l_rn_First_bool}
% Testing Second operand:
\bool_if:nTF {\int_compare_p:nNn {#2} = {99}}
{\bool_set_true:N \l_rn_Second_bool}
{\bool_set_false:N \l_rn_Second_bool}
}
\begin{document}
\myTestingTwoIntegerOperands[123][987]
\myTestingTwoIntegerOperands
\end{document}
答案1
\ExplSyntaxOff
在正常的 latex2e 解析生效后
\bool_if:nTF
不引用名称为 expl3 的命令bool_if:nTF
,但是
\bool _if:nTF
一个未定义的命令,\bool
后跟错误放置的数学下标,然后是将排版为文本的_
字符。if:nTF
您需要\ExplSyntaxOff
在定义之后移动。