\begin{figure*}[t!] ... \end{figure*}
可以使用(可以避免过满的框)将整页图形包含在普通的单列文档中。
但这显然在multicol
- 环境中失败:当包含的图像为一些额外的文本留出位置时,没有问题,但是当图像需要整个时\textheight
,图像不会包含在所需的位置,而是在两列文本结束后向下移动。
改变\topfraction
等对该行为没有影响。
有针对此行为的解决方案吗?
答案1
您必须意识到,figure* 始终将浮动元素放在后面的页面上,而不是当前页面上。此外,[!t]
这还不够,!
只有在尝试将浮动元素用于当前页面时才有意义,否则 LaTeX 会忽略它。有点令人惊讶,但这不是我想要改变的领域。无论如何,如果您使用[!tp]
它,无论是在单列中还是在多列中,它都可以工作。
\documentclass{article}
\usepackage{multicol,kantlipsum}
\begin{document}
\kant[1]
\begin{figure*}[!tp]
\vrule height \textheight width 1pt
\caption{big figure}
\end{figure*}
\kant[2-10]
\newpage
\begin{multicols}{2}
\kant[1]
\begin{figure*}[!tp]
\vrule height \textheight width 1pt
\caption{big figure}
\end{figure*}
\kant[2-20]
\end{multicols}
\end{document}
答案2
那是你要的吗?
\documentclass{article}
\usepackage[showframe]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{multicol}% http://ctan.org/pkg/multicols
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\begin{multicols}{2}
\lipsum[1-2]
\end{multicols}
\begin{figure*}[h]
\includegraphics[width=\textwidth,height=4cm]{example-image-a.png}
\caption{example-image-a.png}
\end{figure*}
\begin{multicols}{2}
\lipsum[3-4]
\end{multicols}
\end{document}