Q: 现需要把图的目录的序号由“1”、“2”、...改为“Fig.1”、“Fig.2”、....,如何解决?
A: 定义一个新的命令\figcaption,专门供figure环境的caption使用。
\makeatletter
\def\figcaption{%
\ifx\@captype\@undefined
\@latex@error{\noexpand\caption outside float}\@ehd
\expandafter\@gobble
\else
\refstepcounter\@captype
\expandafter\@firstofone
\fi
{\@dblarg{\@figcaption\@captype}}%
}
\long\def\@figcaption#1[#2]#3{%
\par
\addcontentsline{\csname ext@#1\endcsname}{#1}%
{Fig.~\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
\makeatother
如果仍然想使用\caption,也可以在\@caption的定义中增加判断。
\makeatletter
\def\aaa{figure}
\long\def\@caption#1[#2]#3{%
\par
\addcontentsline{\csname ext@#1\endcsname}{#1}%
{\ifx\@captype\aaa Fig.~\fi%
\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
\makeatother