longtable
我正在尝试在包的帮助下从 CSV 文件创建一个csvsimple
。除了第一个标题下方的一行额外内容(它不适用于下一页的连续标题),我设法使几乎所有内容都井然有序。
我猜测它来自这两行代码:
after first line=\\\midrule\endhead,
late after line=\\,
看起来是在表格的第一行(即标题)后面csvsimple
应用了两个换行符( )。\\
问题是,如果我从参数中删除换行符after first line
,它似乎会抛出错误或根本不编译。如果我尝试使用late after first line
,它会删除多余的行,但不会midrule
按指定方式显示。
平均能量损失
\documentclass[draft]{article}
\begin{filecontents*}{test.csv}
a,b,c
1,2,3
4,5,6
\end{filecontents*}
\usepackage{mwe}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{csvsimple}
\begin{document}
\csvloop{
file=test.csv,
respect all,
separator=comma,
no head,
before reading={
\begin{longtable}{lll}
\toprule
},
command={\csviffirstrow
{\textbf{\csvcoli} & \textbf{\csvcolii} & \textbf{\csvcoliii}}
{\csvcoli & \csvcolii & \csvcoliii}
},
after first line=\midrule\endhead,
late after line=\\,
late after last line=\\\bottomrule,
after reading=\end{longtable}
}
\end{document}
输出
答案1
以下内容应该可以工作。late after first line
必须放在后面late after line
才能生效。否则,它将被覆盖late after line
。
\documentclass[draft]{article}
\begin{filecontents*}{test.csv}
a,b,c
1,2,3
4,5,6
\end{filecontents*}
\usepackage{mwe}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{csvsimple}
\begin{document}
\csvloop{
file=test.csv,
respect all,
separator=comma,
no head,
before reading={
\begin{longtable}{lll}
\toprule
},
command={\csviffirstrow
{\textbf{\csvcoli} & \textbf{\csvcolii} & \textbf{\csvcoliii}}
{\csvcoli & \csvcolii & \csvcoliii}
},
late after line=\\,
late after first line=\\\midrule\endhead,
late after last line=\\\bottomrule,
after reading=\end{longtable}
}
\end{document}