我有一个LaTeX文档,其中包含一个段落,后跟4个表格,后跟第二个段落。我希望4个表格出现在两个段落之间,从我的read开始意味着我应该在开始表格环境后使用[h]选项(例如\begin{table}[h]
)。
使用此前两个表按预期显示在第1段之后,但随后显示第2段,最后两个表出现在下一页上。如何让表格显示在正确的位置?
我已经尝试了各种方法来纠正定位,例如使用[h!]
然而这似乎没有任何影响。在表格之后使用\clearpage
确实具有使表格出现在第二段之前的所需效果,但是然后它将最后两个表格留在他们自己的页面上并加载了空格,当我希望第二段开始之后立即开始表格。
Paragraph 1...
\begin{table}[h]
table1...
\end{table}
\begin{table}[h]
table2...
\end{table}[h]
...
Paragraph 2...
在做了一些谷歌搜索后,我遇到了浮动包,它可以防止LaTeX重新定位表。
在序言中:
\usepackage{float}
\restylefloat{table}
然后,对于每个表,您可以使用H
放置选项(例如\begin{table}[H]
)以确保它不会重新定位。
这对我有用:
开头的usepackage
定义包括:
\usepackage{placeins}
在添加之前和之后:
\FloatBarrier
\begin{table}[h]
\begin{tabular}{llll}
....
\end{tabular}
\end{table}
\FloatBarrier
这会将表格准确放置在文本中的所需位置。
如果文本加表格加文本不适合单个页面会发生什么?通过尝试以这种方式强制排版,您很可能最终得到的页面太短;也就是说,因为一个表不能默认突破一个页面,它将被推送到下一个页面,并在之前的页面上留下空隙。你会注意到你从未在出版的书中看到这一点。
漂浮的行为是一件好事!我建议在文档完成之前使用[htbp]
作为所有表格和数字的默认设置;只有这样才能考虑微调它们的精确位置。
附:阅读FAQ;这里的大多数其他答案是给出的部分建议组合。
您可能希望将此添加到前导码中,并根据需要调整值:
%------------begin Float Adjustment
%two column float page must be 90% full
\renewcommand\dblfloatpagefraction{.90}
%two column top float can cover up to 80% of page
\renewcommand\dbltopfraction{.80}
%float page must be 90% full
\renewcommand\floatpagefraction{.90}
%top float can cover up to 80% of page
\renewcommand\topfraction{.80}
%bottom float can cover up to 80% of page
\renewcommand\bottomfraction{.80}
%at least 10% of a normal page must contain text
\renewcommand\textfraction{.1}
%separation between floats and text
\setlength\dbltextfloatsep{9pt plus 5pt minus 3pt }
%separation between two column floats and text
\setlength\textfloatsep{4pt plus 2pt minus 1.5pt}
特别地,\ floatpagefraction可能是有意义的。
如果你想让两个表彼此相邻,你可以使用:(加载了float
包)
\begin{table}[H]
\begin{minipage}{.5\textwidth}
%first table
\end{minipage}
\begin{minipage}{.5\textwidth}
%second table
\end{minipage}
\end{table}
每个人都有自己的标题和编号。另一个选择是subfigure
包。
可以使用以下参数轻松放置表格:
h
将浮动放置在这里,即大致与源文本中出现的相同点(但不是完全在现场)t
位于页面顶部。b
位于页面底部。p
只为漂浮物放置一个特殊页面。!
覆盖LaTeX用于确定“良好”浮动位置的内部参数。H
将浮动放置在LATEX代码中的精确位置。需要float包。这有点等同于h!
。如果您想使用H
(或h!
)进行精确定位,请确保在序言中正确设置了float
包:
\usepackage{float}
\restylefloat{table}
如果您想将表放在同一页面上,无论是在确切位置还是至少在页面顶部(最适合乳胶引擎),请使用参数h
和t
,如下所示:
\begin{table}[ht]
table content ...
\end{table}
资料来源:Overleaf.com