表环境周围的 vspace 问题

表环境周围的 vspace 问题

我最近决定为顶部表格添加标题,因此我将其放置在环境中table。当我这样做时,\vspace*{-2.5cm}第二个表格之前的内容似乎出于某种原因被忽略了。有人知道为什么吗?我该如何克服这个问题?

\begin{center}
\begin{table}
\caption{My Table}
\begin{tabular}
...
\end{tabular}
\end{table}
\end{center}

\newpage
\vspace*{-2.5cm}
\begin{center}
\begin{tabular}
...
\end{tabular}
\end{center}

如果我删除该table环境,它就可以\vspace*{-2.5cm}再次工作。

答案1

如果我正确理解了您的代码,您希望将一些表格材料的第一部分设置在一页上,将其余表格材料设置在下一页的最顶部。要强制 LaTeXtable在当前页面上排版待定浮动,而不是将其推迟到文档中 LaTeX 浮动放置算法可能认为合适的某个后续位置,您应该使用\clearpage而不是\newpage,因为它\clearpage指示 LaTeX“清除”所有待定浮动(以及开始新页面)。我认为您已经确定第一个表格环境(当前包含在环境中的环境table)确实适合预期页面。您希望指定[htb!]作为表格的放置指令,以赋予 LaTeX 最大的灵活性。

或者您可能想创建一个可以跨越多页的表格?如果是这样,请查看长桌超表格式, 和表格table环境。与不能跨越页面边界的标准 LaTeX 环境不同,这些环境都可以跨越多个页面。

附录。正如@egreg 在评论中建议的那样,不要使用\begin{center}... \end{center};而是在命令\centering之后\caption\begin{tabular}{...}命令之前使用。center环境会插入额外的垂直空格,这可能不是您想要实现的;\centering宏将所有内容置于其范围内的中心,但不会插入额外的垂直空格。

相关内容