我有一张大图片,它出现在需要横跨两列的双列文档的开头。我插入图片的方式如下:
\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}