![确定表的列数](https://linux22.com/image/378457/%E7%A1%AE%E5%AE%9A%E8%A1%A8%E7%9A%84%E5%88%97%E6%95%B0.png)
在 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}
请注意,表格内容中也可以使用列数。