在我的代码中,我需要从序列生成变量。例如,我有变量\g__test_bool
。对于空序列,它应该是相同的。对于带有a_
项目的序列,它应该是\g__test_a_bool
,对于带有a_,b_
项目的序列,它应该是\g__test_a_b_bool
,等等。但是当我尝试这样做时,我收到一个错误:
! Undefined control sequence.
<argument> \g__
\documentclass{article}
\ExplSyntaxOn
\seq_new:N\g__vars_seq
\bool_gset_true:N\g__test_bool
\bool_if:NTF\g__\seq_use:Nn\g__vars_seq{}test_bool{}{}
\ExplSyntaxOff
\begin{document}
\end{document}
答案1
由于您要从一串字符构建控制序列名称,因此您需要使用c
变体,,\bool_if:cTF
否则控制序列就是\g__
,它不存在。
\documentclass{article}
\ExplSyntaxOn
\seq_new:N \g__kozlovskiy_vars_seq
\bool_gset_true:N \g__kozlovskiy_test_bool
\bool_if:cTF
{ g__kozlovskiy_ \seq_use:Nn \g__kozlovskiy_vars_seq { } test_bool }
{ \typeout{TRUE} }
{ \typeout{FALSE} }
\ExplSyntaxOff
\begin{document}
\end{document}