如何使用“子表”环境将两个环境包装成一个环境时显示标题?

如何使用“子表”环境将两个环境包装成一个环境时显示标题?

我有一个下面的 MWE,旨在使用 将 2 个环境包装到表环境中subtable。第一个是使用 创建的常规表tabular。另一个是数组。它大部分都按预期工作,除了标题没有出现。这通常不是问题 - 我需要更改什么才能允许标题显示出来?

\documentclass{article}
\usepackage{subcaption} 
\usepackage{booktabs} 
\usepackage{tabularx} 
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} 
\begin{document} 
\begin{table} %[b]  
\begin{subtable}[t]{5.48\textwidth} 
\caption{table1} 
\begin{tabular}[t]{@{} ll >{$}l<{$} lll @{}} 
\toprule 
x & r & $t$  & $l$ & mycol  \\ \midrule 
2 & \{0,3,2,0\}   & $234$ & $77$ &  $2$  \\  
\bottomrule 
\end{tabular} 
\end{subtable} 
\begin{subtable}[t]{5.48\textwidth} 
\caption{table2} 
$\begin{array}{*{4}{c|}} 
\mc{} & \mc{A} & \mc{B} & \mc{C} \\ \cline{2-4} 
A     & 0      & 5    & 5   \\ \cline{2-4} 
D     & 1  &2   & 2  \\ \cline{2-4} 
\end{array}$ 
\end{subtable} 
\end{table} 
\end{document} 

答案1

您要求每个子表的大小几乎是总数的 5.5 倍\textwidth。由于标题居中,因此它们不会显示在页面上。(但您无疑会收到有关框过满的警告。)

将两次出现的都改为5.48\textwidth合理的内容,例如.48\textwidth,标题就看起来不错了。

带标题的子表

您可能想要\centering在每个subtable环境中添加。

答案2

像这样:

在此处输入图片描述

软件包subcaption版本 3.1 或最新支持subfig软件包语法,用于包含子图。使用它,您的子表将具有其自然宽度:

\documentclass{article}
\usepackage[position=top]{subcaption}
\usepackage{booktabs}
\usepackage{tabularx}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}
    \begin{table}[htb] %[b]
    \centering
\subfloat[table1]%
{
\begin{tabular}[t]{@{} ll >{$}l<{$} lll @{}}
    \toprule
x & r           & $t$   & $l$   & mycol     \\ 
    \midrule
2 & \{0,3,2,0\} & $234$ & $77$  &  $2$      \\
    \bottomrule
\end{tabular}
}
\hfil
\subfloat[table 2]%
{
$\begin{array}{*{4}{c|}}
\mc{} & \mc{A} & \mc{B} & \mc{C} \\ 
    \cline{2-4}
A     & 0      & 5    & 5   \\ 
    \cline{2-4}
D     & 1  &2   & 2  \\ 
    \cline{2-4}
\end{array}$
}
    \end{table}
\end{document}

相关内容