LaTeX表定位

时间:2009-11-04 14:05:43

标签: latex

我有一个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...

10 个答案:

答案 0 :(得分:151)

在进行了一些谷歌搜索后,我遇到了 float 包,它可以防止LaTeX重新定位表。

在序言中:

\usepackage{float}
\restylefloat{table}

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

答案 1 :(得分:15)

这对我有用:

一开始,usepackage定义包括:

\usepackage{placeins}

在添加之前和之后:

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

这会将表格准确放置在文本中所需的位置。

答案 2 :(得分:7)

如果文本加表格加文字不适合单个页面会怎样?通过尝试以这种方式强制排版,您很可能最终得到的页面太短;也就是说,因为一个表不能默认突破一个页面,它将被推送到下一个页面,并在之前的页面上留下空隙。你会注意到你从未在出版的书中看到这一点。

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

P.S。阅读FAQ;这里的大多数其他答案是给出的部分建议组合。

答案 3 :(得分:5)

这是一个简单的解决方案,来自Wikibooks

  

placeins包提供了命令\ FloatBarrier,可用于防止浮动在其上移动。

我只是在每张桌子之前和之后放置\FloatBarrier

答案 4 :(得分:3)

您可能希望将此添加到序言中,并根据需要调整值:

 %------------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可能很有用。

答案 5 :(得分:3)

如果你想让两张桌子彼此相邻,你可以使用:(加载float包裹)

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

每个人都有自己的标题和编号。 另一个选项是subfigure包。

答案 6 :(得分:1)

表位置

可用参数

可以使用以下参数轻松放置桌子:

  • h将浮标放置在此处,即,与浮点数在源文本中出现的位置大致相同(但是,并不完全在该位置)
  • t放置在页面的顶部
  • b定位在页面的底部
  • p放在特殊的页面上,仅用于浮点数。
  • !覆盖LaTeX用于确定“良好”浮动位置的内部参数。
  • H将浮点数放置在LATEX代码中的确切位置上。需要float软件包。这在某种程度上等效于h!

如果您想利用H(或h!)进行精确定位,请确保在序言中正确设置了float软件包:

\usepackage{float}
\restylefloat{table}

示例

如果要将表格放置在同一页面上,或者放置在页面的确切位置,或者至少放置在页面的顶部(最适合乳胶引擎),请使用参数h和{{ 1}}:

t

来源:Overleaf.com

答案 7 :(得分:0)

为了将标题放在[H]浮动表的上方 ,请在序言中插入以下内容:

\usepackage{float}
\floatstyle{plaintop}
\restylefloat{table}

答案 8 :(得分:0)

在我的情况下,我遇到一个问题,即在插入段落后表格没有立即显示,所以我只是进行了更改

\begin{table}[]

\begin{table}[ht]

答案 9 :(得分:-1)

不必使用\restylefloat并销毁其他选项,例如标题放置。只需在[H]之后使用[!h]\begin{table}