![使用 \multicolumn 时无法创建具有固定列宽的表格](https://linux22.com/image/407861/%E4%BD%BF%E7%94%A8%20%5Cmulticolumn%20%E6%97%B6%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E5%9B%BA%E5%AE%9A%E5%88%97%E5%AE%BD%E7%9A%84%E8%A1%A8%E6%A0%BC.png)
我想生成一个具有固定列宽的表格,即使它的每一行都有 \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}