包含两个多列的表格

包含两个多列的表格

有人可以帮我修复这张桌子吗?:

\documentclass{article}
\usepackage{siunitx,booktabs,caption}


\newcommand{\splitcell}[1]{%
  \begin{tabular}{@{}c@{}}\strut#1\strut\end{tabular}%
}

\begin{document}

\begin{table}[htp]
\centering

\caption{The table caption}

\begin{tabular}{
  S[table-format=2.0]
  S[table-format=1.0]
  S[table-format=1.6]
  S[table-format=1.4]
  S[table-format=1.3]
}

\toprule
{$t$ (\si{\nano\meter})} &
  {$W$ (\si{\micro\meter})} &
  \multicolumn{3}{c}{My results} \\
\cmidrule{3-5}
& &
  {Re} &
  {\splitcell{Theor.\\Overlap\\factor}} &
  {\splitcell{Theor.\\MPA\\(\si{dB/mm})}} \\
\midrule
25 & 8 & 1.447413 & 0.9627 & 2.128 \\
   & 4 & 1.446128 & 0.9538 & 1.20  \\
\midrule
31 & 8 & 1.448499 & 0.9377 & 4.196 \\
   & 4 & 1.446889 & 0.9571 & 2.78  \\
\bottomrule

 \multicolumn{3}{c}{Her results} \\
 \cmidrule{6-8}
 & &
 {Re} &
  {\splitcell{Theor.\\Overlap\\factor}} &
  {\splitcell{Theor.\\MPA\\(\si{dB/mm})}} \\
\midrule
25 & 8 & 1.447413 & 0.9627 & 2.128 \\
   & 4 & 1.446128 & 0.9538 & 1.20  \\
\midrule
31 & 8 & 1.448499 & 0.9377 & 4.196 \\
   & 4 & 1.446889 & 0.9571 & 2.78  \\
\bottomrule



\end{tabular}

\end{table}
\end{document}

答案1

