├── _config.yml ├── makewin.bat ├── cquthesis.pdf ├── figures ├── CQUbadge.pdf └── README ├── toolkit ├── 重庆大学本科毕业设计装订封面生成模板v0.97.docx └── README.md ├── standers └── 附件:重庆大学博士、硕士学位论文格式标准(2023年修订) │ ├── 附件4:学位论文数据集及填写说明.doc │ ├── 附件1:“顺序编码制”的参考文献的引用和著录格式.doc │ ├── 重庆大学博士、硕士学位论文格式标准(2023年修订).docx │ ├── 附件2:“著者-出版年制” 的参考文献的引用和著录格式.doc │ ├── 附件3:“APA格式”、“MLA 格式”的参考文献的引用和著录格式.docx │ ├── .~1:“顺序编码制”的参考文献的引用和著录格式.doc │ └── .~大学博士、硕士学位论文格式标准(2023年修订).docx ├── contents ├── ack.tex ├── denotation.tex ├── conclusion.tex ├── experiment.tex ├── introduction.tex ├── appendix.tex ├── cover.tex └── analysis.tex ├── .latexmkrc ├── .gitignore ├── .gitattributes ├── CONTRIBUTORS.md ├── cquthesis.sty ├── cquthesis.cwl ├── main.tex ├── Makefile ├── README-English.md ├── cquthesis.ins ├── makewin-en.bat ├── dtx-style.sty ├── README.md ├── cquthesis.cfg ├── .travis.yml ├── LICENSE ├── cquthesis.cls ├── ref └── refs.bib └── cqunumerical.bst /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /makewin.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/makewin.bat -------------------------------------------------------------------------------- /cquthesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/cquthesis.pdf -------------------------------------------------------------------------------- /figures/CQUbadge.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/figures/CQUbadge.pdf -------------------------------------------------------------------------------- /toolkit/重庆大学本科毕业设计装订封面生成模板v0.97.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/toolkit/重庆大学本科毕业设计装订封面生成模板v0.97.docx -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件4:学位论文数据集及填写说明.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件4:学位论文数据集及填写说明.doc -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件1:“顺序编码制”的参考文献的引用和著录格式.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件1:“顺序编码制”的参考文献的引用和著录格式.doc -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/重庆大学博士、硕士学位论文格式标准(2023年修订).docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/重庆大学博士、硕士学位论文格式标准(2023年修订).docx -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件2:“著者-出版年制” 的参考文献的引用和著录格式.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件2:“著者-出版年制” 的参考文献的引用和著录格式.doc -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件3:“APA格式”、“MLA 格式”的参考文献的引用和著录格式.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cqu-bdsc/CQUThesis/HEAD/standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/附件3:“APA格式”、“MLA 格式”的参考文献的引用和著录格式.docx -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/.~1:“顺序编码制”的参考文献的引用和著录格式.doc: -------------------------------------------------------------------------------- 1 | neardwsneardws -------------------------------------------------------------------------------- /standers/附件:重庆大学博士、硕士学位论文格式标准(2023年修订)/.~大学博士、硕士学位论文格式标准(2023年修订).docx: -------------------------------------------------------------------------------- 1 | neardwsneardws -------------------------------------------------------------------------------- /contents/ack.tex: -------------------------------------------------------------------------------- 1 | \chapter{致\hskip\ccwd{}谢} 2 | 3 | % 这里用盲审环境包裹致谢,在开启盲审开关时,环境内部的内容不予渲染。 4 | \begin{secretizeEnv} 5 | 这个模板是站在巨人肩膀上的成果,感谢\LaTeXe{}计划,感谢CTeX开发组提供的中文解决方案,感谢薛瑞尼副教授(Github: xueruini/ThuThesis),感谢WeiJianWen同学(Github: weijianwen/SJTUThesis),感谢中国科学技术大学TeX用户组(Github: ustctug/gbt-7714-2015)。向你们致以真诚的问候和感激! 6 | 7 | 世界因你们更美好。 8 | \end{secretizeEnv} 9 | -------------------------------------------------------------------------------- /figures/README: -------------------------------------------------------------------------------- 1 | Notice For CTAN 2 | 3 | The file "CQUbadge.pdf" is a vector graph in PDF format, which can be transformed loselessly to .eps file. Thus, it should be regarded as "Source File". 4 | 5 | The .eps version is deprecated due to its unreasonable file size(~1.2 MB). 6 | 7 | Zhennan Li 8 | Author of CQUThesis, LATEX Thesis Template for Chongqing University. -------------------------------------------------------------------------------- /.latexmkrc: -------------------------------------------------------------------------------- 1 | # vim: set ft=perl: 2 | $pdflatex = 'xelatex -quiet -halt-on-error -interaction=nonstopmode %O %S'; 3 | $pdf_mode = 1; 4 | $postscript_mode = $dvi_mode = 0; 5 | $clean_ext = '.aux .bbl equ glo gls hd idx ilg ind lof lot out blg log thm toc synctex.gz lofEN lotEN equEN'; 6 | $makeindex = 'makeindex -s gind.ist %O -o %D %S'; 7 | add_cus_dep('glo', 'gls', 0, 'makeglo2gls'); 8 | sub makeglo2gls { 9 | system("makeindex -s gglo.ist -o \"$_[0].gls\" \"$_[0].glo\""); 10 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | DEV/ 2 | /.idea 3 | .vscode 4 | .DS_Store 5 | *~ 6 | *.aux 7 | *.bak 8 | *.bbl 9 | *.blg 10 | *.dvi 11 | *.glo 12 | *.gls 13 | *.idx 14 | *.ilg 15 | *.ind 16 | *.ist 17 | *.log 18 | *.out 19 | *.thm 20 | *.toc 21 | *.lof 22 | *.lot 23 | *.loe 24 | *.equEN 25 | *.lofEN 26 | *.lotEN 27 | *.vrb 28 | *.hd 29 | *.fdb_latexmk 30 | *.fls 31 | *.htm 32 | *.html 33 | .Rproj.user 34 | cquthesis.Rproj 35 | .Rhistory 36 | *.gz(busy) 37 | *.gz 38 | *.equ 39 | *.xdv 40 | *.tmp 41 | main.pdf 42 | .texpadtmp 43 | .texpadtmp/* 44 | -------------------------------------------------------------------------------- /contents/denotation.tex: -------------------------------------------------------------------------------- 1 | % !TeX encoding = UTF-8 2 | % 环境用两个长度参数,分别定义左边距以及词条和解释的水平距离,可自己调试以达美观(全去掉时默认:20mm,30mm) 3 | \begin{denotation}[10mm][40mm] 4 | \item[CQU] 重庆大学(Chongqing University)的英文缩写 5 | \item[\LaTeX] 一个很棒的排版系统 6 | \item[\LaTeXe] 一个很棒的排版系统的最新稳定版 7 | \item[\XeTeX] \LaTeX{}的好兄弟,事实上他有很多个兄弟,但是这个兄弟对各种语言的支持能力都很强 8 | \item[CTeX宏集] 成套的中文\LaTeX{}解决方案,由一帮天才们开发 9 | \item[\ce{H2SO4}] 硫酸 10 | \item[$ e^{\pi{}i}+1=0$] 一个集自然界五大常数一体的炫酷方程 11 | \item[\ce{2H2 + O2 -> 2H2O}] 一个昂贵的生成生命之源的方程式 12 | \end{denotation} 13 | 14 | \endinput 15 | -------------------------------------------------------------------------------- /toolkit/README.md: -------------------------------------------------------------------------------- 1 | # 重庆大学LaTeX模板工具箱 2 | 重庆大学LaTeX模板的支持文件,这些程序往往用于[CQUThesis](https://github.com/nanmu42/CQUThesis)的开发、测试、部署。部分文件/程序能提供一些对撰写/排版论文有帮助的功能。 3 | 4 | 下面是各个程序的Readme内容: 5 | 6 | # 重庆大学毕设装订封面生成器 7 | ## 简介 8 | 这是一份更容易填写,也更美观的装订封面,包含档案袋封面、论文装订封面和附件装订封面。 9 | 10 | ## 使用方法 11 | * 填写本文档的第二页和第三页;第四页会自动生成; 12 | * 相同的字段都会自动填充,无需复制粘贴; 13 | * 导出文件为PDF以供打印。 14 | 15 | ## 用户协议 16 | * 本模板为《重庆大学LaTeX模板》(即CQUThesis)的增强文件,不属于其中的组成部分,不使用LaTeX Project Public License协议; 17 | * 模板作者授权您:自由的使用,发布,传播本模板,前提是保持本模板的完整,包括但不限于保持本署名页和模板余下文件的整体性。 18 | * 这是一份独立开发,免费提供的小作品,作者自当尽力,但对模板的合规性和可用性不做任何保证。使用本模板之前,您同意,任何由于本模板而引起的论文格式审查问题与本模板作者无关。 19 | 20 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # except .cmd and .bat 5 | *.cmd eol=crlf 6 | *.bat eol=crlf 7 | 8 | # Custom for Visual Studio 9 | *.cs diff=csharp 10 | 11 | # Standard to msysgit 12 | *.doc diff=astextplain 13 | *.DOC diff=astextplain 14 | *.docx diff=astextplain 15 | *.DOCX diff=astextplain 16 | *.dot diff=astextplain 17 | *.DOT diff=astextplain 18 | *.pdf diff=astextplain 19 | *.PDF diff=astextplain 20 | *.rtf diff=astextplain 21 | *.RTF diff=astextplain 22 | 23 | # Tex File 24 | *.tex diff=astextplain 25 | *.cls diff=astextplain 26 | *.cfg diff=astextplain 27 | -------------------------------------------------------------------------------- /contents/conclusion.tex: -------------------------------------------------------------------------------- 1 | \chapter{结论} 2 | \section{关于开发}\label{sec:dev} 3 | 本项目开源托管于Github,欢迎提交建议和意见,欢迎高质量的PR。项目地址为\url{https://github.com/nanmu42/CQUThesis} 4 | \section{关于下载} 5 | \begin{itemize} 6 | \item 发行版本,托管于CTAN,\url{https://www.ctan.org/pkg/cquthesis}; 7 | \item 开发版本,位于Github,这个版本的更新最快,推荐使用。地址参见\ref{sec:dev}节。 8 | \end{itemize} 9 | \section{求助方案} 10 | \begin{itemize} 11 | \item 在Github上提交Issue,地址:\url{https://github.com/nanmu42/cquthesis/issues} 12 | \item 加入重庆大学\TeX 用户组进行讨论\footnote{即使您不是重庆大学的学子,只要您对\TeX 足够热爱并且为人友善,我们也会热诚地欢迎您。},地址:\url{http://jq.qq.com/?_wv=1027&k=2HvYu95} 13 | \end{itemize} 14 | 15 | 大家的反馈为模板提高带来机会。 16 | \section{Happy Texing!} 17 | 祝你好运! 18 | 19 | \bigskip 20 | \hfill ——李振楠 2016年12月7日 -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | # 贡献者名单 2 | 3 | CQUThesis是一个绵薄的开源项目,自从2016年5月份上线以来,很多热心人士为项目作出了各种各样的贡献,这里是他们的名单: 4 | 5 | * **BluesCas**(重庆大学TeX用户组成员,他给Beta版本的CQUThesis提出了很多建议,例如[Issue #12](https://github.com/nanmu42/CQUThesis/issues/12),他为TeX在母校的推广贡献良多) 6 | * **FIVE**(十分热心的CQUThesis博士版本用户,重庆大学TeX用户组成员,他提交了很多Bug,出了很多主意) 7 | * **Be.**(重庆大学TeX用户组成员,为TeX在母校的推广做出了不少身体力行的贡献) 8 | * **IOriens**(重庆大学TeX用户组成员,[PR #29](https://github.com/nanmu42/CQUThesis/pull/29)) 9 | * **rhiswell**([Issue #28](https://github.com/nanmu42/CQUThesis/issues/28),一个振奋人心的好消息) 10 | * **fengzipei**([Issue #30](https://github.com/nanmu42/CQUThesis/issues/30)) 11 | * **craneaow**([Issue #20](https://github.com/nanmu42/CQUThesis/issues/20),这带来了一个新功能!) 12 | * **交换団**(重庆大学TeX用户组成员,他发现了.bat文件中由Git引入的换行符的问题。这里有[解决方法](https://stackoverflow.com/questions/19551037/git-how-to-keep-crlf-endings-for-specific-files-only)) 13 | * **Zousiyu**(重庆大学TeX用户组成员,他贡献了开发思路) 14 | * **Lotus**(重庆大学TeX用户组成员,他在群里各种 ~~瞎~~ 带节奏) 15 | * **珍惜拥有**(重庆大学TeX用户组成员,他反馈了`bst`文件过时的问题) 16 | * **@Neuromancer43** (他贡献了[这些PR](https://github.com/nanmu42/CQUThesis/pulls?q=is%3Apr+author%3ANeuromancer43)) 17 | 18 | 还有, 19 | * 我的母校,**重庆大学** 20 | * 最后,当然是[重庆大学TeX用户组](http://jq.qq.com/?_wv=1027&k=2HvYu95)的全体同仁 21 | 22 | 在此,向诸位致以最真诚的谢意。 -------------------------------------------------------------------------------- /contents/experiment.tex: -------------------------------------------------------------------------------- 1 | \chapter{实验参数和流程} 2 | \section{5分钟语法参考} 3 | 4 | {\kaishu 要流畅使用\cquthesis 需要用户对\LaTeX 以及\textsc{Bib}\TeX 有一定了解,下面这个语法参考只能起到抛砖引玉的作用。如果你从来没有接触过\LaTeX 或者\XeTeX ,建议先学习相关知识,磨刀不误砍柴工。} 5 | \medskip 6 | \begin{itemize} 7 | \item \LaTeX 源文件中,主要有三种元素:你的文字,命令,以及环境; 8 | \item 直接输入即可你想要写的文字即可,对于英文,文字间多于一个的空格都会转为一个空格; 9 | \item 如果你想开启一个新的自然段,请在写新内容前空一个(或多个)全空的行; 10 | \item \LaTeX 的命令{\heiti 全部}都以\cs{ }开头,例如\cs{XeTeX}可以生成\XeTeX ; 11 | \item 有的命令{\heiti 必须}带参数,比如\cs{zihao\{-4\}}可以将命令之后的内容的字号调整为小四; 12 | \item 有的命令能带可选参数,例如\cs{usingpackage\{metalogo\}}可以载入\pkg{metalogo}宏包; 13 | \item 宏包中有宏包作者自己定义的命令,能够让你更容易地完成某些事情,比如\pkg{mhchem}能够引入让你方便地表示化学式的命令\cs{ce}; 14 | \item \LaTeX 的源代码主要分为两个部分,导言部分和文档部分。其中,文档部分以\cs{begin\{document\}}开头,以\cs{end\{document\}}结尾,只有在这个范围内你才能完成排版工作; 15 | \item \LaTeX 对(简单或复杂的)数学式的支持是其一大亮点,数学环境使用\texttt{\${ }\$}包裹; 16 | \item 环境由\csgo{begin}{环境名}开头,以\csgo{end}{环境名}结尾,是的,文档部分是一个巨大的环境; 17 | \item 报错说没有这个命令?检查是否载入了必要的宏包,再检查命令后面是否直接跟随了汉字,在它们之间加个空格就好; 18 | \item \LaTeX 是一门语言,新手经常会遇到无法编译通过的语法错误,这时建议你仔细检查花括号是否平衡,命令是否敲错,参数数目和类型是否正确,如果还是不行,可以在网络上搜索一番或者问问同事。 19 | \item 命令之间或者之内的空格和缩进以及回车不是必须的,事实上没有它们\LaTeX 也可以正常工作,但是代码的可读性就会大打折扣了; 20 | \item 对了,使用\texttt{\%}来开启一个行注释,注释的内容不参与编译,你可以在这里写下自己的小秘密; 21 | \item 有质量的国内\TeX 社区是\textsc{CTeX}社区,更有质量的国外的是\textsf{StackExchange}; 22 | \item \TeX\textsc{Studio}是一个很棒的\LaTeX 编辑环境,推荐你尝试一番。 23 | \end{itemize} 24 | 25 | \section{查询文档} 26 | 在你对宏包或者环境包有疑问的时候,可以再命令行中输入: 27 | 28 | \texttt{texdoc 宏包或环境名称} 29 | 30 | 回车后对应的用户文档会自动打开。 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /cquthesis.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{cquthesis}[2016/06/09 The place for your beloved packages and customization.] 2 | 3 | %=====你可以在这里使用\RequirePackage[包选项]{包名称}导入想用的Package======= 4 | %=====以及定义你自己的功能和常量======= 5 | \newcommand{\speakyourlove}[1][Mom]{\emph{#1, I Love You!}} 6 | 7 | 8 | 9 | 10 | 11 | 12 | % 晶向指数支持,如果需要请取消下面两行注释: 13 | % \RequirePackage{miller} 14 | % \pretocmd{\hkl}{{ }}{}{} 15 | % 16 | % 物理符号宏包: 17 | %\RequirePackage{physics} 18 | % 19 | % 计算机算法宏包: 20 | %\RequirePackage{algorithm2e} 21 | %\RequirePackage{algorithmic} 22 | % 23 | % 绘图宏包: 24 | %\RequirePackage{tikz} 25 | % 26 | % 绘制电路图: 27 | %\RequirePackage{circuitikz} 28 | 29 | % 这两个个宏包仅供参考,未必使用: 30 | % \RequirePackage{floatflt} % 图文混排用宏包 31 | % \RequirePackage{rotating} % 图形和表格的控制旋转 32 | 33 | %========一些推荐功能========= 34 | % 用中文双引号括起文字 35 | \newcommand{\qthis}[1]{{“}#1{”}} 36 | %交叉引用图X、表X、方程X(此处为向前兼容,强烈推荐使用\autoref{label}) 37 | \newcommand{\figref}[1]{图\ref{#1}} 38 | \newcommand{\tabref}[1]{表\ref{#1}} 39 | %\eqref已经改写过 40 | 41 | %================================ 42 | %**********代码开发区域*********** 43 | %================================ 44 | 45 | % 借用 ltxdoc 里面的几个命令。 46 | \def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}} 47 | \def\cmd@to@cs#1#2{\char\number`#2\relax} 48 | \DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} 49 | \DeclareRobustCommand\csgo[2]{\cs{#1\{#2\}}} 50 | 51 | \newcommand*{\meta}[1]{{% 52 | \ensuremath{\langle}\rmfamily\itshape#1\/\ensuremath{\rangle}}} 53 | \providecommand\marg[1]{% 54 | {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}} 55 | \providecommand\oarg[1]{% 56 | {\ttfamily[}\meta{#1}{\ttfamily]}} 57 | \providecommand\parg[1]{% 58 | {\ttfamily(}\meta{#1}{\ttfamily)}} 59 | \providecommand\pkg[1]{{\sffamily#1}} 60 | 61 | % 文件夹列表 62 | \usepackage{dirtree} 63 | % The following is a dummy icon command 64 | \newcommand\myicon[1]{{\color{#1}\rule{2ex}{2ex}}} 65 | % If you have actual icon images, use \includegraphics to include them 66 | % If you are generating them, put in the appropriate code for them here 67 | % now we make a command for a folder/file which inserts the icon and its label 68 | % adjust this as needed. If you only have 2 icons, then you could create 69 | % a \myfile and \myfolder command with the icon fixed. 70 | \newcommand{\myfolder}[2]{\myicon{#1}\ {#2}} 71 | -------------------------------------------------------------------------------- /cquthesis.cwl: -------------------------------------------------------------------------------- 1 | #Written by Zhennan Li 2016/06/10 2 | #include:amsmath 3 | #include:array 4 | #include:booktabs 5 | #include:tabularx 6 | #include:longtable 7 | #include:multirow 8 | #include:diagbox 9 | #include:graphicx 10 | #include:hyperref 11 | #include:xparse 12 | #include:ntheorem 13 | #include:metalogo 14 | #include:xcolor 15 | #include:mhchem 16 | #include:siunitx 17 | #include:upgreek 18 | #include:subcaption 19 | \backmatter#S 20 | \bicaption{Chinese}{English}#n 21 | \bicaption[shortC]{Chinese}[shortE]{English}#n 22 | \bigcell{content}#t 23 | \begin{cabstract}#S 24 | \begin{denotation}#S 25 | \begin{eabstract}#S 26 | \begin{Cplus}#n 27 | \begin{Python}#n 28 | \begin{axiom}#n 29 | \begin{theorem}#n 30 | \begin{definition}#n 31 | \begin{proposition}#n 32 | \begin{lemma}#n 33 | \begin{conjecture}#n 34 | \begin{proof}#n 35 | \begin{corollary}#n 36 | \begin{example}#n 37 | \begin{exercise}#n 38 | \begin{assumption}#n 39 | \begin{remark}#n 40 | \begin{problem}#n 41 | \end{cabstract}#S 42 | \end{denotation}#S 43 | \end{eabstract}#S 44 | \end{Cplus}#n 45 | \end{Python}#n 46 | \end{axiom}#n 47 | \end{theorem}#n 48 | \end{definition}#n 49 | \end{proposition}#n 50 | \end{lemma}#n 51 | \end{conjecture}#n 52 | \end{proof}#n 53 | \end{corollary}#n 54 | \end{example}#n 55 | \end{exercise}#n 56 | \end{assumption}#n 57 | \end{remark}#n 58 | \end{problem}#n 59 | \ccwd#n 60 | \colsep{length}#t 61 | \cquthesis#n 62 | \cquauthpage#n 63 | \cquauthpage[scanedFile]#n 64 | \cqusetup{key=value,}#n 65 | \ckeywords#S 66 | \ctexset{key=value,}#n 67 | \ding{number}#n 68 | \eqlist{name}#n 69 | \eqlist{name}[EnglishName]#n 70 | \ekeywords#S 71 | \frontmatter#S 72 | \fangsong#n 73 | \figref#S 74 | \heiti#n 75 | \headcell{content}#t 76 | \inlinecite{bibid}#c 77 | \onlinecite{bibid}#c 78 | \kaishu#n 79 | \listeq{name}#n 80 | \listeq{name}[EnglishName]#n 81 | \listofequations#n 82 | \listofequationsEN#n 83 | \listoffiguresEN#n 84 | \listoftablesEN#n 85 | \lishu#n 86 | \mainmatter#S 87 | \makeabstract#S 88 | \makecover#S 89 | \resetrownum#n 90 | \resetxuhao#n 91 | \rownum#n 92 | \rownum[1]#n 93 | \rownumseparator#n 94 | \rownumtype[1-6]#n 95 | \songti#n 96 | \setxuhao#S 97 | \tabref#S 98 | \version#n 99 | \xuhao#n 100 | \xuhao[1]#n 101 | \xuhaoseparator#n 102 | \xuhaotype[1-6]#n 103 | \youyuan#n 104 | \zihao{num}#n 105 | -------------------------------------------------------------------------------- /main.tex: -------------------------------------------------------------------------------- 1 | % !TeX encoding = UTF-8 2 | %% \textbf{重庆大学}通用毕业论文\LaTeXe{}模板 3 | %%% 使用前请先阅读使用文档和用户协议,内有详细介绍。Happy Texing! :) 4 | %% ======================================================= 5 | \documentclass% 6 | [type=doctor, bilinguallist=apart, printmode=twoside]{cquthesis}% 7 | % 可用选项: 8 | % type=[bachelor|master|doctor], % 必选,毕业论文类型,以下项目不填时为默认 9 | % liberalformat, % 可选,仅适用本科生,使用文学类论文标题格式,默认未打开 10 | % proffesionalmaster=[true|false], % 可选,仅适用研究生,是(true)否(false)专业硕士,默认为否 11 | % printmode=[oneside|twoside|auto], % 可选,论文打印方式,默认采用auto按页数要求自动判定 12 | % openany,|openright, % 可选,双面打印时每章的第一页仅右页开启,默认右页开启(openright) 13 | % bilinguallist=[off|combined|apart], % 可选,图录表录等分别按双语题注混编(combined),分开编录(apart),默认关(off) 14 | % blindtrail, % 可选,盲审模式,开启后封面姓名和致谢部分会隐藏,详情请参阅用户文档,默认关 15 | % draft, % 写作期间可选,不渲染图片,关闭外围功能,加快预览速度,默认未开启 16 | 17 | % 请在cquthesis.sty文件中定义其他会用到的宏包和自己的变量 18 | % 这样可以防止main.tex太过臃肿。 19 | \usepackage{cquthesis} 20 | 21 | % 定义所有的图片文件在 figures 子目录下 22 | \graphicspath{{figures/}} 23 | 24 | % 定义数字圆 25 | \usepackage{tikz} 26 | \newcommand*\circled[1]{\tikz[baseline=(char.base)]{ 27 | \node[shape=circle,draw,inner sep=1pt] (char) {#1};}} 28 | 29 | %*** 写作时,使用这个命令只渲染你想查看的部分,提升工作效率,定稿时注释掉整行 30 | %\includeonly{contents/experiment,contents/analysis,} 31 | 32 | % 默认行间距 20 pt 33 | \linespread{1.3} 34 | 35 | \begin{document} 36 | 37 | \input{contents/cover} 38 | \makecover %%% 封面部分 39 | 40 | 41 | \frontmatter %%%前置部分(封面后绪论前) 42 | %% 摘要 43 | \makeabstract 44 | %% 目录,注意需要多次编译才能更新 45 | \tableofcontents 46 | %% 插图索引,可选,如不用可注释掉 47 | %\listoffigures 48 | %\listoffiguresEN 49 | %% 表格索引,可选 50 | %\listoftables 51 | %\listoftablesEN 52 | %% 公式索引,可选 53 | %\listofequations 54 | %\listofequationsEN 55 | %% 符号对照表,可选 56 | %\input{contents/denotation} 57 | 58 | 59 | \mainmatter %%% 主体部分(绪论开始,结论为止) 60 | %* 子文件的多少和内容由你决定(最好以章为单位),基本原则是提速预览、脉络清晰、管理容易。 61 | 62 | 63 | \include{contents/introduction} 64 | \include{contents/experiment} 65 | \include{contents/analysis} 66 | \include{contents/conclusion} 67 | %\include{contents/yourFreeChoise} 68 | 69 | 70 | \backmatter %%% 后置部分(致谢、参考文献、附录等) 71 | 72 | %% 参考文献 73 | % 顺序编码制:cqunumerical 74 | % 注意:至少需要引用一篇参考文献,否则下面两行会引起编译错误。 75 | \bibliographystyle{cqunumerical} 76 | \bibliography{ref/refs} 77 | 78 | 79 | %% 附录(按ABC...分节,证明、推导、程序、个人简历等) 80 | \appendix 81 | 82 | % 个人简历 83 | \include{contents/appendix} 84 | 85 | %% 原创声明和授权说明书,可选:用扫描页替换 86 | %\cquauthpage[contents/authscan.pdf] 87 | \cquauthpage 88 | 89 | %% 致谢 90 | \include{contents/ack} 91 | 92 | \end{document} 93 | -------------------------------------------------------------------------------- /contents/introduction.tex: -------------------------------------------------------------------------------- 1 | \chapter{绪论} 2 | \section{欢迎!} 3 | 欢迎来到\cquthesis{}示例文档! 4 | 5 | 本文档使用\cquthesis{}本身作为模板,即\pkg{cquthesis.cls}, \pkg{cquthesis.sty}和\pkg{cquthesis.cfg},旨在展现\cquthesis{}的使用方法。请结合\cquthesis{}用户手册和本文档源代码进行学习和操作。 6 | 7 | 祝毕设成功,答辩拿优!Happy Texing! 8 | 9 | 本文档编译时使用的\cquthesis{}版本为\version{}。 10 | 11 | 请留意到本链接检查更新:\url{https://github.com/nanmu42/CQUThesis} 12 | 13 | \section{关于\LaTeX{}} 14 | \noindent{\heiti{}提示:}{\kaishu{}下面是一些基本思路和知识,如果你已经对\LaTeX{}比较熟悉,请直接跳转到第\ref{txt:FreqCmd}节。} 15 | 16 | \subsection{关于推荐重庆大学开设\TeX 相关课程并推广其运用的提议} 17 | 这一小节是对\href{http://jq.qq.com/?_wv=1027&k=2HvYu95}{重庆大学\TeX 用户组}所撰写的提案的简介。 18 | 19 | 本提案从介绍排版系统\TeX 的背景和特点开始,从研究生期刊论文投稿以及毕业生毕业论文排版工作这两个维度阐述了引入\TeX 作为一种与Office Word平行的写作系统的优势和必要性,最终提出一套基于我校重庆大学实际情况,有效可行的实施方案。 20 | 21 | 这份提案可以作为新手从全局认识\TeX 的入门材料,提案的下载地址是:\url{https://github.com/CQUtug/TeXProposal} 22 | 23 | \subsection{\LaTeX{}小传} 24 | \LaTeX{}是\TeX{}的改进版本,后者由Knuth(高德纳)在上世纪七十年代研发,包含\TeX{}排版程序和Plain \TeX{}宏集这两部分。Plain \TeX{}可以看做是一种既定语法的编程语言,源代码对应文件后缀为\pkg{.tex},而\TeX{}程序对源代码进行解析,编译,得到排版结果。上世纪八十年代,\LaTeX{}对Plain \TeX{}的语言体系进行了升级和重构,使得\TeX{}的易用性获得了质的提升。 25 | 26 | \TeX{}有着很多分支,比如\LaTeX{}, \LuaTeX{}和\XeTeX{}。每个分支的产生都是为了解决不同的问题。其中,\XeTeX{}提供了对东亚字体(中日韩)的原生支持。 27 | 28 | 29 | \subsection{\LaTeX{}背后的思路} 30 | 31 | \LaTeX{}的思路也许你已经有所耳闻,即{\heiti{}内容和样式分离。}它有些像HTML编辑器,遵循\textsf{WYTIWYG}原则\footnote{What you think is what you get. 所想即所得。}。这也是它和Word这一类遵循\qthis{所见即所得}\footnote{\textsf{WYSIWYG} -- What you see is what you get.}原则的文档编辑器的最大不同。 32 | 33 | 在你使用\LaTeX{}写作的时候,大部分时间你只需要关心内容本身,而\LaTeX{}就像你的编辑,按照样式要求(模板和宏包)为你排版。 34 | 35 | 36 | \section{\cquthesis{}背后的思路} 37 | 38 | \cquthesis{}秉承\LaTeX{}的思路,旨在为你解决论文内容以外的大部分问题。 39 | 40 | 出于性能和管理方面的考虑,\cquthesis{}使用分布式的源文件方案,将论文的各个部分(通常以章为单位)分散到tex文件中,然后在主文档\pkg{main.tex}中统一处理。\figref{fig:filetree}展示了一个可能的文件目录情况。 41 | \begin{figure}[htb] 42 | \dirtree{% 43 | .1 \myfolder{pink}{工作文件夹}. 44 | .2 \myfolder{cyan}{\pkg{cquthesis.cls}}. 45 | .2 \myfolder{cyan}{\pkg{cquthesis.cfg}}. 46 | .2 \myfolder{cyan}{\pkg{cquthesis.sty}}. 47 | .2 \myfolder{cyan}{main.tex}. 48 | .2 \myfolder{cyan}{contents}. 49 | .3 \myfolder{lime}{introduction.tex}. 50 | .3 \myfolder{lime}{experiment.tex}. 51 | .3 \myfolder{lime}{analysis.tex}. 52 | .3 \myfolder{lime}{conclusion.tex}. 53 | .2 \myfolder{cyan}{figures}. 54 | .3 \myfolder{lime}{myCat.png}. 55 | .3 \myfolder{lime}{dogEatsSandwiches.jpg}. 56 | .2 \myfolder{cyan}{ref}. 57 | .3 \myfolder{lime}{refs.bib}. 58 | }%\dirtree 59 | \caption[\cquthesis{}文件结构图示]{\cquthesis{}文件结构图示,出于测试的原因,这个标题被故意填充得很长,这里,你可以结合本文文档代码看到插图索引中是如何处理这个问题的。} 60 | \label{fig:filetree} 61 | \end{figure} 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for CQUThesis 2 | # Adapted from Thuthesis Makefile 3 | 4 | # Compiling method: latexmk/xelatex/pdflatex 5 | METHOD = latexmk 6 | # Set opts for latexmk if you use it 7 | LATEXMKOPTS = -xelatex -quiet -halt-on-error -interaction=nonstopmode 8 | # Basename of thesis 9 | THESISMAIN = main 10 | 11 | 12 | PACKAGE=cquthesis 13 | SOURCES=$(PACKAGE).ins $(PACKAGE).dtx 14 | THESISCONTENTS=$(THESISMAIN).tex contents/*.tex $(FIGURES) 15 | # NOTE: update this to reflect your local file types. 16 | # 注意:下列内容可能需要根据你的实际情况调整 17 | FIGURES=$(wildcard figures/*.eps figures/*.pdf figures/*.jpg figures/*.jpeg figures/*.png) 18 | BIBFILE=ref/refs.bib 19 | SHUJICONTENTS=$(SHUJIMAIN).tex 20 | CLSFILES=dtx-style.sty $(PACKAGE).cls $(PACKAGE).cfg 21 | 22 | # make deletion work on Windows 23 | ifdef SystemRoot 24 | RM = del /Q 25 | OPEN = start 26 | else 27 | RM = rm -f 28 | OPEN = open 29 | endif 30 | 31 | .PHONY: all clean cleanall cls check doc distclean thesis viewthesis viewdoc FORCE_MAKE 32 | 33 | all: doc thesis 34 | 35 | cls: $(CLSFILES) 36 | 37 | doc: $(PACKAGE).pdf 38 | 39 | $(CLSFILES): $(SOURCES) 40 | latex $(PACKAGE).ins 41 | 42 | viewdoc: doc 43 | $(OPEN) $(PACKAGE).pdf 44 | 45 | viewthesis: thesis 46 | $(OPEN) $(THESISMAIN).pdf 47 | 48 | thesis: $(THESISMAIN).pdf 49 | 50 | ifeq ($(METHOD),latexmk) 51 | 52 | $(PACKAGE).pdf: $(CLSFILES) 53 | xelatex -quiet -halt-on-error -interaction=nonstopmode $(PACKAGE).dtx 54 | makeindex -s gind.ist -o $(PACKAGE).ind $(PACKAGE).idx 55 | makeindex -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo 56 | xelatex -quiet -halt-on-error -interaction=nonstopmode $(PACKAGE).dtx 57 | xelatex -quiet -halt-on-error -interaction=nonstopmode $(PACKAGE).dtx 58 | xelatex -quiet -halt-on-error -interaction=nonstopmode $(PACKAGE).dtx 59 | 60 | $(THESISMAIN).pdf: $(CLSFILES) $(THESISCONTENTS) $(THESISMAIN).bbl $(BIBFILE) 61 | $(METHOD) $(LATEXMKOPTS) $(THESISMAIN) 62 | touch $(THESISMAIN).pdf 63 | 64 | else ifneq (,$(filter $(METHOD),xelatex pdflatex)) 65 | 66 | $(PACKAGE).pdf: $(CLSFILES) 67 | $(METHOD) $(PACKAGE).dtx 68 | makeindex -s gind.ist -o $(PACKAGE).ind $(PACKAGE).idx 69 | makeindex -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo 70 | $(METHOD) $(PACKAGE).dtx 71 | $(METHOD) $(PACKAGE).dtx 72 | $(METHOD) $(PACKAGE).dtx 73 | 74 | $(THESISMAIN).pdf: $(CLSFILES) $(THESISCONTENTS) $(THESISMAIN).bbl $(BIBFILE) 75 | $(METHOD) $(THESISMAIN) 76 | $(METHOD) $(THESISMAIN) 77 | touch $(THESISMAIN).pdf 78 | 79 | $(THESISMAIN).bbl: $(BIBFILE) 80 | $(METHOD) $(THESISMAIN) 81 | -bibtex $(THESISMAIN) 82 | $(RM) $(THESISMAIN).pdf 83 | 84 | else 85 | $(error Unknown METHOD: $(METHOD)) 86 | 87 | endif 88 | 89 | clean: 90 | latexmk -c $(PACKAGE).dtx $(THESISMAIN) 91 | -@$(RM) *~ 92 | 93 | cleanall: clean 94 | -@$(RM) $(PACKAGE).pdf $(THESISMAIN).pdf 95 | -------------------------------------------------------------------------------- /README-English.md: -------------------------------------------------------------------------------- 1 | # About CQUThesis 2 | 3 | [![CI Building State](https://api.travis-ci.org/nanmu42/CQUThesis.svg?branch=master)](https://travis-ci.org/nanmu42/CQUThesis) 4 | [![CTAN release](https://img.shields.io/ctan/v/cquthesis.svg?label=CTAN)](https://www.ctan.org/pkg/cquthesis) 5 | [![GitHub release](https://img.shields.io/github/release/nanmu42/cquthesis.svg?label=Github)](https://github.com/nanmu42/CQUThesis/releases/latest) 6 | [![GitHub commits](https://img.shields.io/github/commits-since/nanmu42/CQUThesis/v1.50.svg)](https://github.com/nanmu42/CQUThesis/commits/master) 7 | [![DOI](https://zenodo.org/badge/58866503.svg)](https://zenodo.org/badge/latestdoi/58866503) 8 | 9 | **CQUThesis** stands for Chongqing University Thesis Template for LaTeX, bearing the ability to support bachelor, master, doctor dissertations with grace and speed. 10 | 11 | ![CQUThesis-Poster](https://cloud.githubusercontent.com/assets/8143068/15363773/68c6b380-1d4c-11e6-9627-4d892facb333.png) 12 | 13 | # Deployment 14 | 15 | ## Download 16 | 17 | Version | Link | Description 18 | --- | --- | --- 19 | Dev. |[Click Here](https://github.com/nanmu42/cquthesis/zipball/master) | Recommend with new features and bug fixes 20 | Pre-release | [Github Link](https://github.com/nanmu42/CQUThesis/releases) | Accumulation of commits from Dev. 21 | Release |[CTAN Page](https://www.ctan.org/pkg/cquthesis)| Scheduled updates for CTAN, MikTeX and TeX Live 22 | 23 | ## Installation 24 | 25 | Unzip all files to a new folder as your future work folder: 26 | * Windows users may easily double-click on `makewin.bat`; 27 | * Linux or Mac users may start the terminal: 28 | ``` 29 | cd path/to/cquthesis 30 | make thesis 31 | ``` 32 | If everything goes smoothly, CQUThesis is ready for work, with typeseting example named `main.pdf` in your work folder. 33 | 34 | # Question, Contribution and Contact 35 | 36 | Feel free to raise any question, and any possible contribution is highly appreciated. 37 | * [Github Issues](https://github.com/nanmu42/CQUThesis/issues); 38 | * Join [CQU TeX QQ Group](http://jq.qq.com/?_wv=1027&k=2HvYu95) 39 | 40 | Writing in English or Chinese is needed. 41 | 42 | # Acknowledgements 43 | 44 | The author would like to acknowledge these contributors for their efforts and, essentially, beautiful mind: 45 | 46 | * [The CTeX Community](https://github.com/CTeX-org/ctex-kit) 47 | * [XUE, Ruini](https://github.com/xueruini/thuthesis) 48 | * [USTC TeX User Group](https://github.com/ustctug/gbt-7714-2015) 49 | 50 | # About the Author 51 | 52 | LI Zhennan (i at nanmu dot me) proudly presents this work for you. 53 | 54 | # License 55 | 56 | This whole project may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or (at your option) any later version. The latest version of this license is in: 57 | 58 | http://www.latex-project.org/lppl.txt 59 | 60 | and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later. 61 | -------------------------------------------------------------------------------- /cquthesis.ins: -------------------------------------------------------------------------------- 1 | %% 2 | %% Copyright (C) 2016 by Zhennan Li 3 | %% 4 | %% 5 | %% This file is part of the CQUThesis package project. 6 | %% 7 | %% This file may be distributed and/or modified under the 8 | %% conditions of the LaTeX Project Public License, either 9 | %% version 1.3 of this license or (at your option) any later 10 | %% version. The latest version of this license is in: 11 | %% 12 | %% http://www.latex-project.org/lppl.txt 13 | %% 14 | %% and version 1.3 or later is part of all distributions of 15 | %% LaTeX version 2005/12/01 or later. 16 | %% 17 | \input docstrip.tex 18 | 19 | \askforoverwritefalse 20 | \keepsilent 21 | 22 | \usedir{tex/latex/cquthesis} 23 | 24 | \preamble 25 | 26 | This is a generated file. 27 | 28 | Copyright (C) 2016-\the\year by Zhennan Li 29 | This file may be distributed and/or modified under the 30 | conditions of the LaTeX Project Public License, either 31 | version 1.3 of this license or (at your option) any later 32 | version. The latest version of this license is in: 33 | 34 | http://www.latex-project.org/lppl.txt 35 | 36 | and version 1.3 or later is part of all distributions of 37 | LaTeX version 2005/12/01 or later. 38 | 39 | \endpreamble 40 | 41 | \declarepreamble\cfgpreamble 42 | 43 | This is a generated file. 44 | 45 | Copyright (C) 2016-\the\year by Zhennan Li 46 | This file may be distributed and/or modified under the 47 | conditions of the LaTeX Project Public License, either 48 | version 1.3 of this license or (at your option) any later 49 | version. The latest version of this license is in: 50 | 51 | http://www.latex-project.org/lppl.txt 52 | 53 | and version 1.3 or later is part of all distributions of 54 | LaTeX version 2005/12/01 or later. 55 | 56 | This is the configuration file of the cquthesis package with LaTeX2e. 57 | 58 | \endpreamble 59 | 60 | \generate{% 61 | \file{\jobname.cls}{\from{\jobname.dtx}{cls}} 62 | \usepreamble\cfgpreamble 63 | \file{\jobname.cfg}{\from{\jobname.dtx}{cfg}} 64 | \usepreamble\defaultpreamble\usepostamble\defaultpostamble 65 | \file{dtx-style.sty}{\from{\jobname.dtx}{dtx-style}}} 66 | 67 | \ifToplevel{% 68 | \Msg{********************CQUThesis INFO******************} 69 | \Msg{*} 70 | \Msg{* To finish the installation you have to move the following} 71 | \Msg{* files into a directory searched by TeX:} 72 | \Msg{*} 73 | \Msg{* The recommended directory is TEXMF/tex/latex/cquthesis} 74 | \Msg{*} 75 | \Msg{* \space\space cquthesis.cls} 76 | \Msg{* \space\space cquthesis.cfg} 77 | \Msg{* \space\space cqunumerical.sty} 78 | \Msg{* \space\space cqunumerical.bst} 79 | \Msg{*} 80 | \Msg{* To produce the documentation please run these command:} 81 | \Msg{* \space xelatex cquthesis.dtx} 82 | \Msg{* \space makeindex -s gind.ist -o cquthesis.ind cquthesis.idx} 83 | \Msg{* \space makeindex -s gglo.ist -o cquthesis.gls cquthesis.glo} 84 | \Msg{* \space xelatex cquthesis.dtx} 85 | \Msg{* \space xelatex cquthesis.dtx} 86 | \Msg{*} 87 | \Msg{* Run these command will get you a typeseting example:} 88 | \Msg{* \space xelatex main.tex} 89 | \Msg{* \space bibtex main.tex} 90 | \Msg{* \space xelatex main.tex} 91 | \Msg{* \space xelatex main.tex} 92 | \Msg{*} 93 | \Msg{* ============== Tips =================} 94 | \Msg{* Check makewin.bat and/or .Makefile for a *smoother* way to compile. :) } 95 | \Msg{*} 96 | \Msg{* For further info, please go to:} 97 | \Msg{* \space\space https://github.com/nanmu42/CQUThesis} 98 | \Msg{*} 99 | \Msg{* Happy TeXing!} 100 | \Msg{***********************************************************}} 101 | 102 | \endbatchfile -------------------------------------------------------------------------------- /makewin-en.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | 4 | cd /d "%~dp0" 5 | 6 | title CQUThesis Build Helper 7 | 8 | set flag=%1 9 | if %flag%x == x ( 10 | set flag=thesis 11 | ) 12 | 13 | if %flag%x == thesisx ( 14 | call:thesis 15 | goto :EOF 16 | ) 17 | if %flag%x == thesisxx ( 18 | call:thesisx 19 | goto :EOF 20 | ) 21 | if %flag%x == docx ( 22 | call:extract 23 | call:document 24 | goto :EOF 25 | ) 26 | if %flag%x == cleanx ( 27 | call:cleanaux 28 | goto :EOF 29 | ) 30 | if %flag%x == cleanpdfx ( 31 | call:cleanpdf 32 | goto :EOF 33 | ) 34 | if %flag%x == cleanallx ( 35 | call:cleanaux 36 | call:cleanpdf 37 | goto :EOF 38 | ) 39 | if %flag%x == extractx ( 40 | call:extract 41 | goto :EOF 42 | ) 43 | if %flag%x == allx ( 44 | call:thesis 45 | call:document 46 | goto :EOF 47 | ) 48 | if %flag%x == buildx ( 49 | call:extract 50 | call:thesis 51 | goto :EOF 52 | ) 53 | if %flag%x == buildxx ( 54 | call:extract 55 | call:thesis 56 | call:document 57 | goto :EOF 58 | ) 59 | 60 | :help 61 | echo ************************************************************* 62 | echo This is the Makefile script for CQUThesis on Windows. 63 | echo For CQUThesis: https://github.com/nanmu42/CQUThesis 64 | echo by Zhennan Li (C) 2016 under LPPL 1.3 65 | echo The idea comes from Github Liam0205/sduthesis, Many thanks! 66 | echo ************************************************************* 67 | echo * 68 | echo USAGE: 69 | echo makewin [param] 70 | echo param: 71 | echo help Display this help text 72 | echo thesis (default)Compile the thesis via latexmk 73 | echo thesisx Compile the thesis via XeLaTeX(only if latexmk is not installed.) 74 | echo doc Compile the documentation of CQUThesis 75 | echo clean Clean all aux files 76 | echo cleanpdf Clean all PDFs 77 | echo cleanall Clean all aux files and all PDFs 78 | echo extract Extract the Thesis Template from .dtx files. 79 | echo all thesis + doc 80 | echo build extract + thesis 81 | echo buildx extract + thesis + doc 82 | echo * 83 | echo ***********************Happy TeXing************************** 84 | goto :EOF 85 | 86 | :checkfiles 87 | IF NOT EXIST cquthesis.cls call:extract 88 | IF NOT EXIST cquthesis.cfg call:extract 89 | goto :EOF 90 | 91 | :thesis 92 | call:checkfiles 93 | latexmk -xelatex main.tex 94 | goto :EOF 95 | 96 | :thesisx 97 | call:checkfiles 98 | xelatex main.tex 99 | bibtex main.tex 100 | xelatex main.tex 101 | xelatex main.tex 102 | xelatex main.tex 103 | goto :EOF 104 | 105 | :cleanaux 106 | echo cleaning aux... 107 | for %%i in (*.aux *.bbl *.equ *.glo *.gls *.hd *.idx *.ilg *.ind *.lof *.lot *.out *.blg *.log *.thm *.toc *.synctex.gz *.lofEN *.lotEN *.equEN) do ( 108 | del %%i 109 | ) 110 | echo Done. 111 | goto :EOF 112 | 113 | :cleanpdf 114 | echo cleaning pdf... 115 | for %%i in (*.pdf) do ( 116 | del %%i 117 | ) 118 | echo Done. 119 | goto :EOF 120 | 121 | :clean_all 122 | call:cleanaux 123 | call:cleanpdf 124 | goto :EOF 125 | 126 | :extract 127 | echo extracting... 128 | latex cquthesis.ins 129 | echo *******CQUThesis has been extracted.******** 130 | goto :EOF 131 | 132 | :document 133 | echo building documents... 134 | set cmode=-interaction=batchmode 135 | xelatex cquthesis.dtx 136 | makeindex -s gind.ist -o cquthesis.ind cquthesis.idx 137 | makeindex -s gglo.ist -o cquthesis.gls cquthesis.glo 138 | xelatex cquthesis.dtx 139 | xelatex cquthesis.dtx 140 | xelatex cquthesis.dtx 141 | goto :EOF 142 | -------------------------------------------------------------------------------- /contents/appendix.tex: -------------------------------------------------------------------------------- 1 | \chapter{附\hskip\ccwd{}录} 2 | \section{作者在攻读博士学位期间发表和拟发表论文目录} 3 | 4 | 下面是盲审标记\cs{secretize}的用法,记得去\textsf{main.tex}开启盲审开关看效果: 5 | 6 | \begin{enumerate} 7 | \item 这是科研项目的名字 科研人员1,科研人员2,指导老师1,指导老师2,2017年5月30日 8 | \item 这一条与上一条内容相同,但进行了盲审标记 \secretize{科研人员1},\secretize{科研人员2},\secretize{指导老师1},\secretize{指导老师2},2017年5月30日 9 | \end{enumerate} 10 | 11 | \section{作者在攻读博士学位期间参加的科研项目} 12 | 13 | 下面是工具函数\cs{xuhao}的用例: 14 | 15 | \xuhaotype[1] 16 | \xuhao[1] \xuhao \xuhao \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao 17 | 18 | \setxuhao[2] 19 | \xuhao[1] \xuhao \xuhao \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao 20 | 21 | \setxuhao[3] 22 | \xuhao[1] \xuhao \xuhao \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao 23 | 24 | \setxuhao[4] 25 | \xuhao[1] \xuhao \xuhao \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao 26 | 27 | \setxuhao[5] 28 | \xuhao[1] \xuhao \xuhao \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao 29 | 30 | \setxuhao[6] 31 | \xuhao[1] \xuhao \xuhao \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao 32 | 33 | \subsection{测试第三级目录2} 34 | \subsubsection{四级目录1} 35 | 水陆草木之花,可爱者甚蕃。晋陶渊明独爱菊。自李唐来,世人盛爱牡丹。予独爱莲之出淤泥而不染,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植,可远观而不可亵玩焉。 36 | \subsubsection{四级目录2} 37 | 予谓菊,花之隐逸者也;牡丹,花之富贵者也;莲,花之君子者也。噫!菊之爱,陶后鲜有闻。莲之爱,同予者何人?牡丹之爱,宜乎众矣! 38 | \subsubsection{四级目录3} 39 | 予谓菊,花之隐逸者也;牡丹,花之富贵者也;莲,花之君子者也。噫!菊之爱,陶后鲜有闻。莲之爱,同予者何人?牡丹之爱,宜乎众矣! 40 | 41 | \section{关于声明书和授权书} 42 | 声明和授权部分支持扫描页替换,请在\pkg{main.tex}中设置。 43 | 44 | \section{程序源代码} 45 | 以下是一段供排版测试的Python程序源代码: 46 | \begin{Python} 47 | # 这是一行注释 48 | 49 | import pandas as pd 50 | import matplotlib.pyplot as plt 51 | import numpy as np 52 | import seaborn as sns 53 | import os 54 | 55 | lengthSummary = pd.DataFrame() 56 | lengthSum = lengthPool.groupby(['Pretreatment','Atmosphere']) 57 | for name, group in lengthSum: 58 | sumBuffer = group.describe() 59 | sumBuffer.columns = [(name[0]+' '+name[1])] 60 | lengthSummary = pd.concat([lengthSummary,sumBuffer], axis = 1) 61 | lengthSummary.to_csv('lengthSummary.csv') 62 | 63 | \end{Python} 64 | 65 | 以下是一段供排版测试的C++源代码: 66 | 67 | \begin{C++} 68 | #include 69 | #include 70 | #include 71 | std::vector target2(5); 72 | std::vector target3; 73 | template 74 | void foo(RangeOfInts source) 75 | { 76 | std::vector target1{std::begin(source), 77 | std::end(source)}; 78 | std::copy(std::begin(source), std::end(source), 79 | std::begin(target2)); 80 | std::copy(std::begin(source), std::end(source), 81 | std::back_inserter(target3)); 82 | } 83 | \end{C++} 84 | 85 | \section{附录的图和表} 86 | 以下内容用来测试附录中的插图和插表是否正常,主要的关注点在题注: 87 | 88 | \begin{figure}[tbh] 89 | \centering 90 | \includegraphics[width=0.5\linewidth]{CQUbadge} 91 | \caption{附录插图测试} 92 | \label{fig:cqubadge} 93 | \end{figure} 94 | 95 | \begin{figure}[tbh] 96 | \centering 97 | \includegraphics[width=0.5\linewidth]{CQUbadge} 98 | \caption{附录插图测试} 99 | \label{fig:cqubadge2} 100 | \end{figure} 101 | 102 | \begin{table}[htb] 103 | \centering\colsep[24pt] 104 | \caption{本课题研究的两个自变量} 105 | \label{tab:inroVarible} 106 | \begin{tabularx}{\linewidth}{cl} 107 | \toprule 108 | \headcell{自变量} & \headcell{自变量可取的值} \\ 109 | \midrule\setxuhao[6] 110 | 是否接触大气 & \xuhao[1] 接触大气 \xuhao 氮气保护 \\\setxuhao[2] 111 | 溶解方式 & \xuhao[1] 超声30min \xuhao 搅拌1h \xuhao 静置12h\\ 112 | 表格的第三行 & \bigcell{使用\cs{bigcell}\\可主动换行}\\ 113 | \bottomrule 114 | \end{tabularx} 115 | \end{table} 116 | 117 | \begin{equation} 118 | \alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta = AB\Gamma\varGamma Z 119 | \end{equation}\eqlist{附录中的公式编号1,双语}[Equation name in English A] 120 | 121 | \begin{equation} 122 | \alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta = CD\Gamma\varGamma Z 123 | \end{equation}\eqlist{附录中的公式编号2,双语}[Equation name in English B] 124 | 125 | 测试用途:theequation值为:\theequation ,thefigure值为:\thefigure ,thetable值为:\thetable 126 | -------------------------------------------------------------------------------- /dtx-style.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `dtx-style.sty', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% cquthesis.dtx (with options: `dtx-style') 8 | %% 9 | %% This is a generated file. 10 | %% 11 | %% Copyright (C) 2016-2022 by Zhennan Li 12 | %% This file may be distributed and/or modified under the 13 | %% conditions of the LaTeX Project Public License, either 14 | %% version 1.3 of this license or (at your option) any later 15 | %% version. The latest version of this license is in: 16 | %% 17 | %% http://www.latex-project.org/lppl.txt 18 | %% 19 | %% and version 1.3 or later is part of all distributions of 20 | %% LaTeX version 2005/12/01 or later. 21 | %% 22 | \ProvidesPackage{dtx-style} 23 | \RequirePackage[bottom,perpage,hang,]{footmisc} 24 | \RequirePackage{hypdoc} 25 | \RequirePackage[UTF8,scheme=chinese]{ctex} 26 | \RequirePackage[ 27 | top=2.5cm, bottom=2.5cm, 28 | left=4cm, right=2cm, 29 | headsep=3mm]{geometry} 30 | \RequirePackage{array,longtable,booktabs} 31 | \RequirePackage{listings} 32 | \RequirePackage{fancyhdr} 33 | \RequirePackage{xcolor} 34 | \RequirePackage{enumitem} 35 | \RequirePackage{etoolbox} 36 | \RequirePackage{metalogo} 37 | \RequirePackage{graphicx} 38 | \RequirePackage{xspace} 39 | \RequirePackage{pifont} 40 | 41 | \def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@} 42 | \let\cqu@footnotesize\footnotesize 43 | \renewcommand{\footnotesize}{\cqu@footnotesize\zihao{-5}} 44 | \footnotemargin1.5em\relax 45 | 46 | \let\cqu@makefnmark\@makefnmark 47 | \def\cqu@@makefnmark{\mbox{{\normalfont\@thefnmark}}} 48 | \pretocmd{\@makefntext}{\let\@makefnmark\cqu@@makefnmark}{}{} 49 | \apptocmd{\@makefntext}{\let\@makefnmark\cqu@makefnmark}{}{} 50 | 51 | \colorlet{cqu@macro}{blue!60!black} 52 | \colorlet{cqu@env}{blue!70!black} 53 | \colorlet{cqu@option}{purple} 54 | \patchcmd{\PrintMacroName}{\MacroFont}{\MacroFont\bfseries\color{cqu@macro}}{}{} 55 | \patchcmd{\PrintDescribeMacro}{\MacroFont}{\MacroFont\bfseries\color{cqu@macro}}{}{} 56 | \patchcmd{\PrintDescribeEnv}{\MacroFont}{\MacroFont\bfseries\color{cqu@env}}{}{} 57 | \patchcmd{\PrintEnvName}{\MacroFont}{\MacroFont\bfseries\color{cqu@env}}{}{} 58 | 59 | \appto{\TeX}{\xspace} 60 | \appto{\LaTeX}{\xspace} 61 | \appto{\XeTeX}{\xspace} 62 | 63 | \def\DescribeOption{% 64 | \leavevmode\@bsphack\begingroup\MakePrivateLetters% 65 | \Describe@Option} 66 | \def\Describe@Option#1{\endgroup 67 | \marginpar{\raggedleft\PrintDescribeOption{#1}}% 68 | \cqu@special@index{option}{#1}\@esphack\ignorespaces} 69 | \def\PrintDescribeOption#1{\strut \MacroFont\bfseries\sffamily\color{cqu@option} #1\ } 70 | \def\cqu@special@index#1#2{\@bsphack 71 | \begingroup 72 | \HD@target 73 | \let\HDorg@encapchar\encapchar 74 | \edef\encapchar usage{% 75 | \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}% 76 | }% 77 | \index{#2\actualchar{\string\ttfamily\space#2} 78 | (#1)\encapchar usage}% 79 | \index{#1:\levelchar#2\actualchar 80 | {\string\ttfamily\space#2}\encapchar usage}% 81 | \endgroup 82 | \@esphack} 83 | 84 | \lstdefinestyle{lstStyleBase}{% 85 | basicstyle=\small\ttfamily, 86 | aboveskip=\medskipamount, 87 | belowskip=\medskipamount, 88 | lineskip=0pt, 89 | boxpos=c, 90 | showlines=false, 91 | extendedchars=true, 92 | upquote=true, 93 | tabsize=2, 94 | showtabs=false, 95 | showspaces=false, 96 | showstringspaces=false, 97 | numbers=none, 98 | linewidth=\linewidth, 99 | xleftmargin=4pt, 100 | xrightmargin=0pt, 101 | resetmargins=false, 102 | breaklines=true, 103 | breakatwhitespace=false, 104 | breakindent=0pt, 105 | breakautoindent=true, 106 | columns=flexible, 107 | keepspaces=true, 108 | gobble=2, 109 | framesep=3pt, 110 | rulesep=1pt, 111 | framerule=1pt, 112 | backgroundcolor=\color{gray!5}, 113 | stringstyle=\color{green!40!black!100}, 114 | keywordstyle=\bfseries\color{blue!50!black}, 115 | commentstyle=\slshape\color{black!60}} 116 | 117 | \lstdefinestyle{lstStyleShell}{% 118 | style=lstStyleBase, 119 | frame=l, 120 | rulecolor=\color{blue}, 121 | language=bash} 122 | 123 | \lstdefinestyle{lstStyleLaTeX}{% 124 | style=lstStyleBase, 125 | frame=l, 126 | rulecolor=\color{cyan}, 127 | language=[LaTeX]TeX} 128 | 129 | \lstnewenvironment{latex}{\lstset{style=lstStyleLaTeX}}{} 130 | \lstnewenvironment{shell}{\lstset{style=lstStyleShell}}{} 131 | 132 | \setlist{nosep} 133 | 134 | \DeclareDocumentCommand{\option}{m}{\textsf{#1}\xspace} 135 | \DeclareDocumentCommand{\env}{m}{\texttt{#1}\xspace} 136 | \DeclareDocumentCommand{\pkg}{s m}{% 137 | \texttt{#2}\xspace\IfBooleanF#1{\cqu@special@index{package}{#2}}} 138 | \DeclareDocumentCommand{\file}{s m}{% 139 | \texttt{#2}\xspace\IfBooleanF#1{\cqu@special@index{file}{#2}}} 140 | \newcommand{\myentry}[1]{% 141 | \marginpar{\raggedleft\color{purple}\bfseries\strut #1}} 142 | \newcommand{\note}[1]{{% 143 | \color{magenta}{\noindent\bfseries 说明:}\emph{#1}}} 144 | 145 | \def\cquthesis{\textsc{Cqu}\-\textsc{Thesis}} 146 | \endinput 147 | %% 148 | %% End of file `dtx-style.sty'. 149 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CQUThesis:重庆大学毕业论文LaTeX模板 2 | 3 | [![CI Building State](https://api.travis-ci.org/nanmu42/CQUThesis.svg?branch=master)](https://travis-ci.org/nanmu42/CQUThesis) 4 | [![CTAN release](https://img.shields.io/ctan/v/cquthesis.svg?label=CTAN)](https://www.ctan.org/pkg/cquthesis) 5 | [![GitHub release](https://img.shields.io/github/release/nanmu42/cquthesis.svg?label=Github)](https://github.com/nanmu42/CQUThesis/releases/latest) 6 | [![GitHub commits](https://img.shields.io/github/commits-since/nanmu42/CQUThesis/v1.50.svg)](https://github.com/nanmu42/CQUThesis/commits/master) 7 | [![DOI](https://zenodo.org/badge/58866503.svg)](https://zenodo.org/badge/latestdoi/58866503) 8 | 9 | CQUThesis表示的是**C**hong**Q**ing **U**niversity **Thesis**. 10 | 11 | 本宏包是重庆大学毕业论文的`\LaTeX{}`模板,支持学士、硕士、博士论文的排版,熟悉LaTeX的同学在合理使用本宏包的情况下可以减轻毕业论文撰写过程中的排版工作量。 12 | 13 | CQUThesis根据重庆大学《重庆大学本科设计(论文)撰写规范化要求(2007年修订版)》和《重庆大学博士、硕士论文撰写格式标准(2007年修订版)》编写,力求合规,简洁,易于实现,用户友好。 14 | 15 | # 模板特色 16 | 17 | * 支持重庆大学本科(文学、理工)、硕士(学术、专业)、博士的毕业论文格式; 18 | * 内置封面、目录、索引、授权书等论文部件,可按需自动生成; 19 | * 自动侦测文档页数,生成相应的单面打印/双面打印PDF文件; 20 | * 预置一批优化过的宏包和小功能,包含中英双语题注及配套图录、表录,国际标准单位、化学式支持、三线表等,可按需开启; 21 | * 支持基于cwl文件的代码着色和补全,makefile功能能够在Linux, Mac, Windows三平台通用; 22 | * 每周自动进行持续集成测试,保证模板在最新宏包环境下能够正常运行,当前状态:[![CI Building State](https://api.travis-ci.org/nanmu42/CQUThesis.svg?branch=master)](https://travis-ci.org/nanmu42/CQUThesis) 23 | 24 | ![CQUThesis-Poster](https://cloud.githubusercontent.com/assets/8143068/15363773/68c6b380-1d4c-11e6-9627-4d892facb333.png) 25 | 26 | # 用户协议 27 | 28 | 1. 本模板按照[LaTeX Project Public License](https://latex-project.org/lppl/lppl-1-3.txt)发布,协议版本号为1.3或以后的任何版本(随你意)。本条款不适用于重庆大学LaTeX模板工具箱(CQUThesis Toolkit); 29 | 1. 截止本文档编辑时,重庆大学教务处和研究生院只提供了毕业论文写作指南,没有提供官方模板,也没有授权或认证任何第三方模板为官方模板。本模板是按照写作指南的参考实现,模板作者自当尽力,但不保证审查老师不提意见。在开始使用前,您同意,任何由于本模板而引起的论文格式审查问题与本模板作者无关。 30 | 31 | # 获取CQUThesis 32 | 33 | ## 下载 34 | 35 | 版本 | 下载地址 | 描述 36 | --- | --- | --- 37 | 开发版 |[点我下载](https://github.com/nanmu42/cquthesis/zipball/master) | 推荐,最新的功能,最快的BugFix 38 | 预发行版 | [Github下载页面](https://github.com/nanmu42/CQUThesis/releases) | 累计有较大更改时更新 39 | 发行版 |[CTAN下载页面](https://www.ctan.org/pkg/cquthesis)| 定期从预发行版更新,和TeX Live等发行版一同发行 40 | 41 | 排版示例和用户文档随版本发布,如果需要单独下载,请参阅后文。 42 | 43 | ## 部署 44 | 45 | CQUThesis的安装十分便利。下载CQUThesis的.zip压缩包后请将整个文件夹解压出来,进入文件夹后: 46 | 47 | * Windows用户可以直接双击运行`makewin.bat` 48 | * Linux 和 Mac 用户请在Bash窗口中进行如下操作: 49 | ``` 50 | cd path/to/cquthesis 51 | make thesis 52 | ``` 53 | 54 | 即可完成 CQUThesis 的安装和示例文档的编译。以上也是CQUThesis推荐的论文编译方式。 55 | 56 | ## 高级编译 57 | 58 | CQUThesis提供了支持全平台的Makefile来完成论文编译,大部分编译工作基于`latexmk`,能够有效利用中间文件提高编译效率,实现一键编译。 59 | 60 | * Windows用户请在文件夹空白处按住Shift键再点击书鼠标右键,选择“在此处打开命令窗口”,运行下列命令: 61 | ``` 62 | makewin help 63 | ``` 64 | 可查询makewin.bat的详细用法(推荐熟悉,事半功倍)。 65 | 66 | * Linux用户和Mac用户可打开 Makefile 文件查看相关用法。 67 | 68 | ## 更新 69 | 70 | CQUThesis的升级很方便,下载最新的开发版,将zip文件中的`cquthesis.dtx`和`cquthesis.ins`覆盖掉工作文件夹中的相应文件后: 71 | 72 | * Windows用户请在文件夹空白处按住Shift键再点击书鼠标右键,选择“在此处打开命令窗口”,运行下列命令: 73 | ``` 74 | makewin extract 75 | ``` 76 | 77 | * Linux 和 Mac 用户请在 Bash 窗口中进行如下操作: 78 | ``` 79 | cd cquthesis 80 | make cls 81 | ``` 82 | 即可完成 CQUThesis 的升级。 83 | 84 | 85 | # 文档 86 | 87 | 文档涵盖了CQUThesis的使用方法、注意事项、实现方式,推荐阅读以快速上手: 88 | 89 | 文档 | 描述 90 | --- | --- 91 | 排版示例 | 编译`main.tex`获得,也可 [点我下载](https://github.com/nanmu42/CQUThesis/files/4817714/main.pdf) 92 | 用户文档 | 随模板发布,也可[点我下载](https://github.com/nanmu42/CQUThesis/raw/master/cquthesis.pdf) 93 | 94 | 此外,如果您需要向导师或学院征求使用TeX进行论文排版的理解和肯定,[重庆大学TeX用户组](http://jq.qq.com/?_wv=1027&k=2HvYu95)为您提供[《关于推荐重庆大学开设TeX相关课程并推广其运用的提议》](https://github.com/CQUtug/TeXProposal),希望这份文档能帮到您。目前,我们正在学校范围内推动这一提案。 95 | 96 | # 提问和支持 97 | 98 | * [Github Issues](https://github.com/nanmu42/CQUThesis/issues) 99 | * 加入[重庆大学TeX用户组](http://jq.qq.com/?_wv=1027&k=2HvYu95)寻求支持 100 | 101 | # 致谢 / Acknowledgements 102 | 103 | 这个模板是站在巨人肩膀上的成果,感谢LaTeX 2e计划,感谢[CTeX社区](https://github.com/CTeX-org/ctex-kit)提供的中文解决方案,感谢薛瑞尼副教授的[先驱之作](https://github.com/xueruini/thuthesis),感谢[中国科学技术大学TeX用户组](https://github.com/ustctug/gbt-7714-2015)。向你们致以真诚的问候和感激! 104 | 105 | 持续集成构建服务由[Travis CI](https://travis-ci.org/)提供,在构建中,CQUThesis使用了由Christian Schenk开发的[MiKTeX](https://miktex.org),使用[Docker](https://www.docker.com/)进行了[容器化](https://github.com/nanmu42/TeXPackageTestBench),镜像中包含[Ubuntu发行版](https://www.ubuntu.com),作者在此特别致谢。 106 | 107 | 特别感谢参与CQUThesis的开发和维护的诸位[**直接贡献者**](https://github.com/nanmu42/CQUThesis/blob/master/CONTRIBUTORS.md),向你们致以真诚的敬意和感激! 108 | 109 | 特别感谢我的母校重庆大学无偿提供[CTAN镜像](https://mirrors.cqu.edu.cn/ctan/)服务,这对于中国西南地区的TeX用户而言是极大的利好。感谢[CQU Mirror Site Dev. Task Force](https://github.com/cqumirror)和[重庆大学蓝盟](http://lanunion.cqu.edu.cn/)的维护支持! 110 | 111 | 世界因你们更美好。 112 | 113 | The author would like to acknowledge these contributors for their efforts and, essentially, beautiful mind: 114 | 115 | * [The CTeX Community](https://github.com/CTeX-org/ctex-kit) 116 | * [XUE, Ruini](https://github.com/xueruini/thuthesis) 117 | * [USTC TeX User Group](https://github.com/ustctug/gbt-7714-2015) 118 | * [Chongqing University Opensource Mirror](https://github.com/cqumirror) 119 | * [CQU Mirror Site Dev. Task Force](https://github.com/cqumirror) 120 | * [Chongqing University Lan-Union for Computer and Network](http://lanunion.cqu.edu.cn/) 121 | * [Travis CI](https://travis-ci.org/) 122 | * [MiKTeX](https://miktex.org) 123 | * [Docker](https://www.docker.com/) 124 | * [Ubuntu](https://www.ubuntu.com) 125 | 126 | # CQUThesis Toolkit 127 | 128 | 重庆大学LaTeX模板工具箱(CQUThesis Toolkit)是为了增强CQUThesis而提供的额外文件和程序,这些内容往往是对CQUThesis易用性或功能的增强,没有它们,CQUThesis仍然可以良好地独立运行。 129 | 130 | 这些内容有着自己的授权方式和简单的用户协议,不会随本模板的CTAN版本发布,CQUThesis的Github源是这些内容唯一的官方源,程序的更新和修正都会在这里进行。 131 | 132 | # 论文写作规范 133 | 134 | - [重庆大学本科毕业设计(论文)撰写规范化要求(2007修订).pdf](https://github.com/nanmu42/CQUThesis/files/644308/2007.pdf) 135 | - [重庆大学博士、硕士学位论文撰写格式标准(2007修订).pdf](https://github.com/nanmu42/CQUThesis/files/644309/2007.pdf) 136 | - [GB/T 7714-2015 信息与文献 参考文献著录规则.pdf](https://github.com/nanmu42/CQUThesis/files/1096886/GBT.7714-2015.pdf) 137 | 138 | # About CQUThesis 139 | 140 | CQUThesis stands for Chongqing University Thesis Template for LaTeX, bearing the ability to support bachelor, master, doctor dissertations with grace and speed. 141 | -------------------------------------------------------------------------------- /cquthesis.cfg: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `cquthesis.cfg', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% cquthesis.dtx (with options: `cfg') 8 | %% 9 | %% This is a generated file. 10 | %% 11 | %% Copyright (C) 2016-2022 by Zhennan Li 12 | %% This file may be distributed and/or modified under the 13 | %% conditions of the LaTeX Project Public License, either 14 | %% version 1.3 of this license or (at your option) any later 15 | %% version. The latest version of this license is in: 16 | %% 17 | %% http://www.latex-project.org/lppl.txt 18 | %% 19 | %% and version 1.3 or later is part of all distributions of 20 | %% LaTeX version 2005/12/01 or later. 21 | %% 22 | %% This is the configuration file of the cquthesis package with LaTeX2e. 23 | %% 24 | \ProvidesFile{cquthesis.cfg} 25 | [2019/10/12 v1.40 Chongqing University Thesis Template] 26 | \def\cqueqshortname {式} 27 | \def\cqu@denotation@name {主要符号对照表} 28 | \def\shorttablename {表} 29 | \def\shorttablenameEN {Table} 30 | \def\shortfigurename {图} 31 | \def\shortfigurenameEN {Fig.} 32 | \def\listofequationsname {重要算式索引} 33 | \def\listofequationsnameEN {\textbf{List of Equations}} 34 | \def\listoffiguresnameEN {\textbf{List of Figures}} 35 | \def\listoftablesnameEN {\textbf{List of Tables}} 36 | \def\cqu@bib@name {参考文献} 37 | \def\cqu@tocnameinbkmark {目{ }录} 38 | \newcommand{\parenthesesthis}[1]{(#1)} 39 | \ctexset{% 40 | chapter = {% 41 | pagestyle = style@normal, 42 | name = {}, 43 | format = \rmfamily\heiti\centering, 44 | nameformat = \zihao{3}, 45 | titleformat = \zihao{3}, 46 | aftername = \hskip\ccwd, 47 | number = {\ifcqu@liberalformat\chinese{chapter}\else\thechapter\fi}, 48 | beforeskip = 13bp, 49 | afterskip = 24bp, 50 | }, 51 | section = {% 52 | name = {}, 53 | format = \rmfamily\heiti\raggedright, 54 | nameformat = \bfseries\zihao{-3}, 55 | titleformat = \zihao{-3}, 56 | aftername = \hskip\ccwd, 57 | number = {\ifcqu@liberalformat\parenthesesthis{\chinese{section}}\else\thesection\fi}, 58 | beforeskip = 24bp plus 1ex minus .2ex, 59 | afterskip = 6bp plus .2ex, 60 | }, 61 | subsection = {% 62 | name = {}, 63 | format = \rmfamily\heiti\raggedright, 64 | nameformat = \bfseries\zihao{4}, 65 | titleformat = \zihao{4}, 66 | aftername = \hskip\ccwd, 67 | number = {\ifcqu@liberalformat\arabic{subsection}\else\thesubsection\fi}, 68 | beforeskip = 10bp plus 0bp, 69 | afterskip = 10bp, 70 | fixskip = true, 71 | }, 72 | subsubsection = { 73 | name = {}, 74 | runin = false, 75 | indent = \parindent, 76 | aftertitle = {}, 77 | numbering = true, 78 | number = {\ifcqu@liberalformat\parenthesesthis{\arabic{subsubsection}}\else\@circlenum{subsubsection}\fi}, 79 | numberformat+ = {\ifcqu@liberalformat\relax\else\zihao{4}\fi}, 80 | beforeskip = 10bp plus .5bp, 81 | afterskip = 10bp, 82 | fixskip = true, 83 | }, 84 | appendix = {% 85 | numbering = false, 86 | name = {}, 87 | }, 88 | paragraph = { 89 | name = {}, 90 | runin = true, 91 | aftertitle = {\ClassError{cquthesis}% 92 | {Level-5 and below sections are unsupported intentionally.}{}}, 93 | beforeskip = 1ex plus 0.5ex minus .2ex, 94 | afterskip = 1em, 95 | }, 96 | subparagraph = { 97 | name = {}, 98 | runin = true, 99 | indent = \parindent, 100 | indent = 0pt, 101 | aftertitle = {\ClassError{cquthesis}% 102 | {Level-5 and below sections are unsupported intentionally.}{}}, 103 | beforeskip = 1ex plus 0.5ex minus .2ex, 104 | afterskip = 1em, 105 | }, 106 | appendixname=附录, 107 | contentsname={目~~~~~~~~录}, 108 | listfigurename={插图索引}, 109 | listtablename={表格索引}, 110 | figurename=图, 111 | tablename=表, 112 | bibname=参考文献, 113 | indexname=索引, 114 | } 115 | \DefineFNsymbols{cqufnsymbol}{ 116 | {\ding{172}} {\ding{173}} 117 | {\ding{174}} {\ding{175}} 118 | {\ding{176}} {\ding{177}} 119 | {\ding{178}} {\ding{179}} 120 | {\ding{180}} {\ding{181}} 121 | }%cqufnsymbol 122 | \setfnsymbol{cqufnsymbol} 123 | \renewcommand\thempfootnote{\fnsymbol{mpfootnote}} 124 | \pretocmd{\thefootnote}{% 125 | \ifnum \value{footnote} >10 126 | \ClassError{cquthesis}% 127 | {More than 10 footnotes in a single page are not supported.}{} 128 | \fi 129 | }{}{} 130 | \pretocmd{\thempfootnote}{% 131 | \ifnum \value{mpfootnote} >10 132 | \ClassError{cquthesis}% 133 | {More than 10 footnotes in a single page are not supported.}{} 134 | \fi 135 | }{}{} 136 | \theoremsymbol{\ensuremath{\square}} 137 | \newtheorem*{proof}{证明} 138 | \theoremstyle{plain} 139 | \theoremsymbol{} 140 | \theoremseparator{:} 141 | \newtheorem{assumption}{假设}[chapter] 142 | \newtheorem{definition}{定义}[chapter] 143 | \newtheorem{proposition}{命题}[chapter] 144 | \newtheorem{lemma}{引理}[chapter] 145 | \newtheorem{theorem}{定理}[chapter] 146 | \newtheorem{axiom}{公理}[chapter] 147 | \newtheorem{corollary}{推论}[chapter] 148 | \newtheorem{exercise}{练习}[chapter] 149 | \newtheorem{example}{例}[chapter] 150 | \newtheorem{remark}{注释}[chapter] 151 | \newtheorem{problem}{问题}[chapter] 152 | \newtheorem{conjecture}{猜想}[chapter] 153 | \sisetup{% 154 | list-final-separator = { 和 }, 155 | list-pair-separator = { 和 }, 156 | range-phrase = {~}, 157 | }%\sisetup 158 | \AtBeginDocument{% 159 | \def\figureautorefname{图} 160 | \def\tableautorefname{表} 161 | \def\partautorefname{卷} 162 | \def\appendixautorefname{附录} 163 | \def\equationautorefname{式} 164 | \def\Itemautorefname{列表} 165 | \def\chapterautorefname{章} 166 | \def\sectionautorefname{节} 167 | \def\subsectionautorefname{小节} 168 | \def\subsubsectionautorefname{条目} 169 | \def\paragraphautorefname{自然段} 170 | \def\Hfootnoteautorefname{脚注} 171 | \def\AMSautorefname{式} 172 | \def\theoremautorefname{理论} 173 | \def\pageautorefname{页} 174 | }%\AtBeginDocument 175 | \newcommand{\MONTH}{% 176 | \ifcase\the\month 177 | \or January% 1 178 | \or February% 2 179 | \or March% 3 180 | \or April% 4 181 | \or May% 5 182 | \or June% 6 183 | \or July% 7 184 | \or August% 8 185 | \or September% 9 186 | \or October% 10 187 | \or November% 11 188 | \or December% 12 189 | \fi} 190 | \def\cdate{\zhdigits{\the\year}年\zhnumber{\the\month}月} 191 | \def\edate{\MONTH{ }\the\year} 192 | \def\cqu@ckeywords@separator{;} 193 | \def\cqu@ekeywords@separator{; } 194 | \def\cqu@title@separatorCN{\textbf{:}} 195 | \def\cqu@title@separatorEN{\textbf{:}~} 196 | \def\cqu@cabstract@tocname{中文摘要} 197 | \def\cqu@eabstract@tocname{英文摘要} 198 | \def\cqu@cabstract@name{摘~~~~~~~~要} 199 | \def\cqu@eabstract@name{Abstract} 200 | \def\cqu@ckw@title{\textbf{关键词}} 201 | \def\cqu@ekw@title{Keywords} 202 | \def\cqu@workby{By} 203 | \def\cqu@mydata{June, 2023} 204 | \ifcqu@bachelor 205 | \def\cqu@thesistypenameCN{重庆大学本科学生毕业设计(论文)} 206 | \def\cqu@thesistypenameEN{Graduation Design(Thesis) of Chongqing University} 207 | \def\cqu@studentCN{学生} 208 | \def\cqu@studentEN{Undergraduate} 209 | \def\cqu@studentnumCN{学号} 210 | \def\cqu@supervisorCN{指导教师} 211 | \def\cqu@supervisorEN{Supervised by{ }} 212 | \def\cqu@assistsupervisorCN{助理指导教师} 213 | \def\cqu@extrasupervisorCN{校外指导教师} 214 | \def\cqu@assistsupervisorEN{Assistant Supervisor} 215 | \def\cqu@majorCN{学科门类} 216 | \def\cqu@majorEN{Major} 217 | \def\cqu@universitynameCN{重庆大学} 218 | \def\cqu@universitynameEN{Chongqing University} 219 | \else 220 | \ifcqu@master 221 | \def\cqu@thesistypenameCN{重庆大学硕士学位论文} 222 | \def\cqu@thesistypenameEN{A Thesis Submitted to Chongqing University\\% 223 | in Partial Fulfillment of the Requirement for% 224 | \ifcqu@academic{ }the\fi\\\cqu@edgree} 225 | \def\cqu@studentCN{学生姓名} 226 | \def\cqu@supervisorCN{指导教师} 227 | \def\cqu@supervisorEN{Supervised by{ }} 228 | \def\cqu@psupervisorCN{兼职导师} 229 | \def\cqu@psupervisorEN{Pluralistic~Supervisor} 230 | \def\cqu@majorCN{专业} 231 | \def\cqu@majorEN{Specialty} 232 | \ifcqu@academic 233 | \def\cqu@mastertype{(学术学位)} 234 | \def\cqu@majorclassCN{学科名称} 235 | \else 236 | \def\cqu@mastertype{(专业学位)} 237 | \def\cqu@majorclassCN{学位类型} 238 | \fi 239 | \def\cqu@universitynameCN{重庆大学} 240 | \def\cqu@universitynameEN{Chongqing University, Chongqing, China} 241 | \else 242 | \ifcqu@doctor 243 | \def\cqu@thesistypenameCN{重庆大学博士学位论文} 244 | \def\cqu@thesistype{(学术学位)} 245 | \def\cqu@thesistypenameEN{A Dissertation Submitted to Chongqing University\\% 246 | In Partial Fulfillment of the Requirement for the\\ 247 | Doctor’s Degree of Engineering} 248 | \def\cqu@studentCN{学生姓名} 249 | \def\cqu@studentEN{Ph.D. Candidate} 250 | \def\cqu@supervisorCN{指导教师} 251 | \def\cqu@supervisorEN{Supervised by{ }} 252 | \def\cqu@majorCN{学科门类} 253 | \def\cqu@majorclassCN{学科名称} 254 | \def\cqu@research_directionCN{研究方向} 255 | \def\cqu@chair{答辩委员会主席} 256 | \def\cqu@shouweitime{授位时间} 257 | \def\cqu@majorEN{} 258 | \def\cqu@universitynameCN{重庆大学} 259 | \def\cqu@universitynameEN{Chongqing University} 260 | \else 261 | \ClassWarning{cquthesis}% 262 | {Specified thesis type is obligatory: \MessageBreak 263 | type=[bachelor|master|doctor](How did you bypass the type check?)}{} 264 | \fi 265 | \fi 266 | \fi 267 | \def\cqu@innotitle{独创性声明} 268 | \def\cqu@innobody{% 269 | 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别标注和致谢的地方外,论文中不包含其他人已经发表或撰写中的研究成果,也不包含为获得重庆大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本文所做的任何贡献均已在论文中做了明确的说明并表示谢意。} 270 | \def\cqu@innosignature{学位论文作者签名:} 271 | \def\cqu@authtitle{学位论文版权使用授权书} 272 | \def\cqu@authcheckpart{% 273 | 保\hskip\ccwd{}密(\hskip2\ccwd),在\rule{3\ccwd}{0.15mm}年解密后适用本授权书。\\ 274 | 不保密(\hskip2\ccwd)。} 275 | \def\cqu@authbody{ 276 | 本学位论文作者完全了解重庆大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权重庆大学可以把学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 277 | \\[\baselineskip] 278 | \indent\parbox{7\ccwd}{本学位论文属于}\hskip\ccwd\parbox{.6\textwidth}{\cqu@authcheckpart} 279 | \\[\baselineskip] 280 | \indent(请只在上述一个括号内打“\ding{51}”)} 281 | \def\cqu@authsignaturestu{学位论文作者签名:} 282 | \def\cqu@authsignaturesup{导师签名:} 283 | \def\cqu@signdate{签字日期:\hskip3\ccwd{}年\hskip2\ccwd{}月\hskip2\ccwd{}日} 284 | \let\cqu@thesisname\cqu@thesistypenameCN 285 | \endinput 286 | %% 287 | %% End of file `cquthesis.cfg'. 288 | -------------------------------------------------------------------------------- /contents/cover.tex: -------------------------------------------------------------------------------- 1 | \cqusetup{ 2 | % ************ 注意 ************ 3 | % * 1. \cqusetup{}中不能出现全空的行,如果需要全空行请在行首注释 4 | % * 2. 不需要的配置信息可以放心地坐视不理、留空、删除或注释(都不会有影响) 5 | % * 6 | % ******************************** 7 | % =================== 8 | % 论文的中英文题目 9 | % =================== 10 | ctitle = {面向车载边缘计算的信息物理融合系统\\关键技术研究}, 11 | etitle = {Research on Key Techniques for Cyber-Physical System in Vehicular Edge Computing}, 12 | % =================== 13 | % 作者部分的信息 14 | % \secretize{}为盲审标记点,在打开盲审开关时内容会自动被替换为***输出,盲审开关默认关闭 15 | % =================== 16 | cauthor = \secretize{许新操}, % 你的姓名,以下每项都以英文逗号结束 17 | eauthor = \secretize{Xincao~Xu}, % 姓名拼音,~代表不会断行的空格 18 | studentid = \secretize{20128888}, % 仅本科生,学号 19 | csupervisor = \secretize{刘~~~~凯~~~~教授}, % 导师的姓名 20 | esupervisor = \secretize{{Prof.~Kai Liu}}, % 导师的姓名拼音 21 | cassistsupervisor = \secretize{}, % 本科生可选,助理指导教师姓名,不用时请留空为{} 22 | cextrasupervisor = \secretize{}, % 本科生可选,校外指导教师姓名,不用时请留空为{} 23 | eassistsupervisor = \secretize{}, % 本科生可选,助理指导教师或/和校外指导教师姓名拼音,不用时请留空为{} 24 | cpsupervisor = \secretize{丁小明~~工程师}, % 仅专硕,兼职导师姓名 25 | epsupervisor = \secretize{Eng.~Xiaoming~Ding}, % 仅专硕,兼职导师姓名拼音 26 | cclass = \rmfamily{2023}年\rmfamily{6}月, % 博士生和学硕填学科门类,学硕填学科类型 27 | research_direction = \zihao{3}{车联网}, 28 | edgree = {Degree of Master of Enginnering}, % 专硕填Professional Degree,其他按实情填写 29 | % 提示:如果内容太长,可以用\zihao{}命令控制字号,作用范围:{}内 30 | cmajor = 工~~~~学, % 专硕不需填,填写专业名称 31 | emajor = Material Science and Engineering, % % 专硕不需填,填写专业英文名称 32 | cmajora = \zihao{3}{计算机科学与技术}, 33 | cmajorb = \zihao{3}{车联网}, 34 | cmajorc = \secretize{雒江涛~~~~教授}, 35 | % cmajord = 2023年6月, 36 | % =================== 37 | % 底部的学院名称和日期 38 | % =================== 39 | cdepartment = 材料科学与工程学院, %学院名称 40 | edepartment = College of Material Science and Engineering, %学院英文名称 41 | % =================== 42 | % 封面的日期可以自动生成(注释掉时),也可以解除注释手动指定,例如:二〇一六年五月 43 | % =================== 44 | % mycdate = {2023年6月}, 45 | % myedate = {June 2023}, 46 | }% End of \cqusetup 47 | % =================== 48 | % 49 | % 论文的摘要 50 | % 51 | % =================== 52 | \begin{cabstract} % 中文摘要 53 | 现实世界中的众多领域时常会面临各种复杂场景的决策问题,因此实现相关决策的最优化一直是科学研究的热点。然而,随着科学技术的快速发展,大量最优化问题的规模呈爆炸式增长。大规模的优化问题如空中交通流优化、QoS-aware服务优化、大规模交通网络中的车辆路径优化等,通常具有成千上万,甚至达到十万、百万个决策变量,决策变量数量的快速增加,则会导致搜索空间的大小呈现指数增长,这造成启发式搜索算法性能快速恶化,进而造成“维数灾难”。此外,大规模优化问题多具有多峰性、高非线性、不可导性等特性,这同样易引起多峰函数的局部最优解的个数呈指数增长;而当计算资源有限时,算法易陷入局部最优而难以获得优化问题的全局最优解,这将给确定性优化算法带来极大的求解难度。为解决上述问题,已有部分研究通过采用简化搜索空间的方法来求解大规模优化问题,如基于分解的方法和基于降维的方法。尽管这类方法在解决大规模优化问题上已取得了相对优越的性能,但其仍存在显著的不足。其中,基于分解的方法,由于其严重依赖于决策变量之间交互的准确性检测,当其面临复杂的或不可分解的大规模优化问题时,易出现无法有效地分解大规模搜索空间而求解失败的问题;而基于降维的方法,在简化空间中则难以保证全局最优解和高质量解的存在。基于上述求解方法的缺点,本文以求解大规模优化问题中简化搜索空间的方法作为切入点,展开多空间进化搜索算法的设计与研究,主要研究内容包含以下几方面: 54 | 55 | \circled{1} 针对大规模连续优化问题,现有简化搜索空间的求解方法,常需考虑决策变量之间关系的假设和要求,因而无法保证全局最优解或高质量解的存在的问题。基于此,设计了一种面向大规模连续优化问题的多空间进化搜索算法。在该算法中,给定一个原问题,除原始问题空间外,构建给定问题的多个简化问题空间,继而学习空间之间的映射。通过映射实现两个空间之间的知识迁移,将在简化问题空间发现的有用的信息迁移给原始问题空间,加速原始问题空间的搜索;同时,将在原始问题空间发现的高质量的解迁移给简化问题空间并引导简化问题空间的搜索方向朝向理想区域演化。此外,为探索不同辅助任务的有效性,对简化问题空间进行阶段性的重构。在CEC2013大规模连续基准测试集的15个问题上对该算法的有效性能进行验证,结果显示,该研究提出的多空间进化搜索(MSES)算法在解决大规模优化问题上,相较于基于协同进化算法DG2、RDG、RDG3,分别在13、13、12个问题上获得了较好的平均目标值;与基于非分解的优化算法DLLSO和MeMAO算法相比,分别在9、13个问题上获得了较好的平均目标值。 56 | 57 | \circled{2} 针对大规模离散优化问题,该研究以经典的且具有代表性的车辆路径规划问题为实例,针对难以确定哪种形式对求解车辆路径问题是最有效的形式的问题,设计了多空间模因搜索算法。该算法构建了给定车辆路径问题的不同的简化形式,将简化形式的车辆路径问题作为原始车辆路径问题的辅助任务。在不同形式的车辆路径问题上同时执行模因搜索,并将简化形式的车辆路径问题搜索到的好的解迁移给原始的车辆路径问题,以加速其收敛。该算法在大规模车辆路径问题的基准测试集的65个实例上的实验结果表明,与所用的基线算法和随机算法相比,该研究提出的多空间模因搜索算法在65个实例上均获得了较好的平均开销。 58 | 59 | \circled{3} 针对多空间进化搜索算法中资源分配不合理的问题,提出了基于动态资源分配策略的多空间进化搜索算法。该算法设计了一种资源分配合理性检测机制,该机制用于检测不同空间之间资源分配的合理性;同时,构建了一种基于显式贡献和隐式贡献的在线资源统计方法,其中,在不同空间上执行独立进化搜索并优化出最优解的适应度值的提升量定义为显式贡献,而问题空间中迁移解的个体的存活率定义为隐式贡献。并采用参数自适应方法来协调空间的显式贡献和隐式贡献,以进行资源的合理分配,进而提升多空间进化搜索算法的性能。在CEC2013大规模连续基准测试集的15个问题上对该算法的有效性进行验证,结果显示,该研究提出的基于动态资源分配策略的多空间进化搜索(MSES-DRA)算法在解决大规模优化问题上,相较于在分别采用不同优化器DLLSO、SHADE、SaNSDE时的多空间进化搜索(MSES)算法,分别在10、9、9个问题上获得较好的平均目标值;与FCRACC和CCFR2方法相比,分别在10、10个问题上获得较好的平均目标值。 60 | \end{cabstract} 61 | % 中文关键词,请使用英文逗号分隔: 62 | \ckeywords{重庆大学,\LaTeX,\LaTeXe,论文,模板} 63 | 64 | \begin{eabstract} % 英文摘要 65 | Decision problems in complex scenarios widely exist in many fields in real world. The optimization of relevant decisions has drawn much attentation in scientific research. In recent years, with the development of the science and technology, the scale of these optimization problems sharply increases. Generally, large-scale optimization problems have thousands of decision variables, particular examples include optimization of air traffic flow, QoS-aware service, vehicle route optimization in large-scale transportation network, etc. In such scenario, the fast-growing number of decision variables may lead to the exponential growth of search space, which results in deteriorating rapidly on the performance of heuristic search algorithm and “curse of dimension”. Furthermore, the large-scale optimization problems typically involve the characteristics of multimodality, nonlinearity and nondifferentiability, which leads to the soaring number of local optimal solutions of multimodal function increasing exponentially. As a result, it is difficult to find the optimal solution within the limited computing resources, and the algorithm may fall into the local optimization, which has great difficulty and challenge for deterministic optimization algorithm. To address these issues, many approaches to simplify the search space are proposed, which can be categorized into two groups: decomposition-based methods and dimension-reduction-based methods. However, it is worth noting that decomposition-based approaches mostly rely on the accurate detection of the relationships between decision variables, which may fail in solving large-scale optimization problems that possess complex variable interactions, or even nondecomposable. On the other hand, dimension-reduction-methods may lose important optimization information, and it is difficult to guarantees the global optimum or high-quality solutions in reduced solution space. Keeping this in mind, in this thesis, we focus on simplifying the search space of large-scale optimization problem to develop multi-space evolutionary search paradigm. Specifically, main contributions of this thesis can be summarized as follows: 66 | 67 | \circled{1} Existing simplifying search space methods for solving large-scale continuous optimization problem often need to consider the problem characterstics. There are assumptions and requirements on the relationships between decision variables of the given optimization problem, and it cannot guarantee the existence of global optimum or high-quality solutions in the search space. To tackle such problem, a new evolutionary search paradigm, namely the multi-space evolutionary search, for solving large-scale continuous optimization problem is proposed. Specifically, given a large-scale optimization problem, besides the original problem space, multiple simplified solution spaces are derived. Moreover, the mapping between these problem spaces is learned, which will be used for knowledge transfer across spaces during the evolutionary search process. In this way, the useful traits found in the simplified problem space can be leveraged to facilitate the search in the original space, while the high-quality solutions found in the original problem space may also guide the search direction in the simplified problem space toward promising areas. Furthermore, to explore the usefulness of diverse auxiliary tasks, the simplified problem space will be re-constructed periodically using the solutions found during the evolutionary search process. The experimental results on 15 functions of CEC2013 large-scale benchmark suite show that the proposed MSES achieved significantly better averaged objective values on 13, 13 and 12 problems in contrast to DG2, RDG, RDG3. Compared with the DLLSO and MeMAO, the proposed MSES obtained significantly better averaged objective values on 9 and 13 problems. 68 | 69 | \circled{2} For solving large-scale discrete optimization problems, the multi-space memetic search algorithm is presented by taking the classical vehicle routing problem as an example. Specifically, multiple simplified vehicle routing problems are firstly constructed and acted as the auxiliary tasks of the original vehicle routing problem. The memetic evolutionary search is thus simultaneously performed on simplified vehicle routing problems and original vehicle routing problem. In this way, the useful traits found in the simplified vehicle routing problems can be transferred to original vehicle routing problem to enhance the evolutionary search. The experimental results on 65 instances of commonly used CVRP benchmark suit demonstrate that the proposed method can obtain superior results than the baseline algorithm and random method. 70 | 71 | \circled{3} To handle the unreasonable resource allocation problem in multi-space evolutionary search, the multi-space evolutionary search with dynamic resource allocation strategy (MSES-DRA) is proposed, which is designed based on explicit-implicit contributions of spaces according to the interaction between optimal individual and population. In particular, a detection mechanism is presented to measure the reasonableness of assignment in terms of computation resource of spaces. Meanwhile, an online resource statistics based on implicit and explicit contribution is proposed. Specifically, the explicit contributions can be defined by the fitness improvements of the best solutions found by independent evolutionary search performed on different spaces. The implicit contributions can be defined by the survivals of individuals that are transferred solutions across problem spaces. Further, an adaptive technology based on feedback is conducted to balance the assignment in terms of computational resource based on explicit contribution and implicit contribution. The experimental results on 15 problems of CEC2013 large-scale benchmark suite demonstrate that the proposed MSES-DRA method achieved significantly better averaged objective values on 10, 9 and 9 problems in contrast to the MSES method using DLLSO, SHADE and SaNSDE as the optimizers, respectively. Compared with the FCRACC and CCFR2, the proposed MSES-DRA method obtained significantly better averaged objective values on 10 and 10 problems, respectively. 72 | \end{eabstract} 73 | % 英文关键词,请使用英文逗号分隔,关键词内可以空格: 74 | \ekeywords{Large-scale optimization, Evolutionary multitasking, Knowledge transfer, Dynamic resource allocation, Vehicle routing problem 75 | } 76 | 77 | % 封面和摘要配置完成 78 | -------------------------------------------------------------------------------- /contents/analysis.tex: -------------------------------------------------------------------------------- 1 | \chapter{实验结果和分析} 2 | 3 | \section{字体命令}\label{txt:FreqCmd} 4 | {\kaishu 玲珑骰子安红豆,入骨相思知不知。\hfill ——温庭筠} 5 | 6 | {\fangsong 愿得一心人,白头不相离。\hfill ——卓文君} 7 | 8 | {\ifcsname youyuan\endcsname\youyuan\else[无 \cs{youyuan} 字体。]\fi 去年今日此门中,人面桃花相映红。\hfill ——崔护} 9 | 10 | {\heiti 入我相思门,知我相思苦。\hfill ——李白} 11 | 12 | {\ifcsname lishu\endcsname\lishu\else[无 \cs{lishu} 字体。]\fi 此情可待成追忆?只是当时已惘然。\hfill ——李商隐} 13 | 14 | {\songti 雨打梨花深闭门,忘了青春,误了青春。\hfill ——唐寅} 15 | 16 | 使用\cs{textbf}和\cs{textit}以及\cs{underline}的效果分别如下: 17 | 18 | 这句话的\textbf{文字}分别\textit{使用}了三种命令来\underline{处理}。 19 | 20 | The \textbf{words} in this sentences are \textit{processed} with three different \underline{cmd}. 21 | 22 | \section{表格样本} 23 | 24 | \subsection{基本表格} 25 | \label{sec:basictable} 26 | 27 | 模板中关于表格的宏包有三个: \pkg{booktabs}、\pkg{array} 和\pkg{longtabular}。三线表可以用 \pkg{booktabs}提供的 \cs{toprule}、\cs{midrule} 和 \cs{bottomrule}。它们与\pkg{longtable} 能很好的配合使用。 28 | \begin{table}[htb] 29 | \centering 30 | \begin{minipage}[t]{0.9\linewidth} % 如果想在表格中使用脚注,minipage是个不错的办法 31 | \caption[模板文件]{模板文件。如果表格的标题很长,那么在表格索引中就会很不美观,所以要像 chapter 那样在前面用中括号写一个简短的标题。这个标题会出现在索引中。} 32 | \label{tab:template-files} 33 | \begin{tabularx}{\linewidth}{lX} 34 | \toprule 35 | {\heiti 文件名} & {\heiti 描述} \\ 36 | \midrule 37 | cquthesis.cls & 模板类文件\footnote{这是一个脚注}\\ 38 | cquthesis.cfg & 模板配置文件\footnote{这是又一个脚注}\\ 39 | cqunumberical.bst & 参考文献 BIB\TeX\ 样式文件。\\ 40 | cquthesis.sty & 常用的包和命令写在这里,减轻主文件的负担。\footnote{同一页上的脚注最多支持到10个}\\ 41 | \bottomrule 42 | \end{tabularx} 43 | \end{minipage} 44 | \end{table} 45 | 46 | 首先来看一个最简单的表格。\autoref{tab:template-files} 列举了本模板主要文件及其功能。请大家注意三线表中各条线对应的命令。这个例子还展示了如何在表格中正确使用脚注。由于 \LaTeX{} 本身不支持在表格中使用\cs{footnote},所以我们不得不将表格放在小页中,而且最好将表格的宽度设置为小页的宽度,这样脚注看起来才更美观。 47 | 48 | \subsection{双语题注和复杂表格} 49 | \label{sec:complicatedtable} 50 | 使用\cs{bicaption}\marg{中文}\marg{英文}可以对图或者表的浮动体添加双语题注,对方程式进行双语题注,请使用\cs{eqlist}\marg{中文}\oarg{英文},注意括号。 51 | 52 | 我们经常会在表格下方标注数据来源,或者对表格里面的条目进行解释。前面的脚注是一种不错的方法,如果不喜欢脚注,可以在表格后面写注释,比如\autoref{tab:tabexamp1}。 53 | \begin{table}[htbp] 54 | \centering 55 | \bicaption{复杂表格示例}{A more structured table} 56 | \label{tab:tabexamp1} 57 | \begin{minipage}[t]{0.8\textwidth} 58 | \begin{tabularx}{\linewidth}{|l|X|X|X|X|} 59 | \hline 60 | \multirow{2}*{\diagbox[width=5em]{x}{y}} & \multicolumn{2}{c|}{First Half} & \multicolumn{2}{c|}{Second Half}\\\cline{2-5} 61 | & 1st Qtr &2nd Qtr&3rd Qtr&4th Qtr \\ \hline 62 | East$^{*}$ & 20.4& 27.4& 90& 20.4 \\ 63 | West$^{**}$ & 30.6 & 38.6 & 34.6 & 31.6 \\ \hline 64 | \end{tabularx}\\[2pt] 65 | \footnotesize 66 | *:东部\\ 67 | **:西部 68 | \end{minipage} 69 | \end{table} 70 | 71 | 此外,表~\ref{tab:tabexamp1} 同时还演示了另外两个功能:1)通过 \pkg{tabularx} 的\texttt{|X|} 扩展实现表格自动放大;2)通过命令 \cs{diagbox} 在表头部分插入反斜线。 72 | 73 | \begin{table}[htbp] 74 | \noindent\begin{minipage}{0.5\textwidth} 75 | \centering 76 | \caption{第一个并排子表格} 77 | \label{tab:parallel1} 78 | \begin{tabular}{p{2cm}p{2cm}} 79 | \toprule 80 | No. & Name \\\midrule 81 | \xuhao[1] & Fox \\ 82 | \xuhao & Panda \\ 83 | \xuhao & Dog \\ 84 | \bottomrule 85 | \end{tabular} 86 | \end{minipage}% 87 | \setxuhao[2] 88 | \begin{minipage}{0.5\textwidth} 89 | \centering 90 | \bicaption{第二个并排子表格}{The second subtable in one row} 91 | \label{tab:parallel2} 92 | \begin{tabular}{p{2cm}p{2cm}} 93 | \toprule 94 | No. & Name \\\midrule 95 | \xuhao[1] & Charlie \\ 96 | \xuhao & Jack \\ 97 | \xuhao & Tom \\ 98 | \bottomrule 99 | \end{tabular} 100 | \end{minipage} 101 | \end{table} 102 | 103 | \begin{table}[htbp] 104 | \centering 105 | \caption{并排子表格} 106 | \label{tab:subtable} 107 | \subcaptionbox{第一个子表格} 108 | { 109 | \begin{tabular}{p{2cm}p{2cm}} 110 | \toprule 111 | 111 & 222 \\\midrule 112 | 222 & 333 \\\bottomrule 113 | \end{tabular} 114 | } 115 | \hskip2cm 116 | \subcaptionbox{第二个子表格} 117 | { 118 | \begin{tabular}{p{2cm}p{2cm}} 119 | \toprule 120 | 111 & 222 \\\midrule 121 | 222 & 333 \\\bottomrule 122 | \end{tabular} 123 | } 124 | \end{table} 125 | 126 | 不可否认 \LaTeX{} 的表格功能没有想象中的那么强大,不过只要足够认真,足够细致,同样可以排出来非常复杂非常漂亮的表格。 127 | 128 | \tabref{tab:parallel1}和\tabref{tab:parallel2}展示了\cs{xuhao}和\cs{xuhao}\texttt{[1]}的使用,可以达到自动编号的效果。不过要记得在每次使用之前使用\cs{resetxuhao},或者\cs{xuhao}\texttt{[1]}。使用\cs{setxuhao}\oarg{1-6}可以更改序号的标记方式,如\tabref{tab:parallel2}所示。详细用法请参阅用户手册。 129 | 130 | \begin{longtable}[c]{c*{6}{r}} 131 | \bicaption[实验数据]{实验数据,这个题注是双语的,而且十分的长,注意这在索引中的处理方式}[Data in experiment]{Data in experiment, and this is a really long long long long long long long long long long text.}\label{tab:performance}\\ 132 | \toprule 133 | 测试程序 & \multicolumn{1}{c}{正常运行} & \multicolumn{1}{c}{同步} & \multicolumn{1}{c}{检查点} & \multicolumn{1}{c}{卷回恢复} 134 | & \multicolumn{1}{c}{进程迁移} & \multicolumn{1}{c}{检查点} \\ 135 | & \multicolumn{1}{c}{时间 (s)}& \multicolumn{1}{c}{时间 (s)}& 136 | \multicolumn{1}{c}{时间 (s)}& \multicolumn{1}{c}{时间 (s)}& \multicolumn{1}{c}{ 137 | 时间 (s)}& 文件(KB)\\\midrule 138 | \endfirsthead 139 | \multicolumn{7}{c}{续表~\thetable\hskip1em 实验数据}\\ 140 | \toprule 141 | 测试程序 & \multicolumn{1}{c}{正常运行} & \multicolumn{1}{c}{同步} & \multicolumn{1}{c}{检查点} & \multicolumn{1}{c}{卷回恢复} 142 | & \multicolumn{1}{c}{进程迁移} & \multicolumn{1}{c}{检查点} \\ 143 | & \multicolumn{1}{c}{时间 (s)}& \multicolumn{1}{c}{时间 (s)}& 144 | \multicolumn{1}{c}{时间 (s)}& \multicolumn{1}{c}{时间 (s)}& \multicolumn{1}{c}{ 145 | 时间 (s)}& 文件(KB)\\\midrule 146 | \endhead 147 | \hline 148 | \multicolumn{7}{r}{续下页} 149 | \endfoot 150 | \endlastfoot 151 | CG.A.2 & 23.05 & 0.002 & 0.116 & 0.035 & 0.589 & 32491 \\ 152 | CG.A.4 & 15.06 & 0.003 & 0.067 & 0.021 & 0.351 & 18211 \\ 153 | CG.A.8 & 13.38 & 0.004 & 0.072 & 0.023 & 0.210 & 9890 \\ 154 | CG.B.2 & 867.45 & 0.002 & 0.864 & 0.232 & 3.256 & 228562 \\ 155 | CG.B.4 & 501.61 & 0.003 & 0.438 & 0.136 & 2.075 & 123862 \\ 156 | CG.B.8 & 384.65 & 0.004 & 0.457 & 0.108 & 1.235 & 63777 \\ 157 | MG.A.2 & 112.27 & 0.002 & 0.846 & 0.237 & 3.930 & 236473 \\ 158 | MG.A.4 & 59.84 & 0.003 & 0.442 & 0.128 & 2.070 & 123875 \\ 159 | MG.A.8 & 31.38 & 0.003 & 0.476 & 0.114 & 1.041 & 60627 \\ 160 | MG.B.2 & 526.28 & 0.002 & 0.821 & 0.238 & 4.176 & 236635 \\ 161 | MG.B.4 & 280.11 & 0.003 & 0.432 & 0.130 & 1.706 & 123793 \\ 162 | MG.B.8 & 148.29 & 0.003 & 0.442 & 0.116 & 0.893 & 60600 \\ 163 | LU.A.2 & 2116.54 & 0.002 & 0.110 & 0.030 & 0.532 & 28754 \\ 164 | LU.A.4 & 1102.50 & 0.002 & 0.069 & 0.017 & 0.255 & 14915 \\ 165 | LU.A.8 & 574.47 & 0.003 & 0.067 & 0.016 & 0.192 & 8655 \\ 166 | LU.B.2 & 9712.87 & 0.002 & 0.357 & 0.104 & 1.734 & 101975 \\ 167 | LU.B.4 & 4757.80 & 0.003 & 0.190 & 0.056 & 0.808 & 53522 \\ 168 | LU.B.8 & 2444.05 & 0.004 & 0.222 & 0.057 & 0.548 & 30134 \\ 169 | CG.B.2 & 867.45 & 0.002 & 0.864 & 0.232 & 3.256 & 228562 \\ 170 | CG.B.4 & 501.61 & 0.003 & 0.438 & 0.136 & 2.075 & 123862 \\ 171 | CG.B.8 & 384.65 & 0.004 & 0.457 & 0.108 & 1.235 & 63777 \\ 172 | MG.A.2 & 112.27 & 0.002 & 0.846 & 0.237 & 3.930 & 236473 \\ 173 | MG.A.4 & 59.84 & 0.003 & 0.442 & 0.128 & 2.070 & 123875 \\ 174 | MG.A.8 & 31.38 & 0.003 & 0.476 & 0.114 & 1.041 & 60627 \\ 175 | MG.B.2 & 526.28 & 0.002 & 0.821 & 0.238 & 4.176 & 236635 \\ 176 | MG.B.4 & 280.11 & 0.003 & 0.432 & 0.130 & 1.706 & 123793 \\ 177 | MG.B.8 & 148.29 & 0.003 & 0.442 & 0.116 & 0.893 & 60600 \\ 178 | LU.A.2 & 2116.54 & 0.002 & 0.110 & 0.030 & 0.532 & 28754 \\ 179 | LU.A.4 & 1102.50 & 0.002 & 0.069 & 0.017 & 0.255 & 14915 \\ 180 | LU.A.8 & 574.47 & 0.003 & 0.067 & 0.016 & 0.192 & 8655 \\ 181 | LU.B.2 & 9712.87 & 0.002 & 0.357 & 0.104 & 1.734 & 101975 \\ 182 | LU.B.4 & 4757.80 & 0.003 & 0.190 & 0.056 & 0.808 & 53522 \\ 183 | LU.B.8 & 2444.05 & 0.004 & 0.222 & 0.057 & 0.548 & 30134 \\ 184 | EP.A.2 & 123.81 & 0.002 & 0.010 & 0.003 & 0.074 & 1834 \\ 185 | EP.A.4 & 61.92 & 0.003 & 0.011 & 0.004 & 0.073 & 1743 \\ 186 | EP.A.8 & 31.06 & 0.004 & 0.017 & 0.005 & 0.073 & 1661 \\ 187 | EP.B.2 & 495.49 & 0.001 & 0.009 & 0.003 & 0.196 & 2011 \\ 188 | EP.B.4 & 247.69 & 0.002 & 0.012 & 0.004 & 0.122 & 1663 \\ 189 | EP.B.8 & 126.74 & 0.003 & 0.017 & 0.005 & 0.083 & 1656 \\ 190 | \bottomrule 191 | \end{longtable} 192 | 193 | 如果你要排版的表格长度超过一页,那么推荐使用 \pkg{longtable} 或者 \pkg{supertabular}宏包,模板对 \pkg{longtable} 进行了相应的设置,所以用起来可能简单一些。表~\ref{tab:performance} 就是 \pkg{longtable} 的简单示例。 194 | 195 | \section{定理环境} 196 | \label{sec:theorem} 197 | 198 | 给大家演示一下各种和证明有关的环境: 199 | 200 | \begin{assumption} 201 | 假设以下数学方程成立: 202 | \begin{eqnarray} 203 | \label{eq:eqnxmp} 204 | c & = & a^2 - b^2\\ 205 | & = & (a+b)(a-b) 206 | \end{eqnarray} 207 | \end{assumption} 208 | 209 | \begin{assumption} 210 | 依然假设以下数学方程成立,注意整个系统是自动编号的: 211 | \begin{eqnarray} 212 | \label{eq:eqnxmp2} 213 | c & = & a^2 - b^2\\ 214 | & = & (a+b)(a-b) 215 | \end{eqnarray} 216 | \end{assumption} 217 | 218 | \begin{definition} 219 | 我们定义\ref{eq:eqnxmp}中的方程名称为\cquthesis 。你看,环境里是可以相互引用的。 220 | \end{definition} 221 | 222 | \begin{proposition} 223 | 曾子曰:「吾日三省吾身 —— 为人谋而不忠乎?与朋友交而不信乎?传不习乎?」 224 | \end{proposition} 225 | 226 | 多么凄美的命题啊!其日牛马嘶,新妇入青庐,奄奄黄昏后,寂寂人定初,我命绝今日, 227 | 魂去尸长留,揽裙脱丝履,举身赴清池,府吏闻此事,心知长别离,徘徊庭树下,自挂东南 228 | 枝。 229 | 230 | \begin{remark} 231 | 天不言自高,水不言自流。 232 | \begin{gather*} 233 | \begin{split} 234 | \varphi(x,z) 235 | &=z-\gamma_{10}x-\gamma_{mn}x^mz^n\\ 236 | &=z-Mr^{-1}x-Mr^{-(m+n)}x^mz^n 237 | \end{split}\\[6pt] 238 | \begin{align} \zeta^0&=(\xi^0)^2,\\ 239 | \zeta^1 &=\xi^0\xi^1,\\ 240 | \zeta^2 &=(\xi^1)^2, 241 | \end{align} 242 | \end{gather*} 243 | \end{remark} 244 | 245 | 天尊地卑,乾坤定矣。卑高以陈,贵贱位矣。 动静有常,刚柔断矣。方以类聚,物以群分, 246 | 吉凶生矣。在天成象,在地成形,变化见矣。鼓之以雷霆,润之以风雨,日月运行,一寒一 247 | 暑,乾道成男,坤道成女。乾知大始,坤作成物。乾以易知,坤以简能。易则易知,简则易 248 | 从。易知则有亲,易从则有功。有亲则可久,有功则可大。可久则贤人之德,可大则贤人之 249 | 业。易简,而天下矣之理矣;天下之理得,而成位乎其中矣。 250 | 251 | \begin{axiom} 252 | 两点间直线段距离最短。 253 | \begin{align} 254 | x&\equiv y+1\pmod{m^2}\\ 255 | x&\equiv y+1\mod{m^2}\\ 256 | x&\equiv y+1\pod{m^2} 257 | \end{align} 258 | \end{axiom} 259 | 260 | 《彖曰》:大哉乾元,万物资始,乃统天。云行雨施,品物流形。大明始终,六位时成,时 261 | 乘六龙以御天。乾道变化,各正性命,保合大和,乃利贞。首出庶物,万国咸宁。 262 | 263 | 《象曰》:天行健,君子以自强不息。潜龙勿用,阳在下也。见龙再田,德施普也。终日乾 264 | 乾,反复道也。或跃在渊,进无咎也。飞龙在天,大人造也。亢龙有悔,盈不可久也。用九, 265 | 天德不可为首也。    266 | 267 | \begin{lemma} 268 | 《猫和老鼠》是我最爱看的动画片。 269 | \begin{multline*}%\tag*{[a]} % 这个不出现在索引中 270 | \int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2] 271 | -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\ 272 | =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2 273 | \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy 274 | \end{multline*} 275 | \end{lemma} 276 | 277 | 行行重行行,与君生别离。相去万余里,各在天一涯。道路阻且长,会面安可知。胡马依北 278 | 风,越鸟巢南枝。相去日已远,衣带日已缓。浮云蔽白日,游子不顾返。思君令人老,岁月 279 | 忽已晚。 弃捐勿复道,努力加餐饭。 280 | 281 | \begin{theorem}\label{the:theorem1} 282 | 犯我强汉者,虽远必诛\hfill —— 陈汤(汉) 283 | \end{theorem} 284 | \begin{subequations} 285 | \begin{align} 286 | y & = 1 \\ 287 | y & = 0 288 | \end{align} 289 | \end{subequations} 290 | 道可道,非常道。名可名,非常名。无名天地之始;有名万物之母。故常无,欲以观其妙; 291 | 常有,欲以观其徼。此两者,同出而异名,同谓之玄。玄之又玄,众妙之门。上善若水。水 292 | 善利万物而不争,处众人之所恶,故几于道。曲则全,枉则直,洼则盈,敝则新,少则多, 293 | 多则惑。人法地,地法天,天法道,道法自然。知人者智,自知者明。胜人者有力,自胜 294 | 者强。知足者富。强行者有志。不失其所者久。死而不亡者寿。 295 | 296 | \begin{proof} 297 | 燕赵古称多感慨悲歌之士。董生举进士,连不得志于有司,怀抱利器,郁郁适兹土,吾 298 | 知其必有合也。董生勉乎哉? 299 | 300 | 夫以子之不遇时,苟慕义强仁者,皆爱惜焉,矧燕、赵之士出乎其性者哉!然吾尝闻 301 | 风俗与化移易,吾恶知其今不异于古所云邪?聊以吾子之行卜之也。董生勉乎哉? 302 | 303 | 吾因子有所感矣。为我吊望诸君之墓,而观于其市,复有昔时屠狗者乎?为我谢 304 | 曰:“明天子在上,可以出而仕矣!” \hfill —— 韩愈《送董邵南序》 305 | \end{proof} 306 | 307 | \begin{corollary} 308 | 四川话配音的《猫和老鼠》是世界上最好看最好听最有趣的动画片。 309 | \begin{alignat}{3} 310 | V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j, 311 | & \qquad U_i & = u_i, 312 | \qquad \text{for $i\ne j$;}\label{eq:B}\\ 313 | V_j & = v_j, & \qquad X_j & = x_j, 314 | & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i. 315 | \end{alignat} 316 | \end{corollary} 317 | 318 | 迢迢牵牛星,皎皎河汉女。 319 | 纤纤擢素手,札札弄机杼。 320 | 终日不成章,泣涕零如雨。 321 | 河汉清且浅,相去复几许。 322 | 盈盈一水间,脉脉不得语。 323 | 324 | \begin{example} 325 | 大家来看这个例子。 326 | \begin{equation} 327 | \label{ktc} 328 | \left\{\begin{array}{l} 329 | \nabla f({\mbox{\boldmath $x$}}^*)-\sum\limits_{j=1}^p\lambda_j\nabla g_j({\mbox{\boldmath $x$}}^*)=0\\[0.3cm] 330 | \lambda_jg_j({\mbox{\boldmath $x$}}^*)=0,\quad j=1,2,\cdots,p\\[0.2cm] 331 | \lambda_j\ge 0,\quad j=1,2,\cdots,p. 332 | \end{array}\right. 333 | \end{equation} 334 | \end{example} 335 | 336 | \begin{exercise} 337 | 清列出 Andrew S. Tanenbaum 和 W. Richard Stevens 的所有著作。 338 | \end{exercise} 339 | 340 | \begin{conjecture} \textit{Poincare Conjecture} If in a closed three-dimensional 341 | space, any closed curves can shrink to a point continuously, this space can be 342 | deformed to a sphere. 343 | \end{conjecture} 344 | 345 | \begin{problem} 346 | 回答还是不回答,是个问题。 347 | \end{problem} 348 | 349 | 如何引用定理~\ref{the:theorem1} 呢?加上 \cs{label} 使用 \cs{ref} 即可。 350 | 351 | \section{参考文献} 352 | \label{sec:bib} 353 | 重庆大学的要求是参考文献以上标的形式标注于论述之后,就像这样: 354 | 355 | 研究表明\cite{r1},早睡早起有益身体健康。如果想同时引用多个文献\cite{r2,r3,r4,r6},只需要在\csgo{cite}{\null}中用逗号分开\textsf{citeKey}就好。 356 | 357 | \cquthesis 同时提供正文模式的参考文献引用功能\cs{inlinecite},适用于以下情况: 358 | 359 | 文献\inlinecite{r6,z1,z2,z3}表明,文献\inlinecite{r7,r8,r9,r10}所述的情况是有理论依据的。 360 | 361 | \section{数学公式} 362 | \label{sec:equation} 363 | 贝叶斯公式如式~(\ref{equ:chap1:bayes}),其中 $p(y|\mathbf{x})$ 为后验; 364 | $p(\mathbf{x})$ 为先验;分母 $p(\mathbf{x})$ 为归一化因子。 365 | \begin{equation} 366 | \label{equ:chap1:bayes} 367 | p(y|\mathbf{x}) = \frac{p(\mathbf{x},y)}{p(\mathbf{x})}= 368 | \frac{p(\mathbf{x}|y)p(y)}{p(\mathbf{x})} 369 | \end{equation} 370 | 371 | 论文里面公式越多,\TeX{} 就越 happy。再看一个 \pkg{amsmath} 的例子: 372 | \newcommand{\envert}[1]{\left\lvert#1\right\rvert} 373 | \begin{equation}\label{detK2} 374 | \det\mathbf{K}(t=1,t_1,\dots,t_n)=\sum_{I\in\mathbf{n}}(-1)^{\envert{I}} 375 | \prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A} 376 | ^{(\lambda)}(\overline{I}|\overline{I})=0. 377 | \end{equation} 378 | 379 | 前面定理示例部分列举了很多公式环境,可以说把常见的情况都覆盖了,大家在写公式的时候一定要好好看 \pkg{amsmath} 的文档,并参考模板中的用法: 380 | \begin{multline*}%\tag{[b]} % 这个出现在索引中的 381 | \int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2] 382 | -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\ 383 | =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2 384 | \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy 385 | \end{multline*} 386 | 387 | 这里还有一个多级规划公式,这个公式使用\csgo{listeq}{索引名}手动加入了目录后的索引。 388 | \begin{equation}\label{bilevel} 389 | \left\{\begin{array}{l} 390 | \max\limits_{{\mbox{\footnotesize\boldmath $x$}}} F(x,y_1^*,y_2^*,\cdots,y_m^*)\\[0.2cm] 391 | \mbox{subject to:}\\[0.1cm] 392 | \qquad G(x)\le 0\\[0.1cm] 393 | \qquad(y_1^*,y_2^*,\cdots,y_m^*)\mbox{ solves problems }(i=1,2,\cdots,m)\\[0.1cm] 394 | \qquad\left\{\begin{array}{l} 395 | \max\limits_{{\mbox{\footnotesize\boldmath $y_i$}}}f_i(x,y_1,y_2,\cdots,y_m)\\[0.2cm] 396 | \mbox{subject to:}\\[0.1cm] 397 | \qquad g_i(x,y_1,y_2,\cdots,y_m)\le 0. 398 | \end{array}\right. 399 | \end{array}\right. 400 | \end{equation}\listeq{多级规划公式} 401 | 这些跟规划相关的公式都来自于清华大学刘宝碇老师《不确定规划》的课件。以上的许多例子由清华大学的薛瑞尼同学编写。 402 | 403 | \section{化学方程式} 404 | 405 | 使用\pkg{mhchem}的\csgo{ce}{化学式或方程式}能够让你很容易地表示出各种化学式和化学方程: 406 | 407 | 例如: 408 | \begin{center} 409 | \ce{C6H5-CHO}\\ \ce{A\bond{~--}B\bond{~=}C\bond{-~-}D}\\ \ce{SO4^2- + Ba^2+ -> BaSO4 v} 410 | \end{center} 411 | 412 | 复杂一点的方程式也不在话下,如\eqref{eq:chem}: 413 | \begin{equation}\label{eq:chem} 414 | \ce{Zn^2+ 415 | <=>[+ 2OH-][+ 2H+] 416 | $\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$ <=>[+ 2OH-][+ 2H+] 417 | $\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$ 418 | } 419 | \end{equation}\eqlist{复杂的化学方程式}[A sophisticated chemical equation] 420 | 421 | 这个方程式嵌套在了\pkg{equation}环境中,可用\cs{eqlist}(\cs{listeq}的别名,作用相同)来编排到索引中。 422 | 423 | 如果你需要一次列举多个化学式,可以用\cs{cec}命令,例如,\csgo{cec}{H2O,HCl,CCl4}的输出为\cec{H2O,HCl,CCl4}。 424 | 425 | \section{国际单位制(SI Unit)} 426 | 427 | %\cquthesis 采用\pkg{siunitx}作为国际单位制支持宏包,以下是一些使用例子,这个包的文档写得非常不错,请在命令行里输入\texttt{texdoc siunitx}察看。 428 | %\begin{center} 429 | % \num{.3e45}\\ 430 | % \numproduct{1.654 x 2.34 x 3.430}\\ 431 | % \si{\kilogram\metre\per\second}\\ 432 | % \SIlist{0.13;0.67;0.80}{\milli\metre} 433 | %\end{center} 434 | 435 | 436 | \section{绘图} 437 | \label{sec:draw} 438 | 439 | 本模板不预先装载任何绘图包(如 \pkg{pstricks,pgf} 等),完全由用户来决定。个人觉得 \pkg{pgf} 不错,不依赖于 Postscript。此外还有很多针对 \LaTeX{} 的GUI 作图工具,如 XFig(jFig), WinFig, Tpx, Ipe, Dia, Inkscape, LaTeXPiX,jPicEdt, jaxdraw 等等。 440 | 441 | \section{插图} 442 | \label{sec:graphs} 443 | 444 | 推荐《\LaTeXe\ 插图指南》。关于子图形的使用细节请参看 \pkg{subcaption} 宏包的说明文档。 445 | 446 | \subsection{一个图形} 447 | \label{sec:onefig} 448 | 一般图形都是处在浮动环境中。之所以称为浮动是指最终排版效果图形的位置不一定与源文 449 | 件中的位置对应\footnote{这是\LaTeX 的一个设计特性。},这也是刚使 450 | 用 \LaTeX{} 同学可能遇到的问题。如果要强制固定浮动图形的位置,请使用 \pkg{float} 宏包, 451 | 它提供了 \texttt{[H]} 参数,比如图~\ref{fig:xfig1}。 452 | \begin{figure}[htb] % use float package if you want it here 453 | \centering 454 | \includegraphics[height=4cm]{CQUbadge.pdf} 455 | \bicaption{重庆大学校徽}{Chongqing University badage} 456 | \label{fig:xfig1} 457 | \end{figure} 458 | 459 | 大学之道,在明明德,在亲民,在止于至善。知止而后有定;定而后能静;静而后能安;安 460 | 而后能虑;虑而后能得。物有本末,事有终始。知所先后,则近道矣。古之欲明明德于天 461 | 下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心; 462 | 欲正其心者,先诚其意;欲诚其意者,先致其知;致知在格物。物格而后知至;知至而后 463 | 意诚;意诚而后心正;心正而后身 修;身修而后家齐;家齐而后国治;国治而后天下 464 | 平。自天子以至于庶人,壹是皆以修身为本。其本乱而未治者 否矣。其所厚者薄,而其所 465 | 薄者厚,未之有也! 466 | 467 | \hfill —— 《大学》 468 | 469 | 470 | \subsection{多个图形} 471 | \label{sec:multifig} 472 | 473 | 如果多个图形相互独立,并不共用一个图形计数器,那么用 \texttt{minipage} 或者\texttt{parbox} 就可以。否则,请参看 474 | 图~\ref{fig:big1-subcaptionbox},它包含两个小图,分别是图~\ref{fig:subfig1}和图~\ref{fig:subfig2}。推荐使用\cs{subcaptionbox},因为可以像图~\ref{fig:big1-subcaptionbox} 那样对齐子图的标题,也可以使用\pkg{subcaption}宏包的\cs{subcaption}(放在minipage中,用法同\cs{caption})或是\pkg{subfigure}、\pkg{subtable}环境,像图~\ref{fig:big1-subfigure},不要再用 \cs{subfloat}、\cs{subfigure} 和 \cs{subtable}。 475 | 476 | \begin{figure}[h] 477 | \centering% 478 | \subcaptionbox{第一个小图形\label{fig:subfig1}}[3cm] %标题的长度,超过则会换行,如下一个小图。 479 | {\includegraphics[height=4cm]{CQUbadge.pdf}}% 480 | \hspace{4em}% 481 | \subcaptionbox{第二个小图形,注意这个图略矮些。如果标题很长的话,它会自动换行\label{fig:subfig2}} 482 | {\includegraphics[height=3cm]{CQUbadge.pdf}} 483 | \caption{包含子图形的大图形(subcaptionbox示例)} 484 | \label{fig:big1-subcaptionbox} 485 | \end{figure} 486 | \begin{figure}[ht] 487 | \centering% 488 | \begin{subfigure}{3cm} 489 | \includegraphics[height=4cm]{CQUbadge.pdf} 490 | \caption{第一个小图形} 491 | \end{subfigure}% 492 | \hspace{4em}% 493 | \begin{subfigure}{0.5\textwidth} 494 | \includegraphics[height=3cm]{CQUbadge.pdf} 495 | \caption{第二个小图形,注意这个图略矮些。subfigure中同一行的子图在顶端对齐。} 496 | \end{subfigure} 497 | \caption{包含子图形的大图形(subfigure示例)} 498 | \label{fig:big1-subfigure} 499 | \end{figure} 500 | 501 | 如果要把编号的两个图形并排,那么小页就非常有用了。 502 | \begin{figure} 503 | \begin{minipage}{0.48\textwidth} 504 | \centering 505 | \includegraphics[height=5cm]{CQUbadge.pdf} 506 | \caption{并排第一个图} 507 | \label{fig:parallel1} 508 | \end{minipage}\hfill 509 | \begin{minipage}{0.48\textwidth} 510 | \centering 511 | \includegraphics[height=5cm]{CQUbadge.pdf} 512 | \caption{并排第二个图} 513 | \label{fig:parallel2} 514 | \end{minipage} 515 | \end{figure} 516 | 517 | 测试用途:theequation值为:\theequation ,thefigure值为:\thefigure ,thetable值为:\thetable 518 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | git: 2 | depth: 3 3 | 4 | sudo: required 5 | 6 | services: 7 | - docker 8 | 9 | before_install: 10 | - docker version 11 | - docker info 12 | - docker pull nanmu42/miktex-docker 13 | - docker image ls 14 | - docker volume create --name miktex 15 | 16 | before_script: 17 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work nanmu42/miktex-docker mpm --admin --update 18 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor,]{cquthesis}%/' main.tex 19 | # 预先编译几遍main.tex,因为MikTeX有可能会在下宏包时报诡异的错误 20 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make all || true 21 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 22 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make all || true 23 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 24 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make all || true 25 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 26 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make all || true 27 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 28 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make all || true 29 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 30 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make all || true 31 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 32 | 33 | script: 34 | # 出现错误就可以停下了。 35 | - set -e 36 | # 以下所有编译都需要指定fontset=fandol,这个是MikTeX和CTeX宏包搭配时无法正常判断系统为Linux所致 37 | # 这违背了CI不侵入代码的初衷,既然如此,我们也可以进行多个版本/选项的测试了。 38 | # ===本科论文=== 39 | # 0.最少选项基准 40 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor,]{cquthesis}%/' main.tex 41 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 42 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 43 | # 1.图录表录等分别按双语题注混编(combined),分开编录(apart),默认关(off) 44 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, bilinguallist=apart,]{cquthesis}%/' main.tex 45 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 46 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 47 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, bilinguallist=combined,]{cquthesis}%/' main.tex 48 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 49 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 50 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, bilinguallist=off,]{cquthesis}%/' main.tex 51 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 52 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 53 | # 2.盲审模式,开启后封面姓名和致谢部分会隐藏,详情请参阅用户文档,默认关 54 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, blindtrail, ]{cquthesis}%/' main.tex 55 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 56 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 57 | # 3.双面打印时每章的第一页仅右页开启,默认右页开启(openright) 58 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, openany, ]{cquthesis}%/' main.tex 59 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 60 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 61 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, openright, ]{cquthesis}%/' main.tex 62 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 63 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 64 | # 4.论文打印方式,默认采用auto按页数要求自动判定 65 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, printmode=oneside, ]{cquthesis}%/' main.tex 66 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 67 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 68 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, printmode=twoside, ]{cquthesis}%/' main.tex 69 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 70 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 71 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, printmode=auto, ]{cquthesis}%/' main.tex 72 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 73 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 74 | # 5.草稿模式 75 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, draft, ]{cquthesis}%/' main.tex 76 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 77 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 78 | # 6.仅适用本科生,使用文学类论文标题格式,默认未打开 79 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=bachelor, liberalformat, ]{cquthesis}%/' main.tex 80 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 81 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 82 | # ===研究生论文=== 83 | # 0.最少选项基准 84 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master,]{cquthesis}%/' main.tex 85 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 86 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 87 | # 1.图录表录等分别按双语题注混编(combined),分开编录(apart),默认关(off) 88 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, bilinguallist=apart,]{cquthesis}%/' main.tex 89 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 90 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 91 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, bilinguallist=combined,]{cquthesis}%/' main.tex 92 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 93 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 94 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, bilinguallist=off,]{cquthesis}%/' main.tex 95 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 96 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 97 | # 2.盲审模式,开启后封面姓名和致谢部分会隐藏,详情请参阅用户文档,默认关 98 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, blindtrail, ]{cquthesis}%/' main.tex 99 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 100 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 101 | # 3.双面打印时每章的第一页仅右页开启,默认右页开启(openright) 102 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, openany, ]{cquthesis}%/' main.tex 103 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 104 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 105 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, openright, ]{cquthesis}%/' main.tex 106 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 107 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 108 | # 4.论文打印方式,默认采用auto按页数要求自动判定 109 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, printmode=oneside, ]{cquthesis}%/' main.tex 110 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 111 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 112 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, printmode=twoside, ]{cquthesis}%/' main.tex 113 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 114 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 115 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, printmode=auto, ]{cquthesis}%/' main.tex 116 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 117 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 118 | # 5.草稿模式 119 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, draft, ]{cquthesis}%/' main.tex 120 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 121 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 122 | # 6.仅适用研究生,是(true)否(false)专业硕士,默认为否 123 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, proffesionalmaster=true, ]{cquthesis}%/' main.tex 124 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 125 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 126 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=master, proffesionalmaster=false, ]{cquthesis}%/' main.tex 127 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 128 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 129 | # ===博士生论文=== 130 | # 0.最少选项基准 131 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor,]{cquthesis}%/' main.tex 132 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 133 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 134 | # 1.图录表录等分别按双语题注混编(combined),分开编录(apart),默认关(off) 135 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, bilinguallist=apart,]{cquthesis}%/' main.tex 136 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 137 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 138 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, bilinguallist=combined,]{cquthesis}%/' main.tex 139 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 140 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 141 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, bilinguallist=off,]{cquthesis}%/' main.tex 142 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 143 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 144 | # 2.盲审模式,开启后封面姓名和致谢部分会隐藏,详情请参阅用户文档,默认关 145 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, blindtrail, ]{cquthesis}%/' main.tex 146 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 147 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 148 | # 3.双面打印时每章的第一页仅右页开启,默认右页开启(openright) 149 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, openany, ]{cquthesis}%/' main.tex 150 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 151 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 152 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, openright, ]{cquthesis}%/' main.tex 153 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 154 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 155 | # 4.论文打印方式,默认采用auto按页数要求自动判定 156 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, printmode=oneside, ]{cquthesis}%/' main.tex 157 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 158 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 159 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, printmode=twoside, ]{cquthesis}%/' main.tex 160 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 161 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 162 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, printmode=auto, ]{cquthesis}%/' main.tex 163 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 164 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 165 | # 5.草稿模式 166 | - sed -i 's/\[.*\]{cquthesis}%/[fontset=fandol, type=doctor, draft, ]{cquthesis}%/' main.tex 167 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make thesis 168 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cleanall 169 | # ===用户文档=== 170 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make cls 171 | - sed -i 's/\\RequirePackage\[UTF8,scheme=chinese\]{ctex}/\\RequirePackage[UTF8,scheme=chinese,fontset=fandol]{ctex}/' dtx-style.sty 172 | - docker run --rm -ti -v miktex:/miktex/.miktex -v $(pwd):/miktex/work -e MIKTEX_GID=$(id -g) -e MIKTEX_UID=$(id -u) nanmu42/miktex-docker make doc 173 | 174 | after_failure: 175 | # 如果编译失败了,输出log到日志里 176 | - echo '===== tail from cquthesis.log =====' && tail -n 50 cquthesis.log -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The LaTeX Project Public License 3 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 4 | 5 | LPPL Version 1.3 2003-12-01 6 | 7 | Copyright 1999 2002-03 LaTeX3 Project 8 | Everyone is allowed to distribute verbatim copies of this 9 | license document, but modification of it is not allowed. 10 | 11 | 12 | PREAMBLE 13 | ======== 14 | 15 | The LaTeX Project Public License (LPPL) is the primary license under 16 | which the the LaTeX kernel and the base LaTeX packages are distributed. 17 | 18 | You may use this license for any work of which you hold the copyright 19 | and which you wish to distribute. This license may be particularly 20 | suitable if your work is TeX-related (such as a LaTeX package), but 21 | you may use it with small modifications even if your work is unrelated 22 | to TeX. 23 | 24 | The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', 25 | below, gives instructions, examples, and recommendations for authors 26 | who are considering distributing their works under this license. 27 | 28 | This license gives conditions under which a work may be distributed 29 | and modified, as well as conditions under which modified versions of 30 | that work may be distributed. 31 | 32 | We, the LaTeX3 Project, believe that the conditions below give you 33 | the freedom to make and distribute modified versions of your work 34 | that conform with whatever technical specifications you wish while 35 | maintaining the availability, integrity, and reliability of 36 | that work. If you do not see how to achieve your goal while 37 | meeting these conditions, then read the document `cfgguide.tex' 38 | and `modguide.tex' in the base LaTeX distribution for suggestions. 39 | 40 | 41 | DEFINITIONS 42 | =========== 43 | 44 | In this license document the following terms are used: 45 | 46 | `Work' 47 | Any work being distributed under this License. 48 | 49 | `Derived Work' 50 | Any work that under any applicable law is derived from the Work. 51 | 52 | `Modification' 53 | Any procedure that produces a Derived Work under any applicable 54 | law -- for example, the production of a file containing an 55 | original file associated with the Work or a significant portion of 56 | such a file, either verbatim or with modifications and/or 57 | translated into another language. 58 | 59 | `Modify' 60 | To apply any procedure that produces a Derived Work under any 61 | applicable law. 62 | 63 | `Distribution' 64 | Making copies of the Work available from one person to another, in 65 | whole or in part. Distribution includes (but is not limited to) 66 | making any electronic components of the Work accessible by 67 | file transfer protocols such as FTP or HTTP or by shared file 68 | systems such as Sun's Network File System (NFS). 69 | 70 | `Compiled Work' 71 | A version of the Work that has been processed into a form where it 72 | is directly usable on a computer system. This processing may 73 | include using installation facilities provided by the Work, 74 | transformations of the Work, copying of components of the Work, or 75 | other activities. Note that modification of any installation 76 | facilities provided by the Work constitutes modification of the Work. 77 | 78 | `Current Maintainer' 79 | A person or persons nominated as such within the Work. If there is 80 | no such explicit nomination then it is the `Copyright Holder' under 81 | any applicable law. 82 | 83 | `Base Interpreter' 84 | A program or process that is normally needed for running or 85 | interpreting a part or the whole of the Work. 86 | A Base Interpreter may depend on external components but these 87 | are not considered part of the Base Interpreter provided that each 88 | external component clearly identifies itself whenever it is used 89 | interactively. Unless explicitly specified when applying the 90 | license to the Work, the only applicable Base Interpreter is a 91 | "LaTeX-Format". 92 | 93 | 94 | 95 | CONDITIONS ON DISTRIBUTION AND MODIFICATION 96 | =========================================== 97 | 98 | 1. Activities other than distribution and/or modification of the Work 99 | are not covered by this license; they are outside its scope. In 100 | particular, the act of running the Work is not restricted and no 101 | requirements are made concerning any offers of support for the Work. 102 | 103 | 2. You may distribute a complete, unmodified copy of the Work as you 104 | received it. Distribution of only part of the Work is considered 105 | modification of the Work, and no right to distribute such a Derived 106 | Work may be assumed under the terms of this clause. 107 | 108 | 3. You may distribute a Compiled Work that has been generated from a 109 | complete, unmodified copy of the Work as distributed under Clause 2 110 | above, as long as that Compiled Work is distributed in such a way that 111 | the recipients may install the Compiled Work on their system exactly 112 | as it would have been installed if they generated a Compiled Work 113 | directly from the Work. 114 | 115 | 4. If you are the Current Maintainer of the Work, you may, without 116 | restriction, modify the Work, thus creating a Derived Work. You may 117 | also distribute the Derived Work without restriction, including 118 | Compiled Works generated from the Derived Work. Derived Works 119 | distributed in this manner by the Current Maintainer are considered to 120 | be updated versions of the Work. 121 | 122 | 5. If you are not the Current Maintainer of the Work, you may modify 123 | your copy of the Work, thus creating a Derived Work based on the Work, 124 | and compile this Derived Work, thus creating a Compiled Work based on 125 | the Derived Work. 126 | 127 | 6. If you are not the Current Maintainer of the Work, you may 128 | distribute a Derived Work provided the following conditions are met 129 | for every component of the Work unless that component clearly states 130 | in the copyright notice that it is exempt from that condition. Only 131 | the Current Maintainer is allowed to add such statements of exemption 132 | to a component of the Work. 133 | 134 | a. If a component of this Derived Work can be a direct replacement 135 | for a component of the Work when that component is used with the 136 | Base Interpreter, then, wherever this component of the Work 137 | identifies itself to the user when used interactively with that 138 | Base Interpreter, the replacement component of this Derived Work 139 | clearly and unambiguously identifies itself as a modified version 140 | of this component to the user when used interactively with that 141 | Base Interpreter. 142 | 143 | b. Every component of the Derived Work contains prominent notices 144 | detailing the nature of the changes to that component, or a 145 | prominent reference to another file that is distributed as part 146 | of the Derived Work and that contains a complete and accurate log 147 | of the changes. 148 | 149 | c. No information in the Derived Work implies that any persons, 150 | including (but not limited to) the authors of the original version 151 | of the Work, provide any support, including (but not limited to) 152 | the reporting and handling of errors, to recipients of the 153 | Derived Work unless those persons have stated explicitly that 154 | they do provide such support for the Derived Work. 155 | 156 | d. You distribute at least one of the following with the Derived Work: 157 | 158 | 1. A complete, unmodified copy of the Work; 159 | if your distribution of a modified component is made by 160 | offering access to copy the modified component from a 161 | designated place, then offering equivalent access to copy 162 | the Work from the same or some similar place meets this 163 | condition, even though third parties are not compelled to 164 | copy the Work along with the modified component; 165 | 166 | 2. Information that is sufficient to obtain a complete, unmodified 167 | copy of the Work. 168 | 169 | 7. If you are not the Current Maintainer of the Work, you may 170 | distribute a Compiled Work generated from a Derived Work, as long as 171 | the Derived Work is distributed to all recipients of the Compiled 172 | Work, and as long as the conditions of Clause 6, above, are met with 173 | regard to the Derived Work. 174 | 175 | 8. The conditions above are not intended to prohibit, and hence do 176 | not apply to, the modification, by any method, of any component so that it 177 | becomes identical to an updated version of that component of the Work as 178 | it is distributed by the Current Maintainer under Clause 4, above. 179 | 180 | 9. Distribution of the Work or any Derived Work in an alternative 181 | format, where the Work or that Derived Work (in whole or in part) is 182 | then produced by applying some process to that format, does not relax or 183 | nullify any sections of this license as they pertain to the results of 184 | applying that process. 185 | 186 | 10. a. A Derived Work may be distributed under a different license 187 | provided that license itself honors the conditions listed in 188 | Clause 6 above, in regard to the Work, though it does not have 189 | to honor the rest of the conditions in this license. 190 | 191 | b. If a Derived Work is distributed under this license, that 192 | Derived Work must provide sufficient documentation as part of 193 | itself to allow each recipient of that Derived Work to honor the 194 | restrictions in Clause 6 above, concerning changes from the Work. 195 | 196 | 11. This license places no restrictions on works that are unrelated to 197 | the Work, nor does this license place any restrictions on aggregating 198 | such works with the Work by any means. 199 | 200 | 12. Nothing in this license is intended to, or may be used to, prevent 201 | complete compliance by all parties with all applicable laws. 202 | 203 | 204 | NO WARRANTY 205 | =========== 206 | 207 | There is no warranty for the Work. Except when otherwise stated in 208 | writing, the Copyright Holder provides the Work `as is', without 209 | warranty of any kind, either expressed or implied, including, but not 210 | limited to, the implied warranties of merchantability and fitness for 211 | a particular purpose. The entire risk as to the quality and performance 212 | of the Work is with you. Should the Work prove defective, you 213 | assume the cost of all necessary servicing, repair, or correction. 214 | 215 | In no event unless agreed to in writing will the Copyright Holder, or 216 | any author named in the components of the Work, or any other party who 217 | may distribute and/or modify the Work as permitted above, be liable to 218 | you for damages, including any general, special, incidental or 219 | consequential damages arising out of any use of the Work or out of 220 | inability to use the Work (including, but not limited to, loss of 221 | data, data being rendered inaccurate, or losses sustained by anyone as 222 | a result of any failure of the Work to operate with any other 223 | programs), even if the Copyright Holder or said author or said other 224 | party has been advised of the possibility of such damages. 225 | 226 | 227 | MAINTENANCE OF THE WORK 228 | ======================= 229 | 230 | The Work has the status `author-maintained' if the Copyright Holder 231 | explicitly and prominently states near the primary copyright notice in 232 | the Work that the Work can only be maintained by the Copyright Holder 233 | or simply that is `author-maintained'. 234 | 235 | The Work has the status `maintained' if there is a Current Maintainer 236 | who has indicated in the Work that they are willing to receive error 237 | reports for the Work (for example, by supplying a valid e-mail 238 | address). It is not required for the Current Maintainer to acknowledge 239 | or act upon these error reports. 240 | 241 | The Work changes from status `maintained' to `unmaintained' if there 242 | is no Current Maintainer, or the person stated to be Current 243 | Maintainer of the work cannot be reached through the indicated means 244 | of communication for a period of six months, and there are no other 245 | significant signs of active maintenance. 246 | 247 | You can become the Current Maintainer of the Work by agreement with 248 | any existing Current Maintainer to take over this role. 249 | 250 | If the Work is unmaintained, you can become the Current Maintainer of 251 | the Work through the following steps: 252 | 253 | 1. Make a reasonable attempt to trace the Current Maintainer (and 254 | the Copyright Holder, if the two differ) through the means of 255 | an Internet or similar search. 256 | 257 | 2. If this search is successful, then enquire whether the Work 258 | is still maintained. 259 | 260 | a. If it is being maintained, then ask the Current Maintainer 261 | to update their communication data within one month. 262 | 263 | b. If the search is unsuccessful or no action to resume active 264 | maintenance is taken by the Current Maintainer, then announce 265 | within the pertinent community your intention to take over 266 | maintenance. (If the Work is a LaTeX work, this could be 267 | done, for example, by posting to comp.text.tex.) 268 | 269 | 3a. If the Current Maintainer is reachable and agrees to pass 270 | maintenance of the Work to you, then this takes effect 271 | immediately upon announcement. 272 | 273 | b. If the Current Maintainer is not reachable and the Copyright 274 | Holder agrees that maintenance of the Work be passed to you, 275 | then this takes effect immediately upon announcement. 276 | 277 | 4. If you make an `intention announcement' as described in 2b. above 278 | and after three months your intention is challenged neither by 279 | the Current Maintainer nor by the Copyright Holder nor by other 280 | people, then you may arrange for the Work to be changed so as 281 | to name you as the (new) Current Maintainer. 282 | 283 | 5. If the previously unreachable Current Maintainer becomes 284 | reachable once more within three months of a change completed 285 | under the terms of 3b) or 4), then that Current Maintainer must 286 | become or remain the Current Maintainer upon request provided 287 | they then update their communication data within one month. 288 | 289 | A change in the Current Maintainer does not, of itself, alter the fact 290 | that the Work is distributed under the LPPL license. 291 | 292 | If you become the Current Maintainer of the Work, you should 293 | immediately provide, within the Work, a prominent and unambiguous 294 | statement of your status as Current Maintainer. You should also 295 | announce your new status to the same pertinent community as 296 | in 2b) above. 297 | 298 | 299 | WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE 300 | ====================================================== 301 | 302 | This section contains important instructions, examples, and 303 | recommendations for authors who are considering distributing their 304 | works under this license. These authors are addressed as `you' in 305 | this section. 306 | 307 | Choosing This License or Another License 308 | ---------------------------------------- 309 | 310 | If for any part of your work you want or need to use *distribution* 311 | conditions that differ significantly from those in this license, then 312 | do not refer to this license anywhere in your work but, instead, 313 | distribute your work under a different license. You may use the text 314 | of this license as a model for your own license, but your license 315 | should not refer to the LPPL or otherwise give the impression that 316 | your work is distributed under the LPPL. 317 | 318 | The document `modguide.tex' in the base LaTeX distribution explains 319 | the motivation behind the conditions of this license. It explains, 320 | for example, why distributing LaTeX under the GNU General Public 321 | License (GPL) was considered inappropriate. Even if your work is 322 | unrelated to LaTeX, the discussion in `modguide.tex' may still be 323 | relevant, and authors intending to distribute their works under any 324 | license are encouraged to read it. 325 | 326 | A Recommendation on Modification Without Distribution 327 | ----------------------------------------------------- 328 | 329 | It is wise never to modify a component of the Work, even for your own 330 | personal use, without also meeting the above conditions for 331 | distributing the modified component. While you might intend that such 332 | modifications will never be distributed, often this will happen by 333 | accident -- you may forget that you have modified that component; or 334 | it may not occur to you when allowing others to access the modified 335 | version that you are thus distributing it and violating the conditions 336 | of this license in ways that could have legal implications and, worse, 337 | cause problems for the community. It is therefore usually in your 338 | best interest to keep your copy of the Work identical with the public 339 | one. Many works provide ways to control the behavior of that work 340 | without altering any of its licensed components. 341 | 342 | How to Use This License 343 | ----------------------- 344 | 345 | To use this license, place in each of the components of your work both 346 | an explicit copyright notice including your name and the year the work 347 | was authored and/or last substantially modified. Include also a 348 | statement that the distribution and/or modification of that 349 | component is constrained by the conditions in this license. 350 | 351 | Here is an example of such a notice and statement: 352 | 353 | %% pig.dtx 354 | %% Copyright 2003 M. Y. Name 355 | % 356 | % This work may be distributed and/or modified under the 357 | % conditions of the LaTeX Project Public License, either version 1.3 358 | % of this license or (at your option) any later version. 359 | % The latest version of this license is in 360 | % http://www.latex-project.org/lppl.txt 361 | % and version 1.3 or later is part of all distributions of LaTeX 362 | % version 2003/12/01 or later. 363 | % 364 | % This work has the LPPL maintenance status "maintained". 365 | % 366 | % This Current Maintainer of this work is M. Y. Name. 367 | % 368 | % This work consists of the files pig.dtx and pig.ins 369 | % and the derived file pig.sty. 370 | 371 | Given such a notice and statement in a file, the conditions 372 | given in this license document would apply, with the `Work' referring 373 | to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being 374 | generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' 375 | referring to any "LaTeX-Format", and both `Copyright Holder' and 376 | `Current Maintainer' referring to the person `M. Y. Name'. 377 | 378 | To prevent the Maintenance section of LPPL from allowing someone else 379 | to become the Current Maintainer without your agreement, you could 380 | change "maintained" above into "author-maintained". 381 | 382 | 383 | Important Recommendations 384 | ------------------------- 385 | 386 | Defining What Constitutes the Work 387 | 388 | The LPPL requires that distributions of the Work contain all the 389 | files of the Work. It is therefore important that you provide a 390 | way for the licensee to determine which files constitute the Work. 391 | This could, for example, be achieved by explicitly listing all the 392 | files of the Work near the copyright notice of each file or by 393 | using a line such as: 394 | 395 | % This work consists of all files listed in manifest.txt. 396 | 397 | in that place. In the absence of an unequivocal list it might be 398 | impossible for the licensee to determine what is considered by you 399 | to comprise the Work and, in such a case, the licensee would be 400 | entitled to make reasonable conjectures as to which files comprise 401 | the Work. 402 | -------------------------------------------------------------------------------- /cquthesis.cls: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `cquthesis.cls', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% cquthesis.dtx (with options: `cls') 8 | %% 9 | %% This is a generated file. 10 | %% 11 | %% Copyright (C) 2016-2022 by Zhennan Li 12 | %% This file may be distributed and/or modified under the 13 | %% conditions of the LaTeX Project Public License, either 14 | %% version 1.3 of this license or (at your option) any later 15 | %% version. The latest version of this license is in: 16 | %% 17 | %% http://www.latex-project.org/lppl.txt 18 | %% 19 | %% and version 1.3 or later is part of all distributions of 20 | %% LaTeX version 2005/12/01 or later. 21 | %% 22 | \NeedsTeXFormat{LaTeX2e}[1999/12/01] 23 | \ProvidesClass{cquthesis} 24 | [2019/10/12 v1.40 Chongqing University Thesis Template] 25 | \hyphenation{Cqu-Thesis} 26 | \newcommand{\cquthesis}{\textsc{CquThesis}} 27 | \def\version{1.30} 28 | \RequirePackage{kvoptions} 29 | \SetupKeyvalOptions{ 30 | family=cqu, 31 | prefix=cqu@, 32 | setkeys=\kvsetkeys} 33 | \newif\ifcqu@bachelor 34 | \newif\ifcqu@master 35 | \newif\ifcqu@doctor 36 | \cqu@bachelorfalse\cqu@masterfalse\cqu@doctorfalse 37 | \define@key{cqu}{type}{% 38 | \expandafter\csname cqu@#1true\endcsname} 39 | \DeclareBoolOption{liberalformat} 40 | \DeclareBoolOption[true]{academic} 41 | \DeclareComplementaryOption{proffesionalmaster}{academic} 42 | \DeclareBoolOption[false]{openany} 43 | \DeclareComplementaryOption{openright}{openany} 44 | \DeclareBoolOption[false]{blankleft} 45 | \DeclareBoolOption[false]{abstractopenright} 46 | \DeclareBoolOption[false]{blindtrail} 47 | \newif\if@onesideprint 48 | \newif\if@twosideprint 49 | \newif\if@autoprint 50 | \@onesideprintfalse\@twosideprintfalse\@autoprintfalse 51 | \define@key{cqu}{printmode}{% 52 | \expandafter\csname @#1printtrue\endcsname} 53 | \DeclareBoolOption[false]{secret} 54 | \DeclareBoolOption[false]{seriftoc} 55 | \DeclareBoolOption{continuoustoc} 56 | \newif\if@bioff 57 | \newif\if@bicombined 58 | \newif\if@biapart 59 | \@biofffalse\@bicombinedfalse\@biapartfalse 60 | \define@key{cqu}{bilinguallist}{% 61 | \@biofffalse\@bicombinedfalse\@biapartfalse 62 | \expandafter\csname @bi#1true\endcsname} 63 | \DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}} 64 | \kvsetkeys{cqu}{} 65 | \ProcessKeyvalOptions* 66 | \PassOptionsToPackage{no-math}{fontspec} 67 | \ifcqu@openany 68 | \LoadClass[openany,a4paper,oneside,UTF8,zihao=-4,scheme=plain,linespread=1.39,space=auto]{ctexbook} 69 | \else 70 | \LoadClass[openright,a4paper,oneside,UTF8,zihao=-4,scheme=plain,linespread=1.39,space=auto]{ctexbook} 71 | \fi 72 | \ifcqu@bachelor\relax\else 73 | \ifcqu@master\relax\else 74 | \ifcqu@doctor\relax\else 75 | \ClassError{cquthesis}% 76 | {Specified thesis type is obligatory: \MessageBreak 77 | type=[bachelor|master|doctor]}{} 78 | \fi 79 | \fi 80 | \fi 81 | \if@autoprint\relax\else 82 | \if@onesideprint\relax\else 83 | \if@twosideprint\relax\else 84 | \ClassWarning{cquthesis}% 85 | {Unexpected or missing print mode, processing with AUTO: \MessageBreak 86 | printmode=[oneside|twoside|auto]}{} 87 | \@autoprinttrue 88 | \fi 89 | \fi 90 | \fi 91 | \if@bioff\relax\else 92 | \if@bicombined\relax\else 93 | \if@biapart\relax\else 94 | \kvsetkeys{cqu}{bilinguallist=off,} 95 | \ClassWarning{cquthesis}% 96 | {Unexpected or missing bilingual list mode, processing with OFF: \MessageBreak 97 | bilinguallist=[off|combined|apart]}{} 98 | \fi 99 | \fi 100 | \fi 101 | \RequirePackage{etoolbox} 102 | \RequirePackage{xparse} 103 | \RequirePackage{environ} 104 | \RequirePackage{calc} 105 | \RequirePackage{ifxetex} 106 | \RequirePackage{fontspec} 107 | \RequirePackage{amsmath} 108 | \RequirePackage{amssymb} 109 | \RequirePackage{amsfonts} 110 | \RequirePackage[defaultsups]{newtxtext} 111 | \RequirePackage{pifont} 112 | \RequirePackage{xeCJKfntef} 113 | \RequirePackage{newfloat} 114 | \RequirePackage{caption} 115 | \RequirePackage[labelformat=simple]{subcaption} 116 | \RequirePackage{bicaption} 117 | \RequirePackage{array} 118 | \RequirePackage{tabularx} 119 | \RequirePackage{booktabs} 120 | \RequirePackage{longtable} 121 | \RequirePackage{multirow} 122 | \RequirePackage{diagbox} 123 | \RequirePackage{tabu} 124 | \RequirePackage{courier} 125 | \RequirePackage{graphicx} 126 | \RequirePackage{pdfpages} 127 | \RequirePackage[shortlabels,inline]{enumitem} 128 | \RequirePackage[amsmath,thmmarks,hyperref]{ntheorem} 129 | \RequirePackage{changepage} 130 | \RequirePackage{afterpage} 131 | \RequirePackage[bottom,perpage,hang,symbol*]{footmisc} 132 | \raggedbottom 133 | \RequirePackage{varwidth} 134 | \RequirePackage{xcolor} 135 | \RequirePackage{metalogo} 136 | \RequirePackage{xspace} 137 | \RequirePackage[numbers,square,comma,super,sort&compress]{natbib} 138 | \patchcmd{\@chapter}{\addtocontents{lof}{\protect\addvspace{10\p@}}}{}{}{} % lof 139 | \patchcmd{\@chapter}{\addtocontents{lot}{\protect\addvspace{10\p@}}}{}{}{} % lot 140 | \RequirePackage[hyperfootnotes=false,]{hyperref} 141 | \hypersetup{% 142 | linktoc=all, 143 | bookmarksnumbered=true, 144 | bookmarksopen=true, 145 | bookmarksopenlevel=1, 146 | breaklinks=true, 147 | colorlinks=false, 148 | plainpages=false, 149 | pdfborder=0 0 0} 150 | \urlstyle{same} 151 | \ifxetex 152 | \def\CJK@null{\kern\CJKnullspace\Unicode{48}{7}\kern\CJKnullspace} 153 | \defaultfontfeatures{Mapping=tex-text} 154 | \fi 155 | \RequirePackage{tocloft} 156 | \ifxetex 157 | \hypersetup{% 158 | CJKbookmarks=true} 159 | \else 160 | \hypersetup{% 161 | unicode=true, 162 | CJKbookmarks=false} 163 | \fi 164 | \let\cqu@cleardoublepage\cleardoublepage 165 | \renewcommand{\cleardoublepage}{% 166 | \clearpage{\ifcqu@blankleft\pagestyle{style@empty}\fi\cqu@cleardoublepage} 167 | }%\cleardoublepage 168 | \newcommand\cqu@addblankpage{% 169 | \afterpage{% 170 | {\null\ifcqu@blankleft\pagestyle{style@empty}\fi\clearpage}}} 171 | \newif\if@backmatter 172 | \renewcommand{\frontmatter}{% 173 | \@backmatterfalse 174 | \cleardoublepage 175 | \pagenumbering{Roman} 176 | \pagestyle{style@normal} 177 | \ctexset{chapter/numbering = false,} 178 | } 179 | \renewcommand{\mainmatter}{% 180 | \@backmatterfalse 181 | \cleardoublepage 182 | \pagenumbering{arabic} 183 | \pagestyle{style@normal} 184 | \ctexset{chapter/numbering = true,} 185 | } 186 | \renewcommand{\backmatter}{% 187 | \@backmattertrue 188 | \cleardoublepage 189 | \ctexset{chapter/numbering = false, 190 | section/number = \Alph{section}, 191 | section/name = {,.}, 192 | subsection/number = \CTEXthesection{}\arabic{subsection},}% 193 | \setcounter{chapter}{0} 194 | } 195 | \RequirePackage{geometry} 196 | \geometry{ 197 | a4paper, ignoreall, nomarginpar, 198 | inner=25mm, outer=25mm, top=30mm, bottom=28mm, 199 | bindingoffset=10mm, head=16mm, headsep=11mm, foot=12mm, footnotesep=5mm} 200 | \RequirePackage{totcount} 201 | \regtotcounter[auxfile=maxpage.aux]{page} 202 | \if@autoprint 203 | \ifcqu@bachelor 204 | \ifnum\totvalue{page}>70 \@twosideprinttrue\else\@onesideprinttrue\fi 205 | \else 206 | \ifnum \totvalue{page}>60 \@twosideprinttrue\else\@onesideprinttrue\fi 207 | \fi 208 | \fi 209 | \if@onesideprint 210 | \ClassWarning{cquthesis}{Printing under oneside mode.}{} 211 | \else 212 | \if@twosideprint 213 | \geometry{twoside} 214 | \ClassWarning{cquthesis}{Printing under twoside mode.}{} 215 | \fi 216 | \fi 217 | \RequirePackage{fancyhdr} 218 | \fancypagestyle{style@empty}{% 219 | \fancyhf{} 220 | \renewcommand{\headrulewidth}{0pt} 221 | \renewcommand{\footrulewidth}{0pt}} 222 | \fancypagestyle{style@fixhead}{% 223 | \fancyhead{} 224 | \fancyhead[EC]{\zihao{5}\songti\cqu@thesisname} 225 | \fancyhead[OC]{\zihao{5}\songti\leftmark} 226 | \fancyfoot{} 227 | \fancyfoot[C]{\zihao{-5}\leftmark} 228 | \renewcommand{\headrulewidth}{0.4pt} 229 | \renewcommand{\footrulewidth}{0pt}} 230 | \fancypagestyle{style@normal}{% 修改页眉样式 231 | \fancyhf{} % 清空页眉页脚 232 | \fancyhead[CO]{\zihao{5}\songti\leftmark} % O: 奇数页, L: 左页眉 \rightmark:章节号 233 | \fancyhead[CE]{\zihao{5}\songti\cqu@thesisname} % E: 偶数页 234 | \fancyfoot{} 235 | \fancyfoot[C]{\zihao{-5}\thepage} 236 | \renewcommand{\headrulewidth}{0.4pt} 237 | \renewcommand{\footrulewidth}{0pt}} 238 | \newcommand{\cqu@fixhead}{% 239 | \if@twosideprint %仅双页打印需要修正 240 | \checkoddpage 241 | \ifoddpage\relax\else 242 | \thispagestyle{style@fixhead} 243 | \fi 244 | \fi 245 | }%\cqu@fixhead 246 | \AtBeginDocument{% 247 | \pagestyle{style@empty} 248 | \renewcommand{\chaptermark}[1]{% 249 | \ifnum\value{chapter}>0% 250 | \@mkboth{\CTEXthechapter\hskip\ccwd#1}{}% 251 | \else 252 | \@mkboth{#1}{}% 253 | \fi}}%\chaptermark 254 | \let\@afterindentfalse\@afterindenttrue 255 | \@afterindenttrue 256 | \setlength{\parskip}{0.1\baselineskip} 257 | \ctexset{% 258 | punct=quanjiao, 259 | autoindent=true, 260 | space=auto} 261 | \setlist{ 262 | nosep, 263 | itemjoin = {{;}} 264 | }%setlist 265 | \def\@circlenum#1{% 266 | \ifnum \value{#1} >10 267 | \ClassError{cquthesis}% 268 | {More than 10 subsubsections in a subsection cannot be handled.}{} 269 | \fi 270 | \ding{\the\numexpr\value{#1}+171\relax}% 271 | } 272 | \def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@} 273 | \let\cqu@footnotesize\footnotesize 274 | \renewcommand{\footnotesize}{\cqu@footnotesize\zihao{-5}} 275 | \footnotemargin1.5em\relax 276 | \let\cqu@makefnmark\@makefnmark 277 | \def\cqu@@makefnmark{\mbox{{\normalfont\@thefnmark}}} 278 | \pretocmd{\@makefntext}{\let\@makefnmark\cqu@@makefnmark}{}{} 279 | \apptocmd{\@makefntext}{\let\@makefnmark\cqu@makefnmark}{}{} 280 | \allowdisplaybreaks[4] 281 | \let\cqu@tagform@\tagform@ 282 | \renewcommand{\eqref}[1]{\cqueqshortname\textup{(\ref{#1})}} 283 | \theorembodyfont{\rmfamily\songti} 284 | \theoremheaderfont{\rmfamily\heiti} 285 | \RequirePackage[version=4]{mhchem} 286 | \AtBeginDocument{\pretocmd{\ce}{{ }}{}{}} 287 | \newcommand{\cec}[1]{\cesplit{{\,\ }{\0}}{#1}} 288 | \RequirePackage{siunitx} 289 | \RequirePackage{upgreek} 290 | \ifxetex 291 | \sisetup{% 292 | math-micro = {\upmu}, 293 | text-micro = {\textmu}, 294 | }%\sisetup 295 | \fi 296 | \setlength{\floatsep}{20bp plus2bp minus2bp} 297 | \setlength{\intextsep}{20bp plus2bp minus2bp} 298 | \setlength{\textfloatsep}{20bp plus2bp minus2bp} 299 | \setlength{\@fptop}{6bp plus2bp} 300 | \setlength{\@fpsep}{12bp plus2bp} 301 | \setlength{\@fpbot}{6bp plus2bp} 302 | \renewcommand{\textfraction}{0.15} 303 | \renewcommand{\topfraction}{0.85} 304 | \renewcommand{\bottomfraction}{0.65} 305 | \renewcommand{\floatpagefraction}{0.60} 306 | \AtBeginDocument{% 307 | \renewcommand{\thefigure}{% 308 | \if@backmatter 309 | \CTEXthesection \@arabic \c@figure 310 | \else 311 | \ifnum \c@chapter >\z@ \thechapter .\fi \@arabic \c@figure 312 | \fi} 313 | \renewcommand{\thetable}{% 314 | \if@backmatter 315 | \CTEXthesection \@arabic \c@table 316 | \else 317 | \ifnum \c@chapter >\z@ \thechapter .\fi \@arabic \c@table 318 | \fi} 319 | \renewcommand{\theequation}{% 320 | \if@backmatter 321 | \CTEXthesection \@arabic \c@equation 322 | \else 323 | \ifnum \c@chapter >\z@ \thechapter .\fi \@arabic \c@equation 324 | \fi} 325 | } 326 | \def\cqu@tabular{\zihao{5}\@tabular} 327 | \DeclareCaptionLabelFormat{cqu}{{\zihao{5}\rmfamily\songti #1~#2}} 328 | \DeclareCaptionLabelSeparator{cqu}{\hspace{0.5\ccwd}} 329 | \DeclareCaptionFont{cqu}{\zihao{5}\rmfamily\songti} 330 | \captionsetup{justification=centerlast} 331 | \captionsetup{labelformat=cqu,labelsep=cqu,font=cqu} 332 | \captionsetup[table]{position=top,belowskip=6bp,aboveskip=0bp} 333 | \captionsetup[figure]{position=bottom,belowskip=0bp,aboveskip=6bp} 334 | \captionsetup[sub]{font=cqu,skip=6bp} 335 | \renewcommand{\thesubfigure}{(\alph{subfigure})} 336 | \renewcommand{\thesubtable}{(\alph{subtable})} 337 | \DeclareCaptionOption{bi-first}[]{% 338 | \def\tablename{\shorttablename} 339 | \def\figurename{\shortfigurename} 340 | }%bi-first 341 | \DeclareCaptionOption{bi-second}[]{% 342 | \def\tablename{\shorttablenameEN} 343 | \def\figurename{\shortfigurenameEN} 344 | }%bi-second 345 | \captionsetup[bi-first]{bi-first} 346 | \captionsetup[bi-second]{bi-second} 347 | \DeclareFloatingEnvironment[fileext=lofEN]{figuresEN}[\shortfigurenameEN][\listoffiguresnameEN] 348 | \DeclareFloatingEnvironment[fileext=lotEN]{tablesEN}[\shorttablenameEN][\listoftablesnameEN] 349 | \if@bicombined\relax 350 | \else 351 | \captionsetup[bi-second]{listtype+=sEN} 352 | \fi 353 | \if@biapart\relax 354 | \else 355 | \AtBeginDocument{% 356 | \let\listoffiguresEN\relax 357 | \let\listoftablesEN\relax 358 | \let\listofequationsEN\relax 359 | }%AtBeginDocument 360 | \fi 361 | \AtBeginEnvironment{tabularx}{\begingroup\zihao{5}} 362 | \AtEndEnvironment{tabularx}{\endgroup} 363 | \setlength{\tabcolsep}{12pt} 364 | \renewcommand{\tabularxcolumn}[1]{m{#1}} 365 | \newcommand{\bigcell}[1]{\vspace{6pt}\begin{varwidth}{\linewidth}#1\end{varwidth}\vspace{6pt}} 366 | \newcommand{\headcell}[1]{\multicolumn{1}{c}{\heiti #1}} 367 | \newcommand{\colsep}[1][12pt]{\setlength{\tabcolsep}{#1}} 368 | \setlength{\LTpre}{\bigskipamount} 369 | \setlength{\LTpost}{\bigskipamount} 370 | \let\cqu@LT@array\LT@array 371 | \def\LT@array{\zihao{5}\cqu@LT@array} 372 | \RequirePackage{listings} 373 | \lstdefinestyle{lstStyleBase}{% 374 | basicstyle=\footnotesize\ttfamily, 375 | aboveskip=\medskipamount, 376 | belowskip=\medskipamount, 377 | lineskip=0pt, 378 | boxpos=c, 379 | showlines=false, 380 | extendedchars=true, 381 | upquote=true, 382 | tabsize=2, 383 | showtabs=false, 384 | showspaces=false, 385 | showstringspaces=false, 386 | numbers=left, 387 | numberstyle=\tiny, 388 | linewidth=\linewidth, 389 | xleftmargin=4pt, 390 | xrightmargin=0pt, 391 | resetmargins=false, 392 | breaklines=true, 393 | breakatwhitespace=false, 394 | breakindent=0pt, 395 | breakautoindent=true, 396 | columns=flexible, 397 | keepspaces=true, 398 | framesep=3pt, 399 | rulesep=2pt, 400 | framerule=1pt, 401 | backgroundcolor=\color{gray!5}, 402 | stringstyle=\color{green!40!black!100}, 403 | keywordstyle=\bfseries\color{blue!50!black}, 404 | commentstyle=\slshape\color{black!60}} 405 | \lstdefinestyle{lstStyleCplus}{% 406 | style=lstStyleBase, 407 | frame=l, 408 | rulecolor=\color{blue}, 409 | language=C++} 410 | \lstdefinestyle{lstStylePython}{% 411 | style=lstStyleBase, 412 | frame=l, 413 | rulecolor=\color{cyan}, 414 | language=Python} 415 | \lstnewenvironment{C++}{\lstset{style=lstStyleCplus}}{} 416 | \lstnewenvironment{Cplus}{\lstset{style=lstStyleCplus}}{} 417 | \lstnewenvironment{Python}{\lstset{style=lstStylePython}}{} 418 | \newcounter{cquXuHao} 419 | \newcounter{cquXuHaoType} 420 | \setcounter{cquXuHaoType}{1} 421 | \newcommand{\xuhaoseparator}{} 422 | \newcommand{\xuhaotype}[1][1]{ 423 | \ifnum #1>6 \ClassError{cquthesis}% 424 | {Available choices from 1-6.}{}% 425 | \fi 426 | \setcounter{cquXuHaoType}{#1} 427 | }%\xuhaotype 428 | \newcommand{\output@xuhao}{% 429 | \ifcase\value{cquXuHaoType} 430 | \or \arabic{cquXuHao} %1 431 | \or \Alph{cquXuHao} %2 432 | \or \alph{cquXuHao} %3 433 | \or \Roman{cquXuHao} %4 434 | \or \roman{cquXuHao} %5 435 | \or \ifnum\value{cquXuHao}>9\ClassError{cquthesis}% 436 | {Xuhao(rownum) of type-6 must be under 10.}{}% 437 | \else\fnsymbol{cquXuHao} 438 | \fi %6 439 | \fi 440 | }%\output@xuhao 441 | \newcommand{\xuhao}[1][0]{ 442 | \ifcase #1 443 | \stepcounter{cquXuHao} %0 444 | \output@xuhao\xuhaoseparator\xspace 445 | \or \resetxuhao\stepcounter{cquXuHao} %1 446 | \output@xuhao\xuhaoseparator\xspace 447 | \fi 448 | }%\xuhao 449 | \newcommand{\resetxuhao}{\setcounter{cquXuHao}{0}} 450 | \let\rownum\xuhao 451 | \let\resetrownum\resetxuhao 452 | \let\rownumtype\xuhaotype 453 | \let\setxuhao\xuhaotype 454 | \let\rownumseparator\xuhaoseparator 455 | \newcommand{\secretize}[1]{% 456 | \ifcqu@blindtrail 457 | {***} 458 | \else 459 | {#1} 460 | \fi 461 | } 462 | \newcommand{\cqu@@secretizeenv}[1]{\long\gdef\cqu@secretizeenv{#1}} 463 | \newenvironment{secretizeEnv}{\Collect@Body\cqu@@secretizeenv}{% 464 | \ifcqu@blindtrail 465 | \relax 466 | \else 467 | \cqu@secretizeenv 468 | \fi 469 | } 470 | \def\cqu@def@term #1{% 471 | \define@key{cqu}{#1}{\csname #1\endcsname{##1}} 472 | \expandafter\gdef\csname #1\endcsname##1{% 473 | \expandafter\gdef\csname cqu@#1\endcsname{##1}} 474 | \csname #1\endcsname{}} 475 | \cqu@def@term{ctitle} 476 | \cqu@def@term{etitle} 477 | \cqu@def@term{cauthor} 478 | \cqu@def@term{eauthor} 479 | \cqu@def@term{studentid} 480 | \cqu@def@term{csupervisor} 481 | \cqu@def@term{esupervisor} 482 | \cqu@def@term{cassistsupervisor} 483 | \cqu@def@term{cextrasupervisor} 484 | \cqu@def@term{eassistsupervisor} 485 | \cqu@def@term{cpsupervisor} 486 | \cqu@def@term{epsupervisor} 487 | \cqu@def@term{cmajor} 488 | \cqu@def@term{cmajora} 489 | \cqu@def@term{cmajorb} 490 | \cqu@def@term{cmajorc} 491 | \cqu@def@term{emajor} 492 | \cqu@def@term{cclass} 493 | \cqu@def@term{research_direction} 494 | \cqu@def@term{edgree} 495 | \cqu@def@term{cdepartment} 496 | \cqu@def@term{edepartment} 497 | \cqu@def@term{mycdate} 498 | \cqu@def@term{myedate} 499 | \def\cqu@parse@keywords#1{ 500 | \define@key{cqu}{#1}{\csname #1\endcsname{##1}} 501 | \expandafter\gdef\csname cqu@#1\endcsname{} 502 | \expandafter\gdef\csname #1\endcsname##1{ 503 | \@for\reserved@a:=##1\do{ 504 | \expandafter\ifx\csname cqu@#1\endcsname\@empty\else 505 | \expandafter\g@addto@macro\csname cqu@#1\endcsname{% 506 | \ignorespaces\csname cqu@#1@separator\endcsname} 507 | \fi 508 | \expandafter\expandafter\expandafter\g@addto@macro% 509 | \expandafter\csname cqu@#1\expandafter\endcsname\expandafter{\reserved@a}}}} 510 | \cqu@parse@keywords{ckeywords} 511 | \cqu@parse@keywords{ekeywords} 512 | \def\cqusetup{\kvsetkeys{cqu}} 513 | \newcommand{\make@cover@CN}{% 514 | \thispagestyle{style@empty} 515 | \begin{center} 516 | \rule{0mm}{15mm} 517 | \sffamily\heiti 518 | \ifcqu@bachelor 519 | \zihao{-2}\cqu@thesistypenameCN 520 | \\ \vspace{\stretch{1}} 521 | \zihao{2}\cqu@ctitle 522 | \\ \vspace{\stretch{2}} 523 | \includegraphics[width=6cm]{CQUbadge.pdf} 524 | \\ \vspace{\stretch{2}} 525 | \else 526 | \zihao{2}\cqu@ctitle 527 | \\ \vspace{\stretch{1}} 528 | \includegraphics[width=3cm]{CQUbadge.pdf} 529 | \\ \vspace{\stretch{1}} 530 | \zihao{1}\cqu@thesistypenameCN\\ 531 | \zihao{3}\cqu@thesistype 532 | \ifcqu@master{}\\\cqu@mastertype\fi 533 | \\ \vspace{\stretch{2}} 534 | \fi 535 | \ifcqu@bachelor 536 | \zihao{3} 537 | \begin{varwidth}{\textwidth} 538 | \begin{CJKfilltwosides}{4.5\ccwd} 539 | \cqu@studentCN\cqu@title@separatorCN\\ 540 | \cqu@studentnumCN\cqu@title@separatorCN\\ 541 | \cqu@supervisorCN\cqu@title@separatorCN\\ 542 | \ifdefstring{\cqu@cassistsupervisor}{}{\relax}{{\zihao{5}\begin{CJKfilltwosides}{66bp}\cqu@assistsupervisorCN\end{CJKfilltwosides}}\hfill\cqu@title@separatorCN\\} 543 | \ifdefstring{\cqu@cextrasupervisor}{}{\relax}{{\zihao{5}\begin{CJKfilltwosides}{66bp}\cqu@extrasupervisorCN\end{CJKfilltwosides}}\hfill\cqu@title@separatorCN\\} 544 | \cqu@majorCN\cqu@title@separatorCN 545 | \end{CJKfilltwosides} 546 | \end{varwidth} 547 | \else 548 | \zihao{3} 549 | \begin{varwidth}{\textwidth} 550 | \begin{CJKfilltwosides}{4.5\ccwd} 551 | \cqu@studentCN\cqu@title@separatorCN\\ 552 | \cqu@supervisorCN\cqu@title@separatorCN\\ 553 | \ifcqu@academic 554 | \cqu@majorCN\cqu@title@separatorCN\\ 555 | \else 556 | \cqu@psupervisorCN\cqu@title@separatorCN\\ 557 | \fi 558 | \cqu@majorclassCN\cqu@title@separatorCN\\ 559 | \cqu@research_directionCN\cqu@title@separatorCN\\ 560 | \cqu@chair\cqu@title@separatorCN\\ 561 | \cqu@shouweitime\cqu@title@separatorCN 562 | \end{CJKfilltwosides} 563 | \end{varwidth} 564 | \fi 565 | \hskip.5\ccwd 566 | \zihao{3} 567 | \begin{varwidth}{\textwidth}% 568 | \mbox{\cqu@cauthor}\\ 569 | \ifcqu@bachelor\cqu@studentid\\\fi 570 | \cqu@csupervisor\\ %不要放在盒子里 571 | \ifcqu@academic %这里有点复杂 572 | \ifcqu@bachelor 573 | \ifdefstring{\cqu@cassistsupervisor}{}{\relax}{\cqu@cassistsupervisor\\} 574 | \ifdefstring{\cqu@cextrasupervisor}{}{\relax}{\cqu@cextrasupervisor\\} 575 | \fi 576 | \mbox{\cqu@cmajor}\\ 577 | \mbox{\cqu@cmajora}\\ 578 | \mbox{\cqu@cmajorb}\\\\ 579 | \mbox{\cqu@cmajorc} 580 | %\mbox{\cqu@cmajord} 581 | \ifcqu@bachelor\relax\else\\\cqu@cclass\fi 582 | \else 583 | %\cqu@cpsupervisor\\ 584 | %\cqu@cclass\\ 585 | \fi 586 | %\mbox{\cqu@research_direction} 587 | \end{varwidth} 588 | \\ \vspace{\stretch{2}} 589 | %\zihao{-2}\cqu@universitynameCN\cqu@cdepartment\\[1mm] 590 | %\zihao{3}\ifdefempty{\cqu@mycdate}{\cdate}{\cqu@mycdate} 591 | %\vspace{10mm} 592 | \end{center}} 593 | \newcommand{\make@cover@EN}{% 594 | \cleardoublepage 595 | \thispagestyle{style@empty} 596 | \begin{center} 597 | \rule{0mm}{15mm} 598 | \rmfamily % Times New Roman 599 | \ifcqu@bachelor 600 | \zihao{-2}\cqu@thesistypenameEN 601 | \\ \vspace{\stretch{2}} 602 | \zihao{-1}\textbf{\cqu@etitle} 603 | \\ \vspace{\stretch{1}} 604 | \includegraphics[width=5cm]{CQUbadge.pdf} 605 | \\ \vspace{\stretch{2}} 606 | \zihao{3}\textbf{\cqu@studentEN\cqu@title@separatorEN\mbox{\cqu@eauthor}}\\ 607 | \cqu@supervisorEN\mbox{\cqu@esupervisor}\\ 608 | \ifdefstring{\cqu@eassistsupervisor}{}{\relax}{\cqu@assistsupervisorEN\cqu@title@separatorEN\mbox{\cqu@eassistsupervisor}\\} 609 | \cqu@majorEN\cqu@title@separatorEN\mbox{\cqu@emajor} 610 | \else 611 | \zihao{2}\textbf{\cqu@etitle} 612 | \\ \vspace{\stretch{2}} 613 | \includegraphics[width=3cm]{CQUbadge.pdf} 614 | \\ \vspace{\stretch{2}} 615 | \zihao{-3}\cqu@thesistypenameEN 616 | \\ \vspace{\stretch{1}} 617 | \zihao{-2}\textbf{\cqu@workby} 618 | \\ \vspace{\stretch{1}} 619 | \zihao{-2}\mbox{\textbf{\cqu@eauthor}}\\ 620 | \textbf{\cqu@supervisorEN}\textbf{\cqu@esupervisor}\\ 621 | \vspace{\stretch{3}} 622 | \fi 623 | \zihao{-2}\textbf{\cqu@mydata}\\ 624 | %\ifdefempty{\cqu@myedate}{\textbf{\edate}}{\textbf{\cqu@myedate}} 625 | \vspace{10mm} 626 | \end{center}} 627 | \def\makecover{% 628 | \hypersetup{% 629 | pdftitle = {\cqu@ctitle}, 630 | pdfauthor = {\cqu@cauthor}, 631 | pdfsubject = {\cqu@thesistypenameCN}, 632 | pdfkeywords = {\cqu@ckeywords}, 633 | pdfcreator = {CQUThesis--v\version, a LaTeX template.} 634 | } 635 | \phantomsection 636 | \pdfbookmark[-1]{\cqu@ctitle}{ctitle} 637 | \make@cover@CN 638 | \make@cover@EN 639 | }%makecover 640 | \newcommand{\cqu@@cabstract}[1]{\long\gdef\cqu@cabstract{#1}} 641 | \newenvironment{cabstract}{\Collect@Body\cqu@@cabstract}{} 642 | \newcommand{\cqu@@eabstract}[1]{\long\gdef\cqu@eabstract{#1}} 643 | \newenvironment{eabstract}{\Collect@Body\cqu@@eabstract}{} 644 | \def\makeabstract{% 645 | \cleardoublepage 646 | \normalsize 647 | \cqu@makeabstract 648 | }%makeabstract 649 | \newcommand{\cqu@makeabstract}{% 650 | \clearpage 651 | \chapter[\cqu@cabstract@tocname]{\cqu@cabstract@name} 652 | \pagestyle{style@normal} 653 | %\cqu@fixhead 654 | \pagenumbering{Roman} 655 | \cqu@cabstract 656 | \vskip12bp 657 | \cqu@put@kw{\heiti\cqu@ckw@title\cqu@title@separatorCN}{\cqu@ckeywords} 658 | \if@twosideprint\ifcqu@openany\ifcqu@abstractopenright\cqu@addblankpage\fi\fi\fi 659 | \chapter[\cqu@eabstract@tocname]{\rmfamily\textbf{\cqu@eabstract@name}} 660 | \cqu@fixhead 661 | \cqu@eabstract 662 | \vskip12bp 663 | \cqu@put@kw{\textbf{\cqu@ekw@title\cqu@title@separatorEN}}{\cqu@ekeywords} 664 | } 665 | \newbox\cqu@kw 666 | \newcommand{\cqu@put@kw}[2]{% 667 | \begingroup 668 | \setbox\cqu@kw=\hbox{#1} 669 | \noindent\hangindent\wd\cqu@kw\hangafter1 670 | \box\cqu@kw#2\par 671 | \endgroup} 672 | \NewDocumentCommand{\cqu@makeauth}{o}{% 673 | \clearpage 674 | \thispagestyle{style@empty} 675 | \IfNoValueTF{#1}{% 676 | \rule{0mm}{5mm} 677 | \begin{center} 678 | \zihao{3} 679 | \begin{CJKfilltwosides}{6\ccwd} 680 | \heiti{}\cqu@innotitle 681 | \end{CJKfilltwosides} 682 | \end{center} 683 | \vspace{2mm} 684 | \zihao{-4} 685 | \par\cqu@innobody 686 | \\[5mm] 687 | \par\cqu@innosignature\hfill\cqu@signdate 688 | \vspace{15mm} 689 | \begin{center} 690 | \zihao{3}\heiti 691 | \cqu@authtitle 692 | \end{center} 693 | \vspace{2mm} 694 | \zihao{-4} 695 | \par\cqu@authbody 696 | \\[15mm] 697 | \begin{minipage}{\textwidth} 698 | \begin{minipage}{15\ccwd} 699 | \cqu@authsignaturestu\\[10mm] 700 | \cqu@signdate 701 | \end{minipage} 702 | \hfill 703 | \begin{minipage}{15\ccwd} 704 | \cqu@authsignaturesup\\[10mm] 705 | \cqu@signdate 706 | \end{minipage} 707 | \end{minipage} 708 | }{ 709 | \includepdf{#1} 710 | } 711 | }%\cqu@makeauth 712 | \let\cquauthpage\cqu@makeauth 713 | \newlist{cqu@denotation}{description}{1} 714 | \setlist[cqu@denotation]{% 715 | nosep, 716 | font = \normalfont, 717 | align = left, 718 | leftmargin = !, 719 | labelindent = 0mm, 720 | labelwidth = 25mm, 721 | labelsep* = 5mm, 722 | itemindent = 0mm, 723 | }%\setlist 724 | \NewDocumentEnvironment{denotation}{O{20mm} O{30mm}}{% 725 | \chapter*{\cqu@denotation@name} 726 | \chaptermark{\cqu@denotation@name}\cqu@fixhead 727 | \zihao{-4}\begin{cqu@denotation}[labelindent = #1,labelwidth=#2,] 728 | }{ 729 | \end{cqu@denotation}}%\denotation 730 | \setcounter{tocdepth}{2} 731 | \setcounter{secnumdepth}{3} 732 | \setlength{\cftbeforechapskip}{1mm} 733 | \ifcqu@liberalformat 734 | \cftsetindents{chapter}{0em}{1.5em} 735 | \cftsetindents{section}{1.9em}{0.9em} 736 | \cftsetindents{subsection}{4.0em}{1.5em} 737 | \else 738 | \cftsetindents{chapter}{0em}{1.5em} 739 | \cftsetindents{section}{1.5em}{2.2em} 740 | \cftsetindents{subsection}{3.7em}{2.9em} 741 | \fi 742 | \ifcqu@seriftoc 743 | \renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} 744 | \renewcommand{\cftchapfont}{\zihao{4}\sffamily\heiti} 745 | \renewcommand{\cftsecfont}{\zihao{5}\sffamily\heiti} 746 | \renewcommand{\cftsubsecfont}{\zihao{5}} 747 | \fi 748 | \newlistof[chapter]{equations}{equ}{\listofequationsname} 749 | \newlistof[chapter]{equationsEN}{equEN}{\listofequationsnameEN} 750 | \DeclareDocumentCommand{\listeq}{ m o }{% 751 | \addcontentsline{equ}{equations}{\protect\numberline{\theequation}#1}\par 752 | \IfNoValueTF{#2}{% 753 | \relax 754 | }{% 755 | \if@bicombined 756 | \addcontentsline{equ}{equations}{\protect\numberline{\theequation}#2}\par 757 | \else 758 | \if@biapart 759 | \addcontentsline{equEN}{equationsEN}{\protect\numberline{\theequation}#2}\par 760 | \fi 761 | \fi 762 | } 763 | }%listeq 764 | \setlength{\cftequationsnumwidth}{2.5em} 765 | \setlength{\cftequationsENnumwidth}{2.5em} 766 | \let\eqlist\listeq 767 | \tocloftpagestyle{style@normal} 768 | \renewcommand{\cfttoctitlefont}{% 769 | \phantomsection\pdfbookmark[0]{\cqu@tocnameinbkmark}{toc}\cqu@fixhead\hfill\bfseries\sffamily\heiti\zihao{3}} 770 | \renewcommand{\cftloftitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}} 771 | \renewcommand{\cftlottitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}} 772 | \renewcommand{\cftequtitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}} 773 | \renewcommand{\cftequENtitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}} 774 | \renewcommand{\cftaftertoctitle}{\hfill} 775 | \renewcommand{\cftafterloftitle}{\hfill} 776 | \renewcommand{\cftafterlottitle}{\hfill} 777 | \renewcommand{\cftafterequtitle}{\hfill} 778 | \renewcommand{\cftafterequENtitle}{\hfill} 779 | \renewcommand{\cftdot}{…} 780 | \renewcommand{\cftdotsep}{0} 781 | \renewcommand{\cftchapdotsep}{\cftdotsep} 782 | \renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}} 783 | \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} 784 | \ifcqu@continuoustoc\relax\else 785 | \renewcommand{\@cfttocstart}{\cleardoublepage} 786 | \renewcommand{\@cfttocfinish}{\cleardoublepage} 787 | \fi 788 | \newcommand{\chapterstar}[1]{% 789 | \chapter*{#1}% 790 | \phantomsection 791 | \@mkboth{#1}{} 792 | \addcontentsline{toc}{chapter}{#1}} 793 | \bibpunct{[}{]}{,}{s}{}{,} 794 | \renewcommand\NAT@citesuper[3]{\ifNAT@swa% 795 | \unskip\kern\p@\textsuperscript{\NAT@@open #1\NAT@@close}% 796 | \if*#3*\else\ (#3)\fi\else #1\fi\endgroup} 797 | \DeclareRobustCommand\inlinecite{\@inlinecite} 798 | \def\@inlinecite#1{\begingroup\let\@cite\NAT@citenum\citep{#1}\endgroup} 799 | \let\onlinecite\inlinecite 800 | \pretocmd{\bibliography}{% 801 | \clearpage\phantomsection\addcontentsline{toc}{chapter}{\cqu@bib@name}}{}{} 802 | \AtBeginDocument{% 803 | \pretocmd{\bibliography}{\begingroup\zihao{5}}{}{} 804 | \apptocmd{\bibliography}{\endgroup}{}{} 805 | }%AtBeginDocument 806 | \renewcommand\@biblabel[1]{\zihao{5}[#1]} 807 | \renewenvironment{thebibliography}[1] 808 | {\chapter*{\cqu@bib@name 809 | \@mkboth{\cqu@bib@name}{}}% 810 | \list{\@biblabel{\@arabic\c@enumiv}}% 811 | {\settowidth\labelwidth{\@biblabel{#1}}% 812 | \leftmargin\labelwidth 813 | \advance\leftmargin\labelsep 814 | \setlength{\parsep}{1mm} 815 | \setlength{\labelsep}{0.5em} 816 | \setlength{\itemsep}{0.05pc} 817 | \setlength{\listparindent}{0in} 818 | \setlength{\itemindent}{0in} 819 | \setlength{\rightmargin}{0in} 820 | \@openbib@code 821 | \usecounter{enumiv}% 822 | \let\p@enumiv\@empty 823 | \renewcommand\theenumiv{\@arabic\c@enumiv}}% 824 | \sloppy 825 | \clubpenalty4000 826 | \@clubpenalty\clubpenalty 827 | \widowpenalty4000% 828 | \sfcode`\.\@m 829 | }{% 830 | \def\@noitemerr 831 | {\@latex@warning{Empty `thebibliography' environment}}% 832 | \endlist \vskip.2in} 833 | \AtEndOfClass{\input{cquthesis.cfg}} 834 | \endinput 835 | %% 836 | %% End of file `cquthesis.cls'. 837 | -------------------------------------------------------------------------------- /ref/refs.bib: -------------------------------------------------------------------------------- 1 | % Encoding: UTF-8 2 | 3 | 4 | @article{r1, 5 | title={Error characterization, mitigation, and recovery in flash-memory-based solid-state drives}, 6 | author={Cai, Yu and Ghose, Saugata and Haratsch, Erich F and Luo, Yixin and Mutlu, Onur}, 7 | journal={Proceedings of the IEEE}, 8 | volume={105}, 9 | number={9}, 10 | pages={1666--1704}, 11 | year={2017}, 12 | publisher={IEEE} 13 | } 14 | 15 | @Article{r2, 16 | author = {Zhang, Yulian and Yu, Dongliang and Gao, Mingqi and Li, Dongdong and Song, Ye and Jin, Rong and Ma, Weihua and Zhu, Xufei}, 17 | title = {Growth of anodic TiO2 nanotubes in mixed electrolytes and novel method to extend nanotube diameter}, 18 | journal = {ELECTROCHIMICA ACTA}, 19 | year = {2015}, 20 | volume = {160}, 21 | pages = {33--42}, 22 | month = apr, 23 | abstract = {{I}t is well known anodic {T}i{O}2 nanotubes ({ATNT}s) can be obtained by the 24 | anodization of {T}i foils in fluoride-containing solutions, and the 25 | nanotube diameter is proportional to the applied voltages. {H}owever, the 26 | growth kinetics of {ATNT}s and the relationship between structural 27 | features and anodizing parameters still remain unclear. {C}hallenges 28 | always remain in the fabrication of {ATNT}s with large diameters due to 29 | the undesired breakdown event under the high voltage in {NH}4{F} solutions. 30 | {H}ere, an interesting approach is first proposed to overcome these 31 | particular challenges. {A} series of constant current anodizing processes 32 | in fluoride-free {H}3{PO}4 solutions, {NH}4{F} solutions of different 33 | concentrations (0.7 wt\%, 0.5 wt\% and 0.2 wt \%), and different mixed 34 | electrolytes containing both {NH}4{F} and {H}3{PO}4, have been compared in 35 | detail. {A}nd we mainly focused on the influence of the different ratios 36 | of {NH}4{F} and {H}3{PO}4 on the outer diameters of {ATNT}s and the correlation 37 | between two types of films. {T}he interesting results show that the 38 | nanotube diameter greatly increases with {H}3{PO}4 amount in the solutions 39 | with a given concentration of {NH}4{F}. {I}n contrast, the nanotube length 40 | decreases with the increase of {H}3{PO}4 amount in the solutions with a 41 | given concentration of {NH}4{F}. {T}he experimental findings and the undesired 42 | breakdown phenomenon can be elucidated by the theory of the electronic 43 | current and ionic current rather than by the field-assisted dissolution. 44 | ({C}) 2015 {E}lsevier {L}td. {A}ll rights reserved.}, 45 | address = {THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}, 46 | affiliation = {Li, DD (Reprint Author), Chinese Acad Sci, Shanghai Adv Res Inst, Shanghai 201210, Peoples R China. Zhang, Yulian; Yu, Dongliang; Song, Ye; Jin, Rong; Ma, Weihua; Zhu, Xufei, Nanjing Univ Sci \& Technol, Key Lab Soft Chem \& Funct Mat, Educ Minist, Nanjing 210094, Jiangsu, Peoples R China. Zhang, Yulian; Yu, Dongliang; Li, Dongdong, Chinese Acad Sci, Shanghai Adv Res Inst, Shanghai 201210, Peoples R China. Gao, Mingqi, Hebei Normal Univ Sci \& Technol, Dept Phys, Qinhuangdao 066004, Peoples R China.}, 47 | author-email = {lidd@sari.ac.cn zhuxufei.njust@163.com}, 48 | doc-delivery-number = {CD5GL}, 49 | doi = {10.1016/j.electacta.2015.02.058}, 50 | eissn = {1873-3859}, 51 | funding-acknowledgement = {National Natural Science Foundation of China {[}61171043, 51102271, 51377085, 21276127]; Science and Technology Commission of Shanghai Municipality {[}14JC1492900]}, 52 | funding-text = {This work was supported financially by the National Natural Science Foundation of China (Grants 61171043, 51102271, 51377085, 21276127) and the Science and Technology Commission of Shanghai Municipality (14JC1492900).}, 53 | issn = {0013-4686}, 54 | journal-iso = {Electrochim. Acta}, 55 | keywords = {TiO2 nanotubes; Anodization; Mixed electrolyte; Constant current}, 56 | keywords-plus = {OXIDE-FILMS; ANODIZATION; MORPHOLOGY; TITANIUM; ARRAYS; FABRICATION; ALUMINUM; MECHANISM; SUBSTRATE; OXIDATION}, 57 | language = {English}, 58 | number-of-cited-references = {58}, 59 | orcid-numbers = {Li, Dongdong/0000-0003-3219-181X}, 60 | publisher = {PERGAMON-ELSEVIER SCIENCE LTD}, 61 | research-areas = {Electrochemistry}, 62 | researcherid-numbers = {Li, Dongdong/A-2703-2011}, 63 | times-cited = {2}, 64 | type = {Article}, 65 | unique-id = {ISI:000351115900006}, 66 | web-of-science-categories = {Electrochemistry} 67 | } 68 | 69 | @Article{r3, 70 | author = {Xue, Yujing and Sun, Yan and Wang, Guixin and Yan, Kangping and Zhao, Jingyong}, 71 | title = {Effect of NH4{F} concentration and controlled-charge consumption on the photocatalytic hydrogen generation of TiO2 nanotube arrays}, 72 | journal = {ELECTROCHIMICA ACTA}, 73 | year = {2015}, 74 | volume = {155}, 75 | pages = {312--320}, 76 | month = feb, 77 | abstract = {{S}elf-organized {T}i{O}2 nanotube arrays ({T}i{O}2 {N}ts) for hydrogen evolution 78 | were successfully fabricated by electrochemical anodization in ethylene 79 | glycol-based electrolytes with various {NH}4{F} concentrations. {H}ydrogen 80 | production by photocatalytic water splitting was performed in a 81 | two-compartment photoelectrochemical ({PEC}) cell without any applied 82 | voltage. {T}he effect of {NH}4{F} concentration on the morphological 83 | structure, {PEC} performance and hydrogen evolution of {T}i{O}2 samples were 84 | systematically investigated. {T}i{O}2 anodized with 0.50 wt\% of {NH}4{F} 85 | concentration for 60 min exhibited highest hydrogen evolution of 2.53 m{L} 86 | h(-1) cm(-2) and maximum photoconversion efficiency of 4.39\%. {B}ased on 87 | the above results and the different current-time curves during 88 | anodization processes, another series of {T}i{O}2 nanotube arrays samples 89 | with the equal charge consumption (designated as {T}i{O}2 {N}ts-{EC}) were 90 | synthesized by controlling the anodization time in electrolytes 91 | containing different {NH}4{F} concentrations. {C}ompared with {T}i{O}2 {N}ts 92 | prepared at the same {NH}4{F} concentration for 60 min, hydrogen production 93 | and {PEC} properties of {T}i{O}2 {N}ts-{EC} samples have been obviously enhanced, 94 | especially for the sample prepared at 1.25 wt\% {NH}4{F} concentrations. 95 | {M}oreover, despite the difference of {NH}4{F} concentration in electrolyte, 96 | the {T}i{O}2 {N}ts-{EC} samples exhibit comparable {PEC} performances. {T}hese 97 | results indicated that the anodization charge-density play a crucial 98 | role in the hydrogen generation of {T}i{O}2 {N}ts. {T}he results benefit the 99 | enhancement of the hydrogen production of {T}i{O}2 {N}ts. ({C}) 2015 {E}lsevier 100 | {L}td. {A}ll rights reserved.}, 101 | address = {THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}, 102 | affiliation = {Yan, KP (Reprint Author), Sichuan Univ, Coll Chem Engn, Chengdu 610065, Peoples R China. Xue, Yujing; Wang, Guixin; Yan, Kangping; Zhao, Jingyong, Sichuan Univ, Coll Chem Engn, Chengdu 610065, Peoples R China. Sun, Yan, Chengdu Univ, Coll Ind Mfg, Chengdu, Peoples R China.}, 103 | doc-delivery-number = {CB3RX}, 104 | doi = {10.1016/j.electacta.2014.12.134}, 105 | eissn = {1873-3859}, 106 | issn = {0013-4686}, 107 | journal-iso = {Electrochim. Acta}, 108 | keywords = {TiO2 nanotubes; NH4F concentration; anodization charge; hydrogen production; photoelectrochemical performance}, 109 | keywords-plus = {SENSITIZED SOLAR-CELLS; ANODIZATION PARAMETERS; ANODIC GROWTH; WATER; MORPHOLOGY; PERFORMANCE; PHOTOELECTRODES; TEMPERATURE; FABRICATION; EFFICIENCY}, 110 | language = {English}, 111 | number-of-cited-references = {50}, 112 | orcid-numbers = {Wang, Guixin wang/0000-0002-4850-9207}, 113 | publisher = {PERGAMON-ELSEVIER SCIENCE LTD}, 114 | research-areas = {Electrochemistry}, 115 | researcherid-numbers = {Wang, Guixin wang/I-8445-2014}, 116 | times-cited = {2}, 117 | type = {Article}, 118 | unique-id = {ISI:000349547100040}, 119 | web-of-science-categories = {Electrochemistry} 120 | } 121 | 122 | @InProceedings{r4, 123 | author = {Mahshid, S. and Dolati, A. and Goodarzi, M. and Askari, M. and Ghahramaninezhad, A.}, 124 | title = {Self-organized Titanium Oxide Nanotubes Prepared in Phosphate Electrolytes: Effect of Voltage and Fluorine Concentration}, 125 | booktitle = {NANOTECHNOLOGY (GENERAL) - 217\textsuperscript{TH} ECS MEETING}, 126 | year = {2010}, 127 | editor = {Bock, C and Traversa, E}, 128 | volume = {28}, 129 | number = {7}, 130 | series = {ECS Transactions}, 131 | pages = {67--74}, 132 | address = {65 S MAIN ST, PENNINGTON, NJ 08534-2839 USA}, 133 | organization = {Electrochem Soc (ECS)}, 134 | publisher = {ELECTROCHEMICAL SOC INC}, 135 | note = {Symposium on Nanotechnology General Session Held During the 217\textsuperscript{th} Meeting of the Electrochemical-Society (ECS), Vancouver, CANADA, APR 25-30, 2010}, 136 | abstract = {{T}i{O}2 a nanotube array was prepared using an anodization process. {T}he 137 | process proceeded in a two-electrode cell containing of platinum sheet 138 | as the cathode electrode. {T}wo phosphate-base electrolyte solutions 139 | containing different amounts of {HF} and {NH}4{F} were prepared. {D}ifferent 140 | concentration of fluorine ions were examined in respected electrolytes. 141 | {C}urrent transient techniques were used to produce the {T}i{O}2 nanotubes at 142 | constant voltage of 18-25{V}. {I}t was revealed that anodization at 18-22{V}, 143 | in so-called electrolytes would end up to nano-tubular structure. 144 | {H}owever the tubular structure prepared at 20{V} and from phosphate 145 | electrolyte containing of 0.5 wt\% {NH}4{F} as well as 0.5 wt\% {HF}, was 146 | recognized the best. {T}he results were also confirmed by {S}canning 147 | {E}lectron {M}icroscopy ({SEM}) images. {P}hase characterization of the nanotube 148 | oxide layer was carried out using x-ray diffraction ({XRD}) method.}, 149 | affiliation = {Mahshid, S (Reprint Author), Sharif Univ Technol, Dept Mat Sci \& Engn, Tehran 111559466, Iran. Mahshid, S.; Dolati, A.; Goodarzi, M.; Askari, M.; Ghahramaninezhad, A., Sharif Univ Technol, Dept Mat Sci \& Engn, Tehran 111559466, Iran.}, 150 | doc-delivery-number = {BDU71}, 151 | doi = {10.1149/1.3491775}, 152 | isbn = {978-1-56677-833-6}, 153 | issn = {1938-5862}, 154 | keywords-plus = {TIO2 NANOTUBES; ARRAYS; ANODIZATION; GROWTH}, 155 | language = {English}, 156 | number-of-cited-references = {12}, 157 | research-areas = {Electrochemistry; Science \& Technology - Other Topics}, 158 | times-cited = {3}, 159 | type = {Proceedings Paper}, 160 | unique-id = {ISI:000314958100009}, 161 | web-of-science-categories = {Electrochemistry; Nanoscience \& Nanotechnology} 162 | } 163 | 164 | @Article{r5, 165 | author = {Albu, Sergiu P. and Schmuki, Patrik}, 166 | title = {Influence of anodization parameters on the expansion factor of TiO2 nanotubes}, 167 | journal = {ELECTROCHIMICA ACTA}, 168 | year = {2013}, 169 | volume = {91}, 170 | pages = {90--95}, 171 | month = feb, 172 | abstract = {{G}rowth of titania nanotubes was carried out in fluoride containing 173 | electrolytes using photolithographically defined thin film patterns to 174 | determine the amount of expansion when the metal is converted to oxide. 175 | {T}his expansion of {T}i{O}2 nanotubes is studied for a large set of 176 | electrochemical conditions. {W}e show that this parameter strongly depends 177 | on the applied anodization potential and the water content in the 178 | electrolyte whereas the fluoride content is only of minor influence. 179 | {E}xpansion factors were found to vary between 1.3 and 2.8 depending on 180 | the anodizing parameters. {T}his variation is explained in terms of 181 | efficiency of oxide growth, as well as of chemical composition, density, 182 | and porosity of the {T}i{O}2 nanotubular array. ({C}) 2012 {E}lsevier {L}td. {A}ll 183 | rights reserved.}, 184 | address = {THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}, 185 | affiliation = {Schmuki, P (Reprint Author), Univ Erlangen Nurnberg, Inst Surface Sci \& Corros LKO, Dept Mat Sci, Martensstr 7, D-91058 Erlangen, Germany. Albu, Sergiu P.; Schmuki, Patrik, Univ Erlangen Nurnberg, Inst Surface Sci \& Corros LKO, Dept Mat Sci, D-91058 Erlangen, Germany.}, 186 | author-email = {schmuki@ww.uni-erlangen.de}, 187 | doc-delivery-number = {113ZB}, 188 | doi = {10.1016/j.electacta.2012.12.094}, 189 | funding-acknowledgement = {DFG; DFG Cluster of Excellence EAM}, 190 | funding-text = {We would like to acknowledge DFG and DFG Cluster of Excellence EAM for financial support.}, 191 | issn = {0013-4686}, 192 | journal-iso = {Electrochim. Acta}, 193 | keywords = {TiO2 nanotubes; Pilling-Bedworth ratio; Anodization; Photolithography; Organic electrolyte}, 194 | keywords-plus = {HEXAGONAL PORE ARRAYS; ANODIC ALUMINA; SELF-ORGANIZATION; ETHYLENE-GLYCOL; WATER-CONTENT; GROWTH; FILMS; OXIDE; TITANIUM; ELECTROLYTES}, 195 | language = {English}, 196 | number-of-cited-references = {23}, 197 | publisher = {PERGAMON-ELSEVIER SCIENCE LTD}, 198 | research-areas = {Electrochemistry}, 199 | times-cited = {21}, 200 | type = {Article}, 201 | unique-id = {ISI:000316707400013}, 202 | web-of-science-categories = {Electrochemistry} 203 | } 204 | 205 | @Article{r6, 206 | author = {Roy, Poulomi and Berger, Steffen and Schmuki, Patrik}, 207 | title = {TiO2~{N}anotubes: Synthesis and Applications}, 208 | journal = {ANGEWANDTE CHEMIE-INTERNATIONAL EDITION}, 209 | year = {2011}, 210 | volume = {50}, 211 | number = {13}, 212 | pages = {2904--2939}, 213 | address = {BOSCHSTRASSE 12, D-69469 WEINHEIM, GERMANY}, 214 | affiliation = {Schmuki, P (Reprint Author), Univ Erlangen Nurnberg, Dept Mat Sci, WW4-LKO, Martensstr 7, D-91058 Erlangen, Germany. Roy, Poulomi; Berger, Steffen; Schmuki, Patrik, Univ Erlangen Nurnberg, Dept Mat Sci, WW4-LKO, D-91058 Erlangen, Germany.}, 215 | author-email = {schmuki@ww.uni-erlangen.de}, 216 | doc-delivery-number = {734KS}, 217 | doi = {10.1002/anie.201001374}, 218 | funding-acknowledgement = {DFG}, 219 | funding-text = {The authors would like to acknowledge the DFG for financial support and Prof. Dr. S. Virtanen, S. P. Albu, W. Wei, C. Das, I. Paramasivam, H. Jha, S. Bauer, H. Hilderbrand, R. Hahn, N. Shrestha, H. Tsuchiya, and K. Yasuda for their contributions.}, 220 | issn = {1433-7851}, 221 | journal-iso = {Angew. Chem.-Int. Edit.}, 222 | keywords = {anodization; electrochemistry; nanotubes; semiconductors; titanium dioxide}, 223 | keywords-plus = {SENSITIZED SOLAR-CELLS; HIGH-ASPECT-RATIO; ANODIC OXIDE-FILMS; ATOMIC LAYER DEPOSITION; ENHANCED ELECTROCHROMIC PROPERTIES; ONE-DIMENSIONAL NANOSTRUCTURES; SURFACE-PLASMON RESONANCE; MESENCHYMAL STEM-CELLS; NANOPOROUS TA2O5 FILMS; GEL TEMPLATE SYNTHESIS}, 224 | language = {English}, 225 | number-of-cited-references = {446}, 226 | publisher = {WILEY-V C H VERLAG GMBH}, 227 | research-areas = {Chemistry}, 228 | times-cited = {872}, 229 | type = {Review}, 230 | unique-id = {ISI:000288333600005}, 231 | web-of-science-categories = {Chemistry, Multidisciplinary} 232 | } 233 | 234 | @Article{r7, 235 | author = {Sulka, Grzegorz D. and Kapusta-Kolodziej, Joanna and Brzozka, Agnieszka and Jaskula, Marian}, 236 | title = {Anodic growth of TiO2 nanopore arrays at various temperatures}, 237 | journal = {ELECTROCHIMICA ACTA}, 238 | year = {2013}, 239 | volume = {104}, 240 | pages = {526--535}, 241 | month = aug, 242 | note = {3\textsuperscript{rd} International Symposium on Surface Imaging/Spectroscopy at the Solid/Liquid Interface (ISSIS), Polish Acad Sci, J Haber Inst Catalysis \& Surface Chem, Krakow, POLAND, MAY 27-JUN 01, 2012}, 243 | abstract = {{N}anoporous anodic titanium oxide ({ATO}) layers with different cell sizes, 244 | pore diameters and the thicknesses are successfully grown by three-step 245 | self-organized anodization in ethylene glycol containing 0.38 wt\% of 246 | {NH}4{F} and 1.79 wt\% of {H}2{O} at applied potential differences ranging from 247 | 30 {V} to 70 {V} at various electrolyte temperatures. {A} relatively high 248 | growth speed (about 40 mu m h(-1)) of nanopore arrays is achieved at 30 249 | degrees {C} under the potential difference of 70 {V}. {T}he morphology and the 250 | structure of {ATO} layers are directly affected by anodizing conditions, 251 | especially temperature and potential difference. {I}t was found that the 252 | oxide thickness and the cell size are linearly dependent on anodizing 253 | potential difference. {O}n the other hand, the anodizing temperature in 254 | the range of 10-30 degrees {C} does not affect the cell size in {ATO} films. 255 | {A}nalyses of the pore diameter, pore circularity and regularity of the 256 | pore arrangement suggests that nanoporous anodic titania with the best 257 | pore arrangement can be formed in a controlled manner by anodization 258 | performed at 50 {V} and 20 degrees {C}. {S}urprisingly, below and above this 259 | critical potential difference and temperature, pore diameters are 260 | smaller and obtained {ATO} structures are less regular. {A}t higher 261 | anodizing temperatures, the regularity of pore arrangement observed at 262 | the surface and the pore diameter are considerably affected by the 263 | precipitated hydrous titanium dioxide. ({C}) 2013 {E}lsevier {L}td. {A}ll rights 264 | reserved.}, 265 | address = {THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}, 266 | affiliation = {Sulka, GD (Reprint Author), Jagiellonian Univ, Dept Phys Chem \& Electrochem, Ingardena 3, PL-30060 Krakow, Poland. Sulka, Grzegorz D.; Kapusta-Kolodziej, Joanna; Jaskula, Marian, Jagiellonian Univ, Dept Phys Chem \& Electrochem, PL-30060 Krakow, Poland. Brzozka, Agnieszka, AGH Univ Sci \& Technol, Fac Nonferrous Met, PL-30059 Krakow, Poland.}, 267 | author-email = {sulka@chemia.uj.edu.pl}, 268 | doc-delivery-number = {180NF}, 269 | doi = {10.1016/j.electacta.2012.12.121}, 270 | issn = {0013-4686}, 271 | journal-iso = {Electrochim. Acta}, 272 | keywords = {Anodization; Porous titania; Nanostructures; Nanopores; Nanotubes}, 273 | keywords-plus = {SENSITIZED SOLAR-CELLS; ALIGNED TITANIA NANOTUBES; ELECTROCHEMICAL ANODIZATION; HYDROGEN GENERATION; MU-M; OXIDE; FABRICATION; DIAMETER; LAYERS; LENGTH}, 274 | language = {English}, 275 | number-of-cited-references = {63}, 276 | orcid-numbers = {Sulka, Grzegorz/0000-0001-7431-617X}, 277 | organization = {Univ Warsaw, Fac Chem; Electrochem Soc; Shim Pol; KGHM; ECOREN; Azoty Tarnow; nLab}, 278 | publisher = {PERGAMON-ELSEVIER SCIENCE LTD}, 279 | research-areas = {Electrochemistry}, 280 | researcherid-numbers = {Sulka, Grzegorz/H-1416-2014 }, 281 | times-cited = {25}, 282 | type = {Article; Proceedings Paper}, 283 | unique-id = {ISI:000321601200064}, 284 | web-of-science-categories = {Electrochemistry} 285 | } 286 | 287 | @Article{r8, 288 | author = {Garcia-Vergara, S. J. and Skeldon, P. and Thompson, G. E. and Habazaki, H.}, 289 | title = {A flow model of porous anodic film growth on aluminium}, 290 | journal = {ELECTROCHIMICA ACTA}, 291 | year = {2006}, 292 | volume = {52}, 293 | number = {2}, 294 | pages = {681--687}, 295 | month = oct, 296 | abstract = {{T}he development of pores in a classical porous anodic film formed on 297 | aluminium in phosphoric acid solution is investigated. {T}he study employs 298 | a tungsten tracer layer that is incorporated into the anodic film from 299 | the aluminium substrate, followed by detection of the tracer by 300 | transmission electron microscopy and {R}utherford backscattering 301 | spectroscopy. {D}istortions of the tungsten layer on entry into the film 302 | and retention of tungsten species in the film are compatible with 303 | porosity arising mainly from flow of anodic oxide beneath the pore bases 304 | towards the cell walls. {T}he behaviour is contrary to expectations of a 305 | dissolution model of pore formation. (c) 2006 {E}lsevier {L}td. {A}ll rights 306 | reserved.}, 307 | address = {THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}, 308 | affiliation = {Skeldon, P (Reprint Author), Univ Manchester, Ctr Corros \& Protect, Sch Mat, POB 88, Manchester M60 1QD, Lancs, England. Univ Manchester, Ctr Corros \& Protect, Sch Mat, Manchester M60 1QD, Lancs, England. Hokkaido Univ, Grad Sch Engn, Kita Ku, Sapporo, Hokkaido 0608628, Japan.}, 309 | author-email = {p.skeldon@manchester.ac.uk}, 310 | doc-delivery-number = {107IJ}, 311 | doi = {10.1016/j.electacta.2006.05.054}, 312 | issn = {0013-4686}, 313 | journal-iso = {Electrochim. Acta}, 314 | keywords = {aluminium; anodizing; anodic oxide; porous film}, 315 | keywords-plus = {OXIDE-FILMS; ACID ELECTROLYTES; OXYGEN BUBBLES; OXIDATION; MICROANALYSIS; MECHANISM; BEHAVIOR; TUNGSTEN; DENSITY; ALLOYS}, 316 | language = {English}, 317 | number-of-cited-references = {33}, 318 | orcid-numbers = {Habazaki, Hiroki/0000-0002-7172-8811}, 319 | publisher = {PERGAMON-ELSEVIER SCIENCE LTD}, 320 | research-areas = {Electrochemistry}, 321 | researcherid-numbers = {Habazaki, Hiroki/C-5388-2012}, 322 | times-cited = {143}, 323 | type = {Article}, 324 | unique-id = {ISI:000242164000039}, 325 | web-of-science-categories = {Electrochemistry} 326 | } 327 | 328 | @Article{r9, 329 | author = {LeClere, D. J. and Velota, A. and Skeldon, P. and Thompson, G. E. and Berger, S. and Kunze, J. and Schmuki, P. and Habazaki, H. and Nagata, S.}, 330 | title = {Tracer investigation of pore formation in anodic titania}, 331 | journal = {JOURNAL OF THE ELECTROCHEMICAL SOCIETY}, 332 | year = {2008}, 333 | volume = {155}, 334 | number = {9}, 335 | pages = {487--494}, 336 | abstract = {{U}sing a sputtering-deposited titanium substrate, incorporating six 337 | equally spaced nanolayers of {T}i-{W} alloy, the volume and composition 338 | changes accompanying the formation of porous anodic films on titanium in 339 | 0.5 wt \% {NH}(4){F} in glycerol are investigated. {T}he findings reveal 340 | amorphous films with nanotubes of {T}i{O}(2), containing fluoride ions and 341 | possibly glycerol derivatives. {T}ungsten and titanium species are lost to 342 | the electrolyte at differing rates during anodizing, leading to an 343 | enrichment of tungsten in the film relative to the composition of the 344 | substrate. {T}he spacing of tungsten-containing bands in the film is 345 | similar to 2.3 that of the original alloy layers during growth of the 346 | major pores. {T}he generation of the nanotubes can be explained either by 347 | field-assisted flow of film material within the barrier layer to the 348 | pore walls, with cation and anion transport numbers of anodic titania in 349 | the barrier layer region similar to those of barrier films and with 350 | field-assisted ejection of {T}i(4+) ions to the electrolyte, or by 351 | field-assisted dissolution, but with a reduction in cation transport 352 | number. ({C}) 2008 {T}he {E}lectrochemical {S}ociety.}, 353 | address = {65 SOUTH MAIN STREET, PENNINGTON, NJ 08534 USA}, 354 | affiliation = {LeClere, DJ (Reprint Author), Univ Manchester, Sch Mat, Ctr Corros \& Protect, Manchester M60 1QD, Lancs, England. LeClere, D. J.; Velota, A.; Skeldon, P.; Thompson, G. E., Univ Manchester, Sch Mat, Ctr Corros \& Protect, Manchester M60 1QD, Lancs, England. Berger, S.; Kunze, J.; Schmuki, P., Univ Erlangen Nurnberg, Dept Mat Sci, D-91058 Erlangen, Germany. Habazaki, H., Hokkaido Univ, Grad Sch Engn, Kita Ku, Sapporo, Hokkaido 0608628, Japan. Nagata, S., Tohoku Univ, Inst Mat Res, Sendai, Miyagi 9808577, Japan.}, 355 | author-email = {p.skeldon@manchester.ac.uk}, 356 | doc-delivery-number = {331UT}, 357 | doi = {10.1149/1.2946727}, 358 | issn = {0013-4651}, 359 | journal-iso = {J. Electrochem. Soc.}, 360 | keywords-plus = {OXIDE-FILMS; SELF-ORGANIZATION; IONIC TRANSPORT; TIO2 NANOTUBES; FLUORIDE IONS; ALUMINA FILMS; OXIDATION; GROWTH; ELECTROLYTES; ANODIZATION}, 361 | language = {English}, 362 | number-of-cited-references = {50}, 363 | orcid-numbers = {Habazaki, Hiroki/0000-0002-7172-8811 }, 364 | publisher = {ELECTROCHEMICAL SOC INC}, 365 | research-areas = {Electrochemistry; Materials Science}, 366 | researcherid-numbers = {Habazaki, Hiroki/C-5388-2012 Nagata, Shinji/A-1796-2015}, 367 | times-cited = {57}, 368 | type = {Article}, 369 | unique-id = {ISI:000258038800030}, 370 | web-of-science-categories = {Electrochemistry; Materials Science, Coatings \& Films} 371 | } 372 | 373 | @InProceedings{r10, 374 | author = {Ross Girshick and Jeff Donahue and Trevor Darrell and Jitendra Malik}, 375 | title = {Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation}, 376 | booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, 377 | year = {2014}, 378 | editor = {}, 379 | volume = {}, 380 | pages = {580--587}, 381 | address = {Ohio, USA}, 382 | publisher = {IEEE} 383 | } 384 | 385 | @Article{z1, 386 | author = {胡壮麒 and 刘丽荣 and 金涛 and 孙晓峰}, 387 | title = {镍基单晶高温合金的发展}, 388 | journal = {航空发动机}, 389 | year = {2005}, 390 | volume = {31}, 391 | number = {3}, 392 | pages = {1--7} 393 | } 394 | 395 | @Article{z2, 396 | author = {徐启华 and 师军}, 397 | title = {基于支持向量机的航空发动机故障诊断}, 398 | journal = {航空动力学报}, 399 | year = {2005}, 400 | volume = {20}, 401 | number = {2}, 402 | pages = {298--302} 403 | } 404 | 405 | @Article{z3, 406 | author = {左洪福 and 张海军 and 戎翔}, 407 | title = {基于比例风险模型的航空发动机视情维修决策}, 408 | journal = {航空动力学报}, 409 | year = {2006}, 410 | volume = {21}, 411 | number = {4}, 412 | pages = {716--721} 413 | } 414 | -------------------------------------------------------------------------------- /cqunumerical.bst: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `gbt7714-unsrt.bst', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% gbt7714.dtx (with options: `numerical') 8 | %% 9 | %% Copyright (C) 2016-2018 by Zeping Lee 10 | %% 11 | %% This file may be distributed and/or modified under the 12 | %% conditions of the LaTeX Project Public License, either 13 | %% version 1.2 of this license or (at your option) any later 14 | %% version. The latest version of this license is in: 15 | %% 16 | %% http://www.latex-project.org/lppl.txt 17 | %% 18 | %% and version 1.2 or later is part of all distributions of 19 | %% LaTeX version 1999/12/01 or later. 20 | %% 21 | %% This BibTeX style file is derived from `plainnat.bst' by Patrick W Daly, 22 | %% which was designed for use with the `natbib.sty' package. 23 | %% 24 | ENTRY 25 | { address 26 | author 27 | booktitle 28 | date 29 | doi 30 | edition 31 | editor 32 | institution 33 | journal 34 | key 35 | language 36 | mark 37 | medium 38 | number 39 | organization 40 | pages 41 | publisher 42 | school 43 | series 44 | title 45 | translator 46 | url 47 | urldate 48 | volume 49 | year 50 | } 51 | { entry.lang } 52 | { label extra.label sort.label short.list entry.mark } 53 | 54 | INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash } 55 | 56 | INTEGERS { lang.zh lang.ja lang.en lang.ru lang.other } 57 | 58 | INTEGERS { charptr stringlength } 59 | 60 | FUNCTION {init.state.consts} 61 | { #0 'before.all := 62 | #1 'mid.sentence := 63 | #2 'after.sentence := 64 | #3 'after.block := 65 | #4 'after.slash := 66 | #3 'lang.zh := 67 | #4 'lang.ja := 68 | #1 'lang.en := 69 | #2 'lang.ru := 70 | #0 'lang.other := 71 | } 72 | 73 | STRINGS { s t } 74 | 75 | FUNCTION {debug} 76 | { 's := 77 | duplicate$ 78 | "DEBUG: " s * " -> `" * 79 | swap$ * "'" * 80 | top$ 81 | } 82 | 83 | FUNCTION {debug.int} 84 | { 's := 85 | duplicate$ int.to.str$ 86 | "DEBUG: " s * " == " * 87 | swap$ * 88 | top$ 89 | } 90 | 91 | FUNCTION {punct.colon} 92 | { ": " 93 | } 94 | 95 | FUNCTION {punct.slash} 96 | { "//\allowbreak{}" 97 | } 98 | 99 | FUNCTION {punct.space} 100 | { " " 101 | } 102 | 103 | FUNCTION {output.nonnull} 104 | { 's := 105 | output.state mid.sentence = 106 | { ", " * write$ } 107 | { output.state after.block = 108 | { add.period$ write$ 109 | newline$ 110 | "\newblock " write$ 111 | } 112 | { output.state before.all = 113 | 'write$ 114 | { output.state after.slash = 115 | { punct.slash * write$ } 116 | { add.period$ " " * write$ } 117 | if$ 118 | } 119 | if$ 120 | } 121 | if$ 122 | mid.sentence 'output.state := 123 | } 124 | if$ 125 | s 126 | } 127 | 128 | FUNCTION {output} 129 | { duplicate$ empty$ 130 | 'pop$ 131 | 'output.nonnull 132 | if$ 133 | } 134 | 135 | FUNCTION {output.after} 136 | { 't := 137 | duplicate$ empty$ 138 | 'pop$ 139 | { 's := 140 | output.state mid.sentence = 141 | { t * write$ } 142 | { output.state after.block = 143 | { add.period$ write$ 144 | newline$ 145 | "\newblock " write$ 146 | } 147 | { output.state before.all = 148 | 'write$ 149 | { output.state after.slash = 150 | { punct.slash * write$ } 151 | { add.period$ " " * write$ } 152 | if$ 153 | } 154 | if$ 155 | } 156 | if$ 157 | mid.sentence 'output.state := 158 | } 159 | if$ 160 | s 161 | } 162 | if$ 163 | } 164 | 165 | FUNCTION {output.check} 166 | { 't := 167 | duplicate$ empty$ 168 | { pop$ "empty " t * " in " * cite$ * warning$ } 169 | 'output.nonnull 170 | if$ 171 | } 172 | 173 | FUNCTION {fin.entry} 174 | { add.period$ 175 | write$ 176 | newline$ 177 | } 178 | 179 | FUNCTION {new.block} 180 | { output.state before.all = 181 | 'skip$ 182 | { output.state after.slash = 183 | 'skip$ 184 | { after.block 'output.state := } 185 | if$ 186 | } 187 | if$ 188 | } 189 | 190 | FUNCTION {new.sentence} 191 | { output.state after.block = 192 | 'skip$ 193 | { output.state before.all = 194 | 'skip$ 195 | { output.state after.slash = 196 | 'skip$ 197 | { after.sentence 'output.state := } 198 | if$ 199 | } 200 | if$ 201 | } 202 | if$ 203 | } 204 | 205 | FUNCTION {new.slash} 206 | { output.state before.all = 207 | 'skip$ 208 | { after.slash 'output.state := } 209 | if$ 210 | } 211 | 212 | FUNCTION {not} 213 | { { #0 } 214 | { #1 } 215 | if$ 216 | } 217 | 218 | FUNCTION {and} 219 | { 'skip$ 220 | { pop$ #0 } 221 | if$ 222 | } 223 | 224 | FUNCTION {or} 225 | { { pop$ #1 } 226 | 'skip$ 227 | if$ 228 | } 229 | 230 | FUNCTION {new.block.checka} 231 | { empty$ 232 | 'skip$ 233 | 'new.block 234 | if$ 235 | } 236 | 237 | FUNCTION {new.block.checkb} 238 | { empty$ 239 | swap$ empty$ 240 | and 241 | 'skip$ 242 | 'new.block 243 | if$ 244 | } 245 | 246 | FUNCTION {new.sentence.checka} 247 | { empty$ 248 | 'skip$ 249 | 'new.sentence 250 | if$ 251 | } 252 | 253 | FUNCTION {new.sentence.checkb} 254 | { empty$ 255 | swap$ empty$ 256 | and 257 | 'skip$ 258 | 'new.sentence 259 | if$ 260 | } 261 | 262 | FUNCTION {field.or.null} 263 | { duplicate$ empty$ 264 | { pop$ "" } 265 | 'skip$ 266 | if$ 267 | } 268 | 269 | FUNCTION {emphasize} 270 | { duplicate$ empty$ 271 | { pop$ "" } 272 | { "\emph{" swap$ * "}" * } 273 | if$ 274 | } 275 | 276 | INTEGERS { ascii } 277 | 278 | FUNCTION {get.char.lang} 279 | { chr.to.int$ 'ascii := 280 | ascii #64 > ascii #91 < and ascii #96 > ascii #123 < and or 281 | { lang.en } 282 | { ascii #227 > ascii #234 < and 283 | { lang.zh } 284 | { ascii #227 = 285 | { lang.ja } 286 | { ascii #207 > ascii #212 < and 287 | { lang.ru } 288 | { lang.en } 289 | if$ 290 | } 291 | if$ 292 | } 293 | if$ 294 | } 295 | if$ 296 | } 297 | 298 | INTEGERS { char.lang tmp.lang } 299 | 300 | STRINGS { tmp.str } 301 | 302 | FUNCTION {get.str.lang} 303 | { 'tmp.str := 304 | lang.other 'tmp.lang := 305 | tmp.str empty$ 306 | { "Empty string!" warning$ } 307 | { #1 'charptr := 308 | tmp.str text.length$ #1 + 'stringlength := 309 | { charptr stringlength < } 310 | { tmp.str charptr #1 substring$ get.char.lang 'char.lang := 311 | char.lang tmp.lang > 312 | { char.lang 'tmp.lang := } 313 | 'skip$ 314 | if$ 315 | 316 | char.lang lang.zh = char.lang lang.ja = or 317 | { charptr #3 + 'charptr := } 318 | { char.lang lang.ru = 319 | { charptr #2 + 'charptr := } 320 | { charptr #1 + 'charptr := } 321 | if$ 322 | } 323 | if$ 324 | } 325 | while$ 326 | } 327 | if$ 328 | tmp.lang 329 | } 330 | 331 | FUNCTION {is.in.chinese} 332 | { entry.lang lang.zh = 333 | } 334 | 335 | FUNCTION {format.et.al} 336 | { is.in.chinese 337 | { "等"} 338 | { "et~al." } 339 | if$ 340 | } 341 | 342 | FUNCTION {format.anonymous} 343 | { is.in.chinese 344 | { "佚名" } 345 | { "Anon" } 346 | if$ 347 | } 348 | 349 | INTEGERS { nameptr namesleft numnames name.lang} 350 | 351 | 352 | 353 | FUNCTION {format.names} 354 | { 's := 355 | #1 'nameptr := 356 | s num.names$ 'numnames := 357 | numnames 'namesleft := 358 | { namesleft #0 > } 359 | { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := 360 | nameptr #1 > 361 | { namesleft #1 > 362 | { ", " * t * } 363 | { numnames #2 > 364 | { "," * } 365 | 'skip$ 366 | if$ 367 | t "others" = 368 | { " {\em et~al.}" * } 369 | { " and " * t * } 370 | if$ 371 | } 372 | if$ 373 | } 374 | 't 375 | if$ 376 | nameptr #1 + 'nameptr := 377 | namesleft #1 - 'namesleft := 378 | } 379 | while$ 380 | } 381 | % 382 | %FUNCTION {format.names} 383 | %{ 's := 384 | % #1 'nameptr := 385 | % s num.names$ 'numnames := 386 | % numnames 'namesleft := 387 | % { namesleft #0 > nameptr #4 < and } 388 | % { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := 389 | % t get.str.lang 'name.lang := 390 | % name.lang lang.en = 391 | % { t #1 "{vv~}{ll}{ f{~}}" format.name$ "u" change.case$ 392 | % t #1 "{, jj}" format.name$ * 393 | % 't := 394 | % } 395 | % { t #1 "{ll}{ff}" format.name$ 't := } 396 | % if$ 397 | % nameptr #1 > 398 | % { namesleft #1 > 399 | % { ", " * t * } 400 | % { t "others" = 401 | % { ", " * format.et.al * } 402 | % { ", " * t * } 403 | % if$ 404 | % } 405 | % if$ 406 | % nameptr #3 = namesleft #1 > and 407 | % { ", " * format.et.al * } 408 | % 'skip$ 409 | % if$ 410 | % } 411 | % 't 412 | % if$ 413 | % nameptr #1 + 'nameptr := 414 | % namesleft #1 - 'namesleft := 415 | % } 416 | % while$ 417 | %} 418 | % 419 | FUNCTION {format.key} 420 | { empty$ 421 | { key field.or.null } 422 | { "" } 423 | if$ 424 | } 425 | 426 | FUNCTION {format.authors} 427 | { author empty$ 428 | { "" } 429 | { author format.names } 430 | if$ 431 | } 432 | 433 | FUNCTION {format.editors} 434 | { editor empty$ 435 | { "" } 436 | { editor format.names } 437 | if$ 438 | } 439 | 440 | FUNCTION {format.translators} 441 | { translator empty$ 442 | { "" } 443 | { translator format.names 444 | is.in.chinese 445 | { translator num.names$ #3 > 446 | { "译" * } 447 | { ", 译" * } 448 | if$ 449 | } 450 | 'skip$ 451 | if$ 452 | } 453 | if$ 454 | } 455 | 456 | FUNCTION {format.url} 457 | { url empty$ 458 | { "" } 459 | { new.block "\url{" url * "}" * } 460 | if$ 461 | } 462 | 463 | FUNCTION {is.doi.in.url} 464 | { url empty$ 465 | { #0 } 466 | { doi text.length$ 'stringlength := 467 | url text.length$ 'charptr := 468 | { url charptr stringlength substring$ doi = not 469 | charptr #0 > 470 | and 471 | } 472 | { charptr #1 - 'charptr := } 473 | while$ 474 | charptr 475 | } 476 | if$ 477 | } 478 | 479 | FUNCTION {format.doi} 480 | { doi empty$ 481 | { "" } 482 | { is.doi.in.url 483 | { "" } 484 | { new.block "\doi{" doi * "}" * } 485 | if$ 486 | } 487 | if$ 488 | } 489 | 490 | FUNCTION {format.title} 491 | { title empty$ 492 | { "" } 493 | { title "t" change.case$ } 494 | if$ 495 | } 496 | 497 | FUNCTION {set.mark} 498 | { entry.mark empty$ not 499 | 'pop$ 500 | { mark empty$ not 501 | { pop$ mark 'entry.mark := } 502 | { 'entry.mark := } 503 | if$ 504 | medium empty$ not 505 | { entry.mark "/" * medium * 'entry.mark := } 506 | { url empty$ not 507 | { entry.mark "/OL" * 'entry.mark := } 508 | 'skip$ 509 | if$ 510 | } 511 | if$ 512 | } 513 | if$ 514 | } 515 | 516 | FUNCTION {format.mark} 517 | { "\allowbreak[" entry.mark * "]" * } 518 | 519 | FUNCTION {format.full.names} 520 | {'s := 521 | #1 'nameptr := 522 | s num.names$ 'numnames := 523 | numnames 'namesleft := 524 | { namesleft #0 > } 525 | { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := 526 | t get.str.lang 'name.lang := 527 | name.lang lang.en = 528 | { t #1 "{vv~}{ll}" format.name$ 't := } 529 | { t #1 "{ll}{ff}" format.name$ 't := } 530 | if$ 531 | nameptr #1 > 532 | { 533 | namesleft #1 > 534 | { ", " * t * } 535 | { 536 | numnames #2 > 537 | { "," * } 538 | 'skip$ 539 | if$ 540 | t "others" = 541 | { " et~al." * } 542 | { " and " * t * } 543 | if$ 544 | } 545 | if$ 546 | } 547 | 't 548 | if$ 549 | nameptr #1 + 'nameptr := 550 | namesleft #1 - 'namesleft := 551 | } 552 | while$ 553 | } 554 | 555 | FUNCTION {author.editor.full} 556 | { author empty$ 557 | { editor empty$ 558 | { "" } 559 | { editor format.full.names } 560 | if$ 561 | } 562 | { author format.full.names } 563 | if$ 564 | } 565 | 566 | FUNCTION {author.full} 567 | { author empty$ 568 | { "" } 569 | { author format.full.names } 570 | if$ 571 | } 572 | 573 | FUNCTION {editor.full} 574 | { editor empty$ 575 | { "" } 576 | { editor format.full.names } 577 | if$ 578 | } 579 | 580 | FUNCTION {make.full.names} 581 | { type$ "book" = 582 | type$ "inbook" = 583 | or 584 | 'author.editor.full 585 | { type$ "collection" = 586 | type$ "proceedings" = 587 | or 588 | 'editor.full 589 | 'author.full 590 | if$ 591 | } 592 | if$ 593 | } 594 | 595 | FUNCTION {output.bibitem} 596 | { newline$ 597 | "\bibitem[" write$ 598 | label write$ 599 | ")" make.full.names duplicate$ short.list = 600 | { pop$ } 601 | { * } 602 | if$ 603 | "]{" * write$ 604 | cite$ write$ 605 | "}" write$ 606 | newline$ 607 | "" 608 | before.all 'output.state := 609 | } 610 | 611 | FUNCTION {n.dashify} 612 | { 't := 613 | "" 614 | { t empty$ not } 615 | { t #1 #1 substring$ "-" = 616 | { t #1 #2 substring$ "--" = not 617 | { "--" * 618 | t #2 global.max$ substring$ 't := 619 | } 620 | { { t #1 #1 substring$ "-" = } 621 | { "-" * 622 | t #2 global.max$ substring$ 't := 623 | } 624 | while$ 625 | } 626 | if$ 627 | } 628 | { t #1 #1 substring$ * 629 | t #2 global.max$ substring$ 't := 630 | } 631 | if$ 632 | } 633 | while$ 634 | } 635 | 636 | FUNCTION {extract.before.dash} 637 | { duplicate$ empty$ 638 | { pop$ "" } 639 | { 's := 640 | #1 'charptr := 641 | s text.length$ #1 + 'stringlength := 642 | { charptr stringlength < 643 | s charptr #1 substring$ "-" = not 644 | and 645 | } 646 | { charptr #1 + 'charptr := } 647 | while$ 648 | s #1 charptr #1 - substring$ 649 | } 650 | if$ 651 | } 652 | 653 | FUNCTION {extract.after.dash} 654 | { duplicate$ empty$ 655 | { pop$ "" } 656 | { 's := 657 | #1 'charptr := 658 | s text.length$ #1 + 'stringlength := 659 | { charptr stringlength < 660 | s charptr #1 substring$ "-" = not 661 | and 662 | } 663 | { charptr #1 + 'charptr := } 664 | while$ 665 | { charptr stringlength < 666 | s charptr #1 substring$ "-" = 667 | and 668 | } 669 | { charptr #1 + 'charptr := } 670 | while$ 671 | s charptr global.max$ substring$ 672 | } 673 | if$ 674 | } 675 | 676 | FUNCTION {contains.dash} 677 | { duplicate$ empty$ 678 | { pop$ #0 } 679 | { 's := 680 | { s empty$ not 681 | s #1 #1 substring$ "-" = not 682 | and 683 | } 684 | { s #2 global.max$ substring$ 's := } 685 | while$ 686 | s empty$ not 687 | } 688 | if$ 689 | } 690 | 691 | FUNCTION {format.year} 692 | { year empty$ not 693 | { year extract.before.dash } 694 | { date empty$ not 695 | { date extract.before.dash } 696 | { "empty year in " cite$ * warning$ 697 | "" 698 | } 699 | if$ 700 | } 701 | if$ 702 | extra.label * 703 | } 704 | 705 | FUNCTION {format.date} 706 | { type$ "patent" = type$ "newspaper" = or 707 | date empty$ not and 708 | { date } 709 | { year } 710 | if$ 711 | } 712 | 713 | FUNCTION {format.editdate} 714 | { date empty$ not 715 | type$ "newspaper" = not and 716 | url empty$ not doi empty$ not or 717 | and 718 | { "\allowbreak(" date * ")" * } 719 | { "" } 720 | if$ 721 | } 722 | 723 | FUNCTION {format.urldate} 724 | { urldate empty$ not 725 | { "\allowbreak[" urldate * "]" * } 726 | { "" } 727 | if$ 728 | } 729 | 730 | FUNCTION {format.btitle} 731 | { title emphasize 732 | } 733 | 734 | FUNCTION {tie.or.space.connect} 735 | { duplicate$ text.length$ #3 < 736 | { "~" } 737 | { " " } 738 | if$ 739 | swap$ * * 740 | } 741 | 742 | FUNCTION {either.or.check} 743 | { empty$ 744 | 'pop$ 745 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 746 | if$ 747 | } 748 | 749 | FUNCTION {is.digit} 750 | { duplicate$ empty$ 751 | { pop$ #0 } 752 | { chr.to.int$ 753 | duplicate$ "0" chr.to.int$ < 754 | { pop$ #0 } 755 | { "9" chr.to.int$ > 756 | { #0 } 757 | { #1 } 758 | if$ 759 | } 760 | if$ 761 | } 762 | if$ 763 | } 764 | 765 | FUNCTION {is.number} 766 | { 's := 767 | s empty$ 768 | { #0 } 769 | { s text.length$ 'charptr := 770 | { charptr #0 > 771 | s charptr #1 substring$ is.digit 772 | and 773 | } 774 | { charptr #1 - 'charptr := } 775 | while$ 776 | charptr not 777 | } 778 | if$ 779 | } 780 | 781 | FUNCTION {format.volume} 782 | { volume empty$ 783 | { "" } 784 | { volume is.number 785 | { is.in.chinese 786 | { "第" volume * "卷" * } 787 | { "volume" volume tie.or.space.connect } 788 | if$ 789 | } 790 | { volume } 791 | if$ 792 | } 793 | if$ 794 | } 795 | 796 | FUNCTION {format.number} 797 | { number empty$ 798 | { "" } 799 | { number is.number 800 | { is.in.chinese 801 | { "第" number * "册" * } 802 | { "number" number tie.or.space.connect } 803 | if$ 804 | } 805 | { number } 806 | if$ 807 | } 808 | if$ 809 | } 810 | 811 | FUNCTION {format.volume.number} 812 | { volume empty$ not 813 | { format.volume } 814 | { format.number } 815 | if$ 816 | } 817 | 818 | FUNCTION {format.series.vol.num.title} 819 | { format.volume.number 's := 820 | series empty$ not 821 | { series ": " * 822 | s empty$ not 823 | { s * "\quad " * } 824 | 'skip$ 825 | if$ 826 | title * 827 | } 828 | { title 829 | s empty$ not 830 | { ": " * s * } 831 | 'skip$ 832 | if$ 833 | } 834 | if$ 835 | "t" change.case$ 836 | } 837 | 838 | FUNCTION {format.series.vol.num.booktitle} 839 | { format.volume.number 's := 840 | series empty$ not 841 | { series ": " * 842 | s empty$ not 843 | { s * "\quad " * } 844 | 'skip$ 845 | if$ 846 | booktitle * 847 | } 848 | { booktitle 849 | s empty$ not 850 | { ": " * s * } 851 | 'skip$ 852 | if$ 853 | } 854 | if$ 855 | } 856 | 857 | FUNCTION {num.to.ordinal} 858 | { duplicate$ text.length$ 'charptr := 859 | duplicate$ charptr #1 substring$ 's := 860 | s "1" = 861 | { "st" * } 862 | { s "2" = 863 | { "nd" * } 864 | { s "3" = 865 | { "rd" * } 866 | { "th" * } 867 | if$ 868 | } 869 | if$ 870 | } 871 | if$ 872 | } 873 | 874 | FUNCTION {format.edition} 875 | { edition empty$ 876 | { "" } 877 | { edition is.number 878 | { is.in.chinese 879 | { edition "版" * } 880 | { edition num.to.ordinal " ed." * } 881 | if$ 882 | } 883 | { entry.lang lang.en = 884 | { edition "t" change.case$ 's := 885 | s "Revised" = s "Revised edition" = or 886 | { "Rev. ed." } 887 | { s " ed." *} 888 | if$ 889 | } 890 | { edition } 891 | if$ 892 | } 893 | if$ 894 | } 895 | if$ 896 | } 897 | 898 | FUNCTION {format.sine.loco} 899 | { is.in.chinese 900 | { "[出版地不详]" } 901 | { "[S.l.]" } 902 | if$ 903 | } 904 | 905 | FUNCTION {format.address} 906 | { address } 907 | 908 | FUNCTION {format.sine.nomine} 909 | { is.in.chinese 910 | { "[出版地不详]" } 911 | { "[s.n.]" } 912 | if$ 913 | } 914 | 915 | FUNCTION {format.publisher} 916 | { publisher empty$ not 917 | { publisher } 918 | { school empty$ not 919 | { school } 920 | { organization empty$ not 921 | { organization } 922 | { institution empty$ not 923 | { institution } 924 | { "" } 925 | if$ 926 | } 927 | if$ 928 | } 929 | if$ 930 | } 931 | if$ 932 | } 933 | 934 | FUNCTION {format.sine.loco.sine.nomine} 935 | { is.in.chinese 936 | { "[出版地不详: 出版者不详]" } 937 | { "[S.l.: s.n.]" } 938 | if$ 939 | } 940 | 941 | FUNCTION {format.address.publisher} 942 | { address empty$ not 943 | { address 944 | format.publisher empty$ not 945 | { ": " * format.publisher * } 946 | { url empty$ doi empty$ and 947 | { ": " * format.sine.nomine * } 948 | 'skip$ 949 | if$ 950 | } 951 | if$ 952 | } 953 | { url empty$ doi empty$ and 954 | { format.publisher empty$ not 955 | { format.sine.loco ": " * format.publisher * } 956 | { format.sine.loco.sine.nomine } 957 | if$ 958 | } 959 | { format.publisher empty$ not 960 | { format.publisher } 961 | { "" } 962 | if$ 963 | } 964 | if$ 965 | } 966 | if$ 967 | } 968 | 969 | FUNCTION {format.pages} 970 | { pages empty$ 971 | { "" } 972 | { pages n.dashify } 973 | if$ 974 | } 975 | 976 | FUNCTION {format.journal.volume} 977 | { volume } 978 | 979 | FUNCTION {format.journal.number} 980 | { number empty$ not 981 | { "\penalty0 (" number * ")" * } 982 | { "" } 983 | if$ 984 | } 985 | 986 | FUNCTION {format.periodical.year.volume.number} 987 | { year empty$ not 988 | { year extract.before.dash } 989 | { "No year in periodical " cite$ * warning$ } 990 | if$ 991 | volume empty$ not 992 | { ", " * volume extract.before.dash * } 993 | 'skip$ 994 | if$ 995 | number empty$ not 996 | { "\penalty0 (" * number extract.before.dash * ")" * } 997 | 'skip$ 998 | if$ 999 | year contains.dash 1000 | { "--" * 1001 | year extract.after.dash empty$ 1002 | volume extract.after.dash empty$ and 1003 | number extract.after.dash empty$ and not 1004 | { year extract.after.dash empty$ not 1005 | { year extract.after.dash * } 1006 | { year extract.before.dash * } 1007 | if$ 1008 | volume empty$ not 1009 | { ", " * volume extract.after.dash * } 1010 | 'skip$ 1011 | if$ 1012 | number empty$ not 1013 | { "\penalty0 (" * number extract.after.dash * ")" * } 1014 | 'skip$ 1015 | if$ 1016 | } 1017 | 'skip$ 1018 | if$ 1019 | } 1020 | 'skip$ 1021 | if$ 1022 | } 1023 | 1024 | FUNCTION {format.in.ed.booktitle} 1025 | { booktitle empty$ 1026 | { "" } 1027 | { editor empty$ 1028 | { "In " booktitle emphasize * } 1029 | { "In " format.editors * ", " * booktitle emphasize * } 1030 | if$ 1031 | } 1032 | if$ 1033 | } 1034 | 1035 | FUNCTION {empty.misc.check} 1036 | { author empty$ title empty$ 1037 | year empty$ 1038 | and and 1039 | key empty$ not and 1040 | { "all relevant fields are empty in " cite$ * warning$ } 1041 | 'skip$ 1042 | if$ 1043 | } 1044 | 1045 | FUNCTION {format.article.crossref} 1046 | { key empty$ 1047 | { journal empty$ 1048 | { "need key or journal for " cite$ * " to crossref " * crossref * 1049 | warning$ 1050 | "" 1051 | } 1052 | { "In \emph{" journal * "}" * } 1053 | if$ 1054 | } 1055 | { "In " } 1056 | if$ 1057 | " \citet{" * crossref * "}" * 1058 | } 1059 | 1060 | FUNCTION {format.book.crossref} 1061 | { volume empty$ 1062 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 1063 | "In " 1064 | } 1065 | { "Volume" volume tie.or.space.connect 1066 | " of " * 1067 | } 1068 | if$ 1069 | editor empty$ 1070 | editor field.or.null author field.or.null = 1071 | or 1072 | { key empty$ 1073 | { series empty$ 1074 | { "need editor, key, or series for " cite$ * " to crossref " * 1075 | crossref * warning$ 1076 | "" * 1077 | } 1078 | { "\emph{" * series * "}" * } 1079 | if$ 1080 | } 1081 | 'skip$ 1082 | if$ 1083 | } 1084 | 'skip$ 1085 | if$ 1086 | " \citet{" * crossref * "}" * 1087 | } 1088 | 1089 | FUNCTION {format.incoll.inproc.crossref} 1090 | { editor empty$ 1091 | editor field.or.null author field.or.null = 1092 | or 1093 | { key empty$ 1094 | { booktitle empty$ 1095 | { "need editor, key, or booktitle for " cite$ * " to crossref " * 1096 | crossref * warning$ 1097 | "" 1098 | } 1099 | { "In \emph{" booktitle * "}" * } 1100 | if$ 1101 | } 1102 | { "In " } 1103 | if$ 1104 | } 1105 | { "In " } 1106 | if$ 1107 | " \citet{" * crossref * "}" * 1108 | } 1109 | 1110 | FUNCTION {monograph} 1111 | { output.bibitem 1112 | author empty$ not 1113 | { format.authors } 1114 | { editor empty$ not 1115 | { format.editors } 1116 | { "" } 1117 | if$ 1118 | } 1119 | if$ 1120 | output 1121 | new.block 1122 | format.series.vol.num.title "title" output.check 1123 | "M" set.mark 1124 | format.mark "" output.after 1125 | new.block 1126 | format.translators output 1127 | new.sentence 1128 | format.edition output 1129 | new.block 1130 | format.address.publisher output 1131 | format.year "year" output.check 1132 | format.pages punct.colon output.after 1133 | format.urldate "" output.after 1134 | format.url output 1135 | format.doi output 1136 | fin.entry 1137 | } 1138 | 1139 | FUNCTION {incollection} 1140 | { output.bibitem 1141 | format.authors "author" output.check 1142 | author format.key output 1143 | new.block 1144 | format.title "title" output.check 1145 | "M" set.mark 1146 | format.mark "" output.after 1147 | new.block 1148 | format.translators output 1149 | new.slash 1150 | format.editors output 1151 | new.block 1152 | format.series.vol.num.booktitle "booktitle" output.check 1153 | new.block 1154 | format.edition output 1155 | new.block 1156 | format.address.publisher output 1157 | format.year "year" output.check 1158 | format.pages punct.colon output.after 1159 | format.urldate "" output.after 1160 | format.url output 1161 | format.doi output 1162 | fin.entry 1163 | } 1164 | 1165 | FUNCTION {periodical} 1166 | { output.bibitem 1167 | format.authors "author" output.check 1168 | author format.key output 1169 | new.block 1170 | format.title "title" output.check 1171 | "J" set.mark 1172 | format.mark "" output.after 1173 | new.block 1174 | format.periodical.year.volume.number output 1175 | new.block 1176 | format.address.publisher output 1177 | format.date "year" output.check 1178 | format.urldate "" output.after 1179 | format.url output 1180 | format.doi output 1181 | fin.entry 1182 | } 1183 | 1184 | FUNCTION {article.in.journal} 1185 | { output.bibitem 1186 | format.authors "author" output.check 1187 | author format.key output 1188 | new.block 1189 | format.title "title" output.check 1190 | "J" set.mark 1191 | format.mark "" output.after 1192 | new.block 1193 | journal "journal" output.check 1194 | format.date "year" output.check 1195 | volume output 1196 | format.journal.number "" output.after 1197 | format.pages punct.colon output.after 1198 | format.editdate "" output.after 1199 | format.urldate "" output.after 1200 | format.url output 1201 | format.doi output 1202 | fin.entry 1203 | } 1204 | 1205 | FUNCTION {patent} 1206 | { output.bibitem 1207 | format.authors output 1208 | author format.key output 1209 | new.block 1210 | format.title 1211 | number empty$ not 1212 | { punct.colon * number * } 1213 | 'skip$ 1214 | if$ 1215 | "title" output.check 1216 | "P" set.mark 1217 | format.mark "" output.after 1218 | new.block 1219 | format.date "year" output.check 1220 | format.urldate "" output.after 1221 | format.url output 1222 | format.doi output 1223 | fin.entry 1224 | } 1225 | 1226 | FUNCTION {online} 1227 | { output.bibitem 1228 | format.authors output 1229 | author format.key output 1230 | new.block 1231 | format.series.vol.num.title "title" output.check 1232 | "EB" set.mark 1233 | format.mark "" output.after 1234 | new.block 1235 | format.address.publisher output 1236 | date empty$ 1237 | { format.date output } 1238 | 'skip$ 1239 | if$ 1240 | format.pages punct.colon output.after 1241 | format.editdate "" output.after 1242 | format.urldate "" output.after 1243 | format.url output 1244 | format.doi output 1245 | fin.entry 1246 | } 1247 | 1248 | FUNCTION {misc} 1249 | { journal empty$ not 1250 | 'article.in.journal 1251 | { booktitle empty$ not 1252 | 'incollection 1253 | { url empty$ not 1254 | 'online 1255 | { "Z" set.mark 1256 | monograph 1257 | } 1258 | if$ 1259 | } 1260 | if$ 1261 | } 1262 | if$ 1263 | empty.misc.check 1264 | } 1265 | 1266 | FUNCTION {archive} 1267 | { "A" set.mark 1268 | misc 1269 | } 1270 | 1271 | FUNCTION {article} { misc } 1272 | 1273 | FUNCTION {book} { monograph } 1274 | 1275 | FUNCTION {collection} 1276 | { "G" set.mark 1277 | monograph 1278 | } 1279 | 1280 | FUNCTION {database} 1281 | { "DB" set.mark 1282 | misc 1283 | } 1284 | 1285 | FUNCTION {dataset} 1286 | { "DS" set.mark 1287 | misc 1288 | } 1289 | 1290 | FUNCTION {inbook} { book } 1291 | 1292 | FUNCTION {inproceedings} 1293 | { "C" set.mark 1294 | incollection 1295 | } 1296 | 1297 | FUNCTION {conference} { inproceedings } 1298 | 1299 | FUNCTION {map} 1300 | { "CM" set.mark 1301 | misc 1302 | } 1303 | 1304 | FUNCTION {mastersthesis} 1305 | { "D" set.mark 1306 | monograph 1307 | } 1308 | 1309 | FUNCTION {newspaper} 1310 | { "N" set.mark 1311 | article.in.journal 1312 | } 1313 | 1314 | FUNCTION {phdthesis} { mastersthesis } 1315 | 1316 | FUNCTION {proceedings} 1317 | { "C" set.mark 1318 | monograph 1319 | } 1320 | 1321 | FUNCTION {software} 1322 | { "CP" set.mark 1323 | misc 1324 | } 1325 | 1326 | FUNCTION {standard} 1327 | { "S" set.mark 1328 | misc 1329 | } 1330 | 1331 | FUNCTION {techreport} 1332 | { "R" set.mark 1333 | misc 1334 | } 1335 | 1336 | FUNCTION {default.type} { misc } 1337 | 1338 | MACRO {jan} {"January"} 1339 | 1340 | MACRO {feb} {"February"} 1341 | 1342 | MACRO {mar} {"March"} 1343 | 1344 | MACRO {apr} {"April"} 1345 | 1346 | MACRO {may} {"May"} 1347 | 1348 | MACRO {jun} {"June"} 1349 | 1350 | MACRO {jul} {"July"} 1351 | 1352 | MACRO {aug} {"August"} 1353 | 1354 | MACRO {sep} {"September"} 1355 | 1356 | MACRO {oct} {"October"} 1357 | 1358 | MACRO {nov} {"November"} 1359 | 1360 | MACRO {dec} {"December"} 1361 | 1362 | MACRO {acmcs} {"ACM Computing Surveys"} 1363 | 1364 | MACRO {acta} {"Acta Informatica"} 1365 | 1366 | MACRO {cacm} {"Communications of the ACM"} 1367 | 1368 | MACRO {ibmjrd} {"IBM Journal of Research and Development"} 1369 | 1370 | MACRO {ibmsj} {"IBM Systems Journal"} 1371 | 1372 | MACRO {ieeese} {"IEEE Transactions on Software Engineering"} 1373 | 1374 | MACRO {ieeetc} {"IEEE Transactions on Computers"} 1375 | 1376 | MACRO {ieeetcad} 1377 | {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} 1378 | 1379 | MACRO {ipl} {"Information Processing Letters"} 1380 | 1381 | MACRO {jacm} {"Journal of the ACM"} 1382 | 1383 | MACRO {jcss} {"Journal of Computer and System Sciences"} 1384 | 1385 | MACRO {scp} {"Science of Computer Programming"} 1386 | 1387 | MACRO {sicomp} {"SIAM Journal on Computing"} 1388 | 1389 | MACRO {tocs} {"ACM Transactions on Computer Systems"} 1390 | 1391 | MACRO {tods} {"ACM Transactions on Database Systems"} 1392 | 1393 | MACRO {tog} {"ACM Transactions on Graphics"} 1394 | 1395 | MACRO {toms} {"ACM Transactions on Mathematical Software"} 1396 | 1397 | MACRO {toois} {"ACM Transactions on Office Information Systems"} 1398 | 1399 | MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} 1400 | 1401 | MACRO {tcs} {"Theoretical Computer Science"} 1402 | 1403 | READ 1404 | 1405 | EXECUTE {init.state.consts} 1406 | 1407 | FUNCTION {set.entry.lang} 1408 | { language empty$ 1409 | { author field.or.null title field.or.null * get.str.lang } 1410 | { language "english" = language "american" = or language "british" = or 1411 | { lang.en } 1412 | { language "chinese" = 1413 | { lang.zh } 1414 | { language "japanese" = 1415 | { lang.ja } 1416 | { language "russian" = 1417 | { lang.ru } 1418 | { lang.other } 1419 | if$ 1420 | } 1421 | if$ 1422 | } 1423 | if$ 1424 | } 1425 | if$ 1426 | } 1427 | if$ 1428 | 'entry.lang := 1429 | } 1430 | 1431 | FUNCTION {sortify} 1432 | { purify$ 1433 | "l" change.case$ 1434 | } 1435 | 1436 | INTEGERS { len } 1437 | 1438 | FUNCTION {chop.word} 1439 | { 's := 1440 | 'len := 1441 | s #1 len substring$ = 1442 | { s len #1 + global.max$ substring$ } 1443 | 's 1444 | if$ 1445 | } 1446 | 1447 | FUNCTION {format.lab.names} 1448 | { 's := 1449 | s #1 "{vv~}{ll}{, jj}{, ff}" format.name$ 't := 1450 | t get.str.lang 'name.lang := 1451 | name.lang lang.en = 1452 | { t #1 "{vv~}{ll}" format.name$} 1453 | { t #1 "{ll}{ff}" format.name$} 1454 | if$ 1455 | s num.names$ #1 > 1456 | { "\ " * format.et.al * } 1457 | 'skip$ 1458 | if$ 1459 | } 1460 | 1461 | FUNCTION {author.key.label} 1462 | { author empty$ 1463 | { key empty$ 1464 | { cite$ #1 #3 substring$ } 1465 | 'key 1466 | if$ 1467 | } 1468 | { author format.lab.names } 1469 | if$ 1470 | } 1471 | 1472 | FUNCTION {author.editor.key.label} 1473 | { author empty$ 1474 | { editor empty$ 1475 | { key empty$ 1476 | { cite$ #1 #3 substring$ } 1477 | 'key 1478 | if$ 1479 | } 1480 | { editor format.lab.names } 1481 | if$ 1482 | } 1483 | { author format.lab.names } 1484 | if$ 1485 | } 1486 | 1487 | FUNCTION {author.key.organization.label} 1488 | { author empty$ 1489 | { key empty$ 1490 | { organization empty$ 1491 | { cite$ #1 #3 substring$ } 1492 | { "The " #4 organization chop.word #3 text.prefix$ } 1493 | if$ 1494 | } 1495 | 'key 1496 | if$ 1497 | } 1498 | { author format.lab.names } 1499 | if$ 1500 | } 1501 | 1502 | FUNCTION {editor.key.organization.label} 1503 | { editor empty$ 1504 | { key empty$ 1505 | { organization empty$ 1506 | { cite$ #1 #3 substring$ } 1507 | { "The " #4 organization chop.word #3 text.prefix$ } 1508 | if$ 1509 | } 1510 | 'key 1511 | if$ 1512 | } 1513 | { editor format.lab.names } 1514 | if$ 1515 | } 1516 | 1517 | FUNCTION {calc.short.authors} 1518 | { type$ "book" = 1519 | type$ "inbook" = 1520 | or 1521 | 'author.editor.key.label 1522 | { type$ "collection" = 1523 | type$ "proceedings" = 1524 | or 1525 | { editor empty$ not 1526 | 'editor.key.organization.label 1527 | 'author.key.organization.label 1528 | if$ 1529 | } 1530 | 'author.key.label 1531 | if$ 1532 | } 1533 | if$ 1534 | 'short.list := 1535 | } 1536 | 1537 | FUNCTION {calc.label} 1538 | { calc.short.authors 1539 | short.list 1540 | "(" 1541 | * 1542 | format.year duplicate$ empty$ 1543 | short.list key field.or.null = or 1544 | { pop$ "" } 1545 | 'skip$ 1546 | if$ 1547 | * 1548 | 'label := 1549 | } 1550 | 1551 | INTEGERS { seq.num } 1552 | 1553 | FUNCTION {init.seq} 1554 | { #0 'seq.num :=} 1555 | 1556 | EXECUTE {init.seq} 1557 | 1558 | FUNCTION {int.to.fix} 1559 | { "000000000" swap$ int.to.str$ * 1560 | #-1 #10 substring$ 1561 | } 1562 | 1563 | FUNCTION {presort} 1564 | { set.entry.lang 1565 | calc.label 1566 | label sortify 1567 | " " 1568 | * 1569 | seq.num #1 + 'seq.num := 1570 | seq.num int.to.fix 1571 | 'sort.label := 1572 | sort.label * 1573 | #1 entry.max$ substring$ 1574 | 'sort.key$ := 1575 | } 1576 | 1577 | ITERATE {presort} 1578 | 1579 | SORT 1580 | 1581 | STRINGS { longest.label last.label next.extra } 1582 | 1583 | INTEGERS { longest.label.width last.extra.num number.label } 1584 | 1585 | FUNCTION {initialize.longest.label} 1586 | { "" 'longest.label := 1587 | #0 int.to.chr$ 'last.label := 1588 | "" 'next.extra := 1589 | #0 'longest.label.width := 1590 | #0 'last.extra.num := 1591 | #0 'number.label := 1592 | } 1593 | 1594 | FUNCTION {forward.pass} 1595 | { last.label label = 1596 | { last.extra.num #1 + 'last.extra.num := 1597 | last.extra.num int.to.chr$ 'extra.label := 1598 | } 1599 | { "a" chr.to.int$ 'last.extra.num := 1600 | "" 'extra.label := 1601 | label 'last.label := 1602 | } 1603 | if$ 1604 | number.label #1 + 'number.label := 1605 | } 1606 | 1607 | FUNCTION {reverse.pass} 1608 | { next.extra "b" = 1609 | { "a" 'extra.label := } 1610 | 'skip$ 1611 | if$ 1612 | extra.label 'next.extra := 1613 | extra.label 1614 | duplicate$ empty$ 1615 | 'skip$ 1616 | { "{\natexlab{" swap$ * "}}" * } 1617 | if$ 1618 | 'extra.label := 1619 | label extra.label * 'label := 1620 | } 1621 | 1622 | EXECUTE {initialize.longest.label} 1623 | 1624 | ITERATE {forward.pass} 1625 | 1626 | REVERSE {reverse.pass} 1627 | 1628 | FUNCTION {bib.sort.order} 1629 | { sort.label 'sort.key$ := 1630 | } 1631 | 1632 | ITERATE {bib.sort.order} 1633 | 1634 | SORT 1635 | 1636 | FUNCTION {begin.bib} 1637 | { preamble$ empty$ 1638 | 'skip$ 1639 | { preamble$ write$ newline$ } 1640 | if$ 1641 | "\begin{thebibliography}{" number.label int.to.str$ * "}" * 1642 | write$ newline$ 1643 | "\providecommand{\natexlab}[1]{#1}" 1644 | write$ newline$ 1645 | "\providecommand{\url}[1]{#1}" 1646 | write$ newline$ 1647 | "\providecommand{\href}[2]{\url{#2}}" 1648 | write$ newline$ 1649 | "\providecommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{#1}}" 1650 | write$ newline$ 1651 | "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else" 1652 | write$ newline$ 1653 | " \urlstyle{same}\fi" 1654 | write$ newline$ 1655 | } 1656 | 1657 | EXECUTE {begin.bib} 1658 | 1659 | ITERATE {call.type$} 1660 | 1661 | FUNCTION {end.bib} 1662 | { newline$ 1663 | "\end{thebibliography}" write$ newline$ 1664 | } 1665 | 1666 | EXECUTE {end.bib} --------------------------------------------------------------------------------