将图片放在本页底部或下一页顶部

将图片放在本页底部或下一页顶部

如果图形适合放在页面底部,那么它也适合放在页面顶部并最终停在那里(除非某些情况)。我想到最好的办法是将 topnumber 设置为 0(默认值)。

有没有更好的方法来实现这个目标?

\documentclass{article}
\usepackage{lipsum}
\usepackage{everypage,afterpage}

\setcounter{topnumber}{0}
\setcounter{bottomnumber}{2}
\renewcommand{\bottomfraction}{.7}

\begin{document}
\lipsum[1-2]
%\lipsum[3-4]% for top of next page

\AddThispageHook{\stepcounter{topnumber}}
\afterpage{\addtocounter{topnumber}{-1}}
\begin{figure}[tb]
\rule{\textwidth}{.2\textheight}
\caption{test}
\end{figure}

\lipsum[5-12]

\end{document}

答案1

此解决方案将每页末尾的每个 [b] 图形转换为 [tb] 图形。我不确定所有位标志的作用,但 [t] 是 50,[b] 是 52,[tb] 是 54,

\documentclass{article}
\usepackage{lipsum}
\usepackage{everypage}

\makeatletter
\AddEverypageHook{%
  \def\reset#1{\ifnum\count#1=52 \global\count#1=54\fi}% convert [b] to [bt]
  \let\@elt=\reset
  \@deferlist}
\makeatother

\begin{document}
\lipsum[1-2]
\lipsum[3-4]% for op of next page

\begin{figure}[b]
\rule{\textwidth}{.2\textheight}
\caption{test}
\end{figure}

\lipsum[5-12]

\end{document}

现在有一个更简单的解决方案。

\documentclass{article}
\usepackage{lipsum}

\renewcommand{\bottomfraction}{.7}

\begin{document}
\lipsum[1-2]
%\lipsum[3-4]% for top of next page

\suppressfloats[t]
\begin{figure}
\rule{\textwidth}{.2\textheight}
\caption{test}
\end{figure}

\lipsum[5-12]

\end{document}

相关内容