阻止页宽表将后续列宽表向下推

阻止页宽表将后续列宽表向下推

我正在处理一个采用双列布局的文档。其中,我有一个页面宽度的表格 ( table*) 和几个常规列宽度的表格 ( table)。

问题是,由于table*总是放在下一页上,因此它也会强制将后续的table放在下一页,即使当前页面上有足够的空间。这可能会导致当前页面留有空白,同时在下一页上放置大量不必要的表格。问题似乎源于表格总是按顺序放置,即使混合了tabletable*

我找到的唯一可行的解​​决方案是使用包中的选项强制将tables 放在 之前。我最好避免使用此选项,而只是让表格浮动,但不必强制遵循。table*[H]float[H]table*

那么,除了强制它们的定位之外,有没有办法让tables 放在 之前table*

下面是 MWE。

\documentclass[twocolumn]{article}
\begin{document}

Some text about table \ref{table:wide}.
\begin{table*}
  \centering
  \caption{Page-wide table}
  \label{table:wide}
  \begin{tabular}{lll} \hline
    Some & table & content \\ \hline
  \end{tabular}
\end{table*}

Some text about table \ref{table:regular}.
\begin{table}
  \centering
  \caption{Regular table}
  \label{table:regular}
  \begin{tabular}{lll} \hline
    Some & table & content \\ \hline
  \end{tabular}
\end{table}
\end{document}

答案1

自 2015 年发布以来,LaTeX 会保持所有表格的顺序,因此如果您希望单列表格首先出现,最好将其在源中移得更早,因此它是表 1。

\documentclass[twocolumn]{article}
\begin{document}

\begin{table}
  \centering
  \caption{Regular table}
  \label{table:regular}
  \begin{tabular}{lll} \hline
    Some & table & content \\ \hline
  \end{tabular}
\end{table}

Some text about table \ref{table:wide}.
\begin{table*}
  \centering
  \caption{Page-wide table}
  \label{table:wide}
  \begin{tabular}{lll} \hline
    Some & table & content \\ \hline
  \end{tabular}
\end{table*}

Some text about table \ref{table:regular}.

\end{document}

或者,如果您希望表格无序显示,您可以局部地让两列表格使用表格类型 4(标准类别中的数字为 1,表格为 2),这样它就会与其他类型 4 的浮点数保持顺序,但仍按表格编号。然而,这会使表格 2 排在表格 1 之前,这有点奇怪。

\documentclass[twocolumn]{article}
\begin{document}

Some text about table \ref{table:wide}.
{\makeatletter\def\ftype@table{4}\makeatother
\begin{table*}
  \centering
  \caption{Page-wide table}
  \label{table:wide}
  \begin{tabular}{lll} \hline
    Some & table & content \\ \hline
  \end{tabular}
\end{table*}}

Some text about table \ref{table:regular}.
\begin{table}
  \centering
  \caption{Regular table}
  \label{table:regular}
  \begin{tabular}{lll} \hline
    Some & table & content \\ \hline
  \end{tabular}
\end{table}
\end{document}

无论哪种情况,单列浮动都位于第 1 页,而第 2 列浮动都位于第 2 页。

相关内容