LaTeX3:clist_pop 中的标记列表无法显示在表格第二列中

LaTeX3:clist_pop 中的标记列表无法显示在表格第二列中

我尝试制作一个列表到表格函数。它在第一列中工作正常,但第二列消失了。

下面是 MWE(我删除了循环部分):

\documentclass[12pt]{article}
\usepackage{expl3}
\ExplSyntaxOn

\begin{document}
    \clist_new:N \l_my_cl
    \clist_set:Nn \l_my_cl {A,B,C,D}
    \begin{tabular}{|c|c|}
        \hline
        \clist_gpop:NN \l_my_cl \l_tmpa_tl
        \l_tmpa_tl & ``\l_tmpa_tl'' \\ \hline
    \end{tabular}
\ExplSyntaxOff
\end{document}

并输出:

在此处输入图片描述

为什么??如何解决?谢谢。

更新

谢谢 egreg。这最终是代码:

\documentclass[12pt]{article}
\usepackage{expl3}
\ExplSyntaxOn

\begin{document}
    \clist_new:N \g_sppmg_my_cl
    \clist_gset:Nn \g_sppmg_my_cl {}

    \int_compare:nNnTF {\clist_count:N \g_sppmg_my_cl} > {0}{
        \begin{tabular}{|c|c|}
            \hline
            \clist_gpop:NN \g_sppmg_my_cl \l_tmpa_tl
            \tl_gset_eq:NN \g_tmpa_tl \l_tmpa_tl     % copy to global var
            1st. \g_tmpa_tl & ``\g_tmpa_tl'' \\ \hline

            \int_while_do:nNnn {\clist_count:N \g_sppmg_my_cl} > {0} {
                \clist_gpop:NN \g_sppmg_my_cl \l_tmpa_tl
                \tl_gset_eq:NN \g_tmpa_tl \l_tmpa_tl
                other : \g_tmpa_tl &  ``\g_tmpa_tl'' \\ \hline
            }
        \end{tabular}
    }{}
\ExplSyntaxOff
\end{document}

输出: 在此处输入图片描述

对于\g_tmpa_tl第一列,我认为我可以在 egreg 的示例中使用\g_tmpa_tlreplace \l_tmpa_tl。(实际上,在我的情况下没有必要。)

答案1

该函数\clist_gpop:NN仅对clist进行全局作用,但对标记列表变量的赋值是局部的。

不要混淆全局和本地任务。

\documentclass[12pt]{article}
\usepackage{expl3}
\ExplSyntaxOn

\begin{document}
\clist_new:N \g_sppmg_my_cl
\clist_gset:Nn \g_sppmg_my_cl {A,B,C,D}

\begin{tabular}{|c|c|}
\hline
\clist_gpop:NN \g_sppmg_my_cl \l_tmpa_tl
\tl_gset_eq:NN \g_tmpa_tl \l_tmpa_tl
\l_tmpa_tl & ``\g_tmpa_tl'' \\
\hline
\end{tabular}
\ExplSyntaxOff

\end{document}

在此处输入图片描述

相关内容