我对这个表格有两个问题:它没有显示在文本中央(可能太大了,但我无法让它变小),而且它在底部显示两条线。 \begin{table}[h] \centering .. \end{table} 不起作用
\documentclass{book}
\usepackage{array}
\begin{document}
\begin{center}
\begin{tabular}{ |>{\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | @{}m{0pt}@{}}
\cline{2-5}
\multicolumn{1}{c|}{}& \multicolumn{2}{c|} {Probe} & \multicolumn{2}{c|} {Probe} \\[0.5cm]
\cline{2-5}
\multicolumn{1}{c|}{} & \multicolumn{1}{c|}{Pump} & \multicolumn{1}{c|} {Pump} & \multicolumn{1}{c|} {Pump} & \multicolumn{1}{c|} {Pump} \\[0.5cm]
\hline
a & 5,0441 &1,9797 &4,6986 &2,9247 &\\[0.4cm]
\hline
b &1,0364 &1,0047 &-1,2025 &-0,9834 &\\[0.4cm]
\hline
c & 0,5283 &0,0717 &0,1125 &0,3644 &\\[0.4cm]
\hline
d & 0,2361 &0,1967 &-0,1241 &-0,3231 &\\[0.4cm]
\hline
e & 0,0241 &-0,0014 &0,0028 &0,0286 &\\[0.4cm]
\hline
f & 0,0924 &-0,0234 &-0,1167 &-0,1930 &\\[0.4cm]
\hline
\label{tab:1}
\end{tabular}
\end{center}
\end{document}
答案1
我删除了在末尾生成额外行的虚假内容\label
,并隐藏了表格的宽度,因此它居中,不清楚为什么它必须这么宽,也许它只是一个小例子,但显示的数据会更具可读性,没有所有额外的空间,也没有垂直线。(见包装booktabs
)
但:
\documentclass{book}
\usepackage{array}
\begin{document}
\begin{center}
\setlength\extrarowheight{5pt}
\makebox[0pt]{%
\begin{tabular}{ |>{\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | >{\centering\arraybackslash}m{1in} | @{}m{0pt}@{}}
\cline{2-5}
\multicolumn{1}{c|}{}& \multicolumn{2}{c|} {Probe} & \multicolumn{2}{c|} {Probe} \\[0.4cm]
\cline{2-5}
\multicolumn{1}{c|}{} & \multicolumn{1}{c|}{Pump} & \multicolumn{1}{c|} {Pump} & \multicolumn{1}{c|} {Pump} & \multicolumn{1}{c|} {Pump} \\[0.4cm]
\hline
a & 5,0441 &1,9797 &4,6986 &2,9247 &\\[0.4cm]
\hline
b &1,0364 &1,0047 &-1,2025 &-0,9834 &\\[0.4cm]
\hline
c & 0,5283 &0,0717 &0,1125 &0,3644 &\\[0.4cm]
\hline
d & 0,2361 &0,1967 &-0,1241 &-0,3231 &\\[0.4cm]
\hline
e & 0,0241 &-0,0014 &0,0028 &0,0286 &\\[0.4cm]
\hline
f & 0,0924 &-0,0234 &-0,1167 &-0,1930 &\\[0.4cm]
\hline
\end{tabular}}
\end{center}
\hrule
\end{document}
答案2
您有五个一英寸宽的列,加上列间距和规则,总共是 72.27pt 乘以 5 加上 6pt 乘以 10 加上 0.4 乘以 6,也就是 423.75pt;标准文本宽度为 345pt。
事实上,编译示例文件会显示警告
Overfull \hbox (78.74991pt too wide)
这个微小的差异是由于四舍五入到比例点造成的,但 0.00009pt 是 6 个比例点(远小于可见光的波长)。
将表格条目排版得像在工作表中一样并不是好的排版,使用太宽的列会使阅读困难。
booktabs
通过使用和,你可以得到更精细的表格siunitx
:
\documentclass{book}
\usepackage{booktabs,siunitx}
\sisetup{output-decimal-marker={,}}
\begin{document}
\begin{center}
\begin{tabular}{
l *{4}{S[table-format=-1.4]}
}
\toprule
& \multicolumn{2}{c}{\bfseries Probe} & \multicolumn{2}{c}{\bfseries Probe} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& {Pump} & {Pump} & {Pump} & {Pump} \\
\midrule
a & 5,0441 & 1,9797 & 4,6986 & 2,9247 \\
b & 1,0364 & 1,0047 & -1,2025 & -0,9834 \\
c & 0,5283 & 0,0717 & 0,1125 & 0,3644 \\
d & 0,2361 & 0,1967 & -0,1241 & -0,3231 \\
e & 0,0241 & -0,0014 & 0,0028 & 0,0286 \\
f & 0,0924 & -0,0234 & -0,1167 & -0,1930 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
与您的原文进行比较,显而易见:
垂直规则会影响可读性,而空白也不会缓解这种情况。
无论如何,表格应该有其应有的宽度。;-) 只是为了使表格变大而加宽列间距肯定会使表格变得更糟。
关于列的一个注释S
:包含支撑内容的单元格被视为标题(或非数字数据)并位于可用空间的中心,因此标题只需输入为{Pump}
。 将\midrule
顶部与数据分开。
\sisetup
请注意,减号是真正的符号,而不是连字符。只需删除前导码中的行,即可将输出更改为小数点而不是逗号。
最后,\label
与表格标题有关;如果您想将它们放在一起table
,环境确实可以有多个tabular
,并且每个都有一个标题。必须\label
放在其参数中\caption
或之后。