
В коде ниже \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
для создания токена пробела между test и 1.