表格格式,垂直线格式不包含在标题中

表格格式,垂直线格式不包含在标题中

我有下表:

\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. 合并的列数(在本例中为 1)
  2. 单元格样式的格式与标题相同,并且将删除任何已定义的样式。
  3. 列的内容

因此对于您的情况,如果您按照尝试的方式定义表格{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}

这给了你这个。

在此处输入图片描述

我仍然认为这是不必要的,而且原始表格看起来更好,但是......

相关内容