├── .gitignore ├── README.md ├── body ├── aboutme.tex ├── bibliography.tex ├── elements.tex ├── expression.tex ├── introduction.tex ├── thank.tex └── thesisformat.tex ├── clear.sh ├── figures ├── Correct_Ratio.pdf ├── Lenna.pdf └── Lenna_e.pdf ├── preface ├── abstract.tex └── cover.tex ├── reference ├── IEEEtran.cls ├── gbt7714-2005.bst ├── ref.bib └── references.tex ├── word_template ├── README.md ├── user_guide.gif ├── xtutest.docx └── xtuthesis.dotm ├── xtu.pdf ├── xtuformat.sty ├── xtuthesis.pdf └── xtuthesis.tex /.gitignore: -------------------------------------------------------------------------------- 1 | ## Extra add 2 | # *.sty 3 | # word_template 4 | 5 | ## Core latex/pdflatex auxiliary files: 6 | *.aux 7 | *.lof 8 | *.log 9 | *.lot 10 | *.fls 11 | *.out 12 | *.toc 13 | *.fmt 14 | *.fot 15 | *.cb 16 | *.cb2 17 | .*.lb 18 | 19 | ## Intermediate documents: 20 | *.dvi 21 | *.xdv 22 | *-converted-to.* 23 | # these rules might exclude image files for figures etc. 24 | # *.ps 25 | # *.eps 26 | # *.pdf 27 | 28 | ## Generated if empty string is given at "Please type another file name for output:" 29 | .pdf 30 | 31 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 32 | *.bbl 33 | *.bcf 34 | *.blg 35 | *-blx.aux 36 | *-blx.bib 37 | *.run.xml 38 | 39 | ## Build tool auxiliary files: 40 | *.fdb_latexmk 41 | *.synctex 42 | *.synctex(busy) 43 | *.synctex.gz 44 | *.synctex.gz(busy) 45 | *.pdfsync 46 | 47 | ## Auxiliary and intermediate files from other packages: 48 | # algorithms 49 | *.alg 50 | *.loa 51 | 52 | # achemso 53 | acs-*.bib 54 | 55 | # amsthm 56 | *.thm 57 | 58 | # beamer 59 | *.nav 60 | *.pre 61 | *.snm 62 | *.vrb 63 | 64 | # changes 65 | *.soc 66 | 67 | # cprotect 68 | *.cpt 69 | 70 | # elsarticle (documentclass of Elsevier journals) 71 | *.spl 72 | 73 | # endnotes 74 | *.ent 75 | 76 | # fixme 77 | *.lox 78 | 79 | # feynmf/feynmp 80 | *.mf 81 | *.mp 82 | *.t[1-9] 83 | *.t[1-9][0-9] 84 | *.tfm 85 | 86 | #(r)(e)ledmac/(r)(e)ledpar 87 | *.end 88 | *.?end 89 | *.[1-9] 90 | *.[1-9][0-9] 91 | *.[1-9][0-9][0-9] 92 | *.[1-9]R 93 | *.[1-9][0-9]R 94 | *.[1-9][0-9][0-9]R 95 | *.eledsec[1-9] 96 | *.eledsec[1-9]R 97 | *.eledsec[1-9][0-9] 98 | *.eledsec[1-9][0-9]R 99 | *.eledsec[1-9][0-9][0-9] 100 | *.eledsec[1-9][0-9][0-9]R 101 | 102 | # glossaries 103 | *.acn 104 | *.acr 105 | *.glg 106 | *.glo 107 | *.gls 108 | *.glsdefs 109 | 110 | # gnuplottex 111 | *-gnuplottex-* 112 | 113 | # gregoriotex 114 | *.gaux 115 | *.gtex 116 | 117 | # hyperref 118 | *.brf 119 | 120 | # knitr 121 | *-concordance.tex 122 | # TODO Comment the next line if you want to keep your tikz graphics files 123 | *.tikz 124 | *-tikzDictionary 125 | 126 | # listings 127 | *.lol 128 | 129 | # makeidx 130 | *.idx 131 | *.ilg 132 | *.ind 133 | *.ist 134 | 135 | # minitoc 136 | *.maf 137 | *.mlf 138 | *.mlt 139 | *.mtc[0-9]* 140 | *.slf[0-9]* 141 | *.slt[0-9]* 142 | *.stc[0-9]* 143 | 144 | # minted 145 | _minted* 146 | *.pyg 147 | 148 | # morewrites 149 | *.mw 150 | 151 | # nomencl 152 | *.nlo 153 | 154 | # pax 155 | *.pax 156 | 157 | # pdfpcnotes 158 | *.pdfpc 159 | 160 | # sagetex 161 | *.sagetex.sage 162 | *.sagetex.py 163 | *.sagetex.scmd 164 | 165 | # scrwfile 166 | *.wrt 167 | 168 | # sympy 169 | *.sout 170 | *.sympy 171 | sympy-plots-for-*.tex/ 172 | 173 | # pdfcomment 174 | *.upa 175 | *.upb 176 | 177 | # pythontex 178 | *.pytxcode 179 | pythontex-files-*/ 180 | 181 | # thmtools 182 | *.loe 183 | 184 | # TikZ & PGF 185 | *.dpth 186 | *.md5 187 | *.auxlock 188 | 189 | # todonotes 190 | *.tdo 191 | 192 | # easy-todo 193 | *.lod 194 | 195 | # xindy 196 | *.xdy 197 | 198 | # xypic precompiled matrices 199 | *.xyc 200 | 201 | # endfloat 202 | *.ttt 203 | *.fff 204 | 205 | # Latexian 206 | TSWLatexianTemp* 207 | 208 | ## Editors: 209 | # WinEdt 210 | *.bak 211 | *.sav 212 | 213 | # Texpad 214 | .texpadtmp 215 | 216 | # Kile 217 | *.backup 218 | 219 | # KBibTeX 220 | *~[0-9]* 221 | 222 | # auto folder when using emacs and auctex 223 | ./auto/* 224 | *.el 225 | 226 | # expex forward references with \gathertags 227 | *-tags.tex 228 | 229 | # standalone packages 230 | *.sta -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## XTU Thesis Template 2 | 3 | LaTeX模板是在数学院一位校友提供的模板上改写的 4 | 5 | Word模板为本人所创,严格遵守最新修订的十年前的《湘潭大学毕业论文写作草案》(详见LaTeX模板编译后的文件)的相关格式规定。 6 | 7 | 目前Word模板基本能满足普通论文的排版要求,对于更加复杂的排版(比如数学环境较多),可能需要定义定理之类的样式,可参考模板样式中的 8 | 命题环境自行定义。 9 | 10 | ### 下载使用 11 | 12 | 附带CTAN收录地址:https://www.ctan.org/pkg/xtuthesis 13 | 14 | LaTeX: 下载本项目,或者仅下载格式文件`xtuformat.sty`,参考文献的格式可另外下载。 15 | 16 | Word: 下载xtuthesis.dotm,导入你的Word文件即可。 17 | 18 | ### 使用说明 19 | 20 | LaTeX: 21 | 22 | - 可参考本模板自行编写主文件,运行必需的文件有两个: 23 | - [xtuformat.sty](https://github.com/MrDongdongLin/xtuthesis/blob/master/xtuformat.sty) -- 定义了论文相关的格式和命令 24 | - [xtu.pdf](https://github.com/MrDongdongLin/xtuthesis/blob/master/xtu.pdf) -- 湘潭大学logo 25 | - 下载最新版CTeX套装:http://www.ctex.org/HomePage 26 | - 下载本项目:https://github.com/MrDongdongLin/xtuthesis/releases 27 | - 使用WinEdt打开`xtuthesis.tex`: 28 | - 编译文件:`XeLaTeX` 29 | - 参考文献:`BibTeX` 30 | - 编译有问题的话多重复上一步骤直到没有问题即可。 31 | - 在主目录下得到pdf文件,执行`texclear.bat`清理多余的文件。 32 | 33 | Word: 详见word_template下的README文件或者直接user_guide.gif查看动图教程。 34 | 35 | 36 | ![latexcompile](https://github.com/MrDongdongLin/src/blob/master/weixin/latex_compile.gif) 37 | 38 | Copyright 2018 林东东 -------------------------------------------------------------------------------- /body/aboutme.tex: -------------------------------------------------------------------------------- 1 | %---个人简历、在学期间发表的学术论文及研究成果----------------------------------------------------------------------------------------- 2 | \chapter*{个人简历、在学期间发表的学术论文及研究成果} 3 | \addcontentsline{toc}{chapter}{个人简历、在学期间发表的学术论文及研究成果} 4 | \vskip1.5cm 5 | \begin{itemize} 6 | \item 7 | {\heiti{基本情况}}\\ 8 | %\vskip0.1cm 9 | sss 10 | \item 11 | {\heiti{教育状况}}\\ 12 | %\vskip0.1cm 13 | dfdf 14 | \item 15 | {\heiti{研究成果}} 16 | 17 | \end{itemize} -------------------------------------------------------------------------------- /body/bibliography.tex: -------------------------------------------------------------------------------- 1 | \chapter{参考文献著录规则及注意事项} 2 | 3 | 根据中华人民共和国国家标准《文后参考文献著录规则》(GB/T 7714—2005,中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会发布,2005年10月1日实施)[5]制定本规定。 4 | 5 | \section{参考文献与脚注(注释)的区别} 6 | 7 | 参考文献按照提供目的划分,可分为引文文献、阅读型文献和推荐型文献。引文文献是著者在撰写或编辑论著的过程中,为正文中的直接引语(数据、公式、理论、观点等)或间接引语而提供的有关文献信息资源。阅读型文献是著者在撰写或编辑论著的过程中,曾经阅读过的文献信息资源。推荐型文献通常是专家或教师为特定读者、特定目的而提供的、可供读者阅读的文献信息资源[6]。学位论文中的参考文献主要指引文文献及阅读型文献,是论文的必要组成部分。 8 | 9 | 脚注与参考文献有所区别。参考文献是作者写作学术论文时所参考的文献,一般集中列于文末。参考文献序号用方括号标注,与正文中指示序号一致。脚注是对学术论文中某一特定内容所做的进一步解释或补充说明,一般排印在该页地脚,并用阿拉伯数字加圆圈标注[7]。 10 | 11 | \section{参考文献著录方法[6]} 12 | 13 | 几种主要类型的参考文献(专著、专著中的析出文献、连续出版物、连续出版物中的析出文献、专利文献、电子文献等)的著录项目与格式要求如下: 14 | 15 | \subsection{专著} 16 | 17 | 指以单行本或多卷册形式,在限定期限内出版的非连续出版物。包括以各种载体形式出版的普通图书、古籍、学位论文、技术报告、会议文集、汇编、多卷书、丛书等。其著录格式为: 18 | 19 | \kaishu 20 | [序号] 主要责任者. 题名: 其他题名信息 [文献类型标志(电子文献必备,其他文献任选, 以下同)]. 其他责任者(任选). 版本项. 出版地:出版者,出版年:引文起-止页码 [引用日期(联机文献必备,其他电子文献任选, 以下同)]. 获取和访问路径(联机文献必备, 以下同). ① 21 | 22 | \songti 23 | 示例如下: 24 | 25 | [1] 广西壮族自治区林业厅. 广西自然保护区. 北京: 中国林业出版社, 1993. 26 | 27 | [2] 霍斯尼. 谷物科学与工艺学原理. 李庆龙, 译. 2版. 北京: 中国食品出版社, 1989:15-20. 28 | 29 | [3] 王夫之. 宋论. 刻本. 金陵: 曾氏, 1865(清同治四年). 30 | 31 | [4] 赵耀东. 新时代的工业工程师[M/OL]. 台北: 天下文化出版社. 1998 [1998-09-26]. http://www.ie.nthu.edu.tw/info/ie.newie.htm. 32 | 33 | [5] 全国信息与文献工作标准化技术委员会出版物格式分委员会. GB/T 12450-2001 图书书名页. 北京: 中国标准出版社, 2002. 34 | 35 | [6] 全国出版专业职业资格考试办公室. 全国出版专业职业资格考试辅导教材: 出版专业理论与实务•中级. 2004版. 上海: 上海辞书出版社, 2004: 299-307. 36 | 37 | [7] World Health Organization. Factors regulating the immune response: report of WHO Scientific Group. Geneva: WHO, 1970. 38 | 39 | [8] Peebles P Z, Jr. Probability, random variable, and random signal principles. 4th ed. New York: McGraw Hill, 2001. 40 | 41 | [9] 郑开青. 通讯系统模拟及软件[硕士学位论文]. 北京: 清华大学无线电系, 1987. 42 | 43 | \subsection{专著中的析出文献} 44 | 45 | 指从整本文献中析出的具有独立篇名的文献。其著录格式为: 46 | 47 | \kaishu 48 | [序号] 析出文献主要责任者. 析出文献题名[文献类型标志]. 析出其他责任者//专著主要责任者. 专著题名. 出版地:出版者,出版年:析出的起-止页码[引用日期]. 获取和访问路径. 49 | 50 | \songti 51 | 示例如下: 52 | 53 | [1] 白书农. 植物开花研究//李承森. 植物科学进展. 北京: 高等教育出版社, 1998:146-163. 54 | 55 | [2] Weinstein L, Swertz M N. Pathogenic properties of invading micro- organism // Sodeman W A, Jr, Sodeman W A. Pathologic physiology: mechanisms of disease. Philadephia: Saunders, 1974:745-772. 56 | 57 | [3] 韩吉人. 论职工教育的特点//中国职工教育研究会. 职工教育研究论文集. 北京: 人民教育出版社, 1985:90-99. 58 | 59 | \subsection{连续出版物} 60 | 61 | 指一种载有卷期号或年月顺序号、计划无限期地连续出版发行的出版物,包括以各种载体形式出版的期刊、报纸等。其著录格式为: 62 | 63 | \kaishu 64 | [序号] 主要责任者. 题名:其他题名信息[文献类型标志]. 年,卷(期)- 年,卷(期). 出版地:出版者,出版年[引用日期]. 获取和访问路径(联机文献必备). 65 | 66 | \songti 67 | 示例如下: 68 | 69 | [1] 中国地址学会. 地质评论. 1936, 1(1)-. 北京: 地质出版社, 1936-. 70 | 71 | [2] 中国图书馆学会. 图书馆学通讯. 1957(1)-1990(4). 北京: 北京图书馆, 1957-1990. 72 | 73 | [3] American Association for the Advancement of Science. Science. 1883, 1(1)-. Washington, D.C.: American Association for the Advancement of Science, 1883-. 74 | 75 | \subsection{期刊、报纸等连续出版物中的析出文献} 76 | 77 | \kaishu[序号] 析出文献主要责任者. 析出文献题名[文献类型标志]. 连续出版物题名:其他题名信息,年,卷(期):页码[引用日期]. 获取和访问路径(联机文献必备). 78 | 79 | \songti 80 | 示例如下: 81 | 82 | [1] 张旭, 张通和, 易钟珍, 等. 采用磁过滤MEVVA源制备类金刚石膜的研究. 北京师范大学学报: 自然科学版, 2002, 38(4):478-481. 83 | 84 | [2] 周桂莲, 许育彬, 杨智全, 等. 认清市场形势 化解“学报情结”: 我国农业学报的现状与发展趋势分析. 编辑学报, 2005, 17(3):209-211. 85 | 86 | [3] 傅刚, 赵承, 李佳路. 大风沙过后的思考[N/OL]. 北京青年报, 2000- 04-12(14) [2002-03-06]. http://www.bjyouth.com.cn/Bqb/20000412/B/4216%5ED 0412B1401.htm. 87 | 88 | \subsection{专利文献} 89 | 90 | \kaishu[序号] 专利申请者或所有者. 专利题名:专利国别,专利号[文献类型标志(电子文献必备,其他文献任选)]. 公告日期或公开日期[引用日期(联机文献必备,其他电子文献任选)]. 获取和访问路径(联机文献必备). 91 | 92 | \songti 93 | 示例如下: 94 | [1] 刘加林. 多功能一次性压舌板: 中国, 92214985.2. 1993-04-14. 95 | 96 | [2] 西安电子科技大学. 光折变自适应光外差探测方法: 中国, 01128777.2 [P/OL]. 2002-03-06 [2002-05-28]. http://211.152.9.47/sipoasp/zljs/hyjs-yx-new.asp? recid=01128777.2\&leixin=0. 97 | 98 | \subsection{电子文献 } 99 | 100 | 以数字方式将图、文、声、像等信息存储在磁、光、电介质上,通过计算机、网络或相关设备使用的记录有知识内容或艺术内容的文献信息资源叫做电子文献,包括电子书刊、数据库、电子公告等。凡属电子图书、电子图书和电子报刊等中的析出文献的著录格式分别按上述有关规则处理,除此之外的电子文献的著录格式如下: 101 | 102 | \kaishu[序号] 主要责任者. 题名:其他题名信息[文献类型标志/文献载体标志]. 出版地:出版者,出版年(更新或修改日期) [引用日期].获取和访问路径(联机文献必备). 103 | 104 | \songti 105 | 示例如下: 106 | [1] 萧钰. 出版业信息化迈入快车道[EB/OL]. (2001-12-19) [2002-04-15]. http://www.creader.com/news/200112190019.htm. 107 | 108 | [2] Online Computer Library Center, Inc. History of OCLC[EB/OL]. [2000-01- 08]. http://www.oclc.org/about/history/default.htm. 109 | 110 | [3] Scitor Corporation. Project scheduler[CP/DK]. Sunnyvale, Calif.: Scitor Corporation, c1983. 111 | 112 | \section{参考文献表} 113 | 114 | 参考文献表用五号字,汉字用宋体,英文用Times New Roman体,行距采用固定值16磅,段前3磅,段后0磅。 115 | 116 | 参考文献的标注方式和参考文献表列法,可采用“顺序编码制”或“著者-出版年制”。确定采用某种方法后,在正文中的标注方法和列表中的写法是一一对应的。 117 | 118 | 参考文献表可以按“顺序编码制”组织,也可以按“著者-出版年制”组织。参考文献表按“顺序编码制”组织时,各篇文献要按正文部分标注的序号依次列出;参考文献表采用“著者-出版年制”组织时,各篇文献首先按文种集中,可分为中文、西文、日文、俄文、其他文种等5部分;然后按著者字顺和出版年排列。中文文献一般按汉语拼音字顺排列。 119 | 120 | 采用“顺序编码制”组织的参考文献表,每条文献的序号要加方括号“[ ]”;采用“著者-出版年制”组织参考文献时,每条文献不必加序号。采用悬挂格式,悬挂缩进2个汉字符。 121 | 122 | \section{参考文献在正文中的标注法} 123 | 124 | \subsection{顺序编码制} 125 | 126 | 1. 按正文中引用的文献出现的先后顺序用阿拉伯数字连续编码,并将序号置于方括号中,以上标形式放在句子的末尾。 127 | 128 | 2. 同一处引用多篇文献时,将各篇文献的序号在方括号中全部列出,各序号间用逗号,如遇连续序号,可标注起讫号“-”,例如: 129 | 130 | 张三[1]指出……,李四[2-3]认为……,形成了多种数学模型[7, 9, 11-13]……。 131 | 132 | 3. 同一文献在论著中被引用多次,只编1个序号,引文页码放在“[ ]”外,文献表中不再重复著录页码。例如: 133 | 134 | 张中国等[4]15-17……,张中国等[4]55认为……。 135 | 136 | \subsection{著者-出版年制} 137 | 138 | 1. 正文引用的文献采用著者-出版年制时,各篇文献的标注内容由著者姓氏与出版年构成,并置于“( )”内,放在正文中引用了该文献的句子末尾。倘若只标注著者姓氏无法识别该人名时,可标注著者姓名。集体著者著述的文献可标注机关团体名称。倘若正文语句中已提及著者姓名,则在其后的“( )”内只须著录出版年。例如: 139 | 140 | ……(张中国, 2005),……张中国(2005)认为……。 141 | 142 | 2. 引用多著者文献时,对欧美著者只需标注第一个著者的姓,其后附“et al”;对中国著者应标注第一著者的姓名,其后附“等”字,姓名与“等”字之间留1个空格。例如:……(张中国 等, 2005)……。 143 | 144 | 3. 在参考文献表中著录同一著者在同一年出版的多篇文献时,出版年后应用小写字母a, b, c…区别。例如: 145 | 146 | Kennedy W J, Garrison R E. 1975a. Morphology and genesis of nodular chalks and hardgrounds in the Upper Cretaceous of southern England. Sedimentology, 22:311-386. 147 | 148 | Kennedy W J, Garrison R E. 1975b. Morphology and genesis of nodular phosphates in the Cenomaman of South-east England. Lathaia, 8:339-360. 149 | 150 | 4. 正文中多次引用同一著者的同一文献时,在正文中标注著者与出版年,并在“( )”外以上标形式标注引文页码。例如: 151 | 152 | ……(张中国 等, 2005)15-17;……张中国 等(2005)55认为……。 153 | 154 | \section{文献著录中应注意的若干问题} 155 | 156 | \subsection{参考文献著录只有一个标准} 157 | 158 | 现行有效的关于参考文献著录的国家标准只有一个,即《文后参考文献著录规则》(GB/T 7714—2005),这是一个基础性的国家标准,适用于各个学科、各种类型的出版物。本指南就是根据该国家标准制订的。 159 | 160 | 今后我校研究生学位论文的参考文献著录和在正文中的标注方式,统一按照国家标准的规定,在“顺序编码制”和“著者-出版年制”两种方法中任选其一。 161 | 162 | \subsection{正文中标注参考文献时的注意事项} 163 | 164 | 1. 用阿拉伯数字顺序编码的文献序号不能颠倒错乱; 165 | 2. 序号用方括号括起,同一处引用几篇文献,各篇文献的序号应置于一个方括号内,并用逗号分隔; 166 | 167 | 3. 多次引用同一作者的同一文献,只编1个首次引用时的序号,但需要将本次引用该文献的页码标注在顺序号的方括号外; 168 | 169 | 4. 文献表中的序号与正文中标注的文献顺序号要一一对应; 170 | 171 | 5. 作者可选择采用“顺序编码制”或“著者-出版年制”,但在同一篇论文中要统一。 172 | 173 | \subsection{参考文献表著录时的注意事项} 174 | 175 | 1. 文后参考文献表原则上要求用文献本身的文字著录。著录西文文献时,大写字母的使用要符合文献本身文种的习惯用法; 176 | 177 | 2. 每条文献的著录信息源是被著录文献本身。专著、论文集、科技报告、学位论文、专利文献等可依据书名页、版本记录页、封面等主要信息源著录各个项目;专著或论文集中析出的篇章及报刊的文章,依据参考文献本身著录析出文献的信息,并依据主要信息源著录析出文献的出处;网络信息依据特定网址中的信息著录; 178 | 179 | 3. 采用顺序编码制组织的参考文献表,每条文献的序号要加方括号“[ ]”,采用悬挂格式,将序号悬挂在外; 180 | 181 | 4. 采用著者-出版年制组织参考文献时,每条文献不必加序号,采用悬挂格式,悬挂缩进2个汉字符; 182 | 183 | 5. 书刊名称不应加书名号,西文书刊名称也不必用斜体; 184 | 185 | 6. 西文刊名可参照ISO 4《信息与文献 出版物题名和标题缩写规则》的规定缩写,缩写点可省略。 186 | 187 | \subsection{著录责任者的注意事项} 188 | 189 | 1. 责任者为3人以下时全部著录,3人以上可只著录前3人,后加“, 等” ,外文用“, et al” ,“et al”不必用斜体; 190 | 191 | 2. 责任者之间用“, ”分隔; 192 | 193 | 3. 欧美著者的名可缩写,并省略缩写点,姓可用全大写;如用中文译名,可以只著录其姓。例如: 194 | 195 | Einstein A 或 EINSTEIN A(原题:Albert Einstein),韦杰(原题:伏尔特•韦杰); 196 | 197 | 4. 中国著者姓名的汉语拼音的拼写执行GB/T 16159—1996的规定,名字不能缩写。例如:Zheng Guangmei 或 ZHENG Guangmei; 198 | 199 | 5. 不必著录主要责任者的责任。例如: 200 | 201 | 陈浩元. 科技书刊标准化18讲(原题:陈浩元主编. 科技书刊标准化18讲); 202 | 203 | 6. 不要求著录责任者的国别、所在朝代; 204 | 205 | 7. 机关团体名称应由上至下分级著录。例如: 206 | 207 | 中国科学院数学研究所(原题:中国科学院数学研究所); 208 | 209 | Stanford University. Department of Civil Engineering(原题:Department of Civil Engineering , Stanford University)。 210 | 211 | \subsection{参考文献表中数字的著录} 212 | 213 | 1. 卷期号、年月顺序号、页码、出版年、专利文献号等用阿拉伯数字。卷号不必用黑体。页码、专利文献号超过4位数时,不必采用三位分节法或加“,”分节,国外专利文献号中原有的分节号“,”在参考文献著录时删去; 214 | 215 | 2. 出版年或出版日期用全数字著录;如遇非公历纪年,则将其置于“( )”内。例如:2005-08-10,1938(民国二十七年); 216 | 217 | 3. 版本的著录采用阿拉伯数字、序号缩略形式或其他标志表示,第1版不著录,古籍的版本可著录“写本”、“抄本”、“刻本”等。例如: 218 | 219 | 3版(原题:第三版或第3版),5th ed.(原题:Fifth edition),2005版(原题:2005年版)。 220 | 221 | \subsection{可作变通处理的著录项目} 222 | 223 | 1. 某一条参考文献的责任者不明时,此项可以省略(采用“著者-出版年制”时可用“佚名”或“Anon”); 224 | 225 | 2. 无出版地可著录[出版地不详]或[S.l.],无出版者可著录[出版者不详]或[s.n.]; 226 | 227 | 3. 出版年无法确定时,可依次选用版权年、印刷年、估计的出版年,估计的出版年置于“[ ]”内; 228 | 229 | 4. 未正式出版的学位论文,出版项可按“保存地:保存单位,保存年”顺序著录。例如: 230 | 231 | 北京:中国科学院物理研究所, 2004 232 | 233 | Berkeley:Univ of California Depart of Phys, 2005 234 | 235 | 5. 采用“著者-出版年制”标注时,联机文献的出版年根据更新或修改日期著录;倘若无更新或修改日期时,则可著录引用日期,并将其置于方括号内。例如:……(李中国, 2006)。……(张华, [2005])。Skinner G. 2001. A new code of ethics for librarians? ALAcodes and Johan Bekker’s proposals [EB/OL]. (2001-03-02) [2004-05-10]. http://www.redgraven.... 236 | 237 | 6. 当文献中载有多个岀版地或多个岀版者时,只需著录第1个出版地或出版者; 238 | 239 | 7. 如果专著被作为阅读型和推荐型参考文献引用,其引文页码可以不著录; 240 | 241 | 8. 其他可以灵活处理的著录项目对GB/T 7714—2005 未作“必须”、“应当”等规定的著录项目,同一出版物可选定一种,并做到前后一致。 242 | 每条文献结尾可加“.”,图书的文献一般不加。 243 | 244 | 文献类型标志,非电子文献任选。 245 | 246 | 电子文献的引用日期非联机文献可以不著录。 247 | 248 | 西文的著者名、刊名一般采用缩写字母,但也可以采用全名;如果采用缩写字母,其缩写点可以省略,也可以保留。 249 | 250 | 其他责任者可不著录(如果著录,则须标注其责任,如“译”、“指导”等)。 251 | 252 | 纯电子文献的出版地、出版者、出版年可以省略(引用日期必须著录)。 253 | 254 | 期刊中析出文献的页码一般著录文章的起讫页,也可只著录起始页。 255 | 256 | 责任者的姓,其字母可以全大写,也可只首字母大写。GB/T 7714—2005并未做出全大写的规定,但有“大写字母的使用要符合文献本身文种的习惯用法”的指示,在外文文献中其实也是2种著录法并存。 257 | 258 | \subsection{正确著录期刊文献的年份、卷、期、页} 259 | 260 | \begin{itemize} 261 | \item 示例1: 年, 卷(期):页 2005, 10(2):15-20 262 | \item 示例2: 年, 卷:页 2005, 35:123-129 263 | \item 示例3: 年(期):页 2005(1):90-94 264 | \item 示例4: 年(合期号):页 2005(10/11/12):15-20 265 | 266 | 在同一刊物连载的文献,其后续部分不必另行著录,可在原参考文献后直接注明后续部分的年份、卷、期、页。 267 | 268 | \item 示例5: 年, 卷(期):页; 年, 卷(期):页 269 | 270 | 2005, 15(1):12-15; 2005, 15(2):18-20 271 | \end{itemize} 272 | 273 | \section{文献类型、电子文献载体类型及其标志代码说明} 274 | 275 | 电子文献类型和载体类型标志是必备的著录项目。非电子文献类型可以省略。 276 | 277 | 学位论文类型的文献必须明确标注。中文硕士学位论文标注[硕士学位论文],中文博士学位论文标注[博士学位论文],外文学位论文标注[D]。 278 | 279 | 国标GB/T 7714—2005列出的文献类型标志如下:普通图书 M,会议录 C,汇编 G,报纸 N,期刊 J,学位论文 D,报告R,标准 S,专利 P,数据库 DB,计算机程序 CP,电子公告 EB。 280 | 281 | 会议录C指座谈会、研讨会、学术年会等会议的文集;汇编G指多著者或个人著者的论文集;S标志的文献还包括政策、法律、法规等文件。 282 | 283 | 电子文献载体类型标志如下:磁带 MT,磁盘 DK,光盘 CD,联机网络 OL。 -------------------------------------------------------------------------------- /body/elements.tex: -------------------------------------------------------------------------------- 1 | \chapter{图表,伪代码,公式相关排版}\label{elements} 2 | 3 | \section{图的排版} 4 | 论文没图谁爱看呀!且看咱导言区已经加了``\\graphicspath{{figures/}}'', 5 | 你要做的就是把你的图放到``figures''文件夹下面。 6 | 7 | \subsection{单图} 8 | 单图排版很简单。 9 | 10 | \begin{figure}[!htb] 11 | \centering 12 | \begin{minipage}[t]{\oneimage} 13 | \centering 14 | \includegraphics[width=\oneimage]{Correct_Ratio.pdf} 15 | \end{minipage} 16 | \caption{The ratios between the sizes of $\bm{R}$, $\bm{C}$ and their maximal possible sizes during the attack with three pairs of plain-images, 17 | where $k^*$ denotes the index of the attacking steps.} 18 | \label{fig:ratio} 19 | \end{figure} 20 | 21 | \subsection{多图} 22 | 多图排版很简单。 23 | 24 | \begin{figure}[!htb] 25 | \centering 26 | \begin{minipage}[t]{\twoimage} 27 | \centering 28 | \includegraphics[width=\twoimage]{Lenna.pdf} 29 | a) 30 | \end{minipage} \hspace{4pt} 31 | \begin{minipage}[t]{\twoimage} 32 | \centering 33 | \includegraphics[width=\twoimage]{Lenna_e.pdf} 34 | b) 35 | \end{minipage} 36 | \caption{A pair of plain-image and the corresponding cipher-image: 37 | a) image ``Lenna''; b) cipher-image of a).} 38 | \label{fig:APairPlaintext} 39 | \end{figure} 40 | 41 | \section{表格} 42 | 看个例子就好了。 43 | 44 | \begin{table}[!htb] 45 | \centering 46 | \caption{Blocking sizes for plain-image of size $256\times 256$.} 47 | \label{tb:blocksize} 48 | \begin{tabular}{c|ccc} \hline 49 | \diagbox{ $q_1$ }{ $q_2$ } & 0 & 1 & 2 \\ \hline 50 | 0 & (8,8) & (8,16) & (8,32) \\ 51 | 1 & (16,8) & (16,16) & (16,32) \\ 52 | 2 & (32,8) & (32,16) & (32,32) \\ \hline 53 | \end{tabular} 54 | \end{table} 55 | 56 | \section{伪代码} 57 | 伪代码排版使用的是这方面最新的包algorithm2e,下面以算法\ref{qsort}为例(更多样例请google``algorithm2e''): 58 | 59 | \begin{algorithm}[H]\label{qsort} 60 | \SetAlgoLined 61 | \KwData{this text} 62 | \KwResult{how to write algorithm with \LaTeX2e } 63 | initialization\; 64 | \While{not at end of this document}{ 65 | read current\; 66 | \eIf{understand}{ 67 | go to next section\; 68 | current section becomes this one\; 69 | }{ 70 | go back to the beginning of current section\; 71 | } 72 | } 73 | \caption{How to write algorithms} 74 | \end{algorithm} 75 | 76 | \section{公式排版} 77 | 已知$a+b=c$,那么 78 | 79 | \begin{equation*}\label{eq:aplusb} 80 | a=c-b. 81 | \end{equation*} 82 | 83 | 来看公式\ref{eq:aplusb}: 84 | 85 | \begin{equation}\label{eq:amultib} 86 | a*b=c. 87 | \end{equation} 88 | 89 | 证明: 90 | 91 | \begin{proof} 92 | 地球是围着太阳转的 93 | \end{proof} 94 | 95 | $\pm$ -------------------------------------------------------------------------------- /body/expression.tex: -------------------------------------------------------------------------------- 1 | \chapter{论文几个主要部分的写法} 2 | 3 | 研究生学位论文的书写,除表达形式上需要遵循一定的格式要求外,内容上也要符合一定的要求。\\ 4 | 通常研究生学位论文只能有一个主题(不能是几块工作拼凑在一起),该主题应针对某学科领域中的一个具体问题展开深入、系统的研究,并得出有价值的研究结论。学位论文的研究主题切忌过大,例如,“中国国有企业改制问题研究”这样的研究主题过大,因为“国企改制”涉及的问题范围太广,很难在一本研究生学位论文中完全研究透彻。 5 | 6 | \section{论文的语言及表述} 7 | 8 | 除留学生外,学位论文一律须用汉语书写。学位论文应当用规范汉字进行撰写,除古汉语研究中涉及的古文字和参考文献中引用的外文文献之外,均采用简体汉字撰写。\\ 9 | 留学生一般应以中文或英文书写学位论文,格式要求同上。用英文书写的学位论文,应有不少于6000字的详细中文摘要,英文摘要500-800单词。论文须用中文封面。\\ 10 | 研究生学位论文是学术作品,因此其表述要严谨简明,重点突出,专业常识应简写或不写,做到层次分明、数据可靠、文字凝练、说明透彻、推理严谨、立论正确,避免使用文学性质的或带感情色彩的非学术性语言。\\ 11 | 论文中如出现一个非通用性的新名词、新术语或新概念,需随即解释清楚。 12 | 13 | \section{论文题目的写法} 14 | 论文题目应简明扼要地反映论文工作的主要内容,切忌笼统。由于别人要通过你论文题目中的关键词来检索你的论文,所以用语准确是非常重要的。论文题目应该是对研究对象的准确具体的描述,这种描述一般要在一定程度上体现研究结论,因此,我们的论文题目不仅应告诉读者这本论文研究了什么问题,更要告诉读者这个研究得出的结论。例如:“在事实与虚构之间:梅乐、卡彭特、沃尔夫的新闻观”就比“三个美国作家的新闻观研究”更专业更准确。 15 | 16 | \section{摘要的写法} 17 | 18 | 论文的摘要,是对论文研究内容的高度概括,其他人会根据摘要检索一篇研究生学位论文,因此摘要应包括:对问题及研究目的的描述、对使用的方法和研究过程进行的简要介绍、对研究结论的简要概括等内容。摘要应具有独立性、自明性,应是一篇简短但意义完整的文章。 \\ 19 | 通过阅读论文摘要,读者应该能够对论文的研究方法及结论有一个整体性的了解,因此摘要的写法应力求精确简明。论文摘要切忌写成全文的提纲,尤其要避免“第1章……;第2章……;……”这样的陈述方式。 20 | 21 | \section{引言的写法} 22 | 23 | 一篇学位论文的引言大致包含如下几个部分:1、问题的提出;2、选题背景及意义;3、文献综述;4、研究方法;5、论文结构安排。\\ 24 | 问题的提出:要清晰地阐述所要研究的问题“是什么”。选题时切记要有“问题意识”,不要选不是问题的问题来研究。\\ 25 | 选题背景及意义:论述清楚为什么选择这个题目来研究,即阐述该研究对学科发展的贡献、对国计民生的理论与现实意义等。\\ 26 | 文献综述:对本研究主题范围内的文献进行详尽的综合述评,“述”的同时一定要有“评”,指出现有研究状态,仍存在哪些尚待解决的问题,讲出自己的研究有哪些探索性内容。\\ 27 | 研究方法:讲清论文所使用的科学研究方法。\\ 28 | 论文结构安排:介绍本论文的写作结构安排。 29 | 30 | \section{“第2章,第3章,……,结论前的一章”的写法} 31 | 32 | 本部分是论文作者的研究内容,不能将他人研究成果不加区分地掺和进来。已经在引言的文献综述部分讲过的内容,这里不需要再重复。\\ 33 | 各章之间要存在有机联系,符合逻辑顺序。 34 | 35 | \section{结论的写法} 36 | 37 | 结论是对论文主要研究结果、论点的提炼与概括,应准确、简明,完整,有条理,使人看后就能全面了解论文的意义、目的和工作内容。主要阐述自己的创造性工作及所取得的研究成果在本学术领域中的地位、作用和意义。同时,要严格区分自己取得的成果与导师及他人的科研工作成果。\\ 38 | 在评价自己的研究工作成果时,要实事求是,除非有足够的证据表明自己的研究是“首次”的,“领先”的,“填补空白”的,否则应避免使用这些或类似词语。 -------------------------------------------------------------------------------- /body/introduction.tex: -------------------------------------------------------------------------------- 1 | \chapter{引~~言}\label{chap:introduction} 2 | 3 | \section{编写说明} 4 | \upcite{Arteaga-Falconi:ITIM:2016}\upcite{Barni:ITIFS:2011} 5 | \upcite{Dautov:IJBHI:2016,Hartley:ITITB:2012,Hu:ITITB:2007} 6 | 研究生学位论文是作者攻读研究生期间研究成果的总结,是衡量作者是否达到研究生水平的重要依据。同时,研究生学位论文也是反映最高层次学历教育水平的学术作品,学校图书馆、中国学术期刊网等将作为学术资料长期保存,供同行学者、后续研究者查阅和参考。因此,要求学位论文文字正确,语言通顺,数据可靠,表述清晰,图、表、公式、单位等符合规范要求。同时,作为湘潭大学的研究生学位论文,在符合国家关于学位论文编写规范要求的基础上,应有统一的格式。 7 | 8 | 为此,研究生处依据中华人民共和国国家标准《科学技术报告、学位论文和学术论文的编写格式》(GB/T 7713—1987)、《文后参考文献著录规则》(GB/T 7714—2005),参照《清华大学博士学位论文写作指南》,编写了《湘潭大学研究生学位论文写作指南》,供研究生撰写学位论文时参考。 9 | 10 | 本《写作指南》只是一个指导性的文件。相关学科有特殊要求的,由学位点在本《写作指南》的基础上编写出相应学科的《写作指南》,报校学位办备案后执行。 11 | 12 | \section{学位论文的基本要求} 13 | 国家标准《科学技术报告、学位论文和学术论文的编写格式》(GB7713—1987)中指出:学位论文是表明作者从事科学研究取得创造性的结果或有了新的见解,并以此为内容撰写而成、作为提出申请授予相应的学位时评审用的学术论文[1]。 14 | 15 | 研究生学位论文是研究生在导师指导下独立完成的、系统完整的学术研究工作的总结,论文应体现出研究生在所属学科领域做出的创造性学术成果,应能反映出研究生已经掌握了相应学位层次要求的基础理论和专门知识,并具备了独立从事学术研究工作的能力。 16 | 17 | \section{撰写学位论文的语言及文字} 18 | 研究生学位论文要求用汉语书写,所用汉字须符合国家语言工作委员会、中华人民共和国新闻出版署联合发布的《现代汉语通用字表》[2]。专用名词、术语可采用国际通用的代号,量及其单位所使用的符号应符合国家标准《国际单位制及其应用》(GB3100—1993)[3]、《有关量、单位和符号的一般原则》(GB3101—1993)[4]的规定。图、表中的图题、坐标轴、图例、表头等描述性的词组或语句须使用汉语,专用名词术语、物理量及其单位可使用符合规范要求的符号。 19 | 20 | 外国人来华留学生可以用英文撰写学位论文,但须采用中文封面,且应有不少于6000字的详细中文摘要。 21 | 22 | \section{主要内容} 23 | 本《写作指南》包括以下四方面内容:第一部分引言,阐述编写本《写作指南》的目的,以及按规范撰写论文的重要性;第二部分,湘潭大学研究生学位论文的基本格式要求,包括论文由哪些部分组成,排列顺序、装订方式、页面设置等具体格式要求;第三部分,参考文献著录规则及注意事项;第四部分,研究生学位论文中一些主要部分的写作方法和要求。此外,在附录中提供了部分模板样式(中文封面、英文封面及学位论文原创性声明与版权使用授权书),供研究生撰写论文时参考。 -------------------------------------------------------------------------------- /body/thank.tex: -------------------------------------------------------------------------------- 1 | \chapter*{致~~~~谢} 2 | \addcontentsline{toc}{chapter}{致谢} 3 | 谢谢 -------------------------------------------------------------------------------- /body/thesisformat.tex: -------------------------------------------------------------------------------- 1 | \chapter{研究生学位论文格式基本要求} 2 | 3 | \section{学位论文的各组成及装订顺序} 4 | 5 | 研究生学位论文应包含如下部分,其装订顺序如下: 6 | \begin{itemize} 7 | \setlength\itemsep{0pt} 8 | \item 中文封面 9 | \item 英文封面 10 | \item 学位论文原创性声明与版权使用授权书 11 | \item 摘要 12 | \item Abstract 13 | \item 目录 14 | \item 主要符号对照表(不需要的可不列此部分) 15 | \item 第1章(或引言),第2章,……,结论 16 | \item 参考文献 17 | \item 致谢 18 | \item 附录(不需要的可不列此部分) 19 | \item 个人简历、在学期间发表的学术论文及研究成果 20 | \end{itemize} 21 | 22 | 以上各项各自独立成为一部分,每部分从新的一页开始。 23 | 24 | “中文封面”、“英文封面”、“学位论文原创性声明与版权使用授权书”三部分单面印刷,不加页码。从“中文摘要”开始各部分双面印刷,各部分之间不必留空白页。 25 | 26 | 从“中文摘要”开始至“目录”(或“主要符号对照表”)结束,页码用罗马数字“\rom{1}、\rom{2}、\rom{3}……”表示;从“第1章”(或“引言”)开始至论文结束,页码用阿拉伯数字“1、2、3……”表示。 27 | 28 | 页码置于页面下部居中,采用Times New Roman五号字体,数字两侧不加修饰线。 29 | 30 | 硕士学位论文封面用白色铜板纸,博士学位论文封面用黄色木纹纸。 31 | 32 | \section{学位论文各部分的写作要求} 33 | 34 | \subsection{中文封面} 35 | 36 | 中文封面包含四部分内容,分别为:论文题目、申请学位的学科门类、作者及导师信息、论文成文打印的日期、学位论文相关信息。 37 | 38 | \textbf{1.论文题目} 39 | 40 | 论文题目\textbf{严格控制在25个汉字(符)以内}。字体采用\textbf{一号黑体字,居中书写},一行写不下时可分两行写,并采用\textbf{1.25倍行距}。 41 | 42 | \textbf{2.作者及导师信息} 43 | 44 | 此部分包括:研究生、指导教师、学院、学科专业。各部分填写内容如下: 45 | 46 | 研究生:填写论文作者姓名。 47 | 48 | 指导教师:填写导师姓名,后衬导师职称“教授”、“研究员”等。一般情况下,只写一名指导教师。 49 | 50 | 学院:填写所属学院的全名,例如:哲学与历史文化学院。 51 | 52 | 学科专业:按一级学科培养的学科填写一级学科名称,其他填写二级学科专业名称,学科专业名称以国务院学位委员会批准的学科专业目录中的学科专业名称为准。 53 | 54 | 作者及导师信息部分使用\textbf{三号仿宋字}。 55 | 56 | \textbf{3.论文成文打印的日期} 57 | 58 | 此部分填写论文成文打印的日期,用\textbf{三号宋体汉字},不用阿拉伯数字。 59 | 60 | \textbf{4.学位论文相关信息} 61 | 62 | 学校代码:10530 63 | 64 | 分类号:《中国图书分类法》的分类号(可向校图书馆二楼文献检索室查询)。 65 | 66 | 密级:公开型论文不需注明,涉密论文需按学校有关规定填写《湘潭大学涉密学位论文审批表》进行审批。 67 | 68 | 学号:同等学力采用受理编号。 69 | 70 | 此部分填写内容使用小四号Times New Roman。 71 | 72 | \subsection{英文封面} 73 | 74 | 英文封面的内容与中文封面相对应,题名使用Arial字体,字号20pt,加粗,居中书写。 其它信息内容使用\textbf{小四号Times New Roman}。 75 | 76 | \subsection{学位论文原创性声明与版权使用授权书} 77 | 78 | 该部分内容可以直接下载本《写作指南》附件的Word文档,相应地复制到自己的论文中即可,在提交论文送审时研究生和导师都必须签署姓名。 79 | 80 | \subsection{中、英文摘要} 81 | 82 | 中文摘要部分的标题为“摘要”,用黑体三号字,居中书写,单倍行距,段前空24磅,段后空18磅。摘要内容用小四号宋体字书写,两端对齐。 83 | 84 | 中文摘要控制在\textbf{800-1000}汉字(符),且篇幅限制在一页内书写。留学生用英文撰写学位论文时,中文摘要应不少于6000汉字(符),但英文摘要仍控制在500-800单词。 85 | 86 | 论文摘要中不要出现图片、图表、表格或其他插图材料。 87 | 88 | 论文的关键词,是为了文献标引工作从论文中选取出来用以表示全文主题内容信息的单词或术语,不超过5个,每个关键词之间用分号间隔。 89 | 90 | 英文摘要部分的标题为“Abstract”,用Arial体三号字,居中书写,单倍行距,段前空24磅,段后空18磅。摘要内容用小四号Times New Roman字体书写,两端对齐,标点符号用英文标点符号。“Key Words”与中文摘要部分的关键词对应,每个关键词之间用分号间隔。 91 | 92 | 论文摘要的中文版与英文版文字内容要对应。可双面打印。 93 | 94 | \subsection{目录} 95 | 96 | 目录是论文主体内容各组成部分章、节序号和标题行按顺序的排列,列至二级节标题(例如2.2.5)即可。目录内容从第1章(或引言)开始,目录之前的内容及目录本身不列入目录内。目录中的章标题行采用黑体小四号字,固定行距20磅,段前空6磅,段后0磅;其他内容采用宋体小四号字,行距为固定值20磅,段前、段后均为0磅。 97 | 98 | 目录中的章标题行居左书写,一级节标题行缩进1个汉字符,二级节标题行缩进2个汉字符。 99 | 100 | \subsubsection{主要符号对照表} 101 | 102 | 如果论文中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应编写“主要符号对照表”。如果上述符号和缩略词使用数量不多,可以不设专门的“主要符号对照表”,而在论文中出现时随即加以说明。 103 | 104 | \subsection{正文} 105 | 106 | 此部分是论文的主体,包括:第1章(或引言),第2章,……,结论。书写层次要清楚,内容应有逻辑性。 107 | 108 | \textbf{1.标题} 109 | 110 | 标题要重点突出,简明扼要。格式如下: 111 | 112 | \begin{itemize} 113 | \item \textbf{各章标题,例如:“第1章 引言”。} 114 | 115 | 章序号采用阿拉伯数字,章序号与标题名之间空一个汉字符。采用黑体三号字,居中书写,单倍行距,段前空24磅,段后空18磅。论文的摘要,目录,主要符号对照表,参考文献,致谢,声明,附录,个人简历、在学期间发表的学术论文与研究成果等部分的标题与章标题属于同一等级,也使用上述格式;英文摘要部分的标题“Abstract”采用Arial体三号字加粗。 116 | 117 | \item \textbf{一级节标题,例如:“2.1 实验装置与实验方法”。} 118 | 119 | 节标题序号与标题名之间空一个汉字符(下同)。采用黑体四号(14pt)字居左书写,行距为固定值20磅,段前空24磅,段后空6磅。 120 | 121 | \item \textbf{二级节标题,例如:“2.1.1 实验装置”。} 122 | 123 | 采用黑体13pt字居左书写,行距为固定值20磅,段前空12磅,段后空6磅。 124 | 125 | \item \textbf{三级节标题,例如:“2.1.2.1 归纳法”。} 126 | 127 | 采用黑体小四号(12pt)字居左书写,行距为固定值20磅,段前空12磅,段后空6磅。\underline{一般情况下不使用三级节标题}。 128 | 129 | \end{itemize} 130 | 131 | \textbf{2.论文段落的文字部分} 132 | 133 | 采用小四号(12pt)字,汉字用宋体,英文用Times New Roman体,两端对齐书写,段落首行左缩进2个汉字符。行距为固定值20磅(段落中有数学表达式时,可根据表达需要设置该段的行距),段前空0磅,段后空0磅。 134 | 135 | \textbf{3.脚注} 136 | 137 | 正文中某句话需要具体注释、且注释内容与正文内容关系不大时可以采用脚注方式。在正文中需要注释的句子结尾处用①②③……样式的数字编排序号,以“上标”字体标示在需要注释的句子末尾。在当页下部书写脚注内容。 138 | 139 | 脚注内容采用宋体小五号字,按两端对齐格式书写,单倍行距,段前段后均空0磅。脚注的序号按页编排,不同页的脚注序号不需要连续。脚注处序号“①,……,⑩”的字体是“正文”,不是“上标”,序号与脚注内容文字之间空半个汉字符,脚注的段落格式为:单倍行距,段前空0磅,段后空0磅,悬挂缩进1.5字符;字号为小五号字,汉字用宋体,外文用Times New Roman体。 140 | 141 | \subsection{参考文献} 142 | 143 | ``参考文献''四个字的格式与章标题的格式相同。参考文献表的正文部分用五号字,汉字用宋体,英文用Times New Roman体,行距采用固定值16磅,段前空3磅,段后空0磅。 144 | 145 | 每一条文献的内容要尽量写在同一页内。遇有被迫分页的情况,可通过``留白''或微调本页行距的方式尽量将同一条文献内容放在一页。 146 | 147 | 关于参考文献的著录格式以及在正文中的标注方法详细见第3章。 148 | 149 | \subsection{致谢} 150 | 151 | 用于评审、答辩、审议学位及提交学校存档的论文,致谢对象限于对完成学位论文在学术上有较重要帮助的团体和人士,致谢内容限200字以内,标题为“致谢”。 152 | 153 | \subsection{附录} 154 | 155 | 附录是与论文内容密切相关、但编入正文又影响整篇论文编排的条理和逻辑性的一些资料,例如某些重要的数据表格、计算程序、统计表等,是论文主体的补充内容,可根据需要设置。 156 | 157 | 附录的格式与正文相同,并依顺序用大写字母A,B,C,……编序号,如附录A,附录B,附录C,……。只有一个附录时也要编序号,即附录A。每个附录应有标题。附录序号与附录标题之间空一个汉字符。例如:“附录A 北京市2003年度工业经济统计数据”。 158 | 159 | 附录中的图、表、数学表达式、参考文献等另行编序号,与正文分开,一律用阿拉伯数字编码,但在数码前冠以附录的序号,例如“图A.1”,“表B.2”,“式(C-3)”等。 160 | 161 | \subsection{个人简历、在学期间发表的学术论文与研究成果} 162 | 163 | 个人简历包括出生年月日、获得学士、硕士学位的学校、时间等; 164 | 165 | 在学期间发表的学术论文分以下三种情况分别列出: 166 | 167 | 1.已经刊载的学术论文(本人是第一作者,或者导师为第一作者本人是第二作者)。按照参考文献格式书写,并在其后加括号,括号内注明该文检索类型,检索号,期刊的影响因子等。如果该论文未被检索,在括号内注明期刊级别或属于何种检索源刊,例如中文核心期刊、SCI源刊、EI源刊等。 168 | 169 | 2.尚未刊载,但已经接到正式录用函的学术论文(本人为第一作者,或者导师为第一作者本人是第二作者)。按照参考文献格式书写。在每一篇文献后加括号注明已被××××期刊录用,并注明期刊级别或属于何种检索源刊,例如中文核心期刊、SCI源刊、EI源刊等。 170 | 171 | 3.其他学术论文。可列出除上述两种情况以外的其他学术论文,但必须是已经刊载或者收到正式录用函的论文。 172 | 研究成果可以是在学期间参加的研究项目、获得专利或获奖情况等。获得专利请注明专利名称、作者、专利号;奖项请注明获奖名称、颁奖部门、获奖时间及个人在获奖者中的名次。 173 | 174 | \subsection{量和单位} 175 | 176 | 要严格执行国家技术监督局1993年12月27日批准的、1994年7月1日开始实施的国家标准GB3100-3102—1993有关量和单位的规定。 177 | 178 | 单位名称的书写,可以采用国际通用符号,也可以用中文名称,但全文应统一,不得两种混用。 179 | 180 | \subsection{有关图、表、表达式} 181 | 182 | 图、表和表达式按章编号,用两位阿拉伯数字分别编号,前一位数字为章的序号,后一数字为本章内图、表或表达式的顺序号。两数字间用半角横线“-”或小数点“.”连接。例如“图2-1”或“图2.1”,“表5-6”或“表5.6”,“式(1-2)”或“式(1.2)”等等。 183 | 184 | \begin{itemize} 185 | \item \textbf{图} 186 | 187 | 图要精选,要具有自明性,切忌与表及文字表述重复。 188 | 189 | 图要清楚,但坐标比例不要过分放大,同一图上不同曲线的点要分别用不同形状的标识符标出。 190 | 191 | 图中的术语、符号、单位等应与正文表述中所用一致。 192 | 193 | 图序与图名,例如:“图2.1 发展中国家经济增长速度的比较(1960-2000)”。 194 | 195 | 图2.1是图序,是“第2章第1个图”的序号,其余类推。图序与图名置于图的下方,采用宋体11pt字居中书写,段前空6磅,段后空12磅,行距为单倍行距,图序与图名文字之间空一个汉字符宽度。 196 | 197 | 图中标注的文字采用9~10.5pt,以能够清晰阅读为标准。专用名字代号、单位可采用外文表示,坐标轴题名、词组、描述性的词语均须采用中文。 198 | 199 | 如果一个图由两个或两个以上分图组成时,各分图分别以(a)、(b)、(c)……作为图序,并须有分图名。 200 | 201 | \item \textbf{表} 202 | 203 | 表中参数应标明量和单位的符号。为使表格简洁易读,建议采用三线表(必要时可加辅助线),即表的上、下边线为单直线,线粗为1.5磅;第三条线为单直线,线粗为1磅。 204 | 205 | 表单元格中的文字一般应居中书写(上下居中,左右居中),不宜左右居中书写的,可采取两端对齐的方式书写。表单元格中的文字采用11pt宋体字,单倍行距,段前空3磅,段后空3磅。 206 | 207 | 表序与表名,例如:“表3.1 第四次全国经济普查数据(北京)”。 208 | 209 | 表3.1是表序,是“第3章第1个表”的序号,其余类推。表序与表名置于表的上方,采用宋体11pt字居中书写,段前空12磅,段后空6磅,行距为单倍行距,表序与表名文字之间空一个汉字符。 210 | 211 | 当表格较大,不能在一页内打印时,可以“续表”的形式另页打印,格式同前,只需在表序前加“续”字即可,例如“续表3.1 第四次全国经济普查数据(北京)”。 212 | 213 | 若在表下方注明资料来源,则此部分用宋体五号字,单倍行距,段前空6磅,段后空12磅。需要续表时,资料来源注明在续表之下。 214 | 215 | \item \textbf{表达式} 216 | 217 | 表达式主要是指数字表达式,例如数学表达式,也包括文字表达式。 218 | 219 | 表达式采用与正文相同的字号居中书写,或另起一段空两个汉字符书写,一旦采用了上述两种格式中的一种,全文都要使用同一种格式。表达式应有序号,序号用括号括起来置于表达式右边行末,序号与表达式之间不加任何连线。 220 | 221 | 表达式行的行距为单倍行距,段前空6磅,段后空6磅。当表达式不是独立成行书写时,有表达式的段落的行距为单倍行距,段前空3磅,段后空3磅。 222 | 223 | 文中的表、图、表达式一律采用阿拉伯数字分章编号,例如:“表3.2”,“图2.5”,“式(3-1)”等。若图或表中有附注,采用英文小写字母顺序编号,附注写在图或表的下方。 224 | \end{itemize} 225 | 226 | \section{页面设置与页码} 227 | 228 | \subsection{页面设置} 229 | 230 | 中、英文封面的页面设置已经在2.2.1和2.2.2中进行了介绍。 231 | 232 | 论文除中、英文封面、学位论文原创性声明与版权使用授权书三页采用单面印刷,从目录开始(包括目录)后面的部分均采用A4幅面白色纸张双面印刷。 233 | 234 | \subsection{页码} 235 | 236 | 页码从第1章(引言)开始按阿拉伯数字(1,2,3,……)连续编排,之前的部分(摘要,Abstract,目录,主要符号对照表等)用大写罗马数字(\rom{1},\rom{2},\rom{3},……)单独编排。页码位于页面底端,采用五号Times New Roman体数字居中书写。页码数字两侧不要加“-”等修饰线。 -------------------------------------------------------------------------------- /clear.sh: -------------------------------------------------------------------------------- 1 | filetype=".*\.aux\|\ 2 | .*.tex.bak\|\ 3 | .*.log\|\ 4 | .*.nav\|\ 5 | .*.out\|\ 6 | .*.djs\|\ 7 | .*.out.bak\|\ 8 | .*.snm\|\ 9 | .*.ps\|\ 10 | .*.dvi\|\ 11 | .*.synctex.gz*\|\ 12 | .*.idx\|\ 13 | .*.toc\|\ 14 | .*.bbl\|\ 15 | .*.blg\|\ 16 | .*.synctex*\|\ 17 | .*.thm 18 | " 19 | 20 | find . -regex $filetype | xargs rm -f -------------------------------------------------------------------------------- /figures/Correct_Ratio.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/figures/Correct_Ratio.pdf -------------------------------------------------------------------------------- /figures/Lenna.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/figures/Lenna.pdf -------------------------------------------------------------------------------- /figures/Lenna_e.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/figures/Lenna_e.pdf -------------------------------------------------------------------------------- /preface/abstract.tex: -------------------------------------------------------------------------------- 1 | %----摘要---------------------------------------------------------------------------------------- 2 | \begin{cnabstract} 3 | 论文的摘要是对论文研究内容和成果的高度概括。摘要应对论文所研究的问题及其研究目 4 | 的进行描述,对研究方法和过程进行简单介绍,对研究成果和所得结论进行概括。摘要应 5 | 具有独立性和自明性,其内容应包含与论文全文同等量的主要信息。使读者即使不阅读全 6 | 文,通过摘要就能了解论文的总体内容和主要成果。 7 | 8 | 论文摘要的书写应力求精确、简明。切忌写成对论文书写内容进行提要的形式,尤其要避 9 | 免“第 1 章……;第 2 章……;……”这种或类似的陈述方式。 10 | 11 | 本文介绍清华大学论文模板 的使用方法。本模板符合学校的本科、硕士、 12 | 博士论文格式要求。 13 | 14 | 本文的创新点主要有: 15 | \begin{itemize} 16 | \item 用例子来解释模板的使用方法; 17 | \item 用废话来填充无关紧要的部分; 18 | \item 一边学习摸索一边编写新代码。 19 | \end{itemize} 20 | 21 | 关键词是为了文献标引工作、用以表示全文主要内容信息的单词或术语。关键词不超过 5 22 | 个,每个关键词中间用分号分隔。(模板作者注:关键词分隔符不用考虑,模板会自动处 23 | 理。英文关键词同理。) 24 | \end{cnabstract} 25 | 26 | \begin{cnkeywords} 27 | 关键词1;关键词2 28 | \end{cnkeywords} 29 | %----Abstract------------------------------------------------------------------------------------ 30 | \newpage 31 | \begin{enabstract} 32 | An abstract of a dissertation is a summary and extraction of research work 33 | and contributions. Included in an abstract should be description of research 34 | topic and research objective, brief introduction to methodology and research 35 | process, and summarization of conclusion and contributions of the 36 | research. An abstract should be characterized by independence and clarity and 37 | carry identical information with the dissertation. It should be such that the 38 | general idea and major contributions of the dissertation are conveyed without 39 | reading the dissertation. 40 | 41 | An abstract should be concise and to the point. It is a misunderstanding to 42 | make an abstract an outline of the dissertation and words ``the first 43 | chapter'', ``the second chapter'' and the like should be avoided in the 44 | abstract. 45 | 46 | Key words are terms used in a dissertation for indexing, reflecting core 47 | information of the dissertation. An abstract may contain a maximum of 5 key 48 | words, with semi-colons used in between to separate one another. 49 | \end{enabstract} 50 | 51 | \begin{enkeywords} 52 | keyword1; keyword2 53 | \end{enkeywords} -------------------------------------------------------------------------------- /preface/cover.tex: -------------------------------------------------------------------------------- 1 | %中文封面 2 | \studentid{你的学号} 3 | \cntitle{论文题目} 4 | \cnname{你的名字} 5 | \cnteacher{XXX~教授} 6 | \cncollege{所在学院} 7 | \cnmajor{你的专业} 8 | \cnspcial{研究方向} 9 | \cndegree{学位} 10 | \cnschool{学校} 11 | %\cdate{二〇一八年二月二十四日} % 日期默认是今天,也可自行修改 12 | \makecntitle 13 | %英文封面 14 | \entitle{English Title} 15 | \candidate{Your name} 16 | \supervisor{Professor XXX} 17 | \college{Your college} 18 | \program{Your program} 19 | \specialization{Your specialization} 20 | \degree{Master of XXX} 21 | \university{XXX university} 22 | %\edate{February 24, 2018} % 同中文日期 23 | \makeentitle 24 | %原创声明 25 | \makedeclare -------------------------------------------------------------------------------- /reference/gbt7714-2005.bst: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 3 | % 符合 GB/T 7714-2005 规范的 BibTeX 样式文件 4 | % 5 | % 作者: 胡海星 南京大学计算机科学与技术系 6 | % 版本: v2.1.1 2015年6月15日 7 | % 项目主页: http://haixing-hu.github.io/nju-thesis/ 8 | % 9 | % 参考资料: 10 | % [1] 中国国家标准化管理委员会. GB/T 7714-2005 文后参考文献着录规则[S]. 2005. 11 | % [2] PATASHNIK O. BiBTeXing[R/OL]. 1988[2013-08-27]. 12 | % ftp://tug.ctan.org/pub/tex-archive/biblio/bibtex/contrib/doc/btxdoc.pdf 13 | % [3] PATASHNIK O. Designing BibTeX Styles[R/OL]. 1998[2013-08-27]. 14 | % ftp://tug.ctan.org/pub/tex-archive/biblio/bibtex/contrib/doc/btxhak.pdf 15 | % 16 | % This program is free software; you can redistribute it and/or modify 17 | % it under the terms of the GNU General Public License as published by 18 | % the Free Software Foundation; either version 2 of the License, or 19 | % (at your option) any later version. 20 | % 21 | % This program is distributed in the hope that it will be useful, 22 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 23 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24 | % GNU General Public License for more details. 25 | % 26 | % You should have received a copy of the GNU General Public License along 27 | % with this program; if not, write to the Free Software Foundation, Inc., 28 | % 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 29 | % 30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 31 | % 32 | ENTRY % class Entry { 33 | { % public: 34 | author % String author; 35 | editor % String editor; 36 | translator % String translator; 37 | title % String title; 38 | edition % String edition; 39 | address % String address; 40 | publisher % String publisher; 41 | pages % String pages; 42 | year % String year; 43 | date % String date; 44 | modifydate % String modifydate; 45 | citedate % String citedate; 46 | url % String url; 47 | doi % String doi; 48 | language % String language; 49 | booktitle % String booktitle; 50 | journal % String journal; 51 | chapter % String chapter; 52 | series % String series; 53 | volume % String volume; 54 | number % String number; 55 | version % String version; 56 | month % String month; 57 | school % String school; 58 | institution % String institution; 59 | organization % String organization; 60 | type % String type; 61 | howpublished % String howpublished; 62 | eid % String eid; 63 | key % String key; 64 | country % String country; 65 | patentid % String patentid; 66 | media % String media; 67 | } { % // declare integer variables 68 | required % int required; // withther the bibfield is required 69 | } { % // declare String variables 70 | label % String label; // label for the entry 71 | mark % String mark; // mark for the entry 72 | % // there is ahidden entry variable sort.key$ 73 | % String sort_key; 74 | } % } 75 | % 76 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 77 | % 78 | INTEGERS { % // declare global int variables 79 | entry.count % static int entry_count; // number of entries 80 | longest.label.width % static int longest_label_width; // width of the longest label 81 | i % static int i; 82 | j % static int j; 83 | k % static int k; 84 | } % 85 | % 86 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 87 | % 88 | STRINGS { % // declare global String variables 89 | longest.label % static String longest_label; // the longest label 90 | s % static String s; 91 | t % static String t; 92 | } % 93 | % 94 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 95 | 96 | % define global static constants 97 | FUNCTION {true} {#1} 98 | FUNCTION {false} {#0} 99 | FUNCTION {debug.enabled} {true} 100 | FUNCTION {cap.volume.en} {"Vol~"} 101 | FUNCTION {cap.volume.zh} {"卷"} 102 | FUNCTION {cap.edition.en} {"~ed"} 103 | FUNCTION {cap.edition.zh} {"版"} 104 | FUNCTION {cap.anonymous.en} {"Anon"} 105 | FUNCTION {cap.anonymous.zh} {"佚名"} 106 | FUNCTION {cap.no.address.en} {"[S.l.]"} 107 | FUNCTION {cap.no.address.zh} {"[出版地不详]"} 108 | FUNCTION {cap.no.publisher.en} {"[s.n.]"} 109 | FUNCTION {cap.no.publisher.zh} {"[出版者不详]"} 110 | FUNCTION {cap.et.al.en} {", et~al"} 111 | FUNCTION {cap.et.al.zh} {", 等"} 112 | FUNCTION {cap.translate.en} {"~trans"} 113 | FUNCTION {cap.translate.zh} {"译"} 114 | FUNCTION {cap.doi.url} {"http://dx.doi.org/"} 115 | FUNCTION {cap.st.en} {"st"} 116 | FUNCTION {cap.nd.en} {"nd"} 117 | FUNCTION {cap.rd.en} {"rd"} 118 | FUNCTION {cap.th.en} {"th"} 119 | 120 | FUNCTION {cap.space} {" "} 121 | FUNCTION {cap.period} {"\@. "} 122 | FUNCTION {cap.comma} {"\@, "} 123 | FUNCTION {cap.colon} {"\thinspace{}\textnormal{: }"} 124 | FUNCTION {cap.double.slash} {" //\thinspace{}"} 125 | FUNCTION {cap.dash} {"\thinspace{}\textnormal{--}\thinspace{}"} 126 | 127 | % Predefined latex command used to format the style of bibitems 128 | FUNCTION {env.bibbegin} { "\begin{thebibliography}" } 129 | FUNCTION {env.bibend} { "\end{thebibliography}" } 130 | FUNCTION {cmd.bibauthor} { "\providecommand{\bibauthor}[1]{#1}" } 131 | FUNCTION {cmd.bibeditor} { "\providecommand{\bibeditor}[1]{#1}" } 132 | FUNCTION {cmd.bibtranslator} { "\providecommand{\bibtranslator}[1]{#1}" } 133 | FUNCTION {cmd.bibtitle} { "\providecommand{\bibtitle}[1]{#1}" } 134 | FUNCTION {cmd.bibbooktitle} { "\providecommand{\bibbooktitle}[1]{#1}" } 135 | FUNCTION {cmd.bibjournal} { "\providecommand{\bibjournal}[1]{#1}" } 136 | FUNCTION {cmd.bibmark} { "\providecommand{\bibmark}[1]{#1}" } 137 | FUNCTION {cmd.bibcountry} { "\providecommand{\bibcountry}[1]{#1}" } 138 | FUNCTION {cmd.bibpatentid} { "\providecommand{\bibpatentid}[1]{#1}" } 139 | FUNCTION {cmd.bibedition} { "\providecommand{\bibedition}[1]{#1}" } 140 | FUNCTION {cmd.biborganization} { "\providecommand{\biborganization}[1]{#1}" } 141 | FUNCTION {cmd.bibaddress} { "\providecommand{\bibaddress}[1]{#1}" } 142 | FUNCTION {cmd.bibpublisher} { "\providecommand{\bibpublisher}[1]{#1}" } 143 | FUNCTION {cmd.bibinstitution} { "\providecommand{\bibinstitution}[1]{#1}" } 144 | FUNCTION {cmd.bibschool} { "\providecommand{\bibschool}[1]{#1}" } 145 | FUNCTION {cmd.bibvolume} { "\providecommand{\bibvolume}[1]{#1}" } 146 | FUNCTION {cmd.bibnumber} { "\providecommand{\bibnumber}[1]{#1}" } 147 | FUNCTION {cmd.bibversion} { "\providecommand{\bibversion}[1]{#1}" } 148 | FUNCTION {cmd.bibpages} { "\providecommand{\bibpages}[1]{#1}" } 149 | FUNCTION {cmd.bibmodifydate} { "\providecommand{\bibmodifydate}[1]{#1}" } 150 | FUNCTION {cmd.bibcitedate} { "\providecommand{\bibcitedate}[1]{#1}" } 151 | FUNCTION {cmd.bibyear} { "\providecommand{\bibyear}[1]{#1}" } 152 | FUNCTION {cmd.bibdate} { "\providecommand{\bibdate}[1]{#1}" } 153 | FUNCTION {cmd.biburl} { "\providecommand{\biburl}[1]{\url{#1}}" } 154 | 155 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 156 | % 157 | FUNCTION {log.str} { % void Entry::log_str(String value, String message) 158 | debug.enabled { % if (debug_enabled == 1) { 159 | "DEBUG: " swap$ * " - '" * % message = "DEBUG: " + message + " - '"; 160 | swap$ * % message = message + value; 161 | "'" * % message = message + "'"; 162 | top$ % log(message); 163 | } { % } else { 164 | pop$ pop$ % return; 165 | } if$ % } 166 | } % } 167 | % 168 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 169 | % 170 | FUNCTION {log.int} { % int Entry::log_int(int value, String message) 171 | debug.enabled { % if (debug_enabled == 1) { 172 | "DEBUG: " swap$ * " - " * % message = "DEBUG: " + message + " - "; 173 | swap$ int.to.str$ * % message = message + int_to_str(value); 174 | top$ % log(message); 175 | } { % } else { 176 | pop$ pop$ % return; 177 | } if$ % } 178 | } % } 179 | % 180 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 181 | % 182 | FUNCTION {not} { % int Entry::not(int x) { 183 | { % if (x == 1) { 184 | false % return false; 185 | } { % } else { 186 | true % return true; 187 | } if$ % } 188 | } % } 189 | % 190 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 191 | % 192 | FUNCTION {and} { % int Entry::and(int x, int y) { 193 | { % if (y == 1) { 194 | skip$ % return x; 195 | } { % } else { 196 | pop$ false % return false; 197 | } if$ % } 198 | } % } 199 | % 200 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 201 | % 202 | FUNCTION {or} { % int Entry::or(int x, int y) { 203 | { % if (y == 1) { 204 | pop$ true % return true; 205 | } { % } else { 206 | skip$ % return x; 207 | } if$ % } 208 | } % } 209 | % 210 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 211 | % // calculate the length in characters of a string 212 | % // We need this function since text.length$ is NOT 213 | % // the length in characters. 214 | INTEGERS {length.i} % static int length_i; 215 | FUNCTION {length} { % int Entry::length(String str) { 216 | duplicate$ empty$ { % if (empty(str)) { 217 | pop$ #0 % return 0; 218 | } { % } else { 219 | #1 'length.i := % length_i = 1; 220 | false % int stop = false; 221 | {not} { % while (! stop) { 222 | duplicate$ length.i #1 substring$ % String tmp = substring(str, length_i, 1); 223 | "" = { % if (tmp == "") { 224 | true % stop = true; 225 | } { % } else { 226 | length.i #1 + 'length.i := % length_i = length_i + 1; 227 | false % stop = false; 228 | } if$ % } 229 | } while$ % } 230 | pop$ length.i #1 - % return length_i - 1; 231 | } if$ % } 232 | } % } 233 | % 234 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 235 | % 236 | FUNCTION {is.digit} { % int Entry::is_digit(String ch) { 237 | chr.to.int$ % int ascii = chr_to_int(ch); 238 | duplicate$ "0" chr.to.int$ < { % if (ascii < chr_to_int("0")) { 239 | pop$ false % return false; 240 | } { % } else { 241 | "9" chr.to.int$ > { % if (ascii > chr_to_int("9")) { 242 | false % return false; 243 | } { % } else { 244 | true % return true; 245 | } if$ % } 246 | } if$ % } 247 | } % } 248 | % 249 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 250 | % // test if str is a number 251 | FUNCTION {is.number} { % int Entry::is_number(String str) { 252 | duplicate$ empty$ not swap$ % int result = (! empty(str)); 253 | { duplicate$ empty$ not} { % while (! empty(str)) { 254 | duplicate$ #1 #1 substring$ is.digit { % if (is_digit(substring(str, 1, 1))) { 255 | #2 global.max$ substring$ % str = substring(str, 2, global_max); 256 | } { % } else { 257 | pop$ pop$ false % result = false; 258 | "" % str = ""; 259 | } if$ % } 260 | } while$ % } 261 | pop$ % return result; 262 | } % } 263 | % 264 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 265 | % // extract the number prefix of str 266 | FUNCTION {extract.number} { % String Entry::extract_number(String str) { 267 | duplicate$ % String suffix = str; 268 | duplicate$ length swap$ % int n = length(str); 269 | duplicate$ empty$ % int stop = empty(suffix); 270 | { not } { % while (! stop) { 271 | duplicate$ #1 #1 substring$ is.digit { % if (is_digit(substring(suffix, 1, 1))) { 272 | #2 global.max$ substring$ % suffix = substring(suffix, 2, global_max); 273 | duplicate$ empty$ % stop = empty(suffix); 274 | } { % } else { 275 | true % stop = true; 276 | } if$ % } 277 | } while$ % } 278 | length - % int n = n - length(suffix); 279 | #1 swap$ substring$ % return substring(str, 1, n); 280 | } % } 281 | % 282 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 283 | % 284 | FUNCTION {get.last.chr} { % String Entry::get_last_chr(String str) { 285 | duplicate$ length % int n = length(str); 286 | duplicate$ #0 = { % if (n == 0) { 287 | pop$ % return str; 288 | } { % } else { 289 | #1 substring$ % return substring(str, n, 1); 290 | } if$ % } 291 | } % } 292 | % 293 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 294 | % 295 | FUNCTION {get.ordinal.suffix.en} { % String Entry::get_ordinal_suffix_en(String ch) { 296 | duplicate$ "1" = { % if (num == "1") { 297 | pop$ cap.st.en % return cap_st_en; 298 | } { % } else { 299 | duplicate$ "2" = { % if (num == "2") { 300 | pop$ cap.nd.en % return cap_nd_en; 301 | } { % } else { 302 | duplicate$ "3" = { % if (num == "3") { 303 | pop$ cap.rd.en % return cap_rd_en; 304 | } { % } else { 305 | pop$ cap.th.en % return cap_th_en; 306 | } if$ % } 307 | } if$ % } 308 | } if$ % } 309 | } % } 310 | % 311 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 312 | % 313 | FUNCTION {num.to.ordinal.en} { % String Entry::num_to_ordinal_en(String num) { 314 | duplicate$ empty$ { % if (empty(num)) { 315 | skip$ % return num; 316 | } { % } else { 317 | duplicate$ get.last.chr % String ch = get_last_chr(num); 318 | get.ordinal.suffix.en % String str = get_ordinal_suffix_en(ch); 319 | * % reutrn num + str; 320 | } if$ % } 321 | } % } 322 | % 323 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 324 | % 325 | STRINGS {remove.dots.result} % static String remove_dots_result; 326 | % 327 | FUNCTION {remove.dots} { % String Entry::remove_dots(String str) { 328 | "" 'remove.dots.result := % remove_dots_result = ""; 329 | { duplicate$ empty$ not } { % while (! empty(str)) { 330 | duplicate$ #1 #2 substring$ % String tmp = substring(str, 1, 2); 331 | "\." = { % if (tmp == "\.") { 332 | #3 global.max$ substring$ % str = substring(str, 3, global_max); 333 | } { % } else { 334 | duplicate$ #1 #1 substring$ % tmp = substring(str, 1, 1); 335 | duplicate$ "." = { % if (tmp == ".") { 336 | pop$ #2 global.max$ substring$ % str = substring(str, 2, global_max); 337 | } { % } else { 338 | remove.dots.result swap$ * % tmp = remove_dots_result + tmp; 339 | 'remove.dots.result := % remove_dots_result = tmp; 340 | #2 global.max$ substring$ % str = substring(str, 2, global_max); 341 | } if$ % } 342 | } if$ % } 343 | } while$ % } 344 | pop$ remove.dots.result % return remove_dots_result; 345 | } % } 346 | % 347 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 348 | % 349 | FUNCTION {add.brace} { % String Entry::add_brace(String str) { 350 | "{" swap$ * "}" * % return "{" + str + "}"; 351 | } % } 352 | % 353 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 354 | % 355 | FUNCTION {add.bracket} { % String Entry::bracket(String str) { 356 | "(" swap$ * ")" * % return "(" + str + ")"; 357 | } % } 358 | % 359 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 360 | % 361 | FUNCTION {add.squarebracket} { % String Entry::add_squarebracket(String str) { 362 | "[" swap$ * "]" * % return "[" + str + "]"; 363 | } % } 364 | % 365 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 366 | % 367 | FUNCTION {add.textit} { % String Entry::add_textit(String str) { 368 | "\textit{" swap$ * "}" * % return "\textit{" + str + "}"; 369 | } % } 370 | % 371 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 372 | % 373 | FUNCTION {add.textbf} { % String Entry::add_textbf(String str) { 374 | "\textbf{" swap$ * "}" * % return "\textbf{" + str + "}"; 375 | } % } 376 | % 377 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 378 | % // test if str contains a dash '-' 379 | FUNCTION {contain.dash} { % int Entry::contain_dash(String str) { 380 | false swap$ % int result = false; 381 | { duplicate$ empty$ not} { % while (! empty(str)) { 382 | duplicate$ #1 #1 substring$ "-" = { % if (substring(str, 1, 1) == "-") { 383 | pop$ pop$ true % result = true; 384 | "" % str = ""; 385 | } { % } else { 386 | #2 global.max$ substring$ % str = substring(str, 2, global_max); 387 | } if$ % } 388 | } while$ % } 389 | pop$ % return result; 390 | } % } 391 | % 392 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 393 | % // extract the substring before the first '-' 394 | % // returns the string itself if no '-' 395 | FUNCTION {extract.before.first.dash} { % String Entry::extract_before_first_dash(String str) { 396 | duplicate$ % String suffix = str; 397 | duplicate$ length swap$ % int n = length(str); 398 | duplicate$ empty$ % int stop = empty(suffix); 399 | { not } { % while (! stop) { 400 | duplicate$ #1 #1 substring$ "-" = { % if (substring(suffix, 1, 1) == "-") { 401 | true % stop = true; 402 | } { % } else {4r 403 | #2 global.max$ substring$ % suffix = substring(suffix, 2, global_max); 404 | duplicate$ empty$ % stop = empty(suffix); 405 | } if$ % } 406 | } while$ % } 407 | length - % int n = n - length(suffix); 408 | #1 swap$ substring$ % return substring(str, 1, n); 409 | } % } 410 | % 411 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 412 | % // extract the substring after the first '-' 413 | % // returns the string itself if no '-' 414 | FUNCTION {extract.after.first.dash} { % String Entry::extract_after_first_dash(String str) { 415 | duplicate$ % String suffix = str; 416 | duplicate$ empty$ % int stop = empty(suffix); 417 | { not } { % while (! stop) { 418 | duplicate$ #1 #1 substring$ "-" = { % if (substring(suffix, 1, 1) == "-") { 419 | true % stop = true; 420 | } { % } else {4r 421 | #2 global.max$ substring$ % suffix = substring(suffix, 2, global_max); 422 | duplicate$ empty$ % stop = empty(suffix); 423 | } if$ % } 424 | } while$ % } 425 | duplicate$ empty$ { % if (empty(suffix)) { 426 | pop$ % return str; 427 | } { % } else { 428 | swap$ pop$ #2 global.max$ substring$ % return substring(suffix, 2, global_max); 429 | } if$ % } 430 | } % } 431 | % 432 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 433 | % // extract the substring after the last '-' 434 | % // returns the empty string if no '-' 435 | FUNCTION {extract.after.last.dash} { % String Entry::extract_after_last_dash(String str) { 436 | duplicate$ contain.dash not { % if (! contain_dash(str)) { 437 | pop$ "" % return ""; 438 | } { % } else { 439 | {duplicate$ contain.dash} { % while (contain_dash(str)) { 440 | extract.after.first.dash % str = extract_after_first_dash(str); 441 | } while$ % } 442 | % return str; 443 | } if$ % } 444 | } % } 445 | % 446 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 447 | % 448 | FUNCTION {trim.start} { % String Entry::trim_start(String str) { 449 | {duplicate$ #1 #1 substring$ " " =} { % while (substring(str, 1, 1) == " ") { 450 | #2 global.max$ substring$ % str = substring(str, 2, global_max); 451 | } while$ % } 452 | % return str; 453 | } % } 454 | % 455 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 456 | % 457 | FUNCTION {trim.end} { % String Entry::trim_end(String str) { 458 | {duplicate$ get.last.chr " " =} { % while (get_last_chr(str) == " ") { 459 | duplicate$ length #1 - % int n = length(str) - 1; 460 | #1 swap$ substring$ % str = substring(str, 1, n); 461 | } while$ % } 462 | % return str; 463 | } % } 464 | % 465 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 466 | % 467 | FUNCTION {trim} { % String Entry::trim(String str) { 468 | trim.start % str = trim_start(str); 469 | trim.end % return trim_end(str); 470 | } % } 471 | % 472 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 473 | % 474 | FUNCTION {start.bibitem} { % void Entry::start_bibitem() { 475 | newline$ % writeln(); 476 | "\bibitem{" cite$ * "}" * write$ % write("\bibitem{" + this.cite + "}"); 477 | newline$ % writeln(); 478 | } % } 479 | % 480 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 481 | % 482 | FUNCTION {end.bibitem} { % void Entry::end_bibitem() { 483 | cap.period write$ % write(cap_period); 484 | newline$ % writeln(); 485 | } % } 486 | % 487 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 488 | % 489 | FUNCTION {is.in.chinese} { % int Entry::is_in_chinese() { 490 | language empty$ { % if (empty(this.language)) { 491 | false % return false; 492 | } { % } else { 493 | language "zh" = { % if (this.language == "zh") { 494 | true % return true; 495 | } { % } else { 496 | false % return false; 497 | } if$ % } 498 | } if$ % } 499 | } % } 500 | % 501 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 502 | % 503 | FUNCTION {is.online} { % int Entry::is_online() { 504 | url empty$ not { % if (! empty(this.url)) { 505 | true % return true; 506 | } { % } else { 507 | doi empty$ not { % if (! empty(this.doi)) { 508 | true % return true; 509 | } { % } else { 510 | false % return false; 511 | } if$ % } 512 | } if$ % } 513 | } % } 514 | % 515 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 516 | % 517 | FUNCTION {set.mark} { % void Entry::set_mark(String mark) { 518 | 'mark := % this.mark = mark; 519 | is.online { % if (is_online()) { 520 | mark "/OL" * 'mark := % this.mark = this.mark + "/OL"; 521 | } { % } else { 522 | media empty$ not { % if (! empty(this.media)) { 523 | mark "/" * media * 'mark := % this.mark = this.mark + "/" + this.media; 524 | } 'skip$ if$ % } 525 | } if$ % } 526 | } % } 527 | % 528 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 529 | % 530 | FUNCTION {cap.volume} { % String Entry::cap_volume() { 531 | is.in.chinese { % if (is_in_chinese()) { 532 | cap.volume.zh % return cap_volume_zh; 533 | } { % } else { 534 | cap.volume.en % return cap_volume_en; 535 | } if$ % } 536 | } % } 537 | % 538 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 539 | % 540 | FUNCTION {cap.edition} { % String Entry::cap_edition() { 541 | is.in.chinese { % if (is_in_chinese()) { 542 | cap.edition.zh % return cap_edition_zh; 543 | } { % } else { 544 | cap.edition.en % return cap_edition_en; 545 | } if$ % } 546 | } % } 547 | % 548 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 549 | % 550 | FUNCTION {cap.anonymous} { % String Entry::cap_anonymous() { 551 | is.in.chinese { % if (is_in_chinese()) { 552 | cap.anonymous.zh % return cap_anonymous_zh; 553 | } { % } else { 554 | cap.anonymous.en % return cap_anonymous_en; 555 | } if$ % } 556 | } % } 557 | % 558 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 559 | % 560 | FUNCTION {cap.no.address} { % String Entry::cap_no_address() { 561 | is.in.chinese { % if (is_in_chinese()) { 562 | cap.no.address.zh % return cap_no_address_zh; 563 | } { % } else { 564 | cap.no.address.en % return cap_no_address_en; 565 | } if$ % } 566 | } % } 567 | % 568 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 569 | % 570 | FUNCTION {cap.no.publisher} { % String Entry::cap_no_publisher() { 571 | is.in.chinese { % if (is_in_chinese()) { 572 | cap.no.publisher.zh % return cap_no_publisher_zh; 573 | } { % } else { 574 | cap.no.publisher.en % return cap_no_publisher_en; 575 | } if$ % } 576 | } % } 577 | % 578 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 579 | % 580 | FUNCTION {cap.et.al} { % String Entry::cap_et_al() { 581 | is.in.chinese { % if (is_in_chinese()) { 582 | cap.et.al.zh % return cap_et_al_zh; 583 | } { % } else { 584 | cap.et.al.en % return cap_et_al_en; 585 | } if$ % } 586 | } % } 587 | % 588 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 589 | % 590 | FUNCTION {cap.translate} { % String Entry::cap_translate() { 591 | is.in.chinese { % if (is_in_chinese()) { 592 | cap.translate.zh % return cap_translate_zh; 593 | } { % } else { 594 | cap.translate.en % return cap_translate_en; 595 | } if$ % } 596 | } % } 597 | % 598 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 599 | % 600 | FUNCTION {format.bibinfo} { % String Entry::format_bibinfo(String info, String type) { 601 | swap$ add.brace swap$ % info = add_brace(info); 602 | "\bib" swap$ * swap$ * % return "\bib" + type + info; 603 | } % } 604 | % 605 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 606 | INTEGERS { nameindex namecount } % static int nameindex, namecount; 607 | STRINGS { namelist nameformat } % static String namelist, nameformat; 608 | STRINGS { firstname lastname jrname vonname} % static String firstname, lastname, jrname, vonname; 609 | % 610 | FUNCTION {format.names} { % String Entry::format_names(String names) { 611 | 'namelist := % namelist = names; 612 | namelist num.names$ 'namecount := % namecount = num_names(namelist); 613 | "" % String result = ""; 614 | #0 'nameindex := % nameindex = 0; 615 | {nameindex namecount < nameindex #3 < and} { % while ((nameindex < namecount) && (nameindex < 3)) { 616 | nameindex #1 + 'nameindex := % nameindex = nameindex + 1; 617 | nameindex #1 > { % if (nameindex > 1) { 618 | cap.comma * % result = result + cap_comma; 619 | } 'skip$ if$ % } 620 | namelist nameindex "{vv}" format.name$ % String tmp = format_name(namelist, nameindex, "{vv}"); 621 | 'vonname := % vonname = tmp; 622 | namelist nameindex "{jj}" format.name$ % tmp = format_name(namelist, nameindex, "{jj}"); 623 | remove.dots 'jrname := % jrname = remove_dots(tmp); 624 | namelist nameindex "{f}" format.name$ % tmp = format_name(namelist, nameindex, "{f}"); 625 | remove.dots % tmp = remove_dots(tmp); 626 | "u" change.case$ 'firstname := % firstname = change_case(tmp, "u"); 627 | namelist nameindex "{ll}" format.name$ % tmp = format_name(namelist, nameindex, "{ll}"); 628 | "u" change.case$ 'lastname := % lastname = change_case(tmp, "u"); 629 | jrname empty$ not { % if (! empty(jrname)) { 630 | jrname * " " * % result = result + jrname + " " 631 | } 'skip$ if$ % } 632 | vonname empty$ not { % if (! empty(vonname)) { 633 | vonname * " " * % result = result + vonname + " " 634 | } 'skip$ if$ % } 635 | lastname empty$ not { % if (! empty(lastname)) { 636 | lastname * " " * % result = result + lastname + " " 637 | } 'skip$ if$ % } 638 | firstname empty$ not { % if (! empty(firstname)) { 639 | firstname * " " * % result = result + firstname + " " 640 | } 'skip$ if$ % } 641 | trim.end % result = trim_end(result); 642 | } while$ % } 643 | nameindex namecount < { % if (nameindex < namecount) { 644 | cap.et.al * % result = result + cap_et_al(); 645 | } 'skip$ if$ % } 646 | } % } 647 | % 648 | % 649 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 650 | % // format English names 651 | FUNCTION {format.names.en} { % String Entry::format_names_en(String names) { 652 | format.names % format_names(names); 653 | } % } 654 | % 655 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 656 | % // format Chinese names 657 | FUNCTION {format.names.zh} { % String Entry::format_names_zh(String names) { 658 | format.names % format_names(names); 659 | } % } 660 | % 661 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 662 | % 663 | FUNCTION {format.author} { % String Emtry::format_author(String authors) { 664 | is.in.chinese { % if (is_in_chinese) { 665 | format.names.zh % authors = format_names_zh(authors); 666 | } { % } else { 667 | format.names.en % authors = format_names_en(authors); 668 | } if$ % } 669 | "author" format.bibinfo % return format_bibinfo(authors, "author"); 670 | } % } 671 | % 672 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 673 | % 674 | FUNCTION {format.editor} { % String Emtry::format_author(String editors) { 675 | is.in.chinese { % if (is_in_chinese) { 676 | format.names.zh % editors = format_names_zh(editors); 677 | } { % } else { 678 | format.names.en % editors = format_names_en(editors); 679 | } if$ % } 680 | "editor" format.bibinfo % return format_bibinfo(editors, "editor"); 681 | } % } 682 | % 683 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 684 | % 685 | FUNCTION {format.translator} { % String Emtry::format_translator(String translators) { 686 | is.in.chinese { % if (is_in_chinese) { 687 | duplicate$ % String names = translators; 688 | format.names.zh % translators = format_names_zh(translators); 689 | swap$ num.names$ #3 > { % if (num_names(names) > 3) { 690 | cap.translate.zh * % translators = translators + cap_translate_zh; 691 | } { % } else { 692 | cap.comma * cap.translate.zh * % translators = translators + cap_comma + cap_translate_zh; 693 | } if$ % } 694 | } { % } else { 695 | duplicate$ % String names = translators; 696 | format.names.en % translators = format_names_en(translators); 697 | swap$ num.names$ #3 > { % if (num_names(names) > 3) { 698 | cap.translate.en * % translators = translators + cap_translate_en; 699 | } { % } else { 700 | cap.comma * cap.translate.en * % translators = translators + cap_comma + cap_translate_en; 701 | } if$ % } 702 | } if$ % } 703 | "translator" format.bibinfo % return format_bibinfo(translator, "translator"); 704 | } % } 705 | % 706 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 707 | % 708 | FUNCTION {format.title} { % String Emtry::format_title(String title) { 709 | "title" format.bibinfo % return format_bibinfo(title, "title"); 710 | } % } 711 | % 712 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 713 | % 714 | FUNCTION {format.booktitle} { % String Emtry::format_booktitle(String booktitle) { 715 | "booktitle" format.bibinfo % return format_bibinfo(booktitle, "booktitle"); 716 | } % } 717 | % 718 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 719 | % 720 | FUNCTION {format.mark} { % String Emtry::format_mark(String mark) { 721 | "[" swap$ * "]" * % mark = "[" + mark + "]"; 722 | "mark" format.bibinfo % return format_bibinfo(mark, "mark"); 723 | } % } 724 | % 725 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 726 | % 727 | FUNCTION {format.country} { % String Emtry::format_country(String country) { 728 | "country" format.bibinfo % return format_bibinfo(country, "country"); 729 | } % } 730 | % 731 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 732 | % 733 | FUNCTION {format.patentid} { % String Emtry::format_patentid(String patentid) { 734 | "patentid" format.bibinfo % return format_bibinfo(patentid, "patentid"); 735 | } % } 736 | % 737 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 738 | % 739 | FUNCTION {format.edition} { % String Emtry::format_edition(String edition) { 740 | duplicate$ is.number { % if (is_number(edition)) { 741 | is.in.chinese { % if (is_in_chinese()) { 742 | cap.edition.zh * % edition = edition + cap_edition_zh; 743 | } { % } else { 744 | num.to.ordinal.en cap.edition.en * % edition = num_to_ordinal_en(edition) + cap_edition_en; 745 | } if$ % } 746 | } 'skip$ if$ % } 747 | % // use a \mbox{} to prevent line break within edition 748 | "\mbox{" swap$ * "}" * % edition = "\mbox{" + edition + "}"; 749 | "edition" format.bibinfo % return format_bibinfo(edition, "edition"); 750 | } % } 751 | % 752 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 753 | % 754 | FUNCTION {format.organization} { % String Emtry::format_organization(String organization) { 755 | "organization" format.bibinfo % return format_bibinfo(organization, "organization"); 756 | } % } 757 | % 758 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 759 | % 760 | FUNCTION {format.address} { % String Emtry::format_address(String address) { 761 | "address" format.bibinfo % return format_bibinfo(address, "address"); 762 | } % } 763 | % 764 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 765 | % 766 | FUNCTION {format.publisher} { % String Emtry::format_publisher(String publisher) { 767 | "publisher" format.bibinfo % return format_bibinfo(publisher, "publisher"); 768 | } % } 769 | % 770 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 771 | % 772 | FUNCTION {format.institution} { % String Emtry::format_institution(String institution) { 773 | "institution" format.bibinfo % return format_bibinfo(institution, "institution"); 774 | } % } 775 | % 776 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 777 | % 778 | FUNCTION {format.school} { % String Emtry::format_school(String school) { 779 | "school" format.bibinfo % return format_bibinfo(school, "school"); 780 | } % } 781 | % 782 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 783 | % 784 | FUNCTION {format.year} { % String Emtry::format_year(String year) { 785 | "year" format.bibinfo % return format_bibinfo(year, "year"); 786 | } % } 787 | % 788 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 789 | % 790 | FUNCTION {format.date} { % String Emtry::format_date(String date) { 791 | "date" format.bibinfo % return format_bibinfo(date, "date"); 792 | } % } 793 | % 794 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 795 | % 796 | FUNCTION {format.journal} { % String Emtry::format_journal(String journal) { 797 | "journal" format.bibinfo % return format_bibinfo(journal, "journal"); 798 | } % } 799 | % 800 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 801 | % 802 | FUNCTION {format.volume} { % String Emtry::format_volume(String volume) { 803 | "volume" format.bibinfo % return format_bibinfo(volume, "volume"); 804 | } % } 805 | % 806 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 807 | % 808 | FUNCTION {format.number} { % String Emtry::format_number(String number) { 809 | add.bracket % number = add_bracket(number); 810 | "number" format.bibinfo % return format_bibinfo(number, "number"); 811 | } % } 812 | % 813 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 814 | % 815 | FUNCTION {format.report.number} { % String Emtry::format_report_number(String number) { 816 | "number" format.bibinfo % return format_bibinfo(number, "number"); 817 | } % } 818 | % 819 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 820 | % 821 | FUNCTION {format.version} { % String Emtry::format_version(String version) { 822 | "version" format.bibinfo % return format_bibinfo(version, "version"); 823 | } % } 824 | % 825 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 826 | % 827 | FUNCTION {format.pages} { % String Emtry::format_pages(String pages) { 828 | "pages" format.bibinfo % return format_bibinfo(pages, "pages"); 829 | } % } 830 | % 831 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 832 | % 833 | FUNCTION {format.modifydate} { % String Emtry::format_modifydate(String modifydate) { 834 | add.bracket % modifydate = add_bracket(modifydate); 835 | "modifydate" format.bibinfo % return format_bibinfo(modifydate, "modifydate"); 836 | } % } 837 | % 838 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 839 | % 840 | FUNCTION {format.citedate} { % String Emtry::format_citedate(String citedate) { 841 | add.squarebracket % citedate = add_squarebracket(citedate); 842 | "citedate" format.bibinfo % return format_bibinfo(citedate, "citedate"); 843 | } % } 844 | % 845 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 846 | % 847 | % // NOTE: do not use the format_bibinfo() for URL, 848 | % // since if the URL contains special symbols such 849 | % // as '%', the \biburl{} will be broken. 850 | FUNCTION {format.url} { % String Emtry::format_url(String url) { 851 | "\url{" swap$ * "}" * % return "\newline\url{" + url + "}"; 852 | } % } 853 | % 854 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 855 | % 856 | FUNCTION {get.full.title} { % String Entry::get_full_title() { 857 | series empty$ { % if (empty(this.series)) { 858 | volume empty$ { % if (empty(this.volume)) { 859 | title % return this.title; 860 | } { % } else { 861 | title cap.colon * cap.volume * volume * % return this.title + cap_colon + cap_volume() + this.volume; 862 | } if$ % } 863 | } { % } else { 864 | volume empty$ { % if (empty(this.volume)) { 865 | series cap.colon * title * % return this.series + cap_colon + this.title; 866 | } { % } else { 867 | series cap.comma * cap.volume * volume * % String str = this.series + cap_comma + cal_volume() + this.volume; 868 | cap.colon * title * % return str + cap_colon + this.title; 869 | } if$ % } 870 | } if$ % } 871 | } % } 872 | % 873 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 874 | % 875 | FUNCTION {get.full.booktitle} { % String Entry::get_full_booktitle() { 876 | series empty$ { % if (empty(this.series)) { 877 | volume empty$ { % if (empty(this.volume)) { 878 | booktitle % return this.booktitle; 879 | } { % } else { 880 | booktitle cap.colon * cap.volume * volume * % return this.booktitle + cap_colon + cap_volume() + this.volume; 881 | } if$ % } 882 | } { % } else { 883 | volume empty$ { % if (empty(this.volume)) { 884 | series cap.colon * booktitle * % return this.series + cap_colon + this.booktitle; 885 | } { % } else { 886 | series cap.comma * cap.volume * volume * % String str = this.series + cap_comma + cal_volume() + this.volume; 887 | cap.colon * booktitle * % return str + cap_colon + this.booktitle; 888 | } if$ % } 889 | } if$ % } 890 | } % } 891 | % 892 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 893 | % 894 | FUNCTION {get.pages} { % String Entry::get_pages() { 895 | pages contain.dash { % if (contain_dash(this.pages)) { 896 | pages extract.before.first.dash % String p1 = extract_before_first_dash(this.pages); 897 | pages extract.after.last.dash % String p2 = extract_after_last_dash(this.pages); 898 | cap.dash swap$ * * % return p1 + cap_dash + p2; 899 | } { % } else { 900 | pages % return this.pages; 901 | } if$ % } 902 | } % } 903 | % 904 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 905 | % 906 | FUNCTION {output.author.or.editor} { % void Entry::output_author_or_editor(int required) { 907 | 'required := % this.required = required; 908 | author empty$ not { % if (! empty(this.author)) { 909 | author format.author write$ % write(format_author(this.author)); 910 | cap.period write$ % write(cap_period); 911 | } { % } else { 912 | editor empty$ not { % if (! empty(this.editor)) { 913 | editor format.editor write$ % write(format_editor(this.editor)); 914 | cap.period write$ % write(cap_period); 915 | } { % } else { 916 | required { % if (required == 1) { 917 | "Require author/editor: " cite$ * warning$% warning("Require author/editor: " + this.cite); 918 | cap.anonymous format.author write$ % write(format_author(cap_anonymous())); 919 | cap.period write$ % write(cap_period); 920 | } 'skip$ if$ % } 921 | } if$ % } 922 | } if$ % } 923 | } % } 924 | % 925 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 926 | % 927 | FUNCTION {output.author} { % void Entry::output_author(int required) { 928 | 'required := % this.required = required; 929 | author empty$ not { % if (! empty(this.author)) { 930 | author format.author write$ % write(format_author(this.author)); 931 | cap.period write$ % write(cap_period); 932 | } { % } else { 933 | required { % if (required == 1) { 934 | "Require author: " cite$ * warning$ % warning("Require author: " + this.cite); 935 | cap.anonymous format.author write$ % write(format_author(cap_anonymous())); 936 | cap.period write$ % write(cap_period); 937 | } 'skip$ if$ % } 938 | } if$ % } 939 | } % } 940 | % 941 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 942 | % 943 | FUNCTION {output.editor} { % void Entry::output_editor(int required) { 944 | 'required := % this.required = required; 945 | editor empty$ not { % if (! empty(this.editor)) { 946 | editor format.editor write$ % write(format_editor(this.editor)); 947 | cap.period write$ % write(cap_period); 948 | } { % } else { 949 | required { % if (required == 1) { 950 | "Require editor: " cite$ * warning$ % warning("Require editor: " + this.cite); 951 | cap.anonymous format.editor write$ % write(format_editor(cap_anonymous())); 952 | cap.period write$ % write(cap_period); 953 | } 'skip$ if$ % } 954 | } if$ % } 955 | } % } 956 | % 957 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 958 | % 959 | FUNCTION {output.title} { % void Entry::output_title(int required) { 960 | 'required := % this.required = required; 961 | title empty$ not { % if (! empty(this.title)) { 962 | title format.title write$ % write(format_title(this.title)); 963 | } { % } else { 964 | required { % if (required == 1) { 965 | "Require title: " cite$ * warning$ % warning("Require title: " + this.cite); 966 | } 'skip$ if$ % } 967 | } if$ % } 968 | } % } 969 | % 970 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 971 | % 972 | FUNCTION {output.series.volume.title} { % void Entry::output_series_volume_title(int required) { 973 | 'required := % this.required = required; 974 | title empty$ not { % if (! empty(this.title)) { 975 | get.full.title format.booktitle write$ % write(format_booktitle(get_full_title())); 976 | } { % } else { 977 | required { % if (required == 1) { 978 | "Require title: " cite$ * warning$ % warning("Require title: " + this.cite); 979 | } 'skip$ if$ % } 980 | } if$ % } 981 | } % } 982 | % 983 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 984 | % 985 | FUNCTION {output.series.volume.booktitle} { % void Entry::output_series_volume_booktitle(int required) { 986 | 'required := % this.required = required; 987 | booktitle empty$ not { % if (! empty(this.booktitle)) { 988 | get.full.booktitle format.booktitle write$ % write(format_booktitle(get_full_booktitle()); 989 | } { % } else { 990 | required { % if (required == 1) { 991 | "Require booktitle: " cite$ * warning$ % warning("Require booktitle: " + this.cite); 992 | } 'skip$ if$ % } 993 | } if$ % } 994 | } % } 995 | % 996 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 997 | % 998 | FUNCTION {output.journal} { % void Entry::output_journal(int required) { 999 | 'required := % this.required = required; 1000 | journal empty$ not { % if (! empty(this.journal)) { 1001 | cap.period write$ % write(cap_period); 1002 | journal format.journal write$ % write(format_journal(this.journal)); 1003 | } { % } else { 1004 | required { % if (required == 1) { 1005 | "Require journal: " cite$ * warning$ % warning("Require journal: " + this.cite); 1006 | } 'skip$ if$ % } 1007 | } if$ % } 1008 | } % } 1009 | % 1010 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1011 | % 1012 | FUNCTION {output.mark} { % void Entry::output_mark(int required) { 1013 | 'required := % this.required = required; 1014 | mark empty$ not { % if (! empty(this.mark)) { 1015 | mark format.mark write$ % write(format_mark(this.mark)); 1016 | } { % } else { 1017 | required { % if (required == 1) { 1018 | "Require mark: " cite$ * warning$ % warning("Require mark: " + this.cite); 1019 | } 'skip$ if$ % } 1020 | } if$ % } 1021 | } % } 1022 | % 1023 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1024 | % 1025 | FUNCTION {output.translator} { % void Entry::output_translator(int required) { 1026 | 'required := % this.required = required; 1027 | translator empty$ not { % if (! empty(this.translator)) { 1028 | cap.period write$ % write(cap_period); 1029 | translator format.translator write$ % write(format_translator(this.translator)); 1030 | } { % } else { 1031 | required { % if (required == 1) { 1032 | "Require translator: " cite$ * warning$ % warning("Require translator: " + this.cite); 1033 | } 'skip$ if$ % } 1034 | } if$ % } 1035 | } % } 1036 | % 1037 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1038 | % 1039 | FUNCTION {output.edition} { % void Entry::output_edition(int required) { 1040 | 'required := % this.required = required; 1041 | edition empty$ not { % if (! empty(this.edition)) { 1042 | cap.period write$ % write(cap_period); 1043 | edition format.edition write$ % write(format_edition(this.edition)); 1044 | } { % } else { 1045 | required { % if (required == 1) { 1046 | "Require edition: " cite$ * warning$ % warning("Require edition: " + this.cite); 1047 | } 'skip$ if$ % } 1048 | } if$ % } 1049 | } % } 1050 | % 1051 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1052 | % 1053 | FUNCTION {output.address} { % void Entry::output_address(int required) { 1054 | 'required := % this.required = required; 1055 | address empty$ not { % if (! empty(this.address)) { 1056 | cap.period write$ % write(cap_period); 1057 | address format.address write$ % write(format_address(this.address)); 1058 | } { % } else { 1059 | required { % if (required == 1) { 1060 | "Require address: " cite$ * warning$ % warning("Require address: " + this.cite); 1061 | cap.period write$ % write(cap_period); 1062 | cap.no.address format.address write$ % write(format_address(cap_no_address())); 1063 | } 'skip$ if$ % } 1064 | } if$ % } 1065 | } % } 1066 | % 1067 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1068 | % 1069 | FUNCTION {output.publisher} { % void Entry::output_publisher(int required) { 1070 | 'required := % this.required = required; 1071 | publisher empty$ not { % if (! empty(this.publisher)) { 1072 | cap.colon write$ % write(cap_colon); 1073 | publisher format.publisher write$ % write(format_publisher(this.publisher)); 1074 | } { % } else { 1075 | required { % if (required == 1) { 1076 | "Require publisher: " cite$ * warning$ % warning("Require publisher: " + this.cite); 1077 | cap.colon write$ % write(cap_colon); 1078 | cap.no.publisher format.publisher write$ % write(format_publisher(cap_no_publisher())); 1079 | } 'skip$ if$ % } 1080 | } if$ % } 1081 | } % } 1082 | % 1083 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1084 | % 1085 | FUNCTION {output.publisher.no.address} { % void Entry::output_publisher_no_address(int required) { 1086 | 'required := % this.required = required; 1087 | publisher empty$ not { % if (! empty(this.publisher)) { 1088 | cap.period write$ % write(cap_period); 1089 | publisher format.publisher write$ % write(format_publisher(this.publisher)); 1090 | } { % } else { 1091 | required { % if (required == 1) { 1092 | "Require publisher: " cite$ * warning$ % warning("Require publisher: " + this.cite); 1093 | cap.period write$ % write(cap_period); 1094 | cap.no.publisher format.publisher write$ % write(format_publisher(cap_no_publisher())); 1095 | } 'skip$ if$ % } 1096 | } if$ % } 1097 | } % } 1098 | % 1099 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1100 | % 1101 | FUNCTION {output.school} { % void Entry::output_school(int required) { 1102 | 'required := % this.required = required; 1103 | school empty$ not { % if (! empty(this.school)) { 1104 | cap.colon write$ % write(cap_colon); 1105 | school format.school write$ % write(format_school(this.school)); 1106 | } { % } else { 1107 | required { % if (required == 1) { 1108 | "Require school: " cite$ * warning$ % warning("Require publisher: " + this.cite); 1109 | cap.colon write$ % write(cap_colon); 1110 | cap.no.publisher format.school write$ % write(format_school(cap_no_publisher())); 1111 | } 'skip$ if$ % } 1112 | } if$ % } 1113 | } % } 1114 | % 1115 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1116 | % 1117 | FUNCTION {output.institution} { % void Entry::output_institution(int required) { 1118 | 'required := % this.required = required; 1119 | institution empty$ not { % if (! empty(this.institution)) { 1120 | cap.colon write$ % write(cap_colon); 1121 | institution format.institution write$ % write(format_publisher(this.institution)); 1122 | } { % } else { 1123 | required { % if (required == 1) { 1124 | "Require institution: " cite$ * warning$ % warning("Require institution: " + this.cite); 1125 | cap.colon write$ % write(cap_colon); 1126 | cap.no.publisher format.institution write$ % write(format_institution(cap_no_publisher())); 1127 | } 'skip$ if$ % } 1128 | } if$ % } 1129 | } % } 1130 | % 1131 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1132 | % 1133 | FUNCTION {output.year} { % void Entry::output_year(int required) { 1134 | 'required := % this.required = required; 1135 | year empty$ not { % if (! empty(this.year)) { 1136 | year format.year write$ % write(format_year(this.year)); 1137 | } { % } else { 1138 | required { % if (required == 1) { 1139 | "Require year: " cite$ * warning$ % warning("Require year: " + this.cite); 1140 | } 'skip$ if$ % } 1141 | } if$ % } 1142 | } % } 1143 | % 1144 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1145 | % 1146 | FUNCTION {output.pages} { % void Entry::output_pages(int required) { 1147 | 'required := % this.required = required; 1148 | pages empty$ not { % if (! empty(this.pages)) { 1149 | cap.colon write$ % write(cap_colon); 1150 | get.pages format.pages write$ % write(format_pages(get_pages())); 1151 | } { % } else { 1152 | required { % if (required == 1) { 1153 | "Require pages: " cite$ * warning$ % warning("Require pages: " + this.cite); 1154 | } 'skip$ if$ % } 1155 | } if$ % } 1156 | } % } 1157 | % 1158 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1159 | % 1160 | FUNCTION {output.modifydate} { % void Entry::output_modifydate(int required) { 1161 | 'required := % this.required = required; 1162 | modifydate empty$ not { % if (! empty(this.modifydate)) { 1163 | cap.space write$ % write(cap_space); 1164 | modifydate format.modifydate write$ % write(format_modifydate(this.modifydate)); 1165 | } { % } else { 1166 | required { % if (required == 1) { 1167 | "Require modifydate: " cite$ * warning$ % warning("Require modifydate: " + this.cite); 1168 | } 'skip$ if$ % } 1169 | } if$ % } 1170 | } % } 1171 | % 1172 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1173 | % 1174 | FUNCTION {output.citedate} { % void Entry::output_citedate(int required) { 1175 | 'required := % this.required = required; 1176 | citedate empty$ not { % if (! empty(this.citedate)) { 1177 | cap.space write$ % write(cap_space); 1178 | citedate format.citedate write$ % write(format_citedate(this.citedate)); 1179 | } { % } else { 1180 | required is.online or { % if ((required == 1) || (is_online())) { 1181 | "Require citedate: " cite$ * warning$ % warning("Require citedate: " + this.cite); 1182 | } 'skip$ if$ % } 1183 | } if$ % } 1184 | } % } 1185 | % 1186 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1187 | % 1188 | FUNCTION {output.date} { % void Entry::output_date(int required) { 1189 | 'required := % this.required = required; 1190 | date empty$ not { % if (! empty(this.date)) { 1191 | date format.date write$ % write(format_date(this.date)); 1192 | } { % } else { 1193 | required { % if (required == 1) { 1194 | "Require date: " cite$ * warning$ % warning("Require date: " + this.cite); 1195 | } 'skip$ if$ % } 1196 | } if$ % } 1197 | } % } 1198 | % 1199 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1200 | % 1201 | FUNCTION {output.volume} { % void Entry::output_volume(int required) { 1202 | 'required := % this.required = required; 1203 | volume empty$ not { % if (! empty(this.volume)) { 1204 | cap.comma write$ % write(cap_comma); 1205 | volume format.volume write$ % write(format_volume(this.volume)); 1206 | } { % } else { 1207 | required { % if (required == 1) { 1208 | "Require volume: " cite$ * warning$ % warning("Require volume: " + this.cite); 1209 | } 'skip$ if$ % } 1210 | } if$ % } 1211 | } % } 1212 | % 1213 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1214 | % 1215 | FUNCTION {output.number} { % void Entry::output_number(int required) { 1216 | 'required := % this.required = required; 1217 | number empty$ not { % if (! empty(this.number)) { 1218 | number format.number write$ % write(format_number(this.number)); 1219 | } { % } else { 1220 | required { % if (required == 1) { 1221 | "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); 1222 | } 'skip$ if$ % } 1223 | } if$ % } 1224 | } % } 1225 | % 1226 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1227 | % 1228 | FUNCTION {output.report.number} { % void Entry::output_report_number(int required) { 1229 | 'required := % this.required = required; 1230 | number empty$ not { % if (! empty(this.number)) { 1231 | cap.colon write$ % write(cap_colon); 1232 | number format.report.number write$ % write(format_report_number(this.number)); 1233 | } { % } else { 1234 | required { % if (required == 1) { 1235 | "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); 1236 | } 'skip$ if$ % } 1237 | } if$ % } 1238 | } % } 1239 | % 1240 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1241 | % 1242 | FUNCTION {output.country} { % void Entry::output_country(int required) { 1243 | 'required := % this.required = required; 1244 | country empty$ not { % if (! empty(this.country)) { 1245 | cap.colon write$ % write(cap_colon); 1246 | country format.country write$ % write(format_country(this.country)); 1247 | } { % } else { 1248 | required { % if (required == 1) { 1249 | "Require country: " cite$ * warning$ % warning("Require country: " + this.cite); 1250 | } 'skip$ if$ % } 1251 | } if$ % } 1252 | } % } 1253 | % 1254 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1255 | % 1256 | FUNCTION {output.patentid} { % void Entry::output_patentid(int required) { 1257 | 'required := % this.required = required; 1258 | patentid empty$ not { % if (! empty(this.patentid)) { 1259 | cap.comma write$ % write(cap_comma); 1260 | patentid format.patentid write$ % write(format_patentid(this.patentid)); 1261 | } { % } else { 1262 | required { % if (required == 1) { 1263 | "Require patentid: " cite$ * warning$ % warning("Require patentid: " + this.cite); 1264 | } 'skip$ if$ % } 1265 | } if$ % } 1266 | } % } 1267 | % 1268 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1269 | % 1270 | FUNCTION {output.start.year} { % void Entry::output_start_year(int required) { 1271 | 'required := % this.required = required; 1272 | year empty$ not { % if (! empty(this.year)) { 1273 | year extract.before.first.dash % String str = extract_before_first_dash(this.year); 1274 | format.year write$ % write(format_year(str)); 1275 | } { % } else { 1276 | required { % if (required == 1) { 1277 | "Require year: " cite$ * warning$ % warning("Require year: " + this.cite); 1278 | } 'skip$ if$ % } 1279 | } if$ % } 1280 | } % } 1281 | % 1282 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1283 | % 1284 | FUNCTION {output.start.volume} { % void Entry::output_start_volume(int required) { 1285 | 'required := % this.required = required; 1286 | volume empty$ not { % if (! empty(this.volume)) { 1287 | cap.comma write$ % write(cap_comma); 1288 | volume extract.before.first.dash % String str = extract_before_first_dash(this.volume); 1289 | format.volume write$ % write(format_volume(str)); 1290 | } { % } else { 1291 | required { % if (required == 1) { 1292 | "Require volume: " cite$ * warning$ % warning("Require volume: " + this.cite); 1293 | } 'skip$ if$ % } 1294 | } if$ % } 1295 | } % } 1296 | % 1297 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1298 | % 1299 | FUNCTION {output.start.number} { % void Entry::output_start_number(int required) { 1300 | 'required := % this.required = required; 1301 | number empty$ not { % if (! empty(this.number)) { 1302 | number extract.before.first.dash % String str = extract_before_first_dash(this.number); 1303 | format.number write$ % write(format_number(str)); 1304 | } { % } else { 1305 | required { % if (required == 1) { 1306 | "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); 1307 | } 'skip$ if$ % } 1308 | } if$ % } 1309 | } % } 1310 | % 1311 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1312 | % 1313 | FUNCTION {output.end.year} { % void Entry::output_end_year(int required) { 1314 | 'required := % this.required = required; 1315 | year empty$ not { % if (! empty(this.year)) { 1316 | year extract.after.last.dash % String str = extract_after_last_dash(this.year); 1317 | format.year write$ % write(format_year(str)); 1318 | } { % } else { 1319 | required { % if (required == 1) { 1320 | "Require year: " cite$ * warning$ % warning("Require year: " + this.cite); 1321 | } 'skip$ if$ % } 1322 | } if$ % } 1323 | } % } 1324 | % 1325 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1326 | % 1327 | FUNCTION {output.end.volume} { % void Entry::output_end_volume(int required) { 1328 | 'required := % this.required = required; 1329 | volume empty$ not { % if (! empty(this.volume)) { 1330 | cap.comma write$ % write(cap_comma); 1331 | volume extract.after.last.dash % String str = extract_after_last_dash(this.volume); 1332 | format.volume write$ % write(format_volume(str)); 1333 | } { % } else { 1334 | required { % if (required == 1) { 1335 | "Require volume: " cite$ * warning$ % warning("Require volume: " + this.cite); 1336 | } 'skip$ if$ % } 1337 | } if$ % } 1338 | } % } 1339 | % 1340 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1341 | % 1342 | FUNCTION {output.end.number} { % void Entry::output_end_number(int required) { 1343 | 'required := % this.required = required; 1344 | number empty$ not { % if (! empty(this.number)) { 1345 | number extract.after.last.dash % String str = extract_after_last_dash(this.number); 1346 | format.number write$ % write(format_number(str)); 1347 | } { % } else { 1348 | required { % if (required == 1) { 1349 | "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); 1350 | } 'skip$ if$ % } 1351 | } if$ % } 1352 | } % } 1353 | % 1354 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1355 | % 1356 | FUNCTION {output.url.or.doi} { % void Entry::output_url_or_doi(int required) { 1357 | 'required := % this.required = required; 1358 | url empty$ not { % if (! empty(this.url)) { 1359 | cap.period write$ % write(cap_period); 1360 | url format.url write$ % write(format_url(this.url)); 1361 | } { % } else { 1362 | doi empty$ not { % if (! empty(this.doi)) { 1363 | cap.period write$ % write(cap_period); 1364 | cap.doi.url doi * format.url write$ % write(format_url(cap_doi_url + this.doi)); 1365 | } { % } else { 1366 | required { % if (required == 1) { 1367 | "Require URL or DOI: " cite$ * warning$ % warning("Require URL or DOI: " + this.cite); 1368 | } 'skip$ if$ % } 1369 | } if$ % } 1370 | } if$ % } 1371 | } % } 1372 | % 1373 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1374 | % 1375 | FUNCTION {output.url} { % void Entry::output_url(int required) { 1376 | 'required := % this.required = required; 1377 | url empty$ not { % if (! empty(this.url)) { 1378 | cap.period write$ % write(cap_period); 1379 | url format.url write$ % write(format_url(this.url)); 1380 | } { % } else { 1381 | required { % if (required == 1) { 1382 | "Require URL: " cite$ * warning$ % warning("Require URL: " + this.cite); 1383 | } 'skip$ if$ % } 1384 | } if$ % } 1385 | } % } 1386 | % 1387 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1388 | % 1389 | FUNCTION {output.version} { % void Entry::output_version(int required) { 1390 | 'required := % this.required = required; 1391 | version empty$ not { % if (! empty(this.version)) { 1392 | cap.period write$ % write(cap_period); 1393 | version format.version write$ % write(format_version(this.version)); 1394 | } { % } else { 1395 | required { % if (required == 1) { 1396 | "Require version: " cite$ * warning$ % warning("Require version: " + this.cite); 1397 | } 'skip$ if$ % } 1398 | } if$ % } 1399 | } % } 1400 | % 1401 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1402 | % 1403 | FUNCTION {book.impl} { % void Entry::book_impl() { 1404 | start.bibitem % start_bibitem(); 1405 | true output.author.or.editor % output_author_or_editor(true); 1406 | true output.series.volume.title % output_series_volume_title(true); 1407 | true output.mark % output_mark(true); 1408 | false output.translator % output_translator(false); 1409 | false output.edition % output_edition(false); 1410 | publisher empty$ not { % if (! empty(this.publisher)) { 1411 | true output.address % output_address(true); 1412 | true output.publisher % output_publisher(true); 1413 | cap.comma write$ % write(cap_comma); 1414 | } { % } else { 1415 | cap.period write$ % write(cap_period); 1416 | } if$ % } 1417 | true output.year % output_year(true); 1418 | false output.pages % output_pages(false); 1419 | false output.citedate % output_citedate(false); 1420 | false output.url.or.doi % output_url_or_doi(false); 1421 | end.bibitem % end_bibitem(); 1422 | } % } 1423 | % 1424 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1425 | % 1426 | FUNCTION {book} { % void Entry::book() { 1427 | "M" set.mark % set_mark("M"); 1428 | book.impl % book_impl(); 1429 | } % } 1430 | % 1431 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1432 | % 1433 | FUNCTION {collection} { % void Entry::collection() { 1434 | "G" set.mark % set_mark("G"); 1435 | book.impl % book_impl(); 1436 | } % } 1437 | % 1438 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1439 | % 1440 | FUNCTION {proceedings} { % void Entry::proceedings() { 1441 | "C" set.mark % set_mark("C"); 1442 | start.bibitem % start_bibitem(); 1443 | true output.editor % output_editor(true); 1444 | true output.series.volume.title % output_series_volume_title(true); 1445 | true output.mark % output_mark(true); 1446 | false output.translator % output_translator(false); 1447 | false output.edition % output_edition(false); 1448 | publisher empty$ not { % if (! empty(this.publisher)) { 1449 | true output.address % output_address(true); 1450 | true output.publisher % output_publisher(true); 1451 | cap.comma write$ % write(cap_comma); 1452 | } { % } else { 1453 | cap.period write$ % write(cap_period); 1454 | } if$ % } 1455 | true output.year % output_year(true); 1456 | false output.pages % output_pages(false); 1457 | false output.citedate % output_citedate(false); 1458 | false output.url.or.doi % output_url_or_doi(false); 1459 | end.bibitem % end_bibitem(); 1460 | } % } 1461 | % 1462 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1463 | % 1464 | FUNCTION {conference} { % void Entry::conference() { 1465 | proceedings % proceedings(); 1466 | } % } 1467 | % 1468 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1469 | % 1470 | FUNCTION {thesis.impl} { % void Entry::thesis_impl() { 1471 | start.bibitem % start_bibitem(); 1472 | true output.author % output_author(true); 1473 | true output.title % output_title(true); 1474 | true output.mark % output_mark(true); 1475 | false output.translator % output_translator(false); 1476 | true output.address % output_address(true); 1477 | true output.school % output_school(true); 1478 | cap.comma write$ % write(cap_comma); 1479 | true output.year % output_year(true); 1480 | false output.pages % output_pages(false); 1481 | false output.citedate % output_citedate(false); 1482 | false output.url.or.doi % output_url_or_doi(false); 1483 | end.bibitem % end_bibitem(); 1484 | } % } 1485 | % 1486 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1487 | % 1488 | FUNCTION {phdthesis} { % void Entry::phdthesis() { 1489 | "D" set.mark % set_mark("D"); 1490 | thesis.impl % thesis_impl(); 1491 | } % } 1492 | % 1493 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1494 | % 1495 | FUNCTION {masterthesis} { % void Entry::masterthesis() { 1496 | "D" set.mark % set_mark("D"); 1497 | thesis.impl % thesis_impl(); 1498 | } % } 1499 | % 1500 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1501 | % 1502 | FUNCTION {bachelorthesis} { % void Entry::bachelorthesis() { 1503 | "D" set.mark % set_mark("D"); 1504 | thesis.impl % thesis_impl(); 1505 | } % } 1506 | % 1507 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1508 | % 1509 | FUNCTION {techreport} { % void Entry::techreport() { 1510 | "R" set.mark % set_mark("R"); 1511 | start.bibitem % start_bibitem(); 1512 | true output.author % output_author(true); 1513 | true output.title % output_title(true); 1514 | false output.report.number % output_report_number(false); 1515 | true output.mark % output_mark(true); 1516 | false output.translator % output_translator(false); 1517 | false output.edition % output_edition(false); 1518 | false output.version % output_version(false); 1519 | institution empty$ not { % if (! empty(this.institution)) { 1520 | true output.address % output_address(true); 1521 | true output.institution % output_institution(true); 1522 | cap.comma write$ % write(cap_comma); 1523 | } { % } else { 1524 | cap.period write$ % write(cap_period); 1525 | } if$ % } 1526 | true output.year % output_year(true); 1527 | false output.pages % output_pages(false); 1528 | false output.citedate % output_citedate(false); 1529 | false output.url.or.doi % output_url_or_doi(false); 1530 | end.bibitem % end_bibitem(); 1531 | } % } 1532 | % 1533 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1534 | % 1535 | FUNCTION {standard} { % void Entry::standard() { 1536 | "S" set.mark % set_mark("S"); 1537 | start.bibitem % start_bibitem(); 1538 | true output.author % output_author(true); 1539 | true output.title % output_title(true); 1540 | true output.mark % output_mark(true); 1541 | false output.translator % output_translator(false); 1542 | false output.edition % output_edition(false); 1543 | publisher empty$ not { % if (! empty(this.publisher)) { 1544 | true output.address % output_address(true); 1545 | true output.publisher % output_publisher(true); 1546 | cap.comma write$ % write(cap_comma); 1547 | } { % } else { 1548 | cap.period write$ % write(cap_period); 1549 | } if$ % } 1550 | true output.year % output_year(true); 1551 | false output.pages % output_pages(false); 1552 | false output.citedate % output_citedate(false); 1553 | false output.url.or.doi % output_url_or_doi(false); 1554 | end.bibitem % end_bibitem(); 1555 | } % } 1556 | % 1557 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1558 | % 1559 | FUNCTION {reference} { % void Entry::reference() { 1560 | "K" set.mark % set_mark("K"); 1561 | start.bibitem % start_bibitem(); 1562 | false output.author.or.editor % output_author_or_editor(false); 1563 | true output.series.volume.title % output_series_volume_title(true); 1564 | true output.mark % output_mark(true); 1565 | false output.translator % output_translator(false); 1566 | false output.edition % output_edition(false); 1567 | publisher empty$ not { % if (! empty(this.publisher)) { 1568 | true output.address % output_address(true); 1569 | true output.publisher % output_publisher(true); 1570 | cap.comma write$ % write(cap_comma); 1571 | } { % } else { 1572 | cap.period write$ % write(cap_period); 1573 | } if$ % } 1574 | true output.year % output_year(true); 1575 | false output.pages % output_pages(false); 1576 | false output.citedate % output_citedate(false); 1577 | false output.url.or.doi % output_url_or_doi(false); 1578 | end.bibitem % end_bibitem(); 1579 | } % } 1580 | % 1581 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1582 | % 1583 | FUNCTION {manual} { % void Entry::manual() { 1584 | reference % reference(); 1585 | } % } 1586 | % 1587 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1588 | % 1589 | FUNCTION {periodical.impl} { % void Entry::periodical_impl() { 1590 | start.bibitem % start_bibitem(); 1591 | false output.editor % output_editor(false); 1592 | true output.title % output_title(true); 1593 | true output.mark % output_mark(true); 1594 | cap.period write$ % write(cap_period); 1595 | true output.start.year % output_start_year(true); 1596 | false output.start.volume % output_start_volume(false); 1597 | false output.start.number % output_start_number(false); 1598 | cap.dash write$ % write(cap_dash); 1599 | year contain.dash { % if (contain_dash(this.year)) { 1600 | true output.end.year % output_end_year(true); 1601 | false output.end.volume % output_end_volume(false); 1602 | false output.end.number % output_end_number(false); 1603 | } 'skip$ if$ % } 1604 | publisher empty$ not { % if (! empty(this.publisher)) { 1605 | true output.address % output_address(true); 1606 | true output.publisher % output_publisher(true); 1607 | cap.comma write$ % write(cap_comma); 1608 | } { % } else { 1609 | cap.period write$ % write(cap_period); 1610 | } if$ % } 1611 | true output.start.year % output_start_year(true); 1612 | cap.dash write$ % write(cap_dash); 1613 | year contain.dash { % if (contain_dash(this.year)) { 1614 | true output.end.year % output_end_year(true); 1615 | } 'skip$ if$ % } 1616 | false output.citedate % output_citedate(false); 1617 | false output.url.or.doi % output_url_or_doi(false); 1618 | end.bibitem % end_bibitem(); 1619 | } % } 1620 | % 1621 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1622 | % 1623 | FUNCTION {periodical} { % void Entry::periodical() { 1624 | "J" set.mark % set_mark("J"); 1625 | periodical.impl % periodical_impl(); 1626 | } % } 1627 | % 1628 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1629 | % 1630 | FUNCTION {newspaper} { % void Entry::newspaper() { 1631 | "N" set.mark % set_mark("N"); 1632 | periodical.impl % periodical_impl(); 1633 | } % } 1634 | % 1635 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1636 | % 1637 | FUNCTION {patent} { % void Entry::patent() { 1638 | "P" set.mark % set_mark("P"); 1639 | start.bibitem % start_bibitem(); 1640 | true output.author % output_author(true); 1641 | true output.title % output_title(true); 1642 | true output.country % output_country(true); 1643 | true output.patentid % output_patentid(true); 1644 | true output.mark % output_mark(true); 1645 | cap.period write$ % write(cap_period); 1646 | true output.date % output_date(true); 1647 | false output.citedate % output_citedate(false); 1648 | false output.url.or.doi % output_url_or_doi(false); 1649 | end.bibitem % end_bibitem(); 1650 | } % } 1651 | % 1652 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1653 | % 1654 | FUNCTION {online} { % void Entry::online() { 1655 | "EB" set.mark % set_mark("EB"); 1656 | start.bibitem % start_bibitem(); 1657 | false output.author % output_author(false); 1658 | true output.title % output_title(true); 1659 | true output.mark % output_mark(true); 1660 | publisher empty$ not { % if (! empty(this.publisher)) { 1661 | address empty$ not { % if (! empty(this.address)) { 1662 | true output.address % output_address(true); 1663 | true output.publisher % output_publisher(true); 1664 | cap.comma write$ % write(cap_comma); 1665 | } { % } else { 1666 | true output.publisher.no.address % output_publisher_no_address(true); 1667 | cap.comma write$ % write(cap_comma); 1668 | } if$ % } 1669 | } { % } else { 1670 | cap.period write$ % write(cap_period); 1671 | } if$ % } 1672 | true output.year % output_year(true); 1673 | false output.modifydate % output_modifydate(false); 1674 | true output.citedate % output_citedate(true); 1675 | true output.url % output_url(true); 1676 | end.bibitem % end_bibitem(); 1677 | } % } 1678 | % 1679 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1680 | % 1681 | FUNCTION {webpage} { % void Entry::online() { 1682 | online % online(); 1683 | } % } 1684 | % 1685 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1686 | % 1687 | FUNCTION {program.impl} { % void Entry::program_impl() { 1688 | start.bibitem % start_bibitem(); 1689 | false output.author % output_author(false); 1690 | true output.title % output_title(true); 1691 | true output.mark % output_mark(true); 1692 | publisher empty$ not { % if (! empty(this.publisher)) { 1693 | true output.address % output_address(true); 1694 | true output.publisher % output_publisher(true); 1695 | cap.comma write$ % write(cap_comma); 1696 | } { % } else { 1697 | cap.period write$ % write(cap_period); 1698 | } if$ % } 1699 | true output.year % output_year(true); 1700 | false output.citedate % output_citedate(false); 1701 | false output.url.or.doi % output_url_or_doi(false); 1702 | end.bibitem % end_bibitem(); 1703 | } % } 1704 | % 1705 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1706 | % 1707 | FUNCTION {program} { % void Entry::program() { 1708 | "CP" set.mark % set_mark("CP"); 1709 | program.impl % program_impl(); 1710 | } % } 1711 | % 1712 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1713 | % 1714 | FUNCTION {database} { % void Entry::database() { 1715 | "DB" set.mark % set_mark("DB"); 1716 | program.impl % program_impl(); 1717 | } % } 1718 | % 1719 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1720 | % 1721 | FUNCTION {unpublished} { % void Entry::unpublished() { 1722 | "H" set.mark % set_mark("H"); 1723 | start.bibitem % start_bibitem(); 1724 | true output.author % output_author(true); 1725 | true output.title % output_title(true); 1726 | true output.mark % output_mark(true); 1727 | cap.period write$ % write(cap_period); 1728 | true output.year % output_year(true); 1729 | false output.citedate % output_citedate(false); 1730 | false output.url.or.doi % output_url_or_doi(false); 1731 | end.bibitem % end_bibitem(); 1732 | } % } 1733 | % 1734 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1735 | % 1736 | FUNCTION {manuscript} { % void Entry::manuscript() { 1737 | unpublished % unpublished(); 1738 | } % } 1739 | % 1740 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1741 | % 1742 | FUNCTION {inbook.impl} { % void Entry::inbook_impl() { 1743 | start.bibitem % start_bibitem(); 1744 | true output.author % output_author(true); 1745 | true output.title % output_title(true); 1746 | true output.mark % output_mark(true); 1747 | false output.translator % output_translator(false); 1748 | cap.double.slash write$ % write(cap_double_slash); 1749 | false output.editor % output_editor(false); 1750 | true output.series.volume.booktitle % output_series_volume_booktitle(true); 1751 | false output.edition % output_edition(false); 1752 | publisher empty$ not { % if (! empty(this.publisher)) { 1753 | true output.address % output_address(true); 1754 | true output.publisher % output_publisher(true); 1755 | cap.comma write$ % write(cap_comma); 1756 | } { % } else { 1757 | cap.period write$ % write(cap_period); 1758 | } if$ % } 1759 | true output.year % output_year(true); 1760 | false output.pages % output_pages(false); 1761 | false output.citedate % output_citedate(false); 1762 | false output.url.or.doi % output_url_or_doi(false); 1763 | end.bibitem % end_bibitem(); 1764 | } % } 1765 | % 1766 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1767 | % 1768 | FUNCTION {inbook} { % void Entry::inbook() { 1769 | "M" set.mark % set_mark("M"); 1770 | inbook.impl % inbook_impl(); 1771 | } % } 1772 | % 1773 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1774 | % 1775 | FUNCTION {incollection} { % void Entry::incollection() { 1776 | "G" set.mark % set_mark("G"); 1777 | inbook.impl % inbook_impl(); 1778 | } % } 1779 | % 1780 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1781 | % 1782 | FUNCTION {inproceedings} { % void Entry::inproceedings() { 1783 | "C" set.mark % set_mark("C"); 1784 | inbook.impl % inbook_impl(); 1785 | } % } 1786 | % 1787 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1788 | % 1789 | FUNCTION {article} { % void Entry::article() { 1790 | "J" set.mark % set_mark("J"); 1791 | start.bibitem % start_bibitem(); 1792 | true output.author % output_author(true); 1793 | true output.title % output_title(true); 1794 | true output.mark % output_mark(true); 1795 | true output.journal % output_journal(true); 1796 | cap.comma write$ % write(cap_comma); 1797 | true output.year % output_year(true); 1798 | false output.volume % output_volume(false); 1799 | false output.number % output_number(false); 1800 | false output.pages % output_pages(false); 1801 | false output.citedate % output_citedate(false); 1802 | false output.url.or.doi % output_url_or_doi(false); 1803 | end.bibitem % end_bibitem(); 1804 | } % } 1805 | % 1806 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1807 | % 1808 | FUNCTION {news} { % void Entry::news() { 1809 | "N" set.mark % set_mark("N"); 1810 | start.bibitem % start_bibitem(); 1811 | true output.author % output_author(true); 1812 | true output.title % output_title(true); 1813 | true output.mark % output_mark(true); 1814 | true output.journal % output_journal(true); 1815 | cap.comma write$ % write(cap_comma); 1816 | true output.date % output_date(true); 1817 | false output.number % output_number(false); 1818 | false output.citedate % output_citedate(false); 1819 | false output.url.or.doi % output_url_or_doi(false); 1820 | end.bibitem % end_bibitem(); 1821 | } % } 1822 | % 1823 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1824 | % 1825 | FUNCTION {default.type} { % void Entry::default_type() { 1826 | "Unsupported entry type for " cite$ * warning$ % warning("Unsupported entry type for " + this.cite); 1827 | } % } 1828 | % 1829 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1830 | % 1831 | FUNCTION {longest.label.pass} { % void longest_label_pass(Entry entry) { 1832 | entry.count #1 + 'entry.count := % entry_count = entry_count + 1; 1833 | entry.count int.to.str$ 'label := % this.label = int_to_str(entry_count); 1834 | label width$ longest.label.width > { % if (width(this.label) > longest_label_width) { 1835 | label 'longest.label := % longest_label = this.label; 1836 | label width$ 'longest.label.width := % longest_label_width = width(this.label); 1837 | } 'skip$ if$ % } 1838 | } % } 1839 | % 1840 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1841 | % 1842 | FUNCTION {write.style.commands} { % void write_style_commands() { 1843 | cmd.bibauthor write$ % write(cmd_bibauthor); 1844 | newline$ % writeln(); 1845 | cmd.bibeditor write$ % write(cmd_bibeditor); 1846 | newline$ % writeln(); 1847 | cmd.bibtranslator write$ % write(cmd_bibtranslator); 1848 | newline$ % writeln(); 1849 | cmd.bibtitle write$ % write(cmd_bibtitle); 1850 | newline$ % writeln(); 1851 | cmd.bibbooktitle write$ % write(cmd_bibbooktitle); 1852 | newline$ % writeln(); 1853 | cmd.bibjournal write$ % write(cmd_bibjournal); 1854 | newline$ % writeln(); 1855 | cmd.bibmark write$ % write(cmd_bibmark); 1856 | newline$ % writeln(); 1857 | cmd.bibcountry write$ % write(cmd_bibcountry); 1858 | newline$ % writeln(); 1859 | cmd.bibpatentid write$ % write(cmd_bibpatentid); 1860 | newline$ % writeln(); 1861 | cmd.bibedition write$ % write(cmd_bibedition); 1862 | newline$ % writeln(); 1863 | cmd.biborganization write$ % write(cmd_biborganization); 1864 | newline$ % writeln(); 1865 | cmd.bibaddress write$ % write(cmd_bibaddress); 1866 | newline$ % writeln(); 1867 | cmd.bibpublisher write$ % write(cmd_bibpublisher); 1868 | newline$ % writeln(); 1869 | cmd.bibinstitution write$ % write(cmd_bibinstitution); 1870 | newline$ % writeln(); 1871 | cmd.bibschool write$ % write(cmd_bibschool); 1872 | newline$ % writeln(); 1873 | cmd.bibvolume write$ % write(cmd_bibvolume); 1874 | newline$ % writeln(); 1875 | cmd.bibnumber write$ % write(cmd_bibnumber); 1876 | newline$ % writeln(); 1877 | cmd.bibversion write$ % write(cmd_bibversion); 1878 | newline$ % writeln(); 1879 | cmd.bibpages write$ % write(cmd_bibpages); 1880 | newline$ % writeln(); 1881 | cmd.bibmodifydate write$ % write(cmd_bibmodifydate); 1882 | newline$ % writeln(); 1883 | cmd.bibcitedate write$ % write(cmd_bibcitedate); 1884 | newline$ % writeln(); 1885 | cmd.bibyear write$ % write(cmd_bibyear); 1886 | newline$ % writeln(); 1887 | cmd.bibdate write$ % write(cmd_bibdate); 1888 | newline$ % writeln(); 1889 | cmd.biburl write$ % write(cmd_biburl); 1890 | newline$ % writeln(); 1891 | } % } 1892 | % 1893 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1894 | % 1895 | FUNCTION {begin.bib} { % void begin_bib() { 1896 | preamble$ empty$ not { % if (! empty(premble)) { 1897 | preamble$ write$ % write(premeable); 1898 | newline$ % writeln(); 1899 | } 'skip$ if$ % } 1900 | env.bibbegin write$ % write(env_bibbegin); 1901 | "{" longest.label * "}" * write$ % write("{" + longest.label + "}"); 1902 | newline$ % writeln(); 1903 | write.style.commands % write_style_commands(); 1904 | } % } 1905 | % 1906 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1907 | % 1908 | FUNCTION {end.bib} { % void end_bib() { 1909 | newline$ % writeln(); 1910 | env.bibend write$ % write(env_bibend); 1911 | newline$ % writeln(); 1912 | } % } 1913 | % 1914 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1915 | % 1916 | FUNCTION {initialize} { % void initialize() { 1917 | #0 'entry.count := % entry_count = 0; 1918 | #0 'longest.label.width := % longest_label_width = 0; 1919 | "" 'longest.label := % longest_label = ""; 1920 | } % } 1921 | % 1922 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1923 | % 1924 | % void main() { 1925 | READ % List entryList = read(".bib"); 1926 | EXECUTE {initialize} % initialize(); 1927 | ITERATE {longest.label.pass} % for (Entry entry : entryList) { 1928 | % longest_label_pass(entry); 1929 | % } 1930 | EXECUTE {begin.bib} % begin_bib(); 1931 | ITERATE {call.type$} % for (Entry entry : entryList) { 1932 | % switch (typeof(entry)) { 1933 | % case "book": 1934 | % entry.book(); 1935 | % break; 1936 | % case "article": 1937 | % entry.article(); 1938 | % break; 1939 | % . 1940 | % . 1941 | % . 1942 | % case "incollection": 1943 | % entry.incollection(); 1944 | % break; 1945 | % case "misc": 1946 | % entry.misc(); 1947 | % break; 1948 | % default: 1949 | % entry.default_type(); 1950 | % } 1951 | % } 1952 | EXECUTE {end.bib} % end_bib(); 1953 | % } 1954 | % 1955 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1956 | %% End of file `GBT7714-2005.bst' 1957 | -------------------------------------------------------------------------------- /reference/ref.bib: -------------------------------------------------------------------------------- 1 | @article{Said:ITCSVT:1996, 2 | author = {A. Said and W. A. Pearlman}, 3 | title = {A new, fast, and efficient image codec based on set partitioning in hierarchical trees}, 4 | journal = {IEEE Transactions on Circuits and Systems for Video Technology}, 5 | year = {1996}, 6 | month = {Jun}, 7 | volume = {6}, 8 | number = {3}, 9 | pages = {243-250}, 10 | doi = {10.1109/76.499834}, 11 | } 12 | 13 | @article{Huang:IJSAC:2009, 14 | author = {Y. M. Huang and M. Y. Hsieh and H. C. Chao and S. H. Hung and J. H. Park}, 15 | title = {Pervasive, secure access to a hierarchical sensor-based healthcare monitoring architecture in wireless heterogeneous networks}, 16 | journal = {IEEE Journal on Selected Areas in Communications}, 17 | year = {2009}, 18 | month = {MAY}, 19 | volume = {27}, 20 | number = {4}, 21 | pages = {400-411}, 22 | doi = {10.1109/JSAC.2009.090505}, 23 | } 24 | 25 | @article{Zhang:ITITB:2012, 26 | author = {Zhaoyang Zhang and Honggang Wang and Athanasios V. Vasilakos and Hua Fang}, 27 | title = {Ecg-cryptography and authentication in body area networks}, 28 | journal = {IEEE Transactions on Information Technology in Biomedicine}, 29 | year = {2012}, 30 | month = {NOV}, 31 | volume = {16}, 32 | number = {6}, 33 | pages = {1070-1078}, 34 | doi = {10.1109/TITB.2012.2206115}, 35 | } 36 | 37 | @article{Lee:ITBE:2011, 38 | author = {SangJoon Lee and Jungkuk Kim and Myoungho Lee}, 39 | title = {A real-time ecg data compression and transmission algorithm for an e-health device}, 40 | journal = {IEEE Transactions on Biomedical Engineering}, 41 | year = {2011}, 42 | month = {SEP}, 43 | volume = {58}, 44 | number = {9}, 45 | pages = {2448-2455}, 46 | doi = {10.1109/TBME.2011.2156794}, 47 | } 48 | 49 | @article{Sufi:IJSAC:2009, 50 | author = {Fahim Sufi and Qiang Fang and Ibrahim Khalil and Seedahmed S. Mahmoud}, 51 | title = {Novel methods of faster cardiovascular diagnosis in wireless telecardiology}, 52 | journal = {IEEE Journal on Selected Areas in Communications}, 53 | year = {2009}, 54 | month = {MAY}, 55 | volume = {27}, 56 | number = {4}, 57 | pages = {537-552}, 58 | doi = {10.1109/JSAC.2009.090515}, 59 | } 60 | 61 | @article{Barni:ITIFS:2011, 62 | author = {Mauro Barni and Picrluigi Failla and Riccardo Lazzeretti and Ahmad-Reza Sadeghi and Thomas Schneider}, 63 | title = {Privacy-preserving ecg classification with branching programs and neural networks}, 64 | journal = {IEEE Transactions on Information Forensics and Security}, 65 | year = {2011}, 66 | month = {JUN}, 67 | volume = {6}, 68 | number = {2}, 69 | pages = {452-468}, 70 | doi = {10.1109/TIFS.2011.2108650}, 71 | } 72 | 73 | @article{Hu:ITITB:2007, 74 | author = {Fei Hu and Meng Jiang and Mark Wagner and De-Cun Dong}, 75 | title = {Privacy-preserving telecardiology sensor networks: toward a low-cost portable wireless hardware/software codesign}, 76 | journal = {IEEE Transactions on Information Technology in Biomedicine}, 77 | year = {2007}, 78 | month = {NOV}, 79 | volume = {11}, 80 | number = {6}, 81 | pages = {619-627}, 82 | doi = {10.1109/TITB.2007,894818}, 83 | } 84 | 85 | @article{Safie:ITIFS:2011, 86 | author = {Sairul I. Safie and John J. Soraghan and Lykourgos Petropoulakis}, 87 | title = {Electrocardiogram (ECG) biometric authentication using pulse active ratio (PAR)}, 88 | journal = {IEEE Transactions on Information Forensics and Security}, 89 | year = {2011}, 90 | month = {DEC}, 91 | volume = {6}, 92 | number = {4}, 93 | pages = {1315-1322}, 94 | doi = {10.1109/TIFS.2011.2162408}, 95 | } 96 | 97 | @article{Ibaida:ITBE:2013, 98 | author = {Ayman Ibaida and Ibrahim Khalil}, 99 | title = {Wavelet-based ecg steganography for protecting patient confidential information in point-of-care systems}, 100 | journal = {IEEE Transactions on Biomedical Engineering}, 101 | year = {2013}, 102 | month = {DEC}, 103 | volume = {60}, 104 | number = {12}, 105 | pages = {3322-3330}, 106 | doi = {10.1109/TBME.2013.2264539}, 107 | } 108 | 109 | @article{Wang:ISJ:2011, 110 | author = {Wei Wang and Honggang Wang and Michael Hempel and Dongming Peng and Hamid Sharif and Hsiao-Hwa Chen}, 111 | title = {Secure stochastic ecg signals based on gaussian mixture model for e-healthcare systems}, 112 | journal = {IEEE Systems Journal}, 113 | year = {2011}, 114 | month = {DEC}, 115 | volume = {5}, 116 | number = {4, SI}, 117 | pages = {564-573}, 118 | doi = {10.1109/JSYST.2011.2165597}, 119 | } 120 | 121 | @article{Ma:ITBE:2012, 122 | author = {Tao Ma and Pradhumna Lal Shrestha and Michael Hempel and Dongming Peng and Hamid Sharif and Hsiao-Hwa Chen}, 123 | title = {Assurance of energy efficiency and data security for ecg transmission in basns}, 124 | journal = {IEEE Transactions on Biomedical Engineering}, 125 | year = {2012}, 126 | month = {APR}, 127 | volume = {59}, 128 | number = {4}, 129 | pages = {1041-1048}, 130 | doi = {10.1109/TBME.2011.2182196}, 131 | } 132 | 133 | @article{Ma:IJBHI:2015, 134 | author = {JiaLi Ma and TanTan Zhang and MingChui Dong}, 135 | title = {A novel ecg data compression method using adaptive fourier decomposition with security guarantee in e-health applications}, 136 | journal = {IEEE Journal of Biomedical and Health Informatics}, 137 | year = {2015}, 138 | month = {MAY}, 139 | volume = {19}, 140 | number = {3}, 141 | pages = {986-994}, 142 | doi = {10.1109/JBHI.2014.2357841}, 143 | } 144 | 145 | @article{Arteaga-Falconi:ITIM:2016, 146 | author = {Juan Sebastian Arteaga-Falconi and Hussein Al Osman and Abdulmotaleb El Saddik}, 147 | title = {Ecg authentication for mobile devices}, 148 | journal = {IEEE Transactions on Instrumentation and Measurement}, 149 | year = {2016}, 150 | month = {MAR}, 151 | volume = {65}, 152 | number = {3}, 153 | pages = {591-600}, 154 | doi = {10.1109/TIM.2015.2503863}, 155 | } 156 | 157 | @article{Dautov:IJBHI:2016, 158 | author = {Ruslan Dautov and Gill R. Tsouri}, 159 | title = {Securing while sampling in wireless body area networks with application to electrocardiography}, 160 | journal = {IEEE Journal of Biomedical and Health Informatics}, 161 | year = {2016}, 162 | month = {JAN}, 163 | volume = {20}, 164 | number = {1}, 165 | pages = {135-142}, 166 | doi = {10.1109/JBHI.2014.2366125}, 167 | } 168 | 169 | @article{Wang:ITBE:2016, 170 | author = {Jianqing Wang and Takuya Fujiwara and Taku Kato and Daisuke Anzai}, 171 | title = {Wearable ecg based on impulse-radio-type human body communication}, 172 | journal = {IEEE Transactions on Biomedical Engineering}, 173 | year = {2016}, 174 | month = {SEP}, 175 | volume = {63}, 176 | number = {9}, 177 | pages = {1887-1894}, 178 | doi = {10.1109/TBME.2015.2504998}, 179 | } 180 | 181 | @article{Zheng:IA:2015, 182 | author = {Guanglou Zheng and Gengfa Fang and Rajan Shankaran and Mehmet A. Orgun}, 183 | title = {Encryption for implantable medical devices using modified one-time pads}, 184 | journal = {IEEE Access}, 185 | year = {2015}, 186 | volume = {3}, 187 | pages = {825-836}, 188 | doi = {10.1109/ACCESS.2015.2445336}, 189 | } 190 | 191 | @article{Zheng:IJBHI:2017, 192 | author = {Guanglou Zheng and Gengfa Fang and Rajan Shankaran and Mehmet A. Orgun and Jie Zhou and Li Qiao and Kashif Saleem}, 193 | title = {Multiple ecg fiducial points-based random binary sequence generation for securing wireless body area networks}, 194 | journal = {IEEE Journal of Biomedical and Health Informatics}, 195 | year = {2017}, 196 | month = {MAY}, 197 | volume = {21}, 198 | number = {3}, 199 | pages = {655-663}, 200 | doi = {10.1109/JBHI.2016.2546300}, 201 | } 202 | 203 | @article{Ye:IM:2016, 204 | author = {Guodong Ye and Xiaoling Huang}, 205 | title = {An image encryption algorithm based on autoblocking and electrocardiography}, 206 | journal = {IEEE Multimedia}, 207 | year = {2016}, 208 | month = {APR-JUN}, 209 | volume = {23}, 210 | number = {2}, 211 | pages = {64-71}, 212 | } 213 | 214 | @article{Hartley:ITITB:2012, 215 | author = {Craig J. Hartley and Morteza Naghavi and Oberdan Parodi and Constantinos S. Pattichis and Carmen C. Y. Poon and Yuan-Ting Zhang}, 216 | title = {Cardiovascular health informatics: risk screening and intervention}, 217 | journal = {IEEE Transactions on Information Technology in Biomedicine}, 218 | year = {2012}, 219 | month = {SEP}, 220 | volume = {16}, 221 | number = {5, SI}, 222 | pages = {791-794}, 223 | doi = {10.1109/TITB.2012.2216057}, 224 | } 225 | 226 | @article{Chen:IA:2017, 227 | author = {Shih-Lun Chen and Min-Chun Tuan and Ho-Yin Lee and Ting-Lan Lin}, 228 | title = {Vlsi implementation of a cost-efficient micro control unit with an asymmetric encryption for wireless body sensor networks}, 229 | journal = {IEEE Access}, 230 | year = {2017}, 231 | volume = {5}, 232 | pages = {4077-4086}, 233 | doi = {10.1109/ACCESS.2017.2679123}, 234 | } 235 | 236 | @article{Zhang:IA:2017, 237 | author = {Qingxue Zhang and Dian Zhou and Xuan Zeng}, 238 | title = {Heartid: a multiresolution convolutional neural network for ecg-based biometric human identification in smart health applications}, 239 | journal = {IEEE Access}, 240 | year = {2017}, 241 | volume = {5}, 242 | pages = {11805-11816}, 243 | doi = {10.1109/ACCESS.2017.2707460}, 244 | } 245 | 246 | -------------------------------------------------------------------------------- /reference/references.tex: -------------------------------------------------------------------------------- 1 | \phantomsection 2 | \addcontentsline{toc}{chapter}{参考文献} 3 | \bibliographystyle{reference/GBTbibsty} 4 | \bibliography{reference/ref} -------------------------------------------------------------------------------- /word_template/README.md: -------------------------------------------------------------------------------- 1 | ## 湘潭大学硕士毕业论文写作格式模板用户使用手册 2 | 3 | 1. 新建word2013文档 4 | 2. 功能区 -> 样式 -> 管理样式 -> 导入/导出 5 | 3. 右侧关闭文件 -> 打开文件 -> 选中xtuthesis.dotm 6 | 4. 下拉全选样式 -> 中间点击复制 -> 关闭 7 | 5. 请使用样式修改格式化你的论文内容! -------------------------------------------------------------------------------- /word_template/user_guide.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/word_template/user_guide.gif -------------------------------------------------------------------------------- /word_template/xtutest.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/word_template/xtutest.docx -------------------------------------------------------------------------------- /word_template/xtuthesis.dotm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/word_template/xtuthesis.dotm -------------------------------------------------------------------------------- /xtu.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/xtu.pdf -------------------------------------------------------------------------------- /xtuformat.sty: -------------------------------------------------------------------------------- 1 | %\usepackage{fontspec} 2 | \RequirePackage{amsmath} % 排版数学公式 3 | \RequirePackage{ntheorem} % proof等环境 4 | \RequirePackage{latexsym} 5 | \RequirePackage{amsfonts} 6 | \RequirePackage{amssymb} % 定义AMS的数学符号命令 7 | \RequirePackage{mathrsfs} % 数学RSFS书写字体 8 | \RequirePackage{bm} % 数学黑体 9 | \RequirePackage{graphicx} % 支持插图,图形宏包graphics的扩展宏包 10 | \RequirePackage{color,xcolor} % 支持彩色 11 | \RequirePackage{hyperref} % 超级链接 12 | \hypersetup{ 13 | CJKbookmarks=true, 14 | bookmarksnumbered=false, 15 | bookmarksopen=true, 16 | colorlinks=true, 17 | linkcolor=black, 18 | anchorcolor=black, 19 | citecolor=black, 20 | urlcolor=green, 21 | } 22 | \RequirePackage{geometry} % 简单灵活的页面设置界面 23 | \geometry{ 24 | paperwidth=21cm, 25 | paperheight=29.7cm, 26 | top=2.79cm, 27 | bottom=2.54cm, 28 | left=2.96cm, 29 | right=2.76cm, 30 | headheight=1.2cm, 31 | headsep=0.07cm, 32 | footskip=1.27cm, 33 | } 34 | \RequirePackage{amscd} 35 | \RequirePackage[linesnumbered,ruled,vlined]{algorithm2e} 36 | \RequirePackage{diagbox} 37 | \RequirePackage{cite} 38 | \RequirePackage{xtuformat} 39 | 40 | %---中文封面-------------------------------------------------------------------------- 41 | \makeatletter 42 | \newcommand*{\schoolcode}[1]{\gdef\@schoolcode{#1}} 43 | \newcommand*{\studentid}[1]{\gdef\@studentid{#1}} 44 | \newcommand*{\cntitle}[1]{\gdef\@cntitle{#1}} 45 | \newcommand*{\cnname}[1]{\gdef\@cnname{#1}} 46 | \newcommand*{\cnteacher}[1]{\gdef\@cnteacher{#1}} 47 | \newcommand*{\cncollege}[1]{\gdef\@cncollege{#1}} 48 | \newcommand*{\cnmajor}[1]{\gdef\@cnmajor{#1}} 49 | \newcommand*{\cnspcial}[1]{\gdef\@cnspcial{#1}} 50 | \newcommand*{\cndegree}[1]{\gdef\@cndegree{#1}} 51 | \newcommand*{\cnschool}[1]{\gdef\@cnschool{#1}} 52 | \newcommand*{\cdate}[1]{\gdef\@cdate{#1}} 53 | 54 | \newcommand*{\@schoolcode}{10530} 55 | \newcommand*{\@cdate}{\CTEXoptions[today=big]\today} 56 | \newcommand*{\makecntitle}{% 57 | \thispagestyle{empty} 58 | \begin{flushleft} 59 | \makebox[17mm][s]{\heiti 学校代码}\underline{\makebox[35mm][c]{\@schoolcode}}\hfill\makebox[17mm][s]{\heiti 学号}\underline{\makebox[35mm][c]{\@studentid}}\\ 60 | \vskip0.2cm 61 | \makebox[17mm][s]{\heiti 分类号}\underline{\makebox[35mm][c]{O241.82}}\hfill\makebox[17mm][s]{\heiti 密级}\underline{\makebox[35mm][c]{}} 62 | \end{flushleft} 63 | \vskip1.5cm 64 | \begin{center} 65 | \includegraphics[scale=0.7]{xtu.pdf} 66 | \end{center} 67 | \vskip0.3cm 68 | \begin{center} 69 | \makebox[109mm][s]{\heiti\zihao{-0}硕士学位论文} 70 | \end{center} 71 | \vskip1.5cm 72 | \begin{center} 73 | \heiti \zihao{2}\@cntitle 74 | \end{center} 75 | \vskip2.5cm 76 | \begin{center} 77 | \makebox[30mm][s]{\heiti 学位申请人}\underline{\makebox[87mm][c]{\fangsong\zihao{3}\@cnname}}\\ 78 | \vskip0.7cm 79 | \makebox[30mm][s]{\heiti 指导老师}\underline{\makebox[87mm][c]{\fangsong\zihao{3}\@cnteacher}}\\ 80 | \vskip0.7cm 81 | \makebox[30mm][s]{\heiti 学院名称}\underline{\makebox[87mm][c]{\fangsong\zihao{3}\@cncollege}}\\ 82 | \vskip0.7cm 83 | \makebox[30mm][s]{\heiti 学科专业}\underline{\makebox[87mm][c]{\fangsong\zihao{3}\@cnmajor}}\\ 84 | \vskip0.7cm 85 | \makebox[30mm][s]{\heiti 研究方向}\underline{\makebox[87mm][c]{\fangsong\zihao{3}\@cnspcial}} 86 | \end{center} 87 | \vskip1.85cm 88 | \begin{center} 89 | {\songti\zihao{3}\@cdate} 90 | \end{center} 91 | 92 | %----中文内封面------------------------------------------------------------------------------ 93 | \newpage 94 | \thispagestyle{empty} 95 | \topskip 4.2cm 96 | \begin{center} 97 | \heiti \zihao{1}\@cntitle 98 | \end{center} 99 | \vskip 4cm 100 | \begin{center} 101 | \makebox[30mm][s]{\heiti 学位申请人}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cnname}}\\ 102 | \vskip0.7cm 103 | \makebox[30mm][s]{\heiti 导师姓名及职称}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cnteacher}}\\ 104 | \vskip0.7cm 105 | \makebox[30mm][s]{\heiti 学院名称}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cncollege}}\\ 106 | \vskip0.7cm 107 | \makebox[30mm][s]{\heiti 学科专业}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cnmajor}}\\ 108 | \vskip0.7cm 109 | \makebox[30mm][s]{\heiti 研究方向}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cnspcial}}\\ 110 | \vskip0.7cm 111 | \makebox[30mm][s]{\heiti 学位申请级别}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cndegree}}\\ 112 | \vskip0.7cm 113 | \makebox[30mm][s]{\heiti 学位授予单位}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cnschool}}\\ 114 | \vskip0.7cm 115 | \makebox[30mm][s]{\heiti 论文提交日期}\underline{\makebox[66.5mm][c]{\fangsong\zihao{-4}\@cdate}} 116 | \end{center} 117 | } 118 | \makeatother 119 | 120 | \makeatletter 121 | %----英文内封面----------------------------------------------------------------------------- 122 | \newcommand*{\entitle}[1]{\gdef\@entitle{#1}} 123 | \newcommand*{\candidate}[1]{\gdef\@candidate{#1}} 124 | \newcommand*{\supervisor}[1]{\gdef\@supervisor{#1}} 125 | \newcommand*{\college}[1]{\gdef\@college{#1}} 126 | \newcommand*{\program}[1]{\gdef\@program{#1}} 127 | \newcommand*{\specialization}[1]{\gdef\@specialization{#1}} 128 | \newcommand*{\degree}[1]{\gdef\@degree{#1}} 129 | \newcommand*{\university}[1]{\gdef\@university{#1}} 130 | \newcommand*{\edate}[1]{\gdef\@edate{#1}} 131 | 132 | \newcommand*{\@edate}{\CTEXoptions[today=old]\today} 133 | \newcommand*{\makeentitle}{% 134 | \newpage 135 | \thispagestyle{empty} 136 | \topskip 4cm 137 | \begin{center} 138 | \setmainfont{Arial}\huge\textbf{\@entitle} 139 | \end{center} 140 | \vskip 3.5cm 141 | \begin{center} 142 | \makebox[135mm][l]{\textbf{Candidate}\underline{\makebox[112.5mm][c]{\@candidate}}}\\ 143 | \vskip0.7cm 144 | \makebox[135mm][l]{\textbf{Supervisor}\underline{\makebox[112mm][c]{\@supervisor}}}\\ 145 | \vskip0.7cm 146 | \makebox[135mm][l]{\textbf{College}\underline{\makebox[119mm][c]{\@college}}}\\ 147 | \vskip0.7cm 148 | \makebox[135mm][l]{\textbf{Program}\underline{\makebox[116mm][c]{\@program}}}\\ 149 | \vskip0.7cm 150 | \makebox[135mm][l]{\textbf{Specialization}\underline{\makebox[105mm][c]{\@specialization}}}\\ 151 | \vskip0.7cm 152 | \makebox[135mm][l]{\textbf{Degree}\underline{\makebox[119.5mm][c]{\@degree}}}\\ 153 | \vskip0.7cm 154 | \makebox[135mm][l]{\textbf{University}\underline{\makebox[112.5mm][c]{\@university}}}\\ 155 | \vskip0.7cm 156 | \makebox[135mm][l]{\textbf{Date}\underline{\makebox[124.5mm][c]{\@edate}}} 157 | \end{center} 158 | } 159 | \makeatother 160 | 161 | %---原创性声明------------------------------------------------------------------------ 162 | %----原创声明和版权授权----------------------------------------------------------------------- 163 | \makeatletter 164 | \newcommand*{\makedeclare}{% 165 | \newpage 166 | \thispagestyle{empty} 167 | \topskip10mm 168 | \begin{center} 169 | {\heiti\zihao{2}湘潭大学 \vskip5mm 学位论文原创性声明} 170 | \end{center} 171 | \songti\zihao{4} 172 | 173 | ~本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以 174 | 标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 175 | 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 176 | \vskip8mm 177 | 178 | ~作者签名:\hfill~~~~~~~~~~~~~~~~~~~~~~~~~日期:\kern 1.6cm 年 \kern 0.8cm 月 \kern 0.8cm 日 179 | \vskip30mm 180 | \begin{center} 181 | {\heiti\zihao{2}学位论文版权使用授权书} 182 | \end{center} 183 | 184 | ~本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送 185 | 交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湘潭大学可以将本学位论文的全部或部分内容编 186 | 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 187 | \par 188 | ~涉密论文按学校规定处理。 189 | \vskip30mm 190 | 191 | ~作者签名:\hfill~~~~~~~~~~~~~~~~~~~~~~~~~日期:\kern 1.6cm 年 \kern 0.8cm 月 \kern 0.8cm 日 192 | \vskip8mm 193 | 194 | ~导师签名:\hfill~~~~~~~~~~~~~~~~~~~~~~~~~日期:\kern 1.6cm 年 \kern 0.8cm 月 \kern 0.8cm 日 195 | } 196 | \makeatother 197 | 198 | %---定制目录-------------------------------------------------------------------------- 199 | \makeatletter 200 | \def\@bfdottedtocline#1#2#3#4#5{% 201 | \ifnum #1>\c@tocdepth \else 202 | \vskip \z@ \@plus.2\p@ 203 | {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip 204 | \parindent #2\relax\@afterindenttrue 205 | \interlinepenalty\@M 206 | \leavevmode \bfseries 207 | \@tempdima #3\relax 208 | \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip 209 | {#4}\normalfont\nobreak 210 | \leaders\hbox{$\m@th 211 | \mkern \@dotsep mu\hbox{.}\mkern \@dotsep 212 | mu$}\hfill 213 | \nobreak 214 | \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% 215 | \par}% 216 | \fi} 217 | \renewcommand*\l@chapter{\@bfdottedtocline{0}{0em}{1.5em}} 218 | \makeatother 219 | 220 | %---定理, 定义 等环境的设置--------------------------------------------------------------- 221 | \newtheorem{definition}{\hspace{2em}定义}[section] 222 | \newtheorem{proposition}{\hspace{2em}命题}[section] 223 | \newtheorem{property}{\hspace{2em}性质}[section] 224 | \newtheorem{lemma}{\hspace{2em}引理}[section] 225 | \newtheorem{theorem}{\hspace{2em}定理}[section] 226 | \newtheorem{corollary}{\hspace{2em}推论}[section] 227 | \newtheorem{example}{\hspace{2em}例} 228 | \newtheorem{remark}{\hspace{2em}注} 229 | \newtheorem*{proof}{\hspace{2em}证} 230 | 231 | %---自定义命令和环境----------------------------------------------------------------------- 232 | \newenvironment{cnabstract}[1]{% 233 | \chapter*{摘~~~~要} 234 | \songti\zihao{-4}% 235 | \vskip 0.2cm \noindent #1} 236 | 237 | \newenvironment{cnkeywords}[1]{% 238 | \noindent{\heiti \zihao{-4}关键词:}\zihao{-4}#1% 239 | } 240 | 241 | \newenvironment{enabstract}[1]{% 242 | \chapter*{\setmainfont{Arial}\bf Abstract}% 243 | \vskip 0.2cm \noindent #1} 244 | 245 | \newenvironment{enkeywords}[1]{% 246 | \noindent{\bf \zihao{-4}Key Words: }\zihao{-4}#1% 247 | } 248 | 249 | \CTEXsetup[format={\centering\sffamily}]{chapter} 250 | \CTEXsetup[nameformat={\heiti\zihao{3}}]{chapter} 251 | \CTEXsetup[titleformat={\heiti\zihao{3}}]{chapter} 252 | \CTEXsetup[numberformat={\heiti\zihao{3}}]{chapter} 253 | \CTEXsetup[beforeskip={0pt},afterskip={30pt}]{chapter} 254 | \CTEXsetup[name={第, 章},number={\arabic{chapter}}]{chapter} 255 | 256 | \CTEXsetup[format={\flushleft\sffamily\heiti\zihao{4}}]{section} 257 | \CTEXsetup[beforeskip={24pt},afterskip={6pt}]{section} 258 | 259 | \CTEXsetup[format={\flushleft\sffamily\heiti\zihao{-4}}]{subsection} 260 | \CTEXsetup[beforeskip={12pt},afterskip={6pt}]{subsection} 261 | 262 | \CTEXsetup[format={\flushleft\sffamily\heiti\zihao{-4}}]{subsubsection} 263 | \CTEXsetup[beforeskip={12pt},afterskip={6pt}]{subsubsection} 264 | 265 | \newlength\oneimage 266 | \setlength\oneimage{0.8\textwidth} 267 | 268 | \newlength\twoimage 269 | \setlength\twoimage{0.45\textwidth} 270 | 271 | \newlength\threeimage 272 | \setlength\threeimage{0.3\textwidth} 273 | 274 | %---罗马数字-------- 275 | \makeatletter 276 | \newcommand*{\rom}[1]{\expandafter\@slowromancap\romannumeral #1@} 277 | \makeatother 278 | 279 | %---将Algorithm改为中文宋体“算法”-------- 280 | \renewcommand{\algorithmcfname}{\songti 算法} 281 | \makeatletter 282 | \renewcommand{\algocf@captiontext}[2]{#1\algocf@typo\quad \AlCapFnt{}#2} 283 | \makeatother 284 | 285 | % 上标引用 286 | \newcommand{\upcite}[1]{\textsuperscript{\cite{#1}}} 287 | -------------------------------------------------------------------------------- /xtuthesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrDongdongLin/xtuthesis/17508d5b3964e8fa35258aaca20e7bb31fa4941a/xtuthesis.pdf -------------------------------------------------------------------------------- /xtuthesis.tex: -------------------------------------------------------------------------------- 1 | \documentclass[GBK,UTF8,12pt,oneside,a4paper]{ctexbook} 2 | %----------------------------------------packages and format----------------- 3 | %\input{setup/package.tex} 4 | \usepackage{xtuformat} 5 | \graphicspath{{figures/}} 6 | 7 | \begin{document} 8 | %----------------------------------------cover------------------------------- 9 | \include{preface/cover} 10 | % 从摘要开始用罗马数字编号 11 | \newpage 12 | \pagestyle{plain} 13 | \pagenumbering{Roman} 14 | \include{preface/abstract} 15 | %----------------------------------------table content----------------------- 16 | \newpage 17 | \tableofcontents 18 | %----------------------------------------body-------------------------------- 19 | \songti\zihao{-4} 20 | % 从第一章开始用阿拉伯数字编号 21 | \newpage 22 | \pagenumbering{arabic} 23 | \include{body/introduction} 24 | \include{body/thesisformat} 25 | \include{body/bibliography} 26 | \include{body/expression} 27 | \include{body/elements} 28 | %----------------------------------------reference--------------------------- 29 | \include{reference/references} 30 | %----------------------------------------thanks------------------------------ 31 | \include{body/thank} 32 | \include{body/aboutme} 33 | \end{document} --------------------------------------------------------------------------------