我有以下简单的表格环境:
\begin{center}
\small
\begin{tabular}{|c|c|c|}
\hline
\multirow{2}{*}{$cm(ag)$} & \multicolumn{2}{|c|}{Number of agents in}\\ \cline{2-3}
& $\mathcal{B}_i(\alpha)$ & $\mathcal{B}'_i(\alpha)$ \\ \hline
HA & 10& 0 \\ \hline
AD & 5 & 2 \\ \hline
H & 0 & 3 \\ \hline
\end{tabular}
\end{center}
结果如下:
为什么图中的两列不是等宽的(人们会认为这是自然发生的)?
答案1
第三列特别宽,因为它已被多列条目拉伸。最好确保跨越单元格的自然宽度小于它跨越的列的宽度。
请注意,即使没有跨越头,第三列也会比第二列宽,因为标题更宽,因为'
在多列中,仅使用|
在正确的单元格的边缘(第一列除外),否则您将得到如图像中所示的重复的双粗线。
我离开了$cm$
,因为我不知道它的意思,但它看起来有点奇怪:如果cm
要将其读作一个单词而不是 c 乘以 m,那么它应该是\mathit{cm}
。
在这里我用来dcolumn
对齐数字的数字并强制列的自然宽度大于标题。
我还添加了一些额外的填充以使水平规则远离文本。
\documentclass{article}
\usepackage{dcolumn,multirow}
\begin{document}
\begin{center}
\small
\setlength\extrarowheight{2pt}
\begin{tabular}{|c|D{.}{}{5.5}|D{.}{}{5.5}|}
\hline
\multirow{2}{*}{$cm(ag)$} & \multicolumn{2}{c|}{Number of agents in}\\ \cline{2-3}
& \multicolumn{1}{c|}{$\mathcal{B}_i(\alpha)$} &
\multicolumn{1}{c|}{$\mathcal{B}'_i(\alpha)$} \\ \hline
HA & 10& 0 \\ \hline
AD & 5 & 2 \\ \hline
H & 0 & 3 \\ \hline
\end{tabular}
\end{center}
\end{document}
答案2
您注意到的问题是因为第 2 列和第 3 列的自然宽度非常小,并且组合标题“代理数量”的宽度是每个单独列宽度的两倍多。
解决这种不平衡的一种方法是强制下一对标题单元格$\mathcal{B}_i(\alpha)$^
和的宽度$\mathcal{B}'_i(\alpha)$
超过列的自然宽度;此外,将宽度设置为相等也是一个好主意(可能?!)。为了生成下面显示的第一个表格,我设置了一个小型实用程序宏,名为,\mybox
将其参数排版在宽度为 1.25 厘米的“框”中居中。(您显然可以自由选择不同的宽度,但我不会低于 1.0 厘米。)
您的表格目前定义的另一个问题是,它不太易读:大量的线条主要导致混乱,而不是清晰。 (i) 删除所有垂直线和两条水平线以及 (ii) 使用包的规则绘制宏booktabs
而不是基本 LaTeX\hline
和\cline
宏的结果显示在下面的第二个表中。我希望您同意我的观点,即它至少与第一个表格一样易读。 :-)
\documentclass{article}
\usepackage{multirow,booktabs}
\newcommand{\mybox}[1]{\parbox{1.25cm}{\centering #1}}
\begin{document}
\begin{table}
\centering
\small
\begin{tabular}{|c|c|c|}
\hline
\multirow{2}{*}{$cm(ag)$} & \multicolumn{2}{c|}{Number of agents in}\\
\cline{2-3}
& \mybox{$\mathcal{B}_i(\alpha)$}
& \mybox{$\mathcal{B}'_i(\alpha)$} \\ \hline
HA & 10& 0 \\ \hline
AD & 5 & 2 \\ \hline
H & 0 & 3 \\ \hline
\end{tabular}
\bigskip\bigskip
\begin{tabular}{lcc}
\toprule
$cm(ag)$ & \multicolumn{2}{c}{Number of agents in}\\
\cmidrule(l){2-3}
& \mybox{$\mathcal{B}_i(\alpha)$}
& \mybox{$\mathcal{B}'_i(\alpha)$} \\ \midrule
HA & 10& 0 \\
AD & 5 & 2 \\
H & 0 & 3 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}