我有下表:
\begin{table}[h!]
\centering
\begin{tabular}{ccccccccc}
\toprule
& \multirow{2}{*}{\textbf{ID}} & $\mathbf{T^x_{EO}}$ & $\mathbf{T^y_{EO}}$ & $\mathbf{T^z_{EO}}$ & $\mathbf{R^x_{EO}}$ & $\mathbf{R^y_{EO}}$ & $\mathbf{R^z_{EO}}$ & \textbf{RMS} \\
& & [m] & [m] & [m] & [deg] & [deg] & [deg] & [px] \\
\midrule
\multirow{4}{*}{\rotatebox[origin=c]{90}{P\textit{n}P-LM}} & A & 2.748 & -0.135 & 2.175 & 119.232 & 1.368 & -76.261 & 0.240 \\
& B & 2.690 & 0.768 & 2.128 & 124.905 & -1.972 & -91.559 & 0.247 \\
& C & -1.576 & 1.139 & 2.146 & 120.264 & 1.428 & 98.205 & 0.255 \\
& D & -1.575 & -0.122 & 2.165 & 119.634 & -0.818 & 85.313 & 0.231 \\\midrule
\multirow{4}{*}{\rotatebox[origin=c]{90}{EP\textit{n}P}}& A & 2.722 & -0.161 & 2.345 & 121.639 & 1.828 & -75.974 & 0.463 \\
& B & 2.649 & 0.729 & 2.259 & 127.082 & -0.881 & -91.444 & 0.432 \\
& C & -1.565 & 1.148 & 2.246 & 121.639 & 1.250 & 98.377 & 0.389 \\
& D & -1.547 & -0.077 & 2.238 & 120.951 & 0.199 & 85.428 & 0.372 \\\bottomrule
\end{tabular}
\end{table}
我想添加一条垂直线,覆盖 EPnP 和 PnP-LM 右侧的 [AD]。如果我{c|cccccccc}
这样做,标题中也会创建一条垂直线,而我不想要。
答案1
考虑到他/她的评论(我同意),ArTourter 答案的替代方案是强调在表格中格式化数字。为此,我添加了两个包:(siunitx
数字格式化)和stackengine
(用于设置列标题):
\documentclass[border=3mm]{standalone}
\usepackage{graphicx}
\usepackage{booktabs,multirow}
\usepackage{siunitx}
\usepackage{stackengine}
\begin{document}
\begin{tabular}{cc*{2}{S[table-format=-1.3]}
S[table-format= 1.3]
S
S[table-format=-1.3]
S[table-format= 3.3]
S[table-format= 1.3]}
\toprule
%\multicolumn{1}{c}{}% in case, if you prefer to have vertical line after first column ...
& {\textbf{ID}}
& {\stackon{[m]}{$\mathbf{T^{x\vphantom{y}}_{EO}}$}}
& {\stackon{[m]}{$\mathbf{T^y_{EO}}$}}
& {\stackon{[m]}{$\mathbf{T^{z\vphantom{y}}_{EO}}$}}
& {\stackon{[deg]}{$\mathbf{R^{x\vphantom{y}}_{EO}}$}}
& {\stackon{[deg]}{$\mathbf{R^y_{EO}}$}}
& {\stackon{[deg]}{$\mathbf{R^{z\vphantom{y}}_{EO}}$}}
& {\stackon{[px]}{\textbf{RMS}\vphantom{y}}} \\
\midrule
\multirow{4}{*}{\rotatebox[origin=c]{90}{P\textit{n}P-LM}}
& A & 2.748 & -0.135 & 2.175 & 119.232 & 1.368 & -76.261 & 0.240 \\
& B & 2.690 & 0.768 & 2.128 & 124.905 & -1.972 & -91.559 & 0.247 \\
& C & -1.576 & 1.139 & 2.146 & 120.264 & 1.428 & 98.205 & 0.255 \\
& D & -1.575 & -0.122 & 2.165 & 119.634 & -0.818 & 85.313 & 0.231 \\
\midrule
\multirow{4}{*}{\rotatebox[origin=c]{90}{EP\textit{n}P}}
& A & 2.722 & -0.161 & 2.345 & 121.639 & 1.828 & -75.974 & 0.463 \\
& B & 2.649 & 0.729 & 2.259 & 127.082 & -0.881 & -91.444 & 0.432 \\
& C & -1.565 & 1.148 & 2.246 & 121.639 & 1.250 & 98.377 & 0.389 \\
& D & -1.547 & -0.077 & 2.238 & 120.951 & 0.199 & 85.428 & 0.372 \\
\bottomrule
\end{tabular}
\end{document}
答案2
您似乎在使用booktabs
包,就像使用\toprule
、\midrule
和 一样\bottomrule
。这些命令在线的上方和下方添加了一些空间。因此,如果您在表格中也使用垂直线,它们将不会接触水平线,这可能看起来不太好。
话虽如此,您可以使用 逐个单元格地删除表头中定义的垂直线\multicolumn
。
\multicolumn
接受 3 个参数:
- 合并的列数(在本例中为 1)
- 单元格样式的格式与标题相同,并且将删除任何已定义的样式。
- 列的内容
因此对于您的情况,如果您按照尝试的方式定义表格{c|cccccccc}
,则可以\multicolumn{1}{c}{}
在不希望出现垂直条的单元格中添加:
\documentclass{standalone}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{booktabs,multirow}
\begin{document}
\begin{tabular}{c|cccccccc}
\toprule
\multicolumn{1}{c}{} & \multirow{2}{*}{\textbf{ID}} & $\mathbf{T^x_{EO}}$ & $\mathbf{T^y_{EO}}$ & $\mathbf{T^z_{EO}}$ & $\mathbf{R^x_{EO}}$ & $\mathbf{R^y_{EO}}$ & $\mathbf{R^z_{EO}}$ & \textbf{RMS} \\
\multicolumn{1}{c}{} & & [m] & [m] & [m] & [deg] & [deg] & [deg] & [px] \\
\midrule
\multirow{4}{*}{\rotatebox[origin=c]{90}{P\textit{n}P-LM}} & A & 2.748 & -0.135 & 2.175 & 119.232 & 1.368 & -76.261 & 0.240 \\
& B & 2.690 & 0.768 & 2.128 & 124.905 & -1.972 & -91.559 & 0.247 \\
& C & -1.576 & 1.139 & 2.146 & 120.264 & 1.428 & 98.205 & 0.255 \\
& D & -1.575 & -0.122 & 2.165 & 119.634 & -0.818 & 85.313 & 0.231 \\
\midrule
\multirow{4}{*}{\rotatebox[origin=c]{90}{EP\textit{n}P}}& A & 2.722 & -0.161 & 2.345 & 121.639 & 1.828 & -75.974 & 0.463 \\
& B & 2.649 & 0.729 & 2.259 & 127.082 & -0.881 & -91.444 & 0.432 \\
& C & -1.565 & 1.148 & 2.246 & 121.639 & 1.250 & 98.377 & 0.389 \\
& D & -1.547 & -0.077 & 2.238 & 120.951 & 0.199 & 85.428 & 0.372 \\
\bottomrule
\end{tabular}
\end{document}
这给了你这个。
我仍然认为这是不必要的,而且原始表格看起来更好,但是......