我需要将单列图放在同一页的顶部,将双列图放在同一页的底部。但是,使用以下 MWE,这些图并没有按预期显示在同一页上。我也尝试过,但dblfloatfix没有解决方案。

梅隆银行:

\documentclass[twocolumn]{article}

\usepackage{graphics}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{floatpag}
\usepackage{stfloats}

\begin{document}

\lipsum{1-5}

\begin{figure}[!t]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{1}
\end{figure}

%WHEN THIS LINE PRESENT THEN WE ARE GETTING THE DESIRED OUTPUT%Some Text content for testing phase only. Some Text content for testing phase only. 

\begin{figure*}[!b]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{2} 
\end{figure*}

\lipsum{1}

\end{document}


最佳答案
2

首先请注意,\lipsum有一个可选参数,但不是必需的。因此,例如,您的\lipsum{1-5}与相同\lipsum\begingroup 1-5\endgroup。还请注意,\lipsum最初没有可选参数的与相同\lipsum[1-7]。我在下面的示例中考虑到了这一点。

底部放置的跨列浮动有几个限制(并且每个支持它的包都有一些其他限制)。由于这些限制,将跨列浮动稍微移动一下通常会有所帮助。在您的情况下,将其向后移动一点确实有帮助:

\documentclass[twocolumn]{article}

\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{floatpag}
\usepackage{stfloats}

\begin{document}

\lipsum

\begin{figure}[!t]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{1}
\end{figure}

\lipsum[1]% move one lipsum paragraph *before* the bottom figure

\begin{figure*}[!b]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{2} 
\end{figure*}

\lipsum[2-7]

\end{document}

在所示的示例中,使用而不是stfloats也会有帮助:

\documentclass[twocolumn]{article}

\usepackage{lipsum}
\usepackage{nidanfloat}

\begin{document}

\lipsum{1-5}% See my note about the (incorrect) argument.

\begin{figure}[!t]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{1}
\end{figure}

\begin{figure*}[!b]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{2} 
\end{figure*}

\lipsum{1}% See my note about the (incorrect) argument.

\end{document}

在您的实际文档中,您还应该尝试将 移动figure*到源内。但请注意,使用浮动的主要原因是允许 LaTeX 找到合适的位置。它并非旨在将材料限制在固定位置。对于静态位置,还有其他机制,例如 shipout 钩子,例如与 结合使用\enlargethispage,或者可能类似于。但是,如果不了解您的文档的更多信息以及您为什么需要这个位置,我无法告诉您,您还可以使用什么,以及哪个是我认为最好的解决方案。

我对此很陌生,但通过将两个图形一个接一个地移动到彼此旁边,我得到了相同的结果。

\documentclass[twocolumn]{article}
\usepackage{lipsum}
\usepackage{stfloats}

\begin{document}
\begin{figure}[!t]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{1}
\end{figure}

\begin{figure*}[!b]
\vbox{\fbox{\vbox to 10pc{\hbox to 5pc{}}}}
\caption{2} 
\end{figure*}

\lipsum

\end{document}

1

  • 在原始帖子中,第一张图片位于第二页的顶部。在您的示例中,两张图片都位于第一页。我不知道这是否重要。


    –