Использование floatrow или \FBWidth для предотвращения переноса подписей

Использование floatrow или \FBWidth для предотвращения переноса подписей

У меня есть две таблицы рядом, вот так:

    \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) и значением разделителя float. Это потребует ручной настройки. Вы также должны знать о риске перекрытия заголовков для смежных таблиц.

Вот способ. Для подписей, которые вы даете, мне пришлось изменить горизонтальные поля документа:

\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} 

введите описание изображения здесь

Связанный контент