summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/seuthesis
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/seuthesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/seuthesis')
-rw-r--r--macros/latex/contrib/seuthesis/Makefile74
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/A3cover.tex17
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/A4cover.tex21
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/a3cover.bat9
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/a3cover.sh11
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/a4cover.bat10
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/a4cover.sh10
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/bookspine_hor.tex27
-rw-r--r--macros/latex/contrib/seuthesis/a3cover/bookspine_ver.tex11
-rw-r--r--macros/latex/contrib/seuthesis/figures/back-cover.pngbin0 -> 314214 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/doctor-hwzs.pdfbin0 -> 4238 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/doctor.pngbin0 -> 47619 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/engineering.pngbin0 -> 17429 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/front-cover.jpgbin0 -> 222140 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/master-hwzs.pdfbin0 -> 4224 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/master.pngbin0 -> 64042 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/seu-badge-logo.eps437
-rw-r--r--macros/latex/contrib/seuthesis/figures/seu-badge-logo.pdfbin0 -> 11836 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/seu-color-logo.pngbin0 -> 331850 bytes
-rw-r--r--macros/latex/contrib/seuthesis/figures/seu-text-logo.eps334
-rw-r--r--macros/latex/contrib/seuthesis/figures/seu-text-logo.pngbin0 -> 15416 bytes
-rw-r--r--macros/latex/contrib/seuthesis/sample-bachelor.pdfbin0 -> 140068 bytes
-rw-r--r--macros/latex/contrib/seuthesis/sample-doctor.pdfbin0 -> 972682 bytes
-rw-r--r--macros/latex/contrib/seuthesis/sample-master.pdfbin0 -> 986681 bytes
-rw-r--r--macros/latex/contrib/seuthesis/sample.tex77
-rw-r--r--macros/latex/contrib/seuthesis/seuthesis.bib64
-rw-r--r--macros/latex/contrib/seuthesis/seuthesis.bst3552
-rw-r--r--macros/latex/contrib/seuthesis/seuthesis.dtx1794
-rw-r--r--macros/latex/contrib/seuthesis/seuthesis.ind102
-rw-r--r--macros/latex/contrib/seuthesis/seuthesis.ins66
-rw-r--r--macros/latex/contrib/seuthesis/seuthesis.pdfbin0 -> 1363624 bytes
-rw-r--r--macros/latex/contrib/seuthesis/zharticle/scrsize9pt.clo156
-rw-r--r--macros/latex/contrib/seuthesis/zharticle/zharticle.bst3551
-rw-r--r--macros/latex/contrib/seuthesis/zharticle/zharticle.cfg41
-rw-r--r--macros/latex/contrib/seuthesis/zharticle/zharticle.cls223
35 files changed, 10587 insertions, 0 deletions
diff --git a/macros/latex/contrib/seuthesis/Makefile b/macros/latex/contrib/seuthesis/Makefile
new file mode 100644
index 0000000000..e9e4e5a66f
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/Makefile
@@ -0,0 +1,74 @@
+#
+# Copyright (C) 2007 by Xu Yuan <xuyuan.cn@gmail.com>
+# $Id$
+#
+# This file is part of the SEU-Thesis package project.
+# ---------------------------------------------------
+#
+# This file may be distributed and/or modified under the
+# conditions of the LaTeX Project Public License, either version 1.3a
+# 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.3a or later is part of all distributions of LaTeX
+# version 2004/10/01 or later.
+#
+
+PACKAGE=seuthesis
+SRC=${PACKAGE}.ins ${PACKAGE}.dtx
+
+MAIN=main
+MAIN_SRC=${MAIN}.tex content/*.tex content/reference.bib
+
+all: package
+
+main: main.pdf
+
+sample: sample.pdf
+
+package: ${PACKAGE}.pdf
+
+clean:
+ rm -f *.aux *.log *.toc *.ind *.inx *.gls *.glo *.idx *.ilg *.out *.bak *.bbl *.brf *.blg *.dvi *.ps
+
+distclean: clean
+ rm -f *.cls *.cfg
+
+${PACKAGE}.cls: ${SRC}
+ rm -f ${PACKAGE}.cls ${PACKAGE}-gbk.cfg ${PACKAGE}-utf8.cfg
+ latex ${PACKAGE}.ins
+ iconv -f utf8 -t gbk ${PACKAGE}-utf8.cfg > ${PACKAGE}-gbk.cfg
+
+${PACKAGE}.idx: ${PACKAGE}.dtx
+ xelatex ${PACKAGE}.dtx
+
+${PACKAGE}.bbl: ${PACKAGE}.dtx ${PACKAGE}.bib
+ xelatex ${PACKAGE}.dtx
+ bibtex ${PACKAGE}
+
+${PACKAGE}.ind: ${PACKAGE}.idx
+ makeindex -s gind ${PACKAGE}
+# makeindex -s gglo -o ${PACKAGE}.gls ${PACKAGE}.glo
+
+${PACKAGE}.pdf: ${PACKAGE}.dtx ${PACKAGE}.cls ${PACKAGE}.ind ${PACKAGE}.bbl
+ xelatex ${PACKAGE}.dtx
+ xelatex ${PACKAGE}.dtx
+
+sample.bbl: seuthesis.bib sample.tex
+ xelatex sample
+ bibtex sample
+
+sample.pdf: sample.tex ${PACKAGE}.cls sample.bbl
+ xelatex sample
+ xelatex sample
+
+# rules of making main (my thesis)
+main.bbl: main.tex content/reference.bib
+ xelatex main
+ bibtex -min-crossrefs=9000 main
+
+main.pdf: ${MAIN_SRC} ${PACKAGE}.cls main.bbl
+ xelatex main
+ xelatex main \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/a3cover/A3cover.tex b/macros/latex/contrib/seuthesis/a3cover/A3cover.tex
new file mode 100644
index 0000000000..85054ee8f8
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/A3cover.tex
@@ -0,0 +1,17 @@
+\documentclass{article}
+
+\usepackage[a3paper, landscape]{geometry}
+\usepackage{graphicx}
+\usepackage{pdfpages}
+
+\pagestyle{empty}
+
+\begin{document}
+
+\includepdf[nup=2x1, noautoscale, delta=14 0, pages={last-last, 1}, pagecommand={%
+\begin{picture}(0,0)(-395,612.2)%
+\includegraphics{bookspine_res.pdf}%
+\end{picture}%
+}]{../seuthesis.pdf}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/a3cover/A4cover.tex b/macros/latex/contrib/seuthesis/a3cover/A4cover.tex
new file mode 100644
index 0000000000..5a6335a2bd
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/A4cover.tex
@@ -0,0 +1,21 @@
+\documentclass{article}
+
+\usepackage[a4paper]{geometry}
+\usepackage{graphicx}
+\usepackage{pdfpages}
+
+\pagestyle{empty}
+
+\newcommand{\mainfile}{../main.pdf}
+
+\begin{document}
+
+\includepdf[nup=1x1, noautoscale, pages={last-last}, pagecommand={%
+\begin{picture}(0,0)(-470,612.2)%
+\includegraphics{bookspine_res.pdf}%
+\end{picture}%
+}]{\mainfile}
+\newpage
+\includepdf[nup=1x1, noautoscale, page={1}, offset=-14 0]{\mainfile}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/a3cover/a3cover.bat b/macros/latex/contrib/seuthesis/a3cover/a3cover.bat
new file mode 100644
index 0000000000..a863f40098
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/a3cover.bat
@@ -0,0 +1,9 @@
+pdflatex -interaction=nonstopmode bookspine_hor.tex
+pdflatex -interaction=nonstopmode bookspine_ver.tex
+pdfcrop --margins 2 --clip bookspine_ver.pdf bookspine_res.pdf
+pdflatex -interaction=nonstopmode A3cover.tex
+
+rm *.aux *.log
+
+rm bookspine_hor.pdf
+rm bookspine_ver.pdf
diff --git a/macros/latex/contrib/seuthesis/a3cover/a3cover.sh b/macros/latex/contrib/seuthesis/a3cover/a3cover.sh
new file mode 100644
index 0000000000..63e26bca6c
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/a3cover.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+pdflatex -interaction=nonstopmode bookspine_hor.tex
+pdflatex -interaction=nonstopmode bookspine_ver.tex
+pdfcrop --margins 2 --clip bookspine_ver.pdf bookspine_res.pdf
+pdflatex -interaction=nonstopmode A3cover.tex
+
+rm *.aux *.log
+
+rm bookspine_hor.pdf
+rm bookspine_ver.pdf
diff --git a/macros/latex/contrib/seuthesis/a3cover/a4cover.bat b/macros/latex/contrib/seuthesis/a3cover/a4cover.bat
new file mode 100644
index 0000000000..331220f70d
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/a4cover.bat
@@ -0,0 +1,10 @@
+pdflatex -interaction=nonstopmode bookspine_hor.tex
+pdflatex -interaction=nonstopmode bookspine_ver.tex
+pdfcrop --margins 2 --clip bookspine_ver.pdf bookspine_res.pdf
+pdflatex -interaction=nonstopmode A4cover.tex
+
+rm *.aux
+
+rm bookspine_hor.pdf
+rm bookspine_ver.pdf
+rm *.log
diff --git a/macros/latex/contrib/seuthesis/a3cover/a4cover.sh b/macros/latex/contrib/seuthesis/a3cover/a4cover.sh
new file mode 100644
index 0000000000..ae23189b82
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/a4cover.sh
@@ -0,0 +1,10 @@
+pdflatex -interaction=nonstopmode bookspine_hor.tex
+pdflatex -interaction=nonstopmode bookspine_ver.tex
+pdfcrop --margins 2 --clip bookspine_ver.pdf bookspine_res.pdf
+pdflatex -interaction=nonstopmode A4cover.tex
+
+rm *.aux
+
+rm bookspine_hor.pdf
+rm bookspine_ver.pdf
+rm *.log
diff --git a/macros/latex/contrib/seuthesis/a3cover/bookspine_hor.tex b/macros/latex/contrib/seuthesis/a3cover/bookspine_hor.tex
new file mode 100644
index 0000000000..895eaeaab5
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/bookspine_hor.tex
@@ -0,0 +1,27 @@
+\documentclass{article}
+
+\renewcommand{\rmdefault}{ptm}
+
+\usepackage[a3paper, hmargin=4cm, vmargin=2cm]{geometry}
+\usepackage{graphicx}
+\usepackage{CJKutf8, CJKspace}
+\usepackage[usebaselinestretch]{CJKvert}
+
+
+\pagestyle{empty}
+
+\renewcommand{\CJKglue}{\hskip 3pt plus 0.08\baselineskip}% 修改字间距
+\newcommand{\shujitext}[2]{%
+\begin{CJK*}{UTF8}{hei}
+\CJKvert\CJKtilde\fontsize{12pt}{14pt}\selectfont% 小四号黑体
+#1 \hfill #2\hspace{3.5cm}东南大学
+\end{CJK*}
+}
+
+\newcommand{\sjlatin}[1]{\raisebox{.5em}{#1}}
+
+\begin{document}
+
+\shujitext{\sjlatin{SEUTHESIS} 宏包 \sjlatin{(}\sjlatin{1.2} 版\sjlatin{)} \sjlatin{--} 东南大学学位论文 \sjlatin{\LaTeX{}} 模板}{许~~元}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/a3cover/bookspine_ver.tex b/macros/latex/contrib/seuthesis/a3cover/bookspine_ver.tex
new file mode 100644
index 0000000000..487627dacc
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/a3cover/bookspine_ver.tex
@@ -0,0 +1,11 @@
+\documentclass{article}
+
+\usepackage[a3paper, landscape, margin=0pt]{geometry}
+\usepackage{graphicx}
+\usepackage{pdfpages}
+
+\pagestyle{empty}
+
+\begin{document}
+\includepdf[nup=1x1, noautoscale, angle=270]{bookspine_hor.pdf}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/figures/back-cover.png b/macros/latex/contrib/seuthesis/figures/back-cover.png
new file mode 100644
index 0000000000..5da5b7280a
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/back-cover.png
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/doctor-hwzs.pdf b/macros/latex/contrib/seuthesis/figures/doctor-hwzs.pdf
new file mode 100644
index 0000000000..ec93e7bfd9
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/doctor-hwzs.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/doctor.png b/macros/latex/contrib/seuthesis/figures/doctor.png
new file mode 100644
index 0000000000..996e0c8c66
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/doctor.png
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/engineering.png b/macros/latex/contrib/seuthesis/figures/engineering.png
new file mode 100644
index 0000000000..01da7aeaff
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/engineering.png
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/front-cover.jpg b/macros/latex/contrib/seuthesis/figures/front-cover.jpg
new file mode 100644
index 0000000000..9268dba3d5
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/front-cover.jpg
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/master-hwzs.pdf b/macros/latex/contrib/seuthesis/figures/master-hwzs.pdf
new file mode 100644
index 0000000000..528dc9ee31
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/master-hwzs.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/master.png b/macros/latex/contrib/seuthesis/figures/master.png
new file mode 100644
index 0000000000..a1a60f307d
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/master.png
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/seu-badge-logo.eps b/macros/latex/contrib/seuthesis/figures/seu-badge-logo.eps
new file mode 100644
index 0000000000..2fa9439e29
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/seu-badge-logo.eps
@@ -0,0 +1,437 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: WMF2EPS 1.32 : WMF->EPS conversion for seu.wmf
+%%Creator: PScript5.dll Version 5.2.2
+%%CreationDate: 10/7/2007 16:53:2
+%%For: i386
+%%BoundingBox: 56 56 176 174
+%%Pages: 1
+%%Orientation: Portrait
+%%PageOrder: Ascend
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentData: Clean7Bit
+%%TargetDevice: (WMF2EPS Color PS) (2010.0) 2
+%%LanguageLevel: 2
+%%EndComments
+
+%%BeginDefaults
+%%PageBoundingBox: 0 0 176 175
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+
+%%BeginProlog
+%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
+/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
+setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
+ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
+def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
+rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
+/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
+typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
+def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
+exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def
+/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
+{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint}
+readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop
+(-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def
+/filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- )
+tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup
+xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
+tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck
+{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
+tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup
+rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
+forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier
+/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
+$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
+ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
+lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
+/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
+(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt
+$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
+repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname
+=print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end
+end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
+where{pop/setpacking where{pop oldpack setpacking}if}if
+%%EndResource
+userdict /Pscript_WinNT_Incr 230 dict dup begin put
+%%BeginResource: file Pscript_FatalError 5.0 0
+userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
+length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
+{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
+/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
+cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
+%%EndResource
+userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
+(This job requires more memory than is available in this printer.)100 500
+(Try one or more of the following, and then print again:)100 485
+(For the output format, choose Optimize For Portability.)115 470
+(In the Device Settings page, make sure the Available PostScript Memory is accurate.)
+115 455(Reduce the number of fonts in the document.)115 440
+(Print the document in parts.)115 425 12/Times-Roman[/STSong-Light--GBK-EUC-H
+dup{findfont}stopped{cleartomark}{/FontName get eq{pop cleartomark[
+<b8c3cec4bcfed0e8d2aad3c3b5c4c4dab4e6ccabb6e0a1a3c4fabfc9d2d4cad4d3c3c8e7cfc2b5
+c4b7bdb7a8d4d9b4f2d3a1a3ba>100 500<d4daa1b0506f7374536372697074a1b1b6d4bbb0bf
+f2a3acd1a1d4f1a1b0506f7374536372697074a3a8b6d4b1e3d0afcabd41445343b5c4d3c5bbafa
+3a9a1b1a1a3>115 485<d4daa1b0c9e8b1b8d1a1cfeea1b1b6d4bbb0bff2a3aca1b0bfc9d3c3b
+4f2d3a1bbfac4dab4e6a1b1b5c4d6b5cac7beabc8b7b5c4a1a3>115 470<d4dacec4bcfed6d0c
+9d9d3c3bcb8d6d6d7d6cce5a1a3>115 455<b5a5b6c0b4f2d3a1b8c3cec4bcfeb5c4b2bbcdacb
+2bfb7d6bbf2d2b3a1a3>115 440 10 0/STSong-Light--GBK-EUC-H}{cleartomark}ifelse}
+ifelse showpage(%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}if}
+bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg get
+def}ifelse
+%%BeginResource: file Pscript_Win_Basic 5.0 0
+/d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^
+/index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/-
+/rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true ,
+d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C
+/closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M
+/rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d
+/Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage
+, d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop
+languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow ,
+d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld
+/lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix
+currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit
+counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b
+/initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~
+d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put
+/ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq
+{exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U `
+/lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped
+{cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat}
+{!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~
+itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5
+ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform
+nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ -
+neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0
+- 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool
+2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e
+{DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b
+/freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont
+{findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1
+dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d
+E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1
+^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2
+16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !}
+bind d
+%%EndResource
+%%BeginResource: file Pscript_Win_Utils_L2 5.0 0
+/rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge
+{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $
+snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F
+setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d
+/colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b
+/resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}?
+not{/ColorRendering<</GetHalftoneName{currenthalftone @/HalftoneName known{
+/HalftoneName get}{!/none}?}bn/GetPageDeviceName{currentpagedevice @
+/PageDeviceName known{/PageDeviceName get @ null eq{!/none}if}{!/none}?}bn
+/GetSubstituteCRD{!/DefaultColorRendering/ColorRendering resourcestatus{! !
+/DefaultColorRendering}{(DefaultColorRendering*){cvn exit}127 string
+/ColorRendering resourceforall}?}bn>>/defineresource where{!/ProcSet
+defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource `
+mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)
+GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5
+-1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub
+getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~
+/ColorRendering defineresource !}b/findcolorrendering where{!}{
+/findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{
+/ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}?
+/selectcolorrendering{findcolorrendering !/ColorRendering findresource
+setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get
+`}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d
+/G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{
+/GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d
+/AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d
+E}bind d
+%%EndResource
+end
+%%EndProlog
+
+%%BeginSetup
+[ 1 0 0 1 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec
+1 setlinecap 1 setlinejoin
+/mysetup [ 72 600 V 0 0 -72 600 V 0 174.61418 ] def
+%%EndSetup
+
+%%Page: 1 1
+%%PageBoundingBox: 0 0 176 175
+%%EndPageComments
+%%BeginPageSetup
+/DeviceRGB dup setcolorspace /colspABC exch def
+mysetup concat colspRefresh
+%%EndPageSetup
+
+Pscript_WinNT_Incr begin
+%%BeginResource: file Pscript_Win_Dib_L2 5.0 0
+/iw 0 d/ih 0 d/im_save 0 d/s 0 d/polarity 0 d/smoothflag 0 d/mystring 0 d/bpc 0
+d/maskcolor 0 d/mask? F d/setup1asciiproc{[currentfile mystring/readhexstring
+cvx/! cvx]cvx bind}b/setup1binaryproc{[currentfile mystring/readstring cvx/!
+cvx]cvx bind}b/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode
+filter}b/setup2binaryproc{currentfile/RunLengthDecode filter}b/jpegasciiproc
+{currentfile/ASCII85Decode filter<</Relax 1>>/DCTDecode filter}b/jpegbinaryproc
+{currentfile<</Relax 1>>/DCTDecode filter}b/mycolorspace{colspABC}d/myimagedict
+{/myimagedict 10 dict d myimagedict @ `/ImageType 1 d/MultipleDataSource F d E}
+b/imageprocarray[/setup1binaryproc/setup1asciiproc/setup2binaryproc
+/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc]d/jpegprocarray[
+/jpegasciiproc/jpegbinaryproc]d/Q{/im_save save d scol imageprocarray ~ get/s ~
+, d/polarity ~ d/smoothflag ~ d +/dx 2 ^ d/dy 1 ^ d +S/mystring ~ string d/bpc
+~ d/ih ~ d/iw ~ d fx rf}b/X{/im_save save d/mask? ~ d/maskcolor ~ d
+imageprocarray ~ get/s ~ , d/polarity ~ d/smoothflag ~ d +/dx 2 ^ d/dy 1 ^ d +S
+/mystring ~ string d/bpc ~ d/ih ~ d/iw ~ d}b/Z{im_save restore}b/beginjpeg{
+/jpeg_save save d jpegprocarray ~ get/jpegimageproc ~ , d + +S/bpc ~ d/ih ~ d
+/iw ~ d bpc 24 eq{/DeviceRGB}{/DeviceGray}? setcolorspace myimagedict @ `
+/ImageType 1 d/Width iw d/Height ih d/Decode bpc 24 eq{[0 1 0 1 0 1]}{[0 1]}? d
+/ImageMatrix[iw 0 0 ih 0 0]d/BitsPerComponent 8 d/DataSource jpegimageproc d E
+image}b/endjpeg{jpeg_save restore}b/Y{scol myimagedict @ ` mask?{/polarity
+maskcolor 0 get 0 eq{T}{F}? d}if/Width iw d/Height ih d/Decode polarity{[1 0]}{
+[0 1]}? d/ImageMatrix[iw 0 0 ih 0 0]d/DataSource s d/BitsPerComponent 1 d
+/Interpolate smoothflag d E imagemask}bd/doclutimage{/rgbclut ~ d bpc @ 8 eq{!
+255}{@ 4 eq{! 15}{2 eq{3}{1}?}?}?/hival ~ d[/Indexed currentcolorspace hival
+rgbclut]setcolorspace myimagedict @ ` mask?{/ImageType 4 d/MaskColor maskcolor
+d}if/Width iw d/Height ih d/Decode[0 hival]d/ImageMatrix[iw 0 0 ih 0 0]d
+/DataSource s d/BitsPerComponent bpc d/Interpolate smoothflag d E image}b
+/doCMYKclutimage{/CMYKclut ~ d bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ d[
+/Indexed/DeviceCMYK hival CMYKclut]setcolorspace myimagedict @ ` mask?{
+/ImageType 4 d/MaskColor maskcolor d}if/Width iw d/Height ih d/Decode[0 hival]d
+/ImageMatrix[iw 0 0 ih 0 0]d/DataSource s d/BitsPerComponent bpc d/Interpolate
+smoothflag d E image}b/doNimage{bpc 24 eq{currentcolorspace}{colspA}?
+setcolorspace myimagedict @ ` mask?{/ImageType 4 d/MaskColor maskcolor d}if
+/Width iw d/Height ih d/Decode bpc 24 eq{[0 1 0 1 0 1]}{[0 1]}? d/ImageMatrix
+[iw 0 0 ih 0 0]d/DataSource s d/BitsPerComponent bpc 24 eq{8}{bpc}? d
+/Interpolate smoothflag d E image}b/doCMYKimage{/DeviceCMYK setcolorspace
+myimagedict @ ` mask?{/ImageType 4 d/MaskColor maskcolor d}if/Width iw d/Height
+ih d/Decode[0 1 0 1 0 1 0 1]d/ImageMatrix[iw 0 0 ih 0 0]d/DataSource s d
+/BitsPerComponent 8 d/Interpolate smoothflag d E image}b
+%%EndResource
+end reinitialize
+: 156 154 8 156 976 -963 481 974 F F 3 [ 0 ] F
+X
+<
+000000 FFFFFF F1F1F1 EAEAEA E3E3E3 CCCCCC B2B2B2 969696
+777777 555555 333333 222222 040404 0C0C0C 393939 5F5F5F
+868686 999999 C0C0C0 D7D7D7 DDDDDD 292929 161616 1C1C1C
+424242 666666 A0A0A4 4D4D4D 808080 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+000000 000000 000000 000000 000000 000000 000000 000000
+>
+doclutimage
+JH=j5JH=j5JH=j5JH=j5JH=j5JH=j5JH=j5JH=j5JH=j5JH=j5_#aQ;#Qk25"pYD?$4He@#n77P
+%hK<c'*JF;!l+iV!=/`/'GCZ^#o+6U%0$e:(',3er>5GKrseu:#8[^X&-`dN"2k5^!>kkP"U55B
+((:Wg$OR@\%iGo`&K1il"r\*R&.]Wb(_.8g(C^ch)]T%c"9QXFbQ.kK'G:W]$i^YD$P!I\#6khE
+!sB;Orrr<5rricD'EeL@"U5MU)\*\a%0[(V&J>3Jb5olh%K[7J%i#Nh$4.7J"Tnl2r<E9?r=T#6
+r=T&JrWWB9'E81C"VD"H'c%5c)&`Y[blQ/l#m1AL%Lj0\)$^fS"9B,Rrt55KrrrQ<',1TL"9&B%
+!sA`@"VM%<)ZLBY)?g6X"pYYR%2Kd#&d$A[dK(!a)@mPl(Cq)j";D%O#9!dZ"V_%;!<E<9pAkO5
+*#\t^!<X#KrrrH8rs&N:rtG_O&/uAo$5j$Md/h_t$3LJ=$OmIL&ekHQrt#;;&ebBLrW*!#rW*'=
+%KuP-"V_1G#7(S6"pG)1"9fDVrt#MM!ttkV((Cur&d$M_ec?9_&d]?`$P3ID":#e_"V_(9!<NEB
+#6+]*%gE+1!<<3$!s8]E&-i.?!!N9%&-;qJ&dK9m!sB5S(C^`i'*?\bf)Z<p)&E\h*"rAf#T3gL
+"8Ms&!ZDFW'EJ==p&P9t'*\pPrW<-%q>g^$'F#'ZrrWH/)&<Yh&-LJaf`;K_&IT!`)&!&b#T3dI
+pAt6p!YH7^rrE-<&GH20":,JH)[-<:!WN3/"qM7J!YPeT%13^LfE'_-$j%(K$l0cp!YZ+N&d%b-
+$N^M<"qhab!W`N6"nhs#":,AP&Hht4!Ybb=rW3$3rr`N1)&a1k"qLYB!=0Cm!Sd\`"<%XW$3pYI
+)B8q_q>pTu!!<*"%fukG&/Y]e!Y?7O!sAZ-!r`3)&d8C?"r[R@!=Ar8)$L*D'+"m]*<-*J)B8qa
+'F5'T%L*$i!T!hb!YZFe(C:6I"qV[UqZ-a"'GCEW!#5D5!<`Z-"q;O[()[;Y"U5MU'+kEMrrE34
+(`F(f!s/T/"T8?%!X8Q-"UG>9"Vh[M!<<i6#6tkD"rJ*`&/<n#hZ4&d"re!Y&-N.K#8@%:#o!RV
+"r[^a%M/dB!<rW:)\3o*%K?q<&H<UN&-`U]"oeT/'G1N^!u(qN"oA<+!X9MR'EeXN#6"W*!YP_V
+rtGVS$PjT`!o<t9!=AoI$5OQb!sSu7"8i0*"r.CU)A3\r"T/9$";CeJ!>,\=&-3.DrrN38#lb>7
+&-Mq5"r%:J'*8gMq#LU2#S7+Cru(kOquI--)@$lW&IK9j"p3Z_i;j5e&.99l',1Z`'D__7'Gq,X
+!<Nr;rrE0'&d%t3"TfPQ"<.jN!<EB4rsT/J&ci[P)]&_]pAk@/"pYe@#QFu/&d/(5$3ChF)?^ZZ
+(((r]huVg<!<X5>(Bk?a&eG6Mp]1a8'cI)c)[?HG#7^q7!='2S'H./V'G(-N!#be=#8.4P)%Qud
+!r;p('+kQk)%d#a&-_q3!Yc4Ort>MQ((1?Ki;qs>#m1\R$P<LG&/#'=!=Jr>&-3CL&cr(P)[-$=
+!='29"9/E')A`8[!>cCK!<iN,'+u2sq>gp+)A!5p"pbA7'Ee14#Qk8B"U#)H(D,O+j8fPh#n77H
+!sT;M!qcQt&ek?J!s8K'!<WK$!<rW/'G;<($Mt57%N5r_!ri<$!r;p&!X&]B#S7+?p&P<u&eGZX
+&H<LH*!5.$jT,Vh#n77T!u_^RjoGPc"9o/3#m2%M"pt,7#n7CV)$pfb&d&44!<E6+rt5A>&-DG(
+"9fbX!XJ`@!$(#"joG_j%h/mM!u_^QklD%k";;=W)&a.irW*$5(B+^C(DcuY!=K#0!=/c2#7h[a
+'E\F:!<j/W"p5bJnGrb,*!QH_rtYVH!p'IG!=/fG%1<dN)A!#9!<rZ?)Aren"8`*"!X\i7!u;+I
+%K6b:&-Db1"p>,J#R1qErrN-$!Y,G:nGrn0*!QHL()I2WjoOZH#Ql%_$O-\O&-D2!"p,JO#93pM
+p]1C"%K?h>%1a-V)#apE$PW=:#o"9`)A3/S!tQ"4!=/fJ"p,>O$Q9*0!U0Uc!tkP@";(_S&-D5"
+!WiK/rs&Q;!qu]r":kD>!=K,3!<E`JrsSr<)$9R6"9Si5&JG*X!!;Qh#S\6k!sfYL"p3uhl2_.l
+"pu+W"<%gRr;d!&&dB$B!<iQ0#8%+@p&P3r&.SXJ!YuXUrrE-7)u^6H$O6;*!<Wu7&HNLGp&P<u
+'+kH^!r`3*'H@_g)&=.pkQ0uM#Qb/H()[5Z&-Vq4"U#AD'aYNI!<a#?&J>0;!<E?2rX8fB"oSH&
+"rI:J!Y#G=o`50t"q_(SpAkF3)\rkm#5nQ''-.#U!soDS'^5Ya!=&`F('tWe&/4sB!<rr2$igh6
+!<`K:#8..1!<N<?%K?h<((^QG!<N?0%K?h;$PDt2"9\o?"p4T$!"o2=!Y$"MrW*9+&eG]h%MfTX
+l2g5P#6G,G$5+!`')M\1#7^Y@!"8W(!tuXm'_)2)"r7+G!=f80!<E?>rX8fH'Cu5-!YYeM"8W#u
+&H*"<%g;h3"9Jc4";1YA!>5J"!UKgl&doK\":#,4qZ-^%$iUP7$2X`*&f_MdnGrXn$2t>6('aU9
+!<O/<$j%1U!qH?o"9o,FqZ-^1(B4dE%0lt4!=&]=)?Uid%M\40m/[Fo(_%>b)A*)J!<iQ:(CUce
+r;d$&)A!P`n,WOp(]FgD)Zog9!<a5<$iphAnGr^n&dT-J!<E6+rsf&7"Sr-('F,6b(_$`PliHJS
+"qV1M'G:WbpAk<t"9SN&!s9,?"Rc?l"W74I!>ZCD!<<`2$j$kD"7Q<n'+b?LqZ-ZupAkI2#8@@M
+%2/".mK!M*()Ikl#6sYu!sB2@"7H6l!tYq@$iq=LpAk9t)#apE$O6&#!u):N!q?9k!rj/A!sf>C
+"76-X!=&Z4%1`OF#6ODr!!N<6!!DWi!>6.H$ip\<p&P3r"r@1H!>u%/!<WH9"p=Ar#6Y8E":bkP
+!q$*X!<NH@$i^k@&/=X8!!E65!!;Qh!<a;>$j%1_!qcQp":tJ?!Z)%Bmf<Ln&-`4+!<s/A"9oVL
+'CGnj!<rZD%1iRQ#4V]r!YGY=mK!@j"rI7I!=9J4!<N<8$iUP8)\h]@!X'&=nGrjr#6k8:%2f69
+!Up*o#8RX\"V:e+!<Ni<"76*i'H@#[!=K,&!<NB0%K?h<%1r[0!<NrH'(Gu,'F5Bc((1cD!V$0p
+'Gq8k!ZVjC!<NH:"76*j!XB26$ipV:nGrY'$N:G7'bp$9!YYhQnH&Y."9KGM)$B@/nGrh!(Ch,l
+*!5[3!X0PWli@,#$iUP8%MJ73!WioKrX8cHli@/##QsVu"p5_G"W%mdn,`(\"r&!c)?LE`nc8do
+&/+:0!#b_D!>Q.6)$(QirX8fC'C>f&!X92;nc8q!&-EdZ)$9=/nc8n4(Ch)k#k@uu!XAo3li@+j
+%K$Y%%K$V7&*s;u":#/%!<rT9";2IW'(H"o!<rZ;$jQkP"S)Qp&dJR+!<E6=rX8fC$0rH/(&eUB
+('aL6!!<'!!!<*"!YZ+Znc8q!#6YnR&-DD'o)SgqrtPV>&eG-9!<NB8')_h2!r`3#!r`3#!r`6"
+!r`3$&InaK!t>bT"9/H&!W<*#!ri9$!r`9%!r`3&!Ws>KrX8fE"9&<,'F"[B"p5hK!riE')@$?G
+"9AQ.#6OW#rrW3$"p,;<"r8$ZncA@`"p5hS#Qu+NrW*!$rt>A7q>g[""r[UB!=&]1!>?(Z!X/N9
+"9J`2&d848!>Gn?$j@@N#T40VrrE*)rYYhW!W`HErtu(J!W`u?)%[_rrsSoD#Q=`)";1Y;$O@FN
+&H`p`'*o9j&H;b4";):@!<EfIrrE*$ru(tR)\s@_!V?Bs',VMi'F4g@!<`H.#RM+B!rW-$'*f3K
+!<WrG":"l;$kjTb)$L3^)AE2R#S$eB"q:hB((:NRrrE*,rX8o?!Wa2UrsT/@!W`HA$k<jarX8f;
+'E8(C":#2M(`Wbm!<X5E)$UBF!<NH;"Si'#":u1IrrE<,)$C0R)$KO3oDo.#()mo!"p4f*%MTf_
+#7hIL"VLk;!X9PEr;dN4&eG*W"rS$a"<%IG"r[RE&f(BS"qD:N((:NRrrE*0rX8o?!Wa2IrsT2A
+!W`HA$jm.X%K?h>('jsB"TK&A&/c#`&HN"H#94<dr;cs%&JFp@!!E66!>GV8!<E9-rt5AJ$52q2
+o`57!#RqaV*#&;P%20W\"re0U"W7CC'*f6L!>5M>&/5?f)%mei&I&@O)?p<T%K?hA((gQO((:N_
+rrN0-rX8o?"9T5PrsT2M"9K2G$k<pb$N:G>$5*@R&.oHc&H<=E!>GbNrrrHBquHj3&Hr"4!s/W=
+!rW-)!YQ%Y%h0EYoE"Uc"qqIS"qhLNrrE<*&eG0L)[?<C"V:\9"q^q7!<a&I#6YtF#6bbG&K)8q
+rt#59)@QNQ#9*aG"r7U`$3(kC(]FgC(&ndF(_-KR!#GSF"pl(S$3^GKrX8f:)?0g="p#VRrrrT0
+!sK8Jrs&TF'*A.6!WioGrrEE.!<NH:&cr(:!ri9*'G(BY()[8I!VHHt"r8-k&I&=9!<E<,rr`T6
+&-E%R!<`rJqZ.91"V_"P&ekBM&d8==&d8me%K?h;()$WJ!<sA=$j$kH%JU>3%K$V;%MJjF)#apF
+$O.=F"p"rHrrrN;";:_=!#bb?!!<*"#6l(K!>5VJ)u^-F#S.(<!<rWE&dA[X"nVih!<rT:%2f9R
+"o86+!YGn[&/5-X&-D5"!WioKrX8fF!ri9$'DWOH&c!=F&c<ON"r%+>&e4jL!Y#YRrr`B,)AN2S
+!<NB'"9BDTrrW6&r;d?0*"r>e)[?uZ&dAmd')hn8&dK*i%0lG*p&P@#)]'(i&JY$A#6P,B'EJ:@
+''oW"&e=mL!=KS@!<ElPrsJfAr!NK>rsJfArsJfArsJfArsJfArX/iH"9AT8rX8lE)?Ks>!r;rt
+!r2it&I/7:!<rW)!<`H+";:k:!<r]=!sf>U"8)]g!<WuC$53@C!!;lq!!<0$!X'ABm/[7j#S$bA
+!=&]+!<El@kmRS3"TJK'"W..H!?2^>!<`N2!s&Js!<rZF&fMQ*"SDfh!<iZ9)ZpZVo)Sjr&aTN!
+"rI7I!>kt=!<rT>&d8mO')i(7&dSXR"VLtO"VM"<&d&:M'*A17!<Wo3$ipS7m/[5*'_DD+!riH,
+&e5]ko`=df"p,>F)$CNTquQg!q>gU7'^Yo%'FFaI!YttArW*'&)@uiSrtteBrtthV$2k_C%iYiS
+)$LNf%N#`ZrW*$5%fQk;'a<t*!<s/-!<j)J"<.a^o`=df"p,)I#87[`rW*3)&fM>d'*A.6!<Wl"
+!<N<@%K?h<%2f<I!<iN;(^q/brXohU$jm1O"VM[^%h]$Y"rdsi&d&%5!WirLrX8fF"7?0k";q:5
+!<s/K";qX[!qlZh!<N?<$i^D3)?Tp>!s/ZE)ug`V%h\sD!<EfEm/[5$%fQk;'b^BE"9So<(D?]J
+!sK)M'`J+7&.JpE!<`NC$j["6!<Ei?rX8iE&d%J%!=o;.!<N?:!ri9*'H.Vr((UK?!VZTu'FbB_
+"rdIA!X0/Lrr`E:&-rsL!<E`EmK!=i&H3(>(*!GR!<`K1$l9QU!<WK6(^0g=!Y?+brW*-))%7Ab
+quHj#)@QNQ!=8hq!<EE<q#LO"&JP0F"p5bV"q(b?p&Xmg!tl"Z"9/T)!<Ec6r;d*()A3)P#m0Mq
+!<j;=$iq1Kq>g^$)%7;orW**)$lB]X!<NfA#lXi-";qUc"T&3$":ktA$ipeAmK!=l&GQ8,&dJ=9
+"W@RX$5Nd<!VZTu)@QoT)A<#M!=&](!<a&>!Wru$!<E6.rX8iE#6O`&"9]SN(D?]J!sK)M"TAE'
+&/H/_!<`NC$lK0D!<EB>rX8f;"7H6k!tYD4!<WE'!<`K=&dAU?!<jAG":>SOp&Xmg"V;+\'H.Ya
+!<EE<quHp5'*/aPmK!=m(B+^C#o*19"9TMM(D?]J!sK)M'`J+7&.JpE!<`NC$lK3E!<N?@(B4dD
+%0u;%!so#0')rgL$3(hD)\3MZ!WN?+!uMFNp&Xmg"V2@['+krX!=K#I)$U`g"q_OM"qg;)!<`o3
+$ip_?p]1L#)%78urX]/L$k!sQ*!6HV%1<%O!u24^"Si'!&dnUH!>Q=;!=0PG!>5nS&I&F='*&UC
+!<j)S":5MLp&Xmg"W/!e"VCk8!<E?CrtbkI)&!&P#86J+!>$%H$j$kU!r)cs"<%4J":Z+U((L9P
+r!iZ7r=/c8!>u%8!<E`IrsSo;)=IS/&/#!H"o\T'!<E6-rW*0+)AF%u*;0F-!<ifH"qh.BquHp%
+"9eo0rW*$;'^u,("Vq"F!Xf2HrWE6(!rW-#!YXf2!>5J3!<<3$"9K8@(&eUB$PMq0!<sJ<!<EfF
+rW*0:&JG]k&,$%u!<EQErt5;:o)Sk&"7ZBn!uVRJ$j%1`$i^tE(D[f$r;d6.&/Z?')]0M2)]8So
+";i'p)]8SorttbT!##/0!u_Ub(B53M$j$kE"7ZBm&dS%0"U#D@#8RgC!VZTq((:-T!!i)r!=o;&
+!<EB4rX9,@"q_(P#71bB&et?H$5=?m$Pa$a$Pa$arsS`>!"8c@!Xf_Ir;d$('F,*[rYbbRrX8f8
+)Y!h/"W[.8"To>L&JbcJ!VZTt$k!^]#P.rs%g);&!YbqMrsSoD#5eK)"pl+S#QFf+!YQFG#Q,,;
+#7q+O#8%XK!<iN9%iZAhrW*$4(]FgD)\_cC!>HFD!<iQ;&fMPqp&Xmg":PYO&dSC:!!;lq!=o;(
+!<N<-(]FgD%g)Y0"9T;@)%$9C!sAf>)>jsF$4ct@#Sd[]%LE[N'E\:8"ToJV&/#'C!<=#:$j%4M
+!qQEn"<$h4"TeoA)A`hU!VZTt$k!^]#Q=`('`S7<";:qP"9&<%)$9C1!<j>>$iq.Jp]1F#'a+C8
+";D%O#n-J9"UbVJ"p>#+!<NlM#5S?$'+=dJ!=f;)!<`NC!<NE$!<E6(rrE9)#8.4W%/'_r!<`f=
+'+tQL!=08T%g`aa%hKES!<E]5oDo!q&/P6R!>#>-!<N?2#5\E)!YbhM#n-\?"Vr$g"qq(7!<O,G
+"Sr-"!YG>>!YuaXoDo*u)$'jP&H<"6)?:HN!<iN0&fMPpp&Xmg":PYO&dSC:!ZDUgrs&K9"U>56
+!=o8(!<EfJrX8f7'_VP/#RLS.!=8fA&eG?d#R1qEp]1Eu'bL-@!>H%C$iq(UoDo+0)$'jO)?1!A
+)$($IrrE9)&J>uu%/'_r!<a/G"VM(>!<El:quHs8"p=r;"8)Zr";q[K$j$kV!qlWr'++s;!<<6%
+'EA7.!<NfI"S`!!!ZDOJ$j$kU"SDcu'*nU@'E846'EJg\rrE9*&Hra_$haVq!<EuErt5;:rW*!#
+qZ-j&&ek?W"82`s!X9G>$ipYKo`5-r&/Z,F!<NE4)YO14":>&9!>bt5!<EfEpAk6qrrE9+&HrCT
+%e]qt!<j2S"qh.BrrE*$qZ-j("p4lD"SMis";q+H!Z)INoDo%.%iGN8!<NB@&+or)!X9J?$ipY;
+p&P0u)Y=%6'G1ui(('[8pAkF7()det"9/B*"9eoB',(<W!#5G6!>#n<!<E6,rX8i;#QsVu"9fV[
+'E[Y&!u)%\"S;]q!u_%G!?)%6!<EE<oDo+/)AF%u*;0F-!<iuL#6b\BrrE?,)$_&a&d/:8!<F)C
+pAk:.$iUP8%MJ73";2Xk"Tn/o"9K2H)\_cC!>5b=$ip\<pAk:4'`S46!rrDu!<j)S":kqRp&Xmg
+"UGPT'H.Yb!<E69p]1C!&GQ8,!ZCtG!Yu=Kmf<S)#oFQp!qZKs!Yc4c)&)N@!WruLrX8c<pAkI)
+!W`uR&-i+8quHs*)?Uoe#5/)l!<j&E%g3d`oDnsp&,6/+&e4gK!?2^>!<s2W%M&aW!r)d#!X0JQ
+(^C34!<E?@rX8fD'DVY;!XSl0)@%,s&cr4@"9&?$"p4u<$kr=8pAkF%$lB'b#4hir#m0r(!<X;?
+$ip_SlN%4l"rRmW#8..:!=&cH#TFTd&d%J%!WiTCrX8fF!r;p+'*nUA"p#DE&-ERV"TAE*)?pi^
+('O=3pAkF3%13dR)Y3t1#S[%8!='D?$j$kK"R,pj"9o/A)\`/N"p5/>$4mgPlN%&$)\)fU!>cCF
+!=TkN!>G_=!Y>kV!>,G6!<E9@rrrN4$3Tu&pAkI#$Pa9Y)?TO3!<s/5!<EiDrX8fB''92s)@Zud
+r;d$'%i5KQkQ(]&(]OmF%3#EH!=ThK!>>_O!YPtI!tYP6!<rZF"U>hS"82ci!<rWF(D.8u"TAE&
+',(3D"9\f-"<%+<!WiWCrsSrE#Qj,h!sTPG!rN'#',V;D!<N?6%K?h;(D6QG"9T/9!<`?8"Tec2
+)]8kZ!<r]>";qX[!qlZh!<rT2%1!(K"o\N')$Bj=#6GPE"p+f9"8r6$&f(BS!>Q=1!=KSZ#nR7A
+!<a;Y%he"*!>64J$iq1Zr;cp3&H)V0!ri9'!u)CMrW*39&H`=J"p4K!pAkI""q1e?&JG'D$kWUD
+"V;.O)\<)P)@$0A!WrrBrsSo;&`Wlu!YcOl#6l%W'EdCs!>u@H$iq+Tr;cp)"nVg"!X9PH%Mf`N
+!VQNu',D&])?p9C!=TYZ$5F'U"9AT+!>HFN!<EcKrX8c9ru:qD%hAsW#nI=Q#nI=Q#nI=Q$3(P0
+)#tNR$32%C)=@e+&-3XXrX8f7')qt8!uV1A!qlX!"<%mW$Q'$>!VQNu";hLb&fLoQ!<WB6"p=]&
+"To;L!>?EW$j@(X!s&TErrN36!qu^"'*eX[%1!(/!VQNu!uqaU":#,1!<N<@'_qb5!YP_?&/MJY
+#SdOG*"r>S)$K[7"qh.D#n7(?o`=ae#6G)=#o!UW!ri9&"U>2+!<X#U"q%OB#n7aV#6Y&/%hSm=
+!<<3$"p5JF'a=41o`571$5EaX)?^!?!Wiu;q#LKu#5f>C%iGlq%iGoX)$1<d&-!LJ%iP<V!"&T7
+!"&B1q[!6ArWrQDp^-=,r>5VS%h\pC!X98D'*Jp^!rW-('G(rj((UQ?!VHHt";qX["<8*K!<rW-
+!<j#K!q$-s"9Sc/"9Sc/"9\Z,!!E6(!!E0&!>G\:'F"[S";CtQ"TK/9"TK/9"TK/:',:EZ!#5GH
+!#5GH!#5DG!#5>E!!WB9$lTZk!>5D8*#T:o)&)uM#6G&?";qXR!qZNd!=&ZE('tZ[&d%e."VM"?
+!u_BI!<N<7#6+`-#mV+V)?0mB#mLJ2!<rTD"qh7X'(Z.r!<s/H$O.7U"8Ms'":#DS!s'#>'X.TE
+&dJO?'+l*!#SI(;!YH%HrrE<,)$CN\%g;J)oDo-u#Rq=J#S[(9$N^ML#mM(H!<O/D!q?9n!u_aR
+pAk<s"9Rfg!s0)R"Rc@$!u_@F!<WB;"qM1L"U5Y>!<s/A'Ftrk!qQHa!<jAX%MK$OrW*9,"9f;G
+)&!&PrrN9''*e^4!=9DB)B02#!>?(JqZ-a$&-W"6!!<*"!s0/L'Dqk4"9eo*!<a)@&I9'>!<NlF
+"8i0(!Ws&Q'aFg?!<rTC'G;2l'(Q(p!<s5E%2o9S"9/B+!YH.b'F#6N!<rZ2!W`KD"7uU0"W7pk
+)&!#Q%i#-H!u(b;!tQ%G"pu@L!<`NF$Om^I!<WH1'b^HG#QbVD'H%,X'E[n-!YbkCq#UKs!>5S8
+!<r]5!sf>A!qHB_!<i]D)\`JgrW*'6&d&(6#n[:R#T*aH!Y>S-!<j,S#nI1DrsoSO!<NHF"9obS
+"T\f4(_ciK!X9#OrW***$5j!E!=&]2)&3Jq)$KU5"9TPS!<W9'q>gU!!ri9*!Z;[U$P`m9!V-6q
+"W.[Q!tPP6!=f25!<NH2(_75n!W`uH"nM`u"W/0k"U+f*$j7F[!tlIZ#6Ou0)$g'?!>u7E!<WH9
+)&)fH!sTS\!qQEt&eG-G&eG6LpAkI2#QbPG%g2>&nc8pr&/H2e"pb)-"p>SD%iY]SquHj'#6a`$
+"p+r@&.SmGr;d<0&-`gS%i$#s!<NfMquHg3$i^5/";1h9!<El9rW**')@$uJ!<s2W'*/d["TJPu
+!<E6>rt>GK$O6)$nGrgt%LiUE)&3&N";;Xl&-Vh1!s0AG!qu^#',V],$Q''LrW*H1"qh+H%M]QY
+!<O/Y"8r6%!Ykk7!<EH1rW*-8&.&mMo`57"*"i8S"r%";!<r`'!<s/J!Y>eI"7Q?]!=&Z;()R,d
+&-Dk4!s8c@!rE#s!W`iNp]1[&*#KS3$6'ie"9/B-!YbbU)%d_t'`S1B&fUrT'En[\(E!et!rW-#
+)&rPU"p,DK)A3\bp]1U%#9!UE)As1f!X&`4!u(n:!<E<Crt>GA(C'=/n,W_,$4IgT&/+sC!<`K#
+!=&Z1'ES@J"p4W%!!<0=#8%g`#S@@T!rW-3'G(l]#T=<X&e5'H'En[P(DZre$lK9R!W`H:!X9PU
+'EnF?rt#/Eq>gs*#8%"<!YQ@])?piS!W`H/r;lp:"9TMN%g28$n,Waq#8RXL"V:h2!=/`2)\<)P
+'G(KE!=8f2&/u?%&dJaJquI3E"r%[T)$pc[&ci%7rrNH9&J>Zd$60-KrrNN0#oOQj)%Quj'aFO9
+!!<04!!E6%rrN3(&cW.?'*/.='E/"7"U>_SrtbYJmK)bW"9T,C#Qt)Fp]1^')B/nb"p4l?&-hq2
+#Qk_Y)\32n%1)k4"qhLN!Ws)KrrrH*quI$>&ci%J&J>0E!=&]6)$q6%#9!OS!!N3#!s/]>"T&3%
+!tl+NrY#22#6G,7!uh[e!q$*W!<s/G$PF-Y')DV<!ZDmf!s0,S!<NrH"p4Z&#S[da$Q0Qk&et<G
+!>Ge=%flk:rW3$#qZ-^.'`J.5!rW-%":H(Ort#5L(_ccI!!E65!!N)u"Tef<'cI/Q!<r`?!s]SL
+"RQ6W!<sDM)[$?M"8i0&!XB2@')hn4)$Bm>!u):b!rN'&!Yc1R#R'u)"p5JE)\iV[p]1C5'_h\7
+',_#f*"NAd"oJB$"9/T+"82`s!Y>G4!<Ei=rriH2$l\I5m/[Fp'c%bk&K1`M!=8oI%MAjJ&d/7?
+r;d!&&.o'B!<NEA#P\<&!XAl3'))D-%i"a=#6P/B#nRd^')hn8!Yc1a!Wi<&p]1Bs"9&<+!tb_?
+#n71BliHGR#6kqY"r%U]!ri9-!X9PE!<i]B!<W6$"p+f,&I/sNr;d!5%M8d;!<<2n!<EB+p&PR(
+&dK!e)%luO!YQIWrrE3'#8.14!=&Z1#6PMR'bfm6li@@o#RqUa&dK'OrrE9*"qq%P"8i0*!YY\;
+!X92K"TJK)!YQ%JgAqWq&/l/n'EJmP*!Q9A":u%T"Vg_4#QbVM'F"m[)?T4*lN%5()\s:o"pY;1
+!<WE.&d8(4!s9GG!ri9('+c&c!nRGW!tc(Y!<No6#64l(!<NlD'E87;&d849quI$9&/#-c()[8?
+!UBal!YPhV&-Nm`!r`3%'G:QG!<WH/'E\77"9Jc4)ALg)#Qb\B!YZI`&d%q2#QkP@!<a#R"pFl*
+#6YSB'H%Z*'BoP_!<E97rsJrJ":#M?p&P4.&H_t5#SR=B!>?@V"pEQZ";;[Y"pF]%!=0SB!<NlG
+"TAE-!tYY=&/PZd!pKaM!=&`I(((ZW#8-Y1!Yc1Yrr`B/%hemC"TeiG#9!a$!=AlB&I/LR!W`B,
+!rE!"&etKJ!<E6(rW*9,&/kW_(CM,_kQ0lJ#8A$k$3^PD)Ya=9!X/cA&cW.<"r.":"Tno4*![/9
+!<E6*rt#59'*A17!YZF_q>g["$3gY2!=/`<)?U0O(D$]3!TsIg'+#*X'EeXZq#L^%"qhIW&/,-A
+!<rT>&f_bn"6KUg'G22o&d/:7!<WEB$3^2+!XK_Jr;d0*&/kW`$Pj!MjoOTF#87RV%KmIW&c)M/
+":5#H!>5M4!=8f2)AE5R!Ws,KrttkM'*@S&"p5#?%iGQSrrW#t!Wr`?q>gX0'E\77#QkVV!sK&A
+%g1nojT,W$$4RIZ":#M@quHm6(_?fG!<E<.rrrK9'E%q?!X&]5#nIRO&ekEL"9/E2!s/Q-'G:u`
+%g`d["8i0$!YQ1E!<Nl@'D;G4":uIR&do-T!osCC!=0>K$k<FD#8%+;!<E68p]1Bs'`S18&fLoK
+!<`K.)A!e^&-!LL#6khCr;cm"rr`9%!YcLaquHd"rtte<p]1X6&-`4@$OmUJirS0@#S\*b%MAm_
+#8?\0!!<0'!ttnF"T/<#!rrDf!<NB8')qt7"rIRJquHm4)[6EA!=8f?&-`7L$PjT^iW8$>#nn6n
+$5s$O#8.+3!=';N#T3pc)?Tj<"9K2I&d%_,!!<-5!>GV6!=/`>"p"f2)$U9B!<`N2)&!)M!=8i4
+&/#*W$PsZ`i;qm<#nn0l'bD&l#9!^>!=&ZG)]8nd&d/"3!tknE!qlWr!X8o/"oo>7!=/`<!>HC`
+"VLn8!<<3$&c`"3!<NrI#QGG?)&EYl"5j4<!<ElSrtbhV',2#`');P2!XTMA!WN5u!<WB-%i"[;
+!YcIbrrE07"p4]'#6khS#mCD8'`A(4!rW-,!X8lJ!tknU$5!Bt!T*nb";(tV(^:'T#9!aA!<NiG
+"TK)7!rE!#!Y?4No`5+,%Kl_3!X',MquI';#8%gT!<s/>q#Lg:#8%RN#7;4`"p3W^h>muc&f;&m
+#Qth[&/#'B!<`N<"q_LE!<Nr@#P8#u"UYA3!<<3$')Vb9!Y>YM!<NH<"T&3-!sT;@";;Xh()[8W
+h#Z=4!Wj&ArtY\U&cr7:&-*FB!<WB+'Ee76";CkM%gMY,!Yc"FrW3$3qZ-a&%MSjCrr`0"$N^JO
+&JG6b%LidX"PWt3!=Ju6'atHU'E\sc#6a`$"Tf59&fVMV!<N<;"o\N'"U=l*!s9)H!r2j)'G(NR
+!sK2O$lBTYg&]n.!WiKBrs\u9)ZKmA"pkkDp]1X%#7qCb'GCWOp&P12#6"W)&dAF9!WE/t!=T#D
+*"NY`":tqM('aon!S7>]&e5Zd(^:*E"pkMK!s89!"9K5T#SQh3#m(VT"9AQ.&JP<A!=])4"WSBm
+!X')M%2KHfecF>&%g3+E((CQS'ESIV&/#ZZ!pfpi'G;&]o`5-r";;">#RLY:'+k]`(Dm>YeH+/#
+&/-#n((D3$'*ACC*#]Fn"9RQ`&-<OL&eQ)q'EeRE%Lj3k&HpP`dfBgX"V;Ld$k<gQ'Ef'K#6c"M
+&d8C>l2^qf'F"L@%1s-`&d/jP#SdaU)\Ee3!RUoW!X/f8$OdCR&-`gO&fUc^rYbqE&ebBM!r)d"
+!Ws,?&dJ=Rrt,YD"ToDB*#f\''c@o(cN2;l!u)XZ%fZtC'aY-a"ToGBrs&H@rt589!"o)5!>,S:
+&cWdL"p#>?rr`ZA&K)Dn%2Tim"pE0ObQ.hK&fMVprs];O%LECQ&ekEN'GL-P&d8p_!sB8A#8nHf
+(C_,s#R1qDb5o`d&cr1>"rnHq$l0Wo$5a9Z&/k`crrr?7rt5kI&J,fd(^^We%1EUN&/#WYa8s<^
+#m(23'*\^]$OmOE%K@4D(]"O>(]P6N%K?hA()7>k&ebBL`<!jWrrW3&#SRgU#S.ae(DcrX#n7XX
+$6'io)A32Q!rrD=!J(:5!J(:5!J(:5!J(:5!J(:5!J(:5!J(:5!J(:5!J(:5!<~> Z
+; LH
+%%PageTrailer
+
+%%Trailer
+%%DocumentNeededResources:
+%%DocumentSuppliedResources:
+%%+ procset Pscript_WinNT_ErrorHandler 5.0 0
+%%+ procset Pscript_FatalError 5.0 0
+%%+ procset Pscript_Win_Basic 5.0 0
+%%+ procset Pscript_Win_Utils_L2 5.0 0
+%%+ procset Pscript_Win_Dib_L2 5.0 0
+Pscript_WinNT_Incr dup /terminate get exec
+%%EOF
diff --git a/macros/latex/contrib/seuthesis/figures/seu-badge-logo.pdf b/macros/latex/contrib/seuthesis/figures/seu-badge-logo.pdf
new file mode 100644
index 0000000000..ce823eed55
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/seu-badge-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/seu-color-logo.png b/macros/latex/contrib/seuthesis/figures/seu-color-logo.png
new file mode 100644
index 0000000000..b611e8bbd4
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/seu-color-logo.png
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/figures/seu-text-logo.eps b/macros/latex/contrib/seuthesis/figures/seu-text-logo.eps
new file mode 100644
index 0000000000..29947fefef
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/seu-text-logo.eps
@@ -0,0 +1,334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%CreationDate: Thu Nov 29 23:33:50 2007
+%%LanguageLevel: 3
+%%BoundingBox: 0 0 578 170
+%%EndComments
+/mt { moveto } def
+/ct { curveto } def
+/lt { lineto } def
+/np { newpath } def
+/cp { closepath } def
+/sc { setrgbcolor } def
+/er { fill } def
+/lw { setlinewidth } def
+np
+0.0 170.0 mt
+578.0 170.0 lt
+578.0 0.0 lt
+0.0 0.0 lt
+0.0 84.8 lt
+5.2 76.3 10.1 67.7 14.1 58.6 ct
+22.8 60.1 31.3 62.0 39.9 64.0 ct
+38.4 57.7 38.4 50.3 33.6 45.5 ct
+23.9 35.5 11.7 28.1 2.6 17.5 ct
+16.3 21.0 26.7 31.2 37.7 39.4 ct
+37.9 31.9 38.0 24.4 38.0 16.9 ct
+32.5 17.1 26.9 17.2 21.4 17.3 ct
+27.9 11.9 35.0 7.0 42.9 3.8 ct
+45.1 2.9 47.8 4.3 48.2 6.6 ct
+50.1 21.9 48.0 37.4 49.5 52.7 ct
+54.9 60.8 63.2 66.4 69.0 74.1 ct
+77.5 84.9 89.6 92.2 98.2 102.7 ct
+98.9 107.3 96.2 111.8 95.2 116.2 ct
+80.8 115.6 67.6 109.8 53.5 107.8 ct
+53.3 111.2 53.1 114.6 52.9 118.0 ct
+55.8 118.5 58.6 118.9 61.4 119.4 ct
+59.5 123.3 57.3 127.0 55.6 130.9 ct
+54.2 138.7 54.1 146.6 53.0 154.5 ct
+52.7 157.1 49.8 158.6 47.4 158.4 ct
+43.0 158.1 38.7 157.4 34.4 156.9 ct
+37.0 152.5 40.8 148.4 40.8 142.9 ct
+40.8 137.7 42.8 130.8 38.6 126.5 ct
+32.1 124.6 25.2 123.7 18.5 122.3 ct
+21.5 119.2 24.5 116.0 27.4 112.8 ct
+32.7 113.7 37.9 115.0 43.1 116.1 ct
+42.1 111.6 41.8 105.5 37.0 103.1 ct
+29.4 99.3 20.7 98.8 12.5 97.1 ct
+16.5 95.4 20.5 91.7 25.2 92.9 ct
+30.7 94.2 36.1 96.1 41.7 96.9 ct
+37.1 89.0 29.8 82.7 20.8 80.5 ct
+13.8 82.8 7.1 85.9 0.0 88.1 ct
+0.0 170.0 lt
+cp
+0.996 0.996 0.996 sc
+er
+np
+514.4 169.9 mt
+518.4 168.1 521.6 165.0 521.9 160.1 ct
+525.8 161.5 529.7 163.0 533.8 164.1 ct
+527.7 156.9 518.7 151.9 515.5 142.6 ct
+513.4 139.6 515.2 134.9 518.9 135.1 ct
+525.6 139.1 531.0 145.3 538.2 148.7 ct
+542.3 150.6 546.9 151.0 551.3 152.0 ct
+556.5 144.8 553.2 136.0 553.3 128.0 ct
+553.8 117.6 549.7 108.0 547.6 98.0 ct
+554.8 97.9 562.1 99.6 569.2 98.0 ct
+572.9 96.9 578.3 92.1 574.8 88.2 ct
+566.3 81.5 555.9 77.7 545.6 75.0 ct
+551.5 80.8 558.5 85.7 562.8 93.0 ct
+558.0 94.0 552.8 97.2 548.0 95.0 ct
+544.0 91.1 543.8 84.7 539.8 80.7 ct
+535.7 82.2 534.1 86.5 531.4 89.6 ct
+527.7 91.9 523.5 89.2 519.8 88.5 ct
+514.9 87.0 509.5 89.5 505.0 86.9 ct
+498.2 82.0 489.3 85.1 481.7 83.4 ct
+480.4 97.6 479.0 112.0 475.9 126.0 ct
+477.3 126.0 478.7 126.0 480.1 126.0 ct
+483.4 119.7 488.6 113.7 488.7 106.2 ct
+488.7 100.0 488.9 93.8 489.1 87.7 ct
+491.1 88.4 493.1 89.1 495.1 89.9 ct
+493.4 100.8 490.6 111.7 491.3 122.9 ct
+492.1 129.0 493.9 134.9 495.7 140.9 ct
+497.2 138.6 499.9 136.4 499.4 133.4 ct
+498.2 127.0 497.0 120.5 497.0 114.0 ct
+497.2 110.0 500.7 107.4 502.3 104.0 ct
+503.3 100.2 503.8 96.3 504.9 92.5 ct
+506.9 92.5 508.8 92.6 510.7 92.8 ct
+509.4 99.6 507.3 106.5 508.7 113.5 ct
+509.2 118.2 511.7 122.6 510.9 127.4 ct
+508.1 141.6 512.2 155.9 514.4 169.9 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+47.4 158.4 mt
+49.8 158.6 52.7 157.1 53.0 154.5 ct
+54.1 146.6 54.2 138.7 55.6 130.9 ct
+57.3 127.0 59.5 123.3 61.4 119.4 ct
+58.6 118.9 55.8 118.5 52.9 118.0 ct
+53.1 114.6 53.3 111.2 53.5 107.8 ct
+67.6 109.8 80.8 115.6 95.2 116.2 ct
+96.2 111.8 98.9 107.3 98.2 102.7 ct
+89.6 92.2 77.5 84.9 69.0 74.1 ct
+63.2 66.4 54.9 60.8 49.5 52.7 ct
+48.0 37.4 50.1 21.9 48.2 6.6 ct
+47.8 4.3 45.1 2.9 42.9 3.8 ct
+35.0 7.0 27.9 11.9 21.4 17.3 ct
+26.9 17.2 32.5 17.1 38.0 16.9 ct
+38.0 24.4 37.9 31.9 37.7 39.4 ct
+26.7 31.2 16.3 21.0 2.6 17.5 ct
+11.7 28.1 23.9 35.5 33.6 45.5 ct
+38.4 50.3 38.4 57.7 39.9 64.0 ct
+31.3 62.0 22.8 60.1 14.1 58.6 ct
+10.1 67.7 5.2 76.3 0.0 84.8 ct
+0.0 88.1 lt
+7.1 85.9 13.8 82.8 20.8 80.5 ct
+29.8 82.7 37.1 89.0 41.7 96.9 ct
+36.1 96.1 30.7 94.2 25.2 92.9 ct
+20.5 91.7 16.5 95.4 12.5 97.1 ct
+20.7 98.8 29.4 99.3 37.0 103.1 ct
+41.8 105.5 42.1 111.6 43.1 116.1 ct
+37.9 115.0 32.7 113.7 27.4 112.8 ct
+24.5 116.0 21.5 119.2 18.5 122.3 ct
+25.2 123.7 32.1 124.6 38.6 126.5 ct
+42.8 130.8 40.8 137.7 40.8 142.9 ct
+40.8 148.4 37.0 152.5 34.4 156.9 ct
+38.7 157.4 43.0 158.1 47.4 158.4 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+522.0 133.6 mt
+529.8 138.7 537.0 145.0 546.0 147.8 ct
+546.9 135.5 548.6 122.7 544.3 110.8 ct
+542.7 111.3 541.1 111.8 539.6 112.3 ct
+540.8 117.1 542.5 121.8 544.2 126.4 ct
+539.2 129.4 533.5 127.5 528.3 126.2 ct
+526.2 128.7 524.1 131.1 522.0 133.6 ct
+cp
+0.996 0.996 0.996 sc
+er
+np
+348.3 144.2 mt
+349.7 144.6 352.6 145.3 354.0 145.7 ct
+356.1 126.4 353.3 106.7 357.6 87.6 ct
+374.4 89.2 390.4 95.3 403.9 105.4 ct
+410.6 104.0 411.7 96.4 413.5 91.0 ct
+394.0 82.8 373.6 77.3 354.1 69.3 ct
+354.1 53.1 353.9 35.7 345.8 21.1 ct
+342.2 12.8 332.2 15.1 325.0 14.8 ct
+320.1 13.5 316.3 16.4 313.2 19.6 ct
+320.6 23.6 328.9 27.0 333.4 34.6 ct
+337.6 41.2 341.9 47.8 345.0 54.9 ct
+346.2 60.5 345.8 66.3 346.2 71.9 ct
+336.2 75.1 326.1 77.5 315.9 79.8 ct
+316.0 80.5 316.3 81.9 316.5 82.6 ct
+325.3 82.9 334.1 82.6 342.9 83.2 ct
+346.7 83.9 346.8 89.2 346.7 92.0 ct
+346.7 100.9 345.9 109.8 347.2 118.7 ct
+348.9 127.0 345.1 136.3 348.3 144.2 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+183.4 138.7 mt
+185.1 138.8 186.7 138.8 188.3 138.7 ct
+189.0 133.5 189.3 128.2 190.5 123.1 ct
+200.7 123.7 208.0 133.0 218.6 132.0 ct
+219.2 130.5 220.4 127.7 221.0 126.2 ct
+216.2 123.9 211.6 120.3 206.0 120.5 ct
+199.4 120.0 192.2 118.8 187.5 113.6 ct
+184.0 106.1 186.0 97.3 183.2 89.6 ct
+178.0 81.7 172.1 73.9 170.5 64.4 ct
+177.2 66.9 183.1 71.1 189.4 74.3 ct
+187.0 68.9 183.4 64.0 182.9 57.9 ct
+192.4 64.2 194.4 77.4 204.1 83.7 ct
+204.2 80.7 205.0 77.5 204.2 74.5 ct
+202.9 71.5 200.9 69.0 199.3 66.1 ct
+204.8 66.5 210.2 67.1 215.6 67.4 ct
+209.4 63.2 199.0 61.5 199.6 52.0 ct
+205.0 52.3 210.8 53.0 215.1 48.8 ct
+210.7 45.5 206.1 42.6 201.3 39.9 ct
+201.5 26.9 200.7 13.4 193.4 2.2 ct
+189.6 6.3 190.3 12.2 190.4 17.4 ct
+190.6 23.1 190.8 28.7 191.0 34.3 ct
+184.8 32.9 178.5 31.4 172.3 30.0 ct
+171.5 30.8 170.7 31.5 170.0 32.3 ct
+170.4 33.4 170.8 34.5 171.2 35.5 ct
+178.0 37.2 184.3 40.0 190.1 43.8 ct
+190.0 46.7 190.0 49.5 189.9 52.3 ct
+183.4 49.7 176.7 46.4 169.4 47.9 ct
+169.3 49.2 169.2 50.4 169.0 51.7 ct
+171.1 52.6 173.1 53.6 175.0 54.8 ct
+170.7 59.9 165.3 63.8 160.0 67.8 ct
+172.7 79.5 181.2 95.9 181.3 113.3 ct
+174.6 113.6 167.9 113.2 161.2 113.1 ct
+160.1 114.3 159.0 115.5 157.9 116.7 ct
+164.7 117.8 171.8 118.4 178.3 120.7 ct
+185.4 123.5 182.2 132.7 183.4 138.7 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+516.7 126.2 mt
+518.2 125.4 519.7 124.6 521.3 123.9 ct
+520.8 116.2 520.4 108.6 519.0 101.1 ct
+518.1 101.0 516.4 100.9 515.5 100.8 ct
+510.8 108.6 511.7 118.8 516.7 126.2 ct
+cp
+0.996 0.996 0.996 sc
+er
+np
+528.9 124.4 mt
+530.5 123.7 532.2 123.0 533.8 122.2 ct
+534.1 117.8 532.3 113.0 533.7 108.7 ct
+536.0 105.8 539.8 104.7 542.8 102.8 ct
+542.9 101.4 543.0 100.0 543.1 98.6 ct
+536.9 96.5 530.3 95.4 523.7 95.3 ct
+526.1 104.9 527.2 114.7 528.9 124.4 ct
+cp
+0.996 0.996 0.996 sc
+er
+np
+52.9 100.8 mt
+62.8 101.9 72.5 104.3 82.3 105.5 ct
+76.7 93.8 67.6 84.5 58.9 75.1 ct
+56.2 75.1 53.6 75.0 51.0 75.0 ct
+50.6 77.0 50.2 79.0 49.8 81.0 ct
+53.8 82.4 57.9 83.8 61.9 85.2 ct
+62.3 87.6 62.8 89.9 63.2 92.3 ct
+58.9 92.3 54.6 91.7 50.3 91.1 ct
+50.9 94.4 51.9 97.6 52.9 100.8 ct
+cp
+0.996 0.996 0.996 sc
+er
+np
+194.3 86.2 mt
+214.1 93.1 234.0 101.1 255.2 102.6 ct
+259.1 102.9 260.8 98.5 261.3 95.3 ct
+262.2 85.5 259.5 75.8 259.2 66.0 ct
+259.1 53.5 255.3 41.2 249.8 30.1 ct
+247.1 24.4 243.3 19.2 238.3 15.5 ct
+232.5 19.4 226.7 23.3 221.1 27.5 ct
+226.3 30.8 232.5 30.5 238.4 29.6 ct
+247.9 49.0 250.5 71.5 247.5 92.7 ct
+234.0 91.7 221.7 84.4 208.0 85.0 ct
+203.4 85.0 198.8 85.3 194.3 86.2 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+306.0 84.2 mt
+308.3 83.4 310.6 82.6 312.9 81.9 ct
+312.9 81.2 313.0 79.9 313.0 79.2 ct
+309.9 79.4 306.8 79.6 303.7 79.6 ct
+304.4 81.1 305.2 82.7 306.0 84.2 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+458.6 84.6 mt
+461.4 81.6 464.2 78.4 465.6 74.6 ct
+467.9 67.8 462.2 62.4 457.8 58.3 ct
+455.4 56.1 452.1 58.0 449.4 58.4 ct
+451.3 67.5 455.1 76.0 458.6 84.6 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+18.0 76.5 mt
+25.4 76.2 32.7 78.0 40.0 79.0 ct
+40.0 76.1 40.0 73.1 39.9 70.2 ct
+34.1 68.2 28.2 66.2 22.3 64.2 ct
+21.1 68.4 19.6 72.5 18.0 76.5 ct
+cp
+0.996 0.996 0.996 sc
+er
+np
+531.4 72.5 mt
+535.1 73.5 537.9 70.3 540.6 68.5 ct
+534.2 61.2 527.4 54.2 521.4 46.7 ct
+525.8 43.3 530.9 40.9 535.1 37.1 ct
+540.7 30.9 550.0 34.0 557.3 32.8 ct
+559.1 29.6 560.9 26.4 562.6 23.0 ct
+553.8 24.4 545.1 25.9 536.4 27.1 ct
+535.2 21.4 534.6 15.1 529.8 11.2 ct
+524.7 6.7 519.3 1.0 512.0 1.0 ct
+506.6 -0.3 503.2 4.7 499.7 7.7 ct
+495.9 11.6 492.2 18.0 495.8 23.2 ct
+503.4 29.9 514.3 29.0 522.6 34.3 ct
+520.2 37.8 517.9 41.4 515.7 45.0 ct
+519.7 50.4 524.9 55.2 526.4 61.9 ct
+519.9 60.2 513.8 57.4 507.2 56.2 ct
+507.1 57.8 507.0 59.4 507.0 61.1 ct
+514.3 66.5 522.7 70.2 531.4 72.5 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+143.0 69.6 mt
+145.4 68.5 147.9 67.1 149.1 64.6 ct
+150.8 50.5 154.2 36.6 154.8 22.3 ct
+148.3 27.5 144.4 35.0 140.1 42.0 ct
+142.6 51.0 142.2 60.4 143.0 69.6 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+380.5 51.3 mt
+394.2 51.5 405.5 42.8 413.5 32.4 ct
+417.1 27.5 417.6 21.3 418.1 15.4 ct
+414.1 15.3 410.1 15.1 406.2 15.0 ct
+397.5 27.0 389.3 39.3 380.5 51.3 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+60.0 42.7 mt
+72.2 42.7 83.9 38.5 94.9 33.8 ct
+99.3 32.5 101.9 28.7 104.1 25.1 ct
+97.0 19.2 87.6 18.9 79.1 16.2 ct
+78.9 16.5 78.5 17.1 78.3 17.4 ct
+81.7 20.6 85.2 23.7 87.9 27.5 ct
+78.9 33.2 67.8 35.2 60.0 42.7 ct
+cp
+0.031 0.031 0.031 sc
+er
+np
+498.8 14.1 mt
+502.2 25.1 515.8 27.7 525.8 27.5 ct
+523.3 17.7 517.4 7.8 507.9 3.5 ct
+504.5 6.7 501.1 10.0 498.8 14.1 ct
+cp
+0.996 0.996 0.996 sc
+er
diff --git a/macros/latex/contrib/seuthesis/figures/seu-text-logo.png b/macros/latex/contrib/seuthesis/figures/seu-text-logo.png
new file mode 100644
index 0000000000..d20540af6d
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/figures/seu-text-logo.png
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/sample-bachelor.pdf b/macros/latex/contrib/seuthesis/sample-bachelor.pdf
new file mode 100644
index 0000000000..eda566ba8f
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/sample-bachelor.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/sample-doctor.pdf b/macros/latex/contrib/seuthesis/sample-doctor.pdf
new file mode 100644
index 0000000000..c17bdc45f8
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/sample-doctor.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/sample-master.pdf b/macros/latex/contrib/seuthesis/sample-master.pdf
new file mode 100644
index 0000000000..ade01bbfb6
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/sample-master.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/sample.tex b/macros/latex/contrib/seuthesis/sample.tex
new file mode 100644
index 0000000000..5e72cf7ff5
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/sample.tex
@@ -0,0 +1,77 @@
+\documentclass[bachelor]{seuthesis} % 本科
+% \documentclass[master]{seuthesis} % 硕士
+% \documentclass[doctor]{seuthesis} % 博士
+% \documentclass[engineering]{seuthesis} % 工程硕士
+
+ % 这里是导言区
+
+\begin{document}
+\categorynumber{000} % 分类采用《中国图书资料分类法》
+\UDC{000} %《国际十进分类法UDC》的类号
+\secretlevel{公开} %学位论文密级分为"公开"、"内部"、"秘密"和"机密"四种
+\studentid{050962} %学号要完整,前面的零不能省略。
+\title{论文中文标题}{中文副标题}{Thesis Title}{subtitle}
+\author{姓\quad{}名}{Author's Name}
+\advisor{导师姓名}{教授}{Advisor's Name}{Prof.}
+\coadvisor{副导师}{副教授}{Co-advisor's Name}{Associate Prof.} % 没有
+ % 可以不填
+% \degree{工学硕士} % 详细学位名称
+\major[12em]{控制理论与控制工程}
+\defenddate{答辩日期}
+\authorizedate{学位授予日期}
+\department{院系名称}{department name}
+\duration{2007.11—2008.6}
+\address{河海院2楼}
+\thanks{本论文获国家XXX计划项目(2012AA00A00)和国家杰出青年科学基金项目(01234567)资助。}
+\maketitle
+
+\begin{abstract}{中文关键字}
+ 中文摘要。
+\end{abstract}
+
+\begin{englishabstract}{English Keywords}
+ English abstract.
+\end{englishabstract}
+
+\tableofcontents
+
+\begin{terminology}
+ 本论文专用术语的注释表
+\end{terminology}
+
+\begin{Main} % 开始正文
+
+\chapter{绪论(前言)}
+\section{研究的主要内容}
+\subsection{...}
+\subsubsection{...}
+\section{需要解决的问题}
+使得论文符合要求\cite{seugs:standard}。
+
+\chapter{...}
+...
+
+\end{Main} % 结束正文
+
+\begin{Acknowledgement}
+感谢……
+\end{Acknowledgement}
+
+\bibliography{seuthesis}
+
+\begin{Appendix}
+ \chapter{第一个附录}
+ ……
+
+ \chapter{第二个附录}
+ ……
+\end{Appendix}
+
+\newpage
+\printindex % 索引
+
+\begin{Resume}
+作者简介
+\end{Resume}
+
+\end{document}
diff --git a/macros/latex/contrib/seuthesis/seuthesis.bib b/macros/latex/contrib/seuthesis/seuthesis.bib
new file mode 100644
index 0000000000..71f51c7f94
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/seuthesis.bib
@@ -0,0 +1,64 @@
+% This file was created with JabRef 2.7.
+% Encoding: UTF8
+
+@MISC{seucover,
+ author = {hbsjzzxgssb},
+ title = {东南大学学位论文封面},
+ year = {2007},
+ language = {Chinese},
+ typeoflit = {EB/OL}
+}
+
+@MISC{wloo,
+ author = {wloo},
+ title = {用LaTeX写漂亮学位论文},
+ year = {2005},
+ language = {Chinese},
+ typeoflit = {EB/OL},
+ url = {http://ymei.freeshell.org/WebWiki/Computer/ThesisWithLaTeX.html}
+}
+
+@MISC{seugs:standard,
+ author = {东南大学研究生院},
+ title = {东南大学研究生学位论文的格式规定(试行)},
+ year = {2011},
+ language = {Chinese},
+ typeoflit = {EB/OL},
+ url = {http://seugs.seu.edu.cn/s/97/t/1707/aa/64/info43620.htm}
+}
+
+@BOOK{GBT7714-2005,
+ title = {中华任命共和国国家标准-文后参考文献著录规则},
+ publisher = {中国标准出版社},
+ year = {2005},
+ author = {中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会},
+ address = {北京},
+ edition = {GB/T 7714-2005},
+ language = {Chinese}
+}
+
+@MISC{wkbst,
+ author = {吴凯},
+ title = {GBT7714-2005.bst:利用BibTEX生成符合GB/T 7714-2005的参考文献},
+ year = {2006},
+ language = {Chinese},
+ typeoflit = {EB/OL}
+}
+
+@MISC{xrn:howtopackage,
+ author = {薛瑞尼},
+ title = {如何编写宏包},
+ year = {2005},
+ language = {Chinese},
+ typeoflit = {EB/OL},
+ url = {http://learn.tsinghua.edu.cn:8080/2003214890/publish/TeX/Doc.html}
+}
+
+@MISC{xrn:thuthesis,
+ author = {薛瑞尼},
+ title = {ThuThesis:清华大学学位论文模板},
+ year = {2005},
+ language = {Chinese},
+ typeoflit = {EB/OL}
+}
+
diff --git a/macros/latex/contrib/seuthesis/seuthesis.bst b/macros/latex/contrib/seuthesis/seuthesis.bst
new file mode 100644
index 0000000000..88f09a9302
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/seuthesis.bst
@@ -0,0 +1,3552 @@
+% Copyright (C) 2007, 2008 by Xu Yuan <xuyuan.cn@gmail.com>
+% $Id$
+%
+% This file is part of the seuthesis package project.
+% http://seuthesis.googlecode.com/
+% ---------------------------------------------------
+% This file may be distributed and/or modified under the
+% conditions of the GNU General Public License v3
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.gnu.org/licenses/gpl.html
+%
+% modified from GBT7714-2005N.bst by Wu Kai
+
+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 {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {remove.dots}
+{
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+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 {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+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 {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$ }
+ {year}
+ if$
+}
+
+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$
+ write$
+ newline$
+}
+
+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$ "" }
+ { "\textsc{" swap$ * "}" * }
+ if$
+}
+FUNCTION {bib.name.font}
+{ }
+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 "{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 %改为大写
+ ", 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 "[" * TypeofLit * "]" * title output.check}
+ if$
+ }
+ 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}
+{
+ title empty$
+ { "No Title" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]" * title output.check}
+ {format.title "[" * TypeofLit * "]" * title output.check}
+ if$
+ }
+ if$
+ ""
+}
+
+FUNCTION {format.cmisc.title.xx}
+{
+ patentid empty$
+ {%没有专利号应该是其它类型文献,直接标准输出
+ title empty$
+ { "" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]." * title output.check}
+ {format.title title output.check}
+ if$
+ }
+ if$
+ }
+ {%有专利号
+ country empty$
+ {
+ title empty$
+ { "" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]." * title output.check}
+ {format.title title output.check}
+ if$
+ }
+ if$
+ "" patentid * "" * *
+ }
+ {%有专利号,有国家
+ title empty$
+ { "" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]." * title output.check}
+ {format.title title output.check}
+ if$
+ }
+ if$
+
+ ":" country * "," * *
+ "" patentid * "" * *
+ }
+ 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}
+{
+ title empty$
+ { "No Title" }
+ {
+ typeoflit empty$
+ {format.title "[C]" * title output.check}
+ {format.title "[" * TypeofLit * "]" * title output.check}
+ if$
+ }
+ if$
+ ""
+}
+
+
+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$
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+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 {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.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { ":" pages n.dashify tie.or.space.connect * }
+ { ":" pages tie.or.space.connect * }
+ if$
+ }
+ if$
+}
+
+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}
+{
+ series empty$
+ { volume empty$
+ { pages empty$
+ { "" }
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ". " * pages n.dashify * ""}
+ if$
+ }
+ if$}
+ { ". " volume * "" * *
+ pages empty$
+ { "" }
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * ""}
+ if$
+ }
+ if$}
+ if$
+ }
+ {
+ new.block
+ volume empty$
+ { number empty$
+ { ". " * series * }
+ { series format.numberinseries * }
+ if$
+ ""
+ }
+ { number empty$
+ { ". " * series ", " * volume * * }
+ { ". " * series ", " * volume * format.numberinseries * }
+ if$
+ pages empty$
+ { "" }
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ": " * pages n.dashify * "" }
+ if$
+ }
+ 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.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}
+{ booktitle empty$
+ { "[No booktitle]" }
+ { editor empty$
+ new.block
+ { "In: " format.editors * booktitle * }
+ { "In: " format.editors * ", eds. " * booktitle * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ced.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ new.block
+ { "见: " format.ceditors * booktitle * }
+ { "见: " format.ceditors * ", 主编. " * booktitle * }
+ if$
+ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
+FUNCTION {format.in.proceedings.booktitle}
+{ booktitle empty$
+ { "" }
+ {format.btitle "booktitle" output.check }
+ if$
+}
+
+
+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
+ 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
+ new.block
+ format.cbook.continue.vol.num
+ new.block
+ format.caddr.pub "publisher" output.check
+ output.continue.cyear.check
+ 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
+ {
+ 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$
+}
+
+FUNCTION {seu.publisher}
+{
+ publisher empty$
+ {
+ school empty$
+ 'skip$
+ { format.school.pub "publisher" output.check }
+ if$
+ }
+ { format.misc.addr.pub "publisher" output.check }
+ 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
+ editor format.key output }
+ { format.authors "author" output.check %wk
+ author format.key output }
+ if$
+ new.block
+ format.inproceedings.title output
+ crossref missing$
+ {
+ format.in.ed.booktitle output
+ format.edition output
+ new.block
+ %seu.publisher
+ output.year.check
+ incollectionlike.series.volume.number.pages output
+ 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]:[Master's Thesis]" * "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]:[PhD Thesis]" * "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 {format.conference.title}
+{
+}
+
+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
+ output
+ 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.title "[G]" * "title" output.check % 资料汇编
+ new.block
+ crossref missing$
+ { format.edition output
+ booklike.series.volume.number output
+ new.block
+ seu.publisher output
+ format.url output
+ output.year.check output
+ format.pages output
+ }
+ { format.book.crossref output.nonnull
+ }
+ if$
+ 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 "[G]" * "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
+ seu.publisher output
+ format.url output
+ output.year.check output
+ %format.date.modifydate.citedate output
+ % format.pages output
+ }
+ { format.book.crossref output.nonnull
+ }
+ if$
+ 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
+
+ new.block
+ crossref missing$
+ {
+ format.cedition output
+ new.block
+ seu.publisher output
+ output.cyear.check
+ %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 {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$ " {\em 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 {author.key.label}
+%{ author empty$
+% { key empty$
+% { cite$ #1 #3 substring$ }
+% 'key
+% if$
+% }
+% { author format.lab.names }
+% if$
+%}
+%
+%FUNCTION {author.editor.key.label}
+%{ author empty$
+% { editor empty$
+% { key empty$
+% { cite$ #1 #3 substring$ }
+% 'key
+% if$
+% }
+% { editor format.lab.names }
+% if$
+% }
+% { author format.lab.names }
+% if$
+%}
+%
+%FUNCTION {editor.key.label}
+%{ editor empty$
+% { key empty$
+% { cite$ #1 #3 substring$ }
+% 'key
+% if$
+% }
+% { editor format.lab.names }
+% if$
+%}
+%
+%FUNCTION {calc.label} %wk修改
+% { type$ "book" =
+% type$ "cbook" =
+% type$ "inbook" =
+% type$ "cinbook" =
+% type$ "incollection" = % For sensible
+% type$ "cincollection" =
+% or or or or or % treatment of
+% 'author.editor.key.label % Singer in
+% { type$ "proceedings" = % BS 1629.
+% 'editor.key.label
+% 'author.key.label
+% if$
+% type$ "cproceedings" = % BS 1629.
+% 'editor.key.label
+% 'author.key.label
+% if$
+%
+% }
+% if$
+% duplicate$
+% year empty$
+% {
+% "\protect\citename{" swap$ * ", }" *
+% "n.d." * 'label := % Chicago,
+% } % page 457.
+% {
+% "\protect\citename{" swap$ * ", }" *
+% year
+% *
+% 'label :=
+% }
+% if$
+% year field.or.null purify$ *
+% sortify 'sort.label :=
+%}
+%
+%
+%FUNCTION {sort.format.names} % To produce the
+%{ 's := % order of entries
+% #1 'nameptr := % specified in item
+% "" % (3) on page 187
+% s num.names$ 'numnames := % of Butcher.
+% numnames 'namesleft :=
+% { namesleft #0 > nameptr #3 < and } % Only 1st 2 names
+% { nameptr #1 > % matter for
+% {
+% " " * } % sorting.
+% 'skip$
+% if$ % Anything that's
+% nameptr #2 = numnames #2 > and % "et al" goes
+% { "zzzzz" * } % after works by 2
+% { % authors.
+% s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+% nameptr numnames = t "others" = and
+% { "zzzzz" * }
+% { t sortify * }
+% if$
+% }
+% if$
+% nameptr #1 + 'nameptr :=
+% namesleft #1 - 'namesleft :=
+% }
+% while$
+%}
+%
+%FUNCTION {sort.format.title}
+%{ 't :=
+% "A " #2
+% "An " #3
+% "The " #4 t chop.word
+% chop.word
+% chop.word
+% sortify
+% #1 global.max$ substring$
+%}
+%
+%FUNCTION {author.sort}
+%{ author empty$
+% { key empty$
+% { "to sort, need author or key in " cite$ * warning$
+% ""
+% }
+% { key sortify }
+% if$
+% }
+% { author sort.format.names }
+% if$
+%}
+%
+%FUNCTION {author.editor.sort}
+%{ author empty$
+% { editor empty$
+% { key empty$
+% { "to sort, need author, editor, or key in " cite$ * warning$
+% ""
+% }
+% { key sortify }
+% if$
+% }
+% { editor sort.format.names }
+% if$
+% }
+% { author sort.format.names }
+% if$
+%}
+%
+%FUNCTION {editor.sort}
+%{ editor empty$
+% { key empty$
+% { "to sort, need editor or key in " cite$ * warning$
+% ""
+% }
+% { key sortify }
+% if$
+% }
+% { editor sort.format.names }
+% if$
+%}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%->
+%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$ :=
+%}
+%
+%
+%%FUNCTION {presort} % Two sorting
+%%{ calc.label % passes, from
+%% label sortify % apalike.bst.
+%% " "
+%% *
+%% type$ "book" =
+%% type$ "inbook" =
+%% type$ "incollection" = % For Singer
+%% or or % in BS 1629.
+%% 'author.editor.sort
+%% { type$ "proceedings" =
+%% 'editor.sort
+%% 'author.sort
+%% if$
+%% }
+%% if$
+%% #1 entry.max$ substring$
+%% 'sort.label :=
+%% sort.label
+%% *
+%% " "
+%% *
+%% title field.or.null
+%% sort.format.title
+%% *
+%% #1 entry.max$ substring$
+%% 'sort.key$ :=
+%%}
+%
+%ITERATE {presort}
+%
+%SORT
+%
+%STRINGS { last.label next.extra }
+%
+%INTEGERS { last.extra.num }
+%
+%FUNCTION {initialize.extra.label.stuff}
+%{ #0 int.to.chr$ 'last.label :=
+% "" 'next.extra :=
+% #0 'last.extra.num :=
+%}
+%
+%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$
+%}
+%
+%FUNCTION {reverse.pass}
+%{ next.extra "b" =
+% { "a" 'extra.label := }
+% 'skip$
+% if$ % Code needed here
+% % if \citeauthor
+% % and \citeyear
+% label extra.label * 'label := % were supported.
+% extra.label 'next.extra :=
+%}
+%
+%EXECUTE {initialize.extra.label.stuff}
+%
+%ITERATE {forward.pass}
+%
+%REVERSE {reverse.pass}
+%
+%FUNCTION {bib.sort.order}
+%{ sort.label
+% " "
+% *
+% year field.or.null sortify
+% *
+% " "
+% *
+% title field.or.null
+% sort.format.title
+% *
+% #1 entry.max$ substring$
+% 'sort.key$ :=
+%}
+%
+%ITERATE {bib.sort.order}
+%
+%SORT
+%
+%FUNCTION {begin.bib}
+%{ preamble$ empty$
+% 'skip$
+% { preamble$ write$ newline$ }
+% if$
+% "\begin{thebibliography}{}" 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}
+
+
+
+
+
+
+
+
+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$ * "}" *
+ 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}
+
+
+
+
+
diff --git a/macros/latex/contrib/seuthesis/seuthesis.dtx b/macros/latex/contrib/seuthesis/seuthesis.dtx
new file mode 100644
index 0000000000..f2aa44435d
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/seuthesis.dtx
@@ -0,0 +1,1794 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2007 - 2010 by Xu Yuan <xuyuan.cn@gmail.com>
+% Song Yihan <syhannnn@gmail.com>
+% Nobel Huang <nobel1984@gmail.com>
+%
+% This file is part of the seuthesis package project.
+% http://seuthesis.googlecode.com/
+% ---------------------------------------------------
+% This file may be distributed and/or modified under the
+% conditions of the GNU General Public License v3
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.gnu.org/licenses/gpl.html
+%
+% \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 \~}
+%
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{seuthesis.dtx}[2012/04/19 2.1.2 Southeast University Thesis Template]
+\documentclass{seuthesis}
+\usepackage{color}
+\usepackage{manfnt}
+\usepackage{verbatim}
+
+% 在本文档中使用的宏
+\newcommand{\bs}{\symbol{'134}}%Print backslash
+\renewenvironment{quote}
+{
+ \color{magenta}
+ {\small\textlhdbend}
+ \kai
+}{}
+\newcommand{\IndexOpt}[1]{\index{\texttt{#1}}\texttt{#1}}
+\newcommand{\IndexCmd}[1]{\index{\texttt{\bs #1}}}
+\newcommand{\CmdMacro}[2]{\fbox{\texttt{\IndexCmd{#1}\bs #1#2}}}
+\newcommand{\IndexEnv}[1]{\index{\texttt{\bs begin\{#1\}}}}
+\newcommand{\EnvMacro}[2]{\fbox{\texttt{\IndexEnv{#1}\bs begin\{#1\}#2}}}
+
+\begin{document}
+\GetFileInfo{seuthesis.dtx}
+
+\categorynumber{000} % 分类采用《中国图书资料分类法》
+\UDC{000} %《国际十进分类法UDC》的类号
+\secretlevel{公开} %学位论文密级分为“公开”、“内部”、“秘密”和“机密”四种
+\studentid{050962} %学号要完整,前面的零不能省略。
+
+\title{\seuthesis{}~宏包(\fileversion{}版)} % 中文标题
+{——东南大学学位论文~\LaTeX{}~模板} % 中文副标题
+{The \seuthesis{} class (version \fileversion)} % 英文标题
+{--- The \LaTeX{} template for thesis of Southeast University}%英文副标题
+
+\author{许\quad{}元}{XU Yuan}
+
+\advisor{导师姓名}{教授}{Advisor's Name}{Prof.}
+\coadvisor{副导师}{副教授}{Co-advisor's Name}{Associate Prof.}
+\degree{工学硕士}
+\major{\LaTeX}
+\submajor{\seuthesis}
+\defenddate{2050年7月7日}
+\authorizedate{2050年7月7日}
+\department{自动化学院}{School of Automation}
+
+\maketitle
+
+\begin{abstract}{\LaTeX{}~模板,东南大学学位论文}
+
+ \TeX{} 是一个排版系统,可以把文章做成书那种效果。因此~\TeX{}非常适合
+ 用来写学术论文和书籍。\seuthesis{}是按照东南大学研究生院和教务处对学
+ 位论文的要求设计和实现的\LaTeX{}模板,帮助东南大学的学生以专业排版水
+ 平来完成学位论文。
+
+ 本文既是\seuthesis{}使用手册也是范例,建议在使用\seuthesis{}之前阅
+ 读。
+\end{abstract}
+
+\begin{englishabstract}{\LaTeX{} template, thesis of Southeast
+ Universiy}
+
+ \TeX is a typesetting system, it can make article as good as
+ published book. Therefore, \TeX is very suitable for writing
+ academic papers and books. \seuthesis{} is designed and implemented
+ as a \LaTeX template to help studnets writing degree thesis in a
+ professional typesetting, according to the requirements of Southeast
+ University.
+
+ This paper is \seuthesis{} user manual and also the sample
+ document, it is better to be read before using \seuthesis{}.
+\end{englishabstract}
+
+\tableofcontents
+
+\begin{terminology}
+ \begin{table}
+ \centering
+ \caption{本论文专用术语(符号、变量、缩略词等)的注释表}
+ \label{tab:terminology}
+ \begin{tabular}{l|l}
+ \noalign{\hrule height 1.2pt}
+ 符号、变量、缩略词等 & 涵义 \\
+ \hline
+ \textcolor{magenta}{{\small\textlhdbend}\kai 洋红色楷体字} & 引用《东南大学研究生学位论文格式规
+ 定》\cite{seugs:standard}原文\\
+ \CmdMacro{命令}{\{参数\}} & 本宏包所支持的命令和参数\\
+ \noalign{\hrule height 1.2pt}
+ \end{tabular}
+ \end{table}
+\end{terminology}
+
+\begin{Main}
+
+ \chapter{简介}
+ \label{cha:intro}
+
+ 在硕士论文完成之际,\seuthesis{}的第一个完整版也诞生了,使用CJK实现中
+ 文支持,并在在google建立项目:\url{http://seuthesis.googlecode.com/}。
+ 之后宋翊涵同学为模板加入了对东南大学本科论文的支持,黄小雨同学在写硕
+ 士论文期间对模板进行了完善。
+
+ 模板的格式尽量满足东南大学研究生院和教务处的要求,当然由于水平有限其
+ 中错漏在所难免,我们欢迎东大的\LaTeX{}er一起参加开发和完善。如果您对
+ 开发和完善\seuthesis{}感兴趣、有任何想法或建议,请与我们联系。
+
+ \section{版权声明}
+ \begin{flushleft}
+ \begin{tabular*}{1.0\linewidth}{lcl}
+ 版权所有\textcopyright 2007 - \the\year & 许\quad{}元 & (\url{xuyuan.cn@gmail.com}) \\
+ & 宋翊涵 & (\url{syhannnn@gmail.com}) \\
+ & 黄小雨 & (\url{nobel1984@gmail.com}) \\
+ \end{tabular*}
+ \end{flushleft}
+
+ 这一程序是自由软件,你可以遵照自由软件基金会发布的《 GNU通用公共许可
+ 证条款第三版》来修改和重新发布这一程序,或者(根据您的选择)用任何更新
+ 的版本。发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合
+ 特定目的的隐含的担保。更详细的情况请参阅《GNU通用公共许可
+ 证》\footnote{\url{http://www.gnu.org/licenses/gpl.html}}。
+
+ \section{版本历史}
+ \begin{description}
+ \item[2.1] 2012/04/17,根据研究生院新规定,增加中文封二。
+ \item[2.0] 2010/04/20,使用xeCJK,避免字体安装。
+ \item[1.3] 2009/02/19,增加A3封面制作工具,优化版式。
+ \item[1.2] 2008/08/12,启用研究生学位论文新封面,完善对东南大学本科论文的支持。
+ \item[1.1] 2008/05/16,增加对东南大学本科论文的支持。
+ \item[1.0] 2008/03/19,第一个完整版,包含了参考文献格式等完善。
+ \item[0.2] 2007/12/23,增加unicode支持。
+ \item[0.1] 2007/12/22,增加文档和示例。
+ \item[0.0] 2007/12/02,初始版本。
+ \end{description}
+
+ \chapter{下载和安装}
+ \label{cha:download-install}
+ \section{发布版本}
+ 各个发布的版本可以到本项目在Google的project中找到,或者直接访问
+ \url{http://code.google.com/p/seuthesis/downloads/list}下载。
+ \section{开发版本}
+ 最新的正在开发中的版本可以通过~svn~下载,使用如下命令:
+ \begin{flushleft}
+ \texttt{svn checkout http://seuthesis.googlecode.com/svn/trunk/
+ seuthesis-read-only}
+ \end{flushleft} 详细信息请参考~Google~给出的~svn~访问方
+ 法\footnote{\url{http://code.google.com/p/seuthesis/source}}。
+
+ \section{安装}
+ \label{sec:install}
+ 将宏包中的文件与~\TeX{}~主文件放在同一目录下即可,当然也可以安装
+ 到~\TeX{}~系统中,不过需要注意是参考文献样式文件 \texttt{.bst} 必须置于 \texttt{TEXMF/bibtex/bst}目录或子目录下。
+
+ 本模板在~\TeX{}\texttt{Live 2010}~和~\texttt{MiKTex2.7}~下使
+ 用 \XeLaTeX{} 编译通过。如有您在使用中有任何问题,欢迎与我联系。
+
+ \chapter{使用说明}
+ \begin{quote}
+ 学位论文应包括:
+ \begin{enumerate}
+ \item 中文封面;
+ \item 中文页面;
+ \item 英文页面;
+ \item 论文独创性声明和使用授权声明;
+ \item 中文内容提要及关键词;
+ \item 英文内容提要及关键词;
+ \item 目录;
+ \item 正文;
+ \item 致谢;
+ \item 参考文献
+ \end{enumerate}
+ 等7大要素并按此顺序排列。其他可以选择添加的内容有:
+ \begin{itemize}
+ \item 位于目录之后的内容:符号、变量、缩略词等本论文专用术语的注释表;
+ \item 参考文献后按序排列的内容:
+ \begin{enumerate}
+ \item 附录;
+ \item 索引(中、英文);
+ \item 作者简介(包括在学期间发表的论文和取得的学术成果清单);
+ \item 后记。
+ \end{enumerate}
+ \end{itemize}
+ \end{quote}
+
+ 首先要在你的~\TeX{}~文件中使用本宏
+ 包:\CmdMacro{documentclass}{[\textit{选项}]\{seuthesis\}} 其中
+ \texttt{选项}请参考\refsec{sec:use:opt}。然后在导言区中加入自己需要的
+ 宏包等,接着使用\CmdMacro{begin\{document\}}{}开始写论文,主要还要在
+ 最有用\CmdMacro{end\{document\}}{}结尾。
+
+ 在论文的一开始需要通过宏包的命令设置论文的题目、作者等,具体命令和参
+ 数参考\refsec{sec:use:cover}、\refsec{sec:use:abstract}。这些都设置好
+ 了之后使用\CmdMacro{maketitle}{}来生成封面、目录等,所以这条命令在设
+ 置之后正文开始之前使用,后面就可以开始论文了。
+
+ \section{例子}
+ 例子最能说明问题,下面通过一个简要的例子来说明怎样使用本宏包。这个例子就是宏
+ 包中的\texttt{sample.tex}文件,可以使用\texttt{make sample}或
+ 者\texttt{xelatex sample}命令来编译这个例子。
+
+ \verbatiminput{sample}
+
+ \section{选项}
+ \label{sec:use:opt}
+ \subsection{学位选项}
+ \newcommand{\OPTbachelor}{\IndexOpt{bachelor}}
+ \newcommand{\OPTmaster}{\IndexOpt{master}}
+ \newcommand{\OPTdoctor}{\IndexOpt{doctor}}
+ \newcommand{\OPTengineering}{\IndexOpt{engineering}}
+ \begin{description}
+ \item[\OPTbachelor] 学士学位;
+ \item[\OPTmaster] 硕士学位(默认);
+ \item[\OPTengineering] 工程硕士;
+ \item[\OPTdoctor] 博士学位。
+ \end{description}
+
+ \subsection{打印相关选项}
+ \newcommand{\OPTnocolor}{\IndexOpt{nocolorlinks}}
+ \newcommand{\OPTdoublecover}{\IndexOpt{doublecover}}
+ \newcommand{\OPTprintedition}{\IndexOpt{printedition}}
+ \begin{description}
+ \item[\OPTnocolor] 所有链接文字不使用彩色标识,全部黑色,并由框线表示 (打印时框线不会被打印出来) (默认关闭);
+ \item[\OPTdoublecover] 中文封面和英文封面各占两页以使得封面皆打印在奇数页 (默认关闭);
+ \item[\OPTprintedition] 作为 \OPTnocolor 和 \OPTdoublecover 选项的综合,即使该两个选项同时生效生成打印版文稿。
+ \end{description}
+
+ \section{封面}
+ \label{sec:use:cover} 使用\CmdMacro{maketitle}{}来生成中、英文封面以及
+ 《论文独创性声明和使用授权声明》,但是在调用\CmdMacro{maketitle}{}之前进
+ 行相关设置,包括姓名、论文题目等。下面详细说明相关设置命令。由于本科
+ 论文的封面和研究生论文的封面有很大差异,所以有些命令只在研究生论文中
+ 起作用,而有些只在本科论文中才需要。
+
+ \begin{quote}
+ 博士学位论文封面颜色统一为“白色刚古艺术纸”,硕士学位论文封面颜色统一
+ 为“淡黄色刚古艺术纸”。
+ \end{quote}
+
+ \subsection{分类号}
+ \CmdMacro{categorynumber}{\{分类号\}},分类采用《中国图书资料分类法》。
+ \subsection{UDC类号}
+ \CmdMacro{UDC}{\{《国际十进分类法UDC》的类号\}}
+ \subsection{论文保密等级}
+ \CmdMacro{secretlevel}{\{学位论文密级\}},分为“公开”、“内部”、“秘密”和“机
+ 密”四种。
+ \subsection{学号}
+ \CmdMacro{studentid}{\{学号\}},研究生院要求学号要完整,前面的零不能省略。
+
+ \subsection{论文标题}
+ \CmdMacro{title}{\{论文中文标题\}\{中文副标题\}\{论文英文标题\}\{英文副标题\}}
+
+ \begin{quote}
+ 论文的主标题(第一行)。论文题目是论文全貌的集中体现,应能概括整个论文
+ 最重要的内容,命题必须确切、简明,题目应力求简单,也不应宽泛笼统,应能
+ 看出论文的实质性内容和工作重心。中文题名一般不超过20个汉字,必要时可加
+ 副题名。副题名可另起一行,用破折号与主题名隔开。题名中应避免使用非公知
+ 公用的缩略语、字符、代号以及结构式和公式。
+ \end{quote}
+
+ \subsection{作者}
+ \CmdMacro{author}{\{作者中文姓名\}\{作者英文姓名\}}。
+
+ \begin{quote}
+ 中国姓名译为英文时用汉语拼音,按照姓前名后的原则,姓、名均用全名,不宜
+ 用缩写。姓全用大写,名的第一个字母大写,名用双中文字时两个字的拼音之间
+ 可以不用短划线,但容易引起歧义时必须用短划线。例如“冯长根”译为“FENG
+ Changgen”或“FENG Chang-gen”,而“冯长安”则必须译为“FENG
+ Chang-an”。
+ \end{quote}
+
+ \subsection{导师}
+ \CmdMacro{advisor}{\{导师中文姓名\}\{导师职称(教授、副教授等)\}\{导师英
+ 文姓名\}\{导师职称英文\}}
+
+ 另外如果有副导师,使用
+
+ \CmdMacro{coadvisor}{\{副导师中文姓名\}\{副导师职称(教授、副教授等)\}\{副导师英
+ 文姓名\}\{副导师职称英文\}}
+
+ \subsection{院系和专业}
+ \CmdMacro{department}{\{院系中文名\}\{院系英文名\}}
+
+ \CmdMacro{major}{[宽度]\{一级学科名称/专业名称(中文)\}},其中宽度选项只在本科论
+ 文中有效。
+
+ \CmdMacro{submajor}{\{二级学科名称\}}
+
+ \subsection{申请学位类别}
+ \CmdMacro{degree}{\{申请学位类别\}}
+
+ \begin{quote}
+ 学历博士、硕士的类别为哲学、经济学、法学、教育学、文学、管理学、理
+ 学、工学、医学等(如:法学硕士、工学博士)。中职教师、高校教师在职
+ 申请硕士学位,其学位类别注明中职教师、高校教师,如工学硕士(高校教
+ 师)。
+ \end{quote}
+
+ \subsection{日期}
+ \subsubsection{论文答辩日期}
+ \CmdMacro{defenddate}{\{论文答辩日期中文\}}
+ \subsubsection{学位授予日期}
+ \CmdMacro{authorizedate}{\{学位授予日期中文\}}
+ \subsubsection{论文完成日期}
+ \CmdMacro{date}{\{论文完成日期中文\}}
+ \subsubsection{起讫日期}
+ \CmdMacro{duration}{\{论文开始时间——论文完成时间\}},本科论文需要。
+ \subsection{答辩委员会主席}
+ \CmdMacro{committeechair}{\{答辩委员会主席姓名、职称\}}
+ \subsection{评阅人}
+ \CmdMacro{reader}{\{评阅人甲姓名、职称\}\{评阅人乙姓名、职称\}}
+ \subsection{学位授予单位}
+ \CmdMacro{authorizeorganization}{\{学位授予单位\}},默认为“东南大学”。
+ \subsection{设计地点}
+ \CmdMacro{address}{\{设计地点\}},本科论文需要。
+ \subsection{感谢}
+ \CmdMacro{thanks}{\{感谢内容\}},在中文封二添加脚注,对提供资助或者支
+ 持的基金、单位表达感谢。
+
+ \section{摘要和关键词}
+ \label{sec:use:abstract}
+ 摘要的内容需要放置在环境中,而关键字是作为环境的参数设置的:
+
+ \EnvMacro{abstract}{\{中文关键字\}}
+
+ \EnvMacro{englishabstract}{\{英文关键字\}}
+
+ \begin{quote}
+ 论文摘要包括题名、硕士(博士)研究生姓名、导师姓名、学校名称、正文、
+ 关键词。中文约500字左右,英文约200~300词左右,二者应基本对应。它是论
+ 文内容的高度概括,应说明研究目的、研究方法、成果和结论,要突出本论文
+ 的创造性成果或新的见解、用语简洁、准确,并在论文摘要后注明本文的关键
+ 词3至8个。关键词应为公知公用的词和学术术语,不可采用自造字词和略写、
+ 符号等,词组不宜过长。
+ \end{quote}
+
+
+ \begin{quote}
+ 英文摘要采用第三人称单数语气介绍该学位论文内容,目的是便于其他文摘摘录,
+ 因此在写作英文文摘时不宜用第一人称的语气陈述。叙述的基本时态为一般现在
+ 时,确实需要强调过去的事情或者已经完成的行为才使用过去时、完成时等其他
+ 时态。可以多采用被动语态,但要避免出现用“This paper”作为主语代替作者
+ 完成某些研究行为。
+ \end{quote}
+
+ \section{目录}
+ 使用\CmdMacro{tableofcontents}{}插入自动生成的目录。
+
+ \begin{quote}
+ 目录是论文的大纲,它反映论文的梗概。论文目录要求层次清楚,应将论文
+ 的章节按顺序编好页码,页码居页面的右侧并排列整齐。
+ \end{quote}
+
+ \section{本论文专用术语的注释表}
+ 术语注释表为可选内容,需要放置在环境变量中:
+ \EnvMacro{terminology}{[标题]}
+ 其中,\emph{标题}默认值为“本论文专用术语的注释表”。
+
+ \begin{quote}
+ 如果有必要可以设置本论文专用术语(符号、变量、缩略词等)的注释表。此部
+ 分内容可根据论文中采用的符号、变量、缩略词等专用术语加以定义和注释,以
+ 便于论文阅读和迅速查出某符号的明确含义。
+ \end{quote}
+
+ \section{正文}
+ 正文需要放置在\EnvMacro{Main}{}环境中。
+
+
+ \begin{quote}
+ 正文是学位论文的主体。内容可因研究课题的性质不同而有所变化。一般可包括:
+ 文献综述、理论基础、计算方法、实验方法、经过整理加工的实验结果的分析讨
+ 论、见解和结论。
+ \end{quote}
+
+ \begin{quote}
+ 正文一律用阿拉伯数字编排页码,页码在底部居中。正文之前的摘要、目录等内
+ 容单独编排罗马数字页码。
+ \end{quote}
+
+ \subsection{绪论(前言)}
+
+ \begin{quote}
+ 本研究课题国内外已有的重要文献的扼要概括,阐明研究此课题的目的、意义,
+ 研究的主要内容和所要解决的问题。本研究工作在国民经济建设和社会发展中的
+ 理论意义与实用价值。
+ \end{quote}
+
+ \subsection{文献综述}
+
+ \begin{quote}
+ 在查阅国内外文献和了解国内外有关科技情况的基础上,围绕课题涉及的问题,
+ 综述前人工作情况,达到承前启后的目的。要求:
+ \begin{itemize}
+ \item 总结课题方向至少10年以来的国内外动态;
+ \item 明确前人的工作水平;
+ \item 介绍目前尚存在的问题;
+ \item 说明本课题的主攻方向。
+ \end{itemize}
+ 文献总结应达到可独立成为一篇综述文章的要求。
+ \end{quote}
+
+ \subsection{理论分析、数值计算或统计分析}
+
+ \begin{quote}
+ 利用研究生本人所掌握的理论知识对所选课题进行科学地、严密地理论分析、数
+ 值计算或统计分析,剖析课题,提出自己的见解。
+ \end{quote}
+
+ \subsection{实验原理、实验方法及实验装置}
+
+ \begin{quote}
+ 学位论文要求对实验原理、方法、装置、步骤和有关参数有较详细的阐述,以便
+ 评阅人及答辩委员会审核实验的可靠性,并能对试验进行重复以便验证结果的可
+ 靠性,也为以后的研究者提供一个较完整的研究方法。
+ \end{quote}
+
+ \subsection{实验结果及讨论分析}
+
+ \begin{quote}
+ 列出数据的图或表,并对数据结果进行讨论,对比分析、结果推论要严格准确,
+ 避免采用模棱两可的评定语言。对反常的数据要保留并做解释或者说明,不可随
+ 意剔除数据做出有违科学公正的行为。
+ \end{quote}
+
+
+ \subsubsection{引用}
+
+ 研究生院规定引用参考文献采用的上标格式,应使用\CmdMacro{cite}{\{文献标
+ 题\}}命令,其效果是~\cite{seugs:standard}~。
+
+ 但是有时候又需要普通引用,这时使用\CmdMacro{citet}{\{文献标题\}}命
+ 令,其效果是~\citet{seugs:standard}~。
+
+ 引用文中的图和表使用\CmdMacro{autoref}{\{label\}}命令,其效果
+ 是\autoref{tab:terminology}。
+
+ 引用文中某一章使用\CmdMacro{refchapter}{\{label\}}命令,其效果
+ 是\refchapter{cha:intro}。
+
+ 引用文中某一节使用\CmdMacro{refsec}{\{label\}}命令,其效果
+ 是\refsec{sec:install}。
+
+ \begin{quote}
+ 引用的别人的研究成果及数据应加注参考文献,较长的公式推导可列入附录。采
+ 纳文献及引用数据应为可以公开并能重复查到的文献资源,并提供准确出处(如
+ 页码或图表序号等)。正文引用文献一律用右上角方括号内的次序号(阿拉伯数
+ 字)(用“上标”格式)。
+ \end{quote}
+
+ \section{致谢}
+
+ 在正文结束之后(即\CmdMacro{end\{Main\}}{}之后)使
+ 用\EnvMacro{Acknowledgement}{}环境,并在环境内书写致谢内容就可以了。自己的
+ 姓名和日期放在\EnvMacro{flushright}{}环境中就可以右对齐了,可参
+ 考\hyperref[cha:acknowledgement]{本文的致谢}。
+
+ \section{参考文献}
+
+ 使用\CmdMacro{bibliography}{\{参考文献数据库文件名\}}命令包含文献数据
+ 库即可,中文文献请添加\texttt{language = \{Chinese\}}域。
+
+ 由于研究生院对参考文献的要求和国标\cite{GBT7714-2005}比较接近,因此本
+ 模板的参考文献格式文件参考自\citet{wkbst},但是\citet{wkbst}在使用中
+ 会报错误,在经过修改之后本人的论文中已不会报错,但不保证所有的文献条
+ 目都没有问题,如果您遇到问题请将错误发给我,我会尽力完善它。
+
+ 有关文献中的必需条目和使用注意事项请参
+ 考\citet{wkbst,seugs:standard}。
+
+ \section{附录}
+ 在参考文献后使用\EnvMacro{Appendix}{}环境进入附录章节的编写。附录可以分为
+ 多个章,使用 \CmdMacro{chapter\{第一个附录\}}{}就可以生成大写英文字母编号
+ 的附录章了,其余的节及子节写法与正文类似。
+
+ \section{作者简介}
+ 在\CmdMacro{printindex}{}命令之后可以使用\EnvMacro{Resume}{}环境进入\emph{作者简介}的编写。
+
+ \chapter{模板实现代码}
+ \DocInput{seuthesis.dtx}
+
+\end{Main}
+
+\begin{Acknowledgement}
+\label{cha:acknowledgement}
+本模板参考了网上的一些文
+档\cite{seugs:standard,seucover,wloo,xrn:thuthesis,xrn:howtopackage,wkbst},
+在此表示感谢!
+
+东南大学,我的母校。在这菁菁校园里我度过了七个寒暑春秋,留下了无数美好
+的回忆。衷心的祝福母校的明天会更好。
+
+{\vspace{1cm}}
+
+\begin{flushright}
+ \kai
+ \makebox[6cm][c]{许\quad{}元}\\
+ 2008年3月19日于东南大学河海院
+\end{flushright}
+\end{Acknowledgement}
+
+\bibliography{seuthesis}
+
+\begin{Appendix}
+ \chapter{常见问题}
+ \label{app:faq}
+
+ \section{为什么 sample.tex 文件打开是乱码?}
+ \label{faq:utf8}
+
+ \seuthesis{} 使用 utf-8 编码。如果您是 windows用户,请使用支持 utf-8
+ 编码的编辑器。
+
+ \section{当论文中出现中英文摘要、列出所有图
+ 表(\texttt{\textbackslash{}listoftables}、
+ \texttt{\textbackslash{}listoffigures}、
+ \texttt{\textbackslash{}listoflistings})时出现一些空白页,即使第二
+ 页没有内容仍然会产生出来,这样很影响美观。}
+ \label{faq:oneside}
+
+ 其实这个不是问题,空白页是因为模板默认为双面打印,插入空白页保证每一
+ 章的第一页在奇数页,这样设计是为了美观。如果想去掉加参数就可以
+ 了:
+
+ \CmdMacro{documentclass}{[oneside]\{sethesis\}}。
+
+ 使用时,可以编译一个“电子版”、一个“打印版”。
+
+ \section{本科论文标题太长怎么办?}
+ \label{faq:longtitle}
+
+ 在要断行的地方插入\CmdMacro{newtitleline}{\{\}},如:
+\begin{verbatim}
+ \title{汽柴油变频发电机组中永磁发电机\newtitleline{}及整流环节的研究}{}{}{}
+\end{verbatim}
+
+ \section{参考文献中出现乱码,怎么办?}
+
+ 在参考文献条目中中英字符之间插入空格。
+
+ \chapter{文件}
+ \begin{itemize}
+ \item 源文件:
+ \begin{description}
+ \item[seuthesis.dtx] 包含类或宏包及其说明文件的文件,需用同名.ins文件或docstrip工具分解。
+ \item[seuthesis.ins] 同名.dtx的安装文件,用~\LaTeX{}~编译,可得到sty或cls等类型文件。
+ \item[seuthesis.bib] 文献数据库,包含了本文的参考文献。
+ \item[seuthesis.bst] 文献格式文件,定义了参考文献的格式。
+ \item[Makefile] make编译规则,使用make命令由源文件得到目标文件。
+ \item[figures/seu-badge-logo.eps/pdf] 东南大学校徽图案。
+ \item[figures/seu-text-logo.eps/png] 东南大学文字图案。
+ \end{description}
+ \item 目标文件:
+ \begin{description}
+ \item[seuthesis.pdf] 东南大学~\LaTeX{}~学位论文模板说明文档,也是学位
+ 论文模板生成的范例。
+ \item[seuthesis.cls] 东南大学~\LaTeX{}~学位论文稿件类型文件,可用命
+ 令\CmdMacro{documentclass}{\{sethesis\}} 调用。
+ \item[seuthesis-*.cfg] 供类包或宏包调用的配置文件,有~UNICODE~和~GBK~两种编码。
+ \end{description}
+ \end{itemize}
+\end{Appendix}
+
+\renewcommand\indexname{索引}
+\printindex
+
+\end{document}
+%</driver>
+%
+%<cls> \NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<cls> \ProvidesClass{seuthesis}[2012/04/19 2.1.2 The LaTeX template for thesis of Southeast University]
+%<cls> \typeout{Document Class `seuthesis' v2.1.2 by Xu Yuan, Song Yihan, Huang Xiaoyu (2012/04/19)}
+% \fi
+%
+% \section{本宏包的选项}
+% \begin{macro}{bachelor/master/doctor}
+% 默认为申请硕士学位(\OPTmaster),博士(\OPTdoctor)、本科学
+% 位(\OPTbachelor)、工程硕士(\OPTengineering)作为可选项。
+% \begin{macrocode}
+%<*cls>
+\newif\ifbachelordegree\bachelordegreefalse
+\newif\ifmasterdegree\masterdegreetrue
+\newif\ifengineering\engineeringfalse
+\DeclareOption{bachelor}{\bachelordegreetrue}
+\DeclareOption{master}{\masterdegreetrue}
+\DeclareOption{engineering}{\engineeringtrue\masterdegreetrue}
+\DeclareOption{doctor}{\masterdegreefalse}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{nocolorlinks}
+% 默认使用彩色标识各类链接,包括文档内跳转、URL、引用、外部文件链接等。如果不希望使用彩色标识(要打印时),利用该选项可关闭。
+% \begin{macrocode}
+\newif\ifnocolorlinks\nocolorlinksfalse
+\DeclareOption{nocolorlinks}{\nocolorlinkstrue}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{doublecover}
+% 中英文封面各占两页。
+% \begin{macrocode}
+\newif\ifdoublecover\doublecoverfalse
+\DeclareOption{doublecover}{\doublecovertrue}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{printedition}
+% 生成打印版本,是 \texttt{nocolorlinks} 和 \texttt{doublecover} 两个选项的综合。
+% \begin{macrocode}
+\DeclareOption{printedition}{\doublecovertrue\nocolorlinkstrue}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{printoneside}
+% 单面打印。注意不要使用标准的 \emph{oneside} 选项。
+% \begin{macrocode}
+\newif\ifstoneside\stonesidefalse
+\DeclareOption{printoneside}{%
+ \PassOptionsToClass{openany}{scrbook}
+ \stonesidetrue
+}
+% \end{macrocode}
+% \end{macro}
+% 将选项传递给\emph{scrbook}类。
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\ProcessOptions
+\LoadClass[a4paper,10.5pt,tablecaptionabove]{scrbook}
+\let\todayeng\today
+% \end{macrocode}
+%
+% \section{依赖的其它宏包}
+% \begin{macrocode}
+\RequirePackage{doc}
+\RequirePackage{keyval}
+\RequirePackage{ifthen}
+
+\RequirePackage{xltxtra}
+\RequirePackage{graphicx}
+\RequirePackage[dvipsnames]{xcolor}
+\RequirePackage{indentfirst}
+\RequirePackage{makeidx} % 索引
+\RequirePackage[nottoc]{tocbibind} % 将参考文献、索引、表格目录和图形
+% 目录等标题及其所在页码自动地添加到标
+% 题目录,可以断行(用\protect\\)
+\RequirePackage[numbers,sort&compress]{natbib} % 修改引用参考文献格式
+\RequirePackage{array} % 扩展了 array 和 tabular 环境功能
+\RequirePackage{caption} % 定义图的标题格式:居中. 使用caption3.0
+\captionsetup{%
+ format=plain,%
+ labelformat=simple,%
+ justification=centering,%
+ singlelinecheck=off}
+\RequirePackage{paralist}% 修改列表格式
+\setdefaultenum{1)}{a)}{i.}{A.}% 设置列表模式
+\setdefaultleftmargin{4ex}{}{}{}{}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage[CJKnumber,slantfont,boldfont]{xeCJK}
+\RequirePackage{CJKulem}
+\newlength\CJK@twochars
+\def\CJK@spaceChar{\Unicode{48}{7}}
+\def\CJKindent{%
+ \settowidth\CJK@twochars{\CJK@spaceChar\CJK@spaceChar}%
+ \parindent\CJK@twochars}
+
+\RequirePackage{hyperref}
+\AtBeginDocument{\CJKindent{}%
+ \InputIfFileExists{seuthesis-utf8.cfg}% 引入配置文件
+ {\typeout{[seuthesis]: Load seuthesis-utf8.cfg successfully!}}%
+ {\typeout{[seuthesis]: Load seuthesis-utf8.cfg failed!}}%
+ \makeindex%
+ \wuhao%
+ \linespacing{\mainlineskip}
+ }
+\AtEndDocument{\backcover}
+
+% \end{macrocode}
+%
+% \section{页面设置}
+% \begin{quote}
+% A4纸张,四周页边距2cm,带连续页码(阿拉伯数字页码,底部居中)。
+% 双面印刷。若根据装订需要,左、右两侧的页边距也可以选2.5cm。
+% \end{quote}
+% \subsection{页边距}
+% \begin{macrocode}
+\RequirePackage[top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm]{geometry}
+% \end{macrocode}
+%
+% \subsection{标题与目录}
+% \begin{macrocode}
+\RequirePackage[pagestyles, rm]{titlesec}
+\RequirePackage{titletoc} % 设置目录
+\hypersetup{bookmarksnumbered=true}%书签中章节编号
+% \end{macrocode}
+%
+%
+% \subsection{字体}
+% \begin{macrocode}
+\defaultfontfeatures{Mapping=tex-text} % --- as em-dash
+\setCJKmainfont{SimSun}
+\setCJKfamilyfont{zhsong}{SimSun}
+\newcommand{\song}{\CJKfamily{zhsong}}
+\setCJKfamilyfont{zhhei}{SimHei}
+\newcommand{\hei}{\CJKfamily{zhhei}}
+\setCJKfamilyfont{zhkai}{KaiTi}
+\newcommand{\kai}{\CJKfamily{zhkai}}
+\setCJKfamilyfont{zhfs}{FangSong}
+\newcommand{\fs}{\CJKfamily{zhfs}}
+\setmainfont{Times New Roman}% 英文默认Time New Roman
+% \end{macrocode}
+% \subsection{字号及间距}
+% \begin{macrocode}
+\newcommand{\chuhao}{\fontsize{42pt}{46pt}\selectfont}
+\newcommand{\xiaochuhao}{\fontsize{36pt}{40pt}\selectfont}
+\newcommand{\yichu}{\fontsize{32pt}{36pt}\selectfont}
+\newcommand{\yihao}{\fontsize{28pt}{32pt}\selectfont}
+\newcommand{\erhao}{\fontsize{21pt}{24pt}\selectfont}
+\newcommand{\xiaoerhao}{\fontsize{18pt}{20}\selectfont}
+\newcommand{\sanhao}{\fontsize{15.75pt}{18pt}\selectfont}
+\newcommand{\sihao}{\fontsize{14pt}{16pt}\selectfont}
+\newcommand{\xiaosihao}{\fontsize{12pt}{14pt}\selectfont}
+\newcommand{\wuhao}{\fontsize{10.5pt}{13pt}\selectfont}
+\newcommand{\xiaowuhao}{\fontsize{9pt}{11pt}\selectfont}
+\newcommand{\liuhao}{\fontsize{7.5pt}{9pt}\selectfont}
+\newcommand{\xiaoliuhao}{\fontsize{6.5pt}{7.5pt}\selectfont}
+\newcommand{\qihao}{\fontsize{5.5pt}{6.5pt}\selectfont}
+\setlength{\parskip}{0pt}% 段距
+\newcommand{\mainlineskip}{1.3}% 主行距1.3
+\titlespacing{\section}{0pt}{3.5ex plus .05ex minus .01ex}{2.9ex plus .04ex} % 标题间距
+\titlespacing{\subsection}{0pt}{3ex plus .05ex minus .01ex}{2ex plus .04ex}
+\titlespacing{\subsubsection}{0pt}{1.5ex plus .05ex minus .01ex}{1ex plus .01ex}
+% \end{macrocode}
+% \begin{macro}{\linespacing}\IndexCmd{linespacing}
+% \begin{macrocode}
+\newcommand{\linespacing}[1]{\linespread{#1}\selectfont}% 行距命令
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\stcleardp}\IndexCmd{stcleardp}
+% \begin{macrocode}
+\newcommand{\stcleardp}{%
+ \ifstoneside
+ \clearpage
+ \else
+ \cleardoublepage
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{超文本格式}
+% \begin{macrocode}
+\ifnocolorlinks
+\hypersetup{colorlinks=false}
+\else
+\hypersetup{colorlinks=true}
+\fi
+\hypersetup{
+ linkcolor=blue,
+ anchorcolor=black,
+ citecolor=olive,
+ filecolor=magenta,
+ menucolor=red,
+ urlcolor=magenta
+}
+% \end{macrocode}
+% \subsection{页眉、页脚}
+% \begin{quote}
+% 页眉采用下列形式(在页眉页脚的页面设置中选择“奇偶页不同”):偶数页:
+% 东南大学硕士学位论文(小五号宋体居中)奇数页:第 * 章 章题目(小五
+% 号宋体居中)页脚正文及其以后部分,其页脚为居中、连续的阿拉伯数字页
+% 码。不宜采用分章的非连续页码。摘要和目录等内容的页脚为居中、连续的
+% 大写罗马数字页码。
+% \end{quote}
+% \begin{macrocode}
+\newpagestyle{seustyle}{
+ \sethead[][{\song{}\xiaowuhao{}东南大学\@degree{}学位论文}][] % 偶数页
+ {}{{\song{}\xiaowuhao{}\chaptertitlename\quad\chaptertitle}}{} % 奇数页
+ \setfoot{}{\thepage}{}
+ \headrule
+}
+\newpagestyle{seufrontstyle}{
+ \sethead[][{\song{}\xiaowuhao{}东南大学\@degree{}学位论文}][]
+ {}{{\song{}\xiaowuhao{}东南大学\@degree{}学位论文}}{}
+ \setfoot{}{\thepage}{}
+ \headrule
+}
+\newpagestyle{seunolabelstyle}{
+ \sethead[][{\song{}\xiaowuhao{}东南大学\@degree{}学位论文}][]
+ {}{{\song{}\xiaowuhao{}\chaptertitle}}{}
+ \setfoot{}{\thepage}{}
+ \headrule
+}
+\renewpagestyle{plain}{
+ \setfoot{}{\thepage}{}
+}
+%
+% \end{macrocode}
+%
+% \section{正文之前部分}
+%
+% \subsection{设置}
+%
+% \begin{macro}{\author}\IndexCmd{author}
+% \begin{macrocode}
+\renewcommand{\author}[2]{
+ \def\@author{#1}
+ \newcommand{\@authoreng}{#2}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\title}\IndexCmd{title}
+% \begin{macrocode}
+\newcommand{\@titleeng}{}
+\newcommand{\@subtitleeng}{}
+\renewcommand{\title}[4]{
+ \def\@title{#1}
+ \renewcommand{\@subtitle}{#2}
+ \renewcommand{\@titleeng}{#3}
+ \renewcommand{\@subtitleeng}{#4}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newtitleline}\IndexCmd{newtitleline}
+% \begin{macrocode}
+\newcommand{\newtitleline}{\hfill\\%
+ \hspace*{\fill}\hspace{0em}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\advisor}\IndexCmd{advisor}
+% \begin{macrocode}
+\newcommand{\@advisorname}{}
+\newcommand{\@advisortitle}{}
+\newcommand{\@advisornameeng}{}
+\newcommand{\@advisortitleeng}{}
+\newcommand{\advisor}[4]{
+ \renewcommand{\@advisorname}{#1}
+ \renewcommand{\@advisortitle}{#2}
+ \renewcommand{\@advisornameeng}{#3}
+ \renewcommand{\@advisortitleeng}{#4}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\coadvisor}\IndexCmd{coadvisor}
+% \begin{macrocode}
+\newif\ifbcoadvisor\bcoadvisorfalse
+\newcommand{\@coadvisorname}{}
+\newcommand{\@coadvisortitle}{}
+\newcommand{\@coadvisornameeng}{}
+\newcommand{\@coadvisortitleeng}{}
+\newcommand{\coadvisor}[4]{
+ \bcoadvisortrue
+ \renewcommand{\@coadvisorname}{#1}
+ \renewcommand{\@coadvisortitle}{#2}
+ \renewcommand{\@coadvisornameeng}{#3}
+ \renewcommand{\@coadvisortitleeng}{#4}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\categorynumber}\IndexCmd{categorynumber}
+% \begin{macrocode}
+\newcommand{\@categorynumber}{}
+\newcommand{\categorynumber}[1]{\renewcommand{\@categorynumber}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\secretlevel}\IndexCmd{secretlevel}
+% \begin{macrocode}
+\newcommand{\@secretlevel}{}
+\newcommand{\secretlevel}[1]{\renewcommand{\@secretlevel}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\UDC}\IndexCmd{UDC}
+% \begin{macrocode}
+\newcommand{\@UDC}{}
+\newcommand{\UDC}[1]{\renewcommand{\@UDC}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\studentid}\IndexCmd{studentid}
+% \begin{macrocode}
+\newcommand{\@studentid}{}
+\newcommand{\studentid}[1]{\renewcommand{\@studentid}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\degree}\IndexCmd{degree}
+% \begin{macrocode}
+\newcommand{\degree}[1]{
+ \renewcommand{\@appdegree}{#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\major}\IndexCmd{major}
+% \begin{macrocode}
+\newcommand{\@majorlen}{8em}
+\newcommand{\@major}{}
+\newcommand{\major}[2][8em]{
+ \renewcommand{\@majorlen}{#1}
+ \renewcommand{\@major}{#2}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\department}\IndexCmd{department}
+% \begin{macrocode}
+\newcommand{\@department}{}
+\newcommand{\@departmenteng}{~}
+\newcommand{\department}[2]{
+ \renewcommand{\@department}{#1}
+ \renewcommand{\@departmenteng}{#2}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\submajor}\IndexCmd{submajor}
+% \begin{macrocode}
+\newcommand{\@submajor}{}
+\newcommand{\submajor}[1]{
+ \renewcommand{\@submajor}{#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\defenddate}\IndexCmd{defenddate}
+% \begin{macrocode}
+\newcommand{\@defenddate}{}
+\newcommand{\defenddate}[1]{\renewcommand{\@defenddate}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\authorizeorganization}
+% \IndexCmd{authorizeorganization}
+% \begin{macrocode}
+\newcommand{\authorizeorganization}[1]{
+ \renewcommand{\@authorizeorganization}{#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\authorizedate}\IndexCmd{authorizedate}
+% \begin{macrocode}
+\newcommand{\@authorizedate}{}
+\newcommand{\authorizedate}[1]{\renewcommand{\@authorizedate}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\committeechair}\IndexCmd{committeechair}
+% \begin{macrocode}
+\newcommand{\@committeechair}{}
+\newcommand{\committeechair}[1]{\renewcommand{\@committeechair}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reader}\IndexCmd{reader}
+% \begin{macrocode}
+\newcommand{\@readerA}{}
+\newcommand{\@readerB}{}
+\newcommand{\reader}[2]{
+ \renewcommand{\@readerA}{#1}
+ \renewcommand{\@readerB}{#2}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\duration}\IndexCmd{duration}
+% \begin{macrocode}
+\newcommand{\@duration}{}
+\newcommand{\duration}[1]{\renewcommand{\@duration}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\address}\IndexCmd{address}
+% \begin{macrocode}
+\newcommand{\@address}{}
+\newcommand{\address}[1]{\renewcommand{\@address}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\thanks}\IndexCmd{thanks}
+% \begin{macrocode}
+\newif\ifseuthesisthanks\seuthesisthanksfalse
+\newcommand{\seuthesis@thanks}{}
+\renewcommand{\thanks}[1]{\seuthesisthankstrue\renewcommand{\seuthesis@thanks}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{封面}
+%
+% \begin{macro}{\maketitle}\IndexCmd{maketitle}
+% \begin{macrocode}
+\renewcommand{\maketitle}{
+ %
+ % 设置书签
+ % Note: The `CJKbookmarks' option should only be used for bookmarks
+ % *not* in Unicode.
+ \GetFileInfo{seuthesis.cls} % get the correct fileversion
+ \hypersetup{
+ pdfauthor={\@author},
+ pdftitle={\universityname{}\@academicdegree}, %文件标题
+ pdfsubject={\@title \@subtitle}, %文件主题
+ pdfcreator={The \seuthesis{} class (v \fileversion)} % 应用程序
+ }
+
+ \pagestyle{empty}
+ \ifdoublecover
+ \stcleardp
+ \else\fi
+ \chinesecover
+
+ \renewcommand*\frontmatter{%
+ \if@twoside\cleardoubleoddpage\else\clearpage\fi
+ \@mainmatterfalse\pagenumbering{Roman}% 大写罗马字母
+ }
+
+ \ifbachelordegree
+ \frontmatter
+ \else
+ \ifdoublecover
+ \stcleardp
+ \else\fi
+ \englishcover % 英文封面
+ \thispagestyle{empty}
+ \seudeclare % 独创性和使用授权声明
+ \frontmatter % 开始正文之前的部分
+ \pagestyle{seufrontstyle}\clearpage
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{本模板的logo}
+% \begin{macro}{\seuthesis}
+% \begin{macrocode}
+\newcommand{\seuthesis}{%
+ S\hspace{-0.3ex}\raisebox{-0.5ex}{E}\hspace{-0.3ex}U\hspace{0.1em}%
+ \textsc{Thesis}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{中文强调}
+% \begin{macro}{\emph}
+% \begin{macrocode}
+\let\orig@emph=\emph
+\renewcommand{\emph}[1]{{\orig@emph{\kai#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{中文封面}
+% \begin{macro}{\chinesecover}
+% \begin{macrocode}
+\newcommand{\CoverTopOption}[3][s]{
+ \makebox[1.5cm][#1]{\xiaowuhao #2}:{
+ \underline{\makebox[1.5cm][c]{\xiaowuhao #3}}}
+}
+
+\newcommand{\CoverBottomOption}[3][4.5cm]{
+ \makebox[7cm][s]{
+ {\song\xiaosihao#2} %宋体小四号
+ \underline{\makebox[#1][c]{\hei\xiaosihao#3}} %黑体小四号粗体
+ }
+}
+
+\newcommand{\chinesecover}{
+ \ifengineering
+ \def\@degreepic{engineering}
+ \else
+ \ifmasterdegree
+ \def\@degreepic{master}
+ \else
+ \def\@degreepic{doctor}
+ \fi
+ \fi
+
+ \begin{titlepage}
+ \linespacing{1.0}
+ \begin{picture}(0,0)(24,250)
+ {\includegraphics[width=\textwidth,bb=0 0 1683 986]{figures/front-cover.jpg}}
+ \end{picture}
+ \ifengineering
+ \begin{picture}(0,0)(-70,255)
+ {\includegraphics[height=30pt,bb=0 0 484 55]{figures/engineering.png}}
+ \end{picture}
+ \else
+ \begin{picture}(0,0)(-86,255)
+ {\includegraphics[height=40pt,bb=0 0 1149 150]{figures/{\@degreepic}.png}}
+ \end{picture}
+ \fi
+ \begin{picture}(0,0)(-350,50)
+ {\includegraphics[width=50pt,bb=0 0 500 501]{figures/seu-color-logo.png}}
+ \end{picture}
+
+ \begin{tabular}{l}
+ \CoverTopOption{\schoolcodepre}{\schoolcode} \\
+ \CoverTopOption{\categorynumberpre}{\@categorynumber} \\
+ \CoverTopOption{\secretlevelpre}{\@secretlevel}\\
+ \CoverTopOption{U D C}{\@UDC} \\
+ \CoverTopOption{\studentidpre}{\@studentid}
+ \end{tabular}
+
+ \vspace*{7cm}
+
+ \begin{center}
+ \linespacing{1.25}
+ \yihao\hei\@title\\%题名 黑体一号居中
+ \yihao\hei\@subtitle%副题名 黑体一号居中
+ \end{center}
+
+ \vspace*{20pt}
+
+ \renewcommand{\arraystretch}{2.0}
+ \setlength{\tabcolsep}{0pt}
+ \begin{center}
+ \begin{tabular}{cr}
+ \makebox[3.5cm][s]{\xiaoerhao\song\authorpre} &%宋体小二
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\hei\@author}
+ \makebox[2cm][r]{}}} \\%黑体小二粗体
+ \makebox[3.5cm][s]{\xiaoerhao\song\advisorpre} &
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\hei\@advisorname}
+ \makebox[2cm][r]{\xiaoerhao\hei\@advisortitle}}}
+ \\
+ &
+ \ifbcoadvisor
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\hei\@coadvisorname}
+ \makebox[2cm][r]{\xiaoerhao\hei\@coadvisortitle}}}
+ \else
+ \fi \\
+ \end{tabular}
+ \end{center}
+
+ \vspace*{10pt}
+
+ \setlength{\tabcolsep}{10pt}
+ \begin{center}
+ \begin{tabular}{ll}
+ \CoverBottomOption{\appdegreepre}{\@appdegree} &
+ \CoverBottomOption{\authorizeorganizationpre}{\@authorizeorganization} \\
+ \CoverBottomOption{\majorpre}{\@major} &
+ \CoverBottomOption{\defenddatepre}{\@defenddate}\\
+ \CoverBottomOption{\submajorpre}{\@submajor} &
+ \CoverBottomOption{\authorizedatepre}{\@authorizedate}\\
+ \CoverBottomOption[4cm]{\committeechairpre}{\@committeechair} &
+ \CoverBottomOption{\readerpre}{\@readerA}\\
+ & \CoverBottomOption{\makebox[2.55cm]{}}{\@readerB}
+ \end{tabular}
+ \end{center}
+
+ \vfill
+
+ {\song\sihao\centerline{\today} \par}
+
+ \end{titlepage}
+ \stcleardp
+
+ % 中文封二
+ \thispagestyle{empty}%
+ \begin{center}
+ \xiaochuhao
+ \includegraphics[height=0.63in]{figures/seu-text-logo}
+
+ \ifmasterdegree
+ \includegraphics{figures/master-hwzs}
+ \else
+ \includegraphics{figures/doctor-hwzs}
+ \fi
+
+ \vspace{31.5pt}
+
+ \linespacing{1.25}
+ \yihao\hei\@title\\%题名 黑体一号居中
+ \yihao\hei\@subtitle%副题名 黑体一号居中
+
+ \vspace{42pt}
+ \begin{tabular}{cr}
+ \makebox[3.5cm][s]{\xiaoerhao\hei{}专~~业~~名~~称:} &
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\song\textbf{\@major}}
+ \makebox[2cm][r]{}}} \\
+ \\
+ \makebox[3.5cm][s]{\xiaoerhao\hei\authorpre} &
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\song\textbf{\@author}}
+ \makebox[2cm][r]{}}} \\
+ \\
+ \makebox[3.5cm][s]{\xiaoerhao\hei\advisorpre} &
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\song\textbf{\@advisorname}}
+ \makebox[2cm][r]{\xiaoerhao\song\textbf{\@advisortitle}}}}
+ \\
+ &
+ \ifbcoadvisor
+ \underline{\makebox[6cm][s]{
+ \hspace*{1cm}
+ \makebox[2.5cm][c]{\xiaoerhao\song\textbf{\@coadvisorname}}
+ \makebox[2cm][r]{\xiaoerhao\song\textbf{\@coadvisortitle}}}}
+ \else
+ \fi \\
+ \end{tabular}
+ \end{center}
+
+ \def\blfootnote{\xdef\@thefnmark{}\@footnotetext}
+ \ifseuthesisthanks
+ \blfootnote{\wuhao\seuthesis@thanks}
+ \fi
+
+ \stcleardp
+}
+
+\ifbachelordegree % 本科论文封面
+\renewcommand{\chinesecover}{
+ \begin{titlepage}
+ \linespacing{1.0}
+ \begin{center}
+ \vspace*{20pt}
+ \includegraphics[height=2cm]{figures/seu-badge-logo}
+ \quad \includegraphics[height=2cm]{figures/seu-text-logo} \\
+ \vspace*{60pt}
+ \yihao\hei \bachelortitle \\
+ \vspace*{60pt}
+ {\xiaoerhao\song \titlepre}
+ {\erhao\song \parbox[t]{18em}{\fs\uline{\hfill\@title\hfill}}} \\
+ \vspace*{40pt}
+ \renewcommand{\arraystretch}{1.5}
+ \setlength{\tabcolsep}{0pt}
+ \begin{tabular}{clcl}
+ \sanhao\fs
+ \underline{\makebox[8em][s]{\makebox[8em][c]{\@department}}} &
+ \sanhao
+ \departmentpre &
+ \sanhao\fs
+ \underline{\makebox[\@majorlen][s]{\makebox[\@majorlen][c]{\@major}}} &
+ \sanhao \majorpre \\
+ \end{tabular}
+
+ \vspace*{70pt}
+
+ \renewcommand{\arraystretch}{1.1}
+ \setlength{\tabcolsep}{0pt}
+ \begin{tabular}{c}
+ \sanhao\studentidpre\quad\underline{%
+ \makebox[20em][s]{\makebox[20em][c]{%
+ \textsf{\@studentid}}}} \\
+ \sanhao\studentnamepre\quad\underline{\makebox[20em][s]{%
+ \makebox[20em][c]{\fs{\@author}}}} \\
+ \sanhao\advisorpre\quad\underline{\makebox[20em][s]{%
+ \makebox[20em][c]{\fs{\@advisorname}}}}%
+ \\
+ \ifbcoadvisor
+ \sanhao\coadvisorpre\quad\underline{\makebox[20em][s]{%
+ \makebox[20em][c]{\fs{\@coadvisorname}}}}\\%
+ \fi
+ \sanhao\durationpre\quad\underline{\makebox[20em][s]{
+ \makebox[20em]{\textsf{\@duration}}}} \\
+ \sanhao\addresspre\quad\underline{\makebox[20em][s]{
+ \makebox[20em][c]{\fs{\@address}}}} \\
+ \end{tabular}
+ \vfill
+ {\sanhao\today \par}
+ \end{center}
+ \end{titlepage}
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{英文封面}
+% \begin{macro}{\englishcover}
+% \begin{macrocode}
+\newcommand{\englishcover}{
+ \thispagestyle{empty}%
+ \begin{center}
+ ~\\
+ {\fontsize{24pt}{28pt}\selectfont
+ \MakeUppercase{\@titleeng}\\
+ \MakeUppercase{\@subtitleeng}
+ \par
+ }
+
+ \vspace{1.0in}%
+ {\fontsize{16pt}{24pt}\selectfont
+ {A
+ \ifmasterdegree
+ Thesis
+ \else
+ Dissertation
+ \fi
+ submitted to}\\
+ {\universitynameeng}\\
+ {For the Academic Degree of \academicdegreeeng}\\
+ {\vspace{0.5in}}%
+ {BY}\\
+ {\@authoreng}\\
+ {\vspace{0.5in}}%
+ {Supervised by:}\\
+ {\@advisortitleeng\ \@advisornameeng}\\
+ \ifbcoadvisor
+ {and}\\
+ {\@coadvisortitleeng\ \@coadvisornameeng}\\
+ \else
+ \fi
+ {\vspace{0.5in}}%
+ {\vfill}
+ {\@departmenteng}\\
+ {\universitynameeng}\\
+ {\todayeng}
+ \par
+ }%
+ \end{center}%
+ \stcleardp%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{摘要和关键词}
+% \begin{environment}{abstract}\IndexEnv{abstract}
+% \begin{macrocode}
+\newenvironment{abstract}[1]
+{
+ \newcommand{\@keywords}{#1}
+ \hypersetup{pdfkeywords={\@keywords}}
+ \stcleardp
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\@abstracttitletoc}
+ \ifbachelordegree
+ \renewcommand{\newtitleline}{\\}
+ \chapter*{\@title}
+
+ \begin{flushright}
+ \begin{tabular}[h]{ll}
+ \@studentid & \kai\@author \\
+ \advisorpre & \kai\@advisorname \\
+ \end{tabular}
+ \end{flushright}
+
+ \begin{center}
+ \Large \hei\@abstracttitle
+ \end{center}
+ \par
+ \else
+ \chapter*{\@abstracttitle}
+ \fi
+ \song
+ \ifbachelordegree
+ \xiaosihao
+ \else
+ \wuhao
+ \fi
+}{
+ \par
+ \begin{description}
+ \item[关键词:] \@keywords
+ \end{description}
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{englishabstract}\IndexEnv{englishabstract}
+% \begin{macrocode}
+\newenvironment{englishabstract}[1]
+{
+ \newcommand{\@keywords}{#1}
+ \stcleardp
+ \phantomsection
+ \addcontentsline{toc}{chapter}{Abstract}
+ \ifbachelordegree
+ \chapter*{\@titleeng}
+ \begin{flushright}
+ \begin{tabular}[h]{l}
+ \@studentid \qquad \@authoreng \\
+ \@advisornameeng \\
+ \end{tabular}
+ \end{flushright}
+ \begin{center}
+ {\Large Abstract}
+ \end{center}
+ \par
+ \else
+ \chapter*{Abstract}
+ \fi
+ \song
+ \ifbachelordegree
+ \xiaosihao
+ \else
+ \wuhao
+ \fi
+}{
+ \par
+ \begin{description}
+ \item[Keywords:] \@keywords
+ \end{description}
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{目录}
+% \begin{macro}{\tableofcontents}
+% \begin{macrocode}
+\let\tableofcontents@orig=\tableofcontents
+\renewcommand{\tableofcontents}
+{
+ \stcleardp
+ {\linespacing{1.15}%
+ \song\xiaosihao%
+ \phantomsection
+ \tableofcontents@orig \par
+ \pagestyle{seunolabelstyle}\clearpage} %目录部分字体可采用小四号宋体。
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{本论文专用术语的注释表}
+% 本论文专用术语(符号、变量、缩略词等)的注释表(任选)
+% \begin{environment}{terminology}\IndexEnv{terminology}
+% \begin{macrocode}
+\newenvironment{terminology}[1][\@terminologytitle]
+{
+ \stcleardp
+ \phantomsection
+ \addcontentsline{toc}{chapter}{#1}
+ \chapter*{#1}
+ \song\xiaosihao
+}{
+ \par
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \section{正文}
+% \begin{environment}{Main}\IndexEnv{Main}
+% \begin{macrocode}
+\newenvironment{Main}
+{
+ \pagestyle{seustyle}
+ \mainmatter % 开始正文部分
+ \song\xiaosihao % 小四号宋体
+}{
+ \par
+ \backmatter % 开始正文之后的部分
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{图、表浮动设置}
+% 放宽松浮动的比例参数
+% \begin{macrocode}
+\renewcommand{\textfraction}{0.07}
+\renewcommand{\topfraction}{0.9}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.85}
+\setcounter{totalnumber}{6}
+% \end{macrocode}
+%
+% \section{参考文献}
+% 引用参考文献,上标形式
+% \begin{macro}{\cite}\IndexCmd{cite}
+% \begin{macrocode}
+\let\originalcite=\cite
+\renewcommand{\cite}[1]{\textsuperscript{\originalcite{#1}}}
+% \end{macrocode}
+% \end{macro}
+% 普通形式
+% \begin{macro}{\citet}\IndexCmd{citet}
+% \begin{macrocode}
+\renewcommand{\citet}[1]{\originalcite{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% 定义参考文献样式
+% \begin{macrocode}
+\bibliographystyle{seuthesis}
+\renewcommand\@biblabel[1]{#1} % Reference list option change from [1] to 1
+\let\orig@bibliography=\bibliography
+\renewcommand{\bibliography}[1]{
+ \orig@bibliography{#1}
+ \pagestyle{seunolabelstyle}\clearpage % 使参考文献使用 seunolabel 页面样式
+ \pagestyle{seufrontstyle}} % 恢复原有样式给后续部分
+% \end{macrocode}
+%
+% \section{正文之后部分}
+% \subsection{致谢}
+% \begin{environment}{Acknowledgement}\IndexEnv{Acknowledgement}
+% \begin{macrocode}
+\newenvironment{Acknowledgement}[1][\@acknowledgementtitle]
+{%
+ \stcleardp
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\@acknowledgementtitletoc}
+ \chapter*{#1}
+ \song\wuhao
+}{\par}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{附录}
+% \begin{environment}{Appendix}\IndexEnv{Appendix}
+% \begin{macrocode}
+\newenvironment{Appendix}
+{%
+ \pagestyle{seustyle}
+ \@mainmattertrue
+ \appendix
+ \titlecontentsappendix
+}{\@mainmatterfalse\par
+ \thispagestyle{seustyle}\clearpage
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{作者简介}
+% \begin{environment}{Resume}\IndexEnv{Resume}
+% \begin{macrocode}
+\newenvironment{Resume}[1][\@resumetitle]
+{%
+ \stcleardp
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\@resumetitletoc}
+ \chapter*{#1}
+ \song\wuhao
+}{\par}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{封底}
+% \begin{macro}{\backcover}\IndexCmd{backcover}
+% \begin{macrocode}
+\newcommand{\backcover}{
+ \pagestyle{empty}
+ \clearpage
+ \begin{picture}(0,0)(20,650)
+ {\includegraphics[width=\textwidth,bb=0 0 2424 3508]{figures/back-cover.png}}
+ \end{picture}
+}
+\ifbachelordegree
+\renewcommand{\backcover}{}
+\fi
+%</cls>
+% \end{macrocode}
+% \end{macro}
+
+
+% \section{中文关键字映射}
+% 将包含中文的代码放在\texttt{seuthesis-*.cfg}中,可以直接转换成不同版
+% 本的编码,可以只要一份代码实现两种编码格式。
+% \subsection{正文之前部分}
+% \begin{macrocode}
+%<*cfg>
+\ProvidesFile{seuthesis.cfg}
+\makeatletter
+\newcommand{\universityname}{东南大学}
+\newcommand{\universitynameeng}{Southeast University}
+\newcommand{\schoolcodepre}{学校代码}
+\newcommand{\schoolcode}{10286}
+\newcommand{\secretlevelpre}{密级}
+\newcommand{\categorynumberpre}{分类号}
+\newcommand{\studentidpre}{学号}
+\newcommand{\authorpre}{研究生姓名:}
+\newcommand{\advisorpre}{导~~师~~姓~~名:}
+\newcommand{\appdegreepre}{申请学位类别}
+\newcommand{\majorpre}{一级学科名称}
+\newcommand{\submajorpre}{二级学科名称}
+\newcommand{\defenddatepre}{论文答辩日期}
+\newcommand{\authorizeorganizationpre}{学位授予单位}
+\newcommand{\@authorizeorganization}{~~东~南~大~学~~}
+\newcommand{\authorizedatepre}{学位授予日期}
+\newcommand{\committeechairpre}{答辩委员会主席}
+\newcommand{\readerpre}{评~~~~~~~~~阅~~~~~~~~~人}
+\newcommand{\@abstracttitle}{摘\quad 要}
+\newcommand{\@abstracttitletoc}{摘要}
+\newcommand{\@terminologytitle}{本论文专用术语的注释表}
+\renewcommand{\today}{\the\year~年~\the\month~月~\the\day~日}
+% 本科论文需要
+\newcommand{\addresspre}{设计地点}
+\newcommand{\bachelortitle}{毕业设计(论文)报告}
+\newcommand{\durationpre}{起讫日期}
+\newcommand{\coadvisorpre}{顾问老师}
+
+\ifbachelordegree
+\newcommand{\@degree}{学士}
+\newcommand{\@appdegree}{学士}
+\newcommand{\academicdegreeeng}{Bachelor of Engineering}
+\newcommand{\titlepre}{题目\quad}
+\newcommand{\departmentpre}{院(系)}
+\renewcommand{\majorpre}{专\quad 业}
+\renewcommand{\studentidpre}{学\hspace*{2.2em}号}
+\newcommand{\studentnamepre}{学生姓名}
+\renewcommand{\advisorpre}{指导教师}
+\else\ifmasterdegree
+\newcommand{\@degree}{硕士}
+\newcommand{\@appdegree}{硕士}
+\newcommand{\academicdegreeeng}{Master of Engineering}\relax
+\else
+\newcommand{\@degree}{博士}
+\newcommand{\@appdegree}{博士}
+\newcommand{\academicdegreeeng}{Doctor of Engineering}\relax
+\fi
+\fi
+\newcommand{\@academicdegree}{\@degree{}学位论文}
+\makeatother
+% \end{macrocode}
+%
+% \subsubsection{论文独创性声明和使用授权声明内容}
+%
+% \begin{macro}{\signline}
+% 签名的横线
+% \begin{macrocode}
+\newcommand{\signline}{\underline{\makebox[2.5cm][s]{}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\seudeclare}
+% \begin{macrocode}
+\newcommand{\seudeclare}{
+ {\xiaosihao
+ \begin{center}
+ {\hei\sanhao 东南大学学位论文独创性声明}
+ \end{center}
+ \vspace{0.5in}
+ { \linespacing{1.5}
+ 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的
+ 研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包
+ 含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教
+ 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的
+ 任何贡献均已在论文中作了明确的说明并表示了谢意。\par}
+ \vspace{0.3in}
+ \begin{flushright}
+ 研究生签名:\signline 日~期:\signline
+ \end{flushright}
+
+ \vspace{1.5in}
+
+ \begin{center}
+ {\hei\sanhao 东南大学学位论文使用授权声明}
+ \end{center}
+ \vspace{0.5in}
+ { \linespacing{1.5}
+ 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位
+ 论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。
+ 本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文
+ 外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。
+ 论文的公布(包括刊登)授权东南大学研究生院办理。\par}
+ \vspace{0.3in}
+ \begin{flushright}
+ 研究生签名:\signline 导师签名:\signline 日~期:\signline
+ \end{flushright}
+ \par
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{目录}
+% \begin{macrocode}
+\renewcommand{\contentsname}{目\quad 录}
+\makeatletter
+\newcommand{\@contentsnametoc}{目录}
+\makeatother
+\newcommand{\titlecontentschapter}{%
+\titlecontents{chapter}[0pt]{\vspace{.5\baselineskip}\bfseries}
+{第\CJKnumber{\thecontentslabel}章\quad}{}
+{\hspace{.5em}\titlerule*[10pt]{$\cdot$}\contentspage}
+}
+\newcommand{\titlecontentsappendix}{%
+\titlecontents{chapter}[0pt]{\vspace{.5\baselineskip}\bfseries}
+{附录 \thecontentslabel\quad}{}
+{\hspace{.5em}\titlerule*[10pt]{$\cdot$}\contentspage}
+}
+\titlecontentschapter % 使目录格式生效
+% \end{macrocode}
+%
+% \subsection{正文}
+% \subsection{章节标题}
+% 三号黑体居中
+% \begin{macrocode}
+\renewcommand{\chaptername}{第\CJKnumber{\thechapter}章}
+\renewcommand{\appendixname}{附录 \thechapter}
+\titleformat{\chapter}[hang]{\centering\hei\sanhao}{\chaptertitlename}{1em}{}%三号黑体居中
+\titleformat{\section}[hang]{\song\sihao\bfseries}{\thesection}{1ex}{}%四号宋体(粗体)居左
+\titleformat{\subsection}[hang]{\song\xiaosihao}{\thesubsection}{1ex}{}% 小四
+\titleformat{\subsubsection}[hang]{\song\wuhao}{\thesubsubsection}{1ex}{}% 五号
+\setcounter{secnumdepth}{3}
+% \end{macrocode}
+%
+% \begin{macro}{\refchapter}\IndexCmd{refchapter}
+% \begin{macrocode}
+\newcommand{\refchapter}[1]{\hyperref[#1]{第 \ref*{#1} 章}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\refappendix}\IndexCmd{refappendix}
+% \begin{macrocode}
+\newcommand{\refappendix}[1]{\hyperref[#1]{附录 \ref*{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\refsec}\IndexCmd{refsec}
+% \begin{macrocode}
+\newcommand{\refsec}[1]{\hyperref[#1]{\ref*{#1} 节}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\refsubsec}\IndexCmd{refsubsec}
+% \begin{macrocode}
+\newcommand{\refsubsec}[1]{\hyperref[#1]{\ref*{#1} 小节}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\refsubsubsec}\IndexCmd{refsubsubsec}
+% \begin{macrocode}
+\newcommand{\refsubsubsec}[1]{\hyperref[#1]{\ref*{#1} 子节}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{图、表}
+% \begin{quote}
+% 表格名及图名用5号宋体
+% \end{quote}
+% \begin{macrocode}
+\DeclareCaptionFont{capFont}{\song\wuhao} % 表格名及图名用5号宋体
+\DeclareCaptionLabelSeparator{twospace}{~~}
+\captionsetup{
+ labelsep=twospace,% 去掉图标签后的冒号
+ font={capFont},%
+ figurename=图,%
+ tablename=表,%
+ listfigurename=插图目录,%
+ listtablename=表格目录}
+\makeatletter
+\renewcommand\fps@figure{htbp} % 设置图浮动的默认参数
+\renewcommand\fps@table{htbp}
+\makeatother
+% \end{macrocode}
+%
+% \subsection{正文之后部分}
+%
+% \begin{macrocode}
+\makeatletter
+\newcommand{\@acknowledgementtitle}{致\quad 谢}
+\newcommand{\@acknowledgementtitletoc}{致谢}
+\newcommand{\@resumetitle}{作者简介~(包括论文和成果清单)}
+\newcommand{\@resumetitletoc}{作者简介}
+\renewcommand{\bibname}{参考文献}
+\makeatother
+\IndexPrologue{\chapter*{索\quad 引}}
+%</cfg>
+% \end{macrocode}
+%
+% \Finale \RecordChanges
+
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:
diff --git a/macros/latex/contrib/seuthesis/seuthesis.ind b/macros/latex/contrib/seuthesis/seuthesis.ind
new file mode 100644
index 0000000000..84a474cc72
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/seuthesis.ind
@@ -0,0 +1,102 @@
+
+ \begin{theindex}
+ \makeatletter\scan@allowedfalse
+{\bfseries\hfil Symbols\hfil}\nopagebreak
+
+ \item \texttt {\char '134\relax UDC}\pfill \hyperpage{9},
+ \hyperpage{20}
+ \item \texttt {\char '134\relax address}\pfill \hyperpage{10},
+ \hyperpage{22}
+ \item \texttt {\char '134\relax advisor}\pfill \hyperpage{9}
+ \item \texttt {\char '134\relax authorizedate}\pfill \hyperpage{10},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax authorizeorganization}\pfill
+ \hyperpage{10}, \hyperpage{21}
+ \item \texttt {\char '134\relax author}\pfill \hyperpage{9},
+ \hyperpage{19}
+ \item \texttt {\char '134\relax autoref}\pfill \hyperpage{13}
+ \item \texttt {\char '134\relax backcover}\pfill \hyperpage{33}
+ \item \texttt {\char '134\relax begin\{Acknowledgement\}}\pfill
+ \hyperpage{13}, \hyperpage{33}
+ \item \texttt {\char '134\relax begin\{Appendix\}}\pfill
+ \hyperpage{13}, \hyperpage{33}
+ \item \texttt {\char '134\relax begin\{Main\}}\pfill \hyperpage{12},
+ \hyperpage{32}
+ \item \texttt {\char '134\relax begin\{Resume\}}\pfill
+ \hyperpage{14}, \hyperpage{33}
+ \item \texttt {\char '134\relax begin\{abstract\}}\pfill
+ \hyperpage{11}, \hyperpage{29}
+ \item \texttt {\char '134\relax begin\{document\}}\pfill
+ \hyperpage{5}
+ \item \texttt {\char '134\relax begin\{englishabstract\}}\pfill
+ \hyperpage{11}, \hyperpage{30}
+ \item \texttt {\char '134\relax begin\{flushright\}}\pfill
+ \hyperpage{13}
+ \item \texttt {\char '134\relax begin\{terminology\}}\pfill
+ \hyperpage{11}, \hyperpage{31}
+ \item \texttt {\char '134\relax bibliography}\pfill \hyperpage{13}
+ \item \texttt {\char '134\relax categorynumber}\pfill \hyperpage{8},
+ \hyperpage{20}
+ \item \texttt {\char '134\relax chapter\{第一个附录\}}\pfill
+ \hyperpage{13}
+ \item \texttt {\char '134\relax citet}\pfill \hyperpage{13},
+ \hyperpage{32}
+ \item \texttt {\char '134\relax cite}\pfill \hyperpage{13},
+ \hyperpage{32}
+ \item \texttt {\char '134\relax coadvisor}\pfill \hyperpage{9},
+ \hyperpage{20}
+ \item \texttt {\char '134\relax committeechair}\pfill \hyperpage{10},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax date}\pfill \hyperpage{10}
+ \item \texttt {\char '134\relax defenddate}\pfill \hyperpage{10},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax degree}\pfill \hyperpage{10},
+ \hyperpage{20}
+ \item \texttt {\char '134\relax department}\pfill \hyperpage{9},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax documentclass}\pfill \hyperpage{5},
+ \hyperpage{41}, \hyperpage{43}
+ \item \texttt {\char '134\relax duration}\pfill \hyperpage{10},
+ \hyperpage{22}
+ \item \texttt {\char '134\relax end\{Main\}}\pfill \hyperpage{13}
+ \item \texttt {\char '134\relax end\{document\}}\pfill \hyperpage{5}
+ \item \texttt {\char '134\relax linespacing}\pfill \hyperpage{18}
+ \item \texttt {\char '134\relax major}\pfill \hyperpage{9},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax maketitle}\pfill \hyperpage{5},
+ \hyperpage{8}, \hyperpage{22}
+ \item \texttt {\char '134\relax newtitleline}\pfill \hyperpage{19},
+ \hyperpage{41}
+ \item \texttt {\char '134\relax printindex}\pfill \hyperpage{14}
+ \item \texttt {\char '134\relax reader}\pfill \hyperpage{10},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax refappendix}\pfill \hyperpage{37}
+ \item \texttt {\char '134\relax refchapter}\pfill \hyperpage{13},
+ \hyperpage{37}
+ \item \texttt {\char '134\relax refsec}\pfill \hyperpage{13},
+ \hyperpage{37}
+ \item \texttt {\char '134\relax refsubsec}\pfill \hyperpage{37}
+ \item \texttt {\char '134\relax refsubsubsec}\pfill \hyperpage{37}
+ \item \texttt {\char '134\relax secretlevel}\pfill \hyperpage{9},
+ \hyperpage{20}
+ \item \texttt {\char '134\relax stcleardp}\pfill \hyperpage{18}
+ \item \texttt {\char '134\relax studentid}\pfill \hyperpage{9},
+ \hyperpage{20}
+ \item \texttt {\char '134\relax submajor}\pfill \hyperpage{10},
+ \hyperpage{21}
+ \item \texttt {\char '134\relax tableofcontents}\pfill
+ \hyperpage{11}
+ \item \texttt {\char '134\relax thanks}\pfill \hyperpage{11},
+ \hyperpage{22}
+ \item \texttt {\char '134\relax title}\pfill \hyperpage{9},
+ \hyperpage{19}
+ \item \texttt {\char '134\relax 命令}\pfill \hyperpage{VII}
+ \item \texttt {bachelor}\pfill \hyperpage{8}, \hyperpage{15}
+ \item \texttt {doctor}\pfill \hyperpage{8}, \hyperpage{15}
+ \item \texttt {doublecover}\pfill \hyperpage{8}
+ \item \texttt {engineering}\pfill \hyperpage{8}, \hyperpage{15}
+ \item \texttt {master}\pfill \hyperpage{8}, \hyperpage{15}
+ \item \texttt {nocolorlinks}\pfill \hyperpage{8}
+ \item \texttt {printedition}\pfill \hyperpage{8}
+
+ \end{theindex}
diff --git a/macros/latex/contrib/seuthesis/seuthesis.ins b/macros/latex/contrib/seuthesis/seuthesis.ins
new file mode 100644
index 0000000000..103540e627
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/seuthesis.ins
@@ -0,0 +1,66 @@
+%%
+%% Copyright (C) 2007 by Xu Yuan <xuyuan.cn@gmail.com>
+%% $Id$
+%%
+%% This file is part of the SEU-Thesis package project.
+%% ---------------------------------------------------
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3a
+%% 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.3a or later is part of all distributions of LaTeX
+%% version 2004/10/01 or later.
+%%
+
+\input docstrip
+
+\askonceonly
+\keepsilent
+\usedir{tex/latex/seuthesis}
+
+\preamble
+
+Copyright (C) 2007-\the\year by Xu Yuan <xuyuan.cn@gmail.com>
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3a
+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.3a or later is part of all distributions of LaTeX
+version 2004/10/01 or later.
+
+To produce the documentation run the original source files ending with `.dtx'
+through LaTeX.
+
+\endpreamble
+
+\generate{\file{seuthesis.cls}{\from{seuthesis.dtx}{cls}}
+ \file{seuthesis-utf8.cfg}{\from{seuthesis.dtx}{cfg}}
+ }
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* The recommended directory is TEXMF/tex/latex/seuthesis}
+\Msg{*}
+\Msg{* \space\space seuthesis.cls}
+\Msg{* \space\space seuthesis-utf8/gbk.cfg}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.dtx' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{***********************************************************}
+}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/seuthesis.pdf b/macros/latex/contrib/seuthesis/seuthesis.pdf
new file mode 100644
index 0000000000..769ec1c11c
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/seuthesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/seuthesis/zharticle/scrsize9pt.clo b/macros/latex/contrib/seuthesis/zharticle/scrsize9pt.clo
new file mode 100644
index 0000000000..7c59b01772
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/zharticle/scrsize9pt.clo
@@ -0,0 +1,156 @@
+%%
+%% This is file `scrsize9pt.clo',
+%% Modified from scrsize10pt.clo
+%%
+%% Copyright (c) 1994-2007
+%% Markus Kohm and any individual authors listed elsewhere in this file.
+%%
+%% This file was generated from file(s) of the KOMA-Script bundle.
+%% ---------------------------------------------------------------
+%%
+%% It may be distributed under the conditions of the
+%% LaTeX Project Public License in the version distributed together
+%% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'.
+%%
+%% This file may only be distributed together with a copy of the
+%% KOMA-Script bundle. You may however distribute the
+%% KOMA-Script bundle without all such generated files. See also
+%% `lppl.txt' or `lppl-de.txt' for additional information.
+%%
+%% The list of files belonging to KOMA-Script distribution is given in
+%% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for
+%% additional information.
+%%
+%% If this file is a beta version, you are not allowed to distribute it.
+%%
+%% English and German manuals are part of KOMA-Script bundle.
+%% ----------------------------------------------------------
+%%
+%% See `README'.
+%%
+%% The KOMA-Script bundle (but maybe not this file) was based upon the
+%% LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e
+%% standard classes created by The LaTeX3 Project 1994-1996.
+%%
+%%% From File: scrkvers.dtx
+\begingroup
+ \makeatletter
+ \ifx\KOMAScriptVersion\undefined
+ \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+ \gdef\KOMAScriptVersion{#1}%
+ }%
+ \else
+ \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+ \def\@tempa{#1}%
+ \ifx\KOMAScriptVersion\@tempa\else
+ \@latex@warning@no@line{%
+ \noexpand\KOMAScriptVersion\space is
+ `\KOMAScriptVersion',\MessageBreak
+ but `#1' was expected!\MessageBreak
+ You should not use classes, packages or files
+ from\MessageBreak
+ different KOMA-Script versions%
+ }%
+ \fi
+ }
+ \fi
+ \@CheckKOMAScriptVersion{2008/11/23 v3.01a KOMA-Script}%
+\endgroup
+%%% From File: scrkfont.dtx
+\ProvidesFile{%
+ scrsize9pt.clo%
+}[\KOMAScriptVersion\space font size class option %
+ (9pt)%
+]
+\def\normalsize{%
+ \@setfontsize\normalsize\@ixpt\@xipt%
+ \abovedisplayskip 8\p@ \@plus4\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 5\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\small{%
+ \@setfontsize\small\@viiipt\@ixpt%
+ \abovedisplayskip 5\p@ \@plus2\p@ \@minus2\p@
+ \abovedisplayshortskip \z@ \@plus1\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\footnotesize{%
+ \@setfontsize\footnotesize\@viipt\@viiipt
+ \abovedisplayskip 4\p@ \@plus2\p@ \@minus2\p@
+ \abovedisplayshortskip \z@ \@plus1\p@
+ \belowdisplayshortskip 2.5\p@ \@plus\p@ \@minus\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\scriptsize{\@setfontsize\scriptsize\@vipt\@viipt}
+\def\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\def\large{\@setfontsize\large\@xpt\@xiipt}
+\def\Large{\@setfontsize\Large\@xipt{13}}
+\def\LARGE{\@setfontsize\LARGE\@xiipt{14}}
+\def\huge{\@setfontsize\huge\@xivpt{18}}
+\def\Huge{\@setfontsize\Huge\@xviipt{22}}
+\normalsize
+\setlength\footnotesep {6.3\p@}
+\setlength{\skip\footins} {8\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {18\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{18\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus3\p@
+ \itemsep4\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%%% From File: scrkpar.dtx
+\@ifundefined{@list@extra}{}{%
+ \l@addto@macro{\@listi}{\@list@extra}%
+ \let\@listI=\@listi
+ \l@addto@macro{\@listii}{\@list@extra}%
+ \l@addto@macro{\@listiii}{\@list@extra}%
+ \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
+ \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
+}
+\@listi
+\endinput
+%%
+%% End of file `scrsize9pt.clo'.
diff --git a/macros/latex/contrib/seuthesis/zharticle/zharticle.bst b/macros/latex/contrib/seuthesis/zharticle/zharticle.bst
new file mode 100644
index 0000000000..00a51144cf
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/zharticle/zharticle.bst
@@ -0,0 +1,3551 @@
+% Copyright (C) 2008 by Nobel Huang <nobel1984@gmail.com>
+% $Id$
+%
+% This file is part of the zharticle package project.
+% ---------------------------------------------------
+% This file may be distributed and/or modified under the
+% conditions of the GNU General Public License v3
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.gnu.org/licenses/gpl.html
+%
+% modified from seuthesis.bst by Xu Yuan
+
+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 {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {remove.dots}
+{
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+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 {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+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 {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$ }
+ {year}
+ if$
+}
+
+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$
+ write$
+ newline$
+}
+
+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$ "" }
+ { "\textsc{" swap$ * "}" * }
+ if$
+}
+FUNCTION {bib.name.font}
+{ }
+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 "{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 %改为大写
+ ", 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 "[" * TypeofLit * "]" * title output.check}
+ if$
+ }
+ 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}
+{
+ title empty$
+ { "No Title" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]" * title output.check}
+ {format.title "[" * TypeofLit * "]" * title output.check}
+ if$
+ }
+ if$
+ ""
+}
+
+FUNCTION {format.cmisc.title.xx}
+{
+ patentid empty$
+ {%没有专利号应该是其它类型文献,直接标准输出
+ title empty$
+ { "" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]." * title output.check}
+ {format.title title output.check}
+ if$
+ }
+ if$
+ }
+ {%有专利号
+ country empty$
+ {
+ title empty$
+ { "" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]." * title output.check}
+ {format.title title output.check}
+ if$
+ }
+ if$
+ "" patentid * "" * *
+ }
+ {%有专利号,有国家
+ title empty$
+ { "" }
+ {
+ typeoflit empty$
+ {format.title "[缺文献类型标志代码]." * title output.check}
+ {format.title title output.check}
+ if$
+ }
+ if$
+
+ ":" country * "," * *
+ "" patentid * "" * *
+ }
+ 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}
+{
+ title empty$
+ { "No Title" }
+ {
+ typeoflit empty$
+ {format.title "[C]" * title output.check}
+ {format.title "[" * TypeofLit * "]" * title output.check}
+ if$
+ }
+ if$
+ ""
+}
+
+
+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$
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+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 {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.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { ":" pages n.dashify tie.or.space.connect * }
+ { ":" pages tie.or.space.connect * }
+ if$
+ }
+ if$
+}
+
+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}
+{
+ series empty$
+ { volume empty$
+ { pages empty$
+ { "" }
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ". " * pages n.dashify * ""}
+ if$
+ }
+ if$}
+ { ". " volume * "" * *
+ pages empty$
+ { "" }
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * ""}
+ if$
+ }
+ if$}
+ if$
+ }
+ {
+ new.block
+ volume empty$
+ { number empty$
+ { ". " * series * }
+ { series format.numberinseries * }
+ if$
+ ""
+ }
+ { number empty$
+ { ". " * series ", " * volume * * }
+ { ". " * series ", " * volume * format.numberinseries * }
+ if$
+ pages empty$
+ { "" }
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ": " * pages n.dashify * "" }
+ if$
+ }
+ 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.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}
+{ booktitle empty$
+ { "[No booktitle]" }
+ { editor empty$
+ new.block
+ { "In: " format.editors * booktitle * }
+ { "In: " format.editors * ", eds. " * booktitle * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ced.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ new.block
+ { "见: " format.ceditors * booktitle * }
+ { "见: " format.ceditors * ", 主编. " * booktitle * }
+ if$
+ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
+FUNCTION {format.in.proceedings.booktitle}
+{ booktitle empty$
+ { "" }
+ {format.btitle "booktitle" output.check }
+ if$
+}
+
+
+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
+ 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
+ new.block
+ format.cbook.continue.vol.num
+ new.block
+ format.caddr.pub "publisher" output.check
+ output.continue.cyear.check
+ 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
+ {
+ 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$
+}
+
+FUNCTION {seu.publisher}
+{
+ publisher empty$
+ {
+ school empty$
+ 'skip$
+ { format.school.pub "publisher" output.check }
+ if$
+ }
+ { format.misc.addr.pub "publisher" output.check }
+ 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
+ editor format.key output }
+ { format.authors "author" output.check %wk
+ author format.key output }
+ if$
+ new.block
+ format.inproceedings.title output
+ crossref missing$
+ {
+ format.in.ed.booktitle output
+ format.edition output
+ new.block
+ %seu.publisher
+ output.year.check
+ incollectionlike.series.volume.number.pages output
+ 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]:[Master's Thesis]" * "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]:[PhD Thesis]" * "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 {format.conference.title}
+{
+}
+
+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
+ output
+ 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.title "[G]" * "title" output.check % 资料汇编
+ new.block
+ crossref missing$
+ { format.edition output
+ booklike.series.volume.number output
+ new.block
+ seu.publisher output
+ format.url output
+ output.year.check output
+ format.pages output
+ }
+ { format.book.crossref output.nonnull
+ }
+ if$
+ 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 "[G]" * "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
+ seu.publisher output
+ format.url output
+ output.year.check output
+ %format.date.modifydate.citedate output
+ % format.pages output
+ }
+ { format.book.crossref output.nonnull
+ }
+ if$
+ 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
+
+ new.block
+ crossref missing$
+ {
+ format.cedition output
+ new.block
+ seu.publisher output
+ output.cyear.check
+ %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 {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$ " {\em 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 {author.key.label}
+%{ author empty$
+% { key empty$
+% { cite$ #1 #3 substring$ }
+% 'key
+% if$
+% }
+% { author format.lab.names }
+% if$
+%}
+%
+%FUNCTION {author.editor.key.label}
+%{ author empty$
+% { editor empty$
+% { key empty$
+% { cite$ #1 #3 substring$ }
+% 'key
+% if$
+% }
+% { editor format.lab.names }
+% if$
+% }
+% { author format.lab.names }
+% if$
+%}
+%
+%FUNCTION {editor.key.label}
+%{ editor empty$
+% { key empty$
+% { cite$ #1 #3 substring$ }
+% 'key
+% if$
+% }
+% { editor format.lab.names }
+% if$
+%}
+%
+%FUNCTION {calc.label} %wk修改
+% { type$ "book" =
+% type$ "cbook" =
+% type$ "inbook" =
+% type$ "cinbook" =
+% type$ "incollection" = % For sensible
+% type$ "cincollection" =
+% or or or or or % treatment of
+% 'author.editor.key.label % Singer in
+% { type$ "proceedings" = % BS 1629.
+% 'editor.key.label
+% 'author.key.label
+% if$
+% type$ "cproceedings" = % BS 1629.
+% 'editor.key.label
+% 'author.key.label
+% if$
+%
+% }
+% if$
+% duplicate$
+% year empty$
+% {
+% "\protect\citename{" swap$ * ", }" *
+% "n.d." * 'label := % Chicago,
+% } % page 457.
+% {
+% "\protect\citename{" swap$ * ", }" *
+% year
+% *
+% 'label :=
+% }
+% if$
+% year field.or.null purify$ *
+% sortify 'sort.label :=
+%}
+%
+%
+%FUNCTION {sort.format.names} % To produce the
+%{ 's := % order of entries
+% #1 'nameptr := % specified in item
+% "" % (3) on page 187
+% s num.names$ 'numnames := % of Butcher.
+% numnames 'namesleft :=
+% { namesleft #0 > nameptr #3 < and } % Only 1st 2 names
+% { nameptr #1 > % matter for
+% {
+% " " * } % sorting.
+% 'skip$
+% if$ % Anything that's
+% nameptr #2 = numnames #2 > and % "et al" goes
+% { "zzzzz" * } % after works by 2
+% { % authors.
+% s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+% nameptr numnames = t "others" = and
+% { "zzzzz" * }
+% { t sortify * }
+% if$
+% }
+% if$
+% nameptr #1 + 'nameptr :=
+% namesleft #1 - 'namesleft :=
+% }
+% while$
+%}
+%
+%FUNCTION {sort.format.title}
+%{ 't :=
+% "A " #2
+% "An " #3
+% "The " #4 t chop.word
+% chop.word
+% chop.word
+% sortify
+% #1 global.max$ substring$
+%}
+%
+%FUNCTION {author.sort}
+%{ author empty$
+% { key empty$
+% { "to sort, need author or key in " cite$ * warning$
+% ""
+% }
+% { key sortify }
+% if$
+% }
+% { author sort.format.names }
+% if$
+%}
+%
+%FUNCTION {author.editor.sort}
+%{ author empty$
+% { editor empty$
+% { key empty$
+% { "to sort, need author, editor, or key in " cite$ * warning$
+% ""
+% }
+% { key sortify }
+% if$
+% }
+% { editor sort.format.names }
+% if$
+% }
+% { author sort.format.names }
+% if$
+%}
+%
+%FUNCTION {editor.sort}
+%{ editor empty$
+% { key empty$
+% { "to sort, need editor or key in " cite$ * warning$
+% ""
+% }
+% { key sortify }
+% if$
+% }
+% { editor sort.format.names }
+% if$
+%}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%->
+%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$ :=
+%}
+%
+%
+%%FUNCTION {presort} % Two sorting
+%%{ calc.label % passes, from
+%% label sortify % apalike.bst.
+%% " "
+%% *
+%% type$ "book" =
+%% type$ "inbook" =
+%% type$ "incollection" = % For Singer
+%% or or % in BS 1629.
+%% 'author.editor.sort
+%% { type$ "proceedings" =
+%% 'editor.sort
+%% 'author.sort
+%% if$
+%% }
+%% if$
+%% #1 entry.max$ substring$
+%% 'sort.label :=
+%% sort.label
+%% *
+%% " "
+%% *
+%% title field.or.null
+%% sort.format.title
+%% *
+%% #1 entry.max$ substring$
+%% 'sort.key$ :=
+%%}
+%
+%ITERATE {presort}
+%
+%SORT
+%
+%STRINGS { last.label next.extra }
+%
+%INTEGERS { last.extra.num }
+%
+%FUNCTION {initialize.extra.label.stuff}
+%{ #0 int.to.chr$ 'last.label :=
+% "" 'next.extra :=
+% #0 'last.extra.num :=
+%}
+%
+%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$
+%}
+%
+%FUNCTION {reverse.pass}
+%{ next.extra "b" =
+% { "a" 'extra.label := }
+% 'skip$
+% if$ % Code needed here
+% % if \citeauthor
+% % and \citeyear
+% label extra.label * 'label := % were supported.
+% extra.label 'next.extra :=
+%}
+%
+%EXECUTE {initialize.extra.label.stuff}
+%
+%ITERATE {forward.pass}
+%
+%REVERSE {reverse.pass}
+%
+%FUNCTION {bib.sort.order}
+%{ sort.label
+% " "
+% *
+% year field.or.null sortify
+% *
+% " "
+% *
+% title field.or.null
+% sort.format.title
+% *
+% #1 entry.max$ substring$
+% 'sort.key$ :=
+%}
+%
+%ITERATE {bib.sort.order}
+%
+%SORT
+%
+%FUNCTION {begin.bib}
+%{ preamble$ empty$
+% 'skip$
+% { preamble$ write$ newline$ }
+% if$
+% "\begin{thebibliography}{}" 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}
+
+
+
+
+
+
+
+
+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$ * "}" *
+ 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}
+
+
+
+
+
diff --git a/macros/latex/contrib/seuthesis/zharticle/zharticle.cfg b/macros/latex/contrib/seuthesis/zharticle/zharticle.cfg
new file mode 100644
index 0000000000..d012927be5
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/zharticle/zharticle.cfg
@@ -0,0 +1,41 @@
+\ProvidesFile{zharticle.cfg}
+\makeatletter
+% 字体字号定义
+\newcommand{\song}{\CJKfamily{song}}
+\newcommand{\lishu}{\CJKfamily{li}}
+\newcommand{\hei}{\CJKfamily{hei}}
+\newcommand{\kai}{\CJKfamily{kai}}
+\newcommand{\fs}{\CJKfamily{fs}}
+\newcommand{\chuhao}{\fontsize{42pt}{46pt}\selectfont}
+\newcommand{\xiaochuhao}{\fontsize{36pt}{40pt}\selectfont}
+\newcommand{\yichu}{\fontsize{32pt}{36pt}\selectfont}
+\newcommand{\yihao}{\fontsize{28pt}{32pt}\selectfont}
+\newcommand{\erhao}{\fontsize{21pt}{24pt}\selectfont}
+\newcommand{\xiaoerhao}{\fontsize{18pt}{20}\selectfont}
+\newcommand{\sanhao}{\fontsize{15.75pt}{18pt}\selectfont}
+\newcommand{\sihao}{\fontsize{14pt}{16pt}\selectfont}
+\newcommand{\xiaosihao}{\fontsize{12pt}{14pt}\selectfont}
+\newcommand{\wuhao}{\fontsize{10.5pt}{13pt}\selectfont}
+\newcommand{\xiaowuhao}{\fontsize{9pt}{11pt}\selectfont}
+\newcommand{\liuhao}{\fontsize{7.5pt}{9pt}\selectfont}
+\newcommand{\xiaoliuhao}{\fontsize{6.5pt}{7.5pt}\selectfont}
+\newcommand{\qihao}{\fontsize{5.5pt}{6.5pt}\selectfont}
+
+% 参考文献名
+\renewcommand{\bibname}{参考文献}
+\renewcommand{\refname}{参考文献}
+
+% 图题表头定义
+\DeclareCaptionFont{capFont}{\song\liuhao} % 表格名及图名用小五号宋体
+\DeclareCaptionLabelSeparator{twospace}{~~}
+\captionsetup{
+ labelsep=twospace,% 去掉图标签后的冒号
+ font={capFont},%
+ figurename=图,%
+ tablename=表,%
+ listfigurename=插图目录,%
+ listtablename=表格目录}
+
+\renewcommand\fps@figure{htbp} % 设置图浮动的默认参数
+\renewcommand\fps@table{htbp}
+\makeatother \ No newline at end of file
diff --git a/macros/latex/contrib/seuthesis/zharticle/zharticle.cls b/macros/latex/contrib/seuthesis/zharticle/zharticle.cls
new file mode 100644
index 0000000000..f767fa0132
--- /dev/null
+++ b/macros/latex/contrib/seuthesis/zharticle/zharticle.cls
@@ -0,0 +1,223 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{zharticle}[2008/11/28 0.2 The LaTeX template for general chinese articles]
+\typeout{Document Class `zharticle' v0.2 by Nobel Huang (2008/11/28)}
+
+% 定义选项
+\newif\ifwithdate\withdatefalse
+
+\DeclareOption{withdate}{\withdatetrue \typeout{[zharticle]: With date.}}% 显示日期
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions
+
+% 加载依赖包
+\LoadClass[a4paper, DIV=16, fontsize=9pt, twocolumn]{scrartcl}% 双列排版
+\let\todayeng\today
+
+\RequirePackage{doc}
+\RequirePackage{ifpdf}
+\RequirePackage{CJKutf8}
+\RequirePackage{CJKnumb}
+\ifpdf
+\RequirePackage{hyperref}
+\else
+\RequirePackage[dvipdfmx]{hyperref}
+\fi
+\hypersetup{%
+ unicode=true,%
+ colorlinks=true,%
+ linkcolor=blue,%
+ urlcolor=black,%
+ citecolor=black,%
+ bookmarksopen=true,%
+ bookmarksnumbered,%
+ pdfpagemode=UseOutlines,%
+ pdfstartview=Fit,%
+ pdfpagelayout=OneColumn}
+\RequirePackage{caption} % 定义图的标题格式:居中. 使用caption3.0
+\captionsetup{%
+ format=plain,%
+ labelformat=simple,%
+ justification=centering,%
+ singlelinecheck=off}
+\RequirePackage[stable, flushmargin, perpage]{footmisc}
+\RequirePackage{indentfirst}
+\RequirePackage[numbers,sort&compress]{natbib} % 修改引用参考文献格式
+\RequirePackage[rm, bf]{titlesec}
+\RequirePackage{paralist}
+\RequirePackage{balance}
+
+% 正文预处理
+\linespread{1.36}% 行距15pt
+\setlength{\parskip}{0pt}% 段落间距 Important
+\renewcommand{\rmdefault}{ptm}% 英文为time new roman
+\setlength{\bibsep}{0ex}% 参考文献间距
+\setlength{\textfloatsep}{1ex}% 浮动体间距
+\setlength{\intextsep}{1ex}
+\setlength{\floatsep}{1ex}
+\titlespacing*{\section}{0pt}{0pt}{0pt}% 节标题间距
+\titlespacing*{\subsection}{0pt}{0pt}{0pt}
+\titlespacing*{\subsubsection}{0pt}{0pt}{0pt}
+\setdefaultenum{1)}{a)}{i.}{A.}% 设置列表模式
+\setdefaultleftmargin{4ex}{}{}{}{}{}
+\setlength{\textheight}{244mm}
+\setlength{\textwidth}{170mm}
+\setlength{\columnsep}{7mm}
+
+\AtBeginDocument{%
+ \InputIfFileExists{zharticle.cfg}% 加载配置文件
+ {\typeout{[zharticle]: Load zharticle.cfg successfully!}}%
+ {\typeout{[zharticle]: Load zharticle.cfg failed!}}%
+ \begin{CJK*}{UTF8}{song}\CJKtilde\CJKindent\CJKcaption{zh-Hans}%
+ \balance%
+}
+\AtEndDocument{%
+ \end{CJK*}
+}
+
+% 命令
+\newcommand{\@authoreng}{}
+\renewcommand{\author}[2]{
+ \def\@author{#1}
+ \renewcommand{\@authoreng}{#2}
+}
+
+\newcommand{\@address}{}
+\newcommand{\@addresseng}{}
+\newcommand{\address}[2]{
+ \renewcommand{\@address}{#1}
+ \renewcommand{\@addresseng}{#2}
+}
+
+\newcommand{\@titleeng}{}
+\renewcommand{\title}[2]{
+ \def\@title{#1}
+ \renewcommand{\@titleeng}{#2}
+}
+
+\newcommand{\@categorynumber}{}% 中图分类号
+\newcommand{\categorynumber}[1]{\renewcommand{\@categorynumber}{#1}}
+
+\newcommand{\@refmark}{}% 文献标识码
+\newcommand{\refmark}[1]{\renewcommand{\@refmark}{#1}}
+
+\newcommand{\@articleid}{}% 文章编号
+\newcommand{\articleid}[1]{\renewcommand{\@articleid}{#1}}
+
+\newcommand{\@abstract}{}
+\newcommand{\@abstracteng}{}
+\newcommand{\@keywords}{}
+\newcommand{\@keywordseng}{}
+\newcommand{\abstractkeyword}[4]{
+ \renewcommand{\@abstract}{#1}
+ \renewcommand{\@abstracteng}{#2}
+ \renewcommand{\@keywords}{#3}
+ \renewcommand{\@keywordseng}{#4}
+}
+
+\renewcommand{\@maketitle}{%
+ \clearpage
+ \let\footnote\thanks
+ \ifx\@extratitle\@empty \else
+ \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi
+ \fi
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \ifx\@titlehead\@empty \else
+ \begin{minipage}[t]{\textwidth}
+ \@titlehead
+ \end{minipage}\par
+ \fi
+ \null
+ \vskip 28pt%
+ \begin{center}%
+ \ifx\@subject\@empty \else
+ {\subject@font \@subject \par}
+ \vskip 1em
+ \fi
+ {\song\xiaoerhao \textbf{\@title} \par}%
+ \vskip 2pt
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
+ \vskip 6pt
+ {\kai\wuhao \@author \par}
+ \vspace{0mm}
+ {\song\liuhao (\@address) \par}
+ \ifwithdate
+ \vspace{0mm}
+ {\song\liuhao \@date \par}% % Set date in \large size.
+ \else
+ \fi
+ \end{center}%
+ \par
+ \vspace{-1mm}
+
+ \begin{abstract}{\@keywords}
+ \@abstrac
+ \end{abstract}
+
+ \maketitleeng
+ \begin{engabstract}{\@keywordseng}
+ \@abstracten
+ \end{engabstract}
+
+ \vspace{1em}
+
+ %设置文件属性
+ \GetFileInfo{zharticle.cls}
+ \hypersetup{
+ pdfauthor={\@author},
+ pdftitle={\@title}, %文件标题
+ pdfsubject={\@title}, %文件主题
+ pdfcreator={The zharticle class (v \fileversion)} % 应用程序
+ }
+}
+
+\newcommand{\maketitleeng}{% 请在\maketitle后调用
+ \begin{center}%
+ \ifx\@subject\@empty \else
+ {\subject@font \@subject \par}
+ \vskip 1em
+ \fi
+ {\sihao \textbf{\@titleeng} \par}%
+ \vskip 2pt
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
+ \vskip 6pt
+ \vspace{0mm}
+ {\wuhao \textit{\@authoreng} \par}
+ \vspace{0mm}
+ {\liuhao (\@addresseng)\par}
+ \end{center}%
+ \vspace{-1mm}%
+}
+
+\renewenvironment{abstract}[1]{% 中文摘要, 关键字作为参数
+ \kai\xiaowuhao\noindent
+ \textbf{\song 摘要:~}\noindent
+}{%
+ \par\noindent
+ \textbf{\song 关键词:} \@keywords
+ \par\noindent
+ \textbf{\song 中图分类号:} \makebox[3cm][l]{\@categorynumber}%
+ \textbf{\song 文献标识码:} \makebox[1.5cm][l]{\@refmark}%
+ \textbf{\song 文章编号:} \makebox[5cm][l]{\@articleid}
+ \par
+ \hypersetup{pdfkeywords={\@keywords}}
+}
+
+\newenvironment{engabstract}[1]{% 英文摘要
+ \xiaowuhao\noindent
+ \textbf{Abstract:}\noindent
+}{%
+ \par\noindent
+ \textbf{Key words:} \@keywordseng
+ \par
+}
+
+% 其他
+\let\orig@emph=\emph% 中文强调
+\renewcommand{\emph}[1]{{\orig@emph{\kai#1}}}
+
+% 参考文献
+\let\originalcite=\cite
+\renewcommand{\cite}[1]{\textsuperscript{\originalcite{#1}}}
+\renewcommand{\citet}[1]{\originalcite{#1}}
+
+\bibliographystyle{zharticle} \ No newline at end of file