复杂表格(多行内有多列)如何

复杂表格(多行内有多列)如何

我正在尝试构建如下所示的表格:

在此处输入图片描述

我知道我需要在 tabular 环境中使用 multirow 包,但我不知道该怎么做,因为我找不到与我的需求类似的示例。看来我需要在 multirow 中使用 multicolumn 环境来处理“实验”单元格。

有人能给我指点迷津吗?谢谢!

答案1

\begin{tabular}{|c|cc|cc|}
\hline \hline \multirow{2}{*}{ Parameter } & \multicolumn{2}{|c|}{ Experiment 1 } & \multicolumn{2}{|c|}{ Experiment 2 } \\
\cline { 2 - 5 } & Mean & Std & Mean & std \\
\hline \hline B $[\mathrm{m}]$ & 2.5 & 1.03 & 4.5 & 0.9 \\
\hline
\end{tabular}

确保在序言中使用:
\usepackage{multirow}

这是输出: 乳胶输出

答案2

另一种可能性是使用tabularray包来编写表格 - 我认为使用它生成的表格会更好。

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}

\begin{document}
    \begin{tblr}{hlines, vlines,
                 colspec      = {c *{4}{Q[c, wd=3em]}},
                 cell{1}{1}   = {r=2}{},
                 cell{1}{2,4} = {c=2}{}
                 }
Parameter       &   Experiment 1    &       &   Experiment 2    &       \\
                & Mean              & Std   & Mean              & Std   \\
B [\unit{\m}]   & 2.5               & 1.03  & 4.5               & 0.9   \\
    \end{tblr}
\end{document}

在此处输入图片描述

但是,不清楚您的代码片段是否包含完整的表格,或者您的实际表格是否包含多行。在第二种情况下,您可以考虑仅在列标题和表格末尾绘制水平线,并使用包来对齐列中的数字siunitx。例如:

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}

\begin{document}
    \begin{tblr}{colspec      = {c *{4}{Q[c, wd=3em, si={table-format=1.2}]}},
                 cell{1}{1}   = {r=2}{},
                 cell{1}{2,4} = {c=2}{},
                 row{1,2} = {guard}
                 }
    \toprule
Parameter       &   Experiment 1    &       &   Experiment 2    &       \\
    \cmidrule[lr]{2-3}
    \cmidrule[l]{4-5}
                & Mean              & Std   & Mean              & Std   \\
    \midrule
B [\unit{\m}]   & 2.5               & 1.03  & 4.5               & 0.9   \\
C [\unit{\m}]   & 1.5               & 1.1   & 4.55              & 0.89  \\
    \bottomrule
    \end{tblr}
\end{document}

这使得表格看起来更“专业”:

在此处输入图片描述

相关内容