使用 clist 创建表:渲染不佳

使用 clist 创建表:渲染不佳

我创建了一个宏来显示一些乘法表。它是用 latex3 实现的。我简化了我的代码,您可以使用以下内容作为示例:

\documentclass[a4paper,12pt]{article}

\ExplSyntaxOn
\NewDocumentCommand{\Table}{m}{ 
        \clist_set:Nn \l_tmpa_clist {1,2,3,4,5,6,7,8,9,10,12} 
        \begin{tabular}{|c|c|} 
        \hline 
        \clist_map_inline:Nn {\l_tmpa_clist} { 
                $##1 \cdot #1$ & \fpeval{##1*#1} \\ \hline 
        } 
        \end{tabular} 
         
} 
\ExplSyntaxOff

\begin{document}
 \Table{3}
\end{document}

我得到:

在此处输入图片描述

我不明白为什么表格底部会出现两条垂直线。我期望当处理完所有数字后,表格末尾必须有一条水平线。

有人知道这里发生了什么吗?谢谢!

答案1

看起来,使用命名函数而不是内联函数可以解决问题。

\documentclass[a4paper,12pt]{article}

\ExplSyntaxOn
\NewDocumentCommand{\Table}{m}{ 
        \clist_set:Nn \l_tmpa_clist {1,2,3,4,5,6,7,8,9,10,12}
        \newcommand{\mycalc}[1]{$##1 \cdot #1$ & \fpeval{##1*#1}\\ \hline }
        \begin{tabular}{|c|c|} 
        \hline 
        \clist_map_function:NN \l_tmpa_clist \mycalc
        \end{tabular} 

} 
\ExplSyntaxOff

\begin{document}
 \Table{3}
\end{document}

在此处输入图片描述

顺便说一句,我也尝试过\clist_map_variable:NNn,但似乎变量没有到达第二行单元格。它似乎被定义在第一行单元格的本地,这对我来说似乎是一个错误。

相关内容