在下面的代码中,\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 之间有一个空格标记。