我正在使用 IEEE Trans 模板。我使用 subfig 插入了图形,一切看起来都很好。但是,仔细查看文本后,我看到输出如图 VI-B、图 V-Bb 所示,这看起来非常奇怪。事实上,我无法想象“图 19”被标记为图 VI,这可能是什么问题,我该如何解决这个问题。
有几个问题与我的类似,但也有很大不同: 这个问题提到使用论文模板以罗马数字显示图形。在答案中建议使用 subfigure,但 IEEE 使用 subfig 类。
我包括来自这个问题.每当我喜欢引用
\documentclass{IEEEtran}
\usepackage{lipsum}
\usepackage{graphicx}
\ifCLASSOPTIONcompsoc
\usepackage[caption=false, font=normalsize, labelfont=sf, textfont=sf] {subfig}
\else
\usepackage[caption=false, font=footnotesize]{subfig}
\fi
\begin{document}
\section{A}
\lipsum
\section{B}
\lipsum[1-3]
\begin{figure}
\label{fig1}
\centering
\subfloat[a]{%
\includegraphics[width=0.45\linewidth]{example-image}}
\label{1a}\hfill
\subfloat[b]{%
\includegraphics[width=0.45\linewidth]{example-image}}
\label{1b}\\
\subfloat[c]{%
\includegraphics[width=0.45\linewidth]{example-image}}
\label{1c}\hfill
\subfloat[d]{%
\includegraphics[width=0.45\linewidth]{example-image}}
\label{1d}
\caption{Whatever}
\end{figure}
\lipsum[1-5]
\end{document}
答案1
除了修复您回答中提到的两个问题之外——放置\label
指令后相关\caption
语句,并确保使用正确的参数\ref
——您还需要确保\label
与给定语句相关的指令subfloat
发生里面的论点\subfloat{...}
。
例如,不要写
\subfloat[a]{%
\includegraphics[width=0.45\linewidth]{example-image}}
\label{1a}
你应该写
\subfloat[a]{%
\includegraphics[width=0.45\linewidth]{example-image}
\label{1a}}
完整的 MWE (最小工作示例):
当然,如果\label{1a}
发生外部的范围\subfloat
,所用指令的输出\cref
将是
图 1、图 1b 和 1c 以及第一部分
不太好吧?
\documentclass{IEEEtran}
\usepackage{lipsum,graphicx}
\ifCLASSOPTIONcompsoc
\usepackage[caption=false,
font=normalsize, labelfont=sf, textfont=sf]{subfig}
\else
\usepackage[caption=false, font=footnotesize]{subfig}
\fi
%% just for this example:
\usepackage[colorlinks]{hyperref}
\usepackage[nameinlink,noabbrev]{cleveref}
\begin{document}
\section{AAA}
\lipsum[1-5]
\begin{figure}
%%\centering % not needed
\subfloat[text]{%
\includegraphics[width=0.475\linewidth]{example-image}
\label{1a}}\hfill
\subfloat[text]{%
\includegraphics[width=0.475\linewidth]{example-image}
\label{1b}}
\subfloat[text]{%
\includegraphics[width=0.475\linewidth]{example-image}
\label{1c}}\hfill
\subfloat[text]{%
\includegraphics[width=0.475\linewidth]{example-image}
\label{1d}}
\caption{Whatever} \label{fig1}
\end{figure}
\bigskip
Some cross-references: \cref{fig1,1c,1b,1a}.
\end{document}
答案2
当我准备发送这个问题时,我发现我的代码中存在许多问题,这些问题产生了问题。
从 MWE 中可以看出,图形的标签放在子浮动上方,而不是下方。将其放在图形标题下方解决了图形引用不佳的问题。
对于子图,我发现它们的引用也很差。它基于我使用的前一个模板(另一个期刊模板可以很好地处理此引用)。我引用它们的方式是 \ref{1}a 而不是 \ref{1a}。纠正这些问题回答了我的问题。
\documentclass{IEEEtran} \usepackage{lipsum} \usepackage{graphicx} \ifCLASSOPTIONcompsoc \usepackage[caption=false, font=normalsize, labelfont=sf, textfont=sf] {subfig} \else \usepackage[caption=false, font=footnotesize]{subfig} \fi \begin{document} \section{A} \lipsum \section{B} \lipsum[1-3] \begin{figure} \centering \subfloat[a]{% \includegraphics[width=0.45\linewidth]{example-image}} \label{1a}\hfill \subfloat[b]{% \includegraphics[width=0.45\linewidth]{example-image}} \label{1b}\\ \subfloat[c]{% \includegraphics[width=0.45\linewidth]{example-image}} \label{1c}\hfill \subfloat[d]{% \includegraphics[width=0.45\linewidth]{example-image}} \label{1d} \caption{Whatever} \label{fig1} % Put here not on top \end{figure} \lipsum[1-5] \end{document}
IEEE Tran 的正确引用:...\ref{1a} 而不是 \ref{1}a
我决定发布这篇文章,因为我之前也在这个网站上搜索过答案,直到我自己找到了答案。也许,将来有类似情况的人和我都可以从中受益。