summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/uestcthesis
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/uestcthesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/uestcthesis')
-rw-r--r--macros/latex/contrib/uestcthesis/README32
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/DuplicateMe.tex3
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/Matrix.java.tex147
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/Place_has_TrainDAO.java.tex121
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/implementation.tex219
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/math.tex79
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/test.c.tex9
-rw-r--r--macros/latex/contrib/uestcthesis/doc/chapters/tuition.tex895
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/Cabstract.tex8
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/Eabstract.tex8
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/acknowledgements.tex8
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/appendix.tex7
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/cv.tex31
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/original.tex43
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/publications.bib77
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/reference.bib1163
-rw-r--r--macros/latex/contrib/uestcthesis/doc/contents/translation.tex27
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/Chrysanthemum.jpgbin0 -> 879394 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/Penguins.jpgbin0 -> 777835 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/Tulips.jpgbin0 -> 620888 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/apk.pngbin0 -> 66689 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/excel.pngbin0 -> 27391 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/fisher1.pngbin0 -> 49867 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/fisher2.pngbin0 -> 42965 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/flow1.pngbin0 -> 33855 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/flow3.pngbin0 -> 83391 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/flow4.pngbin0 -> 65026 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/flow5-1.pngbin0 -> 16809 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/flow5-2.pngbin0 -> 37971 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/flow5-3.pngbin0 -> 22916 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/highlight1.pngbin0 -> 4989 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/highlight2.pngbin0 -> 5979 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/system.pngbin0 -> 271947 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/pics/winedt.pngbin0 -> 39235 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.pdfbin0 -> 1342121 bytes
-rw-r--r--macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.tex11
-rw-r--r--macros/latex/contrib/uestcthesis/source/uestcthesis.dtx5955
-rw-r--r--macros/latex/contrib/uestcthesis/source/uestcthesis.ins71
-rw-r--r--macros/latex/contrib/uestcthesis/uestcthesis.bst3140
-rw-r--r--macros/latex/contrib/uestcthesis/uestcthesis.cls1012
40 files changed, 13066 insertions, 0 deletions
diff --git a/macros/latex/contrib/uestcthesis/README b/macros/latex/contrib/uestcthesis/README
new file mode 100644
index 0000000000..3f99a2341d
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/README
@@ -0,0 +1,32 @@
+UESTCthesis is a LaTeX thesis template for University of Electronic Science and Technology of China.
+This template will help typeset your thesis with only one command, which is \documentclass.
+All files are encoded in UTF-8 without BOM.
+
+This package is licensed in LPPL.
+
+uestcthesis.cls and uestcthesis.bst should be moved into a directory searched by pdfLaTeX.
+
+The doc/ is also a example. To use this template, the directory structure in doc/ are indispensable.
+Files in doc/contents/ are necessary.User have to edit them.
+Files in doc/chapters/ are normal tex file. And all pictures should be placed in doc/pics/.
+For compiling correctly, there is two .bat files.Basically, it needs pdflatex.
+
+This template's users are all chinese, so there is no english doc.
+
+For more information, see the uestcthesis-doc.pdf in doc/.
+Github: https://github.com/shifujun/UESTCthesis
+Author: Shi Fujun<shifujun@foxmail.com>
+*************************Translation in zh_CN_UTF-8****************************
+UESTCthesis是电子科技大学毕业论文LaTeX模板。
+这个模板可以仅使用一条\documentclass命令,就能帮助排版你的毕业论文。
+所有文件都使用 UTF-8 无 BOM 编码格式。
+
+本模板使用LPPL协议发布。
+
+uestcthesis.cls, uestcthesis.bst 这两个文件需要放在
+可以被pdfLaTeX搜索到的地方。最简单的方式就是放在工作目录中。
+
+其他说明请见doc目录下的“uestcthesis-doc.pdf"。
+项目主页:https://github.com/shifujun/UESTCthesis
+作者:时富军<shifujun@foxmail.com>
+*******************************************************************************
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/DuplicateMe.tex b/macros/latex/contrib/uestcthesis/doc/chapters/DuplicateMe.tex
new file mode 100644
index 0000000000..695364d6ed
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/DuplicateMe.tex
@@ -0,0 +1,3 @@
+% !Mode:: "TeX:UTF-8"
+
+\chapter{}
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/Matrix.java.tex b/macros/latex/contrib/uestcthesis/doc/chapters/Matrix.java.tex
new file mode 100644
index 0000000000..36b7b1893d
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/Matrix.java.tex
@@ -0,0 +1,147 @@
+\noindent
+\ttfamily
+\hlstd{}\hllin{01\ }\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{util}\hlopt{.}\hlstd{Scanner}\hlopt{;}\\
+\hllin{02\ }\hlstd{}\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{util}\hlopt{.{*};}\\
+\hllin{03\ }\hlstd{}\hlkwa{class\ }\hlstd{Matrix\ }\hlkwa{implements}\hlstd{\ \ }\hlkwa{}\hlstd{Iterable}\hlopt{\{}\\
+\hllin{04\ }\hlstd{\ ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{m}\hlopt{;}\\
+\hllin{05\ }\hlstd{\ \\
+\hllin{06\ }\ }\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{a}\hlopt{,}\hlstd{}\hlkwb{int\ }\hlstd{b}\hlopt{)\ \{}\\
+\hllin{07\ }\hlstd{}\hlstd{\ \ }\hlstd{m\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$();}\\
+\hllin{08\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{for}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{i\ }\hlopt{=}\hlstd{a}\hlopt{;}\hlstd{i}\hlopt{$>$}\hlstd{}\hlnum{0}\hlstd{}\hlopt{;}\hlstd{i}\hlopt{{-}{-})\{}\\
+\hllin{09\ }\hlstd{}\hlstd{\ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{h\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$();}\\
+\hllin{10\ }\hlstd{}\hlstd{\ \ \ }\hlstd{System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"һԪ"}\hlstd{}\hlopt{+}\hlstd{b}\hlopt{+}\hlstd{}\hlstr{""}\hlstd{}\hlopt{);}\\
+\hllin{11\ }\hlstd{}\hlstd{\ \ \ }\hlstd{Scanner\ scanner\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Scanner}\hlstd{}\hlopt{(}\hlstd{System}\hlopt{.}\hlstd{}\hlkwa{in}\hlstd{}\hlopt{);}\\
+\hllin{12\ }\hlstd{}\hlstd{\ \ \ }\hlstd{}\hlkwa{for}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{k\ }\hlopt{=\ }\hlstd{b}\hlopt{;}\hlstd{k}\hlopt{$>$}\hlstd{}\hlnum{0}\hlstd{}\hlopt{;}\hlstd{k}\hlopt{{-}{-})\ \{}\\
+\hllin{13\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{if}\hlstd{}\hlopt{(}\hlstd{scanner}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())}\\
+\hllin{14\ }\hlstd{}\hlstd{\ \ \ \ \ }\hlstd{h}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{scanner}\hlopt{.}\hlstd{}\hlkwd{nextInt}\hlstd{}\hlopt{());}\\
+\hllin{15\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{else}\hlstd{}\hlopt{\{}\\
+\hllin{16\ }\hlstd{}\hlstd{\ \ \ \ \ }\hlstd{System}\hlopt{.}\hlstd{err}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Ԫ"}\hlstd{}\hlopt{);}\\
+\hllin{17\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{18\ }\hlstd{}\hlstd{\ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{19\ }\hlstd{}\hlstd{\ \ \ }\hlstd{m}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{h}\hlopt{);}\hlstd{}\hlslc{//һԪ}\\
+\hllin{20\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlopt{\}}\\
+\hllin{21\ }\hlstd{}\hlstd{\ \ }\hlstd{\\
+\hllin{22\ }\ }\hlopt{\}}\\
+\hllin{23\ }\hlstd{\ }\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{m}\hlopt{)\ \{}\\
+\hllin{24\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{this}\hlstd{}\hlopt{.}\hlstd{m\ }\hlopt{=\ }\hlstd{m}\hlopt{;}\\
+\hllin{25\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{26\ }\hlstd{\ \\
+\hllin{27\ }\ }\hlkwa{public\ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{()\ \{}\\
+\hllin{28\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ }\hlstd{m}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{29\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{30\ }\hlstd{\ }\hlkwa{public\ }\hlstd{String\ }\hlkwd{toString}\hlstd{}\hlopt{()\ \{}\\
+\hllin{31\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator\ it\ }\hlopt{=\ }\hlstd{m}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{32\ }\hlstd{}\hlstd{\ \ }\hlstd{String\ s\ }\hlopt{=\ }\hlstd{}\hlstr{""}\hlstd{}\hlopt{;}\\
+\hllin{33\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{it}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{34\ }\hlstd{}\hlstd{\ \ \ }\hlstd{s\ }\hlopt{+=\ }\hlstd{it}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{toString}\hlstd{}\hlopt{()\ +\ }\hlstd{}\hlstr{"}\hlesc{$\backslash$n}\hlstr{"}\hlstd{}\hlopt{;}\\
+\hllin{35\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlopt{\}}\\
+\hllin{36\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ }\hlstd{s}\hlopt{;}\\
+\hllin{37\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{38\ }\hlstd{\ Matrix\ }\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{Matrix\ bMatrix}\hlopt{)\ \{\ }\hlstd{}\hlslc{//ӷ}\\
+\hllin{39\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{bItM\ }\hlopt{=\ }\hlstd{bMatrix}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{40\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{aItM\ }\hlopt{=\ }\hlstd{}\hlkwa{this}\hlstd{}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{41\ }\hlstd{}\hlstd{\ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{mNew\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$();}\\
+\hllin{42\ }\hlstd{}\hlstd{\ \ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{bItM}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{43\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{bh\ }\hlopt{=\ }\hlstd{bItM}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{();}\\
+\hllin{44\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{ah\ }\hlopt{=\ }\hlstd{aItM}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{();}\\
+\hllin{45\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{bItN\ }\hlopt{=\ }\hlstd{bh}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{46\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{aItN\ }\hlopt{=\ }\hlstd{ah}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{47\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{h\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$();}\\
+\hllin{48\ }\hlstd{}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{bItN}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{49\ }\hlstd{}\hlstd{\ \ \ \ \ \ }\hlstd{h}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{aItN}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{()+}\hlstd{bItN}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{());}\\
+\hllin{50\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{51\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{mNew}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{h}\hlopt{);}\\
+\hllin{52\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlopt{\}}\\
+\hllin{53\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ new\ }\hlstd{}\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{mNew}\hlopt{);}\\
+\hllin{54\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{55\ }\hlstd{\ Matrix\ }\hlkwd{sub}\hlstd{}\hlopt{(}\hlstd{Matrix\ bMatrix}\hlopt{)\ \{\ }\hlstd{}\hlslc{//}\\
+\hllin{56\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{bItM\ }\hlopt{=\ }\hlstd{bMatrix}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{57\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{aItM\ }\hlopt{=\ }\hlstd{}\hlkwa{this}\hlstd{}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{58\ }\hlstd{}\hlstd{\ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{mNew\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$();}\\
+\hllin{59\ }\hlstd{}\hlstd{\ \ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{bItM}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{60\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{bh\ }\hlopt{=\ }\hlstd{bItM}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{();}\\
+\hllin{61\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{ah\ }\hlopt{=\ }\hlstd{aItM}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{();}\\
+\hllin{62\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{bItN\ }\hlopt{=\ }\hlstd{bh}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{63\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{aItN\ }\hlopt{=\ }\hlstd{ah}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{64\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{h\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$();}\\
+\hllin{65\ }\hlstd{}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{bItN}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{66\ }\hlstd{}\hlstd{\ \ \ \ \ \ }\hlstd{h}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{aItN}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{(){-}}\hlstd{bItN}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{());}\\
+\hllin{67\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{68\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{mNew}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{h}\hlopt{);}\\
+\hllin{69\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlopt{\}}\\
+\hllin{70\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ new\ }\hlstd{}\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{mNew}\hlopt{);}\\
+\hllin{71\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{72\ }\hlstd{\ Matrix\ }\hlkwd{mul}\hlstd{}\hlopt{(}\hlstd{Matrix\ bMatrix}\hlopt{)\ \{\ }\hlstd{}\hlslc{//\ ӦԪ}\\
+\hllin{73\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{bItM\ }\hlopt{=\ }\hlstd{bMatrix}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{74\ }\hlstd{}\hlstd{\ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{aItM\ }\hlopt{=\ }\hlstd{}\hlkwa{this}\hlstd{}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{75\ }\hlstd{}\hlstd{\ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$\ }\hlstd{mNew\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$$>$();}\\
+\hllin{76\ }\hlstd{}\hlstd{\ \ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{bItM}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{77\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{bh\ }\hlopt{=\ }\hlstd{bItM}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{();}\\
+\hllin{78\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{ah\ }\hlopt{=\ }\hlstd{aItM}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{();}\\
+\hllin{79\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{bItN\ }\hlopt{=\ }\hlstd{bh}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{80\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{Iterator}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{aItN\ }\hlopt{=\ }\hlstd{ah}\hlopt{.}\hlstd{}\hlkwd{iterator}\hlstd{}\hlopt{();}\\
+\hllin{81\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$\ }\hlstd{h\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{ArrayList}\hlopt{$<$}\hlstd{Integer}\hlopt{$>$();}\\
+\hllin{82\ }\hlstd{}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwa{while}\hlstd{}\hlopt{(}\hlstd{bItN}\hlopt{.}\hlstd{}\hlkwd{hasNext}\hlstd{}\hlopt{())\{}\\
+\hllin{83\ }\hlstd{}\hlstd{\ \ \ \ \ \ }\hlstd{h}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{aItN}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{(){*}}\hlstd{bItN}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{());}\\
+\hllin{84\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{85\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{mNew}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{h}\hlopt{);}\\
+\hllin{86\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlopt{\}}\\
+\hllin{87\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ new\ }\hlstd{}\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{mNew}\hlopt{);}\\
+\hllin{88\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{89\ }\hlstd{\ }\hlkwa{public\ }\hlstd{}\hlkwb{int\ }\hlstd{}\hlkwd{get\ }\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{a}\hlopt{,}\hlstd{}\hlkwb{int\ }\hlstd{b}\hlopt{)\{}\\
+\hllin{90\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ }\hlstd{m}\hlopt{.}\hlstd{}\hlkwd{get}\hlstd{}\hlopt{(}\hlstd{a}\hlopt{{-}}\hlstd{}\hlnum{1}\hlstd{}\hlopt{).}\hlstd{}\hlkwd{get}\hlstd{}\hlopt{(}\hlstd{b}\hlopt{{-}}\hlstd{}\hlnum{1}\hlstd{}\hlopt{);}\\
+\hllin{91\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{92\ }\hlstd{\ }\hlkwa{public\ static\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{main}\hlstd{}\hlopt{(}\hlstd{String}\hlopt{{[}{]}\ }\hlstd{args}\hlopt{)\ \{}\\
+\hllin{93\ }\hlstd{\ \\
+\hllin{94\ }\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"ÿոֿ"}\hlstd{}\hlopt{);}\\
+\hllin{95\ }\hlstd{\ Scanner\ sc\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Scanner}\hlstd{}\hlopt{(}\hlstd{System}\hlopt{.}\hlstd{}\hlkwa{in}\hlstd{}\hlopt{);}\\
+\hllin{96\ }\hlstd{\ }\hlkwb{int\ }\hlstd{a\ }\hlopt{=\ }\hlstd{sc}\hlopt{.}\hlstd{}\hlkwd{nextInt}\hlstd{}\hlopt{();}\\
+\hllin{97\ }\hlstd{\ }\hlkwb{int\ }\hlstd{b\ }\hlopt{=\ }\hlstd{sc}\hlopt{.}\hlstd{}\hlkwd{nextInt}\hlstd{}\hlopt{();}\\
+\hllin{98\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"1ÿһУÿԪÿոֿسһ"}\hlstd{}\hlopt{);}\\
+\hllin{99\ }\hlstd{\ Matrix\ matrix1\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{a}\hlopt{,}\hlstd{b}\hlopt{);}\\
+\hllin{100\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"2ÿһУÿԪÿոֿسһ"}\hlstd{}\hlopt{);}\\
+\hllin{101\ }\hlstd{\ Matrix\ matrix2\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Matrix}\hlstd{}\hlopt{(}\hlstd{a}\hlopt{,}\hlstd{b}\hlopt{);}\\
+\hllin{102\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"1;2ӽ"}\hlstd{}\hlopt{);}\\
+\hllin{103\ }\hlstd{\ Matrix\ matrixAdd\ }\hlopt{=\ }\hlstd{matrix1}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{matrix2}\hlopt{);}\\
+\hllin{104\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{matrixAdd}\hlopt{);}\\
+\hllin{105\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"1;2"}\hlstd{}\hlopt{);}\\
+\hllin{106\ }\hlstd{\ Matrix\ matrixSub\ }\hlopt{=\ }\hlstd{matrix1}\hlopt{.}\hlstd{}\hlkwd{sub}\hlstd{}\hlopt{(}\hlstd{matrix2}\hlopt{);}\\
+\hllin{107\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{matrixSub}\hlopt{);}\\
+\hllin{108\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"1;2˽"}\hlstd{}\hlopt{);}\\
+\hllin{109\ }\hlstd{\ Matrix\ matrixMul\ }\hlopt{=\ }\hlstd{matrix1}\hlopt{.}\hlstd{}\hlkwd{mul}\hlstd{}\hlopt{(}\hlstd{matrix2}\hlopt{);}\\
+\hllin{110\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{matrixMul}\hlopt{);}\\
+\hllin{111\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"ھ1ҪõԪؽDZ꣬ÿոֿ"}\hlstd{}\hlopt{);}\\
+\hllin{112\ }\hlstd{\ sc\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Scanner}\hlstd{}\hlopt{(}\hlstd{System}\hlopt{.}\hlstd{}\hlkwa{in}\hlstd{}\hlopt{);}\\
+\hllin{113\ }\hlstd{\ a\ }\hlopt{=\ }\hlstd{sc}\hlopt{.}\hlstd{}\hlkwd{nextInt}\hlstd{}\hlopt{();}\\
+\hllin{114\ }\hlstd{\ b\ }\hlopt{=\ }\hlstd{sc}\hlopt{.}\hlstd{}\hlkwd{nextInt}\hlstd{}\hlopt{();}\\
+\hllin{115\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Ԫǣ"}\hlstd{}\hlopt{+}\hlstd{matrix1}\hlopt{.}\hlstd{}\hlkwd{get}\hlstd{}\hlopt{(}\hlstd{a}\hlopt{,}\hlstd{b}\hlopt{));}\\
+\hllin{116\ }\hlstd{\ System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Fibonacciǰ20"}\hlstd{}\hlopt{);}\\
+\hllin{117\ }\hlstd{\ Fibonacci}\hlopt{.}\hlstd{}\hlkwd{main}\hlstd{}\hlopt{(}\hlstd{args}\hlopt{);}\\
+\hllin{118\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{119\ }\hlstd{}\hlopt{\}}\\
+\hllin{120\ }\hlstd{}\hlkwa{class\ }\hlstd{Fibonacci\ }\hlopt{\{}\\
+\hllin{121\ }\hlstd{\ }\hlkwb{int}\hlstd{}\hlopt{{[}{]}\ }\hlstd{f}\hlopt{;}\\
+\hllin{122\ }\hlstd{\ }\hlkwd{Fibonacci}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{num}\hlopt{)\ \{}\\
+\hllin{123\ }\hlstd{}\hlstd{\ \ }\hlstd{f\ }\hlopt{=}\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwb{int}\hlstd{}\hlopt{{[}}\hlstd{num}\hlopt{{]};}\\
+\hllin{124\ }\hlstd{}\hlstd{\ \ }\hlstd{f}\hlopt{{[}}\hlstd{}\hlnum{0}\hlstd{}\hlopt{{]}\ =\ }\hlstd{}\hlnum{1}\hlstd{}\hlopt{;}\\
+\hllin{125\ }\hlstd{}\hlstd{\ \ }\hlstd{f}\hlopt{{[}}\hlstd{}\hlnum{1}\hlstd{}\hlopt{{]}\ =\ }\hlstd{}\hlnum{1}\hlstd{}\hlopt{;}\\
+\hllin{126\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{for}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{i\ }\hlopt{=}\hlstd{}\hlnum{2}\hlstd{}\hlopt{;}\hlstd{i}\hlopt{$<$}\hlstd{num}\hlopt{;}\hlstd{i}\hlopt{++)\ \{}\\
+\hllin{127\ }\hlstd{}\hlstd{\ \ \ }\hlstd{f}\hlopt{{[}}\hlstd{i}\hlopt{{]}\ =\ }\hlstd{f}\hlopt{{[}}\hlstd{i}\hlopt{{-}}\hlstd{}\hlnum{1}\hlstd{}\hlopt{{]}+}\hlstd{f}\hlopt{{[}}\hlstd{i}\hlopt{{-}}\hlstd{}\hlnum{2}\hlstd{}\hlopt{{]};}\\
+\hllin{128\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlopt{\}}\\
+\hllin{129\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{130\ }\hlstd{\ }\hlkwa{public\ }\hlstd{String\ }\hlkwd{toString}\hlstd{}\hlopt{()\ \{}\\
+\hllin{131\ }\hlstd{}\hlstd{\ \ }\hlstd{String\ s\ }\hlopt{=\ }\hlstd{}\hlstr{""}\hlstd{}\hlopt{;}\\
+\hllin{132\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{for}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{i\ }\hlopt{:\ }\hlstd{f}\hlopt{)}\\
+\hllin{133\ }\hlstd{}\hlstd{\ \ }\hlstd{s\ }\hlopt{+=\ }\hlstd{i}\hlopt{+}\hlstd{}\hlstr{","}\hlstd{}\hlopt{;}\\
+\hllin{134\ }\hlstd{}\hlstd{\ \ }\hlstd{}\hlkwa{return\ }\hlstd{s}\hlopt{;}\\
+\hllin{135\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{136\ }\hlstd{\ }\hlkwa{public\ static\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{main}\hlstd{}\hlopt{(}\hlstd{String}\hlopt{{[}{]}\ }\hlstd{args}\hlopt{)\ \{}\\
+\hllin{137\ }\hlstd{}\hlstd{\ \ }\hlstd{Fibonacci\ ff\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Fibonacci}\hlstd{}\hlopt{(}\hlstd{}\hlnum{20}\hlstd{}\hlopt{);}\\
+\hllin{138\ }\hlstd{}\hlstd{\ \ }\hlstd{System}\hlopt{.}\hlstd{out}\hlopt{.}\hlstd{}\hlkwd{println}\hlstd{}\hlopt{(}\hlstd{ff}\hlopt{);}\\
+\hllin{139\ }\hlstd{\ }\hlopt{\}}\\
+\hllin{140\ }\hlstd{}\hlopt{\}}\\
+\hllin{141\ }\hlstd{\\
+\hllin{142\ }}\hlstd{\ \ }\hlstd{}
+\mbox{}
+\normalfont
+\normalsize
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/Place_has_TrainDAO.java.tex b/macros/latex/contrib/uestcthesis/doc/chapters/Place_has_TrainDAO.java.tex
new file mode 100644
index 0000000000..28bb409be8
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/Place_has_TrainDAO.java.tex
@@ -0,0 +1,121 @@
+\noindent
+\ttfamily
+\hlstd{}\hllin{01\ }\hlkwa{package\ }\hlstd{dbcontrol}\hlopt{.}\hlstd{dao}\hlopt{;}\\
+\hllin{02\ }\hlstd{}\\
+\hllin{03\ }\hlkwa{import\ }\hlstd{dbcontrol}\hlopt{.}\hlstd{vo}\hlopt{.}\hlstd{Place\textunderscore has\textunderscore TrainVO}\hlopt{;}\\
+\hllin{04\ }\hlstd{}\hlkwa{import\ }\hlstd{dbcontrol}\hlopt{.}\hlstd{vo}\hlopt{.}\hlstd{TrainVO}\hlopt{;}\\
+\hllin{05\ }\hlstd{}\hlkwa{import\ }\hlstd{dbcontrol}\hlopt{.}\hlstd{vo}\hlopt{.}\hlstd{VO}\hlopt{;}\\
+\hllin{06\ }\hlstd{}\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{sql}\hlopt{.}\hlstd{ResultSet}\hlopt{;}\\
+\hllin{07\ }\hlstd{}\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{sql}\hlopt{.}\hlstd{SQLException}\hlopt{;}\\
+\hllin{08\ }\hlstd{}\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{util}\hlopt{.}\hlstd{LinkedList}\hlopt{;}\\
+\hllin{09\ }\hlstd{}\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{util}\hlopt{.}\hlstd{logging}\hlopt{.}\hlstd{Level}\hlopt{;}\\
+\hllin{10\ }\hlstd{}\hlkwa{import\ }\hlstd{java}\hlopt{.}\hlstd{util}\hlopt{.}\hlstd{logging}\hlopt{.}\hlstd{Logger}\hlopt{;}\\
+\hllin{11\ }\hlstd{}\\
+\hllin{12\ }\hlcom{/{*}{*}}\\
+\hllin{13\ }\hlcom{\ {*}\ Place\textunderscore has\textunderscore Train表DAO类}\\
+\hllin{14\ }\hlcom{\ {*}}\\
+\hllin{15\ }\hlcom{\ {*}\ @author\ Shifujun}\\
+\hllin{16\ }\hlcom{\ {*}/}\hlstd{}\\
+\hllin{17\ }\hlkwa{public\ class\ }\hlstd{Place\textunderscore has\textunderscore TrainDAO\ }\hlkwa{extends\ }\hlstd{AbstractDAO\ }\hlopt{\{}\\
+\hllin{18\ }\hlstd{\\
+\hllin{19\ }}\hlstd{\ \ \ \ }\hlstd{Place\textunderscore has\textunderscore TrainVO\ vo}\hlopt{;}\\
+\hllin{20\ }\hlstd{\\
+\hllin{21\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{22\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{createPreparedStatements}\hlstd{}\hlopt{()\ \{}\\
+\hllin{23\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{try\ }\hlstd{}\hlopt{\{}\\
+\hllin{24\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{insertStmtStr\ }\hlopt{=\ }\hlstd{}\hlstr{"insert\ into\ Place\textunderscore has\textunderscore Train\ (}\Righttorque\\
+\hllin{25\ }\hlstr{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstr{Place\textunderscore ID,Train\textunderscore ID)\ values\ (?,?)"}\hlstd{}\hlopt{;}\\
+\hllin{26\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{insertStmt\ }\hlopt{=\ }\hlstd{dbutil}\hlopt{.}\hlstd{}\hlkwd{createPreparedStatement}\hlstd{}\hlopt{(}\Righttorque\\
+\hllin{27\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{insertStmtStr}\hlopt{);}\\
+\hllin{28\ }\hlstd{\\
+\hllin{29\ }}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{updateStmtStr\ }\hlopt{=\ }\hlstd{}\hlstr{""}\hlstd{}\hlopt{;}\\
+\hllin{30\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{updateStmt\ }\hlopt{=\ }\hlstd{dbutil}\hlopt{.}\hlstd{}\hlkwd{createPreparedStatement}\hlstd{}\hlopt{(}\Righttorque\\
+\hllin{31\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{updateStmtStr}\hlopt{);}\\
+\hllin{32\ }\hlstd{\\
+\hllin{33\ }}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{deleteStmtStr\ }\hlopt{=\ }\hlstd{}\hlstr{"delete\ from\ Place\textunderscore has\textunderscore Train\ }\Righttorque\\
+\hllin{34\ }\hlstr{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstr{where\ Place\textunderscore ID\ =\ ?\ and\ Train\textunderscore ID\ =\ ?"}\hlstd{}\hlopt{;}\\
+\hllin{35\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{deleteStmt\ }\hlopt{=\ }\hlstd{dbutil}\hlopt{.}\hlstd{}\hlkwd{createPreparedStatement}\hlstd{}\hlopt{(}\Righttorque\\
+\hllin{36\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{deleteStmtStr}\hlopt{);}\\
+\hllin{37\ }\hlstd{\\
+\hllin{38\ }}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selectStmtStr\ }\hlopt{=\ }\hlstd{}\hlstr{"select\ {*}\ from\ Place\textunderscore has\textunderscore Train\ }\Righttorque\\
+\hllin{39\ }\hlstr{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstr{where\ Place\textunderscore ID\ =\ ?\ and\ Train\textunderscore ID\ =\ ?"}\hlstd{}\hlopt{;}\\
+\hllin{40\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selectStmt\ }\hlopt{=\ }\hlstd{dbutil}\hlopt{.}\hlstd{}\hlkwd{createPreparedStatement}\hlstd{}\hlopt{(}\Righttorque\\
+\hllin{41\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selectStmtStr}\hlopt{);}\\
+\hllin{42\ }\hlstd{\\
+\hllin{43\ }}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selectListStmtStr\ }\hlopt{=\ }\hlstd{}\hlstr{"select\ {*}\ from\ }\Righttorque\\
+\hllin{44\ }\hlstr{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstr{Place\textunderscore has\textunderscore Train\ where\ Place\textunderscore ID\ =\ ?"}\hlstd{}\hlopt{;}\\
+\hllin{45\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selectListStmt\ }\hlopt{=\ }\hlstd{dbutil}\hlopt{.}\hlstd{}\hlkwd{createPreparedStatement}\hlstd{}\hlopt{(}\Righttorque\\
+\hllin{46\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selectListStmtStr}\hlopt{);}\\
+\hllin{47\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlopt{\}\ }\hlstd{}\hlkwa{catch\ }\hlstd{}\hlopt{(}\hlstd{Exception\ ex}\hlopt{)\ \{}\\
+\hllin{48\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Logger}\hlopt{.}\hlstd{}\hlkwd{getLogger}\hlstd{}\hlopt{(}\hlstd{Place\textunderscore has\textunderscore TrainDAO}\hlopt{.}\hlstd{}\hlkwa{class}\hlstd{}\hlopt{.}\Righttorque\\
+\hllin{49\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{getName}\hlstd{}\hlopt{()).}\hlstd{}\hlkwd{log}\hlstd{}\hlopt{(}\hlstd{Level}\hlopt{.}\hlstd{SEVERE}\hlopt{,\ }\hlstd{null}\hlopt{,\ }\hlstd{ex}\hlopt{);}\\
+\hllin{50\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{51\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{52\ }\hlstd{\\
+\hllin{53\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{54\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{insertDAO}\hlstd{}\hlopt{()\ }\hlstd{}\hlkwa{throws\ }\hlstd{SQLException\ }\hlopt{\{}\\
+\hllin{55\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{insertStmt}\hlopt{.}\hlstd{}\hlkwd{setInt}\hlstd{}\hlopt{(}\hlstd{}\hlnum{1}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getPlace\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{56\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{insertStmt}\hlopt{.}\hlstd{}\hlkwd{setString}\hlstd{}\hlopt{(}\hlstd{}\hlnum{2}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getTrain\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{57\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{insertStmt}\hlopt{.}\hlstd{}\hlkwd{executeUpdate}\hlstd{}\hlopt{();}\\
+\hllin{58\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{59\ }\hlstd{\\
+\hllin{60\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{61\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{deleteDAO}\hlstd{}\hlopt{()\ }\hlstd{}\hlkwa{throws\ }\hlstd{SQLException\ }\hlopt{\{}\\
+\hllin{62\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{deleteStmt}\hlopt{.}\hlstd{}\hlkwd{setInt}\hlstd{}\hlopt{(}\hlstd{}\hlnum{1}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getPlace\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{63\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{deleteStmt}\hlopt{.}\hlstd{}\hlkwd{setString}\hlstd{}\hlopt{(}\hlstd{}\hlnum{2}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getTrain\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{64\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{deleteStmt}\hlopt{.}\hlstd{}\hlkwd{executeUpdate}\hlstd{}\hlopt{();}\\
+\hllin{65\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{66\ }\hlstd{\\
+\hllin{67\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{68\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{loadDAO}\hlstd{}\hlopt{()\ }\hlstd{}\hlkwa{throws\ }\hlstd{SQLException\ }\hlopt{\{}\\
+\hllin{69\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{selectStmt}\hlopt{.}\hlstd{}\hlkwd{setInt}\hlstd{}\hlopt{(}\hlstd{}\hlnum{1}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getPlace\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{70\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{selectStmt}\hlopt{.}\hlstd{}\hlkwd{setString}\hlstd{}\hlopt{(}\hlstd{}\hlnum{2}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getTrain\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{71\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{ResultSet\ rs\ }\hlopt{=\ }\hlstd{selectStmt}\hlopt{.}\hlstd{}\hlkwd{executeQuery}\hlstd{}\hlopt{();}\\
+\hllin{72\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{if\ }\hlstd{}\hlopt{(}\hlstd{rs}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{())\ \{}\\
+\hllin{73\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{this}\hlstd{}\hlopt{.}\hlstd{vo\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Place\textunderscore has\textunderscore TrainVO}\hlstd{}\hlopt{();}\\
+\hllin{74\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{setPlace\textunderscore ID}\hlstd{}\hlopt{(}\hlstd{rs}\hlopt{.}\hlstd{}\hlkwd{getInt}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Place\textunderscore ID"}\hlstd{}\hlopt{));}\\
+\hllin{75\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{setTrain\textunderscore ID}\hlstd{}\hlopt{(}\hlstd{rs}\hlopt{.}\hlstd{}\hlkwd{getString}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Train\textunderscore ID"}\hlstd{}\hlopt{));}\\
+\hllin{76\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlopt{\}\ }\hlstd{}\hlkwa{else\ }\hlstd{}\hlopt{\{}\\
+\hllin{77\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{vo\ }\hlopt{=\ }\hlstd{null}\hlopt{;}\\
+\hllin{78\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{79\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{80\ }\hlstd{\\
+\hllin{81\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{82\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{setVO}\hlstd{}\hlopt{(}\hlstd{VO\ vo}\hlopt{)\ \{}\\
+\hllin{83\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{this}\hlstd{}\hlopt{.}\hlstd{vo\ }\hlopt{=\ (}\hlstd{Place\textunderscore has\textunderscore TrainVO}\hlopt{)\ }\hlstd{vo}\hlopt{;}\\
+\hllin{84\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{85\ }\hlstd{\\
+\hllin{86\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{87\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{}\hlkwb{void\ }\hlstd{}\hlkwd{updateDAO}\hlstd{}\hlopt{()\ }\hlstd{}\hlkwa{throws\ }\hlstd{SQLException\ }\hlopt{\{}\\
+\hllin{88\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlslc{//这个表不需要更新。}\\
+\hllin{89\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{90\ }\hlstd{\\
+\hllin{91\ }}\hlstd{\ \ \ \ }\hlstd{}\hlcom{/{*}{*}}\\
+\hllin{92\ }\hlcom{}\hlstd{\ \ \ \ \ }\hlcom{{*}\ 查找和this.vo的地点相同的所有VO。}\\
+\hllin{93\ }\hlcom{}\hlstd{\ \ \ \ \ }\hlcom{{*}}\\
+\hllin{94\ }\hlcom{}\hlstd{\ \ \ \ \ }\hlcom{{*}\ @return}\\
+\hllin{95\ }\hlcom{}\hlstd{\ \ \ \ \ }\hlcom{{*}\ @throws\ SQLException}\\
+\hllin{96\ }\hlcom{}\hlstd{\ \ \ \ \ }\hlcom{{*}/}\hlstd{\\
+\hllin{97\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{LinkedList}\hlopt{$<$}\hlstd{Place\textunderscore has\textunderscore TrainVO}\hlopt{$>$\ }\hlstd{}\hlkwd{getTrainListByPlace}\hlstd{}\hlopt{(}\Righttorque\\
+\hllin{98\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{)\ }\hlstd{}\hlkwa{throws\ }\hlstd{SQLException\ }\hlopt{\{}\\
+\hllin{99\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{selectListStmt}\hlopt{.}\hlstd{}\hlkwd{setInt}\hlstd{}\hlopt{(}\hlstd{}\hlnum{1}\hlstd{}\hlopt{,\ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{getPlace\textunderscore ID}\hlstd{}\hlopt{());}\\
+\hllin{100\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{ResultSet\ rs\ }\hlopt{=\ }\hlstd{selectListStmt}\hlopt{.}\hlstd{}\hlkwd{executeQuery}\hlstd{}\hlopt{();}\\
+\hllin{101\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{LinkedList}\hlopt{$<$}\hlstd{Place\textunderscore has\textunderscore TrainVO}\hlopt{$>$\ }\hlstd{list\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{LinkedList}\hlopt{$<$}\Righttorque\\
+\hllin{102\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{Place\textunderscore has\textunderscore TrainVO}\hlopt{$>$();}\\
+\hllin{103\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{while\ }\hlstd{}\hlopt{(}\hlstd{rs}\hlopt{.}\hlstd{}\hlkwd{next}\hlstd{}\hlopt{())\ \{}\\
+\hllin{104\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Place\textunderscore has\textunderscore TrainVO\ vo\ }\hlopt{=\ }\hlstd{}\hlkwa{new\ }\hlstd{}\hlkwd{Place\textunderscore has\textunderscore TrainVO}\hlstd{}\hlopt{();}\\
+\hllin{105\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{setPlace\textunderscore ID}\hlstd{}\hlopt{(}\hlstd{rs}\hlopt{.}\hlstd{}\hlkwd{getInt}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Place\textunderscore ID"}\hlstd{}\hlopt{));}\\
+\hllin{106\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{vo}\hlopt{.}\hlstd{}\hlkwd{setTrain\textunderscore ID}\hlstd{}\hlopt{(}\hlstd{rs}\hlopt{.}\hlstd{}\hlkwd{getString}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"Train\textunderscore ID"}\hlstd{}\hlopt{));}\\
+\hllin{107\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{list}\hlopt{.}\hlstd{}\hlkwd{add}\hlstd{}\hlopt{(}\hlstd{vo}\hlopt{);}\\
+\hllin{108\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{109\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{return\ }\hlstd{list}\hlopt{;}\\
+\hllin{110\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{111\ }\hlstd{\\
+\hllin{112\ }}\hlstd{\ \ \ \ }\hlstd{}\hlkwc{@Override}\\
+\hllin{113\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{public\ }\hlstd{VO\ }\hlkwd{getVO}\hlstd{}\hlopt{()\ \{}\\
+\hllin{114\ }\hlstd{}\hlstd{\ \ \ \ \ \ \ \ }\hlstd{}\hlkwa{return\ this}\hlstd{}\hlopt{.}\hlstd{vo}\hlopt{;}\\
+\hllin{115\ }\hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlopt{\}}\\
+\hllin{116\ }\hlstd{}\hlopt{\}}\hlstd{}\\
+\mbox{}
+\normalfont
+\normalsize
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/implementation.tex b/macros/latex/contrib/uestcthesis/doc/chapters/implementation.tex
new file mode 100644
index 0000000000..9636d04113
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/implementation.tex
@@ -0,0 +1,219 @@
+% !Mode:: "TeX:UTF-8"
+
+\chapter{示例:实现方案}
+本章首先介绍了本系统实现的设计原则与目标,然后描述了系统的整体架构与总体设计方案,接着阐述了系统的各个模块实现时的解决方案,最后给出了系统在~Android~具体实现时的实现方法和使用说明。
+\section{设计目标与原则}
+ \subsection{设计目标}
+ 本系统能够检测已知恶意软件及其变种,并能通过模糊检测发现具有相似恶意行为的未知恶意软件,为~Android~平台这样的开放式移动平台提供安全保障,可广泛用于各种型号的~Android~设备。系统具体设计目标如下:
+ \begin{enumerate}
+ \item 适用于目前主流的~Android~平板及手机,至少可运行于3.0版本系统。
+ \item 能够检测用户指定的程序是否为恶意程序。
+ \item 能够自动检测设备上的所有程序,并可定时检测。
+ \item 能够监控设备的程序安装行为,自动检测安装的程序是否为恶意程序。
+ \item 能够保证本程序自身的特征库不被破坏,并能及时修复和更新特征库。
+ \item 能够保证用户使用方便。
+ \end{enumerate}
+
+ \subsection{设计原则}
+ 从安全产品的特点出发,本系统设计与实现将遵循下列一些设计原则:
+ \begin{enumerate}
+ \item 高效性
+
+ 系统运行效率高,可快速实现对目标程序的特征提取与检测,并将结果用最清晰简洁的方式告知用户。
+ \item 灵活性
+
+ 为用户提供的各种功能具有可选性,用户可根据自己的需要选择其中的功能,而且用户可自行决定如何处理检测结果为恶意的程序。
+
+ \item 实用性
+
+ 本系统应按照实用性原则进行设计,在保证对程序检测的同时,力求用户界面简洁友好。
+
+ \item 可扩展性
+
+ 目前本系统只检测程序的~Java~实现部分,但是还有极少数程序代码是用~C~语言编写的,在后续的开发过程中,可以在不改变程序结构的前提下,实现这一部分的检测功能。
+
+ \item 健壮性 \par
+ 系统应具有应对非法操作的能力,并且当针对于本系统的恶意攻击到来时,可以及时防御,防止自身特征库遭到损坏。
+ \end{enumerate}
+
+\section{系统方案}
+ 本系统由两部分构成,第一部分是产品部分,即~Android~应用程序,采用~Java~作为编程语言。第二部分是检测算法模型构建部分,采用~Matlab~实现,其输出的模型数据供产品部分作为特征库使用。故本系统的特征库构建于~PC~端,而对目标程序的检测运行于~Android~端。从而将构建过程中包含的巨大计算量留在~PC~端。其具体结构如图~\ref{system}~所示。
+\pic[htbp]{系统结构}{height=5.86cm}{system}
+
+ 其中程序信息抽取模块是本系统检测恶意软件的基础,特征检测模块是系统的核心与实现难点。特征检测模块中又分为变种检测模块和模糊检测模块,变种检测模块检测待检软件是否是已知恶意软件的变种,而模糊检测模块实现的是本系统从人脸匹配中引入的新型检测手段,可对特征库中不存在的未知恶意软件进行检测。
+
+\section{系统模块的实现}
+ \subsection{程序分解模块}
+
+ Android~的程序文件为~APK~格式,APK~文件是~Android~最终的运行程序,是~Android~Package~的全称。类似于~Symbian~ 操作系统中~sis~文件,APK~文件其实是~Zip~文件格式,但后缀名被修改为~APK。通过解压,可以看到~Dex~ 文件。Dex~是~Dalvik~VM~executes~的全称,即~Dalvik~虚拟机可执行文件,并非~Java~ME~的字节码而是~Dalvik~字节码。\\
+ 一个APK文件结构为:
+ \begin{enumerate}
+ \item META-INF$\backslash$————签名信息,用来保证~apk~包的完整性和系统的安全,jar~文件经常可以看到;
+ \item res$\backslash$————资源文件夹,包括程序中使用的图片,布局文件等;
+ \item AndroidManifest.xml$\backslash$————项目配置清单,但不是明文的XML格式,无法直接打开阅读;
+ \item classes.dex$\backslash$————Dalvik~可执行二进制文件,在运行时被动态优化为dey文件并由Dalvik虚拟机解释执行 ;
+ \item resources.arsc$\backslash$————编译后的二进制资源文件,资源文件打包而成,字符串值(源码中的/value/Strings.xml)就在其中;
+ \item lib$\backslash$————动态链接库文件;
+ \item assets$\backslash$————原始文件文件夹,其中的文件不会被压缩,也不能像~res~目录下的资源文件一样通过资源类引用。
+ \end{enumerate}\par
+ 图~\ref{apk}~是我们解压缩helloworld.apk文件后看到的内容,可以看到其结构跟工程结构有些类似。
+
+\pic[htbp]{helloworld.apk的结构}{width=0.5\textwidth}{apk}
+
+
+ classes.dex~文件是~Java~源码编译后生成的~Java~字节码文件。但由于~Android~使用的~Dalvik~虚拟机与标准的~Java~虚拟机是不兼容的,Dex~文件与~Class~文件相比,不论是文件结构还是~opcode~都不一样。目前常见的~Java~ 反编译工具都不能处理~Dex~文件。Android~SDK~中提供了一个~Dex~文件的反编译工具~dexdump。用法为,dexdump -d -f -h xxx.dex。
+ \\
+ 指令参数解释:\\
+ -d : 反编译程序段\\
+ -f : 从文件头显示摘要信息\\
+ -h : 显示文件头详情\\
+ -C : 反编译低级符号名\\
+ -S : 只计算大小 \par
+ 在知道了程序安装包是~Zip~编码之后,我们就可以通过遍历~Zip~包中包含的项目名,找到程序的二进制文件,即~Dex~文件。并在内存中建立一段缓冲区,可将~Dex~文件读入内存,再写到指定的临时文件中。分解流程如图~\ref{flow1}~所示。
+
+\pic[htbp]{程序分解流程}{height = 5.76cm}{flow1}
+
+ \subsection{构建特征向量模块}
+ 特征向量是数据挖掘中的一个概念,一个数据集中的每个数据实例都可以用一组属性值来描述,每一个数据实例都具有一个特殊的目标属性,称为类属性,它表征每个数据实例归属的类。这一组属性值即是代表这个数据实例的特征向量。在我们的检测问题中,Android~系统~API~和~Java~标准函数就是我们定义的属性,而恶意和非恶意就是类属性。这一过程如图~\ref{flow3}~所示。
+
+\pic[htbp]{构建特征向量流程}{height = 0.5\textwidth}{flow3}
+
+ 我们将特征向量空间($\Omega$)存储在数据库中,数据表的定义见表~\ref{omegatable}~所示。
+
+\threelinetable[htbp]{omegatable}{0.8\textwidth}{llllX}{$\Omega$~数据表定义}
+{字段&主键&类型&是否为空&备注\\
+}{
+ID&是&Int&NOT NULL&特征向量维度序号\\
+MethodName&否&Text&NOT NULL&函数名\\
+}{\item
+}
+
+ 构造特征向量时,先初始化一个全为0的特征向量,然后利用SQL查询语句确定代表某一函数名的维度序号:\\
+ select ID from Omega where MethodName = “待查函数名”;\\
+ 并将特征向量($\omega$)的第~ID~位设置为1。见式(\ref{omegai})。
+ \begin{equation}\label{omegai}
+ \omega_i =
+ \begin{cases}
+ 1 & i = ID \\
+ 0 & else
+ \end{cases}
+ \end{equation}
+ \subsection{特征库构建模块}
+ 特征库构建模块实现于~PC~端,恶意样本来自各大权威机构公布的数据,详见第\pageref{omegai}页\ref{omegai}小节,其流程如图~\ref{flow5}~所示,特征库数据模型构建方法如下:
+
+\begin{pics}[htbp]{特征库构建流程}{flow5}
+ \addsubpic{KNN特征库构建流程}{width=0.3\textwidth}{flow5-1}
+ \addsubpic{K-L~变换矩阵构建流程}{width=0.3\textwidth}{flow5-2}
+ \addsubpic{LDA~投影矩阵构建流程}{width=0.3\textwidth}{flow5-3}
+\end{pics}
+
+ \begin{enumerate}
+ \item 最近邻居(KNN)算法\par
+ KNN~算法的特征库就是恶意程序样本的特征向量集合,我们将这些特征向量存储到数据库中。
+
+ \item 主成分分析(PCA)算法\par
+ 考虑到文献\citeup{wangang1912}\citeup{zhaokaihua1995}中的适用条件,由于我们的特征向量维度远大于样本数量,所以需要去掉冗余数据,使训练数据矩阵为可逆矩阵才能使用线性判别分析(LDA)算法。
+
+ PCA~方法主要是通过对协方差矩阵进行本征分解,以得出数据的主成分(即本征矢量)与它们的权值(即本征值)。PCA~ 提供了一种降低数据维度的有效办法;如果分析者在原数据中除掉最小的本征值所对应的成分,那么所得的低维度数据必定是最优化的(也即这样降低维度必定是失去信息最少的方法)。
+
+ 我们的目标是把高维的数据集~$\Omega_B$~和~$\Omega_M$~变换成具有较小维度的数据集~$Y_B$~和~$Y_M$。$Y_B$~和~$Y_M$~是矩阵~$\Omega_B$~和~$\Omega_M$~的~Karhunen–Loève~变换(K-L~变换)。即~$\mathbf{Y}=\mathbb{KLT}\{\mathbf{X}\}$。\\
+ 计算特征向量平均值见式(\ref{mean})。
+ \begin{equation}\label{mean}
+ u=\dfrac{1}{N} \sum_{\omega \in \Omega_B \cup \Omega_M} \omega
+ \end{equation}
+ 从~$\Omega_B$~和~$\Omega_M$~中减去平均值~$u$~见式(\ref{Omega_u})。
+ \begin{equation}\label{Omega_u}
+ \begin{split}
+ B & =\begin{vmatrix}\Omega_B \\ \Omega_M \end{vmatrix}-hu\\
+ & \text{其中h是全为1的列向量。}
+ \end{split}
+ \end{equation}
+ 求协方差矩阵~C~见式(\ref{getC})。
+ \begin{equation}\label{getC}
+ C=B \cdot B^T
+ \end{equation}
+ 计算~C~的特征值和特征向量,提取不为0的特征值所对应的特征向量,构成~K-L~变换矩阵~W。\\
+ 所以,$Y_B$~和~$Y_M$~可由式(\ref{ybym})计算。
+ \begin{equation}\label{ybym}
+ \begin{split}
+ Y_B &= \Omega_B \cdot W \\
+ Y_M &= \Omega_M \cdot W
+ \end{split}
+ \end{equation}
+
+ 最后我们将~K-L~变换矩阵~W~存储在数据库中。
+
+ \item Fisher~线性判别分析(LDA)\par
+\threelinetable[htbp]{ldaparameterdeftable}{\textwidth}{lXlX}{LDA算法变量定义}
+{变量&定义&变量&定义\\
+}{
+ $S_b$ & 样本类间离散度矩阵 & $x$ & 一个程序\\
+ $S_i$ & 样本类内离散度矩阵&$X_M$ & 恶意程序集合\\
+ $S_w$ & 总类内离散度矩阵&$X_B$ & 非恶意程序集合\\
+ $W$ & 投影方向向量&$y_M$ & 恶意样本的投影值 \\
+ $J_F(W)$& Fisher~准则函数&$y_B$ & 非恶意样本的投影值\\
+ $M$ & 恶意(Malice)的缩写&$y_0$ & 识别阈值点\\
+ $B$ & 非恶意(Benign)的缩写&&\\
+}{
+\item
+}
+
+应用统计方法解决模式识别问题时,一再碰到的问题之一是维数问题。在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通。因此,降低维数有时就成为处理实际问题的关键。在数学上总是可以把高维空间样本投影到一条直线上,形成一维空间,即把维数压缩到一维。但是投影方向有无数种,若把样本投影到一条任意的直线上,可能使几类样本混在一起无法区分,如图~\ref{fisher1}~所示。。但在一般情况下,总可以找到某个方向,使在这个方向的直线上,样本的投影能分开得最好,如图~\ref{fisher2}~所示。。 问题是如何根据实际情况找到这条最好的、最易于区分的投影线。这就是~Fisher~法所要解决的基本问题。\par
+
+\begin{pics}[htbp]{Fisher~线性判别基本原理}{fisher}
+ \addsubpic{最优方向投影}{width=0.4\textwidth}{fisher1}
+ \addsubpic{K-L~任意方向投影}{width=0.4\textwidth}{fisher2}
+\end{pics}
+
+ 描述~LDA~算法前,首先定义几个基本变量,变量定义见表~\ref{ldaparameterdeftable}。LDA~算法步骤如下:
+
+ \begin{enumerate}
+ \item 计算样本均值向量~$m_i$:
+ \begin{equation*}
+ m_i=\dfrac{1}{N_i}\sum_{y \in Y_i}y ~~~~,i=B,M
+ \end{equation*}
+ \item 计算样本类内离散度矩阵~$S_i$~和总类内离散度矩阵~$S_w$:
+ \begin{align}
+ S_i & = \sum_{y \in Y_i}(y-m_i)(x-m_i)^T ~~~~,i=B,M\\
+ S_w & = P(x|x \in X_B)S_B + P(x|x\in X_M)S_M
+ \end{align}
+ \item 计算样本类间离散度矩阵~$S_b$:
+ \begin{equation*}
+ S_b=P(x|x \in X_B)P(x|x\in X_M)(m_B-m_M)(m_B-m_M)^T
+ \end{equation*}
+ $P(x|x \in X_B)$~和~$P(x|x\in X_M)$~是恶意程序和非恶意程序的先验概率,根据目前~Android~市场的情况,我们取~$P(x|x\in X_M)=0.001$。
+ \item Fisher准则函数为:
+ \begin{equation}
+ J_F(W) = \dfrac{W^T S_b W}{W^T S_w W}
+ \end{equation}
+ 为求函数取极大值时的~$W^*$。可用拉格朗日乘数法,定义拉格朗日函数为:
+ \begin{equation*}
+ \dfrac{L(W,\lambda)}{W} = S_bW-\lambda S_w W
+ \end{equation*}
+ 另偏导数为零,得
+ \begin{equation*}
+ S_b W^* = \lambda S_w W^*
+ \end{equation*}
+ 其中~$W^*$~就是~$J_F(W)$~的极值解。因为~$S_w$~可逆,等式两边左乘~$S_w^{-1}$,可得
+ \begin{equation*}
+ S_w^{-1} S_b W^* = \lambda W^*
+ \end{equation*}
+ 所以求~$W^*$~即求矩阵~$S_w^{-1} S_b$~的特征值问题。在我们这个特殊情况下,只有两种类别,故
+ \begin{equation*}
+ S_b W^* = (m_B-m_M)(m_B-m_M)^T W^*
+ \end{equation*}
+ 其值为一标量,所以对~$W$~投影方向无影响。忽略这个标量的比例因子可得,
+ \begin{equation*}
+ W^* = S_w^{-1} (m_B-m_M)
+ \end{equation*}
+ \item 求出~$W^*$~后即可计算:
+ \begin{align}
+ y_M & = mean(W^*T \cdot Y_M) \\
+ y_B & = mean(W^*T \cdot Y_B) \\
+ y_0 & = \dfrac{m_B+m_M}{2} + \dfrac{\ln (P(x|x\in X_B)/P(x|x\in X_M))}{N_B+N_M-2}
+ \end{align}
+ 最后将LDA变换矩阵~$W$、$y_M$、$y_B$、$y_0$保存在数据库中。
+ \end{enumerate}
+ \end{enumerate}
+\section{本章小结}
+本章介绍了~AFace~系统的实现细节,它是一个由~Android~端和~PC~端两部分组成的系统。我们首先介绍了系统的设计原则。然后介绍了我们在此原则下设计的检测流程及其背后的检测原理。最后,作为一款完整的产品,还介绍了系统的产品软件架构以及产品的界面设计。
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/math.tex b/macros/latex/contrib/uestcthesis/doc/chapters/math.tex
new file mode 100644
index 0000000000..10ab73167a
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/math.tex
@@ -0,0 +1,79 @@
+% !Mode:: "TeX:UTF-8"
+
+\chapter{示例:数学论文}
+M. P. Drazin\citeup{drazin1958pseudo}在1958给出Drazin逆的定义, 其定义如下:\par
+若$A$是复$n$阶方阵, 满足下列等式的$X$称为Drazin逆:
+\begin{equation}
+\label{equ:xax}
+XAX=X,AX=XA,A^{k+1}X=A^k
+\end{equation}
+其中$k$是$A$的指标,即使得$rank(A^{k+1})=rank(A^k)$的最小整数。记为$A^D$。当$k=1$时,称为$A$的群逆。记为$A^\sharp$。\par
+此后,Drazin逆被广泛运用于很多方面。如:奇异微分差分方程;Markov链;迭代法;数值分析等等。特别地,这种广义矩阵在奇异线性常微分方程组以及奇异差分方程组求解问题中有重要的应用\citeup{angwen1988,baishunong1998,Dingwenxiang2000,gxzzzzqlyt1993,jiangyouxu1998,tangxujun1999,zhaokaihua1995,wangang1912,zhaoyaodong1998}。 所以有必要对其进一步研究。
+\section{Drazin逆计算方法的简介}
+很明显,一般通过(\ref{equ:xax})求$A$的Drazin逆比较困难。于是,在此之后有很多人执立于这方面的研究。比如:C.\nbs D.\nbs Meyer\citeup{Dingwenxiang2000}, U.\nbs G.\nbs Rothblum\citeup{zhaoyaodong1998}, Y. Wei\citeup{baishunong1998} 等等。其中C.\nbs D.\nbs Meyer早在1974年就给出一个用极限的形式求 ,其表达如下:\par
+若$A\in F^{n\times n}$,且对任意非负整数$p$,有
+\begin{equation}
+ A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}C^{(p)}_A
+\end{equation}
+其中$F^{n\times n}$为毫斯多夫拓扑空间上的$n$阶方阵,$C^{(p)}_A=A^{p+1}A^D$。\par
+特别地, 若$p\geq ind(A)$,则
+\begin{equation*}
+ A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}A^p
+\end{equation*}
+当$p=ind(A)=k$时, 则
+\begin{equation*}
+ A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}A^k
+\end{equation*}\par
+U.\nbs G.\nbs Rothblum在1976年也给出了Drazin逆的另外一种表达形式:\par
+若$A$是一任意方阵,$H$是$A$的本征投影,则$A-H$为非奇异阵且
+\begin{equation}
+ A^D=(A-H)^{-1}(I-H)=(I-H)(A-H)^{-1}
+\end{equation}
+其中$H=I-AA^D=I-A^DA$\par
+目前,比较常用的是建立在将矩阵$A$的约当标准型的基础之上的表达形式,该形式也是诸形式当中比较简单的一种。该形式是Campbell和Meyer\citeup{campbell1979generalized}在1979年给出的, 其形式如下:\par
+若$A$的约当标准型为
+\begin{equation*}
+ A=P\left(
+ \begin{array}{cc}
+ D & 0 \\
+ 0 & N \\
+ \end{array}
+ \right)
+ P^{-1}
+\end{equation*}
+其中$D$是秩为$r$的非奇异阵,$N$为指标为$k$的幂零矩阵,则
+\begin{equation}
+ A^D=P\left(
+ \begin{array}{cc}
+ D^{-1} & 0 \\
+ 0 & 0 \\
+ \end{array}
+ \right)
+ P^{-1}
+\end{equation}\par
+此外, Campbell\citeup{campbell1979generalized}也给出了另外一种表达形式:
+\begin{equation}
+A^D=A^k(A^{2k+1})^+A^k
+\end{equation}\par
+其中$A$是Moore-Penrose逆。\par
+1996年Y.\nbs Wei在前人的基础上,给出了以下Drazin逆的表达形式:\par
+若$A\in C^{n\times n}$且$ind(A)=k$,则
+\begin{equation}
+A^D=(\tilde{A})^{-1}A^k
+\end{equation}
+其中$\tilde{A}=A^{k+1}|_{R(A^k)}$是$A^{k+1}$在$R(A^k)$上的限制。\par
+基于第一类广义逆的基础上, 程云鹏\citeup{cyp2006juzhenlun}给出了以下的表达形式:
+\begin{equation}\label{equ:adaka2k}
+A^D=A^k(A^{2k+1})^{(1)}A^k
+\end{equation}
+其中$(A^{2k+1})^{(1)}\in A^{2k+1}\{1\}$。\par
+该方法的优点是,仅需要一个$\{1\}$,即可得到$A^D$。当$A$的指标容易求得并且较小时,可采用此法。\par
+当矩阵$A$的阶数较高时, 求$A$的指标是不容易的。另一方面,当$A$的病态严重时,求$A$的较高幂次又会使病态更严重。这时,采用式(\ref{equ:adaka2k})进行计算是不适合的,最好采用Cline给出的逐次满秩分解的方法,该方法每一步都作较小阶矩阵的满秩分解,有限步后可以确定出矩阵的指标和Drazin逆。\par
+设$A\in C^{n\times n}$。令$A$的满秩分解为
+\begin{equation*}
+A=B_1G_1
+\end{equation*}
+而$G_iB_i$的满秩分解为
+\begin{equation*}
+G_iB_i=B_{i+1}G_{i+1}\qquad (i=1,2,...)
+\end{equation*}
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/test.c.tex b/macros/latex/contrib/uestcthesis/doc/chapters/test.c.tex
new file mode 100644
index 0000000000..2efa75515b
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/test.c.tex
@@ -0,0 +1,9 @@
+\noindent
+\ttfamily
+\hlstd{}\hllin{01\ }\hlopt{!}\hlstd{@}\hlppc{\#\$\%\^{}\&{*}()\symbol{95}+={-}`\~{}\symbol{123}\symbol{125}{[}{]}\symbol{92}|:}\hlpps{";',.<>/?}\\
+\hllin{02\ }\hlpps{abcdefghijklmnopqrstuvwxyzabcdef}\\
+\hllin{03\ }\hlpps{QWERTYUIOPASDFGHJKLZXCVQWERTYUIO}\\
+\hllin{04\ }\hlpps{12345678909876543211234567890987}\hlppc{}\hlstd{}\\
+\mbox{}
+\normalfont
+\normalsize
diff --git a/macros/latex/contrib/uestcthesis/doc/chapters/tuition.tex b/macros/latex/contrib/uestcthesis/doc/chapters/tuition.tex
new file mode 100644
index 0000000000..e83c3a10c2
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/chapters/tuition.tex
@@ -0,0 +1,895 @@
+% !Mode:: "TeX:UTF-8"
+\chapter{本说明文档已废弃!}
+这份“论文”原本是本模板的说明文档兼生成样例。2015年2月13日模板更新到v1.1.0之后,不再更新本说明文档。此说明文档中讲解的TeX安装方法、命令用法等已不全,或根本不再正确了。但本文档依然可作为一份样例供用户参考源码。
+
+新版本的说明见Github主页的Wiki:\url{https://github.com/shifujun/UESTCthesis/wiki}
+\chapter{更新日志}
+\noindent
+2014年3月12日:v1.0.1
+\begin{enumerate}
+\item 将数学公式中的字体改回CM字体。此前v0.6.8中有所疏忽,只将特殊符号改回。现在数学公式字体应该和大多数会议论文中的字体一致了。
+\end{enumerate}
+
+\noindent
+2014年3月12日:v1.0.0
+\begin{enumerate}
+\item 因研究生院正式推荐使用本模板,故将版本号改为v1.0.0。可称为正式版了。
+\item 本版本除版本号外,和v0.6.9完全一致。
+\end{enumerate}
+
+\noindent
+2014年3月8日:v0.6.9
+\begin{enumerate}
+\item 修复BUG:当子图环境整体标题中存在下标时错误判断为标题超出一行。
+\end{enumerate}
+
+\noindent
+2014年3月6日:v0.6.8
+\begin{enumerate}
+\item 在v0.6.1中将所有正文的英文字体改为Times字体,却忽略了公式中的字体也被修改为Times字体。现改回v0.6.1 之前版本中公式的字体(CM)。
+\end{enumerate}
+
+\noindent
+2014年3月4日:v0.6.7
+\begin{enumerate}
+\item 修复BUG:缩略词表和主要符号表各自的第二页页眉不正确的问题。
+\item 添加bm宏包,以支持希腊字母在数学模式中的粗体。例如:\\ \verb|$\mathbf{X} \bm{\Lambda}$|
+\end{enumerate}
+
+\noindent
+2014年3月3日:v0.6.6
+\begin{enumerate}
+\item 修复BUG:按照规范,脚注应该每页重新编号。
+\item 修复BUG:参照研究生院范例修正注脚线和内容的距离。
+\item 针对脚注跨页的情况,在说明文档中加入第~\ref{subsubsection:footnote}~节,说明解决方案。
+\item 针对源代码排版段落在换段后会多出一个空行的问题,在说明文档的第~\pageref{par:scrextraline}~页加上一段话。提示大家在用Highlight转换出的源代码排版文件中,需要手动删除一个多余的换行命令。
+\end{enumerate}
+
+\noindent
+2014年3月1日:v0.6.5
+\begin{enumerate}
+\item 修复BUG:子图有不居中的情况。
+\item 修复BUG:当子图环境整体标题和子图标题都超过一行时,子图标题没有悬挂缩进的问题。
+\end{enumerate}
+
+\noindent
+2014年2月25日:v0.6.4
+\begin{enumerate}
+\item 添加了研究生院规范中附件1,2,3的所有封面、中文扉页、英文扉页。具体使用方式见第~\ref{degree:subsection}~节。
+\item 添加了两个选项,分别用于使模板不生成摘要之前内容或正文之外的所有内容。详见第~\ref{options:subsection}~节。
+
+\end{enumerate}
+
+\noindent
+2014年2月24日:v0.6.3
+\begin{enumerate}
+\item 修订硕博封面第2页,使之和学校范例尽量一样。
+
+\end{enumerate}
+
+\noindent
+2014年1月20日:v0.6.2
+\begin{enumerate}
+\item 新增一个用于检查模板所依赖的全部宏包版本的packagecheck.tex。编译它即可输出当前版本的模板所需的全部宏包的所需版本和当前已安装的版本,或者找不到需要的宏包。
+
+\end{enumerate}
+
+\noindent
+2014年1月20日:v0.6.1
+\begin{enumerate}
+\item 论文中所有正文中的英文修正为\href{http://en.wikipedia.org/wiki/Nimbus_Roman_No9_L}{Nimbus Roman No9 L字体(wiki链接)},这个字体和Times New Roman字体高度相似。
+\item 中英文摘要的关键词内容改为悬挂缩进。
+\item 将中英文摘要和目录加入到pdf书签中。
+\item 修正附录中的图表和公式的标号形式。
+
+\end{enumerate}
+
+\noindent
+2014年1月16日:v0.6
+\begin{enumerate}
+\item 添加选项listoffigures,用以打印图目录。
+\item 添加选项listoftables,用以打印表目录。
+\item 添加命令\verb|\englishshcoolextraline|,用以在titlepage.tex文件中。当用\\ \verb|\englishshcool|命令填写学院英文名时,英文名过长一行显示不下的情况下(例如通信学院),用\verb|\englishshcoolextraline| 命令将写不下的词写在下一行。
+\item 根据反馈,去掉所有超级链接的有色外框。
+\item 将枚举环境的序号缩进到和正文一致。
+\item 添加选项cv。开启后会用contents目录下的cv.tex替换publications.bib生成的攻读硕博期间发表的论文。cv.tex是按照一位通信学院的同学提供的一份往年的硕士论文中的格式做的模板。这个“个人简历及攻读硕士学位期间取得的研究成果”格式,以及“个人简历”都不是学校规范中要求的。所以如果不是自己学院要求、自己导师要求,建议不要用这个选项。
+\item 将原有的主要符号表的实现机制改为更新的宏包,同时支持了缩略词表。原有的主要符号表使用方式略有更改,详见第~\pageref{subsection:glossaries}~页。
+\item 修正可能在\verb|\verb|命令中或排版源代码中可能使用仿宋的问题。已全改为宋体。
+\item 本说明文档在第~\ref{subsubsection:skill}~页补充了一小节关于图表制作技巧的内容。
+\end{enumerate}
+
+\noindent
+2013年12月25日:v0.5.6
+\begin{enumerate}
+\item 本次更新不影响排版效果。仅仅修改了封面上校徽的颜色,使橙色和蓝色与学校识别视觉系统一致。
+\end{enumerate}
+
+\noindent
+2013年11月26日:v0.5.5
+\begin{enumerate}
+\item 在v0.5.3版本修改中,子图的标题过长,导致引用总标签失败。现修复了这个问题。并在第~\pageref{testpicslabel}~页进行了一小段测试。
+\end{enumerate}
+
+\noindent
+2013年10月29日:v0.5.4
+\begin{enumerate}
+\item 修改封面到摘要之前的部分实际的页码,避免pdf阅读器中页码冲突。
+\item 修改中英文摘要标题和关键词的字体,改为加粗形式。并按照范例,在“摘要”二字中间加空格。
+\end{enumerate}
+
+\noindent
+2013年8月10日:v0.5.3
+\begin{enumerate}
+\item 根据2013年7月18日研究生院网站发布的新的《学位论文撰写格式规范》\url{http://gr.uestc.edu.cn/article.shtml?id=6643},修改了模板。但由于本科教务处学位科尚未修改规范,所以本科选项的排版规范暂未做大变化。
+\end{enumerate}
+
+\noindent
+2013年6月7日:v0.4.8
+\begin{enumerate}
+\item 修正目录的标题字体。之前用了2008年本科规范的宋体小二,是错误的。
+\end{enumerate}
+
+\noindent
+2013年6月3日:v0.4.7
+\begin{enumerate}
+\item 根据一位同学的需求,将源代码的排版改为等宽字体。为了实现这个功能,将highlight.sty的内容更改,并内置到模板中了。所以之前使用了排版源代码并用input命令加载了highlight.sty的同学需要删除那个input语句,否则会报错说一些命令已经定义过了。
+
+ 不过我并没有做到完全自动化的等宽效果。原因和解决办法见更新后的\ref{source:section}节。
+\end{enumerate}
+
+\noindent
+2013年6月2日:v0.4.6
+\begin{enumerate}
+\item 修正BUG:页脚字号改为小五。
+\end{enumerate}
+
+\noindent
+2013年6月1日:v0.4.5
+\begin{enumerate}
+\item 根据一位同学的需求,将本科论文中需要的外文资料翻译部分的章节标题做了调整,英文部分题注改为英文。详见\ref{translation}节。
+\item 上一版示例中将获奖的条目类型拼错了,所以显示结果不对。
+\item 我自己临时打算继续用LaTeX的Beamer幻灯片文类做答辩幻灯片,于是新建了一个幻灯片主题。但是因为没设置完,也没有说明文档,所以还没法交给新手直接用。所以不建议动手能力弱的同学现在使用。
+\end{enumerate}
+
+\noindent
+2013年5月25日:v0.4.4
+\begin{enumerate}
+\item 修正摘要关键词的逗号之前会有一个多余的空格,而英文摘要关键词的逗号后没有空格的问题。
+\item 修正可能会出现超大段距的问题。并且重新设置了一个默认为0的弹性段距,最大为10磅,最小为-1 磅。有弹性段距会让排版得到更美观的结果。而且-1 到10磅相对于行距来说并不明显。
+\item 增加了一个参考文献类型ONLYNOTE,可以将参考文献的note字段直接作为参考文献条目内容。用于录入不规范的参考文献条目,例如攻读期间取得的成果中可能会要录入获奖\cite{onlynoteexample}。而获奖并不是标准的参考文献类型。
+\item 本科论文目录中加入外文资料原文和译文。
+\item 本科论文的章标题序号改为阿拉伯数字序号。
+\item 修正表格字号,按照规范应为五号字(英文10.5磅)。
+\item 发现问题:如果\verb|\citeup|命令之前是标点符号,请暂时手动将前面的字符同\verb|\citeup|命令都放入\verb|\mbox{}| 命令的括号中,例如:\verb|《新华字典\mbox{》\citeup{xxx}}|。 这样可以避免在这个标点符号之后直接换行,而将上标的[] 置于下一行行首。
+\end{enumerate}
+
+\noindent
+2013年5月20日:v0.4.3
+\begin{enumerate}
+\item 修复BUG:枚举环境之前与前后文有额外的间距,现已去掉。
+\item 修复BUG:之前模板没有按照规范要求将摘要等前置内容章起右页,现已修正。至于中文摘要在第I 页,而英文摘要在第III 页的问题,我认为是正常的,页码不应该因为左页没内容就跳过去。奇偶页码与左右页的关系不应该改变。
+\item 修复BUG:由于我的疏忽,本科论文规范修订时将目录中的缩进打错成半角,这和硕博规范不一致。现已将本科论文的目录缩进修正和今年的规范一致,硕博不变。
+\item 修复BUG:之前模板的参考文献和致谢的顺序是按照硕博规范设置的,刚刚发现本科规范和硕博规范在这个顺序上是反的。现已将本科论文的致谢置于参考文献之后。
+\item 发现可能编译出错的问题,新安装的CTeX套装在安装目录下\verb|\CTeX\tex\latex\ctex|中有一个旧版本的ctex 宏包,应将这个目录删除,ctex 才会下载最新的ctex宏包。我已在模板中添加了需要的ctexbook版本。
+\end{enumerate}
+
+\noindent
+2013年5月14日:v0.4.2
+\begin{enumerate}
+\item 修复BUG:此版本之前,当目录只有一页时目录的页眉显示成主要符号表。
+\item 上一版本在使用WinEdt等自带的编译功能时不显示LOGO,但是会引起封面多出一页。此版本装饰了这个问题,在不使用正确编译的编译脚本编译时在LOGO 处显示一段说明文字。
+
+\end{enumerate}
+
+\noindent
+2013年5月4日:v0.4.1
+\begin{enumerate}
+\item 将封面所需的两个png文件去掉。采用pstricks宏包生成的矢量图,并嵌入到cls文类中。感谢周光耀同学帮忙!
+
+生成所需的特殊编译过程已写入到批处理脚本中。这个过程是:
+
+用filecontents环境将pstricks图片嵌入到cls文件中,令其生成logo.tex文件。然后在文类中利用write18 命令正确编译logo.tex,生成logo.pdf。这个write18 命令默认是不允许使用的,所以在WinEdt中执行编译是不会生成logo.pdf 的,也就不会显示Logo。
+
+\end{enumerate}
+
+\noindent
+2013年4月4日:v0.4
+\begin{enumerate}
+\item 添加english选项,使用后将所有预定名变为英文。供我校留学生使用。这个需求是研究生院老师提出来的,同时也有研究生同学向我询问可否支持的。使用方法是在master或doctor 选项后加上,english。
+
+ 例如:\verb|\documentclass[master,english]{uestcthesis}|
+\item 添加定理环境的结束符语句。但是目前所有结束符还设置为空。也就是没有任何变化。因为学校的规范中没有定义各种环境的结束符应该是什么。这个需求是一位数学学院的同学提出来的。需要用的同学可以暂时自己改,例如,将uestcthesis.cls文件的661行改为\verb|\theoremsymbol{【证毕】}|,即可在证明环境后自动加上这个标志。注意修改cls 文件请使用notepad++等支持无BOM 头的UTF-8编辑器。
+\end{enumerate}
+
+\noindent
+2013年2月25日:v0.33
+\begin{enumerate}
+\item 设置定理环境的缩进。
+\end{enumerate}
+
+
+\noindent
+2013年2月21日:v0.32
+\begin{enumerate}
+\item 将参考文献中英文条目的作者名改为:名在前缩写,姓在后全拼。
+\end{enumerate}
+
+\noindent
+2013年2月21日:v0.31
+\begin{enumerate}
+\item 去除枚举环境的所有垂直附加距离。感谢不中同学反馈BUG。
+\item 已确认还未解决的问题:参考文献中英文作者名的录入规则和学校要求不符。缺少获奖类型的参考文献录入。
+\end{enumerate}
+
+\noindent
+2013年2月13日:v0.3
+\begin{enumerate}
+\item 在模板内部修复了参考文献的遗留问题,不再需要sed工具。
+\item 模板已经提交到CTAN,并已被MiKTeX收录。所以本模板已经可以通过MiKTeX的宏包管理器安装,不再需要typesetting目录。更新说明中安装一节。
+\item 在pdf元数据中填写了论文的信息,并加入了XMP高级元数据。设置了用Adobe Reader 打开时的默认阅读方式为书籍方式。
+\item 加入了排版源代码的方案说明,见\ref{source:section}节。
+\end{enumerate}
+
+\noindent
+2013年1月14日:v0.2
+\begin{enumerate}
+\item 完成本硕博三种格式论文所需的全部结构。
+\end{enumerate}
+\chapter{注意事项}
+\begin{enumerate}
+\item 本模板不能帮用户更改图片中的字体、字号,使之符合学校规范。请注意学校规范中对图片中字体、字号的要求。
+\item 插入图片、表格如不使用模板封装好的命令,需自行注意学校规范对于图表标题的要求。
+\item 插入参考文献,必须对照本说明文档的范例,如果对照范例缺少项目,则不能保证参考文献格式正确。本说明文档的范例包含所有类型的参考文献,必能找到对应的范例。
+\item 欲求完美的排版效果,不能完全依赖本模板。必须在论文完全定稿后,文字不再变化时,参考各类\LaTeX{}书籍,对换页、图片位置、公式中的间距进行微调。这些微调方式本说明文档中暂无介绍。
+\item 本模板已尽量保持对\LaTeX{}原本命令的兼容性,遇到问题可参照互联网上绝大多数的解决方案。
+\end{enumerate}
+
+\chapter{模板使用说明}
+\section{简介}
+2013年1月14日更新后的模板已经支持本硕博三种标准。并且本人已经和教务处实践科交流过,实践科对本模板是支持的。同时实践科也表示可以接收pdf 格式的电子档。并且已经同意将本科毕业论文的排版规范改为和研究生标准统一化,所以也简化了本模板的开发工作。本次更新后已经针对本科和硕博的不同要求,可以分别编译出不同结构的论文。
+
+本模板以《研究生学位论文(含研究报告)撰写规范(2012年修订版)》(以下称学校标准)为标准。对于其中未提及的规范,参照中国高等学校自然科学学报编排规范(修订版)》。参考文献格式符合学校标准的基础上,采用国标GBT7714-2005。 编译结果已经可以符合学校标准,如有不完全符合的地方,请大家分享反馈回来,我尽量修改。改不了的地方,请大家看看历年的硕博论文,本模板的排版质量已经非常非常高了。
+\subsection{面向没用用过\LaTeX{}的用户介绍}
+ Q:什么是\LaTeX{}?
+
+A:\LaTeX{}是\TeX{}的一种扩展。\TeX{}是科技论文排版的首选软件,\TeX{}程序从1989 年至今没有过任何修改,可见这个程序的可靠性之高。在用\TeX{} 写文章时,需要边写内容边定义格式。而\LaTeX{}在\TeX{}基础上,将排版和写作分开,使得写作的人不用管格式的处理,从而专注于文章的内容!
+
+Q:我怎么没听说过这东西?
+
+A:确实\LaTeX{}在国内普及度不高,学校对本科生的论文很少要求到\TeX{}可以达到的高度。但是研究生和博士生论文一般都需要用\LaTeX{} 排版。全世界著名大学都要求用\LaTeX{} 排版毕业论文。国内大部分的重点大学也都有\LaTeX{} 学位论文模板(\href{http://zzg34b.w3.c361.com/templet/graduateThesis.htm}{点击查看列表})。比如清华大学的校内论坛还有专门的TeX 讨论分区。
+
+Q:使用本模板比使用Word好在哪?
+
+A:
+\begin{enumerate}
+\item 不用设置任何字号、字体、行距、页眉、页脚、页边距、目录,使用者根本就不需要知道这些命令。
+\item \TeX{}诞生的最初目的之一就是排版数学公式,\TeX{}排版出的数学公式比Word在细节上要好太多了。全世界所有的数学期刊包括中国的数学期刊,都(只)接受\LaTeX{} 源文件。
+\item 文章中的所有序号,第X章、第X节、图X-X、表X-X都是自动生成的,绝不会出错!如果要引用某个图,只需要给图起一个别名,引用这个别名即可,TeX 会自动将它变成正确的序号。
+\item 全自动的行距、字距微调,确保不该换行的地方不换行(比如参考文献的引用角标不会到下一行开头去),不该换页的地方不换页(比如图和图题之间),能放下的图片不会因为一点点距离不够就放到下一页。
+\item 参考文献的格式全自动处理成模板设置好的格式,绝不会出错!参考文献的输入内容大多学术网站都查询后可导出,比如Google学术搜索。
+\item 生成的PDF文件可全文查找,所有的引用都自动生成超链接。
+\end{enumerate}
+
+Q:\LaTeX{}有什么缺点?
+
+A:编写过程中不能像Word一样所见即所得,\LaTeX{}是一种所思即所得的排版系统。\LaTeX{}需要在编译时才能确定文章中的引用序号和各种图片表格的位置,所以虽然不能边写边看结果,但是得到的结果质量比Word 高。
+
+Q:多久能学会使用\LaTeX{}?
+
+A:使用本模板写作毕业论文,使用者是作者的角色,并不需要学习如何编写\LaTeX{}模板。作者只需要写文章内容,用几个简单的命令指明哪段文字是章标题,哪段文字是节标题。或者用参考文献引用的命令引用参考文献。以及插图命令、表格命令。文科论文大概只需要对照说明文档即可立刻投入写作。理工科论文由于要输入数学式等特殊内容,需要多学一些专门输入数学式的方法。各种复杂的数学符号有专门的网站可以手写识别出LaTeX中需要输入的命令。
+
+\subsection{面向\LaTeX{}使用者的介绍}
+本模板提供了插入单张图片、子图、三线表、自动换页三线表、截图表格,以满足完成论文的大部分的图片和表格插入需求。详见后文介绍。
+
+编译时使用pdflatex编译,暂时没有设置hyperref对各种编译器自动兼容。hyperref的兼容性本来就非常糟糕,暂时不动它了。
+
+正确编译的方式见模板根目录下的“compile.bat”文件内容。其中编译过程的原因是:由于硕博论文使用了multibib 宏包以支持显示攻读期间的研究成果,所以$\mathbb{C}$\kern-.05em\TeX{}套装自带的WinEdt默认编译方式会少编译这一部分。
+
+在撰写论文的过程中可以不用这个“compile.bat”,按照常规的编译方式只会缺少“攻博/硕期间发表的论文”。
+
+其余内容见后文介绍。
+\subsection{面向\LaTeX{}程序员的介绍}
+许多\LaTeX{}用户并没有区分出\LaTeX{}和\TeX{}的重要区别:\TeX{}是内容和排版混在一起的,而\LaTeX{} 是将内容和排版分开的。如果没有注意到这个区别,使用\LaTeX{}只是比\TeX{} 多了些高级命令而已。
+
+本模板直接将所有排版内容都写在了文类中,并包装了一些作者命令。希望今后的维护者能够注意到这个特点,不要破坏它。国内许多其他高校的\LaTeX{}模板大多没有采用文类,许多设置的方式也不是最好的。所以借鉴时需要谨慎。
+
+目前本模板试图和标准的\LaTeX{}命令完全兼容,插图和表格的包装命令中并没有前后间距的设置。所以如果用标准命令插入图片和表格,也不影响符合学校标准。但是注意,非常不推荐模板使用者这样做。
+\section{安装$\mathbb{C}$\kern-.05em\TeX{}套装}
+$\mathbb{C}$\kern-.05em\TeX{}是Windows系统下面向中文优化的一套\TeX{}工具的集合,包括编译器、编辑器、阅读器等一系列工具。安装后即可立刻使用。
+
+从网页\url{http://www.ctex.org/CTeXDownload}下载$\mathbb{C}$\kern-.05em\TeX{}(当前版本2.9.2.164,大小203M) 。 可以在网页上看到这个203M 的版本不包含完整的宏包(插件),所以安装这个版本在第一次使用时需要联网才能正常使用。也可以直接下载1.31G 的完整版(不推荐)。安装完成后,前者比后者会节约大概2GB的磁盘空间。
+
+安装时建议不要改变除安装路径以外的其他选项,即完整安装。由于安装包中包含非常多文件,所以某些笔记本硬盘可能会安装的比较慢。这是正常现象。安装完成后扩展名为tex 的文件应该会被自动关联。双击thesis.tex应该会自动用WinEdt 打开。
+
+注意:安装完$\mathbb{C}$\kern-.05em\TeX{}之后必须启动其所带的MiKTeX的宏包升级工具:Update (Admin)。一般可以在开始菜单中CTeX的目录下找到。一般一路下一步就可以了。默认的选项就是自动判断一个最近的软件源更新宏包。仔细看看选项,可以手动确定一个软件源。似乎ustc的源会比较快。需要注意的是,像$\mathbb{C}$\kern-.05em\TeX{}自带的MiKTeX版本已经比较旧了的情况下,升级工具不能一次性的升级所有宏包。有时可以看到可升级的宏包列表中,默认有许多宏包没有被勾上。这就是说必须先更新一部分内容。更新完毕后,点击确认这个程序会关闭。并不会自动重启再一次更新。你需要再次运行这个程序,再次更新宏包。通常两遍应该就能更新完所有宏包了。总之,你应该第三次运行这个程序,它应该会告诉你没有宏包可以更新了。
+\subsection{UESTCThesis模板编译环境安装指导}
+这一小节是在v1.0.0在河畔上发布之后,依然有很多同学不能成功编译模板的情况下,我在河畔发的一个帖子。所以行文和前后小节不连贯,或有重复。
+
+其实模板中的说明文档已经讲解了如何安装、测试,但很多同学还是不能成功编译。主要原因是我编写说明文档的时候,CTeX还可以安装完就直接使用,而现在已经不能了。不能的原因是随着模板的更新,模板依赖的其他宏包版本也提升了,有些宏包没有和旧版本兼容,所以不能正常编译。
+
+ 很多同学看了上面的话就糊涂了。我再解释一下那些东西吧。首先,UESTCthesis模板是一个LaTeX文类。LaTeX除了有文类还有宏包。文类就是一个模板,宏包就是一些特定功能的附加模块。文类中一般会使用很多宏包来帮助实现特定的效果。所以它们之间是依赖的关系。UESTCthesis依赖了一百余个宏包,所以想要成功编译模板,必须先安装好它所依赖的宏包。
+
+ 那么LaTeX实际上是个编译器,而且是不止一个编译器,有很多不同的编译器。UESTCthesis使用的是其中的pdflatex编译器。那么这些编译器和宏包就需要一个软件来管理。这些管理LaTeX及其宏包的软件就是各种LaTeX发行版了。在不同平台上有不同的发行版,比较流行的是Windows平台上的MiKTeX、Linux平台上的TeXLive以及Mac OS平台上的MacTeX。我在说明文档中提到的CTeX实际上不是一个发行版,它是一个一键式安装包。它其中的LaTeX管理软件就是MiKTeX。
+
+ CTeX包含的工具主要就是三类:LaTeX管理工具、LaTeX撰写编辑器、LaTeX输出文件的查看器。管理工具就是MiKTeX。编辑器就是WinEdt。查看器包括dvi查看器、pdf查看器、ps查看器等。所以其实我们如果只使用UESTCthesis也只需要安装这三类工具就可以。
+
+如果已经安装了CTeX,但无法成功编译模板。我们需要先运行其中MiKTeX的宏包升级工具:Update (Admin)。一般可以在开始菜单中CTeX的目录下找到。一般一路下一步就可以了。默认的选项就是自动判断一个最近的软件源更新宏包。仔细看看选项,可以手动确定一个软件源。似乎ustc的源会比较快。需要注意的是,像CTeX自带的MiKTeX版本已经比较旧了的情况下,升级工具不能一次性的升级所有宏包。有时可以看到可升级的宏包列表中,默认有许多宏包没有被勾上。这就是说必须先更新一部分内容。更新完毕后,点击确认这个程序会关闭。并不会自动重启再一次更新。你需要再次运行这个程序,再次更新宏包。通常两遍应该就能更新完所有宏包了。总之,你应该第三次运行这个程序,它应该会告诉你没有宏包可以更新了。这时,你的系统中的所有已经安装的宏包才是最新版的。但是呢,UESTCthesis模板依赖的许多宏包可能还没有安装呢,所以也谈不上更新。MiKTeX的一个重要功能就是在编译过程中自动安装缺失的宏包。在安装MikTeX的时候可能会有这个功能的开关选项,没看到也没关系。打开Settings (Admin),第一页最后一个框中:Install missing packages选成Yes就可以了。这样的话,我们只需要编译一次模板就应该自动安装上缺失的宏包了。需要注意的是,在Win7以上的Windows中,这次安装宏包的编译必须用管理员权限运行。方法是:开启一个管理员权限的命令提示符窗口,cd到模板的目录,然后运行compile.bat。不能直接用管理员权限在资源管理器中运行compile.bat。
+
+ 如果还没有安装CTeX。我想也没必要一定安装CTeX了。可以去MiKTeX的官网直接下载MiKTeX的联网安装程序。这样安装好的MikTeX所带的宏包就都是最新版的了。MiKTeX的下载地址是:http://miktex.org/download。不要下载那个Recommended Download,下载Other Download里的Net Installer。注意有64位版的,在64位系统下编译会明显变快。这个安装器会把当前最新的一个basic版或者full版安装程序下载下来。basic版安装完依然无法满足UESTCThesis的宏包依赖。还是需要用管理员权限编译模板,自动安装缺失的宏包。倒是不太推荐安装full版,因为full版太大了,很多宏包是多余的,模板中也用不上。
+
+ 安装完MiKTeX就已经可以正常编译模板了。但是为了更加方便的撰写论文,通常也不能真的用记事本写LaTeX。CTeX中捆绑的WinEdt是个不错的编辑器。不过它是共享软件,CTeX中捆绑的是破解版。而且版本已经很旧了。可以从它的官网http://www.winedt.com/上下载个试用版的。试用期是31天。但是过期之后也可以使用,唯一的麻烦就是它总会提醒你注册。其他的LaTeX编辑器也有很多,大家相互推荐吧。我个人其实没有用过太多。
+
+ 最后就是需要一个PDF阅读器了。推荐用SumatraPDF:\\
+ http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader-cn.html\\
+ 这个阅读器不会锁定pdf文件,每次重新编译时无需关闭阅读器,编译后阅读器也会自动更新pdf文件的变化。
+\subsection{安装模板}
+\subsubsection{从GitHub上下载模板}
+推荐从GitHub上的本项目主页(\url{https://github.com/shifujun/UESTCthesis})中下载本模板。页面上有一个zip按钮,可以无需安装git程序下载最新的模板。解压开这个zip,可以得到本说明文档和一个example目录。example目录既是本说明文档的源文件也是模板。example相当于一个人的论文撰写工作目录。关于它的结构,见下文的\ref{templatestructure}节。
+\subsubsection{从CTeX(MiKTeX)中安装模板(不推荐)}
+此安装模板的方法可以将模板安装在CTeX宏包库中,这样在任何位置都可以使用模板。不过我们撰写论文一般只撰写一份,所以这样做好处不是很大。而且这样的安装方式并不总能获得最新的模板。
+
+运行开始菜单 $\longrightarrow$ CTeX $\longrightarrow$ MiKTeX $\longrightarrow$ Maintenance (Admin) $\longrightarrow$ Package Manager (Admin)。 这个程序是管理CTeX 系统中的宏包用的。点击菜单栏中的Repository $\longrightarrow$ Change Package Repository。 选择第一项“Package shall be installed from the Internet”,点击下一步,选择服务器。在学校使用可以选择China 的mirrors.ustc.edu.cn。这是中科大的源,同在教育网中,速度会比较快。然后点完成。之后程序应该会立刻开始同步数据。
+
+同步完成后,在工具栏右侧的Name:处填写uestcthesis,然后回车。搜索出来的就是本模板。右键点击本模板的条目,选择Install。完成后点Close 关闭。
+
+安装完成后运行开始菜单 $\longrightarrow$ CTeX $\longrightarrow$ MiKTeX $\longrightarrow$ Maintenance (Admin) $\longrightarrow$ Settings (Admin)。依次点击按钮“Refresh FNDB” 和“Update Formats”,然后确定。
+\subsection{更新模板}
+在正式打印论文之前一定要访问项目主页检查模板是否有更新。一般来说每次更新都会修正bug,所以推荐尽早更新模板。更新模板时无需改动已撰写的论文内容。只需替换模板的两个排版设置文件uestcthesis.cls和uestcthesis.bst。这两个文件一般在工作目录中,也可能由CTeX安装在系统中。如果从GitHub上下载的模板,指的就是example目录中的这两个文件。从GitHub上下载新的模板,用其中的cls和bst文件替换现有的文件即可。
+
+如果是用CTeX或MikTeX安装的模板,请用Update程序更新模板。但不一定能获得最新的模板,因为模板首先在GitHub上更新。
+\subsection{测试编译}
+在v0.6.2版本中新增加了一个packagecheck.tex文件,编译它即可输出当前版本的模板所需的全部宏包的所需版本和当前已安装的版本,或者找不到需要的宏包。缺失的宏包可以通过用管理员权限编译该文件,使MikTeX自动安装缺失的宏包。版本过旧的宏包需要通过MikTeX的更新程序更新宏包。
+
+用WinEdt打开thesis.tex如图~\ref{winedt}(双击即可)。
+\pic[htbp]{WinEdt界面}{width=\textwidth}{winedt}
+点击图中红色箭头指向的黑色实心小三角,在下拉菜单中选择PDFLaTeX。 然后点击绿色箭头指向的按钮将此文件设置为主文件。最后点击蓝色箭头指向的按钮,或按键盘上的F9按键,编译论文。用这种方式编译论文比较方便,但会缺少研究生论文所需的“攻读期间发表的成果”一章。所以正式编译时必须用compile.bat 编译论文才能得到正确的结果。
+
+通过将此文件设置为主文件之后,以后只要thesis.tex在WinEdt中打开了,即使当前编辑的文件不是thesis.tex,编译时也会编译thesis.tex文件。这样可以避免每次都切换回thesis.tex 编辑窗口。
+
+如果安装的是Basic版的$\mathbb{C}$\kern-.05em\TeX{}套装,则第一次编译时会自动联网下载缺少的宏包,所以会比较慢。编译完之后会自动弹出编译好的pdf 论文。
+
+如果安装的是Full版的$\mathbb{C}$\kern-.05em\TeX{}套装,当前版本应该没有问题。但也应该联网更新宏包。选择菜单TeX,MikTeX,MikTeX Update Wizard。 然后选择“I want to get updated packages from a remote package repository”,“Let me choose a remote package repository”。 同样可以选择中科大的源。
+\section{模板结构}\label{templatestructure}
+从GitHub上下载的zip解压后,只有example目录是一份模板。source目录是模板的源代码。example就相当于一份论文,也叫工作目录。你可以重命名这个目录。
+
+工作目录中应包含3个目录和3个文件,见表~\ref{structtab}。表中说明为Windows环境下的情况。Linux和Mac 请将bat 文件换为sh文件即可。example 目录中还有两个zip文件:windows下编译脚本.zip和linux,mac下编译脚本.zip。选择其中一个解压到工作目录中。
+\threelinetable[htbp]{structtab}{\textwidth}{lcX}{模板结构}
+{名称&目录/文件&说明\\
+}{
+chapters &正文目录 &使用者可复制其中的DuplicateMe.tex,创建论文的各章子文件。\\
+contents &其他内容目录 &使用者可以通过编辑其中的文件填写论文结构的非正文部分。\\
+pics &插图目录 &使用者在编写论文时要插入的图片放在此目录中。\\
+thesis.tex &主文件 &最终得到论文需要编译这个文件,这个文件的内容应该只包含章的载入顺序。
+使用者可以重命名这个文件,但须将compile.bat中第一行的thesis改为相应名字。\\
+compile.bat &编译批处理 &双击编译论文,得到正确的thesis.pdf文件。\\
+clean.bat &清理批处理 &双击可删除目录中全部编译过程生成的中间文件。\\
+}{}
+\section{开始编写论文}
+\subsection{确定学位信息}\label{degree:subsection}
+打开thesis.tex文件,第三行如下:\\
+\verb|\documentclass[doctor]{uestcthesis}|\\
+修改第三行中间的中括号中的doctor为其他的选项。bachelor代表学士学位;master代表学术型硕士学位;doctor代表博士学位;engineeringmaster代表工程硕士学位;professionalmaster代表专业硕士学位;researchreport代表留学生研究报告; engineeringdoctor代表工程博士学位;
+
+这些选项选择好之后,模板会自动添加相应的封面、扉页等前置必备页面。
+
+然后打开contents目录中的titlepage.tex。填写其中的信息。本科生注意要删除其中后一部分的信息,否则编译会出错。
+\subsection{模板的其他选项}\label{options:subsection}
+本模板还有如下可选选项:\\
+选项listoffigures,用以生成图目录。\\
+选项listoftables,用以生成表目录。\\
+选项cv。开启后会用contents目录下的cv.tex替换publications.bib生成的攻读硕博期间发表的论文。cv.tex是按照一位通信学院的同学提供的一份
+往年的硕士论文中的格式做的模板。这个“个人简历及攻读硕士学位期间取得的研究成果”格式,以及“个人简历”都不是学校规范中要求的。所以如果不是自己学院要求、自己导师要求,建议不要用这个选项。\\
+选项withoutforepages。启用后不编译摘要之前的部分(封面、中文扉页、英文扉页、独创性声明和论文使用授权)。\\
+选项onlychapters。启用后只编译正文部分。\\
+最后两个选项都是方便撰写论文时加快编译用的。为了这个目的,还可以使用draft选项。这个选项会不真正插入图片。如果在撰写论文正文中经常需要编译查看改动结果,在不涉及图片、参考文献等附加内容的情况下,建议开启onlychapters和draft选项。同时只需要运行一次pdflatex命令编译即可。编译脚本执行的正确编译会连续编译3次,所以会比较慢。
+
+以上这些选项的启动方式形如:\\
+\verb|\documentclass[doctor,onlychapters,draft,listoftables]{uestcthesis}|\\
+
+\subsection{编写正文}
+\subsubsection{新建一章}
+论文正文的每一章都是一个单独的tex文件,存放于chapters目录中。由于本模板采用UTF-8 编码,所以不能用Windows 记事本新建的UTF-8文本文件创建tex 文件。因为Windows的UTF-8 格式文件头和我们用的不一样。所以为了方便起见,chapters 目录下有一个DuplicateMe.tex文件,它是一个写好文件头的空文件。新建一章时只需要将它复制一份,改一个新的文件名即可。文件名最好可以代表这一章的内容。
+
+chapters目录中的文件并不会都出现在最终的论文中,比如DuplicateMe.tex放在chapters 中就不会有影响。将一章加入到论文中,需要在thesis.tex中加入\\
+\verb|\include{chapters/DuplicateMe}|这样的语句。\verb|\include{}|的顺序决定章的顺序。在写作中,可以将前面已经写好并检查排版没问题的章暂时从thesis.tex去掉,比如在\verb|\include{chapters/DuplicateMe}| 前面加一个\%,把这行注释掉。
+
+为了跨平台着想,本模板直接采用了UTF-8编码。每个文件的第一句话都是\verb|% !Mode:: "TeX:UTF-8"|,\%后面都是注释,不会出现在文章内容中。这句话是为了让一些文本编辑器自动选择UTF-8 编码打开文件。在Windows 中,文本文件的默认编码是ANSI,虽然可以另存为UTF-8,但是依然有区别。Windows记事本的UTF-8 格式多了一个BOM文件头。
+
+\subsubsection{章节命令}
+本模板使用的全是标准的章节命令。有:\\
+\verb|\chapter{}\section{}\subsection{}\subsubsection{}|\\
+这四个级别的章节命令。如果不懂怎么用,可以打开tuition.tex看看。
+
+\subsubsection{修改论文}
+$\mathbb{C}$\kern-.05em\TeX{}套装自带的PDF阅读器SumatraPDF,也就是按F9编译后自动弹出的PDF 阅读器,它可以自动在tex源文件中找到对应的段落。在SumatraPDF 中双击指定段落,即可自动转到tex源文件中对应的位置。另外,可以用这个方法查看范例论文中的图片、表格、公式等源文件编写方法。
+\subsubsection{插入图片}
+为了控制全文的图片插入形式一致,包括居中、前后间距、题注字体等,本模板定义了几个命令来插入图片:
+
+\verb|\pic[htbp]{图标题}{width=0.6\textwidth}{文件名}|\\
+\pic[htbp]{菊花}{width=0.6\textwidth}{Chrysanthemum}
+这条命令用于插入单个图片,第一个中括号是可选参数,用于向系统建议图片的位置。默认参数htbp就是让系统考虑放在当前位置(h)、本页底部(b)、次页顶部(t)、单独一页(p)。图片不会浮动到引用位置之前,只会向后浮动。另外可以设置\verb|[H]|,命令系统不考虑版面美观,就放在当前位置。也可以向\verb|[]|中加入“!”,告诉系统不用考虑版面限制,但此时还只是一种建议。
+
+第三个参数中可以设置图片的大小,最大不能超过\verb|width=\textwidth|。因为这是设置图片按宽高比不变放大或缩小到宽度等于一行文字的宽度。如果超过这个大小,图片将超出版心。例子中的0.6 是乘以0.6倍的意思。也可以设置\verb|height=5cm| 等参数。最后一个参数既是文件名也是标签名(标签名用于引用图片,如图X-X这种),这个文件名不需要扩展名,有也没关系。图片必须放在pics目录下。同时建议不同扩展名的图片,也不要起一样的名字。图片格式支持png,pdf,jpg,jpeg。
+
+还可以插入多幅图片组成的子图组,这些图共用一个图编号,各自又有自己的子编号。\\
+\verb|\begin{pics}[htbp]{整体标题}{整体标签(英文数字组成)}|\\
+\verb|\addsubpic{子图标题}{width=0.4\textwidth}{文件名}|\\
+\verb|\addsubpic{企鹅}{width=0.4\textwidth}{Penguins}|\\
+\verb|\end{pics}|\\
+\begin{pics}[htbp]{子图效果}{picsaaaa}
+ \addsubpic{郁金香}{width=0.4\textwidth}{Tulips}
+ \addsubpic{企鹅}{width=0.4\textwidth}{Penguins}
+\end{pics}
+这四行命令中,第一行和最后一行定义了一个子图环境,在其中可以插入若干条addsubpic 命令。当一行图片排满后可以换行到下一行。注意图片间有间距,所以两张\verb|0.5\textwidth|宽的图片不能排在一行。\par
+
+\label{testpicslabel}测试引用图片标签。单张图片图\ref{Chrysanthemum}是一副菊花。子图效果如图\ref{picsaaaa} 所示,其中有两幅子图。子图\ref{Tulips} 是郁金香,子图\ref{Penguins}是企鹅。
+\subsubsection{插入表格}
+\TeX 系统对表格的支持可能不够出色。这种说法主要是因为微软的Excel 实在是太出色了,以至于人们经常用Excel 制作结构非常复杂看起来很好看的表格。其实大多数表格都可以简化。《中国高等学校自然科学学报编排规范(修订版)》中讲到:表应精心设计,为使表的结构简洁,建议采用三线表,必要时可加辅助线,如表~\ref{tab2}。
+
+插入普通三线表可以用我定义的命令:\\
+\verb|\threelinetable[htbp]{标签}{0.4\textwidth}{lcr}{表标题}|\\
+\verb|{项目&频率&技术\\|\\
+\verb|}{|\\
+\verb|802.11b\tnote{a}&2.4GHz&DSSS\\|\\
+\verb|蓝牙&2.4GHz&FHSS\\|\\
+\verb|HomeRF&2.4GHz&FHSS\\|\\
+\verb|}{|\\
+\verb|\item[a] 这里还可以添加脚注!|\\
+\verb|}|\par
+\threelinetable[htbp]{tab1}{0.4\textwidth}{lcr}{目前学术界广泛推荐使用的三线表}
+{项目&频率&技术\\
+}{
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+}{
+\item[a] 这里还可以添加脚注!
+}
+插入带辅助线的三线表可以将头部改为:\\
+\verb|{&\multicolumn{总列数减1}{c}{内容}\\\cmidrule[0.05em]{辅助线开始列号-辅助线终止列号}|\\
+\verb|项目&频率&技术\\|\\
+\verb|}|\\
+具体请查看tuition.tex中的这部分源代码。
+\threelinetable[htbp]{tab2}{0.4\textwidth}{lcr}{带辅助线的三线表}
+{&\multicolumn{2}{c}{参数}\\\cmidrule[0.05em]{2-3}
+项目&频率&技术\\
+}{
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+}{
+\item[a] 这里还可以添加脚注!
+}
+
+仔细观察可以发现,threelinetable是一个有8个参数的命令。第一个参数和插入图片的一样,是一个可选参数,功能也一样。第一行的参数只有那个\{lcr\} 要说一下,大括号里的字母可以是lcrX四个字母。每个字母代表表中一列的对齐方式。lcr分别是左对齐、居中、右对齐。X是将剩余空间都分配给这列,并且这列内容可以自动换行。X可以有多个,那样多列宽度平均分配。
+
+第二行和第三行的一对大括号中是表头内容。第三行和第七行的一对大括号中是表格的内容。这两部分的内容使用的都是TeX 的标准表格格式:每个单元格间用\&符号分开,每行结束要用\verb|\\|表示换行。
+
+在802.11b旁边有一个\verb|\tnote{a}|命令,它是用来添加表格脚注的命令。a是手工输入的编号,因为你可以在表格中加许多个a。在最后三行的大括号中,要解释这个脚注a的内容,就像倒数第二行的内容那样。如果表格中没有脚注,将最后一个大括号内容空置即可。
+
+这个普通的三线表也是一个浮动体,和图片一样,它的位置也是系统决定的。并且表格和表格的标题(题注)不会分在两页,这一点Word就差很多了。
+
+我们有时还需要打印比较长的表格,我们希望它可以换页。这时可以用这个命令:\\
+\verb|\longthreelinetable{标签(英文数字组成)}{表标题}{列数}{lcr}|\\
+\verb|{|\\
+\verb|项目&频率&技术\\|\\
+\verb|}{|\\
+\verb|802.11b&2.4GHz&DSSS\\|\\
+\verb|}|\par
+\longthreelinetable{longtab1}{可自动换页的超长三线表}{3}{lcr}
+{
+项目&频率&技术\\
+}{
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+802.11b\tnote{a}&2.4GHz&DSSS\\
+蓝牙&2.4GHz&FHSS\\
+HomeRF&2.4GHz&FHSS\\
+}
+这个超长三线表环境不支持添加脚注。这个表格不是浮动体,会排版到当前位置的。
+
+为了解决复杂的表格暂时不方便用\LaTeX 制作的问题。我定义了一个折中的命令,就是插入表格的图片,然后给图片加上表格的标题,如表~\ref{excel}。 这个表格是用Excel绘制的,然后在Excel中选中这些单元格,然后右键点复制。Excel 会把表格以图片的形式复制到剪贴板,所以可以打开Windows 画图粘贴进去就行了。注意不要用QQ截图等工具截图,这样会截图到本不该显示的一些Excel辅助线。\\
+\verb|\pictable[htbp]{表标题}{width=\textwidth}{图片文件名}|\par
+这个命令其实和插入图片的命令是相像的。\par
+\pictable[htbp]{用Excel制作的表格}{width=0.5\textwidth}{excel}
+\subsubsection{图表设计技巧}\label{subsubsection:skill}
+学校规范中规定了图表中的文字应用宋体五号字。而图片中的字号本模板没有办法代为解决。但是我要介绍如何做到这一点。无论用户使用什么制图工具,一般都可以先设置画布的大小设置为426pt*672pt或者149mm*235mm。这样大小的画布和论文页面版心的大小基本相同,所以在这张画布上绘图可以以100\%大小插入到论文中。也就是可以将\verb|\pic|命令中指定图片大小的大括号空置。这样在绘图的时候插入文字如果注意设置好字体为宋体五号字,在插入到论文后也能够保持字号了。
+
+关于图片的格式转换。推荐大家下载开源的工具Inkscape:\url{http://www.inkscape.org/zh/}。在模板中请尽量插入矢量图,大部分理工科所用的制图工具都支持矢量图的导出。虽然矢量图格式会有所不同,但是Inkscape都能处理,并且都可以转换为pdf格式。在本模板中插入矢量图都需要先转换为pdf格式。
+
+如何去白边是个常见的问题。去白边是指去掉图片四周多余的空白。用Inkscape打开图片,然后打开文件菜单,选择文档属性(快捷键Shift+Ctrl+D)。在页面选项卡中有自定义尺寸方格,点击“缩放页面到内容”的加号。最后点击“缩放页面到绘图或选区”按钮。最后保存文档即可。如果图片四周依然有很大的空白,则需要仔细检查图片的背景是否本身就是一块白色的图案。在矢量图中一般可以选择到,并删除它。
+
+在注意了以上问题之后,其实用矢量图制作出来的表格效果完全没有任何问题,因此推荐复杂的表格用这样的方法制作。
+
+\subsubsection{插入脚注}\label{subsubsection:footnote}
+ 本模板已经设置了脚注的格式,使之符合研究生院撰写范例中要求的格式。每页注脚不能超过10个。
+
+ 通常注脚不会跨页。但是如果\LaTeX{}没有更好的办法了,它会把注脚分成两部分,后一部分排版到下一页的注脚区内。虽然这样的情况发生的概率非常小,但是如果出现之后,又不想注脚跨页,可以选择两种办法:\\
+ 1.最好的办法是重新组织文字,使插入注脚的位置向前或者向后移动至少1行。\\
+ 2.在主文件的\verb|\documentclass|行之后加入一行:\\
+ \verb|\interfootnotelinepenalty=10000|\\
+ 这样\LaTeX{}会强制换页将注脚所在行移到下一页去,在前一页留下空白。
+
+\subsection{插入数学公式}
+本模板对数学式没有做过多修改,仅添加了amsmath和kmath宏包,以提供更美观的数学字体。关于数学式的编写规则请阅读“TeXbook中文版.pdf”中的16 至19 章。这本书是\TeX{}的作者高德纳写的\TeX{} 权威著作,网友xianxian翻译。
+
+行内公式:单个\$包围的行内公式。例如:\\
+\verb|若$A\in F^{n\times n}$,且对任意非负整数$p$,有|\\
+编译结果是:\\
+若$A\in F^{n\times n}$,且对任意非负整数$p$,有\\
+这就是行内公式。
+
+行间公式:\\
+\verb|\begin{equation}|\\
+\verb|A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}C^{(p)}_A|\\
+\verb|\end{equation}|\\
+其中第一行和最后一行是公式环境的标志,中间依然按照数学式的输入规则输入。\\
+编译结果为:\\
+\begin{equation}
+A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}C^{(p)}_A
+\end{equation}
+
+若无需显示标号,则将第一行和最后一行中的equation都替换为equation*。
+
+\LaTeX 是数学学界广泛使用的工具,大部分数学工具例如matlab都支持导出LaTeX公式。详情请自行在互联网上搜索。
+各种数学符号的输入方法可以在一些在线网站上通过手写查询出来:\\\url{http://detexify.kirelabs.org/classify.html}\\
+\url{http://webdemo.visionobjects.com/equation.html?locale=zh_CN}\\
+互联网上任何有关LaTeX数学式的技巧应该都适用于本模板。
+
+\subsection{定理环境等}
+本模板提供了四种分别编号的环境:定义、定理、公理、引理。和一种不带编号的环境:证明。
+这五种环境的环境名都是它们的拼音全拼。
+例如:\\
+\verb|\begin{dingli}|\\
+\verb|通过任意闭合曲面的电通量等于该闭合曲面所包围的所有电荷量的代数和与电常数之比。|\\
+\verb|\end{dingli}|\\
+\begin{dingli}
+通过任意闭合曲面的电通量等于该闭合曲面所包围的所有电荷量的代数和与电常数之比。
+\end{dingli}
+
+\subsection{交叉引用}
+在正文的任意位置可以用命令\verb|\label{标签名}|\label{crossref}在此设置一个标签,然后在论文的其他位置可以使用命令\verb|\ref{标签名}| 和\verb|\pageref{标签名}| 分别显示该标签位于的章节号和页码。例如:此例见第~\pageref{crossref}~页的第~\ref{crossref}~节。在输入\verb|\ref{标签名}| 命令时,如果其前后有是中文,可以在其与中文之间加入一个\verb|~|符号,使其空一格更美观。
+
+\subsection{枚举环境}
+枚举环境就是如下的东西,使用方法见此处的源代码。可以引用其中编号,例如~\ref{testinenumerate}。
+\begin{enumerate}
+\item 内容。
+
+可以另起一段。
+\item 内容。
+\item 内容。
+\item 内容。
+\item 内容。
+\item
+ \begin{enumerate}
+ \item 内容。
+ \item 内容。
+ \item 内容。
+ \item 内容。
+ \item
+ \begin{enumerate}
+ \item 内容。
+ \item 内容。
+ \item 内容。
+ \item 内容。
+ \item
+ \begin{enumerate}
+ \item 最多到此4层嵌套。
+ \item 内容。
+ \item 内容。
+ \item 内容\label{testinenumerate}。
+ \end{enumerate}
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
+\section{其他内容}
+其他内容指的是:中文摘要、英文摘要、目录、参考文献、鸣谢、外国原文、中文译文,还有可以省略的附录等,见表~\ref{contentsstruct}。这些内容的格式和顺序都是固定的,所以将它们单独放在一个目录中。使用者只需要编辑它们的内容,并不用选择按什么顺序载入它们。
+\threelinetable[htbp]{contentsstruct}{\textwidth}{lX}{contents目录中文件用途}
+{文件名&说明\\
+}{
+titlepage.tex &封面信息\\
+Cabstract.tex &中文摘要\\
+Eabstract.tex &英文摘要\\
+acknowledgements.tex&致谢\\
+appendix.tex &附录\\
+original.tex &外文资料原文,研究生可忽略此文件,不用编辑\\
+translation.tex &外文资料译文,研究生可忽略此文件,不用编辑\\
+reference.bib &参考文献\\
+publications.bib &攻读期间的研究成果,本科生可忽略此文件,不用编辑\\
+}{}
+\subsection{封面}
+我们校毕业论文的封面是由文印中心统一提供的,模板里的封面只是为了论文完整一些而设计的。\par
+编辑contents/titlepage.tex即可输入封面的信息。
+\subsection{摘要}
+分别编辑两个摘要文件。其中:\verb|\begin{Cabstract}{}{}{}{}{}|是Cabstract摘要环境的起始语句,从它到它对应的\verb|\end{Cabstract}| 之间的部分就是这个环境的内容,也就是中文摘要的内容。
+\verb|\begin{Cabstract}|旁边有五个大括号,其中填写关键词。按照要求关键词应选择3--5 个,所以至少填前三个。括号可以空着(其中不能有空格),但不能删除,必须有5对大括号。英文摘要也是一样的,只是环境名变成Eabstract 了。
+\subsection{参考文献}
+用文本编辑器打开contents目录中的reference.bib文件(可用鼠标拖动文件到WinEdt窗口上打开)。模板带的reference.bib 文件是一份示例文件,其中包含所有参考文献样式的示例各一条。可以按照其中的示例编写。其中多余3 个作者的条目无需按照示例中的写法在最后手工写“等”或“et al”,参考文献模板的新版本已经解决了这一问题。
+
+还可以通过Google学术搜索\url{http://scholar.google.com/}直接导出bibtex格式。打开Google学术搜索,点击页面上的“设置”,将其中的参考书目管理软件设置为显示导入\BibTeX{} 的链接。之后搜索条目下方就会出现“导入\BibTeX{}”。 将内容复制到reference.bib中即可。但是需要注意的是,Google等网站提供的内容有一些字段不完整的情况。使用时应对照原reference.bib 中相同的参考文献类型,核对是否缺少某一字段。中文的参考文献要令language = \{Chinese\} (非空即可)。
+
+注意bib文件中每一条目的第一行例如:\\
+\verb|@ARTICLE{turongting2007,|\\
+注意后面的“,”不要删除。其中turongting2007是这条参考文献的标签,用于在文章中引用这个参考文献,以显示它的标号。标签必须是英文和数字组成的。Google 学术搜索导出的条目标签是自动用作者名+年份+标题第一个词生成的,英文的当然没问题,但是中文文献的标签需要手工修改成一个英文和数字组成的标签。而ARTICLE 是条目的类型。
+
+在正文中引用参考文献时有两个命令可以使用。\verb|\cite{标签名1,标签名2……}|和\verb|\citeup{标签名1,标签名2……}| 分别是正常字号的中括号引用和上角标形式的中括号引用。两个命令的大括号中可以写多个标签名,用英文逗号分隔开来。\par
+
+本模板生成的参考文献格式符合GB/T7714-2005,但有一处错误需要手动修正。生成的英文析出文献的文献类型标识码之后会有一个句号(GB/T7714-2005 规定没有)。这个错误比较不明显,出现的频率也不多。可以只在最后提交正式论文时再行修复。
+
+关闭打开的thesis.pdf文件。双击执行“compile.bat”即可自动修复这个错误并重新编译出thesis.pdf 。
+
+\subsubsection{测试文献}
+
+
+A.1 普通图书
+
+\cite{gxzzzzqlyt1993},
+\cite{jiangyouxu1998},
+\cite{tangxujun1999},
+\cite{zhaokaihua1995},
+\cite{wangang1912},
+\cite{zhaoyaodong1998},
+\cite{crawfprd1995},
+\cite{iflai1977},
+\cite{obrien1994},
+\cite{rood2001},
+\cite{angwen1988}。
+
+A.2 论文集、会议录
+
+\cite{zglxxh1990},
+\cite{ROSENTHALL1963},
+\cite{GANZHA2000}。
+
+A.3 科技报告
+
+\cite{dtha1990},
+\cite{who1970}。
+
+A.4 学位论文
+
+\cite{ZHANGZHIXIANG1998},
+\cite{CALMS1965}。
+
+A.5 专利文献
+
+\cite{LIUJIALIN1993},
+\cite{hblz2001},
+\cite{KOSEKI2002}。
+
+A.6 专著中析出的文献
+
+\cite{baishunong1998},
+\cite{gjbzjxxflbmyjs1988},
+\cite{hanjiren1985},
+\cite{BUSECK1980},
+\cite{FOURNEY1971},
+\cite{feilisheng1981},
+\cite{MARTIN1996}。
+
+A.7 期刊中析出的文献
+
+\cite{libingmu2000},
+\cite{taorengji1984},
+\cite{yzdztbmz1978},
+\cite{MARAIS1992},
+\cite{HEWITT1984}。
+
+A.8 报纸中析出的文献
+
+\cite{Dingwenxiang2000},
+\cite{Zhangtianqing2000}。
+
+A.9 电子文献
+
+\cite{jiangxiangdong1999},
+\cite{xiaoniu2001},
+\cite{CHRISTINE1998},
+\cite{METCALF1995},
+\cite{TURCOTTE1992},
+\cite{Scitor1983}。
+
+附加测试
+
+B1.连续出版物4.3
+
+\cite{zgdzxh1936},
+\cite{zgtsgxh1957},
+\cite{AAAS1883}。
+
+顺序编码制数字的压缩性测试
+
+\cite{angwen1988,baishunong1998,Dingwenxiang2000,gxzzzzqlyt1993,
+jiangyouxu1998,tangxujun1999,zhaokaihua1995,wangang1912,zhaoyaodong1998},
+\cite{crawfprd1995},
+\cite{iflai1977},
+\cite{obrien1994},
+\cite{rood2001},
+\cite{angwen1988}。
+
+B2. CAJ-CD B/T 1-2005
+
+中国学术期刊(光盘版)检索与评价数据规范
+
+Data Norm for Retrieval and Evaluation of Chinese Academic Journal(CD) (修订版试行稿)
+
+CAJ-CD
+
+中国学术期刊(光盘版)技术规范CAJ-CD B/T 1-2005
+
+代替CAJ-CD B/T 1-1998
+
+\cite[12]{zhuyixuan1985},
+\cite{yejianying1946},
+\cite{gwywgzjj1958},\cite{shenkuogwywgzjj1070},\cite{jiyun1800},
+\cite{liujiang2004},\cite{wanjingkun1996},\cite{dai1983}
+\subsection{攻读期间的研究成果}
+攻读期间的研究成果文件是publications.bib,其格式和编辑方法同参考文献完全一致。在WinEdt中使用编译按钮编译的结果不会显示这一章是正常现象。需要使用compile.bat编译才能得到包含这一章的正确结果。
+
+如果需要录入非参考文献标准格式的内容,例如获奖,可以使用ONLYNOTE 类型的参考文献。这个类型是直接原文输出note 条目的类型。可见示例\cite{onlynoteexample}。
+\subsection{致谢}
+致谢就是简单的编辑contents/acknowledgements.tex就可以了。
+\subsection{附录}
+附录中如果分章,需要全部写在contents/appendix.tex文件中,即其中写多个\verb|\chapter{}|。如果将appendix.tex 中所有内容删除,最后的论文将不会出现附录。
+\subsection{外文资料}
+\label{translation}
+外文资料原文和译文分别是contents/original.tex和contents/translation.tex。它们都和普通的正文一样。
+
+在v0.4.5版本更新时,我将外文资料的两章,章号重置为1,但是章标题不显示章号。而节标题从1.1开始编排。同时,外文资料原文中,图表题注都改为了英文。从示例文件中可以看到,这两章的章命令改为使用标准的\verb|\chapter{}|命令,不再使用带星号的命令。
+\subsection{主要符号表和缩略词表}\label{subsection:glossaries}
+主要符合表和缩略词表的开启都不需要特别设置。只要使用了声明符号和缩略词的命令,并且使用了它们,就会自动出现在主要符号表和缩略词表中。如果只声明,而不使用则不会出现在两个表中。如果某个表没有内容,则不会出现这个表。
+
+在v0.6版本更新后,新加入了缩略词表。并且原先实现主要符号表的机制也有所改变。简单说,之前只使用\verb|\fuhao|命令设置符号就可以了。而现在依然保持了这个命令的定义不变,但是还需要在使用这个符号的位置调用引用符号命令,才能在主要符号表中显示这个符号。
+
+定义一个符号使用命令:\\
+\verb|\fuhao{符号}{说明}{标签}|。这里标签还被用于在主要符号表中按字母顺序排序。\\
+定义一个缩略词使用命令:\\
+\verb|\newacronym[description=中文全称]{标签}{缩写形式}{英文全称}|\\
+然后在需要使用符号或缩略词的地方用命令:\\
+\verb|\gls{标签}|
+
+使用举例:我先在这里定义一个符号\verb|\fuhao{$\Pi$}{数学及物理学领域普遍存在的数学常数。}{pi}|\fuhao{$\Pi$}{数学及物理学领域普遍存在的数学常数。}{pi},然后在需要用到的地方用命令\verb|\gls{pi}|调用它。例如,圆周率的符号是\gls{pi}。然后再定义一个缩略词\\
+\verb|\newacronym[description=支持向量机]{svm}{SVM}{Support Vector Machine}|\\
+\newacronym[description=支持向量机]{svm}{SVM}{Support Vector Machine}
+在需要使用这个缩略词的地方用命令\verb|\gls{svm}|引用它。需要注意这个效果,当我第一次引用它时,它是先全称加括号缩略词的方式,而之后再引用它则只有缩略词的形式了。例如:\\
+\verb|有一类算法叫做\gls{svm},\gls{svm}的效果非常显著。|\\
+有一类算法叫做\gls{svm},\gls{svm}的效果非常显著。
+
+有关这两个表的更复杂的用法,请查阅glossaries宏包的相关手册。主要是如何定义缩略词和符号的特殊复数形式,以及如何灵活的引用出符号或缩略词的复数形式,首字母大写形式等。
+\section{排版源代码}
+\label{source:section}
+许多学院的论文都需要插入若干程序源代码。经过多方比较,我推荐一个使用外部工具的方案。这个工具比现有的\LaTeX{} 宏包解决方案要更美观,对中文的支持更好,几乎支持所有的语言。
+
+从\url{http://www.andre-simon.de/zip/download.html}下载这个工具。这个工具就叫highlight,是开源软件,有各个平台的版本,完全不需要自行编译。Windows用户就直接下载Windows (W32) installer的连接就行。下载后进行完全安装。
+
+这个工具界面是中文的,很容易使用。打开后,设置通用选项卡如图~\ref{highlight1}。
+\pic[htbp]{通用选项卡设置}{}{highlight1}
+
+输出细节选项卡不用动。设置格式化选项卡如图~\ref{highlight2}。其中高亮主题在模板的v0.4.7以后已经不用选择了。模板中内置了plain黑白主题。
+
+\pic[htbp]{格式化选项卡设置}{}{highlight2}
+
+然后设置输出路径,可以设置到chapters目录中。然后选择输入文件(文件路径中不能包含中文),可以批量转换很多源文件。最后点转换文件即可。转换好的文件是以源文件名后再加.tex 扩展名命名的。在论文中需要插入的位置写入:\\
+\verb|\input{chapters/Place_has_TrainDAO.java.tex}|\\
+在2013/06/03更新的v0.4.7版本后,不再需要使用input命令导入highlight.sty。模板中已经内置了这个文件的内容,采用黑白等宽字体。使用之前版本input了highlight.sty文件的同学需要删除这个导入命令,否则会报错。
+
+\label{par:scrextraline}在生成的tex文件中倒数第4行应该是排版的源代码的最后一行。这一行最后的换行命令\verb|\\|通常是多余的、不该有的,应该删去。否则换段时会多出一个空行。这和我们不应该在一个段落的最后加上\verb|\\|的道理是一样的。如果有大量的源代码需要处理,建议使用本文替换工具将多余的\verb|\\|连同最后三行一起匹配,然后替换为仅留最后三行的内容。
+
+如果需要完全的等宽效果,还需要手工修正一些符号。因为\LaTeX 对符号有特殊的处理,并不是普通的字体。需要按照表\ref{sourcereplace}在Highlight生成的tex文件中全文替换。
+
+\threelinetable[htbp]{sourcereplace}{\textwidth}{cll}{源代码中等宽符号替换}
+{源代码中存在符号&搜索&替换为\\
+}{
+\verb|^| &\verb|\textasciicircum|\textvisiblespace\tnote{注} & \verb|\^{}|\\
+$|$ &\verb|\textbar|\textvisiblespace & \verb|\symbol{124}|\\
+$\backslash$ &\verb|$\backslash$| & \verb|\symbol{92}|\\
+\verb|<| &\verb|$<$| & \verb|\symbol{60}|\\
+\verb|>| &\verb|$>$| & \verb|\symbol{62}|\\
+\verb|~| &\verb|$\sim$| & \verb|\symbol{126}|\\
+\verb|_| &\verb|\textunderscore|\textvisiblespace & \verb|\symbol{95}|\\
+\{ &\verb|\{| & \verb|\symbol{123}|\\
+\} &\verb|\}| & \verb|\symbol{125}|\\
+}{\item[注] 注意命令后有一个空格,连这个空格一起替换掉。下同。}
+
+示例结果如下:
+
+\input{chapters/test.c.tex}
+
+\input{chapters/Place_has_TrainDAO.java.tex}
+\section{Linux中编译}
+本模板已经在Linux系统中测试过,可以正常编译。在TeXLive完全安装的基础上,所有宏包包括CJK都安装了,还需要另外安装宋体和黑体。本模板使用的宋体和黑体是Windows自带的,也是Word使用的。需要在Windows中C:\\Windows\\Fonts 目录中复制simhei.ttf和simsun.ttc到Linux 系统中,如果依然提示缺少某个字体就一样复制过去。最简单的方式是将两个字体文件放到UESTCthesis工作目录中。
+
+编译脚本已经写好在zip包中,解压到工作目录即可使用。
+\section{使用\LaTeX{}时容易犯的错误}
+\begin{enumerate}
+\item 以为回车就是换行。\LaTeX{}中换行的命令是“\verb|\\|”。
+\item 以为换行就是另起一段。\LaTeX{}中另起一段的命令是“\verb|\par|”,也可以连续输入两个以上的回车。
+\item 以为空格就是空格。\LaTeX{}中中文与中文之间的空格或回车都会被忽略掉,英文与英文之间的空格和回车有多少个都只算作1 个。这是为了避免输入时录入不正确数量的空格。如果一定要输入连续多个空格,可以使用符号\verb|~|,或者命令\verb|\nbs{}|。 后者是不可换行的空格。比如英文人名Donald Ervin Knuth,如果将其中的空格改为\verb|\nbs{}|,则系统会优先保证这三个单词在同一行显示。如果实在放不下了,才会在单词的音节断开处换行。例如:
+ Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}
+\end{enumerate}
+
+\section{进一步了解\LaTeX}
+推荐购买一本《LaTeX2e完全学习手册》\\
+作者:胡伟\\
+出 版 社:清华大学出版社\\
+ISBN:9787302241591 \\
+出版时间:2011-01-01\\
+
+这本书中详细讲解了各种常用的排版设置。但是要注意的是,\LaTeX{}对\TeX{}最大的改进就是将排版和写作分开处理。所以学习了这本书中各种的排版设置,也不应该将其应用在写作中。而是运用它们设计各种模板(文类),就像本模板一样,尽量将排版和内容分开处理。
+
+这本书中没有提及如何制作文类cls文件,相关内容需要自行阅读clsguide.pdf。这份文档位于\verb|..\CTEX\MiKTeX\doc\latex\base\clsguide.pdf|。
+
+\section{修改本模板}
+可以通过用pdflatex编译uestcthesis.dtx文件得到uestcthesis.pdf。uestcthesis.pdf是源代码的说明文档。
+
+本模板源代码可在\url{http://mirror.ctan.org/macros/latex/contrib/uestcthesis/source/} 获得。
+
+修改前请注意本模板的许可协议。
+
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/Cabstract.tex b/macros/latex/contrib/uestcthesis/doc/contents/Cabstract.tex
new file mode 100644
index 0000000000..534b28b076
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/Cabstract.tex
@@ -0,0 +1,8 @@
+% !Mode:: "TeX:UTF-8"
+
+\begin{Cabstract}{$M-$矩阵}{$H-$矩阵}{Drazin逆}{Pseudo-Drazin逆}{条件数}
+J.\nbs H.\nbs Wilkinson\citeup{iflai1977}建立了非奇异矩阵的逆是矩阵元素的连续函数的理论。G.\nbs W.\nbs Stewart\citeup{crawfprd1995}推出了矩阵 的广义逆 的连续性。为了得到Drazin逆的连续性, 本文先给出了$M-$矩阵、$H-$矩阵类的逆的连续性。Campbell和Meyer\citeup{zhaoyaodong1998} 也给出了Drazin 逆的连续性性质,但没有给出明显的边界。\par
+Drazin逆对扰动是很不稳定的。然而,在某种特定的扰动条件下,矩阵$(A+E)^D$与$A^D$的接近程度能够得到量化且也能得到明显的相对误差边界。基于Drazin逆的不同形式,很多科学家和学者从事这一方面的研究。U.\nbs G.\nbs Rothblum 给出的Drazin逆的以下的表达式:
+$$A^D=(A-H)^{-1}(I-H)=(I-H)(A-H)^{-1}$$
+其中$H=I-AA^D=I-A^DA$.基于这个表达式,我们在本文中也给出了$\|(A+E)^D-A^D\|_2/\| A^D\|$和$\|(A+E)^\sharp-A^D\|_2/\|A^D\|_2$的范数估计,并与前人的成果进行了比较。
+\end{Cabstract}
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/Eabstract.tex b/macros/latex/contrib/uestcthesis/doc/contents/Eabstract.tex
new file mode 100644
index 0000000000..7545523563
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/Eabstract.tex
@@ -0,0 +1,8 @@
+% !Mode:: "TeX:UTF-8"
+
+\begin{Eabstract}{$M-$matrices}{$H-$matrices}{Drazin inverse}{Pseudo-Drazin inverse}{Condition number}
+The theory that the inverse of a nonsingular matrix is continuous function of the elements of the matrix was established by J.\nbs H.\nbs Wilkinson\citeup{iflai1977}. The continuity of the generalized inverse $A^+$ of a matrix $A$ was introduced by G.\nbs W.\nbs Stewart\citeup{crawfprd1995}. In this paper, at first, the continuity of the special matrices inverse, such that $M-$matrices and $H-$matrices, respectively, are provided. Campbell and Meyer\citeup{zhaoyaodong1998} also established the continuity properties of Drazin inverse, but the explicit bound was not given.\par
+The Drazin inverse is unstable with respect to perturbation. However, under some specific perturbation , the closeness of the matrices $(A+E)^D$ and $A^D$ can be proved and the explicit bound the relation error can also be obtained. Based on the different representations of Drazin inverse, many scientists and scholars have worked it research. U.\nbs G.\nbs Rothblum gave the following representation of Drazin inverse:
+$$A^D=(A-H)^{-1}(I-H)=(I-H)(A-H)^{-1}$$
+where $H=I-AA^D=I-A^DA$. Based on the representation, we also obtain the norm estimate of $\|(A+E)^D-A^D\|_2/\| A^D\|$ and $\|(A+E)^\sharp-A^D\|_2/\|A^D\|_2$ and compare with the precedent results.
+\end{Eabstract}
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/acknowledgements.tex b/macros/latex/contrib/uestcthesis/doc/contents/acknowledgements.tex
new file mode 100644
index 0000000000..025c2842cc
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/acknowledgements.tex
@@ -0,0 +1,8 @@
+% !Mode:: "TeX:UTF-8"
+
+历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师—XX老师,她对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最中心的感谢!
+
+感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。
+
+感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。
+由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/appendix.tex b/macros/latex/contrib/uestcthesis/doc/contents/appendix.tex
new file mode 100644
index 0000000000..a6c5aa8dfe
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/appendix.tex
@@ -0,0 +1,7 @@
+% !Mode:: "TeX:UTF-8"
+
+\chapter{附录章}
+如果将appendix.tex中所有内容删除,最后的论文将不会出现附录。
+\section{附录节}
+\chapter{附录另一章}
+\section{附录另一章的一节}
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/cv.tex b/macros/latex/contrib/uestcthesis/doc/contents/cv.tex
new file mode 100644
index 0000000000..7c456f4460
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/cv.tex
@@ -0,0 +1,31 @@
+% !Mode:: "TeX:UTF-8"
+
+\markboth{个人简历及攻读硕士学位期间取得的研究成果}{}%页眉设置
+\chapter*{个人简历及攻读硕士学位期间取得的研究成果}
+\phantomsection
+\addcontentsline{toc}{chapter}{个人简历及攻读硕士学位期间取得的研究成果}
+\section*{个人简历:}
+
+\noindent 某人,男,汉族,1988年8月出生。
+
+\noindent 2010年9月$\sim$2013年6月,电子科技大学通信与信息工程学院,攻读硕士学位。\\
+2006年9月$\sim$2010年6月,电子科技大学通信与信息工程学院,攻读学士学位。
+
+\section*{发表论文:}
+\renewcommand{\labelenumi}{[\theenumi]}
+\begin{enumerate}[labelindent=0pt]
+\item Zhuang J, Huang P. Robust Adaptive Array Beamforming With Subspace Steering Vector Uncertainties[J]. Signal Processing Letters, IEEE, 2012, 19(12): 785-788.
+\item Zhuang J, Huang P, Huang W. Matched direction beamforming based on signal subspace[C]//Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on. IEEE, 2012: 2585-2588.
+\end{enumerate}
+
+\section*{参加的科研项目:}
+
+\noindent 2006年9月$\sim$2010年6月:阵列信号处理方面的研究;\\
+2006年9月$\sim$2010年6月:国家科技重大专项,民用飞机XXX项目。
+
+\section*{获奖情况:}
+
+\noindent 2010年:电子科技大学研究生二等奖学金;\\
+2011年:电子科技大学研究生一等奖学金、优秀研究生称号;\\
+2012年:电子科技大学研究生一等奖学金、优秀研究生称号;\\
+\hspace*{4em}国家奖学金、四川省优秀毕业生。\\ \ No newline at end of file
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/original.tex b/macros/latex/contrib/uestcthesis/doc/contents/original.tex
new file mode 100644
index 0000000000..f70bf82f9a
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/original.tex
@@ -0,0 +1,43 @@
+% !Mode:: "TeX:UTF-8"
+
+\chapter{The Name of the Game}
+\section{xxx}
+\subsection{xxx}
+\subsubsection{xxxx}
+\section{xxx}
+\subsection{xxx}
+\subsubsection{xxxx}
+English words like `technology' stem from a Greek root beginning with
+the letters $\tau\epsilon\chi\ldots\,$; and this same Greek word means {\sl
+art\/} as well as technology. Hence the name \TeX, which is an
+uppercase form of $\tau\epsilon\chi$.{TeX (actually \TeX), meaning of}
+$\tau\epsilon\chi$
+
+Insiders pronounce the $\chi$ of \TeX\ as a Greek chi, not as an `x', so that
+\TeX\ rhymes with the word blecchhh. It's the `ch' sound in Scottish words
+like {\sl loch\/} or German words like {\sl ach\/}; it's a Spanish `j' and a
+Russian `kh'. When you say it correctly to your computer, the terminal
+may become slightly moist.
+
+The purpose of this pronunciation exercise is to remind you that \TeX\ is
+primarily concerned with high-quality technical manuscripts: Its emphasis is
+on art and technology, as in the underlying Greek word. If you merely want
+to produce a passably good document---something acceptable and basically
+readable but not really beautiful---a simpler system will usually suffice.
+With \TeX\ the goal is to produce the {\sl finest\/} quality; this requires
+more attention to detail, but you will not find it much harder to go the
+extra distance, and you'll be able to take special pride in the finished
+product.
+
+On the other hand, it's important to notice another thing about \TeX's name:
+The `E' is out of kilter. This {logo}
+displaced `E' is a reminder that \TeX\ is about typesetting, and it
+distinguishes \TeX\ from other system names. In fact, {TEX} (pronounced
+{\sl tecks\/}) is the admirable {\sl Text EXecutive\/} processor developed by
+{Honeywell Information Systems}. Since these two system names are
+{Bemer, Robert, see TEX, ASCII}
+pronounced quite differently, they should also be spelled differently. The
+correct way to refer to \TeX\ in a computer file, or when using some other
+medium that doesn't allow lowering of the `E', is to type `|TeX|'. Then
+there will be no confusion with similar names, and people will be
+primed to pronounce everything properly. \ No newline at end of file
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/publications.bib b/macros/latex/contrib/uestcthesis/doc/contents/publications.bib
new file mode 100644
index 0000000000..990b0e6dde
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/publications.bib
@@ -0,0 +1,77 @@
+% !Mode:: "TeX:UTF-8"
+%如果将此文件删除(删除文件,不是删除内容),则论文中不会出现攻读期间取得的研究成果一章。
+
+@article{Cong20113105,
+title = "Synthesis and antibacterial activity of novel 4''-O-benzimidazolyl clarithromycin derivatives",
+journal = "European Journal of Medicinal Chemistry",
+volume = "46",
+number = "7",
+pages = "3105 - 3111",
+year = "2011",
+note = "",
+issn = "0223-5234",
+doi = "10.1016/j.ejmech.2011.04.004",
+url = "http://www.sciencedirect.com/science/article/pii/S0223523411002893",
+author = "Chao Cong and Haiyang Wang and Yue Hu and Chen Liu and Siti Ma and Xin Li and Jichao Cao and Shutao Ma",
+keywords = "Benzimidazolyl derivatives",
+keywords = "Clarithromycin",
+keywords = "Synthesis",
+keywords = "Antibacterial activity",
+abstract = "Novel 4''-O-benzimidazolyl clarithromycin derivatives were designed, synthesized and evaluated for their in vitro antibacterial activities. These benzimidazolyl derivatives exhibited excellent activity against erythromycin-susceptible strains better than the references, and some of them showed greatly improved activity against erythromycin-resistant strains. Compounds 16 and 17, which have the terminal 2-(4-methylphenyl)benzimidazolyl and 2-(2-methoxyphenyl)benzimidazolyl groups on the C-4'' bishydrazide side chains, were the most active against erythromycin-resistant Staphylococcus pneumoniae expressing the erm gene and the mef gene. In addition, compound 17 exhibited the highest activity against erythromycin-susceptible S.?pneumoniae ATCC49619 and Staphylococcus aureus ATCC25923 as well. It is worth noting that the 4''-O-(2-aryl)benzimidazolyl derivatives show higher activity against erythromycin-susceptible and erythromycin-resistant strains than the 4''-O-(2-alkyl)benzimidazolyl derivatives."
+}
+
+@article{Ma20115196,
+title = "Novel C-4'' modified azithromycin analogs with remarkably enhanced activity against erythromycin-resistant Streptococcus pneumoniae: The synthesis and antimicrobial evaluation",
+journal = "European Journal of Medicinal Chemistry",
+volume = "46",
+number = "10",
+pages = "5196 - 5205",
+year = "2011",
+note = "",
+issn = "0223-5234",
+doi = "10.1016/j.ejmech.2011.08.001",
+url = "http://www.sciencedirect.com/science/article/pii/S0223523411005721",
+author = "Xiaodong Ma and Ling Zhang and Rongmei Wang and Jichao Cao and Chen Liu and Yi Fang and Jida Wang and Shutao Ma",
+keywords = "Azithromycin analogs",
+keywords = "4''-carbamates",
+keywords = "Erythromycin-resistant <span style='font-style: italic'>Streptococcus pneumoniae</span>",
+keywords = "Synthesis",
+keywords = "Antibacterial activity",
+abstract = "Three novel structural series of C-4'' modified azithromycin analogs with two amide groups, which were connected by different alkyl linkage, were designed, prepared and evaluated for their in?vitro antibacterial activity against seven phenotypes of respiratory pathogens. Among them, 7d, 8j and 9j, as representatives of corresponding series, exhibited remarkably improved activity against erythromycin-resistant Streptococcus pneumoniae expressing the erm gene, the mef gene, and the erm and mef genes. In addition, 7a–c, 7f–h, 7j, 8d, 8g, 8i, 9a–b and 9i displayed favorable efficacy against erythromycin-resistant S. pneumoniae A22072 expressing the mef gene."
+}
+
+@article{Liu201127678,
+title = "Morinda Officinalis Polysaccharides' Impact on the Immunologic Balance of Obstructive Jaundice Rats’ Lymphocyte T",
+author = "Chen Liu and Changsheng Hao",
+journal = "Chinese Journal of Cellular and Molecular Immunology",
+volume = "27",
+number={6},
+pages={678 - 679},
+year = "2011",
+}
+
+@article{Liu20113114,
+title = "Morinda Officinalis Polysaccharides’ Impact on the Expression of Proteins MCP-1 and IL-8 in Hepatic Stellate Cells",
+author = "Chen Liu and Changsheng Hao",
+journal = "Chinese Journal of Gerontology",
+volume={31},
+number={14},
+pages={2713 - 2714},
+year={2011}
+}
+
+@article{LiuFluorophores,
+title = "Fluorophores and their applications as molecular probes in living cells",
+author = "J Liu and Chen Liu and W He",
+journal = "Current Organic Chemistry Accepted",
+}
+
+@article{LiuBifunctional,
+title = "Bifunctional Silicon for Cylic Ether Opening Catalyzed by Nanoporous Gold",
+author = "H Li and Chen Liu and J Li and W He",
+journal = "Manuscript in preparation",
+}
+
+@onlynote{onlynoteexample,
+note = "XXX,XXX,XXX,XXX,王升.XXX的陶瓷研究.四川省科技进步三等奖,2003年12月",
+}
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/reference.bib b/macros/latex/contrib/uestcthesis/doc/contents/reference.bib
new file mode 100644
index 0000000000..8f281dd0d6
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/reference.bib
@@ -0,0 +1,1163 @@
+% !Mode:: "TeX:UTF-8"
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.1 普通图书
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%广西壮族自治区林业厅.广西自然保护区[M].北京:中国林业出版社,1993.
+@BOOK{gxzzzzqlyt1993,
+ AUTHOR = {广西壮族自治区林业厅},
+ editor = {},
+ TITLE = {广西自然保护区},
+ PUBLISHER = {中国林业出版社},
+ YEAR = {1993},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ language = {Chinese},
+}
+
+%蒋有绪,郭泉水,马娟,等.中国森林群落分类及其群落学特征[M].北京:科学出版社,1998.
+@BOOK{jiangyouxu1998,
+ AUTHOR = {蒋有绪 and 郭泉水 and 马娟 and 等},
+ editor = {},
+ TITLE = {中国森林群落分类及其群落学特征},
+ PUBLISHER = {科学出版社},
+ YEAR = {1998},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+%唐绪军.报业经济与报业经营[M].北京:新华出版社,1999:117-121.
+@inBOOK{tangxujun1999,
+ AUTHOR = {唐绪军},
+ editor = {},
+ TITLE = {报业经济与报业经营},
+ PUBLISHER = {新华出版社},
+ YEAR = {1999},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ pages = {117-121},
+ language = {Chinese},
+}
+
+%赵凯华,罗蔚菌.新概念物理教程:力学[M].北京:高等教育出版社,1995.
+@BOOK{zhaokaihua1995,
+ AUTHOR = {赵凯华 and 罗蔚菌},
+ editor = {},
+ TITLE = {新概念物理教程:力学},
+ PUBLISHER = {高等教育出版社},
+ YEAR = {1995},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+%汪昂.(增补)本草备要[M].石印本.上海:同文书局,1912.
+@BOOK{wangang1912,
+ AUTHOR = {汪昂},
+ editor = {},
+ TITLE = {(增补)本草备要},
+ PUBLISHER = {同文书局},
+ YEAR = {1912},
+ volume = {},
+ number = {},
+ series = {},
+ address = {上海},
+ edition = {石印本},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+
+%赵耀东.新时代的工业工程师[M/OL].台北:天下文化出版社,1998[1998-09-26]. http://www.ie.nthu.edu.tw/info/ie.newie.htm(Big5).
+@BOOK{zhaoyaodong1998,
+ AUTHOR = {赵耀东},
+ editor = {},
+ TITLE = {新时代的工业工程师},
+ PUBLISHER = {天下文化出版社},
+ YEAR = {1998},
+ volume = {},
+ number = {},
+ series = {},
+ address = {台北},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ citedate = {1998-09-26},
+ typeoflit = {M/OL},
+ url = {http://www.ie.nthu.edu.tw/info/ie.newie.htm(Big5)},
+ language = {Chinese},
+}
+
+
+%CRAWFPRD W,GORMAN M. Future libraries: dreams, madness,& reality[M]. Chicago: American Library Association,1995.
+@BOOK{crawfprd1995,
+ AUTHOR = {Crawfprd, W and Gorman, M},
+ editor = {},
+ TITLE = {Future libraries: dreams, madness,\& reality},
+ PUBLISHER = {American Library Association},
+ YEAR = {1995},
+ volume = {},
+ number = {},
+ series = {},
+ address = {Chicago},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+}
+
+%International Federation of Library Association and Institutions. Names of persons: national usages for entry in catalogues[M]. 3rd ed. London:IFLA International Office for UBC, 1977.
+@BOOK{iflai1977,
+ AUTHOR = "{International Federation of Library Association and Institutions}",
+ normalAUTHOR = "{International Federation of Library Association and Institutions}",
+ editor = {},
+ TITLE = {Names of persons: national usages for entry in catalogues},
+ PUBLISHER = {IFLA International Office for UBC},
+ YEAR = {1977},
+ volume = {},
+ number = {},
+ series = {},
+ address = {London},
+ edition = {3rd ed},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+}
+
+%O'BRIEN J A. Introduction to information systems[M]. 7th ed. Burr Ridge,III.: Irwin,1994.
+@BOOK{obrien1994,
+ AUTHOR = {O'Brien, J A},
+ editor = {},
+ TITLE = {Introduction to information systems},
+ PUBLISHER = {Irwin},
+ YEAR = {1994},
+ volume = {},
+ number = {},
+ series = {},
+ address = {Burr Ridge,III.},
+ edition = {7th ed},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+}
+
+%ROOD H J. Logic and structured design for computer programmers[M]. 3rd ed. [S.l.]:Brooks/Cole-Thomson Learning,2001.
+@BOOK{rood2001,
+ AUTHOR = {Rood, H J},
+ editor = {},
+ TITLE = {Logic and structured design for computer programmers},
+ PUBLISHER = {Brooks/Cole-Thomson Learning},
+ YEAR = {2001},
+ volume = {},
+ number = {},
+ series = {},
+ address = {},
+ edition = {3rd ed},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+}
+
+%昂温G,昂温 P S.外国出版史[M].陈生铮,译.北京:中国书籍出版社,1988.
+@BOOK{angwen1988,
+ AUTHOR = {昂温, G and 昂温, P S},
+ editor = {},
+ TITLE = {外国出版史},
+ PUBLISHER = {中国书籍出版社},
+ YEAR = {1988},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ translator = {陈生铮},
+ language = {Chinese},
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.2 论文集、会议录
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%中国力学学会.第3届全国实验流体力学学术会议论文集[C].天津:[出版者不详].1990.
+@book{zglxxh1990,
+ author = {中国力学学会},
+ title = {第3届全国实验流体力学学术会议论文集},
+ booktitle = {},
+ year = {1990},
+ editor = {},
+ volume = {},
+ series = {},
+ pages = {},
+ address = {天津},
+ month = {},
+ organization = {},
+ publisher = {},
+ note = {},
+ key = {},
+ crossref = {},
+ annote = {},
+ typeoflit = {C},
+ language = {Chinese},
+}
+
+%ROSENTHALL E M. Proceedings of the Fifth Canadian Mathematical Congress, University of Montreal,1961[C]. Toronto: University of Toronto Press. 1963.
+@book{ROSENTHALL1963,
+ author = {Rosenthall, E M},
+ title = {Proceedings of the Fifth Canadian Mathematical Congress, University of Montreal,1961},
+ booktitle = {},
+ year = {1963},
+ editor = {},
+ volume = {},
+ series = {},
+ pages = {},
+ address = {Toronto},
+ month = {},
+ organization = {},
+ publisher = {University of Toronto Press},
+ note = {},
+ key = {},
+ crossref = {},
+ annote = {},
+ typeoflit = {C},
+}
+
+%GANZHA V G,MAYR E W,VOROZHTSOV E V. Computer algebra in scientific computing: CASC 2000: proceedings of the Third Workshop On Computer Algebra in Scientific Computing, Samarkand,October 5-9.2000[C]. Berlin: Springer , c2000.
+@book{GANZHA2000,
+ author = {Ganzha, V G and Mayr, E W and Vorozhtsov, E V},
+ title = {Computer algebra in scientific computing: CASC 2000: proceedings of
+ the Third Workshop On Computer Algebra in Scientific Computing, Samarkand,October 5-9.2000},
+ booktitle = {},
+ year = {2000},
+ miscyear = {c2000},
+ editor = {},
+ volume = {},
+ series = {},
+ pages = {},
+ address = {Berlin},
+ month = {},
+ organization = {},
+ publisher = {Springer},
+ note = {},
+ key = {},
+ crossref = {},
+ annote = {},
+ typeoflit = {C},
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.3 科技报告
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%U. S. Department of Transportation Federal Highway Administration. Guidelines for handling excavated acid-producing materials, PB 91-194001[R]. Springfield: U.S. Department of Commerce National Information Service,1990.
+@TECHREPORT{dtha1990,
+ AUTHOR = {{U. S. Department of Transportation Federal Highway Administration}},
+ normalAUTHOR = {{U. S. Department of Transportation Federal Highway Administration}},
+ TITLE = {Guidelines for handling excavated acid-producing materials, PB 91-194001},
+ institution = {U.S. Department of Commerce National Information Service},
+ YEAR = {1990},
+ type = {},
+ number = {},
+ address = {Springfield},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+}
+
+%World Health Organization. Factors regulating the immune response: report of WHO Scientific Group[R]. Geneva: WHO,1970.
+@TECHREPORT{who1970,
+ AUTHOR = {{World Health Organization}},
+ normalAUTHOR = {{World Health Organization}},
+ TITLE = {Factors regulating the immune response: report of WHO Scientific Group},
+ institution = {WHO},
+ YEAR = {1970},
+ type = {},
+ number = {},
+ address = {Geneva},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.4 学位论文
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%张志祥.间断动力系统的随机扰动及其在守恒律方程中的应用[D].北京:北京大学数学学院,1998.
+@MASTERSTHESIS{ZHANGZHIXIANG1998,
+ AUTHOR = {张志祥},
+ TITLE = {间断动力系统的随机扰动及其在守恒律方程中的应用},
+ school = {北京大学数学学院},
+ YEAR = {1998},
+ type = {},
+ address = {北京},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+%CALMS R B. Infrared spectroscopic studies on solid oxygen[D]. Berkeley: Univ. of California,1965.
+@PHDTHESIS{CALMS1965,
+ AUTHOR = {Calms, R B},
+ TITLE = {Infrared spectroscopic studies on solid oxygen},
+ school = {Univ. of California},
+ YEAR = {1965},
+ type = {},
+ address = {Berkeley},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.5 专利文献
+%分为杂类?
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%刘加林.多功能一次性压舌板:中国,92214985. 2[P]. 1993-04-14.
+@MISC{LIUJIALIN1993,
+ AUTHOR = {刘加林},
+ editor = {},
+ TITLE = {多功能一次性压舌板},
+ PUBLISHER = {},
+ YEAR = {1993},
+ volume = {},
+ number = {},
+ series = {},
+ address = {},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {P},
+ country = {中国},
+ patentid = {92214985.2},
+ date= {1993-04-14},
+ language = {Chinese},
+}
+
+
+%河北绿洲生态环境科技有限公司,一种荒漠化地区生态植被综合培育种植方法:中国, 01129210. 5[P/OL].2001-10-24[2002-05-28]. http: //211. 152. 9. 47/sipoasp/zlijs/hyjs-yx-new. asp? Recid-01129210.5&leixin.
+
+@MISC{hblz2001,
+ author = {河北绿洲生态环境科技有限公司},
+ title = {一种荒漠化地区生态植被综合培育种植方法},
+ howpublished = {},
+ year = {2001},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {P/OL},
+ country = {中国},
+ patentid = {01129210.5},
+ date= {2001-10-24},
+ citedate = {2002-05-28},
+ url = {http://211.152.9.47/sipoasp/zlijs/hyjs-yx-new.asp?Recid-01129210.5&leixin},
+ language = {Chinese},
+}
+
+
+%KOSEKI A, MOMOSE H,KAWAHITO M, et al. Compiler: US, 828402[P/OL].2002-05-25[2002-05-28].http://FF&p=1&u=netahtml/PTO/search-bool.html&r=5&f=G&l=50&col=AND&d=PG01&sl=IBM. AS. &.0S=AN/IBM&.RS-AN/IBM.
+
+@MISC{KOSEKI2002,
+ author = {Koseki, A and Momose, H and Kawahito, M and et al},
+ title = {Compiler},
+ howpublished = {},
+ year = {2002},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {P/OL},
+ country = {US},
+ patentid = {828402},
+ date= {2002-05-25},
+ citedate = {2002-05-28},
+ url = {http://FF&p=1&u=netahtml/PTO/search-bool.html&r=5&f=G&l=50&col=AND&d=PG01&sl=IBM.AS.&.0S=AN/IBM&.RS-AN/IBM},
+}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.6 专著中析出的文献
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%白书农.植物开花研究[M]//李承森.植物科学进展.北京:高等教育出版社,1998:146-163
+%取自GB 7714-2005 第3页倒数第4行
+@INCOLLECTION{baishunong1998,
+ AUTHOR = {白书农},
+ TITLE = {植物开花研究},
+ BOOKTITLE = {植物科学进展},
+ PUBLISHER = {高等教育出版社},
+ YEAR = {1998},
+ editor = {李承森},
+ volume = {},
+ number = {},
+ series = {},
+ type = {},
+ chapter = {},
+ pages = {146-163},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ language = {Chinese},
+}
+
+
+%国家标准局信息分类编码研究所.GB/T2659-1986世界各国和地区名称代码[S]//全国文献工作标准化技术委员会.文献工作国家标准汇编:3.北京:中国标准出版社,1988 : 59-92.
+@INCOLLECTION{gjbzjxxflbmyjs1988,
+ AUTHOR = {国家标准局信息分类编码研究所},
+ TITLE = {GB/T2659-1986世界各国和地区名称代码},
+ BOOKTITLE = "{文献工作国家标准汇编:3}",
+ PUBLISHER = {中国标准出版社},
+ YEAR = {1988},
+ editor = {全国文献工作标准化技术委员会},
+ volume = {},
+ number = {},
+ series = {},
+ type = {},
+ chapter = {},
+ pages = {59-92},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ TypeofLit = {S},
+ language = {Chinese},
+}
+
+
+
+
+%韩吉人.论职工教育的特点[G]//中国职工教育研究会.职工教育研究论文集.北京:人民教育出版社,1985:90-99.
+
+@INCOLLECTION{hanjiren1985,
+ AUTHOR = {韩吉人},
+ TITLE = {论职工教育的特点},
+ BOOKTITLE = {职工教育研究论文集},
+ PUBLISHER = {人民教育出版社},
+ YEAR = {1985},
+ editor = {中国职工教育研究会},
+ volume = {},
+ number = {},
+ series = {},
+ type = {},
+ chapter = {},
+ pages = {90-99},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ TypeofLit = {G},
+ language = {Chinese},
+}
+%杂类
+
+
+
+%BUSECK P R, NORD G L, Jr.,VEBLEN D R. Subsolidus phenomena in pyroxenes[M]// PREWITT C T. Pyroxense. Washington,D. C.: Mineralogical Society of America,c1980: 117-211.
+
+@INCOLLECTION{BUSECK1980,
+ AUTHOR = {Buseck, P R and Nord, Jr., G L and Veblen, D R},
+ normalAUTHOR = {BUSECK, P R and NORD, Jr., G L and VEBLEN, D R},
+ TITLE = {Subsolidus phenomena in pyroxenes},
+ BOOKTITLE = {Pyroxense},
+ PUBLISHER = {Mineralogical Society of America},
+ YEAR = {1980},
+ miscyear = {c1980},
+ editor = {Prewitt, C T},
+ volume = {},
+ number = {},
+ series = {},
+ type = {},
+ chapter = {},
+ pages = {117-211},
+ address = {},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+}
+%FOURNEY M E. Advances in holographic photoelasticity[C]//American Society of Mechanical Engineers. Applied Mechanics Division. Symposium on Applications of Holography in Mechanics,August 23-25,1971. University of Southern California,Los Angeles, California. New York: ASME, c1971:17-38.
+@INPROCEEDINGS{FOURNEY1971,
+ AUTHOR = {Fourney, M E},
+ TITLE = {Advances in holographic photoelasticity},
+ BOOKTITLE = {Applied Mechanics Division. Symposium on Applications of Holography in Mechanics,August 23-25,1971. University of Southern California,Los Angeles, California},
+ YEAR = {1971},
+ miscYEAR = {c1971},
+ editor = "{American Society of Mechanical Engineers}",
+ normaleditor = "{American Society of Mechanical Engineers}",
+ volume = {},
+ number = {},
+ series = {},
+ pages = {17-38},
+ address = {New York},
+ month = {},
+ organization = {},
+ publisher = {ASME},
+ note = {},
+ abstract = {},
+ keywords = {},
+ TypeofLit = {},
+}
+
+
+%裴丽生.在中国科协学术期刊编辑工作经验交流会上的讲话[C]//中国科协学术期刊编辑工作经验交流会资料选.北京:中国科学技术协会学会工作部,1981:2-10.
+%取自GB 7714-2005 第11页第3行
+@INPROCEEDINGS{feilisheng1981,
+ AUTHOR = {裴丽生},
+ TITLE = {在中国科协学术期刊编辑工作经验交流会上的讲话},
+ BOOKTITLE = {中国科协学术期刊编辑工作经验交流会资料选},
+ YEAR = {1981},
+ editor = {},
+ volume = {},
+ number = {},
+ series = {},
+ pages = {2-10},
+ address = {北京},
+ month = {},
+ organization = {},
+ publisher = {中国科学技术协会学会工作部},
+ note = {},
+ abstract = {},
+ translator = {},
+ keywords = {},
+ language = {Chinese},
+}
+
+
+
+
+%MARTIN G. Control of electronic resources in Australia[M]//PATTLE L W, COX B J. Electronic resources: selection and bibliographic control. New York: The Haworth Press, 1996:85-96.
+@INCOLLECTION{MARTIN1996,
+ AUTHOR = {Martin, G},
+ TITLE = {Control of electronic resources in Australia},
+ BOOKTITLE = {Electronic resources: selection and bibliographic control},
+ PUBLISHER = {The Haworth Press},
+ YEAR = {1996},
+ editor = {PATTLE, L W and COX, B J},
+ volume = {},
+ number = {},
+ series = {},
+ type = {},
+ chapter = {},
+ pages = {85-96},
+ address = {New York},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.7 期刊中析出的文献
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%李炳穆.理想的图书馆员和信息专家的素质与形象[J].图书情报工作,2000(2):58.
+@ARTICLE{libingmu2000,
+ AUTHOR = {李炳穆},
+ TITLE = {理想的图书馆员和信息专家的素质与形象},
+ JOURNAL = {图书情报工作},
+ YEAR = {2000},
+ volume = {},
+ number = {2},
+ pages = {58},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+%陶仁骥.密码学与数学[J].自然杂志,1984,7(7):527.
+@ARTICLE{taorengji1984,
+ AUTHOR = {陶仁骥},
+ TITLE = {密码学与数学},
+ JOURNAL = {自然杂志},
+ YEAR = {1984},
+ volume = {7},
+ number = {7},
+ pages = {527},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+%亚洲地质图编目组.亚洲地层与地质历史概述[J].地质学报,1978,3:194-208
+@ARTICLE{yzdztbmz1978,
+ AUTHOR = {亚洲地质图编目组},
+ TITLE = {亚洲地层与地质历史概述},
+ JOURNAL = {地质学报},
+ YEAR = {1978},
+ volume = {3},
+ number = {},
+ pages = {194-208},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ language = {Chinese},
+}
+
+%DES MARAIS D J, STRAUSS H,SUMMONS R E,et al. Carbon isotope evidence for the stepwise oxidation of the Proterozoic environment[J]. Nature,1992,359:605-609.
+@ARTICLE{MARAIS1992,
+ AUTHOR = {Des Marais, David J and Strauss, Harald and Summons, Roger E and Hayes, J. M.},
+ TITLE = {Carbon isotope evidence for the stepwise oxidation of the Proterozoic environment},
+ JOURNAL = {Nature},
+ YEAR = {1992},
+ volume = {359},
+ number = {},
+ pages = {605-609},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+}
+
+%HEWITT J A. Technical services in 1983[J].Library Resource Services,1984,28(3):205-218.
+@ARTICLE{HEWITT1984,
+ AUTHOR = {Hewitt, Joe A and Hewitt, Joe A},
+ TITLE = {Technical services in 1983},
+ JOURNAL = {Library Resource Services},
+ YEAR = {1984},
+ volume = {28},
+ number = {3},
+ pages = {205-218},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.8 报纸中析出的文献
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%丁文祥.数字革命与竞争国际化[N].中国青年报,2000-11-20(15).
+@ARTICLE{Dingwenxiang2000,
+ AUTHOR = {丁文祥},
+ TITLE = {数字革命与竞争国际化},
+ JOURNAL = {中国青年报},
+ YEAR = {2000},
+ volume = {},
+ number = {15},
+ pages = {},
+ month = {11-20},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {N},
+ language = {Chinese},
+}
+
+
+
+%张田勤.罪犯DNA库与生命伦理学计划[N].大众科技报,2000-11-12(7).
+@ARTICLE{Zhangtianqing2000,
+ AUTHOR = {张田勤},
+ TITLE = {罪犯DNA库与生命伦理学计划},
+ JOURNAL = {大众科技报},
+ YEAR = {2000},
+ volume = {},
+ number = {7},
+ pages = {},
+ month = {11-12},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {N},
+ language = {Chinese},
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A.9 电子文献(包括专著或连续出版物中析出的电子文献)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%江向东.互联网环境下的信息处理与图书管理系统解决方案[J/OL].情报学报,1999,18(2):4[2000-01-18].http://www.chinainfo.gov.cn/periodical/abxb/qbxb99/qbxb990203.
+%在线杂志:[J/OL]
+@ARTICLE{jiangxiangdong1999,
+ AUTHOR = {江向东},
+ TITLE = {互联网环境下的信息处理与图书管理系统解决方案},
+ JOURNAL = {情报学报},
+ YEAR = {1999},
+ volume = {18},
+ number = {2},
+ pages = {4},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {J/OL},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {},
+ citedate = {2000-01-18},
+ url = {http://www.chinainfo.gov.cn/periodical/abxb/qbxb99/qbxb990203},
+ language = {Chinese},
+}
+
+
+%萧钮.出版业信息化迈人快车道[EB/OL]. (2001-12-19)[2002-04-15]. http://www.creader.com/news/20011219/200112190019. html.
+@MISC{xiaoniu2001,
+ author = {萧钮},
+ title = {出版业信息化迈人快车道},
+ journal = {},
+ volume = {},
+ number = {},
+ pages = {},
+ howpublished = {},
+ year = {2001},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {EB/OL},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {2001-12-19},
+ citedate = {2002-04-15},
+ url = {http:// www.creader.com/ news/20011219/200112190019.html},
+ language = {Chinese},
+}
+
+
+%CHRISTINE M. Plant physiology: plant biology in the Genome Era[J/OL]. Science, 1998, 281:331-332[1998-09-23]. http://www.sciencemag.org/cgi/collection/anatmorp.
+@article{CHRISTINE1998,
+ author = {Christine, Mlot},
+ title = {Plant physiology: plant biology in the Genome Era},
+ journal = {Science},
+ volume = {281},
+ number = {},
+ pages = {331-332},
+ howpublished = {},
+ year = {1998},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {J/OL},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {},
+ citedate = {1998-09-23},
+ url = {http://www.sciencemag.org/cgi/collection/anatmorp},
+}
+
+
+%METCALF S W. The Tort Hall air emission study[C/OL]//The International Congress on Hazardous Waste, Atlanta Marriott Marquis Hotel, Atlanta,Georgia, June 5-8,1995:impact on human and ecological health[1998-09-22]. http://atsdrl.atsdr.cdc.gov: 8080/cong95.html.
+%在线析出文献
+@inproceedings{METCALF1995,
+ author = {Metcalf, S W},
+ editor = "{The International Congress on Hazardous Waste, Atlanta Marriott Marquis Hotel, Atlanta,Georgia, June 5-8,1995}",
+ normaleditor = "{The International Congress on Hazardous Waste, Atlanta Marriott Marquis Hotel, Atlanta,Georgia, June 5-8,1995}",
+ title = {The Tort Hall air emission study},
+ booktitle = {impact on human and ecological health},
+ journal = {},
+ year = {1995},
+ volume = {},
+ number = {},
+ pages = {},
+ howpublished = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {C/OL},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {},
+ citedate = {1998-09-22},
+ url = {http://atsdrl.atsdr.cdc.gov:8080/cong95.html},
+}
+
+
+%TURCOTTE D L. Fractals and chaos in geology and geophysics[M/OL].New York: Cambridge University Press,1992[1998-09-23]. http://www. seg. org/reviews/mccorm30. html.
+@book{TURCOTTE1992,
+ author = {Turcotte, D L},
+ editor = {},
+ title = {Fractals and chaos in geology and geophysics},
+ booktitle = {},
+ journal = {},
+ year = {1992},
+ volume = {},
+ number = {},
+ pages = {},
+ address = {New York},
+ publisher = {Cambridge University Press},
+ howpublished = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {M/OL},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {},
+ citedate = {1998-09-23},
+ url = {http://www.seg.org/reviews/mccorm30.html},
+}
+
+
+
+
+%Scitor Corporation. Project scheduler[CP/DK]. Sunnyvale,Calif.:Scitor Corporation,c1983.
+@MISC{Scitor1983,
+ author = "{Scitor Corporation}",
+ normalauthor = "{Scitor Corporation}",
+ title = {Project scheduler},
+ address = {Sunnyvale,Calif.},
+ publisher = {Scitor Corporation},
+ journal = {},
+ year = {1983},
+ miscyear = {c1983},
+ volume = {},
+ number = {},
+ pages = {},
+ howpublished = {},
+ month = {},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {CP/DK},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {},
+ citedate = {},
+ url = {},
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%附加性测试
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%B1.连续出版物4.3
+%startyear域作为调动连续出版物的控制
+%中国地质学会.地质论评[J].1936,1(1)-.北京:地质出版社,1936-.
+@BOOK{zgdzxh1936,
+ AUTHOR = {中国地质学会},
+ TITLE = {地质论评},
+ editor = {},
+ PUBLISHER = {地质出版社},
+ YEAR = {1936},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {J},
+ startyear = {1936},
+ startvolume = {1},
+ startnumber = {1},
+ endyear = {},
+ endvolume = {},
+ endnumber = {},
+ language = {Chinese},
+}
+
+
+
+%中国图书馆学会.图书馆学通讯[J]. 1957(1)- 1990(4).北京:北京图书馆,1957-1990.
+@BOOK{zgtsgxh1957,
+ AUTHOR = {中国图书馆学会},
+ TITLE = {图书馆学通讯},
+ editor = {},
+ PUBLISHER = {北京图书馆},
+ YEAR = {1957},
+ volume = {},
+ number = {},
+ series = {},
+ address = {北京},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {J},
+ startyear = {1957},
+ startvolume = {},
+ startnumber = {1},
+ endyear = {1990},
+ endvolume = {},
+ endnumber = {4},
+ language = {Chinese},
+}
+
+%American Association for the Advancement of Science. Science[J]. 1883,1(1)-. Washington, D. C.: American Association for the Advancement of Science, 1883-.
+@BOOK{AAAS1883,
+ AUTHOR = "{American Association for the Advancement of Science}",
+ normalAUTHOR = "{American Association for the Advancement of Science}",
+ TITLE = {Science},
+ editor = {},
+ PUBLISHER = {American Association for the Advancement of Science},
+ YEAR = {1883},
+ volume = {},
+ number = {},
+ series = {},
+ address = {Washington, D. C.},
+ edition = {},
+ month = {},
+ note = {},
+ abstract = {},
+ isbn = {},
+ price = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {J},
+ startyear = {1883},
+ startvolume = {1},
+ startnumber = {1},
+ endyear = {},
+ endvolume = {},
+ endnumber = {},
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%B2. CAJ-CD B/T 1-2005
+%中国学术期刊(光盘版)检索与评价数据规范
+%Data Norm for Retrieval and Evaluation of Chinese Academic Journal(CD) (修订版试行稿)
+%
+%CAJ-CD
+%中国学术期刊(光盘版)技术规范CAJ-CD B/T 1-2005
+%代替CAJ-CD B/T 1-1998
+
+%汇编
+%朱一玄.聊斋志异资料汇编[G].郑州:中州古籍出版社,1985:177-178.
+@BOOK{zhuyixuan1985,
+ AUTHOR = {朱一玄},
+ TITLE = {聊斋志异资料汇编},
+ PUBLISHER = {中州古籍出版社},
+ YEAR = {1985},
+ address = {郑州},
+ TypeofLit = {G},
+ pages = {177-178},
+ language = {Chinese},
+}
+
+%档案
+%叶委员剑英关于安平事件调查结果的声明:1946-09-09[B].中央档案馆.
+@BOOK{yejianying1946,
+ AUTHOR = {叶剑英},
+ normalauthor = {},
+ TITLE = {叶委员剑英关于安平事件调查结果的声明:1946-09-09},
+ PUBLISHER = {中央档案馆},
+ YEAR = {1946},
+ miscyear = { },
+ TypeofLit = {B},
+ language = {Chinese},
+}
+
+
+
+%档案
+%国务院外国专家局的报告:1958-12-11[B].呼和浩特:内蒙古自治区档案馆(全宗252,目录1,卷宗57):65-67.
+@BOOK{gwywgzjj1958,
+ AUTHOR = {国务院外国专家局},
+ normalauthor = {{}},
+ TITLE = {国务院外国专家局的报告:1958-12-11},
+ PUBLISHER = {内蒙古自治区档案馆(全宗252,目录1,卷宗57)},
+ YEAR = {1958},
+ miscyear = {{}},
+ address = {呼和浩特},
+ pages = {65-67},
+ TypeofLit = {B},
+ language = {Chinese},
+}
+
+
+%沈括.梦溪笔谈[O].元大德九年茶陵刊本.北京图书馆珍藏.
+@BOOK{shenkuogwywgzjj1070,
+ AUTHOR = {沈括},
+ TITLE = {梦溪笔谈},
+ edition = {大德九年茶陵刊本},
+ PUBLISHER = {北京图书馆珍藏},
+ YEAR = {1070},
+ miscyear = {},
+ address = {},
+ TypeofLit = {O},
+ language = {Chinese},
+}
+
+%纪昀.纪文达公遗集:卷十六[O].清嘉庆年间刻本.
+@BOOK{jiyun1800,
+ AUTHOR = {纪昀},
+ TITLE = {纪文达公遗集:卷十六},
+ PUBLISHER = {},
+ YEAR = {1800},
+ address = {},
+ TypeofLit = {O},
+ language = {Chinese},
+}
+
+%刘江.假如陈景润被量化考核[N/OL].新华每日电讯,2004-03-12(7)[2004-04-04].http://search.cnki.net/ccnd/main-frame.asp?encode=gb&display=chinese.
+@article{liujiang2004,
+ author = {刘江},
+ title = {假如陈景润被量化考核},
+ journal = {新华每日电讯},
+ volume = {},
+ number = {7},
+ pages = {},
+ howpublished = {},
+ year = {2004},
+ month = {03-12},
+ note = {},
+ abstract = {},
+ keywords = {},
+ source = {},
+ TypeofLit = {N/OL},
+ country = {},
+ patentid = {},
+ date= {},
+ modifydate = {},
+ citedate = {2004-04-04},
+ url = {http://search.cnki.net/ccnd/main-frame.asp?encode=gb&display=chinese},
+ language = {Chinese},
+}
+
+
+%万锦坤.中国大学学报论文文摘(1983-1993)[DB/CD].英文版.北京:中国大百科全书出版社,1996.
+@book{wanjingkun1996,
+ AUTHOR = {},
+ editor = {万锦坤},
+ TITLE = {中国大学学报论文文摘(1983-1993)},
+ PUBLISHER = {中国大百科全书出版社},
+ YEAR = {1996},
+ address = {北京},
+ edition = {英文版},
+ TypeofLit = {DB/CD},
+ language = {Chinese},
+}
+
+
+%DAI Shu-sen, FEI He-liang, WANG Ling-ling, et al. Reliability Test and Statistical Analysis[M]. Beijing: National Defense Industrial Press, 1983. (in Chinese)
+@BOOK{dai1983,
+ AUTHOR = {DAI, Shu-sen and FEI, He-liang and WANG, Ling-ling and et al},
+ normalAUTHOR = {DAI, {Shu-sen} and FEI, {He-liang} and WANG, {Ling-ling} and et al},
+ TITLE = {Reliability Test and Statistical Analysis},
+ PUBLISHER = {National Defense Industrial Press},
+ YEAR = {1983},
+ address = {Beijing},
+ note = {(in Chinese)},
+}
diff --git a/macros/latex/contrib/uestcthesis/doc/contents/translation.tex b/macros/latex/contrib/uestcthesis/doc/contents/translation.tex
new file mode 100644
index 0000000000..be02d91589
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/contents/translation.tex
@@ -0,0 +1,27 @@
+% !Mode:: "TeX:UTF-8"
+
+\chapter{此名有诗意}
+\section{xxx}
+\subsection{xxx}
+\subsubsection{xxxx}
+\section{xxx}
+\subsection{xxx}
+\subsubsection{xxxx}
+英语单词“technology”来源于以字母$\tau\epsilon\chi\ldots\,$开头的希腊词根;并且这个希腊单词除了
+technology的意思外也有art的意思。因此,名称TEX是$\tau\epsilon\chi$的大写格式。
+
+在发音时,\TeX 的$\chi$的发音与希腊的chi一样,而不是“x”,所以\TeX 与blecchhh 押韵。“ch”
+听起来象苏格兰单词中的loch 或者德语单词中的ach;它在西班牙语中是“j”,在俄语中是“kh”。
+当你对着计算机正确读出时, 终端屏幕上可能有点雾。
+
+这个发音练习是提醒你,\TeX 主要处理的是高质量的专业书稿:它的重点在艺术和专业方
+面, 就象希腊单词的含义一样。如果你仅仅想得到一个过得去——可读下去但不那么漂亮——的
+文书, 那么简单的系统一般就够用了。使用\TeX 的目的是得到最好的质量;这就要在细节上花功
+夫, 但是你不会认为它难到哪里去,并且你会为所完成的作品感到特别骄傲。
+
+另一方面重要的是要注意到与\TeX 名称有关的另一件事: “E”是错位的。这个偏移“E”的标
+识提醒人们,\TeX 与排版有关,并且把\TeX 从其它系统的名称区别开来。实际上,TEX(读音为
+tecks)是Honeywell Information Systems 的极好的Text EXecutive处理器。因为这两个系统的
+名称读音差别很大,所以它们的拼写也不同。在计算机中表明\TeX 文件的正确方法,或者当所用
+的方式无法降低“E”时,就要写作“TeX”。这样, 就与类似的名称不会产生混淆, 并且为人们可以
+正确发音提供了条件。 \ No newline at end of file
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/Chrysanthemum.jpg b/macros/latex/contrib/uestcthesis/doc/pics/Chrysanthemum.jpg
new file mode 100644
index 0000000000..757c2a628d
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/Chrysanthemum.jpg
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/Penguins.jpg b/macros/latex/contrib/uestcthesis/doc/pics/Penguins.jpg
new file mode 100644
index 0000000000..030ab8a685
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/Penguins.jpg
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/Tulips.jpg b/macros/latex/contrib/uestcthesis/doc/pics/Tulips.jpg
new file mode 100644
index 0000000000..54c51eb6a8
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/Tulips.jpg
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/apk.png b/macros/latex/contrib/uestcthesis/doc/pics/apk.png
new file mode 100644
index 0000000000..628ff6a2c3
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/apk.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/excel.png b/macros/latex/contrib/uestcthesis/doc/pics/excel.png
new file mode 100644
index 0000000000..830c81b1c3
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/excel.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/fisher1.png b/macros/latex/contrib/uestcthesis/doc/pics/fisher1.png
new file mode 100644
index 0000000000..3f9bea0573
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/fisher1.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/fisher2.png b/macros/latex/contrib/uestcthesis/doc/pics/fisher2.png
new file mode 100644
index 0000000000..5a13290344
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/fisher2.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/flow1.png b/macros/latex/contrib/uestcthesis/doc/pics/flow1.png
new file mode 100644
index 0000000000..2bc1c7cefa
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/flow1.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/flow3.png b/macros/latex/contrib/uestcthesis/doc/pics/flow3.png
new file mode 100644
index 0000000000..e0d96a5b99
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/flow3.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/flow4.png b/macros/latex/contrib/uestcthesis/doc/pics/flow4.png
new file mode 100644
index 0000000000..ca09193080
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/flow4.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/flow5-1.png b/macros/latex/contrib/uestcthesis/doc/pics/flow5-1.png
new file mode 100644
index 0000000000..30ea14e766
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/flow5-1.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/flow5-2.png b/macros/latex/contrib/uestcthesis/doc/pics/flow5-2.png
new file mode 100644
index 0000000000..d0a6d55774
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/flow5-2.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/flow5-3.png b/macros/latex/contrib/uestcthesis/doc/pics/flow5-3.png
new file mode 100644
index 0000000000..08216d38b5
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/flow5-3.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/highlight1.png b/macros/latex/contrib/uestcthesis/doc/pics/highlight1.png
new file mode 100644
index 0000000000..33257ac6c3
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/highlight1.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/highlight2.png b/macros/latex/contrib/uestcthesis/doc/pics/highlight2.png
new file mode 100644
index 0000000000..d97b05aed4
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/highlight2.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/system.png b/macros/latex/contrib/uestcthesis/doc/pics/system.png
new file mode 100644
index 0000000000..9a299ab7be
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/system.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/pics/winedt.png b/macros/latex/contrib/uestcthesis/doc/pics/winedt.png
new file mode 100644
index 0000000000..c8caf45786
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/pics/winedt.png
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.pdf b/macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.pdf
new file mode 100644
index 0000000000..c8742ccde6
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.tex b/macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.tex
new file mode 100644
index 0000000000..81f0b37b45
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/doc/uestcthesis-doc.tex
@@ -0,0 +1,11 @@
+% !Mode:: "TeX:UTF-8"
+
+\documentclass[master,listoffigures,listoftables,english]{uestcthesis}
+\title{基于东拼西凑的电子科技大学毕业论文\LaTeX{}模板生成样例}
+\author{时富军}
+\date{2015}{2}{1}
+\begin{document}
+\include{chapters/tuition}
+\include{chapters/math}
+\include{chapters/implementation}
+\end{document}
diff --git a/macros/latex/contrib/uestcthesis/source/uestcthesis.dtx b/macros/latex/contrib/uestcthesis/source/uestcthesis.dtx
new file mode 100644
index 0000000000..d5a8773de0
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/source/uestcthesis.dtx
@@ -0,0 +1,5955 @@
+% ^^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
diff --git a/macros/latex/contrib/uestcthesis/source/uestcthesis.ins b/macros/latex/contrib/uestcthesis/source/uestcthesis.ins
new file mode 100644
index 0000000000..2e710260e0
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/source/uestcthesis.ins
@@ -0,0 +1,71 @@
+% !Mode:: "TeX:UTF-8:INS"
+
+%%% uestcthesis.ins
+%%% Copyright 2012-2013 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 and uestcthesis.ins
+%% and the derived file uestcthesis.cls, uestcthesis.bst and beamerthemeuestcthesis.sty.
+%% Other files in this work's package are belongs to the respective owners.
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+
+\usedir{tex/latex/uestcthesis}
+
+\preamble
+
+This is a generated file.
+
+ Copyright 2012-2013 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 the derived file uestcthesis.cls, uestcthesis.bst and beamerthemeuestcthesis.sty.
+ Other files in this work's package are belongs to the respective owners.
+
+\endpreamble
+
+\generate{\file{uestcthesis.cls}{\from{uestcthesis.dtx}{class}}}
+\generate{\file{uestcthesis.bst}{\from{uestcthesis.dtx}{bst}}}
+\generate{\file{beamerthemeuestcthesis.sty}{\from{uestcthesis.dtx}{beamer}}}
+\generate{\file{packagecheck.tex}{\from{uestcthesis.dtx}{packagecheck}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{*uestcthesis.cls uestcthesis.bst beamerthemeuestcthesis.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file uestcthesis.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/uestcthesis/uestcthesis.bst b/macros/latex/contrib/uestcthesis/uestcthesis.bst
new file mode 100644
index 0000000000..b00520ffb4
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/uestcthesis.bst
@@ -0,0 +1,3140 @@
+%%
+%% This is file `uestcthesis.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uestcthesis.dtx (with options: `bst')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2012-2013 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 the derived file uestcthesis.cls, uestcthesis.bst and beamerthemeuestcthesis.sty.
+%% Other files in this work's package are belongs to the respective owners.
+%%
+
+%%本文件基于吴凯制作的GBT7714-2005NLang.bst(1 Beta 2 测试版2012年9月20日)修改而成。
+%%修改内容包括将英文作者的名放前姓放后,设置行距。可与原始文件对比修改位置。
+%%根据GBT7714-2005NLang.bst中copyright的要求,将文件名修改成uestcthesis.bst。
+%%对吴凯的杰出工作表示感谢!
+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{upcase}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "u" change.case$ }
+ if$
+}
+%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%
+
+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$
+%%%%%%%%%%%
+%%%%%%%%%%%
+}
+
+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$
+%%%%%%%%%%%
+%%%%%%%%%%%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+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
+}
+
+{ 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
+}
+
+{ 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
+}
+
+{ 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
+}
+
+{ 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
+}
+
+{ 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$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+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
+}
+
+{ 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 {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
+}
+
+{ 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.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
+}
+
+{ 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.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.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
+}
+
+{ 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.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
+}
+
+{ 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
+}
+
+{ 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
+ format.date.modifydate.citedate output
+ }
+ { format.book.crossref output.nonnull
+ }
+ if$
+ new.block
+ format.url output
+ new.block
+ note output
+ fin.entry
+}
+
+{ 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
+ 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
+}
+
+{ 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$
+ }
+ {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$
+ }
+ {language empty$
+ {editor format.lab.names}
+ {editor format.lab.cnames}
+ if$}
+
+ if$
+ }
+ {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$
+ }
+ {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}
+
+\endinput
+%%
+%% End of file `uestcthesis.bst'.
diff --git a/macros/latex/contrib/uestcthesis/uestcthesis.cls b/macros/latex/contrib/uestcthesis/uestcthesis.cls
new file mode 100644
index 0000000000..b459de9aae
--- /dev/null
+++ b/macros/latex/contrib/uestcthesis/uestcthesis.cls
@@ -0,0 +1,1012 @@
+%%
+%% This is file `uestcthesis.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uestcthesis.dtx (with options: `class')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2012-2013 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 the derived file uestcthesis.cls, uestcthesis.bst and beamerthemeuestcthesis.sty.
+%% Other files in this work's package are belongs to the respective owners.
+%%
+
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\ProvidesClass{uestcthesis}
+ [2015/02/13 v1.1.0 UESTC thesis class]
+\LoadClass[cs4size,UTF8,fancyhdr,hyperref,fntef,openany]{ctexbook}[2011/03/11]
+\RequirePackage{mathptmx}
+\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}
+\renewcommand{\ttfamily}{\CTEX@save@ttfamily \CJKfamily {\CTEX@rm@family }}
+\RequirePackage{etoolbox}[2011/01/03]
+\RequirePackage{ifthen}
+\newcommand{\bachelor@uestcthesis}{
+\newcommand{\degree@uestcthesis}{bachelor}
+\newcommand{\multibibflag@uestcthesis}{}
+
+\newcommand{\thesisname@degree}{电子科技大学学士学位论文}
+
+\newcommand{\chapternumberformat@uestcthesis}{\arabic{chapter}}
+}
+\newcommand{\master@uestcthesis}{
+\newcommand{\degree@uestcthesis}{master}
+
+\newcommand{\multibibflag@uestcthesis}{TRUE}
+
+\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}}
+}
+\newcommand{\doctor@uestcthesis}{
+\newcommand{\degree@uestcthesis}{doctor}
+\newcommand{\doctortitlepage@uestcthesis}{}%先声明宏,稍后定义。
+\newcommand{\titlepage@degree}{\doctortitlepage@uestcthesis}
+
+\newcommand{\multibibflag@uestcthesis}{TRUE}
+
+\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}}
+}
+\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}{表目录}
+\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}
+}
+\DeclareOption{bachelor}{\bachelor@uestcthesis}
+\DeclareOption{master}{\master@uestcthesis}
+\DeclareOption{doctor}{\doctor@uestcthesis}
+\DeclareOption{english}{\english@uestcthesis}
+\DeclareOption{onlychapters}{
+\newcommand{\onlychapters@uestcthesis}{}
+}
+\DeclareOption{cv}{
+\newcommand{\usecv@uestcthesis}{\input{contents/cv.tex}}
+}
+\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 }}
+\newcommand{\insertlof}{}
+\newcommand{\insertlot}{}
+\DeclareOption{listoffigures}{\renewcommand{\insertlof}{%
+\clearpage{\pagestyle{empty}\cleardoublepage}
+\figureslistmatter
+\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
+\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}
+}
+\linespread{1.391}
+\parskip=0bp plus 10bp minus 1bp
+\raggedbottom
+\RequirePackage{graphicx,calc,float,texnames}
+\RequirePackage[format=hang,labelsep=space]{caption}
+\intextsep=6bp
+\textfloatsep=6bp
+\floatsep=6bp
+\captionsetup[figure]{aboveskip=0bp,belowskip=0bp}
+\captionsetup[table]{aboveskip=0bp,belowskip=6bp}
+\RequirePackage{booktabs,tabularx,threeparttable,longtable}
+\DeclareCaptionFont{capfont}{\zihao{5}}
+\captionsetup{font=capfont}
+\renewcommand{\thefigure}{\arabic{chapter}\textendash\arabic{figure}}
+\renewcommand{\thetable}{\arabic{chapter}\textendash\arabic{table}}
+\graphicspath{{pics/}}
+\RequirePackage[below]{placeins}
+\RequirePackage{flafter}
+\newcommand{\newcmds@uestcthesis}{
+\newcommand{\pic}[4][htbp]{
+\begin{figure}[##1]%
+\centering%
+ \includegraphics[##3]{##4}%
+ \caption{##2}%
+ \label{##4}%
+ \vspace{6bp}%
+\end{figure}%
+}
+\newcommand{\picB}[5][htbp]{
+\begin{figure}[##1]%
+\centering%
+ \includegraphics[##4]{##5}%
+ \caption[##2]{##3}%
+ \label{##5}%
+ \vspace{6bp}%
+\end{figure}%
+}
+\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
+\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个!!!}}}}}}}}}}}}}}}}}}}}}}
+\newcommand{\allsubpiccaptions}{%
+\subfigcaptionA\subfigcaptionB\subfigcaptionC\subfigcaptionD\subfigcaptionE%
+\subfigcaptionF\subfigcaptionG\subfigcaptionH\subfigcaptionI\subfigcaptionJ%
+\subfigcaptionK\subfigcaptionL\subfigcaptionM\subfigcaptionN\subfigcaptionO%
+\subfigcaptionP\subfigcaptionQ\subfigcaptionR\subfigcaptionS\subfigcaptionT}
+\newcommand{\subpiclabel}{}
+\newcommand{\subpiccaption}{}
+\newsavebox{\tempsubpiccaptionbox}
+\newlength{\tempsubpiccaptionindent}
+\newlength{\tempsubpiccaptionheadindent}
+\newlength{\tempsubpiccaptionwidth}
+\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~}%
+\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%
+}
+\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~}%
+\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%
+}
+\newcommand{\addsubpic}[3]{
+ \subfigure[##1]{\label{##3}\includegraphics[##2]{##3}}
+}
+\newcommand{\subpicnewpage}{%
+\end{center}%
+\end{figure}%
+\addtocounter{figure}{-1}%
+\begin{figure}[t]%
+\addtocounter{figure}{1}%
+\begin{center}%
+}%
+\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}
+}
+\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}
+}
+\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}
+}
+}
+\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}
+}
+}
+\newcommand{\pictable}[4][htbp]{
+\begin{table}[##1]
+\centering
+\caption{##2}
+\label{##4}
+\includegraphics[##3]{##4}
+\end{table}
+}
+\newcommand{\pictableB}[5][htbp]{
+\begin{table}[##1]
+\centering
+\caption[##2]{##3}
+\label{##5}
+\includegraphics[##4]{##5}
+\end{table}
+}
+}%\newcmds@uestcthesis定义完毕
+\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}%页码位于页面底端,居中打印。
+}
+\newcommand{\Cabstractfancy}{%
+\fancyhf{}%
+\fancyhead[C]{\zihao{5}摘要}%页眉居中打印“摘要”
+\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端,居中打印。
+}
+\newcommand{\Eabstractfancy}{
+\fancyhf{}%
+\fancyhead[C]{\zihao{5}ABSTRACT}%页眉居中打印“ABSTRACT”
+\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端,居中打印。
+}
+\newcommand{\tocmatterfancy}{
+\fancyhf{}
+\fancyhead[C]{\zihao{5}\tocname@uestcthesis}%页眉居中打印“目 录”
+\fancyfoot[C]{\zihao{-5}\thepage}%页码位于页面底端,居中打印。
+}
+\newcommand{\glossarymatterfancy}{%定义主要符号表版式设置
+\fancyhf{}
+\fancyhead[C]{\zihao{5}\glossaryname@uestcthesis}%
+\fancyfoot[C]{\zihao{-5}\thepage}%
+}
+\newcommand{\acronymnamematterfancy}{%定义缩略词表版式设置
+\fancyhf{}
+\fancyhead[C]{\zihao{5}\acronymname@uestcthesis}%
+\fancyfoot[C]{\zihao{-5}\thepage}%
+}
+\newcommand{\Cabstractmatter}{
+\setcounter{page}{1}%页码重置为1
+\pagenumbering{Roman}%页码使用大写罗马数字
+\pagestyle{fancy}
+\Cabstractfancy
+\fancypagestyle{plain}{\Cabstractfancy}
+}
+\newcommand{\Eabstractmatter}{
+\pagestyle{fancy}
+\Eabstractfancy
+\fancypagestyle{plain}{\Eabstractfancy}
+}
+\newcommand{\tocmatter}{
+\pagestyle{fancy}
+\tocmatterfancy
+\fancypagestyle{plain}{\tocmatterfancy}
+}
+\renewcommand{\mainmatter}{
+\newpage
+\setcounter{page}{1}
+\pagenumbering{arabic}
+\pagestyle{fancy}
+\chaptermarkfix@uestcthesis %修正页眉章号显示不正确
+\mainmatterfancy%设置正文的版式
+\fancypagestyle{plain}{\mainmatterfancy}
+}
+\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}
+}
+\setcounter{secnumdepth}{3}
+\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}
+}
+\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}
+}
+\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}
+}
+\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}
+}
+\newenvironment{Cabstract}[5]{
+\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元信息中加入关键字
+}
+\chapter*{摘\enspace 要}%插入不带章号的摘要
+}
+{\\[3mm]%摘要后换行空出3mm
+{\textbf{关键词:}}\parbox[t]{378.59134pt}{\@ckeywords}%插入关键词
+}
+\newenvironment{Eabstract}[5]{
+\newcommand{\@ekeywords}{
+\ifthenelse{\equal{#1}{}}{必选关键词}{#1}%
+\ifthenelse{\equal{#2}{}}{必选关键词}{, #2}%
+\ifthenelse{\equal{#3}{}}{必选关键词}{, #3}%
+\ifthenelse{\equal{#4}{}}{}{, #4}%
+\ifthenelse{\equal{#5}{}}{}{, #5}%
+}
+\Eabstractmatter%设置英文摘要版式
+\chapter*{\bf ABSTRACT}%插入不带章号的ABSTRACT
+}
+{\\[3mm]%摘要后换行空出3mm
+{\bf Keywords:\nbs}\parbox[t]{367.97586pt}{\@ekeywords}%插入关键词
+}
+\CTEXoptions[contentsname={\protect\heiti\protect\zihao{-3}\contentsname@uestcthesis}]
+\setcounter{tocdepth}{3}
+\def\@dotsep{2}
+\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}
+\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}}
+}
+\RequirePackage{amsmath,amsfonts,amssymb,bm}
+\renewcommand{\theequation}{\arabic{chapter}\textendash\arabic{equation}}
+\RequirePackage[amsmath,thmmarks]{ntheorem}
+\theorembodyfont{\normalfont}%字体
+\theoremheaderfont{\normalfont \bfseries \hspace*{2em}}%设置缩进
+\theoremseparator{\enskip}%分隔符是一个空格
+\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}
+\theoremstyle{nonumberplain}
+\theoremsymbol{■}
+\newtheorem{zhengming}{证明}
+\def\endzhengming{\quad\@endtheorem}
+\RequirePackage[numbers,sort&compress]{natbib}
+
+\newcommand{\citeup}[1]{\textsuperscript{\cite{#1}}}
+\ifblank{\multibibflag@uestcthesis}{}{
+\RequirePackage[resetlabels]{multibib}
+\newcites{publications}{NULL}
+\bibliographystylepublications{uestcthesis}
+\nocitepublications{*}
+\def\bibliographypublications#1{\let \temp@auxout \@auxout \let \addtocontents
+\mb@addtocontents \let \@auxout \@auxoutpublications \let \jobname
+\@auxoutpublicationsname \bibliography {#1}}
+}
+\renewcommand*\CTEXsetfont{%
+ \begingroup
+ \settowidth\ccwd{\CTEX@spaceChar\CJKglue}%
+ \edef\x{\noexpand\ccwd\the\ccwd}%
+ \expandafter\endgroup\x
+ \ifdim\parindent=0pt\else\parindent2\ccwd\fi}
+\RequirePackage[hang,perpage]{footmisc}
+\setlength{\footnotemargin}{5.2mm}
+\renewcommand{\footnoterule}{\vfill\noindent
+\vspace*{0.9mm}\hspace{7.4mm}\rule{5.05cm}{0.02cm}\vspace*{2.6pt}}
+\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}}
+\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}
+\renewcommand{\date}[3]{
+\renewcommand{\@date}{#1年#2月#3日}
+\def\@year{#1}%用于pdf元信息
+}
+\date{}{}{}%设置默认空置,避免v1.0.1版本前编写的源代码无法直接编译。
+\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
+\RequirePackage[small]{subfigure}
+\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}
+\RequirePackage{color,marvosym}
+\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}
+\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}
+\newcommand{\fuhao}[3]{%
+\newglossaryentry{#3}{name={#1},description={#2},sort=#3}%
+}
+\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}%
+}
+\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}%
+}
+ \renewacronymstyle{long-short}%
+ {%
+ \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}
+
+\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}%目录之后另起一页,这样无论目录后有没有主要符号表,主要符号表的页眉设置命令都会应用到下一页。
+\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环境里声明才能在正文中使用,所以只能放在这里了。
+\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}
+\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
+}
+\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
+\ifdefstring{\degree@uestcthesis}{bachelor}{
+
+\gdef\thechapter{\@arabic \c@chapter}
+
+\CTEXsetup[ name={,},
+ number={}
+ ]{chapter}
+
+\setcounter{chapter}{0}
+
+\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
+}
+
+\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}}
+
+\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}
+
+\include{contents/translation}
+}
+{
+\ifdef{\usecv@uestcthesis}{\usecv@uestcthesis}{
+\IfFileExists{contents/publications.bib}{%如果删除了publications.bib,则不显示这一章
+\CTEXoptions[ bibname={\publicationsname@degree}]%设置攻博/硕期间发表的论文章题目
+\phantomsection%手动添加目录项之前需要这个命令,用以更新目录超链接的跳转页码。
+\addcontentsline{toc}{chapter}{\publicationsname@degree}%将攻博/硕期间发表的论文编入目录
+{\zihao{5}%
+\def\footnotehint{}%
+\bibliographypublications{contents/publications}%插入攻博/硕期间发表的论文
+}}{}
+}
+}
+\clearpage\end{CJK}}
+}%这是大括号是前面onlychapters选项的ifdef命令的一部分。
+
+\endinput
+%%
+%% End of file `uestcthesis.cls'.