避免在带有脚注的页面上使用底部浮动

避免在带有脚注的页面上使用底部浮动

旧讨论关于底部浮动和脚注的相对定位(“底部浮动在脚注上方还是下方?"),我想避免在带有脚注的页面上完全出现底部浮动。

有可能吗?这个问题很简单,但答案可能很难。

提前感谢任何线索。

答案1

根据 John Kormylo 的出色回答。此版本更加可靠:如果带有脚注的文本位于页面末尾,John Kormylo 版本可能会中断,因为分页符后的脚注可能会抑制前一页上的浮动。可以通过将代码移到输出例程中来避免这种情况:

\documentclass{book}
\usepackage[paperwidth=4.75in,paperheight=7.25in,
            textwidth=4.5in,textheight=6.5in,
            headsep=0.1in, footskip=0.15in,
            marginratio=1:1]{geometry}
\usepackage[latin,english]{babel}
\usepackage{graphicx}
\usepackage{booktabs,lipsum}

\toks0{\ifvoid\footins\else\suppressfloats[b]\fi}
\output\expandafter{\the\toks0\the\output}

\begin{document}

\selectlanguage{latin}
\chapter{Errora}

Una\footnote{translatio via google} imagine\footnote{translatio via google} tabula\footnote{translatio via google}, figura\footnote{translatio via google} et\footnote{translatio via google} \ae\footnote{translatio via google} nigma.\footnote{translatio via google}.  
Una\footnote{translatio via google} imagine\footnote{translatio via google} tabula\footnote{translatio via google}, figura\footnote{translatio via google} et\footnote{translatio via google} \ae\footnote{translatio via google} nigma.\footnote{translatio via google}.  
Una\footnote{translatio via google} imagine\footnote{translatio via google} tabula\footnote{translatio via google}, figura\footnote{translatio via google} et\footnote{translatio via google} \ae\footnote{translatio via google} nigma.\footnote{translatio via google}.  
Una\footnote{translatio via google} imagine\footnote{translatio via google} tabula\footnote{translatio via google}, figura\footnote{translatio via google} et\footnote{translatio via google} \ae\footnote{translatio via google} nigma.\footnote{translatio via google}.  
Una\footnote{translatio via google} imagine\footnote{translatio via google} tabula\footnote{translatio via google}, figura\footnote{translatio via google} et\footnote{translatio via google} \ae\footnote{translatio via google} nigma.\footnote{translatio via google}.  
\begin{figure}[htbp]
\centering
\includegraphics[width=0.3\textwidth]{example-image}
\caption{Uno pictorum} 
\end{figure}
\begin{table}[b]%[htbp] %uncomment to see difference
\centering
\begin{tabular}{cccc}
  \toprule
  Error &Errors &error &errors\\
  \bottomrule
\end{tabular}    
  \caption{Test}
\end{table}
\lipsum[1-6]
\end{document}

答案2

向大卫·卡莱尔致敬。

\documentclass{book}
\usepackage[paperwidth=4.75in,paperheight=7.25in,
            textwidth=4.5in,textheight=6.5in,
            headsep=0.1in, footskip=0.15in,
            marginratio=1:1]{geometry}
\usepackage[latin,english]{babel}
\usepackage{graphicx}
\usepackage{booktabs,lipsum}

\let\oldfootnote=\footnote
\def\footnote{\suppressfloats[b]\oldfootnote}

\begin{document}

\selectlanguage{latin}
\chapter{Errora}

Una imagine tabula, figura et \ae nigma.\footnote{translatio via google}.  
\begin{figure}[htbp]
\centering
\includegraphics[width=0.3\textwidth]{example-image}
\caption{Uno pictorum} 
\end{figure}
\begin{table}[b]%[htbp] %uncomment to see difference
\centering
\begin{tabular}{cccc}
  \toprule
  Error &Errors &error &errors\\
  \bottomrule
\end{tabular}    
  \caption{Test}
\end{table}
\lipsum[1-6]
\end{document}

相关内容