texlive[63681] Master/texmf-dist: xduts (21jun22)

commits+karl at tug.org commits+karl at tug.org
Tue Jun 21 22:20:17 CEST 2022


Revision: 63681
          http://tug.org/svn/texlive?view=revision&revision=63681
Author:   karl
Date:     2022-06-21 22:20:17 +0200 (Tue, 21 Jun 2022)
Log Message:
-----------
xduts (21jun22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/xelatex/xduts/README.md
    trunk/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf
    trunk/Master/texmf-dist/source/xelatex/xduts/xduts.dtx
    trunk/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty
    trunk/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls
    trunk/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls

Modified: trunk/Master/texmf-dist/doc/xelatex/xduts/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/xduts/README.md	2022-06-21 20:20:04 UTC (rev 63680)
+++ trunk/Master/texmf-dist/doc/xelatex/xduts/README.md	2022-06-21 20:20:17 UTC (rev 63681)
@@ -6,14 +6,14 @@
 
 XDUTS currently includes:
 
+- `xdufont.sty`, Xidian University Font package
+- `xdupgthesis.cls`, Xidian University Postgraduate Thesis document class
 - `xduugthesis.cls`, Xidian University Undergraduate Thesis document class
-- `xdufont.sty`, Xidian University Font package
 
 In the future, we plan to add the following document classes, including 
 
 - `xduugtp.cls`, Xidian University Undergraduate Thesis Proposal document class
 - `xdupgtp.cls`, Xidian University Postgraduate Thesis Proposal document class
-- `xdupgthesis.cls`, Xidian University Postgraduate Thesis document class
 
 ## Installation
 
@@ -52,17 +52,18 @@
 
 ### GitHub
 
-Generally speaking, CTAN updates XDUTS slowly. If you want to use the latest version of XDUTS, download this repository and run the following commands to get the corresponding documentation and document class/package files.
+Generally speaking, CTAN updates XDUTS slowly. If you want to use the latest version of XDUTS, download this repository and run the following command to get the document class/package files.
 
 ```shell
 xetex xduts.ins
-xelatex xduts.dtx
-makeindex -s gind.ist -o xduts.ind xduts.idx
-makeindex -s gglo.ist -o xduts.gls xduts.glo
-xelatex xduts.dtx
-xelatex xduts.dtx
 ```
 
+Run command below to get the documentation.
+
+```shell
+l3build ctan
+```
+
 ## Note
 
 `xdulogo.pdf` should be placed in the same directory as `xduugthesis.cls`.

Modified: trunk/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/xelatex/xduts/xduts.dtx
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xduts/xduts.dtx	2022-06-21 20:20:04 UTC (rev 63680)
+++ trunk/Master/texmf-dist/source/xelatex/xduts/xduts.dtx	2022-06-21 20:20:17 UTC (rev 63681)
@@ -1,7 +1,7 @@
 % \iffalse
 %<*driver>
 \ProvidesFile{xduts.dtx}
-[2022/05/15 v1.15.0.1 Xidian University TeX Suite]
+[2022/06/21 v2.0.0.0 Xidian University TeX Suite]
 %</driver>
 %<class|sty>\NeedsTeXFormat{LaTeX2e}
 %<class|sty>\RequirePackage{expl3}
@@ -8,7 +8,7 @@
 %<xdufont>\ProvidesExplPackage{xdufont}
 %<xdupgthesis>\ProvidesExplClass{xdupgthesis}
 %<xduugthesis>\ProvidesExplClass{xduugthesis}
-%<class|sty>  {2022/05/15}{1.15.0.1}
+%<class|sty>  {2022/06/21}{2.0.0.0}
 %<xdufont>  {Xidian University Font package}
 %<xdupgthesis>  {Xidian University Postgraduate Thesis document class}
 %<xduugthesis>  {Xidian University Undergraduate Thesis document class}
@@ -55,10 +55,10 @@
 \newcommand{\secrefx}[1]{第\xspace\ref{#1}\xspace 节}
 \newcommand{\tabrefx}[1]{\tablename\xspace\ref{#1}\xspace}
 % 文档类选项
-\newcommand{\optx}[1]{\xspace\opt{#1}\xspace}
-% /name LaTeX3控制序列
+\newcommand{\optx}[1]{\xspace{\ttfamily\seqsplit{#1}}\xspace}
+% \name LaTeX3控制序列
 \newcommand{\csx}[1]{\xspace\cs{#1}\xspace}
-% /name 传统LaTeX2e命令
+% \name 传统LaTeX2e命令
 \newcommand{\tnx}[1]{\xspace\tn{#1}\xspace}
 % <name> LaTeX3键值
 \newcommand{\metax}[1]{\xspace\meta{#1}\xspace}
@@ -79,9 +79,9 @@
 % 文档类
 \newcommand{\clsx}[1]{\xspace\cls{#1}\xspace}
 % 值
-\newcommand{\valuex}[1]{\xspace\texttt{#1}\xspace}
+\newcommand{\valuex}[1]{\xspace{\ttfamily\seqsplit{#1}}\xspace}
 % 命令
-\newcommand{\cmdx}[1]{\xspace\texttt{#1}\xspace}
+\newcommand{\cmdx}[1]{\xspace{\ttfamily\seqsplit{#1}}\xspace}
 % 链接
 \newcommand{\footurl}[1]{\footnote{\url{#1}}}
 \newcommand{\ctanurl}[1]{\href{https://mirrors.ustc.edu.cn/CTAN/#1}{\ttfamily CTAN://#1}}
@@ -155,7 +155,7 @@
 \end{document}
 %</driver>
 % \fi
-% \CheckSum{1315}
+% \CheckSum{2773}
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -197,7 +197,10 @@
 % \end{enumerate}
 % \end{abstract}
 % \clearpage
-% \tableofcontents
+% \section*{\contentsname\markright{目录}}
+% \makeatletter
+% \@starttoc{toc}
+% \makeatother
 % \clearpage
 % \section{介绍}
 % \xduts{} (Xidian University \TeX{} Suite)
@@ -205,12 +208,9 @@
 % 而编写的\LaTeXiii{}文档类和宏包套装,目前有:
 % \begin{itemize}
 % \item \pkgx{xdufont},中/英/数学字体配置宏包。
+% \item \clsx{xdupgthesis},研究生学位论文。
 % \item \clsx{xduugthesis},本科毕业设计论文。
 % \end{itemize}
-% 正在开发:
-% \begin{itemize}
-% \item \clsx{xdupgthesis},研究生学位论文。
-% \end{itemize}
 % 即将支持:
 % \begin{itemize}
 % \item \clsx{xdupgtp},研究生学位论文开题报告表。
@@ -242,7 +242,9 @@
 % 请在最新版\LaTeX{}环境中使用最新版\xduts{},
 % 认真阅读相应文档类/宏包使用说明章节即可使用\xduts{}。
 % \subsection{xdufont}
-% \pkgx{xdufont}宏包基于\pkgx{xeCJK},相较于\pkgx{ctex}宏包的主要优势为默认支持宋体粗体、斜体,内置多种字体配置,可任意搭配中/英/数学字体,更加符合校内各种文档的撰写要求。
+% \pkgx{xdufont}宏包基于\pkgx{xeCJK}和\pkgx{unicode-math},
+% 在中文字体配置方面相较于\pkgx{ctex}宏包的主要优势为默认支持宋体粗体、斜体,
+% 内置多种字体配置,可任意搭配中/英/数学字体,更加符合校内各种文档的撰写要求。
 % \par
 % \secrefx{编译}介绍了如何编译,\secrefx{参数设置}介绍了如何自定义配置,具体的配置选项见\secrefx{字体选项}。\pkgx{xdufont}可以搭配任意文档类进行使用,例如:
 % \begin{latexexample}[moretexcs={\xdusetup},emph={[1]document}]
@@ -257,7 +259,47 @@
 % \par
 % 学会以上用法后即可使用\pkgx{xdufont}宏包。
 % \changes{v1.4.0.0}{2022/04/26}{新增研究生学位论文}
+% \changes{v1.30.0.2}{2022/06/20}{研究生学位论文文档}
 % \subsection{xdupgthesis}
+% \pkgx{xdupgthesis}基于\clsx{ctexbook}文档类,
+% 提供多种字体配置,部分样式可自定义,信息录入便捷。
+% 请在阅读《西安电子科技大学研究生学位论文模板(2015年修订版)-2019.03修订》后再使用\pkgx{xdupgthesis}。
+% 专业学位硕士请额外阅读《西安电子科技大学专业学位硕士学位论文封面及中英文题名页模板(2015年版)-2019.03修订》,
+% 撰写英文学位论文请额外阅读《西安电子科技大学英文学位论文撰写相关规定》。
+% \par
+% 典型的\clsx{xdupgthesis}主文件结构如下所示:
+% \begin{latexexample}[moretexcs={\xdusetup,\frontmatter,\mainmatter,\chapter,\backmatter},emph={[1]document}]
+%   \documentclass{xdupgthesis}
+%   \xdusetup{}
+%   \begin{document}
+%   \frontmatter
+%   \mainmatter
+%   \chapter{欢迎}
+%   使用\LaTeX{}!
+%   \backmatter
+%   \end{document}
+% \end{latexexample}
+% \par
+% \secrefx{编译}介绍了如何编译,
+% \secrefx{参考文献引用}介绍了如何引用参考文献,
+% \secrefx{参数设置}介绍了如何自定义配置。
+% 其中,字体选项见\secrefx{字体选项},
+% 部分英文字体切换见\secrefx{英文字体},
+% 语言配置见\secrefx{语言配置},
+% 参考文献配置见\secrefx{参考文献配置},
+% 页面配置见\secrefx{页面配置},
+% 交叉引用配置见\secrefx{交叉引用配置},
+% Caption配置见\secrefx{Caption配置},
+% 表格配置见\secrefx{表格配置},
+% 算法配置见\secrefx{算法配置},
+% 章节配置见\secrefx{章节配置},
+% 对照表配置见\secrefx{对照表配置},
+% 作者简介配置见\secrefx{作者简介配置}。
+% 如需附录,请使用附录环境,具体见\secrefx{附录环境}。
+% 支持的信息录入选项见\secrefx{信息录入}。
+% \par
+% 学会以上用法后即可使用\clsx{xdupgthesis}文档类。
+% 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。
 % \subsection{xduugthesis}
 % \pkgx{xduugthesis}基于\clsx{ctexbook}文档类,
 % 提供多种字体配置,部分样式可自定义,信息录入便捷。
@@ -278,6 +320,7 @@
 %   \end{document}
 % \end{latexexample}
 % \par
+% \changes{v1.30.0.1}{2022/06/20}{移除info录入示例}
 % \secrefx{编译}介绍了如何编译,
 % \secrefx{参考文献引用}介绍了如何引用参考文献,
 % \secrefx{参数设置}介绍了如何自定义配置。
@@ -291,28 +334,7 @@
 % 算法配置见\secrefx{算法配置},
 % 章节配置见\secrefx{章节配置}。
 % 如需附录,请使用附录环境,具体见\secrefx{附录环境}。
-% 仅支持如下信息录入,具体每个选项的含义见\secrefx{信息录入},如没有部分选项,则删除该行即可。
-% \begin{latexexample}[moretexcs={\xdusetup},emph={[2]info}]
-%   \xdusetup {
-%     info = {
-%       title                 = {第一行标题\\第二行标题},
-%       department            = {电子工程学院},
-%       major                 = {电子信息工程},
-%       author                = {张三},
-%       supervisor            = {李四},
-%       supervisor-department = {王五},
-%       supervisor-enterprise = {赵六},
-%       supervisor-school     = {刘七},
-%       class-id              = {123456},
-%       student-id            = {12345678910},
-%       abstract              = {abstract-zh.tex},
-%       abstract*             = {abstract-en.tex},
-%       keywords              = {我,就是,充数的,关键词},
-%       keywords*             = {Dummy,Keywords,Here,it is},
-%       acknowledgements      = {acknowledgements.tex}
-%     }
-%   }
-% \end{latexexample}
+% 支持的信息录入选项见\secrefx{信息录入}。
 % \par
 % 学会以上用法后即可使用\clsx{xduugthesis}文档类。
 % 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。
@@ -354,6 +376,7 @@
 % \subsection{参数设置}
 % \label{参数设置}
 % \changes{v0.5.1.1}{2022/04/06}{增加xdusetup配置文档}
+% \changes{v1.30.0.1}{2022/06/20}{修改xdusetup配置文档}
 % \begin{function}[added=2022-03-07]{\xdusetup}
 %   \begin{syntax}
 %     \tnx{xdusetup}=\argx{键值列表}
@@ -369,27 +392,31 @@
 % 但需注意,参数列表中不可以出现空行。
 % 一些选项包含子选项,如\optx{style}和\optx{info}等,
 % 它们可以按如下两种等价方式来设定:
-% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department}]
+% \end{function}
+% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department,abstract,keywords*}]
 %   \xdusetup{
-%     style = { cjk-font = adobe, latin-font = tacn },
+%     style = { cjk-font = fandol, latin-font = gyre },
 %     info  = {
-%       title      = {论如何让用户认真阅读文档},
+%       title      = {论如何让用户\\认真阅读文档},
 %       author     = {张三},
-%       department = {排版学院}
+%       department = {排版学院},
+%       abstract   = {chapters/abstract-zh.tex},
+%       keywords*  = {Dummy,Keywords,Here,it is}
 %     }
 %   }
 % \end{latexexample}
 % 或者
-% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department}]
+% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department,abstract,keywords*}]
 %   \xdusetup{
-%     style / cjk-font   = adobe,
-%     style / latin-font = tacn,
-%     info  / title      = {论如何让用户认真阅读文档},
+%     style / cjk-font   = fandol,
+%     style / latin-font = gyre,
+%     info  / title      = {论如何让用户\\认真阅读文档},
 %     info  / author     = {张三},
-%     info  / department = {排版学院}
+%     info  / department = {排版学院},
+%     info  / abstract   = {chapters/abstract-zh.tex},
+%     info  / keywords*  = {Dummy,Keywords,Here,it is}
 %   }
 % \end{latexexample}
-% \end{function}
 % \subsection{字体选项}
 % \label{字体选项}
 % \begin{function}[added=2022-03-06]{style/cjk-font}
@@ -562,7 +589,7 @@
 % \end{function}
 % \begin{optdesc}
 %   \item[zh] 中文。
-%   \item[en] 英文。
+%   \item[en] 英文。注意,研究生学位论文一二三级标题命令请参考\secrefx{英文研究生学位论文双语标题}。
 % \end{optdesc}
 % \subsection{参考文献配置}
 % \label{参考文献配置}
@@ -576,12 +603,22 @@
 %   \item[bibtex] 使用\bibtex{}处理文献,样式由\pkgx{natbib}宏包负责。
 %   \item[biblatex] 使用\biber{}处理文献,样式由\pkgx{biblatex}宏包负责。
 % \end{optdesc}
-% \begin{function}[added=2022-04-02]{style/bib-resource}
+% \changes{v1.31.0.0}{2022/06/21}{修改\pkgx{biblatex}默认选项}
+% \begin{function}[added=2022-06-21]{style/biblatex-option}
 %   \begin{syntax}
-%     \optx{style/bib-resource}=\argx{参考文献文件路径}
+%     \optx{style/biblatex-option}=\argx{biblatex宏包选项}
 %   \end{syntax}
-% 设置参考文献\filex{.bib}文件,多个文件之间需要使用英文半角逗号隔开。
+% 修改\pkgx{biblatex}默认选项,具体配置参考\filex{biblatex-gb7714-2015.pdf},
+% 仅在\optx{style/bib-backend}等于|biblatex|时有效。例如:
+% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,biblatex-option}]
+%   \xdusetup{
+%     style / biblatex-option = { gbnamefmt=quanpin }
+%   }
+% \end{latexexample}
 % \end{function}
+% \begin{function}[added=2022-04-02]{style/bib-resource}
+% 已弃用,请使用\secrefx{信息录入}中的\optx{info/bib-resource}。
+% \end{function}
 % \subsection{页面配置}
 % \label{页面配置}
 % \begin{function}[added=2022-04-12]{style/symmetric-margin}
@@ -709,22 +746,147 @@
 %   \item[7] 七号
 %   \item[8] 八号
 % \end{optdesc}
+% \subsection{对照表配置}
+% \label{对照表配置}
+% \begin{function}[added=2022-06-05]{style/customize-los,style/customize-loa}
+%   \begin{syntax}
+%     \optx{style/customize-los}=\metax{(true)|false}
+%     \optx{style/customize-loa}=\metax{(true)|false}
+%   \end{syntax}
+% 是否完全自定义符号对照表和缩略语对照表。
+% \end{function}
+% \begin{optdesc}
+%   \item[true] 完全自定义符号对照表和缩略语对照表,对照表由用户自行排版。
+% 在\secrefx{信息录入}中提及的\optx{info/los}和\optx{info/loa}中对应的文件中可以通过表格或列表等方式实现对照表,例如:
+% \begin{latexexample}[emph={[1]tabular}]
+%   \begin{tabular}{ll}
+%     符号         & 符号名称 \\
+%     $\pi$        & 圆周率   \\
+%     $\mathbb{R}$ & 实数     \\
+%   \end{tabular}
+% \end{latexexample}
+%   \item[false] 使用内置的基于\envx{longtblr}环境(\pkgx{tabularray}宏包)实现的
+% 符号对照表和缩略语对照表样式。
+% 在\secrefx{信息录入}中提及的\optx{info/los}和\optx{info/loa}中对应的文件仅需填写相应列数的内容即可,例如:
+% \begin{latexexample}
+%   $\pi$        & 圆周率 \\
+%   $\mathbb{R}$ & 实数   \\
+% \end{latexexample}
+% \end{optdesc}
+% \begin{function}[added=2022-06-05]{style/colspec-los,style/colspec-loa}
+%   \begin{syntax}
+%     \optx{style/colspec-los}=\argx{符号对照表列格式}
+%     \optx{style/colspec-loa}=\argx{缩略语对照表列格式}
+%   \end{syntax}
+% 设置符号对照表和缩略语对照表列格式,
+% 符号对照表列格式默认值为\valuex{Q[l,m]X[l,m]}。
+% 缩略语对照表列格式默认值为\valuex{Q[l,m]X[l,m]X[l,m]}。
+% 语法参考\pkgx{tabularray}宏包\cmdx{colspec}选项。
+% 仅在\optx{style/customize-los}和\optx{style/customize-loa}等于\valuex{false}时有效。
+% \end{function}
+% \begin{function}[added=2022-06-05]{style/title-row-los,style/title-row-loa}
+%   \begin{syntax}
+%     \optx{style/title-row-los}=\metax{true|(false)}
+%     \optx{style/title-row-loa}=\metax{true|(false)}
+%   \end{syntax}
+% 是否每页均显示符号对照表和缩略语对照表标题行。
+% 仅在\optx{style/customize-los}和\optx{style/customize-loa}等于\valuex{false}时有效。
+% \end{function}
+% \begin{optdesc}
+%   \item[true] 每页均显示符号对照表和缩略语对照表标题行。
+%   \item[false] 仅第一页显示显示符号对照表和缩略语对照表标题行。
+% \end{optdesc}
+% \changes{v1.26.0.0}{2022/06/07}{作者简介配置}
+% \subsection{作者简介配置}
+% \label{作者简介配置}
+% \changes{v1.28.4.1}{2022/06/19}{修正作者简介示例}
+% \begin{function}[added=2022-06-07]{style/customize-edubg,style/customize-resresult}
+%   \begin{syntax}
+%     \optx{style/customize-edubg}=\metax{(true)|false}
+%     \optx{style/customize-resresult}=\metax{(true)|false}
+%   \end{syntax}
+% 是否完全自定义作者简介中教育背景和攻读硕士学位期间的研究成果。
+% \end{function}
+% \begin{optdesc}
+%   \item[true] 完全自定义作者简介中教育背景和攻读硕士学位期间的研究成果,由用户自行排版。
+% 在\secrefx{信息录入}中提及的\optx{info/bio}中对应的文件中
+% 可以通过段落、表格或列表等方式排版教育背景和攻读硕士学位期间的研究成果,例如:
+% \begin{latexexample}[moretexcs={\subsection}]
+%   \section{基本情况}
+%   张三,男,陕西西安人,1982年8月出生,西安电子科技大学XX学院XX专业2008级硕士研究生。
+%   \section{教育背景}
+%   2001.08~2005.07 西安电子科技大学,本科,专业:电子信息工程
+%   \par
+%   2008.08~ 西安电子科技大学,硕士研究生,专业:电磁场与微波技术
+%   \section{攻读硕士学位期间的研究成果}
+%   \subsection{发表学术论文}
+%   [1] XXX, XXX, XXX. Rapid development technique for drip irrigation emitters[J]. RP Journal,UK.,2003,9(2): 104-110.(SCI: 672CZ, EI: 03187452127)
+%   \par
+%   [2] XXX, XXX, XXX. 基于快速成型制造的滴管快速制造技术研究[J]. 西安交通大学学报, 2001, 15(9): 935-939. (EI: 02226959521)
+%   \subsection{申请(授权)专利}
+%   [1] XXX, XXX, XXX等. 专利名称: 国别,专利号[P]. 出版日期.
+%   \subsection{参与科研项目及获奖}
+%   [1] XXX项目, 项目名称, 起止时间, 完成情况, 作者贡献。
+%   \par
+%   [2] XXX, XXX, XXX等. 科研项目名称. 陕西省科技进步三等奖, 获奖日期.
+% \end{latexexample}
+%   \item[false] 使用内置的基于\envx{tblr}环境(\pkgx{tabularray}宏包)实现的
+% 教育背景表格环境\envx{edubg}和基于\envx{enumerate}环境(\pkgx{enumitem}宏包)实现的
+% 攻读硕士学位期间的研究成果列表环境\envx{resresult}。
+% 在\secrefx{信息录入}中提及的\optx{info/bio}中对应的文件中使用\envx{edubg}和\envx{resresult}环境即可,例如:
+% \begin{latexexample}[moretexcs={\subsection},emph={[1]edubg,resresult}]
+%   \section{基本情况}
+%   张三,男,陕西西安人,1982年8月出生,西安电子科技大学XX学院XX专业2008级硕士研究生。
+%   \section{教育背景}
+%   \begin{edubg}
+%   2001.08~2005.07 & 西安电子科技大学,本科,专业:电子信息工程\\
+%   2008.08~ & 西安电子科技大学,硕士研究生,专业:电磁场与微波技术\\
+%   \end{edubg}
+%   \section{攻读硕士学位期间的研究成果}
+%   \subsection{发表学术论文}
+%   \begin{resresult}
+%   \item XXX, XXX, XXX. Rapid development technique for drip irrigation emitters[J]. RP Journal,UK.,2003,9(2): 104-110.(SCI: 672CZ, EI: 03187452127)
+%   \item XXX, XXX, XXX. 基于快速成型制造的滴管快速制造技术研究[J]. 西安交通大学学报, 2001, 15(9): 935-939. (EI: 02226959521)
+%   \end{resresult}
+%   \subsection{申请(授权)专利}
+%   \begin{resresult}
+%   \item XXX, XXX, XXX等. 专利名称: 国别,专利号[P]. 出版日期.
+%   \end{resresult}
+%   \subsection{参与科研项目及获奖}
+%   \begin{resresult}
+%   \item XXX项目, 项目名称, 起止时间, 完成情况, 作者贡献。
+%   \item XXX, XXX, XXX等. 科研项目名称. 陕西省科技进步三等奖, 获奖日期.
+%   \end{resresult}
+% \end{latexexample}
+% \end{optdesc}
 % \subsection{附录环境}
 % \label{附录环境}
-% \begin{function}[added=2022-04-04]{appendixes}
-% 附录位于参考文献后,即在\tnx{backmatter}后。
-% \begin{latexexample}[emph={[1]appendixes}]
+% \changes{v1.29.0.0}{2022/06/19}{研究生学位论文附录环境}
+% \begin{function}[added=2022-04-04,updated=2022-06-19]{appendixes}
+% 本科生毕业设计附录位于参考文献后,即在\tnx{backmatter}后。
+% \begin{latexexample}[moretexcs={\backmatter,\chapter},emph={[1]appendixes}]
+%   \chapter{这是正文章节}
+%   \backmatter
 %   \begin{appendixes}
 %       \chapter{这是一个附录}
 %       \chapter{这是另一个附录}
 %   \end{appendixes}
 % \end{latexexample}
+% 研究生学位论文附录位于参考文献前,即在\tnx{backmatter}前。
+% \begin{latexexample}[moretexcs={\backmatter,\chapter},emph={[1]appendixes}]
+%   \chapter{这是正文章节}
+%   \begin{appendixes}
+%       \chapter{这是一个附录}
+%       \chapter{这是另一个附录}
+%   \end{appendixes}
+%   \backmatter
+% \end{latexexample}
 % \end{function}
 % \subsection{信息录入}
 % \label{信息录入}
 % \changes{v1.9.0.0}{2022/05/03}{增加信息录入选项分类表}
 % \changes{v1.10.3.1}{2022/05/04}{移除专业博士校外导师信息录入}
-% 用户根据\tabrefx{tblr:info}选择相应的选项进行信息录入。
+% 用户根据\tabrefx{tblr:info}选择相应的选项并使用\secrefx{参数设置}中的方式进行信息录入。
 % \begin{tblr}
 % [
 % long,
@@ -776,12 +938,17 @@
 % student-id                   & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
 % clc                          &        &        & \cmark & \cmark & \cmark & \cmark \\
 % secret-level                 &        &        & \cmark & \cmark & \cmark & \cmark \\
+% secret-year                  &        &        & \cmark & \cmark & \cmark & \cmark \\
 % submit-date                  &        &        & \cmark & \cmark & \cmark & \cmark \\
 % abstract                     & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
 % abstract*                    & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
 % keywords                     & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
 % keywords*                    & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% los                          &        &        & \cmark & \cmark & \cmark & \cmark \\
+% loa                          &        &        & \cmark & \cmark & \cmark & \cmark \\
+% bib-resource                 & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
 % acknowledgements             & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% bio                          &        &        & \cmark & \cmark & \cmark & \cmark \\
 % \end{tblr}
 % \changes{v1.9.0.0}{2022/05/03}{增加研究生信息录入选项文档}
 % \begin{function}[added=2022-05-02,updated=2022-05-03]{info/graduate-type}
@@ -811,12 +978,13 @@
 %   \end{syntax}
 % 设置研究生学位类别。
 % \end{function}
-% \begin{function}[added=2022-04-01,updated=2022-05-03]{info/title,info/title*}
+% \begin{function}[added=2022-04-01,updated=2022-05-30]{info/title,info/title*}
 %   \begin{syntax}
 %     \optx{info/title}=\argx{论文中文标题}
 %     \optx{info/title*}=\argx{论文英文标题}
 %   \end{syntax}
-% 设置论文标题。如果需要手动制定换行位点,请使用换行控制符(|\\|),最多两行。
+% 设置论文标题。建议使用换行控制符(|\\|)手动制定换行位点,
+% 本科毕业设计论文最多两行,研究生学位论文无限制。
 % \end{function}
 % \begin{function}[added=2022-04-01]{info/department}
 %   \begin{syntax}
@@ -914,12 +1082,19 @@
 %   \end{syntax}
 % 设置密级。
 % \end{function}
-% \begin{function}[added=2022-05-03]{info/submit-date}
+% \begin{function}[added=2022-05-30]{info/secret-year}
 %   \begin{syntax}
-%     \optx{info/submit-date}=\argx{提交日期}
+%     \optx{info/secret-year}=\argx{保密年限}
 %   \end{syntax}
-% 设置提交日期。
+% 设置保密年限,仅在\optx{secret-level}等于|秘密|时有效。
 % \end{function}
+% \changes{v1.17.0.1}{2022/05/29}{研究生学位论文提交日期格式}
+% \begin{function}[added=2022-05-03,updated=2022-05-29]{info/submit-date}
+%   \begin{syntax}
+%     \optx{info/submit-date}=\argx{yyyy-mm}
+%   \end{syntax}
+% 设置提交日期,如果留空,则自动使用编译当天年份和月份。
+% \end{function}
 % \begin{function}[added=2022-04-02]{info/abstract,info/abstract*}
 %   \begin{syntax}
 %     \optx{info/abstract}=\argx{中文摘要文件路径}
@@ -934,6 +1109,27 @@
 %   \end{syntax}
 % 设置关键词,关键词之间需要使用英文半角逗号隔开。
 % \end{function}
+% \changes{v1.22.0.0}{2022/06/05}{符号对照表文件路径}
+% \begin{function}[added=2022-06-05]{info/los}
+%   \begin{syntax}
+%     \optx{info/los}=\argx{符号对照表文件路径}
+%   \end{syntax}
+% 设置符号对照表文件路径。
+% \end{function}
+% \changes{v1.22.0.0}{2022/06/05}{缩略语对照表文件路径}
+% \begin{function}[added=2022-06-05]{info/loa}
+%   \begin{syntax}
+%     \optx{info/loa}=\argx{缩略语对照表文件路径}
+%   \end{syntax}
+% 设置缩略语对照表文件路径。
+% \end{function}
+% \changes{v2.0.0.0}{2022/06/21}{修改参考文献文件路径选项名称}
+% \begin{function}[added=2022-06-21]{info/bib-resource}
+%   \begin{syntax}
+%     \optx{info/bib-resource}=\argx{参考文献文件路径}
+%   \end{syntax}
+% 设置参考文献\filex{.bib}文件路径,多个文件之间需要使用英文半角逗号隔开。
+% \end{function}
 % \begin{function}[added=2022-04-02]{info/acknowledgements}
 %   \begin{syntax}
 %     \optx{info/acknowledgements}=\argx{致谢文件路径}
@@ -940,8 +1136,279 @@
 %   \end{syntax}
 % 设置致谢文件路径,相应文件内仅撰写致谢内容,无需任何环境。
 % \end{function}
+% \begin{function}[added=2022-06-07]{info/bio}
+%   \begin{syntax}
+%     \optx{info/bio}=\argx{作者简介路径}
+%   \end{syntax}
+% 设置作者简介文件路径,文件内容可参考\secrefx{作者简介配置}中的示例。
+% \end{function}
+% \changes{v1.26.11.2}{2022/06/18}{研究生信息推荐值}
+% \subsubsection{研究生信息推荐值}
+% \label{研究生信息推荐值}
+% 以下研究生信息推荐值均来自
+% 《西安电子科技大学研究生学位论文模板(2015年修订版)-2019.03修订》
+% 和《西安电子科技大学专业学位硕士学位论文封面及中英文题名页模板(2015年版)-2019.03修订》,
+% 无任何修改,仅供参考。
+% \setlength\parindent{0pt}
+% \begin{itemize}
+% \item \optx{degree} (非专业硕士)
+% \begin{itemize}
+% \item 工学硕士
+% \item 工学博士
+% \item 哲学硕士
+% \item 经济学硕士
+% \item 法学硕士
+% \item 教育学硕士
+% \item 文学硕士
+% \item 理学硕士
+% \item 理学博士
+% \item 军事学硕士
+% \item 军事学博士
+% \item 管理学硕士
+% \item 管理学博士
+% \end{itemize}
+% \item \optx{degree} (专业硕士)
+% \begin{itemize}
+% \item 金融硕士
+% \item 应用统计硕士
+% \item 翻译硕士
+% \item 工程硕士
+% \item 工商管理硕士
+% \item 公共管理硕士
+% \end{itemize}
+% \item \optx{degree*}
+% \begin{itemize}
+% \item Finance
+% \item Applied Statistics
+% \item Translation
+% \item Engineering
+% \item Business Administration
+% \item Public Administration
+% \end{itemize}
+% \item \optx{department}
+% \begin{itemize}
+% \item 通信工程学院
+% \item 电子工程学院
+% \item 计算机科学与技术学院
+% \item 机电工程学院
+% \item 物理与光电工程学院
+% \item 经济与管理学院
+% \item 数学与统计学院
+% \item 微电子学院
+% \item 外国语学院
+% \item 生命科学技术学院
+% \item 空间科学与技术学院
+% \item 先进材料与纳米科技学院
+% \item 网络与信息安全学院
+% \item 人文学院
+% \item 马克思主义学院
+% \item 人工智能学院
+% \end{itemize}
+% \item \optx{major}
+% \begin{itemize}
+% \item 哲学
+% \item 应用经济学
+% \item 马克思主义理论
+% \item 教育学
+% \item 体育学
+% \item 外国语言文学
+% \item 数学
+% \item 物理学
+% \item 统计学
+% \item 力学
+% \item 机械工程
+% \item 光学工程
+% \item 仪器科学与技术
+% \item 材料科学与工程
+% \item 电气工程
+% \item 电子科学与技术
+% \item 信息与通信工程
+% \item 控制科学与工程
+% \item 计算机科学与技术
+% \item 化学工程与技术
+% \item 交通运输工程
+% \item 环境科学与工程
+% \item 生物医学工程
+% \item 软件工程
+% \item 军队指挥学
+% \item 管理科学与工程
+% \item 工商管理
+% \item 公共管理
+% \item 图书情报与档案管理
+% \item 网络空间安全
+% \end{itemize}
+% \item \optx{major*}
+% \begin{itemize}
+% \item Philosophy
+% \item Applied Economics
+% \item Marxist Theory
+% \item Education Science
+% \item Science of Physical Culture and Sports
+% \item Foreign Languages and Literature
+% \item Mathematics
+% \item Physics
+% \item Statistics
+% \item Mechanics
+% \item Mechanical Engineering
+% \item Optical Engineering
+% \item Instrument Science and Technology
+% \item Materials Science and Engineering
+% \item Electrical Engineering
+% \item Electronics Science and Technology
+% \item Information and Communications Engineering
+% \item Control Science and Engineering
+% \item Computer Science and Technology
+% \item Chemical Engineering and Technology
+% \item Communication and Transportation Engineering
+% \item Environmental Science and Engineering
+% \item Biomedical Engineering
+% \item Software Engineering
+% \item Science of Command
+% \item Management Science and Engineering
+% \item Business Administration
+% \item Public Management
+% \item Science of Library, Information and Archival
+% \item Cyber Security
+% \end{itemize}
+% \item \optx{sub-major}
+% \begin{itemize}
+% \item 美学
+% \item 宗教学
+% \item 国民经济学
+% \item 金融学
+% \item 产业经济学
+% \item 马克思主义基本原理
+% \item 思想政治教育
+% \item 高等教育学
+% \item 教育技术学
+% \item 教育哲学
+% \item 体育教育训练学
+% \item 英语语言文学
+% \item 外国语言学及应用语言学
+% \item 计算数学
+% \item 概率论与数理统计
+% \item 应用数学
+% \item 运筹学与控制论
+% \item 等离子体物理
+% \item 凝聚态物理
+% \item 光学
+% \item 无线电物理
+% \item 统计学
+% \item 工程力学
+% \item 机械制造及其自动化
+% \item 机械电子工程
+% \item 机械设计及理论
+% \item 电子机械科学与技术
+% \item 工业设计
+% \item 光学工程
+% \item 精密仪器及机械
+% \item 测试计量技术及仪器
+% \item 材料物理与化学
+% \item 材料学
+% \item 电机与电器
+% \item 电力电子与电力传动
+% \item 物理电子学
+% \item 电路与系统
+% \item 微电子学与固体电子学
+% \item 电磁场与微波技术
+% \item 信息对抗技术
+% \item 集成电路系统设计
+% \item 通信与信息系统
+% \item 信号与信息处理
+% \item 智能信息处理
+% \item 空间信息科学与技术
+% \item 控制理论与控制工程
+% \item 检测技术与自动化装置
+% \item 系统工程
+% \item 模式识别与智能系统
+% \item 导航、制导与控制
+% \item 计算机系统结构
+% \item 计算机软件与理论
+% \item 计算机应用技术
+% \item 应用化学
+% \item 交通信息工程及控制
+% \item 环境科学
+% \item 环境工程
+% \item 生物医学工程
+% \item 生物材料与细胞工程
+% \item 软件工程
+% \item 软件工程技术
+% \item 军事通信学
+% \item 密码学
+% \item 管理科学与工程
+% \item 管理哲学
+% \item 会计学
+% \item 企业管理
+% \item 技术经济及管理
+% \item 行政管理
+% \item 图书馆学
+% \item 情报学
+% \item 光通信
+% \item 信息安全
+% \item 生物信息科学与技术
+% \item 机器人技术
+% \item 遥感信息科学与技术
+% \item 空间科学与技术
+% \item 马克思主义中国化研究
+% \item 外国文学
+% \item 翻译学
+% \item 基础数学
+% \item 流体力学
+% \item 固体力学
+% \item 智能机电系统及测控技术
+% \item 空间科学仪器与电磁实验技术
+% \item 飞行器测控与导航制导
+% \item 智能检测与新型传感器
+% \end{itemize}
+% \item \optx{domain}
+% \begin{itemize}
+% \item 金融
+% \item 应用统计
+% \item 英语笔译
+% \item 机械工程
+% \item 光学工程
+% \item 仪器仪表工程
+% \item 材料工程
+% \item 电子与通信工程
+% \item 集成电路工程
+% \item 控制工程
+% \item 计算机技术
+% \item 软件工程
+% \item 生物医学工程
+% \item 航天工程
+% \item 项目管理
+% \item 物流工程
+% \item 工商管理
+% \item 公共管理
+% \end{itemize}
+% \item \optx{supervisor-title}
+% \begin{itemize}
+% \item 教授
+% \item 副教授
+% \end{itemize}
+% \item \optx{supervisor-title*}
+% \begin{itemize}
+% \item Professor
+% \item Associate Professor
+% \end{itemize}
+% \item \optx{supervisor-enterprise-title}
+% \begin{itemize}
+% \item 研究员
+% \item 副研究员
+% \item 高工
+% \end{itemize}
+% \item \optx{supervisor-enterprise-title*}
+% \begin{itemize}
+% \item Research Fellow
+% \item Associate Research Fellow
+% \item Senior Engineer
+% \end{itemize}
+% \end{itemize}
+% \setlength\parindent{2em}
 % \subsection{额外命令}
 % \label{额外命令}
+% \subsubsection{\tn{noauxwrite}}
+% \label{noauxwrite}
 % \begin{function}[added=2022-05-13]{\noauxwrite}
 %   \begin{syntax}
 %     \tn{noauxwrite}\marg{参考文献引用命令}
@@ -952,6 +1419,35 @@
 %   \caption{本文与文献\noauxwrite{\parencite{某文献}}计算开销对比}
 % \end{latexexample}
 % \end{function}
+% \changes{v1.30.0.0}{2022/06/20}{英文研究生学位论文双语标题}
+% \subsubsection{英文研究生学位论文双语标题}
+% \label{英文研究生学位论文双语标题}
+% \begin{function}[added=2022-06-20]{\chapter,\section,\subsection}
+%   \begin{syntax}
+%     \tn{chapter}\marg{英文标题}\marg{中文标题}
+%     \tn{section}\marg{英文标题}\marg{中文标题}
+%     \tn{subsection}\marg{英文标题}\marg{中文标题}
+%   \end{syntax}
+% 在英文研究生学位论文中一二三级标题为中英双语,其他级别标题为英文。
+% 一个简单的例子如下所示:
+% \begin{latexexample}[moretexcs={\chapter,\section,\subsection,\subsubsection,\paragraph,\subparagraph}]
+%   \chapter{This Is Chapter}{这是一级标题}
+%   \section{This Is Section}{这是二级标题}
+%   \subsection{This Is Subsection}{这是三级标题}
+%   \subsubsection{This Is Subsubsection}
+%   \paragraph{This Is Paragraph}
+%   \subparagraph{This Is Subparagraph}
+% \end{latexexample}
+% \end{function}
+% \subsection{隐藏功能}
+% \changes{v1.26.11.1}{2022/06/17}{带教导师与挂名导师}
+% \subsubsection{带教导师与挂名导师}
+% 已和学位办确认,对于研究生,如挂名导师与带教导师不是一人的,
+% 仅需填写带教导师,无需填写挂名导师。
+% 如有特殊需求,需要填写两位老师,
+% 可在\optx{info/supervisor}、\optx{info/supervisor*}、
+% \optx{info/supervisor-title}和\optx{info/supervisor-title*}中
+% 使用逗号分隔两位老师的信息。
 % \section{贡献者}
 % \xduts{}的开发过程中,唯一维护者为
 % \href{https://github.com/note286/}{\ttfamily @note286}。
@@ -968,11 +1464,7 @@
 % 《在\LaTeX{}中进行文学编程》\footurl{https://liam.page/2015/01/23/literate-programming-in-latex/}
 % 和《Good things come in little packages: An introduction to writing .ins and .dtx files》\footurl{https://www.tug.org/TUGboat/tb29-2/tb92pakin.pdf}
 % 提供了很大帮助。
-% 在文档的编写过程中,参考了
-% \filex{ctex.dtx}\footctan{language/chinese/ctex/ctex.dtx}、
-% \filex{fduthesis.dtx}\footctan{macros/latex/contrib/fduthesis/fduthesis.dtx}、
-% \filex{njuthesis.dtx}\footctan{macros/unicodetex/latex/njuthesis/njuthesis.dtx}
-% 和\filex{thuthesis.dtx}\footctan{macros/latex/contrib/thuthesis/thuthesis.dtx}。
+% 在文档的编写过程中,参考了\filex{ctex.dtx}、\filex{fduthesis.dtx}、\filex{njuthesis.dtx}和\filex{thuthesis.dtx}。
 % \clearpage
 % \section{代码实现}
 % \changes{v0.1.0.0}{2022/04/03}{基本完成本科毕业设计论文模板}
@@ -1590,9 +2082,9 @@
 \cs_new:Npn \@@_set_latin_mono_font:nnnnn #1#2#3#4#5
   {
     \str_if_eq:NNTF { \l_@@_font_type_tl } { font }
-      { \setmonofont{ #1 } [ \@@_set_latin_scale: \@@_off_latin_ligatures: ]}
+      { \setmonofont { #1 } [ \@@_set_latin_scale: \@@_off_latin_ligatures: ] }
       {
-        \setmonofont{ #2 }
+        \setmonofont { #2 }
           [
             \@@_font_path:
             \@@_set_latin_scale:
@@ -1654,7 +2146,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_set_latin_mono_font:nnnn #1#2#3#4
   {
-    \setmonofont{ #1 }
+    \setmonofont { #1 }
       [
         \@@_set_latin_scale:
         \@@_off_latin_ligatures:
@@ -1766,9 +2258,9 @@
 \cs_new:Npn \@@_load_math_font_cambria:
   {
     \@@_load_unicode_math_pkg:
-    \str_if_eq:NNTF { \l_@@_font_type_tl} { font}
-      { \setmathfont { Cambria~Math} }
-      { \setmathfont { cambria.ttc} [ Path = \l_@@_font_path_tl/, FontIndex = 1 ] }
+    \str_if_eq:NNTF { \l_@@_font_type_tl } { font }
+      { \setmathfont { Cambria~Math } }
+      { \setmathfont { cambria.ttc } [ Path = \l_@@_font_path_tl/, FontIndex = 1 ] }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1868,7 +2360,7 @@
 %     \l_@@_dept_str,
 %     \l_@@_major_str,
 %     \l_@@_author_str,
-%     \l_@@_supv_str,
+%     \l_@@_supv_clist,
 %     \l_@@_supv_ent_str,
 %     \l_@@_student_id_str,
 %     \l_@@_abstract_zh_tl,
@@ -1875,6 +2367,7 @@
 %     \l_@@_abstract_en_tl,
 %     \l_@@_keywords_zh_clist,
 %     \l_@@_keywords_en_clist,
+%     \l_@@_bib_file_clist,
 %     \l_@@_ack_tl
 %   }
 % 论文标题。
@@ -1897,7 +2390,7 @@
 %    \end{macrocode}
 % 导师姓名。
 %    \begin{macrocode}
-\str_new:N \l_@@_supv_str
+\clist_new:N \l_@@_supv_clist
 %    \end{macrocode}
 % 校外导师姓名。
 %    \begin{macrocode}
@@ -1923,6 +2416,10 @@
 %    \begin{macrocode}
 \clist_new:N \l_@@_keywords_en_clist
 %    \end{macrocode}
+% 参考文献文件。
+%    \begin{macrocode}
+\clist_new:N \l_@@_bib_file_clist
+%    \end{macrocode}
 % 致谢。
 %    \begin{macrocode}
 \tl_new:N \l_@@_ack_tl
@@ -1952,7 +2449,7 @@
 %    \end{macrocode}
 % 导师姓名。
 %    \begin{macrocode}
-    supervisor .tl_set:N = \l_@@_supv_str,
+    supervisor .clist_set:N = \l_@@_supv_clist,
 %    \end{macrocode}
 % 校外导师姓名。
 %    \begin{macrocode}
@@ -1978,6 +2475,10 @@
 %    \begin{macrocode}
     keywords* .clist_set:N = \l_@@_keywords_en_clist,
 %    \end{macrocode}
+% 参考文献文件。
+%    \begin{macrocode}
+    bib-resource .clist_set:N = \l_@@_bib_file_clist,
+%    \end{macrocode}
 % 致谢。
 %    \begin{macrocode}
     acknowledgements .tl_set:N = \l_@@_ack_tl
@@ -2000,11 +2501,30 @@
     info / abstract*             = { },
     info / keywords              = { },
     info / keywords*             = { },
+    info / bib-resource          = { },
     info / acknowledgements      = { }
   }
 %    \end{macrocode}
 % \end{macro}
+% \begin{variable}
+%   {
+%     \l_@@_supv_str,
+%     \l_@@_supv_ii_str
+%   }
+% \changes{v1.16.0.0}{2022/05/22}{拆分导师姓名}
+% 拆分导师姓名。
 %    \begin{macrocode}
+\str_new:N \l_@@_supv_str
+\str_new:N \l_@@_supv_ii_str
+\ctex_at_end_preamble:n
+  {
+    \str_set:Nx \l_@@_supv_str    { \clist_item:Nn \l_@@_supv_clist { 1 } }
+    \str_set:Nx \l_@@_supv_ii_str { \clist_item:Nn \l_@@_supv_clist { 2 } }
+  }
+%    \end{macrocode}
+% \end{variable}
+%    \begin{macrocode}
+%</thesis>
 %<*xduugthesis>
 %    \end{macrocode}
 % \subsubsection{本科生}
@@ -2071,10 +2591,10 @@
 %     \l_@@_degree_str,
 %     \l_@@_degree_en_str,
 %     \l_@@_author_en_str,
-%     \l_@@_supv_en_str,
+%     \l_@@_supv_en_clist,
 %     \l_@@_supv_ent_en_str,
-%     \l_@@_supv_t_str,
-%     \l_@@_supv_t_en_str,
+%     \l_@@_supv_t_clist,
+%     \l_@@_supv_t_en_clist,
 %     \l_@@_supv_ent_t_str,
 %     \l_@@_supv_ent_t_en_str,
 %     \l_@@_title_en_str,
@@ -2083,7 +2603,11 @@
 %     \l_@@_domain_str,
 %     \l_@@_clc_str,
 %     \l_@@_secret_lv_str,
-%     \l_@@_submit_date_str
+%     \l_@@_secret_year_str,
+%     \l_@@_submit_date_str,
+%     \l_@@_los_str,
+%     \l_@@_loa_str,
+%     \l_@@_bio_str
 %   }
 % 研究生类型。
 %    \begin{macrocode}
@@ -2104,7 +2628,7 @@
 %    \end{macrocode}
 % 导师姓名拼音。
 %    \begin{macrocode}
-\str_new:N \l_@@_supv_en_str
+\clist_new:N \l_@@_supv_en_clist
 %    \end{macrocode}
 % 校外导师姓名拼音。
 %    \begin{macrocode}
@@ -2112,8 +2636,8 @@
 %    \end{macrocode}
 % 导师职称。
 %    \begin{macrocode}
-\str_new:N \l_@@_supv_t_str
-\str_new:N \l_@@_supv_t_en_str
+\clist_new:N \l_@@_supv_t_clist
+\clist_new:N \l_@@_supv_t_en_clist
 %    \end{macrocode}
 % 校外导师职称。
 %    \begin{macrocode}
@@ -2144,10 +2668,26 @@
 %    \begin{macrocode}
 \str_new:N \l_@@_secret_lv_str
 %    \end{macrocode}
+% 保密年限。
+%    \begin{macrocode}
+\str_new:N \l_@@_secret_year_str
+%    \end{macrocode}
 % 提交日期。
 %    \begin{macrocode}
 \str_new:N \l_@@_submit_date_str
 %    \end{macrocode}
+% 符号对照表文件路径。
+%    \begin{macrocode}
+\str_new:N \l_@@_los_str
+%    \end{macrocode}
+% 缩略语对照表文件路径。
+%    \begin{macrocode}
+\str_new:N \l_@@_loa_str
+%    \end{macrocode}
+% 作者简介文件路径。
+%    \begin{macrocode}
+\str_new:N \l_@@_bio_str
+%    \end{macrocode}
 % \end{variable}
 % \begin{macro}{\keys_define:nn}
 % 定义信息键值。
@@ -2176,7 +2716,7 @@
 %    \end{macrocode}
 % 导师姓名拼音。
 %    \begin{macrocode}
-    supervisor* .tl_set:N = \l_@@_supv_en_str,
+    supervisor* .clist_set:N = \l_@@_supv_en_clist,
 %    \end{macrocode}
 % 校外导师姓名拼音。
 %    \begin{macrocode}
@@ -2184,8 +2724,8 @@
 %    \end{macrocode}
 % 导师职称。
 %    \begin{macrocode}
-    supervisor-title .tl_set:N = \l_@@_supv_t_str,
-    supervisor-title* .tl_set:N = \l_@@_supv_t_en_str,
+    supervisor-title .clist_set:N = \l_@@_supv_t_clist,
+    supervisor-title* .clist_set:N = \l_@@_supv_t_en_clist,
 %    \end{macrocode}
 % 校外导师职称。
 %    \begin{macrocode}
@@ -2217,9 +2757,25 @@
     secret-level .choices:nn = { 秘密, 公开 }
       { \tl_set_eq:NN \l_@@_secret_lv_str \l_keys_choice_tl },
 %    \end{macrocode}
+% 保密年限。
+%    \begin{macrocode}
+    secret-year .tl_set:N = \l_@@_secret_year_str,
+%    \end{macrocode}
 % 提交日期。
 %    \begin{macrocode}
-    submit-date .tl_set:N = \l_@@_submit_date_str
+    submit-date .tl_set:N = \l_@@_submit_date_str,
+%    \end{macrocode}
+% 符号对照表文件路径。
+%    \begin{macrocode}
+    los .tl_set:N = \l_@@_los_str,
+%    \end{macrocode}
+% 缩略语对照表文件路径。
+%    \begin{macrocode}
+    loa .tl_set:N = \l_@@_loa_str,
+%    \end{macrocode}
+% 作者简介文件路径。
+%    \begin{macrocode}
+    bio .tl_set:N = \l_@@_bio_str
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2247,13 +2803,70 @@
     info / domain                       = { },
     info / clc                          = { },
     info / secret-level                 = { 公开 },
-    info / submit-date                  = { }
+    info / secret-year                  = { },
+    info / submit-date                  = { },
+    info / los                          = { },
+    info / loa                          = { },
+    info / bio                          = { }
   }
 %    \end{macrocode}
 % \end{macro}
+% \begin{variable}
+%   {
+%     \l_@@_supv_en_str,
+%     \l_@@_supv_ii_en_str,
+%     \l_@@_supv_t_str,
+%     \l_@@_supv_ii_t_str,
+%     \l_@@_supv_t_en_str,
+%     \l_@@_supv_ii_t_en_str
+%   }
+% \changes{v1.16.0.0}{2022/05/22}{拆分导师英文姓名和中英文职称}
+% 拆分导师英文姓名和中英文职称。
 %    \begin{macrocode}
+\str_new:N \l_@@_supv_en_str
+\str_new:N \l_@@_supv_ii_en_str
+\str_new:N \l_@@_supv_t_str
+\str_new:N \l_@@_supv_ii_t_str
+\str_new:N \l_@@_supv_t_en_str
+\str_new:N \l_@@_supv_ii_t_en_str
+\ctex_at_end_preamble:n
+  {
+    \str_set:Nx \l_@@_supv_en_str
+      { \clist_item:Nn \l_@@_supv_en_clist   { 1 } }
+    \str_set:Nx \l_@@_supv_ii_en_str
+      { \clist_item:Nn \l_@@_supv_en_clist   { 2 } }
+    \str_set:Nx \l_@@_supv_t_str
+      { \clist_item:Nn \l_@@_supv_t_clist    { 1 } }
+    \str_set:Nx \l_@@_supv_ii_t_str
+      { \clist_item:Nn \l_@@_supv_t_clist    { 2 } }
+    \str_set:Nx \l_@@_supv_t_en_str
+      { \clist_item:Nn \l_@@_supv_t_en_clist { 1 } }
+    \str_set:Nx \l_@@_supv_ii_t_en_str
+      { \clist_item:Nn \l_@@_supv_t_en_clist { 2 } }
+  }
+%    \end{macrocode}
+% \end{variable}
+%    \begin{macrocode}
 %</xdupgthesis>
+%<*thesis>
 %    \end{macrocode}
+% \subsection{标签宏配置}
+% \label{标签宏配置}
+% \begin{macro}
+%   {
+%     \figurename,
+%     \figname,
+%     \tablename,
+%     \tabname,
+%   }
+% \changes{v1.21.0.0}{2022/06/01}{配置图表标签宏}
+%    \begin{macrocode}
+\cs_set:Npn \figurename { \@@_lang_switch:nn { 图 } { Figure } }
+\cs_new_eq:NN \figname \figurename
+\cs_set:Npn \tablename  { \@@_lang_switch:nn { 表 } { Table  } }
+\cs_new_eq:NN \tabname \tablename
+%    \end{macrocode}
+% \end{macro}
 % \subsection{样式配置}
 % \begin{variable}
 %   {
@@ -2260,7 +2873,7 @@
 %     \l_@@_en_cjk_font_bool,
 %     \l_@@_lang_tl,
 %     \l_@@_bib_tool_tl,
-%     \l_@@_bib_file_clist,
+%     \l_@@_biblatex_option_tl,
 %     \l_@@_cap_label_sep_tl,
 %     \l_@@_tab_small_bool,
 %     \l_@@_alg_small_bool,
@@ -2287,9 +2900,9 @@
 %    \begin{macrocode}
 \tl_new:N \l_@@_bib_tool_tl
 %    \end{macrocode}
-% 参考文献文件。
+% 修改\pkgx{biblatex}默认选项。
 %    \begin{macrocode}
-\clist_new:N \l_@@_bib_file_clist
+\tl_new:N \l_@@_biblatex_option_tl
 %    \end{macrocode}
 % 是否在\tnx{ref}和\tnx{pageref}两侧自动调整中英文间空白。
 %    \begin{macrocode}
@@ -2350,9 +2963,9 @@
     bib-backend .choices:nn = { bibtex, biblatex }
       { \tl_set_eq:NN \l_@@_bib_tool_tl \l_keys_choice_tl },
 %    \end{macrocode}
-% 参考文献文件。
+% 修改\pkgx{biblatex}默认选项。
 %    \begin{macrocode}
-    bib-resource .clist_set:N = \l_@@_bib_file_clist,
+    biblatex-option .tl_set:N = \l_@@_biblatex_option_tl,
 %    \end{macrocode}
 % 是否在\tnx{ref}和\tnx{pageref}两侧自动调整中英文间空白。
 %    \begin{macrocode}
@@ -2405,7 +3018,7 @@
     style / en-cjk-font          = false,
     style / language             = zh,
     style / bib-backend          = biblatex,
-    style / bib-resource         = { },
+    style / biblatex-option      = { },
     style / ref-add-space        = false,
     style / caption-label-sep    = { 0.75em },
     style / table-small-font     = true,
@@ -2413,14 +3026,140 @@
     style / before-skip          = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt },
     style / after-skip           = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt },
     style / symmetric-margin     = false,
-    style / page-vertical-align  = {顶部对齐}
+    style / page-vertical-align  = { 顶部对齐 }
   }
 %    \end{macrocode}
 % \end{macro}
 %    \begin{macrocode}
 %</thesis>
+%<*xdupgthesis>
 %    \end{macrocode}
+% \changes{v1.22.0.0}{2022/06/05}{对照表样式配置}
+% \subsection{对照表样式配置}
+% \begin{variable}
+%   {
+%     \l_@@_customize_los_bool,
+%     \l_@@_customize_loa_bool,
+%     \l_@@_colspec_los_tl,
+%     \l_@@_colspec_loa_tl,
+%     \l_@@_title_row_los_bool,
+%     \l_@@_title_row_los_bool,
+%   }
+% 是否完全自定义符号对照。
 %    \begin{macrocode}
+\bool_new:N \l_@@_customize_los_bool
+%    \end{macrocode}
+% 是否完全自定义缩略语对照表。
+%    \begin{macrocode}
+\bool_new:N \l_@@_customize_loa_bool
+%    \end{macrocode}
+% 符号对照表列格式。
+%    \begin{macrocode}
+\tl_new:N \l_@@_colspec_los_tl
+%    \end{macrocode}
+% 缩略语对照表列格式。
+%    \begin{macrocode}
+\tl_new:N \l_@@_colspec_loa_tl
+%    \end{macrocode}
+% 是否每页均显示符号对照表标题行。
+%    \begin{macrocode}
+\bool_new:N \l_@@_title_row_los_bool
+%    \end{macrocode}
+% 是否每页均显示缩略语对照表标题行。
+%    \begin{macrocode}
+\bool_new:N \l_@@_title_row_loa_bool
+%    \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义信息键值。
+%    \begin{macrocode}
+\keys_define:nn { xdu / style }
+  {
+%    \end{macrocode}
+% 是否完全自定义符号对照。
+%    \begin{macrocode}
+    customize-los .bool_set:N = \l_@@_customize_los_bool,
+%    \end{macrocode}
+% 是否完全自定义缩略语对照表。
+%    \begin{macrocode}
+    customize-loa .bool_set:N = \l_@@_customize_loa_bool,
+%    \end{macrocode}
+% 符号对照表列格式。
+%    \begin{macrocode}
+    colspec-los .tl_set:N = \l_@@_colspec_los_tl,
+%    \end{macrocode}
+% 缩略语对照表列格式。
+%    \begin{macrocode}
+    colspec-loa .tl_set:N = \l_@@_colspec_loa_tl,
+%    \end{macrocode}
+% 是否每页均显示符号对照表标题行。
+%    \begin{macrocode}
+    title-row-los .bool_set:N = \l_@@_title_row_los_bool,
+%    \end{macrocode}
+% 是否每页均显示缩略语对照表标题行。
+%    \begin{macrocode}
+    title-row-loa .bool_set:N = \l_@@_title_row_loa_bool
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+%    \begin{macrocode}
+\keys_set:nn { xdu }
+  {
+    style / customize-los = { true               },
+    style / customize-loa = { true               },
+    style / colspec-los   = { Q[l,m]X[l,m]       },
+    style / colspec-loa   = { Q[l,m]X[l,m]X[l,m] },
+    style / title-row-los = { false              },
+    style / title-row-loa = { false              }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \changes{v1.26.0.0}{2022/06/07}{作者简介样式配置}
+% \subsection{作者简介样式配置}
+% \begin{variable}
+%   {
+%     \l_@@_customize_edubg_bool,
+%     \l_@@_customize_resresult_bool
+%   }
+% 是否完全自定义作者简介中教育背景。
+%    \begin{macrocode}
+\bool_new:N \l_@@_customize_edubg_bool
+%    \end{macrocode}
+% 是否完全自定义作者简介中攻读硕士学位期间的研究成果。
+%    \begin{macrocode}
+\bool_new:N \l_@@_customize_resresult_bool
+%    \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义信息键值。
+%    \begin{macrocode}
+\keys_define:nn { xdu / style }
+  {
+%    \end{macrocode}
+% 是否完全自定义作者简介中教育背景。
+%    \begin{macrocode}
+    customize-edubg .bool_set:N = \l_@@_customize_edubg_bool,
+%    \end{macrocode}
+% 是否完全自定义作者简介中攻读硕士学位期间的研究成果。
+%    \begin{macrocode}
+    customize-resresult .bool_set:N = \l_@@_customize_resresult_bool
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+%    \begin{macrocode}
+\keys_set:nn { xdu }
+  {
+    style / customize-edubg     = { true },
+    style / customize-resresult = { true }
+  }
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
+%</xdupgthesis>
 %<*class|xdufont>
 %    \end{macrocode}
 % \subsection{键值选项}
@@ -2521,6 +3260,29 @@
   }
 %    \end{macrocode}
 % \end{variable}
+% \begin{macro}{\@@_split_title:Nn,\@@_split_title:NV}
+% 拆分标题。
+% \begin{arguments}
+%   \item 拆分后标题。
+%   \item 拆分前标题。
+% \end{arguments}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_split_title:Nn #1#2
+  {
+    \seq_new:N \l_@@_title_seq
+    \tl_if_in:nnTF { #2 } { \\ }
+      {
+        \seq_set_split:Nnn \l_@@_title_seq { \\ } { #2 }
+        \clist_set_from_seq:NN #1 \l_@@_title_seq
+      }
+      {
+        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1  } { 14 } }
+        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
+      }
+  }
+\cs_generate_variant:Nn \@@_split_title:Nn { NV }
+%    \end{macrocode}
+% \end{macro}
 % \begin{macro}{\@@_uline:n}
 % 绘制下划线。
 %    \begin{macrocode}
@@ -2590,10 +3352,10 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_n_chapter_head_ii:nn #1#2
   {
-    {
+    \group_begin:
       \ctexset { chapter / format = { #2 } }
       \@@_n_chapter_head:n { #1 }
-    }
+    \group_end:
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2624,10 +3386,10 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_n_chapter_head_ii:nnn #1#2#3
   {
-    {
+    \group_begin:
       \ctexset { chapter / format = { #3 } }
       \@@_n_chapter_head:nn { #1 } { #2 }
-    }
+    \group_end:
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2658,7 +3420,25 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \begin{macro}{\@@_n_chapter_head_toc_ii:nn}
+% \changes{v1.28.1.0}{2022/06/18}{新建无编号章节并单独添加目录及页眉并单独设置标题样式}
+% 新建无编号章节并单独添加目录及页眉并单独设置标题样式。
+% \begin{arguments}
+%   \item 目录、书签、页眉处。
+%   \item 章节标题处。
+% \end{arguments}
+%    \begin{macrocode}
+\cs_new:Npn \@@_n_chapter_head_toc_ii:nn #1#2
+  {
+    \group_begin:
+      \ctexset { chapter / format = { #2 } }
+      \@@_n_chapter_head_toc:n { #1 }
+    \group_end:
+  }
+%    \end{macrocode}
+% \end{macro}
 % \begin{macro}{\@@_typeout_keywords:nNn}
+% \changes{v1.20.0.0}{2022/05/30}{允许关键词标签带格式}
 % 排版关键词。
 % \begin{arguments}
 %   \item 标签名称。
@@ -2668,11 +3448,11 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_typeout_keywords:nNn #1#2#3
   {
-    \str_clear_new:N \l_@@_keywords_label_str
-    \str_set:Nn \l_@@_keywords_label_str { #1 }
+    \tl_clear_new:N \l_@@_keywords_label_str
+    \tl_set:Nn \l_@@_keywords_label_tl { #1 }
     \dim_zero_new:N \l_@@_keywords_label_dim
-    \@@_get_text_width:NV \l_@@_keywords_label_dim \l_@@_keywords_label_str
-    \begin { list } { \l_@@_keywords_label_str }
+    \@@_get_text_width:NV \l_@@_keywords_label_dim \l_@@_keywords_label_tl
+    \begin { list } { \l_@@_keywords_label_tl }
       {
         \labelwidth  \l_@@_keywords_label_dim
         \labelsep    \c_zero_dim
@@ -2684,6 +3464,24 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \begin{macro}{\@@_str_max_dim:Nn}
+% \changes{v1.26.4.0}{2022/06/10}{计算字符串多大长度}
+% 计算字符串多大长度。
+% \begin{arguments}
+%   \item 最大值长度。
+%   \item 字符串。
+% \end{arguments}
+%    \begin{macrocode}
+\dim_new:N \l_@@_str_dim
+\box_new:N \l_@@_str_box
+\cs_new:Npn \@@_str_max_dim:Nn #1#2
+  {
+    \hbox_set:Nn \l_@@_str_box { #2 }
+    \dim_set:Nn \l_@@_str_dim { \box_wd:N \l_@@_str_box }
+    \dim_set:Nn #1  { \dim_max:nn { \l_@@_str_dim } { #1 } }
+  }
+%    \end{macrocode}
+% \end{macro}
 % \subsection{额外命令}
 % \begin{macro}{\noauxwrite}
 % \changes{v1.15.0.0}{2022/05/13}{\tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用}
@@ -2706,10 +3504,12 @@
 % \begin{macro}{\geometry,\newgeometry,\savegeometry}
 % \changes{v1.5.1.0}{2022/05/01}{修正页脚高度}
 % \changes{v1.5.2.0}{2022/05/02}{修正底部页边距高度}
+% \changes{v1.26.8.0}{2022/06/13}{修正研究生页眉高度}
 % 正文页面。
 % \begin{description}
 % \item[本科生] 上3、下2、内3、外2;装订线1;页眉2、页脚1。
 % \item[研究生] 上3、\textbf{下2.5}、内2.5、外2.5;装订线0.5;页眉2、页脚$2.5-1.75=0.75$。
+% 实测上3.14,headheight和headsep均为实测。
 % \end{description}
 %    \begin{macrocode}
 \newgeometry
@@ -2724,12 +3524,13 @@
     foot          = 1cm
 %</xduugthesis>
 %<*xdupgthesis>
-    top           = 3cm,
+    top           = 3.14cm,
     bottom        = 2.5cm,
     inner         = 2.5cm,
     outer         = 2.5cm,
     bindingoffset = 0.5cm,
-    head          = 2cm,
+    headheight    = 20pt,
+    headsep       = 10pt,
     foot          = 0.75cm
 %</xdupgthesis>
   }
@@ -2754,12 +3555,13 @@
     foot   = 1cm
 %</xduugthesis>
 %<*xdupgthesis>
-    top    = 3cm,
-    bottom = 2.5cm,
-    inner  = 2.75cm,
-    outer  = 2.75cm,
-    head   = 2cm,
-    foot   = 0.75cm
+    top        = 3.14cm,
+    bottom     = 2.5cm,
+    inner      = 2.75cm,
+    outer      = 2.75cm,
+    headheight = 20pt,
+    headsep    = 10pt,
+    foot       = 0.75cm
 %</xdupgthesis>
   }
 \savegeometry { main-sym }
@@ -2768,7 +3570,7 @@
 % 封面页面。
 % \begin{description}
 % \item[本科生] 上2.5、下2、内3、外2。
-% \item[研究生] 上3、下2、内3、外2.5。
+% \item[研究生] 上3、下1、内3、外2.5。
 % \end{description}
 %    \begin{macrocode}
 \newgeometry
@@ -2781,7 +3583,7 @@
 %</xduugthesis>
 %<*xdupgthesis>
     top    = 3cm,
-    bottom = 2cm,
+    bottom = 1cm,
     inner  = 3cm,
     outer  = 2.5cm
 %</xdupgthesis>
@@ -2857,6 +3659,7 @@
 % \changes{v0.1.1.0}{2022/04/03}{修正页眉字号}
 % \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
 % \changes{v1.7.0.0}{2022/05/02}{设置页眉}
+% \changes{v1.26.9.0}{2022/06/13}{修正页眉文字和双横线高度}
 % 设置正文页眉页脚。
 % \begin{description}
 % \item[本科生] 页眉:宋体五号,居中排列。左面页眉为论文题目,右面页眉为章次和章标题。页眉底划线的宽度为0.75磅。页码:宋体小五号,排在页眉行的最外侧,不加任何修饰。
@@ -2882,6 +3685,8 @@
     \cs_set:Npn \headrulewidth { 0.5pt }
     \cs_set:Npn \headrule
       {
+        \hrule \@height 0pt
+        \skip_vertical:N 2pt
         \hrule \@height \headrulewidth
         \skip_vertical:N \headrulewidth
         \hrule \@height \headrulewidth
@@ -2916,8 +3721,9 @@
 %<*xduugthesis>
 %    \end{macrocode}
 % \subsection{标题设置}
+% \subsubsection{本科生}
 % 中文章标题黑体,三号,居中排列。节标题宋体,四号,居中排列。英文一级标题字体为Times New Roman,四号,正体,左对齐,以大写罗马数字(I、II 等)标出序号。其余各级标题的字体均为Times New Roman,小四号,正体。二级及以下级别的标题依次缩进4个英文字符,以1.1,1.2,1.1.1,1.1.2形式标出序号。
-% \subsubsection{章节层次}
+% \paragraph{章节层次}
 % \begin{macro}{\ctexset}
 % 设置章节层次为subparagraph。
 %    \begin{macrocode}
@@ -2924,7 +3730,7 @@
 \ctexset { secnumdepth=5 }
 %    \end{macrocode}
 % \end{macro}
-% \subsubsection{章节名字}
+% \paragraph{章节名字}
 % \begin{macro}{\ctexset}
 % 设置章节的名字。
 %    \begin{macrocode}
@@ -2943,7 +3749,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \subsubsection{章节编号}
+% \paragraph{章节编号}
 % \begin{macro}{\ctexset}
 % \changes{v1.2.1.0}{2022/04/19}{修正英文论文标题序号}
 % 设置章节编号的数字输出格式。
@@ -2976,7 +3782,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \subsubsection{章节和标题}
+% \paragraph{章节和标题}
 % \begin{macro}{\@@_zh_t:nnn}
 % 设置中文章节名字和随后的标题内容格式。
 % \begin{arguments}
@@ -3085,6 +3891,149 @@
   }
 %    \end{macrocode}
 % \end{macro}
+%    \begin{macrocode}
+%</xduugthesis>
+%<*xdupgthesis>
+%    \end{macrocode}
+% \changes{v1.27.0.0}{2022/06/18}{研究生学位论文章节标题样式}
+% \subsubsection{研究生}
+% \paragraph{章节层次}
+% \begin{macro}{\ctexset}
+% 设置章节层次为subparagraph。
+%    \begin{macrocode}
+\ctexset { secnumdepth=5 }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{章节名字}
+% \begin{macro}{\ctexset}
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文一级标题名称}
+% 设置章节的名字。
+%    \begin{macrocode}
+\ctex_at_end_preamble:n
+  {
+    \@@_lang_switch:nn
+      { \ctexset { chapter / name = { 第, 章        } } }
+      { \ctexset { chapter / name = { Chapter\space } } }
+  }
+\ctexset
+  {
+    section       / name = {        },
+    subsection    / name = {        },
+    subsubsection / name = { (, ) },
+    paragraph     / name = { (, ) },
+    subparagraph  / name = { (, ) }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{章节编号}
+% \begin{macro}{\ctexset}
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文一级标题数字输出格式}
+% 设置章节编号的数字输出格式。
+%    \begin{macrocode}
+\ctex_at_end_preamble:n
+  {
+    \@@_lang_switch:nn
+      { \ctexset { chapter / number = { \chinese { chapter } } } }
+      { \ctexset { chapter / number = { \Roman   { chapter } } } }
+  }
+\ctexset
+  {
+    section       / number = { \thesection               },
+    subsection    / number = { \thesubsection            },
+    subsubsection / number = { \arabic { subsubsection } },
+    paragraph     / number = { \alph { paragraph }       },
+    subparagraph  / number = { \roman { subparagraph }   }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{章节格式}
+% \begin{macro}
+%   {
+%     \@@_sec_format_i:n,
+%     \@@_sec_format_ii:,
+%     \@@_sec_format_iii:,
+%     \ctexset
+%   }
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文一级标题字体}
+% 设置章节名字和随后的标题内容格式。
+%    \begin{macrocode}
+\cs_new:Npn \@@_sec_format_i:n #1
+  { \@@_rm_family: \bfseries \zihao { #1 } \dim_set:Nn \baselineskip { 20pt } }
+\cs_new:Npn \@@_sec_format_ii:
+  { \@@_sf_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+\cs_new:Npn \@@_sec_format_iii:
+  { \@@_rm_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+\ctex_at_end_preamble:n
+  {
+    \@@_lang_switch:nn
+      { \ctexset { chapter / format = { \@@_sec_format_ii:  } } }
+      { \ctexset { chapter / format = { \@@_sec_format_iii: } } }
+  }
+\ctexset
+  {
+    section       / format = { \@@_sec_format_i:n { -3 } },
+    subsection    / format = { \@@_sec_format_i:n { 4  } },
+    subsubsection / format = { \@@_sec_format_i:n { 4  } },
+    paragraph     / format = { \@@_sec_format_i:n { 4  } },
+    subparagraph  / format = { \@@_sec_format_i:n { 4  } }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{章节编号与标题间距}
+% \begin{macro}{\ctexset}
+% 设置章节编号与标题间距。
+%    \begin{macrocode}
+\ctexset
+  {
+    chapter       / aftername = { \quad   },
+    section       / aftername = { \enskip },
+    subsection    / aftername = { \enskip },
+    subsubsection / aftername = { },
+    paragraph     / aftername = { },
+    subparagraph  / aftername = { }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{章节缩进}
+% \begin{macro}{\ctexset}
+% 设置章节标题本身的首行缩进。
+%    \begin{macrocode}
+\ctexset
+  {
+    chapter       / indent = { 0bp  },
+    section       / indent = { 0bp  },
+    subsection    / indent = { 24bp },
+    subsubsection / indent = { 24bp },
+    paragraph     / indent = { 24bp },
+    subparagraph  / indent = { 24bp }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{章节间距}
+% \begin{macro}{\ctexset}
+% 设置章节标题前后的垂直间距。
+%    \begin{macrocode}
+\ctexset
+  {
+    chapter       / beforeskip = { 6pt  },
+    section       / beforeskip = { 18pt },
+    subsection    / beforeskip = { 12pt },
+    subsubsection / beforeskip = { 12pt },
+    paragraph     / beforeskip = { 12pt },
+    subparagraph  / beforeskip = { 12pt },
+    chapter       / afterskip  = { 18pt },
+    section       / afterskip  = { 12pt },
+    subsection    / afterskip  = { 6pt  },
+    subsubsection / afterskip  = { 6pt  },
+    paragraph     / afterskip  = { 6pt  },
+    subparagraph  / afterskip  = { 6pt  }
+  }
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
+%</xdupgthesis>
+%<*thesis>
+%    \end{macrocode}
 % \subsection{目录}
 % \begin{macro}{\RequirePackage}
 % \changes{v0.4.1.0}{2022/04/05}{设置目录样式}
@@ -3095,6 +4044,11 @@
 \RequirePackage { tocloft }
 %    \end{macrocode}
 % \end{macro}
+%    \begin{macrocode}
+%</thesis>
+%<*xduugthesis>
+%    \end{macrocode}
+% \subsubsection{本科生}
 % \begin{variable}{\cftchapleader}
 % 修改目录中一级标题引导点。
 %    \begin{macrocode}
@@ -3160,6 +4114,67 @@
 % \end{variable}
 %    \begin{macrocode}
 %</xduugthesis>
+%<*xdupgthesis>
+%    \end{macrocode}
+% \changes{v1.28.0.0}{2022/06/18}{研究生学位论文目录样式}
+% \subsubsection{研究生}
+% \begin{variable}{\cftdotsep}
+% 修改引导点之间的距离。
+%    \begin{macrocode}
+\cs_set:Npn \cftdotsep { 0 }
+%    \end{macrocode}
+% \end{variable}
+% \begin{variable}{\cftchapleader}
+% 修改目录中一级标题引导点。
+%    \begin{macrocode}
+\cs_set:Npn \cftchapleader { \cftdotfill { \cftdotsep } }
+%    \end{macrocode}
+% \end{variable}
+% \begin{variable}
+%   {
+%     \cftbeforechapskip,
+%     \cftbeforesecskip
+%   }
+% 设置一级标题与其余各级标题条目前垂直间距一致。
+%    \begin{macrocode}
+\dim_set_eq:NN \cftbeforechapskip \cftbeforesecskip
+%    \end{macrocode}
+% \end{variable}
+% \begin{variable}{\cftchapfont}
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文目录中一级标题字体}
+% 设置一级标题字体字号。
+%    \begin{macrocode}
+\ctex_at_end_preamble:n
+  {
+    \@@_lang_switch:nn
+      { \cs_set:Npn \cftchapfont { \@@_sf_family: \zihao { -4 } } }
+      { \cs_set:Npn \cftchapfont { \@@_rm_family: \zihao { -4 } } }
+  }
+%    \end{macrocode}
+% \end{variable}
+% \begin{variable}
+%   {
+%     \cftsecfont,
+%     \cftsubsecfont,
+%     \cftchappagefont,
+%     \cftsecpagefont,
+%     \cftsubsecpagefont
+%   }
+% 设置二三级标题及一二三级标题页码字体字号。
+%    \begin{macrocode}
+\clist_map_inline:nn
+  {
+    \cftsecfont,
+    \cftsubsecfont,
+    \cftchappagefont,
+    \cftsecpagefont,
+    \cftsubsecpagefont
+  }
+  { \renewcommand { #1 } { \@@_rm_family: \zihao { -4 } } }
+%    \end{macrocode}
+% \end{variable}
+%    \begin{macrocode}
+%</xdupgthesis>
 %<*thesis>
 %    \end{macrocode}
 % \subsection{公式}
@@ -3354,8 +4369,10 @@
 % \end{macro}
 % \begin{macro}{\thesubfigure}
 % \changes{v1.13.5.0}{2022/05/08}{设置\pkgx{subcaption}宏包子图引用样式}
+% \changes{v1.20.1.0}{2022/05/30}{修复\pkgx{subcaption}宏包子图标签样式}
 % 设置\pkgx{subcaption}宏包子图引用样式。
 %    \begin{macrocode}
+\PassOptionsToPackage { labelformat = simple } { subcaption }
 \ctex_at_end_preamble:n
   {
     \@ifpackageloaded { subcaption }
@@ -3428,7 +4445,7 @@
 % \changes{v1.10.0.0}{2022/05/04}{添加PDF应用程序元数据}
 % 配置超链接和PDF元数据。
 %    \begin{macrocode}
-\RequirePackage{ hyperref }
+\RequirePackage { hyperref }
 \hypersetup
   {
     bookmarksnumbered,
@@ -3507,6 +4524,7 @@
           { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: }
       }
       {
+        \PassOptionsToPackage { \l_@@_biblatex_option_tl } { biblatex }
         \RequirePackage { biblatex }
         \clist_map_inline:Nn \l_@@_bib_file_clist { \addbibresource { #1 } }
       }
@@ -3513,10 +4531,6 @@
   }
 %    \end{macrocode}
 % \end{macro}
-%    \begin{macrocode}
-%</thesis>
-%<*xduugthesis>
-%    \end{macrocode}
 % \subsection{附录}
 % \begin{macro}{appendixes}
 % 附录环境。
@@ -3543,8 +4557,14 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \subsection{封面}
+%    \begin{macrocode}
+%</thesis>
+%<*xduugthesis>
+%    \end{macrocode}
+% \changes{v1.26.7.1}{2022/06/12}{整理代码结构}
+% \subsection{前言部分}
 % \subsubsection{本科生}
+% \paragraph{前言组件}
 % \begin{macro}{\@@_cover_i:nn}
 % 绘制班级和学号。
 % \begin{arguments}
@@ -3632,29 +4652,6 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\@@_split_title:Nn,\@@_split_title:Nn}
-% 拆分标题。
-% \begin{arguments}
-%   \item 拆分后标题。
-%   \item 拆分前标题。
-% \end{arguments}
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_split_title:Nn #1#2
-  {
-    \seq_new:N \l_@@_title_seq
-    \tl_if_in:nnTF { #2 } { \\ }
-      {
-        \seq_set_split:Nnn \l_@@_title_seq { \\ } { #2 }
-        \clist_set_from_seq:NN #1 \l_@@_title_seq
-      }
-      {
-        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1  } { 14 } }
-        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
-      }
-  }
-\cs_generate_variant:Nn \@@_split_title:Nn { NV }
-%    \end{macrocode}
-% \end{macro}
 % \begin{variable}{\l_@@_is_ent_bool,\l_@@_is_wide_bool}
 % \changes{v0.8.1.0}{2022/04/12}{封面导师标签标志位}
 % 是否为校外毕设,是否为宽名称。
@@ -3691,9 +4688,10 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \paragraph{\tn{frontmatter}}
 % \begin{macro}{\frontmatter}
 % \changes{v1.9.1.0}{2022/05/04}{修正封面元素位置及尺寸}
-% 排版正文前部分。
+% 排版前言部分。
 %    \begin{macrocode}
 \renewcommand { \frontmatter }
   {
@@ -3756,9 +4754,10 @@
         \@@_cover_iii:nnnn { 校内导师姓名 } { rm } { -3 } { \l_@@_supv_sch_str }
       }
 %    \end{macrocode}
+% \changes{v1.15.1.0}{2022/05/21}{使用\csx{group_begin:}和\csx{group_end:}替换分组}
 % 校内毕设,排版导师姓名、院内导师姓名。
 %    \begin{macrocode}
-      {
+      \group_begin:
         \@@_cover_iii:nnnn { 导师姓名 } { rm } { -3 } { \l_@@_supv_str }
         \tl_if_blank:VF \l_@@_supv_dept_str
           {
@@ -3768,7 +4767,7 @@
               { -3                  }
               { \l_@@_supv_dept_str }
           }
-      }
+      \group_end:
     \cleardoublepage
 %    \end{macrocode}
 % \changes{v0.8.0.0}{2022/04/12}{支持对称页边距}
@@ -3790,24 +4789,24 @@
           { 摘 { \quad } 要 }
           { \@@_sf_family: \zihao { 3 } \centering }
       }
-    {
+    \group_begin:
       \dim_set:Nn \parindent { 2 \ccwd }
       \rmfamily \zihao { -4 }
       \file_if_exist_input:n { \l_@@_abstract_zh_tl }
-    }
+    \group_end:
 %    \end{macrocode}
 % \changes{v1.10.3.0}{2022/05/04}{使用弹性长度分隔关键词}
 % 关键词弹性分隔间距。
 %    \begin{macrocode}
-    \cs_new:Npn \@@_keywords_space: { \hspace{ 2em plus 1em minus 1em } }
+    \cs_new:Npn \@@_keywords_space: { \hspace { 2em plus 1em minus 1em } }
 %    \end{macrocode}
 % 中文关键词,黑体小四号。
 %    \begin{macrocode}
-    {
+    \group_begin:
       \sffamily \zihao { -4 } \par
       \@@_typeout_keywords:nNn
         { 关键词: } { \l_@@_keywords_zh_clist } { \@@_keywords_space: }
-    }
+    \group_end:
     \cleardoublepage
 %    \end{macrocode}
 % 英文摘要,Times New Roman字体,小四号。
@@ -3815,19 +4814,19 @@
 %    \begin{macrocode}
     \@@_n_chapter_head_ii:nn
       { ABSTRACT } { \rmfamily \zihao { 3 } \bfseries \centering }
-    {
+    \group_begin:
       \dim_set:Nn \parindent { 2 \ccwd }
       \rmfamily \zihao { -4 }
       \file_if_exist_input:n { \l_@@_abstract_en_tl }
-    }
+    \group_end:
 %    \end{macrocode}
 % 英文关键词,Times New Roman字体加粗,小四号。
 %    \begin{macrocode}
-    {
+    \group_begin:
       \rmfamily \zihao { -4 } \bfseries \par
       \@@_typeout_keywords:nNn
         { Keywords: } { \l_@@_keywords_en_clist } { \@@_keywords_space: }
-    }
+    \group_end:
     \cleardoublepage
 %    \end{macrocode}
 % \changes{v1.1.4.0}{2022/04/16}{为目录章节标题增加间距}
@@ -3848,18 +4847,1147 @@
 %<*xdupgthesis>
 %    \end{macrocode}
 % \subsubsection{研究生}
+% \paragraph{封面}
+% \begin{variable}
+%   {
+%     \l_@@_ac_master,
+%     \l_@@_pro_master,
+%     \l_@@_ac_phd,
+%     \l_@@_pro_phd,
+%     \l_@@_phd,
+%     \l_@@_master,
+%     \l_@@_ac,
+%     \l_@@_pro
+%   }
+% \changes{v1.16.0.0}{2022/05/22}{研究生类别}
+% \changes{v1.17.0.0}{2022/05/28}{增加学术和专业研究生布尔变量}
+% \changes{v1.18.0.0}{2022/05/29}{增加硕士和博士研究生布尔变量}
+% 研究生类别。
+%    \begin{macrocode}
+\bool_new:N \l_@@_ac_master
+\bool_new:N \l_@@_pro_master
+\bool_new:N \l_@@_ac_phd
+\bool_new:N \l_@@_pro_phd
+\bool_new:N \l_@@_phd
+\bool_new:N \l_@@_master
+\bool_new:N \l_@@_ac
+\bool_new:N \l_@@_pro
+\ctex_at_end_preamble:n
+  {
+    \tl_if_eq:NnTF \l_@@_gr_type_tl { 硕士 }
+      {
+        \bool_set_true:N \l_@@_master
+        \tl_if_eq:NnTF \l_@@_degree_type_tl { 学术 }
+          { \bool_set_true:N \l_@@_ac_master  }
+          { \bool_set_true:N \l_@@_pro_master }
+      }
+      {
+        \bool_set_true:N \l_@@_phd
+        \tl_if_eq:NnTF \l_@@_degree_type_tl { 学术 }
+          { \bool_set_true:N \l_@@_ac_phd  }
+          { \bool_set_true:N \l_@@_pro_phd }
+      }
+    \tl_if_eq:NnTF \l_@@_degree_type_tl { 学术 }
+      { \bool_set_true:N \l_@@_ac  }
+      { \bool_set_true:N \l_@@_pro }
+  }
+%    \end{macrocode}
+% \end{variable}
+% \begin{macro}{\@@_cover_i:nnnnn}
+% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面单行内容}
+% \changes{v1.17.0.0}{2022/05/28}{绘制研究生封面和提名页单行内容}
+% 绘制研究生封面和提名页单行内容。
+% \begin{arguments}
+%   \item 盒子高度。
+%   \item 字体族。
+%   \item 字号。
+%   \item 是否加粗。
+%   \item 盒子内容。
+% \end{arguments}
+%    \begin{macrocode}
+\cs_new:Npn \@@_cover_i:nnnnn #1#2#3#4#5
+  {
+    \dim_set:Nn \baselineskip { 20pt }
+    \vbox_to_ht:nn { #1 }
+      {
+        \vfill
+        \mode_leave_vertical:
+        \hfil
+        \use:c { #2 family } \zihao { #3 }
+        \str_if_eq:nnTF { #4 } { bf } { \bfseries } { }
+        #5
+        \hfil
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_cover_ii:nnnn}
+% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面论文信息}
+% \changes{v1.26.4.0}{2022/06/10}{研究生封面论文信息可指定宽度}
+% 绘制研究生封面论文信息。
+% \begin{arguments}
+%   \item 标签宽度。
+%   \item 标签名称。
+%   \item 盒子宽度。
+%   \item 盒子内容。
+% \end{arguments}
+%    \begin{macrocode}
+\cs_new:Npn \@@_cover_ii:nnnn #1#2#3#4
+  {
+    \dim_set:Nn \baselineskip { 20pt }
+    \vbox_to_ht:nn { 25pt }
+      {
+        \vfill
+        \mode_leave_vertical:
+        \hfil
+        \hbox:n
+          {
+            \zihao { 4 } \bfseries
+            \hbox_to_wd:nn { #1 } { \sffamily #2 }
+            \skip_horizontal:n { 0.5em }
+            \@@_uline:n
+              {
+                \skip_horizontal:n { 9em - #1 }
+                \hbox_to_wd:nn { #3 } { \hfil \rmfamily #4 \hfil }
+              }
+          }
+        \hfil
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_cover_iii:nnnn}
+% \changes{v1.17.0.0}{2022/05/28}{绘制研究生中文提名页顶部信息}
+% 绘制研究生中文提名页顶部信息。
+% \begin{arguments}
+%   \item 标签宽度。
+%   \item 标签名称。
+%   \item 值宽度。
+%   \item 值内容。
+% \end{arguments}
+%    \begin{macrocode}
+\cs_new:Npn \@@_cover_iii:nnnn #1#2#3#4
+  {
+    \dim_set:Nn \baselineskip { 20pt }
+    \hbox:n
+      {
+        \rmfamily \zihao { 5 } \bfseries
+        \hbox_to_wd:nn { #1 } { #2 }
+        \skip_horizontal:n { 0.5em }
+        \@@_uline:n { \hbox_to_wd:nn { #3 } { \hfil #4 \hfil } }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_month:n}
+% \changes{v1.18.0.0}{2022/05/29}{英文月份}
+% 英文月份。
+%    \begin{macrocode}
+\cs_new:Npn \@@_en_month:n #1
+  {
+    \str_case:Vn #1
+      {
+        { 1  } { January   }
+        { 2  } { February  }
+        { 3  } { March     }
+        { 4  } { April     }
+        { 5  } { May       }
+        { 6  } { June      }
+        { 7  } { July      }
+        { 8  } { August    }
+        { 9  } { September }
+        { 10 } { October   }
+        { 11 } { November  }
+        { 12 } { December  }
+        { 01 } { January   }
+        { 02 } { February  }
+        { 03 } { March     }
+        { 04 } { April     }
+        { 05 } { May       }
+        { 06 } { June      }
+        { 07 } { July      }
+        { 08 } { August    }
+        { 09 } { September }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_zh_today:,\@@_en_today:}
+% \changes{v1.17.0.0}{2022/05/28}{中文今日年月}
+% \changes{v1.18.0.0}{2022/05/29}{英文今日年月}
+% 今日年月。
+%    \begin{macrocode}
+\cs_new:Npn \@@_zh_today:
+  { \int_use:N \c_sys_year_int 年 \int_use:N \c_sys_month_int 月 }
+\cs_new:Npn \@@_en_today:
+  { \@@_en_month:n { \c_sys_month_int } ~ \int_use:N \c_sys_year_int }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_split_submit_date:N}
+% \changes{v1.17.0.0}{2022/05/28}{拆分提交日期为年和月}
+% 拆分提交日期为年和月。
+%    \begin{macrocode}
+\seq_new:N \l_@@_submit_date_seq
+\cs_new:Npn \@@_split_submit_date:N #1
+  {
+    \seq_set_split:NnV \l_@@_submit_date_seq { - } \l_@@_submit_date_str
+    \clist_set_from_seq:NN #1 \l_@@_submit_date_seq
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_zh_submit_date:}
+% \changes{v1.17.0.0}{2022/05/28}{中文提交日期}
+% 中文提交日期。
+%    \begin{macrocode}
+\clist_new:N \l_@@_submit_date_clist
+\cs_new:Npn \@@_zh_submit_date:
+  {
+    \str_if_empty:NTF \l_@@_submit_date_str
+      { \@@_zh_today: }
+      {
+        \@@_split_submit_date:N \l_@@_submit_date_clist
+        \clist_item:Nn \l_@@_submit_date_clist { 1 } 年
+        \clist_item:Nn \l_@@_submit_date_clist { 2 } 月
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_submit_date:}
+% \changes{v1.18.0.0}{2022/05/29}{英文提交日期}
+% 英文提交日期。
+%    \begin{macrocode}
+\str_new:N \l_@@_submit_date_month_str
+\cs_new:Npn \@@_en_submit_date:
+  {
+    \str_if_empty:NTF \l_@@_submit_date_str
+      { \@@_en_today: }
+      {
+        \@@_split_submit_date:N \l_@@_submit_date_clist
+        \str_set:Nx \l_@@_submit_date_month_str
+          { \clist_item:Nn \l_@@_submit_date_clist { 2 } }
+        \@@_en_month:n { \l_@@_submit_date_month_str } ~
+        \clist_item:Nn \l_@@_submit_date_clist { 1 }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_cover_author_info:}
+% \changes{v1.26.4.0}{2022/06/10}{研究生封面底部作者信息}
+% 研究生封面底部作者信息。
+%    \begin{macrocode}
+\cs_new:Npn \@@_cover_author_info:
+  {
+%    \end{macrocode}
+% 计算作者信息最大宽度。
+%    \begin{macrocode}
+    \rmfamily \zihao { 4 }
+    \dim_new:N \l_@@_cover_author_info_dim
+    \dim_set:Nn \l_@@_cover_author_info_dim { 7em }
+    \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_author_str }
+    \bool_if:NTF \l_@@_pro_master
+      {
+        \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+          { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+              { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+          }
+        \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+          { \l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str }
+      }
+      {
+        \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+          { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+              { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+          }
+      }
+    \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_degree_str }
+    \dim_add:Nn \l_@@_cover_author_info_dim { 3em }
+%    \end{macrocode}
+% 排版封面论文信息。
+%    \begin{macrocode}
+    \@@_cover_ii:nnnn { 4em } { 作者姓名 }
+      { \l_@@_cover_author_info_dim }
+      { \l_@@_author_str }
+    \bool_if:NTF \l_@@_pro_master
+      {
+        \@@_cover_ii:nnnn { 9em } { 学校导师姓名、职称 }
+          { \l_@@_cover_author_info_dim }
+          { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \@@_cover_ii:nnnn { 9em } { }
+              { \l_@@_cover_author_info_dim }
+              { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+          }
+        \@@_cover_ii:nnnn { 9em } { 企业导师姓名、职称 }
+          { \l_@@_cover_author_info_dim }
+          { \l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str }
+      }
+      {
+        \@@_cover_ii:nnnn { 9em } { 指导教师姓名、职称 }
+          { \l_@@_cover_author_info_dim }
+          { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \@@_cover_ii:nnnn { 9em } { }
+              { \l_@@_cover_author_info_dim }
+              { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+          }
+      }
+    \@@_cover_ii:nnnn { 6em } { 申请学位类别 }
+      { \l_@@_cover_author_info_dim }
+      { \l_@@_degree_str }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{中文提名页}
+% \begin{macro}{\@@_zh_title_page_info:}
+% \changes{v1.26.7.0}{2022/06/11}{拆分研究生中文提名页底部信息}
+% 中文提名页底部信息。
+%    \begin{macrocode}
+\cs_new:Npn \@@_zh_title_page_info:
+  {
+%    \end{macrocode}
+% \changes{v1.26.6.0}{2022/06/11}{研究生中文提名页底部信息宽度测量}
+% 底部信息宽度测量。
+%    \begin{macrocode}
+    \rmfamily \zihao { 4 }
+    \dim_new:N \l_@@_zh_title_page_info_dim
+    \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+      { 作者姓名:\l_@@_author_str }
+    \bool_if:NTF \l_@@_ac
+      {
+        \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+          { 一级学科:\l_@@_major_str }
+        \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+          { 二级学科(研究方向):\l_@@_sub_major_str }
+      }
+      {
+        \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+          { 领\qquad{}域:\l_@@_domain_str }
+      }
+      \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+        { 学位类别:\l_@@_degree_str }
+    \bool_if:NTF \l_@@_pro_master
+      {
+        \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+          { 学校导师姓名、职称:\l_@@_supv_str \enskip \l_@@_supv_t_str }
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+              { 学校导师姓名、职称:\l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+          }
+        \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+          { 企业导师姓名、职称:\l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str }
+      }
+      {
+        \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+          { 指导教师姓名、职称:\l_@@_supv_str \enskip \l_@@_supv_t_str }
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+              { 指导教师姓名、职称:\l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+          }
+      }
+    \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+      { 学\qquad{}院:\l_@@_dept_str }
+    \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+      { 提交日期:\@@_zh_submit_date: }
+%    \end{macrocode}
+% \changes{v1.26.6.0}{2022/06/11}{研究生中文提名页底部信息自动居中}
+% \changes{v1.26.10.0}{2022/06/17}{修正中文提名页底部信息字体系列}
+% 底部信息。
+%    \begin{macrocode}
+    \dim_new:N \l_@@_zh_title_page_info_skip_dim
+    \dim_set_eq:NN \l_@@_zh_title_page_info_skip_dim \linewidth
+    \dim_sub:Nn \l_@@_zh_title_page_info_skip_dim { \l_@@_zh_title_page_info_dim }
+    \skip_horizontal:n { \dim_eval:n { \l_@@_zh_title_page_info_skip_dim / 2 } }
+    \vbox:n
+      {
+        \rmfamily \zihao { 4 }
+        \dim_set:Nn \baselineskip { 32pt }
+        { \bfseries 作者姓名: } \l_@@_author_str
+        \bool_if:NTF \l_@@_ac
+          {
+            \par
+            { \bfseries 一级学科: } \l_@@_major_str
+            \par
+            { \bfseries 二级学科(研究方向): } \l_@@_sub_major_str
+          }
+          {
+            \par
+            { \bfseries 领\qquad{}域: } \l_@@_domain_str
+          }
+        \par
+        { \bfseries 学位类别: } \l_@@_degree_str
+        \bool_if:NTF \l_@@_pro_master
+          {
+            \par
+            { \bfseries 学校导师姓名、职称: }
+            \l_@@_supv_str \enskip \l_@@_supv_t_str
+            \str_if_empty:NF \l_@@_supv_ii_str
+              {
+                \par
+                \phantom { 学校导师姓名、职称: }
+                \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str
+              }
+            \par
+            { \bfseries 企业导师姓名、职称: }
+            \l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str
+          }
+          {
+            \par
+            { \bfseries 指导教师姓名、职称: }
+            \l_@@_supv_str \enskip \l_@@_supv_t_str
+            \str_if_empty:NF \l_@@_supv_ii_str
+              {
+                \par
+                \phantom { 指导教师姓名、职称: }
+                \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str
+              }
+          }
+        \par
+        { \bfseries 学\qquad{}院: } \l_@@_dept_str
+        \par
+        { \bfseries 提交日期: } \@@_zh_submit_date:
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_zh_title_page:}
+% \changes{v1.17.0.0}{2022/05/28}{中文提名页}
+% 中文提名页。
+%    \begin{macrocode}
+\cs_new:Npn \@@_zh_title_page:
+  {
+%    \end{macrocode}
+% 顶部信息。
+%    \begin{macrocode}
+    \vbox:n { }
+    \skip_vertical:n { -7.5pt }
+    \dim_set:Nn \baselineskip { 15.6bp }
+    \vbox:n
+      {
+        \mode_leave_vertical:
+        \@@_cover_iii:nnnn { 4em } { 学校代码 } { 7em } { 10701                }
+        \hfill
+        \@@_cover_iii:nnnn { 3em } { 学号     } { 7em } { \l_@@_student_id_str }
+      }
+    \vbox:n
+      {
+        \mode_leave_vertical:
+        \@@_cover_iii:nnnn { 4em } { 分类号   } { 7em } { \l_@@_clc_str        }
+        \hfill
+        \@@_cover_iii:nnnn { 3em } { 密级     } { 7em } { \l_@@_secret_lv_str  }
+      }
+%    \end{macrocode}
+% 学校名称和论文类型。
+%    \begin{macrocode}
+    \@@_cover_i:nnnnn { 100pt  } { sf } { 1  } { bf } { 西安电子科技大学   }
+    \@@_cover_i:nnnnn { 85pt   } { rm } { -1 } { bf } { \l_@@_gr_type_tl 学位论文 }
+%    \end{macrocode}
+% \changes{v1.18.1.0}{2022/05/30}{不拆分研究生中文提名页标题}
+% 论文标题。
+%    \begin{macrocode}
+    \skip_vertical:n { 87.5pt }
+    \vbox_to_ht:nn { 150pt }
+      {
+        \rmfamily \zihao { 2 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        \l_@@_title_str
+      }
+%    \end{macrocode}
+% 底部信息。
+%    \begin{macrocode}
+    \group_begin:
+      \@@_zh_title_page_info:
+    \group_end:
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{中文提名页}
+% \begin{macro}{\@@_en_title_supv:n}
+% \changes{v1.18.0.0}{2022/05/29}{英文提名页底部导师姓名拼音盒子}
+% 英文提名页底部导师姓名拼音盒子。
+%    \begin{macrocode}
+\dim_new:N \l_@@_supv_dim
+\dim_new:N \l_@@_supv_max_dim
+\box_new:N \l_@@_supv_box
+\cs_new:Npn \@@_en_title_supv:n #1
+  {
+    \rmfamily \zihao { 3 }
+    \dim_zero:N \l_@@_supv_max_dim
+    \hbox_set:Nn \l_@@_supv_box { \l_@@_supv_en_str }
+    \dim_set:Nn \l_@@_supv_dim { \box_wd:N \l_@@_supv_box }
+    \dim_set:Nn \l_@@_supv_max_dim
+      { \dim_max:nn { \l_@@_supv_dim } { \l_@@_supv_max_dim } }
+    \str_if_empty:NF \l_@@_supv_ii_str
+      {
+        \hbox_set:Nn \l_@@_supv_box { \l_@@_supv_ii_en_str }
+        \dim_set:Nn \l_@@_supv_dim { \box_wd:N \l_@@_supv_box }
+        \dim_set:Nn \l_@@_supv_max_dim
+          { \dim_max:nn { \l_@@_supv_dim } { \l_@@_supv_max_dim } }
+      }
+    \bool_if:NT \l_@@_pro_master
+      {
+        \hbox_set:Nn \l_@@_supv_box { \l_@@_supv_ent_en_str }
+        \dim_set:Nn \l_@@_supv_dim { \box_wd:N \l_@@_supv_box }
+        \dim_set:Nn \l_@@_supv_max_dim
+          { \dim_max:nn { \l_@@_supv_dim } { \l_@@_supv_max_dim } }
+      }
+    \hbox_to_wd:nn { \l_@@_supv_max_dim } { #1 \hfil } \quad
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_title_supv_t:n}
+% \changes{v1.18.0.0}{2022/05/29}{英文提名页底部导师英文职称盒子}
+% 英文提名页底部导师英文职称盒子。
+%    \begin{macrocode}
+\dim_new:N \l_@@_supv_t_dim
+\dim_new:N \l_@@_supv_t_max_dim
+\box_new:N \l_@@_supv_t_box
+\cs_new:Npn \@@_en_title_supv_t:n #1
+  {
+    \rmfamily \zihao { 3 }
+    \dim_zero:N \l_@@_supv_t_max_dim
+    \hbox_set:Nn \l_@@_supv_t_box { \l_@@_supv_t_en_str }
+    \dim_set:Nn \l_@@_supv_t_dim { \box_wd:N \l_@@_supv_t_box }
+    \dim_set:Nn \l_@@_supv_t_max_dim
+      { \dim_max:nn { \l_@@_supv_t_dim } { \l_@@_supv_t_max_dim } }
+    \str_if_empty:NF \l_@@_supv_ii_str
+      {
+        \hbox_set:Nn \l_@@_supv_t_box { \l_@@_supv_ii_t_en_str }
+        \dim_set:Nn \l_@@_supv_t_dim { \box_wd:N \l_@@_supv_t_box }
+        \dim_set:Nn \l_@@_supv_t_max_dim
+          { \dim_max:nn { \l_@@_supv_t_dim } { \l_@@_supv_t_max_dim } }
+      }
+    \bool_if:NT \l_@@_pro_master
+      {
+        \hbox_set:Nn \l_@@_supv_t_box { \l_@@_supv_ent_t_en_str }
+        \dim_set:Nn \l_@@_supv_t_dim { \box_wd:N \l_@@_supv_t_box }
+        \dim_set:Nn \l_@@_supv_t_max_dim
+          { \dim_max:nn { \l_@@_supv_t_dim } { \l_@@_supv_t_max_dim } }
+      }
+    \hbox_to_wd:nn { \l_@@_supv_t_max_dim } { #1 \hfil } \quad
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_title_page:}
+% \changes{v1.18.0.0}{2022/05/29}{英文提名页}
+% \changes{v1.26.1.0}{2022/06/07}{修复作者拼音为空无法编译}
+% \changes{v1.26.11.0}{2022/06/17}{修复非专业硕士英文提名页英文一级学科}
+% 英文提名页。
+%    \begin{macrocode}
+\cs_new:Npn \@@_en_title_page:
+  {
+    \vbox:n { }
+    \skip_vertical:n { -3.5pt }
+    \dim_set:Nn \baselineskip { 30pt }
+    \vbox_to_ht:nn { 170pt }
+      {
+        \rmfamily \zihao { 2 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        \l_@@_title_en_str
+      }
+    \vbox_to_ht:nn { 360pt }
+      {
+        \rmfamily \zihao { 3 } \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        A
+        \bool_if:NTF \l_@@_master { ~thesis~ } { ~dissertation~ }
+        submitted~to\\
+        XIDIAN~UNIVERSITY\\
+        in~partial~fulfillment~of~the~requirements\\
+        for~the~degree~of
+        \bool_if:NTF \l_@@_master { ~Master\\ } { ~Doctor~of~Philosophy\\ }
+        in
+        \bool_if:NTF \l_@@_pro_master
+          { ~\l_@@_degree_en_str\\ }
+          { ~\l_@@_major_en_str\\  }
+      }
+    \vbox:n
+      {
+        \rmfamily \zihao { 3 } \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        By\\
+        \l_@@_author_en_str
+        \str_if_empty:NTF \l_@@_author_en_str
+          { \skip_vertical:N \baselineskip }
+          { \\ }
+        Supervisor:~\@@_en_title_supv:n { \l_@@_supv_en_str }
+        Title:~\@@_en_title_supv_t:n { \l_@@_supv_t_en_str } \\
+        \str_if_empty:NF \l_@@_supv_ii_str
+          {
+            \phantom { Supervisor:~ } \@@_en_title_supv:n { \l_@@_supv_ii_en_str }
+            \phantom { Title:~ } \@@_en_title_supv_t:n { \l_@@_supv_ii_t_en_str } \\
+          }
+        \bool_if:NT \l_@@_pro_master
+          {
+            Supervisor:~ \@@_en_title_supv:n { \l_@@_supv_ent_en_str }
+            Title:~ \@@_en_title_supv_t:n { \l_@@_supv_ent_t_en_str } \\
+          }
+        \@@_en_submit_date:
+      }
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{声明页}
+% \begin{macro}{\@@_statement:}
+% \changes{v1.19.0.0}{2022/05/30}{学位论文独创性声明和关于论文使用授权的说明}
+% 学位论文独创性声明和关于论文使用授权的说明。
+%    \begin{macrocode}
+\cs_new:Npn \@@_statement:
+  {
+    \vbox:n { }
+    \skip_vertical:n { -7.5pt }
+    \vbox_to_ht:nn { 60pt }
+      {
+        \rmfamily \zihao { 4 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 20pt }
+        西安电子科技大学\\
+        学位论文独创性(或创新性)声明
+      }
+    \vbox_to_ht:nn { 140pt }
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 20pt }
+        秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指
+        导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢
+        中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包
+        含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一
+        同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
+        \par
+        学位论文若有不实之处,本人承担一切法律责任。
+        \vfil
+      }
+    \vbox_to_ht:nn { 175pt }
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 20pt }
+        本人签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+        \hfill
+        日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+      }
+    \vbox_to_ht:nn { 60pt }
+      {
+        \rmfamily \zihao { 4 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 20pt }
+        西安电子科技大学\\
+        关于论文使用授权的说明
+      }
+    \vbox_to_ht:nn { 140pt }
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 20pt }
+        本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校
+        攻读学位期间论文工作的知识产权属于西安电子科技大学。学校有权保留送交论文
+        的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采用
+        影印、缩印或其它复制手段保存论文。同时本人保证,结合学位论文研究成果完成
+        的论文、发明专利等成果,署名单位为西安电子科技大学。
+        \par
+        保密的学位论文在
+        \str_if_eq:NNTF \l_@@_secret_lv_str { 秘密 }
+          {
+            \str_if_empty:NTF \l_@@_secret_year_str
+              { \@@_uline:n { \skip_horizontal:n { 1.5em } } }
+              { \@@_uline:n { \enskip \l_@@_secret_year_str \enskip } }
+          }
+          { \@@_uline:n { \skip_horizontal:n { 1.5em } } }
+        年解密后适用本授权书。
+        \vfil
+      }
+    \vbox:n
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 40pt }
+        本人签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+        \hfill
+        导师签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+        \par
+        日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+        \hfill
+        日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+      }
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{中英文摘要}
+% \begin{macro}{\@@_zh_abstract_keywords:}
+% \changes{v1.20.0.0}{2022/05/30}{中文摘要和关键词}
+% \changes{v1.28.1.0}{2022/06/18}{添加中文摘要至目录}
+% \changes{v1.28.2.0}{2022/06/18}{修正英文语言下中文摘要标题样式}
+% 中文摘要和关键词。
+%    \begin{macrocode}
+\cs_new:Npn \@@_zh_abstract_keywords:
+  {
+%    \end{macrocode}
+% 中文摘要。
+%    \begin{macrocode}
+    \@@_n_chapter_head_toc:nn { 摘要 } { 摘 { \quad } 要 }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 摘要 } }
+    \group_begin:
+      \dim_set:Nn \parindent { 2 \ccwd }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \file_if_exist_input:n { \l_@@_abstract_zh_tl }
+    \group_end:
+%    \end{macrocode}
+% 中文关键词。
+%    \begin{macrocode}
+    \group_begin:
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \skip_vertical:n { 20pt }
+      \@@_typeout_keywords:nNn
+        { \textbf { 关键词 } : } { \l_@@_keywords_zh_clist } { , }
+    \group_end:
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_abstract_keywords:}
+% \changes{v1.20.0.0}{2022/05/30}{英文摘要和关键词}
+% \changes{v1.28.1.0}{2022/06/18}{添加英文摘要至目录}
+% \changes{v1.28.2.0}{2022/06/18}{修正英文摘要标题样式}
+% \changes{v1.28.3.0}{2022/06/18}{修正目录中英文摘要标题样式}
+% 英文摘要和关键词。
+%    \begin{macrocode}
+\cs_new:Npn \@@_en_abstract_keywords:
+  {
+%    \end{macrocode}
+% 英文摘要。
+%    \begin{macrocode}
+    \@@_n_chapter_head_toc_ii:nn
+      { \textrm { ABSTRACT } } { \centering \rmfamily \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { \textrm { ABSTRACT } } }
+    \group_begin:
+      \dim_set:Nn \parskip { 20pt }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \file_if_exist:nT { \l_@@_abstract_en_tl } { \skip_vertical:n { -20pt } }
+      \file_if_exist_input:n { \l_@@_abstract_en_tl }
+    \group_end:
+%    \end{macrocode}
+% 英文关键词。
+%    \begin{macrocode}
+    \group_begin:
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \skip_vertical:n { 20pt }
+      \@@_typeout_keywords:nNn
+        { \textbf { Keywords } : } { \l_@@_keywords_en_clist } { ,~ }
+    \group_end:
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{图表索引}
+% \begin{macro}{\@@_loft_label_num_width:nN}
+% \changes{v1.21.0.0}{2022/06/01}{计算图表索引编号标签最大宽度}
+% 计算图表索引编号标签最大宽度。
+%    \begin{macrocode}
+\cs_new:Npn \@@_loft_label_num_width:nN #1#2
+  {
+%    \end{macrocode}
+% 读取索引文件。
+%    \begin{macrocode}
+    \tl_clear_new:N \l_@@_loft_tl
+    \file_get:nnN
+      { \jobname.#1 }
+      { \let\do\@makeother \dospecials }
+      \l_@@_loft_tl
+%    \end{macrocode}
+% 使用正则表达式匹配索引编号。
+%    \begin{macrocode}
+    \seq_clear_new:N \l_@@_loft_label_num_seq
+    \cs_generate_variant:Nn \regex_extract_all:nnN { nVN }
+    \str_if_eq:nnTF { #1 } { lof }
+      {
+        \regex_extract_all:nVN
+          { \\contentsline\ \{figure\}\{\\numberline\ \{\K[0-9A-Z\.]+ }
+          \l_@@_loft_tl \l_@@_loft_label_num_seq
+      }
+      {
+        \regex_extract_all:nVN
+          { \\contentsline\ \{table\}\{\\numberline\ \{\K[0-9A-Z\.]+ }
+          \l_@@_loft_tl \l_@@_loft_label_num_seq
+      }
+%    \end{macrocode}
+% 计算所有索引编号的最大宽度。
+%    \begin{macrocode}
+    \dim_zero_new:N \l_@@_loft_label_num_dim
+    \seq_map_inline:Nn \l_@@_loft_label_num_seq
+      {
+        \@@_get_text_width:Nn \l_@@_loft_label_num_dim { ##1 }
+        \dim_set:Nn #2 { \dim_max:nn { \l_@@_loft_label_num_dim } { #2 } }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_list_of_figure:}
+% \changes{v1.21.0.0}{2022/05/31}{插图索引}
+% \changes{v1.28.1.0}{2022/06/18}{添加插图索引至目录}
+% \changes{v1.29.3.0}{2022/06/19}{修正插图索引字号}
+% 插图索引。
+%    \begin{macrocode}
+\cs_new:Npn \@@_list_of_figure:
+  {
+    \@@_n_chapter_head_toc:n
+      { \@@_lang_switch:nn { 插图索引 } { List~of~Figures } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 插图索引 } }
+    \group_begin:
+      \addtocontents { lof } { \vspace { 10pt } }
+      \renewcommand { \addvspace } [1] { }
+%    \end{macrocode}
+% 配置文本标签及宽度。
+%    \begin{macrocode}
+      \tl_set:Nn \cftfigpresnum {  \figurename \space }
+      \dim_zero_new:N \l_@@_lof_label_dim
+      \@@_get_text_width:NV \l_@@_lof_label_dim \cftfigpresnum
+      \dim_set:Nn \cftfignumwidth { \l_@@_lof_label_dim }
+%    \end{macrocode}
+% 配置索引编号标签宽度。
+%    \begin{macrocode}
+      \dim_new:N \l_@@_lof_label_num_max_dim
+      \@@_loft_label_num_width:nN { lof } \l_@@_lof_label_num_max_dim
+      \dim_add:Nn \cftfignumwidth { \l_@@_lof_label_num_max_dim }
+      \dim_add:Nn \cftfignumwidth { .75em }
+      \dim_set:Nn \cftfigindent { 0pt }
+%    \end{macrocode}
+% 排版索引表。
+%    \begin{macrocode}
+      \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt }
+      \@starttoc { lof }
+    \group_end:
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_list_of_table:}
+% \changes{v1.21.0.0}{2022/05/31}{表格索引}
+% \changes{v1.28.1.0}{2022/06/18}{添加表格索引至目录}
+% \changes{v1.29.3.0}{2022/06/19}{修正表格索引字号}
+% 表格索引。
+%    \begin{macrocode}
+\cs_new:Npn \@@_list_of_table:
+  {
+    \@@_n_chapter_head_toc:n
+      { \@@_lang_switch:nn { 表格索引 } { List~of~Tables } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 表格索引 } }
+    \group_begin:
+      \addtocontents { lot } { \vspace { 10pt } }
+      \renewcommand { \addvspace } [1] { }
+%    \end{macrocode}
+% 配置文本标签及宽度。
+%    \begin{macrocode}
+      \tl_set:Nn \cfttabpresnum {  \tablename \space }
+      \dim_zero_new:N \l_@@_lot_label_dim
+      \@@_get_text_width:NV \l_@@_lot_label_dim \cfttabpresnum
+      \dim_set:Nn \cfttabnumwidth { \l_@@_lot_label_dim }
+%    \end{macrocode}
+% 配置索引编号标签宽度。
+%    \begin{macrocode}
+      \dim_new:N \l_@@_lot_label_num_max_dim
+      \@@_loft_label_num_width:nN { lot } \l_@@_lot_label_num_max_dim
+      \dim_add:Nn \cfttabnumwidth { \l_@@_lot_label_num_max_dim }
+      \dim_add:Nn \cfttabnumwidth { .75em }
+      \dim_set:Nn \cfttabindent { 0pt }
+%    \end{macrocode}
+% 排版索引表。
+%    \begin{macrocode}
+      \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt }
+      \@starttoc { lot }
+    \group_end:
+    \cleardoublepage
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{对照表}
+% \begin{macro}{\UseTblrLibrary,\NewTblrTheme}
+% \changes{v1.22.0.0}{2022/06/05}{对照表样式}
+% 对照表样式。
+%    \begin{macrocode}
+\ctex_at_end_preamble:n
+  {
+    \bool_new:N \l_@@_load_tabularray_bool
+    \bool_if:NF \l_@@_customize_los_bool
+      { \bool_set_true:N \l_@@_load_tabularray_bool }
+    \bool_if:NF \l_@@_customize_loa_bool
+      { \bool_set_true:N \l_@@_load_tabularray_bool }
+    \bool_if:NT \l_@@_load_tabularray_bool
+      {
+        \RequirePackage { tabularray }
+        \UseTblrLibrary { functional }
+        \NewTblrTheme { losloatheme }
+          {
+            \DefTblrTemplate { caption-tag   } { default } { }
+            \DefTblrTemplate { caption-sep   } { default } { }
+            \DefTblrTemplate { caption-text  } { default } { }
+            \DefTblrTemplate { conthead-text } { default } { }
+            \DefTblrTemplate { contfoot-text } { default } { }
+          }
+      }
+    \cs_generate_variant:Nn \__tblr_parse_colrow_spec:nn { nV }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_symbols_list:}
+% \changes{v1.22.0.0}{2022/06/05}{符号对照表}
+% \changes{v1.26.2.0}{2022/06/09}{修复符号对照表列格式解析错误}
+% \changes{v1.26.3.0}{2022/06/09}{修复符号对照表文件导入接口}
+% \changes{v1.26.5.0}{2022/06/10}{修复符号对照表空文件标题行错误}
+% \changes{v1.28.1.0}{2022/06/18}{添加符号对照表至目录}
+% \changes{v1.29.1.0}{2022/06/19}{修复符号对照表引起的章节段前段后间距错误}
+% 符号对照表。
+%    \begin{macrocode}
+\cs_new:Npn \@@_symbols_list:
+  {
+    \@@_n_chapter_head_toc:n
+      { \@@_lang_switch:nn { 符号对照表 } { List~of~Symbols } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 符号对照表 } }
+%    \end{macrocode}
+% 是否完全自定义符号对照表。
+%    \begin{macrocode}
+    \bool_if:NTF \l_@@_customize_los_bool
+      { \file_if_exist_input:n { \l_@@_los_str } }
+      {
+%    \end{macrocode}
+% 配置符号对照表标题行。
+%    \begin{macrocode}
+        \tl_new:N \l_@@_los_head_tl
+        \@@_lang_switch:nn
+          { \tl_set:Nn \l_@@_los_head_tl { 符号 & 符号名称 \\        } }
+          { \tl_set:Nn \l_@@_los_head_tl { Notation & Description \\ } }
+%    \end{macrocode}
+% 是否每页均显示符号对照表标题行。
+%    \begin{macrocode}
+        \tl_new:N \l_@@_los_rowhead_tl
+        \bool_if:NTF \l_@@_title_row_los_bool
+          { \tl_set:Nn \l_@@_los_rowhead_tl { 1 } }
+          { \tl_set:Nn \l_@@_los_rowhead_tl { 0 } }
+%    \end{macrocode}
+% 使用\envx{longtblr}环境排版符号对照表。
+%    \begin{macrocode}
+        \tl_new:N \l_@@_los_begin_tblr_tl
+        \tl_set:Nx \l_@@_los_begin_tblr_tl
+          {
+            \exp_not:n
+              {
+                \begin { longtblr }
+                  [
+                    evaluate = \fileIfExistInput,
+                    expand   = \l_@@_los_head_tl,
+                    theme    = losloatheme
+                  ]
+              }
+              {
+                colspec = { \exp_not:V \l_@@_colspec_los_tl },
+                \exp_not:n
+                  {
+                    rowhead = \int_compare:nNnTF
+                                { \value { rowcount } } > { 1 }
+                                { \l_@@_los_rowhead_tl } { 0 },
+                    rows    = { font = \rmfamily \zihao { -4 } },
+                    stretch = 0,
+                    rowsep  = { 3pt },
+                    rows    = { ht = 14pt }
+                  }
+              }
+          }
+        \tl_use:N \l_@@_los_begin_tblr_tl
+          \l_@@_los_head_tl
+          \fileIfExistInput { \l_@@_los_str }
+        \end { longtblr }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_abbreviations_list:}
+% \changes{v1.22.0.0}{2022/06/05}{缩略语对照表}
+% \changes{v1.26.2.0}{2022/06/09}{修复缩略语对照表列格式解析错误}
+% \changes{v1.26.3.0}{2022/06/09}{修复缩略语对照表文件导入接口}
+% \changes{v1.26.5.0}{2022/06/10}{修复缩略语对照表空文件标题行错误}
+% \changes{v1.28.1.0}{2022/06/18}{添加缩略语对照表至目录}
+% \changes{v1.29.1.0}{2022/06/19}{修复缩略语对照表引起的章节段前段后间距错误}
+% 缩略语对照表。
+%    \begin{macrocode}
+\cs_new:Npn \@@_abbreviations_list:
+  {
+    \@@_n_chapter_head_toc:n
+      { \@@_lang_switch:nn { 缩略语对照表 } { List~of~Abbreviations } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 缩略语对照表 } }
+%    \end{macrocode}
+% 是否完全自定义缩略语对照表。
+%    \begin{macrocode}
+    \bool_if:NTF \l_@@_customize_loa_bool
+      { \file_if_exist_input:n { \l_@@_loa_str } }
+      {
+%    \end{macrocode}
+% 配置缩略语对照表标题行。
+%    \begin{macrocode}
+        \tl_new:N \l_@@_loa_head_tl
+        \@@_lang_switch:nn
+          {
+            \tl_set:Nn \l_@@_loa_head_tl
+              { 缩略语 & 英文全称 & 中文对照 \\ }
+          }
+          {
+            \tl_set:Nn \l_@@_loa_head_tl
+              { Abbreviation & English~Full~Name & Chinese~Full~Name \\ }
+          }
+%    \end{macrocode}
+% 是否每页均显示缩略语对照表标题行。
+%    \begin{macrocode}
+        \tl_new:N \l_@@_loa_rowhead_tl
+        \bool_if:NTF \l_@@_title_row_loa_bool
+          { \tl_set:Nn \l_@@_loa_rowhead_tl { 1 } }
+          { \tl_set:Nn \l_@@_loa_rowhead_tl { 0 } }
+%    \end{macrocode}
+% 使用\envx{longtblr}环境排版缩略语对照表。
+%    \begin{macrocode}
+        \tl_new:N \l_@@_loa_begin_tblr_tl
+        \tl_set:Nx \l_@@_loa_begin_tblr_tl
+          {
+            \exp_not:n
+              {
+                \begin { longtblr }
+                  [
+                    evaluate = \fileIfExistInput,
+                    expand   = \l_@@_loa_head_tl,
+                    theme    = losloatheme
+                  ]
+              }
+              {
+                colspec = { \exp_not:V \l_@@_colspec_loa_tl },
+                \exp_not:n
+                  {
+                    rowhead = \int_compare:nNnTF
+                                { \value { rowcount } } > { 1 }
+                                { \l_@@_loa_rowhead_tl } { 0 },
+                    rows    = { font = \rmfamily \zihao { -4 } },
+                    stretch = 0,
+                    rowsep  = { 3pt },
+                    rows    = { ht = 14pt }
+                  }
+              }
+          }
+        \tl_use:N \l_@@_loa_begin_tblr_tl
+          \l_@@_loa_head_tl
+          \fileIfExistInput { \l_@@_loa_str }
+        \end { longtblr }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_add_zh_toc:nn}
+% \changes{v1.30.0.0}{2022/06/20}{添加章节至中文目录}
+%    \begin{macrocode}
+\cs_new:Npn \@@_add_zh_toc:nn #1#2
+  {
+    \str_if_eq:NNTF { #1 } { chapter }
+      { \phantomsection \addcontentsline { zh.toc } { #1 } { \@@_sf_family: #2 } }
+      { \phantomsection \addcontentsline { zh.toc } { #1 } { #2 } }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \paragraph{\tn{frontmatter}}
 % \begin{macro}{\frontmatter}
 % \changes{v1.5.0.0}{2022/05/01}{设置封面页边距}
 % \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
-% 排版正文前部分。
+% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面}
+% 排版前言部分。
 %    \begin{macrocode}
 \renewcommand { \frontmatter }
   {
     \loadgeometry { cover }
     \pagestyle    { empty }
+    \dim_set:Nn \parindent { 0pt }
+    \dim_set:Nn \baselineskip { 20pt }
+    \@@_add_bookmark:n { \@@_lang_switch:nn { 封面 } { Cover } }
+%    \end{macrocode}
+% \changes{v1.18.1.0}{2022/05/30}{不拆分研究生封面标题}
+% 封面标题。
+%    \begin{macrocode}
+    \vbox:n { }
+    \skip_vertical:n { 435pt }
+    \vbox_to_ht:nn { 120pt }
+      {
+        \rmfamily \zihao { 2 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        \l_@@_title_str
+      }
+%    \end{macrocode}
+% 封面底部作者信息。
+%    \begin{macrocode}
+    \@@_cover_author_info:
+    \cleardoublepage
+%    \end{macrocode}
+% 中英文提名页。
+%    \begin{macrocode}
+    \@@_lang_switch:nn
+      { \@@_zh_title_page: \@@_en_title_page: }
+      { \@@_en_title_page: \@@_zh_title_page: }
+%    \end{macrocode}
+% 声明页。
+%    \begin{macrocode}
+    \@@_statement:
+%    \end{macrocode}
+% 更改页面样式。
+%    \begin{macrocode}
     \@@_load_main_geometry:
     \pagestyle     { front }
     \pagenumbering { Roman }
+    \dim_set:Nn \baselineskip { 20pt }
+%    \end{macrocode}
+% 中英文摘要。
+%    \begin{macrocode}
+    \@@_lang_switch:nn
+      { \@@_zh_abstract_keywords: \@@_en_abstract_keywords: }
+      { \@@_en_abstract_keywords: \@@_zh_abstract_keywords: }
+%    \end{macrocode}
+% 图表索引。
+%    \begin{macrocode}
+    \@@_list_of_figure:
+    \@@_list_of_table:
+%    \end{macrocode}
+% 符号对照表和缩略语对照表。
+%    \begin{macrocode}
+    \@@_symbols_list:
+    \@@_abbreviations_list:
+%    \end{macrocode}
+% \changes{v1.23.0.0}{2022/06/05}{研究生学位论文目录}
+% \changes{v1.28.0.0}{2022/06/18}{设置研究生学位论文目录深度}
+% 目录。
+%    \begin{macrocode}
+    \setcounter { tocdepth } { 2 }
+    \@@_n_chapter_head:nn
+      { \@@_lang_switch:nn { 目录            } { Contents } }
+      { \@@_lang_switch:nn { 目 { \quad } 录 } { Contents } }
+    \@starttoc { toc }
+    \cleardoublepage
+%    \end{macrocode}
+% \changes{v1.30.0.0}{2022/06/20}{英文研究生学位论文中文目录}
+% 英文研究生学位论文中文目录。
+%    \begin{macrocode}
+    \@@_lang_switch:nn { }
+      {
+        \setcounter { tocdepth } { 2 }
+        \@@_n_chapter_head:nn { 目录 } { \@@_sf_family: 目 { \quad } 录 }
+        \@starttoc { zh.toc }
+        \cleardoublepage
+      }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -3867,7 +5995,7 @@
 %</xdupgthesis>
 %<*xduugthesis>
 %    \end{macrocode}
-% \subsection{正文}
+% \subsection{正文部分}
 % \subsubsection{本科生}
 % \begin{macro}{\mainmatter}
 % \changes{v0.8.0.0}{2022/04/12}{支持对称页边距}
@@ -3883,8 +6011,62 @@
   }
 %    \end{macrocode}
 % \end{macro}
+%    \begin{macrocode}
+%</xduugthesis>
+%<*xdupgthesis>
+%    \end{macrocode}
+% \subsubsection{研究生}
+% \begin{macro}{\mainmatter}
+% \changes{v1.5.0.0}{2022/05/01}{设置正文页边距}
+% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
+% \changes{v1.23.1.0}{2022/06/05}{设置正文字号和行间距}
+% 排版正文部分。
+%    \begin{macrocode}
+\renewcommand { \mainmatter }
+  {
+    \@@_load_main_geometry:
+    \pagestyle     { plain  }
+    \pagenumbering { arabic }
+    \dim_set:Nn \parindent { 2 \ccwd }
+    \rmfamily \zihao { -4 }
+    \dim_set:Nn \baselineskip { 20pt }
+%    \end{macrocode}
+% \changes{v1.30.0.0}{2022/06/20}{英文研究生学位论文目录中正文一二三级中英双语标题}
+% 英文研究生学位论文目录中正文一二三级中英双语标题。
+%    \begin{macrocode}
+    \@@_lang_switch:nn { }
+      {
+        \cs_new_eq:NN \@@_org_chapter:n \chapter
+        \RenewDocumentCommand { \chapter } { m m }
+          {
+            \@@_org_chapter:n { ##1 }
+            \@@_add_zh_toc:nn { chapter }
+              { \numberline { 第 \chinese { chapter } 章 \hspace { .3em } } ##2 }
+          }
+        \cs_new_eq:NN \@@_org_section:n \section
+        \RenewDocumentCommand { \section } { m m }
+          {
+            \@@_org_section:n { ##1 }
+            \@@_add_zh_toc:nn { section } { \numberline { \thesection } ##2 }
+          }
+        \cs_new_eq:NN \@@_org_subsection:n \subsection
+        \RenewDocumentCommand { \subsection } { m m }
+          {
+            \@@_org_subsection:n { ##1 }
+            \@@_add_zh_toc:nn { subsection } { \numberline { \thesubsection } ##2 }
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
+%</xdupgthesis>
+%<*xduugthesis>
+%    \end{macrocode}
+% \subsection{后记部分}
+% \subsubsection{本科生}
 % \begin{macro}{\backmatter}
-% 排版正文后部分。
+% 排版后记部分。
 %    \begin{macrocode}
 \renewcommand { \backmatter }
   {
@@ -3895,11 +6077,11 @@
     \@@_n_chapter_head_toc:nn
       { \@@_lang_switch:nn { 致谢            } { Acknowledgements } }
       { \@@_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } }
-    {
+    \group_begin:
       \dim_set:Nn \parindent { 2 \ccwd }
       \rmfamily \zihao { -4 }
       \file_if_exist_input:n { \l_@@_ack_tl }
-    }
+    \group_end:
 %    \end{macrocode}
 % 参考文献。
 % \changes{v0.2.1.0}{2022/04/04}{参考文献添加至目录}
@@ -3909,7 +6091,7 @@
 %    \begin{macrocode}
     \cs_set:Npn \bibname { \@@_lang_switch:nn { 参考文献 } { Bibliography } }
     \@@_n_chapter_head_toc:n { \bibname }
-    {
+    \group_begin:
       \tl_if_eq:NnTF \l_@@_bib_tool_tl { bibtex }
         {
           \cs_set:Npn \bibsection { }
@@ -3921,31 +6103,158 @@
           \cs_set:Npn \bibfont { \@@_rm_family: \zihao { 5 } }
           \printbibliography
         }
-    }
+    \group_end:
   }
 %    \end{macrocode}
 % \end{macro}
 %    \begin{macrocode}
 %</xduugthesis>
-%    \end{macrocode}
-%    \begin{macrocode}
 %<*xdupgthesis>
 %    \end{macrocode}
 % \subsubsection{研究生}
-% \begin{macro}{\mainmatter}
-% \changes{v1.5.0.0}{2022/05/01}{设置正文页边距}
-% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
-% 排版正文部分。
+% \begin{macro}{\RequirePackage,\newenvironment}
+% \changes{v1.26.0.0}{2022/06/07}{作者简介样式}
+% 作者简介样式。
 %    \begin{macrocode}
-\renewcommand { \mainmatter }
+\ctex_at_end_preamble:n
   {
-    \@@_load_main_geometry:
-    \pagestyle     { plain  }
-    \pagenumbering { arabic }
+%    \end{macrocode}
+% 计算列表和表格缩进距离。
+%    \begin{macrocode}
+      \dim_new:N \l_@@_bio_indent_dim
+      \box_new:N \l_@@_bio_indent_box
+      \hbox_set:Nn \l_@@_bio_indent_box { \rmfamily \zihao { -3 } \bfseries 1. \quad}
+      \dim_set:Nn \l_@@_bio_indent_dim { \box_wd:N \l_@@_bio_indent_box }
+%    \end{macrocode}
+% 定义教育背景表格环境。
+%    \begin{macrocode}
+    \bool_if:NF \l_@@_customize_edubg_bool
+      {
+        \RequirePackage { tabularray }
+        \newenvironment { edubg }
+          {
+            \dim_set:Nn \parindent { 0pt }
+            \begin { tblr }
+              {
+                colspec = { @{ \skip_horizontal:N \l_@@_bio_indent_dim } lX @{ } },
+                rows    = { font = \zihao { -4 } \dim_set:Nn \baselineskip { 20pt } }
+              }
+          }
+          {
+            \end { tblr }
+            \dim_set:Nn \parindent { 2 \ccwd }
+          }
+      }
+%    \end{macrocode}
+% 定义研究成果列表。
+%    \begin{macrocode}
+    \bool_if:NF \l_@@_customize_resresult_bool
+      {
+        \RequirePackage { enumitem }
+        \SetEnumitemKey { resresult }
+          {
+            label   = {[}\arabic*{]},
+            left    = \l_@@_bio_indent_dim,
+            align   = right,
+            parsep  = 0pt,
+            itemsep = 0pt,
+            topsep  = 0pt
+          }
+        \newenvironment { resresult }
+          { \begin { enumerate } [ resresult ] }
+          { \end { enumerate } }
+      }
   }
 %    \end{macrocode}
 % \end{macro}
+% \begin{macro}{\backmatter}
+% 排版后记部分。
 %    \begin{macrocode}
+\renewcommand { \backmatter }
+  {
+%    \end{macrocode}
+% \changes{v1.30.0.0}{2022/06/20}{恢复英文研究生学位论文后记一二三级标题命令}
+% 恢复英文研究生学位论文后记一二三级标题命令。
+%    \begin{macrocode}
+    \@@_lang_switch:nn { }
+      {
+        \cs_set_eq:NN \chapter \@@_org_chapter:n
+        \cs_set_eq:NN \section \@@_org_section:n
+        \cs_set_eq:NN \subsection \@@_org_subsection:n
+      }
+%    \end{macrocode}
+% \changes{v1.25.0.0}{2022/06/05}{研究生学位论文参考文献}
+% 参考文献。
+%    \begin{macrocode}
+    \cs_set:Npn \bibname { \@@_lang_switch:nn { 参考文献 } { Bibliography } }
+    \@@_n_chapter_head_toc:n { \bibname }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 参考文献 } }
+    \group_begin:
+      \tl_if_eq:NnTF \l_@@_bib_tool_tl { bibtex }
+        {
+          \cs_set:Npn \bibsection { }
+          \rmfamily \zihao { 5 }
+          \dim_set:Nn \baselineskip { 20pt }
+          \bibliography { \l_@@_bib_file_clist }
+        }
+        {
+          \defbibheading { bibliography } [ ] { }
+          \cs_set:Npn \bibfont
+            {
+              \rmfamily \zihao { 5 }
+              \dim_set:Nn \baselineskip { 20pt }
+            }
+          \printbibliography
+        }
+    \group_end:
+%    \end{macrocode}
+% \changes{v1.24.0.0}{2022/06/05}{研究生学位论文致谢}
+% 致谢。
+%    \begin{macrocode}
+    \@@_n_chapter_head_toc:nn
+      { \@@_lang_switch:nn { 致谢            } { Acknowledgements } }
+      { \@@_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 致谢 } }
+    \group_begin:
+      \dim_set:Nn \parindent { 2 \ccwd }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \file_if_exist_input:n { \l_@@_ack_tl }
+    \group_end:
+%    \end{macrocode}
+% \changes{v1.26.0.0}{2022/06/07}{研究生学位论文作者简介}
+% \changes{v1.28.4.0}{2022/06/18}{移除研究生学位论文目录中作者简介二三级标题}
+% 作者简介。
+%    \begin{macrocode}
+    \@@_n_chapter_head_toc:n
+      { \@@_lang_switch:nn { 作者简介 } { Author~Biography } }
+    \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 作者简介 } }
+    \group_begin:
+      \dim_set:Nn \parindent { 2 \ccwd }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+%    \end{macrocode}
+% 配置作者简介部分标题样式。
+%    \begin{macrocode}
+      \ctexset
+        {
+            section    / number = { \arabic { section } . },
+            section    / format = { \rmfamily \zihao { -3 } \bfseries \raggedright },
+            subsection / number = { \arabic { section } . \arabic { subsection } },
+            subsection / format = { \rmfamily \zihao { 4 } \bfseries \raggedright },
+            subsection / indent = { \l_@@_bio_indent_dim }
+        }
+      \setcounter { section } { 0 }
+      \addtocontents { toc } { \setcounter { tocdepth } { 0 } }
+%    \end{macrocode}
+% 作者简介文件。
+%    \begin{macrocode}
+      \file_if_exist_input:n { \l_@@_bio_str }
+    \group_end:
+  }
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
 %</xdupgthesis>
 %    \end{macrocode}
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty	2022-06-21 20:20:04 UTC (rev 63680)
+++ trunk/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty	2022-06-21 20:20:17 UTC (rev 63681)
@@ -28,7 +28,7 @@
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
 \ProvidesExplPackage{xdufont}
-  {2022/05/15}{1.15.0.1}
+  {2022/06/21}{2.0.0.0}
   {Xidian University Font package}
 \RequirePackage { xparse, l3keys2e }
 \PassOptionsToPackage { quiet } { xeCJK }
@@ -290,9 +290,9 @@
 \cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5
   {
     \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
-      { \setmonofont{ #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ]}
+      { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] }
       {
-        \setmonofont{ #2 }
+        \setmonofont { #2 }
           [
             \__xdu_font_path:
             \__xdu_set_latin_scale:
@@ -318,7 +318,7 @@
   }
 \cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4
   {
-    \setmonofont{ #1 }
+    \setmonofont { #1 }
       [
         \__xdu_set_latin_scale:
         \__xdu_off_latin_ligatures:
@@ -391,9 +391,9 @@
 \cs_new:Npn \__xdu_load_math_font_cambria:
   {
     \__xdu_load_unicode_math_pkg:
-    \str_if_eq:NNTF { \l__xdu_font_type_tl} { font}
-      { \setmathfont { Cambria~Math} }
-      { \setmathfont { cambria.ttc} [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
+    \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+      { \setmathfont { Cambria~Math } }
+      { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
   }
 \cs_new:Npn \__xdu_define_math_font:nn #1#2
   {

Modified: trunk/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls	2022-06-21 20:20:04 UTC (rev 63680)
+++ trunk/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls	2022-06-21 20:20:17 UTC (rev 63681)
@@ -28,7 +28,7 @@
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
 \ProvidesExplClass{xdupgthesis}
-  {2022/05/15}{1.15.0.1}
+  {2022/06/21}{2.0.0.0}
   {Xidian University Postgraduate Thesis document class}
 \RequirePackage { xparse, l3keys2e }
 \PassOptionsToPackage { quiet } { xeCJK }
@@ -303,9 +303,9 @@
 \cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5
   {
     \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
-      { \setmonofont{ #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ]}
+      { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] }
       {
-        \setmonofont{ #2 }
+        \setmonofont { #2 }
           [
             \__xdu_font_path:
             \__xdu_set_latin_scale:
@@ -331,7 +331,7 @@
   }
 \cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4
   {
-    \setmonofont{ #1 }
+    \setmonofont { #1 }
       [
         \__xdu_set_latin_scale:
         \__xdu_off_latin_ligatures:
@@ -404,9 +404,9 @@
 \cs_new:Npn \__xdu_load_math_font_cambria:
   {
     \__xdu_load_unicode_math_pkg:
-    \str_if_eq:NNTF { \l__xdu_font_type_tl} { font}
-      { \setmathfont { Cambria~Math} }
-      { \setmathfont { cambria.ttc} [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
+    \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+      { \setmathfont { Cambria~Math } }
+      { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
   }
 \cs_new:Npn \__xdu_define_math_font:nn #1#2
   {
@@ -460,7 +460,7 @@
 \str_new:N \l__xdu_dept_str
 \str_new:N \l__xdu_major_str
 \str_new:N \l__xdu_author_str
-\str_new:N \l__xdu_supv_str
+\clist_new:N \l__xdu_supv_clist
 \str_new:N \l__xdu_supv_ent_str
 \str_new:N \l__xdu_student_id_str
 \tl_new:N \l__xdu_abstract_zh_tl
@@ -467,6 +467,7 @@
 \tl_new:N \l__xdu_abstract_en_tl
 \clist_new:N \l__xdu_keywords_zh_clist
 \clist_new:N \l__xdu_keywords_en_clist
+\clist_new:N \l__xdu_bib_file_clist
 \tl_new:N \l__xdu_ack_tl
 \keys_define:nn { xdu / info }
   {
@@ -474,7 +475,7 @@
     department .tl_set:N = \l__xdu_dept_str,
     major .tl_set:N = \l__xdu_major_str,
     author .tl_set:N = \l__xdu_author_str,
-    supervisor .tl_set:N = \l__xdu_supv_str,
+    supervisor .clist_set:N = \l__xdu_supv_clist,
     supervisor-enterprise .tl_set:N = \l__xdu_supv_ent_str,
     student-id .tl_set:N = \l__xdu_student_id_str,
     abstract .tl_set:N = \l__xdu_abstract_zh_tl,
@@ -481,6 +482,7 @@
     abstract* .tl_set:N = \l__xdu_abstract_en_tl,
     keywords .clist_set:N = \l__xdu_keywords_zh_clist,
     keywords* .clist_set:N = \l__xdu_keywords_en_clist,
+    bib-resource .clist_set:N = \l__xdu_bib_file_clist,
     acknowledgements .tl_set:N = \l__xdu_ack_tl
   }
 \keys_set:nn { xdu }
@@ -496,17 +498,25 @@
     info / abstract*             = { },
     info / keywords              = { },
     info / keywords*             = { },
+    info / bib-resource          = { },
     info / acknowledgements      = { }
   }
+\str_new:N \l__xdu_supv_str
+\str_new:N \l__xdu_supv_ii_str
+\ctex_at_end_preamble:n
+  {
+    \str_set:Nx \l__xdu_supv_str    { \clist_item:Nn \l__xdu_supv_clist { 1 } }
+    \str_set:Nx \l__xdu_supv_ii_str { \clist_item:Nn \l__xdu_supv_clist { 2 } }
+  }
 \tl_new:N \l__xdu_gr_type_tl
 \tl_new:N \l__xdu_degree_type_tl
 \str_new:N \l__xdu_degree_str
 \str_new:N \l__xdu_degree_en_str
 \str_new:N \l__xdu_author_en_str
-\str_new:N \l__xdu_supv_en_str
+\clist_new:N \l__xdu_supv_en_clist
 \str_new:N \l__xdu_supv_ent_en_str
-\str_new:N \l__xdu_supv_t_str
-\str_new:N \l__xdu_supv_t_en_str
+\clist_new:N \l__xdu_supv_t_clist
+\clist_new:N \l__xdu_supv_t_en_clist
 \str_new:N \l__xdu_supv_ent_t_str
 \str_new:N \l__xdu_supv_ent_t_en_str
 \str_new:N \l__xdu_title_en_str
@@ -515,7 +525,11 @@
 \str_new:N \l__xdu_domain_str
 \str_new:N \l__xdu_clc_str
 \str_new:N \l__xdu_secret_lv_str
+\str_new:N \l__xdu_secret_year_str
 \str_new:N \l__xdu_submit_date_str
+\str_new:N \l__xdu_los_str
+\str_new:N \l__xdu_loa_str
+\str_new:N \l__xdu_bio_str
 \keys_define:nn { xdu / info }
   {
     graduate-type .choices:nn = { 硕士, 博士 }
@@ -525,10 +539,10 @@
     degree .tl_set:N = \l__xdu_degree_str,
     degree* .tl_set:N = \l__xdu_degree_en_str,
     author* .tl_set:N = \l__xdu_author_en_str,
-    supervisor* .tl_set:N = \l__xdu_supv_en_str,
+    supervisor* .clist_set:N = \l__xdu_supv_en_clist,
     supervisor-enterprise* .tl_set:N = \l__xdu_supv_ent_en_str,
-    supervisor-title .tl_set:N = \l__xdu_supv_t_str,
-    supervisor-title* .tl_set:N = \l__xdu_supv_t_en_str,
+    supervisor-title .clist_set:N = \l__xdu_supv_t_clist,
+    supervisor-title* .clist_set:N = \l__xdu_supv_t_en_clist,
     supervisor-enterprise-title .tl_set:N = \l__xdu_supv_ent_t_str,
     supervisor-enterprise-title* .tl_set:N = \l__xdu_supv_ent_t_en_str,
     title* .tl_set:N = \l__xdu_title_en_str,
@@ -538,7 +552,11 @@
     clc .tl_set:N = \l__xdu_clc_str,
     secret-level .choices:nn = { 秘密, 公开 }
       { \tl_set_eq:NN \l__xdu_secret_lv_str \l_keys_choice_tl },
-    submit-date .tl_set:N = \l__xdu_submit_date_str
+    secret-year .tl_set:N = \l__xdu_secret_year_str,
+    submit-date .tl_set:N = \l__xdu_submit_date_str,
+    los .tl_set:N = \l__xdu_los_str,
+    loa .tl_set:N = \l__xdu_loa_str,
+    bio .tl_set:N = \l__xdu_bio_str
   }
 \keys_set:nn { xdu }
   {
@@ -559,12 +577,41 @@
     info / domain                       = { },
     info / clc                          = { },
     info / secret-level                 = { 公开 },
-    info / submit-date                  = { }
+    info / secret-year                  = { },
+    info / submit-date                  = { },
+    info / los                          = { },
+    info / loa                          = { },
+    info / bio                          = { }
   }
+\str_new:N \l__xdu_supv_en_str
+\str_new:N \l__xdu_supv_ii_en_str
+\str_new:N \l__xdu_supv_t_str
+\str_new:N \l__xdu_supv_ii_t_str
+\str_new:N \l__xdu_supv_t_en_str
+\str_new:N \l__xdu_supv_ii_t_en_str
+\ctex_at_end_preamble:n
+  {
+    \str_set:Nx \l__xdu_supv_en_str
+      { \clist_item:Nn \l__xdu_supv_en_clist   { 1 } }
+    \str_set:Nx \l__xdu_supv_ii_en_str
+      { \clist_item:Nn \l__xdu_supv_en_clist   { 2 } }
+    \str_set:Nx \l__xdu_supv_t_str
+      { \clist_item:Nn \l__xdu_supv_t_clist    { 1 } }
+    \str_set:Nx \l__xdu_supv_ii_t_str
+      { \clist_item:Nn \l__xdu_supv_t_clist    { 2 } }
+    \str_set:Nx \l__xdu_supv_t_en_str
+      { \clist_item:Nn \l__xdu_supv_t_en_clist { 1 } }
+    \str_set:Nx \l__xdu_supv_ii_t_en_str
+      { \clist_item:Nn \l__xdu_supv_t_en_clist { 2 } }
+  }
+\cs_set:Npn \figurename { \__xdu_lang_switch:nn { 图 } { Figure } }
+\cs_new_eq:NN \figname \figurename
+\cs_set:Npn \tablename  { \__xdu_lang_switch:nn { 表 } { Table  } }
+\cs_new_eq:NN \tabname \tablename
 \bool_new:N \l__xdu_en_cjk_font_bool
 \tl_new:N \l__xdu_lang_tl
 \tl_new:N \l__xdu_bib_tool_tl
-\clist_new:N \l__xdu_bib_file_clist
+\tl_new:N \l__xdu_biblatex_option_tl
 \tl_new:N \l__xdu_ref_add_space
 \tl_new:N \l__xdu_cap_label_sep_tl
 \bool_new:N \l__xdu_tab_small_bool
@@ -586,7 +633,7 @@
       { \tl_set_eq:NN \l__xdu_lang_tl \l_keys_choice_tl },
     bib-backend .choices:nn = { bibtex, biblatex }
       { \tl_set_eq:NN \l__xdu_bib_tool_tl \l_keys_choice_tl },
-    bib-resource .clist_set:N = \l__xdu_bib_file_clist,
+    biblatex-option .tl_set:N = \l__xdu_biblatex_option_tl,
     ref-add-space .bool_set:N = \l__xdu_ref_add_space,
     caption-label-sep .tl_set:N = \l__xdu_cap_label_sep_tl,
     table-small-font .bool_set:N = \l__xdu_tab_small_bool,
@@ -607,7 +654,7 @@
     style / en-cjk-font          = false,
     style / language             = zh,
     style / bib-backend          = biblatex,
-    style / bib-resource         = { },
+    style / biblatex-option      = { },
     style / ref-add-space        = false,
     style / caption-label-sep    = { 0.75em },
     style / table-small-font     = true,
@@ -615,8 +662,44 @@
     style / before-skip          = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt },
     style / after-skip           = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt },
     style / symmetric-margin     = false,
-    style / page-vertical-align  = {顶部对齐}
+    style / page-vertical-align  = { 顶部对齐 }
   }
+\bool_new:N \l__xdu_customize_los_bool
+\bool_new:N \l__xdu_customize_loa_bool
+\tl_new:N \l__xdu_colspec_los_tl
+\tl_new:N \l__xdu_colspec_loa_tl
+\bool_new:N \l__xdu_title_row_los_bool
+\bool_new:N \l__xdu_title_row_loa_bool
+\keys_define:nn { xdu / style }
+  {
+    customize-los .bool_set:N = \l__xdu_customize_los_bool,
+    customize-loa .bool_set:N = \l__xdu_customize_loa_bool,
+    colspec-los .tl_set:N = \l__xdu_colspec_los_tl,
+    colspec-loa .tl_set:N = \l__xdu_colspec_loa_tl,
+    title-row-los .bool_set:N = \l__xdu_title_row_los_bool,
+    title-row-loa .bool_set:N = \l__xdu_title_row_loa_bool
+  }
+\keys_set:nn { xdu }
+  {
+    style / customize-los = { true               },
+    style / customize-loa = { true               },
+    style / colspec-los   = { Q[l,m]X[l,m]       },
+    style / colspec-loa   = { Q[l,m]X[l,m]X[l,m] },
+    style / title-row-los = { false              },
+    style / title-row-loa = { false              }
+  }
+\bool_new:N \l__xdu_customize_edubg_bool
+\bool_new:N \l__xdu_customize_resresult_bool
+\keys_define:nn { xdu / style }
+  {
+    customize-edubg .bool_set:N = \l__xdu_customize_edubg_bool,
+    customize-resresult .bool_set:N = \l__xdu_customize_resresult_bool
+  }
+\keys_set:nn { xdu }
+  {
+    style / customize-edubg     = { true },
+    style / customize-resresult = { true }
+  }
 \NewDocumentCommand \xdusetup { m }
   { \keys_set:nn { xdu } { #1 } }
 \keys_define:nn { xdu }
@@ -664,6 +747,20 @@
     \str_set_eq:NN \l__xdu_pure_title_str \l__xdu_title_str
     \str_remove_all:Nn \l__xdu_pure_title_str { \\ }
   }
+\cs_new_protected:Npn \__xdu_split_title:Nn #1#2
+  {
+    \seq_new:N \l__xdu_title_seq
+    \tl_if_in:nnTF { #2 } { \\ }
+      {
+        \seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 }
+        \clist_set_from_seq:NN #1 \l__xdu_title_seq
+      }
+      {
+        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1  } { 14 } }
+        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
+      }
+  }
+\cs_generate_variant:Nn \__xdu_split_title:Nn { NV }
 \cs_new:Npn \__xdu_uline:n #1
   { \CJKunderline [ thickness = 0.5pt ] { #1 } }
 \cs_new:Npn \__xdu_tl_set_if_empty:Nn #1#2
@@ -691,10 +788,10 @@
   }
 \cs_new:Npn \__xdu_n_chapter_head_ii:nn #1#2
   {
-    {
+    \group_begin:
       \ctexset { chapter / format = { #2 } }
       \__xdu_n_chapter_head:n { #1 }
-    }
+    \group_end:
   }
 \cs_new:Npn \__xdu_n_chapter_head:nn #1#2
   {
@@ -704,10 +801,10 @@
   }
 \cs_new:Npn \__xdu_n_chapter_head_ii:nnn #1#2#3
   {
-    {
+    \group_begin:
       \ctexset { chapter / format = { #3 } }
       \__xdu_n_chapter_head:nn { #1 } { #2 }
-    }
+    \group_end:
   }
 \cs_new:Npn \__xdu_n_chapter_head_toc:n #1
   {
@@ -721,13 +818,20 @@
     \chapter* { #2 }
     \markboth { #1 } { }
   }
+\cs_new:Npn \__xdu_n_chapter_head_toc_ii:nn #1#2
+  {
+    \group_begin:
+      \ctexset { chapter / format = { #2 } }
+      \__xdu_n_chapter_head_toc:n { #1 }
+    \group_end:
+  }
 \cs_new:Npn \__xdu_typeout_keywords:nNn #1#2#3
   {
-    \str_clear_new:N \l__xdu_keywords_label_str
-    \str_set:Nn \l__xdu_keywords_label_str { #1 }
+    \tl_clear_new:N \l__xdu_keywords_label_str
+    \tl_set:Nn \l__xdu_keywords_label_tl { #1 }
     \dim_zero_new:N \l__xdu_keywords_label_dim
-    \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_str
-    \begin { list } { \l__xdu_keywords_label_str }
+    \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_tl
+    \begin { list } { \l__xdu_keywords_label_tl }
       {
         \labelwidth  \l__xdu_keywords_label_dim
         \labelsep    \c_zero_dim
@@ -737,6 +841,14 @@
       \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 }
     \end { list }
   }
+\dim_new:N \l__xdu_str_dim
+\box_new:N \l__xdu_str_box
+\cs_new:Npn \__xdu_str_max_dim:Nn #1#2
+  {
+    \hbox_set:Nn \l__xdu_str_box { #2 }
+    \dim_set:Nn \l__xdu_str_dim { \box_wd:N \l__xdu_str_box }
+    \dim_set:Nn #1  { \dim_max:nn { \l__xdu_str_dim } { #1 } }
+  }
 \NewDocumentCommand \noauxwrite { m }
   {
     \if at filesw
@@ -749,29 +861,31 @@
   }
 \newgeometry
   {
-    top           = 3cm,
+    top           = 3.14cm,
     bottom        = 2.5cm,
     inner         = 2.5cm,
     outer         = 2.5cm,
     bindingoffset = 0.5cm,
-    head          = 2cm,
+    headheight    = 20pt,
+    headsep       = 10pt,
     foot          = 0.75cm
   }
 \savegeometry { main }
 \newgeometry
   {
-    top    = 3cm,
-    bottom = 2.5cm,
-    inner  = 2.75cm,
-    outer  = 2.75cm,
-    head   = 2cm,
-    foot   = 0.75cm
+    top        = 3.14cm,
+    bottom     = 2.5cm,
+    inner      = 2.75cm,
+    outer      = 2.75cm,
+    headheight = 20pt,
+    headsep    = 10pt,
+    foot       = 0.75cm
   }
 \savegeometry { main-sym }
 \newgeometry
   {
     top    = 3cm,
-    bottom = 2cm,
+    bottom = 1cm,
     inner  = 3cm,
     outer  = 2.5cm
   }
@@ -818,6 +932,8 @@
     \cs_set:Npn \headrulewidth { 0.5pt }
     \cs_set:Npn \headrule
       {
+        \hrule \@height 0pt
+        \skip_vertical:N 2pt
         \hrule \@height \headrulewidth
         \skip_vertical:N \headrulewidth
         \hrule \@height \headrulewidth
@@ -836,6 +952,108 @@
       { \raggedbottom }
       { \flushbottom  }
   }
+\ctexset { secnumdepth=5 }
+\ctex_at_end_preamble:n
+  {
+    \__xdu_lang_switch:nn
+      { \ctexset { chapter / name = { 第, 章        } } }
+      { \ctexset { chapter / name = { Chapter\space } } }
+  }
+\ctexset
+  {
+    section       / name = {        },
+    subsection    / name = {        },
+    subsubsection / name = { (, ) },
+    paragraph     / name = { (, ) },
+    subparagraph  / name = { (, ) }
+  }
+\ctex_at_end_preamble:n
+  {
+    \__xdu_lang_switch:nn
+      { \ctexset { chapter / number = { \chinese { chapter } } } }
+      { \ctexset { chapter / number = { \Roman   { chapter } } } }
+  }
+\ctexset
+  {
+    section       / number = { \thesection               },
+    subsection    / number = { \thesubsection            },
+    subsubsection / number = { \arabic { subsubsection } },
+    paragraph     / number = { \alph { paragraph }       },
+    subparagraph  / number = { \roman { subparagraph }   }
+  }
+\cs_new:Npn \__xdu_sec_format_i:n #1
+  { \__xdu_rm_family: \bfseries \zihao { #1 } \dim_set:Nn \baselineskip { 20pt } }
+\cs_new:Npn \__xdu_sec_format_ii:
+  { \__xdu_sf_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+\cs_new:Npn \__xdu_sec_format_iii:
+  { \__xdu_rm_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+\ctex_at_end_preamble:n
+  {
+    \__xdu_lang_switch:nn
+      { \ctexset { chapter / format = { \__xdu_sec_format_ii:  } } }
+      { \ctexset { chapter / format = { \__xdu_sec_format_iii: } } }
+  }
+\ctexset
+  {
+    section       / format = { \__xdu_sec_format_i:n { -3 } },
+    subsection    / format = { \__xdu_sec_format_i:n { 4  } },
+    subsubsection / format = { \__xdu_sec_format_i:n { 4  } },
+    paragraph     / format = { \__xdu_sec_format_i:n { 4  } },
+    subparagraph  / format = { \__xdu_sec_format_i:n { 4  } }
+  }
+\ctexset
+  {
+    chapter       / aftername = { \quad   },
+    section       / aftername = { \enskip },
+    subsection    / aftername = { \enskip },
+    subsubsection / aftername = { },
+    paragraph     / aftername = { },
+    subparagraph  / aftername = { }
+  }
+\ctexset
+  {
+    chapter       / indent = { 0bp  },
+    section       / indent = { 0bp  },
+    subsection    / indent = { 24bp },
+    subsubsection / indent = { 24bp },
+    paragraph     / indent = { 24bp },
+    subparagraph  / indent = { 24bp }
+  }
+\ctexset
+  {
+    chapter       / beforeskip = { 6pt  },
+    section       / beforeskip = { 18pt },
+    subsection    / beforeskip = { 12pt },
+    subsubsection / beforeskip = { 12pt },
+    paragraph     / beforeskip = { 12pt },
+    subparagraph  / beforeskip = { 12pt },
+    chapter       / afterskip  = { 18pt },
+    section       / afterskip  = { 12pt },
+    subsection    / afterskip  = { 6pt  },
+    subsubsection / afterskip  = { 6pt  },
+    paragraph     / afterskip  = { 6pt  },
+    subparagraph  / afterskip  = { 6pt  }
+  }
+\PassOptionsToPackage { titles } { tocloft }
+\RequirePackage { tocloft }
+\cs_set:Npn \cftdotsep { 0 }
+\cs_set:Npn \cftchapleader { \cftdotfill { \cftdotsep } }
+\dim_set_eq:NN \cftbeforechapskip \cftbeforesecskip
+\ctex_at_end_preamble:n
+  {
+    \__xdu_lang_switch:nn
+      { \cs_set:Npn \cftchapfont { \__xdu_sf_family: \zihao { -4 } } }
+      { \cs_set:Npn \cftchapfont { \__xdu_rm_family: \zihao { -4 } } }
+  }
+\clist_map_inline:nn
+  {
+    \cftsecfont,
+    \cftsubsecfont,
+    \cftchappagefont,
+    \cftsecpagefont,
+    \cftsubsecpagefont
+  }
+  { \renewcommand { #1 } { \__xdu_rm_family: \zihao { -4 } } }
 \renewcommand { \theequation } { \thechapter - \arabic { equation } }
 \ctex_at_end_preamble:n
   {
@@ -937,6 +1155,7 @@
       { \captionsetup [ subfloat ] { subrefformat = parens } }
       { }
   }
+\PassOptionsToPackage { labelformat = simple } { subcaption }
 \ctex_at_end_preamble:n
   {
     \@ifpackageloaded { subcaption }
@@ -981,7 +1200,7 @@
       }
       { }
   }
-\RequirePackage{ hyperref }
+\RequirePackage { hyperref }
 \hypersetup
   {
     bookmarksnumbered,
@@ -1036,17 +1255,824 @@
           { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: }
       }
       {
+        \PassOptionsToPackage { \l__xdu_biblatex_option_tl } { biblatex }
         \RequirePackage { biblatex }
         \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } }
       }
   }
+\RequirePackage { environ }
+\NewEnviron { appendixes }
+  {
+    \cs_set:Npn \appendixname { \__xdu_lang_switch:nn { 附录 } { Appendix } }
+    \tl_set_eq:NN \l__xdu_chaptername \appendixname
+    \cs_set_eq:NN \__xdu_Roman: \__xdu_Alph:
+    \appendix
+    \renewcommand { \thefigure } { \thechapter \arabic { figure } }
+    \renewcommand { \thetable  } { \thechapter \arabic { table  } }
+    \cs_if_exist:NT \thealgorithm
+      { \cs_set:Npn \thealgorithm { \thechapter \arabic { algorithm } } }
+    \cs_if_exist:NT \thealgocf
+      { \cs_set:Npn \thealgocf { \thechapter \arabic { algocf } } }
+    \BODY
+  }
+\bool_new:N \l__xdu_ac_master
+\bool_new:N \l__xdu_pro_master
+\bool_new:N \l__xdu_ac_phd
+\bool_new:N \l__xdu_pro_phd
+\bool_new:N \l__xdu_phd
+\bool_new:N \l__xdu_master
+\bool_new:N \l__xdu_ac
+\bool_new:N \l__xdu_pro
+\ctex_at_end_preamble:n
+  {
+    \tl_if_eq:NnTF \l__xdu_gr_type_tl { 硕士 }
+      {
+        \bool_set_true:N \l__xdu_master
+        \tl_if_eq:NnTF \l__xdu_degree_type_tl { 学术 }
+          { \bool_set_true:N \l__xdu_ac_master  }
+          { \bool_set_true:N \l__xdu_pro_master }
+      }
+      {
+        \bool_set_true:N \l__xdu_phd
+        \tl_if_eq:NnTF \l__xdu_degree_type_tl { 学术 }
+          { \bool_set_true:N \l__xdu_ac_phd  }
+          { \bool_set_true:N \l__xdu_pro_phd }
+      }
+    \tl_if_eq:NnTF \l__xdu_degree_type_tl { 学术 }
+      { \bool_set_true:N \l__xdu_ac  }
+      { \bool_set_true:N \l__xdu_pro }
+  }
+\cs_new:Npn \__xdu_cover_i:nnnnn #1#2#3#4#5
+  {
+    \dim_set:Nn \baselineskip { 20pt }
+    \vbox_to_ht:nn { #1 }
+      {
+        \vfill
+        \mode_leave_vertical:
+        \hfil
+        \use:c { #2 family } \zihao { #3 }
+        \str_if_eq:nnTF { #4 } { bf } { \bfseries } { }
+        #5
+        \hfil
+      }
+  }
+\cs_new:Npn \__xdu_cover_ii:nnnn #1#2#3#4
+  {
+    \dim_set:Nn \baselineskip { 20pt }
+    \vbox_to_ht:nn { 25pt }
+      {
+        \vfill
+        \mode_leave_vertical:
+        \hfil
+        \hbox:n
+          {
+            \zihao { 4 } \bfseries
+            \hbox_to_wd:nn { #1 } { \sffamily #2 }
+            \skip_horizontal:n { 0.5em }
+            \__xdu_uline:n
+              {
+                \skip_horizontal:n { 9em - #1 }
+                \hbox_to_wd:nn { #3 } { \hfil \rmfamily #4 \hfil }
+              }
+          }
+        \hfil
+      }
+  }
+\cs_new:Npn \__xdu_cover_iii:nnnn #1#2#3#4
+  {
+    \dim_set:Nn \baselineskip { 20pt }
+    \hbox:n
+      {
+        \rmfamily \zihao { 5 } \bfseries
+        \hbox_to_wd:nn { #1 } { #2 }
+        \skip_horizontal:n { 0.5em }
+        \__xdu_uline:n { \hbox_to_wd:nn { #3 } { \hfil #4 \hfil } }
+      }
+  }
+\cs_new:Npn \__xdu_en_month:n #1
+  {
+    \str_case:Vn #1
+      {
+        { 1  } { January   }
+        { 2  } { February  }
+        { 3  } { March     }
+        { 4  } { April     }
+        { 5  } { May       }
+        { 6  } { June      }
+        { 7  } { July      }
+        { 8  } { August    }
+        { 9  } { September }
+        { 10 } { October   }
+        { 11 } { November  }
+        { 12 } { December  }
+        { 01 } { January   }
+        { 02 } { February  }
+        { 03 } { March     }
+        { 04 } { April     }
+        { 05 } { May       }
+        { 06 } { June      }
+        { 07 } { July      }
+        { 08 } { August    }
+        { 09 } { September }
+      }
+  }
+\cs_new:Npn \__xdu_zh_today:
+  { \int_use:N \c_sys_year_int 年 \int_use:N \c_sys_month_int 月 }
+\cs_new:Npn \__xdu_en_today:
+  { \__xdu_en_month:n { \c_sys_month_int } ~ \int_use:N \c_sys_year_int }
+\seq_new:N \l__xdu_submit_date_seq
+\cs_new:Npn \__xdu_split_submit_date:N #1
+  {
+    \seq_set_split:NnV \l__xdu_submit_date_seq { - } \l__xdu_submit_date_str
+    \clist_set_from_seq:NN #1 \l__xdu_submit_date_seq
+  }
+\clist_new:N \l__xdu_submit_date_clist
+\cs_new:Npn \__xdu_zh_submit_date:
+  {
+    \str_if_empty:NTF \l__xdu_submit_date_str
+      { \__xdu_zh_today: }
+      {
+        \__xdu_split_submit_date:N \l__xdu_submit_date_clist
+        \clist_item:Nn \l__xdu_submit_date_clist { 1 } 年
+        \clist_item:Nn \l__xdu_submit_date_clist { 2 } 月
+      }
+  }
+\str_new:N \l__xdu_submit_date_month_str
+\cs_new:Npn \__xdu_en_submit_date:
+  {
+    \str_if_empty:NTF \l__xdu_submit_date_str
+      { \__xdu_en_today: }
+      {
+        \__xdu_split_submit_date:N \l__xdu_submit_date_clist
+        \str_set:Nx \l__xdu_submit_date_month_str
+          { \clist_item:Nn \l__xdu_submit_date_clist { 2 } }
+        \__xdu_en_month:n { \l__xdu_submit_date_month_str } ~
+        \clist_item:Nn \l__xdu_submit_date_clist { 1 }
+      }
+  }
+\cs_new:Npn \__xdu_cover_author_info:
+  {
+    \rmfamily \zihao { 4 }
+    \dim_new:N \l__xdu_cover_author_info_dim
+    \dim_set:Nn \l__xdu_cover_author_info_dim { 7em }
+    \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_author_str }
+    \bool_if:NTF \l__xdu_pro_master
+      {
+        \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim
+          { \l__xdu_supv_str \enskip \l__xdu_supv_t_str }
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim
+              { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str }
+          }
+        \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim
+          { \l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str }
+      }
+      {
+        \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim
+          { \l__xdu_supv_str \enskip \l__xdu_supv_t_str }
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim
+              { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str }
+          }
+      }
+    \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_degree_str }
+    \dim_add:Nn \l__xdu_cover_author_info_dim { 3em }
+    \__xdu_cover_ii:nnnn { 4em } { 作者姓名 }
+      { \l__xdu_cover_author_info_dim }
+      { \l__xdu_author_str }
+    \bool_if:NTF \l__xdu_pro_master
+      {
+        \__xdu_cover_ii:nnnn { 9em } { 学校导师姓名、职称 }
+          { \l__xdu_cover_author_info_dim }
+          { \l__xdu_supv_str \enskip \l__xdu_supv_t_str }
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \__xdu_cover_ii:nnnn { 9em } { }
+              { \l__xdu_cover_author_info_dim }
+              { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str }
+          }
+        \__xdu_cover_ii:nnnn { 9em } { 企业导师姓名、职称 }
+          { \l__xdu_cover_author_info_dim }
+          { \l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str }
+      }
+      {
+        \__xdu_cover_ii:nnnn { 9em } { 指导教师姓名、职称 }
+          { \l__xdu_cover_author_info_dim }
+          { \l__xdu_supv_str \enskip \l__xdu_supv_t_str }
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \__xdu_cover_ii:nnnn { 9em } { }
+              { \l__xdu_cover_author_info_dim }
+              { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str }
+          }
+      }
+    \__xdu_cover_ii:nnnn { 6em } { 申请学位类别 }
+      { \l__xdu_cover_author_info_dim }
+      { \l__xdu_degree_str }
+  }
+\cs_new:Npn \__xdu_zh_title_page_info:
+  {
+    \rmfamily \zihao { 4 }
+    \dim_new:N \l__xdu_zh_title_page_info_dim
+    \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+      { 作者姓名:\l__xdu_author_str }
+    \bool_if:NTF \l__xdu_ac
+      {
+        \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+          { 一级学科:\l__xdu_major_str }
+        \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+          { 二级学科(研究方向):\l__xdu_sub_major_str }
+      }
+      {
+        \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+          { 领\qquad{}域:\l__xdu_domain_str }
+      }
+      \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+        { 学位类别:\l__xdu_degree_str }
+    \bool_if:NTF \l__xdu_pro_master
+      {
+        \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+          { 学校导师姓名、职称:\l__xdu_supv_str \enskip \l__xdu_supv_t_str }
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+              { 学校导师姓名、职称:\l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str }
+          }
+        \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+          { 企业导师姓名、职称:\l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str }
+      }
+      {
+        \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+          { 指导教师姓名、职称:\l__xdu_supv_str \enskip \l__xdu_supv_t_str }
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+              { 指导教师姓名、职称:\l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str }
+          }
+      }
+    \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+      { 学\qquad{}院:\l__xdu_dept_str }
+    \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim
+      { 提交日期:\__xdu_zh_submit_date: }
+    \dim_new:N \l__xdu_zh_title_page_info_skip_dim
+    \dim_set_eq:NN \l__xdu_zh_title_page_info_skip_dim \linewidth
+    \dim_sub:Nn \l__xdu_zh_title_page_info_skip_dim { \l__xdu_zh_title_page_info_dim }
+    \skip_horizontal:n { \dim_eval:n { \l__xdu_zh_title_page_info_skip_dim / 2 } }
+    \vbox:n
+      {
+        \rmfamily \zihao { 4 }
+        \dim_set:Nn \baselineskip { 32pt }
+        { \bfseries 作者姓名: } \l__xdu_author_str
+        \bool_if:NTF \l__xdu_ac
+          {
+            \par
+            { \bfseries 一级学科: } \l__xdu_major_str
+            \par
+            { \bfseries 二级学科(研究方向): } \l__xdu_sub_major_str
+          }
+          {
+            \par
+            { \bfseries 领\qquad{}域: } \l__xdu_domain_str
+          }
+        \par
+        { \bfseries 学位类别: } \l__xdu_degree_str
+        \bool_if:NTF \l__xdu_pro_master
+          {
+            \par
+            { \bfseries 学校导师姓名、职称: }
+            \l__xdu_supv_str \enskip \l__xdu_supv_t_str
+            \str_if_empty:NF \l__xdu_supv_ii_str
+              {
+                \par
+                \phantom { 学校导师姓名、职称: }
+                \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str
+              }
+            \par
+            { \bfseries 企业导师姓名、职称: }
+            \l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str
+          }
+          {
+            \par
+            { \bfseries 指导教师姓名、职称: }
+            \l__xdu_supv_str \enskip \l__xdu_supv_t_str
+            \str_if_empty:NF \l__xdu_supv_ii_str
+              {
+                \par
+                \phantom { 指导教师姓名、职称: }
+                \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str
+              }
+          }
+        \par
+        { \bfseries 学\qquad{}院: } \l__xdu_dept_str
+        \par
+        { \bfseries 提交日期: } \__xdu_zh_submit_date:
+      }
+  }
+\cs_new:Npn \__xdu_zh_title_page:
+  {
+    \vbox:n { }
+    \skip_vertical:n { -7.5pt }
+    \dim_set:Nn \baselineskip { 15.6bp }
+    \vbox:n
+      {
+        \mode_leave_vertical:
+        \__xdu_cover_iii:nnnn { 4em } { 学校代码 } { 7em } { 10701                }
+        \hfill
+        \__xdu_cover_iii:nnnn { 3em } { 学号     } { 7em } { \l__xdu_student_id_str }
+      }
+    \vbox:n
+      {
+        \mode_leave_vertical:
+        \__xdu_cover_iii:nnnn { 4em } { 分类号   } { 7em } { \l__xdu_clc_str        }
+        \hfill
+        \__xdu_cover_iii:nnnn { 3em } { 密级     } { 7em } { \l__xdu_secret_lv_str  }
+      }
+    \__xdu_cover_i:nnnnn { 100pt  } { sf } { 1  } { bf } { 西安电子科技大学   }
+    \__xdu_cover_i:nnnnn { 85pt   } { rm } { -1 } { bf } { \l__xdu_gr_type_tl 学位论文 }
+    \skip_vertical:n { 87.5pt }
+    \vbox_to_ht:nn { 150pt }
+      {
+        \rmfamily \zihao { 2 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        \l__xdu_title_str
+      }
+    \group_begin:
+      \__xdu_zh_title_page_info:
+    \group_end:
+    \cleardoublepage
+  }
+\dim_new:N \l__xdu_supv_dim
+\dim_new:N \l__xdu_supv_max_dim
+\box_new:N \l__xdu_supv_box
+\cs_new:Npn \__xdu_en_title_supv:n #1
+  {
+    \rmfamily \zihao { 3 }
+    \dim_zero:N \l__xdu_supv_max_dim
+    \hbox_set:Nn \l__xdu_supv_box { \l__xdu_supv_en_str }
+    \dim_set:Nn \l__xdu_supv_dim { \box_wd:N \l__xdu_supv_box }
+    \dim_set:Nn \l__xdu_supv_max_dim
+      { \dim_max:nn { \l__xdu_supv_dim } { \l__xdu_supv_max_dim } }
+    \str_if_empty:NF \l__xdu_supv_ii_str
+      {
+        \hbox_set:Nn \l__xdu_supv_box { \l__xdu_supv_ii_en_str }
+        \dim_set:Nn \l__xdu_supv_dim { \box_wd:N \l__xdu_supv_box }
+        \dim_set:Nn \l__xdu_supv_max_dim
+          { \dim_max:nn { \l__xdu_supv_dim } { \l__xdu_supv_max_dim } }
+      }
+    \bool_if:NT \l__xdu_pro_master
+      {
+        \hbox_set:Nn \l__xdu_supv_box { \l__xdu_supv_ent_en_str }
+        \dim_set:Nn \l__xdu_supv_dim { \box_wd:N \l__xdu_supv_box }
+        \dim_set:Nn \l__xdu_supv_max_dim
+          { \dim_max:nn { \l__xdu_supv_dim } { \l__xdu_supv_max_dim } }
+      }
+    \hbox_to_wd:nn { \l__xdu_supv_max_dim } { #1 \hfil } \quad
+  }
+\dim_new:N \l__xdu_supv_t_dim
+\dim_new:N \l__xdu_supv_t_max_dim
+\box_new:N \l__xdu_supv_t_box
+\cs_new:Npn \__xdu_en_title_supv_t:n #1
+  {
+    \rmfamily \zihao { 3 }
+    \dim_zero:N \l__xdu_supv_t_max_dim
+    \hbox_set:Nn \l__xdu_supv_t_box { \l__xdu_supv_t_en_str }
+    \dim_set:Nn \l__xdu_supv_t_dim { \box_wd:N \l__xdu_supv_t_box }
+    \dim_set:Nn \l__xdu_supv_t_max_dim
+      { \dim_max:nn { \l__xdu_supv_t_dim } { \l__xdu_supv_t_max_dim } }
+    \str_if_empty:NF \l__xdu_supv_ii_str
+      {
+        \hbox_set:Nn \l__xdu_supv_t_box { \l__xdu_supv_ii_t_en_str }
+        \dim_set:Nn \l__xdu_supv_t_dim { \box_wd:N \l__xdu_supv_t_box }
+        \dim_set:Nn \l__xdu_supv_t_max_dim
+          { \dim_max:nn { \l__xdu_supv_t_dim } { \l__xdu_supv_t_max_dim } }
+      }
+    \bool_if:NT \l__xdu_pro_master
+      {
+        \hbox_set:Nn \l__xdu_supv_t_box { \l__xdu_supv_ent_t_en_str }
+        \dim_set:Nn \l__xdu_supv_t_dim { \box_wd:N \l__xdu_supv_t_box }
+        \dim_set:Nn \l__xdu_supv_t_max_dim
+          { \dim_max:nn { \l__xdu_supv_t_dim } { \l__xdu_supv_t_max_dim } }
+      }
+    \hbox_to_wd:nn { \l__xdu_supv_t_max_dim } { #1 \hfil } \quad
+  }
+\cs_new:Npn \__xdu_en_title_page:
+  {
+    \vbox:n { }
+    \skip_vertical:n { -3.5pt }
+    \dim_set:Nn \baselineskip { 30pt }
+    \vbox_to_ht:nn { 170pt }
+      {
+        \rmfamily \zihao { 2 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        \l__xdu_title_en_str
+      }
+    \vbox_to_ht:nn { 360pt }
+      {
+        \rmfamily \zihao { 3 } \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        A
+        \bool_if:NTF \l__xdu_master { ~thesis~ } { ~dissertation~ }
+        submitted~to\\
+        XIDIAN~UNIVERSITY\\
+        in~partial~fulfillment~of~the~requirements\\
+        for~the~degree~of
+        \bool_if:NTF \l__xdu_master { ~Master\\ } { ~Doctor~of~Philosophy\\ }
+        in
+        \bool_if:NTF \l__xdu_pro_master
+          { ~\l__xdu_degree_en_str\\ }
+          { ~\l__xdu_major_en_str\\  }
+      }
+    \vbox:n
+      {
+        \rmfamily \zihao { 3 } \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        By\\
+        \l__xdu_author_en_str
+        \str_if_empty:NTF \l__xdu_author_en_str
+          { \skip_vertical:N \baselineskip }
+          { \\ }
+        Supervisor:~\__xdu_en_title_supv:n { \l__xdu_supv_en_str }
+        Title:~\__xdu_en_title_supv_t:n { \l__xdu_supv_t_en_str } \\
+        \str_if_empty:NF \l__xdu_supv_ii_str
+          {
+            \phantom { Supervisor:~ } \__xdu_en_title_supv:n { \l__xdu_supv_ii_en_str }
+            \phantom { Title:~ } \__xdu_en_title_supv_t:n { \l__xdu_supv_ii_t_en_str } \\
+          }
+        \bool_if:NT \l__xdu_pro_master
+          {
+            Supervisor:~ \__xdu_en_title_supv:n { \l__xdu_supv_ent_en_str }
+            Title:~ \__xdu_en_title_supv_t:n { \l__xdu_supv_ent_t_en_str } \\
+          }
+        \__xdu_en_submit_date:
+      }
+    \cleardoublepage
+  }
+\cs_new:Npn \__xdu_statement:
+  {
+    \vbox:n { }
+    \skip_vertical:n { -7.5pt }
+    \vbox_to_ht:nn { 60pt }
+      {
+        \rmfamily \zihao { 4 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 20pt }
+        西安电子科技大学\\
+        学位论文独创性(或创新性)声明
+      }
+    \vbox_to_ht:nn { 140pt }
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 20pt }
+        秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指
+        导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢
+        中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包
+        含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一
+        同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
+        \par
+        学位论文若有不实之处,本人承担一切法律责任。
+        \vfil
+      }
+    \vbox_to_ht:nn { 175pt }
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 20pt }
+        本人签名:\__xdu_uline:n { \skip_horizontal:n { 10em } }
+        \hfill
+        日\qquad{}期:\__xdu_uline:n { \skip_horizontal:n { 10em } }
+      }
+    \vbox_to_ht:nn { 60pt }
+      {
+        \rmfamily \zihao { 4 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 20pt }
+        西安电子科技大学\\
+        关于论文使用授权的说明
+      }
+    \vbox_to_ht:nn { 140pt }
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 20pt }
+        本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校
+        攻读学位期间论文工作的知识产权属于西安电子科技大学。学校有权保留送交论文
+        的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采用
+        影印、缩印或其它复制手段保存论文。同时本人保证,结合学位论文研究成果完成
+        的论文、发明专利等成果,署名单位为西安电子科技大学。
+        \par
+        保密的学位论文在
+        \str_if_eq:NNTF \l__xdu_secret_lv_str { 秘密 }
+          {
+            \str_if_empty:NTF \l__xdu_secret_year_str
+              { \__xdu_uline:n { \skip_horizontal:n { 1.5em } } }
+              { \__xdu_uline:n { \enskip \l__xdu_secret_year_str \enskip } }
+          }
+          { \__xdu_uline:n { \skip_horizontal:n { 1.5em } } }
+        年解密后适用本授权书。
+        \vfil
+      }
+    \vbox:n
+      {
+        \rmfamily \zihao { -4 }
+        \dim_set:Nn \parindent { 2em }
+        \dim_set:Nn \baselineskip { 40pt }
+        本人签名:\__xdu_uline:n { \skip_horizontal:n { 10em } }
+        \hfill
+        导师签名:\__xdu_uline:n { \skip_horizontal:n { 10em } }
+        \par
+        日\qquad{}期:\__xdu_uline:n { \skip_horizontal:n { 10em } }
+        \hfill
+        日\qquad{}期:\__xdu_uline:n { \skip_horizontal:n { 10em } }
+      }
+    \cleardoublepage
+  }
+\cs_new:Npn \__xdu_zh_abstract_keywords:
+  {
+    \__xdu_n_chapter_head_toc:nn { 摘要 } { 摘 { \quad } 要 }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 摘要 } }
+    \group_begin:
+      \dim_set:Nn \parindent { 2 \ccwd }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \file_if_exist_input:n { \l__xdu_abstract_zh_tl }
+    \group_end:
+    \group_begin:
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \skip_vertical:n { 20pt }
+      \__xdu_typeout_keywords:nNn
+        { \textbf { 关键词 } : } { \l__xdu_keywords_zh_clist } { , }
+    \group_end:
+    \cleardoublepage
+  }
+\cs_new:Npn \__xdu_en_abstract_keywords:
+  {
+    \__xdu_n_chapter_head_toc_ii:nn
+      { \textrm { ABSTRACT } } { \centering \rmfamily \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { \textrm { ABSTRACT } } }
+    \group_begin:
+      \dim_set:Nn \parskip { 20pt }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \file_if_exist:nT { \l__xdu_abstract_en_tl } { \skip_vertical:n { -20pt } }
+      \file_if_exist_input:n { \l__xdu_abstract_en_tl }
+    \group_end:
+    \group_begin:
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \skip_vertical:n { 20pt }
+      \__xdu_typeout_keywords:nNn
+        { \textbf { Keywords } : } { \l__xdu_keywords_en_clist } { ,~ }
+    \group_end:
+    \cleardoublepage
+  }
+\cs_new:Npn \__xdu_loft_label_num_width:nN #1#2
+  {
+    \tl_clear_new:N \l__xdu_loft_tl
+    \file_get:nnN
+      { \jobname.#1 }
+      { \let\do\@makeother \dospecials }
+      \l__xdu_loft_tl
+    \seq_clear_new:N \l__xdu_loft_label_num_seq
+    \cs_generate_variant:Nn \regex_extract_all:nnN { nVN }
+    \str_if_eq:nnTF { #1 } { lof }
+      {
+        \regex_extract_all:nVN
+          { \\contentsline\ \{figure\}\{\\numberline\ \{\K[0-9A-Z\.]+ }
+          \l__xdu_loft_tl \l__xdu_loft_label_num_seq
+      }
+      {
+        \regex_extract_all:nVN
+          { \\contentsline\ \{table\}\{\\numberline\ \{\K[0-9A-Z\.]+ }
+          \l__xdu_loft_tl \l__xdu_loft_label_num_seq
+      }
+    \dim_zero_new:N \l__xdu_loft_label_num_dim
+    \seq_map_inline:Nn \l__xdu_loft_label_num_seq
+      {
+        \__xdu_get_text_width:Nn \l__xdu_loft_label_num_dim { ##1 }
+        \dim_set:Nn #2 { \dim_max:nn { \l__xdu_loft_label_num_dim } { #2 } }
+      }
+  }
+\cs_new:Npn \__xdu_list_of_figure:
+  {
+    \__xdu_n_chapter_head_toc:n
+      { \__xdu_lang_switch:nn { 插图索引 } { List~of~Figures } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 插图索引 } }
+    \group_begin:
+      \addtocontents { lof } { \vspace { 10pt } }
+      \renewcommand { \addvspace } [1] { }
+      \tl_set:Nn \cftfigpresnum {  \figurename \space }
+      \dim_zero_new:N \l__xdu_lof_label_dim
+      \__xdu_get_text_width:NV \l__xdu_lof_label_dim \cftfigpresnum
+      \dim_set:Nn \cftfignumwidth { \l__xdu_lof_label_dim }
+      \dim_new:N \l__xdu_lof_label_num_max_dim
+      \__xdu_loft_label_num_width:nN { lof } \l__xdu_lof_label_num_max_dim
+      \dim_add:Nn \cftfignumwidth { \l__xdu_lof_label_num_max_dim }
+      \dim_add:Nn \cftfignumwidth { .75em }
+      \dim_set:Nn \cftfigindent { 0pt }
+      \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt }
+      \@starttoc { lof }
+    \group_end:
+    \cleardoublepage
+  }
+\cs_new:Npn \__xdu_list_of_table:
+  {
+    \__xdu_n_chapter_head_toc:n
+      { \__xdu_lang_switch:nn { 表格索引 } { List~of~Tables } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 表格索引 } }
+    \group_begin:
+      \addtocontents { lot } { \vspace { 10pt } }
+      \renewcommand { \addvspace } [1] { }
+      \tl_set:Nn \cfttabpresnum {  \tablename \space }
+      \dim_zero_new:N \l__xdu_lot_label_dim
+      \__xdu_get_text_width:NV \l__xdu_lot_label_dim \cfttabpresnum
+      \dim_set:Nn \cfttabnumwidth { \l__xdu_lot_label_dim }
+      \dim_new:N \l__xdu_lot_label_num_max_dim
+      \__xdu_loft_label_num_width:nN { lot } \l__xdu_lot_label_num_max_dim
+      \dim_add:Nn \cfttabnumwidth { \l__xdu_lot_label_num_max_dim }
+      \dim_add:Nn \cfttabnumwidth { .75em }
+      \dim_set:Nn \cfttabindent { 0pt }
+      \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt }
+      \@starttoc { lot }
+    \group_end:
+    \cleardoublepage
+  }
+\ctex_at_end_preamble:n
+  {
+    \bool_new:N \l__xdu_load_tabularray_bool
+    \bool_if:NF \l__xdu_customize_los_bool
+      { \bool_set_true:N \l__xdu_load_tabularray_bool }
+    \bool_if:NF \l__xdu_customize_loa_bool
+      { \bool_set_true:N \l__xdu_load_tabularray_bool }
+    \bool_if:NT \l__xdu_load_tabularray_bool
+      {
+        \RequirePackage { tabularray }
+        \UseTblrLibrary { functional }
+        \NewTblrTheme { losloatheme }
+          {
+            \DefTblrTemplate { caption-tag   } { default } { }
+            \DefTblrTemplate { caption-sep   } { default } { }
+            \DefTblrTemplate { caption-text  } { default } { }
+            \DefTblrTemplate { conthead-text } { default } { }
+            \DefTblrTemplate { contfoot-text } { default } { }
+          }
+      }
+    \cs_generate_variant:Nn \__tblr_parse_colrow_spec:nn { nV }
+  }
+\cs_new:Npn \__xdu_symbols_list:
+  {
+    \__xdu_n_chapter_head_toc:n
+      { \__xdu_lang_switch:nn { 符号对照表 } { List~of~Symbols } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 符号对照表 } }
+    \bool_if:NTF \l__xdu_customize_los_bool
+      { \file_if_exist_input:n { \l__xdu_los_str } }
+      {
+        \tl_new:N \l__xdu_los_head_tl
+        \__xdu_lang_switch:nn
+          { \tl_set:Nn \l__xdu_los_head_tl { 符号 & 符号名称 \\        } }
+          { \tl_set:Nn \l__xdu_los_head_tl { Notation & Description \\ } }
+        \tl_new:N \l__xdu_los_rowhead_tl
+        \bool_if:NTF \l__xdu_title_row_los_bool
+          { \tl_set:Nn \l__xdu_los_rowhead_tl { 1 } }
+          { \tl_set:Nn \l__xdu_los_rowhead_tl { 0 } }
+        \tl_new:N \l__xdu_los_begin_tblr_tl
+        \tl_set:Nx \l__xdu_los_begin_tblr_tl
+          {
+            \exp_not:n
+              {
+                \begin { longtblr }
+                  [
+                    evaluate = \fileIfExistInput,
+                    expand   = \l__xdu_los_head_tl,
+                    theme    = losloatheme
+                  ]
+              }
+              {
+                colspec = { \exp_not:V \l__xdu_colspec_los_tl },
+                \exp_not:n
+                  {
+                    rowhead = \int_compare:nNnTF
+                                { \value { rowcount } } > { 1 }
+                                { \l__xdu_los_rowhead_tl } { 0 },
+                    rows    = { font = \rmfamily \zihao { -4 } },
+                    stretch = 0,
+                    rowsep  = { 3pt },
+                    rows    = { ht = 14pt }
+                  }
+              }
+          }
+        \tl_use:N \l__xdu_los_begin_tblr_tl
+          \l__xdu_los_head_tl
+          \fileIfExistInput { \l__xdu_los_str }
+        \end { longtblr }
+      }
+  }
+\cs_new:Npn \__xdu_abbreviations_list:
+  {
+    \__xdu_n_chapter_head_toc:n
+      { \__xdu_lang_switch:nn { 缩略语对照表 } { List~of~Abbreviations } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 缩略语对照表 } }
+    \bool_if:NTF \l__xdu_customize_loa_bool
+      { \file_if_exist_input:n { \l__xdu_loa_str } }
+      {
+        \tl_new:N \l__xdu_loa_head_tl
+        \__xdu_lang_switch:nn
+          {
+            \tl_set:Nn \l__xdu_loa_head_tl
+              { 缩略语 & 英文全称 & 中文对照 \\ }
+          }
+          {
+            \tl_set:Nn \l__xdu_loa_head_tl
+              { Abbreviation & English~Full~Name & Chinese~Full~Name \\ }
+          }
+        \tl_new:N \l__xdu_loa_rowhead_tl
+        \bool_if:NTF \l__xdu_title_row_loa_bool
+          { \tl_set:Nn \l__xdu_loa_rowhead_tl { 1 } }
+          { \tl_set:Nn \l__xdu_loa_rowhead_tl { 0 } }
+        \tl_new:N \l__xdu_loa_begin_tblr_tl
+        \tl_set:Nx \l__xdu_loa_begin_tblr_tl
+          {
+            \exp_not:n
+              {
+                \begin { longtblr }
+                  [
+                    evaluate = \fileIfExistInput,
+                    expand   = \l__xdu_loa_head_tl,
+                    theme    = losloatheme
+                  ]
+              }
+              {
+                colspec = { \exp_not:V \l__xdu_colspec_loa_tl },
+                \exp_not:n
+                  {
+                    rowhead = \int_compare:nNnTF
+                                { \value { rowcount } } > { 1 }
+                                { \l__xdu_loa_rowhead_tl } { 0 },
+                    rows    = { font = \rmfamily \zihao { -4 } },
+                    stretch = 0,
+                    rowsep  = { 3pt },
+                    rows    = { ht = 14pt }
+                  }
+              }
+          }
+        \tl_use:N \l__xdu_loa_begin_tblr_tl
+          \l__xdu_loa_head_tl
+          \fileIfExistInput { \l__xdu_loa_str }
+        \end { longtblr }
+      }
+  }
+\cs_new:Npn \__xdu_add_zh_toc:nn #1#2
+  {
+    \str_if_eq:NNTF { #1 } { chapter }
+      { \phantomsection \addcontentsline { zh.toc } { #1 } { \__xdu_sf_family: #2 } }
+      { \phantomsection \addcontentsline { zh.toc } { #1 } { #2 } }
+  }
 \renewcommand { \frontmatter }
   {
     \loadgeometry { cover }
     \pagestyle    { empty }
+    \dim_set:Nn \parindent { 0pt }
+    \dim_set:Nn \baselineskip { 20pt }
+    \__xdu_add_bookmark:n { \__xdu_lang_switch:nn { 封面 } { Cover } }
+    \vbox:n { }
+    \skip_vertical:n { 435pt }
+    \vbox_to_ht:nn { 120pt }
+      {
+        \rmfamily \zihao { 2 } \bfseries \centering
+        \dim_set:Nn \baselineskip { 30pt }
+        \l__xdu_title_str
+      }
+    \__xdu_cover_author_info:
+    \cleardoublepage
+    \__xdu_lang_switch:nn
+      { \__xdu_zh_title_page: \__xdu_en_title_page: }
+      { \__xdu_en_title_page: \__xdu_zh_title_page: }
+    \__xdu_statement:
     \__xdu_load_main_geometry:
     \pagestyle     { front }
     \pagenumbering { Roman }
+    \dim_set:Nn \baselineskip { 20pt }
+    \__xdu_lang_switch:nn
+      { \__xdu_zh_abstract_keywords: \__xdu_en_abstract_keywords: }
+      { \__xdu_en_abstract_keywords: \__xdu_zh_abstract_keywords: }
+    \__xdu_list_of_figure:
+    \__xdu_list_of_table:
+    \__xdu_symbols_list:
+    \__xdu_abbreviations_list:
+    \setcounter { tocdepth } { 2 }
+    \__xdu_n_chapter_head:nn
+      { \__xdu_lang_switch:nn { 目录            } { Contents } }
+      { \__xdu_lang_switch:nn { 目 { \quad } 录 } { Contents } }
+    \@starttoc { toc }
+    \cleardoublepage
+    \__xdu_lang_switch:nn { }
+      {
+        \setcounter { tocdepth } { 2 }
+        \__xdu_n_chapter_head:nn { 目录 } { \__xdu_sf_family: 目 { \quad } 录 }
+        \@starttoc { zh.toc }
+        \cleardoublepage
+      }
   }
 \renewcommand { \mainmatter }
   {
@@ -1053,7 +2079,131 @@
     \__xdu_load_main_geometry:
     \pagestyle     { plain  }
     \pagenumbering { arabic }
+    \dim_set:Nn \parindent { 2 \ccwd }
+    \rmfamily \zihao { -4 }
+    \dim_set:Nn \baselineskip { 20pt }
+    \__xdu_lang_switch:nn { }
+      {
+        \cs_new_eq:NN \__xdu_org_chapter:n \chapter
+        \RenewDocumentCommand { \chapter } { m m }
+          {
+            \__xdu_org_chapter:n { ##1 }
+            \__xdu_add_zh_toc:nn { chapter }
+              { \numberline { 第 \chinese { chapter } 章 \hspace { .3em } } ##2 }
+          }
+        \cs_new_eq:NN \__xdu_org_section:n \section
+        \RenewDocumentCommand { \section } { m m }
+          {
+            \__xdu_org_section:n { ##1 }
+            \__xdu_add_zh_toc:nn { section } { \numberline { \thesection } ##2 }
+          }
+        \cs_new_eq:NN \__xdu_org_subsection:n \subsection
+        \RenewDocumentCommand { \subsection } { m m }
+          {
+            \__xdu_org_subsection:n { ##1 }
+            \__xdu_add_zh_toc:nn { subsection } { \numberline { \thesubsection } ##2 }
+          }
+      }
   }
+\ctex_at_end_preamble:n
+  {
+      \dim_new:N \l__xdu_bio_indent_dim
+      \box_new:N \l__xdu_bio_indent_box
+      \hbox_set:Nn \l__xdu_bio_indent_box { \rmfamily \zihao { -3 } \bfseries 1. \quad}
+      \dim_set:Nn \l__xdu_bio_indent_dim { \box_wd:N \l__xdu_bio_indent_box }
+    \bool_if:NF \l__xdu_customize_edubg_bool
+      {
+        \RequirePackage { tabularray }
+        \newenvironment { edubg }
+          {
+            \dim_set:Nn \parindent { 0pt }
+            \begin { tblr }
+              {
+                colspec = { @{ \skip_horizontal:N \l__xdu_bio_indent_dim } lX @{ } },
+                rows    = { font = \zihao { -4 } \dim_set:Nn \baselineskip { 20pt } }
+              }
+          }
+          {
+            \end { tblr }
+            \dim_set:Nn \parindent { 2 \ccwd }
+          }
+      }
+    \bool_if:NF \l__xdu_customize_resresult_bool
+      {
+        \RequirePackage { enumitem }
+        \SetEnumitemKey { resresult }
+          {
+            label   = {[}\arabic*{]},
+            left    = \l__xdu_bio_indent_dim,
+            align   = right,
+            parsep  = 0pt,
+            itemsep = 0pt,
+            topsep  = 0pt
+          }
+        \newenvironment { resresult }
+          { \begin { enumerate } [ resresult ] }
+          { \end { enumerate } }
+      }
+  }
+\renewcommand { \backmatter }
+  {
+    \__xdu_lang_switch:nn { }
+      {
+        \cs_set_eq:NN \chapter \__xdu_org_chapter:n
+        \cs_set_eq:NN \section \__xdu_org_section:n
+        \cs_set_eq:NN \subsection \__xdu_org_subsection:n
+      }
+    \cs_set:Npn \bibname { \__xdu_lang_switch:nn { 参考文献 } { Bibliography } }
+    \__xdu_n_chapter_head_toc:n { \bibname }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 参考文献 } }
+    \group_begin:
+      \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex }
+        {
+          \cs_set:Npn \bibsection { }
+          \rmfamily \zihao { 5 }
+          \dim_set:Nn \baselineskip { 20pt }
+          \bibliography { \l__xdu_bib_file_clist }
+        }
+        {
+          \defbibheading { bibliography } [ ] { }
+          \cs_set:Npn \bibfont
+            {
+              \rmfamily \zihao { 5 }
+              \dim_set:Nn \baselineskip { 20pt }
+            }
+          \printbibliography
+        }
+    \group_end:
+    \__xdu_n_chapter_head_toc:nn
+      { \__xdu_lang_switch:nn { 致谢            } { Acknowledgements } }
+      { \__xdu_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 致谢 } }
+    \group_begin:
+      \dim_set:Nn \parindent { 2 \ccwd }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \file_if_exist_input:n { \l__xdu_ack_tl }
+    \group_end:
+    \__xdu_n_chapter_head_toc:n
+      { \__xdu_lang_switch:nn { 作者简介 } { Author~Biography } }
+    \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 作者简介 } }
+    \group_begin:
+      \dim_set:Nn \parindent { 2 \ccwd }
+      \rmfamily \zihao { -4 }
+      \dim_set:Nn \baselineskip { 20pt }
+      \ctexset
+        {
+            section    / number = { \arabic { section } . },
+            section    / format = { \rmfamily \zihao { -3 } \bfseries \raggedright },
+            subsection / number = { \arabic { section } . \arabic { subsection } },
+            subsection / format = { \rmfamily \zihao { 4 } \bfseries \raggedright },
+            subsection / indent = { \l__xdu_bio_indent_dim }
+        }
+      \setcounter { section } { 0 }
+      \addtocontents { toc } { \setcounter { tocdepth } { 0 } }
+      \file_if_exist_input:n { \l__xdu_bio_str }
+    \group_end:
+  }
 %% 
 %%
 %% End of file `xdupgthesis.cls'.

Modified: trunk/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls	2022-06-21 20:20:04 UTC (rev 63680)
+++ trunk/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls	2022-06-21 20:20:17 UTC (rev 63681)
@@ -28,7 +28,7 @@
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
 \ProvidesExplClass{xduugthesis}
-  {2022/05/15}{1.15.0.1}
+  {2022/06/21}{2.0.0.0}
   {Xidian University Undergraduate Thesis document class}
 \RequirePackage { xparse, l3keys2e }
 \PassOptionsToPackage { quiet } { xeCJK }
@@ -304,9 +304,9 @@
 \cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5
   {
     \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
-      { \setmonofont{ #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ]}
+      { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] }
       {
-        \setmonofont{ #2 }
+        \setmonofont { #2 }
           [
             \__xdu_font_path:
             \__xdu_set_latin_scale:
@@ -332,7 +332,7 @@
   }
 \cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4
   {
-    \setmonofont{ #1 }
+    \setmonofont { #1 }
       [
         \__xdu_set_latin_scale:
         \__xdu_off_latin_ligatures:
@@ -405,9 +405,9 @@
 \cs_new:Npn \__xdu_load_math_font_cambria:
   {
     \__xdu_load_unicode_math_pkg:
-    \str_if_eq:NNTF { \l__xdu_font_type_tl} { font}
-      { \setmathfont { Cambria~Math} }
-      { \setmathfont { cambria.ttc} [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
+    \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+      { \setmathfont { Cambria~Math } }
+      { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
   }
 \cs_new:Npn \__xdu_define_math_font:nn #1#2
   {
@@ -461,7 +461,7 @@
 \str_new:N \l__xdu_dept_str
 \str_new:N \l__xdu_major_str
 \str_new:N \l__xdu_author_str
-\str_new:N \l__xdu_supv_str
+\clist_new:N \l__xdu_supv_clist
 \str_new:N \l__xdu_supv_ent_str
 \str_new:N \l__xdu_student_id_str
 \tl_new:N \l__xdu_abstract_zh_tl
@@ -468,6 +468,7 @@
 \tl_new:N \l__xdu_abstract_en_tl
 \clist_new:N \l__xdu_keywords_zh_clist
 \clist_new:N \l__xdu_keywords_en_clist
+\clist_new:N \l__xdu_bib_file_clist
 \tl_new:N \l__xdu_ack_tl
 \keys_define:nn { xdu / info }
   {
@@ -475,7 +476,7 @@
     department .tl_set:N = \l__xdu_dept_str,
     major .tl_set:N = \l__xdu_major_str,
     author .tl_set:N = \l__xdu_author_str,
-    supervisor .tl_set:N = \l__xdu_supv_str,
+    supervisor .clist_set:N = \l__xdu_supv_clist,
     supervisor-enterprise .tl_set:N = \l__xdu_supv_ent_str,
     student-id .tl_set:N = \l__xdu_student_id_str,
     abstract .tl_set:N = \l__xdu_abstract_zh_tl,
@@ -482,6 +483,7 @@
     abstract* .tl_set:N = \l__xdu_abstract_en_tl,
     keywords .clist_set:N = \l__xdu_keywords_zh_clist,
     keywords* .clist_set:N = \l__xdu_keywords_en_clist,
+    bib-resource .clist_set:N = \l__xdu_bib_file_clist,
     acknowledgements .tl_set:N = \l__xdu_ack_tl
   }
 \keys_set:nn { xdu }
@@ -497,8 +499,16 @@
     info / abstract*             = { },
     info / keywords              = { },
     info / keywords*             = { },
+    info / bib-resource          = { },
     info / acknowledgements      = { }
   }
+\str_new:N \l__xdu_supv_str
+\str_new:N \l__xdu_supv_ii_str
+\ctex_at_end_preamble:n
+  {
+    \str_set:Nx \l__xdu_supv_str    { \clist_item:Nn \l__xdu_supv_clist { 1 } }
+    \str_set:Nx \l__xdu_supv_ii_str { \clist_item:Nn \l__xdu_supv_clist { 2 } }
+  }
 \str_new:N \l__xdu_supv_dept_str
 \str_new:N \l__xdu_supv_sch_str
 \str_new:N \l__xdu_class_id_str
@@ -514,10 +524,14 @@
     info / supervisor-school     = { },
     info / class-id              = { }
   }
+\cs_set:Npn \figurename { \__xdu_lang_switch:nn { 图 } { Figure } }
+\cs_new_eq:NN \figname \figurename
+\cs_set:Npn \tablename  { \__xdu_lang_switch:nn { 表 } { Table  } }
+\cs_new_eq:NN \tabname \tablename
 \bool_new:N \l__xdu_en_cjk_font_bool
 \tl_new:N \l__xdu_lang_tl
 \tl_new:N \l__xdu_bib_tool_tl
-\clist_new:N \l__xdu_bib_file_clist
+\tl_new:N \l__xdu_biblatex_option_tl
 \tl_new:N \l__xdu_ref_add_space
 \tl_new:N \l__xdu_cap_label_sep_tl
 \bool_new:N \l__xdu_tab_small_bool
@@ -539,7 +553,7 @@
       { \tl_set_eq:NN \l__xdu_lang_tl \l_keys_choice_tl },
     bib-backend .choices:nn = { bibtex, biblatex }
       { \tl_set_eq:NN \l__xdu_bib_tool_tl \l_keys_choice_tl },
-    bib-resource .clist_set:N = \l__xdu_bib_file_clist,
+    biblatex-option .tl_set:N = \l__xdu_biblatex_option_tl,
     ref-add-space .bool_set:N = \l__xdu_ref_add_space,
     caption-label-sep .tl_set:N = \l__xdu_cap_label_sep_tl,
     table-small-font .bool_set:N = \l__xdu_tab_small_bool,
@@ -560,7 +574,7 @@
     style / en-cjk-font          = false,
     style / language             = zh,
     style / bib-backend          = biblatex,
-    style / bib-resource         = { },
+    style / biblatex-option      = { },
     style / ref-add-space        = false,
     style / caption-label-sep    = { 0.75em },
     style / table-small-font     = true,
@@ -568,7 +582,7 @@
     style / before-skip          = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt },
     style / after-skip           = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt },
     style / symmetric-margin     = false,
-    style / page-vertical-align  = {顶部对齐}
+    style / page-vertical-align  = { 顶部对齐 }
   }
 \NewDocumentCommand \xdusetup { m }
   { \keys_set:nn { xdu } { #1 } }
@@ -596,6 +610,20 @@
     \str_set_eq:NN \l__xdu_pure_title_str \l__xdu_title_str
     \str_remove_all:Nn \l__xdu_pure_title_str { \\ }
   }
+\cs_new_protected:Npn \__xdu_split_title:Nn #1#2
+  {
+    \seq_new:N \l__xdu_title_seq
+    \tl_if_in:nnTF { #2 } { \\ }
+      {
+        \seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 }
+        \clist_set_from_seq:NN #1 \l__xdu_title_seq
+      }
+      {
+        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1  } { 14 } }
+        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
+      }
+  }
+\cs_generate_variant:Nn \__xdu_split_title:Nn { NV }
 \cs_new:Npn \__xdu_uline:n #1
   { \CJKunderline [ thickness = 0.5pt ] { #1 } }
 \cs_new:Npn \__xdu_tl_set_if_empty:Nn #1#2
@@ -623,10 +651,10 @@
   }
 \cs_new:Npn \__xdu_n_chapter_head_ii:nn #1#2
   {
-    {
+    \group_begin:
       \ctexset { chapter / format = { #2 } }
       \__xdu_n_chapter_head:n { #1 }
-    }
+    \group_end:
   }
 \cs_new:Npn \__xdu_n_chapter_head:nn #1#2
   {
@@ -636,10 +664,10 @@
   }
 \cs_new:Npn \__xdu_n_chapter_head_ii:nnn #1#2#3
   {
-    {
+    \group_begin:
       \ctexset { chapter / format = { #3 } }
       \__xdu_n_chapter_head:nn { #1 } { #2 }
-    }
+    \group_end:
   }
 \cs_new:Npn \__xdu_n_chapter_head_toc:n #1
   {
@@ -653,13 +681,20 @@
     \chapter* { #2 }
     \markboth { #1 } { }
   }
+\cs_new:Npn \__xdu_n_chapter_head_toc_ii:nn #1#2
+  {
+    \group_begin:
+      \ctexset { chapter / format = { #2 } }
+      \__xdu_n_chapter_head_toc:n { #1 }
+    \group_end:
+  }
 \cs_new:Npn \__xdu_typeout_keywords:nNn #1#2#3
   {
-    \str_clear_new:N \l__xdu_keywords_label_str
-    \str_set:Nn \l__xdu_keywords_label_str { #1 }
+    \tl_clear_new:N \l__xdu_keywords_label_str
+    \tl_set:Nn \l__xdu_keywords_label_tl { #1 }
     \dim_zero_new:N \l__xdu_keywords_label_dim
-    \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_str
-    \begin { list } { \l__xdu_keywords_label_str }
+    \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_tl
+    \begin { list } { \l__xdu_keywords_label_tl }
       {
         \labelwidth  \l__xdu_keywords_label_dim
         \labelsep    \c_zero_dim
@@ -669,6 +704,14 @@
       \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 }
     \end { list }
   }
+\dim_new:N \l__xdu_str_dim
+\box_new:N \l__xdu_str_box
+\cs_new:Npn \__xdu_str_max_dim:Nn #1#2
+  {
+    \hbox_set:Nn \l__xdu_str_box { #2 }
+    \dim_set:Nn \l__xdu_str_dim { \box_wd:N \l__xdu_str_box }
+    \dim_set:Nn #1  { \dim_max:nn { \l__xdu_str_dim } { #1 } }
+  }
 \NewDocumentCommand \noauxwrite { m }
   {
     \if at filesw
@@ -996,6 +1039,7 @@
       { \captionsetup [ subfloat ] { subrefformat = parens } }
       { }
   }
+\PassOptionsToPackage { labelformat = simple } { subcaption }
 \ctex_at_end_preamble:n
   {
     \@ifpackageloaded { subcaption }
@@ -1040,7 +1084,7 @@
       }
       { }
   }
-\RequirePackage{ hyperref }
+\RequirePackage { hyperref }
 \hypersetup
   {
     bookmarksnumbered,
@@ -1095,6 +1139,7 @@
           { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: }
       }
       {
+        \PassOptionsToPackage { \l__xdu_biblatex_option_tl } { biblatex }
         \RequirePackage { biblatex }
         \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } }
       }
@@ -1168,20 +1213,6 @@
         \hfil
       }
   }
-\cs_new_protected:Npn \__xdu_split_title:Nn #1#2
-  {
-    \seq_new:N \l__xdu_title_seq
-    \tl_if_in:nnTF { #2 } { \\ }
-      {
-        \seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 }
-        \clist_set_from_seq:NN #1 \l__xdu_title_seq
-      }
-      {
-        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1  } { 14 } }
-        \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
-      }
-  }
-\cs_generate_variant:Nn \__xdu_split_title:Nn { NV }
 \bool_new:N \l__xdu_is_ent_bool
 \bool_new:N \l__xdu_is_wide_bool
 \ctex_at_end_preamble:n
@@ -1236,7 +1267,7 @@
         \__xdu_cover_iii:nnnn { 校外导师姓名 } { rm } { -3 } { \l__xdu_supv_ent_str }
         \__xdu_cover_iii:nnnn { 校内导师姓名 } { rm } { -3 } { \l__xdu_supv_sch_str }
       }
-      {
+      \group_begin:
         \__xdu_cover_iii:nnnn { 导师姓名 } { rm } { -3 } { \l__xdu_supv_str }
         \tl_if_blank:VF \l__xdu_supv_dept_str
           {
@@ -1246,7 +1277,7 @@
               { -3                  }
               { \l__xdu_supv_dept_str }
           }
-      }
+      \group_end:
     \cleardoublepage
     \__xdu_load_main_geometry:
     \pagestyle     { plain }
@@ -1259,30 +1290,30 @@
           { 摘 { \quad } 要 }
           { \__xdu_sf_family: \zihao { 3 } \centering }
       }
-    {
+    \group_begin:
       \dim_set:Nn \parindent { 2 \ccwd }
       \rmfamily \zihao { -4 }
       \file_if_exist_input:n { \l__xdu_abstract_zh_tl }
-    }
-    \cs_new:Npn \__xdu_keywords_space: { \hspace{ 2em plus 1em minus 1em } }
-    {
+    \group_end:
+    \cs_new:Npn \__xdu_keywords_space: { \hspace { 2em plus 1em minus 1em } }
+    \group_begin:
       \sffamily \zihao { -4 } \par
       \__xdu_typeout_keywords:nNn
         { 关键词: } { \l__xdu_keywords_zh_clist } { \__xdu_keywords_space: }
-    }
+    \group_end:
     \cleardoublepage
     \__xdu_n_chapter_head_ii:nn
       { ABSTRACT } { \rmfamily \zihao { 3 } \bfseries \centering }
-    {
+    \group_begin:
       \dim_set:Nn \parindent { 2 \ccwd }
       \rmfamily \zihao { -4 }
       \file_if_exist_input:n { \l__xdu_abstract_en_tl }
-    }
-    {
+    \group_end:
+    \group_begin:
       \rmfamily \zihao { -4 } \bfseries \par
       \__xdu_typeout_keywords:nNn
         { Keywords: } { \l__xdu_keywords_en_clist } { \__xdu_keywords_space: }
-    }
+    \group_end:
     \cleardoublepage
     \setcounter { tocdepth } { 5 }
     \__xdu_n_chapter_head:nn
@@ -1304,14 +1335,14 @@
     \__xdu_n_chapter_head_toc:nn
       { \__xdu_lang_switch:nn { 致谢            } { Acknowledgements } }
       { \__xdu_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } }
-    {
+    \group_begin:
       \dim_set:Nn \parindent { 2 \ccwd }
       \rmfamily \zihao { -4 }
       \file_if_exist_input:n { \l__xdu_ack_tl }
-    }
+    \group_end:
     \cs_set:Npn \bibname { \__xdu_lang_switch:nn { 参考文献 } { Bibliography } }
     \__xdu_n_chapter_head_toc:n { \bibname }
-    {
+    \group_begin:
       \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex }
         {
           \cs_set:Npn \bibsection { }
@@ -1323,7 +1354,7 @@
           \cs_set:Npn \bibfont { \__xdu_rm_family: \zihao { 5 } }
           \printbibliography
         }
-    }
+    \group_end:
   }
 %% 
 %%



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