CquThesis:重庆大学毕业论文 LATEX 模板
CquThesis:重庆大学毕业论文 LATEX 模板
xxxx
H
Y
T
v1.50 (2020/06/23)
G
N
I
Q
G
N
O
I
S
R
E
V
I
N
U
摘要
CquThesis1是重庆大学毕业论文的 LATEX 模板,支持学士(文学、理工)、硕士(学术、专业)、博士论文的排版。
用户协议
1. 本模板按照 LaTeX Project Public License 发布,协议版本号为 1.3 或以后的任何版本(随你意);
2. 截止本文档编译时,重庆大学教务处和研究生院只提供了毕业论文写作指南,没有提供官方模板,也没有授权或认证任何第三方模板为官方模板2。本模板是按照写作指南的参考实现,模板作者自当尽力,但不保证审查老师不提意见。在开始使用前,您同意,任何由于本模板而引起的论文格式审查问题与本模板作者无关。
1 xxxxx://xxxxxx.xxx/xxxxx00/XXXXxxxxx
2 重庆大学 TEX 用户组做过推动学校认证 CquThesis的努力。
19 | |||
5.1 模板信息 . . . . . . . . . . . . | 19 | ||
5.2 选项的定义和处理 . . . . . . . | 19 | ||
5.3 载入宏包 . . . . . . . . . . . . | 22 | ||
5.4 页面类设置 . . . . . . . . . . . | 23 | ||
5.4.1 页面功能 . . . . . . . . | 23 | ||
5.4.2 论文的三个部分 . . . . . | 24 | ||
5.4.3 页面设置 . . . . . . . . | 24 | ||
5.4.4 单双页打印的自动判定 . | 25 | ||
5.4.5 页眉和页脚 . . . . . . . | 25 | ||
. . . . . . . . . . . . | 26 | ||
. . . . . . . . . . . . | 27 | ||
. . . . . . . . . . . . | 29 | ||
5.7.1 带圈数字 . . . . . . . . | 29 | ||
5.7.2 脚注 . . . . . . . . . . . | 29 | ||
5.7.3 数学公式和定理环境 . . | 30 | ||
5.7.4 化学式和国际标准单位 . | 30 | ||
5.7.5 自动交叉引用 . . . . . . | 31 | ||
5.7.6 浮动对象 . . . . . . . . | 32 | ||
5.7.7 题注和表格 . . . . . . . | 32 | ||
5.7.8 代码环境 . . . . . . . . | 34 | ||
5.7.9 自定义计数器 . . . . . . | 35 |
目录
1 欢迎! 4
2 安装 4
2.1 系统要求 . . . . . . . . . . . . 4
2.2 获取 CquThesis . . . . . . . . 4
2.3 模板的组成部分 . . . . . . . . . 5
2.4 安装 . . . . . . . . . . . . . . . 5
2.5 升级 . . . . . . . . . . . . . . . 6
2.6 编译用户手册 . . . . . . . . . . 6
3 使用说明 6
3.1 代码自动补全 . . . . . . . . . . 7
3.2 示例文件 . . . . . . . . . . . . 7
3.3 论文选项 . . . . . . . . . . . . 9
3.4 中文字体 11
3.4.1 字体配置 11
3.4.2 字体命令 11
3.5 封面信息和摘要 12
. . . . . . . . | 12 | ||
. . . . . . . . | 12 | ||
. . . . . . . . | 12 | ||
. . . . . . . . | 13 | ||
13 | |||
前置部分 . . . . . . . . . . . . | 13 | ||
14 | |||
14 | |||
14 | |||
主体部分 . . . . . . . . . . . . | 14 | ||
后置部分 . . . . . . . . . . . . | 15 | ||
x包和特色功能 . . . . . . . . . | 15 |
. . . . . . . . | 15 | ||
. . . . . . . . | 16 | ||
. . . . . . . . | 16 | ||
. . . . . . . . | 16 | ||
. . . . . . . . | 17 |
其他说明 . . . . . . . . . . . . | 17 | |
提问和新功能需求 . . . . . . . | 17 | |
17 |
5.8 盲审模式 36
5.9 封面绘制 36
5.9.1 信息录入 36
5.9.2 绘制中文封面 38
5.9.3 绘制英文封面 40
5.9.4 PDF 文件属性配置 41
5.10 摘要 41
5.10.1 信息收集 41
5.10.2 生成摘要 41
5.11 独创声明和授权书 42
5.12 主要符号对照表 45
5.13 目录 46
5.13.1 定制目录 46
5.13.2 公式索引 46
5.14 参考文献 48
5.15 载入配置文件 49
6 更新记录 49
7 代码索引 50
1 欢迎!
2 安装
CquThesis 是重庆大学毕业论文的 LATEX 模板,支持学士、硕士、博士论文的排版。合理使用本模板可以大大减轻重庆大学毕业生在毕业论文撰写过程中的排版工作量。
CquThesis 根据重庆大学《重庆大学本科设计(论文)撰写规范化要求(2007 年修订版)》和《重庆大学博士、硕士论文撰写格式标准(2007 年修订版)》编写,力求合规,xx,易于实现,用户友好。
本模板的特色:
• 支持重庆大学本科(文学、理工)、硕士(学术、专业)、博士的毕业论文格式;
• 内置封面、目录、索引、授权书等论文部件,可按需自动生成;
• 自动侦测文档页数,生成相应的单面打印/双面打印 PDF 文件;
• 预置一批优化过的宏包和小功能,包含中英双语题注及配套图录、表录,国际标准单位、化学式支持、三线表等,可按需开启;
• 支持基于 cwl 文件的代码补全,makefile 功能能够在 Linux, Mac, Windows 三平台通用。本文档将尽量完整的介绍模板的使用方法,如有不清楚之处可以参考示例文档或者根据
第 3.11节说明提问,有兴趣者都可以参与完善此手册,也非常欢迎对代码的贡献。
说明:模板的作用在于减少论文写作过程中格式调整的时间,前提是遵守模板的用法,否则即便用了 CquThesis 也难以保证输出的论文符合学校规范。
2 安装
2.1 系统要求
本模板用到的宏包比较多,这些包在常见的 TEX 发行版中都有,按照您操作系统的不同,您可以选择不同的 TEX 发行版:
• Windows 用户,推荐使用 Mik TEX ,这是一个专为 Windows 环境设计的 TEX 发行版,下载体积小,而且可以自主解决宏包依赖问题;
• Linux 和 Mac 用户,推荐使用 TEX Live,这是一套大而全的 TEX 发行版,考虑到使用这两个系统的用户动手能力相对较强,XXX Live 没法自己解决依赖这个问题应该不是很让人头疼1。
本模板在 Windows 和 Mac 环境下的 TEX Live 发行版中都进行了编译测试。
说明:在条件允许的情况下,xx推荐您使用 XƎTEX 引擎进行编译工作。
2.2 获取 CquThesis
您可通过三个主要途径获取 CquThesis:
• 造访 CquThesis 的 Github 主页下载最新的开发版本,这是更新最快,功能最全的版本(含工具箱 Toolkit);
1 使用宏包管理器或者从 CTAN 获取依赖宏包。
2.4 安装 2 安装
• 访问本模板CTAN 官方镜像下载发行版,这个版本定期从预发行版本同步(不含工具箱
Toolkit1);
• 使用 Mik TEX 或 TEX Live 的宏包管理功能直接获得本模板,这个方式不含模板示例文件。除此之外,XxxXxxxxx 不拥有也不维护任何其他镜像。
2.3 模板的组成部分
下表列出了 CquThesis 的主要文件及其功能介绍:
文件(夹)
cquthesis.ins cquthesis.dtx makefile makewin.bat
cquthesis.cls cquthesis.cfg cqunumerical.bst cquthesis.cwl
main.tex contents/ figures/ ref/ toolkit/
cquthesis.sty
README-English README.md
cquthesis.pdf
功能描述
DocStrip 驱动文件(用于安装或更新) DocStrip 源文件(用于安装或更新) GNU make 配置文件(Mac 和 Linux) Windows 版 make
LATEX 模板文件模板配置文件
参考文献样式文件
代码着色和自动补全配置文件
示例文档主文件
示例文档章节具体内容示例文档图片路径
示例文档参考文献目录额外的写作工具箱
为示例文档加载其它宏包
英文安装提示,推荐中高阶用户阅读
Readme
用户手册(本文档)
说明:cquthesis.cls 和 cquthesis.cfg 以及 cqunumerical.bst 可以由 cquthesis.ins 和 cquthesis.dtx 生成,从 CquThesis v1.10 之后,cquthesis.cls 和 cquthesis.cfg 不再做预先提取,这个工作交给用户,整个过程很简单,请见2.4节。
2.4 安装
得益于 GNU make 和 makewin.bat,CquThesis 的安装十分便利。下载 CquThesis 的.zip压缩包后请将整个文件夹解压出来,进入文件夹后:
• Windows 用户可以直接双击运行 makewin.bat ;
• Linux 和 Mac 用户请在 Bash 窗口中进行如下操作:
1 这是出于许可证方面的考虑。
2.5 升级 3 使用说明
cd cquthesis make thesis
即可完成 CquThesis 的安装和示例文档的编译。
2.5 升级
CquThesis 的升级很方便,下载最新的开发版,将 zip 文件中的 cquthesis.dtx 和 cquthesis.ins
• Windows 用户请在文件夹空白处按住 Shift 键再点击书鼠标右键,选择“在此处打开命令窗口”,运行下列命令:
makewin extract
• Linux 和 Mac 用户请在 Bash 窗口中进行如下操作:
cd cquthesis make cls
即可完成 CquThesis 的升级。
2.6 编译用户手册
如果您需要编译用户手册,请定位到解压后的文件夹:
• Windows 用户请在文件夹空白处按住 Shift 键再点击书鼠标右键,选择“在此处打开命令窗口”,运行下列命令:
makewin doc
• Linux 和 Mac 用户请在 Bash 窗口中进行如下操作:
cd cquthesis make doc
说明:关于 make 命令和 xxxxxxx 命令的更多用法,请使用 help 命令进行查询,Windows 用户请在命令行中运行 makewin help,Linux 和 Mac 用户请打开 Makefile 文件查看。
3 使用说明
本手册假定用户已经能处理一般的 LATEX 文档,并对 BibTEX 有一定了解。如果从来没有接触过 TEX 和 LATEX ,建议先学习相关的基础知识。磨刀不误砍柴工!
对 XXXXX 还不熟悉的同学,推荐参考《LATEX 学习笔记》。
3.1 代码自动补全 3 使用说明
3.1 代码自动补全
CquThesis 为支持代码自动补全的 LATEX 编辑器提供了代码补全配置文件 cquthesis.cwl
。如果您的编辑器有代码补全功能(如 TEX Studio),那么您可以将 cquthesis.cwl 放置在编辑器可以识别的位置,即可享受代码着色和代码自动补全带来的便利。
支持代码补全功能的编辑器有很多种,这里无法一一枚举,关于 cquthesis.cwl 的放置位置,请使用搜索引擎查找答案。推荐的关键词:“您的编辑器名称”+ cwl + location。
对于 Windows 平台的 TEX Studio 用户,您可使用【Win+R】快捷键打开“运行”,在其中输入:
%APPDATA%\texstudio\completion\user
然后在打开的文件夹中放入 cquthesis.cwl ,重启 TEX Studio 即可。Linux 和 Mac 的 TEX Studio 用户可参照这个思路进行操作。
3.2 示例文件
CquThesis 是一个功能高度专门化的文档类,没有示例文档的用户会发现很难下手。推荐新用户从模板自带的示例文档入手,里面包括了论文写作用到的所有命令及其使用方法,只需要用自己的内容进行相应替换就可以。对于不清楚的命令可以查阅本手册。下面的例子描述了模板中章节的组织形式,来自于示例文档,具体内容可以参考模板附带的 main.tex 和 contents/ 。
您可以在您熟悉的 IDE(写作环境)中对 main.tex 进行编译,推荐使用 XƎTEX 进行编译,一般来说,LATEX 的编译原则就是多次运行编译命令,直到不再出现警告。这里提供命令行编译方法供您参考:
# 示意:定位到文件夹
cd cquthesis
# 1.发现文件中的引用关系,文件后缀\textsf{.tex}可省略
xelatex main
# 2.编译参考文件源文件,生成\textsf{.bbl}文件
bibtex main
# 3.解决文件中的交叉引用
xelatex main
# 4.生成完整的pdf文件
xelatex main # 5.更新目录 xelatex main
说明:实际情况中,您只需使用 make 或者 makewin 就可以自动完成以上所有工作1。
下面是示例文件中主文件 main.tex 的内容:
% !TeX encoding = UTF-8
%% \textbf{重庆大学}通用毕业论文\LaTeXe{}模板
1 make 和 makewin 调用 latexmk 来完成编译工作,比示意的编译命令更加灵活,能够自主确定必要的编译次数,可以明显缩短编译时间。
3.2 示例文件 3 使用说明
%%% 使用前请先阅读使用文档和用户协议,内有详细介绍。Happy Texing! :)
%% =======================================================
\documentclass%
[type=doctor, bilinguallist=apart,]{cquthesis}%
% 可用选项:
% type=[bachelor|master|doctor], % 必选,毕业论文类型,以下项目不填时为默认
% liberalformat, % 可选,仅适用本科生,使用文学类论文标题格式,默认未打开
% proffesionalmaster=[true|false], % 可选,仅适用研究生,是(true)否(false)专业硕士,默认为否
% printmode=[oneside|twoside|auto], % 可选,论文打印方式,默认采用auto按页数要求自动判定
% openany,|openright, % 可选,双面打印时每章的第一页仅右页开启,默认右页开启( openright)
% bilinguallist=[off|combined|apart], % 可选,图录表录等分别按双语题注混编(combined),分开编录
(apart),默认关(off)
% blindtrail, % 可选,盲审模式,开启后封面姓名和致谢部分会隐藏,详情请参阅用户文档,默认关
% draft, % 写作期间可选,不渲染图片,关闭外围功能,加快预览速度,默认未开启
% 请在cquthesis.sty文件中定义其他会用到的宏包和自己的变量
% 这样可以防止main.tex太过臃肿。
\usepackage{cquthesis}
% 定义所有的图片文件在 figures 子目录下
\graphicspath{{figures/}}
%*** 写作时,使用这个命令只渲染你想查看的部分,提升工作效率,定稿时注释掉整行
%\includeonly{contents/experiment,contents/analysis,}
\begin{document}
\input{contents/cover}
\makecover %%% 封面部分
\frontmatter %%%前置部分(封面后绪论前)
%% 摘要
\makeabstract
%% 目录,注意需要多次编译才能更新
\tableofcontents
%% 插图索引,可选,如不用可注释掉
\listoffigures
\listoffiguresEN
%% 表格索引,可选
\listoftables
\listoftablesEN
%% 公式索引,可选
\listofequations
\listofequationsEN
%% 符号对照表,可选
\input{contents/denotation}
\mainmatter %%% 主体部分(绪论开始,结论为止)
%* 子文件的多少和内容由你决定(最好以章为单位),基本原则是提速预览、脉络清晰、管理容易。
\include{contents/introduction}
\include{contents/experiment}
\include{contents/analysis}
\include{contents/conclusion}
%\include{contents/yourFreeChoise}
\backmatter %%% 后置部分(致谢、参考文献、附录等)
%% 致谢
\include{contents/ack}
%% 参考文献
% 顺序编码制:cqunumerical
% 注意:至少需要引用一篇参考文献,否则下面两行会引起编译错误。
\bibliographystyle{cqunumerical}
\bibliography{ref/refs}
%% 附录(按ABC...分节,证明、推导、程序、个人简历等)
\appendix
% 个人简历
\include{contents/appendix}
%% 原创👉明和授权说明书,可选:用扫描页替换
%\cquauthpage[contents/authscan.pdf]
\cquauthpage
\end{document}
type=
3.3 论文选项
选择论文类型,必须项,当前支持:bachelor ,master ,doctor 。如:
% 博士论文
\documentclass[type=doctor,]{cquthesis}
% 硕士论文
\documentclass[type=master,]{cquthesis}
liberalformat
proffesionalmaster=
本科生可选,开启后将使用文学类标题格式,使用中文数字对各级标题进行计数,本选项默认关闭。
说明:以下所有可选项在不使用时自动取默认值。
研究生可选,值为 true 时按专业硕士要求排版(影响封面),值为 false 时按学术硕士要求排版,默认值为 false,例如:
% 学术硕士论文
\documentclass[type=master,proffesionalmaster=false,]{cquthesis}
% 上面相当于:
\documentclass[type=master,]{cquthesis}
% 专业硕士论文
\documentclass[type=master,proffesionalmaster=true,]{cquthesis}
printmode=
bilinguallist=
openany
可选项,确定单双页打印模式,有三个值可用,默认采用自动判定(auto):
auto 模板会按照学校要求和论文类型自动判定打印模式; oneside 强制以单页模式打印,适合最后提交电子版时; twoside 强制以双页模式打印。
从版本 v1.12 开始,CquThesis 开始支持图、表、公式的中英双语题注。除此之外,就像您期待的那样,表录、图录、公式目录页有了自己的英文版本,它们全部按双语题注的内容自动生成。这是一个可选项,有三个值可用:
off 缺省默认,模板不会生成表录、图录、公式目录的英文版本;
combined 模板会生成表录、图录、公式目录的英文版本,它们会在中文版本中逐条嵌入;
apart 模板会生成表录、图录、公式目录的英文版本,它们独立于中文版本,与其一同输出。有关双语题注的用法和英文版本表录等文档部件的位置调整方式,请参阅第3.9.1节。
说明:以上三个选项仅与表录、图录、公式目录相关,不会影响双语题注的功能。
正规出版物的章节出现在奇数页,也就是右手边的页面,这就是 openright ,在这种情况下,
openright 如果前一章的最后一页也是奇数,那么模板会自动生成一个空白页以保证新章节右开。这个选项适合页数较多的论文,您可根据实际情况和个人喜好选择是否开启。默认值 openright ,本选项在单页打印时自动失效。
blankleft
seriftoc
continuoustoc
abstractopenright
开启此项,并且在 openright 开启的情况下,模板生成的空白页纯粹空白,不含页眉页脚,本选项默认关闭。
开启此项,目录中的不同级别会采用不同的字号和字体,这是按照学校 word 样例的实现。但是,蹊跷的是,样例里的这些做法在官方文件里却没有体现,而且一二级标题字号差别太大,个人观点有碍美观,所以这里列为可选项,适用于三级标题很多的情况。本选项默认关闭。
使用后论文的目录和索引不会自动开启新页,转而以连续的形式编排,这个选项适合索引内容较少但又想使用索引的用户。在开启后,您可能需要在 main.tex 中使用\clearpage 来对索引部分进行手动分页。本选项默认关闭。
开启此项,双页打印模式时中英文摘要右开,这算是开发中的一个彩蛋。本选项默认关闭。
blindtrail
draft
3.4 中文字体 3 使用说明
盲审模式开关,盲审模式由宏\secretize 和环境 secretizeEnv 构成,在盲审模式开启时:
• 宏\secretize 内的内容会被三个星号 *** 替代;
• 环境 secretizeEnv 的内容会输出为一片空白。
CquThesis 默认为封面作者及导师姓名配置宏\secretize,为致谢的内容部分配置环境 secretize
,如果您有更多需求,可以自行配置。
草稿模式,推荐在写作时开启。这个模式下,LATEX 不会加载图片,不会渲染文档内超链接,部分宏包会跳过一些工作以降低编译难度,结合\includeonly 命令可以大大提高预览速度,例如:
% 这是代码片段
\includeonly{contents/experiment,contents/analysis,}
\include{contents/intrduction}
\include{contents/experiment}
\include{contents/analysis}
\include{contents/conclusion}
此时 LATEX 只会渲染 contents/experiment 和 contents/analysis ,从而加速预览。
3.4 中文字体
正确配置中文字体是使用模板的第一步。模板调用 CTEX 宏包,提供如下字体使用方式:
• 基于传统 CJK 包,使用 LATEX 、PdfLATEX 编译。
• 基于 xeCJK 包,使用 XƎLATEX 编译。(推荐方法)
模板默认使用 CTEX 的字体配置。关于中文字体安装、配置的所有问题不在本模板讨论范围。
字体 用来切换宋体、仿宋、黑体、楷体四种基本字体。
{\songti 爆竹👉中一岁除,春风送暖入屠苏。}
{\fangsong 家家乞巧望秋月,穿尽红丝几万条。}
{\heiti 黄沙百战穿金甲,不破楼兰终不还。}
{\kaishu 君不见走马川行雪海边,平沙莽莽黄入天。}
\songti
\fangsong
\heiti
\kaishu
\zihao
效果如下:
爆竹声中一岁除,春风送暖入屠苏。家家乞巧望秋月,穿尽红丝几万条。
黄沙百战穿金甲,不破楼兰终不还。君不见走马川行雪海边,平沙莽莽黄入天。
\zihao{-4} % 后文使用小四号
{\zihao{2} 使用二号字的段落} % 大括号外又回到小四号
CquThesis 使用 CTEX 的原生字体命令,使用中文字号:
\cqusetup
3.5 封面信息和摘要 3 使用说明
3.5 封面信息和摘要
封面信息提供两种配置方法:一是通过统一设置命令\cqusetup 通过 key=value 形式完成;二是每个信息利用命令独立设置,其中命令的名字跟 key 相同。两种方式可以交叉使用,并按顺序执行(即对同一项,后来的设置会覆盖前面的)。以 c 开头的命令跟中文相关,e 开头则为对应的英文。
\cqusetup{
key1 = value1,
key2 = {a value, with comma},
}
% 可以多次调用
\cqusetup{
key3 = value3,
key1 = anothervalue, % 覆盖 value1
}
\cqusetup 用法与常见 key=value 命令相同,如下:
说明:\cqusetup 使用 kvoptions 机制,所以配置项之间不能有空行,否则会报错。
大多数命令的使用方法都是:\command{⟨arg⟩},例外者将具体指出。这些命令都在示例文档的 contents/cover.tex 中。
\ctitle
\etitle
\ctitle{论文标题//这是标题的第二行//第三行//最好别有第四行}
\etitle{Title in English// the 2nd line}
% 以上命令和以下命令等价:
\cqusetup{
ctitle={论文中文题目}, etitle={Thesis English Title},
}
设置论文的中文标题和英文标题,标题中可以使用两个右斜杠进行手动换行。
说明:下文描述的所有命令都有和自己等价的\cqusetup 形式,请留意。
\cauthor
\eauthor
\csupervisor
\esupervisor
\cqusetup{
csupervisor = {xxx~~教授}, % 使用连字符来进行不会断行的空格
esupervisor = {Prof. Zhenyi Kuang},
}%
作者信息,其中英文信息使用拼音书写。导师的中英文信息,填写范例:
\cpsupervisor
\epsupervisor 12
\cassistsupervisor
\cextrasupervisor
\eassistsupervisor
\cmajor
\emajor
\mycdate
\myedate
3.6 前置部分 3 使用说明
说明:在 cover.tex 中自己用不上的字段可以坐视不理、注释、删除(随你意)。模板在 v 0.9.7
版本后更新了运作机制,不再需要主动注释掉不需要的字段以获得正确的封面排版。
本科毕业设计中,有的同学会有助理指导老师或者在校外进行毕业设计(常见xxx的同学),这时需要在论文封面上标注自己的“助理指导教师”或“校外指导教师”。在使用时需要注意:1.这三个字段中,不使用的项目要求留空为正反大括号;2.“助理指导教师”和“校外指导教师”的英文都填写在\eassistsupervisor 中,如果两类指导老师同时存在(这个情况太少了),可以使用正反大括号括起,括号内以逗号分隔。
说明:这是 v 1.14 版本中的新增功能。
填写自己的专业名称,专硕不用这个字段。在专业名称太长的时候封面可能会不够美观,这时可以使用\zihao 来调整这一个字段的字号大小。详情请见 cover.tex 。
默认情况下,封面底部的中英文成文日期自动生成,如果您需要自行指定成文日期,请取消
cover.tex 中\mycdate 和\myedate 的注释,按参考格式填入日期。
关键词 关键词用英文逗号分割写入相应的命令中,模板会解析各关键词并生成符合不同论文格式。
\ckeywords
\ekeywords
要求的关键词格式。
\cqusetup{
ckeywords={关键词 1, 关键词 2},
ekeywords={keyword 1, keyword 2}
}
% 等价:
\ckeywords{关键词 1, 关键词 2}
\ekeywords{keyword 1, keyword 2}
摘要 摘要只能使用环境命令来设置,不支持\cqusetup。
\begin{cabstract}
摘要请写在这里⋯
\end{cabstract}
\begin{eabstract}
Here comes the abstract in English...
\end{eabstract}
cabstract eabstract
3.6 前置部分
以下内容对应 main.tex 中的内容。
\makecover
开启前置部分
\frontmatter
\makeabstract
3.7 主体部分 3 使用说明
前置部分标识符,其后的命令将被模板认作属于前置部分。前置部分包含封面后到绪论前的内容。
目录、插图、表格和公式等索引命令分别如下,将其插入到期望的位置即可:
\tableofcontents
\listoffigures
\listoftables
\listofequations
目录 \tableofcontents插图索引 \listoffigures 表格索引 \listoftables
公式索引 \listofequations
XXXXX xx支持插图和表格索引,是通过 \caption 命令完成的,因此它们必须出现在浮动环境中,否则不被计数。
denotation
主要符号表环境,跟 description 类似,使用方法参见示例文件。带两个个可选参数,用来指定列表左侧缩进和列表左右距离。(全去掉时默认:20mm,30mm)
\begin{denotation}
\item[E] 能量
\item[m] 质量
\item[c] 光速
\end{denotation}
如果默认符号列的宽度不满意,可以通过参数来调整:
\begin{denotation}[10mm][40mm] % 左侧缩进10mm,左右距离40mm
\item[E] 能量
\item[m] 质量
\item[c] 光速
\end{denotation}
3.7 主体部分
开启主体部分 主体部分标识符,其后的命令将被模板认作属于主体部分。主体部分包含从绪论到结论的所
\mainmatter 有内容。
\include 览。使用该命令从 contents/ 中导入子文件,配合\includeonly{⟨ 子文件名⟩} 命令可加速预
3.8 后置部分 3 使用说明
3.8 后置部分
开启后置部分 后置部分标识符,其后的命令将被模板认作属于后置部分。后置部分包含从致谢开始的所有
\backmatter 内容。
致谢 致谢部分使用普通的\chapter 命令创建即可。定义参考文献样式,指定参考文献源。
\bibliographystyle
\bibliography
\cquauthpage
\bicaption
其中参考文献的.bib 文件推荐使用 Jabref 来进行处理。
说明:如果您的文献资料来源于 Web of Science 一类的数据库导出,那么您很可能需要使用 Jabref一类的文献 bib 数据管理工具对数据进行清理,以去除每个字段外围的双层花括号(目前已知 DOI字段的双层括号会使得参考文献列表出现格式问题)。清理过程是自动而无害的。
生成原创说明和授权书,这个命令可以带一个 [⟨PDF 文件地址⟩] 作为参数。这样,在您和您的导师签名之后,您可以单独扫描一下签过名的原创说明和授权书,以\cquauthpage[⟨pdf 文件地址⟩] 的形式将扫描页放入论文的 PDF 文件中的对应位置。
3.9 宏包和特色功能
在学校的相关格式文件中,硕士生和博士生的表格和插图的题注需要中英对照,使用\bicaption{⟨
中文题注⟩}{⟨ 英文题注⟩} 命令代替\caption 即可解决这个问题,示例如下:
\begin{figure}[tbh]
\centering
\includegraphics[width=0.7\linewidth]{figures/TEST}
\bicaption{这是一张测试用图片}{This figure is for test only}
\label{fig:cqubadge}
\end{figure}
在题注很长的时候,为了防止题注对应的表录(或图录)的条目太长,可使用\bicaption[⟨
短中文⟩]{⟨ 中文题注⟩}[⟨ 短英文⟩]{⟨ 英文题注⟩} 来解决这个问题:
\begin{tabularx}{cc}
\bicaption[这是表录中的段条目]{这是一个很长很长很长的中文题注,你可以写很多行}%
[This is a really short one.]{Linebreak is for demostration only. It's okay to go without it.}
\label{fig:cqubadge}
我 & 在\\测 & 试\\
\end{tabularx}
\eqlist
重要算式列表\eqlist 和\listeq 命令从 v1.12 版本后也支持中英双语,用法是\eqlist{⟨ 中文⟩}[⟨ 英文⟩],请注意括号。
上面的这些用法都在 CquThesis 的示例文件中有所体现,供您参考。
说明:英文版本的重要算式列表需要在 bilinguallist= combined 或者 apart 时才会生效。另外,当且仅当在 bilinguallist= apart 时,main.tex 中的\listoffiguresEN,\listoftablesEN
3.9 宏包和特色功能 3 使用说明
和\listofequationsEN 才会发挥作用,此时您可以通过调整这些命令的位置来调整图录、表录、方程式列表各自之间以及中英文版本之间的顺序。
CquThesis 定义了常用的数学环境:
axiom 公理 | theorem 定理 | definition 定义 | proposition 命题 | lemma 引理 | conjecture 猜想 | |
proof | corollary | example | exercise | assumption | remark | problem |
证明 | 推论 | 例子 | 练习 | 假设 | 注释 | 问题 |
比如:
\begin{definition}
xx乘之国,敬事而信,节用而爱人,使民以时。
\end{definition}
产生(自动编号):
定义 1.1 道千乘之国,敬事而信,节用而爱人,使民以时。
列举出来的数学环境毕竟是有限的,如果想用胡说这样的数学环境,那么可以定义:
\newtheorem{nonsense}{胡说}[chapter]
然后这样使用:
\begin{nonsense}
契丹武士要来中原夺武林秘笈。—— xxx
\end{nonsense}
产生(自动编号):
xx 1.1 契丹武士要来中原夺武林秘笈。——xxx
\inlinecite
\onlinecite
\xuhao
\xuhaotype
\resetxuhao
\xuhaoseparator
\rownum
\rownumtype
\resetrownum
参考文献引用有两种模式:(1)上标模式。比如 “同样的工作有多 [1,2]…”。(2)正文模式。比如 “文 [3] 中详细说明了…”。其中上标模式使用远比正文模式频繁,所以为了符合使用习惯,上标模式仍然用常规的\cite{⟨key⟩},而\inlinecite{⟨key⟩} 则用来生成正文模式。
出于易用性考虑,\onlinecite 被安排为\inlinecite 的别名,两者的作用完全一致,可相互替换。
\xuhao 命令用来解决表格序号列手动编号的烦恼,这个命令也可以用在行内列表等场景,其中:
• \xuhao[⟨1⟩] 用于将计数器设置为 1,并输出 1;
16
3.10 其他说明 4 致谢
• \xuhao 不带参数时每次使用将计数器加 1,并输出这个值;
• \xuhaotype[⟨1-6⟩] 可设置\xuhao 的输出类型,1–6 分别为阿拉伯数字、大写字母、小写字母、大写xx数字、小写xx数字、带圈数字(这一项仅支持 1–10 的数)
• \resetxuhao 用于重置计数器为 1,但不作输出;
• \xuhaoseparator 用于定义每个序号之后的分割符,默认为空,您可以使用\renewcommand来更新其定义。
\xuhaotype[3]
\renewcommand{\xuhaoseparator}{.}
\xuhao[1] \xuhao \xuhao \xuhao[1] \xuhao \xuhao \xuhao \xuhao
% 输出为:a. b. c. a. b. c. d. e.
说明:考虑到不同用户的语言习惯,\rownum, \rownumtype, \resetrownum 分别是\xuhao,
\xuhaotype, \resetxuhao 的别名,可以相互替换。
向前兼容:老旧命令\setxuhao 和\xuhaotype 的作用相同。
在表格中,\bigcell 内的内容可以自主换行;\headcell 括起的内容会在单元格中居中和加黑;\colsep 用来设定列间距,默认值为 12pt,这个命令在表格开始绘制之前有效。
使用范例请参阅示例文档的附录部分。
本模板已经自动载入了许多表格相关的宏包:
• 如果您是熟练的 LATEX 用户,array , tabularx , booktabs , longtable , multirow 和
diagbox 会是您得力的助手,其中,tabularx 和 longtable 的字号已经预先适配为五号字;
• CquThesis 还预先载入了 tabu 宏包,如果您熟悉这个宏包,或者愿意负担一些学习成本,那么 tabu 宏包的强大功能会让您满意。
3.10 其他说明
本文档的最后一节有宏索引,对中阶及以上用户或许会有帮助。
3.11 提问和新功能需求
遇到难以解决的问题了?欢迎您向我反馈,您可以:
• 加入重庆大学 TEX 用户组进行讨论1。大家的反馈为模板提高带来机会。
4 致谢
这个模板是站在巨人肩膀上的成果,感谢LATEX 2ε计划,感谢 CTeX 开发组提供的中文解决方案,感谢xxx副教授 (Xxxxxx: xueruini/ThuThesis),感谢 WeiJianWen 同学 (Xxxxxx:
1 即使您不是重庆大学的学子,只要您对 TEX 足够热爱并且为人友善,我们也会热诚地欢迎您。
4 致谢
weijianwen/SJTUThesis),感谢中国科学技术大学 TeX 用户组 (Github: ustctug/gbt-7714-2015)。向你们致以真诚的问候和感激!
世界因你们更美好。
5 实现细节
5 实现细节
下面这些内容面向 LATEX 宏包开发者或者对 CquThesis 开发感兴趣的用户,如果您有任何意见或建议或想法,都欢迎到 Xxxxxx提交 Issue。您对模板开发或者本文档的撰写的任何贡献都会受到诚挚欢迎!
5.1 模板信息
1 ⟨cls⟩\NeedsTeXFormat{LaTeX2e}[1999/12/01]
2 ⟨cls⟩\ProvidesClass{cquthesis}
3 ⟨cfg⟩\ProvidesFile{cquthesis.cfg}
4 ⟨cls | cfg⟩[2019/10/12 v1.40 Chongqing University Thesis Template]
定义一些开发常量:
5 ⟨*cls⟩
6 \hyphenation{Cqu-Thesis}
7 \newcommand{\cquthesis}{\textsc{CquThesis}}
8 \def\version{1.30}
9 ⟨/cls⟩
cquthesis.cfg 中,涉及文档部件的部分常量:
10 ⟨*cfg⟩
11 \def\cqueqshortname {式}
12 \def\cqu@denotation@name {主要符号对照表}
13 \def\shorttablename {表}
14 \def\shorttablenameEN {Table}
15 \def\shortfigurename {图}
16 \def\shortfigurenameEN {Fig.}
17 \def\listofequationsname {重要算式索引}
18 \def\listofequationsnameEN {\textbf{List of Equations}}
19 \def\listoffiguresnameEN {\textbf{List of Figures}}
20 \def\listoftablesnameEN {\textbf{List of Tables}}
21 \def\cqu@bib@name {参考文献}
22 \def\cqu@tocnameinbkmark {目 { } 录}
23 \newcommand{\parenthesesthis}[1]{(#1)}
5.2 选项的定义和处理
使用 Key=Value 方式进行选项设置,定义前缀和族。
25 ⟨*cls⟩
26 \RequirePackage{kvoptions}
27 \SetupKeyvalOptions{
28 family=cqu,
29 prefix=cqu@,
30 setkeys=\kvsetkeys}
定义用户类型
31 \newif\ifcqu@bachelor
32 \newif\ifcqu@master
33 \newif\ifcqu@doctor
34 \cqu@bachelorfalse\cqu@masterfalse\cqu@doctorfalse
35 \define@key{cqu}{type}{%
36 \expandafter\csname cqu@#1true\endcsname}
定义是否使用本科文学类论文标题格式
37 \DeclareBoolOption{liberalformat}
专业硕士标记
38 \DeclareBoolOption[true]{academic}
39 \DeclareComplementaryOption{proffesionalmaster}{academic}
每个章首页是否右开
40 \DeclareBoolOption[false]{openany}
41 \DeclareComplementaryOption{openright}{openany}
右开时空白的左页是否让页眉页脚空白
42 \DeclareBoolOption[false]{blankleft}
双页模式下英文摘要页右开
43 \DeclareBoolOption[false]{abstractopenright}
盲审模式开关
44 \DeclareBoolOption[false]{blindtrail}
论文是单面打印还是双面打印(默认:自动,手动模式一般不用)
45 \newif\if@onesideprint
46 \newif\if@twosideprint
47 \newif\if@autoprint
48 \@onesideprintfalse\@twosideprintfalse\@autoprintfalse
49 \define@key{cqu}{printmode}{%
50 \expandafter\csname @#1printtrue\endcsname}
论文是否保密(默认:关),尚未支持,在计划中
51 \DeclareBoolOption[false]{secret}
目录中的不同级别采用不同的字号和字体,适用于三级标题很多的情况
52 \DeclareBoolOption[false]{seriftoc}
目录和索引不会自动新开一页,适用于索引内容较少时
53 \DeclareBoolOption{continuoustoc}
双语图录、表录、公式列表开关
54 \newif\if@bioff
55 \newif\if@bicombined
56 \newif\if@biapart
57 \@biofffalse\@bicombinedfalse\@biapartfalse
58 \define@key{cqu}{bilinguallist}{%
59 \@biofffalse\@bicombinedfalse\@biapartfalse
60 \expandafter\csname @bi#1true\endcsname}
传递选项给 CTeXBook
61 \DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}}
打开默认选项,处理选项
62 \kvsetkeys{cqu}{}
63 \ProcessKeyvalOptions*
64 \PassOptionsToPackage{no-math}{fontspec}
为 CTeXBook 定义选项,使用 CTeX 原生的的 Openright 和 Openany 解决方案:
65 \ifcqu@openany
66 \LoadClass[openany,a4paper,oneside,UTF8,zihao=-4,scheme=plain,linespread=1.39,space=auto]{ctexbook}
67 \else
68 \LoadClass[openright,a4paper,oneside,UTF8,zihao=-4,scheme=plain,linespread=1.39,space=auto]{ctexbook}
69 \fi
用户必须提供用户类型:
70 \ifcqu@bachelor\relax\else
71 \ifcqu@master\relax\else
72 \ifcqu@doctor\relax\else
73 \ClassError{cquthesis}%
74 {Specified thesis type is obligatory: \MessageBreak
75 type=[bachelor|master|doctor]}{}
76 \fi
77 \fi
78 \fi
如果没有指定合适的打印方式则缺省使用自动模式
79 \if@autoprint\relax\else
80 \if@onesideprint\relax\else
81 \if@twosideprint\relax\else
82 \ClassWarning{cquthesis}%
83 {Unexpected or missing print mode, processing with AUTO: \MessageBreak
84 printmode=[oneside|twoside|auto]}{}
85 \@autoprinttrue
86 \fi
87 \fi
88 \fi
如果没有正确指定图录表录的双语模式,取默认值 off:
89 \if@bioff\relax\else
90 \if@bicombined\relax\else
91 \if@biapart\relax\else
92 \kvsetkeys{cqu}{bilinguallist=off,}
93 \ClassWarning{cquthesis}%
94 {Unexpected or missing bilingual list mode, processing with OFF: \MessageBreak
95 bilinguallist=[off|combined|apart]}{}
96 \fi
97 \fi
98 \fi
5.3 载入宏包 5 实现细节
5.3 载入宏包
使用成熟的宏包而不是自己造轮子几乎总是一个不错的选择,LATEX 的强大之处就在这诸多宏包。
这几个宏包用于提升LATEX 2ε的命令定义和命令处理性能
99 \RequirePackage{etoolbox}
100 \RequirePackage{xparse}
101 \RequirePackage{environ}
102 \RequirePackage{calc}
103 \RequirePackage{ifxetex}
数学是 LATEX 关心的大问题,这里先引入 amsmath 宏包,避免一些载入顺序引发的问题:
104 \RequirePackage{fontspec}
105 \RequirePackage{amsmath}
106 \RequirePackage{amssymb}
107 \RequirePackage{amsfonts}
一些字体相关的宏包:
108 \RequirePackage[defaultsups]{newtxtext}
109 \RequirePackage{pifont}
110 \RequirePackage{xeCJKfntef}
解决各种文档部件需求,如表格、题注、插图等
111 \RequirePackage{newfloat}
112 \RequirePackage{caption}
113 \RequirePackage[labelformat=simple]{subcaption}
114 \RequirePackage{bicaption}
115 \RequirePackage{array}
116 \RequirePackage{tabularx}
117 \RequirePackage{booktabs}
118 \RequirePackage{longtable}
119 \RequirePackage{multirow}
120 \RequirePackage{diagbox}
121 \RequirePackage{tabu}
122 \RequirePackage{courier}
123 \RequirePackage{graphicx}
124 \RequirePackage{pdfpages}
125 \RequirePackage[shortlabels,inline]{enumitem}
126 \RequirePackage[amsmath,thmmarks,hyperref]{ntheorem}
解决页面类问题和脚注,其中 varwidth 用来代替老版本中的 pbox 。xcolor 用来提供色彩支持,metalogo 用来提供\XeTeX 等命令支持。
127 \RequirePackage{changepage}
128 \RequirePackage{afterpage}
129 \RequirePackage[bottom,perpage,hang,symbol*]{footmisc}
130 \raggedbottom
131 \RequirePackage{varwidth}
132 \RequirePackage{xcolor}
133 \RequirePackage{metalogo}
134 \RequirePackage{xspace}
参考文献格式和优化:
135 \RequirePackage[numbers,square,comma,super,sort&compress]{natbib}
删除默认模板(book.cls )在章之间引入的垂直间隔。要放在 hyperref 之前才会生效。
136 \patchcmd{\@chapter}{\addtocontents{lof}{\protect\addvspace{10\p@}}}{}{}{} % lof
137 \patchcmd{\@chapter}{\addtocontents{lot}{\protect\addvspace{10\p@}}}{}{}{} % lot
文档超链接
138 \RequirePackage[hyperfootnotes=false,]{hyperref}
配置超链接
139 \hypersetup{%
140 linktoc=all,
141 bookmarksnumbered=true,
142 bookmarksopen=true,
143 bookmarksopenlevel=1,
144 breaklinks=true,
145 colorlinks=false,
146 plainpages=false,
147 pdfborder=0 0 0}
148 \urlstyle{same}
对 XƎTEX 进行专门配置,解决一些字体问题:
149 \ifxetex
150 \def\CJK@null{\kern\CJKnullspace\Unicode{48}{7}\kern\CJKnullspace}
151 \defaultfontfeatures{Mapping=tex-text}
152 \fi
153 \RequirePackage{tocloft}
154 \ifxetex
155 \hypersetup{%
156 CJKbookmarks=true}
157 \else
158 \hypersetup{%
159 unicode=true,
160 CJKbookmarks=false}
161 \fi
5.4 页面类设置
\cleardoublepage 首页右开的时候,全空的左页不留页眉页脚,这个功能受 blankleft 开关影响
162 \let\cqu@cleardoublepage\cleardoublepage
163 \renewcommand{\cleardoublepage}{%
164 \clearpage{\ifcqu@blankleft\pagestyle{style@empty}\fi\cqu@cleardoublepage}
165 }%\cleardoublepage
\cqu@addblankpage 用来在强制完成空页工作,注意这里的 pagestyle 调整范围在花括号之内,这个功能受 blankleft
开关影响
166 \newcommand\cqu@addblankpage{%
167 \afterpage{%
168 {\null\ifcqu@blankleft\pagestyle{style@empty}\fi\clearpage}}}
用来在 main.tex 中开启不同的文章部分:前置、主体、后置
169 \newif\if@backmatter
170 \renewcommand{\frontmatter}{%
171 \@backmatterfalse
172 \cleardoublepage
173 \pagenumbering{Roman}
174 \pagestyle{style@normal}
175 \ctexset{chapter/numbering = false,}
176 }
177 \renewcommand{\mainmatter}{%
178 \@backmatterfalse
179 \cleardoublepage
180 \pagenumbering{arabic}
181 \pagestyle{style@normal}
182 \ctexset{chapter/numbering = true,}
183 }
184 \renewcommand{\backmatter}{%
185 \@backmattertrue
186 \cleardoublepage
187 \ctexset{chapter/numbering = false, 188 section/number = \Alph{section}, 189 section/name = {,.},
190 subsection/number = \CTEXthesection{}\arabic{subsection},}%
191 \setcounter{chapter}{0}
192 }
定义页面,页眉页脚,先建立页面环境,完成分页再决定单双面打印
193 \RequirePackage{geometry}
194 \geometry{
195 a4paper, ignoreall, nomarginpar,
196 inner=25mm, outer=25mm, top=30mm, bottom=28mm,
197 bindingoffset=10mm, head=16mm, headsep=11mm, foot=12mm, footnotesep=5mm}
重庆大学的单双面打印和论文实际页数有关,此处读取前置部分后的最大页码,自动判断是否需要双面打印。很有趣,本科生 70 页想要双面打印比硕士生 60 页还难。此处立 flag 用来配合\cqu@addblankpage
198 \RequirePackage{totcount}
199 \regtotcounter[auxfile=maxpage.aux]{page}
200 \if@autoprint
201 \ifcqu@bachelor
202 \ifnum\totvalue{page}>70 \@twosideprinttrue\else\@onesideprinttrue\fi
203 \else
204 \ifnum \totvalue{page}>60 \@twosideprinttrue\else\@onesideprinttrue\fi
205 \fi
206 \fi
在 log 中记录下打印模式:
207 \if@onesideprint
208 \ClassWarning{cquthesis}{Printing under oneside mode.}{}
209 \else
210 \if@twosideprint
211 \geometry{twoside}
212 \ClassWarning{cquthesis}{Printing under twoside mode.}{}
213 \fi
214 \fi
页眉页脚共有三种模式:1. 页眉页脚全空(用于标题页、主体部分另页右开等);2. 用来修正双页打印时的页眉遮挡问题(右开的索引页眉不再是\cqu@thesisname);3. 页眉页脚齐全(用于一般正文页面,这里自动判定用户类型和打印单双面)。
定制页眉页脚模式,全部以 style@ 开头。
215 \RequirePackage{fancyhdr}
216 \fancypagestyle{style@empty}{%
217 \fancyhf{}
218 \renewcommand{\headrulewidth}{0pt}
219 \renewcommand{\footrulewidth}{0pt}}
220 \fancypagestyle{style@fixhead}{%
221 \fancyhead{}
222 \fancyhead[C]{\zihao{-5}\songti\leftmark}
223 \fancyfoot{}
224 \fancyfoot[C]{\zihao{-5}\thepage}
225 \renewcommand{\headrulewidth}{0.4pt}
226 \renewcommand{\footrulewidth}{0pt}}
227 \fancypagestyle{style@normal}{%
228 \fancyhead{}
229 \if@twosideprint
5.5 段落设置 5 实现细节
230 \fancyhead[EC]{\zihao{-5}\songti\cqu@thesisname}
231 \fancyhead[OC]{\zihao{-5}\songti\leftmark}
232 \else
233 \fancyhead[L]{\zihao{-5}\songti\cqu@thesisname}
234 \fancyhead[R]{\zihao{-5}\songti\leftmark}
235 \fi
236 \fancyfoot{}
237 \fancyfoot[C]{\zihao{-5}\thepage}
238 \renewcommand{\headrulewidth}{0.4pt}
239 \renewcommand{\footrulewidth}{0pt}}
\cqu@fixhead 修正页眉遮挡,这个命令要在标题生成的地方使用
240 \newcommand{\cqu@fixhead}{%
241 \if@twosideprint % 仅双页打印需要修正
242 \checkoddpage
243 \ifoddpage\relax\else
244 \thispagestyle{style@fixhead}
245 \fi
246 \fi
247 }%\cqu@fixhead
修正 fancyhdr 的问题,同时让页眉不显示第 0 章的编号:
248 \AtBeginDocument{%
249 \pagestyle{style@empty}
250 \renewcommand{\chaptermark}[1]{%
251 \ifnum\value{chapter}>0%
252 \@mkboth{\CTEXthechapter\hskip\ccwd#1}{}%
253 \else
254 \@mkboth{#1}{}%
255 \fi}}%\chaptermark
5.5 段落设置
LaTeX 使用\if@afterindent 来决定要不要让标题后的第一个自然段缩进,中文环境下好像并没有个人喜好之类的问题,我们这里让它一直为 True。
256 \let\@afterindentfalse\@afterindenttrue
257 \@afterindenttrue
每个自然段之间空 1/10 行距,增加可读性
258 \setlength{\parskip}{0.1\baselineskip}
全文首行缩进两字符,全角标点,去掉列表中项目之间的额外间隔(enumitem)
259 \ctexset{%
260 punct=quanjiao,
261 autoindent=true,
262 space=auto}
263 \setlist{
264 nosep,
265 itemjoin = {{;}}
266 }%setlist
267 ⟨/cls⟩
5.6 各级标题
各级标题设置,使用 fixskip 来抑制三级和四级标题的额外间距。这里的 beforeskip 和 afterskip
是与 Word 样例对比后通过尝试得出的。
268 ⟨*cfg⟩
269 \ctexset{%
270 chapter = {%
271 pagestyle = style@normal,
272 name = {},
273 format = \sffamily\heiti\centering,
274 nameformat = \zihao{3}, 275 titleformat = \zihao{3}, 276 aftername = \hskip\ccwd,
277 number = {\ifcqu@liberalformat\chinese{chapter}\else\thechapter\fi},
278 beforeskip = 13bp, 279 afterskip = 24bp, 280 },
281 section = {%
282 name = {},
283 format = \sffamily\heiti\raggedright,
284 nameformat = \bfseries\zihao{-3},
285 titleformat = \zihao{-3},
286 aftername = \hskip\ccwd,
287 number = {\ifcqu@liberalformat\parenthesesthis{\chinese{section}}\else\thesection\fi},
288 beforeskip = 24bp plus 1ex minus .2ex,
289 afterskip = 6bp plus .2ex,
290 },
291 subsection = {%
292 name = {},
293 format = \sffamily\heiti\raggedright,
294 nameformat = \bfseries\zihao{4},
295 titleformat = \zihao{4},
296 aftername = \hskip\ccwd,
297 number = {\ifcqu@liberalformat\arabic{subsection}\else\thesubsection\fi},
298 beforeskip = 12bp plus 1bp,
299 afterskip = 10bp, 300 fixskip = true, 301 },
302 subsubsection = {
303 name = {},
304 runin = false,
305 indent = \parindent,
306 aftertitle = {},
307 numbering = true,
308 number = {\ifcqu@liberalformat\parenthesesthis{\arabic{subsubsection}}\else\@circlenum{subsubsection}\
309 numberformat+ = {\ifcqu@liberalformat\relax\else\zihao{4}\fi},
310 beforeskip = 10bp plus .5bp,
311 afterskip = 10bp, 312 fixskip = true, 313 },
314 appendix = {%
315 numbering = false,
316 name = {},
317 },
出于各级标题间区分度的考虑,不支持五级及以上的标题:
318 paragraph = {
319 name = {},
320 runin = true,
321 aftertitle = {\ClassError{cquthesis}%
322 {Level-5 and below sections are unsupported intentionally.}{}},
323 beforeskip = 1ex plus 0.5ex minus .2ex,
324 afterskip = 1em,
325 },
326 subparagraph = {
327 name = {},
328 runin = true,
329 indent = \parindent,
330 indent = 0pt,
331 aftertitle = {\ClassError{cquthesis}%
332 {Level-5 and below sections are unsupported intentionally.}{}},
333 beforeskip = 1ex plus 0.5ex minus .2ex,
334 afterskip = 1em,
335 },
336 appendixname= 附录,
337 contentsname={目\hskip\ccwd 录},
338 listfigurename={插图索引},
339 listtablename={表格索引},
340 figurename= 图,
341 tablename= 表,
342 bibname= 参考文献,
343 indexname= 索引,
344 }
345 ⟨/cfg⟩
5.7 文档部件
\@circlenum 带圈数字功能,最多处理 10 个。注意这里\@circlenum 要接受的是 counter 里的值,所以需要\value 来处理,如果用数字直接做\@circlenum 的参数,要去掉\value 才能编译通过,另外,\ding 接受的参数为字符串,所以这里要用上\the。
这个命令用于生成第四级标题。
346 ⟨*cls⟩
347 \def\@circlenum#1{%
348 \ifnum \value{#1} >10
349 \ClassError{cquthesis}%
350 {More than 10 subsubsections in a subsection cannot be handled.}{}
351 \fi
352 \ding{\the\numexpr\value{#1}+171\relax}%
353 }
设置分割线、字号和悬挂缩进
354 \def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@}
355 \let\cqu@footnotesize\footnotesize
356 \renewcommand{\footnotesize}{\cqu@footnotesize\zihao{-5}}
357 \footnotemargin1.5em\relax
脚注部分将标注换为正文大小,这个过程是动态的:
358 \let\cqu@makefnmark\@makefnmark
359 \def\cqu@@makefnmark{\mbox{{\normalfont\@thefnmark}}}
360 \pretocmd{\@makefntext}{\let\@makefnmark\cqu@@makefnmark}{}{}
361 \apptocmd{\@makefntext}{\let\@makefnmark\cqu@makefnmark}{}{}
362 ⟨/cls⟩
footmisc 定义新脚注 symbol,minipage 需要额外定义一行,脚注不能大于 10
363 ⟨*cfg⟩
364 \DefineFNsymbols{cqufnsymbol}{
365 {\ding{172}} {\ding{173}}
366 {\ding{174}} {\ding{175}}
367 {\ding{176}} {\ding{177}}
368 {\ding{178}} {\ding{179}}
369 {\ding{180}} {\ding{181}}
370 }%cqufnsymbol
371 \setfnsymbol{cqufnsymbol}
372 \renewcommand\thempfootnote{\fnsymbol{mpfootnote}}
373 \pretocmd{\thefootnote}{%
374 \ifnum \value{footnote} >10
375 \ClassError{cquthesis}%
376 {More than 10 footnotes in a single page are not supported.}{}
377 \fi
378 }{}{}
379 \pretocmd{\thempfootnote}{%
380 \ifnum \value{mpfootnote} >10
381 \ClassError{cquthesis}%
382 {More than 10 footnotes in a single page are not supported.}{}
383 \fi
384 }{}{}
385 ⟨/cfg⟩
数学公式断行
386 ⟨*cls⟩
387 \allowdisplaybreaks[4]
388 \let\cqu@tagform@\tagform@
389 \renewcommand{\eqref}[1]{\cqueqshortname\textup{(\ref{#1})}}
定理环境
390 \theorembodyfont{\rmfamily\songti}
391 \theoremheaderfont{\rmfamily\heiti}
392 ⟨/cls⟩
定理环境中文定义在.cfg 中完成
393 ⟨*cfg⟩
394 \theoremsymbol{\ensuremath{\ding{110}}}
395 \newtheorem*{proof}{证明}
396 \theoremstyle{plain}
397 \theoremsymbol{}
398 \theoremseparator{:}
399 \newtheorem{assumption}{假设}[chapter]
400 \newtheorem{definition}{定义}[chapter]
401 \newtheorem{proposition}{命题}[chapter]
402 \newtheorem{lemma}{引理}[chapter]
403 \newtheorem{theorem}{定理}[chapter]
404 \newtheorem{axiom}{公理}[chapter]
405 \newtheorem{corollary}{推论}[chapter]
406 \newtheorem{exercise}{练习}[chapter]
407 \newtheorem{example}{例}[chapter]
408 \newtheorem{remark}{注释}[chapter]
409 \newtheorem{problem}{问题}[chapter]
410 \newtheorem{conjecture}{猜想}[chapter]
411 ⟨/cfg⟩
很棒的化学式和方程支持。不过这里需要补足中文排版中的空格尴尬:
412 ⟨*cls⟩
413 \RequirePackage[version=4]{mhchem}
414 \AtBeginDocument{\pretocmd{\ce}{{ }}{}{}}
\cec 在命令里使用逗号快速分隔多个化学式:
415 \newcommand{\cec}[1]{\cesplit{{\,\ }{\0}}{#1}}
SI 单位支持
416 \RequirePackage{siunitx}
417 \RequirePackage{upgreek}
418 \ifxetex
419 \sisetup{%
420 math-micro = {\upmu}, 421 text-micro = {\textmu}, 422 }%\sisetup
423 \fi
424 ⟨/cls⟩
425 ⟨*cfg⟩
426 \sisetup{%
427 list-final-separator = { 和 }, 428 list-pair-separator = { 和 }, 429 range-phrase = {~},
430 }%\sisetup
\autoref 使用\autoref 可以进行自动判定目标类型的交叉引用,这里对其进行定制:
431 % 这里定制\autoref{label}
432 \AtBeginDocument{%
433 \def\figureautorefname{图}
434 \def\tableautorefname{表}
435 \def\partautorefname{卷}
436 \def\appendixautorefname{附录}
437 \def\equationautorefname{式}
438 \def\Itemautorefname{列表}
439 \def\chapterautorefname{章}
440 \def\sectionautorefname{节}
441 \def\subsectionautorefname{小节}
442 \def\subsubsectionautorefname{条目}
443 \def\paragraphautorefname{自然段}
444 \def\Hfootnoteautorefname{脚注}
445 \def\AMSautorefname{式}
446 \def\theoremautorefname{理论}
447 \def\pageautorefname{页}
448 }%\AtBeginDocument
449 ⟨/cfg⟩
设定浮动对象与文字的间距
450 ⟨*cls⟩
451 \setlength{\floatsep}{20bp plus2bp minus2bp}
452 \setlength{\intextsep}{20bp plus2bp minus2bp}
453 \setlength{\textfloatsep}{20bp plus2bp minus2bp}
454 \setlength{\@fptop}{6bp plus2bp}
455 \setlength{\@fpsep}{12bp plus2bp}
456 \setlength{\@fpbot}{6bp plus2bp}
让浮动对象的页面缺省值更宽松
457 \renewcommand{\textfraction}{0.15}
458 \renewcommand{\topfraction}{0.85}
459 \renewcommand{\bottomfraction}{0.65}
460 \renewcommand{\floatpagefraction}{0.60}
主体部分的题注和后置部分的题注需要做分别支持。重新定义了图、表、公式的计数系统:
461 \AtBeginDocument{%
462 \renewcommand{\thefigure}{%
463 \if@backmatter
464 \CTEXthesection \@arabic \c@figure
465 \else
466 \ifnum \c@chapter >\z@ \thechapter .\fi \@arabic \c@figure
467 \fi}
468 \renewcommand{\thetable}{%
469 \if@backmatter
470 \CTEXthesection \@arabic \c@table
471 \else
472 \ifnum \c@chapter >\z@ \thechapter .\fi \@arabic \c@table
473 \fi}
474 \renewcommand{\theequation}{%
475 \if@backmatter
476 \CTEXthesection \@arabic \c@equation
477 \else
478 \ifnum \c@chapter >\z@ \thechapter .\fi \@arabic \c@equation
479 \fi}
480 }
定制表格和插图的题注样式,这里注意 caption 宏包在设置表格的 position 为 top 时,aboveskip和 belowskip 的定义会相互调换,即 top 时反义,bottom 时字面义。
481 \def\cqu@tabular{\zihao{5}\@tabular}
482 \DeclareCaptionLabelFormat{cqu}{{\zihao{5}\rmfamily\songti #1~#2}}
483 \DeclareCaptionLabelSeparator{cqu}{\hspace{0.5\ccwd}}
484 \DeclareCaptionFont{cqu}{\zihao{5}\rmfamily\songti}
485 \captionsetup{justification=centerlast}
486 \captionsetup{labelformat=cqu,labelsep=cqu,font=cqu}
487 \captionsetup[table]{position=top,belowskip=6bp,aboveskip=0bp}
488 \captionsetup[figure]{position=bottom,belowskip=0bp,aboveskip=6bp}
489 \captionsetup[sub]{font=cqu,skip=6bp}
490 \renewcommand{\thesubfigure}{(\alph{subfigure})}
491 \renewcommand{\thesubtable}{(\alph{subtable})}
\bicaption 这里对\bicaption 这个命令进行设置,题注的第二语言默认为英文,用户可以重定义\shorttablenameEN和\shortfigurenameEN
492 \DeclareCaptionOption{bi-first}[]{%
493 \def\tablename{\shorttablename}
494 \def\figurename{\shortfigurename}
495 }%bi-first
496 \DeclareCaptionOption{bi-second}[]{%
497 \def\tablename{\shorttablenameEN}
498 \def\figurename{\shortfigurenameEN}
499 }%bi-second
500 \captionsetup[bi-first]{bi-first}
501 \captionsetup[bi-second]{bi-second}
按照三种不同情况进行不同的工作:1、如果不开启双语索引,则去掉命令作用,将创建出的 list
作为黑洞;2、要求中英文编录到一起时不分离索引文件:
502 \DeclareFloatingEnvironment[fileext=lofEN]{figuresEN}[\shortfigurenameEN][\listoffiguresnameEN]
503 \DeclareFloatingEnvironment[fileext=lotEN]{tablesEN}[\shorttablenameEN][\listoftablesnameEN]
3、中英文分开编译
504 \if@bicombined\relax
505 \else
506 \captionsetup[bi-second]{listtype+=sEN}
507 \fi
508 \if@biapart\relax
509 \else
510 \AtBeginDocument{%
511 \let\listoffiguresEN\relax
512 \let\listoftablesEN\relax
513 \let\listofequationsEN\relax
514 }%AtBeginDocument
515 \fi
调整表格字号,调整每列之间的间距,单元格内垂直居中
516 \AtBeginEnvironment{tabularx}{\begingroup\zihao{5}}
517 \AtEndEnvironment{tabularx}{\endgroup}
518 \setlength{\tabcolsep}{12pt}
519 \renewcommand{\tabularxcolumn}[1]{m{#1}}
在表格中,\bigcell 内的内容可以主动换行;\headcell 用来做表头;\colsep 用来设定列间距,默认值为 12pt。
520 \newcommand{\bigcell}[1]{\vspace{6pt}\begin{varwidth}{\linewidth}#1\end{varwidth}\vspace{6pt}}
521 \newcommand{\headcell}[1]{\multicolumn{1}{c}{\heiti #1}}
522 \newcommand{\colsep}[1][12pt]{\setlength{\tabcolsep}{#1}}
longtable 方面也需要做设置
523 \setlength{\LTpre}{\bigskipamount}
524 \setlength{\LTpost}{\bigskipamount}
525 \let\cqu@LT@array\LT@array
526 \def\LT@array{\zihao{5}\cqu@LT@array}
lstStyleBase 载入 listings 宏包,定义基础代码环境,注意这个环境只是个模板,没有提供直接使用的接口:
527 \RequirePackage{listings}
528 \lstdefinestyle{lstStyleBase}{%
529 basicstyle=\footnotesize\ttfamily,
530 aboveskip=\medskipamount,
531 belowskip=\medskipamount,
532 lineskip=0pt,
533 boxpos=c,
534 showlines=false,
535 extendedchars=true,
536 upquote=true,
537 tabsize=2,
538 showtabs=false,
539 showspaces=false,
540 showstringspaces=false,
541 numbers=left,
542 numberstyle=\tiny,
543 linewidth=\linewidth,
544 xleftmargin=4pt,
545 xrightmargin=0pt,
546 resetmargins=false,
547 breaklines=true,
548 breakatwhitespace=false,
549 breakindent=0pt,
550 breakautoindent=true,
551 columns=flexible,
552 keepspaces=true,
553 framesep=3pt,
554 rulesep=2pt,
555 framerule=1pt,
556 backgroundcolor=\color{gray!5},
557 stringstyle=\color{green!40!black!100},
C++
Python
558 keywordstyle=\bfseries\color{blue!50!black},
559 commentstyle=\slshape\color{black!60}}
560 \lstdefinestyle{lstStyleCplus}{%
561 style=lstStyleBase,
562 frame=l,
563 rulecolor=\color{blue},
564 language=C++}
565 \lstdefinestyle{lstStylePython}{%
566 style=lstStyleBase,
567 frame=l,
568 rulecolor=\color{cyan},
569 language=Python}
CquThesis 内置了两个代码环境,C++ 和 Python ,您可以参照代码在 cquthesis.sty 中定义自己的环境。Cplus 环境为历史兼容而保留定义。
570 \lstnewenvironment{C++}{\lstset{style=lstStyleCplus}}{}
571 \lstnewenvironment{Cplus}{\lstset{style=lstStyleCplus}}{}
572 \lstnewenvironment{Python}{\lstset{style=lstStylePython}}{}
这个计数器可以在很多环境下使用,例如表格中的序号,文章中行内的编号等等:
\xuhao 会自增并输出内容,\resetxuhao 或者\xuhao[⟨1⟩] 会将序号置为 1,后者会输出,\xuhaotype
用来设定序号风格,\xuhaoseparator 为序号之后的分隔符,可以用\renewcommand 来定义。
573 \newcounter{cquXuHao}
574 \newcounter{cquXuHaoType}
575 \setcounter{cquXuHaoType}{1}
576 \newcommand{\xuhaoseparator}{}
577 \newcommand{\xuhaotype}[1][1]{
578 \ifnum #1>6 \ClassError{cquthesis}%
579 {Available choices from 1-6.}{}%
580 \fi
581 \setcounter{cquXuHaoType}{#1}
582 }%\xuhaotype
583 \newcommand{\output@xuhao}{%
584 \ifcase\value{cquXuHaoType}
585 \or \arabic{cquXuHao} %1
586 \or \Alph{cquXuHao} %2
587 \or \alph{cquXuHao} %3
588 \or \Roman{cquXuHao} %4
589 \or \roman{cquXuHao} %5
590 \or \ifnum\value{cquXuHao}>9\ClassError{cquthesis}%
591 {Xuhao(rownum) of type-6 must be under 10.}{}%
592 \else\fnsymbol{cquXuHao}
593 \fi %6
5.8 盲审模式 5 实现细节
594 \fi
595 }%\output@xuhao
596 \newcommand{\xuhao}[1][0]{
597 \ifcase #1
598 \stepcounter{cquXuHao} %0
599 \output@xuhao\xuhaoseparator\xspace
600 \or \resetxuhao\stepcounter{cquXuHao} %1
601 \output@xuhao\xuhaoseparator\xspace
602 \fi
603 }%\xuhao
604 \newcommand{\resetxuhao}{\setcounter{cquXuHao}{0}}
考虑到不同用户的喜好,这里设定一组别名,同时处理\setxuhao 这个兼容性问题。
605 \let\rownum\xuhao
606 \let\resetrownum\resetxuhao
607 \let\rownumtype\xuhaotype
608 \let\setxuhao\xuhaotype
609 \let\rownumseparator\xuhaoseparator
5.8 盲审模式
\secretize 定义盲审模式工具宏\secretize:
610 \newcommand{\secretize}[1]{%
611 \ifcqu@blindtrail
612 {***}
613 \else
614 {#1}
615 \fi
616 }
secretizeEnv 定义盲审模式工具环境 secretizeEnv :
617 \newcommand{\cqu@@secretizeenv}[1]{\long\gdef\cqu@secretizeenv{#1}}
618 \newenvironment{secretizeEnv}{\Collect@Body\cqu@@secretizeenv}{%
619 \ifcqu@blindtrail
620 \relax
621 \else
622 \cqu@secretizeenv
623 \fi
624 }
5.9 封面绘制
\cqu@def@term 定义一个 Key–Definer:
625 \def\cqu@def@term #1{%
626 \define@key{cqu}{#1}{\csname #1\endcsname{##1}}
627 \expandafter\gdef\csname #1\endcsname##1{%
628 \expandafter\gdef\csname cqu@#1\endcsname{##1}}
629 \csname #1\endcsname{}}
下面定义一批会用在封面的变量:
论文的中英文题目(封面第二行)
630 \cqu@def@term{ctitle}
631 \cqu@def@term{etitle}
作者的信息(校徽下方)
632 \cqu@def@term{cauthor}
633 \cqu@def@term{eauthor}
634 \cqu@def@term{studentid}
635 \cqu@def@term{csupervisor}
636 \cqu@def@term{esupervisor}
637 \cqu@def@term{cassistsupervisor}
638 \cqu@def@term{cextrasupervisor}
639 \cqu@def@term{eassistsupervisor}
640 \cqu@def@term{cpsupervisor}
641 \cqu@def@term{epsupervisor}
642 \cqu@def@term{cmajor}
643 \cqu@def@term{emajor}
644 \cqu@def@term{cclass}
645 \cqu@def@term{edgree}
底部的学院名称和日期
646 \cqu@def@term{cdepartment}
647 \cqu@def@term{edepartment}
648 \cqu@def@term{mycdate}
649 \cqu@def@term{myedate}
650 ⟨/cls⟩
日期的中英文支持
651 ⟨*cfg⟩
652 \newcommand{\MONTH}{%
653 \ifcase\the\month
654 \or January% 1
655 \or February% 2
656 \or March% 3
657 \or April% 4
658 \or May% 5
659 \or June% 6
660 \or July% 7
661 \or August% 8
662 \or September% 9
663 \or October% 10
664 \or November% 11
665 \or December% 12
666 \fi}
667 \def\cdate{\zhdigits{\the\year} 年\zhnumber{\the\month} 月}
668 \def\edate{\MONTH{ }\the\year}
669 ⟨/cfg⟩
收集关键词并且做关键词分割
670 ⟨*cls⟩
671 \def\cqu@parse@keywords#1{
672 \define@key{cqu}{#1}{\csname #1\endcsname{##1}}
673 \expandafter\gdef\csname cqu@#1\endcsname{}
674 \expandafter\gdef\csname #1\endcsname##1{
675 \@for\reserved@a:=##1\do{
676 \expandafter\ifx\csname cqu@#1\endcsname\@empty\else
677 \expandafter\g@xxxxx@xxxro\csname cqu@#1\endcsname{%
678 \ignorespaces\csname cqu@#1@separator\endcsname}
679 \fi
680 \expandafter\expandafter\expandafter\g@xxxxx@xxxro%
681 \expandafter\csname cqu@#1\expandafter\endcsname\expandafter{\reserved@a}}}}
682 \cqu@parse@keywords{ckeywords}
683 \cqu@parse@keywords{ekeywords}
使用 kvoptions 提供 key=value 格式支持
684 \def\cqusetup{\kvsetkeys{cqu}}
\make@cover@CN 基本上的思路是能复用就复用,姓名那几行分为左右两个 varwidth:
685 \newcommand{\make@cover@CN}{%
686 \thispagestyle{style@empty}
687 \begin{center}
688 \rule{0mm}{15mm}
689 \sffamily\heiti
690 \ifcqu@bachelor
691 \zihao{-2}\cqu@thesistypenameCN
692 \\ \vspace{\stretch{1}}
693 \zihao{2}\cqu@ctitle
694 \\ \vspace{\stretch{2}}
695 \includegraphics[width=6cm]{CQUbadge.pdf}
696 \\ \vspace{\stretch{2}}
697 \else
698 \zihao{2}\cqu@ctitle
699 \\ \vspace{\stretch{1}}
700 \includegraphics[width=6cm]{CQUbadge.pdf}
701 \\ \vspace{\stretch{1}}
702 \zihao{-2}\cqu@thesistypenameCN
703 \ifcqu@master{}\\\cqu@mastertype\fi
704 \\ \vspace{\stretch{2}}
705 \fi
706 \ifcqu@bachelor
707 \zihao{3}
708 \begin{varwidth}{\textwidth}
709 \begin{CJKfilltwosides}{4.5\ccwd}
710 \cqu@studentCN\cqu@title@separatorCN\\
711 \cqu@studentnumCN\cqu@title@separatorCN\\
712 \cqu@supervisorCN\cqu@title@separatorCN\\
713 \ifdefstring{\cqu@cassistsupervisor}{}{\relax}{{\zihao{5}\begin{CJKfilltwosides}{66bp}\cqu@assistsuper
714 \ifdefstring{\cqu@cextrasupervisor}{}{\relax}{{\zihao{5}\begin{CJKfilltwosides}{66bp}\cqu@extrasupervi
715 \cqu@majorCN\cqu@title@separatorCN
716 \end{CJKfilltwosides}
717 \end{varwidth}
718 \else
719 \zihao{3}
720 \begin{varwidth}{\textwidth}
721 \begin{CJKfilltwosides}{4.5\ccwd}
722 \cqu@studentCN\cqu@title@separatorCN\\
723 \cqu@supervisorCN\cqu@title@separatorCN\\
724 \ifcqu@academic
725 \cqu@majorCN\cqu@title@separatorCN\\
726 \else
727 \cqu@psupervisorCN\cqu@title@separatorCN\\
728 \fi
729 \cqu@majorclassCN\cqu@title@separatorCN
730 \end{CJKfilltwosides}
731 \end{varwidth}
732 \fi
733 \hskip.5\ccwd
734 \zihao{3}
735 \begin{varwidth}{\textwidth}%
736 \mbox{\cqu@cauthor}\\
737 \ifcqu@bachelor\cqu@studentid\\\fi 738 \cqu@csupervisor\\ % 不要放在盒子里 739 \ifcqu@academic % 这里有点复杂
740 \ifcqu@bachelor
741 \ifdefstring{\cqu@cassistsupervisor}{}{\relax}{\cqu@cassistsupervisor\\}
742 \ifdefstring{\cqu@cextrasupervisor}{}{\relax}{\cqu@cextrasupervisor\\}
743 \fi
744 \mbox{\cqu@cmajor}
745 \ifcqu@bachelor\relax\else\\\cqu@cclass\fi
746 \else
747 \cqu@cpsupervisor\\
748 \cqu@cclass
749 \fi
750 \end{varwidth}
751 \\ \vspace{\stretch{2}}
752 \zihao{-2}\cqu@universitynameCN\cqu@cdepartment\\[1mm]
753 \zihao{3}\ifdefempty{\cqu@mycdate}{\cdate}{\cqu@mycdate}
754 \vspace{10mm}
755 \end{center}}
\make@cover@EN 英文封面由于不需要汉字两端对齐,相对来说排版难度低一些:
756 \newcommand{\make@cover@EN}{%
757 \cleardoublepage
758 \thispagestyle{style@empty}
759 \begin{center}
760 \rule{0mm}{15mm}
761 \sffamily
762 \ifcqu@bachelor
763 \zihao{-2}\cqu@thesistypenameEN
764 \\ \vspace{\stretch{2}}
765 \zihao{-1}\textbf{\cqu@etitle}
766 \\ \vspace{\stretch{1}}
767 \includegraphics[width=5cm]{CQUbadge.pdf}
768 \\ \vspace{\stretch{2}}
769 \zihao{3}\textbf{\cqu@studentEN\cqu@title@separatorEN\mbox{\cqu@eauthor}}\\
770 \cqu@supervisorEN\mbox{\cqu@esupervisor}\\
771 \ifdefstring{\cqu@eassistsupervisor}{}{\relax}{\cqu@assistsupervisorEN\cqu@title@separatorEN\mbox{\cqu
772 \cqu@majorEN\cqu@title@separatorEN\mbox{\cqu@emajor}
773 \else
774 \zihao{-1}\textbf{\cqu@etitle}
775 \\ \vspace{\stretch{2}}
776 \includegraphics[width=5cm]{CQUbadge.pdf}
777 \\ \vspace{\stretch{2}}
778 \zihao{3}\cqu@thesistypenameEN
779 \\[1mm]
780 \textbf{\cqu@workby}
781 \\[2mm]
782 \zihao{3}\mbox{\textbf{\cqu@eauthor}}
783 \\ \vspace{\stretch{1}}
784 \textbf{\cqu@supervisorEN}\textbf{\cqu@esupervisor}\\
785 \ifcqu@academic\relax\else\textbf{\cqu@psupervisorEN\cqu@title@separatorEN\cqu@epsupervisor}\\\fi
786 \textbf{\cqu@majorEN\cqu@title@separatorEN}\mbox{\textbf{\cqu@emajor}}
787 \fi
788 \\ \vspace{\stretch{2}}
789 \zihao{-2}\cqu@edepartment\\\cqu@universitynameEN\\[1mm]
790 \ifdefempty{\cqu@myedate}{\textbf{\edate}}{\textbf{\cqu@myedate}}
5.10 摘要 5 实现细节
791 \vspace{10mm}
792 \end{center}}
\makecover 定义一个总体调用的\makecover,在画封面的同时把 PDF 属性也做了:
793 \def\makecover{%
794 \hypersetup{%
795 pdftitle = {\cqu@ctitle},
796 pdfauthor = {\cqu@cauthor},
797 pdfsubject = {\cqu@thesistypenameCN},
798 pdfkeywords = {\cqu@ckeywords},
799 pdfcreator = {CQUThesis--v\version, a LaTeX template.}
800 }
801 \phantomsection
802 \pdfbookmark[-1]{\cqu@ctitle}{ctitle}
803 \make@cover@CN
804 \make@cover@EN
805 }%makecover
5.10 摘要
论文的中英文摘要
806 \newcommand{\cqu@@cabstract}[1]{\long\gdef\cqu@cabstract{#1}}
807 \newenvironment{cabstract}{\Collect@Body\cqu@@cabstract}{}
808 \newcommand{\cqu@@eabstract}[1]{\long\gdef\cqu@eabstract{#1}}
809 \newenvironment{eabstract}{\Collect@Body\cqu@@eabstract}{}
\makeabstract 生成摘要的命令
810 \def\makeabstract{%
811 \cleardoublepage
812 \normalsize
813 \cqu@makeabstract
814 }%makeabstract
815 \newcommand{\cqu@makeabstract}{%
816 \clearpage
817 \chapter[\cqu@cabstract@tocname]{\cqu@cabstract@name}
818 \pagestyle{style@normal}
819 \cqu@fixhead
820 \pagenumbering{Roman}
821 \cqu@cabstract
822 \vskip12bp
823 \cqu@put@kw{\heiti\cqu@ckw@title\cqu@title@separatorCN}{\cqu@ckeywords}
824 \if@twosideprint\ifcqu@openany\ifcqu@abstractopenright\cqu@addblankpage\fi\fi\fi
825 \chapter[\cqu@eabstract@tocname]{\sffamily\textbf{\cqu@eabstract@name}}
826 \cqu@fixhead
827 \cqu@eabstract
828 \vskip12bp
829 \cqu@put@kw{\textbf{\cqu@ekw@title\cqu@title@separatorEN}}{\cqu@ekeywords}
830 }
排版关键词:
831 \newbox\cqu@kw
832 \newcommand{\cqu@put@kw}[2]{%
833 \begingroup
834 \setbox\cqu@kw=\hbox{#1}
835 \noindent\hangindent\wd\cqu@kw\hangafter1
836 \box\cqu@kw#2\par
837 \endgroup}
5.11 独创👉明和授权书
\cquauthpage 绘制独创性声明和授权书页面
838 \NewDocumentCommand{\cqu@makeauth}{o}{%
839 \clearpage
840 \thispagestyle{style@empty}
841 \IfNoValueTF{#1}{%
842 \rule{0mm}{5mm}
843 \begin{center}
844 \zihao{3}
845 \begin{CJKfilltwosides}{6\ccwd}
846 \heiti{}\cqu@innotitle
847 \end{CJKfilltwosides}
848 \end{center}
849 \vspace{2mm}
850 \zihao{-4}
851 \par\cqu@innobody
852 \\[5mm]
853 \par\cqu@innosignature\hfill\cqu@signdate
854 \vspace{15mm}
855 \begin{center}
856 \zihao{3}\heiti
857 \cqu@authtitle
858 \end{center}
859 \vspace{2mm}
860 \zihao{-4}
861 \par\cqu@authbody
862 \\[15mm]
863 \begin{minipage}{\textwidth}
864 \begin{minipage}{15\ccwd}
865 \cqu@authsignaturestu\\[10mm]
866 \cqu@signdate
867 \end{minipage}
868 \hfill
869 \begin{minipage}{15\ccwd}
870 \cqu@authsignaturesup\\[10mm]
871 \cqu@signdate
872 \end{minipage}
873 \end{minipage}
874 }{
875 \includepdf{#1}
876 }
877 }%\cqu@makeauth
878 \let\cquauthpage\cqu@makeauth
879 ⟨/cls⟩
定义封面用到的文字常量
880 ⟨*cfg⟩
881 \def\cqu@ckeywords@separator{,}
882 \def\cqu@ekeywords@separator{, }
883 \def\cqu@title@separatorCN{:}
884 \def\cqu@title@separatorEN{:~}
885 \def\cqu@cabstract@tocname{中文摘要}
886 \def\cqu@eabstract@tocname{英文摘要}
887 \def\cqu@cabstract@name{摘\hskip\ccwd{} 要}
888 \def\cqu@eabstract@name{ABSTRACT}
889 \def\cqu@ckw@title{关键词}
890 \def\cqu@ekw@title{Key words}
891 \def\cqu@workby{by}
892 \ifcqu@bachelor
893 \def\cqu@thesistypenameCN{重庆大学本科学生毕业设计(论文)}
894 \def\cqu@thesistypenameEN{Graduation Design(Thesis) of Chongqing University}
895 \def\cqu@studentCN{学生}
896 \def\cqu@studentEN{Undergraduate}
897 \def\cqu@studentnumCN{学号}
898 \def\cqu@supervisorCN{指导教师}
899 \def\cqu@supervisorEN{Supervised by{ }}
900 \def\cqu@assistsupervisorCN{助理指导教师}
901 \def\cqu@extrasupervisorCN{校外指导教师}
902 \def\cqu@assistsupervisorEN{Assistant Supervisor}
903 \def\cqu@majorCN{专业}
904 \def\cqu@majorEN{Major}
905 \def\cqu@universitynameCN{重庆大学}
906 \def\cqu@universitynameEN{Chongqing University}
907 \else
908 \ifcqu@master
909 \def\cqu@thesistypenameCN{重庆大学硕士学位论文}
910 \def\cqu@thesistypenameEN{A Thesis Submitted to Chongqing University\\%
911 in Partial Fulfillment of the Requirement for%
912 \ifcqu@academic{ }the\fi\\\cqu@edgree}
913 \def\cqu@studentCN{学生姓名}
914 \def\cqu@supervisorCN{指导教师}
915 \def\cqu@supervisorEN{Supervised by{ }}
916 \def\cqu@psupervisorCN{兼职导师}
917 \def\cqu@psupervisorEN{Pluralistic~Supervisor}
918 \def\cqu@majorCN{专业}
919 \def\cqu@majorEN{Specialty}
920 \ifcqu@academic
921 \def\cqu@mastertype{(学术学位)}
922 \def\cqu@majorclassCN{学科门类}
923 \else
924 \def\cqu@mastertype{(专业学位)}
925 \def\cqu@majorclassCN{学位类型}
926 \fi
927 \def\cqu@universitynameCN{重庆大学}
928 \def\cqu@universitynameEN{Chongqing University, Chongqing, China}
929 \else
930 \ifcqu@doctor
931 \def\cqu@thesistypenameCN{重庆大学博士学位论文}
932 \def\cqu@thesistypenameEN{A Thesis Submitted to Chongqing University\\%
933 in Partial Fulfillment of the Requirement for the\\\cqu@edgree}
934 \def\cqu@studentCN{学生姓名}
935 \def\cqu@studentEN{Ph.D. Candidate}
936 \def\cqu@supervisorCN{指导教师}
937 \def\cqu@supervisorEN{Supervised by{ }}
938 \def\cqu@majorCN{专业}
939 \def\cqu@majorclassCN{学科门类}
940 \def\cqu@majorEN{Specialty}
941 \def\cqu@universitynameCN{重庆大学}
942 \def\cqu@universitynameEN{Chongqing University}
943 \else
944 \ClassWarning{cquthesis}%
945 {Specified thesis type is obligatory: \MessageBreak
946 type=[bachelor|master|doctor](How did you bypass the type check?)}{}
947 \fi
948 \fi
949 \fi
950 \def\cqu@innotitle{独创性👉明}
951 \def\cqu@innobody{%
952 本人👉明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特
5.12 主要符号对照表 5 实现细节
别标注和致谢的地方外,论文中不包含其他人已经发表或撰写中的研究成果,也不包含为获得重庆大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本文所做的任何贡献均已在论文中做了明确的说明并表示谢意。}
953 \def\cqu@innosignature{学位论文作者签名:}
954 \def\cqu@authtitle{学位论文版权使用授权书}
955 \def\cqu@authcheckpart{%
956 保\hskip\ccwd{} 密 (\hskip2\ccwd),在\rule{3\ccwd}{0.15mm} 年解密后适用本授权书。\\
957 不保密 (\hskip2\ccwd)。}
958 \def\cqu@authbody{
959 本学位论文作者完全了解重庆大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权重庆大学可以把学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
960 \\[\baselineskip]
961 \indent\parbox{7\ccwd}{本学位论文属于}\hskip\ccwd\parbox{.6\textwidth}{\cqu@authcheckpart}
962 \\[\baselineskip]
963 \indent(请只在上述一个括号内打“\ding{51}”)}
964 \def\cqu@authsignaturestu{学位论文作者签名:}
965 \def\cqu@authsignaturesup{导师签名:}
966 \def\cqu@signdate{签字日期:\hskip3\ccwd{} 年\hskip2\ccwd{} 月\hskip2\ccwd{} 日}
967 ⟨/cfg⟩
5.12 主要符号对照表
denotation 定义主要符号对照表
968 ⟨*cls⟩
969 \newlist{cqu@denotation}{description}{1}
970 \setlist[cqu@denotation]{%
971 nosep,
972 font = \normalfont,
973 align = left,
974 leftmargin = !,
975 labelindent = 0mm, 976 labelwidth = 25mm, 977 labelsep* = 5mm, 978 itemindent = 0mm, 979 }%\setlist
980 \NewDocumentEnvironment{denotation}{O{20mm} O{30mm}}{%
981 \chapter*{\cqu@denotation@name}
982 \chaptermark{\cqu@denotation@name}\cqu@fixhead
983 \zihao{-4}\begin{cqu@denotation}[labelindent = #1,labelwidth=#2,]
984 }{
985 \end{cqu@denotation}}%\denotation
5.13 目录
目录深度和计数器深度,减小章节之间的垂直间隔:
986 \setcounter{tocdepth}{2}
987 \setcounter{secnumdepth}{3}
988 \setlength{\cftbeforechapskip}{1mm}
调整 subsection 的目录缩进
989 \ifcqu@liberalformat
990 \cftsetindents{chapter}{0em}{1.5em}
991 \cftsetindents{section}{1.9em}{0.9em}
992 \cftsetindents{subsection}{4.0em}{1.5em}
993 \else
994 \cftsetindents{chapter}{0em}{1.5em}
995 \cftsetindents{section}{1.5em}{2.2em}
996 \cftsetindents{subsection}{3.7em}{2.9em}
997 \fi
目录中的不同级别采用不同的字号和字体,这是按照学校 word 样例的实现,但是蹊跷的是,样例里的这些做法在官方文件里却没有体现,所以这里列为可选项,适用于三级标题很多的情况: 998 \ifcqu@seriftoc
999 \renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}}
1000 \renewcommand{\cftchapfont}{\zihao{4}\sffamily\heiti}
1001 \renewcommand{\cftsecfont}{\zihao{5}\sffamily\heiti}
1002 \renewcommand{\cftsubsecfont}{\zihao{5}}
1003 \fi
\listofequationsEN 支持生成双语对照索引,分三个情况:
1004 \newlistof[chapter]{equations}{equ}{\listofequationsname}
1005 \newlistof[chapter]{equationsEN}{equEN}{\listofequationsnameEN}
1006 \DeclareDocumentCommand{\listeq}{ m o }{%
1007 \addcontentsline{equ}{equations}{\protect\numberline{\theequation}#1}\par
1008 \IfNoValueTF{#2}{%
1009 \relax
1010 }{%
1011 \if@bicombined
1012 \addcontentsline{equ}{equations}{\protect\numberline{\theequation}#2}\par
1013 \else
1014 \if@biapart
1015 \addcontentsline{equEN}{equationsEN}{\protect\numberline{\theequation}#2}\par
1016 \fi
1017 \fi
1018 }
1019 }%listeq
1020 \setlength{\cftequationsnumwidth}{2.5em}
1021 \setlength{\cftequationsENnumwidth}{2.5em}
1022 \let\eqlist\listeq
正确输出页眉页脚
1023 \tocloftpagestyle{style@normal}
1024 ⟨/cls⟩
决定论文页眉名称这个变量不能含有格式
1025 ⟨cfg⟩\let\cqu@thesisname\cqu@thesistypenameCN
目录和索引标题居中,包含\fixhead
1026 ⟨*cls⟩
1027 \renewcommand{\cfttoctitlefont}{%
1028 \phantomsection\pdfbookmark[0]{\cqu@tocnameinbkmark}{toc}\cqu@fixhead\hfill\bfseries\sffamily\heiti\zi
1029 \renewcommand{\cftloftitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}}
1030 \renewcommand{\cftlottitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}}
1031 \renewcommand{\cftequtitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}}
1032 \renewcommand{\cftequENtitlefont}{\cqu@fixhead\hfill\sffamily\heiti\zihao{3}}
1033 \renewcommand{\cftaftertoctitle}{\hfill}
1034 \renewcommand{\cftafterloftitle}{\hfill}
1035 \renewcommand{\cftafterlottitle}{\hfill}
1036 \renewcommand{\cftafterequtitle}{\hfill}
1037 \renewcommand{\cftafterequENtitle}{\hfill}
1038 \renewcommand{\cftdot}{⋯}
1039 \renewcommand{\cftdotsep}{0}
1040 \renewcommand{\cftchapdotsep}{\cftdotsep}
1041 \renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}}
1042 \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}
重写使用 tocloft 宏包情况下的目录和索引生成,每次生成新开一页
1043 % \changes{v1.20}{2017/05/30}{除非 openany 选项打开,否则目录和索引现在会在双页模式进行右开。
}
1044 \ifcqu@continuoustoc\relax\else
1045 \renewcommand{\@cfttocstart}{\cleardoublepage}
1046 \renewcommand{\@cfttocfinish}{\cleardoublepage}
1047 \fi
\chapterstar 定义自己的章节命令\chapterstar,不编号,有目录有页眉 (这个命令暂时没用上,还待观察)
1048 \newcommand{\chapterstar}[1]{%
1049 \chapter*{#1}%
1050 \phantomsection
1051 \@mkboth{#1}{}
1052 \addcontentsline{toc}{chapter}{#1}}
5.14 参考文献 5 实现细节
5.14 参考文献
定义\inlinecite 和\onlinecite
1053 \bibpunct{[}{]}{,}{s}{}{,}
1054 \renewcommand\NAT@citesuper[3]{\ifNAT@swa%
1055 \unskip\kern\p@\textsuperscript{\NAT@@open #1\NAT@@close}%
1056 \if*#3*\else\ (#3)\fi\else #1\fi\endgroup}
1057 \DeclareRobustCommand\inlinecite{\@inlinecite}
1058 \def\@inlinecite#1{\begingroup\let\@cite\NAT@citenum\citep{#1}\endgroup}
1059 \let\onlinecite\inlinecite
将参考文献加入目录和 pdf 书签中
1060 \pretocmd{\bibliography}{%
1061 \clearpage\phantomsection\addcontentsline{toc}{chapter}{\cqu@bib@name}}{}{}
参考文献使用五号字,同时优化参考文献占用的空间
1062 \AtBeginDocument{%
1063 \pretocmd{\bibliography}{\begingroup\zihao{5}}{}{}
1064 \apptocmd{\bibliography}{\endgroup}{}{}
1065 }%AtBeginDocument
1066 \renewcommand\@biblabel[1]{\zihao{5}[#1]}
1067 \renewenvironment{thebibliography}[1]
1068 {\chapter*{\cqu@bib@name
1069 \@mkboth{\cqu@bib@name}{}}%
1070 \list{\@biblabel{\@arabic\c@enumiv}}%
1071 {\settowidth\labelwidth{\@biblabel{#1}}%
1072 \leftmargin\labelwidth
1073 \advance\leftmargin\labelsep
1074 \setlength{\parsep}{1mm}
1075 \setlength{\labelsep}{0.5em}
1076 \setlength{\itemsep}{0.05pc}
1077 \setlength{\listparindent}{0in}
1078 \setlength{\itemindent}{0in}
1079 \setlength{\rightmargin}{0in}
1080 \@openbib@code
1081 \usecounter{enumiv}%
1082 \let\p@enumiv\@empty
1083 \renewcommand\theenumiv{\@arabic\c@enumiv}}%
1084 \sloppy
1085 \clubpenalty4000
1086 \@clubpenalty\clubpenalty
1087 \widowpenalty4000%
1088 \sfcode`\.\@m
1089 }{%
1090 \def\@noitemerr
1091 {\@latex@warning{Empty `thebibliography' environment}}%
1092 \endlist \vskip.2in}
5.15 载入配置文件 6 更新记录
5.15 载入配置文件
配置文件用于降低主文件的压力:
1093 \AtEndOfClass{\input{cquthesis.cfg}}
1094 ⟨/cls⟩
6 更新记录
v0.0.1
General: 模板开始编写。 1
v0.6.9
General: 主体功能完工,迁移模板到生产环境
中继续开发。 1
v0.7.5
General: 生产环境建立,模板完成测试。 1
v1.00
进,Beta 测试落下帷幕。 1
参考文献现在能正确地显示为五号字了。 48
拆分了 cquthesis.xxx x包,将其大部分内容并入 cquthesis.cls 和
v0.8.1
General: 重绘了论文封面,增加了专业硕士选
项。 1
v0.8.5
General: 完成了示例文件。 1
v0.8.7
General: 上线前最后一批修正。 1
v0.8.9
\@circlenum: 修正了\@circlenum 无法在嵌套在 minipage 中的表格中正常运作的问题,问题原因没有具体查清,但是使用 footmisc 另外造轮子过了。清华的模板也
有这个问题,已提交 Issue 协助修正。 29
General: 模板登陆 Github,开始参与 2016 年 重庆大学毕业设计工作。 1
v0.9.0
\backmatter: 修正了不该编号的致谢页眉。 24
General: 把目录加入到了 PDF 书签中。 19
把目录加到了 PDF 书签中。 47
v0.9.4
General: 用户文档撰写完成,CQUThesis 提交 至 CTAN 审核。 1
v0.9.41
General: 修正了 tgcursor 使\textbf 失效的
v0.9.7
\make@cover@CN: 使用 varwidth 代替了 pbox
。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
General: 参与了 2016 年重庆大学毕业设计工作后,模板根据实际测试情况作了一番改
\make@cover@CN: 现在,标题中的英文和中文
统一使用无衬线字体。 38
General: 最后一些小修补,今年的毕设工作完全结束了。目前本科方面的格式审查没有问
题,研究生和博士生哪边还没有数据。 1
版本号格式从 vX.Y.Z 改为 vX.YZ,更xx 一些。 1
lstStyleBase: 将代码环境的基础字号改为 了\footnotesize,原先的\scriptsize 实
在太小了。 34
v1.10
General: 增加了 CQUThesis 的开发工具 Makefile 和 makewin.bat,现在它对 LATEX中高阶用户和开发者更加友好,文档也相应
更新了。 1
v1.12
General: 得益于 caption 和 bicaption 和 newfloat 三个宏包,CquThesis 支持双语 题注了。 22
现在,目录、图录、表录、公式表的英文字
体也采用了无衬线字。 47
题注的字体设置对中英文都进行了适配。 32
v1.14
\make@cover@CN: 本科封面新增“助理指导教师”“校外指导教师”的字段,自动判定是
否有输入,有则显示,无则不显示。 38
\make@cover@EN: “助理指导教师”“校外指导 教师”的英文字段也相应添加,同样自动判 定是否有输入来决定是否显示。 40
General: 改进了 makewin.bat ,默认的 thesis
v1.16
选项加入了自动判定,如果 dtx 没有解包, 程序会自动解包。这也就是说,新手可以在 几乎所有情况下放心地通过双击 makewin.bat 来完成编译了。 1
和\secretize 宏以及 secretizeEnv 环境 构成。 1
新增选项 blankleft,可选目录和章节右开时 空白的左页是否让页眉页脚空白。 1
现在,目录中的章节层级也有了尾随圆点,
C++: 出于xx的考虑,Cplus 环境现在已经更名为 C++ 环境。Cplus 环境为历史兼容而保留定义。修改了语言环境定义中的一个错误,现在 C++ 和 Python 环境能够正确地
进行代码上色了。 35
\make@cover@EN: 修正英文封面的指导教师的
表达。另外,让“by”加粗了。 40
General: 优化浮动对象与文字的间距。 32
去除了三级和四级标题的额外垂直间距。 27
v1.30
并且,圆点的间距更近了。 47
现在,题注有多行时,最后一行会进行居中
处理。 32
调整了几个可选项的默认值,现在,
openright 默认开启。 1
页眉页脚高度以及垂直间距向 Word 版本靠
拢。 24
正文中的题注的名称和序号不再加粗,同时
v1.20
General: 再次改进了 makewin.bat ,现在, Windows 用户以管理员身份运行 makewin.bat 时不再会遭遇路径错误了。此 外,makewin.bat 有中英文两个版本了。. . . 1
新功能:盲审模式,由开关 blindtrail
zepinglee/gbt7714-bibtex-style更新了
v1.40
v1.50
\bicaption: 修改了双语图注的声明顺序,以
适应新版\bicaption 的变更。 33
7 代码索引
\, . . . . . . . . . . . . . . . . . . . 415
\. . . . . . . . . . . . . . . . . . . . 1088
\@afterindentfalse 256
\@autoprintfalse 48
\@autoprinttrue 85
\@backmattertrue 185
\@cfttocfinish 1046
\@cfttocstart 1045
\@cite 1058
\@clubpenalty 1086
\@for 675
\@fpbot 456
\@fpsep 455
\@fptop 454
\@height 354
\@latex@warning 1091
\@noitemerr 1090
\@onesideprintfalse 48
\@openbib@code 1080
\@tabular 481
\@thefnmark 359
\@twosideprintfalse 48
\@twosideprinttrue . . 202, 204
\@width 354
\0 . . . . . . . . . . . . . . . . . . . 415
\␣ . . . . . . . . . . . . . . . 415, 1056
abstractopenright (option) 10
\advance 1073
\afterpage 167
\allowdisplaybreaks 387
\AMSautorefname 445
amsmath (package) 22
\appendixautorefname 436
array (package) 17
\AtBeginEnvironment 516
\AtEndEnvironment 517
\AtEndOfClass 1093
\autoref 431
\bibliography . . . . . . . . . . .
\bibliographystyle 15
\bibpunct 1053
bicaption (package) 49
\bigcell 520
blankleft (option) 10
blindtrail (option) 11
book.cls (file) 23
booktabs (package) 17
\bottomfraction 459
\box 836
C++ (environment) 570
cabstract (environment) 13
\captionsetup 485, 486,
\cassistsupervisor 13
\cauthor 12
\ce 414
\cec 415
\cesplit 415
\cextrasupervisor 13
\cftafterequENtitle 1037
\cftafterequtitle 1036
\cftafterloftitle 1034
\cftafterlottitle 1035
\cftaftertoctitle 1033
\cftbeforechapskip 988
\cftchapfont 1000
\cftdot 1038
\cftdotsep 999, 1039, 1040, 1042
\cftequationsENnumwidth . 1021
\cftequationsnumwidth 1020
\cftequENtitlefont 1032
\cftequtitlefont 1031
\cftloftitlefont 1029
\cftlottitlefont 1030
\cftsecfont 1001
\cftsecleader 1042
\cftsetindents . . . . . . . . . .
\cftsubsecfont 1002
\cfttoctitlefont 1027
\changes 1043
\chapter 817, 825, 981, 1049, 1068
\chapterautorefname 439
\chapterstar 1048
\checkoddpage 242
\citep 1058
CJK (package) 11
\CJK@null 150
\CJKnullspace 150
\ckeywords 13
\ClassError 73, 321,
\ClassWarning . . . . . . . . . . .
\cleardoublepage . . . . . . . . | \cqu@cpsupervisor . . . . . . | |
. . . . . . 162, 172, 179, | \cqu@csupervisor . . . . . . . | |
\clearpage . . . . . . . . . . . . .
\cmajor 13
\color 556, 557, 558, 559, 563, 568
\colsep 520
contents/cover.tex (file) 12
continuoustoc (option) 10
courier (package) 49
\cpsupervisor 12
\cqu@assistsupervisorCN . .
. . . . . . . . . . . . . 713, 900
\cqu@assistsupervisorEN . .
. . . . . . . . . . . . . 771, 902
\cqu@authsignaturestu 865, 964
\cqu@authsignaturesup 870, 965
\cqu@bachelorfalse 34
\cqu@bib@name . . . . . . . . . . .
\cqu@cabstract@name . 817, 887
\cqu@cabstract@tocname 817, 885
\cqu@cassistsupervisor 713, 741
\cqu@cdepartment 752
\cqu@cextrasupervisor 714, 742
\cqu@ckeywords@separator 881
\cqu@cmajor 744
\cqu@def@term . . . . . . . . . . .
\cqu@denotation@name . . . .
. . . . . . . . . . 12, 981, 982
\cqu@doctorfalse 34
\cqu@eabstract@name . 825, 888
\cqu@eabstract@tocname 825, 886
\cqu@eassistsupervisor 771
\cqu@edepartment 789
\cqu@ekeywords 829
\cqu@ekeywords@separator 882
\cqu@epsupervisor 785
\cqu@extrasupervisorCN 714, 901
\cqu@majorclassCN . . . . . . .
. . . . . . 729, 922, 925, 939
\cqu@majorCN . . . . . . . . . . .
\cqu@majorEN . . . . . . . . . . .
\cqu@masterfalse 34
\cqu@mastertype . 703, 921, 924
\cqu@mycdate 753
\cqu@myedate 790
\cqu@parse@keywords . . . . .
. . . . . . . . . . 671, 682, 683
\cqu@signdate 853, 866, 871, 966
\cqu@studentCN . . . . . . . . . .
\cqu@studentid 737
\cqu@supervisorCN . . . . . . .
\cqu@supervisorEN . . . . . . .
\cqu@tabular 481
\cqu@tagform@ 388
\cqu@thesisname 230, 233, 1025
\cqu@thesistypenameCN . . . .
. . . . . . . . . . 691, 702, 797, 893, 909, 931, 1025
\cqu@thesistypenameEN . . . .
\cqu@title@separatorCN . . .
. . . . . . . . . . 710, 711, 712, 713, 714, 715, 722,
\cqu@universitynameCN . . . .
. . . . . . 752, 905, 927, 941
\cqu@universitynameEN . . . .
. . . . . . 789, 906, 928, 942
\cquthesis 7
cquthesis.sty (file) . . . 35, 49
\csupervisor 12
\ctexset 175, 182, 187, 259, 269
\CTEXthechapter 252
\CTEXthesection . . . . . . . . .
. . . . . . 190, 464, 470, 476
\ctitle 12
\CurrentOption 61
\DeclareBoolOption 37, 38,
\DeclareCaptionFont 484
\DeclareCaptionLabelFormat
. . . . . . . . . . . . . . . . . 482
\DeclareCaptionLabelSeparator
. . . . . . . . . . . . . . . . . 483
\DeclareCaptionOption 492, 496
\DeclareComplementaryOption
. . . . . . . . . . . . . . . 39, 41
\DeclareDefaultOption 61
\DeclareDocumentCommand . 1006
\DeclareFloatingEnvironment
. . . . . . . . . . . . . 502, 503
\DeclareRobustCommand 1057
\defaultfontfeatures 151
\define@key 35, 49, 58, 626, 672
\DefineFNsymbols 364
\denotation 985
denotation (environment) 14, 968
diagbox (package) 17
\ding 352, 365,
\do 675
draft (option) 11
eabstract (environment) 13
\eassistsupervisor 13
\eauthor 12
cquthesis.cfg (file) | |
cquthesis.cls (file) | |
cquthesis.cwl (file) | |
cquthesis.dtx (file) | |
cquthesis.ins (file) |
\ekeywords 13
\emajor 13
\endlist 1092
\ensuremath 394
environments:
C++ 570
cabstract 13
eabstract 13
lstStyleBase 527
Python 570
secretizeEnv 617
\epsupervisor 12
\eqref 389
\equationautorefname 437
\esupervisor 12
\etitle 12
\fancyhf 217
\fancypagestyle . 216, 220, 227
\fangsong 11
\figureautorefname 433
file:
book.cls 23
contents/cover.tex 12
main.tex . . . . . . . . . . . .
. . . . 7, 7, 7, 10, 13, 15, 24
Makefile 6
\floatpagefraction 460
\floatsep 451
footmisc (package) 49
\footnotemargin 357
\footnoterule 354
\hangafter 835
\hangindent 835
\hbox 834
\headcell 520
\hfill 713, 714,
\Hfootnoteautorefname 444
\hrule 354
\hspace 483
hyperref (package) 23
\hypersetup . 139, 155, 158, 794
\hyphenation 6
\if@backmatter 169, 463, 469, 475
\if@biapart . 56, 91, 508, 1014
\if@bicombined 55, 90, 504, 1011
\if@twosideprint . . . . . . . .
\ifcqu@abstractopenright 824
\ifcqu@academic . . . . . . . . .
\ifcqu@bachelor . . . . . . . . .
\ifcqu@continuoustoc 1044
\ifcqu@liberalformat . . . .
\ifcqu@master . 32, 71, 703, 908
\ifcqu@seriftoc 998
\ifdefstring . . . . . . . . . . .
\ifNAT@swa 1054
\ifoddpage 243
\ignorespaces 678
\include 14
\includegraphics . . . . . . . .
. . . . . . 695, 700, 767, 776
\includepdf 875
\input 1093
\intextsep 452
\Itemautorefname 438
\itemindent 1078
\itemsep 1076
\kaishu 11
kvoptions (package) 12
liberalformat (option) 10
\list 1070
listings (package) 34
\listofequations 14
\listofequationsEN . 513, 1004
\listofequationsnameEN 18, 1005
\listoffigures 14
\listoffiguresEN 502
\listoffiguresnameEN . 19, 502
\listoftables 14
\listoftablesEN 502
\listparindent 1077
\lstdefinestyle . 528, 560, 565
\lstnewenvironment 570, 571, 572
lstStyleBase (environment) 527
\LTpost 524
\LTpre 523
main.tex (file) . . . . . . . . . . .
. . . . 7, 7, 7, 10, 13, 15, 24
Makefile (file) 6
makewin.bat (file) . . . . . . . .
. . . . . . . 5, 49, 50, 50, 50
metalogo (package) 22
\multicolumn 521
multirow (package) 17
\mycdate 13
\myedate 13
\NAT@@close 1055
\NAT@@open 1055
\NAT@citenum 1058
\NAT@citesuper 1054
\NeedsTeXFormat 1
\newbox 831
\NewDocumentCommand 838
newfloat (package) 49
\newlist 969
\newtheorem 395, 399,
\null 168
\numexpr 352
openany (option) 10
openright (option) 10
option:
abstractopenright 10
blankleft 10
blindtrail 11
continuoustoc 10
draft 11
liberalformat 10
openany 10
openright 10
seriftoc 10
\output@xuhao 583, 595, 599, 601
\p@enumiv 1082
package:
amsmath 22
array 17
bicaption 49
booktabs 17
tgcursor 49
xcolor 22
xeCJK 11
\pageautorefname 447
\pagestyle . . . . . . . . . . . . .
\paragraphautorefname 443
\parbox 961
\parenthesesthis . 23, 287, 308
\parsep 1074
\partautorefname 435
\PassOptionsToClass 61
\PassOptionsToPackage 64
\ProcessKeyvalOptions 63
\ProvidesClass 2
\ProvidesFile 3
Python (environment) 570
\raggedbottom 130
\regtotcounter 199
\renewenvironment 1067
CJK . . . . . . . . . . . . . . . . . | |
courier . . . . . . . . . . . . . | |
diagbox . . . . . . . . . . . . . | |
footmisc . . . . . . . . . . . . | |
hyperref . . . . . . . . . . . . | |
kvoptions . . . . . . . . . . . | |
listings . . . . . . . . . . . . | |
metalogo . . . . . . . . . . . . | |
multirow . . . . . . . . . . . . | |
newfloat . . . . . . . . . . . . | |
\rightmargin 1079
\Roman 588
\roman 589
\secretize 610
secretizeEnv (environment) 617
\sectionautorefname 440
seriftoc (option) 10
\setbox 834
\setfnsymbol 371
\settowidth 1071
\SetupKeyvalOptions 27
\setxuhao 608
\shortfigurenameEN 16, 498, 502
\shorttablenameEN 14, 497, 503
\sloppy 1084
\subsectionautorefname 441
\thesubsection . . . . . . . . . | \zhdigits 667 | ||
T | \thesubtable . . . . . . . . . . | \zhnumber 667 | |
\thetable . . . . . . . . . . . . . | \zihao 11, 222, | ||
\tableautorefname 434 | \thispagestyle 244, 686, 758, 840 | ||
\tocloftpagestyle 1023 | |||
\tableofcontents 14 | \topfraction 458 | ||
\tabularxcolumn 519 | U | ||
\tagform@ 388 | \Unicode 150 | ||
\textfloatsep 453 | \unskip 1055 | ||
\textfraction 457 | \upmu 420 | ||
\textmu 421 | \urlstyle 148 | ||
\textsuperscript 1055 | \usecounter 1081 |
\subsubsectionautorefname 442
\textup 389
\textwidth . . . . . . . . . . . . .
tgcursor (package) 49
\thechapter . 277, 466, 472, 478
\theenumiv 1083
\theequation . . . . . . . . . . .
\thefigure 461
\thefootnote 373
\theoremautorefname 446
\theorembodyfont 390
\theoremheaderfont 391
\theoremseparator 398
\theoremstyle 396
\thesection 287
\thesubfigure 490
\wd 835
\widowpenalty 1087
xcolor (package) 22
xeCJK (package) 11