datatool 和 longtable 中的一个单元格太多

datatool 和 longtable 中的一个单元格太多

我知道之前的帖子带有 longtable 的数据工具,但是并没有解决我的问题。

我有一个包含大约 10 个表格的文档,对于每个表格我使用这段代码:

\DTLsetseparator{;} 
\DTLloaddb{kundt2}{kundt2.csv}
\begin{center}
\begin{longtable}{|c|c|c|}
\caption[De berekende bronsterkte van de buis]{De berekende bronsterkte van de buis} \label{tbl:kundt2} \\
\hline
\endfirsthead
\endhead
\endfoot
\endlastfoot
\DTLforeach{kundt2}{
\1=1, \2=2, \3=3}{\ifthenelse{\value{DTLrowi}>0}{
\1 & \2 & \3 \\ \hline }{}} 
\end{longtable}
\end{center}

我的 csv 文件

1;2;3;
444;555;666;
111;222;333;

等等,我知道一个就可以了。

因为我是荷兰人,所以我需要使用符号;来分隔我的 csv 值。即使表格长度超过 4 页,一切都运行良好,但每次最后一行都会有一个额外的空单元格。我尝试更改此行:

\DTLforeach{kundt2}{
\1=1, \2=2, \3=3}{\ifthenelse{\value{DTLrowi}>0}{
\1 & \2 & \3 \\ \hline }{}} 

到:

\DTLforeach{kundt2}{
\1=1, \2=2, \3=3}{\ifthenelse{\value{DTLrowi}>0}{
\\ \hline \1 & \2 & \3}{}} 

但随后我在第一行得到了一个额外的空单元格。我做错了什么?

答案1

datatool 显然没有充分保护其内部结构,因此无法在此上下文中使用。您可以\noalign按如下方式隐藏切换。我还删除了中心环境,因为它对 longtable 没有影响。

\documentclass{article}

\usepackage{datatool,longtable}

\begin{document}
\DTLsetseparator{;} 
\DTLloaddb{kundt2}{kundt2.csv}

\begin{longtable}{|c|c|c|}
\caption[De berekende bronsterkte van de buis]{De berekende bronsterkte van de buis} \label{tbl:kundt2} \\
\hline
\endfirsthead
\endhead
\endfoot
\endlastfoot
\noalign\bgroup
\DTLforeach{kundt2}{
\1=1, \2=2, \3=3}{\egroup\ifthenelse{\value{DTLrowi}>0}{
\1 & \2 & \3 \\ \hline }{}\noalign\bgroup}\egroup
\end{longtable}

\end{document}

在此处输入图片描述

相关内容