如何才能防止某个图形阻碍后来的图形呢?

如何才能防止某个图形阻碍后来的图形呢?

我有一张大图片,它出现在需要横跨两列的双列文档的开头。我插入图片的方式如下:

\begin{figure*}[btp]
    \centering
    \includegraphics[width=\textwidth]{my_figure}
    \caption{Some caption}
    \label{fig:my-fig}
\end{figure*}

我还有其他几张单列图表这张图与一堆文本一起放在同一节中。单列图形插入如下内容:

\begin{figure}[!hbt]
    \centering
    \includegraphics[width=\columnwidth]{other_figure}
    \caption{Some other caption}
    \label{fig:my-other-fig}
\end{figure}

LaTeX 等到下一页才绘制大图,然后在绘制完大图后再绘制本节的所有其他图。我已经尝试了所有hbtp我能想到的参数组合来绘制大图。如果我能弄清楚如何将较小的浮点数按其大小放入文本列中,同时允许较大的浮点数跟在它们后面,即使该图是在它们之前定义的,我会很高兴的。

我知道我可以使用floats包并强制我的小图形显示在定义它们的位置[H],但我仍然希望允许它们根据需要浮动。有没有办法告诉 LaTeX 可以打破特定浮点的插入顺序?

答案1

基本思想是使用单独的计数器对单列图 1、2、3、... 和双列图 A、B、C... 进行编号。使用 newfloat 时,默认会为单列图和双列图生成单独的列表,但您可以使用按打印顺序\addcontentsline包含双列图。\listoffigures

\documentclass[twocolumn,letterpaper]{article}
\usepackage{newfloat}
\DeclareFloatingEnvironment[name=Figure,
  listname={Two Column Figures},
  fileext=lo2f,
  placement=tp]{Figure}
\renewcommand{\theFigure}{\Alph{Figure}}

\usepackage{lipsum}% MWE only

\begin{document}
\listoffigures

\listofFigures
\clearpage

\begin{Figure*}
  \rule{\textwidth}{1in}
  \caption{2 column figure}
  \addcontentsline{lof}{figure}{\string\numberline{\theFigure}%
    {2 column figure}}% add to \listoffigures
\end{Figure*}

\lipsum[1-6]% adjust to test ordering

\begin{figure}[t]
  \rule{\columnwidth}{1in}
  \caption{Top}
\end{figure}

\begin{figure}[b]
  \rule{\columnwidth}{1in}
  \caption{Bottom}
\end{figure}

\begin{figure}[p]
  \rule{\columnwidth}{3in}
  \caption{Page}
\end{figure}

\lipsum[8-16]

\end{document}

相关内容