前两列和后两列由几个单词组成,但中间两列由较长的文本组成。在我的代码中,我为表格选择了横向显示。这是我的代码:
\documentclass[]{article}
\usepackage{rotating}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{lipsum}
\usepackage{booktabs}
\newcolumntype{s}{>{\hsize=.15\hsize}X}
\newcommand{\heading}[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\begin{sidewaystable}
\caption{Metrics}
\begin{tabularx}{\textheight}{s|s|X||X|s|s}
\multirow{8}{*}{\rotatebox[origin=c]{90}{Connectivity 1}} & \multirow{4}{*}{\rotatebox[origin=c]{90}{\shortstack[c]{Type of \\connection 1}}}
& blabal blabal blabalbl abalblabal blabalbla balblaba lblabalbl abalbl abalbla balblabal & blabal blabal blabalbl abalblabal blabalbla balblaba lblabalbl abalbl abalbla balblabal
& \multirow{4}{*}{\rotatebox[origin=c]{-90}{\shortstack[c]{Type of \\connection 2}}}
& \multirow{8}{*}{\rotatebox[origin=c]{-90}{Connectivity 2}} \\
& & 2 & 2.1 & & \\
& & 3 & 3.1 & & \\
& & 4 & 4.1 & & \\
\cmidrule{2-3}\cmidrule{4-5}
& \multirow{4}{*}{\rotatebox[origin=c]{90}{\shortstack[c]{Privileges \\ and rights 1}}}
& 5 & 5.1
& \multirow{4}{*}{\rotatebox[origin=c]{-90}{\shortstack[c]{Privileges \\ and rights 2}}} & \\
& & 6 & 6.1 & & \\
& & 7 & 7.1 & & \\
& & 8 & 8.1 & & \\
\cmidrule{2-5}
\end{tabularx}
\end{sidewaystable}
\end{document}
输出结果如下:
有几个问题我想纠正一下:
- 尽管
origin=c
使用了\rotatebox
,但旋转后的文本似乎没有居中 - 我一定没有正确使用中间规则
- 也许有更好的方法来定义列类型
感谢您的帮助。
答案1
这是使用 来制作该表的一种{NiceTabular}
方法nicematrix
。
\documentclass[]{article}
\usepackage{rotating}
\usepackage{nicematrix}
\usepackage{caption}
\begin{document}
\begin{sidewaystable}
\caption{Metrics}
\NiceMatrixOptions{cell-space-limits=3pt}
\begin{NiceTabular}[hvlines]{*{2}{w{c}{1cm}}*{2}{p{(\textwidth-4cm-12\tabcolsep-7\arrayrulewidth)/2}}*{2}{w{c}{1cm}}}
\Block{8-1}{\rotate \bfseries Connectivity 1}
& \Block{4-1}{\rotate Type of connection 1}
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& \Block{4-1}{\rotate \rotatebox{180}{Type of connection 2}}
& \Block{8-1}{\rotate \bfseries \rotatebox{180}{Connectivity 2}} \\
&& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \\
&& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \\
&& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \\
& \Block{4-1}{\rotate Type of connection 1}
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& \Block{4-1}{\rotate \rotatebox{180}{Type of connection 2}}\\
&& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \\
&& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \\
&& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
& blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \\
\end{NiceTabular}
\end{sidewaystable}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。