我有两张并排的桌子,如下所示:
\documentclass[11pt,reqno]{amsart}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{amssymb}
\usepackage{color}
\usepackage{enumerate}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{slashbox}
\usepackage{epstopdf}
\usepackage{floatrow}
\usepackage{newfloat}
\usepackage{blindtext}
\newfloatcommand{capbtabbox}{table}[][\FBwidth]
\DeclareFloatSeparators{mysep}{\hskip6em}
\begin{document}
\begin{table}[!ht]\centering
\fontsize{8}{8}\selectfont
\floatsetup{floatrowsep=mysep}
\begin{floatrow}
\ttabbox[\FBwidth]
{\begin{tabular}{|c|c|c|c|}
\hline
$a$&$b$&$c$&$d$\\
\hline
1&0&1&1\\
\hline
1&1&1&0\\
\hline
1&0&0&0\\
\hline
1&0&0&0\\
\hline
0&0&0&0\\
\hline
1&5&32&6\\
\hline
\end{tabular}}%
{\caption{Very long caption that goes something like this.}\label{label}}
%%
\ttabbox[\FBwidth]
{\begin{tabular}{|c|c|c|c|}
\hline
$a$&$b$&$c$&$d$\\
\hline
1&0&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
\end{tabular}}
{\caption{Another long caption like this}
\label{label2}}
\end{floatrow}
\end{table}%
\end{document}
但是,显示时,字幕会环绕显示,而不是显示在一行上。有没有办法使用 \FBWidth 或 floatrow 中的其他内容来加宽字幕?
答案1
您可能需要类似这样的内容,即标记每个子表,然后在主表标题中添加带标签的说明。显然,如果标题要比这些表更宽,则标题必须位于表之外。此外,它们还需要标签来指示哪个标题与哪个表相匹配。因此,表格-子表/标题-子标题设计。
您还应该阅读一些有关表格设计的文档。通常,建议使用更少的行和更好的间距。事实上,大多数表格根本不需要任何垂直线。请查看booktabs
以获得灵感。
\documentclass[11pt,reqno]{amsart}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage{color}
\usepackage{subcaption}
\DeclareCaptionLabelSeparator{none}{}
\DeclareCaptionSubType*[arabic]{table}
\captionsetup[subtable]{labelformat=simple,labelsep=none}
\captionsetup[table]{labelformat=simple,labelsep=none,justification=centerfirst}
\begin{document}
\begin{table}[!ht]
\centering
\fontsize{8}{8}\selectfont
\begin{subtable}{.25\textwidth}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
$a$&$b$&$c$&$d$\\
\hline
1&0&1&1\\
\hline
1&1&1&0\\
\hline
1&0&0&0\\
\hline
1&0&0&0\\
\hline
0&0&0&0\\
\hline
1&5&32&6\\
\hline
\end{tabular}
\caption{}\label{label}
\end{subtable}
\begin{subtable}{.25\textwidth}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
$a$&$b$&$c$&$d$\\
\hline
1&0&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
\end{tabular}
\caption{}\label{label2}
\end{subtable}
\caption{\mbox{}\\\ref{label} Very long caption that goes something like this.\\\ref{label2} Another long caption like this.}
\end{table}
\end{document}
答案2
\floatbox
您可以调整(可选参数)的宽度\ttabbox
和浮动分隔符的值。这需要手动调整。您还应该注意相邻表格的标题重叠的风险。
这是一种方法。对于您给出的标题,我必须更改文档水平边距:
\documentclass[11pt,reqno]{amsart}
\usepackage[utf8]{inputenc}
\usepackage{floatrow}
\usepackage[hmargin =20mm, showframe, nomarginpar]{geometry}
\DeclareFloatSeparators{mysep}{\hskip-3em}
\begin{document}
\noindent \begin{table}[!ht]%\centering
\fontsize{8}{8}\selectfont
\floatsetup{floatrowsep=mysep}
\hskip-4em\begin{floatrow}
\ttabbox[5.2\FBwidth]
{\begin{tabular}{|c|c|c|c|}
\hline
$a$&$b$&$c$&$d$\\
\hline
1&0&1&1\\
\hline
1&1&1&0\\
\hline
1&0&0&0\\
\hline
1&0&0&0\\
\hline
0&0&0&0\\
\hline
1&5&32&6\\
\hline
\end{tabular}}%
{\caption{Very long caption that goes something like this.}\label{label}}
%%
\ttabbox[4\FBwidth]
{\begin{tabular}{|c|c|c|c|}
\hline
$a$&$b$&$c$&$d$\\
\hline
1&0&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
1&1&1&1\\
\hline
\end{tabular}}
{\caption{Another long caption like this} \label{label2}}
\end{floatrow}
\end{table}%
\end{document}