summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-01-16 21:10:00 +0000
committerKarl Berry <karl@freefriends.org>2023-01-16 21:10:00 +0000
commit4bbebef6908cbe4af13028e80b8d098758767dfe (patch)
treea89e18d6b4110bbfa293228b9ae8990d441faf8f
parent47a241537fe72f9aef92d3601274ec8221e5050c (diff)
xduts (16jan23)
git-svn-id: svn://tug.org/texlive/trunk@65556 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/xelatex/xduts/README.md2
-rw-r--r--Master/texmf-dist/doc/xelatex/xduts/xduts.pdfbin321917 -> 331323 bytes
-rw-r--r--Master/texmf-dist/source/xelatex/xduts/xduts.dtx773
-rw-r--r--Master/texmf-dist/source/xelatex/xduts/xduts.ins1
-rw-r--r--Master/texmf-dist/tex/xelatex/xduts/xdufont.sty4
-rw-r--r--Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls18
-rw-r--r--Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls18
-rw-r--r--Master/texmf-dist/tex/xelatex/xduts/xduugtp.cls984
8 files changed, 1676 insertions, 124 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xduts/README.md b/Master/texmf-dist/doc/xelatex/xduts/README.md
index 492123b0b69..0f07728ea34 100644
--- a/Master/texmf-dist/doc/xelatex/xduts/README.md
+++ b/Master/texmf-dist/doc/xelatex/xduts/README.md
@@ -7,12 +7,12 @@ XDUTS (Xidian University TeX Suite) is a LaTeX3 document class and package suite
XDUTS currently includes:
- `xdufont.sty`, Xidian University Font package
+- `xduugtp.cls`, Xidian University Undergraduate Thesis Proposal document class
- `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
## Preparation
diff --git a/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf b/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf
index 10498b31663..d8b24f10535 100644
--- a/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf
+++ b/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/xelatex/xduts/xduts.dtx b/Master/texmf-dist/source/xelatex/xduts/xduts.dtx
index 7dcae05a0f2..32ac11d84b1 100644
--- a/Master/texmf-dist/source/xelatex/xduts/xduts.dtx
+++ b/Master/texmf-dist/source/xelatex/xduts/xduts.dtx
@@ -1,15 +1,17 @@
% \iffalse
%<*driver>
\ProvidesFile{xduts.dtx}
-[2022/12/11 v4.0.1.0 Xidian University TeX Suite]
+[2023/01/16 v4.1.1.0 Xidian University TeX Suite]
%</driver>
%<class|sty>\NeedsTeXFormat{LaTeX2e}
%<class|sty>\RequirePackage{expl3}
%<xdufont>\ProvidesExplPackage{xdufont}
+%<xduugtp>\ProvidesExplClass{xduugtp}
%<xdupgthesis>\ProvidesExplClass{xdupgthesis}
%<xduugthesis>\ProvidesExplClass{xduugthesis}
-%<class|sty> {2022/12/11}{4.0.1.0}
+%<class|sty> {2023/01/16}{4.1.1.0}
%<xdufont> {Xidian University Font package}
+%<xduugtp> {Xidian University Undergraduate Thesis Proposal class}
%<xdupgthesis> {Xidian University Postgraduate Thesis document class}
%<xduugthesis> {Xidian University Undergraduate Thesis document class}
%<*driver>
@@ -187,7 +189,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \clearpage
% \begin{documentation}
% \changes{v2.12.1.1}{2022/07/28}{使用\clsx{l3doc}文档和实现环境}
-% \section*{\contentsname\markright{目录}}
+% \section*{\contentsname\markright{\contentsname}}
% \makeatletter
% \@starttoc{toc}
% \makeatother
@@ -199,13 +201,13 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% 而编写的\LaTeXiii{}文档类和宏包套装,目前有:
% \begin{itemize}
% \item \pkgx{xdufont.sty},中/英/数学字体配置宏包。
+% \item \clsx{xduugtp.cls},本科生毕业设计论文开题报告文档类。
% \item \clsx{xdupgthesis.cls},研究生学位论文文档类。
-% \item \clsx{xduugthesis.cls},本科毕业设计论文文档类。
+% \item \clsx{xduugthesis.cls},本科生毕业设计论文文档类。
% \end{itemize}
% 即将支持:
% \begin{itemize}
-% \item \clsx{xdupgtp.cls},研究生学位论文开题报告表文档类。
-% \item \clsx{xduugtp.cls},本科毕业设计论文开题报告表文档类。
+% \item \clsx{xdupgtp.cls},研究生学位论文开题报告文档类。
% \end{itemize}
% \par
% \changes{v1.2.0.1}{2022/04/19}{增加GitHub Discussions}
@@ -250,6 +252,35 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{lstlisting}
% \par
% 学会以上用法后即可使用\pkgx{xdufont}宏包。
+% \subsection{\pkgx{xduugtp}文档类}
+% \pkgx{xduugtp}文档类基于\clsx{ctexart}文档类,
+% 提供多种字体配置,信息录入便捷。
+% 请在阅读《西安电子科技大学本科毕设设计(论文)开题报告》后再使用\pkgx{xduugtp}文档类。
+% \par
+% 使用\clsx{xduugtp}文档类的最小示例如下所示:
+% \begin{lstlisting}
+% \documentclass{xduugtp}
+% \xdusetup{}
+% \begin{document}
+% \section{论文名称及项目来源}
+% \section{研究目的和意义}
+% \section{国内外研究现状和发展趋势}
+% \section{主要研究内容、要解决的问题及本文的初步方案}
+% \section{工作的主要阶段、进度和完成时间}
+% \section{已进行的前期准备工作}
+% \section{指导教师意见}
+% \section{学院审核意见}
+% \end{document}
+% \end{lstlisting}
+% \par
+% \secrefx{编译}介绍了如何编译,
+% \secrefx{参考文献引用}介绍了如何引用参考文献,
+% \secrefx{参数设置}介绍了如何自定义配置。
+% 其中,字体选项见\secrefx{字体选项},
+% 参考文献配置见\secrefx{参考文献配置},
+% 支持的信息录入选项见\secrefx{信息录入}。
+% \par
+% 学会以上用法后即可使用\clsx{xduugtp}文档类。
% \changes{v1.4.0.0}{2022/04/26}{新增研究生学位论文}
% \changes{v1.30.0.2}{2022/06/20}{研究生学位论文文档}
% \changes{v2.2.1.1}{2022/06/23}{移除研究生学位论文中关于章节配置的文档}
@@ -329,7 +360,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \changes{v1.3.0.1}{2022/04/20}{增加兼容性说明}
% \section{兼容性说明}
% \label{兼容性说明}
-% \xduts{}对部分常见宏包进行了针对性地适配,
+% \pkgx{xduugthesis}和\pkgx{xduugthesis}文档类对部分常见宏包进行了针对性地适配,
% 需要注意的是,这些宏包仍需用户视需求自行加载。
% \subsection{算法}
% 主要适配算法内容字号和默认浮动位置。
@@ -347,6 +378,9 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% 包括所有使用\envx{table}浮动体的表格、
% \pkgx{tabularray}宏包提供的\envx{tblr}、\envx{longtblr}环境
% 和\pkgx{longtable}宏包提供的\envx{longtable}环境。
+% \changes{v4.1.1.0}{2023/01/16}{适配子表样式}
+% 以及适配子表caption字体字号和子表引用样式,
+% 包括\pkgx{subfig}宏包和\pkgx{subcaption}宏包。
% \changes{v4.0.0.1}{2022/12/11}{增加使用建议}
% \section{使用建议}
% \label{使用建议}
@@ -456,7 +490,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% row{odd[3-Z]} = {gray9!40},
% cell{1}{2} = {c=2}{},
% cell{1}{1,4,5} = {r=2}{},
-% row{1-2} = {cmd=\strong}
+% row{1-2} = {cmd=\strong}
% }
% 选项名称 & 罗马族 & & 无衬线族 & 打字机族 \\
% & 直立/倾斜形状 & 意大利形状 & & \\
@@ -631,9 +665,6 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% }
% \end{lstlisting}
% \end{function}
-% \begin{function}[added=2022-04-02]{style/bib-resource}
-% 已弃用,请使用\secrefx{信息录入}中的\optx{info/bib-resource}。
-% \end{function}
% \subsection{页面配置}
% \label{页面配置}
% \begin{function}[added=2022-04-12]{style/symmetric-margin}
@@ -701,13 +732,6 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{syntax}
% 设置图、表、算法标签与后面标题之间的间距,默认值为\valuex{0.75em}。
% \end{function}
-% \changes{v2.17.0.0}{2022/11/28}{设置图、表、算法caption格式}
-% \begin{function}[added=2022-11-28]{style/caption-format}
-% 已弃用。
-% \end{function}
-% \begin{function}[added=2022-04-03]{style/fig-label-sep}
-% 已弃用。
-% \end{function}
% \subsection{图表配置}
% \label{图表配置}
% \changes{v3.0.0.0}{2022/12/03}{设置图表caption格式}
@@ -800,9 +824,6 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \item[false] 不增加。
% \end{optdesc}
% \end{function}
-% \begin{function}[added=2022-11-29]{style/algorithm-caption-align}
-% 已弃用。
-% \end{function}
% \subsection{章节配置}
% \label{章节配置}
% \begin{function}[added=2022-04-05]{style/before-skip}
@@ -970,12 +991,6 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{resresult}
% \end{lstlisting}
% \end{optdesc}
-% \subsection{附录环境}
-% \label{附录环境}
-% \changes{v1.29.0.0}{2022/06/19}{研究生学位论文附录环境}
-% \begin{function}[added=2022-04-04,updated=2022-06-19]{appendixes}
-% 已弃用。
-% \end{function}
% \subsection{信息录入}
% \label{信息录入}
% \changes{v2.18.1.0}{2022/12/01}{增加专业博士校外导师和英文学位类别信息录入}
@@ -991,60 +1006,69 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% ]
% {
% width = \linewidth,
-% colspec = lX[c]X[c]X[c]X[c]X[c]X[c],
-% cell{1}{1} = {r=2}{},
-% cell{1}{2,4,6} = {c=2}{},
-% hline{1,Z} = {.08em},
-% hline{2} = {2-3}{.08em,leftpos=-1,rightpos=-1,endpos},
-% hline{2} = {4-5}{.08em,leftpos=-1,rightpos=-1,endpos},
-% hline{2} = {6-7}{.08em,leftpos=-1,rightpos=-1,endpos},
-% hline{3} = {.08em},
-% row{odd[3-Z]} = {gray9!40},
-% cell{3-Z}{1} = {cmd=\texttt},
-% rowhead = 2
+% colspec = lX[c]X[c]X[c]X[c]X[c]X[c]X[c],
+% cell{1}{3} = {c=2}{},
+% cell{1}{5} = {c=4}{},
+% cell{2}{2} = {r=2}{},
+% cell{2}{3,5,7} = {c=2}{},
+% hline{1,4,Z} = {.08em},
+% hline{2} = {2-2}{.08em,leftpos=-1,rightpos=-1,endpos},
+% hline{2} = {3-4}{.08em,leftpos=-1,rightpos=-1,endpos},
+% hline{2} = {5-8}{.08em,leftpos=-1,rightpos=-1,endpos},
+% hline{3} = {3-4}{.08em,leftpos=-1,rightpos=-1,endpos},
+% hline{3} = {5-6}{.08em,leftpos=-1,rightpos=-1,endpos},
+% hline{3} = {7-8}{.08em,leftpos=-1,rightpos=-1,endpos},
+% row{odd[4-Z]} = {gray9!40},
+% cell{4-Z}{1} = {cmd=\texttt},
+% rowhead = 3
% }
-% & 本科 & & 硕士 & & 博士 & \\
-% & 校内 & 校外 & 学术 & 专业 & 学术 & 专业 \\
-% graduate-type & & & \cmark & \cmark & \cmark & \cmark \\
-% degree-type & & & \cmark & \cmark & \cmark & \cmark \\
-% degree & & & \cmark & \cmark & \cmark & \cmark \\
-% degree* & & & & \cmark & & \cmark \\
-% title & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
-% title* & & & \cmark & \cmark & \cmark & \cmark \\
-% department & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
-% major & \cmark & \cmark & \cmark & & \cmark & \\
-% major* & & & \cmark & & \cmark & \\
-% sub-major & & & \cmark & & \cmark & \\
-% domain & & & & \cmark & & \cmark \\
-% author & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
-% author* & & & \cmark & \cmark & \cmark & \cmark \\
-% supervisor & \cmark & & \cmark & \cmark & \cmark & \cmark \\
-% supervisor* & & & \cmark & \cmark & \cmark & \cmark \\
-% supervisor-department & \cmark & & & & & \\
-% supervisor-enterprise & & \cmark & & \cmark & & \cmark \\
-% supervisor-enterprise* & & & & \cmark & & \cmark \\
-% supervisor-school & & \cmark & & & & \\
-% supervisor-title & & & \cmark & \cmark & \cmark & \cmark \\
-% supervisor-title* & & & \cmark & \cmark & \cmark & \cmark \\
-% supervisor-enterprise-title & & & & \cmark & & \cmark \\
-% supervisor-enterprise-title* & & & & \cmark & & \cmark \\
-% class-id & \cmark & \cmark & & & & \\
-% 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 \\
-% statement-scan & & & \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 \\
-% appendix & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
-% acknowledgements & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
-% bio & & & \cmark & \cmark & \cmark & \cmark \\
+% & 开题 & 毕业设计 & & 学位论文 & & & \\
+% & 本科 & 本科 & & 硕士 & & 博士 & \\
+% & & 校内 & 校外 & 学术 & 专业 & 学术 & 专业 \\
+% graduate-type & & & & \cmark & \cmark & \cmark & \cmark \\
+% degree-type & & & & \cmark & \cmark & \cmark & \cmark \\
+% degree & & & & \cmark & \cmark & \cmark & \cmark \\
+% degree* & & & & & \cmark & & \cmark \\
+% title & & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% title* & & & & \cmark & \cmark & \cmark & \cmark \\
+% department & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% major & \cmark & \cmark & \cmark & \cmark & & \cmark & \\
+% major* & & & & \cmark & & \cmark & \\
+% sub-major & & & & \cmark & & \cmark & \\
+% domain & & & & & \cmark & & \cmark \\
+% author & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% author* & & & & \cmark & \cmark & \cmark & \cmark \\
+% supervisor & \cmark & \cmark & & \cmark & \cmark & \cmark & \cmark \\
+% supervisor* & & & & \cmark & \cmark & \cmark & \cmark \\
+% supervisor-department & & \cmark & & & & & \\
+% supervisor-enterprise & & & \cmark & & \cmark & & \cmark \\
+% supervisor-enterprise* & & & & & \cmark & & \cmark \\
+% supervisor-school & & & \cmark & & & & \\
+% supervisor-title & & & & \cmark & \cmark & \cmark & \cmark \\
+% supervisor-title* & & & & \cmark & \cmark & \cmark & \cmark \\
+% supervisor-enterprise-title & & & & & \cmark & & \cmark \\
+% supervisor-enterprise-title* & & & & & \cmark & & \cmark \\
+% class & \cmark & & & & & & \\
+% class-id & & \cmark & \cmark & & & & \\
+% student-id & \cmark & \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 & \cmark \\
+% statement-scan & & & & \cmark & \cmark & \cmark & \cmark \\
+% statement-sign & & & & \cmark & \cmark & \cmark & \cmark \\
+% sign & \cmark & & & & & & \\
+% date & \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 & \cmark \\
+% appendix & & \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}
@@ -1154,6 +1178,12 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{syntax}
% 设置校外导师职称。
% \end{function}
+% \begin{function}[added=2022-12-31]{info/class}
+% \begin{syntax}
+% \optx{info/class}=\argx{界}
+% \end{syntax}
+% 设置界,即毕业年份。
+% \end{function}
% \begin{function}[added=2022-04-01]{info/class-id}
% \begin{syntax}
% \optx{info/class-id}=\argx{作者班级号}
@@ -1185,11 +1215,12 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% 设置保密年限,仅在\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{function}[added=2022-05-03,updated=2022-12-31]{info/submit-date}
% \begin{syntax}
% \optx{info/submit-date}=\argx{yyyy-mm}
+% \optx{info/submit-date}=\argx{yyyy-mm-dd}
% \end{syntax}
-% 设置提交日期,如果留空,则自动使用编译当天年份和月份。
+% 设置提交日期,如果留空,则自动使用编译当天日期。
% \end{function}
% \changes{v2.1.0.0}{2022/06/22}{声明页扫描文件路径}
% \begin{function}[added=2022-06-22]{info/statement-scan}
@@ -1214,6 +1245,27 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \item[文件路径5] 关于论文使用授权的说明导师签名文件路径。
% \item[文件路径6] 关于论文使用授权的说明日期文件路径。
% \end{optdesc}
+% \begin{function}[added=2022-12-31]{info/sign}
+% \begin{syntax}
+% \optx{info/sign}=\argx{文件路径1,文件路径2}
+% \end{syntax}
+% 设置开题报告签名文件路径。
+% 文件支持格式与\tnx{includegraphics}一致,建议文件为透明背景且仅有黑色,并尽量减少边距。
+% \end{function}
+% \begin{optdesc}
+% \item[文件路径1] 指导教师意见签名文件路径。
+% \item[文件路径2] 学院审核意见签名文件路径。
+% \end{optdesc}
+% \begin{function}[added=2022-12-31]{info/date}
+% \begin{syntax}
+% \optx{info/date}=\argx{日期1,日期2}
+% \end{syntax}
+% 设置开题报告签名日期,格式为\argx{yyyy-mm-dd},如果留空,则自动使用编译当天日期。
+% \end{function}
+% \begin{optdesc}
+% \item[日期1] 指导教师意见签名日期。
+% \item[日期2] 学院审核意见签名日期。
+% \end{optdesc}
% \begin{function}[added=2022-04-02]{info/abstract,info/abstract*}
% \begin{syntax}
% \optx{info/abstract}=\argx{中文摘要文件路径}
@@ -1659,13 +1711,19 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% 和《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}、\filex{fduthesis.dtx}、\filex{njuthesis.dtx}和\filex{thuthesis.dtx}。
+% \changes{v4.0.1.1}{2022/12/12}{增加支付宝红包二维码}
% \changes{v3.1.1.3}{2022/12/10}{二维码增加图标}
% \changes{v3.1.1.2}{2022/12/06}{增加QQ支付二维码}
% \changes{v2.16.1.2}{2022/11/27}{修正文档中图片引用间距}
% \changes{v2.15.0.1}{2022/11/26}{增加赞助二维码}
% \section{赞助}
-% 如果觉得\xduts{}对您有所帮助,可以扫描\figrefx{fig:zanzhu}中的二维码来赞助\xduts{},赞助主要用于给作者补充营养。
+% 如果\xduts{}对您有所帮助,
+% 可以扫描\figrefx{fig:zanzhu}中的二维码来赞助\xduts{}。
% \ExplSyntaxOn
+% \str_set_convert:Nnnn \l_xduts_alipay_red_packet_qr_str {%
+% 68747470733A2F2F71722E616C697061792E636F6D2F31317731333035336232617236757438%
+% 71386C6A323062} { utf8/hex } { }
+% \newcommand{\alipayredpacketqr}{\str_use:N \l_xduts_alipay_red_packet_qr_str}
% \str_set_convert:Nnnn \l_xduts_alipay_qr_str {%
% 68747470733A2F2F71722E616C697061792E636F6D2F666B7831353935393164716575747463%
% 77626175726235} { utf8/hex } { }
@@ -1682,18 +1740,20 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% 266E3D4361726F6C26663D77616C6C6574 } { utf8/hex } { }
% \newcommand{\qqqr}{\str_use:N \l_xduts_qq_qr_str}
% \ExplSyntaxOff
+% \definecolor{alipayredpacketc}{RGB}{198,48,56}
% \definecolor{alipayc}{RGB}{22,120,255}
% \definecolor{weixinc}{RGB}{7,193,96}
% \definecolor{qqc}{RGB}{18,184,246}
% \NewDocumentCommand{\qrcodex}{mmm}{
% \begin{tikzpicture}
-% \node at (0,0) {\textcolor{#3!30}{\qrcode[height=4cm]{#1}}};
-% \node at (current bounding box.center) {\textcolor{#3}{\scalebox{3}{\faIcon{#2}}}};
+% \node at (0,0) {\textcolor{#3!30}{\qrcode[height=.21\textwidth]{#1}}};
+% \node at (current bounding box.center) {\textcolor{#3}{\scalebox{2.1}{\faIcon{#2}}}};
% \end{tikzpicture}
% }
% \begin{figure}[htbp]
% \centering
% \mbox{}\hfill
+% \subcaptionbox{扫码领红包}{\qrcodex{\alipayredpacketqr}{alipay}{alipayredpacketc}}\hfill
% \subcaptionbox{支付宝}{\qrcodex{\alipayqr}{alipay}{alipayc}}\hfill
% \subcaptionbox{微信支付}{\qrcodex{\wxpqr}{weixin}{weixinc}}\hfill
% \subcaptionbox{QQ支付}{\qrcodex{\qqqr}{qq}{qqc}}
@@ -1733,7 +1793,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \changes{v0.3.2.0}{2022/04/04}{修正行间距为1.5倍}
% \changes{v1.8.1.0}{2022/05/03}{修正页面尺寸}
% \changes{v1.9.2.0}{2022/05/04}{修正行间距为1.625倍}
-% 加载\clsx{ctexbook}文档类。
+% 加载\clsx{ctexbook}或\clsx{ctexart}文档类。
% \\
% \LaTeX{}中基本行距是字号大小的1.2倍,Microsoft Word中基本行距是字号大小的1.3倍,
% Microsoft Word中1.5倍行距,相当于LaTeX中$1.5\times\frac{1.3}{1.2}=1.625$倍行距。
@@ -1746,8 +1806,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
%<xduugthesis> linespread = 1.625,
fontset = none
}
- { ctexbook }
-\LoadClass { ctexbook }
+%<thesis> { ctexbook }
+%<tp> { ctexart }
+%<thesis>\LoadClass { ctexbook }
+%<tp>\LoadClass { ctexart }
% \end{macrocode}
% \end{macro}
% 设置纸张尺寸为A4。
@@ -2562,7 +2624,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{macro}
% \begin{macrocode}
%</class|xdufont>
-%<*thesis>
+%<*thesis|tp>
% \end{macrocode}
% \subsection{信息录入}
% \changes{v1.8.0.0}{2022/05/02}{拆分信息录入选项}
@@ -2748,7 +2810,72 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{macrocode}
% \end{variable}
% \begin{macrocode}
-%</thesis>
+%</thesis|tp>
+%<*xduugtp>
+% \end{macrocode}
+% \subsubsection{本科生开题报告}
+% \begin{variable}
+% {
+% \l_@@_class_str,
+% \l_@@_submit_date_str,
+% \l_@@_sign_clist,
+% \l_@@_date_clist
+% }
+% 界。
+% \begin{macrocode}
+\str_new:N \l_@@_class_str
+% \end{macrocode}
+% 提交日期。
+% \begin{macrocode}
+\str_new:N \l_@@_submit_date_str
+% \end{macrocode}
+% 签名文件路径。
+% \begin{macrocode}
+\clist_new:N \l_@@_sign_clist
+% \end{macrocode}
+% 签名日期。
+% \begin{macrocode}
+\clist_new:N \l_@@_date_clist
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义信息键值。
+% \begin{macrocode}
+\keys_define:nn { xdu / info }
+ {
+% \end{macrocode}
+% 界。
+% \begin{macrocode}
+ class .tl_set:N = \l_@@_class_str,
+% \end{macrocode}
+% 提交日期。
+% \begin{macrocode}
+ submit-date .tl_set:N = \l_@@_submit_date_str,
+% \end{macrocode}
+% 签名文件路径。
+% \begin{macrocode}
+ sign .clist_set:N = \l_@@_sign_clist,
+% \end{macrocode}
+% 签名日期。
+% \begin{macrocode}
+ date .clist_set:N = \l_@@_date_clist
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+% \begin{macrocode}
+\keys_set:nn { xdu }
+ {
+ info / class = { },
+ info / submit-date = { },
+ info / sign = { },
+ info / date = { }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</xduugtp>
%<*xduugthesis>
% \end{macrocode}
% \subsubsection{本科生}
@@ -3286,7 +3413,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{macro}
% \begin{macrocode}
%</xdupgthesis>
-%<*thesis>
+%<*thesis|xduugtp>
% \end{macrocode}
% \subsection{标签宏配置}
% \label{标签宏配置}
@@ -3551,7 +3678,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
-%</thesis>
+%</thesis|xduugtp>
%<*xdupgthesis>
% \end{macrocode}
% \changes{v1.22.0.0}{2022/06/05}{对照表样式配置}
@@ -3780,6 +3907,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
}
% \end{macrocode}
% \end{variable}
+% \changes{v4.0.2.0}{2022/12/26}{移除本科生毕业设计标题自动换行功能}
% \begin{macro}{\@@_split_title:Nn,\@@_split_title:NV}
% 拆分标题。
% \begin{arguments}
@@ -3795,10 +3923,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
\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 } }
- }
+ { \clist_set:Nx #1 { #2 } }
}
\cs_generate_variant:Nn \@@_split_title:Nn { NV }
% \end{macrocode}
@@ -3984,6 +4109,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis>
+%<*thesis|xduugtp>
+% \end{macrocode}
% \begin{macro}{\@@_str_max_dim:Nn}
% \changes{v1.26.4.0}{2022/06/10}{计算字符串多大长度}
% 计算字符串多大长度。
@@ -4002,6 +4131,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis|xduugtp>
+%<*thesis>
+% \end{macrocode}
% \subsection{额外命令}
% \begin{macro}{\noauxwrite}
% \changes{v1.15.0.0}{2022/05/13}{\tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用}
@@ -4120,6 +4253,32 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
%</xdupgthesis>
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis>
+%<*tp>
+% \end{macrocode}
+% \changes{v4.1.0.0}{2022/12/31}{设置本科生毕业设计开题报告页边距}
+% \begin{macro}{\newgeometry,\savegeometry,\loadgeometry}
+% 设置本科生毕业设计开题报告页边距。
+% \begin{macrocode}
+\newgeometry
+ {
+ left = 3.17cm,
+ right = 3.17cm,
+ top = 2.54cm,
+ bottom = 2.54cm,
+ footskip = 0cm,
+ headsep = 0cm,
+ headheight = 0cm
+ }
+\savegeometry { main }
+\loadgeometry { main }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</tp>
+%<*thesis>
+% \end{macrocode}
% \begin{macro}{\@@_load_main_geometry:}
% \changes{v0.8.0.0}{2022/04/12}{根据用户配置加载正文页边距配置}
% 根据用户配置加载正文页边距配置。
@@ -5034,11 +5193,11 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
\tl_if_eq:NnTF \l_@@_alg_cap_align_tl { centering }
{
\parbox { \columnwidth }
- { \centering \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2}
+ { \centering \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2 }
}
{
\parbox { \columnwidth }
- { \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2}
+ { \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2 }
}
}
}
@@ -5152,15 +5311,19 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\thesubfigure}
+% \changes{v4.1.1.0}{2023/01/16}{适配子表样式}
% \changes{v1.13.5.0}{2022/05/08}{设置\pkgx{subcaption}宏包子图引用样式}
% \changes{v1.20.1.0}{2022/05/30}{修复\pkgx{subcaption}宏包子图标签样式}
-% 设置\pkgx{subcaption}宏包子图引用样式。
+% 设置\pkgx{subcaption}宏包子图子表引用样式。
% \begin{macrocode}
\PassOptionsToPackage { labelformat = simple } { subcaption }
\ctex_at_end_preamble:n
{
\@ifpackageloaded { subcaption }
- { \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) } }
+ {
+ \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) }
+ \cs_set:Npn \thesubtable { ( \alph { subtable } ) }
+ }
{ }
}
% \end{macrocode}
@@ -5223,6 +5386,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis>
+%<*thesis|tp>
+% \end{macrocode}
% \subsection{超链接和PDF元数据}
% \begin{macro}{\hypersetup}
% \changes{v0.5.0.0}{2022/04/05}{添加PDF主题元数据}
@@ -5239,7 +5406,9 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
{
\hypersetup
{
- pdftitle = \l_@@_pure_title_str,
+%<thesis> pdftitle = \l_@@_pure_title_str,
+%<xduugtp> pdfsubject = { 西安电子科技大学本科生毕业论文(设计)开题报告 },
+%<xduugtp> pdfcreator = { XeLaTeX~with~xduugtp~class~in~XDUTS },
%<xduugthesis> pdfsubject = { 西安电子科技大学本科毕业设计论文 },
%<xduugthesis> pdfcreator = { XeLaTeX~with~xduugthesis~class~in~XDUTS },
%<xdupgthesis> pdfsubject = \l_@@_header_str,
@@ -5249,6 +5418,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis|tp>
+%<*thesis>
+% \end{macrocode}
% \subsection{交叉引用}
% \begin{macro}{\ref,\pageref}
% \changes{v1.2.0.0}{2022/04/16}{优化中文环境下\tnx{ref}两侧中英文间空白}
@@ -5282,6 +5455,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis>
+%<*thesis|tp>
+% \end{macrocode}
% \subsection{参考文献}
% \begin{macro}{\@@_begin_document:n}
% 钩子。
@@ -5345,12 +5522,17 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
{
%<xdupgthesis> \rmfamily
%<xduugthesis> \@@_rm_family:
- \zihao { 5 }
+%<thesis> \zihao { 5 }
+%<tp> \zihao { -4 }
%<xdupgthesis> \dim_set:Nn \baselineskip { 20pt }
}
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis|tp>
+%<*thesis>
+% \end{macrocode}
% \subsection{附录}
% \begin{macro}{\@@_appendix:}
% 附录环境。
@@ -7225,7 +7407,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
%</xdupgthesis>
%<*thesis>
% \end{macrocode}
-% \section{前言、正文和后记部分}
+% \subsection{前言、正文和后记部分}
% \changes{v4.0.0.0}{2022/12/11}{本科生毕业设计和研究生学位论文添加前言、正文和后记部分}
% 本科生毕业设计和研究生学位论文添加前言、正文和后记部分。
% \begin{macrocode}
@@ -7234,6 +7416,391 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1}
% \end{macrocode}
% \begin{macrocode}
%</thesis>
+%<*xduugtp>
+% \end{macrocode}
+% \changes{v4.1.0.0}{2022/12/31}{新增本科生毕业设计开题报告}
+% \subsection{本科生毕业设计开题报告}
+% \begin{macro}{\tcbset}
+% 自定义线框样式。
+% \begin{macrocode}
+\PassOptionsToPackage { breakable } { tcolorbox }
+\RequirePackage { tcolorbox }
+\dim_new:N \l_@@_box_margin_dim
+\dim_set:Nn \l_@@_box_margin_dim { 5pt }
+\dim_new:N \l_@@_box_rule_dim
+\dim_set:Nn \l_@@_box_rule_dim { 0.5pt }
+\tcbset
+ {
+ standard~jigsaw,
+ sharp~corners = all,
+ colframe = black,
+ opacityback = 0,
+ boxsep = 0pt,
+ boxrule = \l_@@_box_rule_dim,
+ top = \l_@@_box_margin_dim,
+ bottom = \l_@@_box_margin_dim,
+ left = \l_@@_box_margin_dim,
+ right = \l_@@_box_margin_dim,
+ beforeafter~skip = 0pt,
+ before~upper =
+ {
+ \dim_set:Nn \parindent { 2em }
+ \dim_set:Nn \baselineskip { 20pt }
+ }
+ }
+\tcbset
+ {
+ tpboxi/.style =
+ {
+ breakable = true,
+ height~fixed~for = first~and~middle
+ },
+ tpboxii/.style =
+ {
+ breakable = true,
+ height~fixed~for = all,
+ height~fill = maximum
+ },
+ tpboxiii/.style =
+ {
+ height = .5\textheight + .5\l_@@_box_rule_dim,
+ space~to~upper = true,
+ lower~separated = false,
+ halign~lower = flush~right
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{tpbox}
+% 自定义\envx{tpbox}环境,便于实现用户正文输入为空亦可编译。
+% \begin{macrocode}
+\RequirePackage { graphicx }
+\int_new:N \l_@@_sign_no_int
+\int_set:Nn \l_@@_sign_no_int { 1 }
+\NewDocumentEnvironment { tpbox } { oo }
+ { \IfNoValueF { #1 } { \begin { tcolorbox } [ #1 ] } }
+ {
+ \IfNoValueF { #1 }
+ {
+ \IfNoValueF { #2 }
+ {
+ \tcblower
+ 签名
+ \clist_if_empty:NTF \l_@@_sign_clist
+ { \skip_horizontal:n { 6em } \hbox:n { } }
+ {
+ \skip_horizontal:n { 1em }
+ \includegraphics [ width = 10em, height = 25pt, keepaspectratio ]
+ {
+ \str_if_eq:nnTF { #2 } { 指导教师意见 }
+ { \clist_item:Nn \l_@@_sign_clist { 1 } }
+ { \clist_item:Nn \l_@@_sign_clist { 2 } }
+ }
+ }
+ \\
+ \clist_if_empty:NTF \l_@@_date_clist
+ { \@@_zh_today: }
+ {
+ \str_if_eq:nnTF { #2 } { 指导教师意见 }
+ { \clist_item:Nn \l_@@_zh_date_clist { 1 } }
+ { \clist_item:Nn \l_@@_zh_date_clist { 2 } }
+ }
+ }
+ \end { tcolorbox }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_bib:}
+% \begin{macrocode}
+\cs_new:Npn \@@_bib:
+ {
+ \cs_set:Npn \bibname { 参考文献 }
+ \subsection* { \bibname }
+ \group_begin:
+ \tl_if_eq:NnTF \l_@@_bib_tool_tl { bibtex }
+ {
+ \dim_set:Nn \labelsep { 1ex }
+ \bibliography { \l_@@_bib_file_clist }
+ }
+ { \printbibliography }
+ \group_end:
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\section}
+% 重定义\csx{section}命令。
+% \begin{macrocode}
+\cs_new_eq:NN \@@_org_sec:n \section
+\RenewDocumentCommand \section { m }
+ {
+ \str_case:nnTF { #1 }
+ {
+ { 论文名称及项目来源 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [tpboxi]
+ }
+ { 研究目的和意义 }
+ {
+ \end { tpbox }
+ \skip_vertical:n { -\l_@@_box_rule_dim }
+ \skip_vertical:n { \z@skip }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 国内外研究现状和发展趋势 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 主要研究内容、要解决的问题及本文的初步方案 }
+ {
+ \@@_bib:
+ \end { tpbox }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 工作的主要阶段、进度和完成时间 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [ tpboxi ]
+ }
+ { 已进行的前期准备工作 }
+ {
+ \end { tpbox }
+ \skip_vertical:n { -\l_@@_box_rule_dim }
+ \skip_vertical:n { \z@skip }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 指导教师意见 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [ tpboxiii ] [ 指导教师意见 ]
+ }
+ { 学院审核意见 }
+ {
+ \end { tpbox }
+ \skip_vertical:n { -\l_@@_box_rule_dim }
+ \skip_vertical:n { \z@skip }
+ \begin { tpbox } [ tpboxiii ] [ 学院审核意见 ]
+ }
+ }
+ { \@@_org_sec:n { #1 } }
+ { }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pagestyle}
+% 移除页码。
+% \begin{macrocode}
+\pagestyle { empty }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctexset}
+% 设置标题样式。
+% \begin{macrocode}
+\ctexset
+ {
+ section / name = { ,、 },
+ subsection / name = { (,) },
+ subsubsection / name = { (,) },
+ section / number = { \chinese { section } },
+ subsection / number = { \chinese { subsection } },
+ subsubsection / number = { \arabic { subsubsection } },
+ section / format = { \raggedright \zihao { -4 } },
+ subsection / format = { \raggedright \zihao { -4 } },
+ subsubsection / format = { \raggedright \zihao { -4 } },
+ section / aftername = { },
+ subsection / aftername = { },
+ subsubsection / aftername = { },
+ section / beforeskip = { 0pt },
+ subsection / beforeskip = { 8pt },
+ subsubsection / beforeskip = { 8pt },
+ section / afterskip = { 0pt },
+ subsection / afterskip = { 0pt },
+ subsubsection / afterskip = { 0pt },
+ section / indent = { 0em },
+ subsection / indent = { 0em },
+ subsubsection / indent = { 2em },
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_uline:n,\@@_uline:nn}
+% 下划线。
+% \begin{macrocode}
+\RequirePackage { xeCJKfntef }
+\cs_new:Npn \@@_uline:n #1
+ { \CJKunderline [ thickness = 1pt ] { #1 } }
+\cs_new:Npn \@@_uline:nn #1#2
+ { \CJKunderline [ thickness = 1pt ] { \hbox_to_wd:nn { #1 } { \hfil #2 \hfil } } }
+% \end{macrocode}
+% \end{macro}
+% \begin{variable}{\l_@@_cover_author_info_dim}
+% 获取封面作者信息最大宽度。
+% \begin{macrocode}
+\dim_new:N \l_@@_cover_author_info_dim
+\dim_set:Nn \l_@@_cover_author_info_dim { 5em }
+\ctex_at_end_preamble:n
+ {
+ \rmfamily \zihao { -3 }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_author_str }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_major_str }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_student_id_str }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_supv_str }
+ \dim_add:Nn \l_@@_cover_author_info_dim { 2em }
+ }
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\@@_cover_author_info:nn}
+% 绘制封面作者信息。
+% \begin{macrocode}
+\cs_new:Npn \@@_cover_author_info:nn #1#2
+ {
+ \vbox_to_ht:nn { 31pt }
+ {
+ \mode_leave_vertical:
+ \hfil
+ \hbox:n
+ {
+ \rmfamily \zihao { -3 }
+ \hbox_to_wd:nn { 4em } { #1 }
+ \skip_horizontal:n { 0.5em }
+ \@@_uline:nn { \l_@@_cover_author_info_dim } { #2 }
+ }
+ \hfil
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{variable}{\l_@@_pure_dept_str}
+% 移除末尾的学院二字。
+% \begin{macrocode}
+\cs_generate_variant:Nn \str_if_eq:nnTF { xnTF }
+\ctex_at_end_preamble:n
+ {
+ \str_new:N \l_@@_pure_dept_str
+ \str_if_eq:xnTF { \str_range:Nnn \l_@@_dept_str { -2 } { -1 } } { 学院 }
+ { \str_set:Nx \l_@@_pure_dept_str { \str_range:Nnn \l_@@_dept_str { 1 } { -3 } } }
+ { \str_set:NV \l_@@_pure_dept_str \l_@@_dept_str }
+ }
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\@@_zh_today:}
+% 今日年月日。
+% \begin{macrocode}
+\cs_new:Npn \@@_zh_today:
+ {
+ \int_use:N \c_sys_year_int 年
+ \int_use:N \c_sys_month_int 月
+ \int_use:N \c_sys_day_int 日
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_split_submit_date:N}
+% 拆分提交日期为年、月和日。
+% \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 } 月
+ \clist_item:Nn \l_@@_submit_date_clist { 3 } 日
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{variable}
+% {
+% \l_@@_zh_date_clist,
+% \l_@@_zh_date_one_clist,
+% \l_@@_date_seq
+% }
+% 格式化开题签名日期。
+% \begin{macrocode}
+\clist_new:N \l_@@_zh_date_clist
+\clist_new:N \l_@@_zh_date_one_clist
+\seq_new:N \l_@@_date_seq
+\ctex_at_end_preamble:n
+ {
+ \clist_map_inline:Nn \l_@@_date_clist
+ {
+ \seq_set_split:Nnn \l_@@_date_seq { - } { #1 }
+ \clist_set_from_seq:NN \l_@@_zh_date_one_clist \l_@@_date_seq
+ \clist_put_right:Nx \l_@@_zh_date_clist
+ {
+ \clist_item:Nn \l_@@_zh_date_one_clist { 1 } 年
+ \clist_item:Nn \l_@@_zh_date_one_clist { 2 } 月
+ \clist_item:Nn \l_@@_zh_date_one_clist { 3 } 日
+ }
+ }
+ }
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\@@_cover:,\ctex_after_end_preamble:n}
+% 绘制封面。
+% \begin{macrocode}
+\cs_new:Npn \@@_cover:
+ {
+ \vbox:n { }
+ \skip_vertical:n { -5pt }
+ \vbox_to_ht:nn { 85pt }
+ {
+ \rmfamily \zihao { -2 } \centering
+ 西安电子科技大学 \@@_uline:n { \l_@@_pure_dept_str } 学院
+ }
+ \vbox_to_ht:nn { 32.5pt }
+ {
+ \sffamily \zihao { 2 } \centering
+ 本科生毕业论文(设计)开题报告
+ }
+ \vbox_to_ht:nn { 171pt }
+ {
+ \CJKfamily+ { sf } \zihao { -3 } \centering
+ (\l_@@_class_str{} 届)
+ }
+ \@@_cover_author_info:nn { 学生姓名 } { \l_@@_author_str }
+ \@@_cover_author_info:nn { 专业 } { \l_@@_major_str }
+ \@@_cover_author_info:nn { 学号 } { \l_@@_student_id_str }
+ \@@_cover_author_info:nn { 指导教师 } { \l_@@_supv_str }
+ \skip_vertical:n { 92pt }
+ \vbox_to_ht:nn { 81.5pt }
+ {
+ \rmfamily \zihao { 4 } \centering
+ \@@_zh_submit_date:
+ }
+ \vbox:n
+ {
+ \rmfamily \zihao { 5 } \centering
+ (本表一式三份,学生、指导教师、学院各一份)
+ }
+ }
+\ctex_after_end_preamble:n { \@@_cover: \clearpage }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_after_end_preamble:n,\AtEndDocument}
+% 实现用户正文为空可编译。
+% \begin{macrocode}
+\ctex_after_end_preamble:n { \begin { tpbox } }
+\AtEndDocument { \end { tpbox } }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</xduugtp>
% \end{macrocode}
% \begin{macrocode}
%<@@=>
diff --git a/Master/texmf-dist/source/xelatex/xduts/xduts.ins b/Master/texmf-dist/source/xelatex/xduts/xduts.ins
index 1151b48d287..bf5f7f9499e 100644
--- a/Master/texmf-dist/source/xelatex/xduts/xduts.ins
+++ b/Master/texmf-dist/source/xelatex/xduts/xduts.ins
@@ -28,6 +28,7 @@ The copyright of xdulogo.pdf is Xidian University.
\generate
{
\file{xdufont.sty}{\from{\jobname.dtx}{sty,xdufont}}
+ \file{xduugtp.cls}{\from{\jobname.dtx}{class,tp,xduugtp}}
\file{xdupgthesis.cls}{\from{\jobname.dtx}{class,thesis,xdupgthesis}}
\file{xduugthesis.cls}{\from{\jobname.dtx}{class,thesis,xduugthesis}}
}
diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty
index 9d05988ed7b..fd904429b36 100644
--- a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty
+++ b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty
@@ -6,7 +6,7 @@
%%
%% xduts.dtx (with options: `sty,xdufont')
%%
-%% Copyright 2022--2022 by @note286 in GitHub and CTAN
+%% Copyright 2022--2023 by @note286 in GitHub and CTAN
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -28,7 +28,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{xdufont}
- {2022/12/11}{4.0.1.0}
+ {2023/01/16}{4.1.1.0}
{Xidian University Font package}
\RequirePackage { xparse, l3keys2e }
\PassOptionsToPackage { quiet } { xeCJK }
diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls
index 7a709219455..80acc9738df 100644
--- a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls
+++ b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls
@@ -6,7 +6,7 @@
%%
%% xduts.dtx (with options: `class,thesis,xdupgthesis')
%%
-%% Copyright 2022--2022 by @note286 in GitHub and CTAN
+%% Copyright 2022--2023 by @note286 in GitHub and CTAN
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -28,7 +28,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplClass{xdupgthesis}
- {2022/12/11}{4.0.1.0}
+ {2023/01/16}{4.1.1.0}
{Xidian University Postgraduate Thesis document class}
\RequirePackage { xparse, l3keys2e }
\PassOptionsToPackage { quiet } { xeCJK }
@@ -871,10 +871,7 @@
\seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 }
\clist_set_from_seq:NN #1 \l__xdu_title_seq
}
- {
- \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } }
- \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
- }
+ { \clist_set:Nx #1 { #2 } }
}
\cs_generate_variant:Nn \__xdu_split_title:Nn { NV }
\cs_new:Npn \__xdu_uline:n #1
@@ -1386,11 +1383,11 @@
\tl_if_eq:NnTF \l__xdu_alg_cap_align_tl { centering }
{
\parbox { \columnwidth }
- { \centering \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2}
+ { \centering \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2 }
}
{
\parbox { \columnwidth }
- { \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2}
+ { \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2 }
}
}
}
@@ -1471,7 +1468,10 @@
\ctex_at_end_preamble:n
{
\@ifpackageloaded { subcaption }
- { \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) } }
+ {
+ \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) }
+ \cs_set:Npn \thesubtable { ( \alph { subtable } ) }
+ }
{ }
}
\ctex_at_end_preamble:n
diff --git a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls
index a5fdcd21611..7286c2ad01a 100644
--- a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls
+++ b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls
@@ -6,7 +6,7 @@
%%
%% xduts.dtx (with options: `class,thesis,xduugthesis')
%%
-%% Copyright 2022--2022 by @note286 in GitHub and CTAN
+%% Copyright 2022--2023 by @note286 in GitHub and CTAN
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -28,7 +28,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplClass{xduugthesis}
- {2022/12/11}{4.0.1.0}
+ {2023/01/16}{4.1.1.0}
{Xidian University Undergraduate Thesis document class}
\RequirePackage { xparse, l3keys2e }
\PassOptionsToPackage { quiet } { xeCJK }
@@ -647,10 +647,7 @@
\seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 }
\clist_set_from_seq:NN #1 \l__xdu_title_seq
}
- {
- \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } }
- \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
- }
+ { \clist_set:Nx #1 { #2 } }
}
\cs_generate_variant:Nn \__xdu_split_title:Nn { NV }
\cs_new:Npn \__xdu_uline:n #1
@@ -1172,11 +1169,11 @@
\tl_if_eq:NnTF \l__xdu_alg_cap_align_tl { centering }
{
\parbox { \columnwidth }
- { \centering \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2}
+ { \centering \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2 }
}
{
\parbox { \columnwidth }
- { \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2}
+ { \AlCapFnt #1 \algocf@capseparator \AlCapNameFnt #2 }
}
}
}
@@ -1257,7 +1254,10 @@
\ctex_at_end_preamble:n
{
\@ifpackageloaded { subcaption }
- { \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) } }
+ {
+ \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) }
+ \cs_set:Npn \thesubtable { ( \alph { subtable } ) }
+ }
{ }
}
\ctex_at_end_preamble:n
diff --git a/Master/texmf-dist/tex/xelatex/xduts/xduugtp.cls b/Master/texmf-dist/tex/xelatex/xduts/xduugtp.cls
new file mode 100644
index 00000000000..77a527a68e5
--- /dev/null
+++ b/Master/texmf-dist/tex/xelatex/xduts/xduugtp.cls
@@ -0,0 +1,984 @@
+%%
+%% This is file `xduugtp.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xduts.dtx (with options: `class,tp,xduugtp')
+%%
+%% Copyright 2022--2023 by @note286 in GitHub and CTAN
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% The Current Maintainer of this work is @note286 in GitHub and CTAN.
+%%
+%% This work consists of the files README.md, xduts.dtx, and xduts.ins
+%% and the derived files xduts.pdf, xdufont.sty, xdupgthesis.cls, and xduugthesis.cls.
+%%
+%% The copyright of xdulogo.pdf is Xidian University.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{xduugtp}
+ {2023/01/16}{4.1.1.0}
+ {Xidian University Undergraduate Thesis Proposal class}
+\RequirePackage { xparse, l3keys2e }
+\PassOptionsToPackage { quiet } { xeCJK }
+\PassOptionsToClass
+ {
+ a4paper,
+ zihao=-4,
+ sub4section,
+ fontset = none
+ }
+ { ctexart }
+\LoadClass { ctexart }
+\RequirePackage { geometry }
+\geometry { paper = a4paper }
+\tl_new:N \l__xdu_cjk_font_tl
+\tl_new:N \l__xdu_fake_bold_tl
+\tl_new:N \l__xdu_fake_slant_tl
+\tl_new:N \l__xdu_latin_font_tl
+\tl_new:N \l__xdu_math_font_tl
+\tl_new:N \l__xdu_unicode_math_tl
+\tl_new:N \l__xdu_font_type_tl
+\tl_new:N \l__xdu_font_path_tl
+\keys_define:nn { xdu / style }
+ {
+ cjk-font .choices:nn =
+ { win, adobe, founder, sinotype, fandol, none }
+ { \tl_set_eq:NN \l__xdu_cjk_font_tl \l_keys_choice_tl },
+ cjk-fake-bold .tl_set:N = \l__xdu_fake_bold_tl,
+ cjk-fake-slant .tl_set:N = \l__xdu_fake_slant_tl,
+ latin-font .choices:nn = { tac, tacn, thcs, gyre, none }
+ { \tl_set_eq:NN \l__xdu_latin_font_tl \l_keys_choice_tl },
+ math-font .choices:nn =
+ {
+ asana, bonum, cambria, cm, concrete, dejavu, erewhon, euler,
+ fira, garamond, gfsneohellenic, kp, libertinus, lm, newcm,
+ pagella, schola, stix, stix2, termes, xcharter, xits, none
+ }
+ { \tl_set_eq:NN \l__xdu_math_font_tl \l_keys_choice_tl },
+ unicode-math .tl_set:N = \l__xdu_unicode_math_tl,
+ font-type .choices:nn = { font, file }
+ { \tl_set_eq:NN \l__xdu_font_type_tl \l_keys_choice_tl },
+ font-path .tl_set:N = \l__xdu_font_path_tl
+ }
+\keys_set:nn { xdu }
+ {
+ style / cjk-font = fandol,
+ style / cjk-fake-bold = 3,
+ style / cjk-fake-slant = 0.2,
+ style / latin-font = gyre,
+ style / math-font = cm,
+ style / unicode-math = { },
+ style / font-type = font,
+ style / font-path = fonts
+ }
+\cs_new:Npn \__xdu_select_font:nn #1#2
+ {
+ \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+ { #1 }
+ { #2 }
+ }
+\cs_new:Npn \__xdu_font_path:
+ {
+ \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+ { }
+ { Path = \l__xdu_font_path_tl / , }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_b:n #1
+ {
+ BoldFont = { #1 }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_fb:n #1
+ {
+ BoldFont = { #1 },
+ BoldFeatures = { FakeBold = \l__xdu_fake_bold_tl }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_fs:n #1
+ {
+ SlantedFont = { #1 },
+ SlantedFeatures = { FakeSlant = \l__xdu_fake_slant_tl }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_fbfs:n #1
+ {
+ BoldSlantedFont = { #1 },
+ BoldSlantedFeatures =
+ {
+ FakeBold = \l__xdu_fake_bold_tl,
+ FakeSlant = \l__xdu_fake_slant_tl
+ }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_bfs:n #1
+ {
+ BoldSlantedFont = { #1 },
+ BoldSlantedFeatures = { FakeSlant = \l__xdu_fake_slant_tl }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_i:n #1
+ {
+ ItalicFont = { #1 }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_fi:n #1
+ {
+ ItalicFont = { #1 },
+ ItalicFeatures = { FakeSlant = \l__xdu_fake_slant_tl }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_ifb:n #1
+ {
+ BoldItalicFont = { #1 },
+ BoldItalicFeatures = { FakeBold = \l__xdu_fake_bold_tl }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_sub_fifb:n #1
+ {
+ BoldItalicFont = { #1 },
+ BoldItalicFeatures =
+ {
+ FakeBold = \l__xdu_fake_bold_tl,
+ FakeSlant = \l__xdu_fake_slant_tl
+ }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_r:n #1
+ {
+ \__xdu_cfg_cjk_font_sub_fb:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fs:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fbfs:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fi:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fifb:n { #1 }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_rb:nn #1#2
+ {
+ \__xdu_cfg_cjk_font_sub_b:n { #2 },
+ \__xdu_cfg_cjk_font_sub_fs:n { #1 },
+ \__xdu_cfg_cjk_font_sub_bfs:n { #2 },
+ \__xdu_cfg_cjk_font_sub_fi:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fifb:n { #1 }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_ri:nn #1#2
+ {
+ \__xdu_cfg_cjk_font_sub_fb:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fs:n { #1 },
+ \__xdu_cfg_cjk_font_sub_fbfs:n { #1 },
+ \__xdu_cfg_cjk_font_sub_i:n { #2 },
+ \__xdu_cfg_cjk_font_sub_ifb:n { #2 }
+ }
+\cs_new:Npn \__xdu_cfg_cjk_font_rbi:nnn #1#2#3
+ {
+ \__xdu_cfg_cjk_font_sub_b:n { #2 },
+ \__xdu_cfg_cjk_font_sub_fs:n { #1 },
+ \__xdu_cfg_cjk_font_sub_bfs:n { #2 },
+ \__xdu_cfg_cjk_font_sub_i:n { #3 },
+ \__xdu_cfg_cjk_font_sub_ifb:n { #3 }
+ }
+\cs_new:Npn \__xdu_set_cjk_main_font:nn #1#2
+ {
+ \setCJKmainfont { #1 }
+ [ \__xdu_font_path: \__xdu_cfg_cjk_font_ri:nn { #1 } { #2 } ]
+ }
+\cs_new:Npn \__xdu_set_cjk_main_font:nnn #1#2#3
+ {
+ \setCJKmainfont { #1 }
+ [ \__xdu_font_path: \__xdu_cfg_cjk_font_rbi:nnn { #1 } { #2 } { #3 } ]
+ }
+\cs_new:Npn \__xdu_set_cjk_sans_font:n #1
+ {
+ \setCJKsansfont { #1 }
+ [ \__xdu_font_path: \__xdu_cfg_cjk_font_r:n { #1 } ]
+ }
+\cs_new:Npn \__xdu_set_cjk_sans_font:nn #1#2
+ {
+ \setCJKsansfont { #1 }
+ [ \__xdu_font_path: \__xdu_cfg_cjk_font_rb:nn { #1 } { #2 } ]
+ }
+\cs_new:Npn \__xdu_set_cjk_mono_font:n #1
+ {
+ \setCJKmonofont { #1 }
+ [ \__xdu_font_path: \__xdu_cfg_cjk_font_r:n { #1 } ]
+ }
+\cs_new:Npn \__xdu_load_cjk_font_win:
+ {
+ \__xdu_set_cjk_main_font:nn
+ { \__xdu_select_font:nn { SimSun } { simsun.ttc } }
+ { \__xdu_select_font:nn { KaiTi } { simkai.ttf } }
+ \__xdu_set_cjk_sans_font:n
+ { \__xdu_select_font:nn { SimHei } { simhei.ttf } }
+ \__xdu_set_cjk_mono_font:n
+ { \__xdu_select_font:nn { FangSong } { simfang.ttf } }
+ }
+\cs_new:Npn \__xdu_load_cjk_font_adobe:
+ {
+ \__xdu_set_cjk_main_font:nn
+ { \__xdu_select_font:nn { Adobe~Song~Std } { adobesongstd-light.otf } }
+ { \__xdu_select_font:nn { Adobe~Kaiti~Std } { adobekaitistd-regular.otf } }
+ \__xdu_set_cjk_sans_font:n
+ { \__xdu_select_font:nn { Adobe~Heiti~Std } { adobeheitistd-regular.otf } }
+ \__xdu_set_cjk_mono_font:n
+ { \__xdu_select_font:nn { Adobe~Fangsong~Std } { Adobe-Fangsong-Std-R-Font.otf } }
+ }
+\cs_new:Npn \__xdu_load_cjk_font_founder:
+ {
+ \__xdu_set_cjk_main_font:nn
+ { \__xdu_select_font:nn { FZShuSong-Z01 } { FZShuSong-Z01.ttf } }
+ { \__xdu_select_font:nn { FZKai-Z03 } { FZKai-Z03.ttf } }
+ \__xdu_set_cjk_sans_font:n
+ { \__xdu_select_font:nn { FZHei-B01 } { FZHei-B01.ttf } }
+ \__xdu_set_cjk_mono_font:n
+ { \__xdu_select_font:nn { FZFangSong-Z02 } { FZFSK.TTF } }
+ }
+\cs_new:Npn \__xdu_load_cjk_font_sinotype:
+ {
+ \__xdu_set_cjk_main_font:nn
+ { \__xdu_select_font:nn { STSong } { STSONG.TTF } }
+ { \__xdu_select_font:nn { STKaiti } { STKAITI.TTF } }
+ \__xdu_set_cjk_sans_font:nn
+ { \__xdu_select_font:nn { STXihei } { STXIHEI.TTF } }
+ { \__xdu_select_font:nn { STHeiti } { STHeiti.ttf } }
+ \__xdu_set_cjk_mono_font:n
+ { \__xdu_select_font:nn { STFangsong } { STFANGSO.TTF } }
+ }
+\cs_new:Npn \__xdu_load_cjk_font_fandol:
+ {
+ \__xdu_set_cjk_main_font:nnn
+ { FandolSong-Regular.otf }
+ { FandolSong-Bold.otf }
+ { FandolKai-Regular.otf }
+ \__xdu_set_cjk_sans_font:nn
+ { FandolHei-Regular.otf }
+ { FandolHei-Bold.otf }
+ \__xdu_set_cjk_mono_font:n
+ { FandolFang-Regular.otf }
+ }
+\cs_new:Npn \__xdu_load_cjk_font_none: { }
+\cs_new:Npn \__xdu_set_latin_font:nnn #1#2#3
+ {
+ BoldFont = { #1 },
+ SlantedFont = { #2 },
+ BoldSlantedFont = { #3 },
+ ItalicFont = { #2 },
+ BoldItalicFont = { #3 }
+ }
+\cs_new:Npn \__xdu_set_latin_scale:
+ { Scale = MatchLowercase , }
+\cs_new:Npn \__xdu_off_latin_ligatures:
+ { Ligatures = CommonOff , }
+\cs_new:Npn \__xdu_set_latin_main_font:nnnnn #1#2#3#4#5
+ {
+ \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+ { \setmainfont { #1 } }
+ {
+ \setmainfont { #2 }
+ [
+ \__xdu_font_path:
+ \__xdu_set_latin_font:nnn { #3 } { #4 } { #5 }
+ ]
+ }
+ }
+\cs_new:Npn \__xdu_set_latin_sans_font:nnnnn #1#2#3#4#5
+ {
+ \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+ { \setsansfont { #1 } [ \__xdu_set_latin_scale: ] }
+ {
+ \setsansfont { #2 }
+ [
+ \__xdu_font_path:
+ \__xdu_set_latin_scale:
+ \__xdu_set_latin_font:nnn { #3 } { #4 } { #5 }
+ ]
+ }
+ }
+\cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5
+ {
+ \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+ { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] }
+ {
+ \setmonofont { #2 }
+ [
+ \__xdu_font_path:
+ \__xdu_set_latin_scale:
+ \__xdu_off_latin_ligatures:
+ \__xdu_set_latin_font:nnn { #3 } { #4 } { #5 }
+ ]
+ }
+ }
+\cs_new:Npn \__xdu_set_latin_main_font:nnnn #1#2#3#4
+ {
+ \setmainfont { #1 }
+ [
+ \__xdu_set_latin_font:nnn { #2 } { #3 } { #4 }
+ ]
+ }
+\cs_new:Npn \__xdu_set_latin_sans_font:nnnn #1#2#3#4
+ {
+ \setsansfont { #1 }
+ [
+ \__xdu_set_latin_scale:
+ \__xdu_set_latin_font:nnn { #2 } { #3 } { #4 }
+ ]
+ }
+\cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4
+ {
+ \setmonofont { #1 }
+ [
+ \__xdu_set_latin_scale:
+ \__xdu_off_latin_ligatures:
+ \__xdu_set_latin_font:nnn { #2 } { #3 } { #4 }
+ ]
+ }
+\cs_new:Npn \__xdu_load_latin_font_tac:
+ {
+ \__xdu_set_latin_main_font:nnnnn
+ { Times~New~Roman } { times.ttf } { timesbd.ttf } { timesi.ttf } { timesbi.ttf }
+ \__xdu_set_latin_sans_font:nnnnn
+ { Arial } { arial.ttf } { arialbd.ttf } { ariali.ttf } { arialbi.ttf }
+ \__xdu_set_latin_mono_font:nnnnn
+ { Consolas } { consola.ttf } { consolab.ttf } { consolai.ttf } { consolaz.ttf }
+ }
+\cs_new:Npn \__xdu_load_latin_font_tacn:
+ {
+ \__xdu_set_latin_main_font:nnnnn
+ { Times~New~Roman } { times.ttf } { timesbd.ttf } { timesi.ttf } { timesbi.ttf }
+ \__xdu_set_latin_sans_font:nnnnn
+ { Arial } { arial.ttf } { arialbd.ttf } { ariali.ttf } { arialbi.ttf }
+ \__xdu_set_latin_mono_font:nnnnn
+ { Courier~New } { cour.ttf } { courbd.ttf } { couri.ttf } { courbi.ttf }
+ }
+\cs_new:Npn \__xdu_load_latin_font_thcs:
+ {
+ \__xdu_set_latin_main_font:nnnnn
+ { Times~New~Roman }
+ { times.ttf }
+ { timesbd.ttf }
+ { timesi.ttf }
+ { timesbi.ttf }
+ \__xdu_set_latin_sans_font:nnnnn
+ { Helvetica }
+ { Helvetica.ttf }
+ { Helvetica~Bold.ttf }
+ { Helvetica~Oblique.ttf }
+ { Helvetica~Bold~Oblique.ttf }
+ \__xdu_set_latin_mono_font:nnnnn
+ { Courier~Std }
+ { CourierStd.otf }
+ { CourierStd-Bold.otf }
+ { CourierStd-Oblique.otf }
+ { CourierStd-BoldOblique.otf }
+ }
+\cs_new:Npn \__xdu_load_latin_font_gyre:
+ {
+ \__xdu_set_latin_main_font:nnnn
+ { texgyretermes-regular.otf }
+ { texgyretermes-bold.otf }
+ { texgyretermes-italic.otf }
+ { texgyretermes-bolditalic.otf }
+ \__xdu_set_latin_sans_font:nnnn
+ { texgyreheros-regular.otf }
+ { texgyreheros-bold.otf }
+ { texgyreheros-italic.otf }
+ { texgyreheros-bolditalic.otf }
+ \__xdu_set_latin_mono_font:nnnn
+ { texgyrecursor-regular.otf }
+ { texgyrecursor-bold.otf }
+ { texgyrecursor-italic.otf }
+ { texgyrecursor-bolditalic.otf }
+ }
+\cs_new:Npn \__xdu_load_latin_font_none: { }
+\cs_new:Npn \__xdu_load_unicode_math_pkg:
+ {
+ \PassOptionsToPackage { \l__xdu_unicode_math_tl } { unicode-math }
+ \RequirePackage { unicode-math }
+ }
+\cs_new:Npn \__xdu_load_math_font_cambria:
+ {
+ \__xdu_load_unicode_math_pkg:
+ \str_if_eq:NNTF { \l__xdu_font_type_tl } { font }
+ { \setmathfont { Cambria~Math } }
+ { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] }
+ }
+\cs_new:Npn \__xdu_define_math_font:nn #1#2
+ {
+ \cs_new:cpn { __xdu_load_math_font_ #1 : }
+ {
+ \__xdu_load_unicode_math_pkg:
+ \setmathfont { #2 }
+ }
+ }
+\clist_map_inline:nn
+ {
+ { asana } { Asana-Math.otf },
+ { concrete } { Concrete-Math.otf },
+ { erewhon } { Erewhon-Math.otf },
+ { euler } { Euler-Math.otf },
+ { fira } { FiraMath-Regular.otf },
+ { garamond } { Garamond-Math.otf },
+ { gfsneohellenic } { GFSNeohellenicMath.otf },
+ { kp } { KpMath-Regular.otf },
+ { libertinus } { LibertinusMath-Regular.otf },
+ { lm } { latinmodern-math.otf },
+ { newcm } { NewCMMath-Regular.otf },
+ { stix } { STIXMath-Regular.otf },
+ { stix2 } { STIXTwoMath-Regular.otf },
+ { xcharter } { XCharter-Math.otf },
+ { xits } { XITSMath-Regular.otf },
+ { bonum } { texgyrebonum-math.otf },
+ { dejavu } { texgyredejavu-math.otf },
+ { pagella } { texgyrepagella-math.otf },
+ { schola } { texgyreschola-math.otf },
+ { termes } { texgyretermes-math.otf }
+ }
+ { \__xdu_define_math_font:nn #1 }
+\cs_new:Npn \__xdu_load_math_font_cm: { }
+\cs_new:Npn \__xdu_load_math_font_none: { }
+\cs_new:Npn \__xdu_load_font:
+ {
+ \use:c { __xdu_load_cjk_font_ \l__xdu_cjk_font_tl : }
+ \use:c { __xdu_load_latin_font_ \l__xdu_latin_font_tl : }
+ \use:c { __xdu_load_math_font_ \l__xdu_math_font_tl : }
+ }
+\ctex_at_end_preamble:n { \__xdu_load_font: }
+\str_new:N \l__xdu_title_str
+\str_new:N \l__xdu_title_i_str
+\str_new:N \l__xdu_title_ii_str
+\str_new:N \l__xdu_dept_str
+\str_new:N \l__xdu_major_str
+\str_new:N \l__xdu_author_str
+\clist_new:N \l__xdu_supv_clist
+\str_new:N \l__xdu_supv_ent_str
+\str_new:N \l__xdu_student_id_str
+\tl_new:N \l__xdu_abstract_zh_tl
+\tl_new:N \l__xdu_abstract_en_tl
+\clist_new:N \l__xdu_keywords_zh_clist
+\clist_new:N \l__xdu_keywords_en_clist
+\clist_new:N \l__xdu_bib_file_clist
+\clist_new:N \l__xdu_appendix_clist
+\tl_new:N \l__xdu_ack_tl
+\keys_define:nn { xdu / info }
+ {
+ title .tl_set:N = \l__xdu_title_str,
+ department .tl_set:N = \l__xdu_dept_str,
+ major .tl_set:N = \l__xdu_major_str,
+ author .tl_set:N = \l__xdu_author_str,
+ supervisor .clist_set:N = \l__xdu_supv_clist,
+ supervisor-enterprise .tl_set:N = \l__xdu_supv_ent_str,
+ student-id .tl_set:N = \l__xdu_student_id_str,
+ abstract .tl_set:N = \l__xdu_abstract_zh_tl,
+ abstract* .tl_set:N = \l__xdu_abstract_en_tl,
+ keywords .clist_set:N = \l__xdu_keywords_zh_clist,
+ keywords* .clist_set:N = \l__xdu_keywords_en_clist,
+ bib-resource .clist_set:N = \l__xdu_bib_file_clist,
+ appendix .clist_set:N = \l__xdu_appendix_clist,
+ acknowledgements .tl_set:N = \l__xdu_ack_tl
+ }
+\keys_set:nn { xdu }
+ {
+ info / title = { },
+ info / department = { },
+ info / major = { },
+ info / author = { },
+ info / supervisor = { },
+ info / supervisor-enterprise = { },
+ info / student-id = { },
+ info / abstract = { },
+ info / abstract* = { },
+ info / keywords = { },
+ info / keywords* = { },
+ info / bib-resource = { },
+ info / appendix = { },
+ info / acknowledgements = { }
+ }
+\str_new:N \l__xdu_supv_str
+\str_new:N \l__xdu_supv_ii_str
+\ctex_at_end_preamble:n
+ {
+ \str_set:Nx \l__xdu_supv_str { \clist_item:Nn \l__xdu_supv_clist { 1 } }
+ \str_set:Nx \l__xdu_supv_ii_str { \clist_item:Nn \l__xdu_supv_clist { 2 } }
+ }
+\str_new:N \l__xdu_class_str
+\str_new:N \l__xdu_submit_date_str
+\clist_new:N \l__xdu_sign_clist
+\clist_new:N \l__xdu_date_clist
+\keys_define:nn { xdu / info }
+ {
+ class .tl_set:N = \l__xdu_class_str,
+ submit-date .tl_set:N = \l__xdu_submit_date_str,
+ sign .clist_set:N = \l__xdu_sign_clist,
+ date .clist_set:N = \l__xdu_date_clist
+ }
+\keys_set:nn { xdu }
+ {
+ info / class = { },
+ info / submit-date = { },
+ info / sign = { },
+ info / date = { }
+ }
+\cs_set:Npn \figurename { \__xdu_lang_switch:nn { 图 } { Figure } }
+\cs_new_eq:NN \figname \figurename
+\cs_set:Npn \tablename { \__xdu_lang_switch:nn { 表 } { Table } }
+\cs_new_eq:NN \tabname \tablename
+\bool_new:N \l__xdu_en_cjk_font_bool
+\tl_new:N \l__xdu_lang_tl
+\tl_new:N \l__xdu_bib_tool_tl
+\tl_new:N \l__xdu_biblatex_option_tl
+\clist_new:N \l__xdu_search_path_clist
+\bool_new:N \l__xdu_fix_input_bool
+\bool_new:N \l__xdu_fix_include_bool
+\bool_new:N \l__xdu_fix_graphics_bool
+\tl_new:N \l__xdu_ref_add_space_bool
+\tl_new:N \l__xdu_cap_label_sep_tl
+\tl_new:N \l__xdu_ft_cap_format_tl
+\tl_new:N \l__xdu_alg_cap_format_tl
+\tl_new:N \l__xdu_ft_cap_align_tl
+\tl_new:N \l__xdu_alg_cap_align_tl
+\bool_new:N \l__xdu_add_alg_rule_vspace_bool
+\bool_new:N \l__xdu_tab_small_bool
+\bool_new:N \l__xdu_alg_small_cap_bool
+\bool_new:N \l__xdu_alg_small_bool
+\clist_new:N \l__xdu_before_skip_clist
+\clist_new:N \l__xdu_after_skip_clist
+\tl_new:N \l__xdu_chap_tl
+\tl_new:N \l__xdu_sec_tl
+\tl_new:N \l__xdu_subsec_tl
+\tl_new:N \l__xdu_subsubsec_tl
+\tl_new:N \l__xdu_para_tl
+\tl_new:N \l__xdu_subpara_tl
+\bool_new:N \l__xdu_sym_mgn_bool
+\tl_new:N \l__xdu_page_v_align_tl
+\keys_define:nn { xdu / style }
+ {
+ en-cjk-font .bool_set:N = \l__xdu_en_cjk_font_bool,
+ language .choices:nn = { zh, en }
+ { \tl_set_eq:NN \l__xdu_lang_tl \l_keys_choice_tl },
+ bib-backend .choices:nn = { bibtex, biblatex }
+ { \tl_set_eq:NN \l__xdu_bib_tool_tl \l_keys_choice_tl },
+ biblatex-option .tl_set:N = \l__xdu_biblatex_option_tl,
+ file-search-path .clist_set:N = \l__xdu_search_path_clist,
+ fix-input .bool_set:N = \l__xdu_fix_input_bool,
+ fix-include .bool_set:N = \l__xdu_fix_include_bool,
+ fix-includegraphics .bool_set:N = \l__xdu_fix_graphics_bool,
+ ref-add-space .bool_set:N = \l__xdu_ref_add_space_bool,
+ caption-label-sep .tl_set:N = \l__xdu_cap_label_sep_tl,
+ ft-caption-format .choices:nn = { plain, hang }
+ { \tl_set_eq:NN \l__xdu_ft_cap_format_tl \l_keys_choice_tl },
+ alg-caption-format .choices:nn = { plain, hang }
+ { \tl_set_eq:NN \l__xdu_alg_cap_format_tl \l_keys_choice_tl },
+ ft-caption-align .choices:nn = { left, centering, centering-left }
+ { \tl_set_eq:NN \l__xdu_ft_cap_align_tl \l_keys_choice_tl },
+ alg-caption-align .choices:nn = { left, centering, centering-left }
+ { \tl_set_eq:NN \l__xdu_alg_cap_align_tl \l_keys_choice_tl },
+ add-alg-rule-vspace .bool_set:N = \l__xdu_add_alg_rule_vspace_bool,
+ table-small-font .bool_set:N = \l__xdu_tab_small_bool,
+ algorithm-small-caption .bool_set:N = \l__xdu_alg_small_cap_bool,
+ algorithm-small-font .bool_set:N = \l__xdu_alg_small_bool,
+ before-skip .clist_set:N = \l__xdu_before_skip_clist,
+ after-skip .clist_set:N = \l__xdu_after_skip_clist,
+ chap-zihao .tl_set:N = \l__xdu_chap_tl,
+ sec-zihao .tl_set:N = \l__xdu_sec_tl,
+ subsec-zihao .tl_set:N = \l__xdu_subsec_tl,
+ subsubsec-zihao .tl_set:N = \l__xdu_subsubsec_tl,
+ para-zihao .tl_set:N = \l__xdu_para_tl,
+ subpara-zihao .tl_set:N = \l__xdu_subpara_tl,
+ symmetric-margin .bool_set:N = \l__xdu_sym_mgn_bool,
+ page-vertical-align .tl_set:N = \l__xdu_page_v_align_tl
+ }
+\keys_set:nn { xdu }
+ {
+ style / en-cjk-font = false,
+ style / language = zh,
+ style / bib-backend = biblatex,
+ style / biblatex-option = { },
+ style / file-search-path = { },
+ style / fix-input = false,
+ style / fix-include = false,
+ style / fix-includegraphics = false,
+ style / ref-add-space = false,
+ style / caption-label-sep = { 0.75em },
+ style / ft-caption-format = { hang },
+ style / alg-caption-format = { hang },
+ style / ft-caption-align = { centering-left },
+ style / alg-caption-align = { left },
+ style / add-alg-rule-vspace = { false },
+ style / table-small-font = true,
+ style / algorithm-small-caption = true,
+ style / algorithm-small-font = true,
+ 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 = { 顶部对齐 }
+ }
+\NewDocumentCommand \xdusetup { m }
+ { \keys_set:nn { xdu } { #1 } }
+\keys_define:nn { xdu }
+ {
+ style .meta:nn = { xdu / style } { #1 },
+ info .meta:nn = { xdu / info } { #1 }
+ }
+\ProcessKeysOptions { xdu / style }
+\dim_new:N \l__xdu_str_dim
+\box_new:N \l__xdu_str_box
+\cs_new:Npn \__xdu_str_max_dim:Nn #1#2
+ {
+ \hbox_set:Nn \l__xdu_str_box { #2 }
+ \dim_set:Nn \l__xdu_str_dim { \box_wd:N \l__xdu_str_box }
+ \dim_set:Nn #1 { \dim_max:nn { \l__xdu_str_dim } { #1 } }
+ }
+\newgeometry
+ {
+ left = 3.17cm,
+ right = 3.17cm,
+ top = 2.54cm,
+ bottom = 2.54cm,
+ footskip = 0cm,
+ headsep = 0cm,
+ headheight = 0cm
+ }
+\savegeometry { main }
+\loadgeometry { main }
+\RequirePackage { hyperref }
+\hypersetup
+ {
+ bookmarksnumbered,
+ hidelinks
+ }
+\ctex_at_end_preamble:n
+ {
+ \hypersetup
+ {
+ pdfsubject = { 西安电子科技大学本科生毕业论文(设计)开题报告 },
+ pdfcreator = { XeLaTeX~with~xduugtp~class~in~XDUTS },
+ pdfauthor = \l__xdu_author_str
+ }
+ }
+\cs_new_protected:Npn \__xdu_begin_document:n #1
+ { \ctex_gadd_ltxhook:nn { env/document/begin } { #1 } }
+\PassOptionsToPackage { sort&compress } { gbt7714 }
+\PassOptionsToPackage { style = gb7714-2015 } { biblatex }
+\__xdu_begin_document:n
+ {
+ \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex }
+ {
+ \RequirePackage { gbt7714 }
+ \bibliographystyle { gbt7714-numerical }
+ \cs_set:Npn \@biblabel #1 { \hfill [ #1 ] }
+ \cs_set:Npn \bibsection { }
+ \dim_set:Nn \bibsep { 0pt }
+ \NewDocumentCommand \parencite { m }
+ { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: }
+ }
+ {
+ \PassOptionsToPackage { \l__xdu_biblatex_option_tl } { biblatex }
+ \RequirePackage { biblatex }
+ \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } }
+ \defbibheading { bibliography } [ ] { }
+ \dim_set:Nn \biblabelsep { 1ex }
+ \dim_set:Nn \bibitemsep { 0pt }
+ \cs_set_eq:NN \SlashFont \rmfamily
+ }
+ \cs_set:Npn \bibfont
+ {
+ \zihao { -4 }
+ }
+ }
+\PassOptionsToPackage { breakable } { tcolorbox }
+\RequirePackage { tcolorbox }
+\dim_new:N \l__xdu_box_margin_dim
+\dim_set:Nn \l__xdu_box_margin_dim { 5pt }
+\dim_new:N \l__xdu_box_rule_dim
+\dim_set:Nn \l__xdu_box_rule_dim { 0.5pt }
+\tcbset
+ {
+ standard~jigsaw,
+ sharp~corners = all,
+ colframe = black,
+ opacityback = 0,
+ boxsep = 0pt,
+ boxrule = \l__xdu_box_rule_dim,
+ top = \l__xdu_box_margin_dim,
+ bottom = \l__xdu_box_margin_dim,
+ left = \l__xdu_box_margin_dim,
+ right = \l__xdu_box_margin_dim,
+ beforeafter~skip = 0pt,
+ before~upper =
+ {
+ \dim_set:Nn \parindent { 2em }
+ \dim_set:Nn \baselineskip { 20pt }
+ }
+ }
+\tcbset
+ {
+ tpboxi/.style =
+ {
+ breakable = true,
+ height~fixed~for = first~and~middle
+ },
+ tpboxii/.style =
+ {
+ breakable = true,
+ height~fixed~for = all,
+ height~fill = maximum
+ },
+ tpboxiii/.style =
+ {
+ height = .5\textheight + .5\l__xdu_box_rule_dim,
+ space~to~upper = true,
+ lower~separated = false,
+ halign~lower = flush~right
+ }
+ }
+\RequirePackage { graphicx }
+\int_new:N \l__xdu_sign_no_int
+\int_set:Nn \l__xdu_sign_no_int { 1 }
+\NewDocumentEnvironment { tpbox } { oo }
+ { \IfNoValueF { #1 } { \begin { tcolorbox } [ #1 ] } }
+ {
+ \IfNoValueF { #1 }
+ {
+ \IfNoValueF { #2 }
+ {
+ \tcblower
+ 签名
+ \clist_if_empty:NTF \l__xdu_sign_clist
+ { \skip_horizontal:n { 6em } \hbox:n { } }
+ {
+ \skip_horizontal:n { 1em }
+ \includegraphics [ width = 10em, height = 25pt, keepaspectratio ]
+ {
+ \str_if_eq:nnTF { #2 } { 指导教师意见 }
+ { \clist_item:Nn \l__xdu_sign_clist { 1 } }
+ { \clist_item:Nn \l__xdu_sign_clist { 2 } }
+ }
+ }
+ \\
+ \clist_if_empty:NTF \l__xdu_date_clist
+ { \__xdu_zh_today: }
+ {
+ \str_if_eq:nnTF { #2 } { 指导教师意见 }
+ { \clist_item:Nn \l__xdu_zh_date_clist { 1 } }
+ { \clist_item:Nn \l__xdu_zh_date_clist { 2 } }
+ }
+ }
+ \end { tcolorbox }
+ }
+ }
+\cs_new:Npn \__xdu_bib:
+ {
+ \cs_set:Npn \bibname { 参考文献 }
+ \subsection* { \bibname }
+ \group_begin:
+ \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex }
+ {
+ \dim_set:Nn \labelsep { 1ex }
+ \bibliography { \l__xdu_bib_file_clist }
+ }
+ { \printbibliography }
+ \group_end:
+ }
+\cs_new_eq:NN \__xdu_org_sec:n \section
+\RenewDocumentCommand \section { m }
+ {
+ \str_case:nnTF { #1 }
+ {
+ { 论文名称及项目来源 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [tpboxi]
+ }
+ { 研究目的和意义 }
+ {
+ \end { tpbox }
+ \skip_vertical:n { -\l__xdu_box_rule_dim }
+ \skip_vertical:n { \z@skip }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 国内外研究现状和发展趋势 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 主要研究内容、要解决的问题及本文的初步方案 }
+ {
+ \__xdu_bib:
+ \end { tpbox }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 工作的主要阶段、进度和完成时间 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [ tpboxi ]
+ }
+ { 已进行的前期准备工作 }
+ {
+ \end { tpbox }
+ \skip_vertical:n { -\l__xdu_box_rule_dim }
+ \skip_vertical:n { \z@skip }
+ \begin { tpbox } [ tpboxii ]
+ }
+ { 指导教师意见 }
+ {
+ \end { tpbox }
+ \begin { tpbox } [ tpboxiii ] [ 指导教师意见 ]
+ }
+ { 学院审核意见 }
+ {
+ \end { tpbox }
+ \skip_vertical:n { -\l__xdu_box_rule_dim }
+ \skip_vertical:n { \z@skip }
+ \begin { tpbox } [ tpboxiii ] [ 学院审核意见 ]
+ }
+ }
+ { \__xdu_org_sec:n { #1 } }
+ { }
+ }
+\pagestyle { empty }
+\ctexset
+ {
+ section / name = { ,、 },
+ subsection / name = { (,) },
+ subsubsection / name = { (,) },
+ section / number = { \chinese { section } },
+ subsection / number = { \chinese { subsection } },
+ subsubsection / number = { \arabic { subsubsection } },
+ section / format = { \raggedright \zihao { -4 } },
+ subsection / format = { \raggedright \zihao { -4 } },
+ subsubsection / format = { \raggedright \zihao { -4 } },
+ section / aftername = { },
+ subsection / aftername = { },
+ subsubsection / aftername = { },
+ section / beforeskip = { 0pt },
+ subsection / beforeskip = { 8pt },
+ subsubsection / beforeskip = { 8pt },
+ section / afterskip = { 0pt },
+ subsection / afterskip = { 0pt },
+ subsubsection / afterskip = { 0pt },
+ section / indent = { 0em },
+ subsection / indent = { 0em },
+ subsubsection / indent = { 2em },
+ }
+\RequirePackage { xeCJKfntef }
+\cs_new:Npn \__xdu_uline:n #1
+ { \CJKunderline [ thickness = 1pt ] { #1 } }
+\cs_new:Npn \__xdu_uline:nn #1#2
+ { \CJKunderline [ thickness = 1pt ] { \hbox_to_wd:nn { #1 } { \hfil #2 \hfil } } }
+\dim_new:N \l__xdu_cover_author_info_dim
+\dim_set:Nn \l__xdu_cover_author_info_dim { 5em }
+\ctex_at_end_preamble:n
+ {
+ \rmfamily \zihao { -3 }
+ \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_author_str }
+ \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_major_str }
+ \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_student_id_str }
+ \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_supv_str }
+ \dim_add:Nn \l__xdu_cover_author_info_dim { 2em }
+ }
+\cs_new:Npn \__xdu_cover_author_info:nn #1#2
+ {
+ \vbox_to_ht:nn { 31pt }
+ {
+ \mode_leave_vertical:
+ \hfil
+ \hbox:n
+ {
+ \rmfamily \zihao { -3 }
+ \hbox_to_wd:nn { 4em } { #1 }
+ \skip_horizontal:n { 0.5em }
+ \__xdu_uline:nn { \l__xdu_cover_author_info_dim } { #2 }
+ }
+ \hfil
+ }
+ }
+\cs_generate_variant:Nn \str_if_eq:nnTF { xnTF }
+\ctex_at_end_preamble:n
+ {
+ \str_new:N \l__xdu_pure_dept_str
+ \str_if_eq:xnTF { \str_range:Nnn \l__xdu_dept_str { -2 } { -1 } } { 学院 }
+ { \str_set:Nx \l__xdu_pure_dept_str { \str_range:Nnn \l__xdu_dept_str { 1 } { -3 } } }
+ { \str_set:NV \l__xdu_pure_dept_str \l__xdu_dept_str }
+ }
+\cs_new:Npn \__xdu_zh_today:
+ {
+ \int_use:N \c_sys_year_int 年
+ \int_use:N \c_sys_month_int 月
+ \int_use:N \c_sys_day_int 日
+ }
+\seq_new:N \l__xdu_submit_date_seq
+\cs_new:Npn \__xdu_split_submit_date:N #1
+ {
+ \seq_set_split:NnV \l__xdu_submit_date_seq { - } \l__xdu_submit_date_str
+ \clist_set_from_seq:NN #1 \l__xdu_submit_date_seq
+ }
+\clist_new:N \l__xdu_submit_date_clist
+\cs_new:Npn \__xdu_zh_submit_date:
+ {
+ \str_if_empty:NTF \l__xdu_submit_date_str
+ { \__xdu_zh_today: }
+ {
+ \__xdu_split_submit_date:N \l__xdu_submit_date_clist
+ \clist_item:Nn \l__xdu_submit_date_clist { 1 } 年
+ \clist_item:Nn \l__xdu_submit_date_clist { 2 } 月
+ \clist_item:Nn \l__xdu_submit_date_clist { 3 } 日
+ }
+ }
+\clist_new:N \l__xdu_zh_date_clist
+\clist_new:N \l__xdu_zh_date_one_clist
+\seq_new:N \l__xdu_date_seq
+\ctex_at_end_preamble:n
+ {
+ \clist_map_inline:Nn \l__xdu_date_clist
+ {
+ \seq_set_split:Nnn \l__xdu_date_seq { - } { #1 }
+ \clist_set_from_seq:NN \l__xdu_zh_date_one_clist \l__xdu_date_seq
+ \clist_put_right:Nx \l__xdu_zh_date_clist
+ {
+ \clist_item:Nn \l__xdu_zh_date_one_clist { 1 } 年
+ \clist_item:Nn \l__xdu_zh_date_one_clist { 2 } 月
+ \clist_item:Nn \l__xdu_zh_date_one_clist { 3 } 日
+ }
+ }
+ }
+\cs_new:Npn \__xdu_cover:
+ {
+ \vbox:n { }
+ \skip_vertical:n { -5pt }
+ \vbox_to_ht:nn { 85pt }
+ {
+ \rmfamily \zihao { -2 } \centering
+ 西安电子科技大学 \__xdu_uline:n { \l__xdu_pure_dept_str } 学院
+ }
+ \vbox_to_ht:nn { 32.5pt }
+ {
+ \sffamily \zihao { 2 } \centering
+ 本科生毕业论文(设计)开题报告
+ }
+ \vbox_to_ht:nn { 171pt }
+ {
+ \CJKfamily+ { sf } \zihao { -3 } \centering
+ (\l__xdu_class_str{} 届)
+ }
+ \__xdu_cover_author_info:nn { 学生姓名 } { \l__xdu_author_str }
+ \__xdu_cover_author_info:nn { 专业 } { \l__xdu_major_str }
+ \__xdu_cover_author_info:nn { 学号 } { \l__xdu_student_id_str }
+ \__xdu_cover_author_info:nn { 指导教师 } { \l__xdu_supv_str }
+ \skip_vertical:n { 92pt }
+ \vbox_to_ht:nn { 81.5pt }
+ {
+ \rmfamily \zihao { 4 } \centering
+ \__xdu_zh_submit_date:
+ }
+ \vbox:n
+ {
+ \rmfamily \zihao { 5 } \centering
+ (本表一式三份,学生、指导教师、学院各一份)
+ }
+ }
+\ctex_after_end_preamble:n { \__xdu_cover: \clearpage }
+\ctex_after_end_preamble:n { \begin { tpbox } }
+\AtEndDocument { \end { tpbox } }
+%%
+%%
+%% End of file `xduugtp.cls'.