带有 longtable 和 expl3 映射函数的虚假空白行

带有 longtable 和 expl3 映射函数的虚假空白行

我在 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}

在此处输入图片描述

相关内容