确定表的列数

确定表的列数

在 MWE 中

\documentclass{article}

\begin{document}

\begin{tabular}{|c|c|c|} \hline
\multicolumn{3}{|c|}{Table header} \\ \hline
Column 1 & Column 2 & Column 3 \\ \hline
\end{tabular}

\end{document}

我使用跨越整个表格的多列。

是否可以自动确定列数,例如通过定义一个命令来创建跨越表中的所有列的多列?

上一个问题似乎是特定于longtable包的。

答案1

我基本同意之前的评论。

但是,如果您确实想这样做,因为表格将以编程方式生成,并且列数可以相应更改,则可以使用 etoolbox 或 提供的列表处理来计算列数listofitems。假设你把te|放在列之间etoòlbox,您可以在序言中加入\doccsvlist

\global\newcounter{colno}
\setcounter{colno}{0}
\DeclareListParser{\countcol}{|}%
\renewcommand*{\do}[1]{\stepcounter{colno}}
\newenvironment{newtabular}[1]{
\countcol{#1}%
\begin{tabular}{#1}}%
{\end{tabular}}

在正文中:

\begin{newtabular}{|c|l|r|c|l|}
\hline
\multicolumn{\thecolno}{|c|}{Table header}\\
\hline
A & a & b & c & d\\
\thecolno & \the\numexpr\value{colno}-2\relax& 3 & 4 & 5 \\
\hline
\end{newtabular}

请注意,表格内容中也可以使用列数。

相关内容