我确信这一定是非常简单的事情但我却无法理解。
以下代码输出F
。它不应该输出 吗T
?
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\tl_new:N \otherlist
\tl_clear_new:N \otherlist
\tl_if_empty:nTF {\otherlist} {T} {F}
\ExplSyntaxOff
\end{document}
答案1
测试\tl_if_empty:NTF \l_bob_otherlist_tl {}{}
只看到空的标记列表\l_bob_otherlist_tl
,但\tl_if_empty:nTF {\l_bob_otherlist_tl} {}{}
在以 分隔的“列表”中看到一个标记{...}
。
例如,查看和\tl_count:n
宏的区别\tl_count:N
:
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\tl_new:N \l_bob_otherlist_tl
First: \tl_if_empty:nTF \l_bob_otherlist_tl {T} {F}
\par
Second: \tl_if_empty:NTF \l_bob_otherlist_tl {T} {F}
\par
Third: \tl_if_empty:nTF {\l_bob_otherlist_tl} {T} {F}
\par
\par
Counting~with~n: \tl_count:n {\l_bob_otherlist_tl}
\par
Counting~with~N: \tl_count:N \l_bob_otherlist_tl
\tl_set:Nn \l_bob_otherlist_tl {Foo}
\par
After~setting:\par
First: \tl_if_empty:nTF \l_bob_otherlist_tl {T} {F}
\par
Second: \tl_if_empty:NTF \l_bob_otherlist_tl {T} {F}
\par
Third: \tl_if_empty:nTF {\l_bob_otherlist_tl} {T} {F}
\par
Counting~with~n: \tl_count:n {\l_bob_otherlist_tl}
\par
Counting~with~N: \tl_count:N \l_bob_otherlist_tl
\ExplSyntaxOff
\end{document}
由于已经提供了一个空的、干净的列表,所以没有\tl_clear_new:N
必要。\tl_new:N