LaTeX 表定位

我有一个 LaTeX 文档,其中包含一个段落,后跟4个表,后跟第二个段落。我希望4个表出现在两个段落之间,根据我的 ,我应该在开始表环境(例如 \begin{table}[h])之后使用[ h ]选项。

使用这种方法,前两个表按预期出现在第1段之后,但第2段随后显示,最后两个表出现在下一页。我怎样才能让这些表出现在正确的位置?

我已经尝试了各种方法来纠正定位,比如使用 [h!],但是这似乎没有任何效果。在表格之后使用 \clearpage确实有预期的效果,使表格出现在第二个段落之前,但是它会使最后两个表格留在它们自己的页面上,留下大量的空白,而我更希望第二个段落在表格之后立即开始。

Paragraph 1...


\begin{table}[h]
table1...
\end{table}


\begin{table}[h]
table2...
\end{table}[h]
...


Paragraph 2...
479279 次浏览

在进行了更多的谷歌搜索之后,我发现了 漂浮软件包,它可以防止 LaTeX 重新定位这些表。

在序言中:

\usepackage{float}

然后,对于每个表,您可以使用 H放置选项(例如 \begin{table}[H]) ,以确保它不会被重新定位。

您可能需要在前言中添加这些内容,并根据需要调整这些值:

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

特别是,浮动分割可能是有趣的。

如果希望两个表相邻,可以使用: (加载 float包)

\begin{table}[H]
\begin{minipage}{.5\textwidth}
%first table
\end{minipage}
\begin{minipage}{.5\textwidth}
%second table
\end{minipage}
\end{table}

每一个都有自己的标题和编号。 另一种选择是 subfigure软件包。

如果文本加上表格加上文本不能放到一个页面上,会发生什么情况?通过这种方式强制排版,你很可能最终得到的页面太短; 也就是说,因为一个表格不能在默认情况下突破一个页面,它将被推到下一个页面,并在页面之前留下一个空白。你会注意到,你从未在出版的书中看到这一点。

漂浮行为是一件好事!我建议使用 [htbp]作为所有表格和图形的默认设置,直到文档完成; 只有这样,才应该考虑微调它们的精确位置。

另外,阅读 常见问题,这里的大多数答案都是部分建议的组合。

这里有一个简单的解决方案,来自 维基百科:

占位符软件包提供了一个命令“浮动屏障”,可以用来防止浮动在其上移动。

我只是在每张桌子的前面和后面加了 \FloatBarrier

最初,usepackage的定义包括:

\usepackage{placeins}

之前和之后加上:

\FloatBarrier
\begin{table}[h]
\begin{tabular}{llll}
....
\end{tabular}
\end{table}
\FloatBarrier

这样可以准确地将表放置在文本中您想要的位置。

桌子摆放

可用参数

可以很容易地用下列参数放置一个表:

  • 放置浮点 给你,也就是说,大约在它出现在源文本中的同一点(但是,不完全在这个点)
  • 在页面的 头儿位置。
  • 在页面的 底部位置。
  • 放一个特别的 呼叫只适用于花车。
  • 覆盖 LaTeX 用于确定“良好”浮动位置的内部参数。
  • 在 LatEX 代码中将浮点数放置在 确切的位置。需要浮点数包。这在某种程度上等价于 h!

如果你想使用 H(或 h!)进行精确定位,请确保在前言中正确设置了 float包:

\usepackage{float}
\restylefloat{table}

例子

如果你想把表格放在同一个页面上,无论是在准确的位置还是至少在页面的顶部(最适合乳胶引擎的位置) ,使用参数 ht如下:

\begin{table}[ht]
table content ...
\end{table}

来源: Overleaf 网站

在我的例子中,我遇到了一个问题,在插入段落之后没有立即显示表,所以我只是进行了修改

\begin{table}[]

\begin{table}[ht]

不需要使用 \restylefloat和销毁其他选项,如标题放置。只需使用 [H][!h]\begin{table}