% ^^A !Mode:: "TeX:UTF-8:DTX"

% \iffalse meta-comment
%
% Copyright 2012-2015 Shi Fujun <shifujun@foxmail.com>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Shi Fujun <shifujun@foxmail.com>.
%
% This work consists of the files uestcthesis.dtx, uestcthesis.ins and
% uestcthesis.bst.
% and the derived file uestcthesis.cls.
% Other files in this work's package are belongs to the respective owners.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{uestcthesis.dtx}
%</driver>
%<class>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
%<class>\ProvidesClass{uestcthesis}
%<*class>
    [2015/02/13 v1.1.0 UESTC thesis class]
%</class>
%<*driver>
\documentclass{ltxdoc}
\usepackage[hyperref,UTF8]{ctex}
\usepackage{cmap}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\usepackage{rvdtx}
\begin{document}
  \DocInput{uestcthesis.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{0}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
%
% \GetFileInfo{uestcthesis.dtx}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
%
% \title{The \textsf{uestcthesis} class\thanks{This document
%   corresponds to \textsf{uestcthesis}~\fileversion, dated \filedate.}}
% \author{时富军 \\ \texttt{shifujun@foxmail.com}}
%
% \maketitle
% \iffalse
%<*class>
% \fi
% \section{文类版本号说明}
% \changes{v1.0.0}{2014/03/12}{因学校正式推荐使用本模板，版本号改为1.0.0。}
% 本模板的版本号由3段组成。在v1.0.0之前，第一段是0，表示模板处于测试期。从2014年3月12日起，
% 学校正式推荐使用本模板，故将版本号第一段改为1，表示转为正式版。第二段每次增加1点，表示模板功能上有所增加。
% 第三段每次增加1点，表示功能没有增加，只修复了Bug。
% \section{文类源代码}
% \changes{v0.21}{2013/01/22}{将模板重构为DocStrip格式}
% \subsection{中文支持}
%继承ctexbook文类，并调用了如下功能的选项：\par
%cs4size:使用小四字号为缺省字体大小。\par
%UTF8:使用UTF-8 编码。\par
%fancyhdr:保持和fancyhdr 宏包的兼容性。该选项将使得fancyhdr 宏包被自动调用。
%fancyhdr是版式设置宏包，即页眉页脚设置。\par
%hyperref:自动判断hyperref 宏包的正确参数以避免产生乱码。
%如果在导言区用户没有自己调用hyperref，则该选项将使得hyperref 宏包在导言区末尾被
%自动调用；如果需要对hyperref 宏包做进一步的设置，则用户可以自己在ctex 宏包后调用
%hyperref，并使用适当的选项或设置。hyperref是超链接宏包，为pdf文件中的交叉引用提供超链接。\par
%fntef:为CJKfntef 宏包和CCTfntef 宏包提供统一接口。
%该选项将使得CJKfntef 宏包或者CCTfntef 宏包被自动调用。这两个宏包是下划线宏包。
%    \begin{macrocode}
\LoadClass[cs4size,UTF8,fancyhdr,hyperref,fntef,openany]{ctexbook}[2011/03/11]
%    \end{macrocode}
%\changes{v0.6.1}{2014/01/20}{修正所有正文的英文为Times字体。抄录环境中的英文使用打印机字体，并不能用Times字体。}
%    \begin{macrocode}
\RequirePackage{mathptmx}
%    \end{macrocode}
%\changes{v0.6.8}{2014/03/06}{将公式中的字体改回v0.6.1之前的CM字体。}
%\changes{v1.0.1}{2014/03/13}{再次修正公式中的所有符号回到CM字体，在v0.6.8中的修正不完整。}
% mathptmx宏包同时将公式中的字体也改为了Times字体。因为公式中还是用默认CM字体较多，所以这里还需要修改回来。
% 参照source2e中42.1.1 Symbolfont and Alphabet declarations的内容修正。
%    \begin{macrocode}
\DeclareSymbolFont{symbols} {OMS}{cmsy}{m}{n}
\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
\DeclareSymbolFont{operators} {OT1}{cmr} {m}{n}
\DeclareSymbolFont{letters} {OML}{cmm} {m}{it}
\SetSymbolFont{operators}{bold}{OT1}{cmr} {bx}{n}
\SetSymbolFont{letters} {bold}{OML}{cmm} {b}{it}
\SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n}
%    \end{macrocode}
%\changes{v0.6}{2014/01/16}{修正ttfamily为宋体，而不是默认的仿宋。}
%修正ttfamily为宋体，而不是默认的仿宋。
%    \begin{macrocode}
\renewcommand{\ttfamily}{\CTEX@save@ttfamily \CJKfamily {\CTEX@rm@family }}
%    \end{macrocode}
%调用etoolbox宏包，为了使用其提供的|\ifblank|命令。
%    \begin{macrocode}
\RequirePackage{etoolbox}[2011/01/03]
%    \end{macrocode}
%
%调用ifthen宏包，为了使用其提供的|\ifthenelse|命令。
%    \begin{macrocode}
\RequirePackage{ifthen}
%    \end{macrocode}
% \subsection{学位选项}
%设置有关学士学位论文的选项值。变量的命名方式采用：|%\<name>@degree|，其中|<name>|
%是可变的变量名。此形式用于在其他排版设置中取代原有的常量值。
% \begin{macro}{\bachelor@uestcthesis}
%本科学位论文相关设置：
%    \begin{macrocode}
\newcommand{\bachelor@uestcthesis}{
\newcommand{\degree@uestcthesis}{bachelor}
\newcommand{\multibibflag@uestcthesis}{}
%设置不使用multibib宏包

\newcommand{\thesisname@degree}{电子科技大学学士学位论文}
%论文全名

\newcommand{\chapternumberformat@uestcthesis}{\arabic{chapter}}
%为了根据学位不同而设置不同的章标题序号方式而定义的命令。此处设置为本科论文章标题用阿拉伯数字序号。
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\master@uestcthesis}
%硕士学位论文相关设置：
%    \begin{macrocode}
\newcommand{\master@uestcthesis}{
\newcommand{\degree@uestcthesis}{master}

\newcommand{\multibibflag@uestcthesis}{TRUE}
%设置使用multibib宏包

\newcommand{\thesisname@degree}{电子科技大学硕士学位论文}
%论文全名

\newcommand{\publicationsname@degree}{攻硕期间取得的研究成果}

\newcommand{\@degree}{硕士}
%定义申请学位级别

\newcommand{\publicationsname@english}{Research Results Obtained During the Study for Master Degree}
\newcommand{\thesisname@english}{Master Thesis of University of Electronic Science and Technology of China}

\newcommand{\chapternumberformat@uestcthesis}{\chinese{chapter}}
%为了根据学位不同而设置不同的章标题序号方式而定义的命令。此处设置为本科论文章标题用汉字数字序号。
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\doctor@uestcthesis}
%博士学位论文相关设置：
%    \begin{macrocode}
\newcommand{\doctor@uestcthesis}{
\newcommand{\degree@uestcthesis}{doctor}
\newcommand{\doctortitlepage@uestcthesis}{}%先声明宏，稍后定义。
\newcommand{\titlepage@degree}{\doctortitlepage@uestcthesis}
%定义封面的排版设置

\newcommand{\multibibflag@uestcthesis}{TRUE}
%设置使用multibib宏包

\newcommand{\thesisname@degree}{电子科技大学博士学位论文}
%论文全名

\newcommand{\publicationsname@degree}{攻博期间取得的研究成果}

\newcommand{\@degree}{博士}
%定义申请学位级别

\newcommand{\publicationsname@english}{Research Results Obtained During the Study for Doctor Degree}
\newcommand{\thesisname@english}{Doctor Thesis of University of Electronic Science and Technology of China}

\newcommand{\chapternumberformat@uestcthesis}{\chinese{chapter}}
%为了根据学位不同而设置不同的章标题序号方式而定义的命令。此处设置为本科论文章标题用汉字数字序号。
}
%    \end{macrocode}
% \end{macro}
%\changes{v0.4}{2013/04/04}{添加english选项以便将预定名修改为英文}
%\changes{v0.4.4}{2013/05/25}{由于2013年本科管理规范中未将章标题改为和硕博一致的汉字序号，所以在此将本科论文中的章标题单独改为阿拉伯数字序号。}
%一些名称的定义统一在这里，以便在英文选项中替换成英文。同时还有设置章标题序号的显示方式。
%    \begin{macrocode}
\newcommand{\tocname@uestcthesis}{目录}
\newcommand{\contentsname@uestcthesis}{目\enspace 录}
\newcommand{\chaptername@uestcthesis}{
\CTEXsetup[ name={第,章},
            number={\chapternumberformat@uestcthesis}
            ]{chapter}
            }
