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.