latex插入图片不显示编号怎么解决?

latex插入图片,含多个子图,给每个子图编号并加子图标题,使用\setcounter{figure}{num}对图片进行编号,可以正常编译,但是PDF中不显示编号num,只显示Figure. 标题,这是怎么回事?

使用的package如下,没使用subfig,会报错与subcaption冲突

\usepackage{url,hyperref,lineno,microtype,footnote} % 
\usepackage[onehalfspacing]{setspace}
\usepackage{multirow}  % for table
\usepackage{booktabs}
\usepackage{array}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{float}
\usepackage{subcaption}


插入图片的代码如下

\setcounter{figure}{2}
\setcounter{subfigure}{0}
\begin{subfigure}
\setcounter{figure}{2}
\setcounter{subfigure}{0}
    \centering
    \begin{minipage}[b]{0.5\textwidth}
        \includegraphics[width=\linewidth]{logo1.eps}
        \caption{This is Subfigure 1.}
        \label{fig:Subfigure 1}
    \end{minipage}  
\\   
\setcounter{figure}{2}
\setcounter{subfigure}{1}
    \begin{minipage}[b]{0.5\textwidth}
        \includegraphics[width=\linewidth]{logo2.eps}
        \caption{This is Subfigure 2.}
        \label{fig:Subfigure 2}
    \end{minipage}


\setcounter{figure}{2}
\setcounter{subfigure}{-1}
    \caption{Enter the caption for your subfigure here. \textbf{(A)} This is the caption for Subfigure 1. \textbf{(B)} This is the caption for Subfigure 2.}
    \label{fig: subfigures}
\end{subfigure}


上面的代码编译成PDF显示的是:
Figure. Enter the caption for your subfigure here. \textbf{(A)} This is the caption for Subfigure 1. \textbf{(B)} This is the caption for Subfigure 2.
没有编号

1、首先检查有没有导入宏包

\usepackage{graphicx}
2、检查图片路径有无问题

3、可以尝试将Tex的同名文件删除,重新编译生成

4、若是文章分栏

\begin{multicols}{2}
那是因为multicols环境不能识别figure环境,重新定义一个环境即可

\newenvironment{figurehere} 
    {\def\@captype{figure}} 
    {} 
\makeatother%用于连接公式编号
在文中,用figurehere替换掉原来的figure即可

\begin{multicols}{2}
    \begin{figurehere}  %替换掉之前的begin{figure}
    %由于分栏后图片不能显示出来,所以引用一个新的环境来添加图片
    %该环境已经在文章最开头定义好了
    \centering% 图片居中
    \includegraphics[width=6cm]{diffN.png}
    \caption{The efficiency of N}
    \label{fig:diffN}
    \end{figurehere}%替换掉之前的end{figure}
\end{multicols}



在你的代码中,设置子图编号的命令 \setcounter{subfigure}{num} 放在了 subfigure 环境外部,应该放在每个 subfigure 环境之前,用于指定该子图的编号。同时,在 subfigure 环境之前需要加上 \begin{subfigure},指明开始一个子图的环境。

下面是修改后的代码示例,注意设置编号的位置和子图环境的使用:

\begin{figure}
\centering
\setcounter{figure}{2}
\setcounter{subfigure}{0}
\begin{subfigure}{0.5\textwidth}
    \centering
    \includegraphics[width=\linewidth]{logo1.eps}
    \caption{This is Subfigure 1.}
    \label{fig:Subfigure 1}
\end{subfigure}%
\setcounter{subfigure}{1}
\begin{subfigure}{0.5\textwidth}
    \centering
    \includegraphics[width=\linewidth]{logo2.eps}
    \caption{This is Subfigure 2.}
    \label{fig:Subfigure 2}
\end{subfigure}
\caption{Enter the caption for your subfigure here. \textbf{(A)} This is the caption for Subfigure 1. \textbf{(B)} This is the caption for Subfigure 2.}
\label{fig:subfigures}
\end{figure}

注意到,你在每个 subfigure 中都重新设置了编号,实际上只需要在第一个子图的开头设置即可,其他子图的编号会自动累加。