TeX.SX 提交的答案expl3 中的标签混淆:(公共,私人)与(全球,本地)日期为 2016 年 5 月 6 日,并附有以下代码。
为什么装载expl3
农产品[check-declarations]
!LaTeX error:"kernel/non-declared-variable"
!!The variable \csname\endcsname has not been declared on line …
参照该线\tl_gset:cn \c_aloui_constant_tl {Do~not~change~me!}
?
\documentclass{article}
%\usepackage{expl3}
\usepackage[check-declarations]{expl3}
\begin{document}
\ExplSyntaxOn
\tl_new:N \g_aloui_global_tl
\tl_new:N \l_aloui_local_tl
\tl_new:N \c_aloui_constant_tl
\tl_gset:cn \c_aloui_constant_tl { Do~not~change~me! }
Constant:~\tl_use:c \c_aloui_constant_tl
\tl_set:Nn \l_aloui_local_tl { Initial~value~for~local~token~list~variable. }
\tl_gset:Nn \g_aloui_global_tl { Initial~value~for~global~token~list~variable. }
\par
Local:~\l_aloui_local_tl
\par
Global:~\g_aloui_global_tl
\par
\group_begin:
Start~group.
\tl_set:Nn \l_aloui_local_tl { Within~group~value~for~local~token~list~variable. }
\tl_gset:Nn \g_aloui_global_tl { Global~change~of~value~for~global~token~list~variable. }
\par
\hfill
\begin{minipage}{.8\textwidth}
Local:~\l_aloui_local_tl
\par
Global:~\g_aloui_global_tl
\par
\end{minipage}
\par
End~group.
\par
\group_end:
\par
Local:~\l_aloui_local_tl
\par
Global:~\g_aloui_global_tl
\ExplSyntaxOff
\end{document}
答案1
你有
\tl_new:N \c_aloui_constant_tl
因此,\c_aloui_constant_tl
当您发出时是空的
\tl_gset:cn \c_aloui_constant_tl { Do~not~change~me! }
您有\tl_gset:cn
,因此\c_aloui_constant_tl
被用于c
到 类型基数的 类型转换N
。由于\c_aloui_constant_tl
为空,TeX 会尝试使用空控制序列,即 显示为\csname\endcsname
。
没有直接链接,但您应该一次性创建常量令牌列表:
\tl_const:Nn \c_aloui_constant_tl { Do~not~change~me! }