expl3 的 [check-declarations] 无法识别声明的常量

expl3 的 [check-declarations] 无法识别声明的常量

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! }

相关内容