![表格中的垂直线不在一条线上](https://linux22.com/image/443478/%E8%A1%A8%E6%A0%BC%E4%B8%AD%E7%9A%84%E5%9E%82%E7%9B%B4%E7%BA%BF%E4%B8%8D%E5%9C%A8%E4%B8%80%E6%9D%A1%E7%BA%BF%E4%B8%8A.png)
我有下表,但有些行不在一行中。这是什么原因造成的?
\begin{table}[htbp]
\footnotesize
\centering
\caption{Add caption}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{l|ll|ll|l|ll}
\hline
Row & \multicolumn{2}{l}{HPI} & \multicolumn{2}{|l}{CPUT} & \multicolumn{1}{|l}{FS\#} & \multicolumn{2}{|l}{GAP (\%)} \\ \cline{2-5} \cline{7-8}
& [Min., Max.] & [Ave., Std.] & [Min., Max.] & [Ave., Std.] & & [Min., Max.] & [Ave., Std.] \\ \hline
\makecell[l]{Without \\ repair} & [0.78, 1] & [0.94, 0.06] & [0.59, 120] & [85.87, 42.87] & 120 & [0.11, 21.5] & [5.18, 5.86] \\ \hline
\makecell[l]{With \\ repair} & [0.93, 1] & [0.99, 0.02] & [0.29, 22.96] & [5.18, 5.81] & 220 & [0, 2.5] & [0.14, 0.53] \\
\hline
\end{tabular}%
}
\label{tab:comp}%
\end{table}%
答案1
除第一列外,规则均位于列的右边缘,因此永远不要总是\multicolumn{2}{|l}
这样\multicolumn{2}{l|}
做,否则,正如您所展示的,您将得到一个凹口,其中部分规则位于一列的右侧边缘,而其他部分位于相邻列的左侧边缘。
答案2
- 请始终提供 MWE(最小工作示例,一个完整的小文档,除了您的问题之外,它还告知我们有关页面布局的信息,它由使用的文档类定义,通常
geometry
也由包定义。 - 不要缩放表格!这会导致字体大小不一致。
- 您的问题已由@David Carlisle 回答解决,但是可以通过使用以下
tabularray
包(简单)避免:
\documentclass{article}
\usepackage{geometry}
\usepackage[skip=1ex, font=small, labelfont=bf]{caption}
\usepackage{tabularray}
\begin{document}
\begin{table}[htbp]
\small
\caption{Add caption}
\label{tab:comp}
\begin{tblr}{hlines,
colsep = 5pt,
colspec = { Q[l,m] |Xl|Xl|c|Xl },
}
\SetCell[r=2]{l} Row
& \SetCell[c=2]{l} HPI &
& \SetCell[c=2]{l} CPUT &
& \SetCell[r=2]{l} FS\#
& \SetCell[c=2]{l} GAP (\%)
& \\
& [Min., Max.] & [Ave., Std.]
& [Min., Max.] & [Ave., Std.]
& & [Min., Max.] & [Ave., Std.] \\
{Without \\ repair}
& [0.78, 1] & [0.94, 0.06]
& [0.59, 120] & [85.87, 42.87]
& 120 & [0.11, 21.5] & [5.18, 5.86] \\
{With \\ repair}
& [0.93, 1] & [0.99, 0.02]
& [0.29, 22.96] & [5.18, 5.81]
& 220 & [0, 2.5] & [0.14, 0.53] \\
\end{tblr}
\end{table}
\end{document}
笔记:tabularray
包裹
- 还可以使单元格内容更好地垂直居中
- 对多行和多列单元格使用不同的命令名称:
- 对于多行:
\SetCell[r=<number of rows>] {<align>} <content>
- 对于多列:
\SetCell[c=<number of columns>] {<align>} <content>
- 对于多行:
- 有关详细信息,请参阅软件包文档