Ich habe einige Daten in einer expl3-Sequenz, die ich in einer Longtable verwende. Alles funktioniert einwandfrei, aber ich erhalte eine zusätzliche leere Zeile nach dem Inline-Map-Body. 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}
Das Ergebnis:
Die Absicht besteht darin, dass die letzte Schleife der Inline-Map mit einem endet \hline
und direkt in die Fußzeile übergeht. Ich verwende eine ältere Version von Texlive und PDFlatex (von Ubuntu 18.04), aber dieser Fehler tritt auch bei Overleaf auf, von dem ich annehme, dass es auf dem neuesten Stand ist. Daher gehe ich davon aus, dass der Fehler bei mir liegt.
Antwort1
Verwenden Sie \clist_map_function:nN
es, da andernfalls eine Zelle gestartet würde; liefert im Gegenteil \clist_map_function:nN
ihr vollständiges Ergebnis, bevor alles berücksichtigt wird, was TeX als Start einer Zelle ansieht.
Es ist bekannt, dass Tabellen eine Quelle für Probleme dieser Art sind.
\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}