我正在尝试使用 tabularx 创建一个不会水平溢出页面的表格,但现在我遇到了列中的值溢出的问题。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{tabularx,ragged2e,booktabs}
\begin{document}
\begin{table}[h]
\begin{tabularx}{\textwidth}{c*{12}{{\RaggedRight \arraybackslash}X}}
\toprule
\multirow{2}[4]{*}{Statistics} & \multicolumn{3}{c}{Speed} & \multicolumn{3}{c}{Heading} & \multicolumn{3}{c}{Depth} & \multicolumn{3}{c}{Distance to coast}\\
\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr) {8-10} \cmidrule(lr) {11-13}
& OTB & PS & DRB & OTB & PS & DRB & OTB & PS & DRB & OTB & PS & DRB \\
\midrule
mean & 142.87 & 137.72 & 444 & 179.45 & 177.63 & 444 & -65.76 & -60.18 & 444 & 15021.19 & 6061.46 & 444 \\
STD & 102.94 & 190.15 & 444 & 109.92 & 104.11 & 444 & 42.37 & 36.11 & 444 & 14990.39 & 7907.20 & 444 \\
lower quartile & 102 & 3 & 444 & 91 & 95 & 444 & -84.76 & -81.74 & 444 & 4526.24 & 1377.05 & 444 \\
median & 113 & 12 & 444 & 175 & 175 & 444 & -56.71 & -61.33 & 444 & 8883.02 & 3657.02 & 444 \\
upper quartile & 145 & 381 & 444 & 277 & 270 & 444 & -38.18 & -33.4 & 444 & 212 & 7605.9 & 444 \\
\bottomrule
\end{tabularx}
\caption{Statistics of speed, heading and depth for OTB & PS fishing vessel types}
\label{table_statistics}
\end{table}
\end{document}
下图显示了我遇到的问题,即列中的值溢出以及水平线没有到达表格末尾:
答案1
纠正问题后,您的表格根本就不适合可用空间。如果您不想更改字体、减少边距或使用其他软件包(例如tabularray
我推荐的软件包)等,您可以移动底部的另外两个组
\documentclass{article}
\usepackage{multirow}
\usepackage{tabularx,ragged2e,booktabs}
\begin{document}
\begin{table}[h]
\begin{tabularx}{\textwidth}{X *6{r}}
\toprule \addlinespace[6pt]
Statistics &
\multicolumn{3}{c}{Speed} &
\multicolumn{3}{c}{Heading} \\
\cmidrule(lr){2-4}
\cmidrule(lr){5-7}
&
\multicolumn{1}{c}{OTB} &
\multicolumn{1}{c}{PS} &
\multicolumn{1}{c}{DRB} &
\multicolumn{1}{c}{OTB} &
\multicolumn{1}{c}{PS} &
\multicolumn{1}{c}{DRB} \\
\midrule
mean & 142.87 & 137.72 & 444 & 179.45 & 177.63 & 444 \\
STD & 102.94 & 190.15 & 444 & 109.92 & 104.11 & 444 \\
lower quartile & 102 & 3 & 444 & 91 & 95 & 444 \\
median & 113 & 12 & 444 & 175 & 175 & 444 \\
upper quartile & 145 & 381 & 444 & 277 & 270 & 444 \\
\addlinespace[3pt]
\toprule \addlinespace[6pt]
Statistics &
\multicolumn{3}{c}{Depth} &
\multicolumn{3}{c}{Distance to coast}\\
\cmidrule(lr){2-4}
\cmidrule(lr){5-7}
&
\multicolumn{1}{c}{OTB} &
\multicolumn{1}{c}{PS} &
\multicolumn{1}{c}{DRB} &
\multicolumn{1}{c}{OTB} &
\multicolumn{1}{c}{PS} &
\multicolumn{1}{c}{DRB} \\
\midrule
mean & -65.76 & -60.18 & 444 & 15021.19 & 6061.46 & 444 \\
STD & 42.37 & 36.11 & 444 & 14990.39 & 7907.20 & 444 \\
lower quartile & -84.76 & -81.74 & 444 & 4526.24 & 1377.05 & 444 \\
median & -56.71 & -61.33 & 444 & 8883.02 & 3657.02 & 444 \\
upper quartile & -38.18 & -33.4 & 444 & 212 & 7605.9 & 444 \\
\bottomrule
\end{tabularx}
\caption{Statistics of speed, heading and depth for OTB \& PS fishing vessel types}
\label{table_statistics}
\end{table}
\end{document}
答案2
- 您的表格代码在标题上有错误。应该
&
改为\&
- 表格非常宽,因此您可能无法将其放入页面中。在下面的 MWE 中,我假设页边距为 20 毫米,并且您同意
\small
在表格中使用字体大小。 - 如果不是这种情况,那么您有两个选择:
- 以横向旋转桌子
\textwidh
使用标题进行本地扩展changepage
或使用\newgeometry
此表的页面
对于表格,我将使用tabularray
(最新版本 2022B)tabularx
并对列siunit
进行打包S
,这样可以将数字在小数点处对齐。
\documentclass{article}
\usepackage[margin=20mm]{geometry}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\begin{document}
\begin{table}[h]
\sisetup{tight-spacing}
\small
\begin{tblr}{colsep=2pt,
colspec = {@{} c *{3}{X[c, si={table-format=3.2}]
X[c, si={table-format=3.2}]
X[c, si={table-format=3.0}]}
%
X[1.2, c, si={table-format=5.2}]
X[1.2, c, si={table-format=5.2}]
X[c, si={table-format=3.0}]
@{}},
row{1,2} ={guard}
}
\toprule
\SetCell[r=2]{c} Statistics
&\SetCell[c=3]{c} Speed & &
&\SetCell[c=3]{c} Heading & &
&\SetCell[c=3]{c} Depth & &
&\SetCell[c=3]{c} Distance to coast
& & \\
\cmidrule[lr]{2-4}
\cmidrule[lr]{5-7}
\cmidrule[lr] {8-10}
\cmidrule[lr] {11-13}
& OTB & PS & DRB
& OTB & PS & DRB
& OTB & PS & DRB
& OTB & PS & DRB \\
\midrule
mean & 142.87 & 137.72 & 444
& 179.45 & 177.63 & 444
& -65.76 & -60.18 & 444
& 15021.19 & 6061.46 & 444 \\
STD & 102.94 & 190.15 & 444
& 109.92 & 104.11 & 444
& 42.37 & 36.11 & 444
& 14990.39 & 7907.20 & 444 \\
lower quartile
& 102 & 3 & 444
& 91 & 95 & 444
& -84.76 & -81.74 & 444
& 4526.24 & 1377.05 & 444 \\
median & 113 & 12 & 444
& 175 & 175 & 444
& -56.71 & -61.33 & 444
& 8883.02 & 3657.02 & 444 \\
upper quartile
& 145 & 381 & 444
& 277 & 270 & 444
& -38.18 & -33.4 & 444
& 212 & 7605.9 & 444 \\
\bottomrule
\end{tblr}
\caption{Statistics of speed, heading and depth for OTB \& PS fishing vessel types}
\label{table_statistics}
\end{table}
\end{document}