使用 \multicolumn 时无法创建具有固定列宽的表格

使用 \multicolumn 时无法创建具有固定列宽的表格

我想生成一个具有固定列宽的表格,即使它的每一行都有 \multicolumn。

我见过解决方案但它不适合我的需要,因为我需要能够控制每个单元格的边框。

梅威瑟:

\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{*{2}{p{1cm}}*{2}{p{2cm}}}
&
&\multicolumn{2}{c}{strong}\\
&
&\multicolumn{1}{c}{work and steal}
&\multicolumn{1}{c}{work}\\
\cline{3-4}
\multirow{2}*{weak} 
&\multicolumn{1}{c|}{work}
&\multicolumn{1}{c|}{(x,y)} 
&\multicolumn{1}{c|}{(x,y)}\\
\cline{3-4}
&\multicolumn{1}{c|}{rest}
&\multicolumn{1}{c|}{(x,y)} 
&\multicolumn{1}{c|}{(x,y)}\\
\cline{3-4}
\end{tabular}
\end{document}

在此处输入图片描述

答案1

tblr环境的替代解决方案tabularray包裹:

\documentclass{article}

\usepackage{tabularray}

\begin{document}

\begin{tblr}{
  colspec = {*{2}{t{1cm}}*{2}{t{2.3cm}}},
  hline{3-5} = {3-4}{solid},
  vline{3-5} = {3-4}{solid},
  cells = {c},
  cell{1}{3} = {c=2}{}, % multicolumn
  cell{3}{1} = {r=2}{}, % multirow
}
     &      & strong         &       \\
     &      & work and steal & work  \\
weak & work & (x,y)          & (x,y) \\
     & rest & (x,y)          & (x,y) \\
\end{tblr}

\end{document}

在此处输入图片描述

答案2

这是一个{NiceTabular}使用 的解决方案nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{ccw{c}{23mm}w{c}{23mm}}
                  &      & \Block[C]{1-2}{strong} & \\
                  &      & work and steal & work \\
\Block{2-1}{weak} & work & \Block[hvlines]{2-2}{} 
                           $(x,y)$  & $(x,y)$ \\
                  & rest & $(x,y)$  & $(x,y)$ \\
\end{NiceTabular}
\end{document}

上述代码的输出

相关内容