次のように 2 つのテーブルが並んでいます。
\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}
しかし、表示されると、キャプションは 1 行に表示されるのではなく、折り返されます。floatrow で \FBWidth または他の何かを使用してキャプションの幅を広げる方法はありますか?
答え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}