You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LaTeX子表格排版求助:如何实现2×5布局?

解决子表格无法同行排列的问题

问题原因

你代码里同一行的subtable之间存在空行,LaTeX会将空行识别为段落分隔符,导致自动换行。另外需要注意:一行内所有subtable的总宽度(含间距)不能超过页面宽度,否则也会触发自动换行。

调整要点

  • 删掉同一行subtable之间的空行,用\hfill分隔,保证子表格均匀分布在一行内
  • 调整每个subtable的宽度,确保一行内总宽度不超出\textwidth
  • 可选:缩小表格内字体(比如\footnotesize),避免内容撑爆subtable

修改后的2×2示例代码

\begin{table*}
\centering
\caption{\textcolor{red}{Confusion matrices for well-known pretrained convolutional neural networks}}

% 第一行两个子表格
\begin{subtable}[t]{0.18\textwidth}
    \centering
    \footnotesize
    \begin{tabular}{ccccc}
    & & \multicolumn{3}{c}{Predicted} \\
    & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{C} & R \\ \cline{2-5} 
    \multirow{3}{*}{\rotatebox[origin=c]{90}{Actual}} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{60} & \multicolumn{1}{c|}{5} & 7\\ \cline{2-5} 
    & \multicolumn{1}{c|}{C} & \multicolumn{1}{c|}{8} & \multicolumn{1}{c|}{82} & 6\\ \cline{2-5} 
    & \multicolumn{1}{c|}{R} & \multicolumn{1}{c|}{6} & \multicolumn{1}{c|}{3} & 99
    \end{tabular}
\subcaption{DenseNet 121}
\label{tab:conf_densenet121}
\end{subtable}
\hfill
\begin{subtable}[t]{0.18\textwidth}
    \centering
    \footnotesize
    \begin{tabular}{ccccc}
    & & \multicolumn{3}{c}{Predicted} \\
    & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{C} & R \\ \cline{2-5} 
    \multirow{3}{*}{\rotatebox[origin=c]{90}{Actual}} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{65} & \multicolumn{1}{c|}{2} & 5\\ \cline{2-5} 
    & \multicolumn{1}{c|}{C} & \multicolumn{1}{c|}{7} & \multicolumn{1}{c|}{86} & 3\\ \cline{2-5} 
    & \multicolumn{1}{c|}{R} & \multicolumn{1}{c|}{4} & \multicolumn{1}{c|}{3} & 101
    \end{tabular}
\subcaption{DenseNet 201}
\label{tab:conf_densenet201}
\end{subtable}

\vskip\baselineskip % 两行之间留间距

% 第二行两个子表格
\begin{subtable}[t]{0.18\textwidth}
    \centering
    \footnotesize
    \begin{tabular}{ccccc}
    & & \multicolumn{3}{c}{Predicted} \\
    & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{C} & R \\ \cline{2-5} 
    \multirow{3}{*}{\rotatebox[origin=c]{90}{Actual}} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{63} & \multicolumn{1}{c|}{4} & 5\\ \cline{2-5} 
    & \multicolumn{1}{c|}{C} & \multicolumn{1}{c|}{5} & \multicolumn{1}{c|}{90} & 1\\ \cline{2-5} 
    & \multicolumn{1}{c|}{R} & \multicolumn{1}{c|}{3} & \multicolumn{1}{c|}{4} & 101
    \end{tabular}
\subcaption{ResNet50 V2}
\label{tab:conf_resnet50v2}
\end{subtable}
\hfill
\begin{subtable}[t]{0.18\textwidth}
    \centering
    \footnotesize
    \begin{tabular}{ccccc}
    & & \multicolumn{3}{c}{Predicted} \\
    & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{C} & R \\ \cline{2-5} 
    \multirow{3}{*}{\rotatebox[origin=c]{90}{Actual}} & \multicolumn{1}{c|}{K} & \multicolumn{1}{c|}{62} & \multicolumn{1}{c|}{6} & 4\\ \cline{2-5} 
    & \multicolumn{1}{c|}{C} & \multicolumn{1}{c|}{7} & \multicolumn{1}{c|}{88} & 1\\ \cline{2-5} 
    & \multicolumn{1}{c|}{R} & \multicolumn{1}{c|}{2} & \multicolumn{1}{c|}{4} & 102
    \end{tabular}
\subcaption{ResNet152 V2}
\label{tab:conf_resnet152v2}
\end{subtable}

\label{tab:confusion}
\end{table*}

扩展到2×5布局的方法

要实现2行5列的布局,按以下步骤调整:

  1. 将每个subtable的宽度设为0.19\textwidth左右(5个总宽度为0.95,留少量间距避免超出页面)
  2. 同一行的5个subtable用\hfill分隔,中间不能有空行
  3. 若表格内容仍过宽,用\scriptsize进一步缩小字体,或添加\setlength{\tabcolsep}{2pt}减小表格内部列间距

第一行示例代码片段:

% 第一行5个子表格
\begin{subtable}[t]{0.19\textwidth}
    \centering
    \scriptsize
    % 此处放入你的混淆矩阵tabular代码
\subcaption{模型1}
\end{subtable}
\hfill
\begin{subtable}[t]{0.19\textwidth}
    \centering
    \scriptsize
    % 此处放入你的混淆矩阵tabular代码
\subcaption{模型2}
\end{subtable}
\hfill
\begin{subtable}[t]{0.19\textwidth}
    \centering
    \scriptsize
    % 此处放入你的混淆矩阵tabular代码
\subcaption{模型3}
\end{subtable}
\hfill
\begin{subtable}[t]{0.19\textwidth}
    \centering
    \scriptsize
    % 此处放入你的混淆矩阵tabular代码
\subcaption{模型4}
\end{subtable}
\hfill
\begin{subtable}[t]{0.19\textwidth}
    \centering
    \scriptsize
    % 此处放入你的混淆矩阵tabular代码
\subcaption{模型5}
\end{subtable}

必要前置包

确保文档开头导入以下包:

\usepackage{subcaption} % 支持subtable环境
\usepackage{multirow}   % 支持multirow命令
\usepackage{graphicx}   % 支持rotatebox命令
\usepackage{xcolor}     % 支持textcolor命令

内容的提问来源于stack exchange,提问作者Ernest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:35:30