如何使用 \loop ... \repeat 在表中生成任意数量的行

如何使用 \loop ... \repeat 在表中生成任意数量的行

可能重复:
复制表行 n 次

下面的代码旨在生成一个有 3 列 3 行(一个标题和两个空行)的表格,但可以看出它不起作用。

\documentclass{article}

\newcommand\emptytable[1]{%
  \def\emptyrow{ & & \\ \hline}
  \newcount\rows
  \begin{tabular}{|c|c|c|}
    \hline
    A & B & C \\
    \hline
    %% the following 2 lines create 2 empty rows
    %% \emptyrow
    %% \emptyrow
    %% the following loop doesn't work
    \loop\relax\ifnum\rows<#1 \emptyrow\advance\rows by1\repeat
  \end{tabular}
}

\begin{document}
\emptytable{2}
\end{document}

生产 在此处输入图片描述 而不是 在此处输入图片描述

为什么它不起作用?

答案1

虽然 egreg 的评论适用,但你可以通过以下方式实现你的自动化想法pgfplotstable包。这是一个简单的例子

\documentclass{article}
\usepackage{pgfplotstable}

\newcommand{\myemptytable}[1]{
\pgfplotstableset{
create on use/new1/.style={},
create on use/new2/.style={},
create on use/new3/.style={}
}
{\pgfplotstablenew[columns={new1,new2,new3}]{#1}\loadedtable
\pgfplotstabletypeset[
columns={new1,new2,new3},
string type,
columns/new1/.style={column name=A},
columns/new2/.style={column name=B},
columns/new3/.style={column name=C,column type/.add={}{|}},
before row=\hline,
every last row/.style={after row=\hline},
column type/.add={|}{}%
]\loadedtable}
}

\begin{document}

\myemptytable{3}
\myemptytable{6}
\end{document}

在此处输入图片描述

相关内容