如何实现LaTeX表格垂直行标题适配?含动态调整与混合排版需求
LaTeX表格优化解决方案
1. 实现表格动态尺寸调整
要解决旋转长标题布局错乱问题,同时让表格自适应页面宽度,可按以下方式修改:
- 引入
tabularx包,用tabularx环境替代固定宽度的tabular,让表格自动适配\textwidth; - 在
rotatebox内部嵌套parbox,通过限制宽度实现旋转标题的换行(直接加\\无效的原因是未给旋转内容指定宽度容器); - 用
X列类型分配剩余宽度,实现列宽动态调整。
修改后的完整代码:
\usepackage{tabularx} % 需额外引入该包 \usepackage{rotating, multirow, booktabs, xcolor} % 保留原有依赖包 \begin{table*}[ht] \centering \footnotesize \begin{tabularx}{\textwidth}{lXccX} % X列自动分配剩余宽度 \toprule & \multicolumn{1}{c}{\textbf{测试类型及描述}} & \multicolumn{2}{c}{\textbf{失败率 (\%)}} & \multicolumn{1}{c}{\textbf{测试用例示例 & \colorbox{gray}{预期行为}}} \\ & & \textbf{BERT} & \textbf{BiLSTM} & \\ \midrule \multirow{3}{*}{\rotatebox[origin=c]{90}{\parbox{6em}{Predicate\\Identification}}} % parbox限制宽度实现换行 & 测试1描述 & 10 & 30 & 测试1预期行为 \\ & 测试2描述 & 15 & 35 & 测试2预期行为 \\ & 测试3描述 & 20 & 40 & 测试3预期行为 \\ \midrule \multirow{3}{*}{\rotatebox[origin=c]{90}{Class B}} & 测试4描述 & 5 & 15 & 测试4预期行为 \\ & 测试5描述 & 10 & 20 & 测试5预期行为 \\ & 测试6描述 & 15 & 25 & 测试6预期行为 \\ \bottomrule \end{tabularx} \caption{带旋转行标题、分组行的表格示例,包含测试描述与预期行为} \label{tab:example} \end{table*}
2. 让测试项较少的类使用水平标题
对于测试项数量少的类别,直接取消rotatebox,将标题水平放置,可节省垂直空间:
方式1:保留multirow居中对齐
\midrule \multirow{3}{*}{\textbf{Class B}} % 直接水平显示标题 & 测试4描述 & 5 & 15 & 测试4预期行为 \\ & 测试5描述 & 10 & 20 & 测试5预期行为 \\ & 测试6描述 & 15 & 25 & 测试6预期行为 \\ \bottomrule
方式2:紧凑布局(去掉multirow)
\midrule \textbf{Class B} & 测试4描述 & 5 & 15 & 测试4预期行为 \\ & 测试5描述 & 10 & 20 & 测试5预期行为 \\ & 测试6描述 & 15 & 25 & 测试6预期行为 \\ \bottomrule
内容的提问来源于stack exchange,提问作者CorporalClegg
相关产品推荐
相关产品推荐

