dblfloatfix
允许将浮动元素放置在页面底部,但是如果恰巧同一页面上有另一个浮动元素,则无法实现正确的编号(即双列浮动元素的编号低于同一页面上其他浮动元素的编号)。有简单的解决方法吗?或者只能通过手动设置浮动元素编号(例如\renewcommand\thefigure{x}
)来解决?
以下是 MWE:
\documentclass[a4paper,10pt,conference,twocolumn]{IEEEtran}
\usepackage[utf8]{inputenc}
\usepackage[cmex10]{amsmath}
\usepackage{mathtools}
\usepackage[demo]{graphicx}
\usepackage{dblfloatfix}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\begin{figure*}[b] % will appear at the bottom of the next page
\centering
\includegraphics{Some-image-1}
\caption{A caption}
\end{figure*}
\newpage
\begin{figure}[t]
\centering
\includegraphics{Some-image-2}
\caption{Another caption}
\end{figure}
\end{document}
答案1
LaTeX 有一个长期存在的错误(或者说,记录的缺陷),即双列浮点数的编号可能与单列浮点数的编号顺序不一致。有可用的软件包可以解决这个问题,从 2015 年 LaTeX 版本开始,该修复程序默认包含在格式中。
但是,此处添加的底部浮点数添加是基于早期的代码,因此顺序不合。更新它以匹配新代码会相对复杂,对于单个文档,更简单的方法是按如下方式更正编号,强制figure
交换位置的浮点数的计数器值,确保在最后将其重置回正常,以便后面的浮点数获得正确的自动编号。
\documentclass[a4paper,10pt,conference,twocolumn]{IEEEtran}
\usepackage[utf8]{inputenc}
\usepackage[cmex10]{amsmath}
\usepackage{mathtools}
\usepackage[demo]{graphicx}
\usepackage{dblfloatfix}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\begin{figure*}[b] % will appear at the bottom of the next page
\centering
\includegraphics{Some-image-1}
\setcounter{figure}{1}
\caption{A caption}
\end{figure*}
\newpage
\begin{figure}[t]
\centering
\includegraphics{Some-image-2}
\setcounter{figure}{0}
\caption{Another caption}
\setcounter{figure}{2}
\end{figure}
\end{document}