\NewDocumentCommand 中的空控制序列

\NewDocumentCommand 中的空控制序列

在下面的代码中,\csname ... \endcsname内部\cs_if_exist_use:c\NewDocumentCommand行为并不按预期。

在此处输入图片描述

\documentclass{article}
\usepackage{xparse}
\expandafter\def\csname test 1\endcsname{a,$\alpha$,b}
\ExplSyntaxOn
\clist_new:N \l_test_clist
\NewDocumentCommand {\test} {}
  {
    \csname test 1\endcsname
    \cs_if_exist_use:c {test 1}
  }
\ExplSyntaxOff

\begin{document}
show: \test

use: \csname test 1\endcsname
\end{document}

答案1

您定义了一个带有名称的命令test 1,但是在 Expl3 代码中,空格字符会被忽略并且不会产生任何标记,因此您测试test1 使用test ~ 1 在测试和 1 之间有一个空格标记。

相关内容