为什么表格会绘制在页脚上而不是移动到下一页?

为什么表格会绘制在页脚上而不是移动到下一页?

在第二页上,表格被绘制在页脚上,而不是移动到下一页。

但第一张桌子移动到第二页,而不是直接绘制在后面\lipsum[1-2],因为那里没有足够的空间。

\documentclass[14pt]{extarticle}

\usepackage{lipsum}
\usepackage{ltablex}
\usepackage{placeins}

\newcommand{\maketable}[1]{
    \FloatBarrier
    \begin{table}[h]
    \begin{tabularx}{\textwidth}{|X|}
    \hline
    #1\\
    \hline
    \end{tabularx}
    \end{table}
    \FloatBarrier
}

\begin{document}

\lipsum[1-2]

\maketable{
    \lipsum[1]
}

\maketable{
    \lipsum[1-2]
}

\end{document}

我尝试过的:

  • 正在删除\FloatBarrier 表格到处乱飞。有时表格会跳到应该放在其前面的文本上方。有时表格之间会莫名其妙地出现巨大的垂直间隙。

  • 正在删除\begin{table} ... \end{table}表格被转移到下一页,但顶部hhline仍保留。

  • 使用tabularx而不是ltablex第二个表格确实移动到了下一页,但第一个表格被放置在页面的中间,而不是顶部。使用\begin{table}[ht]而不是\begin{table}[h]并没有帮助(在日志中它说 [h] 无论如何都会自动更改为 [ht])。似乎longtable在浮动中使用 不是一个好主意(我想这是可以预料到的)。但是,为什么使用常规 时第一个表格会放置在页面的中间tabularx

  • 尝试使用 TexLive 和 MikTex,它们都生成相同的 pdf。关联

显然,使用\begin{table}[H](需要\usepackage{float})可以以某种方式解决这个问题。

我不知道为什么,而且我担心使用 [H] 以后可能会产生很多其他问题,但到目前为止我还没有注意到任何问题。

使用 [H] 后的效果如下:关联

相关内容