多行多列的边框

多行多列的边框

以下示例:

\usepackage{multirow}

\begin{tabular}{cc|c|c|c|c|c|}
\cline{3-7}
& & \multicolumn{5}{c|}{something} \\ \cline{3-7}
& & AAA & BBB & CCC & DDD & EEE\\ \hline
\multicolumn{1}{|c|}{\multirow{3}{*}{\rotatebox[origin=c]{90}{sth}} } 
& line 1 & x & x & x & x & x \\ \cline{2-7}
& line 2 & x & x & x & x & x \\ \cline{2-7}
\end{tabular}
  1. 左侧边框为何消失?

在此处输入图片描述

  1. 为什么我不能使列的宽度固定(比如c{4cm})?这会给我一个错误消息'非法前缀标记(2.0cm):使用'c'。'但我很确定它对我来说是这样工作的......

答案1

这里有一个解决方案。我借此机会改进了单元格的垂直填充,并定义了一个\nocell命令来设置空单元格的数量;它的参数是连续空单元格的数量。

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\usepackage{multirow}
\usepackage{array, makecell, rotating}
\setcellgapes{2pt}
\newcommand\nocell[1]{\multicolumn{#1}{c|}{}}

\begin{document}

\makegapedcells
\begin{tabular}{|c*{6}{|p{2cm}}|}
  \cline{3-7}
  \nocell{2}& \multicolumn{5}{c|}{something} \\ \cline{3-7}
  \nocell{2} & AAA & BBB & CCC & DDD & EEE\\ \hline
  \multirowcell{2}[0.5ex]{\rotatebox[origin=c]{90}{sth}} & line 1 & x & x & x & x & x \\ \cline{2-7}
 & line 2 & x & x & x & x & x \\ \cline{1-7}
\end{tabular}

\end{document}  

在此处输入图片描述

答案2

您可以使用 轻松绘制此类表格{NiceTabular}nicematrix在该环境中,您使用\Block合并单元格(水平和垂直),并使用hvlines绘制除块和角落之外的所有规则(由 键指定corners)。

\documentclass{article}    
\usepackage{nicematrix}

\begin{document}
\setlength{\extrarowheight}{2pt}
\begin{NiceTabular}{ccccccc}[hvlines,corners=NW] % NW = north west
& & \Block{1-5}{something} \\ 
& & AAA & BBB & CCC & DDD & EEE\\ 
\Block{2-1}<\rotate>{sth}
& line 1 & x & x & x & x & x \\ 
& line 2 & x & x & x & x & x \\ 
\end{NiceTabular}
\end{document}

你需要多次编译(因为nicematrix使用 PGF/Tikz)。

上述代码的输出

相关内容