From 4bbebef6908cbe4af13028e80b8d098758767dfe Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 16 Jan 2023 21:10:00 +0000 Subject: xduts (16jan23) git-svn-id: svn://tug.org/texlive/trunk@65556 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/xelatex/xduts/README.md | 2 +- Master/texmf-dist/doc/xelatex/xduts/xduts.pdf | Bin 321917 -> 331323 bytes Master/texmf-dist/source/xelatex/xduts/xduts.dtx | 773 +++++++++++++--- Master/texmf-dist/source/xelatex/xduts/xduts.ins | 1 + Master/texmf-dist/tex/xelatex/xduts/xdufont.sty | 4 +- .../texmf-dist/tex/xelatex/xduts/xdupgthesis.cls | 18 +- .../texmf-dist/tex/xelatex/xduts/xduugthesis.cls | 18 +- Master/texmf-dist/tex/xelatex/xduts/xduugtp.cls | 984 +++++++++++++++++++++ 8 files changed, 1676 insertions(+), 124 deletions(-) create mode 100644 Master/texmf-dist/tex/xelatex/xduts/xduugtp.cls (limited to 'Master/texmf-dist') 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 Binary files a/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf and b/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf 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] % %\NeedsTeXFormat{LaTeX2e} %\RequirePackage{expl3} %\ProvidesExplPackage{xdufont} +%\ProvidesExplClass{xduugtp} %\ProvidesExplClass{xdupgthesis} %\ProvidesExplClass{xduugthesis} -% {2022/12/11}{4.0.1.0} +% {2023/01/16}{4.1.1.0} % {Xidian University Font package} +% {Xidian University Undergraduate Thesis Proposal class} % {Xidian University Postgraduate Thesis document class} % {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} % linespread = 1.625, fontset = none } - { ctexbook } -\LoadClass { ctexbook } +% { ctexbook } +% { ctexart } +%\LoadClass { ctexbook } +%\LoadClass { ctexart } % \end{macrocode} % \end{macro} % 设置纸张尺寸为A4。 @@ -2562,7 +2624,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} % \end{macro} % \begin{macrocode} % -%<*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} -% +% +%<*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} +% %<*xduugthesis> % \end{macrocode} % \subsubsection{本科生} @@ -3286,7 +3413,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} % \end{macro} % \begin{macrocode} % -%<*thesis> +%<*thesis|xduugtp> % \end{macrocode} % \subsection{标签宏配置} % \label{标签宏配置} @@ -3551,7 +3678,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} % \end{macrocode} % \end{macro} % \begin{macrocode} -% +% %<*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|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> +% \end{macrocode} % \subsection{额外命令} % \begin{macro}{\noauxwrite} % \changes{v1.15.0.0}{2022/05/13}{\tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用} @@ -4120,6 +4253,32 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} % % \end{macrocode} % \end{macro} +% \begin{macrocode} +% +%<*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} +% +%<*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|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, +% pdftitle = \l_@@_pure_title_str, +% pdfsubject = { 西安电子科技大学本科生毕业论文(设计)开题报告 }, +% pdfcreator = { XeLaTeX~with~xduugtp~class~in~XDUTS }, % pdfsubject = { 西安电子科技大学本科毕业设计论文 }, % pdfcreator = { XeLaTeX~with~xduugthesis~class~in~XDUTS }, % pdfsubject = \l_@@_header_str, @@ -5249,6 +5418,10 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} } % \end{macrocode} % \end{macro} +% \begin{macrocode} +% +%<*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|tp> +% \end{macrocode} % \subsection{参考文献} % \begin{macro}{\@@_begin_document:n} % 钩子。 @@ -5345,12 +5522,17 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} { % \rmfamily % \@@_rm_family: - \zihao { 5 } +% \zihao { 5 } +% \zihao { -4 } % \dim_set:Nn \baselineskip { 20pt } } } % \end{macrocode} % \end{macro} +% \begin{macrocode} +% +%<*thesis> +% \end{macrocode} % \subsection{附录} % \begin{macro}{\@@_appendix:} % 附录环境。 @@ -7225,7 +7407,7 @@ literate = {\$}{{\textcolor{purple3}{\$}}}{1} % %<*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} % +%<*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} +% % \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'. -- cgit v1.2.3