我正在使用minipage
环境将表格和图形并排放置。现在我想让它像普通图形或表格一样“浮动”,这样 LaTeX 就可以决定将其放置在何处(使用 [htb] 选项)。经过一番谷歌搜索,我发现环境minipage
不是浮动的,因此它将始终插入到与代码相同的位置。这并不总是最好的解决方案。
有没有办法防止/规避这种情况,使得小型页面也被视为浮动页面?
答案1
您可以使用现有的浮点数(例如)来代替figure
并排minipage
放置图形和表格。
\documentclass{article}
\usepackage{capt-of}
\makeatletter
%\let\ftype@table\ftype@figure
\makeatother
\begin{document}
\listoffigures
\listoftables
\clearpage
\begin{figure}
\begin{minipage}{.4\textwidth}XXX
\captionof{figure}{fff}
\end{minipage}\hfill
\begin{minipage}{.4\textwidth}\rule{2cm}{1cm}
\captionof{table}{ttt}
\end{minipage}
\end{figure}
aaa
\begin{figure}
\begin{minipage}{.4\textwidth}YYY
\captionof{figure}{fff}
\end{minipage}\hfill
\begin{minipage}{.4\textwidth}\rule{2cm}{3cm}
\captionof{table}{ttt}
\end{minipage}
\end{figure}
aaa
\begin{table}\rule{2cm}{7cm}\quad\rule{2cm}{7cm}
\caption{TTT}
\end{table}
aaa
\begin{figure}
\begin{minipage}{.4\textwidth}XXX
\captionof{figure}{fff}
\end{minipage}\hfill
\begin{minipage}{.4\textwidth}\rule{2cm}{1cm}
\captionof{table}{ttt}
\end{minipage}
\end{figure}
aaa
\begin{figure}
\begin{minipage}{.4\textwidth}YYY
\captionof{figure}{fff}
\end{minipage}\hfill
\begin{minipage}{.4\textwidth}\rule{2cm}{3cm}
\captionof{table}{ttt}
\end{minipage}
\end{figure}
aaa
\end{document}
但请注意,虽然这有效,但 LaTeX 会将其视为数字而浮动框只保持其顺序人物这意味着如果某些表在表格环境中是独立的,则它们可能会与图形环境中的表不按顺序浮动。
最终结果是表格列表如下所示
最简单的解决方法是取消注释注释行,以便图形和表格保持相同的顺序。这样做的缺点是 LaTeX 不会将任何图形浮动到任何表格之上,因此算法的灵活性会降低,但它的优点是可以按正确的顺序工作和放置浮动元素,如列表所示: