私は 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}