diff --git a/README.md b/README.md index d916b63..d164105 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -## 2017全国研究生数学建模竞赛LaTeX论文模板 +## 2018全国研究生数学建模竞赛LaTeX论文模板 GMCMthesis 是为全国研究生数学建模竞赛编写的LaTeX模板, 旨在让大家专注于 论文的内容写作, 而不用花费过多精力在格式的定制和调整上. 本手册是相应的参考, 其 @@ -15,6 +15,14 @@ GMCMthesis 是为全国研究生数学建模竞赛编写的LaTeX模板, 旨在 ## 更新记录 +2018年9月11日更新: + +1,修改封面格式,由于阴影效果进行截图插图。 + +2,修改了参考文献的bibtex支持。 + +3,其他冗余代码的删除和清理。 + 2017年9月13日更新说明: 1. 去掉正文的页眉信息。 diff --git a/example.bib b/example.bib new file mode 100644 index 0000000..7826c3d --- /dev/null +++ b/example.bib @@ -0,0 +1,39 @@ +@book{mittelbach_latex_2004, + author = {Mittelbach, Frank and Goossens, Michel and Braams, Johannes and Carlisle, David and Rowley, Chris}, + title = {The {\LaTeX} Companion}, + edition = {2}, + address = {Reading, MA, USA}, + publisher = {Addison-Wesley}, + pages = {107--109}, + year = {2004} +} + +@article{wright_latex3_2009, + author = {Wright, Joseph}, + title = {{\LaTeX}3 programming: External perspective}, + journal = {TUGboat}, + volume = {30}, + number = {1}, + pages = {107--109}, + year = {2009}, + urldate = {2018-07-21}, + url = {http://tug.org/TUGboat/tb30-1/tb94wright-latex3.pdf}, +} + +@online{beeton_unicode_2008, + author = {Beeton, Barbara and Freytag, Asmus and Sargent III, Murray}, + title = {Unicode support for mathematics}, + url = {http://www.unicode.org/reports/tr25/}, + urldate = {2018-07-21}, + institution = {Unicode, Inc.}, + year = {2008}, +} + +@inproceedings{vieth_experiences_2009, + author = {Vieth, Ulrik}, + title = {Experiences typesetting mathematical physics}, + booktitle = {Proceedings of EuroTeX}, + year = {2009}, + pages = {13}, + url = {http://tug.org/TUGboat/tb30-3/tb96vieth.pdf}, +} diff --git a/example.pdf b/example.pdf index 72ef63a..6806a87 100644 Binary files a/example.pdf and b/example.pdf differ diff --git a/example.tex b/example.tex index 6154025..95b7dc1 100644 --- a/example.tex +++ b/example.tex @@ -2,27 +2,28 @@ %!TEX program = xelatex \documentclass[bwprint]{gmcmthesis} -% \documentclass[withoutpreface,bwprint]{cumcmthesis} -% 去掉封面与编号页 \title{全国研究生数学建模竞赛论文标题} -\tihao{A} \baominghao{4321} %参赛队号 \schoolname{XX大学}%学校名称 \membera{小米} %队员A \memberb{向左} %队员B \memberc{哈哈} %队员C \begin{document} + + %生成标题 \maketitle - \begin{abstract} - 本模板是为全国研究生数学建模竞赛编写的 \LaTeX{} 模板, 旨在让大家专注于 + + %填写摘要 +\begin{abstract} +本模板是为全国研究生数学建模竞赛编写的 \LaTeX{} 模板, 旨在让大家专注于 论文的内容写作, 而不用花费过多精力在格式的定制和调整上. 本手册是相应的参考, 其 中提供了一些环境和命令可以让模板的使用更为方便. 同时需要注意, 使用者需要有一 定的 \LaTeX{} 的使用经验, 至少要会使用 ctex 宏包的一些功能, 比如调节字距或修改字体 大小等等. -另外, 欢迎大家购买我们是视频教程,点击\href{https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-3473795048.4.ThFQCG&id=43823508044}{这里}. +另外, 欢迎大家购买我们是视频教程,点击\href{https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-3473795048.4.ThFQCG&id=43823508044}{\fbox{这里}}。 欢迎大家到QQ群里沟通交流:91940767. @@ -35,6 +36,10 @@ \end{abstract} \pagestyle{plain} + +%目录 不推荐加 +\tableofcontents + \section{问题重述} \subsection{引言} @@ -43,6 +48,8 @@ \subsection{引言} \subsection{问题的提出} +\subsubsection{问题的提出内容一} + 围绕创意平板折叠桌的动态变化过程、设计加工参数,本文依次提出如下问题: (1)给定长方形平板尺寸 ($120 cm \times 50 cm \times 3 cm$),每根木条宽度(2.5 cm),连接桌腿木条的钢筋的位置,折叠后桌子的高度(53 cm)。要求建立模型描述此折叠桌的动态变化过程,并在此基础上给出此折叠桌的设计加工参数和桌脚边缘线的数学描述。 @@ -87,26 +94,33 @@ \subsection{问题一分析} \subsection{问题二分析} 题目要求从折叠桌的稳固性好、加工方便、用材最少三个角度,确定设计加工参数。我们可以从应力、支撑面积考虑稳固性,从开槽长度考虑加工方便,从木板长度考虑用材最少。而它们之间又是相互制约,我们需要确定最优设计加工参数,可以建立非线性规划模型,用lingo软件来求解最优设计加工参数(平板尺寸、钢筋位置、开槽长度等),这里以合力的方向(斜向上)与最长木条(桌腿)的夹角方向最小为目标函数,以木条所承受应力小于木条的许用应力、支撑面积大于桌面面积、木条的开槽长度小于木条本身长为约束条件。 - -\subsection{问题三分析} -题目要求制作软件的意思就是客户给定折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,将这些信息输入程序就得到客户想要的桌子。我们在求解最优设计加工参数时,自行给定桌面边缘线形状(椭圆、相交圆等),桌脚边缘线形状,折叠桌高度,应用第二问的非线性规划模型,用MATLAB软件绘制折叠桌截面图,得到自己设计的创意平板折叠桌。 - -问题三流程图: \begin{figure}[!h] \centering -\includegraphics[width=\textwidth]{1.png} +\includegraphics[width=.7\textwidth]{1.png} \caption{问题三流程图} \end{figure} +\subsection{问题三分析} +题目要求制作软件的意思就是客户给定折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,将这些信息输入程序就得到客户想要的桌子。我们在求解最优设计加工参数时,自行给定桌面边缘线形状(椭圆、相交圆等),桌脚边缘线形状,折叠桌高度,应用第二问的非线性规划模型,用MATLAB软件绘制折叠桌截面图,得到自己设计的创意平板折叠桌。 + + + +%参考文献 手工录入 +%\begin{thebibliography}{9}%宽度9 +% \bibitem{bib:one} .... +% \bibitem{bib:two} .... +%\end{thebibliography} + +%采用bibtex方案 +\cite{mittelbach_latex_2004,wright_latex3_2009,beeton_unicode_2008,vieth_experiences_2009} + +\bibliographystyle{gmcm} +\bibliography{example} -%参考文献 -\begin{thebibliography}{9}%宽度9 - \bibitem{bib:one} .... - \bibitem{bib:two} .... -\end{thebibliography} \newpage %附录 \appendix +%\setcounter{page}{1} %如果需要可以自行重置页码。 \section{我的 MATLAB 源程序} \begin{lstlisting}[language=Matlab]%设置不同语言即可。 kk=2;[mdd,ndd]=size(dd); diff --git a/figures/logo.jpg b/figures/logo.jpg deleted file mode 100644 index cf0fcd3..0000000 Binary files a/figures/logo.jpg and /dev/null differ diff --git a/figures/logo.pdf b/figures/logo.pdf new file mode 100644 index 0000000..4c80ee6 Binary files /dev/null and b/figures/logo.pdf differ diff --git a/figures/logo2.jpg b/figures/logo2.jpg deleted file mode 100644 index c2ecb2b..0000000 Binary files a/figures/logo2.jpg and /dev/null differ diff --git a/figures/title.pdf b/figures/title.pdf new file mode 100644 index 0000000..161619e Binary files /dev/null and b/figures/title.pdf differ diff --git a/gmcm.bst b/gmcm.bst new file mode 100644 index 0000000..7a3b629 --- /dev/null +++ b/gmcm.bst @@ -0,0 +1,1822 @@ +%% +%% This is file `gbt7714-unsrt.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gbt7714.dtx (with options: `2015,numerical') +%% Version: 2018/08/05 v1.0.9 +%% +%% Copyright (C) 2016-2018 by Zeping Lee +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% https://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% + +INTEGERS { + uppercase.name + max.num.authors + period.between.author.year + sentence.case.title + link.title + show.mark + slash.for.extraction + in.booktitle + italic.jounal + bold.journal.volume + show.missing.address.publisher + show.url + show.doi + show.note +} + +FUNCTION {load.config} +{ + #0 'uppercase.name := + #3 'max.num.authors := + #0 'period.between.author.year := + #0 'sentence.case.title := + #0 'link.title := + #0 'show.mark := + #0 'slash.for.extraction := + #0 'in.booktitle := + #0 'italic.jounal := + #0 'bold.journal.volume := + #0 'show.missing.address.publisher := + #0 'show.url := + #0 'show.doi := + #0 'show.note := +} + +ENTRY + { address + author + booktitle + date + doi + edition + editor + howpublished + institution + journal + key + language + mark + medium + note + number + organization + pages + publisher + school + series + title + translator + url + urldate + volume + year + } + { entry.lang entry.is.electronic entry.numbered } + { label extra.label sort.label short.list entry.mark entry.url } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash } + +INTEGERS { lang.zh lang.ja lang.en lang.ru lang.other } + +INTEGERS { charptr len } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.slash := + #3 'lang.zh := + #4 'lang.ja := + #1 'lang.en := + #2 'lang.ru := + #0 'lang.other := +} + +FUNCTION {bbl.anonymous} +{ entry.lang lang.zh = + { "佚名" } + { "Anon" } + if$ +} + +FUNCTION {bbl.space} +{ entry.lang lang.zh = + { "\ " } + { " " } + if$ +} + +FUNCTION {bbl.et.al} +{ entry.lang lang.zh = + { "等" } + { entry.lang lang.ja = + { "他" } + { entry.lang lang.ru = + { "идр" } + { "et~al." } + if$ + } + if$ + } + if$ +} + +FUNCTION {bbl.colon} { ": " } + +FUNCTION {bbl.wide.space} { "\quad " } + +FUNCTION {bbl.slash} { "//\allowbreak " } + +FUNCTION {bbl.sine.loco} +{ entry.lang lang.zh = + { "[出版地不详]" } + { "[S.l.]" } + if$ +} + +FUNCTION {bbl.sine.nomine} +{ entry.lang lang.zh = + { "[出版者不详]" } + { "[s.n.]" } + if$ +} + +FUNCTION {bbl.sine.loco.sine.nomine} +{ entry.lang lang.zh = + { "[出版地不详: 出版者不详]" } + { "[S.l.: s.n.]" } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.slash = + { bbl.slash * write$ + newline$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.after} +{ 't := + duplicate$ empty$ + 'pop$ + { 's := + output.state mid.sentence = + { t * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.slash = + { bbl.slash * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s + } + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { output.state after.slash = + 'skip$ + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { output.state after.slash = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ + } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { slash.for.extraction + { after.slash 'output.state := } + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {italicize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} + +INTEGERS { byte second.byte } + +INTEGERS { char.lang tmp.lang } + +STRINGS { tmp.str } + +FUNCTION {get.str.lang} +{ 'tmp.str := + lang.other 'tmp.lang := + #1 'charptr := + tmp.str text.length$ #1 + 'len := + { charptr len < } + { tmp.str charptr #1 substring$ chr.to.int$ 'byte := + byte #128 < + { charptr #1 + 'charptr := + byte #64 > byte #91 < and byte #96 > byte #123 < and or + { lang.en 'char.lang := } + { lang.other 'char.lang := } + if$ + } + { tmp.str charptr #1 + #1 substring$ chr.to.int$ 'second.byte := + byte #224 < + { charptr #2 + 'charptr := + byte #207 > byte #212 < and + byte #212 = second.byte #176 < and or + { lang.ru 'char.lang := } + { lang.other 'char.lang := } + if$ + } + { byte #240 < + { charptr #3 + 'charptr := + byte #227 > byte #234 < and + { lang.zh 'char.lang := } + { byte #227 = + { second.byte #143 > + { lang.zh 'char.lang := } + { second.byte #128 > second.byte #132 < and + { lang.ja 'char.lang := } + { lang.other 'char.lang := } + if$ + } + if$ + } + { byte #239 = + second.byte #163 > second.byte #172 < and and + { lang.zh 'char.lang := } + { lang.other 'char.lang := } + if$ + } + if$ + } + if$ + } + { charptr #4 + 'charptr := + byte #240 = second.byte #159 > and + { lang.zh 'char.lang := } + { lang.other 'char.lang := } + if$ + } + if$ + } + if$ + } + if$ + char.lang tmp.lang > + { char.lang 'tmp.lang := } + 'skip$ + if$ + } + while$ + tmp.lang +} + +FUNCTION {check.entry.lang} +{ author field.or.null + title field.or.null * + get.str.lang +} + +FUNCTION {set.entry.lang} +{ language empty$ + { check.entry.lang } + { language "english" = language "american" = or language "british" = or + { lang.en } + { language "chinese" = + { lang.zh } + { language "japanese" = + { lang.ja } + { language "russian" = + { lang.ru } + { check.entry.lang } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + 'entry.lang := +} + +FUNCTION {set.entry.numbered} +{ type$ "patent" = + type$ "standard" = or + type$ "techreport" = or + { #1 'entry.numbered := } + { #0 'entry.numbered := } + if$ +} + +INTEGERS { nameptr namesleft numnames name.lang } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr max.num.authors > + { bbl.et.al + #1 'namesleft := + } + { t "others" = + { bbl.et.al } + { t get.str.lang 'name.lang := + name.lang lang.en = + { t #1 "{vv~}{ll}{~f{~}}" format.name$ + uppercase.name + { "u" change.case$ } + 'skip$ + if$ + t #1 "{, jj}" format.name$ * + } + { t #1 "{ll}{ff}" format.name$ } + if$ + } + if$ + } + if$ + nameptr #1 > + { ", " swap$ * * } + 'skip$ + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ not + { author format.names } + { "empty author in " cite$ * warning$ + "" + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names } + if$ +} + +FUNCTION {format.translators} +{ translator empty$ + { "" } + { translator format.names + entry.lang lang.zh = + { translator num.names$ #3 > + { "译" * } + { ", 译" * } + if$ + } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + t get.str.lang 'name.lang := + name.lang lang.en = + { t #1 "{vv~}{ll}" format.name$ 't := } + { t #1 "{ll}{ff}" format.name$ 't := } + if$ + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "collection" = + type$ "proceedings" = + or + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {change.sentence.case} +{ entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ +} + +FUNCTION {add.link} +{ url empty$ not + { "\href{" url * "}{" * swap$ * "}" * } + { doi empty$ not + { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered number empty$ not and + { bbl.colon * number * } + 'skip$ + if$ + link.title + 'add.link + 'skip$ + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {is.digit} +{ duplicate$ empty$ + { pop$ #0 } + { chr.to.int$ + duplicate$ "0" chr.to.int$ < + { pop$ #0 } + { "9" chr.to.int$ > + { #0 } + { #1 } + if$ + } + if$ + } + if$ +} + +FUNCTION {is.number} +{ 's := + s empty$ + { #0 } + { s text.length$ 'charptr := + { charptr #0 > + s charptr #1 substring$ is.digit + and + } + { charptr #1 - 'charptr := } + while$ + charptr not + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ not + { volume is.number + { entry.lang lang.zh = + { "第 " volume * " 卷" * } + { "volume" volume tie.or.space.connect } + if$ + } + { volume } + if$ + } + { "" } + if$ +} + +FUNCTION {format.number} +{ number empty$ not + { number is.number + { entry.lang lang.zh = + { "第 " number * " 册" * } + { "number" number tie.or.space.connect } + if$ + } + { number } + if$ + } + { "" } + if$ +} + +FUNCTION {format.volume.number} +{ volume empty$ not + { format.volume } + { format.number } + if$ +} + +FUNCTION {format.title.vol.num} +{ title + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered + { number empty$ not + { bbl.colon * number * } + 'skip$ + if$ + } + { format.volume.number 's := + s empty$ not + { bbl.colon * s * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.series.vol.num.title} +{ format.volume.number 's := + series empty$ not + { series + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered + { bbl.wide.space * } + { bbl.colon * + s empty$ not + { s * bbl.wide.space * } + 'skip$ + if$ + } + if$ + title * + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered number empty$ not and + { bbl.colon * number * } + 'skip$ + if$ + } + { format.title.vol.num } + if$ + link.title + 'add.link + 'skip$ + if$ +} + +FUNCTION {format.booktitle.vol.num} +{ booktitle + entry.numbered + 'skip$ + { format.volume.number 's := + s empty$ not + { bbl.colon * s * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.series.vol.num.booktitle} +{ format.volume.number 's := + series empty$ not + { series bbl.colon * + entry.numbered + { bbl.colon * } + { s empty$ not and + { s * bbl.wide.space * } + { bbl.colon * } + if$ + } + booktitle * + } + { format.booktitle.vol.num } + if$ + in.booktitle + { duplicate$ empty$ not entry.lang lang.en = and + { "In: " swap$ * } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {format.journal} +{ journal + italic.jounal + 'italicize + 'skip$ + if$ +} + +FUNCTION {set.entry.mark} +{ entry.mark empty$ not + 'pop$ + { mark empty$ not + { pop$ mark 'entry.mark := } + { 'entry.mark := } + if$ + } + if$ +} + +FUNCTION {format.mark} +{ show.mark + { medium empty$ not + { entry.mark "/" * medium * 'entry.mark := } + { entry.is.electronic + { entry.mark "/OL" * 'entry.mark := } + 'skip$ + if$ + } + if$ + "\allowbreak[" entry.mark * "]" * + } + { "" } + if$ +} + +FUNCTION {num.to.ordinal} +{ duplicate$ text.length$ 'charptr := + duplicate$ charptr #1 substring$ 's := + s "1" = + { "st" * } + { s "2" = + { "nd" * } + { s "3" = + { "rd" * } + { "th" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition is.number + { entry.lang lang.zh = + { edition " 版" * } + { edition num.to.ordinal " ed." * } + if$ + } + { entry.lang lang.en = + { edition change.sentence.case 's := + s "Revised" = s "Revised edition" = or + { "Rev. ed." } + { s " ed." *} + if$ + } + { edition } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher} +{ publisher empty$ not + { publisher } + { school empty$ not + { school } + { organization empty$ not + { organization } + { institution empty$ not + { institution } + { "" } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.address.publisher} +{ address empty$ not + { address + format.publisher empty$ not + { bbl.colon * format.publisher * } + { entry.is.electronic not show.missing.address.publisher and + { bbl.colon * bbl.sine.nomine * } + 'skip$ + if$ + } + if$ + } + { entry.is.electronic not show.missing.address.publisher and + { format.publisher empty$ not + { bbl.sine.loco bbl.colon * format.publisher * } + { bbl.sine.loco.sine.nomine } + if$ + } + { format.publisher empty$ not + { format.publisher } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {extract.before.dash} +{ duplicate$ empty$ + { pop$ "" } + { 's := + #1 'charptr := + s text.length$ #1 + 'len := + { charptr len < + s charptr #1 substring$ "-" = not + and + } + { charptr #1 + 'charptr := } + while$ + s #1 charptr #1 - substring$ + } + if$ +} + +FUNCTION {extract.after.dash} +{ duplicate$ empty$ + { pop$ "" } + { 's := + #1 'charptr := + s text.length$ #1 + 'len := + { charptr len < + s charptr #1 substring$ "-" = not + and + } + { charptr #1 + 'charptr := } + while$ + { charptr len < + s charptr #1 substring$ "-" = + and + } + { charptr #1 + 'charptr := } + while$ + s charptr global.max$ substring$ + } + if$ +} + +FUNCTION {contains.dash} +{ duplicate$ empty$ + { pop$ #0 } + { 's := + { s empty$ not + s #1 #1 substring$ "-" = not + and + } + { s #2 global.max$ substring$ 's := } + while$ + s empty$ not + } + if$ +} + +FUNCTION {format.year} +{ year empty$ not + { year extract.before.dash } + { date empty$ not + { date extract.before.dash } + { "empty year in " cite$ * warning$ + urldate empty$ not + { "[" urldate extract.before.dash * "]" * } + { "" } + if$ + } + if$ + } + if$ + extra.label * +} + +FUNCTION {format.date} +{ type$ "patent" = type$ "newspaper" = or + date empty$ not and + { date } + { year } + if$ +} + +FUNCTION {format.editdate} +{ date empty$ not + { "\allowbreak(" date * ")" * } + { "" } + if$ +} + +FUNCTION {format.urldate} +{ urldate empty$ not entry.is.electronic and + { urldate } + { "" } + if$ +} + +FUNCTION {hyphenate} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "-" * + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages hyphenate } + if$ +} + +FUNCTION {format.journal.volume} +{ volume empty$ not + { bold.journal.volume + { "\textbf{" volume * "}" * } + { volume } + if$ + } + { "" } + if$ +} + +FUNCTION {format.journal.number} +{ number empty$ not + { "\penalty0 (" number * ")" * } + { "" } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + { "" } + { ":\penalty0 " pages hyphenate * } + if$ +} + +FUNCTION {format.periodical.year.volume.number} +{ year empty$ not + { year extract.before.dash } + { "empty year in periodical " cite$ * warning$ } + if$ + volume empty$ not + { ", " * volume extract.before.dash * } + 'skip$ + if$ + number empty$ not + { "\penalty0 (" * number extract.before.dash * ")" * } + 'skip$ + if$ + year contains.dash + { "--" * + year extract.after.dash empty$ + volume extract.after.dash empty$ and + number extract.after.dash empty$ and not + { year extract.after.dash empty$ not + { year extract.after.dash * } + { year extract.before.dash * } + if$ + volume empty$ not + { ", " * volume extract.after.dash * } + 'skip$ + if$ + number empty$ not + { "\penalty0 (" * number extract.after.dash * ")" * } + 'skip$ + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {check.url} +{ url empty$ not + { "\url{" url * "}" * 'entry.url := + #1 'entry.is.electronic := + } + { howpublished empty$ not + { howpublished #1 #5 substring$ "\url{" = + { howpublished 'entry.url := + #1 'entry.is.electronic := + } + 'skip$ + if$ + } + { note empty$ not + { note #1 #5 substring$ "\url{" = + { note 'entry.url := + #1 'entry.is.electronic := + } + 'skip$ + if$ + } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.url} +{ entry.url empty$ not + { new.block entry.url } + { "" } + if$ +} + +FUNCTION {check.doi} +{ doi empty$ not + { #1 'entry.is.electronic := } + 'skip$ + if$ +} + +FUNCTION {is.in.url} +{ 's := + s empty$ + { #1 } + { entry.url empty$ + { #0 } + { s text.length$ 'len := + entry.url text.length$ 'charptr := + { entry.url charptr len substring$ s = not + charptr #0 > + and + } + { charptr #1 - 'charptr := } + while$ + charptr + } + if$ + } + if$ +} + +FUNCTION {format.doi} +{ "" + doi empty$ not show.doi and + { "" 's := + doi 't := + #0 'numnames := + { t empty$ not} + { t #1 #1 substring$ 'tmp.str := + tmp.str "," = tmp.str " " = or t #2 #1 substring$ empty$ or + { t #2 #1 substring$ empty$ + { s tmp.str * 's := } + 'skip$ + if$ + s empty$ s is.in.url or + 'skip$ + { numnames #1 + 'numnames := + numnames #1 > + { ", " * } + { "DOI: " * } + if$ + "\doi{" s * "}" * * + } + if$ + "" 's := + } + { s tmp.str * 's := } + if$ + t #2 global.max$ substring$ 't := + } + while$ + 's := + s empty$ not + { new.block s } + { "" } + if$ + } + 'skip$ + if$ +} + +FUNCTION {check.electronic} +{ "" 'entry.url := + #0 'entry.is.electronic := + 'check.doi + 'skip$ + if$ + 'check.url + 'skip$ + if$ + medium empty$ not + { medium "MT" = medium "DK" = or medium "CD" = or medium "OL" = or + { #1 'entry.is.electronic := } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {format.note} +{ note empty$ not show.note and + { note } + { "" } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ + year empty$ + and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {monograph} +{ output.bibitem + author empty$ not + { format.authors } + { editor empty$ not + { format.editors } + { "empty author and editor in " cite$ * warning$ + "" + } + if$ + } + if$ + output + new.block + format.series.vol.num.title "title" output.check + "M" set.entry.mark + format.mark "" output.after + new.block + format.translators output + new.sentence + format.edition output + new.block + format.address.publisher output + format.pages output + format.year "year" output.check + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + "M" set.entry.mark + format.mark "" output.after + new.block + format.translators output + new.slash + format.editors output + new.block + format.series.vol.num.booktitle "booktitle" output.check + new.block + format.edition output + new.block + format.address.publisher output + format.pages output + format.year "year" output.check + fin.entry +} + +FUNCTION {periodical} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + format.periodical.year.volume.number output + new.block + format.address.publisher output + format.date "year" output.check + fin.entry +} + +FUNCTION {article} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + format.journal "journal" output.check + format.journal.volume output + format.journal.number "" output.after + format.journal.pages "" output.after + format.year "year" output.check + fin.entry +} + +FUNCTION {patent} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + "P" set.entry.mark + format.mark "" output.after + new.block + format.date "year" output.check + format.urldate "" output.after + format.url output + format.doi output + new.block + format.note output + fin.entry +} + +FUNCTION {electronic} +{ #1 #1 check.electronic + #1 'entry.is.electronic := + output.bibitem + format.authors output + author format.key output + new.block + format.series.vol.num.title "title" output.check + "EB" set.entry.mark + format.mark "" output.after + new.block + format.url output + format.urldate output + fin.entry +} + +FUNCTION {misc} +{ journal empty$ not + 'article + { booktitle empty$ not + 'incollection + { publisher empty$ not + 'monograph + { entry.is.electronic + 'electronic + { "Z" set.entry.mark + monograph + } + if$ + } + if$ + } + if$ + } + if$ + empty.misc.check +} + +FUNCTION {archive} +{ "A" set.entry.mark + misc +} + +FUNCTION {book} { monograph } + +FUNCTION {booklet} { book } + +FUNCTION {collection} +{ "G" set.entry.mark + monograph +} + +FUNCTION {database} +{ "DB" set.entry.mark + electronic +} + +FUNCTION {dataset} +{ "DS" set.entry.mark + electronic +} + +FUNCTION {inbook} { book } + +FUNCTION {inproceedings} +{ "C" set.entry.mark + incollection +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {map} +{ "CM" set.entry.mark + misc +} + +FUNCTION {manual} { monograph } + +FUNCTION {mastersthesis} +{ "D" set.entry.mark + monograph +} + +FUNCTION {newspaper} +{ "N" set.entry.mark + article +} + +FUNCTION {online} +{ "EB" set.entry.mark + electronic +} + +FUNCTION {phdthesis} { mastersthesis } + +FUNCTION {proceedings} +{ "C" set.entry.mark + monograph +} + +FUNCTION {software} +{ "CP" set.entry.mark + electronic +} + +FUNCTION {standard} +{ "S" set.entry.mark + misc +} + +FUNCTION {techreport} +{ "R" set.entry.mark + misc +} + +FUNCTION {unpublished} +{ "Z" set.entry.mark + misc +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + t get.str.lang 'name.lang := + name.lang lang.en = + { t #1 "{vv~}{ll}" format.name$} + { t #1 "{ll}{ff}" format.name$} + if$ + s num.names$ #1 > + { bbl.space * bbl.et.al * } + 'skip$ + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "collection" = + type$ "proceedings" = + or + { editor empty$ not + 'editor.key.organization.label + 'author.key.organization.label + if$ + } + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + format.year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +INTEGERS { seq.num } + +FUNCTION {init.seq} +{ #0 'seq.num :=} + +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} + +FUNCTION {presort} +{ set.entry.lang + set.entry.numbered + show.url show.doi check.electronic + calc.label + label sortify + " " + * + seq.num #1 + 'seq.num := + seq.num int.to.fix + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else" + write$ newline$ + " \urlstyle{same}\fi" + write$ newline$ + show.doi + { "\providecommand{\href}[2]{\url{#2}}" + write$ newline$ + "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}" + write$ newline$ + } + 'skip$ + if$ +} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +READ + +EXECUTE {init.state.consts} + +EXECUTE {load.config} + +EXECUTE {init.seq} + +ITERATE {presort} + +SORT + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +ITERATE {bib.sort.order} + +SORT + +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} diff --git a/gmcmthesis.cls b/gmcmthesis.cls index e453634..3e4178f 100644 --- a/gmcmthesis.cls +++ b/gmcmthesis.cls @@ -1,34 +1,34 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{gmcmthesis} - [2017/09/12 v2.2 update gmcmthesis by latexstudio.net] + [2018/09/11 v2.3 update gmcmthesis by latexstudio.net] %% Inital Code -\newif\if@mcm@bwprint\@mcm@bwprintfalse -\newif\if@mcm@preface\@mcm@prefacetrue +\newif\if@gmcm@bwprint\@gmcm@bwprintfalse +\newif\if@gmcm@preface\@gmcm@prefacetrue % tokens definition %%%% 承诺书 -\newcommand\mcm@tokens@keywords{} -\newcommand*\mcm@tokens@tihao{} -\newcommand*\mcm@tokens@baominghao{} -\newcommand*\mcm@tokens@schoolname{} -\newcommand*\mcm@tokens@membera{} -\newcommand*\mcm@tokens@memberb{} -\newcommand*\mcm@tokens@memberc{} -\newcommand*\mcm@tokens@supervisor{} -\newcommand*\mcm@tokens@yearinput{} -\newcommand*\mcm@tokens@monthinput{} -\newcommand*\mcm@tokens@dayinput{} +\newcommand\gmcm@tokens@keywords{} +\newcommand*\gmcm@tokens@tihao{} +\newcommand*\gmcm@tokens@baominghao{} +\newcommand*\gmcm@tokens@schoolname{} +\newcommand*\gmcm@tokens@membera{} +\newcommand*\gmcm@tokens@memberb{} +\newcommand*\gmcm@tokens@memberc{} +\newcommand*\gmcm@tokens@supervisor{} +\newcommand*\gmcm@tokens@yearinput{} +\newcommand*\gmcm@tokens@monthinput{} +\newcommand*\gmcm@tokens@dayinput{} %%%% 编号专用页 % 没有 %% Declaration of Options -\DeclareOption{colorprint}{\@mcm@bwprintfalse} -\DeclareOption{bwprint}{\@mcm@bwprinttrue} -\DeclareOption{withoutpreface}{\@mcm@prefacefalse} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\DeclareOption{colorprint}{\@gmcm@bwprintfalse} +\DeclareOption{bwprint}{\@gmcm@bwprinttrue} +\DeclareOption{withoutpreface}{\@gmcm@prefacefalse} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ctexart}} %% Executing of Options \ExecuteOptions{colorprint} \ProcessOptions\relax %% Loading Class -\LoadClass[a4paper,12pt]{article} +\LoadClass[a4paper,cs4size]{ctexart} %% Loading Package \RequirePackage{ifxetex} \RequireXeTeX @@ -36,8 +36,6 @@ \ClassError{mcmthesis}{You must use the `xelatex' driver\MessageBreak Please choose `xelatex'}{% Just choose `xelatex', no `pdflatex' or `latex' and so on.} \fi -% 支持中文的 ctex 宏包 -\RequirePackage{ctex} % 页面布局 \RequirePackage{geometry} % 数学宏包 @@ -45,8 +43,6 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} \RequirePackage{amsfonts} \RequirePackage{amssymb} \RequirePackage{bm} -% 设置字体 -\RequirePackage{fontspec} % 设置颜色 \RequirePackage{xcolor} % 插入图片 @@ -101,29 +97,39 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} \RequirePackage{ulem} % 尺寸计算 \RequirePackage{calc} +\RequirePackage{titletoc,url} +%参考文献 +\RequirePackage[numbers]{natbib} +\setlength{\bibsep}{0pt plus 0.3ex} +\RequirePackage{etoolbox} +\AtBeginEnvironment{thebibliography}{% + \phantomsection + \addcontentsline{toc}{section}{\refname} + } % 超链接 hyperref 的设置 \RequirePackage{hyperref} %% Document Layout % 页面布局 -\geometry{top=25.4mm,bottom=25.4mm,left=31.8mm,right=31.8mm,headsep=8mm} +\geometry{top=30.0mm,bottom=25.0mm,left=31.7mm,right=31.7mm,headsep=8mm} \renewcommand*{\baselinestretch}{1.38} % 修改tabular 环境, 设置表格中的行间距为正文行间距. -\let\mcm@oldtabular\tabular -\let\mcm@endoldtabular\endtabular +\let\gmcm@oldtabular\tabular +\let\gmcm@endoldtabular\endtabular \renewenvironment{tabular}% {\bgroup% \renewcommand{\arraystretch}{1.38}% - \mcm@oldtabular}% - {\mcm@endoldtabular\egroup} + \gmcm@oldtabular}% + {\gmcm@endoldtabular\egroup} % 每行缩进两个汉字 \setlength\parindent{2em} % 设置字体 \setmainfont{Times New Roman} \setmonofont{Courier New} \setsansfont{Arial} - +\setCJKmainfont[AutoFakeBold = {2.15},ItalicFont={[simkai.ttf]}]{SimSun} \setCJKfamilyfont{xw}{STXinwei} + % %\setCJKfamilyfont{zhyou}{YouYuan} \ifx\lishu\undefined% @@ -135,24 +141,20 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} \newcommand*{\xinwei}{\CJKfamily{xw}} %\newcommand*{\lishu}{\CJKfamily{zhli}} -\renewcommand\normalsize{% - \@setfontsize\normalsize{12.05}{14.45}% - \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@} + % 数学环境, 定理等设置 -\newtheorem{definition}{\mcm@cap@definition} -\newtheorem{theorem}{\mcm@cap@theorem} -\newtheorem{lemma}{\mcm@cap@lemma} -\newtheorem{corollary}{\mcm@cap@corollary} -\newtheorem{assumption}{\mcm@cap@assumption} -\newtheorem{conjecture}{\mcm@cap@conjecture} -\newtheorem{axiom}{\mcm@cap@axiom} -\newtheorem{principle}{\mcm@cap@principle} -\newtheorem{problem}{\mcm@cap@problem} -\newtheorem{example}{\mcm@cap@example} -\newtheorem{proof}{\mcm@cap@proof} -\newtheorem{solution}{\mcm@cap@solution} +\newtheorem{definition}{\gmcm@cap@definition} +\newtheorem{theorem}{\gmcm@cap@theorem} +\newtheorem{lemma}{\gmcm@cap@lemma} +\newtheorem{corollary}{\gmcm@cap@corollary} +\newtheorem{assumption}{\gmcm@cap@assumption} +\newtheorem{conjecture}{\gmcm@cap@conjecture} +\newtheorem{axiom}{\gmcm@cap@axiom} +\newtheorem{principle}{\gmcm@cap@principle} +\newtheorem{problem}{\gmcm@cap@problem} +\newtheorem{example}{\gmcm@cap@example} +\newtheorem{proof}{\gmcm@cap@proof} +\newtheorem{solution}{\gmcm@cap@solution} % 浮动环境设置 % 默认情况下, \LaTeX{} 要求每页的文字至少占据 20%,否则该页就只单独放置一个浮动环境, @@ -202,20 +204,32 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} } % 超链接 -\AtBeginDocument{% - \hypersetup{% - % unicode=false, % hyperref 和 xetex 同时使用时不能开启 Unicode 选项. - hyperfootnotes=true, - hyperindex=true, - colorlinks=true, - bookmarksnumbered=true, - bookmarksopen=true, - bookmarksopenlevel=0, - breaklinks=true}% -} -\if@mcm@bwprint -\AtBeginDocument{\hypersetup{hidelinks}} -\else\relax\fi +% \AtBeginDocument{% + \hypersetup{% + % % unicode=false, % hyperref 和 xetex 同时使用时不能开启 Unicode 选项. + hyperfootnotes=true, + hyperindex=true, + colorlinks=true, + bookmarksnumbered=true, + bookmarksopen=true, + bookmarksopenlevel=0, + allcolors=black, + breaklinks=true}% +% } +% \if@gmcm@bwprint +% \AtBeginDocument{\hypersetup{hidelinks}} +% \else\relax\fi +\def\UrlAlphabet{% + \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j% + \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t% + \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D% + \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N% + \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X% + \do\Y\do\Z} +\def\UrlDigits{\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0} +\g@addto@macro{\UrlBreaks}{\UrlOrds} +\g@addto@macro{\UrlBreaks}{\UrlAlphabet} +\g@addto@macro{\UrlBreaks}{\UrlDigits} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Document Markup @@ -239,202 +253,78 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} \global\let\date\relax \global\let\and\relax } -\def\@maketitle{% - \newpage - \if@mcm@preface - \null - % 承诺书 - \vskip2ex - \thispagestyle{empty} - {\zihao{4}\mcm@commit@string@headname\\[-3pt] - \noindent\rule{\textwidth-1.34em}{1pt}\par} - \begin{center}% - {\zihao{-3}\bfseries\heiti \mcm@commit@string@titlea \par}% - {\vskip1ex\zihao{3}\bfseries\songti \mcm@commit@string@titleb \par} - \end{center} - {\zihao{-4} \mcm@commit@string@contents \par} - {\vskip1ex\zihao{-4} - \renewcommand{\ULthickness}{0.4pt}\setlength{\ULdepth}{2pt} - \hspace*{2em}\mcm@commit@string@problemnum\uline{\hspace{1em}\mcm@tokens@tihao\hfill}\makebox[0.66em]{}\par - \mcm@commit@string@signupnum\uline{\hspace{1em}\mcm@tokens@baominghao\hfill}\makebox[0.66em]{}\par - \mcm@commit@string@schoolname\uline{\hfill\mcm@tokens@schoolname\hfill}\makebox[0.66em]{}\par - \newlength{\mcm@lenB} - \settowidth{\mcm@lenB}{\mcm@commit@string@membername\hspace{1em}1.} - \setlength{\mcm@lenB}{\textwidth-\mcm@lenB} - % 不这样做右边难以对齐! - \mcm@commit@string@membername - \begin{minipage}[t]{\mcm@lenB} - 1.\uline{\hspace{1em}\mcm@tokens@membera\hfill} \makebox[0.46em]{}\par - 2.\uline{\hspace{1em}\mcm@tokens@memberb\hfill} \makebox[0.46em]{}\par - 3.\uline{\hspace{1em}\mcm@tokens@memberc\hfill} \makebox[0.46em]{}\par - \end{minipage}\par\vskip1ex - \mcm@commit@string@supervisorname\uline{\hspace{1em}\mcm@tokens@supervisor\hfill}\makebox[0.66em]{} - %{\kaishu\mcm@commit@string@inform\par} - \vskip2ex - \newlength{\mcm@lenA} - \settowidth{\mcm@lenA}{请仔细核对,提交后将不再允许做任何修改。如}% 虽然"日期"刚好在"错误"下面, 但注意"日期"还会缩进, 所以要省去"填写""两字 - \hspace*{\mcm@lenA}\mcm@commit@string@date\hspace{0.5em}\uline{\hfill\hspace{1em}\mcm@tokens@yearinput\hspace{1em}\hfill}% - \mcm@commit@string@year\uline{\hfill\mcm@tokens@monthinput\hfill}\mcm@commit@string@month% - \uline{\hfill\mcm@tokens@dayinput\hfill}\mcm@commit@string@day\makebox[1em]{}\par} - \vskip1ex - {\kaishu\bfseries\mcm@commit@string@inform\par} - \vfill - \null -% 编号专用页 - \else - \fi - \makeothertitle - } \def\ge@maketitle{% \newpage - \if@mcm@preface - \null\hfill {\lishu 参赛密码 \uline{\quad \qquad\qquad\qquad }}\\ - \null\hfill { \lishu(由组委会填写)} - \vskip1cm - + \if@gmcm@preface + \setcounter{page}{0} + \def\thepage{0} + \thispagestyle{empty}% \begin{center} -{\includegraphics[width=4cm]{logo}} - \vskip.5\baselineskip + {\includegraphics{logo}} - {\xinwei\zihao{2} \mcm@ges@string@contents \par} + \vskip2.75cm + {\xinwei\zihao{2} \gmcm@ges@string@contents \par} \end{center} - \vskip4em + \vskip2em - \thispagestyle{gmcmheadings} - \renewcommand\arraystretch{1.2} + % \thispagestyle{gmcmheadings} + \renewcommand\arraystretch{1.3} \noindent \begin{tabularx}{\textwidth}{lX} - \zihao{3}\heiti 学\qquad 校&\zihao{3}\heiti\mcm@tokens@schoolname\\ - \hline\\ - \heiti\zihao{3} 参赛队号&\zihao{3}\heiti\mcm@tokens@baominghao\\ - \hline - \multirow{3}{*}{\zihao{3}\heiti 队员姓名}&\zihao{3}\heiti 1. \mcm@tokens@membera\hfill\null\\ - \cline{2-2} - &\zihao{3}\heiti2. \mcm@tokens@memberb\hfill\null\\ - \cline{2-2} - &\zihao{3}\heiti3. \mcm@tokens@memberc\hfill\null\\ - \cline{2-2} + \zihao{-2}\bfseries 学\qquad 校&\zihao{-2}\bfseries\gmcm@tokens@schoolname\\ + \hline\\[-15pt] + \zihao{-2}\bfseries 参赛队号&\zihao{-2}\bfseries\gmcm@tokens@baominghao\\ + \hline\\[-15pt] + \multirow{3}{*}{\zihao{-2}\bfseries 队员姓名}&\zihao{-2}\bfseries 1. \gmcm@tokens@membera\hfill\null\\ + \cline{2-2}\\[-15pt] + &\zihao{-2}\bfseries 2. \gmcm@tokens@memberb\hfill\null\\ + \cline{2-2}\\[-15pt] + &\zihao{-2}\bfseries 3. \gmcm@tokens@memberc\hfill\null\\ \hline \end{tabularx} - \makenametitle } \def\makenametitle{ -\newpage%\setcounter{page}{1} - \null\hfill {\lishu 参赛密码 \uline{\quad \qquad\qquad\qquad }}\\ - \null\hfill { \lishu(由组委会填写)} -\vskip1cm +\newpage +\setcounter{page}{1} +\vspace*{2.3cm} \begin{center} -{\includegraphics[width=4cm]{logo}} +%{\includegraphics[width=4cm]{logo}} \vskip.5\baselineskip% -{\xinwei\zihao{2} \mcm@ges@string@contents \par} +{\xinwei\zihao{2} \gmcm@ges@string@contents \par} \end{center} - -\begin{center}\begin{tabularx}{.8\textwidth}{lX} -{\zihao{3}\heiti 题\qquad 目} &\hfill\zihao{-3}\heiti \@title\hfill\null\\ + +\vskip1.6cm% + +\begin{center}\begin{tabularx}{.95\textwidth}{@{}lX@{}} +{\zihao{4} 题\qquad 目} &\hfill\zihao{3}\heiti \@title\hfill\null\\ \cline{2-2} \end{tabularx} \end{center} } -\def\ps@gmcmheadings{ -\def\@oddfoot{\hfil\rm\zihao{-5}\songti\thepage\hfil}% -\let\@evenfoot\@oddfoot% - \def\@evenhead{\vbox{% - \vskip 3.2mm% - \hbox to \textwidth {\hfill\small\heiti “华为杯”第十四届中国研究生数学建模竞赛\qquad \smash{\includegraphics{logo2}} \hfill}% - \vskip 1.5mm% - \hrule width\textwidth height0.12 true mm\vskip0.85pt% - }% - } - \let\@oddhead\@evenhead% -} - -%% 定义 编号专用页 -\def\makeothertitle{% - \if@mcm@preface - \par -\newpage -\null -\thispagestyle{empty} -{\zihao{4}\mcm@numberpage@string@headname\\[-5pt] - \noindent\hspace*{0.67em}\rule{\textwidth-1.33em}{1pt}\par} -\begin{center} -{\zihao{4}\bfseries\heiti \mcm@numberpage@string@titlea\par} -{\vskip1ex\zihao{3}\bfseries\songti \mcm@numberpage@string@titleb\par} -\end{center}\par -{% -\zihao{4} -\vskip3em -\hspace*{2em}\mcm@numberpage@string@appraiselog -\par -\newlength{\mcm@lenC} -\setlength{\mcm@lenC}{\textwidth-8.72em} -\setlength{\mcm@lenC}{\mcm@lenC/6} -\newlength{\mcm@lenD} -\settoheight{\mcm@lenD}{\mcm@numberpage@string@reviewer} -\setlength{\mcm@lenD}{\mcm@lenD+2em} -\newlength{\mcm@lenF} -\settoheight{\mcm@lenF}{\mcm@numberpage@string@remarks} -\setlength{\mcm@lenF}{\mcm@lenF+2em} -\newcolumntype{P}{@{}p{\mcm@lenC}@{}} -\hspace*{1.5em}\begin{tabular}{|!{\hspace{4pt}}c!{\hspace{4pt}}|*{6}{P|}} - \hline - \rule{0pt}{\mcm@lenD}\raisebox{0.6em}[0pt][0pt]{\mcm@numberpage@string@reviewer} & & & & & & \\\cline{1-7} - \rule{0pt}{\mcm@lenF}\raisebox{0.6em}[0pt][0pt]{\mcm@numberpage@string@remarks} & & & & & & \\ - \hline -\end{tabular}\par -\vskip5em -\hspace*{2em}\mcm@numberpage@string@unifiednum -\vskip7em -\hspace*{2em}\mcm@numberpage@string@countrynum} -\vskip7em -{\zihao{-4}\kaishu\bfseries\mcm@numberpage@string@inform\par} -\vfill -\null -\newpage -\null -\setcounter{page}{1} -{\centering \zihao{3}\bfseries \@title\par} -\vskip1ex -\else -\setcounter{page}{1} -{\centering \zihao{3}\bfseries \@title\par} -\vskip1ex -\fi -} - -% 中文标题名称设置 -\renewcommand\contentsname{\mcm@cap@contentsname} -\renewcommand\listfigurename{\mcm@cap@listfigurename} -\renewcommand\listtablename{\mcm@cap@listtablename} -\renewcommand\refname{\mcm@cap@refname} -\renewcommand\indexname{\mcm@cap@indexname} -\renewcommand\figurename{\mcm@cap@figurename} -\renewcommand\tablename{\mcm@cap@tablename} -\renewcommand\appendixname{\mcm@cap@appendixname} -\renewcommand\abstractname{\mcm@cap@abstractname} % 中文标题格式设置 % 目录深度 -\setcounter{secnumdepth}{2} +\setcounter{secnumdepth}{3} +\def\@seccntformat#1{\csname the#1\endcsname\ \ } % 节标题格式, 居中, 使用\chinese命令修改计数器, \kern 使得数字和内容不至于太远 \renewcommand\thesection{\arabic{section}.} \renewcommand\thesubsection{\arabic{section}\thinspace.\thinspace\arabic{subsection}} \renewcommand\thesubsubsection{\thesubsection\thinspace.\thinspace\arabic{subsubsection}} \renewcommand\section{\@startsection{section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% - {\centering\normalfont\Large\bfseries}} + {\bfseries\centering\zihao{4}\heiti}} \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% {1.25ex\@plus -1ex \@minus -.2ex}% {1.25ex \@plus .2ex}% - {\normalfont\large\bfseries}} + {\normalfont\normalsize\bfseries}} \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {1.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% + {1.2ex \@plus .2ex}% {\normalfont\normalsize\bfseries}} \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {3.25ex \@plus1ex \@minus.2ex}% @@ -454,7 +344,7 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} \section*{\abstractname}% \else \begin{center}% - {\zihao{2}\lishu\abstractname\vspace{\z@}}% + {\zihao{3}\lishu\abstractname\vspace{\z@}}% \end{center}% \quotation \fi} @@ -469,139 +359,68 @@ Just choose `xelatex', no `pdflatex' or `latex' and so on.} {\endlist} \newcommand\keywords[1]{% - \renewcommand{\mcm@tokens@keywords}{#1} + \renewcommand{\gmcm@tokens@keywords}{#1} \par \vskip1ex - {\noindent\zihao{-4}\heiti\mcm@cap@keywordsname:}~{\mcm@tokens@keywords} + {\noindent\zihao{-4}\heiti\gmcm@cap@keywordsname:}~{\gmcm@tokens@keywords} } % 定义附录 \renewcommand\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\appendixname\@Alph\c@section}} -% 重定义参考文献环境 -\renewenvironment{thebibliography}[1] - {\section{\refname}% - \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \sloppy - \clubpenalty4000 - \@clubpenalty \clubpenalty - \widowpenalty4000% - \sfcode`\.\@m} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \endlist} - -\newcommand*\tihao[1]{% - \renewcommand{\mcm@tokens@tihao}{#1}} + \newcommand*\baominghao[1]{% - \renewcommand{\mcm@tokens@baominghao}{#1}} + \renewcommand{\gmcm@tokens@baominghao}{#1}} \newcommand*\schoolname[1]{% - \renewcommand{\mcm@tokens@schoolname}{#1}} + \renewcommand{\gmcm@tokens@schoolname}{#1}} \newcommand*\membera[1]{% - \renewcommand{\mcm@tokens@membera}{#1}} + \renewcommand{\gmcm@tokens@membera}{#1}} \newcommand*\memberb[1]{% - \renewcommand{\mcm@tokens@memberb}{#1}} + \renewcommand{\gmcm@tokens@memberb}{#1}} \newcommand*\memberc[1]{% - \renewcommand{\mcm@tokens@memberc}{#1}} -\newcommand*\supervisor[1]{% - \renewcommand{\mcm@tokens@supervisor}{#1}} -\newcommand*\yearinput[1]{% - \renewcommand{\mcm@tokens@yearinput}{#1}} -\newcommand*\monthinput[1]{% - \renewcommand{\mcm@tokens@monthinput}{#1}} -\newcommand*\dayinput[1]{% - \renewcommand{\mcm@tokens@dayinput}{#1}} + \renewcommand{\gmcm@tokens@memberc}{#1}} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Initialization %%%数学定理相关的常量 -\newcommand*{\mcm@cap@definition}{定义} -\newcommand*{\mcm@cap@theorem}{定理} -\newcommand*{\mcm@cap@lemma}{引理} -\newcommand*{\mcm@cap@corollary}{推论} -\newcommand*{\mcm@cap@assumption}{假设} -\newcommand*{\mcm@cap@conjecture}{猜想} -\newcommand*{\mcm@cap@axiom}{公理} -\newcommand*{\mcm@cap@principle}{定律} -\newcommand*{\mcm@cap@problem}{问题} -\newcommand*{\mcm@cap@example}{例} -\newcommand*{\mcm@cap@proof}{证明} -\newcommand*{\mcm@cap@solution}{解} +\newcommand*{\gmcm@cap@definition}{定义} +\newcommand*{\gmcm@cap@theorem}{定理} +\newcommand*{\gmcm@cap@lemma}{引理} +\newcommand*{\gmcm@cap@corollary}{推论} +\newcommand*{\gmcm@cap@assumption}{假设} +\newcommand*{\gmcm@cap@conjecture}{猜想} +\newcommand*{\gmcm@cap@axiom}{公理} +\newcommand*{\gmcm@cap@principle}{定律} +\newcommand*{\gmcm@cap@problem}{问题} +\newcommand*{\gmcm@cap@example}{例} +\newcommand*{\gmcm@cap@proof}{证明} +\newcommand*{\gmcm@cap@solution}{解} %%% 中文标题名称 -\newcommand*{\mcm@cap@contentsname}{目录} -\newcommand*{\mcm@cap@listfigurename}{插图清单} -\newcommand*{\mcm@cap@listtablename}{附表清单} -\newcommand*{\mcm@cap@refname}{参考文献} -\newcommand*{\mcm@cap@indexname}{索引} -\newcommand*{\mcm@cap@figurename}{图} -\newcommand*{\mcm@cap@tablename}{表} -\newcommand*{\mcm@cap@appendixname}{附录} -\newcommand*{\mcm@cap@abstractname}{摘\qquad 要: } +\newcommand*{\gmcm@cap@abstractname}{摘\qquad\quad 要: } %%% 中文关键字 -\newcommand*{\mcm@cap@keywordsname}{关键字} +\newcommand*{\gmcm@cap@keywordsname}{关键字} - %%% 承诺书中的常量 -\newcommand*\mcm@commit@string@headname{赛区评阅编号(由赛区组委会填写):} -\newcommand*\mcm@commit@string@titlea{\the\year 高教社杯全国大学生数学建模竞赛} -\newcommand*\mcm@commit@string@titleb{承\hspace{1em}诺\hspace{1em}书} -\newcommand\mcm@ges@string@contents{“华为杯”第十四届全国研究生\par 数学建模竞赛} -\newcommand\mcm@commit@string@contents{\quotation - 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》% -\hspace*{-0.6em}(以下简称为“竞赛章程和参赛规则”,\hspace{-0.2em}可从全国大学生数学建模竞赛网站下载)。 + %%%常量 -我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)% -与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 +%\newcommand\gmcm@ges@string@contents{“华为杯”第十五届全国研究生\par 数学建模竞赛} +\newcommand\gmcm@ges@string@contents{\includegraphics{title}} - 我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料% -(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 -我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。% -如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。 + - 我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示% -(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。 -\endquotation -} -\newcommand*\mcm@commit@string@problemnum{我们参赛选择的题号(从A/B/C/D中选择一项填写):} -\newcommand*\mcm@commit@string@signupnum{我们的报名参赛队号(12位数字全国统一编号):} -\newcommand*\mcm@commit@string@schoolname{参赛学校(完整的学校全称,不含院系名):} -\newcommand*\mcm@commit@string@membername{参赛队员 (打印并签名) :} -\newcommand*\mcm@commit@string@supervisorname{指导教师或指导教师组负责人 (打印并签名):} -\newcommand\mcm@commit@string@inform{\quotation -\noindent(此承诺书打印签名后作为纸质论文的封面,注意电子版论文中不得出现此页。% -以上内容请仔细核对,如填写错误,论文可能被取消评奖资格。) -\endquotation -} -\newcommand*\mcm@commit@string@date{日期:} -\newcommand*\mcm@commit@string@year{年} -\newcommand*\mcm@commit@string@month{月} -\newcommand*\mcm@commit@string@day{日} -\newcommand*\mcm@commit@string@appraisenum{赛区评阅编号(由赛区组委会评阅前进行编号):} +%设置目录格式 +% 节的目录格式 +\titlecontents{section}[0pt]{\vspace{2mm}\bfseries\heiti} +{\thecontentslabel\hskip.5em}{}{\titlerule*[0.5pc]{.}\contentspage} +% 小节的目录格式 +\titlecontents{subsection}[30pt]{\songti} +{\thecontentslabel\hskip.5em}{}{\titlerule*[0.5pc]{.}\contentspage} - %%% 编号专用页中的常量 -\newcommand*\mcm@numberpage@string@headname{赛区评阅编号(由赛区组委会填写):} -\newcommand*\mcm@numberpage@string@titlea{\the\year 高教社杯全国大学生数学建模竞赛} -\newcommand*\mcm@numberpage@string@titleb{编\hspace{.5em}号\hspace{.5em}专\hspace{.5em}用\hspace{.5em}页} -\newcommand*\mcm@numberpage@string@appraiselog{赛区评阅记录(可供赛区评阅时使用):} -\newcommand\mcm@numberpage@string@reviewer{\shortstack{评\\ 阅\\ 人}} -\newcommand\mcm@numberpage@string@remarks{\shortstack{备\\ 注}} -\newcommand*\mcm@numberpage@string@unifiednum{送全国评阅统一编号(由赛区组委会填写):} -\newcommand*\mcm@numberpage@string@countrynum{全国评阅随机编号(由全国组委会填写):} -\newcommand\mcm@numberpage@string@inform{\quotation -\noindent(此编号专用页仅供赛区和全国评阅使用,参赛队打印后装订到纸质论文的第二页上。% -注意电子版论文中不得出现此页,即电子版论文的第一页为标题、摘要和关键词页。) -\endquotation -} +\titlecontents{subsubsection}[55pt]{\songti} +{\thecontentslabel\hskip.5em}{}{\titlerule*[0.5pc]{.}\contentspage} \pagestyle{plain} \endinput diff --git a/gmcmthesis.png b/gmcmthesis.png index 1d8e123..352f0fa 100644 Binary files a/gmcmthesis.png and b/gmcmthesis.png differ