我正在尝试创建一个嵌套序列,其中每个元素都是一个序列,但由于某种原因,它无法编译并且存在紧急停止。
梅威瑟:
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\cs_generate_variant:Nn \seq_put_right:Nn {Ne}
\cs_generate_variant:Nn \seq_put_right:Nn {NV}
\seq_new:N \l__outer_seq
\seq_new:N \l__inner_seq
\NewDocumentCommand\add{m m m}
{
\seq_clear:N \l__inner_seq
\seq_put_right:Ne \l__inner_seq {##1}
\seq_put_right:Ne \l__inner_seq {##2}
\seq_put_right:Ne \l__inner_seq {##3}
\seq_put_right:NV \l__outer_seq \l__inner_seq
}
\ExplSyntaxOff
\begin{document}
\section{MWE}
\add{1}{2}{3}
\end{document}
调用add{1}{2}{3}
外部序列后,包含一个元素,该元素是包含元素 1、2 和 3 的(内部)序列
视觉:[[1, 2, 3]] - 括号代表一个序列
答案1
您的外部序列可以保存一个保存内部序列的变量,因此:
The sequence \l__outer_seq contains the items (without outer braces):
> {\l__inner_seq }.
<recently read> }
l.26 \seq_show:N\l__outer_seq
?
The sequence \l__inner_seq contains the items (without outer braces):
> {1}
> {2}
> {3}.
<recently read> }
l.28 \seq_map_function:NN \l__outer_seq\seq_show:N
?
这表明外部序列映射到内部序列上,即 1,2,3
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\cs_generate_variant:Nn \seq_put_right:Nn {Ne}
\cs_generate_variant:Nn \seq_put_right:Nn {NV}
\seq_new:N \l__outer_seq
\seq_new:N \l__inner_seq
\NewDocumentCommand\add{m m m}
{
\seq_clear:N \l__inner_seq
\seq_put_right:Ne \l__inner_seq {#1}
\seq_put_right:Ne \l__inner_seq {#2}
\seq_put_right:Ne \l__inner_seq {#3}
\seq_put_right:Nn \l__outer_seq \l__inner_seq
}
\ExplSyntaxOff
\begin{document}
\section{MWE}
\add{1}{2}{3}
\ExplSyntaxOn
\seq_show:N\l__outer_seq
\seq_map_function:NN \l__outer_seq\seq_show:N
\ExplSyntaxOff
\end{document}