\bool_if_p:N 和 \bool_if:NTF 之间有什么区别

\bool_if_p:N 和 \bool_if:NTF 之间有什么区别

\bool_if_p:N和有什么区别\bool_if:NFT?如何使用这些命令?

文档没有提供关于此的任何详细信息。

在此处输入图片描述

答案1

这是有记录的,但不是针对这个特定的功能,而是在开始时,适用于所有expl3条件:

在此处输入图片描述


:NTF形式是一个分支条件,你可以像这样使用它:

\bool_if:NTF \l_my_bool
  { <code if true> }
  { <code if false> }

并且_p:N形式是“谓词”条件,并且你可以将其用作布尔表达式的一部分:

%              vvvvvvvvvvvv
\bool_if:nTF { \bool_if_p:N \l_my_bool || \tl_if_exist_p:N \l_my_tl }
  { <code if true> }
  { <code if false> }

简而言之:谓词形式返回一个值,而分支形式执行一些代码。

l3regex请注意,谓词形式在不可扩展的条件函数(例如条件)中不可用。

相关内容