如何设置变量的值,使得其内容是花括号中的另一个变量的值?
例如,如果\l_tmpa_tl
是\alpha
,我应该如何控制扩展以使\l_tmpb_tl
是{\alpha}
?
如果我想\l_tmpb_tl
成为呢{{\alpha}}
?
答案1
使用\exp_not:V
似乎可以实现您想要的功能,尽管可能有更优雅的方法。
运行这个:
\nonstopmode
\ExplSyntaxOn
\tl_new:N \somemacro
\tl_set:Nn \somemacro { some~content }
\tl_set:Nn \l_tmpa_tl { \somemacro }
\tl_set:Nx \l_tmpb_tl {{{ \exp_not:V \l_tmpa_tl }}}
\ShowCommand \l_tmpa_tl
\ShowCommand \l_tmpb_tl
\ExplSyntaxOff
\csname @@end\endcsname
给出以下输出:
> \l_tmpa_tl=macro:
->\somemacro .
<argument> \l_tmpa_tl
l.10 \ShowCommand \l_tmpa_tl
> \l_tmpb_tl=macro:
->{{\somemacro }}.
<argument> \l_tmpb_tl
l.11 \ShowCommand \l_tmpb_tl