是否可以始终让某种类型的浮动(即,在我的情况下,图形或表格)在浮动页面上出现时排在最前面?我不想更改源代码中的顺序。
答案1
这实际上是在尝试制作浮动页面之前对列表进行排序,这可能会对后面的页面产生影响,因为任何保留的表格都会在保留的图形之前进行尝试,但无论如何,它在我尝试过的一个测试文档上有效。
它保持每种浮点数的顺序,将所有表拉出并将它们放在浮点数列表的头部。
\documentclass{article}
\makeatletter
\def\@gettable#1{%
\count@\count#1%
\divide\count@\@xxxii
\ifnum\count@=\ftype@table\relax
\@cons\@tablelist#1%
\else
\@cons\@nottablelist#1%
\fi
}
\def \@tryfcolumn #1{%
\global \@fcolmadefalse
\ifx #1\@empty
\else
\xdef\@trylist{#1}%
\global \let \@failedlist \@empty
\begingroup
\let\@tablelist\@empty
\let\@nottablelist\@empty
\let\@elt\@gettable
\@trylist
\let\@elt\relax
\xdef\@trylist{\@tablelist\@nottablelist}%
\let \@elt \@xtryfc \@trylist
\endgroup
\if@fcolmade
\@vtryfc #1%
\fi
\fi
}
\makeatother
\begin{document}
\begin{table}[p]\centering
TTTa
\caption{ttt}
\end{table}
\begin{figure}[p]\centering
FFFa
\caption{fff}
\end{figure}
\begin{table}[p]\centering
TTTb
\caption{ttt}
\end{table}
\begin{figure}[p]\centering
FFFa
\caption{fff}
\end{figure}
\end{document}