我有半页文本,其下有一个短表格,下一页上有一个大表格。短表格位于页面底部,位于半页文本下方,这在页面中留下了很大的空间。是否可以将浮动对齐到空间中间,以便看起来更好?
答案1
既然你感兴趣特定浮动位置, 这float
包裹的[H]
放置选项可能会有所帮助。
将有问题的表格放在\vfill
两侧的空格内:
\documentclass{article}
\usepackage{lipsum,float}
\begin{document}
\lipsum[1-7]
\vfill
\begin{table}[H]% This table will not float
\centering
\rule{.8\textwidth}{7\baselineskip}
\caption{A very small table.}
\end{table}
\vfill
\clearpage
\begin{table}[t]
\centering
\rule{.8\textwidth}{.4\textheight}
\caption{A very large table.}
\end{table}
\lipsum[8-15]
\end{document}
答案2
您可以调整 LaTeX 的底部浮动区域,使浮动位于空间的中心,感谢 Werner 提供的 MWE:-)
\documentclass{article}
\usepackage{lipsum,float}
\makeatletter
\def \@cflb {%
\let\@elt\@comflelt
\setbox\@tempboxa \vbox{}%
\@botlist
\setbox\@outputbox \vbox{%
\unvbox\@outputbox
\vfill
\botfigrule
\unvbox\@tempboxa
\vskip -\floatsep
\vskip0ptplus2fill\relax
}%
\let\@elt\relax
\xdef\@freelist{\@freelist\@botlist}%
\global \let \@botlist\@empty
}
\makeatother
\begin{document}
\lipsum[1-7]
\vfill
\begin{table}[b]% This table will float
\centering
\rule{.8\textwidth}{7\baselineskip}
\caption{A very small table.}
\end{table}
\vfill
\clearpage
\begin{table}[t]
\centering
\rule{.8\textwidth}{.4\textheight}
\caption{A very large table.}
\end{table}
\lipsum[8-15]
\end{document}