LaTeX3 括号中的“V”扩展

LaTeX3 括号中的“V”扩展

如何设置变量的值,使得其内容是花括号中的另一个变量的值?

例如,如果\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

相关内容