具有多行和旋转文本的单元格宽度和行高

具有多行和旋转文本的单元格宽度和行高

我想在乳胶中创建相同的表: 桌子

前两列和后两列由几个单词组成,但中间两列由较长的文本组成。在我的代码中,我为表格选择了横向显示。这是我的代码:

\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}

输出结果如下:

在此处输入图片描述

有几个问题我想纠正一下:

  1. 尽管origin=c使用了\rotatebox,但旋转后的文本似乎没有居中
  2. 我一定没有正确使用中间规则
  3. 也许有更好的方法来定义列类型

感谢您的帮助。

答案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 节点)。

上述代码的输出

相关内容