LaTeX中的连续表格

4
我想知道如何在LaTeX中连续放置几个表格?
第一个表格之前的页面有一点空间,但不足以容纳第一个表格,因此第一个表格需要放置在下一页的顶部,即使我使用 \begin {table} [!h] 也无济于事。
第二个表格无法适应第一个表格剩余页面中的位置,因此我认为可以使用longtable将其跨越剩余页面和下一页的顶部。类似地,我使用longtable进行第三个表格。
LaTeX代码如下:
... % some text  

\begin{table}[!h]  
\caption{Table 1. \label{tab:1}}  
\begin{center}  
\begin{tabular}{c c}  
...  
\end{tabular}  
\end{center}  
\end{table}     

\begin{center}  
\begin{longtable}{ c c }  
\caption{Table 2. \label{tab:2}}\\   
...  
\end{longtable}  
\end{center}  

\begin{center}  
\begin{longtable}{ c c }  
\caption{Table 3. \label{tab:3}}\\   
...  
\end{longtable}  
\end{center}  

... % some text

在编译的PDF文件中,表格的顺序混乱。第一个表格位于第二个和第三个表格后面,第二个表格跨越了表格前的文本页面和下一页,并且第三个表格跟在其后。
我想知道如何让这三个表格按顺序连续出现,并且它们之间和文本与表格之间没有空白?
或者如果我的希望不可能实现,那么最佳策略是什么?
编辑:
删除[!h]并没有改善,第一个表格仍然在第二个和第三个表格后面。
编辑:
正如以下回复之一所建议的,使用[H]对我很有效。出于好奇,[H]和[!h]之间的效果有什么区别?
2个回答

4
尝试删除[!h]
问题在于\begin{table} ... \end{table}定义了一个浮动插入。这个插入出现在以下页面之一上。 \begin{longtable}定义了非浮动表。Longtable立即出现。
您应该删除\begin{table} ... \end{table}以使第一个表立即出现。[!h]不能使表格不浮动。

谢谢,Alexey!但是去掉[!h]并没有改善,第一个表仍然在第二个和第三个表后面。 - Tim
2
Alexey想说的是,你需要删除\begin{table}\end{table}。 LaTeX把它们呈现为浮动体:它自由地(合理地)定位大型对象到最佳位置。内部的\begin{tabular}...\end{tabular}\begin{longtable}...\end{longtable}生成实际的表格。如果你直接在文档中只有它们,它们将被视为一个巨大的字母,并保证一个接一个地放置(你可能需要使用\\强制换行)。 - Antal Spector-Zabusky

3

我记不清是数组还是浮点数包提供了[H],但这对我总是有效的:

\begin{table}[H]
...
\end{table}

谢谢Mica!这对我也有效。出于好奇,[H]和[!h]之间的效果有什么区别? - Tim
我不太确定,Tim。我认为从技术上讲,[!h] 仍然有可能浮动,而 [H] 则被注册为完全不浮动。 - Mica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接