Ложная пустая строка с функцией longtable и expl3 map

Ложная пустая строка с функцией longtable и expl3 map

У меня есть некоторые данные в последовательности 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}

введите описание изображения здесь

Связанный контент