包含序列的嵌套序列

包含序列的嵌套序列

我正在尝试创建一个嵌套序列,其中每个元素都是一个序列,但由于某种原因,它无法编译并且存在紧急停止。

梅威瑟:

\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}

相关内容