texlive[64009] Master: hfutthesis (30jul22)

commits+karl at tug.org commits+karl at tug.org
Sat Jul 30 22:41:51 CEST 2022


Revision: 64009
          http://tug.org/svn/texlive?view=revision&revision=64009
Author:   karl
Date:     2022-07-30 22:41:51 +0200 (Sat, 30 Jul 2022)
Log Message:
-----------
hfutthesis (30jul22)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/README.md
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-bib/
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-bib/hfut.bib
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/abstract.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/acknowledgements.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/citations.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/complementary.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/expertspage.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/floats.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/intro.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/math.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/notation.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/publications.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-badge.pdf
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-name.pdf
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutsetup.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.pdf
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.tex
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.pdf
    trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.tex
    trunk/Master/texmf-dist/tex/xelatex/hfutthesis/
    trunk/Master/texmf-dist/tex/xelatex/hfutthesis/hfutthesis.cls
    trunk/Master/tlpkg/tlpsrc/hfutthesis.tlpsrc

Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/README.md	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,70 @@
+The `hfutthesis` Class
+=====================
+
+*LaTeX thesis template for Hefei University of Technology, v1.0.4*
+
+Overview
+--------
+
+[![GitHub release](https://img.shields.io/github/release/HFUTTUG/HFUT_Thesis/all.svg)](https://github.com/HFUTTUG/HFUT_Thesis/releases/latest)
+[![Overleaf](https://img.shields.io/badge/overleaf-hfutthesis-brightgreen.svg)](https://www.overleaf.com/latex/templates/hfut-thesis/ythwdqdkpvkp)
+[![GitHub commits](https://img.shields.io/github/commits-since/HFUTTUG/HFUT_Thesis/latest.svg)](https://github.com/HFUTTUG/HFUT_Thesis/commits/master)
+![visitors](https://visitor-badge.glitch.me/badge?page_id=HFUTTUG.Thesis)
+
+
+This project is based on the thesis LaTeX template [HFUT_Thesis](https://github.com/HFUTTUG/HFUT_Thesis) of Hefei University of Technology compiled on the basis of [ustctug/ustcthesis](https://github.com/ustctug/ustcthesis), in accordance with the latest version of "[Hefei University of Technology Graduate Dissertation Writing Specifications](http://xwgl.hfut.edu.cn/2021/0419/c1975a253949/page.htm)" and "[Hefei University of Technology Undergraduate Graduation Project (Thesis) Work Implementation Rules](https://github.com/HFUTTUG/HFUT_Thesis/files/8790494/2022.1.pdf)" It is compatible with the latest version of TeX Live, MacTeX, MiKTeX distribution, and supports cross-platform use.
+
+The documentation can be found in
+[hfutthesis-doc.pdf](http://mirrors.ctan.org/macros/latex/contrib/hfutthesis/hfutthesis-doc.pdf).
+
+GitHub re­pos­i­tory: <https://github.com/HFUTTUG/HFUT_Thesis>.
+
+Notice:
+----
+
+1. The instruction document `hfutthesis-doc.pdf` is included in the release version, and users can also compile it by themselves; **should read carefully before using the template**.
+
+2. This template requires TeX Live, MacTeX, MiKTeX to be at least the 2017 release, and to be upgraded to the latest as much as possible. For installation and upgrade methods, see [Beginner's Guide](https://github.com/HFUTTUG/HFUT_Thesis/wiki/新手指南).
+
+3. **NOT SUPPORTED** [CTeX package](https://github.com/HFUTTUG/HFUT_Thesis/wiki/常见问题#1-模板支持用-ctex-套装编译吗).
+
+Usage
+-----
+- Compile the template usage documentation `hfutthesis-doc.pdf`:
+   ```
+   latexmk -xelatex hfutthesis-doc.tex
+   ```
+- Compile the paper `hfutthesis-example.pdf`:
+   ```
+   latexmk -xelatex hfutthesis-example.tex
+   ```
+- To clean up temporary files during the compilation of the paper, you can:
+   ```
+   latexmk -c
+   ```
+
+Contributing
+------------
+
+[Issues](https://github.com/HFUTTUG/HFUT_Thesis/issues) and
+[pull requests](https://github.com/HFUTTUG/HFUT_Thesis/pulls)
+are always welcome.
+
+License
+-------
+
+This work may be distributed and/or modified under the conditions of
+the [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+either version 1.3c of this license or (at your option) any later
+version.
+
+
+Last but not least
+--------
+
+- Thanks to [ustctug/ustcthesis](https://github.com/ustctug/ustcthesis).
+- Students who are interested in joining [@HFUTTUG](https://github.com/HFUTTUG) can send [Email](mailto:hfuttug at 163.com).
+
+-----
+
+Copyright (C) 2017–2020 by HFUTTUG <hfuttug at 163.com>.
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-bib/hfut.bib
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-bib/hfut.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-bib/hfut.bib	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,169 @@
+% hfut.bib
+% Encoding: UTF8
+
+ at article{knuth84,
+  author     = {Donald E. Knuth},
+  title      = {Literate Programming},
+  journal    = {The Computer Journal},
+  year       = {1984},
+  number     = {2},
+  volume     = {27},
+  pages      = {97--111},
+}
+
+ at book{knuth86a,
+  author     = {Donald E. Knuth},
+  title      = {The {\TeX}book},
+  volume     = {A},
+  publisher  = {Addison-Wesley},
+  address    = {Reading, MA, USA},
+  year       = {1986},
+  series     = {Computers and Typesetting},
+}
+
+
+ at book{tlc2,
+  author     = {Frank Mittelbach and Michel Goossens and Johannes
+                 Braams and David Carlisle},
+  title      = {The {\LaTeX} Companion},
+  publisher  = {Addison-Wesley},
+  address    = {Reading, MA, USA},
+  edition    = {2},
+  year       = {2004},
+}
+
+
+
+ at article{马建勋1997筒仓在地震作用下的计算理论,
+  title   = {筒仓在地震作用下的计算理论},
+  author  = {马建勋 and 梅占馨},
+  journal = {土木工程学报},
+  volume  = {30},
+  number  = {1},
+  pages   = {25--30},
+  year    = {1997}
+}
+
+ at article{abdel2006numerical,
+  title     = {A numerical investigation into the behavior of ground-supported concrete silos filled with saturated solids},
+  author    = {Abdel-Fattah, Mohamed T and Moore, Ian D and Abdel-Fattah, Tarek T},
+  journal   = {International Journal of Solids and Structures},
+  volume    = {43},
+  number    = {13},
+  pages     = {3723--3738},
+  year      = {2006},
+  publisher = {Elsevier}
+}
+
+
+ at article{nagai1999properties,
+  title     = {Properties of myofibrillar protein from Japanese stingfish ({\itshape{}Sebastes inermis}) dorsal muscle},
+  author    = {Nagai, Takeshi and Kurata, Masato and Nakamura, Takashi and Ito, Tatsumi and Fujiki, Kazuhiro and Nakao, Miki and Yano, Tomoki},
+  journal   = {Food Research International},
+  volume    = {32},
+  number    = {6},
+  pages     = {401--405},
+  year      = {1999},
+  publisher = {Elsevier}
+}
+
+ at book{姚伯英1990构筑物抗震,
+  title     = {构筑物抗震},
+  author    = {姚伯英 and 侯忠良},
+  year      = {1990},
+  publisher = {测绘出版社},
+  address   = {北京}
+}
+
+ at book{skolnik1990radar,
+  title     = {Radar Handbook},
+  author    = {Skolnik, Merrill I},
+  year      = {1990},
+  publisher = {McGraw-Hill},
+  address   = {New York}
+}
+
+ at inproceedings{汤明2006液态聚碳硅烷改性对固态聚碳硅烷纺丝和交联性能的影响,
+  title     = {液态聚碳硅烷改性对固态聚碳硅烷纺丝和交联性能的影响},
+  author    = {汤明 and 余兆菊 and 兰琳 and 陈立富 and 张颖 and 张立同},
+  address   = {北京},
+  publisher = {中国宇航出版社},
+  pages     = {106--109},
+  editor    = {郭玉明},
+  booktitle = {第十四届全国复合材料学术会议论文集},
+  year      = {2006}
+}
+
+ at article{harris1985experimental,
+  title     = {Experimental determination of effective weight of stored material for use in seismic design of silos},
+  author    = {Harris, Ernest C and von Nad, John Duris},
+  journal   = {ACI Journal Proceedings},
+  volume    = {82},
+  number    = {6},
+  pages     = {828--833},
+  year      = {1985}
+}
+
+ at phdthesis{金宏1998导航系统的精度及容错性能的研究,
+  title   = {导航系统的精度及容错性能的研究},
+  author  = {金宏},
+  address = {北京},
+  school  = {北京航空航天大学自动控制系},
+  year    = {1998}
+}
+
+ at patent{姜锡洲1989一种温热外敷药制备方案,
+  title   = {一种温热外敷药制备方案},
+  author  = {姜锡洲},
+  address = {中国},
+  number  = {881056073},
+  date    = {1989-07-06},
+}
+
+ at standard{构筑物抗震设计规范,
+  title  = {构筑物抗震设计规范},
+  number = {GB 50191—93},
+}
+
+ at standard{汉语拼音正词法基本规则,
+  title  = {汉语拼音正词法基本规则},
+  number = {GB/T 16159—1996}
+}
+
+ at newspaper{谢希德1998创造学习的新思路,
+  title   = {创造学习的新思路},
+  author  = {谢希德},
+  journal = {人民日报},
+  number  = {10},
+  date    = {1998-12-25}
+}
+
+ at techreport{nho2000automatic,
+  title        = {Automatic landing system design using fuzzy logic},
+  author       = {Nho, Kyungmoon},
+  address      = {Hefei},
+  institution  = {AIAA},
+  year         = {1998}
+}
+
+ at online{pacs1989public,
+  author      = {{Pacs}},
+  title       = {The public-access computer systems forum},
+  publisher   = {University of Houston Libraries},
+  year        = {1989},
+  urldate     = {1995.05.17}
+}
+
+ at online{hopkinson1998dc,
+  title   = {Dublin Core},
+  author  = {Hopkinson, Alan and Metadata},
+  url     = {http://www.ifls.org/IV/ifla64/138-161e.htm},
+  urldate = {1999-12-08},
+}
+
+ at inproceedings{zhangwenjun2019yundonglei,
+  title={运动类App使用现状及发展前景研究——以合肥市高校为例},
+  author={张文钧 and 殷振豪 and 张丁洋},
+  booktitle={2019年第六届全国大学生统计建模大赛优秀论文集},
+  year={2019}
+}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-bib/hfut.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/abstract.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/abstract.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/abstract.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,35 @@
+% !TeX root = ../main.tex
+
+\hfutsetup{
+  keywords = {
+    合肥工业大学, 学位论文, \LaTeX{} 模板, 学士, 硕士, 博士
+  },
+  keywords* = {
+    Hefei University of Technology (HFUT), Thesis,
+    \LaTeX{} Template, Bachelor, Master, PhD
+  },
+}
+
+\begin{abstract}
+  摘要分中文和英文两种,中文在前,英文在后,博士论文中文摘要一般 800~1500 个汉字,硕士论文中文摘要一般 500~1000 个汉字。
+  英文摘要的篇幅参照中文摘要。
+
+  关键词另起一行并隔行排列于摘要下方,左顶格,中文关键词间空一字或用分号“,”隔开,英文关键词之间用逗号“,”或分号“;”隔开。
+
+  中文摘要是论文内容的总结概括,应简要说明论文的研究目的、基本研究内容、研究方法或过程、结果和结论,突出论文的创新之处。
+  摘要应具有独立性和自明性,即不用阅读全文,就能获得论文必要的信息。
+  摘要中不宜使用公式、图表,不引用文献。
+
+  中文关键词是为了文献标引工作从论文中选取出来用以表示全文主题内容信息的单词和术语,一般 3~8 个词,要求能够准确概括论文的核心内容。
+\end{abstract}
+
+\begin{abstract*}
+  \noindent %西文首段不缩进
+  This is a sample document of HFUT thesis \LaTeX{} template for bachelor,
+  master and doctor. The template is created by \href{https://github.com/LaureatePoet}{LaureatePoet} and \href{https://github.com/HowardZorn}{Fw[a]rd}. The 
+  template meets the equirements of HFUT thesis writing standards.
+
+  This document will show the usage of basic commands provided by \LaTeX{} and
+  some features provided by the template. For more information, please refer to
+  the template document hfutthesis-doc.pdf.
+\end{abstract*}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/abstract.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/acknowledgements.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/acknowledgements.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/acknowledgements.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,18 @@
+% !TeX root = ../main.tex
+
+\begin{acknowledgements}
+
+在研究学习期间,我有幸得到了两位老师的教导,
+他们是:合肥工业大学XXX研究员和美国犹他大学的XXX老师。
+两位深厚的学术功底,严谨的工作态度和敏锐的科学洞察力使我受益良多。
+衷心感谢他们多年来给予我的悉心教导和热情帮助。
+
+工大的贺XX同学和唐X同学参与了开发与部分试验工作,在此深表谢意。
+~\\
+\begin{flushright}
+作者:XXX
+
+XXXX年XX月XX日
+\end{flushright}
+
+\end{acknowledgements}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/acknowledgements.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/citations.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/citations.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/citations.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,44 @@
+% !TeX root = ../main.tex
+
+\chapter{引用文献的标注}
+
+模板使用 \pkg{natbib} 宏包来设置参考文献引用的格式,默认采用角标数字标注法,
+更多引用方法可以参考该宏包的使用说明。
+
+\section{顺序编码制}
+
+\subsection{角标数字标注法}
+
+\hfutsetup{
+  cite-style = super,
+}
+\noindent
+\begin{tabular}{l@{\quad$\Rightarrow$\quad}l}
+  \verb|\cite{knuth86a}|         & \cite{knuth86a}         \\
+  \verb|\citet{knuth86a}|        & \citet{knuth86a}        \\
+  \verb|\cite[42]{knuth86a}|     & \cite[42]{knuth86a}     \\
+  \verb|\cite{knuth86a,tlc2}|    & \cite{knuth86a,tlc2}    \\
+  \verb|\cite{knuth86a,knuth84}| & \cite{knuth86a,knuth84} \\
+\end{tabular}
+
+
+\subsection{数字标注法}
+
+\hfutsetup{
+  cite-style = inline,
+}
+\noindent
+\begin{tabular}{l@{\quad$\Rightarrow$\quad}l}
+  \verb|\cite{knuth86a}|         & \cite{knuth86a}         \\
+  \verb|\citet{knuth86a}|        & \citet{knuth86a}        \\
+  \verb|\cite[42]{knuth86a}|     & \cite[42]{knuth86a}     \\
+  \verb|\cite{knuth86a,tlc2}|    & \cite{knuth86a,tlc2}    \\
+  \verb|\cite{knuth86a,knuth84}| & \cite{knuth86a,knuth84} \\
+\end{tabular}
+
+\hfutsetup{
+  cite-style = super,
+}
+
+% 注意,参考文献列表中的每条文献在正文中都要被引用。这里只是为了示例。
+\nocite{*}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/citations.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/complementary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/complementary.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/complementary.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,8 @@
+% !TeX root = ../main.tex
+
+\chapter{补充材料}
+
+
+\section{补充章节}
+
+补充内容。


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/complementary.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/expertspage.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/expertspage.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/expertspage.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,45 @@
+% !TeX root = ../main.tex
+% 博士学位论文 专家清单页
+\begin{titlepage}%
+    \pdfbookmark{专家清单页}%
+    \null
+    \centering
+    {\sffamily\fontsize{16bp}{32bp}\selectfont
+    \textbf{同行评议专家名单}\par}
+    \vskip 1.0cm
+    \renewcommand\arraystretch{1.5}
+    {\fontsize{16pt}{\baselineskip}\selectfont
+        \begin{tabular}{@{}p{4\ccwd}p{1\ccwd}p{9\ccwd}<{\centering}p{1\ccwd}p{6\ccwd}<{\centering}@{}}%
+            专家姓名 & & 所在单位名称 & & 教授、博导\\
+            专家姓名 & & 所在单位名称 & & 教授、博导\\
+            专家姓名 & & 所在单位名称 & & 教授、博导\\
+            专家姓名 & & 所在单位名称 & & 教授、博导\\
+            专家姓名 & & 所在单位名称 & & 教授、博导
+        \end{tabular}\par%
+    }
+    \vskip 2.4cm%
+    {\sffamily\fontsize{16bp}{32bp}\selectfont
+    \textbf{同行评议专家名单}\par}%
+    \vskip 1.0cm%
+    {\fontsize{16bp}{\baselineskip}\selectfont
+        \begin{tabular}{@{}p{4\ccwd}p{11\ccwd}p{6\ccwd}<{\centering}@{}}%
+            匿名 & & 教授、博导\\
+            匿名 & & 教授、博导\\
+            匿名 & & 教授、博导
+        \end{tabular}\par%
+    }
+    \vskip 2.4cm%
+    {\sffamily\fontsize{16bp}{32bp}\selectfont
+    \textbf{答辩委员会名单}\par}%
+    \vskip 1.0cm%
+    {\fontsize{16bp}{\baselineskip}\selectfont
+        \begin{tabular}{@{}p{3\ccwd}p{3\ccwd}<{\centering}p{9\ccwd}p{6\ccwd}<{\centering}@{}}%
+            主席: & 姓名 & 所在单位名称 & 教授、博导\\
+            委员: & 姓名 & 所在单位名称 & 教授、博导\\
+            & 姓名 & 所在单位名称 & 教授、博导\\
+            & 姓名 & 所在单位名称 & 教授、博导\\
+            & 姓名 & 所在单位名称 & 教授、博导
+        \end{tabular}\par%
+    }
+    \renewcommand\arraystretch{1}
+  \end{titlepage}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/expertspage.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/floats.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/floats.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/floats.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,99 @@
+% !TeX root = ../main.tex
+
+\chapter{浮动体}
+
+\section{三线表}
+
+三线表是《撰写手册》推荐使用的格式,如表~\ref{tab:exampletable}。
+\begin{table}[h]
+  \centering
+  % \bicaption{表号和表题在表的正上方}{The table number and title are directly above the table} % 硕博学位论文 图表中英文标题
+  \caption{表号和表题在表的正上方} % 默认:学士学位论文 图表中文标题
+  \label{tab:exampletable}
+  \begin{tabular}{cl}
+    \toprule
+    类型   & 描述                                       \\
+    \midrule
+    挂线表 & 挂线表也称系统表、组织表,用于表现系统结构 \\
+    无线表 & 无线表一般用于设备配置单、技术参数列表等   \\
+    卡线表 & 卡线表有完全表,不完全表和三线表三种       \\
+    \bottomrule
+  \end{tabular}
+  \note{注:表注分两种,第一种是对全表的注释,用不加阿拉伯数字排在表的下边,
+    前面加“注:”;第二种是和表内的某处文字或数字相呼应的注,
+    在表里面用带圈的阿拉伯数字在右上角标出,然后在表下面用同样的圈码注出来}
+\end{table}
+
+编制表格应简单明了,表达一致,明晰易懂,表文呼应、内容一致。
+排版时表格字号略小,或变换字体,尽量不分页,尽量不跨节。
+表格太大需要转页时,需要在续表上方注明“续表”,表头页应重复排出。\par
+对于硕博是中英文表标题,示例如下:
+\begin{table}[h]
+  \centering
+  \bicaption{中文标题}{English Title} % 硕博学位论文 图表中英文标题
+  % \caption{表号和表题在表的正上方} % 默认:学士学位论文 图表中文标题
+  \label{tab:exampletable-zh-en}
+  \begin{tabular}{cl}
+    \toprule
+    类型   & 描述                                       \\
+    \midrule
+    挂线表 & 挂线表也称系统表、组织表,用于表现系统结构 \\
+    无线表 & 无线表一般用于设备配置单、技术参数列表等   \\
+    卡线表 & 卡线表有完全表,不完全表和三线表三种       \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+
+
+\section{插图}
+
+有的同学可能听说“\LaTeX{} 只能使用 eps 格式的图片”,甚至把 jpg 格式转为 eps。
+事实上,这种做法已经过时。
+而且每次编译时都要要调用外部工具解析 eps,导致降低编译速度。
+所以我们推荐矢量图直接使用 pdf 格式,位图使用 jpeg 或 png 格式。
+\begin{figure}[!ht]
+  \centering
+  \includegraphics[width=0.3\textwidth]{hfut-badge.pdf}
+  % \bicaption{图号、图题置于图的下方}{The figure number and title are placed at the bottom of the figure} % 硕博学位论文 图表中英文标题
+  \caption{图号、图题置于图的下方} % 默认:学士学位论文 图表中文标题
+  \label{fig:badge}
+  \note{注:图注的内容不宜放到图题中。}
+\end{figure}
+
+关于图片的并排,推荐使用较新的 \pkg{subcaption} 宏包,
+不建议使用 \pkg{subfigure} 或 \pkg{subfig} 等宏包。\par
+
+对于硕博是中英文图标题,示例如图~\ref{fig:example-zh-en}:
+\begin{figure}[!ht]
+  \centering
+  \includegraphics[height=1.5cm]{hfut-name.pdf}
+  \bicaption{合肥工业大学}{Hefei University of Technology} % 硕博学位论文 图表中英文标题
+  % \caption{图号、图题置于图的下方} % 默认:学士学位论文 图表中文标题
+  \label{fig:example-zh-en}
+\end{figure}
+\section{算法环境}
+
+模板中使用 \pkg{algorithm2e} 宏包实现算法环境。关于该宏包的具体用法,
+请阅读宏包的官方文档。
+
+\begin{algorithm}[!ht]
+  \SetAlgoLined
+  \KwData{this text}
+  \KwResult{how to write algorithm with \LaTeX2e }
+
+  initialization\;
+  \While{not at end of this document}{
+    read current\;
+    \eIf{understand}{
+      go to next section\;
+      current section becomes this one\;
+    }{
+      go back to the beginning of current section\;
+    }
+  }
+  \caption{算法示例1}
+  \label{algo:algorithm1}
+\end{algorithm}
+
+注意,我们可以在论文中插入算法,但是插入大段的代码是愚蠢的。
+然而这并不妨碍有的同学选择这么做,对于这些同学,建议用 \pkg{listings} 宏包。


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/floats.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/intro.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/intro.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/intro.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,39 @@
+% !TeX root = ../main.tex
+
+\chapter{简介}
+
+\section{一级节标题}
+
+\subsection{二级节标题}
+
+\subsubsection{三级节标题}
+
+\paragraph{四级节标题}
+
+\subparagraph{五级节标题}
+
+本模板 \pkg{hfutthesis} 是合肥工业大学本科生和研究生学位论文的 \LaTeX{}
+模板, 按照《\href{http://xwgl.hfut.edu.cn/2021/0419/c1975a253949/page.htm}
+{合肥工业大学研究生学位论文写作规范}》(以下简称《写作规范》)和
+《\href{http://xcjwb.hfut.edu.cn/53/cc/c1144a21452/page.htm}
+{合肥工业大学本科毕业设计(论文)工作实施细则}》的要求编写。
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
+Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
+fugiat nulla pariatur.
+Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
+deserunt mollit anim id est laborum.
+
+
+
+\section{脚注}
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
+\footnote{Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
+  nisi ut aliquip ex ea commodo consequat.
+  Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+  eu fugiat nulla pariatur.}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/intro.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/math.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/math.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/math.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,189 @@
+% !TeX root = ../main.tex
+
+\chapter{数学}
+
+\section{数学符号和公式}
+《写作规范》没有对数学符号和公式做具体要求,这里我们让数学符号遵循 GB/T 3102.11—1993《物理科学和技术中使用的数学符号》
+\footnote{原 GB 3102.11—1993,自 2017 年 3 月 23 日起,该标准转为推荐性标准。}。
+该标准参照采纳 ISO 31-11:1992 \footnote{目前已更新为 ISO 80000-2:2019。},
+但是与 \TeX{} 默认的美国数学学会(AMS)的符号习惯有所区别。
+具体地来说主要有以下差异:
+\begin{enumerate}
+  \item 大写希腊字母默认为斜体,如
+    \begin{equation*}
+      \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega.
+    \end{equation*}
+    注意有限增量符号 $\increment$ 固定使用正体,模板提供了 \cs{increment} 命令。
+  \item 小于等于号和大于等于号使用倾斜的字形 $\le$、$\ge$。
+  \item 积分号使用正体,比如 $\int$、$\oint$。
+  \item 行间公式积分号的上下限位于积分号的上下两端,比如
+    \begin{equation*}
+      \int_a^b f(x) \dif x.
+    \end{equation*}
+    行内公式为了版面的美观,统一居右侧,如 $\int_a^b f(x) \dif x$ 。
+  \item
+    偏微分符号 $\partial$ 使用正体。
+  \item
+    省略号 \cs{dots} 按照中文的习惯固定居中,比如
+    \begin{equation*}
+      1, 2, \dots, n \quad 1 + 2 + \dots + n.
+    \end{equation*}
+  \item
+    实部 $\Re$ 和虚部 $\Im$ 的字体使用罗马体。
+\end{enumerate}
+
+以上数学符号样式的差异可以在模板中统一设置。
+但是还有一些需要用户在写作时进行处理:
+\begin{enumerate}
+  \item 数学常数和特殊函数名用正体,如
+    \begin{equation*}
+      \uppi = 3.14\dots; \quad
+      \symup{i}^2 = -1; \quad
+      \symup{e} = \lim_{n \to \infty} \left( 1 + \frac{1}{n} \right)^n.
+    \end{equation*}
+  \item 微分号使用正体,比如 $\dif y / \dif x$。
+  \item 向量、矩阵和张量用粗斜体(\cs{symbf}),如 $\symbf{x}$、$\symbf{\Sigma}$、$\symbfsf{T}$。
+  \item 自然对数用 $\ln x$ 不用 $\log x$。
+\end{enumerate}
+
+模板中使用 \pkg{unicode-math} 宏包配置数学字体。
+该宏包与传统的 \pkg{amsfonts}、\pkg{amssymb}、\pkg{bm}、
+\pkg{mathrsfs}、\pkg{upgreek} 等宏包\emph{不}兼容。
+本模板作了处理,用户可以直接使用 \cs{bm}, \cs{mathscr},
+\cs{upGamma} 等命令。
+关于数学符号更多的用法,参见 \pkg{unicode-math} 宏包的使用说明和符号列表
+\pkg{unimath-symbols}。
+
+
+
+\section{量和单位}
+
+宏包 \pkg{siunitx} 提供了更好的数字和单位支持:
+\begin{itemize}
+  \item \num{12345.67890}
+  \item \num{.3e45}
+  \item \si{kg.m.s^{-1}}
+  \item \si{\micro\meter} $\si{\micro\meter}$
+  \item \si{\ohm} $\si{\ohm}$
+  \item \numlist{10;20}
+  \item \numlist{10;20;30}
+  \item \SIlist{0.13;0.67;0.80}{\milli\metre}
+  \item \numrange{10}{20}
+  \item \SIrange{10}{20}{\degreeCelsius}
+\end{itemize}
+
+
+
+\section{定理和证明}
+
+示例文件中使用 \pkg{amsthm} 宏包配置了定理、引理和证明等环境。
+用户也可以使用 \pkg{ntheorem} 宏包。\par
+
+公式引用示例:见式~\ref{eq:example}
+\begin{definition}
+  If the integral of function $f$ is measurable and non-negative, we define
+  its (extended) \textbf{Lebesgue integral} by
+  \begin{equation}
+    \int f = \sup_g \int g,
+  \end{equation}
+  where the supremum is taken over all measurable functions $g$ such that
+  $0 \le g \le f$, and where $g$ is bounded and supported on a set of
+  finite measure.
+\end{definition}
+
+\begin{assumption}
+The communication graph is strongly connected.
+\end{assumption}
+
+\begin{example}
+  Simple examples of functions on $\mathbb{R}^d$ that are integrable
+  (or non-integrable) are given by
+  \begin{equation}
+    f_a(x) =
+    \begin{cases}
+      |x|^{-a} & \text{if } |x| \le 1, \\
+      0        & \text{if } x > 1.
+    \end{cases}
+  \end{equation}
+  \begin{equation}
+    \label{eq:example}
+    F_a(x) = \frac{1}{1 + |x|^a}, \qquad \text{all } x \in \mathbb{R}^d.
+  \end{equation}
+  Then $f_a$ is integrable exactly when $a < d$, while $F_a$ is integrable
+  exactly when $a > d$.
+\end{example}
+
+\begin{lemma}[Fatou]
+  Suppose $\{f_n\}$ is a sequence of measurable functions with $f_n \geq 0$.
+  If $\lim_{n \to \infty} f_n(x) = f(x)$ for a.e. $x$, then
+  \begin{equation}
+    \int f \le \liminf_{n \to \infty} \int f_n.
+  \end{equation}
+\end{lemma}
+
+\begin{remark}
+  We do not exclude the cases $\int f = \infty$,
+  or $\liminf_{n \to \infty} f_n = \infty$.
+\end{remark}
+
+\begin{corollary}
+  Suppose $f$ is a non-negative measurable function, and $\{f_n\}$ a sequence
+  of non-negative measurable functions with
+  $f_n(x) \le f(x)$ and $f_n(x) \to f(x)$ for almost every $x$. Then
+  \begin{equation}
+    \lim_{n \to \infty} \int f_n = \int f.
+  \end{equation}
+\end{corollary}
+
+\begin{proposition}
+  Suppose $f$ is integrable on $\mathbb{R}^d$. Then for every $\epsilon > 0$:
+  \begin{enumerate}
+    \renewcommand{\theenumi}{\roman{enumi}}
+    \item There exists a set of finite measure $B$ (a ball, for example) such
+      that
+      \begin{equation}
+        \int_{B^c} |f| < \epsilon.
+      \end{equation}
+    \item There is a $\delta > 0$ such that
+      \begin{equation}
+        \int_E |f| < \epsilon \qquad \text{whenever } m(E) < \delta.
+      \end{equation}
+  \end{enumerate}
+\end{proposition}
+
+\begin{theorem}
+  Suppose $\{f_n\}$ is a sequence of measurable functions such that
+  $f_n(x) \to f(x)$ a.e. $x$, as $n$ tends to infinity.
+  If $|f_n(x)| \le g(x)$, where $g$ is integrable, then
+  \begin{equation}
+    \int |f_n - f| \to 0 \qquad \text{as } n \to \infty,
+  \end{equation}
+  and consequently
+  \begin{equation}
+    \int f_n \to \int f \qquad \text{as } n \to \infty.
+  \end{equation}
+\end{theorem}
+
+\begin{proof}
+  Trivial.
+\end{proof}
+
+\newtheorem*{axiomofchoice}{Axiom of choice}
+\begin{axiomofchoice}
+  Suppose $E$ is a set and ${E_\alpha}$ is a collection of
+  non-empty subsets of $E$. Then there is a function $\alpha
+  \mapsto x_\alpha$ (a ``choice function'') such that
+  \begin{equation}
+    x_\alpha \in E_\alpha,\qquad \text{for all }\alpha.
+  \end{equation}
+\end{axiomofchoice}
+
+\newtheorem{observation}{Observation}
+\begin{observation}
+  Suppose a partially ordered set $P$ has the property
+  that every chain has an upper bound in $P$. Then the
+  set $P$ contains at least one maximal element.
+\end{observation}
+\begin{proof}[A concise proof]
+  Obvious.
+\end{proof}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/math.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/notation.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/notation.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/notation.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,27 @@
+% !TeX root = ../main.tex
+
+\begin{notation}
+
+  \begin{notationlist}{2em}
+    \item[$\displaystyle a$] The number of angels per unit area
+    \item[$\displaystyle N$] The number of angels per needle point
+    \item[$\displaystyle A$] The area of the needle point
+    \item[$\displaystyle \sigma$] The total mass of angels per unit area
+    \item[$\displaystyle m$] The mass of one angel
+    \item[$\displaystyle \sum_{i=1}^n a_i$] The sum of $a_i$
+  \end{notationlist}
+
+\end{notation}
+
+
+
+% 也可以使用 nomencl 宏包
+
+% \printnomenclature
+
+% \nomenclature{$\displaystyle a$}{The number of angels per unit are}
+% \nomenclature{$\displaystyle N$}{The number of angels per needle point}
+% \nomenclature{$\displaystyle A$}{The area of the needle point}
+% \nomenclature{$\displaystyle \sigma$}{The total mass of angels per unit area}
+% \nomenclature{$\displaystyle m$}{The mass of one angel}
+% \nomenclature{$\displaystyle \sum_{i=1}^n a_i$}{The sum of $a_i$}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/notation.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/publications.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/publications.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/publications.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,28 @@
+% !TeX root = ../main.tex
+
+\begin{publications}
+
+\section{参加的学术交流与科研项目}
+
+\begin{enumerate}
+\item A A A A A A A A A
+\item A A A A A A A A A
+\item A A A A A A A A A
+\end{enumerate}
+
+\section{发表的学术论文(含专利和软件著作权)}
+
+\begin{enumerate}
+\item A A A A A A A A A
+\item A A A A A A A A A
+\item A A A A A A A A A
+\end{enumerate}
+
+\section{获得的学术奖励}
+\begin{enumerate}
+\item A A A A A A A A A
+\item A A A A A A A A A
+\item A A A A A A A A A
+\end{enumerate}
+
+\end{publications}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-chapters/publications.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-badge.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-badge.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-badge.pdf	2022-07-30 20:41:00 UTC (rev 64008)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-badge.pdf	2022-07-30 20:41:51 UTC (rev 64009)

Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-badge.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-name.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-name.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-name.pdf	2022-07-30 20:41:00 UTC (rev 64008)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-name.pdf	2022-07-30 20:41:51 UTC (rev 64009)

Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfut-figures/hfut-name.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutsetup.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutsetup.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutsetup.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,121 @@
+% !TeX root = ./main.tex
+
+\hfutsetup{
+  title              = {合肥工业大学学位论文模板示例文档 \hfutthesisversion},
+  title*             = {An example of thesis template for \\ Hefei University of Technology \hfutthesisversion},
+  stuID              = {学号},
+  author             = {XXX},
+  author*            = {Yin Zhenhao},
+  speciality         = {数学与应用数学},
+  supervisor         = {XXX~教授},
+  % date               = {2021-05},  % 完成日期默认为当前日期 格式:yyyy-mm
+  % secret-level       = {秘密},     % 绝密|机密|秘密|内部交流,注释本行则公开
+  % secret-year        = {10年},      % 保密年限,必须与secret-level搭配使用
+  %
+  % 数学字体
+  % math-style         = GB,  % 可选:GB, TeX, ISO
+  math-font          = xits,  % 可选:stix, xits, libertinus, newcm, cm, lm, newtx
+  %
+  %
+  %
+  % Parameters for Non-bachelor's option
+  %
+  clc               = {分类号}, % 分类号
+  %
+  %
+  %
+  % Parameters for master's(docotoral) option 和 答辩委员签名页 参数
+  %
+  % advisor            = {XXX~教授}, % 用于“专业硕士-中文内封页” 校外导师的填写,默认空
+  research           = {研究方向}, % 研究方向,默认为 “研究方向”
+  signchairman       = {专家工作单位,职称,姓名}, % 答辩委员签名页 主席:  默认为空
+  signmember         = {XXX,XXX,XXX \\ XXX,XXX,XXX}, % 答辩委员签名页 委员:  默认为空
+  signsupervisor     = {合肥工业大学,XXX,XXX}, % 答辩委员签名页 导师:  默认为空
+  %
+  %
+  %
+  % Parameters ONLY for bachelor's option
+  %
+  ugtype             = {论文}, % 封面第一栏“类型”的选项:设计或者论文,默认“论文”
+  hfuteryear         = {2017级}, % 入学年份 
+  department         = {数学学院}, % 学院名称
+  %
+  %
+  %
+  % Parameters ONLY for doctoral option 和 提名页 参数
+  %
+  % applydegree        = {}, % 申请学位:理学博士|工学博士, etc. 默认“理学博士”
+  % school             = {}, % 默认培养单位:合肥工业大学,难道你想填其他的?
+  defensedate        = {2021年6月}, % 答辩时间:格式 “2021年6月”,默认为空
+  % phdchairman        = {}, % 提名页 答辩委员会主席:  默认为空
+  % phdmember          = {}, % 提名页 评阅人:  默认为空
+  % 关于Ph.D的专家清单页,请仔细阅读hftuthesis-doc,详见`chapters/expertspage.tex`
+}
+
+
+% 加载宏包
+
+% 定理类环境宏包
+\usepackage{amsthm}
+
+% 插图
+\usepackage{graphicx}
+
+% 三线表
+\usepackage{booktabs}
+
+% 跨页表格
+\usepackage{longtable}
+
+% 算法
+\usepackage[ruled,linesnumbered]{algorithm2e}
+
+% SI 量和单位
+\usepackage{siunitx}
+
+% 参考文献使用 BibTeX + natbib 宏包
+% 顺序编码制
+% HFUT学位论文样例 参考文献的著录格式
+\usepackage[sort]{natbib}
+\bibliographystyle{hfutthesis-numerical}
+
+% gbt7714-2015 参考文献的著录格式
+% \usepackage[sort]{natbib}
+% \bibliographystyle{gbt7714-numerical}
+
+% 备用方案(优化过的 gbt7714-2015)参考文献的著录格式
+% \usepackage[sort]{natbib}
+% \bibliographystyle{hfutthesis-graduate}
+
+% 参考文献使用 BibLaTeX 宏包
+% \usepackage[style=hfutthesis-numeric]{biblatex}
+% \usepackage[bibstyle=hfutthesis-numeric,citestyle=hfutthesis-inline]{biblatex}
+% \usepackage[style=hfutthesis-authoryear]{biblatex}
+% \usepackage[style=hfutthesis-bachelor]{biblatex}
+% 声明 BibLaTeX 的数据库
+% \addbibresource{bib/hfut.bib}
+
+% 配置图片的默认目录
+\graphicspath{{figures/}}
+
+% 数学命令
+\makeatletter
+\newcommand\dif{%  % 微分符号
+  \mathop{}\!%
+  \ifhfut at math@style at TeX
+    d%
+  \else
+    \mathrm{d}%
+  \fi
+}
+\makeatother
+\newcommand\eu{{\symup{e}}}
+\newcommand\iu{{\symup{i}}}
+
+% 用于写文档的命令
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\DeclareRobustCommand\pkg{\textsf}
+\DeclareRobustCommand\file{\nolinkurl}
+
+% hyperref 宏包在最后调用
+\usepackage{hyperref}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutsetup.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.pdf	2022-07-30 20:41:00 UTC (rev 64008)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.pdf	2022-07-30 20:41:51 UTC (rev 64009)

Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,732 @@
+% !TeX encoding = UTF-8
+% !TeX program = xelatex
+% !TeX spellcheck = en_US
+
+%
+% Copyright (C) 2015-2021 by USTC TeX Users Group <https://github.com/ustctug>
+%
+% hfutthesis developed by HFUT TeX Users Group <https://github.com/HFUTTUG> on the 
+% base of ustcthesis <https://github.com/usthtug/ustcthesis>.
+
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%    https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%.
+
+\documentclass[a4paper]{ltxdoc}
+
+\usepackage[UTF8]{ctex}
+\usepackage{unicode-math}
+\usepackage{caption}
+\usepackage{booktabs}
+\usepackage{xcolor}
+\usepackage{listings}
+\usepackage[perpage]{footmisc}
+\usepackage{hypdoc}
+\usepackage{bicaption}
+\makeatletter
+
+% 设置字体
+\IfFileExists{/System/Library/Fonts/Times.ttc}{
+  \setmainfont{Times}
+  \setsansfont[Scale=MatchLowercase]{Helvetica}
+  \setmonofont[Scale=MatchLowercase]{Menlo}
+  \xeCJKsetwidth{‘’“”}{1em}
+}{}
+\unimathsetup{
+  math-style=ISO,
+  bold-style=ISO,
+}
+\IfFontExistsTF{xits-math.otf}{
+  \setmathfont[
+    Extension    = .otf,
+    BoldFont     = *bold,
+    StylisticSet = 8,
+  ]{xits-math}
+  \setmathfont[range={cal,bfcal},StylisticSet=1]{xits-math.otf}
+}{
+  \setmathfont[
+    Extension    = .otf,
+    BoldFont     = XITSMath-Bold,
+    StylisticSet = 8,
+  ]{XITSMath-Regular}
+  \setmathfont[range={cal,bfcal},StylisticSet=1]{XITSMath-Regular.otf}
+}
+
+% 定义一些命令用于写文档
+\newcommand\TeXLive{\TeX{} Live}
+\newcommand\unicodechar[1]{U+#1(\symbol{"#1})}
+\DeclareRobustCommand\file{\nolinkurl}
+\DeclareRobustCommand\env{\texttt}
+\DeclareRobustCommand\pkg{\textsf}
+\DeclareRobustCommand\cls{\textsf}
+\DeclareRobustCommand\opt{\texttt}
+
+% 在 doc 的基础上增加 option 的描述
+\def\DescribeOption{\leavevmode\@bsphack\begingroup\MakePrivateLetters
+  \Describe at Option}
+\def\Describe at Option#1{\endgroup
+              \marginpar{\raggedleft\PrintDescribeOption{#1}}%
+              \SpecialEnvIndex{#1}\@esphack\ignorespaces}
+\@ifundefined{PrintDescribeOption}
+   {\def\PrintDescribeOption#1{\strut \MacroFont #1\ }}{}
+
+% 调整列表的格式
+\setlength\partopsep{\z@}
+\def\@listi{\leftmargin\leftmargini
+            \parsep \z@
+            \topsep \z@
+            \itemsep \z@}
+\let\@listI\@listi
+\@listi
+
+% listings 的样式
+\lstdefinestyle{lstshell}{
+  basicstyle      = \small\ttfamily,
+  backgroundcolor = \color{lightgray},
+  language        = bash,
+}
+\newcommand\shellcmd[1]{\colorbox{lightgray}{\lstinline[style=lstshell]|#1|}}
+\lstnewenvironment{shell}{\lstset{style=lstshell, gobble=2}}{}
+\lstnewenvironment{latex}{%
+  \lstset{
+    basicstyle = \small\ttfamily,
+    frame      = single,
+    gobble     = 2,
+    language   = [LaTeX]TeX,
+  }%
+}{}
+
+\hypersetup{
+  allcolors         = blue,
+  bookmarksnumbered = true,
+  bookmarksopen     = true,
+}
+\makeatother
+
+
+\begin{document}
+
+
+
+\title{\cls{hfutthesis} 使用说明}
+\author{
+  \href{https://github.com/HFUTTUG}{HFUTTUG}
+ }
+\date{v1.0.4\qquad 2022-04-09}
+\maketitle
+
+
+
+\section{简介}
+
+本模板 \cls{hfutthesis} 是合肥工业大学本科生和研究生学位论文的 \LaTeX{}
+模板, 按照最新版的《\href{http://xwgl.hfut.edu.cn/2021/0419/c1975a253949/page.htm}
+{合肥工业大学研究生学位论文写作规范}》和
+《\href{http://xcjwb.hfut.edu.cn/53/cc/c1144a21452/page.htm}
+{合肥工业大学本科毕业设计(论文)工作实施细则}》(以下统称《规范》)的要求编写,兼容最新版的 TeX Live、MacTeX 、MiKTeX 发行版,支持跨平台使用。
+
+本项目在 \href{https://github.com/ustctug/ustcthesis}
+{ustctug/ustcthesis} 基础上编写,\href{https://github.com/LaureatePoet}{LaureatePoet}和\href{https://github.com/HowardZorn}{Fw[a]rd} 基于合肥工业大学本科生和研究生学位论文的相关要求,开发了本模板的 v1.0.0 版本。
+
+下载地址:
+\begin{itemize}
+  \item GitHub Releases:\url{https://github.com/HFUTTUG/HFUT_Thesis/releases}
+  \item Overleaf 模板:\url{https://www.overleaf.com/latex/templates/hfut-thesis/ythwdqdkpvkp}
+\end{itemize}
+
+用户在使用 \pkg{hfutthesis} 模板前,应先阅读学校关于毕业论文的相关规定。
+如果在使用的过程中遇到问题,可以阅读
+\href{https://github.com/HFUTTUG/HFUT_Thesis/wiki}{常见问题},
+或者在 \href{https://github.com/HFUTTUG/HFUT_Thesis/issues}{GitHub Issues}
+中反馈。
+
+\section{编译方法}
+
+
+\subsection{文件组成}
+本模板的主要文件如表~\ref{tab:files}:
+\begin{table}[htb]
+  \centering\small
+  \caption{模板的文件组成}
+  \label{tab:files}
+  \begin{tabular}{lll}
+    \toprule
+    类别     & 文件                      & 说明                         \\
+    \midrule
+    模板文件 & \file{hfutthesis.cls}     & 模板文件                     \\
+             & \file{hfutthesis-*.bst}   & \BibTeX{} 参考文献表格式     \\
+             & \file{hfutthesis-*.bbx}   & BibLaTeX 参考文献表格式      \\
+             & \file{hfutthesis-*.cbx}   & BibLaTeX 参考文献表格式      \\
+             & \file{figures/*.pdf} & 校名和校徽图片               \\
+    \midrule
+    使用说明 & \file{hfutthesis-doc.tex} & 模板使用说明的源代码         \\
+             & \file{hfutthesis-doc.pdf} & (你正在阅读的)模板使用说明 \\
+    \midrule
+    示例文档 & \file{main.tex}           & 主文档                       \\
+             & \file{hfutsetup.tex}      & 配置文件                     \\
+             & \file{chapters/*.tex}     & 示例文档的各个章节           \\
+             & \file{figures/}           & 放置图片的目录               \\
+             & \file{bib/hfut.bib}       & \BibTeX{} 示例数据库         \\
+    \midrule
+    其他     & \file{README.md}          & 基本说明                     \\
+             & \file{HFUT_Thesis.json}       & 更新日志                 \\
+             & \file{latexmkrc}          & latexmk 的配置文件           \\
+             & \file{Makefile}           & GNU make 的配置文件          \\
+             & \file{.vscode/}           & VS Code 的配置文件           \\
+             & \file{build.lua}          & l3build 的配置文件           \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+
+示例文档包括了常用的 \LaTeX{} 命令,建议新手从此入手,用自己的内容进行替换。
+
+
+\subsection{依赖宏包}
+
+本模板要求使用 TeX Live、MacTeX 或 MiKTeX 不低于 2017 年的发行版,
+推荐升级到最新的版本。
+
+模板直接依赖的宏包有:
+\pkg{amsthm},
+\pkg{graphicx},
+\pkg{booktabs},
+\pkg{longtable},
+\pkg{algorithm2e},
+\pkg{siunitx},
+\pkg{natbib},
+\pkg{hyperref}。
+
+另外,模板还对其他宏包提供了支持,包括:
+\pkg{amsmath},
+\pkg{biblatex},
+\pkg{nomencl}等。
+这些宏包并非必需,用户可以根据需要选择使用。
+模板在检测到这些宏包被调用后会自动进行配置。
+
+注意,本模板\emph{不}兼容的宏包有:
+\pkg{amsfonts},
+\pkg{amssymb},
+\pkg{bm},
+\pkg{cite},
+\pkg{mathrsfs},
+\pkg{newtx},
+\pkg{upgreek}。
+
+
+\subsection{开始编译}
+
+\begin{enumerate}
+
+\item GNU make \\
+Linux/Mac用户,可以直接使用 GNU make 工具,这是最简单的方法。
+编译论文 \file{main.pdf}:
+\begin{shell}
+  make
+\end{shell}
+编译说明文档 \file{hfutthesis-doc.pdf}:
+\begin{shell}
+  make doc
+\end{shell}
+另外还可以用 \shellcmd{make clean} 清理辅助文件。
+
+\item |latexmk| \\
+Windows 用户可能无法使用GNU make,使用 |latexmk| 也是一个比较简单的方法,
+配置文件由 \file{latexmkrc} 给出,其参数设置为 |-xelatex|,用户编译论文
+只需使用命令:
+\begin{shell}
+  latexmk -xelatex main.tex
+\end{shell}
+编译说明文档:
+\begin{shell}
+  latexmk -xelatex hfuthesis-doc.tex
+\end{shell}
+清理辅助文件可以用 \shellcmd{latexmk -c}。图形界面用户应参考编辑器的使用说明。
+
+\item 手动编译 \\
+手动编译是最繁琐的方法,用户可能需要运行多遍,以确保论文的交叉引用等信息全部正确。
+
+编译论文 \file{main.pdf}:
+\begin{shell}
+  xelatex main.tex
+  bibtex main.aux
+  xelatex main.tex
+  xelatex main.tex
+\end{shell}
+编译说明文档 \file{hfutthesis-doc.pdf}:
+\begin{shell}
+  xelatex hfutthesis-doc.tex
+  xelatex hfutthesis-doc.tex
+\end{shell}
+\end{enumerate}
+
+
+
+\section{模板设置}
+
+
+\subsection{文档类参数}
+\DescribeOption{degree}
+选择学位,支持 \opt{bachelor}(默认),\opt{master},\opt{doctor}。
+\begin{latex}
+  \documentclass[degree=bachelor]{hfutthesis}
+\end{latex}
+
+\DescribeOption{degree-type}
+学位类型。可选:学术型 \opt{academic}(默认),专业型 \opt{professional}。
+\begin{latex}
+  \documentclass[degree-type=professional]{hfutthesis}
+\end{latex}
+
+\DescribeOption{language}
+论文全文的主要语言。可选:\opt{chinese}(默认),\opt{english}。
+\begin{latex}
+  \documentclass[language=english]{hfutthesis}
+\end{latex}
+
+\DescribeOption{output}
+输出 PDF 的类型:
+\begin{itemize}
+  \item \opt{print}(默认):用于双面打印纸质论文
+  \item \opt{electronic}:单面,并保留超链接颜色
+\end{itemize}
+\begin{latex}
+  \documentclass[output=electronic]{hfutthesis}
+\end{latex}
+
+\DescribeOption{section-style}
+章节标题的样式。可选:\opt{chinese}(默认),\opt{english}。
+\begin{itemize}
+  \item \opt{chinese}:汉字序号
+  \item \opt{arabic}:数字序号
+\end{itemize}
+\begin{latex}
+  \documentclass[section-style=arabic]{hfutthesis}
+\end{latex}
+
+
+\subsection{字体设置}
+模板默认会自动根据操作系统配置合适的字体,
+\DescribeOption{fontset}
+用户也可以通过 \opt{fontset} 时指定使用预设的字库,如:
+\begin{latex}
+  \documentclass[fontset=windows]{hfutthesis}
+\end{latex}
+允许的选项有 \opt{auto}(默认)、\opt{windows}、\opt{mac}、\opt{ubuntu}、\opt{fandol}和\opt{none}。
+具体使用的字体见表~\ref{tab:fontset}。
+用户也可以设置为 \opt{none} 并自行配置字体。
+
+\begin{table}[htb]
+  \centering
+  \caption{模板预设的字体}
+  \label{tab:fontset}
+  \begin{tabular}{cccc}
+    \toprule
+    \opt{windows} & \opt{mac}    & \opt{ubuntu} & \opt{fandol} \\
+    \midrule
+    Times New Roman  & Times New Roman & TeX Gyre Termes & TeX Gyre Termes \\
+    SimSun            & SimSun           & TeX Gyre Heros  & TeX Gyre Heros  \\
+    Courier          & Menlo           & TeX Gyre Cursor & TeX Gyre Cursor \\
+    中易宋体         & 华文宋体        & 思源宋体        & Fandol 宋体     \\
+    中易黑体         & 华文黑体        & 思源黑体        & Fandol 黑体     \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+
+然而自动配置的字体只能保证编译通过,但是还存在一些问题:
+\begin{enumerate}
+  \item 在其他平台上配置的 TeX Gyre 系列字体,虽然在风格上比较接近 Times 和 Arial,
+    但是毕竟跟《规范》的字体不完全一致;
+  \item Fandol 字库的字形较少,常常出现缺字的情况;
+  \item 华文字库和 Fandol 字库虽然不违反《规范》的要求,
+    但是其字形跟中易字库有所差别,可能被审查老师认为格式不符合要求。
+\end{enumerate}
+
+所以建议在提交最终版前使用 Windows 平台的字体进行编译。
+
+\subsection{更多设置}
+\DescribeOption{\textbackslash hfut at define@key}
+本模板对接口进行了初始化定义,如有更个性的需求,可在\file{hfutthesis.cls}中查看接口及缺省值并进行修改,如:
+\begin{latex}
+  \hfut at define@key{
+  degree = {
+    choices = {
+      doctor,
+      master,
+      bachelor,
+    },
+    default = bachelor,
+  },
+  ...
+  }
+\end{latex}
+修改\opt{default}的值为\opt{doctor}、\opt{master}和\opt{bachelor},即可修改学位默认类型。
+
+\begin{latex}
+  \hfut at define@key{
+  ugtype = {
+    default = {论文},
+  },
+  ... 
+  }
+\end{latex}
+修改\opt{default}的值为“其他名称”,ugtype的默认值即修改为“其他名称”。
+
+
+\section{论文内容}
+\subsection{内容顺序}
+根据《规范》,研究生论文和本科生论文在内容的要求上有所差异,用户需要根据\file{main.tex}中的注释提示进行调整。
+
+研究生论文的内容按照以下顺序排列:
+
+\begin{description}
+  \item[maketitle] 封面,原创性声明及授权使用说明
+  \item[frontmatter] 致谢,摘要,目录,图、表清单,(符号说明)
+  \item[mainmatter] 正文章节,参考文献
+  \item[appendix] 附录
+  \item[backmatter] 已发表论文列表
+\end{description}
+
+本科生论文的内容按照以下顺序排列:
+
+\begin{description}
+  \item[maketitle] 封面,原创性声明和授权使用声明
+  \item[frontmatter] 摘要,目录,图、表清单,(符号说明)
+  \item[mainmatter] 正文章节,参考文献
+  \item[backmatter] (已发表论文列表),致谢
+  \item[appendix] 附录
+\end{description}
+
+注:
+\begin{itemize}
+  \item  示例文档 \file{main.tex} 中的致谢、目录等章节的顺序,是按照本科生论文的格式组织内容的,因此研究生需要手动调整顺序。
+  \item  在某些部分中,本科生、硕士生和博士生的内容要求有细微的差异,需根据\file{main.tex}中的注释进行修改。例如,博士学位论文在原创性声明前有专家清单页,需去除注释。
+\end{itemize}
+ 
+
+
+\subsection{封面}
+
+“封面”的名字让人有些混淆,它既可以指由印刷厂统一制作的硬皮封面(cover),也可
+以指书打开后的第一页(title page)。在这里指的是后者,所以本模板从 title page
+开始。
+
+\DescribeMacro{\maketitle}
+\DescribeMacro{\copyrightpage}
+封面和声明页分别由 \cs{maketitle} 和 \cs{copyrightpage} 命令生成,
+其中的各项信息在\file{hfutsetup.tex}中的\cs{hfutsetup} 中修改,如:
+\begin{latex}
+  \hfutsetup{
+    title  = {论文中文题目},
+    title* = {Thesis English Title},
+  }
+\end{latex}
+模板提供的选项见表~\ref{tab:covercmds}(部分),
+\begin{table}[htb]
+  \centering\small
+  \caption{录入封面信息的命令}
+  \label{tab:covercmds}
+  \begin{tabular}{lll}
+    \toprule
+    命令                & 命令(英文)         & 说明       \\
+    \midrule
+    \opt{title}         & \opt{title*}         & 论文标题   \\
+    \opt{stuID}         & -                    & 学号   \\
+    \opt{author}        & \opt{author*}        & 作者姓名   \\
+    \opt{speciality}    & \opt{speciality*}    & 学科专业   \\
+    \opt{supervisor}    & \opt{supervisor*}    & 导师姓名   \\
+    \opt{secret-level}  & \opt{secret-level*}  & 密级       \\
+    \opt{secret-year}   & -                    & 保密年限   \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+
+有几点说明:
+\begin{itemize}
+  \item \cs{hfutsetup} 使用 \pkg{kvsetkeys} 机制,配置项之间不能有空行,否则会报错。
+  \item 其中带 |*| 后缀的选项用于设置英文封面。
+  \item 导师姓名 \opt{supervisor} 允许多个姓名,使用“,”(西文逗号 U+002C)隔开。
+  \item 完成时间 \opt{date}默认为当前日期,如需更改请取消注释并使用 ISO 格式。
+\end{itemize}
+
+
+\subsection{摘要和章节}
+对于特殊的章节,\cls{hfutthesis} 还提供了相应的环境:
+\begin{itemize}
+  \item 中文摘要:\env{abstract}
+  \item 英文摘要:\env{abstract*}
+  \item 符号说明:\env{notation}
+  \item 致谢:    \env{acknowledgements}
+  \item 发表成果:\env{publications}
+\end{itemize}
+
+摘要的关键词应使用 \cs{hfutsetup} 的接口进行设置,
+只要在摘要结束前即可,比如:
+\begin{latex}
+  \begin{abstract}
+    这里是摘要。
+    \hfutsetup{keywords = {论文;摘要;关键词}}
+  \end{abstract}
+\end{latex}
+
+目录和图、表清单可以使用命令自动生成:
+\begin{itemize}
+  \item 目录:  \cs{tableofcontents}
+  \item 图清单:\cs{listoffigures}
+  \item 表清单:\cs{listoftables}
+\end{itemize}
+
+
+\subsection{浮动体}
+
+学士学位论文要求图表中文标题,请使用\cs{caption}\marg{中文标题};硕博学位论文要求图表中英文标题,请使用\cs{bicaption}\marg{\{中文标题\}\{English title\}}。例如
+
+\begin{table}[h]
+  \centering
+   \caption{中文标题} % 默认:学士学位论文 图表中文标题
+  \label{tab:exampletable-zh}
+  \begin{tabular}{cl}
+    \toprule
+    类型   & 描述                                       \\
+    \midrule
+    挂线表 & 挂线表也称系统表、组织表,用于表现系统结构 \\
+    无线表 & 无线表一般用于设备配置单、技术参数列表等   \\
+    卡线表 & 卡线表有完全表,不完全表和三线表三种       \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+\begin{table}[h]
+  \centering
+  \bicaption{中文标题}{English Title} % 硕博学位论文 图表中英文标题
+   \label{tab:exampletable-zh-en}
+  \begin{tabular}{cl}
+    \toprule
+    类型   & 描述                                       \\
+    \midrule
+    挂线表 & 挂线表也称系统表、组织表,用于表现系统结构 \\
+    无线表 & 无线表一般用于设备配置单、技术参数列表等   \\
+    卡线表 & 卡线表有完全表,不完全表和三线表三种       \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+\DescribeMacro{\note}
+本模板还提供了 \cs{note}\marg{notes} 命令,用于在图表中添加注释。
+
+关于图片的并排,推荐使用较新的 \pkg{subcaption} 宏包,不建议使用
+\pkg{subfigure} 或 \pkg{subfig}。
+
+更多的表格样式参见 \pkg{booktabs}(三线表)、\pkg{longtable}(跨页表格)。
+
+算法可以使用 \pkg{algorithms} 宏包或者较新的 \pkg{algorithm2e}。
+
+\subsection{数学}
+
+《规范》要求数字和字母统一采用 Times New Roman体,与\TeX{} 默认的美国数学学会(AMS)的使用习惯可能有所出入。
+
+\DescribeOption{math-font}
+模板使用默认使用 XITS Math 作为数学字体。
+用户也可以使用 \opt{math-font} 选项切换其他数学字体,可选:
+\opt{stix}(STIX Two Math)、
+\opt{libertinus}(Libertinus Math)、
+\opt{newcm}(New Computer Modern Math)、
+\opt{cm}(Computer Modern Math)、
+\opt{lm}(Latin Modern Math)。
+
+其中 \opt{lm} 和 \opt{newcm} 的字形比较搭配 TeX 原生的 Computer Modern 字体,
+但与《规范》要求的西文字体 Times New Roman 并不搭配。
+可能会造成正文和公式中的数字字体不一致,需要谨慎使用。
+
+\DescribeOption{math-style}
+用户可以通过设置 \opt{math-style} 选择数学符号样式(可选:
+\opt{GB}(中文默认),\opt{TeX}(英文默认)和 \opt{ISO}),比如:
+\begin{latex}
+  \hfutsetup{
+    math-style = ISO,
+  }
+\end{latex}
+
+用户也可以逐项修改数学样式。
+\newcommand\dif{\mathop{}\!\mathrm{d}}
+\begin{enumerate}
+  \item \DescribeOption{uppercase-greek}
+    大写希腊字母的正/斜体,可选:\opt{italic}、\opt{upright}。
+    有限增量符号 $\increment x$ 固定使用正体,推荐使用 \cs{increment} 表示。
+  \item \DescribeOption{less-than-or-equal}
+    小于等于号和大于等于号的字形,可选:\opt{slanted}、\opt{horizontal}。
+    这将控制 \cs{le}、\cs{ge}、\cs{leq} 和 \cs{geq} 的符号
+    是“$\leqslant$、$\geqslant$”还是“$\leq$、$\geq$”。
+  \item \DescribeOption{integral}
+    积分号的正/斜体,可选:\opt{upright}、\opt{slanted}。
+    该选项需要字体的支持,目前仅限 \opt{xits}、\opt{stix}、
+    \opt{libertinus} 和 \opt{newcm}。参考下文关于数学字体的选择。
+  \item \DescribeOption{integral-limits}
+    积分号上下限的位置,可选:\opt{true}(在上下)、\opt{false}(在右侧)。
+    这个设置只影响行间公式,行内公式统一居右侧,不受影响。
+  \item \DescribeOption{partial}
+    偏微分符号的正/斜体,可选:\opt{upright}、\opt{slanted}。
+  \item \DescribeOption{math-ellipsis}
+    省略号 \cs{dots} 的样式,可选:\opt{centered}(按照中文的习惯固定居中)、
+    \opt{lower} 和 \opt{AMS}(取决于前后符号的位置)。
+    其他的省略号命令如 \cs{lots}、\cs{cdots} 则不受影响。
+  \item \DescribeOption{real-part}
+    实部 \cs{Re} 和虚部 \cs{Im} 的字体,可选:\opt{roman} 和 \opt{fraktur}。
+\end{enumerate}
+
+如果数学符号选择国标样式 |math-style = GB|,相当于设置了
+\begin{latex}
+  \hfutsetup{
+    uppercase-greek    = italic,
+    less-than-or-equal = slanted,
+    integral           = upright,
+    integral-limits    = true,
+    partial            = upright,
+    math-ellipsis      = centered,
+    real-part          = roman,
+  }
+\end{latex}
+
+另外,国标的数学样式与 AMS 还有些差异,但无法在模板中统一设置。用户需要在写作时进行处理。
+\begin{enumerate}
+  \item 数学常数和特殊函数名用正体,如 $\uppi = 3.14\dots$;$\symup{i}^2 = -1$;
+    $\symup{e} = \lim_{n \to \infty} \left( 1 + \frac{1}{n} \right)^n$。
+  \item 微分号使用正体,比如 $\dif y / \dif x$。
+  \item 向量、矩阵和张量用粗斜体(\cs{symbf}),如 $\symbf{x}$、$\symbf{\Sigma}$、$\symbfsf{T}$。
+  \item 自然对数用 $\ln x$ 不用 $\log x$。
+\end{enumerate}
+
+需要注意,上述关于数学符号风格的设置在设置数学字体(\opt{math-font})时才会生效。
+
+以上字体都是 OpenType 格式的字体,需要配合
+\href{http://mirrors.ctan.org/macros/latex/contrib/unicode-math/unicode-math.pdf}{\pkg{unicode-math}}
+宏包使用。
+全部数学符号的命令参考
+\href{http://mirrors.ctan.org/macros/latex/contrib/unicode-math/unimath-symbols.pdf}{\pkg{unimath-symbols}}。
+注意,\pkg{unicode-math} 宏包与 \pkg{amsfonts}、\pkg{amssymb}、\pkg{bm}、
+\pkg{mathrsfs}、\pkg{upgreek} 等宏包\emph{不}兼容。
+模板作了处理,用户可以直接使用这些宏包的命令,如 \cs{bm}、\cs{mathscr}、
+\cs{uppi}。
+
+另外,模板还为 `math-font` 提供了传统的 Type 1 字体 \opt{newtx}。
+该选项会调用 \pkg{newtxmath} 宏包。
+但是,如果西文字体已经使用了 OpenType 的 Times New Roman,
+混用 Type 1 字体可能会导致问题,尤其是使用 \pkg{siunitx} 宏包时。
+该选项还处于测试阶段,需要谨慎使用。
+
+\subsection{参考文献}
+
+参考文献支持使用 \BibTeX{} 或 BibLaTeX 生成。默认使用\BibTeX{}生成,用户可以根据需求在\file{hfutsetup.tex}中选择合适的方式。
+
+
+\subsubsection{\BibTeX}
+
+\BibTeX{} 是 \LaTeX{} 处理参考文献的传统的方式。
+在本模板中需要载入 \pkg{natbib} 宏包,
+然后按照“顺序编码制”格式选择参考文献格式风格:
+\begin{latex}
+  % HFUT学位论文样例 参考文献的著录格式
+  \usepackage[sort]{natbib}
+  \bibliographystyle{hfutthesis-numerical}
+\end{latex}
+
+\begin{latex}
+  % gbt7714-2015 参考文献的著录格式
+  \usepackage[sort]{natbib}
+  \bibliographystyle{gbt7714-numerical}
+\end{latex}
+
+\begin{latex}
+  % 备用方案
+  \usepackage[sort]{natbib}
+  \bibliographystyle{hfutthesis-graduate}
+\end{latex}
+
+并且在生成参考文献表的位置使用 \cs{bibliography} 设置 \file{.bib} 数据库的路径。
+然后使用 \file{bibtex} 编译生成 \file{.bbl} 文件。
+这里使用参考文献样式(\file{.bst} 文件)是在
+\href{https://ctan.org/pkg/gbt7714}{\pkg{gbt7714}}
+的基础上进行了少量修改。
+
+顺序编码制的文内引用标注分为两种样式:
+\begin{enumerate}
+  \item 上标样式(\opt{super}), 如“张教授\textsuperscript{[2-3]}认为……
+    形成了多种物理模型\textsuperscript{[7,9,11-13]}”。
+  \item 与正文平排(\opt{inline}),文献序号作为叙述文字的一部分,
+    如“张教授\textsuperscript{[4]}认为……根据文献[4]\textsuperscript{101-105}”。
+\end{enumerate}
+\textbf{模板默认为上标样式},也可以根据需要修改:
+
+\DescribeOption{cite-style}
+参考文献的样式。可选:\opt{super}(默认),\opt{inline}。
+\begin{itemize}
+  \item \opt{super}:上标样式
+  \item \opt{inline}:与正文平排
+\end{itemize}
+\begin{latex}
+  \documentclass[cite-style=inline]{hfutthesis}
+\end{latex}
+或者
+\begin{latex}
+  \hfutsetup{
+    cite-style = inline,
+  }
+\end{latex}
+
+\paragraph{与 \pkg{chapterbib} 的兼容性}
+如果在每一章添加独立的参考文献,可以使用 \pkg{chapterbib} 宏包。
+需要注意以下几点:
+\begin{enumerate}
+  \item \pkg{chapterbib} 宏包与 \pkg{natbib} 的载入顺序不重要。
+  \item 根据 \pkg{natbib} 的文档,\opt{sectionbib} 参数(将参考文献的标题改为节标题)
+    需要传给 \pkg{natbib} 而不是 \pkg{chapterbib}。
+    模板作了设置,如载入 \pkg{chapterbib},\pkg{natbib} 就会有 \opt{sectionbib} 的效果。
+  \item 每章的内容需要写在单独的 \file{tex} 文件,并且在主文档中使用 \cs{include},
+    不带 \file{.tex} 后缀。
+  \item 每章都要使用 \cs{bibliographystyle} 和 \cs{bibliography} 命令。
+\end{enumerate}
+
+用户可在\file{hfutthesis-numeric.bst}中的load.config函数中来自定义更详细的样式,表\ref{canshu}列出了一些常用的参数值,\# 1表示被启用,\# 0则不启用。
+\textbf{默认值遵循《\href{http://xwgl.hfut.edu.cn/2021/0419/c1975a253949/page.htm}{合肥工业大学研究生学位论文写作规范}》,与国标的配置有部分出入。}
+有关国标的配置可参考\href{https://ctan.org/pkg/gbt7714}{\pkg{gbt7714}}。
+
+\begin{table}
+  \caption{参考文献表样式的配置参数}\label{canshu}
+  \begin{tabular}{lcl}
+    \hline 参数值 & 默认值 & 功能 \\
+    \hline uppercase.name & \#0 & 将著者姓名转为大写 \\
+     sentence.case.title & \#1 & 将西文的题名转为 sentence case \\
+    link.title &\#0 & 在题名上添加 url 的超链接 \\
+    show.mark & \#0 & 显示文献类型标识 \\
+    italic.jounal & \#1 & 西文期刊名使用斜体 \\
+    show.missing.address.publisher & \#0 & 出版项缺失时显示“出版者不详” \\
+    show.url & \#1 & 显示 url \\
+    show.doi & \#1 & 显示 doi \\
+    show.note & \#0 & 显示 note 域的信息 \\
+    \hline
+    \end{tabular}
+\end{table}
+
+\subsubsection{BibLaTeX}
+
+BibLaTeX 是较新的参考文献处理方案。
+需要在载入宏包时通过选择样式(\opt{style}),
+并且在导言区使用 \cs{addbibresource} 设置数据库的路径,
+最后在参考文献表的位置使用 \cs{printbibliography} 输出。
+
+对于顺序编码制,文献引用标注默认为上标样式。
+如果要切换为与正文平排,一种方法是使用 \cs{parencite},
+另一种是载入 \pkg{biblatex} 时统一设置。
+\begin{latex}
+  \usepackage[bibstyle=hfutthesis-numeric,
+  citestyle=hfutthesis-inline]{biblatex}
+\end{latex}
+
+使用 BibLaTeX 必须用 \file{biber} 编译生成参考文献表。
+这里的样式是在 \href{https://ctan.org/pkg/biblatex-gb7714-2015}{biblatex-gb7714-2015}
+的基础上进行了少量修改。
+一些额外用法可以参考该宏包的文档。
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.pdf	2022-07-30 20:41:00 UTC (rev 64008)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.pdf	2022-07-30 20:41:51 UTC (rev 64009)

Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.tex	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,58 @@
+% !TeX encoding = UTF-8
+% !TeX program = xelatex
+% !TeX spellcheck = en_US
+
+\documentclass[degree=bachelor]{hfutthesis}
+% degree      = doctor | master | bachelor
+% degree-type = academic | professional
+% language    = chinese | english
+% fontset     = windows | mac | ubuntu | fandol
+
+% 加载宏包、全部的配置
+\input{hfutsetup.tex}
+
+
+\begin{document}
+
+% 研究生论文:
+%   封面,原创性声明和授权使用声明
+%   frontmatter: 致谢,摘要,目录,图、表清单,[符号说明]
+%   mainmatter: 正文章节,参考文献
+%   appendix: 附录
+%   backmatter: 已发表论文列表
+%
+% 本科生论文:
+%   封面,原创性声明和授权使用声明
+%   frontmatter: 摘要,目录,图、表清单,[符号说明]
+%   mainmatter: 正文章节,参考文献
+%   backmatter: [已发表论文列表],致谢
+%   appendix: 附录
+
+
+\maketitle
+% \input{hfut-chapters/expertspage.tex} % 专家清单页,如果是 博士学位论文,请将注释去掉。
+\signaturepage
+\copyrightpage
+
+\frontmatter
+% \input{hfut-chapters/acknowledgements.tex} % 致谢页,硕博 请将该行注释去掉。
+\input{hfut-chapters/abstract.tex}
+\tableofcontents
+\listoffigures
+\listoftables
+\input{hfut-chapters/notation.tex} % [符号说明]
+
+\mainmatter
+\input{hfut-chapters/intro.tex}
+\input{hfut-chapters/floats.tex}
+\input{hfut-chapters/math.tex}
+\input{hfut-chapters/citations.tex}
+
+\backmatter
+\bibliography{hfut-bib/hfut}  % 参考文献使用 BibTeX 编译
+% \printbibliography       % 参考文献使用 BibLaTeX 编译
+\input{hfut-chapters/publications.tex} % 已发表论文列表
+\input{hfut-chapters/acknowledgements.tex} % 致谢页,本科生 请将该行注释去掉。
+\appendix % 附录
+\input{hfut-chapters/complementary.tex}
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/xelatex/hfutthesis/hfutthesis-example.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/xelatex/hfutthesis/hfutthesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/hfutthesis/hfutthesis.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/xelatex/hfutthesis/hfutthesis.cls	2022-07-30 20:41:51 UTC (rev 64009)
@@ -0,0 +1,3735 @@
+%
+% Copyright (C) 2015-2021 by USTC TeX Users Group <https://github.com/ustctug>
+%
+% hfutthesis developed by HFUT TeX Users Group <https://github.com/HFUTTUG> on the 
+% base of ustcthesis <https://github.com/usthtug/ustcthesis>.
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%    https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+
+\NeedsTeXFormat{LaTeX2e}[2017/04/15]
+\newcommand\hfutthesisversion{v1.0.4}
+\ProvidesClass{hfutthesis}[2022/04/09 {\hfutthesisversion} hfut thesis template]
+
+% 报错和警告
+\newcommand\hfut at error[1]{%
+  \ClassError{hfutthesis}{#1}{}%
+}
+\newcommand\hfut at warning[1]{%
+  \ClassWarning{hfutthesis}{#1}%
+}
+
+% 检查 \LaTeXe{} kernel 版本
+\@ifl at t@r\fmtversion{2017/04/15}{}{
+  \hfut at error{%
+    TeX Live 2017 or later version is required to compile this document%
+  }
+}
+
+% 检查编译引擎,要求使用 XeLaTeX。
+\RequirePackage{iftex}
+\ifXeTeX\else
+  \hfut at error{XeLaTeX is required to compile this document}
+\fi
+
+
+% \subsection{处理选项}
+
+\RequirePackage{kvdefinekeys}
+\RequirePackage{kvsetkeys}
+\RequirePackage{kvoptions}
+
+% 提供一个 \cs{hfutsetup} 命令支持 \emph{key-value} 的方式来设置。
+\let\hfut at setup@hook\@empty
+\newcommand\hfutsetup[1]{%
+  \let\hfut at setup@hook\@empty
+  \kvsetkeys{hfut}{#1}%
+  \hfut at setup@hook
+}
+
+% 同时用 \emph{key-value} 的方式来定义这些接口:
+% \begin{latex}
+%   \hfut at define@key{
+%     <key> = {
+%       name = <name>,
+%       choices = {
+%         <choice1>,
+%         <choice2>,
+%       },
+%       default = <default>,
+%       code = <code>,
+%     },
+%   }
+% \end{latex}
+
+% 其中 |choices| 设置允许使用的值,默认为第一个(或者 \meta{default});
+% \meta{code} 是相应的内容被设置时执行的代码。
+
+\newcommand\hfut at define@key[1]{%
+  \kvsetkeys{hfut at key}{#1}%
+}
+\kv at set@family at handler{hfut at key}{%
+%
+% \cs{hfutsetup} 会将 \meta{value} 存到 \cs{hfut@\meta{key}},
+% 但是宏的名字包含 “-” 这样的特殊字符时不方便直接调用,比如 |key = math-style|,
+% 这时可以用 |name| 设置 \meta{key} 的别称,比如 |key = math at style|,
+% 这样就可以通过 \cs{hfut at math@style} 来引用。
+% |default| 是定义该 \meta{key} 时默认的值,缺省为空。
+%
+  \@namedef{hfut@#1@@name}{#1}%
+  \def\hfut@@default{}%
+  \def\hfut@@choices{}%
+  \kv at define@key{hfut at value}{name}{%
+    \@namedef{hfut@#1@@name}{##1}%
+  }%
+  %
+  % 由于在定义接口时,\cs{hfut@\meta{key}@@code} 不一定有定义,
+  % 而且在文档类/宏包中还有可能对该 |key| 的 |code| 进行添加。
+  % 所以 \cs{hfut@\meta{key}@@code} 会检查如果在定义文档类/宏包时则推迟执行,否则立即执行。
+  %
+  \@namedef{hfut@#1@@check}{}%
+  \@namedef{hfut@#1@@code}{}%
+  %
+  % 保存下 |choices = {}| 定义的内容,在定义 \cs{hfut@\meta{name}} 后再执行。
+  %
+  \kv at define@key{hfut at value}{choices}{%
+    \def\hfut@@choices{##1}%
+    \@namedef{hfut@#1@@reset}{}%
+    %
+    % \cs{hfut@\meta{key}@check} 检查 |value| 是否有效,
+    % 并设置 \cs{ifhfut@\meta{name}@\meta{value}}。
+    %
+    \@namedef{hfut@#1@@check}{%
+      \@ifundefined{%
+        ifhfut@\@nameuse{hfut@#1@@name}@\@nameuse{hfut@\@nameuse{hfut@#1@@name}}%
+      }{%
+        \hfut at error{Invalid value "#1 = \@nameuse{hfut@\@nameuse{hfut@#1@@name}}"}%
+      }%
+      \@nameuse{hfut@#1@@reset}%
+      \@nameuse{hfut@\@nameuse{hfut@#1@@name}@\@nameuse{hfut@\@nameuse{hfut@#1@@name}}true}%
+    }%
+  }%
+  \kv at define@key{hfut at value}{default}{%
+    \def\hfut@@default{##1}%
+  }%
+  \kvsetkeys{hfut at value}{#2}%
+  \@namedef{hfut@\@nameuse{hfut@#1@@name}}{}%
+  %
+  % 第一个 \meta{choice} 设为 \meta{default},
+  % 并且对每个 \meta{choice} 定义 \cs{ifhfut@\meta{name}@\meta{choice}}。
+  %
+  \kv at set@family at handler{hfut at choice}{%
+    \ifx\hfut@@default\@empty
+      \def\hfut@@default{##1}%
+    \fi
+    \expandafter\newif\csname ifhfut@\@nameuse{hfut@#1@@name}@##1\endcsname
+    \expandafter\g at addto@macro\csname hfut@#1@@reset\endcsname{%
+      \@nameuse{hfut@\@nameuse{hfut@#1@@name}@##1false}%
+    }%
+  }%
+  \kvsetkeys at expandafter{hfut at choice}{\hfut@@choices}%
+  %
+  % 将 \meta{default} 赋值到 \cs{hfut@\meta{name}},如果非空则执行相应的代码。
+  %
+  \expandafter\let\csname hfut@\@nameuse{hfut@#1@@name}\endcsname\hfut@@default
+  \expandafter\ifx\csname hfut@\@nameuse{hfut@#1@@name}\endcsname\@empty\else
+    \@nameuse{hfut@#1@@check}%
+  \fi
+  %
+  % 定义 \cs{hfutsetup} 接口。
+  %
+  \kv at define@key{hfut}{#1}{%
+    \@namedef{hfut@\@nameuse{hfut@#1@@name}}{##1}%
+    \@nameuse{hfut@#1@@check}%
+    \@nameuse{hfut@#1@@code}%
+  }%
+}
+
+% 定义接口向 |key| 添加 |code|:
+
+\newcommand\hfut at option@hook[2]{%
+  \expandafter\g at addto@macro\csname hfut@#1@@code\endcsname{#2}%
+}
+
+\hfut at define@key{
+  degree = {
+    choices = {
+      doctor,
+      master,
+      bachelor,
+    },
+    default = bachelor,
+  },
+  degree-type = {
+    name = degree at type,
+    choices = {
+      academic,
+      professional,
+    },
+    default = academic,
+  },
+  main-language = {
+    name = main at language,
+    choices = {
+      chinese,
+      english,
+    },
+    default = chinese,
+  },
+  language = {
+    choices = {
+      chinese,
+      english,
+    },
+    default = chinese,
+  },
+  system = {
+    choices = {
+      auto,
+      mac,
+      unix,
+      windows,
+    },
+    default = auto,
+  },
+  fontset = {
+    choices = {
+      auto,
+      windows,
+      mac,
+      ubuntu,
+      fandol,
+      none,
+    },
+    default = auto,
+  },
+  font = {
+    choices = {
+      auto,
+      times,
+      termes,
+      stix,
+      xits,
+      libertinus,
+      newcm,
+      lm,
+      newtx,
+      none,
+    },
+    default = auto,
+  },
+  cjk-font = {
+    name = cjk at font,
+    choices = {
+      auto,
+      windows,
+      mac,
+      noto,
+      fandol,
+      none,
+    },
+    default = auto,
+  },
+  math-font = {
+    name = math at font,
+    choices = {
+      auto,
+      stix,
+      xits,
+      libertinus,
+      newcm,
+      cm,
+      lm,
+      newtx,
+      none,
+    },
+    default = auto,
+  },
+  math-style = {
+    name = math at style,
+    choices = {
+      GB,
+      ISO,
+      TeX,
+    },
+  },
+  uppercase-greek = {
+    name = uppercase at greek,
+    choices = {
+      italic,
+      upright,
+    },
+  },
+  less-than-or-equal = {
+    name = leq,
+    choices = {
+      slanted,
+      horizontal,
+    },
+  },
+  integral = {
+    choices = {
+      upright,
+      slanted,
+    },
+  },
+  integral-limits = {
+    name = integral at limits,
+    choices = {
+      true,
+      false,
+    },
+  },
+  partial = {
+    choices = {
+      upright,
+      italic,
+    },
+  },
+  math-ellipsis = {
+    name = math at ellipsis,
+    choices = {
+      centered,
+      lower,
+      AMS,
+    },
+  },
+  real-part = {
+    name = real at part,
+    choices = {
+      roman,
+      fraktur,
+    },
+  },
+  cite-style = {
+    name = cite at style,
+    choices = {
+      super,
+      inline,
+      authoryear,
+    },
+    default = super,
+  },
+  output = {
+    choices = {
+      print,
+      electronic,
+    },
+    default = print,
+  },
+  section-style = {
+    name = section at style,
+    choices = {
+      chinese,
+      arabic,
+    },
+    default = chinese,
+  },
+  badge-color = {
+    name = badge at color,
+    choices = {
+      red,
+      black,
+    },
+    default = red,
+  },
+}
+
+\newif\ifhfut at degree@graduate
+\newcommand\hfut at set@graduate{%
+  \ifhfut at degree@bachelor
+    \hfut at degree@graduatefalse
+  \else
+    \hfut at degree@graduatetrue
+  \fi
+}
+\hfut at set@graduate
+\hfut at option@hook{degree}{%
+  \hfut at set@graduate
+}
+
+% 使用 \pkg{kvoptions} 提供的 key-value 接口,
+\SetupKeyvalOptions{
+  family  = hfut,
+  prefix  = hfut@,
+  setkeys = \kvsetkeys,
+}
+
+% 设置默认 \option{openany}。
+\DeclareBoolOption[false]{openright}
+\DeclareComplementaryOption{openany}{openright}
+
+% 兼容旧版本的文档类选项。
+% Reserved for compatibility until 2020-07-01.
+\DeclareVoidOption{doctor}{\hfutsetup{degree=doctor}}
+\DeclareVoidOption{master}{\hfutsetup{degree=master}}
+\DeclareVoidOption{bachelor}{\hfutsetup{degree=bachelor}}
+\DeclareVoidOption{chinese}{\hfutsetup{language=chinese}}
+\DeclareVoidOption{english}{\hfutsetup{language=english}}
+\DeclareVoidOption{academic}{\hfutsetup{degree-type=academic}}
+\DeclareVoidOption{professional}{\hfutsetup{degree-type=professional}}
+\DeclareVoidOption{print}{\hfutsetup{output=print}}
+\DeclareVoidOption{pdf}{\hfutsetup{output=electronic}}
+\newif\ifhfut at legacy@cite at style
+\DeclareVoidOption{super}{\hfutsetup{cite-style=super}\hfut at legacy@cite at styletrue}
+\DeclareVoidOption{numbers}{\hfutsetup{cite-style=inline}\hfut at legacy@cite at styletrue}
+\DeclareVoidOption{authoryear}{\hfutsetup{cite-style=authoryear}\hfut at legacy@cite at styletrue}
+\DeclareVoidOption{arabic}{\hfutsetup{section-style=arabic}}
+\DeclareVoidOption{colorlogo}{\hfutsetup{badge-color=red}}
+\DeclareVoidOption{bwlogo}{\hfutsetup{badge-color=black}}
+
+% 载入 \cls{ctexbook}。
+\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}}
+\ProcessKeyvalOptions*
+
+
+% \subsection{加载文档类和宏包}
+
+\ifhfut at openright
+  \PassOptionsToClass{openright}{book}
+\else
+  \PassOptionsToClass{openany}{book}
+\fi
+
+\ifhfut at output@electronic
+  \PassOptionsToClass{oneside}{book}
+\fi
+\PassOptionsToPackage{no-math}{fontspec}
+
+% 载入 \cls{ctexbook} 文档类,注意要求为 2.4.9 或更高的版本。
+\LoadClass[UTF8,a4paper,scheme=plain,zihao=-4,fontset=none]{ctexbook}[2017/04/01]
+
+% 建议在模板开始处载入全部宏包,不要轻易改变加载顺序。
+% \pkg{hyperref} 一般在最后加载。
+\RequirePackage{etoolbox}
+\RequirePackage{amsmath}
+\RequirePackage{fontspec}[2017/03/31]
+\RequirePackage[driver=xetex]{geometry}
+\RequirePackage{graphicx}
+\RequirePackage{fancyhdr}
+\RequirePackage{color}
+\RequirePackage{titletoc}
+\RequirePackage{caption}
+\RequirePackage[perpage]{footmisc}
+\RequirePackage{url}
+\RequirePackage{calc}
+\RequirePackage[normalem]{ulem} % 提供排版可断行下划线的命令\uline
+\RequirePackage{multirow} % 纵向合并单元格
+\RequirePackage{enumitem} % enumberate
+\RequirePackage[list=off]{bicaption} % 图表中英文标题
+
+% 如果用户在导言区未调用 \pkg{biblatex},则自动调用 \pkg{natbib}。
+\AtEndPreamble{
+  \@ifpackageloaded{biblatex}{}{
+    \RequirePackage{natbib}
+  }
+}
+
+% 对冲突的宏包报错。
+\RequirePackage{filehook}
+\newcommand\hfut at package@conflict[2]{
+  \AtEndOfPackageFile*{#1}{%
+    \AtBeginOfPackageFile*{#2}{%
+      \hfut at error{The "#2" package is incompatible with "#1"}%
+    }%
+  }%
+}
+
+\hfut at package@conflict{biblatex}{bibunits}
+\hfut at package@conflict{biblatex}{chapterbib}
+\hfut at package@conflict{biblatex}{cite}
+\hfut at package@conflict{biblatex}{multibib}
+\hfut at package@conflict{biblatex}{natbib}
+
+\hfut at package@conflict{bibunits}{biblatex}
+\hfut at package@conflict{bibunits}{chapterbib}
+\hfut at package@conflict{bibunits}{multibib}
+
+\hfut at package@conflict{unicode-math}{amscd}
+\hfut at package@conflict{unicode-math}{amsfonts}
+\hfut at package@conflict{unicode-math}{amssymb}
+\hfut at package@conflict{unicode-math}{bbm}
+\hfut at package@conflict{unicode-math}{bm}
+\hfut at package@conflict{unicode-math}{eucal}
+\hfut at package@conflict{unicode-math}{eufrak}
+\hfut at package@conflict{unicode-math}{mathrsfs}
+\hfut at package@conflict{unicode-math}{newtxmath}
+\hfut at package@conflict{unicode-math}{upgreek}
+
+\hfut at package@conflict{natbib}{biblatex}
+\hfut at package@conflict{natbib}{cite}
+
+\hfut at package@conflict{newtxmath}{amsfonts}
+\hfut at package@conflict{newtxmath}{amssymb}
+\hfut at package@conflict{newtxmath}{unicode-math}
+\hfut at package@conflict{newtxmath}{upgreek}
+
+
+% \pkg{mathtools} 需要在 \pkg{unicode-math} 前载入,
+% 参考 \url{https://tex.stackexchange.com/q/521394/82731}。
+\AtBeginOfPackageFile*{mathtools}{
+  \@ifpackageloaded{unicode-math}{
+    \hfut at error{The "mathtools" package should be loaded before setting "math-font"}
+  }{}
+}%
+
+% \pkg{amsthm} 需要在 \pkg{newtx} 前载入,参考 \pkg{newtx} 的文档。
+\AtBeginOfPackageFile*{amsthm}{
+  \@ifpackageloaded{newtxmath}{
+    \hfut at error{The "amsthm" package should be loaded before setting "newtxmath"}
+  }{}
+}%
+
+
+
+% \subsection{处理语言}
+
+% 定义 \cs{hfut at main@language},当在导言区修改 \option{language} 时,
+% 保存为论文的主要语言;
+% \cs{hfut at reset@main at language} 则用于正文中恢复为主要语言。
+%    \begin{macrocode}
+\hfutsetup{main-language=\hfut at language}%
+\let\hfut at main@language\hfut at language
+
+\hfut at option@hook{language}{%
+  \ifx\@begindocumenthook\@undefined\else
+    \hfutsetup{main-language=\hfut at language}%
+    \let\hfut at main@language\hfut at language
+  \fi
+}
+\newcommand\hfut at reset@main at language{%
+  \hfutsetup{language = \hfut at main@language}%
+  \let\hfut at language\hfut at main@language
+}
+
+% 带圈数字和星号使用中文字体。
+\xeCJKDeclareCharClass{CJK}{"2460 -> "2473}
+\xeCJKDeclareCharClass{CJK}{"2605}
+
+% 由于 Unicode 的一些标点符号是中西文混用的:
+% U+00B7、U+2013、U+2014、U+2018、U+2019、
+% U+201C、U+201D、U+2025、U+2026、U+2E3A,
+% 所以要根据语言设置正确的字体。
+% https://github.com/CTeX-org/ctex-kit/issues/389
+\newcommand\hfut at set@punctuations{%
+  \ifhfut at language@chinese
+    \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}%
+    \xeCJKDeclareCharClass{FullRight}{
+      "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
+    }%
+  \else
+    \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}%
+    \xeCJKDeclareCharClass{HalfRight}{
+      "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
+    }%
+  \fi
+}
+\hfut at set@punctuations
+\hfut at option@hook{language}{\hfut at set@punctuations}
+
+% 根据语言设置各章节的名称,只有在导言区设置 \option{language} 时会修改,
+% 而在正文局部切换语言时则不变。
+
+% 由于《撰写手册》中的“speciality”一词使用的是英式拼法,
+% 所以“acknowledgements”也保持一致。
+\newcommand\hfut at set@chapter at names{%
+  \ifhfut at main@language at chinese
+    \def\contentsname{目\hspace{\ccwd}录}%
+    \def\listfigurename{插图清单}%
+    \def\listtablename{表格清单}%
+    \ctexset{
+      chapter/name   = {第,章},
+    }%
+    \def\bibname{参考文献}%
+    \def\appendixname{附录}%
+    \ifhfut at degree@bachelor
+      \def\hfut at acknowledgements@name{致谢}%
+    \else
+      \def\hfut at acknowledgements@name{致\hspace{\ccwd}谢}%
+    \fi
+    \ifhfut at degree@bachelor
+      \def\hfut at publication@name{攻读学士学位期间的学术活动及成果情况}%
+    \else
+      \ifhfut at degree@master
+        \def\hfut at publication@name{攻读硕士学位期间的学术活动及成果情况}%
+      \else
+        \def\hfut at publication@name{攻读博士学位期间的学术活动及成果情况}%
+      \fi
+    \fi
+    \newcommand\hfut at notation@name{符号说明}%
+  \else
+    \def\contentsname{Contents}%
+    \def\listfigurename{List of Figures}%
+    \def\listtablename{List of Tables}%
+    \ctexset{
+      chapter/name   = {\chaptername\space},
+    }%
+    \def\bibname{Bibliography}%
+    \def\appendixname{Appendix}%
+    \def\hfut at acknowledgements@name{Acknowledgements}%
+    \def\hfut at publication@name{Publications}%
+    \def\hfut at notation@name{Notation}%
+  \fi
+}
+\hfut at set@chapter at names
+\hfut at option@hook{main-language}{\hfut at set@chapter at names}
+
+% 这部分名称在正文中局部地修改语言时会发生变化。
+\newcommand\hfut at set@names{%
+  \ifhfut at language@chinese
+    \def\figurename{图}%
+    \def\tablename{表}%
+  \else
+    \def\figurename{Fig}%
+    \def\tablename{Tab}%
+  \fi
+}
+\hfut at set@names
+\hfut at option@hook{language}{\hfut at set@names}
+
+
+% \subsection{字体}
+
+% 字号
+
+% 正文字号12bp,研究生行距20bp,本科生行距22bp;
+% 其他命令的行距按照相同的的比例设置,如表~\ref{tab:fontsize}。
+% \begin{table}[htb]
+%   \centering
+%   \caption{标准字体命令与字号、行距的对应}
+%   \label{tab:fontsize}
+%   \begin{tabular}{lllll}
+%     \toprule
+%     字体命令          & 字号 & bp   & 研究生行距 & 本科生行距 \\
+%     \midrule
+%     \cs{tiny}         & 小六 & 6.5  & 10.83      & 11.92      \\
+%     \cs{scriptsize}   & 六号 & 7.5  & 12.5       & 13.75      \\
+%     \cs{footnotesize} & 小五 & 9    & 15         & 16.5       \\
+%     \cs{small}        & 五号 & 10.5 & 17.5       & 19.25      \\
+%     \cs{normalsize}   & 小四 & 12   & 20         & 22         \\
+%     \cs{large}        & 小三 & 15   & 25         & 27.5       \\
+%     \cs{Large}        & 小二 & 18   & 30         & 33         \\
+%     \cs{LARGE}        & 二号 & 22   & 36.67      & 40.33      \\
+%     \cs{huge}         & 小一 & 24   & 40         & 44         \\
+%     \cs{Huge}         & 一号 & 26   & 43.33      & 47.67      \\
+%     \bottomrule
+%   \end{tabular}
+% \end{table}
+%
+% 注意重定义 \normalsize 应在 \pkg{unicode-math} 的 \cs{setmathfont} 前。
+\newcommand\hfut at set@font at size{%
+  \ifhfut at degree@graduate
+    \renewcommand\normalsize{%
+      \@setfontsize\normalsize{12bp}{20bp}%
+      \abovedisplayskip 12bp \@plus3bp \@minus7bp%
+      \abovedisplayshortskip \z@ \@plus3bp%
+      \belowdisplayshortskip 6.5bp \@plus3.5bp \@minus3bp%
+      \belowdisplayskip \abovedisplayskip
+      \let\@listi\@listI}%
+    %
+    % 注意第~\ref{sec:list} 节去掉了列表的间距,所以不再修改 \cs{@listi}。
+  \else
+    \renewcommand\normalsize{%
+      \@setfontsize\normalsize{12bp}{22bp}%
+      \abovedisplayskip 12bp \@plus3bp \@minus7bp%
+      \abovedisplayshortskip \z@ \@plus3bp%
+      \belowdisplayshortskip 6.5bp \@plus3.5bp \@minus3bp%
+      \belowdisplayskip \abovedisplayskip
+      \let\@listi\@listI}%
+  \fi
+  \normalsize
+  \ifx\MakeRobust\@undefined \else
+      \MakeRobust\normalsize
+  \fi
+}
+\hfut at set@font at size
+\hfut at option@hook{degree}{\hfut at set@font at size}
+
+% 设置行距的倍数为 1。
+\linespread{1}\selectfont
+
+
+% 检测系统
+\ifhfut at system@auto
+  \IfFileExists{/System/Library/Fonts/Menlo.ttc}{
+    \hfutsetup{system = mac}
+  }{
+    \IfFileExists{/dev/null}{
+      \IfFileExists{null:}{
+        \hfutsetup{system = windows}
+      }{
+        \hfutsetup{system = unix}
+      }
+    }{
+      \hfutsetup{system = windows}
+    }
+  }
+\fi
+
+% 处理 \opt{fontset}
+\ifhfut at fontset@auto
+  \ifhfut at system@windows
+    \hfutsetup{fontset = windows}
+  \else
+    \ifhfut at system@mac
+      \hfutsetup{fontset = mac}
+    \else
+      \IfFontExistsTF{Noto Serif CJK SC}{
+        \hfutsetup{fontset = ubuntu}
+      }{
+        \hfutsetup{fontset = fandol}
+      }
+    \fi
+  \fi
+\fi
+
+% 《撰写手册》要求西文字体使用 Times New Roman 和 Arial,
+% 但是在 Linux 下没有这两个字体,所以使用它们的克隆版 TeX Gyre Termes 和
+% TeX Gyre Heros。
+\ifhfut at font@auto
+  \ifhfut at fontset@windows
+    \hfutsetup{font=times}
+  \else
+    \ifhfut at fontset@mac
+      \hfutsetup{font=times}
+    \else
+      \hfutsetup{font=termes}
+    \fi
+  \fi
+\fi
+
+% Times New Roman + Arial
+\newcommand\hfut at set@font at times{%
+  \setmainfont{Times New Roman}%
+  \setsansfont{Arial}%
+  \ifhfut at system@mac
+    \setmonofont{Menlo}[Scale = MatchLowercase]%
+  \else
+    \setmonofont{Courier New}[Scale = MatchLowercase]%
+  \fi
+}
+
+% TeX Gyre Termes
+\newcommand\hfut at set@font at termes{%
+  \setmainfont{texgyretermes}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-italic,
+    BoldItalicFont = *-bolditalic,
+  ]%
+  \hfut at set@texgyre at sans@mono
+}
+
+\newcommand\hfut at set@texgyre at sans@mono{%
+  \setsansfont{texgyreheros}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-italic,
+    BoldItalicFont = *-bolditalic,
+  ]%
+  \setmonofont{texgyrecursor}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-italic,
+    BoldItalicFont = *-bolditalic,
+    Scale          = MatchLowercase,
+    Ligatures      = CommonOff,
+  ]%
+}
+
+% STIX Two 字体。
+% STIX 文件名在 v2.10 2020-12-19 从
+% \file{STIX2Text-Regular.otf}、\file{STIX2Math.otf} 分别改为
+% \file{STIXTwoText-Regular.otf}、\file{STIXTwoMath-Regular.otf}。
+\let\hfut at font@family at stix\@empty
+\newcommand\hfut at set@stix at names{%
+  \ifx\hfut at font@family at stix\@empty
+    \IfFontExistsTF{STIXTwoText-Regular.otf}{%
+      \gdef\hfut at font@family at stix{STIXTwoText}%
+      \gdef\hfut at font@name at stix@math{STIXTwoMath-Regular}%
+    }{%
+      \gdef\hfut at font@family at stix{STIX2Text}%
+      \gdef\hfut at font@name at stix@math{STIX2Math}%
+    }%
+  \fi
+}
+
+\newcommand\hfut at set@font at stix{%
+  \hfut at set@stix at names
+  \setmainfont{\hfut at font@family at stix}[
+    Extension      = .otf,
+    UprightFont    = *-Regular,
+    BoldFont       = *-Bold,
+    ItalicFont     = *-Italic,
+    BoldItalicFont = *-BoldItalic,
+  ]%
+  \hfut at set@texgyre at sans@mono
+}
+
+% XITS 字体。
+% XITS 的文件名在 v1.109 2018-09-30
+% 从 \file{xits-regular.otf}、\file{xits-math.otf} 分别改为
+% \file{XITS-Regular.otf}、\file{XITSMath-Regular.otf}。
+\let\hfut at font@family at xits\@empty
+\newcommand\hfut at set@xits at names{%
+  \ifx\hfut at font@family at xits\@empty
+    \IfFontExistsTF{XITSMath-Regular.otf}{%
+      \gdef\hfut at font@family at xits{XITS}%
+      \gdef\hfut at font@style at xits@rm{Regular}%
+      \gdef\hfut at font@style at xits@bf{Bold}%
+      \gdef\hfut at font@style at xits@it{Italic}%
+      \gdef\hfut at font@style at xits@bfit{BoldItalic}%
+      \gdef\hfut at font@name at xits@math{XITSMath-Regular}%
+    }{%
+      \gdef\hfut at font@family at xits{xits}%
+      \gdef\hfut at font@style at xits@rm{regular}%
+      \gdef\hfut at font@style at xits@bf{bold}%
+      \gdef\hfut at font@style at xits@it{italic}%
+      \gdef\hfut at font@style at xits@bfit{bolditalic}%
+      \gdef\hfut at font@name at xits@math{xits-math}%
+    }%
+  \fi
+}
+
+\newcommand\hfut at set@font at xits{%
+  \hfut at set@xits at names
+  \setmainfont{\hfut at font@family at xits}[
+    Extension      = .otf,
+    UprightFont    = *-\hfut at font@style at xits@rm,
+    BoldFont       = *-\hfut at font@style at xits@bf,
+    ItalicFont     = *-\hfut at font@style at xits@it,
+    BoldItalicFont = *-\hfut at font@style at xits@bfit,
+  ]%
+  \hfut at set@texgyre at sans@mono
+}
+
+% Libertinus 的文件名在 v6.7 2019-04-03 从小写改为驼峰式,
+% 在大小写敏感的平台上需要进行判断。
+\let\hfut at font@family at libertinus\@empty
+\newcommand\hfut at set@libertinus at names{%
+  \ifx\hfut at font@family at libertinus\@empty
+    \IfFontExistsTF{LibertinusSerif-Regular.otf}{%
+      \gdef\hfut at font@family at libertinus@serif{LibertinusSerif}%
+      \gdef\hfut at font@family at libertinus@sans{LibertinusSans}%
+      \gdef\hfut at font@name at libertinus@math{LibertinusMath-Regular}%
+      \gdef\hfut at font@style at libertinus@rm{Regular}%
+      \gdef\hfut at font@style at libertinus@bf{Bold}%
+      \gdef\hfut at font@style at libertinus@it{Italic}%
+      \gdef\hfut at font@style at libertinus@bfit{BoldItalic}%
+    }{%
+      \gdef\hfut at font@family at libertinus@serif{libertinusserif}%
+      \gdef\hfut at font@family at libertinus@sans{libertinussans}%
+      \gdef\hfut at font@name at libertinus@math{libertinusmath-regular}%
+      \gdef\hfut at font@style at libertinus@rm{regular}%
+      \gdef\hfut at font@style at libertinus@bf{bold}%
+      \gdef\hfut at font@style at libertinus@it{italic}%
+      \gdef\hfut at font@style at libertinus@bfit{bolditalic}%
+    }%
+  \fi
+}
+
+\newcommand\hfut at set@font at libertinus{%
+  \hfut at set@libertinus at names
+  \setmainfont{\hfut at font@family at libertinus@serif}[
+    Extension      = .otf,
+    UprightFont    = *-\hfut at font@style at libertinus@rm,
+    BoldFont       = *-\hfut at font@style at libertinus@bf,
+    ItalicFont     = *-\hfut at font@style at libertinus@it,
+    BoldItalicFont = *-\hfut at font@style at libertinus@bfit,
+  ]%
+  \setsansfont{\hfut at font@family at libertinus@sans}[
+    Extension      = .otf,
+    UprightFont    = *-\hfut at font@style at libertinus@rm,
+    BoldFont       = *-\hfut at font@style at libertinus@bf,
+    ItalicFont     = *-\hfut at font@style at libertinus@it,
+  ]%
+  \setmonofont{lmmonolt10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-oblique,
+    BoldItalicFont = *-boldoblique,
+  ]%
+}
+
+% New Computer Modern
+\newcommand\hfut at set@font at newcm{%
+  \setmainfont{NewCM10}[
+    Extension      = .otf,
+    UprightFont    = *-Book,
+    BoldFont       = *-Bold,
+    ItalicFont     = *-BookItalic,
+    BoldItalicFont = *-BoldItalic,
+  ]%
+  \setsansfont{NewCMSans10}[
+    Extension         = .otf,
+    UprightFont       = *-Book,
+    BoldFont          = *-Bold,
+    ItalicFont        = *-BookOblique,
+    BoldItalicFont    = *-BoldOblique,
+  ]%
+  \setmonofont{NewCMMono10}[
+    Extension           = .otf,
+    UprightFont         = *-Book,
+    ItalicFont          = *-BookItalic,
+    BoldFont            = *-Bold,
+    BoldItalicFont      = *-BoldOblique,
+  ]%
+}
+
+% Latin Modern
+\newcommand\hfut at set@font at lm{%
+  \setmainfont{lmroman10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-italic,
+    BoldItalicFont = *-bolditalic,
+  ]%
+  \setsansfont{lmsans10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-oblique,
+    BoldItalicFont = *-boldoblique,
+  ]%
+  \setmonofont{lmmonolt10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-oblique,
+    BoldItalicFont = *-boldoblique,
+  ]%
+}
+
+\newcommand\hfut at set@font at newtx{%
+  \RequirePackage{newtxtext}%
+}
+
+\newcommand\hfut at set@font{%
+  \@nameuse{hfut at set@font@\hfut at font}%
+}
+\hfut at set@font
+\hfut at option@hook{font}{\hfut at set@font}
+
+% 中文字体
+\ifhfut at cjk@font at auto
+  \ifhfut at fontset@mac
+    \hfutsetup{cjk-font = mac}
+  \else
+    \ifhfut at fontset@windows
+      \hfutsetup{cjk-font = windows}
+    \else
+      \ifhfut at fontset@ubuntu
+        \hfutsetup{cjk-font = noto}
+      \else
+        \hfutsetup{cjk-font = fandol}
+      \fi
+    \fi
+  \fi
+\fi
+
+% Windows 的中易字体。
+\newcommand\hfut at set@cjk at font@windows{%
+  \xeCJKsetup{EmboldenFactor=2}
+  \setCJKmainfont{SimSun}[
+    AutoFakeBold = true,
+    ItalicFont   = KaiTi,
+  ]%
+  \setCJKsansfont{SimHei}[AutoFakeBold]%
+  \setCJKmonofont{FangSong}%
+  \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold]%
+  \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold]%
+  \setCJKfamilyfont{zhkai}{KaiTi}%
+  \setCJKfamilyfont{zhfs}{FangSong}%
+}
+
+% macOS 的华文字体。
+\newcommand\hfut at set@cjk at font@mac{%
+  \defaultCJKfontfeatures{}%
+  \setCJKmainfont{Songti SC}[
+    UprightFont    = * Light,
+    BoldFont       = * Bold,
+    ItalicFont     = Kaiti SC Regular,
+    BoldItalicFont = Kaiti SC Bold,
+  ]%
+  \setCJKsansfont{Heiti SC}[
+    UprightFont    = * Light,
+    BoldFont       = * Medium,
+  ]%
+  \setCJKmonofont{STFangsong}
+  \setCJKfamilyfont{zhsong}{Songti SC}[
+    UprightFont    = * Light,
+    BoldFont       = * Bold,
+  ]%
+  \setCJKfamilyfont{zhhei}{Heiti SC}[
+    UprightFont    = * Light,
+    BoldFont       = * Medium,
+  ]%
+  \setCJKfamilyfont{zhfs}{STFangsong}%
+  \setCJKfamilyfont{zhkai}{Kaiti SC}[
+    UprightFont    = * Regular,
+    BoldFont       = * Bold,
+  ]%
+  \setCJKfamilyfont{zhli}{Baoli SC}%
+  \setCJKfamilyfont{zhyuan}{Yuanyi SC}[
+    UprightFont    = * Light,
+    BoldFont       = * Bold,
+  ]%
+}
+
+% 思源字体。
+% 注意 Noto CJK 的 regular 字重名字不带“Regular”。
+\newcommand\hfut at set@cjk at font@noto{%
+  \defaultCJKfontfeatures{}%
+  \setCJKmainfont{Noto Serif CJK SC}[
+    UprightFont    = * Light,
+    BoldFont       = * Bold,
+    ItalicFont     = FandolKai-Regular,
+    ItalicFeatures = {Extension = .otf},
+    Script         = CJK,
+  ]%
+  \setCJKsansfont{Noto Sans CJK SC}[
+    BoldFont       = * Medium,
+    Script         = CJK,
+  ]%
+  \setCJKmonofont{Noto Sans Mono CJK SC}[
+    Script         = CJK,
+  ]%
+  \setCJKfamilyfont{zhsong}{Noto Serif CJK SC}[
+    UprightFont    = * Light,
+    UprightFont    = * Bold,
+    Script         = CJK,
+  ]%
+  \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[
+    BoldFont       = * Medium,
+    Script         = CJK,
+  ]%
+  \setCJKfamilyfont{zhfs}{FandolFang}[
+    Extension      = .otf,
+    UprightFont    = *-Regular,
+  ]%
+  \setCJKfamilyfont{zhkai}{FandolKai}[
+    Extension      = .otf,
+    UprightFont    = *-Regular,
+  ]%
+}
+
+% Fandol 字体。
+\newcommand\hfut at set@cjk at font@fandol{%
+  \defaultCJKfontfeatures{}%
+  \setCJKmainfont{FandolSong}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+    BoldFont    = *-Bold,
+    ItalicFont  = FandolKai-Regular,
+    ItalicFeatures = {Extension = .otf},
+  ]%
+  \setCJKsansfont{FandolHei}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+    BoldFont    = *-Bold,
+  ]%
+  \setCJKmonofont{FandolFang}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+  ]%
+  \setCJKfamilyfont{zhsong}{FandolSong}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+    BoldFont    = *-Bold,
+  ]%
+  \setCJKfamilyfont{zhhei}{FandolHei}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+    BoldFont    = *-Bold,
+  ]%
+  \setCJKfamilyfont{zhfs}{FandolFang}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+  ]%
+  \setCJKfamilyfont{zhkai}{FandolKai}[
+    Extension   = .otf,
+    UprightFont = *-Regular,
+  ]%
+}
+
+\ifhfut at cjk@font at none\else
+  \providecommand\songti{\CJKfamily{zhsong}}
+  \providecommand\heiti{\CJKfamily{zhhei}}
+  \providecommand\fangsong{\CJKfamily{zhfs}}
+  \providecommand\kaishu{\CJKfamily{zhkai}}
+\fi
+
+\newcommand\hfut at set@cjk at font{%
+  \@nameuse{hfut at set@cjk at font@\hfut at cjk@font}%
+}
+\hfut at set@cjk at font
+\hfut at option@hook{cjk-font}{\hfut at set@cjk at font}
+
+% 数学字体
+
+% 设置数学符号风格。
+\newcommand\hfut at set@math at style{%
+  \ifhfut at math@style at TeX
+    \hfutsetup{
+      uppercase-greek    = upright,
+      less-than-or-equal = horizontal,
+      integral           = slanted,
+      integral-limits    = false,
+      partial            = italic,
+      math-ellipsis      = AMS,
+      real-part          = fraktur,
+    }%
+  \else
+    \hfutsetup{
+      uppercase-greek = italic,
+      integral        = upright,
+      integral-limits = true,
+      partial         = upright,
+      real-part       = roman,
+    }%
+    \ifhfut at math@style at ISO
+      \hfutsetup{
+        less-than-or-equal = horizontal,
+        math-ellipsis      = lower,
+      }%
+    \else
+      \ifhfut at math@style at GB
+        \hfutsetup{
+          less-than-or-equal = slanted,
+          math-ellipsis      = centered,
+        }%
+      \fi
+    \fi
+  \fi
+}
+
+\ifhfut at main@language at chinese
+  \hfutsetup{math-style = GB}%
+\else
+  \hfutsetup{math-style = TeX}%
+\fi
+
+\hfut at set@math at style
+\hfut at option@hook{math-style}{\hfut at set@math at style}
+\hfut at option@hook{main-language}{%
+  \ifhfut at main@language at chinese
+    \hfutsetup{math-style = GB}%
+  \else
+    \hfutsetup{math-style = TeX}%
+  \fi
+}
+
+% 针对 \pkg{unicode-math} 逐项配置数学符号。
+
+\newcommand\hfut at set@unimath at leq{%
+  \ifhfut at leq@horizontal
+    \ifx\@begindocumenthook\@undefined
+      \let\le\hfut at save@leq
+      \let\ge\hfut at save@geq
+      \let\leq\hfut at save@leq
+      \let\geq\hfut at save@geq
+    \else
+      \AtBeginDocument{%
+        \let\le\hfut at save@leq
+        \let\ge\hfut at save@geq
+        \let\leq\hfut at save@leq
+        \let\geq\hfut at save@geq
+      }%
+    \fi
+  \else
+    \ifhfut at leq@slanted
+      \ifx\@begindocumenthook\@undefined
+        \let\le\leqslant
+        \let\ge\geqslant
+        \let\leq\leqslant
+        \let\geq\geqslant
+      \else
+        \AtBeginDocument{%
+          \let\le\leqslant
+          \let\ge\geqslant
+          \let\leq\leqslant
+          \let\geq\geqslant
+        }%
+      \fi
+    \fi
+  \fi
+}
+\newcommand\hfut at set@unimath at integral@limits{%
+  \ifhfut at integral@limits at true
+    \removenolimits{%
+      \int\iint\iiint\iiiint\oint\oiint\oiiint
+      \intclockwise\varointclockwise\ointctrclockwise\sumint
+      \intbar\intBar\fint\cirfnint\awint\rppolint
+      \scpolint\npolint\pointint\sqint\intlarhk\intx
+      \intcap\intcup\upint\lowint
+    }%
+  \else
+    \addnolimits{%
+      \int\iint\iiint\iiiint\oint\oiint\oiiint
+      \intclockwise\varointclockwise\ointctrclockwise\sumint
+      \intbar\intBar\fint\cirfnint\awint\rppolint
+      \scpolint\npolint\pointint\sqint\intlarhk\intx
+      \intcap\intcup\upint\lowint
+    }%
+  \fi
+}
+\newcommand\hfut at set@unimath at ellipsis{%
+  \ifhfut at math@ellipsis at centered
+    \DeclareRobustCommand\mathellipsis{\mathinner{\unicodecdots}}%
+  \else
+    \DeclareRobustCommand\mathellipsis{\mathinner{\unicodeellipsis}}%
+  \fi
+}
+\newcommand\hfut at set@unimath at real@part{%
+  \ifhfut at real@part at roman
+    \AtBeginDocument{%
+      \def\Re{\operatorname{Re}}%
+      \def\Im{\operatorname{Im}}%
+    }%
+  \else
+    \AtBeginDocument{%
+      \let\Re\hfut at save@Re
+      \let\Im\hfut at save@Im
+    }%
+  \fi
+}
+
+\newcommand\hfut at set@unimath at style{%
+  \ifhfut at uppercase@greek at upright
+    \unimathsetup{math-style = TeX}%
+  \else
+    \ifhfut at uppercase@greek at italic
+      \unimathsetup{math-style = ISO}%
+    \fi
+  \fi
+  \ifhfut at math@style at TeX
+    \unimathsetup{bold-style = TeX}%
+  \else
+    \unimathsetup{bold-style = ISO}%
+  \fi
+  \hfut at set@unimath at leq
+  \hfut at set@unimath at integral@limits
+  \ifhfut at partial@upright
+    \unimathsetup{partial = upright}%
+  \else
+    \ifhfut at partial@italic
+      \unimathsetup{partial = italic}%
+    \fi
+  \fi
+  \hfut at set@unimath at ellipsis
+  \hfut at set@unimath at real@part
+}
+
+\newcommand\hfut at qed{\rule{1ex}{1ex}}
+\newcommand\hfut at load@unimath{%
+  \@ifpackageloaded{unicode-math}{}{%
+    \RequirePackage{unicode-math}%
+    \AtBeginDocument{%
+      \let\hfut at save@leq\leq
+      \let\hfut at save@geq\geq
+      \let\hfut at save@Re\Re
+      \let\hfut at save@Im\Im
+    }%
+    %
+    % 兼容旧的粗体命令:\pkg{bm} 的 \cs{bm} 和 \pkg{amsmath} 的 \cs{boldsymbol}。
+    \DeclareRobustCommand\bm[1]{{\symbfit{##1}}}%
+    \DeclareRobustCommand\boldsymbol[1]{{\symbfit{##1}}}%
+    %
+    % 兼容 \pkg{amsfonts} 和 \pkg{amssymb} 中的一些命令。
+    \newcommand\square{\mdlgwhtsquare}%
+    \newcommand\blacksquare{\mdlgblksquare}%
+    \AtBeginDocument{%
+      \renewcommand\checkmark{\ensuremath{✓}}%
+    }%
+    %
+    % 兼容 \pkg{amsthm} 的 \cs{qedsymbol}。
+    \renewcommand\hfut at qed{\ensuremath{\QED}}%
+  }%
+}
+
+% STIX Two Math
+\newcommand\hfut at set@math at font@stix{%
+  \hfut at load@unimath
+  \hfut at set@unimath at style
+  \hfut at set@stix at names
+  \setmathfont{\hfut at font@name at stix@math}[
+    Extension    = .otf,
+    StylisticSet = \hfut at xits@integral at stylistic@set,
+  ]%
+  \setmathfont{\hfut at font@name at stix@math}[
+    Extension    = .otf,
+    StylisticSet = 1,
+    range        = {scr,bfscr},
+  ]%
+}
+
+% XITS Math
+\newcommand\hfut at xits@integral at stylistic@set{%
+  \ifhfut at integral@upright
+    8%
+  \fi
+}
+\newcommand\hfut at set@math at font@xits{%
+  \hfut at load@unimath
+  \hfut at set@unimath at style
+  \hfut at set@xits at names
+  \setmathfont{\hfut at font@name at xits@math}[
+    Extension    = .otf,
+    StylisticSet = \hfut at xits@integral at stylistic@set,
+  ]%
+  \setmathfont{\hfut at font@name at xits@math}[
+    Extension    = .otf,
+    StylisticSet = 1,
+    range        = {cal,bfcal},
+  ]%
+}
+
+% Libertinus Math
+\newcommand\hfut at libertinus@integral at stylistic@set{%
+  \ifhfut at integral@slanted
+    8%
+  \fi
+}
+\newcommand\hfut at set@math at font@libertinus{%
+  \hfut at load@unimath
+  \hfut at set@unimath at style
+  \hfut at set@libertinus at names
+  \hfut at set@xits at names
+  \setmathfont{\hfut at font@name at libertinus@math}[
+    Extension    = .otf,
+    StylisticSet = \hfut at libertinus@integral at stylistic@set,
+  ]%
+  \setmathfont{\hfut at font@name at xits@math}[
+    Extension    = .otf,
+    range        = {\checkmark},
+  ]%
+}
+
+% New Computer Modern Math
+\newcommand\hfut at newcm@integral at stylistic@set{%
+  \ifhfut at integral@upright
+    2%
+  \fi
+}
+\newcommand\hfut at set@math at font@newcm{%
+  \hfut at load@unimath
+  \hfut at set@unimath at style
+  \setmathfont{NewCMMath-Book}[
+    Extension    = .otf,
+    StylisticSet = \hfut at newcm@integral at stylistic@set,
+  ]%
+  \setmathfont{NewCMMath-Book}[
+    Extension    = .otf,
+    StylisticSet = 1,
+    range        = {scr,bfscr},
+  ]%
+  \setmathrm{NewCM10}[
+    Extension      = .otf,
+    UprightFont    = *-Book,
+    BoldFont       = *-Bold,
+    ItalicFont     = *-BookItalic,
+    BoldItalicFont = *-BoldItalic,
+  ]%
+  \setmathsf{NewCMSans10}[
+    Extension         = .otf,
+    UprightFont       = *-Book,
+    BoldFont          = *-Bold,
+    ItalicFont        = *-BookOblique,
+    BoldItalicFont    = *-BoldOblique,
+  ]%
+  \setmathtt{NewCMMono10}[
+    Extension           = .otf,
+    UprightFont         = *-Book,
+    ItalicFont          = *-BookItalic,
+    BoldFont            = *-Bold,
+    BoldItalicFont      = *-BoldOblique,
+  ]%
+}
+
+% Latin Modern Math
+\newcommand\hfut at set@math at font@lm{%
+  \hfut at load@unimath
+  \hfut at set@unimath at style
+  \setmathfont{latinmodern-math}[Extension=.otf]%
+  \setmathrm{lmroman10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-italic,
+    BoldItalicFont = *-bolditalic,
+  ]%
+  \setmathsf{lmsans10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-oblique,
+    BoldItalicFont = *-boldoblique,
+  ]%
+  \setmathtt{lmmonolt10}[
+    Extension      = .otf,
+    UprightFont    = *-regular,
+    BoldFont       = *-bold,
+    ItalicFont     = *-oblique,
+    BoldItalicFont = *-boldoblique,
+  ]%
+}
+
+% NewTX Math
+% 注意 NewTX Math 是 Type 1 字体,如果正文西文使用了 OpenType 字体时需要小心处理。
+\newcommand\hfut at set@math at font@newtx{%
+  \ifhfut at font@newtx\else
+    \let\hfut at save@encodingdefault\encodingdefault
+    \let\hfut at save@rmdefault\rmdefault
+    \let\hfut at save@sfdefault\sfdefault
+    \let\hfut at save@ttdefault\ttdefault
+    \RequirePackage[T1]{fontenc}%
+    \renewcommand{\rmdefault}{ntxtlf}%
+    \renewcommand{\sfdefault}{qhv}%
+    \renewcommand{\ttdefault}{ntxtt}%
+  \fi
+  \ifhfut at uppercase@greek at italic
+    \PassOptionsToPackage{slantedGreek}{newtxmath}%
+  \fi
+  \ifhfut at integral@upright
+    \PassOptionsToPackage{upint}{newtxmath}%
+  \fi
+  \RequirePackage{newtxmath}
+  \let\hfut at save@leq\leq
+  \let\hfut at save@geq\geq
+  \ifhfut at leq@slanted
+    \let\le\leqslant
+    \let\ge\geqslant
+    \let\leq\leqslant
+    \let\geq\geqslant
+  \fi
+  \ifhfut at integral@limits at true
+    \let\ilimits@\displaylimits
+  \fi
+  \let\hfut at save@partial\partial
+  \ifhfut at partial@upright
+    \let\partial\uppartial
+  \fi
+  \ifhfut at math@ellipsis at centered
+    \DeclareRobustCommand\mathellipsis{\mathinner{\cdotp\cdotp\cdotp}}%
+  \else
+    \DeclareRobustCommand\mathellipsis{\mathinner{\ldotp\ldotp\ldotp}}%
+  \fi
+  \let\hfut at save@Re\Re
+  \let\hfut at save@Im\Im
+  \ifhfut at real@part at roman
+    \def\Re{\operatorname{Re}}%
+    \def\Im{\operatorname{Im}}%
+  \fi
+  \RequirePackage{bm}%
+  \ifhfut at font@newtx\else
+    \let\encodingdefault\hfut at save@encodingdefault
+    \let\rmdefault\hfut at save@rmdefault
+    \let\sfdefault\hfut at save@sfdefault
+    \let\ttdefault\hfut at save@ttdefault
+  \fi
+  \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}%
+  \DeclareRobustCommand\symbf[1]{{\bm{##1}}}%
+  \DeclareRobustCommand\symbfsf[1]{{\bm{##1}}}%
+  \let\increment\upDelta%
+  \renewcommand\hfut at qed{\openbox}%
+}
+
+% Computer Modern
+% 使用 LaTeX 默认的 cm 字体
+\newcommand\hfut at set@math at font@cm{%
+  \RequirePackage{amssymb}
+  \let\hfut at save@leq\leq
+  \let\hfut at save@geq\geq
+  \ifhfut at leq@slanted
+    \let\le\leqslant
+    \let\ge\geqslant
+    \let\leq\leqslant
+    \let\geq\geqslant
+  \fi
+  \ifhfut at integral@limits at true
+    \let\ilimits@\displaylimits
+  \fi
+  \ifhfut at math@ellipsis at centered
+    \DeclareRobustCommand\mathellipsis{\mathinner{\cdotp\cdotp\cdotp}}%
+  \else
+    \DeclareRobustCommand\mathellipsis{\mathinner{\ldotp\ldotp\ldotp}}%
+  \fi
+  \let\hfut at save@Re\Re
+  \let\hfut at save@Im\Im
+  \ifhfut at real@part at roman
+    \def\Re{\operatorname{Re}}%
+    \def\Im{\operatorname{Im}}%
+  \fi
+  \RequirePackage{bm}%
+  \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}%
+  \DeclareRobustCommand\symbf[1]{{\bm{##1}}}%
+  \DeclareRobustCommand\symbfsf[1]{{\bm{##1}}}%
+  \let\increment\Delta
+  \renewcommand\hfut at qed{\openbox}%
+  \let\uppi\pi
+}
+
+% 不设置数学字体,仅提供兼容支持。
+\newcommand\hfut at set@math at font@none{%
+  \RequirePackage{amssymb}
+  \RequirePackage{bm}%
+  \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}%
+  \DeclareRobustCommand\symbf[1]{{\bm{##1}}}%
+  \DeclareRobustCommand\symbfsf[1]{{\bm{##1}}}%
+  \let\increment\Delta
+  \renewcommand\hfut at qed{\openbox}%
+  \let\uppi\pi
+}
+
+\newcommand\hfut at set@math at font{%
+  \@nameuse{hfut at set@math at font@\hfut at math@font}%
+}
+\hfut at option@hook{math-font}{\g at addto@macro\hfut at setup@hook{\hfut at set@math at font}}
+\newcommand\hfut at set@math at font@auto{%
+  \ifhfut at math@font at auto
+    \hfutsetup{math-font=xits}%
+  \fi
+}
+\AtBeginOfPackageFile*{siunitx}{\hfut at set@math at font@auto}
+\AtEndPreamble{%
+  \hfut at set@math at font@auto
+  \ifx\square\@undefined
+    \RequirePackage{amssymb}%
+  \fi
+}
+
+
+
+% \subsection{纸张和页面}
+% 使用 \pkg{geometry} 宏包设置纸张和页面。
+
+% 纸张:A4;
+
+% 页面设置:上、下 2.54 cm,左、右 3 cm,页眉 1.5 cm,页脚 1.5 cm。
+
+% 注意这里指的是页眉顶部到纸张顶部的距离为 1.5 cm,
+% 所以应该是 2.54cm - 0.75cm - 0.29cm = 1.5cm
+% 页脚 同理 2.54cm - 1.04cm = 1.5cm
+
+\geometry{
+  paper      = a4paper,
+  vmargin    = 2.54cm,
+  hmargin    = 3cm,
+  headheight = 0.75cm,
+  headsep    = 0.29cm,
+  footskip   = 1.04cm,
+}
+
+% 使用 \pkg{fancy} 需要先调用 |\pagestyle{fancy}| 再修改 \cs{chaptermark} 和
+% \cs{sectionmark}。
+\pagestyle{fancy}
+\let\sectionmark\@gobble
+\renewcommand\headrulewidth{0.4\p@}
+% 重定义默认的 |myheadings| page style,会显示页眉和页脚。
+\fancypagestyle{myheadings}{%
+  \fancyhf{}%
+  %
+  % 页眉与该部分的章标题相同,宋体 10.5 磅(五号)居中、1.5倍行距。
+  % 页码:宋体 10.5 磅、页面下脚居中。
+  % 页眉上下页边距1.5 cm
+  \def\hfut at hf@font{\fontsize{10.5bp}{20.475bp}\selectfont}
+  \renewcommand\headrulewidth{0.4\p@}
+  \ifhfut at degree@graduate
+    
+    \fancyhead[OC]{\hfut at hf@font\leftmark}%
+    \ifhfut at degree@doctor
+      \fancyhead[EC]{\hfut at hf@font 合肥工业大学博士研究生学位论文}%
+    \else
+      \fancyhead[EC]{\hfut at hf@font 合肥工业大学\hfut at degreetype@name 研究生学位论文}%
+    \fi
+    \fancyfoot[C]{\hfut at hf@font\thepage}%
+    \let\@mkboth\markboth
+    \def\chaptermark##1{%
+      \markboth{\CTEXifname{\CTEXthechapter\quad}{}\hfut at spacetitle{##1}}{}%
+    }%
+    \let\sectionmark\@gobble
+  \else
+    %
+    % 本科生要求在正文每面上部加页眉,
+    % 用五号字(10.5 bp)标注“合肥工业大学毕业设计(论文)”,居中;
+    % 从正文页开始在每面底部居中用小五宋体(10.5 bp)连续编页码。
+    \fancyhead[C]{\hfut at hf@font 合肥工业大学毕业设计(论文)}%
+    \fancyfoot[C]{\hfut at hf@font\thepage}%
+    \let\@mkboth\@gobbletwo
+    \let\chaptermark\@gobble
+    \let\sectionmark\@gobble
+  \fi
+}
+\pagestyle{myheadings}
+
+% |headings| 只有页眉,没有页脚,用于研究生的符号说明和本科生的 front matter。
+\fancypagestyle{headings}{
+  \fancyfoot{}
+}
+
+% 重定义|plain|字体大小
+\fancypagestyle{plain}{%
+  \fancyhf{}
+  \fancyhead{}
+  \renewcommand\headrulewidth{0pt}
+  \def\hfut at hf@font{\fontsize{10.5bp}{20.475bp}\selectfont}
+  \fancyfoot[C]{\hfut at hf@font\thepage}%
+}
+
+% 设置特殊的 page style 不改变任何内容,用于每章首页。
+\def\ps at chapter{}
+\ctexset{chapter/pagestyle=chapter}
+
+% 空白页不加页眉和页码。
+\def\cleardoublepage{\clearpage\if at twoside \ifodd\c at page\else
+  \hbox{}\thispagestyle{empty}\newpage\if at twocolumn\hbox{}\newpage\fi\fi\fi}
+  %
+  % 研究生要求从“中文摘要”开始页码用大写罗马数字,
+  % 而本科生的 frontmatter不编页码,从正文开始页码用阿拉伯数字。
+\renewcommand\frontmatter{%
+  \cleardoublepage
+  \@mainmatterfalse
+  \pagestyle{plain}%
+  \pagenumbering{Roman}%
+}
+
+% 研究生要求“第 1 章”要另页起,但是本科生要求另面起。
+\renewcommand\mainmatter{%
+  \ifhfut at degree@graduate
+    \cleardoublepage
+    \pagenumbering{arabic}%
+  \else
+    \clearpage
+    \pagenumbering{arabic}%
+  \fi
+  \pagestyle{myheadings}%
+  \@mainmattertrue
+}
+
+% 研究生要求"参考文献"起 无页眉,但是本科生仍然有页眉。
+\renewcommand\backmatter{%
+  \ifhfut at degree@graduate
+    \clearpage
+    \pagestyle{plain}%
+  \else
+    \clearpage
+  \fi
+  \hfut at appendixfalse
+}
+
+\g at addto@macro\appendix{
+  \renewcommand\thechapter{\@arabic\c at chapter}
+  \@mainmattertrue
+  \hfut at appendixtrue
+}%
+% \subsection{附录}
+% fakeTODO 处理附录编号问题
+% 研究生附录按照附录1、附录2编号;[数学学院本科生附录不编号,请将以下`\renewcommand\appendix` 取消注释]
+% \renewcommand\appendix{%
+%   \ifhfut at degree@bachelor
+%     \ctexset{
+%       chapter/numbering=false,
+%       chapter/format = \centering\rmfamily\bfseries\fontsize{18bp}{18bp}\selectfont,
+%       chapter/beforeskip  = 9bp,
+%       chapter/afterskip   = 27bp,
+%     }
+%     \setcounter{chapter}{1}
+%   \else
+%     \ctexset{appendix/number=\arabic{chapter}}
+%   \fi
+% }
+\ctexset{appendix/number=\arabic{chapter}}
+
+% \subsection{封面}
+
+% 定义用户接口:
+\hfut at define@key{
+  ugtype = {
+    default = {论文},
+  },
+  title = {
+    default = {论文题目},
+  },
+  title* = {
+    default = {Title},
+    name    = title at en,
+  },
+  author = {
+    default = {作者姓名},
+  },
+  stuID = {
+    default = {学号},
+  },
+  clc  = {
+    default = {分类号},
+  },
+  author* = {
+    default = {Author Name},
+    name    = author at en,
+  },
+  speciality = {
+    default = {专业},
+  },
+  hfuteryear = {
+    default = {2017级},
+  },
+  research = {
+    default = {研究方向},
+  },
+  supervisor = {
+    default = {导师姓名},
+  },
+  department = {
+    default = {学院名称},
+  },
+  advisor = {
+    default = {},
+  },
+  advisor* = {
+    default = {},
+    name    = advisor at en,
+  },
+  applydegree = {
+    default = {理学博士},
+  },
+  school = {
+    default = {合肥工业大学},
+  },
+  phdchairman = {
+    default = {},
+    name    = phd at chairman,
+  },
+  phdmember = {
+    default = {},
+    name    = phd at member,
+  },
+  date = {
+    default = {\the\year-\two at digits{\month}},
+  },
+  defensedate = {
+    default = {},
+  },
+  professional-type = {
+    name = professional at type,
+  },
+  professional-type* = {
+    name = professional at type@en,
+  },
+  secret-level = {
+    default = {},
+    name    = secret at level,
+  },
+  secret-level* = {
+    name    = secret at level@en,
+  },
+  secret-year = {
+    name    = secret at year,
+  },
+  signchairman = {
+    default = {},
+    name    = sign at chairman,
+  },
+  signmember = {
+    default = {},
+    name    = sign at member,
+  },
+  signsupervisor = {
+    default = {},
+    name    = sign at supervisor,
+  },
+  keywords,
+  keywords* = {
+    name    = keywords at en,
+  },
+}
+
+% 导师一栏可能有多个姓名,所以用 \opt{supervisor} 进行收集,
+% 然后使用本命令来输出要求的格式,
+% 类似于 \LaTeX3 的 \cs{clist\_use:Nn}。
+\newcommand\hfut at clist@count[1]{%
+  \csname clist_count:N\endcsname{#1}%
+}
+\newcommand\hfut at clist@use[2]{%
+  \csname clist_use:Nn\endcsname{#1}{#2}%
+}
+\newcommand\hfut at supervisor@names{%
+  \hfut at clist@use{\hfut at supervisor}{\quad}
+}
+\newcommand\hfut at advisor@names{%
+  \hfut at clist@use{\hfut at advisor}{\quad}
+}
+
+% 输出日期的给定格式:\cs{hfut at format@date}\marg{format}\marg{date},
+% 其中格式 \meta{format} 接受三个参数分别对应年、月、日,
+% \meta{date} 是 (yyyy-m)。
+\newcommand\hfut at format@date[2]{%
+  \edef\hfut@@date{#2}%
+  \def\hfut@@process at date##1-##2\@nil{%
+    #1{##1}{##2}%
+  }%
+  \expandafter\hfut@@process at date\hfut@@date\@nil
+}
+\newcommand\hfut at date@format at zh[2]{#1 年 \number#2 月}
+\newcommand\hfut at date@month[1]{%
+  \ifcase\number#1\or
+    January\or February\or March\or April\or May\or June\or
+    July\or August\or September\or October\or November\or December%
+  \fi
+}
+\newcommand\hfut at date@format at en[2]{\hfut at date@month{#2}, #1}
+\newcommand\hfut at date@zh{\hfut at format@date{\hfut at date@format at zh}{\hfut at date}}
+\newcommand\hfut at date@en{\hfut at format@date{\hfut at date@format at en}{\hfut at date}}
+
+% 版本 v3.2 开始使用 \cs{hfutsetup} 设置接口,
+% 兼容旧版本的命令式设置。
+% Reserved for compatibility until 2020-07-01.
+\def\hfut at define@term#1#2{%
+  \expandafter\gdef\csname #1\endcsname##1{%
+    \hfutsetup{#2 = {##1}}%
+  }%
+}
+\hfut at define@term{title}{title}
+\hfut at define@term{entitle}{title*}
+\hfut at define@term{author}{author}
+\hfut at define@term{enauthor}{author*}
+\hfut at define@term{major}{speciality}
+\hfut at define@term{supervisor}{supervisor}
+\gdef\cosupervisor#1{%
+  \g at addto@macro\hfut at supervisor{, #1}%
+}
+\gdef\date#1{\renewcommand\hfut at date@zh{#1}}
+\gdef\endate#1{\renewcommand\hfut at date@en{#1}}
+\hfut at define@term{professionaltype}{professional-type}
+\hfut at define@term{enprofessionaltype}{professional-type*}
+\hfut at define@term{secretlevel}{secret-level}
+\hfut at define@term{ensecretlevel}{secret-level*}
+\hfut at define@term{secretyear}{secret-year}
+\gdef\keywords#1{\renewcommand\hfut at keywords@text{#1}}
+\gdef\enkeywords#1{\renewcommand\hfut at keywords@en at text{#1}}
+
+% 定义一些常量。
+\ifhfut at degree@doctor
+  \newcommand\hfut at thesis@name{博士学位论文}
+  \newcommand\hfut at degreetype@name{博士}
+  \newcommand\hfut at thesis@name at en{A Dissertation Submitted to \par
+  Hefei University of Technology \par
+  in accordmance with the requirement \par
+  for the Degree of Doctor of Philosophy}
+  \newcommand\hfut at thesis@name at encover{DOCTORAL DISSERTATION}
+\else
+  \ifhfut at degree@master
+    \newcommand\hfut at thesis@name{硕士学位论文}
+    \newcommand\hfut at thesis@name at en{A Dissertation Submitted for the Degree of Master}
+    \newcommand\hfut at thesis@name at encover{MASTER'S DISSERTATION}
+  \else
+    \newcommand\hfut at thesis@name{本科毕业设计(论文)}
+    \newcommand\hfut at thesis@name at en{A Dissertation Submitted for the Degree of Bachelor}
+    \newcommand\hfut at thesis@name at encover{UNDERGRADUATE THESIS}
+  \fi
+\fi
+
+\ifhfut at degree@master
+  \ifhfut at degree@type at academic
+    \newcommand\hfut at degreetype@name{学历硕士}
+  \else
+    \newcommand\hfut at degreetype@name{专业硕士}
+  \fi
+\fi
+
+\ifhfut at degree@type at academic
+  \ifhfut at degree@doctor
+    \newcommand\hfut at speciality@name{学科专业}
+  \else
+    \newcommand\hfut at speciality@name{专业名称}
+  \fi
+\else
+  \ifhfut at cjk@font at mac
+    \providecommand\lishu{\CJKfamily{zhli}}
+  \else
+    \ifhfut at cjk@font at windows
+      \setCJKfamilyfont{zhli}{LiSu}
+      \providecommand\lishu{\CJKfamily{zhli}}
+    \else
+      \hfut at warning{LiShu font is required}
+      \providecommand\lishu{\sffamily}
+    \fi
+  \fi
+  \newcommand\hfut at speciality@name{专业名称}
+\fi
+
+% 定义校徽颜色
+\definecolor{hfutred}{cmyk}{0.3,1,0.95,0.05}
+
+% 添加 PDF 书签,在 \pkg{hyperref} 载入后才有效。
+\newcommand\hfut at pdfbookmark{\@gobble}
+
+% 重定义 \env{titlepage} 环境,不修改页码。
+\renewenvironment{titlepage}{%
+  \cleardoublepage
+  \if at twocolumn
+    \@restonecoltrue\onecolumn
+  \else
+    \@restonecolfalse\newpage
+  \fi
+  \thispagestyle{empty}%
+}{%
+  \if at restonecol\twocolumn \else \newpage \fi
+}
+
+% TODO: 做一些定义用以实现:不定长, 自动换行且有定长下划线的“论文标题”
+% from:
+% https://github.com/CTeX-org/forum/issues/208
+% https://syvshc.github.io/2021-08-04-thesis-title/
+% https://zhuanlan.zhihu.com/p/51494365
+
+% inner temp length
+\newlength\@tempTitleHt
+\newlength\@tempTitleMaxWd
+
+% length used as parameters, "Wd" is a shorthand for "Width"
+\newlength\titleSingleLineMaxWd
+\newlength\titleMultiLineMaxWd
+\newlength\titleLRExtraWd
+\newlength\titleSepWd
+
+\setlength\titleSingleLineMaxWd{8.5cm}
+\setlength\titleMultiLineMaxWd{7cm}
+\setlength\titleLRExtraWd{0em}
+\setlength\titleSepWd{.5em}
+
+% main macro, using a simple table
+% \newcommand{\multilingualTitles}[2]{%
+%   \par
+%   {\noindent\centering
+%   \begin{tabular}{r @{\hspace{\titleSepWd}} p{\titleSingleLineMaxWd}}
+%   	中文标题           & \titleBox{#1} \\
+%   	                 &               \\[-10pt]
+%   	Title in English & \titleBox{#2}
+%   \end{tabular}\par}%
+% }
+
+% draw a fixed-width underline
+\newcommand{\titleUnderline}{%
+  \rule[-.3em]{\titleSingleLineMaxWd + 2\titleLRExtraWd}{.5pt}}
+
+% title content typesetter
+\newcommand\titleBox[1]{%
+  \setlength\@tempTitleMaxWd\titleSingleLineMaxWd
+  % Measure the total height of #1 subject to \titleSingleLineMaxWd.
+  % Here \@titleBox is necessary when #1 contains "\\".
+  \settototalheight\@tempTitleHt{\@titleBox{#1}}%
+  \ifdim\@tempTitleHt=0pt%
+    % case 1: #1 causes empty output
+    \titleUnderline
+  \else
+    % Change to LR mode, for inserting a zero-width box right after.
+    \leavevmode
+    % note: Use \normalbaseineskip instead of \baselineskip, 
+    %       since the latter is set to 0pt inside tabular env.
+    \ifdim\@tempTitleHt>\normalbaselineskip
+      % case 2: #1 is fit for multilines, or contains `\\`, hence
+      %         \titleMultiLineMaxWd is used instead, and the total 
+      %         height of #1 subject to new max width is re-measured.
+      \setlength\@tempTitleMaxWd\titleMultiLineMaxWd
+      \settototalheight\@tempTitleHt{\@titleBox{#1}}%
+      % \rlap{\smash{...}} typesets content of its argument normally 
+      % but sets it into a zero sized box. Here \@titleBox set 
+      % (possiblly) multi-line text into a single box, since \smash 
+      % only takes in argument spreading one line.
+      %
+      % Every line of title content needs an underline, hense we do
+      % a loop to typeset one underline for every line the title 
+      % content actually spreads.
+      \rlap{\smash{\@titleBox{%
+        \@whiledim\@tempTitleHt>0pt%
+        \leavevmode
+        % 
+        \do{%
+          \rlap{\titleUnderline}\\%
+          \addtolength\@tempTitleHt{-\normalbaselineskip}%
+        }%
+      }}}%
+      % Insert h-offset to manually center the title content.
+      \hspace{\dimexpr\titleLRExtraWd + .5\titleSingleLineMaxWd - .5\titleMultiLineMaxWd\relax}%
+      \@titleBox{\centering #1}%
+    \else
+      % case 3: #1 is fit for one line
+      \rlap{\titleUnderline}%
+      \hspace{\titleLRExtraWd}%
+      \@titleBox{\centering #1}%
+    \fi
+  \fi
+}
+
+% common operations on every title content
+\newcommand{\@titleBox}[1]{%
+  \parbox[t]{\@tempTitleMaxWd}{#1}}
+
+\newlength{\lwtm}
+\setlength{\lwtm}{\widthof{论文题目 :}}
+
+% 中文封面:
+% 抬头黑体 12 磅;
+% 论文类型:研究生黑体 48 磅,本科生黑体42磅;
+% 论文类型英文 Times New Roman 22 磅;
+% 封面信息 宋体 16 磅
+% 论文题目黑体 26 磅加粗居中,单倍行距;
+% 作者姓名宋体 16 磅,单倍行距;
+% 注意这里的“单倍行距”的地方开启了“对齐到网格”,所以实际行距有所偏差,
+% 所以只能使用直尺测量。
+\newcommand\hfut at speciality@sse{软件工程}
+% 生成空的下划线
+\newcommand\hfut at underline[2][3.4cm]{\underline{\hb at xt@ #1{\hss#2\hss}}}
+\newcommand\hfut at makecover{%
+  \hfutsetup{language=chinese}%
+  \begin{titlepage}%
+    \hfut at pdfbookmark{封面}%
+    \centering
+    \ifhfut at degree@bachelor
+      \ifx\hfut at secret@level\@empty
+        {\sffamily\bfseries\fontsize{12bp}{19.5bp}\selectfont
+        学\hspace{2\ccwd}号:\hfut at underline{\hfut at stuID} \hfill
+        密\hspace{1em}级:\hfut at underline{公开} \par}
+      \else
+        {\sffamily\bfseries\fontsize{12bp}{19.5bp}\selectfont
+        学\hspace{2\ccwd}号:\hfut at underline{\hfut at stuID} \hfill
+        密\hspace{1em}级:\hfut at underline{\hfut at secret@level\bigstar\hfut at secret@year} \par}
+      \fi
+      \vskip 1.15cm%
+    \else
+      \ifx\hfut at secret@level\@empty
+        {\sffamily\bfseries\fontsize{12bp}{19.5bp}\selectfont
+        单位代码:\hfut at underline{10359} \hfill
+        密\hspace{1em}级:\hfut at underline{公开} \par
+        学\hspace{2\ccwd}号:\hfut at underline{\hfut at stuID} \hfill
+        分类号:\hfut at underline{\hfut at clc} \par}
+      \else
+        {\sffamily\bfseries\fontsize{12bp}{19.5bp}\selectfont
+        单位代码:\hfut at underline{10359} \hfill
+        密\hspace{1em}级:\hfut at underline{\hfut at secret@level\bigstar\hfut at secret@year} \par
+        学\hspace{2\ccwd}号:\hfut at underline{\hfut at stuID} \hfill
+        分类号:\hfut at underline{\hfut at clc} \par}
+      \fi
+      \vskip 1.8cm%
+    \fi
+
+    \includegraphics[height=1.4cm]{hfut-figures/hfut-name.pdf}\par
+    \vskip 0.3cm
+    {\bfseries\fontsize{22bp}{22bp}\selectfont Hefei University of Technology\par}
+    \ifhfut at degree@bachelor
+      \vskip 1.1cm%
+      {\sffamily\bfseries\fontsize{42bp}{42bp}\selectfont
+      \hfut at thesis@name\par}%
+      \vskip 0.6cm
+    \else
+      \vskip 1.0cm%
+      {\sffamily\bfseries\fontsize{48bp}{48bp}\selectfont
+      \hfut at thesis@name\par}%
+      \vskip 0.5cm
+    \fi
+    {\bfseries\fontsize{22bp}{22bp}\selectfont
+    \hfut at thesis@name at encover \par}%
+    \ifhfut at degree@master
+      \vskip 3.5cm
+    \else
+      \vskip 0.9cm%
+      \includegraphics[height=3.6cm]{hfut-figures/hfut-badge.pdf}%
+    \fi
+    \ifhfut at degree@bachelor
+      \vskip 1.5cm
+    \else
+      \vskip 2.3cm
+    \fi
+    \renewcommand\arraystretch{1.5}
+    \ifhfut at degree@bachelor
+      {\fontsize{16bp}{20bp}\selectfont
+      \begin{tabular}{>{\fontsize{16bp}{20bp}\rmfamily\bfseries\selectfont}l>{\rmfamily\fontsize{16bp}{20bp}\selectfont}c}%
+        类\hspace{2\ccwd}型:& \hfut at ugtype \\
+        \cline{2-2}
+        题\hspace{2\ccwd}目:& \hfut at title \\
+        \cline{2-2}
+        \hfut at speciality@name:& \hfut at speciality\\
+        \cline{2-2}
+        入学年份:& \hfut at hfuteryear \\
+        \cline{2-2}
+        学生姓名:& \hfut at author \\
+        \cline{2-2}
+        指导教师:& \hfut at supervisor@names \\
+        \cline{2-2}
+        学院名称:& \hfut at department \\
+        \cline{2-2}
+        完成时间:& \hfut at date@zh \\
+        \cline{2-2}
+      \end{tabular}\par}%
+    \else
+      \begin{tabular}{>{\rmfamily\bfseries\fontsize{16bp}{20bp}\selectfont}lp{8.5cm}}%
+        论文题目:& \multirow[t]{2}{8.5cm}{
+          \centering\linespread{1.5}\fontsize{16bp}{20bp}\selectfont
+          \hfut at title} \\
+          \cline{2-2}
+                & \\
+        \cline{2-2}
+      \end{tabular}
+      \renewcommand\arraystretch{1.5}
+      \begin{tabular}{>{\bfseries\fontsize{16bp}{20bp}\selectfont}l>{\centering\arraybackslash\fontsize{16bp}{20bp}\selectfont}p{8.5cm}}
+        \ifhfut at degree@master
+          学位类别:& \hfut at degreetype@name\\
+          \cline{2-2}
+        \fi
+        \hfut at speciality@name:& \hfut at speciality\\
+        \cline{2-2}
+        作者姓名:& \hfut at author \\
+        \cline{2-2}
+        导师姓名:& \hfut at supervisor@names \\
+        \cline{2-2}
+        完成时间:& \hfut at date@zh \\
+        \cline{2-2}
+      \end{tabular}\par%
+      \fi
+      \renewcommand\arraystretch{1}
+  \end{titlepage}%
+  \hfut at reset@main at language
+}
+
+\newcommand{\underlineFixlen}[2][4.85cm]{\underline{\makebox[#1][c]{#2}}}
+
+% 博士学位论文 题名页
+\newcommand\hfut at makephdtitle{%
+  \hfutsetup{language=chinese}%
+  \begin{titlepage}%
+    \hfut at pdfbookmark{题名页}%
+    \centering
+    \ifx\hfut at secret@level\@empty
+      {\sffamily\bfseries\fontsize{12bp}{20bp}\selectfont
+      单位代码:\hfut at underline{10359} \hfill
+      密\hspace{1em}级:\hfut at underline{公开} \par
+      学\hspace{2\ccwd}号:\hfut at underline{\hfut at stuID} \hfill
+      分类号:\hfut at underline{\hfut at clc} \par}
+    \else
+      {\sffamily\bfseries\fontsize{12bp}{20bp}\selectfont
+      单位代码:\hfut at underline{10359} \hfill
+      密\hspace{1em}级:\hfut at underline{\hfut at secret@level\bigstar\hfut at secret@year} \par
+      学\hspace{2\ccwd}号:\hfut at underline{\hfut at stuID} \hfill
+      分类号:\hfut at underline{\hfut at clc} \par}
+    \fi
+    
+    \vskip 2.1cm
+    {\sffamily\bfseries\fontsize{22bp}{27.5bp}\selectfont
+    博\hspace{0.5\ccwd}士\hspace{0.5\ccwd}学\hspace{0.5\ccwd}位\hspace{0.5\ccwd}论\hspace{0.5\ccwd}文\par}%
+    \vskip 1.3cm
+    \renewcommand\arraystretch{1.5}
+    \begin{tabular}{@{}p{11.4cm}@{}}%
+        \multirow[t]{2}{11.4cm}{
+        \centering\linespread{1.5}\bfseries\fontsize{16bp}{24bp}\selectfont
+        \hfut at title} \\
+      \cline{1-1}
+              \\
+      \cline{1-1}
+    \end{tabular}
+    \vskip 1.5cm%
+    {\linespread{1.25}
+    \bfseries\fontsize{16bp}{16bp}\selectfont
+    \uline{\hfut at title@en}\par}%
+    \vskip 3.5cm%
+    {\linespread{1.5}\fontsize{15bp}{15bp}\selectfont
+      \textbf{作者姓名:}\underlineFixlen{\hfut at author} \hfill \textbf{导师姓名:}\underlineFixlen{\hfut at supervisor@names} \par
+      \textbf{申请学位:}\underlineFixlen{\hfut at applydegree} \hfill \textbf{培养单位:}\underlineFixlen{\hfut at school} \par
+      \textbf{学科专业:}\underlineFixlen{\hfut at speciality} \hfill \textbf{研究方向:}\underlineFixlen{\hfut at research} \par
+      \textbf{提交日期:}\underlineFixlen{\hfut at date@zh} \hfill \textbf{答辩日期:}\underlineFixlen{\hfut at defensedate} \par
+    }
+    \vskip 1.3cm
+    \renewcommand\arraystretch{1.5}
+    \begin{tabular}{@{}>{\fontsize{15bp}{22.5bp}\selectfont}p{15.9cm}@{}}%
+      \textbf{答辩委员会主席:} \hfut at phd@chairman \\
+      \cline{1-1}
+      \textbf{评\hspace{2\ccwd}阅\hspace{2\ccwd}人:} \hfut at phd@member  \\
+      \cline{1-1}
+    \end{tabular}
+    \renewcommand\arraystretch{1}
+    \vfill
+
+    {\fontsize{15bp}{15bp}\selectfont\hfut at date@zh}
+
+  \end{titlepage}%
+}
+
+
+\newcommand\hfut at makezhtitle{%
+  \hfutsetup{language=chinese}%
+  \begin{titlepage}%
+    \hfut at pdfbookmark{中文内封页}%
+    \centering
+    {\sffamily\fontsize{22bp}{40bp}\selectfont
+      合\hspace{1.5\ccwd}肥\hspace{1.5\ccwd}工\hspace{1.5\ccwd}业\hspace{1.5\ccwd}大\hspace{1.5\ccwd}学\par}%
+    \vskip 1.8cm%
+    \ifhfut at degree@master
+      {\sffamily\bfseries\fontsize{22bp}{30bp}\selectfont
+      \hfut at degreetype@name 学位论文\par}% 空格不可忽略
+    \else
+      {\sffamily\bfseries\fontsize{22bp}{30bp}\selectfont
+      \hfut at thesis@name\par}%
+    \fi
+    \vskip 1.8cm%
+    {\bfseries\fontsize{22bp}{30bp}\selectfont
+    \hfut at title\par}%
+    \ifhfut at degree@bachelor
+      \vskip 6.5cm
+    \else
+      \vskip 8cm%
+    \fi
+      \begin{tabular}{>{\fontsize{16bp}{16bp}\rmfamily\bfseries\selectfont}l>{\centering\arraybackslash\fontsize{16bp}{16bp}\rmfamily\selectfont}p{8.4cm}}%
+        \ifhfut at degree@bachelor
+          学生姓名:& \hfut at author \\
+          \cline{2-2}\\
+          学生学号:& \hfut at stuID \\
+          \cline{2-2}\\
+          指导教师:& \hfut at supervisor@names \\
+          \cline{2-2}\\
+          \hfut at speciality@name:& \hfut at speciality\\
+          \cline{2-2}\\
+          学院名称:& \hfut at department \\
+          \cline{2-2}
+        \else
+          \ifhfut at degree@doctor
+            作者姓名:& \hfut at author\\
+            \cline{2-2}\\
+            申请学位:& \hfut at applydegree \\
+            \cline{2-2}\\
+            研究方向:& \hfut at research \\
+            \cline{2-2}\\
+            \hfut at speciality@name:& \hfut at speciality\\
+            \cline{2-2}\\
+            指导教师:& \hfut at supervisor@names \\
+            \cline{2-2}
+          \else
+            \ifx\hfut at advisor\@empty
+              作者姓名:& \hfut at author \\
+              \cline{2-2}\\
+              指导教师:& \hfut at supervisor@names \\
+              \cline{2-2}\\
+              学科专业:& \hfut at speciality \\
+              \cline{2-2}\\
+              研究方向:& \hfut at research \\
+              \cline{2-2}
+            \else
+              作者姓名:& \hfut at author \\
+              \cline{2-2}\\
+              指导教师:& \hfut at supervisor@names \\
+              \cline{2-2}\\
+                & \hfut at advisor@names \\
+              \cline{2-2}\\
+              专业名称:& \hfut at speciality \\
+              \cline{2-2}\\
+              研究方向:& \hfut at research \\
+              \cline{2-2}
+            \fi
+          \fi
+        \fi
+    \end{tabular}\par%
+    \vfill
+    {\fontsize{15bp}{15bp}\selectfont\hfut at date@zh}
+  \end{titlepage}%
+  \hfut at reset@main at language
+}
+
+% 英文内封页
+\newcommand\hfut at makeentitle{%
+  \hfutsetup{language=english}%
+  \begin{titlepage}%
+    \hfut at pdfbookmark{English inner cover}%
+    \centering
+    \vspace*{0.5cm}%
+    {\fontsize{16bp}{30bp}\selectfont
+    \hfut at thesis@name at en\par}%
+    \vskip 2.0cm%
+    {\bfseries\fontsize{18bp}{30bp}\selectfont
+    \hfut at title@en\par}%
+    \vskip 1.2cm%
+    {\fontsize{16bp}{30bp}\selectfont
+    By\par
+    \hfut at author@en\par}%
+    \ifhfut at degree@doctor
+      \vskip 7.0cm
+    \else
+      \vskip 10.0cm
+    \fi
+    {\fontsize{16bp}{31bp}\selectfont
+    Hefei University of Technology\par
+    Hefei, Anhui, P.R.China\par
+    \hfut at date@en\par}%
+  \end{titlepage}%
+  \hfut at reset@main at language
+}
+
+% 重新定义 \cs{maketitle},调用 \cs{hfut at makezhtitle}, \cs{hfut at makeentitle}
+% 分别生成封面,中、英文标题页。
+\renewcommand\maketitle{%
+  \newgeometry{margin=2.54cm}%
+  \pagenumbering{Alph}%
+  \pagestyle{empty}%
+  \hfut at makecover
+  \ifhfut at degree@doctor
+    \hfut at makephdtitle
+  \fi
+  \hfut at makezhtitle
+  \hfut at makeentitle
+  \restoregeometry
+  \pagestyle{plain}%
+}
+
+\newcommand\signaturepage{%
+  \begin{titlepage}%
+    \hfut at pdfbookmark{答辩委员签名页}%
+    \null
+    {\centering\sffamily\bfseries\fontsize{22bp}{33bp}\selectfont
+    合\hspace{0.5\ccwd}肥\hspace{0.5\ccwd}工\hspace{0.5\ccwd}业\hspace{0.5\ccwd}大\hspace{0.5\ccwd}学\par}
+    \vskip 0.8cm
+    {\fontsize{16bp}{30bp}\selectfont
+    本论文经答辩委员会全体委员审查,确认符合合肥工业大学\hfut at degreetype@name 学位论文质量要求。\par}
+    \vskip 2.5cm
+    {\centering\fontsize{16bp}{24bp}\selectfont
+    \textbf{答辩委员会签名(工作单位、职称、姓名)}\par}
+    \vskip 1.0cm
+    {\fontsize{16bp}{16bp}\selectfont
+    主席:\hfut at sign@chairman \par}
+    \vskip 1.0cm
+    {\fontsize{16bp}{16bp}\selectfont
+    委员:\parbox[t]{10.5cm}{\linespread{2.0}\selectfont\hfut at sign@member} \par}
+    \vfill
+    {\fontsize{16bp}{16bp}\selectfont
+    导师:\hfut at sign@supervisor }
+  \end{titlepage}%
+}
+
+\ifhfut at degree@bachelor
+  \let\signaturepage\relax
+\fi
+% Reserved for compatibility until 2020-07-01.
+\let\makestatement\signaturepage
+
+
+% \subsection{原创性声明}
+
+% 定义原创性声明
+\newcommand\hfut at originality@master{%
+  本人郑重声明:所呈交的学位论文是本人在导师指导下进行独立研究
+  工作所取得的成果。据我所知,除了文中特别加以标注和致谢的内容
+  外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为
+  获得\underline{\hspace{0.5\ccwd}合肥工业大学\hspace{0.5\ccwd}}或
+  其他教育机构的学位或证书而使用过的材料。对本文成果做出贡献的
+  个人和集体,本人已在论文中作了明确的说明,并表示谢意。\par%
+  学位论文中表达的观点纯属作者本人观点,与合肥工业大学无关。}
+\newcommand\hfut at authorization@master{%
+  本学位论文作者完全了解\underline{\hspace{0.5\ccwd}合肥工业大学\hspace{0.5\ccwd}}有关保留、使用学位论文%
+  的规定,即:除保密期内的涉密学位论文外,学校有权保存并向国家%
+  有关部门或机构送交论文的复印件和电子光盘,允许论文被查阅或借%
+  阅。本人授权\underline{\hspace{0.5\ccwd}合肥工业大学\hspace{0.5\ccwd}}可以将本学位论文的全部或部分内容%
+  编入有关数据库,允许采用影印、缩印或扫描等复制手段保存、汇编%
+  学位论文。\par%
+  (保密的学位论文在解密后适用本授权书)}
+
+\newcommand\hfut at originality@bachelor{%
+  本人郑重声明:所呈交的毕业设计(论文)是本人在指导教师指导下
+  进行独立研究工作所取得的成果。据我所知,除了文中特别加以标注
+  和致谢的内容外,设计(论文)中不包含其他人已经发表或撰写过的
+  研究成果,也不包含为获得\underline{\hspace{0.5\ccwd}合肥工业大学\hspace{0.5\ccwd}}或
+  其他教育机构的学位或证书而使用过的材料。对本文成果做出贡献的
+  个人和集体,本人已在设计(论文)中作了明确的说明,并表示谢意。\par%
+  毕业设计(论文)中表达的观点纯属作者本人观点,与合肥工业大学无关。}
+\newcommand\hfut at authorization@bachelor{%
+  本学位论文作者完全了解\underline{\hspace{0.5\ccwd}合肥工业大学\hspace{0.5\ccwd}}有关保留、使用毕业设计(论文)的规定,即:除保密期内的涉密设计(论文)外,学校有权
+  保存并向国家有关部门或机构送交设计(论文)的复印件和电子光盘,
+  允许设计(论文)被查阅或借阅。本人授权\underline{\hspace{0.5\ccwd}合肥工业大学\hspace{0.5\ccwd}}可以将本毕业设计(论文)的全部或部分内容编入有关数据库,允许采用影
+  印、缩印或扫描等复制手段保存、汇编毕业设计(论文)。\par%
+  (保密的毕业设计(论文)在解密后适用本授权书)}
+  %
+  
+
+\newcommand\copyrightpage{%
+  \begin{titlepage}%
+    \hfut at pdfbookmark{原创性和授权使用声明}%
+    \null
+    \renewcommand\arraystretch{1.5}
+    \ifhfut at degree@bachelor
+      {\centering\sffamily\fontsize{18bp}{18bp}\selectfont
+      \textbf{毕业设计(论文)独创性声明}\par}%
+      \vskip 1.0cm%
+      \hfut at originality@bachelor\par
+      \vskip 0.9cm%
+      毕业设计(论文)作者签名:\hfill%
+      签字日期:\hspace{3\ccwd}年\hspace{2\ccwd}月\hspace{2\ccwd}日\par
+      \vskip 2.33cm%
+      {\centering\sffamily\fontsize{18bp}{18bp}\selectfont
+      \textbf{毕业设计(论文)版权使用授权书}\par}%
+      \vskip 1.0cm%
+      \hfut at authorization@bachelor\par
+      \vskip 1.0cm%
+      \begin{tabular}{@{}p{6.5cm}p{6.5cm}@{}}%
+        学位论文作者签名:& 指导教师签名:\\
+        签名日期:\hspace{3\ccwd}年\hspace{2\ccwd}月\hspace{2\ccwd}日 & 签名日期:\hspace{3\ccwd}年\hspace{2\ccwd}月\hspace{2\ccwd}日
+      \end{tabular}\par
+    \else
+      {\centering\sffamily\fontsize{18bp}{18bp}\selectfont
+      \textbf{学位论文独创性声明}\par}%
+      \vskip 1.25cm%
+      \hfut at originality@master\par
+      \vskip 1.1cm%
+      学位论文作者签名:\hfill%
+      签字日期:\hspace{3\ccwd}年\hspace{2\ccwd}月\hspace{2\ccwd}日\par
+      \vskip 2.8cm%
+      {\centering\sffamily\fontsize{18bp}{18bp}\selectfont
+      \textbf{学位论文版权使用授权书}\par}%
+      \vskip 1.25cm%
+      \hfut at authorization@master\par
+      \vskip 1.2cm%
+      \begin{tabular}{@{}p{6.5cm}p{6.5cm}@{}}%
+        学位论文作者签名:& 指导教师签名:\\
+        签名日期:\hspace{3\ccwd}年\hspace{2\ccwd}月\hspace{2\ccwd}日 & 签名日期:\hspace{3\ccwd}年\hspace{2\ccwd}月\hspace{2\ccwd}日\\
+      \end{tabular}\par
+      \vskip 0.6cm
+      \renewcommand\arraystretch{1.1}
+      \begin{tabular}{@{}p{6.5cm}p{6.5cm}@{}}%
+        论文作者毕业去向 & \\
+        工作单位:& \\
+        联系电话:& E-mail:\\
+        通讯地址:& 邮政编码:
+      \end{tabular}\par
+      \renewcommand\arraystretch{1}
+    \fi
+  \end{titlepage}%
+}
+
+% Reserved for compatibility until 2020-07-01.
+\let\makestatement\copyrightpage
+
+
+% \subsection{章节标题}
+
+% 标题最多允许使用五级。
+\setcounter{secnumdepth}{5}
+
+% 研究生规定章题为两字时中间空两字,三字时空一字,四字时空半字,四字以上不空。
+% 这里用 \LaTeX3 的 \cs{str\_count:N} 判断字数。
+% 注意,\pkg{stringstrings} 宏包会导致范数命令 \verb+\|+ 被修改。
+\newcount\hfut at titlelength
+\DeclareRobustCommand\hfut at spacetitle[1]{%
+  \hfut at titlelength=\csname str_count:N\endcsname{#1}%
+  \begingroup
+    \ifhfut at degree@graduate
+      \ifcase\hfut at titlelength
+      \or\or
+        \ziju{2}%
+      \or
+        \ziju{1}%
+      \or
+        \ziju{0.5}%
+      \fi
+    \else
+      \if at mainmatter\else
+        \ifcase\hfut at titlelength
+        \or\or
+          \ziju{1}%
+        \or\or
+          \ziju{0.5}%
+        \fi
+      \fi
+    \fi
+    #1%
+  \endgroup
+}
+
+% 五级节标题和脚注需要使用带圈的数字,这里使用 \cs{hfut at circlefont} :
+\newcommand\hfut at textcircled[1]{%
+  \ifnum\value{#1}<21\relax
+    {\symbol{\numexpr\value{#1} + "245F\relax}}%
+  \else
+    \hfut at error{Cannot display more than 20 footnotes}%
+  \fi
+}
+
+% 用 \pkg{ctex} 的接口设置全部章节标题格式。
+
+% 各章标题:黑体 16 磅加粗居中,行距为单倍行距,段前 1 行,段后 1 行,
+% 章序号与章名间空一字。
+
+% 由于 Word 模板中使用“单倍行距”,还“对齐到网格”,这在 TeX 中不容易实现。
+% 所以目前按照默认的行距。
+
+% 注意 \pkg{ctex} v2.4.3 以下版本的bug会导致章节标题前后的距离的实际值偏大。
+% 另外 \pkg{ctex} v2.2 前的beforeskip的符号有特殊意义。
+    
+\ctexset{
+  chapter = {
+    format = {
+        \centering
+        \if at mainmatter
+          \fontsize{16bp}{16bp}\sffamily\bfseries\selectfont
+        \else
+          \fontsize{18bp}{16bp}\rmfamily\bfseries\selectfont
+        \fi
+    },
+    nameformat  = {},
+    name        = {第,章},
+    titleformat = {},
+    number      = \chinese{chapter},
+    aftername   = \hspace{0.5\ccwd},
+    beforeskip  = {
+      \if at mainmatter
+        16bp
+      \else
+        9bp
+      \fi
+    },
+    %tocline     = {
+    %  \if at mainmatter
+    %    %\if \@chapapp \appendixname
+    %    \ifhfut at appendix
+    %      {附录~\arabic{chapter}~~#2}
+    %    \else
+    %      {第\chinese{chapter}章~#2}
+    %    \fi
+    %  \else
+    %    \CTEXnumberline{#1}#2
+    %  \fi
+    %},
+    afterskip   = {
+      \if at mainmatter
+        16bp
+      \else
+        24bp
+      \fi
+    },
+    fixskip     = true,
+  },
+}
+
+% 一级节标题:黑体,小四号,左对齐
+% 序号与题名间空一字。
+\ctexset{
+  section = {
+    format     = \sffamily\fontsize{12bp}{15.6bp}\selectfont,
+    aftername  = \hspace{0.5\ccwd},
+    beforeskip = 7.8bp,
+    afterskip  = 7.8bp,
+  },
+  %
+  % 二级节标题:宋体,加黑,小四号,左对齐
+  % 序号与题名间空一字。
+  subsection = {
+    format     = \rmfamily\bfseries\fontsize{12bp}{15.6bp}\selectfont,
+    aftername  = \hspace{0.5\ccwd},
+    beforeskip = 7.8bp,
+    afterskip  = 7.8bp,
+  },
+  %
+  % 三级及以下节标题的格式没有具体规定,按照数学学院推荐的方案:
+  % 使用宋体 12 磅,左缩进两字,行距 20 磅,段前段后 0 磅,序号(n)与题名间空半字宽。
+  subsubsection = {
+    format     = \rmfamily\fontsize{12bp}{15.6bp}\selectfont,
+    number     = (\arabic{subsubsection}),
+    aftername  = \hspace{0.5\ccwd},
+    beforeskip = \z@,
+    afterskip  = \z@,
+    indent     = 2\ccwd,
+  },
+  %
+  % 采用西文式段标题,runin=true
+  paragraph = {
+    format     = \rmfamily\bfseries\fontsize{12bp}{20bp}\selectfont,
+    number     = {},
+    name       = {},
+    aftername  = {},
+    beforeskip = \z@,
+    afterskip  = \ccwd, 
+    indent     = 2\ccwd,
+    runin      = true,
+  },
+  %
+  % 采用西文式子段标题,runin=true
+  subparagraph = {
+    format     = \rmfamily\fontsize{12bp}{20bp}\selectfont,
+    number     = {},
+    name       = {},
+    aftername  = {},
+    beforeskip = \z@,
+    afterskip  = \ccwd, 
+    indent     = 2\ccwd,
+    runin      = true,
+  },
+}
+
+\ifhfut at degree@bachelor
+  \ifhfut at main@language at english
+    \hfutsetup{section-style = arabic}
+  \fi
+\fi
+\hfut at option@hook{main-language}{%
+  \ifhfut at degree@bachelor
+    \ifhfut at main@language at english
+      \hfutsetup{section-style = arabic}%
+    \fi
+  \fi
+}
+
+% 在研究生格式的基础上再设置本科生的章节标题格式。
+\ifhfut at degree@bachelor
+  \setcounter{secnumdepth}{4}
+  \ctexset{
+  %
+  % 论文的致谢、目录、摘要和参考文献等标题用小二号(18 bp)黑体字,居中,
+  % 这通过 \cs{if at mainmatter} 区分。
+  % 正文中的标题分章、节、段三级;章、节标题居中,段标题居左,
+  % 分别用三号(16 bp)黑体、小四(12 bp)黑体、小四(12 bp)黑体。
+    chapter = {
+      name = {},
+      format = {
+        \centering
+        \if at mainmatter
+          \fontsize{16bp}{22bp}\sffamily\bfseries\selectfont
+        \else
+          \fontsize{18bp}{22bp}\rmfamily\bfseries\selectfont
+        \fi
+      },
+      nameformat  = \rmfamily\bfseries,
+      number      = \thechapter,
+      aftername   = \hspace{\ccwd},
+      beforeskip  = {
+        \if at mainmatter
+          22bp
+        \else
+          11bp
+        \fi
+      },
+      afterskip   = {
+        \if at mainmatter
+          22bp
+        \else
+          33bp
+        \fi
+      },
+      fixskip     = true,
+    },
+    section = {
+      format = \sffamily\fontsize{12bp}{22bp}\selectfont,
+      beforeskip = 11bp,
+      afterskip  = 11bp, 
+      nameformat = \rmfamily\bfseries,
+    },
+    subsection = {
+      format     = \rmfamily\bfseries\fontsize{12bp}{22bp}\selectfont,
+      beforeskip = 11bp,
+      afterskip  = 11bp, 
+      nameformat = \rmfamily\bfseries\selectfont,
+      indent     = \z@,
+    },
+    subsubsection = {
+      format     = \rmfamily\fontsize{12bp}{22bp}\selectfont,
+      number     = (\arabic{subsubsection}),
+      aftername  = \hspace{0.5\ccwd},
+      beforeskip = \z@,
+      afterskip  = \z@,
+      indent     = 2\ccwd,
+    },
+    paragraph = {
+      format     = \rmfamily\bfseries\fontsize{12bp}{22bp}\selectfont,
+      number     = {},
+      name       = {},
+      aftername  = {},
+      beforeskip = \z@,
+      afterskip  = \ccwd, 
+      indent     = 2\ccwd,
+      runin      = true,
+    },
+    subparagraph = {
+      format     = \rmfamily\fontsize{12bp}{22bp}\selectfont,
+      number     = {},
+      name       = {},
+      aftername  = {},
+      beforeskip = \z@,
+      afterskip  = \ccwd, 
+      indent     = 2\ccwd,
+      runin      = true,
+    },
+  }
+  %
+  % 本科生的阿拉伯数字式标题的格式与研究生几乎一致,只有中文数字式需要修改。
+  \ifhfut at section@style at arabic\else
+    \ctexset{
+      chapter = {
+        name = {},
+        %number = \chinese{chapter}
+      },
+      section = {
+        %name   = {第,节},
+        %number = \chinese{section},
+      },
+      subsection = {
+        %number    = \chinese{subsection},
+        %aftername = {、},
+      },
+    }
+  \fi
+\fi
+
+% 默认的 \cs{chapter*} 生成的章标题没有编号、不更改页眉,
+% 也不添加进目录或 PDF 书签。
+% 然而像摘要、目录、符号说明这样的章节,它们不需要编号、不加入目录,
+% 但是需要修改页眉,并且加入 PDF 标签。
+% 所以我们新定义 \cs{hfut at chapter} 用于处理这些章节。%
+\NewDocumentCommand\hfut at chapter{o m}{%
+  \if at openright\cleardoublepage\else\clearpage\fi
+  \IfValueTF{#1}{%
+    \hfut at pdfbookmark{#1}%
+    \chaptermark{#1}%
+  }{%
+    \hfut at pdfbookmark{#2}%
+    \chaptermark{#2}%
+  }%
+  \chapter*{#2}}
+  %
+  %
+  % \subsection{摘要}
+  %
+  % 中文摘要环境。
+  % 判断 \cs{hfut at tocloaded} 是为了防止本科生未调整摘要位置时的目录页码缺失。
+\newcommand\hfut at keywords@text{%
+  \hfut at clist@use{\hfut at keywords}{;}%
+}
+\newcommand\hfut at keywords@en at text{%
+  \hfut at clist@use{\hfut at keywords@en}{; }%
+}
+\newenvironment{abstract}{%
+  \hfutsetup{language=chinese}%
+  \ifhfut at degree@graduate
+    \pagestyle{plain}
+    \ctexset{chapter/format=\centering\Large\selectfont\bfseries}%
+    \hfut at chapter[摘要]{摘\hspace{\ccwd}要}%
+  \else
+    \pagestyle{plain}
+    \hfut at chapter[摘要]{摘\hspace{\ccwd}要}%
+    % \ifhfut at tocloaded\else
+    %   本科生需要手动将摘要置于目录后。\par
+    % \fi
+  \fi
+}{
+  \pagestyle{plain}
+  \par\null\par\noindent
+  \textbf{关键词:}\hfut at keywords@text\par
+  \hfut at reset@main at language
+}
+
+% 英文摘要环境
+\newenvironment{abstract*}{%
+  \hfutsetup{language=english}%
+  \ctexset{chapter/format=\centering\Large\selectfont\bfseries}%
+  \setlength{\parindent}{1em}
+  \ifhfut at degree@graduate
+    \hfut at chapter[Abstract]{ABSTRACT}%
+    \pagestyle{plain}
+  \else
+    \begingroup
+      \pagestyle{plain}%
+      \hfut at chapter[Abstract]{ABSTRACT}%
+    \endgroup
+  \fi
+}{
+  %\pagestyle{plain}
+  \par\null\par\noindent
+  \textbf{KEYWORDS:} \hfut at keywords@en at text\par
+  \ifhfut at degree@graduate
+    \cleardoublepage
+  \fi
+  \hfut at reset@main at language
+}
+
+% Reserved for compatibility until 2020-07-01.
+\newenvironment{enabstract}{%
+  \begin{abstract*}%
+}{%
+  \end{abstract*}%
+}
+
+
+% \subsection{目录}
+
+% 判断是否已经加载目录,用于提醒本科生更改摘要和致谢的顺序。
+\newif\ifhfut at tocloaded
+
+% 判断是否在附录中
+\newif\ifhfut at appendix
+
+% 研究生规定目录另面起;
+% 本科生规定从正文起标页码。
+\renewcommand\tableofcontents{%
+  \ifhfut at degree@bachelor
+    \cleardoublepage
+    %\pagenumbering{arabic}%
+    \pagestyle{plain}%
+    \hfut at tocloadedtrue
+  \else
+    \pagestyle{plain}%
+  \fi
+  \hfut at chapter{\contentsname}%
+  \@starttoc{toc}%
+}
+
+% 下面用 \pkg{titletoc} 宏包设置目录内容的格式。
+% 先定义目录线:
+\newcommand\hfut at leaders{\titlerule*[9bp]{\textperiodcentered}}
+
+% 各章目录要求宋体 12 磅,单倍行距,段前 6 磅,段后 0 磅,两端对齐,
+% 页码右对齐,章序号与章名间空一字。
+% 但是 Word 模板中实际是行距 20 磅。
+\ifhfut at degree@graduate
+  \titlecontents{chapter}
+    [\z@]{\bfseries\normalsize}
+    {\contentspush{\thecontentslabel\hspace{0.5\ccwd}}}{}
+    {\normalsize\hfut at leaders\contentspage}
+    %
+    % 一级节标题目录要求宋体 12 磅,单倍行距,左缩进一字,段前 6 磅,段后 0 磅,
+    % 两端对齐,页码右对齐,序号与题名间空一字。
+    % Word 模板中实际是行距 20 磅,段前 0 磅。
+  \titlecontents{section}
+    [2\ccwd]{\normalsize}
+    {\contentspush{\thecontentslabel\hspace{0.5\ccwd}}}{}
+    {\normalsize\hfut at leaders\contentspage}
+    %
+    % 二级节标题目录要求宋体 12 磅,单倍行距,左缩进两字,段前 6 磅,段后 0 磅,
+    % 两端对齐,页码右对齐,序号与题名间空一字。
+    % Word 模板中实际是行距 20 磅,段前 0 磅。
+  \titlecontents{subsection}
+    [4\ccwd]{\normalsize}
+    {\contentspush{\thecontentslabel\hspace{0.5\ccwd}}}{}
+    {\normalsize\hfut at leaders\contentspage}
+    %
+    % 本科生的目录使用小四宋体(同正文字体),其他同研究生的格式相近。
+\else
+  \titlecontents{chapter}
+    [\z@]{\bfseries\normalsize}
+    {\contentspush{\thecontentslabel\unskip\hspace{0.5\ccwd}}}{}
+    {\hfut at leaders\contentspage}
+  \titlecontents{section}
+    [2\ccwd]{\normalsize}
+    {\contentspush{\thecontentslabel\hspace{0.5\ccwd}}}{}
+    {\hfut at leaders\contentspage}
+  \titlecontents{subsection}
+    [4\ccwd]{\normalsize}
+    {\contentspush{\thecontentslabel\hspace{0.5\ccwd}}}{}
+      %\ifhfut at section@style at arabic\hspace{\ccwd}\else 、\fi}}{}
+    {\hfut at leaders\contentspage}
+\fi
+
+% 本科生要求目录中正文每章前多空一行,而目录、附录等章则不需要空行,
+% 所以不能简单判断 \cs{if at mainmatter},需要重新定义 \cs{mainmatter} 等命令。
+% \newif\ifhfut at addtocspace
+% \ifhfut at degree@bachelor
+%   \hfut at addtocspacetrue
+%   \g at addto@macro\frontmatter{\hfut at addtocspacefalse}%
+%   \g at addto@macro\mainmatter{\hfut at addtocspacetrue}%
+%   \g at addto@macro\backmatter{\hfut at addtocspacefalse}%
+%   \g at addto@macro\appendix{\hfut at addtocspacefalse}%
+% \fi
+
+% 处理本科生在目录中添加空行。
+% \renewcommand\chapter{%
+%   \if at openright\cleardoublepage\else\clearpage\fi
+%   \thispagestyle{\CTEX at chapter@pagestyle}%
+%   \global\@topnum\z@
+%   \@afterindenttrue
+%   \ifhfut at degree@bachelor
+%     \ifhfut at addtocspace
+%       \addtocontents{toc}{\protect\addvspace{12bp}}%
+%     \fi
+%   \fi
+%   \secdef\@chapter\@schapter
+% }
+
+% 研究生要求图、表的清单须另页起。
+\newlength{\hfut at lof@label at width}
+\newcommand\hfut at set@lof at format{%
+  \settowidth{\hfut at lof@label at width}{\figurename~9.99}%
+  \addtolength{\hfut at lof@label at width}{0.5\ccwd}%
+  \titlecontents{figure}%
+    [\hfut at lof@label at width]{\normalsize}%
+    {\contentslabel[\figurename~\thecontentslabel]{\hfut at lof@label at width}}{}%
+    {\hfut at leaders\contentspage}%
+  \titlecontents{table}%
+    [\hfut at lof@label at width]{\normalsize}%
+    {\contentslabel[\tablename~\thecontentslabel]{\hfut at lof@label at width}}{}%
+    {\hfut at leaders\contentspage}%
+}
+\hfut at set@lof at format
+\hfut at option@hook{main-language}{\hfut at set@lof at format}
+\renewcommand\listoffigures{%
+  \ifhfut at degree@graduate
+    \cleardoublepage
+  \fi
+  \hfut at chapter{\listfigurename}%
+  \@starttoc{lof}%
+}
+\renewcommand\listoftables{%
+  \ifhfut at degree@graduate
+    \cleardoublepage
+  \fi
+  \hfut at chapter{\listtablename}%
+  \@starttoc{lot}%
+}
+
+
+% \subsection{符号说明}
+
+% 研究生规定符号说明另页起,标题字体字号等同论文正文,
+\newenvironment{notation}{%
+  \ifhfut at degree@graduate
+    \cleardoublepage
+    \pagestyle{plain}%
+  \fi
+  \hfut at chapter{\hfut at notation@name}%
+}{%
+  \ifhfut at degree@graduate
+    \clearpage
+    \pagestyle{plain}%
+  \fi
+}%
+\newcommand*\notationlabel[1]{#1\hfil}%
+\newenvironment{notationlist}[1]{%
+  \list{}{%
+    \itemsep 3bp%
+    \labelwidth #1\relax%
+    \labelsep 1em%
+    \leftmargin\labelwidth
+    \advance\leftmargin\labelsep
+    \advance\leftmargin 3em%
+    \rightmargin 3em%
+    \let\makelabel\notationlabel
+  }%
+}{%
+  \endlist
+}
+
+
+% \subsection{正文}
+
+% \cs{sloppy} 可以减少“overfull boxes”。
+\sloppy
+
+% 禁止扩大段间距。(\href{https://github.com/ustctug/ustcthesis/issues/209}{
+%   ustctug/ustcthesis\#209})
+\raggedbottom
+
+% 段间距 0 磅。
+\setlength{\parskip}{\z@}
+
+% 首段缩进。
+\ctexset{autoindent=2}
+
+% 首段缩进。
+\let\@afterindentfalse\@afterindenttrue
+\@afterindenttrue
+
+% URL 的字体设为保持原样。
+\urlstyle{same}
+
+% 使用 \pkg{xurl} 宏包的方法,增加 URL 可断行的位置。
+\def\UrlBreaks{%
+  \do\/%
+  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l%
+     \do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z%
+  \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L%
+     \do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z%
+  \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9\do=\do/\do.\do:%
+  \do\*\do\-\do\~\do\'\do\"\do\-}
+\Urlmuskip=0mu plus 0.1mu
+
+% 脚注用带圈的数字:
+\renewcommand\thefootnote{\hfut at textcircled{footnote}}
+
+% LaTeX 默认脚注按章计数,即每章的开始才重置脚注计数器;我们修改为按页计数。
+% 简单的|\@addtoreset{footnote}{page}|并不可靠,
+% \footnote{\url{https://texfaq.org/FAQ-footnpp.html}}
+% 所以我们使用 \pkg{footmisc} 宏包。
+
+% 脚注线长为版心宽度的四分之一:
+\renewcommand\footnoterule{%
+  \kern-3\p@
+  \hrule\@width.25\textwidth
+  \kern2.6\p@}
+  %
+  % 注文缩进两字:
+\renewcommand\@makefntext[1]{%
+  \parindent 2\ccwd\relax
+  \noindent
+  \hb at xt@2\ccwd{\hss\@makefnmark}#1}
+
+
+% \subsection{列表}
+% \label{sec:list}
+
+% 调整列表中各项之间过大的间距。
+\setlength\partopsep{\z@}
+\newcommand\hfut at nolistsep{%
+  \parsep 0\p@ \@plus.2\p@
+  \topsep 0\p@ \@plus.2\p@
+  \itemsep0\p@ \@plus.2\p@
+}
+\def\@listi{\leftmargin\leftmargini
+            \hfut at nolistsep}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+              \labelwidth\leftmarginii
+              \advance\labelwidth-\labelsep
+              \hfut at nolistsep}
+\def\@listiii{\leftmargin\leftmarginiii
+              \labelwidth\leftmarginiii
+              \advance\labelwidth-\labelsep
+              \hfut at nolistsep}
+
+
+% \subsection{浮动体}
+
+% \LaTeX{} 对放置浮动体的要求比较强,这里按照 UK TeX FAQ 的建议
+% \footnote{\url{https://texfaq.org/FAQ-floats}} 对其适当放宽。
+\renewcommand\topfraction{.85}
+\renewcommand\bottomfraction{.7}
+\renewcommand\textfraction{.15}
+\renewcommand\floatpagefraction{.66}
+\renewcommand\dbltopfraction{.66}
+\renewcommand\dblfloatpagefraction{.66}
+\setcounter{topnumber}{9}
+\setcounter{bottomnumber}{9}
+\setcounter{totalnumber}{20}
+\setcounter{dbltopnumber}{9}
+
+% 修改默认的浮动体描述符为 |htb|。
+\def\fps at figure{h}
+\def\fps at table{h}
+
+% 用 \pkg{caption} 宏包设置图、表的格式:
+
+% 图号、图题置于图的下方,宋体 10.5 磅居中,单倍行距,段前 6 磅,段后 12 磅,
+% 图号与图题文字之间空一字,图号、图题加粗。
+% 图注位于图的下方,左缩进两字,续行悬挂缩进左对齐,两端对齐。
+
+% 表号、表题置于表的上方,黑体 10.5 磅居中,单倍行距,段前 6 磅,段后 6 磅,
+% 表号与表题文字之间空一字,表号、表题加粗。
+% 表注左缩进两字,续行悬挂缩进左对齐,两端对齐。
+\setlength{\floatsep}{6bp}
+\setlength{\textfloatsep}{6bp}
+\setlength{\intextsep}{12bp}
+
+% 由于 LaTeX2e kernel 的问题,图表等浮动体与文字前后的距离不一致,需要进行 patch。
+% 参考 \href{https://github.com/tuna/thuthesis/issues/614}{tuna/thuthesis/issues\#614}、
+% \url{https://www.zhihu.com/question/46618031} 和
+% \url{https://tex.stackexchange.com/a/40363/82731}。
+%    \begin{macrocode}
+\patchcmd{\@addtocurcol}%
+  {\vskip \intextsep}%
+  {\edef\save at first@penalty{\the\lastpenalty}\unpenalty
+   \ifnum \lastpenalty = \@M  % hopefully the OR penalty
+     \unpenalty
+   \else
+     \penalty \save at first@penalty \relax % put it back
+   \fi
+   \ifnum\outputpenalty <-\@Mii
+     \addvspace\intextsep
+     \vskip\parskip
+   \else
+     \addvspace\intextsep
+   \fi}%
+  {}{\hfut at patch@error{\@addtocurcol}}
+\patchcmd{\@addtocurcol}%
+  {\vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi}%
+  {\ifnum\outputpenalty <-\@Mii
+     \aftergroup\vskip\aftergroup\intextsep
+     \aftergroup\nointerlineskip
+   \else
+     \vskip\intextsep
+   \fi}%
+  {}{\hfut at patch@error{\@addtocurcol}}
+\patchcmd{\@getpen}{\@M}{\@Mi}
+  {}{\hfut at patch@error{\@getpen}}
+
+\DeclareCaptionFont{hfut}{%
+  \ifhfut at language@chinese
+    \fontsize{10.5bp}{13.65bp}\selectfont
+  \else
+    \fontsize{10.5bp}{12.075bp}\selectfont
+  \fi
+}
+
+\captionsetup{
+  font           = hfut,
+  labelsep       = quad,
+  skip           = 6bp,
+  figureposition = bottom,
+  tableposition  = top,
+}
+% graduate的图表标题不需要加粗
+% \ifhfut at degree@graduate
+%   \captionsetup{font+=bf}
+%   \captionsetup[table]{font+=sf}
+% \fi
+
+% 硕博需要中英文双标题
+\captionsetup[figure][bi-second]{name=Fig} %设置图的英文编号前缀
+\captionsetup[table][bi-second]{name=Tab} %设置表的英文编号前缀
+
+% 新定义了 \cs{note} 来生成图表的附注。
+% 如果用 \cs{caption} 生成图表的附注会导致图表的序号有误;
+% 如果用 \cs{bicaption} 会导致表注无法置于表后,而且对齐方式不对。
+\newcommand\note[1]{%
+  \begingroup
+    \captionsetup{
+      font          = hfut,
+      margin        = 2\ccwd,
+      position      = bottom,
+    }%
+    \caption*{#1}%
+  \endgroup
+}
+
+% 表格默认字号略小
+\patchcmd\@floatboxreset{%
+  \normalsize
+}{%
+  \small
+}{}{\hfut at patch@error{\@floatboxreset}}
+
+% 对 \pkg{longtable} 跨页表格进行相同的设置。
+%
+% 在 Word 模板中按照正确的设置(需要去掉文档网格),
+% 中文模板每页能装下 1 行标题、1 行表头、30 行表身,
+% 英文模板每页能装下 1 行标题、1 行表头、33 行表身。
+%    \begin{macrocode}
+\AtEndOfPackageFile*{longtable}{
+  \AtBeginEnvironment{longtable}{%
+    \small
+  }
+}
+
+
+% \subsection{参考文献}
+
+\PassOptionsToPackage{compress}{natbib}
+
+\AtEndOfPackageFile*{natbib}{
+  % 定义几种引用文献的标注样式。
+  \newcommand\bibstyle at super{\bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}}
+  \newcommand\bibstyle at inline{\bibpunct{[}{]}{,}{n}{,}{,}}
+  \newcommand\bibstyle at authoryear{\bibpunct{(}{)}{;}{a}{,}{,}}
+  \@namedef{bibstyle at author-year}{\bibstyle at authoryear}
+  %
+  % 几种种引用样式,与 \file{bst} 文件名保持一致,
+  % 这样在使用 \cs{bibliographystyle} 选择参考文献表的样式时也会设置对应的引用样式。
+  \@namedef{bibstyle at hfutthesis-numerical}{\bibstyle at super}
+  \@namedef{bibstyle at hfutthesis-authoryear}{\bibstyle at authoryear}
+  \@namedef{bibstyle at hfutthesis-graduate}{\bibstyle at super}
+  %
+  % 如果载入 `natbib` 前设置了 `cite-style`,这里先进行配置。
+  % https://github.com/ustctug/ustcthesis/issues/327
+  \ifx\hfut at cite@style\@empty\else
+    \citestyle{\hfut at cite@style}%
+  \fi
+  %
+  % 定义接口 cite-style 切换引用样式。
+  \hfut at option@hook{cite-style}{%
+    \ifx\@begindocumenthook\@undefined
+    \citestyle{\hfut at cite@style}%
+    \fi
+  }
+  %
+  % 如果文献序号作为叙述文字的一部分,需要临时将文献序号与正文平排
+  \DeclareRobustCommand\inlinecite{\@inlinecite}
+  \def\@inlinecite#1{\begingroup\let\@cite\NAT at citenum\citep{#1}\endgroup}
+  %
+  % 修改引用的样式。
+  % 这里在 filehook 中无法使用 \cs{patchcmd},所以只能手动重定义。
+  %
+  % 将 super 式 \cs{citep} 引用的页码置于括号外。
+  \renewcommand\NAT at citesuper[3]{\ifNAT at swa
+    \if*#2*\else#2\NAT at spacechar\fi
+    % \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}%
+    %  \if*#3*\else\NAT at spacechar#3\fi\else #1\fi\endgroup}
+    \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close\if*#3*\else#3\fi}%
+    \else #1\fi\endgroup}
+  %
+  % 将 numbers 式 \cs{citep} 引用的页码置于括号外并改为上标。
+  \renewcommand\NAT at citenum%
+      [3]{\ifNAT at swa\NAT@@open\if*#2*\else#2\NAT at spacechar\fi
+          % #1\if*#3*\else\NAT at cmt#3\fi\NAT@@close\else#1\fi\endgroup}
+          #1\NAT@@close\textsuperscript{\if*#3*\else#3\fi}\else#1\fi\endgroup}
+  %
+  % 在 filehook 中无法使用 \cs{patchcmd},所以只能手动重定义。
+  \def\NAT at citexnum[#1][#2]#3{%
+    \NAT at reset@parser
+    \NAT at sort@cites{#3}%
+    \NAT at reset@citea
+    \@cite{\def\NAT at num{-1}\let\NAT at last@yr\relax\let\NAT at nm\@empty
+      \@for\@citeb:=\NAT at cite@list\do
+      {\@safe at activestrue
+      \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
+      \@safe at activesfalse
+      \@ifundefined{b@\@citeb\@extra at b@citeb}{%
+        {\reset at font\bfseries?}
+          \NAT at citeundefined\PackageWarning{natbib}%
+        {Citation `\@citeb' on page \thepage \space undefined}}%
+      {\let\NAT at last@num\NAT at num\let\NAT at last@nm\NAT at nm
+        \NAT at parse{\@citeb}%
+        \ifNAT at longnames\@ifundefined{bv@\@citeb\@extra at b@citeb}{%
+          \let\NAT at name=\NAT at all@names
+          \global\@namedef{bv@\@citeb\@extra at b@citeb}{}}{}%
+        \fi
+        \ifNAT at full\let\NAT at nm\NAT at all@names\else
+          \let\NAT at nm\NAT at name\fi
+        \ifNAT at swa
+        \@ifnum{\NAT at ctype>\@ne}{%
+          \@citea
+          \NAT at hyper@{\@ifnum{\NAT at ctype=\tw@}{\NAT at test{\NAT at ctype}}{\NAT at alias}}%
+        }{%
+          \@ifnum{\NAT at cmprs>\z@}{%
+          \NAT at ifcat@num\NAT at num
+            {\let\NAT at nm=\NAT at num}%
+            {\def\NAT at nm{-2}}%
+          \NAT at ifcat@num\NAT at last@num
+            {\@tempcnta=\NAT at last@num\relax}%
+            {\@tempcnta\m at ne}%
+          \@ifnum{\NAT at nm=\@tempcnta}{%
+            \@ifnum{\NAT at merge>\@ne}{}{\NAT at last@yr at mbox}%
+          }{%
+            \advance\@tempcnta by\@ne
+            \@ifnum{\NAT at nm=\@tempcnta}{%
+              % 在顺序编码制下,\pkg{natbib} 只有在三个以上连续文献引用才会使用连接号,
+              % 这里修改为允许两个引用使用连接号。
+              % 参考 https://tex.stackexchange.com/a/86991/82731 。
+              %
+              % \ifx\NAT at last@yr\relax
+              %   \def at NAT@last at yr{\@citea}%
+              % \else
+              %   \def at NAT@last at yr{--\NAT at penalty}%
+              % \fi
+              \def at NAT@last at yr{-\NAT at penalty}%
+            }{%
+              \NAT at last@yr at mbox
+            }%
+          }%
+          }{%
+          \@tempswatrue
+          \@ifnum{\NAT at merge>\@ne}{\@ifnum{\NAT at last@num=\NAT at num\relax}{\@tempswafalse}{}}{}%
+          \if at tempswa\NAT at citea@mbox\fi
+          }%
+        }%
+        \NAT at def@citea
+        \else
+          \ifcase\NAT at ctype
+            \ifx\NAT at last@nm\NAT at nm \NAT at yrsep\NAT at penalty\NAT at space\else
+              \@citea \NAT at test{\@ne}\NAT at spacechar\NAT at mbox{\NAT at super@kern\NAT@@open}%
+            \fi
+            \if*#1*\else#1\NAT at spacechar\fi
+            \NAT at mbox{\NAT at hyper@{{\citenumfont{\NAT at num}}}}%
+            \NAT at def@citea at box
+          \or
+            \NAT at hyper@citea at space{\NAT at test{\NAT at ctype}}%
+          \or
+            \NAT at hyper@citea at space{\NAT at test{\NAT at ctype}}%
+          \or
+            \NAT at hyper@citea at space\NAT at alias
+          \fi
+        \fi
+      }%
+      }%
+        \@ifnum{\NAT at cmprs>\z@}{\NAT at last@yr}{}%
+        \ifNAT at swa\else
+          % 将 numerical 式 \cs{citet} 引用的页码置于括号外并改为上标。
+          %
+          % \@ifnum{\NAT at ctype=\z@}{%
+          %   \if*#2*\else\NAT at cmt#2\fi
+          % }{}%
+          \NAT at mbox{\NAT@@close}%
+          \@ifnum{\NAT at ctype=\z@}{%
+            \if*#2*\else\textsuperscript{#2}\fi
+          }{}%
+        \fi
+    }{#1}{#2}%
+  }%
+  %
+  % 将 author-year 式 \cs{citep} 引用的页码置于括号外并改为上标:
+  \renewcommand\NAT at cite%
+      [3]{\ifNAT at swa\NAT@@open\if*#2*\else#2\NAT at spacechar\fi
+          % #1\if*#3*\else\NAT at cmt#3\fi\NAT@@close\else#1\fi\endgroup}
+          #1\NAT@@close\if*#3*\else\textsuperscript{#3}\fi\else#1\fi\endgroup}
+  %
+  % 调整 author-year 式 \cs{citet} 引用的页码。
+  \def\NAT at citex%
+    [#1][#2]#3{%
+    \NAT at reset@parser
+    \NAT at sort@cites{#3}%
+    \NAT at reset@citea
+    \@cite{\let\NAT at nm\@empty\let\NAT at year\@empty
+      \@for\@citeb:=\NAT at cite@list\do
+      {\@safe at activestrue
+      \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
+      \@safe at activesfalse
+      \@ifundefined{b@\@citeb\@extra at b@citeb}{\@citea%
+        {\reset at font\bfseries ?}\NAT at citeundefined
+                  \PackageWarning{natbib}%
+        {Citation `\@citeb' on page \thepage \space undefined}\def\NAT at date{}}%
+      {\let\NAT at last@nm=\NAT at nm\let\NAT at last@yr=\NAT at year
+        \NAT at parse{\@citeb}%
+        \ifNAT at longnames\@ifundefined{bv@\@citeb\@extra at b@citeb}{%
+          \let\NAT at name=\NAT at all@names
+          \global\@namedef{bv@\@citeb\@extra at b@citeb}{}}{}%
+        \fi
+      \ifNAT at full\let\NAT at nm\NAT at all@names\else
+        \let\NAT at nm\NAT at name\fi
+      \ifNAT at swa\ifcase\NAT at ctype
+        \if\relax\NAT at date\relax
+          \@citea\NAT at hyper@{\NAT at nmfmt{\NAT at nm}\NAT at date}%
+        \else
+          \ifx\NAT at last@nm\NAT at nm\NAT at yrsep
+              \ifx\NAT at last@yr\NAT at year
+                \def\NAT at temp{{?}}%
+                \ifx\NAT at temp\NAT at exlab\PackageWarningNoLine{natbib}%
+                {Multiple citation on page \thepage: same authors and
+                year\MessageBreak without distinguishing extra
+                letter,\MessageBreak appears as question mark}\fi
+                \NAT at hyper@{\NAT at exlab}%
+              \else\unskip\NAT at spacechar
+                \NAT at hyper@{\NAT at date}%
+              \fi
+          \else
+            \@citea\NAT at hyper@{%
+              \NAT at nmfmt{\NAT at nm}%
+              \hyper at natlinkbreak{%
+                \NAT at aysep\NAT at spacechar}{\@citeb\@extra at b@citeb
+              }%
+              \NAT at date
+            }%
+          \fi
+        \fi
+      \or\@citea\NAT at hyper@{\NAT at nmfmt{\NAT at nm}}%
+      \or\@citea\NAT at hyper@{\NAT at date}%
+      \or\@citea\NAT at hyper@{\NAT at alias}%
+      \fi \NAT at def@citea
+      \else
+        \ifcase\NAT at ctype
+          \if\relax\NAT at date\relax
+            \@citea\NAT at hyper@{\NAT at nmfmt{\NAT at nm}}%
+          \else
+          \ifx\NAT at last@nm\NAT at nm\NAT at yrsep
+              \ifx\NAT at last@yr\NAT at year
+                \def\NAT at temp{{?}}%
+                \ifx\NAT at temp\NAT at exlab\PackageWarningNoLine{natbib}%
+                {Multiple citation on page \thepage: same authors and
+                year\MessageBreak without distinguishing extra
+                letter,\MessageBreak appears as question mark}\fi
+                \NAT at hyper@{\NAT at exlab}%
+              \else
+                \unskip\NAT at spacechar
+                \NAT at hyper@{\NAT at date}%
+              \fi
+          \else
+            \@citea\NAT at hyper@{%
+              \NAT at nmfmt{\NAT at nm}%
+              \hyper at natlinkbreak{\NAT at spacechar\NAT@@open\if*#1*\else#1\NAT at spacechar\fi}%
+                {\@citeb\@extra at b@citeb}%
+              \NAT at date
+            }%
+          \fi
+          \fi
+        \or\@citea\NAT at hyper@{\NAT at nmfmt{\NAT at nm}}%
+        \or\@citea\NAT at hyper@{\NAT at date}%
+        \or\@citea\NAT at hyper@{\NAT at alias}%
+        \fi
+        \if\relax\NAT at date\relax
+          \NAT at def@citea
+        \else
+          \NAT at def@citea at close
+        \fi
+      \fi
+      }}\ifNAT at swa\else
+        % 将 author-year 式 \cs{citet} 引用的页码置于括号外并改为上标。
+        %
+        % \if*#2*\else\NAT at cmt#2\fi
+        \if\relax\NAT at date\relax\else\NAT@@close\fi
+        \if*#2*\else\textsuperscript{#2}\fi
+      \fi}{#1}{#2}}
+  %
+  % 为了将参考文献加入目录和 pdf 书签,重新定义 \pkg{natbib} 的 \cmd{bibsection}
+  % 另外如果调用了 \pkg{chapterbib} 或者使用了 \opt{sectionbib} 参数,
+  % 需要使用节标题 \cs{section}。
+  \newcommand\hfut at bib@chapter{%
+    \@mainmatterfalse
+    \ifhfut at degree@bachelor
+      \ctexset{
+        chapter/format = {
+          \centering\fontsize{16bp}{22bp}\sffamily\bfseries\selectfont
+        },
+        chapter/beforeskip  = 11bp,
+        chapter/afterskip   = 11bp,
+      }
+    \fi
+    \chapter{\bibname}%
+  }%
+  \newcommand\hfut at bib@section{%
+    \begingroup
+      \ctexset{section/numbering=false}%
+      \section{\bibname}%
+    \endgroup
+  }%
+  \@ifpackagewith{chapterbib}{sectionbib}{%
+    \hfut at error{The "sectionbib" option cannot be used with chaperbib if natbib loaded}%
+  }{}%
+  \@ifpackageloaded{chapterbib}{%
+    \let\bibsection\hfut at bib@section
+  }{%
+    \@ifxundefined\NAT at sectionbib{%
+      \let\bibsection\hfut at bib@chapter
+    }{%
+      \let\bibsection\hfut at bib@section
+    }%
+  }%
+  %
+  % 参考文献列表格式:宋体 10.5 磅,行距 20 磅,续行缩进2.5字符,左对齐。
+  \renewcommand\bibfont{%
+    \fontsize{10.5bp}{20bp}\selectfont
+  }
+  \setlength{\bibsep}{0\p@ \@plus.2\p@}
+  \renewcommand\@biblabel[1]{[#1]\hfill}
+  \setlength{\bibhang}{2.5\ccwd}
+}
+
+
+% biblatex 宏包的配置
+
+\AtEndOfPackageFile*{biblatex}{
+  \AtBeginDocument{
+    \ifthenelse{\equal{\blx at bbxfile}{apa}}{\def\bibname{REFERENCES}}{}
+    \ifthenelse{\equal{\blx at bbxfile}{apa6}}{\def\bibname{REFERENCES}}{}
+    \ifthenelse{\equal{\blx at bbxfile}{mla}}{\def\bibname{WORKS CITED}}{}
+    \ifthenelse{\equal{\blx at bbxfile}{mla-new}}{\def\bibname{WORKS CITED}}{}
+  }
+  \DeclareRobustCommand\inlinecite{\parencite}
+  \defbibheading{bibliography}[\bibname]{%
+    \@mainmatterfalse
+    \chapter{\bibname}%
+  }
+  \renewcommand\bibfont{%
+    \fontsize{10.5bp}{20bp}\selectfont
+  }
+  \setlength{\bibitemsep}{0\p@ \@plus.2\p@}
+  \setlength{\bibhang}{2.5\ccwd}
+}
+
+% \subsection{附录}
+
+% 定义了一个满足要求的致谢环境:
+\newenvironment{acknowledgements}{%
+  \@mainmatterfalse
+  \ifhfut at degree@graduate
+    \hfut at chapter[致谢]{\hfut at acknowledgements@name}%
+  \else
+    \chapter{致谢}%
+  \fi
+}{}
+
+
+% 兼容旧版本中“acknowledgments”的拼法。
+% Reserved for compatibility until 2020-07-01.
+\newenvironment{acknowledgments}{%
+  \begin{acknowledgements}%
+}{%
+  \end{acknowledgements}%
+}
+
+% TODO 发表成果环境格式:
+\newenvironment{publications}{%
+  \@mainmatterfalse
+  \ctexset{
+    chapter/format = \centering\sffamily\bfseries\fontsize{18bp}{18bp}\selectfont,
+    chapter/beforeskip  = 9bp,
+    chapter/afterskip   = 27bp,
+    section/name = {,)},
+    section/nameformat = {},
+    section/aftername = {},
+    section/format = \sffamily\bfseries\fontsize{12bp}{20bp}\selectfont\bfseries,
+    section/beforeskip  = 10bp,
+    section/afterskip   = 10bp,
+  }
+  \chapter{\hfut at publication@name}%
+  \renewcommand\thesection{\arabic{section}}
+  \setenumerate[1]{itemsep = 0pt, parsep = 0pt, label = (\arabic*)}
+  \setcounter{tocdepth}{0}
+  \setcounter{section}{0}
+}{}
+
+
+% \subsection{其他宏包的设置}
+
+% 这些宏包并非格式要求,但是为了方便同学们使用,在这里进行简单设置。
+
+
+% \subsubsection{\pkg{hyperref} 宏包}
+
+\AtEndOfPackageFile*{hyperref}{
+  \hypersetup{
+    bookmarksnumbered  = true,
+    bookmarksopen      = true,
+    bookmarksopenlevel = 1,
+    linktoc            = all,
+    unicode            = true,
+    psdextra           = true,
+  }
+  %
+  % 如果为 \opt{pdf} 样式,设置 hyperlink 颜色
+  \ifhfut at output@electronic
+    \hypersetup{
+      colorlinks = true,
+      allcolors  = red,
+    }
+  \else
+    \hypersetup{hidelinks}
+  \fi
+  %
+  % 填写 PDF 元信息。
+  \AtBeginDocument{%
+    \ifhfut at main@language at chinese
+      \hypersetup{
+        pdftitle  = \hfut at title,
+        pdfauthor = \hfut at author,
+      }%
+    \else
+      \hypersetup{
+        pdftitle  = \hfut at title@en,
+        pdfauthor = \hfut at author@en,
+      }%
+    \fi
+  }
+  %
+  % 添加 PDF 书签
+  %
+  \newcounter{hfut at bookmarknumber}
+  \renewcommand\hfut at pdfbookmark[1]{%
+    \phantomsection
+    \stepcounter{hfut at bookmarknumber}%
+    \pdfbookmark[0]{#1}{hfutchapter.\thehfut at bookmarknumber}%
+  }
+  %
+  % 在 PDF 字符串中去掉换行,以减少 \pkg{hyperref} 的警告信息。
+  \pdfstringdefDisableCommands{
+    \let\\\@empty
+    \let\hspace\@gobble
+  }
+  %
+  % \pkg{hyperref} 与 \pkg{unicode-math} 存在一些兼容性问题,见
+  % \href{https://github.com/ustctug/ustcthesis/issues/223}{%
+  %   ustctug/ustcthesis\#223},
+  % \href{https://github.com/ho-tex/hyperref/pull/90}{ho-tex/hyperref\#90} 和
+  % \href{https://github.com/ustctug/ustcthesis/issues/235}{%
+  %   ustctug/ustcthesis/\#235}。
+  \@ifpackagelater{hyperref}{2019/04/27}{}{%
+    \g at addto@macro\psdmapshortnames{\let\mu\textmu}%
+  }
+  %
+  % 设置中文的 \cs{autoref}。
+  % \footnote{\url{https://tex.stackexchange.com/a/66150/82731}}
+  \ifhfut at language@chinese
+    \def\equationautorefname~#1\null{公式~(#1)\null}
+    \def\footnoteautorefname{脚注}
+    \def\itemautorefname~#1\null{第~#1~项\null}
+    \def\figureautorefname{图}
+    \def\tableautorefname{表}
+    \def\partautorefname~#1\null{第~#1~部分\null}
+    \def\appendixautorefname{附录}
+    \def\chapterautorefname~#1\null{第~#1~章\null}
+    \def\sectionautorefname~#1\null{第~#1~节\null}
+    \def\subsectionautorefname~#1\null{第~#1~小节\null}
+    \def\subsubsectionautorefname~#1\null{第~#1~小小节\null}
+    \def\paragraphautorefname~#1\null{第~#1~段\null}
+    \def\subparagraphautorefname~#1\null{第~#1~小段\null}
+    \def\theoremautorefname{定理}
+    \def\HyRef at autopageref#1{\hyperref[{#1}]{第~\pageref*{#1} 页}}
+  \fi
+}
+
+
+% \subsubsection{\pkg{amsthm} 宏包}
+
+\AtEndOfPackageFile*{amsthm}{
+  \newtheoremstyle{hfutplain}
+    {}{}
+    {}{2\ccwd}
+    {\bfseries}{}
+    {\ccwd}{}
+  \theoremstyle{hfutplain}
+  % 定义新的定理
+  \ifhfut at language@chinese
+    \newcommand\hfut at assertion@name{断言}
+    \newcommand\hfut at assumption@name{假设}
+    \newcommand\hfut at axiom@name{公理}
+    \newcommand\hfut at corollary@name{推论}
+    \newcommand\hfut at definition@name{定义}
+    \newcommand\hfut at example@name{例}
+    \newcommand\hfut at lemma@name{引理}
+    \newcommand\hfut at proof@name{证明}
+    \newcommand\hfut at proposition@name{命题}
+    \newcommand\hfut at remark@name{注}
+    \newcommand\hfut at theorem@name{定理}
+  \else
+    \newcommand\hfut at assertion@name{Assertion}
+    \newcommand\hfut at assumption@name{Assumption}
+    \newcommand\hfut at axiom@name{Axiom}
+    \newcommand\hfut at corollary@name{Corollary}
+    \newcommand\hfut at definition@name{Definition}
+    \newcommand\hfut at example@name{Example}
+    \newcommand\hfut at lemma@name{Lemma}
+    \newcommand\hfut at proof@name{Proof}
+    \newcommand\hfut at proposition@name{Proposition}
+    \newcommand\hfut at remark@name{Remark}
+    \newcommand\hfut at theorem@name{Theorem}
+  \fi
+  \newtheorem{theorem}             {\hfut at theorem@name}    [chapter]
+  \newtheorem{assertion}  [theorem]{\hfut at assertion@name}
+  \newtheorem{axiom}      [theorem]{\hfut at axiom@name}
+  \newtheorem{corollary}  [theorem]{\hfut at corollary@name}
+  \newtheorem{lemma}      [theorem]{\hfut at lemma@name}
+  \newtheorem{proposition}[theorem]{\hfut at proposition@name}
+  \newtheorem{assumption}          {\hfut at assumption@name} [chapter]
+  \newtheorem{definition}          {\hfut at definition@name} [chapter]
+  \newtheorem{example}             {\hfut at example@name}    [chapter]
+  \newtheorem*{remark}             {\hfut at remark@name}
+  % \pkg{amsthm} 单独定义了 proof 环境,这里重新定义以满足格式要求。
+  % 原本模仿 \pkg{amsthm} 写成 |\item[\hskip\labelsep\hskip2\ccwd #1\hskip\ccwd]|,
+  % 但是却会多出一些间隙。
+  \renewenvironment{proof}[1][\hfut at proof@name]{\par
+    \pushQED{\qed}%
+    \normalfont \topsep6\p@\@plus6\p@\relax
+    \trivlist
+      \item\relax\hskip2\ccwd
+      \textbf{#1}
+      \hskip\ccwd\ignorespaces
+    }{%
+    \popQED\endtrivlist\@endpefalse
+  }
+  \renewcommand\qedsymbol{\hfut at qed}
+}
+
+
+% \subsubsection{\pkg{algorithm2e} 宏包}
+
+% 按章节编号。
+\PassOptionsToPackage{algochapter}{algorithm2e}
+
+\AtEndOfPackageFile*{algorithm2e}{
+  \ifhfut at language@chinese
+    \SetAlgorithmName{算法}{算法}{算法清单}
+  \else
+    \SetAlgorithmName{Algorithm}{Algorithm}{List of Algorithms}
+  \fi
+  %
+  % 设置算法环境的格式。
+  \SetAlCapSkip{6bp}
+  \SetAlCapFnt{\small}
+  \SetAlCapNameFnt{\small}
+  \ifhfut at degree@graduate
+    \SetAlCapNameSty{textbf}
+  \fi
+  \SetAlgoCaptionSeparator{\unskip\hspace*{\ccwd}}
+  %
+  % 设置算法清单的格式
+  \renewcommand\listofalgocfs{%
+    \ifhfut at degree@graduate
+      \cleardoublepage
+    \fi
+    \hfut at chapter{\listalgorithmcfname}%
+    \@starttoc{loa}%
+  }
+  \titlecontents{algocf}
+    [2.3em]{\normalsize}
+    {\contentslabel{2.3em}}{}
+    {\hfut at leaders\contentspage}
+  \contentsuse{algocf}{loa}
+}
+
+
+% \subsubsection{\pkg{nomencl} 宏包}
+
+\AtEndOfPackageFile*{nomencl}{
+  \let\nomname\hfut at notation@name
+  \def\thenomenclature{%
+    \ifhfut at degree@graduate
+      \cleardoublepage
+      \pagestyle{headings}%
+    \fi
+    \hfut at chapter{\hfut at notation@name}%
+    \nompreamble
+    \list{}{%
+      \labelwidth\nom at tempdim
+      \leftmargin\labelwidth
+      \advance\leftmargin\labelsep
+      \itemsep\nomitemsep
+      \let\makelabel\nomlabel}}
+  \def\endthenomenclature{%
+    \endlist
+    \nompostamble
+    \ifhfut at degree@graduate
+      \clearpage
+      \pagestyle{plain}%
+    \fi
+  }
+}
+
+
+% \subsubsection{\pkg{siunitx} 宏包}
+
+\AtEndOfPackageFile*{siunitx}{
+  \sisetup{
+    group-minimum-digits = 4,
+    separate-uncertainty = true,
+    inter-unit-product   = \ensuremath{{}\cdot{}},
+  }
+  \newcommand\hfut at set@siunitx at language{%
+  \ifhfut at language@chinese
+    \sisetup{
+      list-final-separator = { 和 },
+      list-pair-separator  = { 和 },
+      range-phrase         = {~},
+        }%
+      \else
+        \sisetup{
+          list-final-separator = {, and },
+          list-pair-separator  = { and },
+          range-phrase         = { to },
+        }%
+  \fi
+  }
+  \hfut at set@siunitx at language
+  \hfut at option@hook{language}{\hfut at set@siunitx at language}
+}
+
+% \subsubsection{\pkg{chapterbib} 宏包}
+
+\AtEndOfPackageFile*{chapterbib}{
+  \@ifpackageloaded{natbib}{%
+    \@ifpackagewith{chapterbib}{sectionbib}{%
+      \hfut at error{The "sectionbib" option cannot be used with chaperbib if natbib loaded}%
+    }{}%
+    \renewcommand\bibsection{%
+      \begingroup
+        \ctexset{section/numbering=false}%
+        \section{\bibname}%
+      \endgroup
+    }
+  }{}
+}


Property changes on: trunk/Master/texmf-dist/tex/xelatex/hfutthesis/hfutthesis.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-07-30 20:41:00 UTC (rev 64008)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-07-30 20:41:51 UTC (rev 64009)
@@ -390,7 +390,7 @@
     hep hep-acronym hep-bibliography hep-float hep-font hep-float
     hep-math hep-math-font hep-paper hep-text hep-title hepnames
     hepparticles hepthesis hepunits here heuristica hexboard hexgame
-    hf-tikz hfbright hfoldsty
+    hf-tikz hfbright hfoldsty hfutthesis
     hhtensor hideanswer highlightlatex hindawi-latex-template hindmadurai
     histogr historische-zeitschrift hitec hitreport
     hitszthesis hitszbeamer hithesis

Modified: trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2022-07-30 20:41:00 UTC (rev 64008)
+++ trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2022-07-30 20:41:51 UTC (rev 64009)
@@ -88,6 +88,7 @@
 depend har2nat
 depend hecthese
 depend hep-paper
+depend hfutthesis
 depend hithesis
 depend hitszthesis
 depend hitszbeamer

Added: trunk/Master/tlpkg/tlpsrc/hfutthesis.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.