如何强制执行表格*(宽表)的位置

如何强制执行表格*(宽表)的位置

我正在写一篇论文SIGPLAN 会议 2 列格式。我为每个章节保留单独的 .tex 文件:

%% main.tex    
\documentclass[preprint, 10pt]{sigplanconf}
\usepackage{ ... }
...
\maketitle
...
\input{abstract}
\input{intro}
\input{related}
...

'abstract' 和 'intro' 加起来有 1.2 页长,'related' 紧随其后。'related' 的长度为 0.8 页。这意味着直到 'related 的所有内容都在第 2 页。

问题是我有一张宽表,{table*}它跨越了“相关”文件中的两列。

%% related.tex
\begin{table*}[t]
\begin{center}
\begin{tabular}{|l|l|l|}
...
\end{table*}

但是,这个宽表总是位于第 3 页,而不是第 2 页。要使这个宽表成为第 2 页,我需要将表移到“intro”的中间,这非常难看。更糟糕的是,这会使表标题编号乱序。

有没有什么方法可以强制确定宽表的位置?就我而言,我想在第 2 页绘制宽表格。

我遇到了包,但是插入这个包会导致} 和fixltx2e出现巨大错误。{table*{figure*}

答案1

我有两个建议。首先,用单个指令替换\begin{center}和命令。这将明显缩小整个表格所需的垂直空间。其次,将表格的代码单独放在一个文件中,并将该文件放在摘要之后但在文件之前。\end{center}\centering\inputintro

在以下 MWE 中,我使用 documentclassarticle而不是 sigplanconf(我的 TeX 系统上没有),并且使用lipsum包中的填充文本来模拟摘要和前两节的内容。请注意,表格的代码位于第 1 节的开始之前;因此,它被放置在第 2 页的顶部,我相信这是你想要的。(在两列 LaTeX 文档中,浮动将仅有的放置在顶部,因此提供[t]定位选项是不必要的,也是无用的。)祝您 TeXing 愉快!

\documentclass[twocolumn]{article}
\usepackage{lipsum,afterpage}
\begin{document}
\begin{abstract}
\lipsum[1-2]
\end{abstract}

\begin{table*}
\caption{Some data points} \label{tab:data}
\medskip
\centering
\begin{tabular}{|ccccc|}
\hline
a & b & c & d & e\\
\hline
\end{tabular}
\end{table*}

\section{Introduction}
\lipsum[3-8]

\section{Related Literature}
\lipsum[8-15]

\end{document}

答案2

您可以使用包执行此操作stfloats,然后使用常规符号(例如 [bp])将图像放在底部。

\usepackage{stfloats}
\begin{table*}[bp]
...
\end{table*}

答案3

另一个解决方案是使用[h](表示“此处”)修饰符。

\begin{table*}[h]
   \centering
   \begin{tabular}{|l|l|l|}
      ...
\end{table*}

相关内容