TeX中修改插图目录样式一例

类别:编程语言 点击:0 评论:0 推荐:

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

本文地址:http://com.8s8s.com/it/it25116.htm