(从同一个OP的帖子中迁移了以下答案,请参阅整理桌子(后来被认为是重复的)

这是一个解决方案,它使用tabularx包和该包的列类型的修改形式X来排版标题第二行中的六个多行标题单元格。以这种方式使用的一个令人高兴的副作用tabularx是不需要使用宏\splitcell

在此处输入图片描述

\documentclass{article}
\usepackage{siunitx,booktabs,tabularx,ragged2e}
\sisetup{group-digits=false} % optional
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\newcommand\mC[1]{\multicolumn{1}{@{}C@{}}{#1}} % handy shortcut macro

\begin{document}
\begin{table}
\caption{The table caption}\label{tab:mine-and-hers}

\begin{tabularx}{\textwidth}{%
  @{} cc *{2}{S[table-format=1.6] 
              S[table-format=1.4] 
              S[table-format=1.3]} @{} }
\toprule
$t$ (\si{\nano\meter}) & $W$ (\si{\micro\meter}) & 
\multicolumn{3}{c}{My results} & \multicolumn{3}{c}{Her results} \\
\cmidrule(lr){3-5} \cmidrule(l){6-8}
& & 
\mC{Re} & \mC{Theor.\ Overlap factor} & \mC{Theor.\ MPA (\si{dB/mm})} &
\mC{Re} & \mC{Theor.\ Overlap factor} & \mC{Theor.\ MPA (\si{dB/mm})}\\
\midrule
25 & 8 & 1.447413 & 0.9627 & 2.128 & 1.447413 & 0.9627 & 2.128\\
   & 4 & 1.446128 & 0.9538 & 1.20  & 1.446128 & 0.9538 & 1.20\\
\midrule
31 & 8 & 1.448499 & 0.9377 & 4.196 & 1.448499 & 0.9377 & 4.196\\
   & 4 & 1.446889 & 0.9571 & 2.78  & 1.446889 & 0.9571 & 2.78\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

答案2

嗯,我不明白您到底要用表格做什么,或者您是否理解如何在 LaTeX 中创建表格。

根据我从您的表格和 MWE 中理解的内容,我会这样写

\documentclass{article}
\usepackage{siunitx,booktabs,caption}


\newcommand{\splitcell}[1]{%
  \begin{tabular}{@{}c@{}}\strut#1\strut\end{tabular}%
}

\begin{document}

\begin{table}[htp]
\centering

\caption{The table caption}

\begin{tabular}{S[table-format=2.0] S[table-format=1.0] S[table-format=1.6] S[table-format=1.4] S[table-format=1.3]}

\toprule
{$t$ (\si{\nano\meter})} & {$W$ (\si{\micro\meter})} & \multicolumn{3}{c}{My results} \\
\cmidrule{3-5}
                         &                           & {Re}     & {\splitcell{Theor.\\Overlap\\factor}} & {\splitcell{Theor.\\MPA\\(\si{dB/mm})}} \\
\midrule
25                       & 8                         & 1.447413 & 0.9627                                & 2.128 \\
                         & 4                         & 1.446128 & 0.9538                                & 1.20  \\
\midrule
31                       & 8                         & 1.448499 & 0.9377                                & 4.196 \\
                         & 4                         & 1.446889 & 0.9571                                & 2.78  \\
\bottomrule
                         &                           & \multicolumn{3}{c}{Her results} \\
 \cmidrule{3-5} % 6-8
                         &                           & {Re}                                             & {\splitcell{Theor.\\Overlap\\factor}} & {\splitcell{Theor.\\MPA\\(\si{dB/mm})}} \\
\midrule
25                       & 8                         & 1.447413  & 0.9627                               & 2.128 \\
                         & 4                         & 1.446128  & 0.9538                               & 1.20  \\
\midrule
31                       & 8                         & 1.448499  & 0.9377                               & 4.196 \\
                         & 4                         & 1.446889  & 0.9571                               & 2.78  \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

请注意,我加宽了行以便对齐它们,这样可以更容易地看到表格的构建方式。所以如您所见,表格只有 5 列。如果您需要更多,则必须在定义环境的同一行中添加它们tabular。但不要将行与列混淆。


更新

最后你问是否有可能让她的结果接近你的结果而不是低于你的结果?

当然可以,但这取决于LaTeX你是否正确定义表格。你展示的示例有 5 列,如果你需要结果与你的连续,那么你必须改变桌子的尺寸从一开始就。

像这样:

\documentclass{article}
\usepackage{siunitx,booktabs,caption}


\newcommand{\splitcell}[1]{%
  \begin{tabular}{@{}c@{}}\strut#1\strut\end{tabular}%
}

\begin{document}

\begin{table}[htp]
\centering

\caption{The table caption}

\begin{tabular}{
  S[table-format=2.0] % Column 1
  S[table-format=1.0] % Column 2
  S[table-format=1.6] % Column 3
  S[table-format=1.4] % Column 4
  S[table-format=1.3] % Column 5
  S[table-format=1.6] % Column 6 same width than 3
  S[table-format=1.4] % Column 7 same width than 4
  S[table-format=1.3] % Column 8 same width than 5
}

\toprule
{$t$ (\si{\nano\meter})} & {$W$ (\si{\micro\meter})} & \multicolumn{3}{c}{My results} & \multicolumn{3}{c}{Her results} \\
\cmidrule{3-5} \cmidrule{6-8}
   & & {Re} & {\splitcell{Theor.\\Overlap\\factor}} & {\splitcell{Theor.\\MPA\\(\si{dB/mm})}} & {Re} & {\splitcell{Theor.\\Overlap\\factor}} & {\splitcell{Theor.\\MPA\\(\si{dB/mm})}}\\
\midrule
25 & 8 & 1.447413 & 0.9627  & 2.128 & 1.447413  & 0.9627 & 2.128\\
   & 4 & 1.446128 & 0.9538  & 1.20  & 1.446128  & 0.9538 & 1.20\\
\midrule
31 & 8 & 1.448499 & 0.9377  & 4.196 & 1.448499  & 0.9377 & 4.196\\
   & 4 & 1.446889 & 0.9571  & 2.78  & 1.446889  & 0.9571 & 2.78\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

您需要在行中添加\begin{tabular}{...最后 3 列以获得相同的列宽,即:S[table-format=1.6] S[table-format=1.4] S[table-format=1.3]

技巧的第二部分是用这三列的内容填充行。

在第 29 行,您现在可以添加\cmidrule{6-8}而不会出现错误。

在您的 MWE 中,第 6 列和第 8 列中的数据相同,如果这是真的,那么这将是多余的,因为您只需要添加(我认为)她的结果列。在这种情况下,表格会更窄,更简单。

相关内容