演示使用 l3 的扩展

演示使用 l3 的扩展

使用 l3 层的一个好处是,你不必处理\expandafter命令(几乎不必)。但是,充分理解扩展以及变体如何处理扩展非常重要。我制作了这个演示来展示使用各种变体的扩展。

我正在寻找可以帮助新手理解扩展的改进或替代方法。

在此处输入图片描述

\documentclass{article}
\begin{document}
\parindent0pt
\ExplSyntaxOn 
\cs_generate_variant:Nn \tl_to_str:n {f,x}
\ttfamily
\def\one{a} \def\two{\one,b} \def\three{\one,\two, c}
V-type~~  \tl_to_str:V \three\\
v-type~~ \tl_to_str:v{ three }\\
c-type~~ \tl_to_str:c{ three }\\
e-type~~ \tl_to_str:e{ \three }\\
x-type~~ \tl_to_str:x{ \three }\\
n-type~~ \tl_to_str:n{ \three }\\
o-type~~ \tl_to_str:o{ \three }\\
f-type~~ \tl_to_str:f{ \three }

\ExplSyntaxOff
\end{document}

答案1

如果您想演示V/ v,我会构建两个并行示例,一组使用宏,一组使用寄存器 - toks 最相似。这将表明V/v类型扩展仅考虑“变量”的“值”,而不是存储类型。

相关内容