\newcommand{\chaptermarkfix@uestcthesis}{
\renewcommand{\chaptermark}[1]{\markboth{第\chapternumberformat@uestcthesis章~##1 }{}}
}
\newcommand{\acknowledgementsname@uestcthesis}{致\enspace 谢}
\newcommand{\glossaryname@uestcthesis}{主要符号表}
\newcommand{\acronymname@uestcthesis}{缩略词表}
\newcommand{\entryname@uestcthesis}{符号}
\newcommand{\descriptionname@uestcthesis}{说明}
\newcommand{\pagelistname@uestcthesis}{页码}
\newcommand{\acronymheader@uestcthesis}{缩略词}
\newcommand{\acronymfull@uestcthesis}{英文全称}
\newcommand{\acronymtranslation@uestcthesis}{中文全称}
\renewcommand{\listfigurename}{图目录}
\renewcommand{\listtablename}{表目录}
%    \end{macrocode}
% \begin{macro}{\english@uestcthesis}
%英文选项相关设置：
%    \begin{macrocode}
\newcommand{\english@uestcthesis}{
\renewcommand{\tocname@uestcthesis}{Contents}
\renewcommand{\contentsname@uestcthesis}{{\bf Contents}}
\renewcommand{\chaptername@uestcthesis}{
\CTEXsetup[ name={Chapter\space,},
            number={\arabic{chapter}}
            ]{chapter}
            }
\renewcommand{\chaptermarkfix@uestcthesis}{}
\renewcommand{\chaptermark}[1]{\markboth{Chapter\space\arabic{chapter}~##1 }{}}

\renewcommand{\acknowledgementsname@uestcthesis}{Acknowledgements}
\renewcommand{\CTEX@bibname}{References}
\renewcommand{\publicationsname@degree}{\publicationsname@english}
\renewcommand{\thesisname@degree}{\thesisname@english}
\renewcommand{\CTEX@figurename}{Figure}
\renewcommand{\CTEX@tablename}{Table}
\renewcommand{\glossaryname@uestcthesis}{Glossary}
\renewcommand{\acronymname@uestcthesis}{Acronyms}
\renewcommand{\entryname@uestcthesis}{Notation}
\renewcommand{\descriptionname@uestcthesis}{Description}
\renewcommand{\pagelistname@uestcthesis}{Page List}
\renewcommand{\acronymheader@uestcthesis}{Acronym}
\renewcommand{\acronymfull@uestcthesis}{Full Name}
\renewcommand{\acronymtranslation@uestcthesis}{Chinese}
\renewcommand{\CTEX@appendixname}{Appendix~}
\renewcommand{\listfigurename}{List of Figures}
\renewcommand{\listtablename}{List of Tables}
\renewcommand{\CTEX@contentsname}{\zihao{-3}Contents}
}
%    \end{macrocode}
% \end{macro}
% 声明7个选项分别代表7种论文类型，会有不同的封面或扉页。由于其中的定义包含中文，所以声明必须放在ctexbook文类后面。
% \changes{v0.6.4}{2014/02/25}{新增3个选项。用以支持新增的3种中文扉页。}
% \changes{v1.0.2}{2015/02/01}{删除封面，因而删去决定中文扉页的各种学位选项。}
% bachelor代表学士学位；master代表硕士学位；doctor代表博士学位；
% english选项表示替换所有预定名为英文。
%    \begin{macrocode}
\DeclareOption{bachelor}{\bachelor@uestcthesis}
\DeclareOption{master}{\master@uestcthesis}
\DeclareOption{doctor}{\doctor@uestcthesis}
\DeclareOption{english}{\english@uestcthesis}
%    \end{macrocode}
% \changes{v0.6.4}{2014/02/25}{新增2个选项withoutforepages和onlychapters。}
% \changes{v1.0.2}{2015/02/01}{删除withoutforepages选项。在onlychapters选项中去除学校信息}
% 设置一个选项。启用后只编译正文部分。
%    \begin{macrocode}
\DeclareOption{onlychapters}{
\newcommand{\onlychapters@uestcthesis}{}
}
%    \end{macrocode}
% \changes{v0.6}{2014/01/11}{添加个人简历的选项：cv}
% 添加一个cv选项。启用后用contents目录中的cv.tex（人简历及攻读硕士学位期间取得的研究成果）
% 代替publications.bib（攻博/硕期间发表的论文）显示在论文的最后。
%    \begin{macrocode}
\DeclareOption{cv}{
\newcommand{\usecv@uestcthesis}{\input{contents/cv.tex}}
}
%    \end{macrocode}
% 声明选项用以决定是否添加图表目录。
% \changes{v0.6}{2014/01/11}{添加图表目录的选项：listoffigures和listoftables}
% 在Document环境开始处重新定义|\Hy@org@chapter|命令。这个命令中包含控制图表目录中按章插入空白的命令。
% 此处将原有的空白注释掉，按需要可取消注释。
%    \begin{macrocode}
\AtBeginDocument{\def\Hy@org@chapter [#1]#2{\ifnum \c@secnumdepth >\m@ne \if@mainmatter \refstepcounter {chapter}\typeout {\CTEXthechapter }\addcontentsline {toc}{chapter} {\protect \numberline {\CTEXthechapter \hspace {0.3em}}#1}\else \addcontentsline {toc}{chapter}{#1}\fi \else \addcontentsline {toc}{chapter}{#1}\fi \chaptermark {#1}%
 %\addtocontents {lof}{\protect \addvspace {10\p@ }}\addtocontents {lot}{\protect \addvspace {10\p@ }}%
\if@twocolumn \@topnewpage [\@makechapterhead {#2}]\else \@makechapterhead {#2}\@afterheading \fi }}
%    \end{macrocode}
% 定义插入图表目录的命令，用于在自动插入必选结构处调用。
%    \begin{macrocode}
\newcommand{\insertlof}{}
\newcommand{\insertlot}{}
\DeclareOption{listoffigures}{\renewcommand{\insertlof}{%
\clearpage{\pagestyle{empty}\cleardoublepage}
\figureslistmatter
%默认的图表目录中不显示“图”或“表”字，只有1-1等标号，故重定义以下命令。下方表目录同此。
\def\l@figure##1##2{\ifnum 0>\c@tocdepth \else \vskip \z@ \@plus .2\p@ {\leftskip
0em\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent 0em\relax
\@afterindenttrue \interlinepenalty \@M \leavevmode \@tempdima 1em\relax \advance
\leftskip \@tempdima \null \nobreak \hskip -\leftskip {\CTEX@figurename~##1}\nobreak \leaders
\hbox {$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill \nobreak
\hb@xt@ \@pnumwidth {\hfil \normalfont \normalcolor ##2}\par }\fi}
\listoffigures
}}

\DeclareOption{listoftables}{\renewcommand{\insertlot}{%
\clearpage{\pagestyle{empty}\cleardoublepage}
\tableslistmatter
\def\l@table##1##2{\ifnum 0>\c@tocdepth \else \vskip \z@ \@plus .2\p@ {\leftskip
0em\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent 0em\relax
\@afterindenttrue \interlinepenalty \@M \leavevmode \@tempdima 1em\relax \advance
\leftskip \@tempdima \null \nobreak \hskip -\leftskip {\CTEX@tablename~##1}\nobreak \leaders
\hbox {$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill \nobreak
\hb@xt@ \@pnumwidth {\hfil \normalfont \normalcolor ##2}\par }\fi}
\listoftables
}}
\ProcessOptions\relax
%    \end{macrocode}
% \subsection{版面设置}
%调用版面设置宏包geometry。这些选项的值是参照MS WORD打印出来的PDF文件对比得到的。
%选项说明：\\
%a4paper:设置版面纸张为A4纸。\\
%headheight:设置页眉高度。\\
%headsep:页眉与版心的距离。\\
%includeheadfoot:将页眉页脚高度算进版心中。\\
%centering:设置版心居中。\\
%top:页面顶边与版心之间的距离。\\
%left:双页排版的内侧边距。
%
% \changes{v0.5.2}{2013/08/07}{针对本科规范还没有修订，单独设置硕博的新规范要求的版面设置}
%    \begin{macrocode}
\ifdefstring{\degree@uestcthesis}{bachelor}{
\RequirePackage[a4paper,headheight=12.65pt,headsep=4mm,includeheadfoot,centering,
                top=2.75cm,left=3cm]{geometry}
}{
\RequirePackage[a4paper,headheight=12.65pt,headsep=4mm,includeheadfoot,centering,
                top=2.08cm,left=3cm]{geometry}
}
%    \end{macrocode}
%
%按照学校要求需要设置默认行距为20磅。参数是倍数值，没有单位。这个值是通过
%|\showthe\baselineskip|命令查看当前的行距，然后计算得到的。
%\changes{v0.4.4}{2013/05/25}{修正可能会出现的超大段距问题，这是由于默认设置要求每页底部文字对齐，所以拉抻所有弹性间距。现取消这个设置，并加大一个不太明显的弹性段距。}
%    \begin{macrocode}
\linespread{1.391}
%    \end{macrocode}
%设置不要求每页底部文字对齐，并设置一个管理规范中没有的弹性额外段距。这使得换页位置会更美观，而段距不明显。段距为最大10磅，仅为行距一半，最小可以压缩1磅。
%    \begin{macrocode}
\parskip=0bp plus 10bp minus 1bp
\raggedbottom
%    \end{macrocode}
% \subsection{图表设置}
%\changes{v1.1.0}{2015/02/13}{为所有图表命令新增一个带B的版本，都在标题参数前加一个参数：图表目录标题。}
%调用宏包：
%graphicx插图宏包\\
%calc计算宏包，用于在插图等尺寸指定时可以指定用四则运算表示尺寸。
%例如|0.6\textwidth|表示0.6倍的行宽。\\
%float宏包，为浮动环境增加一个H选项，命令系统就地放置浮动体。但这个选项必须单独
%使用，例如|\begin{figure}[H]|。 如果中括号内有其他选项，则H会失去强制作用。\\
%texnames宏包提供了|\LaTeX|等\TeX 专有Logo打印命令。这个宏包可能只在编写说明文档
%时有用，在编写毕业设计论文时应该不会用到。
%
%    \begin{macrocode}
\RequirePackage{graphicx,calc,float,texnames}
%    \end{macrocode}
%
%调用图表标题宏包caption。选项说明：\\
%format=hang:将标题从第二行起悬挂缩进排版，缩进宽度等于标题标志加分隔符的宽度。\\
%labelsep=space:分隔符样式为一个空格。
%
%    \begin{macrocode}
\RequirePackage[format=hang,labelsep=space]{caption}
%    \end{macrocode}
%
%设置浮动体在文本中间的前后间距为6磅，按照硕博标准标题前后其余的6磅另行设置。
%
%    \begin{macrocode}
\intextsep=6bp
%    \end{macrocode}
%
%设置浮动体在页面顶端或底端时与文本之间的距离。
%    \begin{macrocode}
\textfloatsep=6bp
%    \end{macrocode}
%设置浮动体在页面顶端或底端时多个之间的距离。
%    \begin{macrocode}
\floatsep=6bp
%    \end{macrocode}
%
%分别设置表和图的标题与正文的距离。\\
%aboveskip:标题与图表之间的距离。\\
%belowskip:标题与下文之间的距离。\\
%图的前后距离都设置为0是因为有子图标题可能在图题之后，故而不在此设置。
% \changes{v0.5.2}{2013/08/07}{根据新的硕博规范单独设置硕博论文的图表标题前后段距}
%    \begin{macrocode}
\captionsetup[figure]{aboveskip=0bp,belowskip=0bp}
\captionsetup[table]{aboveskip=0bp,belowskip=6bp}
%    \end{macrocode}
%
%调用宏包：\\
%booktabs表格线宏包。用于绘制三线表。\\
%tabularx可调列宽表格宏包。可自动换行。\\
%threeparttable可加脚注的表格宏包。\\
%longtable跨页表格宏包。
%    \begin{macrocode}
\RequirePackage{booktabs,tabularx,threeparttable,longtable}
%    \end{macrocode}
%
%先声明一个图表标题字体。
%    \begin{macrocode}
\DeclareCaptionFont{capfont}{\zihao{5}}
%    \end{macrocode}
%
%再设置图表标题字体为上一行声明的。
%    \begin{macrocode}
\captionsetup{font=capfont}
%    \end{macrocode}
%
%使图编号数字间加一个短横线。即设置成图1-1的样式。
%    \begin{macrocode}
\renewcommand{\thefigure}{\arabic{chapter}\textendash\arabic{figure}}
%    \end{macrocode}
%
%使表编号数字间加一个短横线。即设置成表1-1的样式。
%    \begin{macrocode}
\renewcommand{\thetable}{\arabic{chapter}\textendash\arabic{table}}
%    \end{macrocode}
%
%设置图片的根目录。
%    \begin{macrocode}
\graphicspath{{pics/}}
%    \end{macrocode}
%
%调用宏包placeins。允许上一个section的浮动图形出现在下一个section的开始部分，还提供|\FloatBarrier|命令，使所有未处理的浮动图形立即被处理。
%    \begin{macrocode}
\RequirePackage[below]{placeins}
%    \end{macrocode}
%
%调用宏包flafter。使得所有浮动体不能被放置在其浮动环境之前，以免浮动体在引述它的文本之前出现.
%    \begin{macrocode}
\RequirePackage{flafter}
%    \end{macrocode}
% \begin{macro}{\newcmds@uestcthesis}
%定义一些插入图表的包装命令
%    \begin{macrocode}
\newcommand{\newcmds@uestcthesis}{
%    \end{macrocode}
% \begin{macro}{\pic}
%|\pic|命令生成一个独占一行、居中的图片。标题前后间距符合科大毕设标准
%    \begin{macrocode}
\newcommand{\pic}[4][htbp]{
\begin{figure}[##1]%
\centering%
  \includegraphics[##3]{##4}%
  \caption{##2}%
  \label{##4}%
  \vspace{6bp}%
\end{figure}%
}
%    \end{macrocode}
%|\picB|命令同|\pic|命令功能，但多一个图目录标题参数。
%    \begin{macrocode}
\newcommand{\picB}[5][htbp]{
\begin{figure}[##1]%
\centering%
  \includegraphics[##4]{##5}%
  \caption[##2]{##3}%
  \label{##5}%
  \vspace{6bp}%
\end{figure}%
}
%    \end{macrocode}
% \end{macro}
% \subsubsection{子图环境设置}
%\changes{v0.5.0}{2013/08/01}{改变子图的标题位置，使之符合学校标准}
%由于子图中包含了中文，所以使用|\edef|等嵌套定义方式不能使用。故而定义了20个子图
%名宏。
% \begin{macro}{\clearallsubfigcaptions}
% 既做初始化又做清空使用。
%    \begin{macrocode}
\newcommand{\clearallsubfigcaptions}{
\gdef\subfigcaptionA{}\gdef\subfigcaptionB{}\gdef\subfigcaptionC{}%
\gdef\subfigcaptionD{}\gdef\subfigcaptionE{}\gdef\subfigcaptionF{}%
\gdef\subfigcaptionG{}\gdef\subfigcaptionH{}\gdef\subfigcaptionI{}%
\gdef\subfigcaptionJ{}\gdef\subfigcaptionK{}\gdef\subfigcaptionL{}%
\gdef\subfigcaptionM{}\gdef\subfigcaptionN{}\gdef\subfigcaptionO{}%
\gdef\subfigcaptionP{}\gdef\subfigcaptionQ{}\gdef\subfigcaptionR{}%
\gdef\subfigcaptionS{}\gdef\subfigcaptionT{}%
}
\clearallsubfigcaptions
%    \end{macrocode}
% \end{macro}
%重定义|\@makesubfigurecaption|命令，将传入|\@makesubfigurecaption|命令中的子图
%标题存入前面自定义的20个子图标题宏中，而不直接打印在原来的位置。
%\changes{v0.6.5}{2014/03/01}{修复BUG：子图有不居中的情况。}
%    \begin{macrocode}
\def\@makesubfigurecaption ##1##2{\setbox \@tempboxa \hbox {\subcapsize {
\subcaplabelfont ##1}{\subcapfont \ignorespaces }}\@tempdimb =-\subfigcapmargin
\multiply \@tempdimb \tw@ \advance \@tempdimb \@tempdima \hbox to\@tempdima
{\hss \ifdim \wd \@tempboxa >\@tempdimb \subfig@caption {##1}{}\else
\ifsubcapnooneline \subfig@caption {##1}{}\else \box \@tempboxa \fi \fi \hss }
\ifthenelse{\equal{\subfigcaptionA}{}}{\gdef\subfigcaptionA{{(a)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionB}{}}{\gdef\subfigcaptionB{；{(b)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionC}{}}{\gdef\subfigcaptionC{；{(c)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionD}{}}{\gdef\subfigcaptionD{；{(d)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionE}{}}{\gdef\subfigcaptionE{；{(e)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionF}{}}{\gdef\subfigcaptionF{；{(f)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionG}{}}{\gdef\subfigcaptionG{；{(g)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionH}{}}{\gdef\subfigcaptionH{；{(h)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionI}{}}{\gdef\subfigcaptionI{；{(i)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionJ}{}}{\gdef\subfigcaptionJ{；{(j)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionK}{}}{\gdef\subfigcaptionK{；{(k)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionL}{}}{\gdef\subfigcaptionL{；{(l)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionM}{}}{\gdef\subfigcaptionM{；{(m)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionN}{}}{\gdef\subfigcaptionN{；{(n)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionO}{}}{\gdef\subfigcaptionO{；{(o)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionP}{}}{\gdef\subfigcaptionP{；{(p)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionQ}{}}{\gdef\subfigcaptionQ{；{(q)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionR}{}}{\gdef\subfigcaptionR{；{(r)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionS}{}}{\gdef\subfigcaptionS{；{(s)}{\ignorespaces ##2}}}
{\ifthenelse{\equal{\subfigcaptionT}{}}{\gdef\subfigcaptionT{；{(t)}{\ignorespaces ##2}}}
{\gdef\subfigcaptionA{子图不能超过20个！！！}}}}}}}}}}}}}}}}}}}}}}
%    \end{macrocode}
% \begin{macro}{\allsubpiccaptions}
% 该命令只是连续打印所有的子图名。
%    \begin{macrocode}
\newcommand{\allsubpiccaptions}{%
\subfigcaptionA\subfigcaptionB\subfigcaptionC\subfigcaptionD\subfigcaptionE%
\subfigcaptionF\subfigcaptionG\subfigcaptionH\subfigcaptionI\subfigcaptionJ%
\subfigcaptionK\subfigcaptionL\subfigcaptionM\subfigcaptionN\subfigcaptionO%
\subfigcaptionP\subfigcaptionQ\subfigcaptionR\subfigcaptionS\subfigcaptionT}
%    \end{macrocode}
% \end{macro}
% 定义6个变量，分别是：多图环境整体的标签变量、多图环境整体的标题变量、
% 临时存储子图标题的盒子（用于测量子图标题长度）、子图标题缩进量、子图标题序号
% 缩进量（就是序号的宽度）、子图标题宽度。
%    \begin{macrocode}
\newcommand{\subpiclabel}{}
\newcommand{\subpiccaption}{}
\newsavebox{\tempsubpiccaptionbox}
\newlength{\tempsubpiccaptionindent}
\newlength{\tempsubpiccaptionheadindent}
\newlength{\tempsubpiccaptionwidth}
%    \end{macrocode}
% \begin{environment}{pics}%
%定义子图环境和插入子图命令
%    \begin{macrocode}
\newenvironment{pics}[3][htbp]{%定义多图环境
\renewcommand{\subpiclabel}{##3}%设置多图环境整体的标签
\renewcommand{\subpiccaption}{##2}%设置多图环境整体的标题。这里先定义两个空变量，又设置值，是因为在定义一个环境时，环境结尾中不能调用##2，##3等传入的值。所以要在环境结尾中插入标题和标签就只能这么做了。
\begin{figure}[##1]%
\begin{center}%
}%
{%
\end{center}%
\raggedright%
\sbox{\tempsubpiccaptionbox}{\parbox{\textwidth}%
{\zihao{5}图~\thefigure~\subpiccaption}}%
\settowidth{\tempsubpiccaptionheadindent}{\zihao{5}图~\thefigure~}%
%    \end{macrocode}
%这里用一个判断语句来根据主图题是否超过一行而分别处理。按照规范，不超过一行才居中，
%超过一行则左对齐。
%\changes{v0.5.5}{2013/11/26}{修复BUG：无法引用子图的总标签问题。}
%\changes{v0.6.5}{2014/03/01}{修复BUG：当子图环境整体标题和子图标题都超过一行时，子图标题没有悬挂缩进的问题。}
%\changes{v0.6.9}{2014/03/08}{修复BUG：当子图环境整体标题中存在下标时错误判断为标题超出一行。}
%    \begin{macrocode}
\ifthenelse{\lengthtest{\ht\tempsubpiccaptionbox > 16pt}}{%THEN
\noindent\caption{\subpiccaption}\label{\subpiclabel}\par%
\noindent\hspace*{\tempsubpiccaptionheadindent}%
\parbox{\textwidth-\tempsubpiccaptionheadindent}{\zihao{5}\allsubpiccaptions}%
}{%ELSE
{\centering\caption{\subpiccaption}\label{\subpiclabel}}\par
\sbox{\tempsubpiccaptionbox}{\zihao{5}\CTEX@figurename~\thefigure~\subpiccaption}%
\setlength{\tempsubpiccaptionindent}{\textwidth}%
\addtolength{\tempsubpiccaptionindent}{-\wd\tempsubpiccaptionbox}%
\setlength{\tempsubpiccaptionindent}{.5\tempsubpiccaptionindent}%
\setlength{\tempsubpiccaptionwidth}{\textwidth}%
\addtolength{\tempsubpiccaptionwidth}{-\tempsubpiccaptionindent}%
\addtolength{\tempsubpiccaptionwidth}{-\tempsubpiccaptionheadindent}%
\hspace*{\tempsubpiccaptionindent}\hspace*{\tempsubpiccaptionheadindent}%
\parbox{\tempsubpiccaptionwidth}{\zihao{5}\allsubpiccaptions}%
}%
\vspace{6bp}%
\end{figure}%
\clearallsubfigcaptions%
}
%    \end{macrocode}
% \end{environment}
% \begin{environment}{picsB}%
%定义picsB环境，功能同pics环境。但主标题前多一个图目录标题参数。
%    \begin{macrocode}
\newcommand{\subpiclofcaption}{}%定义图目录中的整体标题。
\newenvironment{picsB}[4][htbp]{%定义多图环境
\renewcommand{\subpiclabel}{##4}%设置多图环境整体的标签
\renewcommand{\subpiccaption}{##3}%设置多图环境整体的标题。这里先定义两个空变量，又设置值，是因为在定义一个环境时，环境结尾中不能调用##2，##3等传入的值。所以要在环境结尾中插入标题和标签就只能这么做了。
\renewcommand{\subpiclofcaption}{##2}%
\begin{figure}[##1]%
\begin{center}%
}%
{%
\end{center}%
\raggedright%
\sbox{\tempsubpiccaptionbox}{\parbox{\textwidth}%
{\zihao{5}图~\thefigure~\subpiccaption}}%
\settowidth{\tempsubpiccaptionheadindent}{\zihao{5}图~\thefigure~}%
%    \end{macrocode}
%这里用一个判断语句来根据主图题是否超过一行而分别处理。按照规范，不超过一行才居中，
%超过一行则左对齐。
%\changes{v0.5.5}{2013/11/26}{修复BUG：无法引用子图的总标签问题。}
%\changes{v0.6.5}{2014/03/01}{修复BUG：当子图环境整体标题和子图标题都超过一行时，子图标题没有悬挂缩进的问题。}
%\changes{v0.6.9}{2014/03/08}{修复BUG：当子图环境整体标题中存在下标时错误判断为标题超出一行。}
%    \begin{macrocode}
\ifthenelse{\lengthtest{\ht\tempsubpiccaptionbox > 16pt}}{%THEN
\noindent\caption[\subpiclofcaption]{\subpiccaption}\label{\subpiclabel}\par%
\noindent\hspace*{\tempsubpiccaptionheadindent}%
\parbox{\textwidth-\tempsubpiccaptionheadindent}{\zihao{5}\allsubpiccaptions}%
}{%ELSE
{\centering\caption[\subpiclofcaption]{\subpiccaption}\label{\subpiclabel}}\par
\sbox{\tempsubpiccaptionbox}{\zihao{5}\CTEX@figurename~\thefigure~\subpiccaption}%
\setlength{\tempsubpiccaptionindent}{\textwidth}%
\addtolength{\tempsubpiccaptionindent}{-\wd\tempsubpiccaptionbox}%
\setlength{\tempsubpiccaptionindent}{.5\tempsubpiccaptionindent}%
\setlength{\tempsubpiccaptionwidth}{\textwidth}%
\addtolength{\tempsubpiccaptionwidth}{-\tempsubpiccaptionindent}%
\addtolength{\tempsubpiccaptionwidth}{-\tempsubpiccaptionheadindent}%
\hspace*{\tempsubpiccaptionindent}\hspace*{\tempsubpiccaptionheadindent}%
\parbox{\tempsubpiccaptionwidth}{\zihao{5}\allsubpiccaptions}%
}%
\vspace{6bp}%
\end{figure}%
\clearallsubfigcaptions%
}
%    \end{macrocode}
% \end{environment}
% \begin{macro}{\addsubpic}
%定义插入子图命令
%    \begin{macrocode}
\newcommand{\addsubpic}[3]{
 \subfigure[##1]{\label{##3}\includegraphics[##2]{##3}}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\addsubpic}
% \changes{v1.1.0}{2015/02/04}{新增子图组分页命令。}
% 定义子图组分页命令。在pics环境中使用此命令，并将pics环境位置参数设置为b。
%    \begin{macrocode}
\newcommand{\subpicnewpage}{%
\end{center}%
\end{figure}%
\addtocounter{figure}{-1}%
\begin{figure}[t]%
\addtocounter{figure}{1}%
\begin{center}%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\threelinetable}
%|\threelinetable|命令生成一个独占一行、居中的三线表格。标题前后间距符合科大毕设标准。
%\changes{v0.4.4}{2013/05/24}{修正表格字号为五号字。}
%    \begin{macrocode}
\newcommand{\threelinetable}[8][htbp]{
\begin{table}[##1]
\zihao{5}%管理规范中要求表格中文字为五号字。
\centering
\begin{threeparttable}
\caption{##5}
\label{##2}
\begin{tabularx}{##3}{##4}
\toprule[0.1em]
##6
\midrule[0.05em]
##7
\bottomrule[0.1em]
\end{tabularx}
\ifblank{##8}{}{
\begin{tablenotes}
##8
\end{tablenotes}
}
\end{threeparttable}
\end{table}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\threelinetable*}
%|\threelinetableB|命令比|\threelinetable|在标题参数前多一个参数：表目录标题。
%    \begin{macrocode}
\newcommand{\threelinetableB}[9][htbp]{
\begin{table}[##1]
\zihao{5}%管理规范中要求表格中文字为五号字。
\centering
\begin{threeparttable}
\caption[##5]{##6}
\label{##2}
\begin{tabularx}{##3}{##4}
\toprule[0.1em]
##7
\midrule[0.05em]
##8
\bottomrule[0.1em]
\end{tabularx}
\ifblank{##9}{}{
\begin{tablenotes}
##9
\end{tablenotes}
}
\end{threeparttable}
\end{table}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\longthreelinetable}
%|\longthreelinetable|命令生成一个居中的、可自动换页的三线表格。标题前后间距符合科大毕设标准。
%    \begin{macrocode}
\newcommand{\longthreelinetable}[6]{
{
\zihao{5}%管理规范中要求表格中文字为五号字。
\centering
\begin{longtable}{##4}
\caption{##2}\label{##1}\\
\toprule[0.1em]
##5
\midrule[0.05em]
\endfirsthead
\multicolumn{##3}{r}{\footnotesize 接上页}\\
\toprule[0.1em]
##5
\midrule[0.05em]
\endhead
\bottomrule[0.1em]
\multicolumn{##3}{r}{\footnotesize 接下页}\\
\endfoot
\bottomrule[0.1em]
\endlastfoot
##6
\end{longtable}
}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\longthreelinetableB}
%|\longthreelinetableB|命令比|\longthreelinetable|在标题参数前多一个参数：表目录标题。
%    \begin{macrocode}
\newcommand{\longthreelinetableB}[7]{
{
\zihao{5}%管理规范中要求表格中文字为五号字。
\centering
\begin{longtable}{##5}
\caption[##2]{##3}\label{##1}\\
\toprule[0.1em]
##6
\midrule[0.05em]
\endfirsthead
\multicolumn{##4}{r}{\footnotesize 接上页}\\
\toprule[0.1em]
##6
\midrule[0.05em]
\endhead
\bottomrule[0.1em]
\multicolumn{##4}{r}{\footnotesize 接下页}\\
\endfoot
\bottomrule[0.1em]
\endlastfoot
##7
\end{longtable}
}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\pictable}
%插入图片形式的表格
%    \begin{macrocode}
\newcommand{\pictable}[4][htbp]{
\begin{table}[##1]
\centering
\caption{##2}
\label{##4}
\includegraphics[##3]{##4}
\end{table}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\pictableB}
%|\pictableB|命令比|\pictable|命令在标题参数前多一个参数：图目录标题。
%    \begin{macrocode}
\newcommand{\pictableB}[5][htbp]{
\begin{table}[##1]
\centering
\caption[##2]{##3}
\label{##5}
\includegraphics[##4]{##5}
\end{table}
}
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
}%\newcmds@uestcthesis定义完毕
%    \end{macrocode}
% \end{macro}
% \subsection{页眉页脚设置}
% \changes{v0.4.6}{2013/06/02}{修正bug：页脚字号改为小五}
% \changes{v0.6.7}{2014/03/04}{修正bug：缩略词表和主要符号表各自的第二页页眉不正确的问题。}
% \begin{macro}{\mainmatterfancy}
%定义正文版式设置
%    \begin{macrocode}
\newcommand{\mainmatterfancy}{
\fancyhf{}
\fancyhead[OC]{\zihao{5}\leftmark}%奇数页居中打印章标题
\ifdef{\onlychapters@uestcthesis}{}{%onlychapters选项效果，在pdf元信息中去除学校信息。
\fancyhead[EC]{\zihao{5}\thesisname@degree}%偶数页居中打印论文全名
}%onlychapters选项效果END
\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端，居中打印。
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\Cabstractfancy}
%定义中文摘要版式设置
%    \begin{macrocode}
\newcommand{\Cabstractfancy}{%
\fancyhf{}%
\fancyhead[C]{\zihao{5}摘要}%页眉居中打印“摘要”
\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端，居中打印。
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\Eabstractfancy}
%定义英文摘要版式设置
%    \begin{macrocode}
\newcommand{\Eabstractfancy}{
\fancyhf{}%
\fancyhead[C]{\zihao{5}ABSTRACT}%页眉居中打印“ABSTRACT”
\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端，居中打印。
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\tocmatterfancy}
%定义目录区版式设置
%    \begin{macrocode}
\newcommand{\tocmatterfancy}{
\fancyhf{}
\fancyhead[C]{\zihao{5}\tocname@uestcthesis}%页眉居中打印“目　录”
\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端，居中打印。
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\glossarymatterfancy}
%定义主要符号表版式设置
%    \begin{macrocode}
\newcommand{\glossarymatterfancy}{%定义主要符号表版式设置
\fancyhf{}
\fancyhead[C]{\zihao{5}\glossaryname@uestcthesis}%
\fancyfoot[C]{\zihao{-5}\thepage}%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\acronymnamematterfancy}
%定义缩略词表版式设置
%    \begin{macrocode}
\newcommand{\acronymnamematterfancy}{%定义缩略词表版式设置
\fancyhf{}
\fancyhead[C]{\zihao{5}\acronymname@uestcthesis}%
\fancyfoot[C]{\zihao{-5}\thepage}%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\Cabstractmatter}
%设置中文摘要版式
%    \begin{macrocode}
\newcommand{\Cabstractmatter}{
\setcounter{page}{1}%页码重置为1
\pagenumbering{Roman}%页码使用大写罗马数字
\pagestyle{fancy}
\Cabstractfancy
\fancypagestyle{plain}{\Cabstractfancy}
%中文摘要页也是章标题页面，也使用plain版式。所以单独重新定义。这个定义会在英文摘要版式设置中被覆盖掉。
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\Eabstractmatter}
%设置英文摘要版式。英文摘要页也是章标题页面，也使用plain版式。所以单独重新定义。这个定义会在目录版式设置中被覆盖掉。
%    \begin{macrocode}
\newcommand{\Eabstractmatter}{
\pagestyle{fancy}
\Eabstractfancy
\fancypagestyle{plain}{\Eabstractfancy}
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\tocmatter}
%定义目录版式
%    \begin{macrocode}
\newcommand{\tocmatter}{
\pagestyle{fancy}
\tocmatterfancy
%使章标题页页眉页脚与其他页一致
\fancypagestyle{plain}{\tocmatterfancy}
%目录页也是章标题页面，也使用plain版式。但目录的右页和摘要或正文的其他章标题页不一样，所以单独重新定义。这个定义会在正文区命令中被覆盖掉。
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\mainmatter}
%重定义正文区版式
%    \begin{macrocode}
\renewcommand{\mainmatter}{
\newpage
\setcounter{page}{1}
\pagenumbering{arabic}
\pagestyle{fancy}
\chaptermarkfix@uestcthesis %修正页眉章号显示不正确
\mainmatterfancy%设置正文的版式
\fancypagestyle{plain}{\mainmatterfancy}
%使章标题页使用plain版式，需要单独定义它。使它的页眉页脚与其他页一致。
}
%    \end{macrocode}
%定义图目录表目录版式
%    \begin{macrocode}
\newcommand{\figureslistmatterfancy}{
\fancyhf{}
\fancyhead[C]{\listfigurename}%
\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端，居中打印。
}
\newcommand{\tableslistmatterfancy}{
\fancyhf{}
\fancyhead[C]{\listtablename}
\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端，居中打印。
}
\newcommand{\figureslistmatter}{
\pagestyle{fancy}
\figureslistmatterfancy
\fancypagestyle{plain}{\figureslistmatterfancy}
}
\newcommand{\tableslistmatter}{
\pagestyle{fancy}
\tableslistmatterfancy
\fancypagestyle{plain}{\tableslistmatterfancy}
}
\newcommand{\glossarymatter}{
\pagestyle{fancy}
\glossarymatterfancy
\fancypagestyle{plain}{\glossarymatterfancy}
}
\newcommand{\acronymnamematter}{
\pagestyle{fancy}
\acronymnamematterfancy
\fancypagestyle{plain}{\acronymnamematterfancy}
}
%    \end{macrocode}
% \end{macro}
% \changes{v1.0.2}{2015/02/01}{从模板中删除封面和LOGO。}
% \changes{v0.4.1}{2013/05/04}{将学校的LOGO集成在cls文件里。}
% \changes{v0.5.6}{2013/12/25}{按照学校识别视觉系统修正了LOGO的颜色。}
% \changes{v0.4.2}{2013/05/14}{针对默认编译器不能使用write18命令的情况，在不能正常显示logo时显示一段说明文字。}
% \changes{v0.6.4}{2014/02/25}{用withoutforepages选项控制是否编译LOGO}
% \changes{v1.0.2}{2015/02/01}{删除封面}
% \changes{v0.6.4}{2014/02/25}{将封面、中文扉页、英文扉页都独立出来。}
% \changes{v0.6.3}{2014/02/24}{修订硕博封面第2页，使之和学校范例尽量一样。}
% \subsection{各级标题设置}
%设置标题排序深度到3级节标题subsubsection，例如1.1.1.1
%    \begin{macrocode}
\setcounter{secnumdepth}{3}
%    \end{macrocode}
% \changes{v0.5.2}{2013/08/07}{由于本科论文规范还未修改，单独设置硕博标题前后段距。}
%设置章标题格式。弹性长度的距离为行距的20\%。排版规则中说明可以适当调整各级标题段后间距。
%    \begin{macrocode}
\chaptername@uestcthesis
\ifdefstring{\degree@uestcthesis}{bachelor}{
\CTEXsetup[ nameformat={},
            numberformat={},
            titleformat={},
            aftername={~},
            beforeskip={2mm},%章标题段前30磅，这里2mm是由于实际效果与MS WORD有差异而微调出的。具体测量的是页眉线到章标题文字上边的距离。
            afterskip={30bp plus 6bp minus 6bp},%章标题段后30磅。
            format={\heiti\zihao{-3}\centering},
            ]{chapter}
}{
\CTEXsetup[ nameformat={},
            numberformat={},
            titleformat={},
            aftername={~},
            beforeskip={1.8mm},%章标题段前30磅，这里2mm是由于实际效果与MS WORD有差异而微调出的。具体测量的是页眉线到章标题文字上边的距离。
            afterskip={18bp plus 3.6bp minus 3.6bp},%章标题段后30磅。
            format={\heiti\zihao{-3}\centering},
            ]{chapter}
}
%    \end{macrocode}
%
%设置1级节标题格式
%    \begin{macrocode}
\ifdefstring{\degree@uestcthesis}{bachelor}{
\CTEXsetup[ aftername={~},
            beforeskip={18bp},
            afterskip={18bp plus 3.6bp minus 3.6bp},
            format={\heiti\zihao{4}\flushleft}]{section}
}{
\CTEXsetup[ aftername={~},
            beforeskip={18bp},
            afterskip={6bp plus 1.2bp minus 1.2bp},
            format={\heiti\zihao{4}\flushleft}]{section}
}
%    \end{macrocode}
%
%设置2级节标题格式
%    \begin{macrocode}
\ifdefstring{\degree@uestcthesis}{bachelor}{
\CTEXsetup[ aftername={~},
            beforeskip={12bp},
            afterskip={12bp plus 2.4bp minus 2.4bp},
            format={\heiti\zihao{4}\flushleft}]{subsection}
}{
\CTEXsetup[ aftername={~},
            beforeskip={12bp},
            afterskip={6bp plus 1.2bp minus 1.2bp},
            format={\heiti\zihao{4}\flushleft}]{subsection}
}
%    \end{macrocode}
%
%设置3级节标题格式
%    \begin{macrocode}
\ifdefstring{\degree@uestcthesis}{bachelor}{
\CTEXsetup[ aftername={~},
            beforeskip={6bp},
            afterskip={6bp plus 1.2bp minus 1.2bp},
            format={\heiti\zihao{-4}\flushleft}]{subsubsection}
}{
\CTEXsetup[ aftername={~},
            beforeskip={12bp},
            afterskip={6bp plus 1.2bp minus 1.2bp},
            format={\heiti\zihao{-4}\flushleft}]{subsubsection}
}
%    \end{macrocode}
% \subsection{摘要设置}
%调用ifthen宏包，可提供|\ifthenelse|判断命令。
% \begin{environment}{Cabstract}
%定义中文摘要环境
%    \begin{macrocode}
\newenvironment{Cabstract}[5]{
%    \end{macrocode}
% \begin{macro}{\@ckeywords}
%定义生成中文关键词的命令。如果关键词少于3个则用“必选关键词”五个字补上，以提示作者关键词不够。同时自动加入正确的中文逗号。
%\changes{v0.4.4}{2013/05/23}{修正bug：\@ckeywords命令和\@ekeywords命令中的每行结束应加一个\%符号，否则直接换行相当于加入了一个不该有的空格。}
%    \begin{macrocode}
\newcommand{\@ckeywords}{
\ifthenelse{\equal{#1}{}}{必选关键词}{#1}%
\ifthenelse{\equal{#2}{}}{必选关键词}{，#2}%
\ifthenelse{\equal{#3}{}}{必选关键词}{，#3}%
\ifthenelse{\equal{#4}{}}{}{，#4}%
\ifthenelse{\equal{#5}{}}{}{，#5}%
}
\ifthenelse{\equal{#5}{}}{
\ifthenelse{\equal{#4}{}}{
\ifthenelse{\equal{#3}{}}{
\def\@pdfckeywords{#1, #2, 关键字应3-5个}
}{\def\@pdfckeywords{#1, #2, #3}}
}{\def\@pdfckeywords{#1, #2, #3, #4}}
}{\def\@pdfckeywords{#1, #2, #3, #4, #5}}
\hypersetup{%
pdfkeywords={\@pdfckeywords}%在pdf元信息中加入关键字
}
%    \end{macrocode}
% \end{macro}
%\changes{v0.5.4}{2013/10/29}{修改中英文摘要标题和关键词的字体，改为加粗形式。并按照范例，在“摘要”二字中间加空格。}
%\changes{v0.6.1}{2014/01/20}{修改中英文关键词换行缩进。}
%    \begin{macrocode}
\chapter*{摘\enspace 要}%插入不带章号的摘要
}
{\\[3mm]%摘要后换行空出3mm
{\textbf{关键词：}}\parbox[t]{378.59134pt}{\@ckeywords}%插入关键词
}
%    \end{macrocode}
% \end{environment}
% \begin{environment}{Eabstract}
%定义英文摘要环境
%    \begin{macrocode}
\newenvironment{Eabstract}[5]{
%    \end{macrocode}
% \begin{macro}{\@ckeywords}
%定义生成英文关键词的命令。如果关键词少于3个则用“必选关键词”五个字补上，以提示作者关键词不够。同时自动加入正确的英文逗号。
%    \begin{macrocode}
\newcommand{\@ekeywords}{
\ifthenelse{\equal{#1}{}}{必选关键词}{#1}%
\ifthenelse{\equal{#2}{}}{必选关键词}{, #2}%
\ifthenelse{\equal{#3}{}}{必选关键词}{, #3}%
\ifthenelse{\equal{#4}{}}{}{, #4}%
\ifthenelse{\equal{#5}{}}{}{, #5}%
}
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\Eabstractmatter%设置英文摘要版式
\chapter*{\bf ABSTRACT}%插入不带章号的ABSTRACT
}
{\\[3mm]%摘要后换行空出3mm
{\bf Keywords:\nbs}\parbox[t]{367.97586pt}{\@ekeywords}%插入关键词
}
%    \end{macrocode}
% \end{environment}
% \subsection{目录设置}
% \changes{v0.4.8}{2013/06/07}{目录字体修改为黑体小三，和章标题字体一致。之前错误的设置是2008年本科规范。}
%设置目录标题
%    \begin{macrocode}
\CTEXoptions[contentsname={\protect\heiti\protect\zihao{-3}\contentsname@uestcthesis}]
%    \end{macrocode}
%
%设置目录的显示深度到3级节标题。
%    \begin{macrocode}
\setcounter{tocdepth}{3}
%    \end{macrocode}
%
%目录中连接页码的点的密度
%    \begin{macrocode}
\def\@dotsep{2}
%    \end{macrocode}
%
%目录中的章标题改为黑体
%    \begin{macrocode}
\def\l@chapter#1#2{\ifnum 0>\c@tocdepth \else \vskip \z@ \@plus .2\p@ {\leftskip
0em\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent 0em\relax
\@afterindenttrue \interlinepenalty \@M \leavevmode \@tempdima 1em\relax \advance
\leftskip \@tempdima \null \nobreak \hskip -\leftskip {\heiti #1}\nobreak \leaders
\hbox {$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill \nobreak
\hb@xt@ \@pnumwidth {\hfil \normalfont \normalcolor #2}\par }\fi}
%    \end{macrocode}
%
%设置四级标题在目录中的左缩进分别为0、2、4、6个英文字符宽。序号到题目间隔1个英文字符宽。
%\changes{v0.4.3}{2013/05/20}{由于我的疏忽，本来应将本科规范改为和硕博一致分别缩进0,2,4,6个全角字符，但2013年的规范中写成了半角字符。这里只好先针对本科论文修改过来。}
%    \begin{macrocode}
\ifdefstring{\degree@uestcthesis}{bachelor}{
\renewcommand*\l@section{\@dottedtocline{1}{1em}{1em}}
\renewcommand*\l@subsection{\@dottedtocline{2}{2em}{1em}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{3em}{1em}}
}{
\renewcommand*\l@section{\@dottedtocline{1}{2em}{1em}}
\renewcommand*\l@subsection{\@dottedtocline{2}{4em}{1em}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{6em}{1em}}
}
%    \end{macrocode}
% \subsection{数学式设置}
%amsmath数学宏包。
% \changes{v0.5.2}{2013/08/07}{去除kmath宏包。}
% \changes{v0.6.7}{2014/03/04}{添加希腊字母等粗体的bm宏包}
%    \begin{macrocode}
\RequirePackage{amsmath,amsfonts,amssymb,bm}
%    \end{macrocode}
%
%使公式编号数字间加一个短横线。例如(1-1)。
%    \begin{macrocode}
\renewcommand{\theequation}{\arabic{chapter}\textendash\arabic{equation}}
%    \end{macrocode}
%
%调用定理设置宏包
%\changes{v0.33}{2013/02/25}{设置定理环境的缩进}
%\changes{v0.4}{2013/04/04}{添加设置各定理环境结束符的语句，但暂时还设置为空。}
%    \begin{macrocode}
\RequirePackage[amsmath,thmmarks]{ntheorem}
\theorembodyfont{\normalfont}%字体
\theoremheaderfont{\normalfont \bfseries \hspace*{2em}}%设置缩进
\theoremseparator{\enskip}%分隔符是一个空格
%    \end{macrocode}
%
%定义四种带标号的定理环境
%    \begin{macrocode}
\theoremsymbol{}%定义环境结束符，下同
\newtheorem{dingyi}{定义}[section]
\def\enddingyi{\quad\@endtheorem}%修正环境中最后一个字符不是英文字符时，不显示结束符的BUG。下同。
\theoremsymbol{}
\newtheorem{gongli}{公理}[section]
\def\endgongli{\quad\@endtheorem}
\theoremsymbol{■}
\newtheorem{dingli}{定理}[section]
\def\enddingli{\quad\@endtheorem}
\theoremsymbol{■}
\newtheorem{yinli}{引理}[section]
\def\endyinli{\quad\@endtheorem}
%    \end{macrocode}
%
%定义一种不带标号的证明环境。
%    \begin{macrocode}
\theoremstyle{nonumberplain}
\theoremsymbol{■}
\newtheorem{zhengming}{证明}
\def\endzhengming{\quad\@endtheorem}
%    \end{macrocode}
% \subsection{参考文献设置}
% 根据是否为研究生学位，选择是否载入multibib宏包。
%    \begin{macrocode}
\RequirePackage[numbers,sort&compress]{natbib}
%参考文献宏包。调用natbib，选项是GBT7714-2005NLang.bst的说明中指定的。
%hypernat宏包已经不用了。

\newcommand{\citeup}[1]{\textsuperscript{\cite{#1}}}
%自定义命令：插入右上角角标形式的参考文献引用。
%    \end{macrocode}
%为了在硕士和博士论文加入攻读期间发表的论文一章，必须使用multibib宏包。
%    \begin{macrocode}
\ifblank{\multibibflag@uestcthesis}{}{
\RequirePackage[resetlabels]{multibib}
\newcites{publications}{NULL}
\bibliographystylepublications{uestcthesis}
\nocitepublications{*}
%    \end{macrocode}
%重定义|\bibliographypublications|，去掉|\bibliographypublications|命令中原有的
%修改章名的设置，因为|\newcites|命令设置章名时不支持中文。这个设置改由
%|\CTEXoptions[ bibname={\publicationsname@degree}]|代替。
%    \begin{macrocode}
\def\bibliographypublications#1{\let \temp@auxout \@auxout \let \addtocontents
\mb@addtocontents \let \@auxout \@auxoutpublications \let \jobname
\@auxoutpublicationsname \bibliography {#1}}
}
%    \end{macrocode}
%\subsection{注脚格式排版设置}
% \changes{v0.5.0}{2013/08/01}{添加注脚格式的排版设置}
% \changes{v0.6.5}{2014/03/01}{修复BUG：注脚在pdf中超级链接跳转失效的问题。}
% \changes{v0.6.6}{2014/03/03}{修复BUG：按照学校规范，注脚应该每页重新编号。}
%修正footmisc宏包的hang选项与CTeX宏包的冲突。修正来源：\\
%\url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=76571}
%    \begin{macrocode}
\renewcommand*\CTEXsetfont{%
  \begingroup
  \settowidth\ccwd{\CTEX@spaceChar\CJKglue}%
  \edef\x{\noexpand\ccwd\the\ccwd}%
  \expandafter\endgroup\x
  \ifdim\parindent=0pt\else\parindent2\ccwd\fi}
%    \end{macrocode}
%加载注脚宏包footmisc，使用悬挂选项hang
%
%    \begin{macrocode}
\RequirePackage[hang,perpage]{footmisc}
%    \end{macrocode}
%设置注脚内容缩进，5.2mm是对比word中悬挂缩进1.5字符的结果测量得出的。
%    \begin{macrocode}
\setlength{\footnotemargin}{5.2mm}
%    \end{macrocode}
%重绘注脚线，其中7.4mm、5.05cm和0.02cm都是对比范文在word中的效果测量出的。
%其中|\vfill|用于将注脚置于页面底部。因为模板禁止了底部对齐，以保证不会出现过大的段距。
% \changes{v0.6.6}{2014/03/03}{修正注脚线和内容的距离。}
%    \begin{macrocode}
\renewcommand{\footnoterule}{\vfill\noindent
\vspace*{0.9mm}\hspace{7.4mm}\rule{5.05cm}{0.02cm}\vspace*{2.6pt}}
%    \end{macrocode}
%定义注脚所用的带圆圈的序号样式
%    \begin{macrocode}
\RequirePackage{pifont}
\def\@circlednumber#1{\ifcase#1\or \ding{192}\or \ding{193}\or \ding{194}\or
 \ding{195}\or \ding{196}\or \ding{197}\or \ding{198}\or \ding{199}
 \or \ding{200} \or \ding{201} \else\@ctrerr\fi}
\def\circlednumber#1{\expandafter\@circlednumber\csname c@#1\endcsname}
\renewcommand{\thefootnote}{\circlednumber{footnote}}
%    \end{macrocode}
%重定义注脚的格式，将序号的字体取消默认的上标样式。
%    \begin{macrocode}
\def\@makefntext #1{\ifFN@hangfoot \bgroup \setbox \@tempboxa \hbox {\ifdim
\footnotemargin >0pt \hb@xt@ \footnotemargin {\hbox { \normalfont \@thefnmark}
\hss }\else \hbox { \normalfont \@thefnmark} \fi }\leftmargin \wd \@tempboxa
\rightmargin \z@ \linewidth \columnwidth \advance \linewidth -\leftmargin
\parshape \@ne \leftmargin \linewidth \footnotesize \@setpar {{\@@par }}
\leavevmode \llap {\box \@tempboxa }\parskip \hangfootparskip \relax \parindent
\hangfootparindent \relax \else \parindent 1em \noindent \ifdim \footnotemargin
 >\z@ \hb@xt@ \footnotemargin {\hss \hbox { \normalfont \@thefnmark} }\else
 \ifdim \footnotemargin =\z@ \llap {\hbox { \normalfont \@thefnmark} }\else
 \llap {\hb@xt@ -\footnotemargin {\hbox { \normalfont \@thefnmark} \hss }}
 \fi \fi \fi \footnotelayout #1\ifFN@hangfoot \par \egroup \fi}
%    \end{macrocode}
% \subsection{PDF文件相关设置}
% \begin{macro}{\date}
%设置论文提交日期命令
%    \begin{macrocode}
\renewcommand{\date}[3]{
\renewcommand{\@date}{#1年#2月#3日}
\def\@year{#1}%用于pdf元信息
}
\date{}{}{}%设置默认空置，避免v1.0.1版本前编写的源代码无法直接编译。
%    \end{macrocode}
% \end{macro}
% 设置pdf文件中的超链接和书签
% \changes{v0.6}{2014/01/11}{去除pdf文件中显示的超级链接有色外框}
%    \begin{macrocode}
\RequirePackage{cmap}%pdflatex编译时，可以生成可复制、粘贴的中文PDF文档
\RequirePackage{hyperxmp}%在pdf中加入XMP高级元信息
\RequirePackage[pdftex,unicode,
            bookmarksnumbered=true,
            bookmarksopen=true,
            hidelinks=true,
            breaklinks=true,
			pdfdisplaydoctitle=true
			]{hyperref}
\ifdef{\onlychapters@uestcthesis}{}{%onlychapters选项效果，在pdf元信息中去除学校信息。
\AtEndDocument{
    \hypersetup{%
    pdftitle={\@title},
    pdfauthor={\@author},
    pdfcopyright={Copyright (C) \@year, \@author},
    pdfsubject={\thesisname@degree},
    pdflicenseurl={},
    pdfcreator={PDFLaTeX with uestcthesis class},
    pdflang={zh-CN},
    pdfpagelayout={TwoPageRight}
    }
}
}%onlychapters选项效果END
%    \end{macrocode}
% \subsection{其他设置}
% 根据hyperref的文档：应该先调用hyperref，后调用subfigure，以解决兼容性问题。
%    \begin{macrocode}
\RequirePackage[small]{subfigure}
%    \end{macrocode}
%
%枚举环境宏包，去除所有垂直附加距离。
% \changes{v0.31}{2013/02/21}{去除枚举环境的所有垂直附加距离。}
% \changes{v0.4.3}{2013/05/20}{修复bug：枚举环境与前后文存在额外间距}
% \changes{v0.6}{2014/01/12}{用enumitem宏包代替enumerate宏包。使枚举环境的序号缩进和正文一致。}
%    \begin{macrocode}
\RequirePackage{enumitem}
\setlist[1]{topsep=0pt,labelsep=0pt,partopsep=0pt,parsep=0pt,itemsep=0pt,leftmargin=*,align=left,labelindent=\parindent}
\setlist[2]{topsep=0pt,labelsep=0pt,partopsep=0pt,parsep=0pt,itemsep=0pt,leftmargin=*,align=left,labelindent=0pt}
\setlist[3]{topsep=0pt,labelsep=0pt,partopsep=0pt,parsep=0pt,itemsep=0pt,leftmargin=*,align=left,labelindent=0pt}
\setlist[4]{topsep=0pt,labelsep=0pt,partopsep=0pt,parsep=0pt,itemsep=0pt,leftmargin=*,align=left,labelindent=0pt}
%    \end{macrocode}
% \subsection{排版源代码相关设置}
%排版源代码所需宏包
%    \begin{macrocode}
\RequirePackage{color,marvosym}
%    \end{macrocode}
%\changes{v0.4.7}{2013/06/03}{为了使用等宽字体排版源代码，将highlight.sty内容内置进来。}
%将Highlight程序生成的highlight.sty内容内置进来。将原本的粗体命令|\bf|改为一个
%自定义的粗体命令，为了使用等宽的粗体。但是这里未解决数学环境内设置等宽字体。
%    \begin{macrocode}
\DeclareOldFontCommand{\txttbf}{\ttfamily\bfseries}{\mathbf}
\providecommand{\hlstd}[1]{\textcolor[rgb]{0,0,0}{#1}}
\providecommand{\hlnum}[1]{\textcolor[rgb]{0,0,0}{#1}}
\providecommand{\hlesc}[1]{\textcolor[rgb]{0,0,0}{#1}}
\providecommand{\hlstr}[1]{\textcolor[rgb]{0,0,0}{#1}}
\providecommand{\hlpps}[1]{\textcolor[rgb]{0,0,0}{#1}}
\providecommand{\hlslc}[1]{\textcolor[rgb]{0.4,0.4,0.4}{{#1}}}
\providecommand{\hlcom}[1]{\textcolor[rgb]{0.4,0.4,0.4}{{#1}}}
\providecommand{\hlppc}[1]{\textcolor[rgb]{0,0,0}{\txttbf{#1}}}
\providecommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{\txttbf{#1}}}
\providecommand{\hlipl}[1]{\textcolor[rgb]{0,0,0}{#1}}
\providecommand{\hllin}[1]{\textcolor[rgb]{0.53,0.53,0.53}{#1}}
\providecommand{\hlkwa}[1]{\textcolor[rgb]{0,0,0}{\txttbf{#1}}}
\providecommand{\hlkwb}[1]{\textcolor[rgb]{0,0,0}{\txttbf{#1}}}
\providecommand{\hlkwc}[1]{\textcolor[rgb]{0,0,0}{\txttbf{#1}}}
\providecommand{\hlkwd}[1]{\textcolor[rgb]{0,0,0}{\txttbf{#1}}}
\definecolor{bgcolor}{rgb}{1,1,1}
%    \end{macrocode}
% \subsection{主要符号表设置}
%\changes{v0.6}{2014/01/11}{将glossary宏包替换为新版的glossaries宏包。可同时提供缩略词表和主要符号表 。}
%\changes{v1.1.0}{2015/02/12}{以显式方式定义主要符号表、缩略词表的风格，还重定义了缩略词引用风格。方便用户修改。}
%设置术语表宏包供主要符号表使用
%    \begin{macrocode}
\RequirePackage[description,acronym]{glossaries}
\makeglossaries
\renewcommand{\glossaryname}{\glossaryname@uestcthesis}
\renewcommand{\entryname}{\entryname@uestcthesis}
\renewcommand{\descriptionname}{\descriptionname@uestcthesis}
\renewcommand{\acronymname}{\acronymname@uestcthesis}
\renewcommand{\pagelistname}{\pagelistname@uestcthesis}
%    \end{macrocode}
% \begin{macro}{\fuhao}
%包装向主要符号表中插入条目的命令
%    \begin{macrocode}
\newcommand{\fuhao}[3]{%
\newglossaryentry{#3}{name={#1},description={#2},sort=#3}%
}
%    \end{macrocode}
% \end{macro}
% 定义custom-long3colheader风格，用于主要符号表。设置同long3colheader，方便用户修改。
%    \begin{macrocode}
\newglossarystyle{custom-long3colheader}{%
 \renewenvironment{theglossary}%
 %主要符号表就是一个longtable，各列的宽度和对齐方式在下面这行设置:
 {\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
 {\end{longtable}}%
 %设置说明列宽度：
 \setlength{\glsdescwidth}{82mm}
 %设置页码列宽度：
 \setlength{\glspagelistwidth}{14mm}
 %设置没有表头：
 \renewcommand*{\glossaryheader}{}%
 %设置分组间没有表头：
 \renewcommand*{\glsgroupheading}[1]{}%
 %主条目第一列名称，第二列说明，第三列页码：
 \renewcommand{\glossentry}[2]{%
 \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
 \glossentrydesc{##1} & ##2\tabularnewline
 }%
 %子条目第一列空置，第二列说明，第三列页码：
 \renewcommand{\subglossentry}[3]{%
 &
 \glssubentryitem{##2}%
 \glstarget{##2}{\strut}\glossentrydesc{##2} &
 ##3\tabularnewline
 }%
 %定义分组间空白:
 \renewcommand*{\glsgroupskip}{%
 \ifglsnogroupskip\else & &\tabularnewline\fi}%
 %定义表头：
 \renewcommand*{\glossaryheader}{%
 \bfseries\entryname&\bfseries\descriptionname&
 \bfseries\pagelistname\tabularnewline\endhead}%
}
%    \end{macrocode}
% 定义acronymwithtranslation风格，用于缩略词表。
%    \begin{macrocode}
\newglossarystyle{acronymwithtranslation}{%
 \renewenvironment{theglossary}%
 %缩略词表也是一个longtable，各列的宽度和对齐方式在下面这行设置:
 {\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
 {\end{longtable}}%
 %设置英文全称列宽度：
 \setlength{\glsdescwidth}{85mm}
 %设置中文全称列宽度：
 \setlength{\glspagelistwidth}{7em}
 %设置没有表头：
 \renewcommand*{\glossaryheader}{}%
 %设置分组间没有表头：
 \renewcommand*{\glsgroupheading}[1]{}%
 %主条目第一列缩略词，第二列说明，第三列中文全称：
 \renewcommand{\glossentry}[2]{%
 \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
 \csname glo@##1@first\endcsname & \glossentrydesc{##1}\tabularnewline
 }%
 %子条目第一列空置，第二列说明，第三列中文全称：
 \renewcommand{\subglossentry}[3]{%
 &
 \csname glo@##1@first\endcsname & \glossentrydesc{##1}\tabularnewline
 }%
 %定义分组间空白:
 \renewcommand*{\glsgroupskip}{%
 \ifglsnogroupskip\else & &\tabularnewline\fi}%
 %定义表头：
 \renewcommand*{\glossaryheader}{%
 \bfseries\acronymheader@uestcthesis&\bfseries\acronymfull@uestcthesis&
 \bfseries\acronymtranslation@uestcthesis\tabularnewline\endhead}%
}
%    \end{macrocode}
%重定义缩略词引用风格long-short。long-short是默认的风格，下方代码也没有更改long-short的任何设置。
%此处重定义long-short风格只是为了用户方便修改。
%    \begin{macrocode}
 \renewacronymstyle{long-short}%
 {%
%    \end{macrocode}
% Check for long formin case this is a mixed glossary.
% 这里的|\glsgenacfmt|或|\glsgenentryfmt|是管理|\gls-like|命令的。
%    \begin{macrocode}
 \ifglshaslong{\glslabel}{\glsgenacfmt}{\glsgenentryfmt}%
 }%
 {%
 \renewcommand*{\GenericAcronymFields}{description={\the\glslongtok}}%
 % No case change, singular first use（既用\gls第一次引用）:
 \renewcommand*{\genacrfullformat}[2]{%
 \glsentrylong{##1}##2\space
 (\protect\firstacronymfont{\glsentryshort{##1}})%
 }%
 % First letter upper case, singular first use（既用\Gls第一次引用）:
 \renewcommand*{\Genacrfullformat}[2]{%
 \Glsentrylong{##1}##2\space
 (\protect\firstacronymfont{\glsentryshort{##1}})%
 }%
 % No case change, plural first use（既用\glspl第一次引用）:
 \renewcommand*{\genplacrfullformat}[2]{%
 \glsentrylongpl{##1}##2\space
 (\protect\firstacronymfont{\glsentryshortpl{##1}})%
 }%
 % First letter upper case, plural first use（既用\Glspl第一次引用）:
 \renewcommand*{\Genplacrfullformat}[2]{%
 \Glsentrylongpl{##1}##2\space
 (\protect\firstacronymfont{\glsentryshortpl{##1}})%
 }%
 \renewcommand*{\acronymentry}[1]{\acronymfont{\glsentryshort{##1}}}
 \renewcommand*{\acronymsort}[2]{##1}%
 \renewcommand*{\acronymfont}[1]{##1}%
 \renewcommand*{\firstacronymfont}[1]{\acronymfont{##1}}%
 \renewcommand*{\acrpluralsuffix}{\glspluralsuffix}%
 }
 % 重定义后需要重新设置使用它：
\setacronymstyle{long-short}
%    \end{macrocode}
% \subsection{自动添加论文的必选结构}
%\changes{v0.4.3}{2013/05/20}{由于目前（2013年）本科和硕博关于参考文献与致谢顺序的规定不一样，所以在这里区分设置}
%\changes{v0.4.2}{2013/05/14}{修复只有单页目录时页眉显示主要符号表的问题。}
%\changes{v0.4.3}{2013/05/20}{修复bug：摘要应从右页开始。前置部分都需要章起右页。}
%\changes{v0.4.4}{2013/05/23}{本科论文中将外文资料和翻译加入目录中。}
%\changes{v0.5.4}{2013/10/29}{修改封面到摘要之前的部分实际的页码，避免pdf阅读器中页码冲突。}
%\changes{v0.6.1}{2014/01/20}{添加摘要和目录到pdf书签中。}
%\changes{v0.6.4}{2014/02/25}{用withoutforepages选项和onlychapters选项控制忽略必选结构中的一部分。}
%    \begin{macrocode}
% !Mode:: "TeX:UTF-8"

\AtBeginDocument{%插入到论文内容的最前面。
\begin{CJK}{UTF8}{rm}%中文支持环境，此处内容不受ctexbook文类影响，所以必须手动加这个环境。
\ifdef{\onlychapters@uestcthesis}{}{%onlychapters选项效果
\Cabstractmatter%设置中文摘要版式
\pdfbookmark[1]{摘要}{Cabstract}%添加中文摘要的PDF书签
\include{contents/Cabstract}%插入中文摘要
\clearpage{\pagestyle{empty}\cleardoublepage}
\Eabstractmatter%设置英文摘要版式
\pdfbookmark[1]{Abstract}{Eabstract}%添加英文摘要的PDF书签
\include{contents/Eabstract}%插入英文摘要
\clearpage{\pagestyle{empty}\cleardoublepage}
\tocmatter%目录版式
\pdfbookmark[1]{\tocname@uestcthesis}{tableofcontents}%添加目录的PDF书签
\tableofcontents%插入目录
\insertlof%插入图目录
\insertlot%插入表目录
\clearpage{\pagestyle{empty}\cleardoublepage}%目录之后另起一页，这样无论目录后有没有主要符号表，主要符号表的页眉设置命令都会应用到下一页。
%此处遇到问题：目录之后到正文之前如果加入章节，这些章节的版式不受传统版式设置控制。估计是BUG。此处耗时6小时20分钟，终于找到了修正方案。
\acronymnamematter%设置缩略词表版式
\printacronyms[nogroupskip,style=acronymwithtranslation]
\clearpage{\pagestyle{empty}\cleardoublepage}
\glossarymatter%设置主要符号表版式。
\printglossary[nogroupskip,style=custom-long3colheader]%插入主要符号表
\clearpage{\pagestyle{empty}\cleardoublepage}
\mainmatter%修正主要符号表版式，这里是受目录版式的影响，必须在此加入\mainmatter。
}%
\end{CJK}
\mainmatter%正文区版式
\makeatletter
\newcmds@uestcthesis%自定义图表命令，这些命令必须在document环境里声明才能在正文中使用，所以只能放在这里了。
%    \end{macrocode}
%设置公式与上下文之间的间距。
%    \begin{macrocode}
\abovedisplayskip=6bp
\abovedisplayshortskip=6bp
\belowdisplayskip=6bp
\belowdisplayshortskip=6bp
\makeatother
}
\ifdef{\onlychapters@uestcthesis}{}{%onlychapters选项效果
\newcommand{\insertacknowledgement}{
\chapter*{\acknowledgementsname@uestcthesis}%用带星号的章命令插入不带章号的致谢。
\markboth{\acknowledgementsname@uestcthesis}{}%页眉设置
\phantomsection%手动添加目录项之前需要这个命令，用以更新目录超链接的跳转页码。
\addcontentsline{toc}{chapter}{\acknowledgementsname@uestcthesis}%将致谢编入目录
\input{contents/acknowledgements.tex}%插入致谢内容
}
\newcommand{\insertreference}{
\bibliographystyle{uestcthesis}
%载入参考文献样式文件uestcthesis.bst。此参考文献样式只在GBT7714-2005NLang.bst的基础上改变了参考文献条目的行距，以符合电子科技大学的要求。修改处位于uestcthesis.bst文件的3542行。另外将英文作者名由全大写改为首字母大写。
\phantomsection%手动添加目录项之前需要这个命令，用以更新目录超链接的跳转页码。
\addcontentsline{toc}{chapter}{\CTEX@bibname}%将参考文献编入目录
\nocite{*}%若将此命令屏蔽掉，则未引用的文献不会出现在文后的参考文献列表中。
{\zihao{5}
\bibliography{contents/reference}%插入参考文献
}
}
\AtEndDocument{%插入到论文内容最后面。
\begin{CJK}{UTF8}{rm}
\ifdefstring{\degree@uestcthesis}{bachelor}{%检测是否为本科论文，调换参考文献与致谢的顺序
\insertreference
\newpage
\insertacknowledgement
}{
\insertacknowledgement
\newpage
\insertreference
}
%    \end{macrocode}
% \changes{v0.6.1}{2014/01/20}{修正附录中图表公式的标号格式。}
%    \begin{macrocode}
\appendix%附录版式
\renewcommand{\thefigure}{\Alph{chapter}\textendash\arabic{figure}}
\renewcommand{\thetable}{\Alph{chapter}\textendash\arabic{table}}
\renewcommand{\theequation}{\Alph{chapter}\textendash\arabic{equation}}
\renewcommand{\chaptermark}[1]{\markboth{\CTEX@appendixname\Alph{chapter}~  #1 }{}}%附录页眉设置
\input{contents/appendix.tex}%插入附录内容
\clearpage
%    \end{macrocode}
% \subsubsection{本科外文资料翻译章节特殊设置}
% \changes{v0.4.5}{2013/06/01}{设置外文资料章节的特殊格式。改写标准章节命令，让它们不向目录中加入条目。并重置章节号。}
% 下面第一行先判断是否为本科论文。由于有的同学需要在外文翻译这两部分中使用章节标题命令。而又不希望它们按照正文的形式显示在目录中，所以需要如下设置。
%    \begin{macrocode}
\ifdefstring{\degree@uestcthesis}{bachelor}{

\gdef\thechapter{\@arabic \c@chapter}
%将章号由附录的ABC形式改回123形式.

\CTEXsetup[ name={,},
  number={}
  ]{chapter}
%去掉|\chapter|命令生成的章标题章号。

\setcounter{chapter}{0}
%让节标题使用的章号重新从1开始。形成1.1,1.2的节标题结构。

\def\Hy@org@chapter[#1]#2{%
\ifnum \c@secnumdepth >\m@ne \if@mainmatter \refstepcounter {chapter}
\typeout {\CTEXthechapter }\else \fi \else \fi \chaptermark {#1}\addtocontents{lof}
{\protect \addvspace {10\p@ }}\addtocontents {lot}{\protect \addvspace {10\p@ }}
\if@twocolumn \@topnewpage [\@makechapterhead {#2}]
\else
\@makechapterhead {#2}
\@afterheading \fi
}
%去掉|\chapter|命令中的自动向目录中加入条目的功能。之后再使用|\chapter|命令，目录中不会产生新条目了。

\def\H@old@sect #1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \let \@svsec \@empty
\else \refstepcounter {#1}\protected@edef \@svsec {\@seccntformat {#1}\relax }\fi
\@tempskipa #5\relax \ifdim \@tempskipa >\z@ \begingroup #6{\@hangfrom {\hskip #3
\relax \@svsec }\interlinepenalty \@M \csname CTEX@#1@titleformat\endcsname #8
\@@par }\endgroup \csname #1mark\endcsname {#7}\else \def \@svsechd
 {#6{\hskip #3\relax \@svsec \csname CTEX@#1@titleformat\endcsname #8}\csname #1mark
 \endcsname {#7}}\fi \@xsect {#5}}
%去掉所有节标题命令自动向目录中加入条目的功能。之后使用|\section\subsection|等命令不会向目录中加入新条目了。



\renewcommand{\chaptermark}[1]{\markboth{外文资料原文}{}}
\def\leftmark{外文资料原文}
\newpage
\phantomsection
\addcontentsline{toc}{chapter}{外文资料原文}

\renewcommand{\CTEX@figurename}{Figure}
\renewcommand{\CTEX@tablename}{Table}
%在外文资料中图表题注使用英文显示。

\include{contents/original}
\newpage
\phantomsection
\addcontentsline{toc}{chapter}{外文资料译文}
\renewcommand{\chaptermark}[1]{\markboth{外文资料译文}{}}
\def\leftmark{外文资料译文}

\renewcommand{\CTEX@figurename}{图}
\renewcommand{\CTEX@tablename}{表}
%将图表题注由英文改回中文。

\setcounter{chapter}{0}
%由于译文和原文是对照翻译的形式，所以章号依然重置为1。

\include{contents/translation}
}
%    \end{macrocode}
% \subsubsection{硕博攻读期间发表论文章节特殊设置}
% 下面的大括号实际上是上一节判断是否为本科论文的|\ifdefstring|命令的else部分。也就是只有硕博论文才执行的命令。
%    \begin{macrocode}
{
\ifdef{\usecv@uestcthesis}{\usecv@uestcthesis}{
	\IfFileExists{contents/publications.bib}{%如果删除了publications.bib，则不显示这一章
	\CTEXoptions[ bibname={\publicationsname@degree}]%设置攻博/硕期间发表的论文章题目
	\phantomsection%手动添加目录项之前需要这个命令，用以更新目录超链接的跳转页码。
	\addcontentsline{toc}{chapter}{\publicationsname@degree}%将攻博/硕期间发表的论文编入目录
	{\zihao{5}%
%    \end{macrocode}
% footmisc宏包的perpage选项会向每个aux文件中写入一个命令。由于publications没有tex文件，只有aux文件。所以出现了错误。这里将要写入aux文件的内容清空。
%    \begin{macrocode}
	\def\footnotehint{}%
	\bibliographypublications{contents/publications}%插入攻博/硕期间发表的论文
	}}{}
	}
}
\clearpage\end{CJK}}
}%这是大括号是前面onlychapters选项的ifdef命令的一部分。
%    \end{macrocode}
% \iffalse
%</class>
% \fi
% \iffalse
%<*bst>
% \fi
% \section{参考文献样式}
% \changes{v0.3}{2013/2/12}{修复了参考文献模板bst文件中原有的问题，
% 不再需要其他工具替换bbl中的错误。即参考文献中的“|\\.|”修正为“|\\|”。}
% \changes{v0.4.4}{2013/05/23}{增加一个参考文献类型，主要用于在攻读期间取得成果
% 内录入获奖等不符合参考文献规范的内容。}
%%本文件基于吴凯制作的GBT7714-2005NLang.bst(1 Beta 2 测试版2012年9月20日)修改而成。
%%修改内容包括将英文作者的名放前姓放后，设置行距。可与原始文件对比修改位置。
%%根据GBT7714-2005NLang.bst中copyright的要求，将文件名修改成uestcthesis.bst。
%%对吴凯的杰出工作表示感谢！
%bst文件内容不在文档中显示。
% \iffalse
ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    url
    TypeofLit                %新加入：文献类型和标志代码
    normalauthor             %不改变大小写的作者
    normaleditor             %不改变大小写的编者
    translator               %新加入：翻译者
    date                     %日期，公告日期，公开日期
    modifydate               %修改日期
    citedate                 %引用日期
    patentid                 %专利号
    country                  %国家（主要用于专利中）
    miscyear                 %其它类中用于输出年份
    startyear                %起始年
    startvolume              %起始卷
    startnumber              %起始期
    endyear                  %终止年
    endvolume                %终止卷
    endnumber                %终止期
    language                 %默认是英文文献，非空则表明是中文文献
  }
  {}
  { label extra.label sort.label short.list }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {format.url}
{ url empty$
    { "" }
    { new.block
    "\url{" url * "}" * }
  if$
}
FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { s t }



FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
    { add.period$ write$
      newline$
      "\newblock " write$
    }
    { output.state before.all =
        'write$
        { add.period$ " " * write$ }
      if$
    }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}


FUNCTION {coutput.nonnull}                                   %wk
{ 's :=
  output.state mid.sentence =
    { "，" * write$ }                                       %
    { output.state after.block =
    { add.period$ write$
      newline$
      "\newblock " write$
    }
    { output.state before.all =
        'write$
        { add.period$ " " * write$ }
      if$
    }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {coutput}                                           %wk
{ duplicate$ empty$
    'pop$
    'coutput.nonnull
  if$
}

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {coutput.check}                                     %wk
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'coutput.nonnull
  if$
}

FUNCTION {output.year.month.check}
{ year empty$
    { "empty year in " cite$ * warning$ }
    { add.period$ write$
      month empty$
        { " " year * extra.label * "." *
          after.sentence 'output.state :=
        }
        { " " year * extra.label * " (" * month * ")." *
          after.sentence 'output.state :=
        }
      if$
    }
  if$
}

FUNCTION {output.cyear.month.check}                            %wk
{ year empty$
    { "empty year in " cite$ * warning$ }
    {write$
      month empty$
        {year                      %wk
          after.sentence 'output.state :=
        }
        { "" year * extra.label * "(" * month * ")" *     %wk
          after.sentence 'output.state :=
        }
      if$
    }
  if$
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {output.modifydate.check}
{modifydate
}

FUNCTION {output.citedate.check}
{ year empty$
    { "" }
    { write$
      "[" citedate * extra.label * "]" *
      after.sentence 'output.state :=
    }
  if$
}


FUNCTION {output.year.check}
{ year empty$
    { "empty year in " cite$ * warning$ }
    {miscyear empty$
        {year}
         {miscyear}
     if$                     %wk
    }
  if$
  extra.label *
}

FUNCTION {output.cyear.check}                           %wk
{ year empty$
    { "empty year in " cite$ * warning$ }
    {miscyear empty$
        {year}
         {miscyear}
     if$                     %wk
    }
  if$
  extra.label *
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {output.continue.year.check}                           %wk
{
endyear empty$
   {startyear empty$
      {year empty$
         { "empty year in " cite$ * warning$ }
         {"" year * "" * }
       if$
       }
      {"" startyear * "-" * }
    if$
    }
{startyear empty$
    {year empty$
        { "empty year in " cite$ * warning$ }
        {"" year * "" * }
    if$
    }
    {"" startyear * "-" *
    "" endyear * "" * *
    }
 if$
}
if$
}


FUNCTION {output.continue.cyear.check}                           %wk
{
endyear empty$
   {startyear empty$
      {year empty$
         { "empty year in " cite$ * warning$ }
         {"" year * "" * }
       if$
       }
      {"" startyear * "-" * }
    if$
    }
{startyear empty$
    {year empty$
        { "empty year in " cite$ * warning$ }
        {"" year * "" * }
    if$
    }
    {"" startyear * "-" *
    "" endyear * "" * *
    }
 if$
}
if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {output.article.year.check}
{month empty$
{
year empty$
    { "empty year in " cite$ * warning$ }
    {year                 %wk
    }
  if$
}
{
TypeofLit empty$
       {year empty$
    { "empty year in " cite$ * warning$ }
    {year                 %wk
    }
  if$}

{year empty$
    { "empty year in " cite$ * warning$ }
    {year                 %wk
       "-"  month * "" * *
    }
  if$
}
if$
}
if$
}

FUNCTION {output.carticle.year.check}                           %wk
{month empty$
{
year empty$
    { "empty year in " cite$ * warning$ }
    {year                 %wk
    }
  if$
}
{
TypeofLit empty$
       {year empty$
    { "empty year in " cite$ * warning$ }
    {year                 %wk
    }
  if$}

{year empty$
    { "empty year in " cite$ * warning$ }
    {year                 %wk
       "-"  month * "" * *
    }
  if$
}
if$
}
if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {output.bibitem}
{ newline$
  "\bibitem[" write$
  label write$
  "]{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {fin.entry}
{ add.period$	%这行控制参考文献条目最后的句号。by sfj
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {boldface}
{ duplicate$ empty$
    { pop$ "" }
    { "{\bf " swap$ * "}" * }
  if$
}

%FUNCTION {emphasize}
%{ duplicate$ empty$
%    { pop$ "" }
%    { "{\em " swap$ * "}" * }
%  if$
%}


%%%%%%%%%%%%%%%%%%%
Function{upcase}
{ duplicate$ empty$
    { pop$ "" }
    { "u" change.case$ }
  if$
}
%FUNCTION {bib.name.font}
%{ upcase }
%FUNCTION {bib.fname.font}
%{ bib.name.font }
%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%

INTEGERS { nameptr namesleft numnames }

FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{f.~}{vv~}{ll}{, jj}"
    format.name$
    remove.dots
     't :=
      nameptr #1 >
        {
          nameptr #3
          #1 + =
          numnames #3
          > and
            { "others" 't :=
              #1 'namesleft := }
            'skip$
          if$
          namesleft #1 >
            { ", " * t * }
            { numnames #2 >
              { "" * }
              'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                 {%bib.name.font    %改为大写
                  ", et al" *
                }
                {", " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
%%%%%%%%%%%
%  t "others" =                   %改为大写
%    'skip$                       %改为大写
%    { bib.name.font }            %改为大写
%  if$                            %改为大写
%%%%%%%%%%%
}


FUNCTION {format.cnames}                                     %wk
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{vv~}{ll}{ f{~}}{ jj}" format.name$
    remove.dots
    't :=
      nameptr #1 >
        {
          nameptr #3
          #1 + =
          numnames #3
          > and
            { "others" 't :=
              #1 'namesleft := }
            'skip$
          if$
          namesleft #1 >
            { ", " * t * }
            { numnames #2 >
              { "" * }
              'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                 { ",等" *
               % bib.name.font    %改为大写
                }
                {", " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
%%%%%%%%%%%
%  t "others" =                   %改为大写
%    'skip$                       %改为大写
%    { bib.name.font }            %改为大写
%  if$                            %改为大写
%%%%%%%%%%%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%不加大写的名字
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {format.normal.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{vv~}{ll}{ f{~}}{, jj}"
    format.name$
    remove.dots
     't :=
      nameptr #1 >
        {
          nameptr #3
          #1 + =
          numnames #3
          > and
            { "others" 't :=
              #1 'namesleft := }
            'skip$
          if$
          namesleft #1 >
            { ", " * t * }
            { numnames #2 >
              { "" * }
              'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                 { ", et al" * }
                {", " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}


FUNCTION {format.normal.cnames}                                    %wk
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{vv~}{ll}{ f{~}}{ jj}" format.name$
    remove.dots
    't :=
      nameptr #1 >
        {
          nameptr #3
          #1 + =
          numnames #3
          > and
            { "others" 't :=
              #1 'namesleft := }
            'skip$
          if$
          namesleft #1 >
            { ", " * t * }
            { numnames #2 >
              { "" * }
              'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                 { ",等" * }
                {", " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {format.authors}
{ author empty$
    { "" }
    {normalauthor empty$
         {author format.names }
         {normalauthor format.normal.names}
    if$
}
  if$
}

FUNCTION {format.cauthors}                                   %wk
{ author empty$
    { "" }
    {normalauthor empty$
         {author format.cnames }
         {normalauthor format.normal.cnames}
    if$
}
  if$
}

FUNCTION {format.key}
{ empty$
    { key field.or.null }
    { "" }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    {normaleditor empty$
         {editor format.names }
         {normaleditor format.normal.names}
    if$
      editor num.names$ #1 >                                %  Use ODWE abbrevs.
        { "" * }                                      %  to avoid
        { "" * }                                       %  ambiguity between
      if$                                                   %  "editor" and
    }                                                       %  "edition".
  if$
}

FUNCTION {format.ceditors}                                 %wk   本函数
{ editor empty$
    { "" }
    {
    normaleditor empty$
         {editor * "" * format.cnames }
         {normaleditor * "" * format.normal.cnames}
    if$
    }
  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.title}                                     %  Nothing needs
{ title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    { title }                                               %  or
  if$                                                       %  authordate3.bst.
}

FUNCTION {format.ctitle}                %wk                 %  Nothing needs
{ title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {title}                                               %  or
  if$                                                       %  authordate3.bst.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


FUNCTION {format.article.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[J]" * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]" * * }
if$
                                                    %  authordate3.bst.
}


FUNCTION {format.carticle.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[J]" * title output.check}
       {format.title title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]" * *  }
if$
                                                     %  authordate3.bst.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.book.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[M]" * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]" * * }
if$
                                                    %  authordate3.bst.
}


FUNCTION {format.cbook.title}                %wk                 %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[M]" * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]" * * }
if$
                                                    %  authordate3.bst.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.misc.title}                %wk                 %  Nothing needs
{
patentid empty$
       {%没有专利号应该是其它类型文献，直接标准输出
title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[缺文献类型标志代码]." * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]." * * }
if$
       }
       {%有专利号
          country empty$
             {
title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[缺文献类型标志代码]." * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]." * * }
if$
""  patentid * "" * *
             }
             {%有专利号，有国家
title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[缺文献类型标志代码]." * title output.check}
       {format.title title output.check}
    if$
    }
if$

              "："  country * "，" * *
              ""  patentid * "" * *
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]." * * }
if$

              }
             if$
}
if$

}


FUNCTION {format.cmisc.title}                %wk                 %  Nothing needs
{
patentid empty$
       {%没有专利号应该是其它类型文献，直接标准输出
title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[缺文献类型标志代码]." * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]." * * }
if$
       }
       {%有专利号
          country empty$
             {
title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[缺文献类型标志代码]." * title output.check}
       {format.title title output.check}
    if$
    }
if$
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]." * * }
if$
""  patentid * "" * *
             }
             {%有专利号，有国家
title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[缺文献类型标志代码]." * title output.check}
       {format.title title output.check}
    if$
    }
if$

              "："  country * "，" * *
              ""  patentid * "" * *
TypeofLit empty$
       {""}
       { "["  TypeofLit * "]." * * }
if$

              }
             if$
}
if$

}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {format.proceedings.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[C]" * title output.check}
       {format.title title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]" * *  }
if$
                                                     %  authordate3.bst.
}


FUNCTION {format.cproceedings.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[C]" * title output.check}
       {format.title title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]" * *  }
if$
                                                     %  authordate3.bst.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.incollection.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[M]//" * title output.check}
       {format.title "" * title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]//" * * }
if$
                                                     %  authordate3.bst.
}


FUNCTION {format.cincollection.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[M]//" * title output.check}
       {format.title "" * title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]//" * * }
if$
                                                     %  authordate3.bst.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.inproceedings.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[C]//" * title output.check}
       {format.title "" * title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]//" * * }
if$
                                                     %  authordate3.bst.
}


FUNCTION {format.cinproceedings.title}                                     %  Nothing needs
{title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {
    typeoflit empty$
       {format.title "[C]//" * title output.check}
       {format.title "" * title output.check}
    if$
    }
if$

TypeofLit empty$
       {""}
       { "[" TypeofLit * "]//" * * }
if$
                                                     %  authordate3.bst.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
               { "-" *
                 t #2 global.max$ substring$ 't :=
               }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
        if$
    }
  while$
}

FUNCTION {format.btitle}
{ title empty$
   { "" }                                                   %  Don't change case
   {booktitle}                                      %  in
   if$                                                      %  authordate1.bst
}                                                           %  or

FUNCTION {format.cbtitle}                  %wk                 %  Nothing needs
{ title empty$                                              %  doing here in
    { "" }                                                  %  authordate1.bst
    {booktitle}                                               %  or
  if$                                                       %  authordate3.bst.
}
                                                            %  authordate3.bst.
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.numberinseries}
{ number empty$
    { "" }
    { number multi.page.check
        { ", nos. " number n.dashify tie.or.space.connect }
        { ", no. "  number tie.or.space.connect }
      if$
    }
  if$
}

FUNCTION {format.cnumberinseries}                           %wk
{ number empty$
    { "" }
    { number multi.page.check
        { ", 第" number n.dashify tie.or.space.connect * "期"}  %wk
        { ", 第"  number tie.or.space.connect * "期"}           %wk
      if$
    }
  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {booklike.series.volume.number}                    %  Chicago, pages
{ series empty$                                             %  450-451.
    { volume empty$
      { " " }
      { " Vol. " volume * }
      if$
    }
    {
      volume empty$
        { number empty$
            { series }
            { series format.numberinseries * }
          if$
        }
        { number empty$
            { series ", vol. " volume * * }
            { series ", vol. " * volume * format.numberinseries * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {cbooklike.series.volume.number.pages}           %wk加入页码 ？？？        %  Chicago, pages           %wk
{ series empty$                                             %  450-451.
    { volume empty$
      {  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$}
      { "卷" volume * }
      if$
    }
    {
      volume empty$
        { number empty$
            { series }
            { series format.numberinseries * }
          if$
        }
        { number empty$
            { series "，第" volume * "卷" * * }
            { series "卷" * volume * format.cnumberinseries * }
          if$
        }
      if$
    }
  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {incollectionlike.series.volume.number.pages}             %wk
{ series empty$
    { volume empty$
      {  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$}
      { "，" volume * ""  * *
        pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$}
      if$
    }
    { new.block
      volume empty$
        { number empty$
            { series }
            { series format.numberinseries * }
          if$
        }
        { number empty$
            { series ", vol. " volume * * }
            { series ", vol. " * volume * format.numberinseries * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {cincollectionlike.series.volume.number.pages}             %wk
{ series empty$
    { volume empty$
      {  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$}
      { "，第" volume * "卷"  * *
        pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$}
      if$
    }
    { new.block
      volume empty$
        { number empty$
            { series }
            { series format.numberinseries * }
          if$
        }
        { number empty$
            { series ", vol. " volume * * }
            { series ", vol. " * volume * format.numberinseries * }
          if$
        }
      if$
    }
  if$
}


FUNCTION {format.TypeofLit}                                  %wk  完全改写
{ TypeofLit empty$
    { "" }
    {"[" TypeofLit * "]" *}
    if$
}


FUNCTION {format.edition}
{ edition empty$
    {
      translator empty$
        { "" }
        {"" translator * "，translation" * }
        if$
    }
    {
      translator empty$
         {edition}
         {translator output
          "，translation." edition * "" * *}
         if$
    }
if$
}


FUNCTION {format.cedition}                                  %wk  完全改写
{ edition empty$
    {
      translator empty$
        { "" }
        {"" translator format.cnames * "，译" *}
        if$
    }
    {
      translator empty$
         {edition}
         {translator format.cnames output
          "，译." edition * "" * *}
         if$
    }
if$
}




FUNCTION {format.ctranslator}                                  %wk  完全改写
{ translator empty$
    { "" }
    {format.cnames "，译" * "translator" output.check}
    if$
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
        { ":" pages n.dashify tie.or.space.connect * }
        { ":" pages tie.or.space.connect  * }
      if$
    }
  if$
}

FUNCTION {format.pagesinbook}                               %  By the time the
{ pages empty$                                              %  reader has read
    { "" }                                                  %  address, pub'r,
    { pages multi.page.check                                %  note (where the
        { ":" pages n.dashify tie.or.space.connect }   %  note may end with
        { ":" pages tie.or.space.connect }              %  numbers), s/he
      if$                                                   %  may not recognise
    }                                                       %  a number-range as
  if$                                                       %  meaning pages.
}                                                           %  Avoid ambiguity
                                                            %  (Butcher, p.181).

FUNCTION {format.cpagesinbook}                              %  By the time the         %wk
{ pages empty$                                              %  reader has read
    { "" }                                                  %  address, pub'r,
    { pages multi.page.check                                %  note (where the
        { ":" * pages n.dashify tie.or.space.connect * "" }   %  note may end with
        { ":" * "Page " pages tie.or.space.connect * ""}              %  numbers), s/he
      if$                                                   %  may not recognise
    }                                                       %  a number-range as
  if$                                                       %  meaning pages.
}                                                           %  Avoid ambiguity

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.vol.num.date.pages}                       %wk
{volume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {volume                                         %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  number empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" number * ")" * *                                          %wk  被重新改过
      volume empty$                                                   %wk  被重新改过
        { "there's a number but no volume in " cite$ * warning$ }     %wk  被重新改过
        'skip$                                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$
}


FUNCTION {format.cvol.num.date.pages}                       %wk
{volume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {volume                                         %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  number empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" number * ")" * *                                          %wk  被重新改过
      volume empty$                                                   %wk  被重新改过
        { "there's a number but no volume in " cite$ * warning$ }     %wk  被重新改过
        'skip$                                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.article.vol.num.date.pages}                       %wk
{
volume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {volume                                         %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
number empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" number * ")" * *                                          %wk  被重新改过
      volume empty$                                                   %wk  被重新改过
        { "there's a number but no volume in " cite$ * warning$ }     %wk  被重新改过
        'skip$                                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$
}



FUNCTION {format.carticle.vol.num.date.pages}                       %wk
{
volume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {volume                                         %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
number empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" number * ")" * *                                          %wk  被重新改过
      volume empty$                                                   %wk  被重新改过
        { "there's a number but no volume in " cite$ * warning$ }     %wk  被重新改过
        'skip$                                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.book.continue.vol.num}                       %wk
{
startyear empty$
    'skip$
    {"." startyear * "" * *
    startvolume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {"," startvolume * "" *  *}                                                                 %wk  被重新改过
     if$
                                                             %wk  被重新改过
    startnumber empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" startnumber * ")-" * *  }                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
if$
                                                             %wk  被重新改过
endyear empty$
    'skip$
    {"" endyear * "" * *
    endvolume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {"," endvolume * "" *  *}                                                                 %wk  被重新改过
     if$
                                                             %wk  被重新改过
    endnumber empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" endnumber * ")" * *  }                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
if$
}




FUNCTION {format.cbook.continue.vol.num}                       %wk
{
startyear empty$
    'skip$
    {"." startyear * "" * *
    startvolume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {"," startvolume * "" *  *}                                                                 %wk  被重新改过
     if$
                                                             %wk  被重新改过
    startnumber empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" startnumber * ")-" * *  }                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
if$
                                                             %wk  被重新改过
endyear empty$
    'skip$
    {"" endyear * "" * *
    endvolume empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {"," endvolume * "" *  *}                                                                 %wk  被重新改过
     if$
                                                             %wk  被重新改过
    endnumber empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" endnumber * ")" * *  }                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
if$
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.date.modifydate.citedate}                       %wk
{
date empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    {date                                         %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过

modifydate empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "(" modifydate * ")" * *                                          %wk  被重新改过
      date empty$                                                   %wk  被重新改过
        { "" cite$ * warning$ }     %wk  被重新改过
        'skip$                                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$

citedate empty$                                                       %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "[" citedate * "]" * *                                         %wk  被重新改过
      date empty$                                                   %wk  被重新改过
        { "" cite$ * warning$ }     %wk  被重新改过
        'skip$                                                        %wk  被重新改过
      if$                                                             %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.chapter.pages.inbook}
{ chapter empty$
    'format.pagesinbook
    { type empty$
        { "Chap." }
        { type }
      if$
      chapter tie.or.space.connect
      pages empty$
        'skip$
        { ", " * format.pagesinbook "l" change.case$ * }
      if$
    }
  if$
}

FUNCTION {format.cchapter.pages.inbook}
{chapter empty$                                                        %wk  被重新改过
    'skip$                                                            %wk  被重新改过
    { "，第" chapter * "章" * *                                          %wk  被重新改过
    }                                                                 %wk  被重新改过
  if$                                                                 %wk  被重新改过
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * "" *}                                   %wk 改为第页
      if$
    }
  if$
}



FUNCTION {format.chapter.pages.incoll}
{ chapter empty$
    { pages empty$
        { "In " }
        { "{\em " format.pagesinbook " of:} " * * }
      if$
    }
    { type empty$
        { "{\em Chap. " chapter * }
        { "{\em " type * " " * chapter * }
      if$
      pages empty$
        { " of:} " * }
        { ", " * format.pagesinbook "l" change.case$ " of:} " * * }
      if$
    }
  if$
}

FUNCTION {format.cchapter.pages.incoll}                       %wk
{ chapter empty$
    { pages empty$
        { "" }
        { "第" format.pagesinbook "章" * * }
      if$
    }
    { type empty$
        { "第" chapter * "章" * * }
        { "" type * "" * chapter * }
      if$
      pages empty$
        { "" * }
        { ":" * format.pagesinbook "l" change.case$ "" * * }
      if$
    }
  if$
}

FUNCTION {format.in.ed.booktitle}                           %  Achieves effect         %wk
{ booktitle empty$                                          %  shown in 16.51
    { "" }                                                  %  of Chicago, at
    { editor empty$                                         %  expense of not
         {"" * booktitle * "" *
          new.block
         }
        {new.block
    normalauthor empty$                           %用于正常显示
         {
    normaleditor empty$                           %用于正常显示
         {      format.editors  "author and editor" output.check}       %用于正常显示,
         {      format.editors  "author and normaleditor" output.check} %用于正常显示
    if$                                           %用于正常显示
         }                   %用于正常显示
         {
    normaleditor empty$                           %用于正常显示
         {format.editors  "normalauthor and editor" output.check}                   %用于正常显示
         {format.editors  "normalauthor and normaleditor" output.check}       %用于正常显示
    if$                                           %用于正常显示

         }       %用于正常显示
    if$                                           %用于正常显示
      editor format.key output
      new.block
      format.btitle "booktitle" output.check
      }
      if$                                                   %  4.4 of BS 1629.
    }
  if$                                                       %  Don't change
}                                                           %  case.


FUNCTION {format.in.ced.booktitle}                           %  Achieves effect         %wk
{ booktitle empty$                                          %  shown in 16.51
    { "" }                                                  %  of Chicago, at
    { editor empty$                                         %  expense of not
         {"" * booktitle * "" *
          new.block
         }
        {new.block
    normalauthor empty$                           %用于正常显示
         {
    normaleditor empty$                           %用于正常显示
         {format.ceditors  "author and editor" output.check}       %用于正常显示,
         {format.ceditors  "author and normaleditor" output.check} %用于正常显示
    if$                                           %用于正常显示
         }                   %用于正常显示
         {
    normaleditor empty$                           %用于正常显示
         {format.ceditors  "normalauthor and editor" output.check}                   %用于正常显示
         {format.ceditors  "normalauthor and normaleditor" output.check}       %用于正常显示
    if$                                           %用于正常显示

         }       %用于正常显示
    if$                                           %用于正常显示
      editor format.key output
      new.block
      format.cbtitle "booktitle" output.check
      }
      if$                                                   %  4.4 of BS 1629.
    }
  if$                                                       %  Don't change
}                                                           %  case.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
FUNCTION {format.in.proceedings.booktitle}                           %  Achieves effect         %wk
{ booktitle empty$                                          %  shown in 16.51
    { "" }                                                  %  of Chicago, at
    {format.btitle "booktitle" output.check   }
  if$                                                       %  Don't change
}                                                           %  case.


FUNCTION {format.in.cproceedings.booktitle}                           %  Achieves effect         %wk
{ booktitle empty$                                          %  shown in 16.51
    { "" }                                                  %  of Chicago, at
    { format.cbtitle "booktitle" output.check   }
      if$                                                   %  4.4 of BS 1629.
                                                     %  Don't change
}


FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type                                                  %  Don't change
    }                                                       %  case.
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { "Tech. rept."  }                                      %  ODWE abbrevs.
    'type
  if$
  number empty$
    {                  }                                    %  Whatever was
    { number tie.or.space.connect }                         %  having its case
  if$                                                       %  changed, leave
}                                                           %  it alone.

FUNCTION {format.addr.pub}
{ publisher empty$
    {address empty$
        { ".[S.l.]: [s.n.] " *}
        { address ": [s.n.] " * }
      if$
    }
    { address empty$
        { ".[S.l.]: " * }
        { address ": " * }
      if$
      publisher *
    }

  if$
}

FUNCTION {format.caddr.pub}
{publisher empty$
    {address empty$
        { ".[出版地不详]：[出版者不详]" *}
        { address ":[出版者不详]" * }
      if$
    }
    { address empty$
        { ".[出版地不详]：" * }
        { address ": " * }
      if$
     publisher *
    }

  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.addr.institution}
{ institution empty$
    {address empty$
        { ".[S.l.]: [s.n.] " *}
        { address ": [s.n.] " * }
      if$
    }
    { address empty$
        { ".[S.l.]: " * }
        { address ": " * }
      if$
      institution *
    }

  if$
}

FUNCTION {format.caddr.institution}
{institution empty$
    {address empty$
        { ".[地址不详]：[机构不详]" *}
        { address ":[机构不详]" * }
      if$
    }
    { address empty$
        { ".[地址不详]：" * }
        { address ": " * }
      if$
     institution *
    }

  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.school.pub}
{ school empty$
    {address empty$
        { "[S.l.]: [s.n.] " }
        { address ": [s.n.] " * }
      if$
    }
    { address empty$
        { ".[S.l.]: " * }
        { address ": " * }
      if$
      school *
    }

  if$
}

FUNCTION {format.cschool.pub}
{school empty$
    {address empty$
        { "[地址不详]：[学校不详]" }
        { address ":[学校不详]" * }
      if$
    }
    { address empty$
        { ".[学校不详]：" * }
        { address ": " * }
      if$
      school *
    }

  if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.inproceedings.addr.pub}
{
TypeofLit empty$
       {publisher empty$
    {address empty$
        { ".[S.l.]: [s.n.] " }
        { address ": [s.n.] " * }
      if$
    }
    { address empty$
        { ".[S.l.]: " * }
        { address ": " * }
      if$
      publisher *
    }

  if$}
       { "" }
if$
}

FUNCTION {format.cinproceedings.addr.pub}
{
TypeofLit empty$
       {publisher empty$
    {address empty$
        { ".[出版地不详]：[出版者不详]" }
        { address ":[出版者不详]" * }
      if$
    }
    { address empty$
        { ".[出版地不详]：" * }
        { address ": " * }
      if$
      publisher *
    }

  if$}
       { ""}
if$

}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.misc.addr.pub}
{ publisher empty$
    {address empty$
        { "" }
        { address ": [s.n.] " * }
      if$
    }
    { address empty$
        { "[S.l.]: " * }
        { address ": " * }
      if$
      publisher *
    }

  if$
}

FUNCTION {format.cmisc.addr.pub}
{publisher empty$
    {address empty$
        { "" }
        { address ":[出版者不详]" * }
      if$
    }
    { address empty$
        { "[出版地不详]：" * }
        { address ": " * }
      if$
      publisher *
    }

  if$
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


FUNCTION {format.addr.pub.org}                              %  If there's an
{ address empty$                                            %  an organization
  { "[S.l.]:" *publisher * ", for " * organization * }                 %  and a publisher
  { address ": " * publisher * ", for " * organization * }  %  too.
  if$
}

FUNCTION {format.addr.inst}
{ address empty$
  { institution empty$
    { "[S.l.]" }
    { "[S.l.]" * institution *　*}
    if$
  }
  { institution empty$
    { "" }
    { institution ", " * }
    if$
    address *
  }
  if$
}

FUNCTION {format.addr.org}
{ address empty$
  { organization empty$
    { "" }
    { organization }
    if$
  }
  { organization empty$
    { "" }
    { organization ", " * }
    if$
    address *
  }
  if$
}

FUNCTION {format.article.crossref}
{ "In "
  " \cite{" * crossref * "}" *
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      "In "
    }
    { " Vol." volume tie.or.space.connect
      " of " *
    }
  if$
  "\cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ "In "
  " \cite{" * crossref * "}" *
}


FUNCTION {article}
{language empty$
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.article.title output
  new.block
  crossref missing$
    { journal                           %  Don't change
      "journal" output.check                                %  case.
      output.article.year.check   output
      format.article.vol.num.date.pages output
      format.date.modifydate.citedate output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  format.url output
  new.block
  note output

  fin.entry
}

%FUNCTION {carticle}                                         %wk  本函数
{ output.bibitem
  format.cauthors "author" output.check
  author format.key output
  new.block
  format.carticle.title output
  new.block
  crossref missing$
    {journal                               % Don't change    %wk
     "journal" output.check                                %  case.
      output.carticle.year.check   output                                      %wk
      format.carticle.vol.num.date.pages output                      %wk
      format.date.modifydate.citedate output
      new.block
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}

FUNCTION {book}
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.book.title output
  new.block
  crossref missing$
    { format.edition output
      new.block
      format.book.continue.vol.num ouput
      booklike.series.volume.number output
      new.block
      format.addr.pub "publisher" output.check
      output.continue.year.check  ouput
      format.date.modifydate.citedate output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cbook}                                             %wk
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.cbook.title output                       %wk
  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
      format.cbook.continue.vol.num ouput
      new.block
      format.caddr.pub "publisher" output.check
      output.continue.cyear.check  ouput                                     %wk
      cbooklike.series.volume.number.pages output
      format.date.modifydate.citedate output
     }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%未处理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {booklet}
{language empty$
{ output.bibitem
  format.authors output
  author format.key output
  output.year.month.check
  new.block
  format.btitle "title" output.check
  new.block
  howpublished output
  address output
  output.year.check
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cbooklet}                                           %wk
{ output.bibitem
  format.cauthors output                                      %wk
  author  format.key output
  format.btitle "title" output.check                         %wk
  new.block
  howpublished output
  address output
  output.cyear.month.check                                    %wk
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {inbook}
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.book.title output
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
      format.addr.pub "publisher" output.check
      output.year.check output
      format.date.modifydate.citedate output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cinbook}                                             %wk
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.cbook.title output                       %wk
  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
      format.caddr.pub "publisher" output.check
      output.cyear.check                                       %wk
      cbooklike.series.volume.number.pages output
      format.date.modifydate.citedate output
     }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {incollection}                                     %wk
{language empty$
{ output.bibitem
  author empty$
    { format.editors "editor" output.check                  %wk    format.editors->format.ceditors
      editor format.key output             }
    { format.authors "author" output.check                   %wk
      author format.key output             }
  if$
  new.block
  format.incollection.title output
  crossref missing$                                         %  Chapter and/or
    {
    before.all 'output.state :=
    format.in.ed.booktitle output                         %  page numbers can
      format.edition output                                 %  come out via this         %wk  edition->cedition
      new.block
      format.addr.pub "publisher" output.check
      output.year.check
      incollectionlike.series.volume.number.pages output          %  route, too.
      format.date.modifydate.citedate output
    }
    { format.incoll.inproc.crossref output.nonnull
      new.block
    }
  if$

  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cincollection}                                     %wk
{ output.bibitem
  author empty$
    { format.ceditors "editor" output.check                  %wk    format.editors->format.ceditors
      editor format.key output             }
    { format.cauthors "author" output.check                   %wk
      author format.key output             }
  if$
  new.block
  format.cincollection.title output
  crossref missing$                                         %  Chapter and/or
    { format.in.ced.booktitle output                         %  page numbers can
      format.cedition output                                 %  come out via this         %wk  edition->cedition
      new.block
      format.caddr.pub "publisher" output.check
      output.cyear.check   output
      cincollectionlike.series.volume.number.pages output          %  route, too.
      format.date.modifydate.citedate output
    }
    { format.incoll.inproc.crossref output.nonnull
      new.block
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%图书book和
%会议录inproceedings(会议conference与inproceedings一样)，
%文献类型代码[C]
%硕士学位论文mastersthesis，
%文献类型代码[D]
%博士学位论文phdthesis，
%文献类型代码[D]
%技术报告techreport的类型是一样的，
%文献类型代码[R]
%
%因此我们直接拷贝book的相关内容即可。
%原始部分可以参考authordate1.bst。
%
%利用misc作为电子文献［EB/OL］所使用的类型
%存在的问题：无法正常调用url，只能利用note来生成。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {inproceedings}                                    %wk 改自incollection类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "editor" output.check                  %wk    format.editors->format.ceditors
      editor format.key output             }
    { format.authors "author" output.check                   %wk
      author format.key output             }
  if$
  new.block
  format.inproceedings.title output
  crossref missing$                                         %  Chapter and/or
    {
    before.all 'output.state :=
    format.in.ed.booktitle output                         %  page numbers can
      format.edition output                                 %  come out via this         %wk  edition->cedition
      new.block
      format.inproceedings.addr.pub "publisher" output.check
      output.year.check
      incollectionlike.series.volume.number.pages output          %  route, too.
      format.date.modifydate.citedate output
    }
    { format.incoll.inproc.crossref output.nonnull
      new.block
    }
  if$
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cinproceedings}                                           %wk 改自incollection类型
{ output.bibitem
  author empty$
    { format.ceditors "editor" output.check                  %wk    format.editors->format.ceditors
      editor format.key output             }
    { format.cauthors "author" output.check                   %wk
      author format.key output             }
  if$
  new.block
  format.cinproceedings.title output
  crossref missing$                                         %  Chapter and/or
    { format.in.ced.booktitle output                         %  page numbers can
      format.cedition output                                 %  come out via this         %wk  edition->cedition
      new.block
      format.cinproceedings.addr.pub "publisher" output.check
      output.cyear.check
      cincollectionlike.series.volume.number.pages output          %  route, too.
      format.date.modifydate.citedate output
    }
    { format.incoll.inproc.crossref output.nonnull
      new.block
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {conference} { inproceedings }
%FUNCTION {cconference} { cinproceedings }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {TECHREPORT}                             %wk   改自book类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.title "[R]" *  "title" output.check
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
      format.addr.institution "publisher" output.check
      output.year.check output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cTECHREPORT}                                    %wk   改自book类型
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.ctitle  "[R]" * "title" output.check                        %wk
  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
      format.caddr.institution "publisher" output.check
      output.cyear.check                                       %wk
      cbooklike.series.volume.number.pages output
    }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {mastersthesis}                                %wk   改自book类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.title "[D]" *  "title" output.check
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
%      format.addr.pub "publisher" output.check
      format.school.pub "publisher" output.check
      output.year.check output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cmastersthesis}                                %wk   改自book类型
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.ctitle  "[D]" * "title" output.check                      %wk
  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
%      format.caddr.pub "publisher" output.check
      format.cschool.pub "publisher" output.check
      output.cyear.check                                       %wk
      cbooklike.series.volume.number.pages output
    }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {phdthesis}                        %wk  改自book类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.title "[D]" *  "title" output.check
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
%      format.addr.pub "publisher" output.check
      format.school.pub "publisher" output.check
      output.year.check output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cphdthesis}                        %wk  改自book类型
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.ctitle  "[D]" * "title" output.check                        %wk
  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
%      format.caddr.pub "publisher" output.check
      format.cschool.pub "publisher" output.check
      output.cyear.check                                       %wk
      cbooklike.series.volume.number.pages output
    }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {proceedings}            %改自book类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.conference.title output
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
      format.addr.pub "publisher" output.check
      output.year.check output
      format.date.modifydate.citedate output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cproceedings}            %改自book类型
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.cconference.title output                       %wk
  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
      format.caddr.pub "publisher" output.check
      output.cyear.check                                       %wk
      cbooklike.series.volume.number.pages output
      format.date.modifydate.citedate output
     }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {manual}             %改自book类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.btitle "[H]" *  "title" output.check
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
      format.addr.pub "publisher" output.check
      output.year.check output
      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cmanual}                                             %wk
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.ctitle  "[H]" * "title" output.check                        %wk
  new.block
  crossref missing$
    { format.cedition output                                 %wk   edition->cedition
      new.block
      format.caddr.pub "publisher" output.check
      output.cyear.check                                       %wk
      cbooklike.series.volume.number.pages output
    }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  note output
  fin.entry
}
if$
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {misc}              %作为非常规文献的格式，可靠性低，应该仔细检查，改自book类型
{language empty$
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.misc.title output
  new.block
  crossref missing$
    { format.edition output
      booklike.series.volume.number output
      new.block
      format.misc.addr.pub "publisher" output.check
%      output.year.check output
      format.date.modifydate.citedate output
%      format.pages output
    }
    { format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}

%FUNCTION {cmisc}              %作为非常规文献的格式，可靠性低，应该仔细检查，改自book类型
{ output.bibitem
  author empty$
    { format.ceditors  "author and editor" output.check       %wk    format.editors->format.ceditors
      editor format.key output
    }
    { format.cauthors output.nonnull
      crossref missing$
        {"author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.cmisc.title output                       %wk

  new.block
  crossref missing$
    {
     format.cedition output                                 %wk   edition->cedition
      new.block
      format.cmisc.addr.pub "publisher" output.check
%      output.cyear.check                                       %wk
%      cbooklike.series.volume.number.pages output
      format.date.modifydate.citedate output
     }
    {  format.book.crossref output.nonnull
    }
  if$
  new.block
  format.url output
  new.block
  note output
  fin.entry
}
if$
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {unpublished}
{language empty$
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  output.year.month.check
  new.block
  format.btitle "title" output.check
  new.block
  note "note" output.check
  fin.entry
}

%FUNCTION {cunpublished}                                     %wk
{ output.bibitem
  format.cauthors "author" output.check                      %wk
  author format.key output
  output.cyear.month.check                                  %wk
  new.block
  format.ctitle "title" output.check                          %wk
  new.block
  note "note" output.check
  fin.entry
}
if$
}
FUNCTION {onlynote}              %定义note类型，将note项目单独原文输出，满足自定义任何条目的需求
{
newline$
  "\bibitem[" write$
  label write$
  "]{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
  new.block
  note output
  fin.entry
}

FUNCTION {default.type} { book }    %wk 因为主要是基于book类型,因此将缺省类型由misc改为book

MACRO {jan} {"Jan."}                                        %  ODWE, "months", &
                                                            %  Chicago, p. 383.
MACRO {feb} {"Feb."}

MACRO {mar} {"Mar."}

MACRO {apr} {"Apr."}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"Aug."}

MACRO {sep} {"Sept."}

MACRO {oct} {"Oct."}

MACRO {nov} {"Nov."}

MACRO {dec} {"Dec."}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}

READ

FUNCTION {sortify}
{ purify$
  "l" change.case$
}

INTEGERS { len }

FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}




FUNCTION {format.lab.names}                                      %wk
{ 's :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$ " et al." * }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " {\em et~al.}" * }
            { " and " * s #2 "{vv~}{ll}" format.name$ * }           %wk
          if$
        }
      if$
    }
  if$
}

FUNCTION {format.lab.cnames}                                      %wk
{ 's :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$ "~等" * }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " {\em et~al.}" * }
            { "和" * s #2 "{vv~}{ll}" format.name$ * }           %wk
          if$
        }
      if$
    }
  if$
}

FUNCTION {author.key.label}
{ author empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
%    {author format.lab.names }
     {language empty$
      {author format.lab.names}
      {author format.lab.cnames}
      if$}

  if$
}

FUNCTION {author.editor.key.label}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
%        { editor format.lab.names }
     {language empty$
      {editor format.lab.names}
      {editor format.lab.cnames}
      if$}

      if$
    }
%    { author format.lab.names }
     {language empty$
      {author format.lab.names}
      {author format.lab.cnames}
      if$}

  if$
}

FUNCTION {editor.key.label}
{ editor empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
%    { editor format.lab.names }
     {language empty$
      {editor format.lab.names}
      {editor format.lab.cnames}
      if$}

  if$
}

FUNCTION {author.key.organization.label}
{ author empty$
    { key empty$
        { organization empty$
            { cite$ #1 #3 substring$ }
            { "The " #4 organization chop.word #3 text.prefix$ }
          if$
        }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.organization.label}
{ editor empty$
    { key empty$
        { organization empty$
            { cite$ #1 #3 substring$ }
            { "The " #4 organization chop.word #3 text.prefix$ }
          if$
        }
        'key
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.short.authors}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.organization.label
        { type$ "manual" =
            'author.key.organization.label
            'author.key.label
          if$
        }
      if$
    }
  if$
  'short.list :=
}

FUNCTION {calc.label}
{ calc.short.authors
  short.list
  "("
  *
  year duplicate$ empty$
  short.list key field.or.null = or
     { pop$ ""}
     'skip$
  if$
  * ")" *
  'label :=
}

INTEGERS { seq.num }

FUNCTION {init.seq}
{ #0 'seq.num :=}

EXECUTE {init.seq}

FUNCTION {int.to.fix}
{ "000000000" swap$ int.to.str$ *
  #-1 #10 substring$
}


FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  seq.num #1 + 'seq.num :=
  seq.num  int.to.fix
  'sort.label :=
  sort.label *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}

SORT

STRINGS { longest.label last.label next.extra }

INTEGERS { longest.label.width last.extra.num number.label }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'longest.label.width :=
  #0 'last.extra.num :=
  #0 'number.label :=
}

FUNCTION {forward.pass}
{ last.label label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      label 'last.label :=
    }
  if$
  number.label #1 + 'number.label :=
}

FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  extra.label 'next.extra :=
  extra.label
  duplicate$ empty$
    'skip$
    { "{\natexlab{" swap$ * "}}" * }
  if$
  'extra.label :=
  label extra.label * 'label :=
}

EXECUTE {initialize.longest.label}

ITERATE {forward.pass}

REVERSE {reverse.pass}

FUNCTION {bib.sort.order}
{ sort.label  'sort.key$ :=
}

ITERATE {bib.sort.order}

SORT

FUNCTION {begin.bib}
{   preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{" number.label int.to.str$ *
  "}\setlength{\baselineskip}{20bp plus 2bp minus 1bp}\setlength{\itemsep}{0bp}\setlength{\parskip}{0pt}" *
  %加入三个setlength以符合电子科技大学关于参考文献行距的要求。
  write$ newline$
  "\providecommand{\natexlab}[1]{#1}"
  write$ newline$
  "\providecommand{\url}[1]{\texttt{#1}}"
  write$ newline$
  "\expandafter\ifx\csname urlstyle\endcsname\relax"
  write$ newline$
  "  \providecommand{\doi}[1]{doi: #1}\else"
  write$ newline$
  "  \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
  write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
% \fi
% \iffalse
%</bst>
% \fi
% \iffalse
%<*packagecheck>
% \fi
% \section{版本检查程序}
% \changes{v0.6.2}{2014/02/11}{增加一个用于检查依赖宏包版本的文件。}
%    \begin{macrocode}
% !Mode:: "TeX:UTF-8"

\makeatletter
\def\version@uestcthesis{v1.0.1}
\IfFileExists{ctexbook.cls}{
\documentclass[cs4size,UTF8,fancyhdr,hyperref,fntef,openany]{ctexbook}
}{
\documentclass{article}
}
\def\@parse@version@checkpackage#1/#2/#3#4#5\@nil{#1/#2/#3#4 }
\def\packagelist{}
%检查指定宏包版本是否高于所需版本日期，如果宏包存在则加载后读取版本日期。
\newcommand{\checkpackage}[2]{%
    \expandafter\def\csname#1@needversion\endcsname{#2}
    \IfFileExists{#1.\@pkgextension}{%
    \usepackage{#1}%
        \@ifpackagelater{#1}{#2}{%
        \expandafter\def\csname#1@checkresult\endcsname{OK!}
        }{%
        \expandafter\def\csname#1@checkresult\endcsname{too old!}
        }
        \expandafter\def\csname#1@currentversion\endcsname{%
        \xdef\cver@checkpackage{\csname ver@#1.sty\endcsname}
        \expandafter\@parse@version@checkpackage\cver@checkpackage\@nil%
        }%
    }%
    {\expandafter\def\csname#1@checkresult\endcsname{not found!}}%

    \xdef\packagelist{#1,\packagelist}
}
%个别宏包版本无法读取，鉴于版本较旧，只检查是否存在
\newcommand{\checkpackagespecial}[2]{%
    \expandafter\def\csname#1@needversion\endcsname{#2}
    \IfFileExists{#1.\@pkgextension}{%
    \usepackage{#1}%
        \expandafter\def\csname#1@checkresult\endcsname{Maybe OK!}

        \expandafter\def\csname#1@currentversion\endcsname{%
        unknown!
        }%
    }%
    {\expandafter\def\csname#1@checkresult\endcsname{not found!}}%

    \xdef\packagelist{#1,\packagelist}
}
%检查ctexbook文类的版本
\newcommand{\checkctexbookclass}[1]{%
    \expandafter\def\csname ctexbook@needversion\endcsname{#1}
    \IfFileExists{ctexbook.\@clsextension}{%
        \@ifclasslater{ctexbook}{#1}{%
        \expandafter\def\csname ctexbook@checkresult\endcsname{OK!}
        }{%
        \expandafter\def\csname ctexbook@checkresult\endcsname{too old!}
        }
        \expandafter\def\csname ctexbook@currentversion\endcsname{%
        \xdef\cver@checkpackage{\csname ver@ctexbook.cls\endcsname}
        \expandafter\@parse@version@checkpackage\cver@checkpackage\@nil%
        }%
    }%
    {\expandafter\def\csname ctexbook@checkresult\endcsname{not found!}}%

    \xdef\packagelist{ctexbook,\packagelist}
}
%生成输出行
\def\checkresult#1{%
    \makebox[4.5cm][l]{#1}%
    \makebox[10em][l]{\csname#1@needversion\endcsname}%
    \makebox[10em][l]{\csname#1@currentversion\endcsname}%
    \makebox[10em][l]{\csname#1@checkresult\endcsname}\\
}



%这些宏包是模板中主动加载的，测试顺序和模板中的加载顺序一致。
\checkctexbookclass{2011/03/11}
\checkpackage{mathptmx}{2005/04/12}
\checkpackage{etoolbox}{2011/01/03}
\checkpackage{ifthen}{2001/05/26}
\checkpackage{geometry}{2010/09/12}
\checkpackage{graphicx}{1999/02/16}
\checkpackage{calc}{2007/08/22}
\checkpackage{float}{2001/11/08}
\checkpackagespecial{texnames}{}%这个宏包没有版本号
\checkpackage{caption}{2013/05/02}
\checkpackage{booktabs}{2005/04/14}
\checkpackage{tabularx}{1999/01/07}
\checkpackage{threeparttable}{2003/06/13}
\checkpackage{longtable}{2004/02/01}
\checkpackage{placeins}{2005/04/18}
\checkpackage{flafter}{2000/07/23}
\checkpackage{amsmath}{2013/01/14}
\checkpackage{amsfonts}{2013/01/14}
\checkpackage{amssymb}{2013/01/14}
\checkpackage{bm}{2004/02/26}
\checkpackage{ntheorem}{2011/08/15}
\checkpackage{natbib}{2010/09/13}
\checkpackage{multibib}{2008/12/10}
\checkpackage{cmap}{2008/03/06}
\checkpackage{hyperxmp}{2013/07/18}
\checkpackage{hyperref}{2012/11/06}
\checkpackage{subfigure}{2002/07/30}
\checkpackage{enumitem}{2011/09/28}
\checkpackage{color}{2005/11/14}
\checkpackage{marvosym}{2011/07/20}
\checkpackage{glossaries}{2013/12/05}
\checkpackage{footmisc}{2011/06/06}
\checkpackage{pifont}{2005/04/12}

%这些宏包是由前面的宏包自动加载的。它们应该已经加载完毕。
\checkpackagespecial{fontenc}{2005/09/27}
\checkpackage{l3bootstrap}{2014/01/04}
\checkpackage{l3names}{2014/01/04}
\checkpackage{etex}{1998/03/26}
\checkpackage{expl3}{2014/01/07}
\checkpackage{l3basics}{2014/01/04}
\checkpackage{l3expan}{2014/01/04}
\checkpackage{l3tl}{2013/12/27}
\checkpackage{l3seq}{2013/12/14}
\checkpackage{l3int}{2013/08/02}
\checkpackage{l3quark}{2013/12/14}
\checkpackage{l3prg}{2014/01/04}
\checkpackage{l3clist}{2013/07/28}
\checkpackage{l3token}{2013/08/25}
\checkpackage{l3prop}{2013/12/14}
\checkpackage{l3msg}{2013/07/28}
\checkpackage{l3file}{2013/10/13}
\checkpackage{l3skip}{2013/07/28}
\checkpackage{l3keys}{2013/12/08}
\checkpackage{l3fp}{2014/01/04}
\checkpackage{l3box}{2013/07/28}
\checkpackage{l3coffins}{2013/12/14}
\checkpackage{l3color}{2012/08/29}
\checkpackage{l3luatex}{2013/07/28}
\checkpackage{l3candidates}{2014/01/06}
\checkpackage{ifpdf}{2011/01/30}
\checkpackage{ifxetex}{2010/09/12}
\checkpackage{keyval}{1999/03/16}
\checkpackage{indentfirst}{1995/11/23}
\checkpackage{fix-cm}{2006/09/13}
\checkpackage{CJKutf8}{2012/05/07}
\checkpackage{inputenc}{2008/03/30}
\checkpackage{CJK}{2012/05/07}
\checkpackage{MULEenc}{2012/05/07}
\checkpackage{CJKpunct}{2009/05/06}
\checkpackage{CJKfntef}{2012/05/07}
\checkpackage{CJKulem}{2012/05/07}
\checkpackage{ulem}{2012/05/18}
\checkpackage{ifvtex}{2010/03/01}
\checkpackage{graphics}{2009/02/05}
\checkpackage{trig}{1999/03/16}
\checkpackage{infwarerr}{2010/04/08}
\checkpackage{ltxcmds}{2011/11/09}
\checkpackage{caption3}{2013/05/02}
\checkpackage{array}{2008/09/09}
\checkpackage{amstext}{2000/06/29}
\checkpackage{amsbsy}{1999/11/29}
\checkpackage{amsopn}{1999/12/14}
\checkpackage{atenddvi}{2007/04/17}
\checkpackage{zref-abspage}{2012/04/04}
\checkpackage{zref-base}{2012/04/04}
\checkpackage{kvsetkeys}{2012/04/25}
\checkpackage{etexcmds}{2011/02/16}
\checkpackage{ifluatex}{2010/03/01}
\checkpackage{kvdefinekeys}{2011/04/07}
\checkpackage{pdftexcmds}{2011/11/29}
\checkpackage{auxhook}{2011/03/04}
\checkpackage{atbegshi}{2011/10/05}
\checkpackage{zref-lastpage}{2012/04/04}
\checkpackage{atveryend}{2011/06/30}
\checkpackage{kvoptions}{2011/06/30}
\checkpackage{pdfescape}{2011/11/25}
\checkpackage{stringenc}{2011/12/02}
\checkpackage{intcalc}{2007/09/27}
\checkpackage{hobsub-hyperref}{2012/04/25}
\checkpackage{hobsub-generic}{2012/04/25}
\checkpackage{hobsub}{2012/04/25}
\checkpackage{bigintcalc}{2012/04/08}
\checkpackage{bitset}{2011/01/30}
\checkpackage{uniquecounter}{2011/01/30}
\checkpackage{letltxmacro}{2010/09/02}
\checkpackage{hopatch}{2011/06/24}
\checkpackage{xcolor-patch}{2011/01/30}
\checkpackage{refcount}{2011/10/16}
\checkpackage{hycolor}{2011/01/30}
\checkpackage{url}{2006/04/12}
\checkpackage{rerunfilecheck}{2011/04/15}
\checkpackage{xkeyval}{2012/10/14}
\checkpackage{mfirstuc}{2013/11/04}
\checkpackage{textcase}{2004/10/07}
\checkpackage{xfor}{2009/02/05}
\checkpackage{datatool-base}{2013/09/06}
\checkpackage{substr}{2009/10/20}
\checkpackage{datatool-fp}{2013/08/29}
\checkpackage{fp}{1995/04/02}
\checkpackage{defpattern}{1994/10/12}
\checkpackage{fp-basic}{1996/05/13}
\checkpackage{fp-addons}{1995/03/15}
\checkpackage{fp-snap}{1995/04/05}
\checkpackage{fp-exp}{1995/04/03}
\checkpackage{fp-trigo}{1995/04/14}
\checkpackage{fp-pas}{1994/08/29}
\checkpackage{fp-random}{1995/02/23}
\checkpackage{fp-eqn}{1995/04/03}
\checkpackage{fp-upn}{1996/10/21}
\checkpackage{fp-eval}{1995/04/03}
\checkpackage{glossaries-compatible-307}{2013/11/14}
\checkpackage{glossary-hypernav}{2013/11/14}
\checkpackage{glossary-list}{2013/11/14}
\checkpackage{glossary-long}{2013/11/14}
\checkpackage{glossary-super}{2013/11/14}
\checkpackage{supertabular}{2004/02/20}
\checkpackage{glossary-tree}{2013/11/14}
\checkpackage{ltcaption}{2013/02/03}
\checkpackage{nameref}{2012/10/27}
\checkpackage{gettitlestring}{2010/12/03}
\makeatother
\begin{document}
\chapter{Packages Check}
\makeatletter%
\noindent NOTICE:This report is prepared for uestcthesis \version@uestcthesis.

\noindent\makebox[4.5cm][l]{\bf Package}\makebox[10em][l]{\bf Need}\makebox[10em][l]{\bf Have}\makebox[10em][l]{\bf Check Result}\\
\newif\iflisthasnext
%从记录宏包名的\packagelist弹出一个宏包名
\def\poppackagename#1,#2\@nil{%
\checkresult{#1}%
\def\packagelist{#2}%
}
\loop
\expandafter\poppackagename\packagelist\@nil%
\ifx\packagelist\empty\listhasnextfalse %
\else\listhasnexttrue%
\fi%
\iflisthasnext%
\repeat%
\makeatother
\end{document}

%    \end{macrocode}
% \iffalse
%</packagecheck>
% \fi


% \iffalse
%<*beamer>
% \fi
% \section{Beamer主题}
% \changes{v0.4.5}{2013/06/01}{增加一个Beamer主题}
% 一个简单的带学校LOGO的主题。
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesPackage{beamerthemeuestcthesis}
    [2013/05/31 v0.1 UESTC thesis beamer theme]
\RequirePackage[UTF8,fancyhdr,hyperref,fntef]{ctex}[2011/03/11]
\usetheme[hideothersubsections]{PaloAlto}
\definecolor{beamer@logo@uestcthesis}{RGB}{0,86,159}
\setbeamercolor*{palette secondary}{use=structure,fg=white,bg=beamer@logo@uestcthesis}
%    \begin{macrocode}
\begin{filecontents*}{logo.tex}
%    \end{macrocode}
% logo文件内容不显示在文档中。
% \iffalse
\documentclass[pstricks=true]{standalone}
\usepackage{pstricks}

\begin{document}
%LaTeX with PSTricks extensions
%%Creator: 0.48.3.1
%%Please note this file requires PSTricks extensions
\psset{xunit=.5pt,yunit=.5pt,runit=.5pt}
\begin{pspicture}(3090.08740234,3090.08740234)
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1545.04993132,2592.06227963)
\curveto(968.37495696,2592.06227963)(498.02497786,2121.72480054)(498.02497786,1545.03732617)
\curveto(498.02497786,968.36235181)(968.37495696,498.01237271)(1545.04993132,498.01237271)
\curveto(2121.72490569,498.01237271)(2592.07488478,968.36235181)(2592.07488478,1545.03732617)
\curveto(2592.07488478,2121.72480054)(2121.72490569,2592.06227963)(1545.04993132,2592.06227963)
\closepath
\moveto(1545.04993132,3090.08725749)
\curveto(2396.0373935,3090.08725749)(3090.09986264,2396.02478835)(3090.09986264,1545.03732617)
\curveto(3090.09986264,694.062364)(2396.0373935,-0.00010515)(1545.04993132,-0.00010515)
\curveto(694.07496915,-0.00010515)(-0,694.062364)(-0,1545.03732617)
\curveto(-0,2396.02478835)(694.07496915,3090.08725749)(1545.04993132,3090.08725749)
\closepath
}
}
{
\newrgbcolor{curcolor}{0 0.36078431 0.63529412}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(67.77499699,1579.99982462)
\curveto(68.02499698,1579.72482463)(68.26249697,1579.43732464)(68.51249695,1579.14982466)
\curveto(72.82499676,1579.03732466)(76.5124966,1580.91232458)(80.19999644,1581.74982454)
\curveto(87.46249611,1583.39982447)(99.48749558,1581.37482456)(107.09999524,1579.83732463)
\curveto(123.33749452,1576.56232477)(141.22499372,1559.13732555)(150.6499933,1550.43732593)
\curveto(173.47499229,1529.38732687)(189.31249158,1505.61232792)(216.0374904,1486.63732877)
\curveto(218.61249028,1485.8248288)(221.18749017,1485.01232884)(223.74999005,1484.19982888)
\curveto(237.31248945,1479.58732908)(236.41248949,1488.66232868)(244.88748911,1490.64982859)
\curveto(261.37498838,1494.48732842)(278.16248764,1489.98732862)(289.26248714,1477.14982919)
\curveto(291.78748703,1474.23732932)(295.37498687,1471.21232945)(296.66248681,1467.69982961)
\curveto(299.38748669,1460.23732994)(293.37498696,1454.4498302)(287.46248722,1451.83733031)
\curveto(282.22498746,1449.52483042)(276.18748772,1446.07483057)(270.17498799,1445.28733061)
\curveto(260.42498842,1444.03733066)(251.17498884,1444.46233064)(242.46248922,1441.93733075)
\curveto(242.38748923,1441.63733077)(242.29998923,1441.33733078)(242.21248923,1441.03733079)
\lineto(242.43748922,1440.66233081)
\curveto(249.26248892,1438.79983089)(254.47498869,1436.73733099)(260.02498844,1434.2123311)
\curveto(266.69998815,1431.16233123)(272.2624879,1431.66233121)(278.62498762,1429.09983133)
\curveto(287.81248721,1425.38733149)(296.62498681,1423.43733158)(305.46248642,1421.07483168)
\curveto(312.38748611,1419.21233177)(322.53748566,1415.47483193)(329.78748534,1415.67483192)
\curveto(346.79998458,1416.1373319)(355.09998422,1450.86233036)(367.53748366,1461.43732989)
\curveto(376.61248326,1469.14982955)(391.72498259,1464.69982974)(404.38748202,1465.17482972)
\curveto(412.23748168,1465.48732971)(427.61248099,1466.64982966)(434.2999807,1469.53732953)
\curveto(440.8999804,1472.3873294)(451.66247992,1475.37482927)(456.24997972,1481.24982901)
\curveto(463.04997942,1489.99982862)(465.99997929,1502.02482808)(469.57497913,1515.66232748)
\curveto(473.56247895,1528.98732689)(477.54997877,1542.29982629)(481.5374786,1555.6123257)
\curveto(482.13747857,1560.62482548)(480.33747865,1566.74982521)(479.71247868,1571.28732501)
\curveto(478.59997873,1579.22482465)(480.47497864,1596.61232388)(475.81247885,1601.72482365)
\curveto(467.56247922,1610.77482325)(453.31247985,1623.71232268)(442.39998034,1609.29982332)
\curveto(440.9624804,1607.3998234)(438.02498053,1604.22482354)(437.61248055,1601.24982367)
\curveto(436.11248061,1590.42482415)(435.66248063,1573.92482489)(434.88748067,1561.98732542)
\curveto(433.93748071,1547.52482606)(430.82498085,1533.49982669)(429.17498092,1521.28732723)
\curveto(427.524981,1509.07482777)(419.87498134,1500.99982813)(410.66248175,1500.88732813)
\curveto(394.77498245,1500.68732814)(388.28748274,1525.18732705)(386.39998282,1538.21232648)
\curveto(384.84998289,1548.862326)(387.42498278,1558.66232557)(381.99998302,1566.8498252)
\curveto(371.84998347,1582.19982452)(350.14998444,1575.24982483)(332.18748523,1586.36232434)
\curveto(316.41248594,1596.1123239)(301.13748661,1606.87482342)(290.48748709,1620.08732284)
\curveto(288.22498719,1622.89982271)(287.61248722,1626.44982255)(286.41248727,1629.9248224)
\curveto(283.63748739,1637.92482204)(273.17498786,1653.28732136)(264.41248825,1657.91232115)
\curveto(253.74998872,1663.5498209)(234.93748956,1646.72482165)(227.52498989,1642.23732185)
\curveto(215.06249044,1634.71232219)(202.437491,1626.71232254)(190.57499153,1618.19982292)
\curveto(184.81249179,1614.0498231)(177.89999209,1606.76232343)(170.8749924,1605.2248235)
\curveto(163.86249272,1603.68732357)(153.63749317,1609.52482331)(146.83749347,1610.53732326)
\curveto(120.56249464,1614.46232309)(84.62499624,1624.62482263)(67.77499699,1579.99982462)
\closepath
\moveto(193.71249139,1594.42482398)
\curveto(197.31249123,1607.72482339)(229.68748979,1627.98732249)(246.48748904,1617.33732296)
\curveto(256.13748861,1611.22482323)(262.56248833,1602.33732363)(270.21248799,1595.64982392)
\curveto(280.26248754,1586.86232431)(288.54998717,1573.6998249)(278.8624876,1559.07482555)
\curveto(270.33748798,1560.1248255)(261.81248836,1561.17482545)(253.27498874,1562.23732541)
\curveto(235.93748951,1564.44982531)(217.12499035,1572.37482496)(204.7124909,1580.4248246)
\curveto(201.51249104,1582.49982451)(197.16249124,1583.83732445)(195.12499133,1586.61232432)
\curveto(194.64999135,1589.21232421)(194.18749137,1591.81232409)(193.71249139,1594.42482398)
\closepath
\moveto(315.31248598,1548.07482604)
\curveto(315.62498597,1544.57482619)(314.962486,1541.34982634)(312.99998609,1538.81232645)
\curveto(311.78748614,1537.22482652)(310.68748619,1536.66232654)(309.49998624,1536.67482654)
\curveto(304.63748646,1536.71232654)(305.04998644,1539.32482643)(304.86248645,1543.17482625)
\curveto(304.52498646,1549.88732596)(306.42498638,1552.78732583)(315.31248598,1548.07482604)
\closepath
\moveto(339.88748489,1541.32482634)
\curveto(341.69998481,1541.74982632)(342.68748477,1541.54982633)(343.13748475,1539.56232642)
\curveto(343.82498472,1536.52482655)(342.79998476,1536.52482655)(340.47498487,1536.22482656)
\curveto(338.49998495,1535.96232658)(338.09998497,1536.63732655)(337.69998499,1537.97482649)
\curveto(336.93748502,1540.54982637)(337.17498501,1540.71232636)(339.88748489,1541.32482634)
\closepath
\moveto(1119.69995023,2914.94976528)
\curveto(1119.59995023,2914.5247653)(1119.49995024,2914.08726532)(1119.39995024,2913.64976534)
\curveto(1121.67495014,2907.21226562)(1123.94995004,2900.78726591)(1126.21244994,2894.36226619)
\curveto(1127.49994988,2890.08726638)(1130.49994975,2885.71226658)(1131.19994972,2882.47476672)
\curveto(1133.49994962,2871.7997672)(1150.99994884,2853.26226802)(1141.33744927,2841.17476856)
\curveto(1133.27494963,2831.06226901)(1115.67495041,2824.73726929)(1105.99995084,2816.93726964)
\curveto(1103.16245096,2814.64976974)(1098.52495117,2811.64976987)(1098.39995118,2808.27477002)
\curveto(1099.16245114,2801.34977033)(1105.68745085,2796.68727054)(1106.7874508,2789.39977086)
\curveto(1108.48745073,2778.27477135)(1106.98745079,2758.46227224)(1116.43745037,2750.51227259)
\curveto(1121.21245016,2746.48727277)(1127.86244987,2748.41227268)(1133.31244962,2746.26227278)
\curveto(1137.84994942,2736.36227322)(1133.9374496,2716.21227411)(1131.42494971,2707.5372745)
\curveto(1129.19994981,2699.82477484)(1124.17495003,2691.06227523)(1132.27494967,2681.18727567)
\curveto(1139.36244935,2672.56227605)(1147.449949,2672.19977607)(1159.03744848,2675.17477594)
\curveto(1162.46244833,2676.69977587)(1165.89994818,2678.2247758)(1169.33744802,2679.74977573)
\curveto(1179.26244758,2682.7872756)(1186.84994724,2694.0122751)(1195.07494688,2688.54977534)
\curveto(1207.33744633,2680.4122757)(1210.88744618,2662.94977648)(1221.83744569,2648.17477714)
\curveto(1223.14994563,2646.38727722)(1224.94994555,2640.84977746)(1226.68744547,2638.57477756)
\curveto(1239.33744491,2622.0372783)(1247.23744456,2601.6872792)(1262.1124439,2587.94977981)
\curveto(1268.03744364,2582.48728006)(1271.42494348,2574.01228043)(1277.8999432,2570.2997806)
\curveto(1278.22494318,2570.43728059)(1278.54994317,2570.58728059)(1278.87494315,2570.73728058)
\curveto(1280.61244308,2577.31228029)(1276.16244327,2584.09977999)(1274.07494337,2592.09977963)
\curveto(1270.66244352,2605.27477904)(1265.12494376,2616.19977856)(1262.33744389,2629.74977796)
\curveto(1259.53744401,2643.32477735)(1256.02494417,2657.27477673)(1256.22494416,2669.91227617)
\curveto(1256.33744416,2676.84977586)(1259.67494401,2683.72477556)(1258.51244406,2691.19977522)
\curveto(1257.97494408,2694.73727507)(1255.71244418,2697.08727496)(1254.94994422,2699.88727484)
\curveto(1253.81244427,2704.04977465)(1250.63744441,2709.7747744)(1248.5749445,2712.91227426)
\curveto(1242.27494478,2722.44977384)(1238.77494494,2731.58727343)(1237.12494501,2741.299773)
\curveto(1235.84994507,2748.78727267)(1236.29994505,2758.31227224)(1237.61244499,2765.31227193)
\curveto(1239.69994489,2776.39977144)(1246.82494458,2788.61227089)(1237.03744501,2802.93727026)
\curveto(1227.13744545,2817.43726961)(1214.04994604,2823.37476935)(1202.97494653,2833.32476891)
\curveto(1195.57494686,2839.97476861)(1190.22494709,2847.96226826)(1182.94994742,2855.24976793)
\curveto(1174.52494779,2863.69976756)(1158.6124485,2897.09976607)(1153.08744874,2909.23726553)
\curveto(1151.29994882,2910.82476546)(1122.72495009,2915.77476524)(1119.69995023,2914.94976528)
\closepath
\moveto(1008.66245516,2864.12476754)
\curveto(996.5999557,2848.14976825)(992.57495588,2807.78727004)(997.14995568,2784.99977106)
\curveto(998.22495563,2782.34977117)(999.31245558,2779.69977129)(1000.38745553,2777.04977141)
\curveto(1003.81245538,2760.19977216)(1013.49995495,2741.82477297)(1010.38745509,2727.44977361)
\curveto(1009.51245513,2723.42477379)(994.11245581,2710.17477438)(990.54995597,2706.01227457)
\curveto(976.4749566,2689.5372753)(960.13745732,2663.78727644)(971.51245682,2638.51227757)
\curveto(972.76245676,2637.89977759)(974.0124567,2637.27477762)(975.27495665,2636.66227765)
\curveto(988.62495606,2642.2122774)(992.54995588,2655.57477681)(1003.61245539,2662.4247765)
\curveto(1008.38745518,2665.37477637)(1016.8874548,2666.14977634)(1015.04995488,2663.44977646)
\curveto(1017.22495478,2657.86227671)(1014.86245489,2650.78727702)(1015.18745487,2645.29977727)
\curveto(1015.88745484,2633.38727779)(1016.38745482,2622.36227828)(1015.89995484,2610.6622788)
\curveto(1015.58745486,2603.27477913)(1013.76245494,2593.87477955)(1015.27495487,2586.31227989)
\curveto(1017.87495476,2573.28728047)(1027.13745434,2560.19978105)(1035.64995397,2553.66228134)
\curveto(1045.87495351,2556.01228123)(1045.61245352,2563.71228089)(1048.62495339,2569.41228064)
\curveto(1054.01245315,2579.61228018)(1057.94995297,2588.69977978)(1064.34995269,2598.13727936)
\curveto(1066.04995261,2600.64977925)(1070.59995241,2612.72477871)(1074.12495225,2612.47477872)
\curveto(1083.38745184,2613.27477869)(1097.8999512,2581.06228012)(1095.84995129,2572.19978051)
\curveto(1094.67495134,2567.12478074)(1089.46245157,2565.6747808)(1086.47495171,2561.57478099)
\curveto(1086.46245171,2561.362281)(1086.46245171,2561.174781)(1086.44995171,2560.97478101)
\curveto(1089.89995155,2553.69978134)(1110.19995065,2546.32478166)(1117.51245033,2549.22478154)
\curveto(1127.97494986,2562.81228093)(1123.64995005,2584.28727998)(1110.19995065,2602.66227916)
\curveto(1106.01245084,2610.7747788)(1101.81245102,2618.89977844)(1097.61245121,2627.02477808)
\curveto(1093.2999514,2634.98727772)(1088.97495159,2642.94977737)(1084.64995179,2650.91227702)
\curveto(1083.59995183,2656.51227677)(1088.8749516,2671.78727609)(1090.06245155,2677.69977582)
\curveto(1092.53745144,2689.91227528)(1093.62495139,2703.32477469)(1094.56245135,2715.82477413)
\curveto(1095.33745131,2726.22477367)(1094.83745133,2737.13727318)(1093.03745141,2748.32477269)
\curveto(1092.47495144,2751.77477253)(1090.71245152,2759.41227219)(1087.93745164,2760.44977215)
\curveto(1083.19995185,2755.78727235)(1083.21245185,2745.99977279)(1082.1874519,2739.68727307)
\curveto(1081.24995194,2733.86227333)(1079.68745201,2726.97477363)(1078.69995205,2721.1122739)
\curveto(1077.47495211,2713.77477422)(1078.14995208,2706.87477453)(1076.06245217,2699.96227484)
\curveto(1074.68745223,2695.38727504)(1064.63745268,2684.03727554)(1057.337453,2687.2372754)
\curveto(1047.68745343,2691.47477521)(1047.92495342,2712.16227429)(1042.97495364,2720.21227394)
\curveto(1036.86245391,2730.14977349)(1028.91245426,2739.32477309)(1022.29995456,2751.53727254)
\curveto(1021.64995459,2754.09977243)(1021.01245462,2756.64977232)(1020.36245464,2759.1997722)
\curveto(1018.61245472,2762.71227205)(1015.11245488,2768.2997718)(1014.96245488,2772.6622716)
\curveto(1014.82495489,2777.09977141)(1017.67495476,2782.66227116)(1018.97495471,2786.77477098)
\curveto(1023.5374545,2801.27477033)(1029.64995423,2819.12476954)(1030.2749542,2834.67476885)
\curveto(1030.77495418,2846.8872683)(1026.42495438,2872.01226719)(1008.66245516,2864.12476754)
\closepath
\moveto(1143.03744919,2799.03727043)
\curveto(1159.37494847,2803.89977022)(1164.81244822,2781.7372712)(1153.13744874,2772.98727159)
\curveto(1150.61244885,2772.94977159)(1148.08744897,2772.89977159)(1145.56244908,2772.8497716)
\curveto(1140.44994931,2773.62477156)(1132.76244965,2781.02477123)(1133.63744961,2787.81227093)
\curveto(1134.32494958,2793.28727069)(1139.89994933,2794.42477064)(1143.03744919,2799.03727043)
\closepath
\moveto(1178.97494759,2728.08727359)
\curveto(1175.98744773,2723.1997738)(1167.6999481,2714.2122742)(1160.17494843,2716.21227411)
\curveto(1150.76244885,2718.712274)(1155.18744865,2741.02477301)(1156.49994859,2746.28727278)
\curveto(1176.22494772,2759.08727221)(1187.38744722,2741.67477298)(1178.97494759,2728.08727359)
\closepath
\moveto(1046.41245349,2660.93727657)
\curveto(1061.9124528,2665.71227636)(1057.58745299,2637.6747776)(1046.27495349,2644.72477729)
\curveto(1038.97495382,2649.44977708)(1044.84995356,2656.87477675)(1046.41245349,2660.93727657)
\closepath
\moveto(3062.53736387,1505.88732791)
\curveto(3054.52486423,1509.67482774)(3042.46236476,1506.32482789)(3033.91236514,1508.94982778)
\curveto(3023.98736558,1511.98732764)(3013.64986604,1514.38732753)(3003.68736649,1517.77482738)
\curveto(2999.34986668,1519.24982732)(2994.86236688,1522.31232718)(2990.54986707,1523.62482712)
\curveto(2985.69986728,1525.09982706)(2970.57486796,1529.63732686)(2965.34986819,1524.97482706)
\curveto(2966.62486813,1519.39982731)(2967.06236811,1514.87482751)(2970.26236797,1510.34982771)
\curveto(2974.36236779,1504.54982797)(2981.79986746,1502.26232807)(2985.68736729,1495.08732839)
\curveto(2994.59986689,1478.67482912)(2996.86236679,1452.28733029)(3013.94986603,1446.09983057)
\curveto(3016.27486593,1445.26233061)(3026.69986546,1442.84983071)(3029.74986533,1444.53733064)
\curveto(3031.31236526,1445.66233059)(3032.87486519,1446.78733054)(3034.43736512,1447.89983049)
\curveto(3052.8248643,1458.56233002)(3055.67486417,1467.61232961)(3060.57486396,1486.12482879)
\curveto(3062.29986388,1492.6123285)(3065.01236376,1497.2373283)(3062.53736387,1505.88732791)
\closepath
\moveto(2993.07486696,1660.59982104)
\curveto(2992.212367,1662.32482096)(2991.33736703,1664.06232088)(2990.46236707,1665.7873208)
\curveto(2988.57486716,1668.57482068)(2982.73736742,1671.49982055)(2979.72486755,1672.5873205)
\curveto(2975.84986772,1673.99982044)(2971.58736791,1673.38732047)(2966.84986812,1673.18732048)
\curveto(2963.68736826,1673.21232047)(2960.5373684,1673.22482047)(2957.37486854,1673.24982047)
\curveto(2951.84986879,1673.43732046)(2946.94986901,1668.1373207)(2944.27486913,1666.08732079)
\curveto(2933.07486962,1657.51232117)(2929.27486979,1655.06232128)(2925.39986997,1642.27482185)
\curveto(2924.48737001,1639.86232196)(2923.57487005,1637.43732206)(2922.66237009,1635.02482217)
\curveto(2921.56237014,1633.16232225)(2919.34987023,1632.2248223)(2918.69987026,1630.08732239)
\curveto(2916.98737034,1624.43732264)(2924.03737003,1611.46232322)(2927.92486985,1608.38732336)
\curveto(2948.51236894,1613.67482312)(2990.63736707,1632.66232228)(2993.73736693,1647.47482162)
\curveto(2994.61236689,1651.66232143)(2993.76236693,1656.11232123)(2993.07486696,1660.59982104)
\closepath
\moveto(3002.62486653,1595.82482391)
\curveto(2994.2998669,1603.39982358)(2966.61236813,1599.52482375)(2960.5373684,1588.67482423)
\curveto(2958.3373685,1584.74982441)(2960.37486841,1580.87482458)(2961.86236834,1576.33732478)
\curveto(2962.7998683,1572.94982493)(2963.72486826,1569.54982508)(2964.66236822,1566.16232523)
\curveto(2967.22486811,1562.87482538)(2972.22486788,1560.62482548)(2976.22486771,1559.58732553)
\curveto(2978.81236759,1558.92482555)(2983.42486739,1556.84982565)(2986.69986724,1558.03732559)
\curveto(2995.56236685,1561.23732545)(3004.33736646,1586.32482434)(3002.62486653,1595.82482391)
\closepath
\moveto(2924.82486999,1551.94982586)
\lineto(2916.79987035,1575.76232481)
\curveto(2903.14987095,1600.37482371)(2888.79987159,1625.64982259)(2873.88737225,1647.9123216)
\curveto(2868.62487249,1655.76232125)(2861.73737279,1669.67482063)(2854.28737313,1672.96232049)
\curveto(2847.49987343,1675.97482035)(2838.33737383,1673.88732044)(2830.1873742,1674.61232041)
\curveto(2821.34987459,1675.41232038)(2793.76237582,1677.67482028)(2786.67487613,1669.44982064)
\curveto(2782.62487631,1664.74982085)(2777.98737652,1649.84982151)(2783.78737626,1642.33732185)
\curveto(2791.9873759,1631.72482232)(2809.29987513,1635.46232215)(2818.03737474,1626.33732256)
\curveto(2823.3623745,1620.78732281)(2824.41237445,1611.9248232)(2829.18737424,1605.1623235)
\curveto(2838.73737382,1591.6373241)(2851.61237324,1580.4373246)(2862.21237277,1567.83732516)
\curveto(2868.78737248,1560.03732551)(2886.51237169,1538.41232647)(2880.92487194,1527.76232694)
\curveto(2868.09987251,1527.27482696)(2859.77487288,1542.99982626)(2852.07487322,1552.04982586)
\curveto(2838.89987381,1567.51232517)(2829.47487423,1579.61232464)(2809.8373751,1584.17482443)
\curveto(2807.29987521,1584.76232441)(2803.28737539,1586.12482435)(2800.64987551,1586.37482433)
\curveto(2794.0873758,1587.01232431)(2776.61237658,1580.3498246)(2773.72487671,1575.72482481)
\curveto(2767.162377,1565.18732528)(2779.48737645,1561.07482546)(2785.53737618,1558.57482557)
\curveto(2798.14987562,1553.3623258)(2831.24987415,1545.33732616)(2831.18737415,1525.89982702)
\curveto(2823.23737451,1519.29982732)(2814.02487492,1517.14982741)(2803.74987537,1519.24982732)
\curveto(2785.77487617,1522.89982716)(2749.1873778,1544.4998262)(2740.51237818,1562.14982541)
\curveto(2734.56237845,1574.26232487)(2734.96237843,1592.41232407)(2734.68737844,1603.71232356)
\curveto(2734.53737845,1610.48732326)(2737.68737831,1617.01232297)(2731.31237859,1621.39982278)
\curveto(2724.92487888,1625.79982258)(2712.41237943,1622.66232272)(2706.58737969,1616.67482299)
\curveto(2698.48738005,1608.32482336)(2694.51238023,1596.28732389)(2689.26238046,1586.18732434)
\curveto(2685.32488064,1578.61232468)(2676.72488102,1570.73732503)(2670.3873813,1565.62482526)
\curveto(2659.67488178,1556.98732564)(2645.04988243,1549.58732597)(2644.12488247,1535.3373266)
\curveto(2643.76238248,1529.81232685)(2649.48738223,1517.18732741)(2650.39988219,1512.53732762)
\curveto(2652.13738211,1505.52482793)(2653.86238203,1498.51232824)(2655.59988196,1491.49982855)
\curveto(2655.59988196,1488.81232867)(2656.42488192,1479.2623291)(2657.79988186,1477.0248292)
\curveto(2662.89988163,1468.81232956)(2671.94988123,1463.04982982)(2680.38738086,1460.47482993)
\curveto(2682.52488076,1460.57482993)(2684.66238067,1460.67482992)(2686.81238057,1460.76232992)
\curveto(2701.32487993,1459.62482997)(2723.96237892,1467.08732964)(2734.63737844,1458.84983)
\curveto(2745.92487794,1450.12483039)(2747.14987789,1433.19983114)(2754.72487755,1419.13733177)
\curveto(2759.56237734,1410.16233217)(2763.17487718,1398.79983267)(2776.0498766,1406.08733235)
\curveto(2787.2998761,1412.46233207)(2797.34987566,1435.73733103)(2794.67487578,1449.04983044)
\curveto(2792.73737586,1458.69983001)(2781.77487635,1469.57482953)(2776.89987657,1476.08732924)
\curveto(2773.51237672,1480.59982904)(2771.6123768,1484.78732885)(2776.97487656,1487.63732872)
\curveto(2788.48737605,1493.77482845)(2810.13737509,1489.61232864)(2819.37487468,1487.17482874)
\curveto(2822.92487452,1486.23732879)(2827.04987434,1484.07482888)(2830.92487416,1483.84982889)
\curveto(2834.562374,1483.6498289)(2836.59987391,1485.68732881)(2840.34987375,1486.14982879)
\curveto(2850.07487331,1487.34982874)(2858.37487294,1490.17482861)(2866.43737259,1488.01232871)
\curveto(2880.32487197,1484.26232887)(2892.64987142,1466.94982964)(2911.1123706,1476.04982924)
\curveto(2914.53737045,1477.74982916)(2918.64987027,1477.72482916)(2920.62487018,1480.14982906)
\curveto(2924.96236998,1485.44982882)(2927.74986986,1498.69982823)(2929.2248698,1505.86232791)
\curveto(2931.49986969,1516.91232742)(2927.52486987,1529.17482688)(2927.49986987,1541.16232634)
\curveto(2926.59986991,1544.76232618)(2925.71236995,1548.36232602)(2924.82486999,1551.94982586)
\closepath
\moveto(2721.63737902,1526.512327)
\curveto(2727.48737876,1507.18732785)(2710.31237953,1499.22482821)(2698.12488007,1508.81232778)
\curveto(2687.84988052,1516.89982742)(2681.5873808,1550.32482594)(2698.56238005,1552.38732585)
\curveto(2710.01237954,1547.11232608)(2713.2498794,1537.13732652)(2721.63737902,1526.512327)
\closepath
\moveto(2104.82490644,2864.63726752)
\curveto(2097.57490676,2861.39976766)(2093.46240694,2851.06226812)(2088.96240714,2843.21226847)
\curveto(2082.91240741,2832.66226894)(2076.72490769,2819.83726951)(2070.78740795,2809.73726996)
\curveto(2066.39990815,2802.27477029)(2064.04990825,2790.46227081)(2058.26240851,2783.49977112)
\curveto(2044.61240912,2767.08727185)(2005.04991087,2781.01227123)(1984.2749118,2775.69977147)
\curveto(1968.93741248,2771.77477164)(1958.11241296,2759.72477218)(1944.86241355,2750.92477257)
\curveto(1941.93741368,2748.97477266)(1934.774914,2750.72477258)(1934.03741403,2754.6997724)
\curveto(1932.66241409,2762.31227206)(1950.68741329,2775.33727148)(1954.84991311,2778.12477136)
\curveto(1956.02491305,2779.5122713)(1957.199913,2780.89977124)(1958.36241295,2782.28727118)
\curveto(1971.72491236,2795.3497706)(1993.2874114,2807.03727008)(1997.33741122,2831.43726899)
\curveto(1998.97491114,2835.7747688)(2000.61241107,2840.09976861)(2002.249911,2844.42476841)
\curveto(2002.74991098,2848.94976821)(2002.124911,2855.77476791)(2000.18741109,2859.41226775)
\curveto(1996.77491124,2865.78726746)(1981.33741193,2874.87476706)(1972.9874123,2871.97476719)
\curveto(1966.2249126,2869.64976729)(1941.98741368,2838.31226869)(1939.02491381,2828.36226913)
\curveto(1937.52491388,2823.34976935)(1927.9874143,2808.11227003)(1924.59991445,2807.34977006)
\curveto(1915.94991484,2805.38727015)(1883.73741627,2822.1997694)(1879.49991646,2811.84976986)
\curveto(1887.38741611,2799.56227041)(1895.38741575,2789.47477086)(1895.33741575,2773.56227156)
\curveto(1895.31241575,2764.59977196)(1891.86241591,2752.5122725)(1886.72491613,2744.87477284)
\curveto(1885.1624162,2742.44977295)(1883.59991627,2740.02477305)(1882.03741634,2737.61227316)
\curveto(1879.98741643,2731.51227343)(1872.66241676,2726.47477366)(1868.79991693,2722.28727384)
\curveto(1851.64991769,2703.62477467)(1823.28741895,2688.86227533)(1796.16242016,2693.31227513)
\curveto(1784.1124207,2678.3247758)(1785.96242061,2656.23727678)(1794.64992023,2644.17477732)
\curveto(1803.96241981,2640.62477747)(1813.2624194,2642.08727741)(1820.93741906,2641.96227741)
\curveto(1825.37491886,2641.88727742)(1830.82491862,2644.5622773)(1835.8124184,2643.74977733)
\curveto(1844.08741803,2642.38727739)(1847.51241788,2624.14977821)(1857.96241741,2622.1122783)
\curveto(1870.82491684,2625.46227815)(1879.77491644,2640.37477748)(1886.51241614,2654.87477684)
\curveto(1889.724916,2661.77477653)(1890.01241599,2669.88727617)(1894.93741577,2676.22477589)
\curveto(1904.84991533,2689.01227532)(1917.03741479,2695.03727505)(1929.14991425,2702.63727472)
\curveto(1932.19991411,2703.86227466)(1935.23741398,2705.07477461)(1938.28741384,2706.28727455)
\curveto(1942.08741367,2708.91227444)(1953.07491319,2715.49977414)(1957.39991299,2715.82477413)
\curveto(1957.324913,2715.63727414)(1957.249913,2715.44977415)(1957.187413,2715.26227416)
\curveto(1957.92491297,2698.74977489)(1938.52491383,2688.38727535)(1942.06241367,2674.51227597)
\curveto(1942.93741364,2671.04977612)(1945.58741352,2670.49977614)(1948.1874134,2667.66227627)
\curveto(1955.69991307,2659.46227664)(1978.06241207,2632.72477782)(1974.98741221,2621.67477832)
\curveto(1974.78741222,2621.42477833)(1974.57491223,2621.18727834)(1974.37491224,2620.93727835)
\curveto(1968.5249125,2620.84977835)(1959.31241291,2619.27477842)(1952.6999132,2623.33727824)
\curveto(1932.26241411,2635.89977768)(1924.03741448,2658.0372767)(1933.97491403,2684.67477551)
\lineto(1931.76241413,2689.06227532)
\curveto(1931.13741416,2689.4122753)(1930.51241419,2689.74977529)(1929.88741422,2690.09977527)
\curveto(1927.27491433,2688.57477534)(1924.06241447,2688.13727536)(1921.43741459,2686.52477543)
\curveto(1912.03741501,2680.74977569)(1894.46241579,2649.42477708)(1891.61241592,2636.79977764)
\curveto(1890.08741599,2630.03727794)(1884.01241626,2624.49977819)(1883.94991626,2617.4372785)
\curveto(1884.17491625,2610.13727883)(1902.69991542,2602.32477918)(1909.78741511,2596.98727941)
\curveto(1922.67491454,2587.28727984)(1952.48741321,2576.69978031)(1969.83741244,2574.8747804)
\curveto(1981.73741191,2573.63728045)(2000.93741106,2574.51228041)(2010.12491065,2567.03728074)
\curveto(2009.69991067,2550.68728147)(2009.78741066,2539.43728197)(2017.19991033,2526.91228253)
\curveto(2022.62491009,2517.71228294)(2037.02490945,2512.32478318)(2047.08740901,2507.83728338)
\curveto(2077.02490768,2494.47478397)(2119.2624058,2480.3622846)(2148.23740451,2483.38728446)
\curveto(2148.4124045,2483.84978444)(2148.58740449,2484.32478442)(2148.77490449,2484.7997844)
\curveto(2146.83740457,2493.94978399)(2136.07490505,2495.62478392)(2128.2624054,2502.24978362)
\curveto(2124.92490555,2505.0997835)(2121.4374057,2508.56228334)(2117.87490586,2512.32478318)
\curveto(2112.79990609,2517.67478294)(2108.86240626,2525.78728258)(2104.52490645,2531.58728232)
\curveto(2102.81240653,2533.31228224)(2101.08740661,2535.03728217)(2099.37490668,2536.76228209)
\curveto(2094.68740689,2543.87478177)(2090.53740707,2551.21228145)(2085.13740731,2557.97478115)
\curveto(2079.67490756,2564.83728084)(2076.79990769,2574.7247804)(2071.9749079,2582.01228008)
\curveto(2069.88740799,2585.17477994)(2067.27490811,2588.39977979)(2065.68740818,2591.82477964)
\curveto(2059.34990846,2605.49977903)(2068.91240804,2608.37477891)(2075.98740772,2617.29977851)
\curveto(2076.78740769,2619.14977843)(2077.59990765,2620.98727835)(2078.39990761,2622.83727826)
\curveto(2080.07490754,2624.68727818)(2081.73740747,2626.5247781)(2083.41240739,2628.36227802)
\curveto(2084.92490732,2632.09977785)(2086.44990726,2635.82477769)(2087.96240719,2639.54977752)
\curveto(2092.46240699,2647.99977715)(2098.77490671,2658.39977668)(2101.3124066,2667.0997763)
\lineto(2103.18740651,2678.01227581)
\curveto(2105.33740642,2686.88727542)(2110.81240617,2697.46227495)(2107.02490634,2704.32477464)
\curveto(2100.43740663,2716.27477411)(2075.28740775,2709.13727443)(2063.74990827,2716.19977411)
\curveto(2065.1374082,2719.49977397)(2065.06240821,2724.67477374)(2068.13740807,2727.7747736)
\curveto(2078.7124076,2738.46227312)(2107.83740631,2731.42477344)(2122.96240563,2734.4372733)
\curveto(2125.9124055,2735.68727325)(2128.84990537,2736.93727319)(2131.79990524,2738.18727314)
\curveto(2135.38740508,2739.78727307)(2151.64990436,2751.12477256)(2151.64990436,2756.49977232)
\curveto(2158.78740404,2765.31227193)(2171.69990347,2783.76227111)(2165.98740372,2794.32477064)
\curveto(2163.94990381,2795.1997706)(2161.9249039,2796.07477056)(2159.88740399,2796.96227052)
\curveto(2155.2624042,2797.4247705)(2150.21240442,2792.39977073)(2146.43740459,2790.43727081)
\curveto(2137.237405,2785.66227103)(2128.47490539,2780.23727127)(2118.12490585,2777.92477137)
\curveto(2111.63740614,2776.46227143)(2104.38740646,2772.7497716)(2098.62490672,2780.13727127)
\curveto(2094.28740691,2785.71227102)(2100.99990661,2795.82477057)(2102.63740654,2803.48727023)
\curveto(2106.47490637,2821.53726943)(2125.8749055,2856.78726786)(2104.82490644,2864.63726752)
\closepath
\moveto(1991.34991148,2754.29977242)
\curveto(1993.58741138,2752.26227251)(1995.82491128,2750.2247726)(1998.07491118,2748.19977269)
\curveto(1998.98741114,2745.7997728)(1999.9124111,2743.4122729)(2000.83741106,2741.01227301)
\curveto(2003.93741092,2737.27477318)(2012.03741056,2734.94977328)(2011.74991058,2729.77477351)
\curveto(2011.1749106,2728.81227355)(2010.58741063,2727.8497736)(2010.01241065,2726.87477364)
\curveto(2009.68741067,2725.18727371)(2009.27491069,2721.71227387)(2007.22491078,2719.54977396)
\curveto(2001.83741102,2713.84977422)(1993.47491139,2709.27477442)(1985.19991176,2715.94977412)
\curveto(1983.24991184,2718.18727403)(1981.31241193,2720.43727393)(1979.36241202,2722.67477383)
\curveto(1975.68741218,2725.67477369)(1970.07491243,2723.81227378)(1968.88741248,2728.26227358)
\curveto(1969.33741246,2733.22477336)(1987.61241165,2752.64977249)(1991.34991148,2754.29977242)
\closepath
\moveto(2052.81240875,2670.31227615)
\curveto(2054.96240866,2669.53727619)(2056.1249086,2668.61227623)(2056.39990859,2667.0122763)
\curveto(2057.77490853,2654.24977687)(2034.31240957,2635.16227772)(2024.87490999,2640.86227746)
\curveto(2025.26240998,2644.92477728)(2025.82490995,2644.23727731)(2021.77491013,2644.6247773)
\curveto(2021.11241016,2663.31227646)(2039.67490934,2669.59977618)(2052.81240875,2670.31227615)
\closepath
\moveto(694.36246914,2197.79979716)
\curveto(698.67496894,2224.49979597)(682.94996964,2241.67479521)(657.73747076,2263.82479422)
\curveto(646.88747125,2273.3747938)(629.76247201,2275.71229369)(623.96247226,2287.79979316)
\curveto(619.39997247,2297.33729273)(624.12497226,2310.28729216)(626.89997213,2321.78729165)
\curveto(628.22497208,2327.3372914)(632.67497188,2331.7747912)(632.32497189,2336.287291)
\curveto(631.91247191,2341.68729076)(626.99997213,2348.59979045)(619.32497247,2348.11229048)
\curveto(614.46247269,2347.79979049)(610.84997285,2343.37479069)(606.58747304,2340.51229081)
\curveto(601.91247324,2337.36229095)(594.59997357,2335.13729105)(590.24997376,2331.7997912)
\curveto(587.31247389,2328.18729136)(584.38747402,2324.57479152)(581.46247415,2320.96229168)
\curveto(574.37497447,2314.21229198)(566.26247483,2304.58729241)(560.1124751,2297.13729274)
\curveto(558.38747518,2293.6497929)(556.66247526,2290.16229305)(554.92497533,2286.66229321)
\curveto(549.0124756,2276.23729367)(540.99997595,2264.07479421)(530.21247643,2265.76229414)
\curveto(517.68747699,2267.72479405)(503.77497761,2285.82479324)(497.88747787,2293.14979292)
\curveto(478.04997875,2317.76229182)(445.17498021,2367.09978963)(403.62498206,2359.83728995)
\curveto(394.32498247,2358.21229003)(382.88748298,2350.72479036)(375.58748331,2343.34979069)
\curveto(371.2749835,2338.98729088)(369.14998359,2333.59979112)(364.3499838,2330.03729128)
\curveto(364.21248381,2326.27479145)(366.38748371,2324.04979154)(366.96248369,2320.71229169)
\curveto(369.07498359,2308.57479223)(373.88748338,2297.36229273)(377.8999832,2285.78729325)
\curveto(378.44998318,2285.62479325)(378.98748315,2285.46229326)(379.53748313,2285.29979327)
\curveto(392.26248256,2285.39979326)(404.57498202,2302.93729248)(418.74998139,2300.76229258)
\curveto(425.0999811,2299.78729262)(434.71248068,2290.57479303)(440.49998042,2286.18729323)
\curveto(462.58747944,2269.43729397)(480.63747864,2250.22479483)(500.61247775,2234.22479554)
\curveto(511.59997726,2225.42479593)(531.91247636,2219.49979619)(533.1124763,2207.13729674)
\curveto(533.78747627,2200.09979705)(528.21247652,2192.3372974)(523.92497671,2186.29979767)
\curveto(522.14997679,2182.46229784)(520.36247687,2178.62479801)(518.57497695,2174.78729818)
\curveto(510.5874773,2163.1622987)(499.68747779,2141.39979966)(506.73747748,2131.16230012)
\curveto(511.39997727,2124.41230042)(524.64997668,2126.93730031)(530.47497642,2124.59980041)
\curveto(531.52497637,2124.17480043)(550.84997551,2127.84980027)(554.31247536,2128.19980025)
\curveto(566.9249748,2129.4373002)(580.53747419,2125.26230038)(594.0124736,2120.3498006)
\curveto(604.22497314,2114.92480084)(614.44997269,2109.48730108)(624.67497223,2104.06230132)
\curveto(627.46247211,2103.09980137)(630.87497196,2098.86230155)(633.53747184,2100.1123015)
\curveto(642.31247145,2105.42480126)(645.6874713,2117.54980072)(653.58747095,2125.74980036)
\curveto(675.18746999,2151.07479923)(690.53746931,2174.14979821)(694.36246914,2197.79979716)
\closepath
\moveto(592.22497368,2230.17479572)
\curveto(612.46247278,2232.9247956)(631.32497194,2206.37479678)(638.08747164,2194.09979732)
\curveto(641.71247148,2187.53729761)(643.02497142,2178.39979802)(642.58747144,2170.53729837)
\curveto(626.22497216,2156.44979899)(606.74997303,2148.12479936)(585.76247396,2149.6747993)
\curveto(574.82497445,2150.48729926)(560.59997508,2157.88729893)(559.33747514,2168.24979847)
\curveto(558.39997518,2176.02479812)(564.86247489,2187.8122976)(566.57497482,2195.41229726)
\curveto(568.67497472,2204.72479685)(583.62497406,2229.01229577)(592.22497368,2230.17479572)
\closepath
\moveto(2589.78738488,2112.33730096)
\curveto(2586.62488502,2115.64980081)(2583.47488516,2118.97480066)(2580.3248853,2122.29980051)
\curveto(2574.97488554,2126.56230032)(2568.62488582,2130.64980014)(2563.03738607,2132.39980006)
\curveto(2540.42488708,2119.14980065)(2556.54988636,2103.26230136)(2559.08738625,2086.34980211)
\curveto(2560.1248862,2079.41230242)(2556.99988634,2070.9248028)(2556.31238637,2063.96230311)
\curveto(2555.29988642,2053.81230356)(2559.58738623,2040.34980416)(2563.87488603,2030.14980461)
\curveto(2567.28738588,2022.02480497)(2587.43738499,2000.91230591)(2593.78738471,2002.09980586)
\curveto(2602.21238433,2005.17480572)(2609.09988402,2018.84980511)(2611.44988392,2023.5123049)
\curveto(2621.98738345,2044.38730398)(2620.23738353,2063.59980312)(2610.02488398,2085.48730215)
\curveto(2607.11238411,2091.72480187)(2600.7498844,2098.26230158)(2597.84988452,2102.92480137)
\curveto(2595.56238463,2106.61230121)(2591.03738483,2109.51230108)(2589.78738488,2112.33730096)
\closepath
\moveto(2748.63737782,2340.16229083)
\curveto(2734.14987847,2347.32479051)(2719.66237911,2346.68729054)(2704.73737977,2339.73729085)
\curveto(2697.72488009,2333.68729112)(2690.6998804,2327.63729139)(2683.67488071,2321.57479165)
\curveto(2666.73738146,2307.74979227)(2647.06238234,2288.61229312)(2629.62488311,2278.97479355)
\curveto(2623.62488338,2275.6622937)(2618.98738359,2270.17479394)(2612.74988386,2268.66229401)
\curveto(2603.93738425,2266.5372941)(2596.52488458,2263.38729424)(2586.67488502,2269.01229399)
\curveto(2581.27488526,2272.09979385)(2578.1873854,2277.18729363)(2574.26238557,2281.72479343)
\lineto(2561.17488615,2295.18729283)
\curveto(2550.82488662,2314.94979195)(2537.23738722,2321.61229165)(2518.63738805,2317.22479185)
\curveto(2515.59988818,2316.51229188)(2502.13738878,2310.97479213)(2499.61238889,2306.78729231)
\curveto(2491.13738927,2292.64979294)(2501.7623888,2272.91229382)(2510.23738842,2258.11229448)
\curveto(2515.29988819,2249.28729487)(2526.57488769,2237.3622954)(2519.96238799,2229.41229575)
\curveto(2513.72488826,2221.92479608)(2502.38738877,2225.64979592)(2496.11238905,2226.79979587)
\curveto(2480.31238975,2229.72479574)(2464.31239046,2232.04979563)(2451.64989102,2215.02479639)
\curveto(2447.54989121,2209.49979664)(2441.37489148,2204.98729684)(2442.06239145,2198.66229712)
\curveto(2442.88739141,2191.18729745)(2473.08739007,2172.88729826)(2478.52488983,2168.86229844)
\curveto(2507.99988852,2147.09979941)(2552.28738655,2142.26229963)(2584.37488512,2156.237299)
\curveto(2594.49988467,2160.64979881)(2604.08738425,2167.6622985)(2613.43738383,2173.04979826)
\curveto(2619.72488355,2176.69979809)(2625.18738331,2186.11229768)(2632.39988299,2187.06229763)
\curveto(2634.83738288,2187.37479762)(2643.63738249,2184.64979774)(2645.99988238,2184.01229777)
\curveto(2667.27488144,2178.26229803)(2686.58738058,2161.04979879)(2707.12487967,2149.42479931)
\curveto(2716.16237927,2144.31229953)(2722.84987897,2134.99979995)(2732.37487855,2132.51230006)
\curveto(2739.42487823,2130.67480014)(2750.94987772,2132.94980004)(2757.49987743,2141.69979965)
\curveto(2756.64987747,2145.89979946)(2756.73737746,2151.01229924)(2755.08737754,2155.33729904)
\curveto(2750.23737775,2168.06229848)(2732.34987855,2193.38729735)(2718.61237916,2199.1247971)
\curveto(2706.87487968,2204.03729688)(2695.2373802,2203.41229691)(2683.64988071,2206.79979676)
\curveto(2680.17488087,2207.81229671)(2674.17488113,2208.1247967)(2672.37488121,2213.76229645)
\curveto(2679.72488089,2219.86229618)(2689.86238043,2233.37479558)(2697.2873801,2237.66229538)
\curveto(2701.48737992,2240.08729528)(2745.46237796,2267.38729406)(2749.68737778,2275.6122937)
\curveto(2750.91237772,2279.21229354)(2749.1748778,2284.6372933)(2750.09987776,2288.62479312)
\curveto(2754.11237758,2305.83729235)(2765.38737708,2321.96229164)(2748.63737782,2340.16229083)
\closepath
}
}
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(907.74995965,1676.54982033)
\lineto(989.67495601,1676.54982033)
\lineto(989.67495601,1503.974828)
\curveto(989.67495601,1440.54983082)(940.19995821,1419.04983177)(851.57496215,1419.04983177)
\curveto(760.58746619,1419.04983177)(711.69996836,1439.17483088)(711.69996836,1502.54982806)
\lineto(711.69996836,1676.54982033)
\lineto(793.62496472,1676.54982033)
\lineto(793.62496472,1517.5248274)
\curveto(793.62496472,1479.04982911)(818.69996361,1473.37482936)(845.34996242,1472.11232941)
\curveto(875.53746108,1470.67482948)(907.74995965,1478.57482913)(907.74995965,1517.5248274)
\lineto(907.74995965,1676.54982033)
\closepath
}
}
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1756.09992194,1597.87482382)
\lineto(1691.21242483,1597.87482382)
\curveto(1653.91242648,1663.6123209)(1560.43743064,1605.71232348)(1623.86242782,1584.9623244)
\curveto(1632.48742744,1582.13732452)(1646.18742683,1581.24982456)(1659.54992623,1578.1498247)
\curveto(1728.83742315,1562.13732541)(1763.51242161,1534.93732662)(1763.51242161,1496.47482833)
\curveto(1761.5499217,1439.19983088)(1718.97492359,1408.37483225)(1635.79992729,1409.14983221)
\curveto(1540.12493154,1410.04983217)(1521.51243237,1450.33733038)(1512.64993276,1503.887328)
\lineto(1589.96242933,1503.887328)
\curveto(1592.93742919,1494.51232842)(1607.87492853,1476.8623292)(1615.02492821,1472.4998294)
\curveto(1621.76242791,1468.37482958)(1630.34992753,1466.91232964)(1640.29992709,1466.91232964)
\curveto(1666.01242595,1466.91232964)(1678.87492537,1472.97482938)(1678.87492537,1485.17482883)
\curveto(1678.87492537,1495.51232837)(1661.58742614,1504.47482798)(1626.92492768,1511.98732764)
\curveto(1556.61243081,1527.91232693)(1521.52493237,1556.09982568)(1521.52493237,1596.48732389)
\curveto(1523.48743228,1650.0373215)(1562.57493054,1677.68732028)(1638.77492716,1679.61232019)
\curveto(1708.07492408,1678.64982023)(1747.16242234,1651.42482144)(1756.09992194,1597.87482382)
\closepath
}
}
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1796.26242016,1610.23732327)
\lineto(1796.26242016,1676.54982033)
\lineto(2068.38740806,1676.54982033)
\lineto(2068.38740806,1610.23732327)
\lineto(1968.62491249,1610.23732327)
\lineto(1968.62491249,1403.22483248)
\lineto(1896.03741572,1403.22483248)
\lineto(1896.03741572,1610.23732327)
\lineto(1796.26242016,1610.23732327)
\closepath
}
}
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(2227.78740097,1675.98732035)
\curveto(2292.01239812,1675.98732035)(2346.81239568,1635.24982216)(2366.56239481,1578.87482467)
\lineto(2287.47489832,1578.87482467)
\curveto(2273.49989894,1596.0873239)(2251.9248999,1607.14982341)(2227.78740097,1607.14982341)
\curveto(2185.81240284,1607.14982341)(2151.57490436,1573.6998249)(2151.57490436,1532.67482672)
\curveto(2151.57490436,1491.63732855)(2185.81240284,1458.18733003)(2227.78740097,1458.18733003)
\curveto(2253.63739983,1458.18733003)(2276.56239881,1470.88732947)(2290.34989819,1490.23732861)
\lineto(2367.82489475,1490.23732861)
\curveto(2349.24989558,1431.9123312)(2293.43739806,1389.34983309)(2227.78740097,1389.34983309)
\curveto(2147.02490456,1389.34983309)(2081.16240749,1453.73733023)(2081.16240749,1532.67482672)
\curveto(2081.16240749,1611.59982321)(2147.02490456,1675.98732035)(2227.78740097,1675.98732035)
\closepath
}
}
{
\newrgbcolor{curcolor}{0 0.36078431 0.63529412}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1649.76242667,365.78737859)
\lineto(1590.37492931,278.87488245)
\curveto(1590.37492931,278.87488245)(1621.52492792,294.81238175)(1643.24992696,286.12488213)
\curveto(1664.97492599,277.42488252)(1678.01242541,256.42488345)(1670.77492573,240.49988416)
\curveto(1663.52492606,224.56238487)(1642.52492699,210.07488551)(1620.79992795,216.58738522)
\curveto(1599.07492892,223.11238493)(1591.09992928,233.24988448)(1599.07492892,234.69988442)
\curveto(1607.03742857,236.14988435)(1605.58742863,230.34988461)(1612.11242834,226.0123848)
\curveto(1618.62492805,221.662385)(1632.38742744,246.2873839)(1625.14992776,253.52488358)
\curveto(1617.89992808,260.77488326)(1600.52492886,278.87488245)(1580.23742976,263.67488313)
\curveto(1559.96243066,248.46238381)(1568.58743028,219.48738509)(1572.27493011,204.99988574)
\curveto(1575.96242995,190.52488638)(1630.17492754,157.92488783)(1673.6749256,189.79988641)
\curveto(1717.16242367,221.662385)(1715.67492374,246.2873839)(1711.32492393,266.562383)
\curveto(1706.98742412,286.8498821)(1683.81242515,308.57488113)(1670.04992577,307.1248812)
\curveto(1656.28742638,305.67488126)(1650.48742664,312.92488094)(1650.48742664,312.92488094)
\lineto(1665.69992596,335.37487994)
\lineto(1720.74992351,333.19988004)
\lineto(1716.39992371,309.2998811)
\lineto(1740.29992264,304.22488133)
\curveto(1740.29992264,304.22488133)(1747.53742232,331.7498801)(1761.29992171,338.98737978)
\curveto(1775.0624211,346.23737946)(1783.74992071,363.61237869)(1783.74992071,363.61237869)
\curveto(1783.74992071,363.61237869)(1648.32492673,365.06237862)(1649.76242667,365.78737859)
\closepath
}
}
{
\newrgbcolor{curcolor}{0 0.36078431 0.63529412}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1442.0999359,302.99988138)
\curveto(1440.29993598,301.13738146)(1438.24993607,299.26238155)(1435.96243617,297.83738161)
\curveto(1428.6624365,293.27488181)(1420.92493684,313.51238091)(1425.93743662,328.84988023)
\curveto(1431.76243636,346.69987944)(1479.96243422,361.67487877)(1492.04993368,330.21238017)
\curveto(1497.73743343,315.43738083)(1496.1624335,303.76238135)(1492.04993368,297.38738163)
\curveto(1487.94993386,290.99988191)(1487.93743386,293.73738179)(1478.36243429,304.23738133)
\curveto(1465.44993486,318.3748807)(1451.57493548,312.88738094)(1442.0999359,302.99988138)
\closepath
\moveto(1452.83743542,260.89988325)
\curveto(1453.13743541,260.89988325)(1448.33743562,254.02488356)(1441.27493593,246.07488391)
\curveto(1430.7624364,234.22488444)(1371.84993902,197.01238609)(1359.82493956,210.69988548)
\curveto(1357.77493965,213.03738538)(1360.72493952,222.82488494)(1358.8999396,226.69988477)
\curveto(1349.52494001,246.59988389)(1318.3749414,231.06238458)(1325.1499411,210.73738548)
\curveto(1339.57494046,167.47488741)(1422.53743677,186.18738657)(1450.27493553,203.6998858)
\curveto(1499.21243336,234.61238442)(1547.44993122,292.79988183)(1520.32493242,345.72487948)
\curveto(1512.61243276,360.78737881)(1476.69993436,393.76237735)(1425.47493664,368.98737845)
\curveto(1396.57493792,355.01237907)(1372.52493899,289.38738199)(1417.73743698,266.83738299)
\curveto(1430.51243641,257.73738339)(1452.83743542,260.89988325)(1452.83743542,260.89988325)
\closepath
}
}
{
\newrgbcolor{curcolor}{0 0.36078431 0.63529412}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1171.04994795,184.17488666)
\lineto(1226.34994549,184.76238664)
\lineto(1354.4249398,372.79987828)
\curveto(1354.4249398,372.79987828)(1350.34993998,380.37487794)(1335.21244065,378.03737805)
\curveto(1320.08744132,375.71237815)(1305.52494197,367.56237851)(1290.38744264,368.72487846)
\curveto(1275.24994331,369.88737841)(1267.09994368,372.2248783)(1263.61244383,375.13737817)
\curveto(1260.12494399,378.03737805)(1256.62494414,371.63737833)(1260.12494399,361.1623788)
\curveto(1263.61244383,350.67487926)(1269.43744357,343.1123796)(1275.83744329,341.94987965)
\curveto(1282.237443,340.7873797)(1283.39994295,339.03737978)(1283.39994295,339.03737978)
\lineto(1171.04994795,184.17488666)
\closepath
}
}
{
\newrgbcolor{curcolor}{0 0.36078431 0.63529412}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1873.23741673,254.44988354)
\curveto(1875.03741665,256.32488346)(1877.08741656,258.18738337)(1879.37491646,259.61238331)
\curveto(1886.66241614,264.17488311)(1894.41241579,243.93738401)(1889.39991602,228.59988469)
\curveto(1883.57491627,210.76238548)(1833.76241849,194.17488622)(1821.67491903,225.63738482)
\curveto(1815.99991928,240.41238416)(1817.57491921,252.07488364)(1821.67491903,258.46238336)
\curveto(1825.77491884,264.84988308)(1825.78741884,262.0998832)(1835.36241842,251.61238367)
\curveto(1848.27491784,237.47488429)(1863.76241716,244.56238398)(1873.23741673,254.44988354)
\closepath
\moveto(1854.46241757,292.79988183)
\curveto(1854.16241758,292.79988183)(1858.96241737,299.68738153)(1866.02491705,307.63738117)
\curveto(1876.53741659,319.48738065)(1935.46241397,356.69987899)(1947.48741343,342.9998796)
\curveto(1948.51241339,341.83737965)(1955.39991308,330.17488017)(1941.78741369,330.66238015)
\curveto(1933.43741406,330.94988014)(1929.18741425,316.67488077)(1929.87491422,314.64988086)
\curveto(1939.62491378,285.86238214)(1986.04991172,298.24988159)(1978.34991206,339.64987975)
\curveto(1970.02491243,384.47487776)(1901.39991548,371.79987832)(1865.58741707,350.94987925)
\curveto(1815.5624193,321.83738054)(1759.84992177,260.91238325)(1786.97492057,207.9873856)
\curveto(1794.69992023,192.92488627)(1828.9124187,163.78738757)(1881.83741635,184.72488664)
\curveto(1917.14991478,198.68738602)(1940.67491374,265.92488303)(1895.46241575,288.47488203)
\curveto(1882.68741631,297.57488162)(1854.46241757,292.79988183)(1854.46241757,292.79988183)
\closepath
}
}
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1401.4999377,1746.67481721)
\curveto(1644.18742692,1974.47480708)(1867.02491701,2114.99980084)(2028.62490983,2137.68729983)
\curveto(2198.66240227,2161.57479877)(2229.32490091,2049.83730373)(2179.33740313,1876.16231145)
\curveto(2168.17490362,1837.34981318)(2150.7374044,1795.68731503)(2128.2999054,1752.28731696)
\lineto(2202.69990209,1752.28731696)
\curveto(2220.63740129,1797.29981496)(2233.63740071,1841.21231301)(2241.08740038,1883.42481113)
\curveto(2273.48739894,2067.09980297)(2205.14990198,2185.22479772)(2009.69991067,2178.61229801)
\curveto(1825.97491883,2172.38729829)(1594.28742913,2045.91230391)(1343.44994028,1810.28731438)
\curveto(1334.92494066,1802.27481474)(1326.54994103,1794.1873151)(1318.2999414,1786.04981546)
\curveto(1348.67494005,1778.19981581)(1376.8124388,1764.67481641)(1401.4999377,1746.67481721)
\closepath
\moveto(1049.61245334,1415.73733192)
\curveto(1001.1124555,1316.38733634)(971.9624568,1221.39984056)(962.9124572,1141.19984412)
\curveto(943.79995805,971.61235166)(1016.46245482,880.8373557)(1193.19994696,894.87485507)
\curveto(1359.29993958,908.06235449)(1592.34992922,1017.68734961)(1814.73741933,1225.99984035)
\curveto(1861.21241727,1269.53733842)(1904.99991532,1314.27483643)(1945.56241352,1359.61233441)
\lineto(1834.39991846,1359.61233441)
\curveto(1628.8124276,1144.46234398)(1379.44993868,961.89985209)(1212.94994608,935.76235325)
\curveto(950.94995773,894.61235508)(966.89995702,1078.33734692)(1033.08745408,1232.43734007)
\curveto(1051.83745325,1276.08733813)(1072.47495233,1319.14983621)(1095.97495128,1362.06233431)
\curveto(1078.07495208,1377.61233361)(1062.43745277,1395.68733281)(1049.61245334,1415.73733192)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.9176471 0.46666667 0.11764706}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1674.68742556,1084.09984666)
\curveto(1794.14992025,998.74985045)(1916.87491479,940.14985306)(2010.58741063,922.39985385)
\curveto(2225.21240109,870.88735614)(2215.57490152,1082.79984672)(2159.774904,1232.43734007)
\curveto(2143.58740472,1275.87483814)(2124.37490557,1317.97483627)(2101.84990657,1359.61233441)
\lineto(2172.01240345,1359.61233441)
\curveto(2202.67490209,1281.0998379)(2221.19990127,1206.56234122)(2228.41240095,1141.19984412)
\curveto(2247.11240012,971.61235166)(2158.22490407,867.47485629)(1985.36241175,881.51235567)
\curveto(1878.76241649,890.16235528)(1744.37492246,942.53735295)(1604.72492867,1038.09984871)
\curveto(1627.93742764,1052.73734806)(1651.2749266,1068.06234737)(1674.68742556,1084.09984666)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.9176471 0.46666667 0.11764706}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1794.03742025,1752.28731696)
\curveto(1735.46242286,1812.1748143)(1677.13742545,1866.41231189)(1620.09992799,1914.07480977)
\curveto(1642.79992698,1931.72480898)(1665.28742598,1948.66230823)(1687.49992499,1964.87480751)
\curveto(1747.21242234,1918.06230959)(1808.41241962,1864.54981197)(1870.46241686,1804.94981462)
\curveto(1888.46241606,1787.67481539)(1905.72491529,1770.09981617)(1922.28741455,1752.28731696)
\lineto(1794.03742025,1752.28731696)
\closepath
}
}
{
\newrgbcolor{curcolor}{1 1 1}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1349.08744003,1347.13733497)
\lineto(1349.23744003,1347.21233497)
\lineto(1349.08744003,1347.13733497)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.9176471 0.46666667 0.11764706}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1363.47493939,1354.98733462)
\curveto(1429.74993645,1290.88733747)(1499.89993333,1228.14984026)(1568.23743029,1168.36234292)
\curveto(1573.18743007,1164.02484311)(1578.16242985,1159.7373433)(1583.16242963,1155.49984349)
\curveto(1560.26243065,1138.14984426)(1537.43743166,1121.387345)(1514.71243267,1105.26234572)
\curveto(1471.01243461,1140.62484415)(1427.27493656,1180.13734239)(1384.16243847,1223.77484045)
\curveto(1350.26243998,1258.08733893)(1318.04994141,1292.62483739)(1287.64994276,1327.26233585)
\curveto(1287.67494276,1327.26233585)(1287.69994276,1327.26233585)(1287.72494276,1327.27483585)
\curveto(1276.12494328,1325.34983594)(1264.2374438,1324.34983598)(1252.11244434,1324.34983598)
\curveto(1131.74994969,1324.34983598)(1033.58745406,1422.51233162)(1033.58745406,1542.86232627)
\curveto(1033.58745406,1581.92482453)(1043.9374536,1618.6498229)(1062.01245279,1650.43732149)
\curveto(1022.89995453,1726.5248181)(993.09995586,1797.64981494)(978.31245651,1883.42481113)
\curveto(946.61245792,2067.09980297)(1022.34995456,2194.12479732)(1213.51244606,2187.51229761)
\curveto(1324.06244114,2183.68729778)(1454.38743535,2128.93730022)(1595.44992908,2032.5123045)
\curveto(1573.72493005,2017.31230518)(1551.82493102,2001.43730589)(1529.737432,1984.81230662)
\curveto(1400.56243774,2078.87480244)(1281.52494304,2134.06229999)(1186.09994728,2137.68729983)
\curveto(1073.1874523,2141.99979964)(996.38745571,2016.58730521)(1028.0124543,1838.78731311)
\curveto(1036.82495391,1789.24981532)(1057.58745299,1738.04981759)(1087.23745167,1686.01231991)
\lineto(1087.23745167,1686.02481991)
\curveto(1101.84995102,1660.17482105)(1117.16245034,1636.46232211)(1133.08744963,1614.56232308)
\curveto(1098.17495119,1549.012326)(1113.6249505,1463.18732981)(1175.87494773,1416.2123319)
\curveto(1227.37494544,1377.33733363)(1300.2374422,1390.78733303)(1359.79993956,1453.14983026)
\lineto(1317.79994142,1484.47482886)
\curveto(1248.28744451,1418.88733178)(1168.01244808,1452.49983029)(1170.94994795,1538.32482647)
\lineto(1384.76243845,1538.32482647)
\curveto(1384.87493844,1539.8373264)(1384.97493844,1541.34982634)(1385.03743843,1542.86232627)
\curveto(1388.74993827,1625.2998226)(1348.03744008,1692.54981962)(1265.59994374,1692.54981962)
\curveto(1223.7374456,1692.54981962)(1183.79994738,1676.38732033)(1156.54994859,1647.33732162)
\curveto(1150.91244884,1641.33732189)(1145.86244907,1634.97482217)(1141.38744926,1628.34982247)
\lineto(1100.0249511,1699.51231931)
\curveto(1139.41244935,1737.76231761)(1193.08744697,1761.38731656)(1252.11244434,1761.38731656)
\curveto(1372.46243899,1761.38731656)(1470.62493463,1663.22482092)(1470.62493463,1542.86232627)
\curveto(1470.62493463,1463.13732981)(1427.53743655,1393.14983292)(1363.47493939,1354.98733462)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.9176471 0.46666667 0.11764706}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(1266.01244373,1648.14982159)
\curveto(1301.18744216,1648.14982159)(1329.73744089,1618.31232292)(1331.46244082,1581.73732454)
\curveto(1331.38744082,1581.26232456)(1331.31244082,1580.77482458)(1331.22494083,1580.2998246)
\lineto(1180.43744753,1580.2998246)
\curveto(1180.48744753,1580.77482458)(1180.54994752,1581.26232456)(1180.62494752,1581.73732454)
\curveto(1186.11244728,1618.31232292)(1224.47494557,1648.14982159)(1266.01244373,1648.14982159)
\closepath
}
}
\end{pspicture}

\end{document}
% \fi
%    \begin{macrocode}
\end{filecontents*}

    \immediate\write18{latex logo}%
    \immediate\write18{dvips logo}%
    \IfFileExists{logo.dvi}{
    \immediate\write18{ps2pdf logo.ps}%
    }{}
\logo{%
\IfFileExists{logo.pdf}{\includegraphics*[height=1.8cm]{logo.pdf}}{UESTC}%
}%
%    \end{macrocode}
%
% \iffalse
%</beamer>
% \fi
% \section{更新日志}
% \StopEventually{\PrintChanges}
% \Finale
%
\endinput
