![多行多列的边框](https://linux22.com/image/311941/%E5%A4%9A%E8%A1%8C%E5%A4%9A%E5%88%97%E7%9A%84%E8%BE%B9%E6%A1%86.png)
以下示例:
\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}
- 左侧边框为何消失?
- 为什么我不能使列的宽度固定(比如
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)。