我有一个简单的两列文本,想在文本中放置图形。我使用了此代码
\documentclass{article}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{caption}
\begin{document}
\begin{multicols}{2}
First text
\begin{center}
\includegraphics[width=0.5\textwidth]{ebooks.jpg}
\captionof{figure}{This is a test}
\label{fig: 11}
\end{center}
Second text
\end{multicols}
\end{document}
我的问题是,无论图形First text
位于何处,它都会被精确地放置在后面。例如,如果First text
需要 80% 的空间,而图形需要 30%;图形将被推到第二页,而第一页将有 20% 的间隙。
我如何才能使结构灵活。在此示例中,将 70% 放在First text
第一页(图形需要 30% 的空间才能形成 100% 填充的页面);然后将剩余的 10%First text
移到第二页。
答案1
这里有几种可能性。对于 article 类中的双列文本,multicols
除了平衡末尾的列,或者想要切换到单列并返回而不产生分页符外,您不需要环境。只需将选项传递twocolumn
给 article。在这种情况下,使用图形环境确实会为您提供单列浮动图形(通常会出现在下一列的顶部,但您可以根据需要调整定位)。
第二,如果你真的需要环境multicols
,那么包装文档指出单列浮动与多列不兼容。您可以使用带星号的形式(figure*
或table*
),这将占用整个页面宽度,正如@Frg 指出的那样。事实证明,定位浮动非常复杂,在多列情况下更是如此。例如,参见这个文件,其中记录了所涉及的一些挑战;该文档和软件包multicol
均由 Frank Mittelbach 编写,他深度参与了 LaTeX3 的工作,因此我猜如果multicol
还不支持浮点数,那么它仍然不是一个已解决的问题 :)
最后,您可以放弃灵活性,并采取反复试验的方法:移动您希望在源代码中浮动的内容,然后重新编译并重试,直到看起来不错为止。如果这是您唯一可行的方法,我建议您等到周围的文本基本稳定下来,这样您就不会浪费时间完善布局,因为下次编辑时布局就会中断……