我在 expl3 序列中有一些数据,我正在 longtable 中使用这些数据。一切正常,但我在内联映射主体后得到了一个额外的空白行。MWE:
\documentclass{article}
\usepackage{expl3}
\usepackage{xparse}
\usepackage{longtable}
\ExplSyntaxOn
\NewDocumentCommand{\printData}{}
{
\begin{longtable}{l}
\hline
Minimal~Working~Example \\
\hline
\endhead
End \\
\hline
\endfoot
\clist_map_inline:nn
{comma,separated,list,of,data,also,fails,with,seq}
{
##1 \\
\hline
}
% Uncomment to fill the blank row
% Mystery row here! \\ \hline
\end{longtable}
}
\ExplSyntaxOff
\begin{document}
\printData
\end{document}
其结果为:
目的是使内联地图的最后一个循环以 结束\hline
,直接进入页脚。我使用的是旧版本的 texlive 和 pdflatex(来自 Ubuntu 18.04),但这个错误也出现在 overleaf 上,我假设它是最新的,所以我假设错误是我的。
答案1
否则使用\clist_map_function:nN
,一个单元就会开始;相反,\clist_map_function:nN
在 TeX 认为单元的开始之前,提供其完整的结果。
众所周知,表格是此类问题的根源。
\documentclass{article}
\usepackage{expl3}
\usepackage{xparse}
\usepackage{longtable}
\ExplSyntaxOn
\NewDocumentCommand{\printData}{}
{
\begin{longtable}{l}
\hline
Minimal~Working~Example \\
\hline
\endhead
End \\
\hline
\endfoot
\clist_map_function:nN {comma,separated,list,of,data} \aejh_entry:n
\end{longtable}
}
\cs_new_protected:Nn \aejh_entry:n { #1 \\ \hline }
\ExplSyntaxOff
\begin{document}
\printData
\end{document}