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