From d6888fdb49e3ac954c2d436951f364d3a4a4b17d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 22 Jun 2022 03:01:02 +0000 Subject: CTAN sync 202206220301 --- macros/xetex/latex/xduts/README.md | 17 +- macros/xetex/latex/xduts/xduts.dtx | 2701 +++++++++++++++++++++++++++++++++--- macros/xetex/latex/xduts/xduts.pdf | Bin 441342 -> 665369 bytes 3 files changed, 2514 insertions(+), 204 deletions(-) (limited to 'macros/xetex/latex/xduts') diff --git a/macros/xetex/latex/xduts/README.md b/macros/xetex/latex/xduts/README.md index b8b0b431bd..f0120632c3 100644 --- a/macros/xetex/latex/xduts/README.md +++ b/macros/xetex/latex/xduts/README.md @@ -6,14 +6,14 @@ XDUTS (Xidian University TeX Suite) is a LaTeX3 document class and package suite XDUTS currently includes: -- `xduugthesis.cls`, Xidian University Undergraduate Thesis document class - `xdufont.sty`, Xidian University Font package +- `xdupgthesis.cls`, Xidian University Postgraduate Thesis document class +- `xduugthesis.cls`, Xidian University Undergraduate Thesis document class 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,15 +52,16 @@ texdoc xduts ### 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 diff --git a/macros/xetex/latex/xduts/xduts.dtx b/macros/xetex/latex/xduts/xduts.dtx index 967e6c1c4a..cb82f93235 100644 --- a/macros/xetex/latex/xduts/xduts.dtx +++ b/macros/xetex/latex/xduts/xduts.dtx @@ -1,14 +1,14 @@ % \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] % %\NeedsTeXFormat{LaTeX2e} %\RequirePackage{expl3} %\ProvidesExplPackage{xdufont} %\ProvidesExplClass{xdupgthesis} %\ProvidesExplClass{xduugthesis} -% {2022/05/15}{1.15.0.1} +% {2022/06/21}{2.0.0.0} % {Xidian University Font package} % {Xidian University Postgraduate Thesis document class} % {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} % 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} % % \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,11 +208,8 @@ % 而编写的\LaTeXiii{}文档类和宏包套装,目前有: % \begin{itemize} % \item \pkgx{xdufont},中/英/数学字体配置宏包。 -% \item \clsx{xduugthesis},本科毕业设计论文。 -% \end{itemize} -% 正在开发: -% \begin{itemize} % \item \clsx{xdupgthesis},研究生学位论文。 +% \item \clsx{xduugthesis},本科毕业设计论文。 % \end{itemize} % 即将支持: % \begin{itemize} @@ -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,11 +603,21 @@ % \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{页面配置} @@ -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,11 +1082,18 @@ % \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/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{提交日期} +% \optx{info/submit-date}=\argx{yyyy-mm} % \end{syntax} -% 设置提交日期。 +% 设置提交日期,如果留空,则自动使用编译当天年份和月份。 % \end{function} % \begin{function}[added=2022-04-02]{info/abstract,info/abstract*} % \begin{syntax} @@ -934,14 +1109,306 @@ % \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{致谢文件路径} % \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,13 +2360,14 @@ % \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, % \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} +% %<*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,20 +2803,77 @@ 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} % +%<*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} % { % \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,54 +3026,180 @@ 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} % +%<*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} -%<*class|xdufont> +\bool_new:N \l_@@_customize_los_bool % \end{macrocode} -% \subsection{键值选项} -% \begin{macro}{\xdusetup} -% 用户设置接口。 +% 是否完全自定义缩略语对照表。 % \begin{macrocode} -\NewDocumentCommand \xdusetup { m } - { \keys_set:nn { xdu } { #1 } } +\bool_new:N \l_@@_customize_loa_bool % \end{macrocode} -% \end{macro} +% 符号对照表列格式。 +% \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} -% 定义元(meta)键值对。 +% 定义信息键值。 % \begin{macrocode} -\keys_define:nn { xdu } +\keys_define:nn { xdu / style } { - style .meta:nn = { xdu / style } { #1 }, - info .meta:nn = { xdu / info } { #1 } +% \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}{\ProcessKeysOptions} -% 处理选项。 +% \begin{macro}{\keys_set:nn} +% 初始设置。 % \begin{macrocode} -\ProcessKeysOptions { xdu / style } +\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} -% -%<*xdupgthesis> +\bool_new:N \l_@@_customize_edubg_bool % \end{macrocode} -% \subsection{内部文本} -% \begin{variable}{l_@@_header_str} -% \changes{v1.7.0.0}{2022/05/02}{研究生页眉文本} -% 研究生页眉文本。 +% 是否完全自定义作者简介中攻读硕士学位期间的研究成果。 % \begin{macrocode} -\str_new:N \l_@@_header_str -\ctex_at_end_preamble:n +\bool_new:N \l_@@_customize_resresult_bool +% \end{macrocode} +% \end{variable} +% \begin{macro}{\keys_define:nn} +% 定义信息键值。 +% \begin{macrocode} +\keys_define:nn { xdu / style } { - \@@_lang_switch:nn - { +% \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} +% +%<*class|xdufont> +% \end{macrocode} +% \subsection{键值选项} +% \begin{macro}{\xdusetup} +% 用户设置接口。 +% \begin{macrocode} +\NewDocumentCommand \xdusetup { m } + { \keys_set:nn { xdu } { #1 } } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\keys_define:nn} +% 定义元(meta)键值对。 +% \begin{macrocode} +\keys_define:nn { xdu } + { + style .meta:nn = { xdu / style } { #1 }, + info .meta:nn = { xdu / info } { #1 } + } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ProcessKeysOptions} +% 处理选项。 +% \begin{macrocode} +\ProcessKeysOptions { xdu / style } +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +% +%<*xdupgthesis> +% \end{macrocode} +% \subsection{内部文本} +% \begin{variable}{l_@@_header_str} +% \changes{v1.7.0.0}{2022/05/02}{研究生页眉文本} +% 研究生页眉文本。 +% \begin{macrocode} +\str_new:N \l_@@_header_str +\ctex_at_end_preamble:n + { + \@@_lang_switch:nn + { \tl_if_eq:NnTF \l_@@_gr_type_tl { 硕士 } { \str_set:Nn \l_@@_header_str { 西安电子科技大学硕士学位论文 } } { \str_set:Nn \l_@@_header_str { 西安电子科技大学博士学位论文 } } @@ -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 % %<*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 % } @@ -2754,12 +3555,13 @@ foot = 1cm % %<*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 % } \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 @@ % %<*xdupgthesis> top = 3cm, - bottom = 2cm, + bottom = 1cm, inner = 3cm, outer = 2.5cm % @@ -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,15 +3721,16 @@ %<*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} \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} +% +%<*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} +% +%<*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} +% +%<*xduugthesis> +% \end{macrocode} +% \subsubsection{本科生} % \begin{variable}{\cftchapleader} % 修改目录中一级标题引导点。 % \begin{macrocode} @@ -3160,6 +4114,67 @@ % \end{variable} % \begin{macrocode} % +%<*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} +% %<*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,16 +4524,13 @@ { \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 } } } } % \end{macrocode} % \end{macro} -% \begin{macrocode} -% -%<*xduugthesis> -% \end{macrocode} % \subsection{附录} % \begin{macro}{appendixes} % 附录环境。 @@ -3543,8 +4557,14 @@ } % \end{macrocode} % \end{macro} -% \subsection{封面} +% \begin{macrocode} +% +%<*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 @@ % %<*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} +% +%<*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} +% +%<*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,27 +6103,154 @@ \cs_set:Npn \bibfont { \@@_rm_family: \zihao { 5 } } \printbibliography } - } + \group_end: } % \end{macrocode} % \end{macro} % \begin{macrocode} % -% \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} diff --git a/macros/xetex/latex/xduts/xduts.pdf b/macros/xetex/latex/xduts/xduts.pdf index 4160cedd52..c37cd0b7dc 100644 Binary files a/macros/xetex/latex/xduts/xduts.pdf and b/macros/xetex/latex/xduts/xduts.pdf differ -- cgit v1.2.3