longtable 和 for 循环问题

longtable 和 for 循环问题

有人能解释一下下面两个表格的区别吗?为什么第二个表格多了一个带有一列的行?

\newcounter{kartonnr}

\newpage
\begin{longtable}{|p{1.5 cm}|p{.8 cm}|p{5 cm}|p{4 cm}|p{2.5 cm}|p{2 cm}|}
\hline
1&2&3&4&5&6\\\hline
1&2&3&4&5&6\\\hline
1&2&3&4&5&6\\\hline
1&2&3&4&5&6\\\hline
\end{longtable}

\begin{longtable}{|p{1.5 cm}|p{.8 cm}|p{5 cm}|p{4 cm}|p{2.5 cm}|p{2 cm}|}
\hline
\forloop{kartonnr}{1}{\value{kartonnr} < 5}{
1&2&3&4&5&6\\\hline
}
\end{longtable}

我的输出

答案1

最简单的方法是使用可扩展循环;longtable或者tabular没有区别,所以在例子中我使用后者。

\documentclass{article}
\usepackage[landscape]{geometry}
\usepackage{xparse}

\ExplSyntaxOn
\DeclareExpandableDocumentCommand{\expfor}{mm}
 {
  \prg_replicate:nn { #1 } { #2 }
 }
\ExplSyntaxOff

\begin{document}

\noindent
\begin{tabular}{|p{1.5 cm}|p{.8 cm}|p{5 cm}|p{4 cm}|p{2.5 cm}|p{2 cm}|}
\hline
\expfor{5}{1&2&3&4&5&6\\\hline}
\end{tabular}

\end{document}

在此处输入图片描述

相关内容