图形破坏了列表,如何避免?

图形破坏了列表,如何避免?

我的文档中有一个列表,我在它之前插入了一些行图形,执行以下操作:

\begin{figure}[htbp]
\begin{center}
\includegraphics[scale=0.7]{filename.png}
\caption{Caption}
\label{fig:label}
\end{center}
\end{figure}

不幸的是,这个图把列表分成了两部分,我不知道如何避免这种情况。我尝试过改变图的位置,但找不到好看的解决方案。

编辑:

提到的清单是软件代码的容器,如下所示:

\begin{lstlisting}[language=C, label=lst, caption="Software", breaklines=true]
 //my code here
\end{lstlisting}

答案1

“浮动元素”(例如表格和图形)的精确定位是 LaTeX 执行的比较神秘的过程之一。您没有提到执行的是哪种列表,但我认为它要么是枚举列表,要么是分项列表。您确实提到了您使用[htbp]作为定位选项;第一个元素h代表“此处”,也就是说,LaTeX 可能会认真对待您的问题,并将浮动元素放置在浮动元素代码出现的位置。

在你的情况下,即在存在逐项或枚举列表的情况下,获得令人满意的浮动位置的一个有希望的第一步可能是插入\begin{figure}...\end{figure}代码列表末尾。首先尝试不提供定位选项(例如[h])。如果这不能产生令人满意的结果,请提供[t][b]定位选项。

最后,请注意,通常只有在文档其余文本基本定稿后,才可以对浮动材料的确切位置进行微调。否则,在更改此处或彼处的文本后,您可能不得不重新进行工作。

答案2

我遇到了同样的问题,并找到了解决方法。使用\pagebreak。我的代码如下

\begin{figure}
...
\end{figure}

\pagebreak

\begin{lstlisting}
...
\end{lstlisting}

如果这样做,图形将首先出现,然后是代码清单。注意:清单不会跳转到新页面,除非页面已经满是图形。

相关内容