使用 expl3 的标记列表与数组包会导致冲突

使用 expl3 的标记列表与数组包会导致冲突

我使用 的语法expl3来输入数字递增的表格。用法可以在这里找到: 根据计数器创建表格

\documentclass{article}
\usepackage{array}
\begin{document}
\ExplSyntaxOn
\int_set:Nn \l_tmpa_int {5}
\tl_clear:N \l_tmpa_tl
\int_step_inline:nn{\l_tmpa_int+1}{\tl_put_right:Nn \l_tmpa_tl{|l}}
\tl_put_right:Nn \l_tmpa_tl{|}
\begin{tabular}{\l_tmpa_tl}
  \int_step_inline:nn{\l_tmpa_int}{#1&} others
\end{tabular}
\ExplSyntaxOff
\end{document}

上述代码会产生错误:

! Package array Error:  Illegal pream-token (\l_tmpa_tl): `c' used.

不加载array,代码运行正常。错误似乎是由于array。有没有什么方法可以解决这个问题?

答案1

不对 的array强制参数进行任何扩展tabular。您可以使用\exp_args:NnV \begin{tabular}\l_tmpa_tl,但还有更好的方法来生成这样的表前言。

\documentclass{article}
\usepackage{array}

\begin{document}

\ExplSyntaxOn

\tl_set:Nx \l_tmpa_tl { \prg_replicate:nn { 6 } { |l } | }
\cs_set:Nn \__jiaopijie_temp:n { #1 & }
\exp_args:NnV \begin{tabular} \l_tmpa_tl
  \int_step_function:nN { 5 } \__jiaopijie_temp:n others
\end{tabular}

\ExplSyntaxOff

\end{document}

在此处输入图片描述

相关内容