“引用”子图在 IEEE Trans 中给出阿拉伯数字。

“引用”子图在 IEEE Trans 中给出阿拉伯数字。

我正在使用 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

当我准备发送这个问题时,我发现我的代码中存在许多问题,这些问题产生了问题。

  1. 从 MWE 中可以看出,图形的标签放在子浮动上方,而不是下方。将其放在图形标题下方解决了图形引用不佳的问题。

  2. 对于子图,我发现它们的引用也很差。它基于我使用的前一个模板(另一个期刊模板可以很好地处理此引用)。我引用它们的方式是 \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

我决定发布这篇文章,因为我之前也在这个网站上搜索过答案,直到我自己找到了答案。也许,将来有类似情况的人和我都可以从中受益。

相关内容