<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% \iffalse meta-comment
%
% File: hduthesis.dtx
% -----------------------------------------------------------------------
%   Copyright (C) 2023-2025 by Mingyu Xia &lt;myhsia@outlook.com&gt;          *
%                                                                       *
%   It may be distributed and/or modified under the conditions of the   *
%   LaTeX Project Public License (LPPL), either version 1.3c of this    *
%   license or (at your option) any later version. The latest version   *
%   of this license is in the file                                      *
%                                                                       *
%       http://www.latex-project.org/lppl.txt                           *
%                                                                       *
%   This work has the LPPL maintenance status `maintained'.             *
%                                                                       *
%   The Current Maintainer of this work is Mingyu Xia.                  *
%                                                                       *
%   This work consists of the files hduthesis.dtx,                      *
%                                   hdu-graphics.dtx,                   *
%                               and hduthesis.ins,                      *
%             and the derived files hduthesis.cls,                      *
%                                   hdu-&lt;module&gt;.code.tex,              *
%                                   beamerthemehdu.sty,                 *
%                                   hdu-logo.pdf,                       *
%                                   hdu-title.pdf,                      *
%                                   hdu-badge.pdf,                      *
%                                   hdu-motto.pdf,                      *
%                                   hduthesis.pdf,                      *
%                                   hdu-graphics.pdf,                   *
%                               and README.md.                          *
% -----------------------------------------------------------------------
%
%   Any modification of this file should ensure that the copyright and
%   license information is placed in the derived files.
%
% -----------------------------------------------------------------------
%
%&lt;*internal&gt;
\iffalse
%&lt;/internal&gt;
%
%&lt;*readme&gt;
The `hduthesis` Class: LaTeX class for Hangzhou Dianzi University
=================================================================

LaTeX class for bachelor and mphil theses in Hangzhou Dianzi
University is constructed by `LaTeX-expl3`. This class provides typesets
for bachelors' and mphils' thesis in Hangzhou Dianzi University.

Modules of `hduThesiS` provide the following supports:

- `typeset`: Math and text Typeset

- `layout`: Some central layout typeset interfaces

- `bc.config`: Configuration for bachelor thesis' style

- `pg.config`: Configuration for mphil thesis' style

- `beamer`: HDU Beamer theme

- `stationery`: Creation of HDU's stationery

- `exam`: Typeset for HDU examinations' solution

- `l3doc`: Configuration for class's `l3doc` manual

Issues
------

The issue tracker for `hduthesis` is currently located
[on GitHub](https://github.com/myhsia/hduthesis/issues).

---

æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡ LaTeX æ¨¡æ¿
==============================

æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡ LaTeX æ¨¡æ¿ä»¥ `LaTeX-expl3` æž„å»ºï¼Œæä¾›æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦å£«å’Œç¡•å£«å­¦ä½è®ºæ–‡æ&nbsp;¼å¼.

`hduThesiS` çš„æ¨¡å—æä¾›ä»¥ä¸‹æ”¯æŒï¼š

- `typeset`: æ•°å­¦å’Œæ–‡æœ¬æŽ’ç‰ˆ

- `layout`: å°é¢å’Œæµ®åŠ¨é¢˜å¸ƒå±€

- `bc.config`: å­¦å£«è®ºæ–‡æ&nbsp;¼å¼é…ç½®

- `pg.config`: ç¡•å£«è®ºæ–‡æ&nbsp;¼å¼é…ç½®

- `beamer`: HDU Beamer ä¸»é¢˜

- `stationery.config`: å­¦æ&nbsp;¡ä¿¡çº¸ç”Ÿæˆ

- `exam`: HDU è¯•å·è§£æžæ¨¡æ¿

- `hdu.l3doc`: æ¨¡æ¿ `l3doc` ç”¨æˆ·æ‰‹å†Œé…ç½®

---

References
----------

&gt; \[1\]. The LaTeX3 Interfaces

&gt; \[2\]. CTeX å®é›†

&gt; \[3\]. LaTeX for package and class authors current version

&gt; \[4\]. The LaTeX2e Sources

&gt; \[5\]. The LaTeX3 kernel: style guide for code authors

&gt; \[6\]. Package `etoolbox`, `geometry`, `tocloft`, `fancyhdr`, etc.

&gt; \[7\]. [æ¯•ä¸šè®¾è®¡ï¼ˆè®ºæ–‡ï¼‰çš„å†™ä½œè§„èŒƒåŠæ&nbsp;¼å¼è¦æ±‚(å«å†™ä½œæ¨¡æ¿)](https://jwc.hdu.edu.cn/2022/0428/c4555a153813/page.htm)

&gt; \[8\]. [æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ç&nbsp;”ç©¶ç”Ÿå­¦ä½è®ºæ–‡æ&nbsp;¼å¼ç»Ÿä¸€è¦æ±‚ï¼ˆæ­ç”µç&nbsp;”ã€”2012ã€•311å·ï¼‰](https://grs.hdu.edu.cn/2013/0507/c1730a51754/page.htm)


Copyright and License
---------------------

  Copyright (C) 2023-2025 by Mingyu Xia &lt;myhsia@outlook.com&gt;

  It may be distributed and/or modified under the conditions of the
  LaTeX Project Public License (LPPL), either version 1.3c of this
  license or (at your option) any later version. The latest version
  of this license is in the file &lt;http://www.latex-project.org/lppl.txt&gt;

  This work has the LPPL maintenance status `maintained`.

  The Current Maintainer of this work is Mingyu Xia.
%&lt;/readme&gt;
%
%&lt;*internal&gt;
\fi
%&lt;/internal&gt;
%
%&lt;*driver|package&gt;
\RequirePackage{etoolbox}
%&lt;/driver|package&gt;
%&lt;*driver&gt;
\documentclass[mode = l3doc, full]{hduthesis}
\usepackage[mono = false]{libertine}
\makeindex
\begin{document}
  \DocInput{\jobname.dtx}
\end{document}
%&lt;/driver&gt;
% \fi
%
% \title{\bfseries
%   \hologo{hduThesiS} æ–‡æ¡£ç±»\\^^A
%   æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡ \hologo{LaTeX} æ¨¡æ¿^^A
%   \thanks{^^A
%     åœ¨ æ­å·žç”µå­ç§‘æŠ€å¤§å­¦éžæ¯•ä¸šç”Ÿ / æ•™å¸ˆ ä¸­å¯»æ‰¾æ¨¡æ¿çš„æŽ¥ç­äººï¼Œ
%     è¦æ±‚ç†Ÿæ‚‰ \pkg{expl3} ä¸Žæ–‡å­¦ç¼–ç¨‹. æ¬¢è¿Žæœ‰æ„æ„¿è€…é‚®ä»¶è”ç³».
%   }
% }
%
% \author{^^A
%   Mingyu Xia \mailto{myhsia@outlook.com}^^A
%   \thanks{Physics Department, Graduate in 07/2025}
% }
%
% \maketitle
%
% \begin{documentation}
%
% \begin{abstract}
%   \hologo{hduthesis} æ˜¯æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡ \hologo{LaTeX} æ¨¡æ¿ï¼Œ
%   æ”¯æŒå­¦å£«ã€ç¡•å£«å­¦ä½è®ºæ–‡æŽ’ç‰ˆï¼ŒåŒæ—¶æä¾›äº†å­¦æ&nbsp;¡ä¿¡ç¬ºã€Beamerï¼ˆå¹»ç¯ç‰‡ï¼‰ä¸Žè¯•å·è§£æžæ¨¡æ¿.
% \end{abstract}
% 
% \begin{center}
%   \small\bfseries ç”¨æˆ·åè®®
% \end{center}
% \begin{enumerate}[itemsep = 2em, itemsep = 0pt]\small
%   \item æœ¬æ¨¡æ¿é€šè¿‡ LPPL 1.3c åè®®å¼€æ”¾æºä»£ç&nbsp;ï¼Œæ‚¨å¯ä»¥éšæ„ä½¿ç”¨ç¼–è¯‘å‡ºçš„ PDF æ–‡ä»¶.
%   \item æœ¬æ¨¡æ¿æ&nbsp;¹æ®æ­å·žç”µå­ç§‘æŠ€å¤§å­¦æ•™åŠ¡å¤„é¢å‘çš„
%   \href{https://jwc.hdu.edu.cn/2022/0428/c4528a153813/page.htm}
%     {æ­ç”µç†å·¥ç±»æ¯•ä¸šè®ºæ–‡å†™ä½œè§„èŒƒ} ç¼–å†™è€Œæˆï¼Œä½œè€…ä¸å¯¹ä½¿ç”¨æœ¬æ¨¡æ¿äº§ç”Ÿçš„æ&nbsp;¼å¼å®¡æŸ¥é—®é¢˜è´Ÿè´£.
%     å¦‚æžœæ‚¨æ‰€åœ¨çš„å­¦é™¢å›&nbsp;è®ºæ–‡æŸ¥é‡ã€æ”¶å½•ç­‰åŽŸå›&nbsp;è¦æ±‚æäº¤ \file{.docx} æ&nbsp;¼å¼ï¼Œ
%     ä¸æŽ¥æ”¶ \file{.pdf} è®ºæ–‡ç¨¿ä»¶ï¼Œè¯·å‹¿æ‰§æ„ä½¿ç”¨æœ¬æ¨¡æ¿ï¼Œé¿å…å›&nbsp;æ&nbsp;¼å¼è½¬æ¢å¸¦æ¥ä¸å¿…è¦çš„éº»çƒ¦.
%   ä½¿ç”¨æœ¬æ¨¡æ¿æ—¶ï¼Œè¯·æŒ‰ç¼–è¯‘é”™è¯¯æç¤ºæ“ä½œæ¥å‹¾é€‰åŒæ„ç”¨æˆ·åè®®.
%   \item æ¬¢è¿Žå‰å¾€ \href{https://github.com/myhsia/hduthesis/issues}{GitHub}
%   æäº¤åé¦ˆæ„è§ï¼Œä¸ºæŽ¨åŠ¨å­¦æ&nbsp;¡è®¤è¯ä¸Žè§„èŒƒåŒ– \hologo{hduthesis} è´¡çŒ®åŠ›é‡.
% \end{enumerate}
%
% \setcounter{tocdepth}{2} \tableofcontents
%
% \section{\hologo{hduthesis} æ¨¡æ¿ä»‹ç»}
%
% \hologo{hduthesis}ï¼ˆ\textbf Hangzhou \textbf Dianzi \textbf University
% \hologo{LaTeX} \textbf{Thesis} Templateï¼‰ æ˜¯æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡
% \underline{éžå®˜æ–¹} \hologo{LaTeX} æ¨¡æ¿ï¼Œä»¥ \hologo{LaTeX3} æž„å»ºï¼Œ
% æ”¯æŒå­¦å£«å’Œç¡•å£«å­¦ä½è®ºæ–‡æŽ’ç‰ˆ.
%
% æœ¬æ¨¡æ¿æ–‡æ¡£å°†å°½é‡å®Œæ•´åœ°ä»‹ç»æ¨¡æ¿çš„ä½¿ç”¨æ–¹æ³•ï¼Œå¦‚æœ‰ä¸æ¸…æ¥šä¹‹å¤„ï¼Œæˆ–è€…æƒ³æå‡ºæ”¹è¿›å»ºè®®ï¼Œ
% å¯ä»¥åœ¨ \href{https://github.com/myhsia/hduthesis/issues}{GitHub Issues}
% æäº¤åé¦ˆæ„è§åŠè´¡çŒ®ä»£ç&nbsp;.
%
% å¯¹äºŽæœªæŽ¥è§¦è¿‡ \hologo{LaTeX} çš„åˆå­¦è€…ï¼ŒæŽ¨èé˜…è¯»
% \href{https://tug.ctan.org/info/lshort/english/lshort.pdf}
%   {The Not So Short Introduction to \hologo{LaTeX2e}}
% ï¼ˆå¯åœ¨ç»ˆç«¯æ‰§è¡Œ |texdoc lshort| èŽ·å–ï¼‰æˆ–è€…å…¶ä¸­æ–‡ç‰ˆ
% \href{http://mirrors.ctan.org/info/lshort/chinese/lshort-zh-cn.pdf}
%   {ã€Šä¸€ä»½ï¼ˆä¸å¤ªï¼‰ç®€çŸ­çš„ \hologo{LaTeX2e} ä»‹ç»ã€‹}
% ï¼ˆå¯åœ¨ç»ˆç«¯æ‰§è¡Œ |texdoc lshort-zh-cn| èŽ·å–ï¼‰.
%
% \subsection{æ¨¡æ¿ç»„æˆ}
%
% \hologo{hduthesis} æ¨¡æ¿çš„ \file{./tex/} æ–‡ä»¶å¤¹ä¸­åŒ…å«äº†æ¨¡æ¿çš„æ‰€æœ‰ Runtime æ–‡ä»¶.
% å…¶ä¸­ï¼Œ\file{hduthesis.cls} æ˜¯æ¨¡æ¿çš„æ&nbsp;¸å¿ƒæ–‡ä»¶ï¼Œå®žè´¨ä¸Šå¹¶ä¸æä¾›ä¸»è¦åŠŸèƒ½ï¼Œ
% åªç”¨äºŽå¯¹å…¨å±€é€‰é¡¹çš„æŽ§åˆ¶åŠ&nbsp;è½½æ¨¡æ¿çš„å„ä¸ªæ¨¡å—. æ¨¡æ¿çš„åŠŸèƒ½æ¨¡å—å¦‚ä¸‹
%
% \begin{tasks}(2)
%   \task \file{typeset}ï¼šå­—ä½“å’Œå…¬å¼è®¾ç½®.
%   \task \file{layout}ï¼šç‰ˆé¢æ&nbsp;¸å¿ƒæŽ’ç‰ˆæŽ¥å£.
%   \task \file{pg.config}ï¼šç¡•å£«å­¦ä½è®ºæ–‡é…ç½®æ¨¡å—.
%   \task \file{bc.config}ï¼šæœ¬ç§‘å­¦ä½è®ºæ–‡é…ç½®æ¨¡å—.
%   \task \file{beamerthemehdu}ï¼šBeamer ä¸»é¢˜.
%   \task \file{stationery}ï¼šä¿¡çº¸æ¨¡å—.
%   \task \file{exam}ï¼šHDU è¯•å·è§£æžæ¨¡æ¿.
%   \task \file{l3doc}ï¼šç”¨æˆ·æ‰‹å†Œæ¨¡å—.
% \end{tasks}
%
% ä»¥ä¸Šæ¨¡å—åŒ…å«åœ¨ \file{hdu-}\meta{module name}\file{.code.tex} æ–‡ä»¶ä¸­.
% åŒæ—¶ï¼Œ\file{./tex/} æ–‡ä»¶å¤¹ä¸­è¿˜åŒ…å«äº† \file{hdu-logo.pdf}ã€\file{hdu-title.pdf}ã€
% \file{hdu-motto.pdf}ã€\file{hdu-badge.pdf}ï¼Œåˆ†åˆ«æä¾›æ­å·žç”µå­ç§‘æŠ€å¤§å­¦æ&nbsp;¡å¾½ã€æ&nbsp;¡åã€
% æ&nbsp;¡è®­å’Œæ&nbsp;¡ç‰Œçš„çŸ¢é‡å›¾.
% \footnote{å¦‚æžœä½&nbsp;é€šè¿‡ |tlmgr| å®‰è£…äº†æ­¤æ¨¡æ¿ï¼Œåœ¨å…¶ä»–æ–‡æ¡£ç±»ä¸­ä¹Ÿå¯ä»¥è°ƒç”¨è¿™äº›ç´&nbsp;æ.}
%
% æ¨¡æ¿é¢„åŠ&nbsp;è½½çš„å®åŒ…æœ‰
%
% \begin{table}[htbp]
%   \centering \renewcommand* \arraystretch {.72}
%   \begin{tabular*}{\linewidth}
%     {*9{@{\hspace{1ex}}&gt;{\footnotesize}l@{\hspace{1ex}}}}
%     \toprule
%     \pkg{amssymb}    &amp; \pkg{bm}         &amp; \pkg{booktabs}  &amp;
%     \pkg{cancel}     &amp; \pkg{circuitikz} &amp; \pkg{cleveref}  &amp;
%     \pkg{derivative} &amp; \pkg{extarrows}  &amp; \pkg{fixdif}    \\
%     \midrule
%     \pkg{hyperref}   &amp; \pkg{listings}   &amp; \pkg{mathtools} &amp;
%     \pkg{multicol}   &amp; \pkg{pgfplots}   &amp; \pkg{physics2}  &amp;
%     \pkg{siunitx}    &amp;
%     \multicolumn{2}{@{}&gt;{\footnotesize}l}{\pkg{unicode-math}}\\
%     \bottomrule
%   \end{tabular*}
% \end{table}
%
% \subsection{æ–‡ä»¶ç»“æž„}
%
% \noindent \begin{minipage}[t]{.54\linewidth}
% \subsubsection{æºæ–‡ä»¶ \&amp; ä½¿ç”¨ç”¨ä¾‹}
% \dirtree
%   {^^A
%     .1 ./hduthesis.tar.gz/.
%     .2 hduthesis.dtx, *.pdf.
%     .2 hdu-graphics.dtx, *.pdf.
%     .2 hduthesis.ins.
%     .2 example/.
%     .3 hduthesis-bachelor.tex, *.pdf.
%     .3 hduthesis-mphil.tex, *.pdf.
%     .3 reference.bib.
%     .3 cha/.
%     .3 figures/.
%     .2 README.md.
%   }
% \end{minipage} \hspace*{\fill}
% \begin{minipage}[t]{.42\linewidth}
% \subsubsection{Runtime æ–‡ä»¶} \label{1.2.2}
% \dirtree
%   {^^A
%     .1 ./hduthesis.tar.gz/.
%     .2 hduthesis.dtx/.
%     .3 hduthesis.cls.
%     .3 hdu-&lt;module&gt;.code.tex.
%     .3 beamerthemehdu.sty.
%     .3 README.md.
%     .2 hdu-graphics.dtx/.
%     .3 hdu-logo.pdf.
%     .3 hdu-title.pdf.
%     .3 hdu-badge.pdf.
%     .3 hdu-motto.pdf.
%   }
% \end{minipage}
%
% \subsection{æ¨¡æ¿çš„å¦¥åä¸ŽåƒµæŒ}
%
% \begin{enumerate}
%   \item æ¨¡æ¿çš„ç«&nbsp;èŠ‚ï¼ˆ\cs[no-index]{chapter}ã€\cs[no-index]{section}ã€
%   \cs[no-index]{subsection}ï¼‰å­—ä½“ã€å‰åŽé—´è·å®Œå…¨æŒ‰ç…§
%   æ­ç”µç†å·¥ç±»æ¯•ä¸šè®ºæ–‡å†™ä½œè§„èŒƒ è¿›è¡Œè®¾ç½®ï¼Œè™½ç„¶è¿™æ&nbsp;·çš„è®¾ç½®å¯èƒ½ä¸Žæ‚¨çš„å®¡ç¾Žä¸ç¬¦ï¼Œ
%   ä½†æ˜¯è¿™æ˜¯ä¸ºäº†ä¿è¯è®ºæ–‡çš„æ&nbsp;¼å¼ç¬¦åˆå­¦æ&nbsp;¡çš„è¦æ±‚.
%   \item æ­ç”µç†å·¥ç±»æ¯•ä¸šè®ºæ–‡å†™ä½œè§„èŒƒä¸­è¦æ±‚
%   å‚è€ƒæ–‡çŒ®ä¹¦å†™æ&nbsp;¼å¼åº”ç¬¦åˆGB7714-1987ï¼Œä½†ç›®å‰
%   GB7714-2015 ä¸ºå­¦æœ¯ç•Œé€šç”¨æ&nbsp;¼å¼ï¼Œåœ¨å·²æœ‰æ–°æ&nbsp;‡å‡†æƒ…å†µä¸‹æ—§æ&nbsp;‡å‡†ç†åº”åºŸæ­¢ä½¿ç”¨.
%   æ‰€ä»¥æœ¬æ¨¡æ¿é»˜è®¤ä½¿ç”¨ \pkg{gbt7714} å®åŒ….
% \end{enumerate}
%
% \section{æ¨¡æ¿å®‰è£…}
%
% \subsection{ç³»ç»Ÿè¦æ±‚}
%
% æœ¬æ¨¡æ¿æ”¯æŒåœ¨ |macOS|ã€|Windows|ã€|Linux|ã€|Overleaf|ã€|LoongTeX|ã€|TeXPage|
% ç­‰å¹³å°ä½¿ç”¨ï¼Œå…¼å®¹å‘è¡Œç‰ˆ \hologo{TeX} Live 2023 åŠæ›´æ–°ç‰ˆæœ¬^^A
% \footnote{
%   æœ¬æ¨¡æ¿å‡å¯åœ¨ |macOS Sequoia Version 15.4| /
%   |Ubuntu 24.04.1 LTS| / |Overleaf| /
%   |LoongTeX| / |TeXPage|
%   ä¸Šçš„ \hologo{TeX} Live 2024 ä¸­é¡ºåˆ©ç¼–è¯‘.
%   \hologo{MiKTeX} å‘è¡Œç‰ˆä»¥åŠ Windows å¹³å°æœªä½œæµ‹è¯•. å¦‚åœ¨è¿™äº›å¹³å°ç¼–è¯‘æ—&nbsp;æ³•é€šè¿‡ï¼Œ
%   å»ºè®®è½¬å‘åœ¨çº¿å¹³å°ï¼Œæœ¬æ¨¡æ¿åœ¨è¯¸å¤šåœ¨çº¿å¹³å°ç¼–è¯‘æ€§èƒ½è‰¯å¥½.
% }.
% æœ¬æ¨¡æ¿ç”Ÿæˆå­¦ä½è®ºæ–‡æ—¶æ”¯æŒ \hologo{XeLaTeX}ã€\hologo{ApTeX} ä¸Ž \hologo{LuaLaTeX}
% ç¼–è¯‘ï¼›ä½¿ç”¨æœ¬æ¨¡æ¿ç”Ÿæˆä¿¡çº¸ã€è¯•é¢˜è§£æžæ—¶æ”¯æŒæ‰€æœ‰ç¼–è¯‘æ–¹å¼.
%
% \subsection{æ&nbsp;‡å‡†å®‰è£…}
%
% å¼ºçƒˆå»ºè®®æ‚¨ä½¿ç”¨ |tlmgr| è¿›è¡Œå®‰è£…ä¸Žå‡çº§. åœ¨ç»ˆç«¯ï¼ˆTerminalï¼‰
% æ‰§è¡Œä»¥ä¸‹å‘½ä»¤å³å¯å®‰è£…æœ€æ–°ç‰ˆæœ¬çš„ \hologo{hduthesis} æ¨¡æ¿.
% \begin{quote}
%   "sudo tlmgr install hduthesis"
% \end{quote}
%
% Windows ç³»ç»Ÿç”¨æˆ·æ—&nbsp;éœ€ |sudo|ï¼Œè¯·ä»¥ç®¡ç†å‘˜èº«ä»½è¿è¡Œå‘½ä»¤æç¤ºç¬¦.
% æœ‰äº›æ—¶å€™ï¼Œæ‚¨éœ€è¦æ‰‹åŠ¨æ›´æ–° |tlmgr| æ‰èƒ½æ­£å¸¸ä½¿ç”¨ |tlmgr| å‘½ä»¤å®‰è£…å®åŒ….
% \begin{quote}
%   "sudo tlmgr update --self"
% \end{quote}
%
% å‡çº§è¯¥æ¨¡æ¿ï¼Œåœ¨ç»ˆç«¯ï¼ˆTerminalï¼‰æ‰§è¡Œä»¥ä¸‹å‘½ä»¤å³å¯
% \begin{quote}
%   "sudo tlmgr update hduthesis"
% \end{quote}
% å‘è¡Œç‰ˆ \hologo{TeX} Live 2025 ä»¥åŠæ›´æ–°ç‰ˆæœ¬å·²è‡ªå¸¦æœ¬æ¨¡æ¿ï¼Œæ—&nbsp;éœ€å®‰è£…. åªéœ€åœ¨å¿…è¦æ—¶å‡çº§å³å¯.
%
% \subsection{æ‰‹åŠ¨å®‰è£…}
%
% æœ¬æ¨¡æ¿é‡‡ç”¨ \pkg{l3build} è„šæœ¬è¿›è¡Œæ‰“åŒ…. ç”¨æˆ·å¯åœ¨
% \href{https://ctan.org/pkg/hduthesis}{CTAN}ã€
% \href{https://github.com/myhsia/hduthesis/}{GitHub} å’Œ
% \href{https://gitee.com/myhsia/hduthesis}{Gitee} å¹³å°
% Clone é¡¹ç›®\footnote{CTAN å¹³å°å¹¶æœªæä¾› \file{build.lua} è„šæœ¬}.
% è§£åŽ‹åŽåœ¨å½“å‰ç›®å½•è¿è¡Œ
% \begin{quote}
%   "l3build ctan"\\
%   "l3build install"
% \end{quote}
% ä¼šç”Ÿæˆå¦‚ \ref{1.2.2} æ‰€ç¤ºçš„ Runtime æ–‡ä»¶ï¼Œå¹¶å°†æ¨¡æ¿å®‰è£…è‡³æœ¬åœ°.
%
% \section{å…¨å±€é€‰é¡¹}
%
% \subsection{ç”¨æˆ·åè®®}
%
% ä½¿ç”¨æœ¬æ¨¡æ¿ç¼–è¯‘æœ¬ç§‘ã€ç¡•å£«å­¦ä½è®ºæ–‡æ—¶é‡åˆ°``ç¼–è¯‘å—é˜»''æŠ¥é”™ï¼Œè¯·è®¤çœŸé˜…è¯»å°é¢çš„ç”¨æˆ·åè®®.
% æ·»åŠ&nbsp;é€‰é¡¹ |agreed| åŽï¼ˆå³|\documentclass [ agreed ] { hduthesis }|ï¼‰ï¼Œ
% æ–¹å¯é¡ºåˆ©ç¼–è¯‘ï¼Œå¹¶é»˜è®¤æ‚¨å·²åŒæ„ç”¨æˆ·åè®®.
%
% ä½¿ç”¨ \hologo{hduthesis} ç¼–è¯‘ä¿¡çº¸ã€è¯•é¢˜è§£æžã€Beamer å’Œæœ¬ç”¨æˆ·æ‰‹å†Œæ—¶ï¼Œæ—&nbsp;éœ€ |agreed| é€‰é¡¹.
%
% \subsection{å­—ä½“è®¾ç½®}
%
% ç”¨æˆ·å¯é€šè¿‡å…¨å±€é€‰é¡¹è®¾ç½®æ–‡æ¡£çš„æ•°å­¦å’Œä¸­æ–‡å­—ä½“. è®¾ç½®çš„æ–¹å¼ä¸ºé”®å€¼å¯¹.
% \begin{keyval}
%   \item [\key{math-font}]    \val{font family name} ç”¨äºŽè®¾ç½®æ•°å­¦å­—ä½“.
%   \item [\key{CJKmain-font}] \val{xeCJK interface}  ç”¨äºŽè®¾ç½®ç½—é©¬æ—çš„ CJK å­—ä½“.
%   \item [\key{CJKsans-font}] \val{xeCJK interface}  ç”¨äºŽè®¾ç½®æ—&nbsp;è¡¬çº¿æ—çš„ CJK å­—ä½“.
%   \item [\key{CJKmono-font}] \val{xeCJK interface}  ç”¨äºŽè®¾ç½®ç­‰å®½æ—çš„ CJK å­—ä½“.
% \end{keyval}
% \begin{verbatim}
%   \documentclass
%     [
%       math-font    = STIX Two Math, agreed,
%       CJKmain-font = {{Songti SC}[AutoFakeBold = 2.5, AutoFakeSlant]},
%       CJKsans-font = {{STHeiti}[AutoFakeBold = 2]}
%     ] {hduthesis}
% \end{verbatim}
% æ›´åŠ&nbsp;è¯¦ç»†çš„å­—ä½“è®¾ç½®è¯·å‚è€ƒ \pkg{xeCJK} å®åŒ…çš„æ–‡æ¡£.
%
% \section{æ–‡æ¡£ä¿¡æ¯è®¾ç½®}
%
% \begin{function}{\hduset}
%   \begin{syntax}
%     \cs{DocInfo}\marg{key values}
%   \end{syntax}
%   æ­¤å‘½ä»¤æŽ¥æ”¶é”®å€¼ï¼Œç”¨äºŽè®¾ç½®æ–‡æ¡£ä¿¡æ¯ï¼Œéœ€åœ¨å¯¼è¨€åŒºä¸­æ‰§è¡Œ.
%   \begin{keyval}
%     \item [\key{title}] \val{list} ç”¨äºŽè®¾ç½®è®ºæ–‡é¢˜ç›®ä¸Žå°é¢å¤§æ&nbsp;‡é¢˜.
%     \item [\key{department}] \val{string} ç”¨äºŽè®¾ç½®å­¦é™¢.
%     \item [\key{major}] \val{string} ç”¨äºŽè®¾ç½®ä¸“ä¸š.
%     \item [\key{class}] \val{string} ç”¨äºŽè®¾ç½®ç­çº§.
%     \item [\key{stdntid}] \val{string} ç”¨äºŽè®¾ç½®å­¦å·ï¼Œ
%     ä¼šæ&nbsp;¹æ®è¾“å…¥çš„å­¦å·è‡ªåŠ¨é€‰æ‹©æœ¬ç§‘ç”Ÿ/ç&nbsp;”ç©¶ç”Ÿæ&nbsp;¼å¼.
%     \item [\key{author}] \val{string} ç”¨äºŽè®¾ç½®ä½œè€….
%     \item [\key{supervisor}] \val{list} ç”¨äºŽè®¾ç½®å¯¼å¸ˆ.
%     \item [\key{bibsource}] \val{string} ç”¨äºŽè®¾ç½®æ’å…¥å‚è€ƒæ–‡çŒ®æ–‡ä»¶æº.
%   \end{keyval}
% \end{function}
%
% æœ¬ç§‘ç”Ÿè¾“å…¥æ&nbsp;·ä¾‹å¦‚ä¸‹. è€ƒè™‘åˆ°ä¸åŒå­¦é™¢å¯¹å°é¢æ&nbsp;·å¼çš„è¦æ±‚ä¸åŒ |æ¯•ä¸šè®ºæ–‡|ã€|æ¯•ä¸šè®¾è®¡|ã€
% |æ¯•ä¸šè®ºæ–‡ï¼ˆè®¾è®¡ï¼‰|ï¼Œ\key*{title} æä¾›äº†æŽ¥å£ä¾›è®¾ç½®å°é¢å¤§æ&nbsp;‡é¢˜ï¼š
% è®ºæ–‡é¢˜ç›®å’Œå¤§æ&nbsp;‡é¢˜ä¹‹é—´ç”¨æ–œçº¿ (|/|) åˆ†éš”. æŒ‡å¯¼æ•™å¸ˆèŒç§°å’Œå§“åä¹‹é—´ç”¨åŠè§’å†’å· (|:|) åˆ†éš”.
% \begin{verbatim}
%   \hduset
%     {
%       title  = æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡ \hologo{LaTeX} æ¨¡æ¿/
%                æœ¬ç§‘æ¯•ä¸šè®¾è®¡,  department = ç†å­¦é™¢,
%       major  = ç‰©ç†å­¦,        stdntid    = C668668E,
%       author = ç”³æ™ºèƒ½,        bibsource  = reference,
%       class  = è‹±æ‰ç­,        supervisor = æ•™æŽˆ:è‘‰èŠ·æ™´, 
%     }
% \end{verbatim}
%
% ç&nbsp;”ç©¶ç”Ÿè¾“å…¥æ&nbsp;·ä¾‹å¦‚ä¸‹. ç¡•å£«å­¦ä½è®ºæ–‡æ‰‰é¡µéœ€åŒæ—¶æœ‰è‹±æ–‡ç‰ˆï¼Œå›&nbsp;æ­¤éœ€è¦åœ¨é”®
% \key*{title} \key*{author} \key*{supervisor} ä¸­åˆ†åˆ«è¾“å…¥ä¸­æ–‡å’Œè‹±æ–‡ä¿¡æ¯ï¼Œ
% ä¸­è‹±ä¿¡æ¯ä½¿ç”¨æ–œçº¿ (|/|) åˆ†éš”ï¼ŒæŒ‡å¯¼æ•™å¸ˆèŒç§°å’Œå§“åä¹‹é—´ç”¨åŠè§’å†’å· (|:|) åˆ†éš”.
%
% \begin{verbatim}
%   \hduset
%     {
%       title      = æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å­¦ä½è®ºæ–‡ \hologo{LaTeX} æ¨¡æ¿/
%                    \hologo{LaTeX} Template for Thesis at
%                    Hangzhou Dianzi University,
%       major      = ç‰©ç†å­¦,             stdntid    = 216686680,
%       author     = ç”³æ™ºèƒ½/SAN Chi Nan, bibsource  = reference
%       supervisor = æ•™æŽˆ:è‘‰èŠ·æ™´/Prof.:YIP Tsz Ching,
%     }
% \end{verbatim}
%
% \subsection{ç”Ÿæˆå°é¢ \&amp; æ‰‰é¡µ}
%
% \begin{function}{\maketitle}
%   åœ¨æ­£æ–‡åŒºåŸŸï¼Œä½¿ç”¨å‘½ä»¤ \cs{maketitle} å³å¯ç”Ÿæˆè®ºæ–‡å°é¢å’Œæ‰‰é¡µ.
%   ç”Ÿæˆçš„å°é¢å’Œæ‰‰é¡µä¼šæ&nbsp;¹æ®æ‰€è®¾ç½®çš„æ–‡æ¡£ä¿¡æ¯è‡ªåŠ¨ç”Ÿæˆ.
% \end{function}
%
% \DescribeMacro{\l__hduthesis_grade_int}
% å°é¢ä¸Šçš„è®ºæ–‡å®Œæˆæ—¥æœŸå’Œå­¦ç”Ÿæ¯•ä¸šå¹´ä»½ä¼šæ&nbsp;¹æ®å½“å‰ç³»ç»Ÿæ—¶é—´è‡ªåŠ¨ç”Ÿæˆ.
% é’ˆå¯¹æœ¬ç§‘è®ºæ–‡ï¼Œå¦‚æžœå½“å‰æœˆä»½åœ¨8æœˆåŠä»¥å‰ï¼Œæ¯•ä¸šå¹´ä»½ä¼šæ˜¾ç¤ºä»Šå¹´ï¼›
% å¦‚æžœå½“å‰æœˆä»½åœ¨9æœˆåŠä»¥åŽï¼Œæ¯•ä¸šå¹´ä»½ä¼šæ˜¾ç¤ºæ¬¡å¹´.
% åœ¨ \cs{DocInfo} åŽå¯¹æ•´åž‹ \cs{l__hduthesis_grade_int} é‡æ–°èµ‹å€¼å¯æ‰‹åŠ¨æ›´æ”¹æ¯•ä¸šå¹´ä»½.
%
% \begin{quote}
%   "\ExplSyntaxOn"\\
%   "\int_set:Nn \l__hduthesis_grade_int" \marg{Year}\\
%   "\ExplSyntaxOff"
% \end{quote}
%
% \subsection{ç”Ÿæˆæ‰¿è¯ºä¹¦}
%
% \begin{function}{\commitment}
%   \begin{syntax}
%     \cs{commitment} \oarg{file-date combined comma list}
%   \end{syntax}
%
%   æ­¤å‘½ä»¤ç”¨äºŽç”Ÿæˆæ‰¿è¯ºä¹¦. å‘½ä»¤çš„å¯é€‰å‚æ•°æŽ¥æ”¶æ•°ç»„ï¼Œç”¨äºŽæŒ‡å®šç­¾åæ–‡ä»¶å’Œè¾“å…¥ç­¾åçš„æ—¥æœŸ.
%   ç­¾åæ–‡ä»¶å’Œç­¾åçš„æ—¥æœŸä¹‹é—´ç”¨ |/| åˆ†éš”ï¼Œå¤šç»„ç­¾åä¹‹é—´ç”¨ |,| åˆ†éš”.
%   ç­¾åæ–‡ä»¶æŽ¥æ”¶ \file{.pdf} / \file{.png} / \file{.jpg} ç­‰æ&nbsp;¼å¼.
%   æ—¥æœŸçš„è¾“å…¥æ&nbsp;¼å¼ä¸º |yyyy-mm-dd|.
% \end{function}
%
% å¯¹äºŽæœ¬ç§‘ç”Ÿï¼Œåªéœ€è¦ç­¾ç½² ``è¯šä¿¡æ‰¿è¯º'' ä¸€ç»„ç­¾åï¼›
% å¯¹äºŽç&nbsp;”ç©¶ç”Ÿï¼Œåˆ™éœ€è¦ç­¾ç½² ``åŽŸåˆ›æ€§å£°æ˜Ž''ã€
% ``ï¼ˆä½œè€…åŒæ„ï¼‰å­¦ä½è®ºæ–‡ä½¿ç”¨æŽˆæƒå£°æ˜Ž'' å’Œ
% ``ï¼ˆå¯¼å¸ˆåŒæ„ï¼‰å­¦ä½è®ºæ–‡ä½¿ç”¨æŽˆæƒå£°æ˜Ž'' ä¸‰ç»„ç­¾å. ä½¿ç”¨ç”¨ä¾‹å¦‚ä¸‹
%
% \begin{verbatim}
%   \begin{document} ... \maketitle
%   \commitment
%     [ example-image-a/2025-05-31, example-image-a/2025-05-31,
%       example-image-b/2025-06-01 ]
%     ... \end{document}
% \end{verbatim}
%
% å¦‚æžœä½¿ç”¨è€…æš‚æœªç”Ÿæˆç­¾åä½†æ˜¯éœ€è¦æ·»åŠ&nbsp;æ—¥æœŸï¼Œåˆ™å°†ç­¾åæ–‡ä»¶ç•™ç©ºå³å¯ï¼Œä½†åˆ†éš”ç¬¦ |/| ä»éœ€ä¿ç•™. ä¾‹å¦‚ 
% \verb|\commitment [ /2024-05-31 ]|. å¦‚æžœä¸éœ€è¦æ·»åŠ&nbsp;æ—¥æœŸï¼Œåˆ™ç›´æŽ¥ç•™ç©ºå³å¯.
%
% è®ºæ–‡å°é¢ã€æ‰‰é¡µå’Œæ‰¿è¯ºä¹¦å¦‚ä¸‹å›¾.
% å¯åœ¨ç»ˆç«¯æ‰§è¡Œ |texdoc hduthesis-bachelor| å’Œ |texdoc hduthesis-mphil|
% åˆ†åˆ«èŽ·å–æœ¬ç§‘å’Œç¡•å£«å­¦ä½è®ºæ–‡æ&nbsp;·ä¾‹æ–‡ä»¶.
%
% \begin{center}
%   \begin{minipage}{.32\linewidth}
%     \centering
%     \fbox{^^A
%       \includegraphics[width = .94\linewidth, page = 1]
%         {hduthesis-bachelor.pdf}^^A
%     }
%   \end{minipage} \hspace*{\fill}
%   \begin{minipage}{.32\linewidth}
%     \centering
%     \fbox{^^A
%       \includegraphics[width = .94\linewidth, page = 2]
%         {hduthesis-bachelor.pdf}^^A
%     }
%   \end{minipage} \hspace*{\fill}
%   \begin{minipage}{.32\linewidth}
%     \centering
%     \fbox{^^A
%       \includegraphics[width = .94\linewidth, page = 1]
%         {hduthesis-mphil.pdf}^^A
%     }
%   \end{minipage}\\
%   \begin{minipage}{.32\linewidth}
%     \centering
%     \fbox{^^A
%       \includegraphics[width = .94\linewidth, page = 2]
%         {hduthesis-mphil.pdf}^^A
%     }
%   \end{minipage} \hspace*{\fill}
%   \begin{minipage}{.32\linewidth}
%     \centering
%     \fbox{^^A
%       \includegraphics[width = .94\linewidth, page = 3]
%         {hduthesis-mphil.pdf}^^A
%     }
%   \end{minipage} \hspace*{\fill}
%   \begin{minipage}{.32\linewidth}
%     \centering
%     \fbox{^^A
%       \includegraphics[width = .94\linewidth, page = 4]
%         {hduthesis-mphil.pdf}^^A
%     }
%   \end{minipage}
% \end{center}
%
% \section{ç«&nbsp;èŠ‚è®¾ç½®}
%
% \subsection{è¾“å…¥ä¸­ / è‹±æ‘˜è¦}
%
% \DescribeEnv{abstract}
% çŽ¯å¢ƒ \env{abstract} ç”¨äºŽç”Ÿæˆæ‘˜è¦ï¼Œå…¶å¯é€‰å‚æ•°å¯è®¾ç½®è¯­è¨€æ&nbsp;¼å¼.
%
% \begin{function}{\keywords}
%   å‘½ä»¤ \cs{keywords} éœ€åœ¨ \env{abstract} çŽ¯å¢ƒå†…æ‰§è¡Œï¼Œ
%   å…¶ä¼šæ&nbsp;¹æ® \env{abstract} çŽ¯å¢ƒæ‰€é€‰æ‹©çš„è¯­è¨€ï¼Œè‡ªåŠ¨ç”Ÿæˆè‹±æ–‡ / ä¸­æ–‡æ&nbsp;¼å¼çš„å…³é”®è¯.
%   \begin{quote}
%     |\begin{abstract}|\oarg{language}\\
%     |  ...  |\\
%     |  |\cs{keywords}\marg{keywords list}\\
%     |\end{abstract}|
%   \end{quote}
%   é€šè¿‡å‘½ä»¤ \cs{keywords} ä»¥åŠè§’é€—å· (,) ä¸ºåˆ†éš”è¾“å…¥å…³é”®è¯åˆ—è¡¨ï¼Œ
%   è¾“å‡ºæ—¶ä¼šæ&nbsp;¹æ®æ‰€å¤„ \env{abstract} çŽ¯å¢ƒé€‰æ‹©çš„è¯­è¨€ä¸åŒï¼Œè‡ªåŠ¨ä»¥åŠ / å…¨è§’åˆ†å·åˆ†éš”.
% \end{function}
%
% \subsection{è¾“å…¥ç›®å½• \&amp; æ­£æ–‡}
%
% é€šè¿‡å‘½ä»¤ \cs{tableofcontents} å¯ç”Ÿæˆç›®å½•. \cs{chapter}ã€\cs{section}ã€
% \cs{subsection} ç­‰ç«&nbsp;èŠ‚çº§æ¬¡å‡æŒ‰ç…§
% \href{https://jwc.hdu.edu.cn/2022/0428/c4528a153813/page.htm}
%   {æ­ç”µç†å·¥ç±»æ¯•ä¸šè®ºæ–‡å†™ä½œè§„èŒƒ} å®šåˆ¶.
%
% \subsection{å‚è€ƒæ–‡çŒ® \&amp; é™„å½•}
%
% é€šè¿‡å‘½ä»¤ \cs{DocInfo} æŒ‡å®š \file{.bib} æ–‡ä»¶åŽä½¿ç”¨å‘½ä»¤ \cs{printbiblography}
% å³å¯è¾“å‡ºå‚è€ƒæ–‡çŒ®åˆ—è¡¨. å‚è€ƒæ–‡çŒ®æ&nbsp;¼å¼å·²è®¾ç½®ä¸º |gb7714-2015|.
% è‹¥æœªæŒ‡å®šå‚è€ƒæ–‡çŒ® \file{.bib} æ–‡ä»¶ï¼Œä¸ºåŠ&nbsp;é€Ÿç¼–è¯‘ï¼Œ\pkg{gbt7714} å®åŒ…å°†ä¸ä¼šåŠ&nbsp;è½½.
%
% å¯ä»¥ç›´æŽ¥ä½¿ç”¨å¸¦æœ‰æ˜Ÿå·çš„ç«&nbsp;èŠ‚å‘½ä»¤ç”Ÿæˆé™„å½•ç«&nbsp;èŠ‚ï¼Œå¦‚ \verb|\chapter*{é™„å½•}|.
%
% \clearpage
%
% \section{é™„åŠ&nbsp;æ¨¡å—}
%
% \subsection{ç”¨æˆ·æ‰‹å†Œ}
%
% æœ¬æ‰‹å†Œä¸º \cls{hduthesis} åŠ&nbsp;è½½ \pkg{l3doc} æ¨¡å—åŽç”Ÿæˆï¼Œæ­¤æ¨¡å—æ—&nbsp;éœ€ \pkg{agreed} é€‰é¡¹.
% \begin{quote}
%   |\documentclass [ mode = l3doc ] { hduthesis }|
% \end{quote}
% \subsection{æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ä¿¡ç¬º}
%
% åŠ&nbsp;è½½æ¨¡å— \pkg{stationery}ï¼Œå¹¶è¿›è¡Œæ–‡æ¡£ä¿¡æ¯è®¾ç½®ï¼Œå³å¯ç”Ÿæˆä¿¡çº¸.
% å¯ç”¨äºŽæŽ¨èä¿¡æ’°å†™æˆ–ç”Ÿæˆç¬”è®°çº¸. æ­¤æ¨¡å—æ—&nbsp;éœ€ \pkg{agreed} é€‰é¡¹.
% \begin{quote}
%   |\documentclass [ mode = stationery ] { hduthesis }|
% \end{quote}
% ä¸Žå­¦å£« / ç¡•å£«å­¦ä½è®ºæ–‡æ–‡æ¡£ä¿¡æ¯è®¾ç½®ç±»ä¼¼ï¼Œä½¿ç”¨ \cs{DocInfo} å‘½ä»¤ï¼Œ
% å¯¹ä¿¡ä»¶ä¸»é¢˜ã€å‘ä»¶äººã€é‚®ç®±ã€æ—¥æœŸå’Œæ°´å°è¿›è¡Œè®¾ç½®. æ­¤æ—¶ \cs{DocInfo} å‘½ä»¤æŽ¥å—é”®
% \key*{title} \key*{author} \key*{mail}
% \key*{date} \key*{watermark}. ä¸‹é¡µä¸ºç”Ÿæˆä¿¡çº¸çš„æ&nbsp;·ä¾‹.
%
% \begin{verbatim}
%   \hduset
%     {
%       title      = Recommendation Letter for SAN Chi Nan,
%       author     = YIP Tsz Ching, mail = email@server.domain,
%       date       = {23\textsuperscript{th} December, 2024},
%       watermark  = true
%     }
%   \begin{document} \maketitle ... \end{document}
% \end{verbatim}
%
% \begin{function}{\notelines}
%   \begin{syntax}
%     \cs{notelines} \oarg{num}
%   \end{syntax}
%   ç”¨äºŽåœ¨ä¿¡çº¸ä¸Šæ·»åŠ&nbsp;ç¬”è®°çº¿ï¼Œå…¶å¯é€‰å‚æ•°æŽ¥æ”¶ç¬”è®°çº¿çš„æ•°é‡ï¼Œé»˜è®¤å€¼ä¸º20.
%   ä¸‹é¡µä¸ºç”Ÿæˆçš„ä¿¡çº¸å’Œç¬”è®°çº¸æ&nbsp;·ä¾‹ï¼Œå¯åœ¨ç»ˆç«¯æ‰§è¡Œ |texdoc hduthesis-stationery|
%   èŽ·å–æ­¤æ&nbsp;·ä¾‹æ–‡ä»¶.
% \end{function}
%
% \includepdf [ pages = -, nup = 1x2, angle = -90, frame,
%               linktodoc, scale = 0.96, delta = 0in .25in
%             ] {hduthesis-stationery}
%
% \subsection{Beamer ä¸»é¢˜}
%
% æœ¬æ¨¡æ¿ä¸­å­˜åœ¨ç‹¬ç«‹çš„ Beamer ä¸»é¢˜ |hdu|ï¼Œç”¨äºŽç”Ÿæˆæ­å·žç”µå­ç§‘æŠ€å¤§å­¦é£Žæ&nbsp;¼çš„ Beamer å¹»ç¯ç‰‡.
% è¯¥ä¸»é¢˜ç›®å‰æš‚ä¸å¼€æ”¾æ›´æ”¹ä¸»é¢˜è‰²æ­ç”µè“å’Œ Logo.
%
% åŠ&nbsp;è½½æ¨¡å— \pkg{beamer} åŽå¯é€šè¿‡ \cs{hduset} æŽ¥å£è®¾ç½®æ–‡æ¡£ä¿¡æ¯.
% æ­¤æ¨¡å—æ—&nbsp;éœ€ \pkg{agreed} é€‰é¡¹.
% \begin{quote}
%   "\documentclass [ mode = beamer ] { hduthesis }"
% \end{quote}
% ä¸Žå­¦å£« / ç¡•å£«å­¦ä½è®ºæ–‡æ–‡æ¡£ä¿¡æ¯è®¾ç½®ç±»ä¼¼ï¼Œä½¿ç”¨ \cs{DocInfo} å‘½ä»¤ï¼Œ
% å¯¹ä¿¡ä»¶ä¸»é¢˜ã€å‘ä»¶äººã€é‚®ç®±ã€æ—¥æœŸå’Œæ°´å°è¿›è¡Œè®¾ç½®. æ­¤æ—¶ \cs{DocInfo} å‘½ä»¤æŽ¥å—é”®
% \key*{title} \key*{subtitle} \key*{author} \key*{date} \key*{supervisor}
% \key*{reference}. ä¸‹é¡µä¸ºç”ŸæˆBeamerçš„æ&nbsp;·ä¾‹.
% \begin{verbatim}
%   \hduset
%     {
%       title      = Beamer Theme for Hangzhou Dianzi University
%                    Based on \LaTeX3,
%       subtitle   = hdu Undergraduate Thesis Proposal,
%       author     = SAN Chi Nan (C668668E0),
%       date       = {\today{} / Building 6, Room 321},
%       supervisor = Prof. YIP Tsz Ching,
%       bibsource  = reference.bib,
%     }
% \end{verbatim}
%
% \subsection{HDU è¯•å·è§£æžæ¨¡å—}
%
% åŠ&nbsp;è½½æ¨¡å— \pkg{exam} åŽå³å¯ä½¿ç”¨æ­¤æ¨¡å—ï¼Œ
% æ­¤æ¨¡å—æ—&nbsp;éœ€ \pkg{agreed} é€‰é¡¹.
% \begin{quote}
%   "\documentclass [ mode = exam ] { hduthesis }"
% \end{quote}
% æ­¤æ¨¡å—ä¸­é¢„åˆ¶äº† \env{problem} å’Œ \env{solution} çŽ¯å¢ƒ.
%
% \includepdf [ pages = -, nup = 2x4, frame, linktodoc,
%               scale = 0.96, delta = .25in .2in
%             ] {hduthesis-beamer}
%
% \includepdf [ pages = -, nup = 1x2, angle = -90, frame,
%               linktodoc, scale = 0.96, delta = 0in .25in
%             ] {hduthesis-exam}
%
% \begin{thebibliography}{99}
%   \bibitem{interface3} The \hologo{LaTeX} Project.
%   The \hologo{LaTeX3} Interfaces. CTAN: Released 2025-03-10.
%   \bibitem{ctex} \url{CTEX.ORG}. C\hologo{TeX} å®é›†. 2022-07-14 v2.5.10.
%   \bibitem{clsguide} \hologo{LaTeX} Project Team.
%   \hologo{LaTeX} for package and class authors current version
%   \copyright{} Copyright 2023 -- 2024. 2024-09-15.
%   \bibitem{source2e} B. Johannes, C. David, J. Alan, L. Leslie L, M. Frank,
%   R. Chris, and S. Rainer.
%   \hologo{LaTeX} for package and class authors current version.
%   2024-11-01 Patch level 2.
%   \bibitem{l3styleguide} The \hologo{LaTeX} Project.
%   The \hologo{LaTeX3} kernel: style guide for code authors.
%   CTAN: Released 2025-03-10.
%   \bibitem{packages} Package \pkg{etoolbox}, \pkg{geometry}, \pkg{tocloft},
%   \pkg{fancyhdr}, etc.
%   \bibitem{hdubachelor} æ­å·žç”µå­ç§‘æŠ€å¤§å­¦æ•™åŠ¡å¤„.
%   \href{https://jwc.hdu.edu.cn/2022/0428/c4555a153813/page.htm}
%     {æ¯•ä¸šè®¾è®¡ï¼ˆè®ºæ–‡ï¼‰çš„å†™ä½œè§„èŒƒåŠæ&nbsp;¼å¼è¦æ±‚}
%   \bibitem{hdumphil} æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ç&nbsp;”ç©¶ç”Ÿé™¢.
%   \href{https://grs.hdu.edu.cn/2013/0507/c1730a51754/page.htm}
%     {æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ç&nbsp;”ç©¶ç”Ÿå­¦ä½è®ºæ–‡æ&nbsp;¼å¼ç»Ÿä¸€è¦æ±‚ï¼ˆæ­ç”µç&nbsp;”ã€”2012ã€•311å·ï¼‰}
% \end{thebibliography}
% \end{documentation}
% \restoregeometry \appendix
% \begin{implementation}
%
% \section{å®žçŽ°ç»†èŠ‚}
%
% \subsection{HDU æ&nbsp;¡å¾½ \&amp; æ&nbsp;¡å \&amp; æ&nbsp;¡ç‰Œ \&amp; æ&nbsp;¡è®­çš„å®žçŽ°}
%
% \subsubsection{åŽŸå§‹ç´&nbsp;æé¢„å¤„ç†}
%
% å‰å¾€ \href{https://www.hdu.edu.cn/666/list.htm}{æ&nbsp;¡æƒ…çºµè§ˆ/æ&nbsp;¡æ&nbsp;‡è§„èŒƒ}
% èµ„æºåŽï¼Œä½¿ç”¨ Inkscapeï¼ˆæˆ– Adobe Illustratorï¼ŒAffinity Designï¼ŒVectornator ç­‰ï¼‰
% åˆ†åˆ«å°†æ&nbsp;¡å¾½ã€æ&nbsp;¡åã€æ&nbsp;¡ç‰Œã€æ&nbsp;¡è®­å¯¼å‡º |.pdf| æ&nbsp;¼å¼. æ&nbsp;¡ç‰Œå¯èƒ½éœ€è¦æ‰‹åŠ¨å°†æ&nbsp;¡å¾½ã€æ&nbsp;¡åæ‰‹åŠ¨æ‹¼æŽ¥.
%
% \subsubsection{PDF æ–‡ä»¶å¤„ç†}
%
% ç”±äºŽå‘è¡Œç‰ˆ \hologo{TeX} Live 2024 åŠæ›´æ—©ç‰ˆæœ¬ä¸­çš„ |dvipdfmx| ç¨‹åºåœ¨ä»¥æŒ‡å®šé€æ˜Žåº¦æ’å…¥ç»
% Inkscape å¯¼å‡ºçš„ |.pdf| æ–‡ä»¶æ—¶å­˜åœ¨é€æ˜Žåº¦å¤±æ•ˆé—®é¢˜\footnote
% {æ„Ÿè°¢ \hologo{TeX} ä¸“å®¶ \href{https://www.zhihu.com/people/li-a-ling}
% {|@æŽé˜¿çŽ²|} ä¿®å¤äº†è¿™ä¸€ Bug (Commit: |fdefe61|).}ï¼Œ
% æ‰€ä»¥å…ˆä½¿ç”¨ |Ghostscript| ç¨‹åºä¿®å¤ |.pdf| æ–‡ä»¶
% \begin{quote}
%   "gs -o" \meta{input file}".pdf -sDEVICE=pdfwrite" \meta{output file}".pdf"
% \end{quote}
% æ­¤æ—¶è‹¥ä½¿ç”¨ Text Editor æŸ¥çœ‹å¯¼å‡ºçš„ |.pdf| æ–‡ä»¶ï¼Œä¼šå‘çŽ°é‡Œé¢å­˜åœ¨è®¸å¤šæ—&nbsp;æ³•è¯†åˆ«çš„å­—ç¬¦.
% è¿™æ—¶éœ€è¦ä½¿ç”¨ mutool å·¥å…·å¯¹ |.pdf| æ–‡ä»¶çš„å†…å®¹æµè¿›è¡Œæ¸…ç†ã€æ¶ˆæ¯’ã€åŽ‹ç¼©å’Œæ•°æ®è½¬æ¢. å‘½ä»¤å¦‚ä¸‹
% \begin{quote}
%   "mutool clean -a -z -gggg" \meta{input file}".pdf" \meta{output file}".pdf"
% \end{quote}
%
% \subsubsection{ç´&nbsp;ææ‰“åŒ…}
%
% ç”±äºŽæ¯ä¸ª |.pdf| æ–‡ä»¶å‡å­˜åœ¨ä»¥ |%| å¼€å¤´çš„ä»£ç&nbsp;
% \begin{verbatim}
%      %PDF-1.7
%      %ÂµÂ¶
%      %%EOF
% \end{verbatim}
% éœ€æ›´æ”¹ Docstrip å¤„ç† |%| è¡Œä¸ºï¼š|%| æ”¹ä¸º |%%|ï¼Œ|%%| æ”¹ä¸º |%%%|ï¼Œ
% å¹¶åœ¨ \file{hduthesis.ins} æ·»åŠ&nbsp;
% \begin{quote}
%   "\let \MetaPrefix \perCent"
% \end{quote}
% çŽ°å¯å°†å¤„ç†ç»“æŸåŽå¾—åˆ° ASCII ç¼–ç&nbsp;çš„ |.pdf| æ–‡ä»¶ï¼Œæ‰“åŒ…è‡³ \file{hdu-graphics.dtx}.
%
% \subsection{\file{hduthesis.cls} çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;@@=hdu&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;*class&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\def \hduthesis@date {2025-03-23}
\def \hduthesis@version {1.1.1}
\def \hduthesis@maintainerid {myhsia}
%    \end{macrocode}
%
%    \begin{macrocode}
\ProvidesExplClass {hduthesis} {\hduthesis@date} {\hduthesis@version}
  {LaTeX Template Bundle for Hangzhou Dianzi University}
%    \end{macrocode}
%   å…¼å®¹ \hologo{TeX} Live 2023 åŠä¹‹åŽçš„ç‰ˆæœ¬. å½“å¯¹åº”å‘½ä»¤ä¸å­˜åœ¨æ—¶ï¼Œåœ¨å·²æœ‰å‘½ä»¤åŸºç¡€ä¸Šæ–°å¢žå˜ä½“
%    \begin{macrocode}
\cs_if_exist:NF \seq_set_split:Nne
  { \cs_generate_variant:Nn \seq_set_split:Nnn { Nne } }
\cs_if_exist:NF \seq_set_split:Nee
  { \cs_generate_variant:Nn \seq_set_split:Nnn { Nee } }
\cs_if_exist:NF \tl_set:Ne
  { \cs_generate_variant:Nn \tl_set:Nn { Ne } }
\cs_if_exist:NF \tl_gset:Ne
  { \cs_generate_variant:Nn \tl_gset:Nn { Ne } }
%    \end{macrocode}
%   è­¦å‘Šä¿¡æ¯è®¾ç½®
%    \begin{macrocode}
\cs_new_protected:Npn \@@_msg_new:nn #1#2 
  { \msg_new:nnn { hduthesis } {#1} {#2} }
\cs_new_protected:Npn \@@_msg_error:nn #1#2
  { \msg_error:nnn { hduthesis } {#1} {#2} }
\cs_generate_variant:Nn \@@_msg_error:nn { nx }
\cs_new_protected:Npn \@@_msg_warning:nn #1#2
  { \msg_warning:nnn { hduthesis } {#1} {#2} }
\cs_generate_variant:Nn \@@_msg_warning:nn { nx }
\@@_msg_new:nn { not found module }
  { The ~ hduthesis ~ module ~ `#1' ~ not ~ found. }
\@@_msg_new:nn { unknown mode }
  { 
    Unknown ~ hduthesis ~ mode ~ `#1',~
    loading ~ mode ~ `thesis' ~ instead.
  }
\@@_msg_new:nn { Users Agreement }
  {
    \exp_not:n
      {
        ç¼–è¯‘å—é˜»!~ ä½¿ç”¨æ¨¡æ¿å‰è¯·é˜…è¯»ç”¨æˆ·æ‰‹å†Œä¸­çš„ã€Œç”¨æˆ·åè®®ã€
        \MessageBreak
        !æ¨¡æ¿ä½œè€… (@myhsia) ä¸å¯¹ä½¿ç”¨æœ¬æ¨¡æ¿äº§ç”Ÿçš„æ&nbsp;¼å¼å®¡æŸ¥é—®é¢˜è´Ÿè´£!
        \MessageBreak
        å¦‚æžœæ‚¨åŒæ„åè®®ï¼Œåœ¨å…¨å±€é€‰é¡¹ä¸­æ·»åŠ&nbsp; `agreed' å³å¯è§£é™¤æœ¬é”™è¯¯
        \MessageBreak
        æ¬¢è¿Žæ‚¨é€šè¿‡é‚®ä»¶ (myhsia@hdu.edu.cn) æˆ– GitHub åé¦ˆæ„è§
      }
  }
%    \end{macrocode}
% \begin{macro}{\@@_load_module:n, \@@_provide_module:n}
%   åŠ&nbsp;è½½ / æä¾› \cls{hduthesis} çš„æ¨¡å—
%    \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_load_module:n #1 
  {
    \clist_map_inline:nn {#1}
    {
      \file_if_exist_input:nF { hdu-##1.code.tex }
        { \@@_msg_error:nn { not found module } {##1} }
    }
  }
\cs_new_protected_nopar:Npn \@@_provide_module:n #1
  {
    \ProvidesExplFile{hdu-#1.code.tex}
      {\hduthesis@date}{\hduthesis@version}
      {hduThesiS ~ \text_titlecase:n {#1} ~ Module}
  }
%    \end{macrocode}
% \end{macro}
% \begin{variable}
%   {
%     \g_@@_agreement_bool, \g_@@_mode_tl,
%     \g_@@_math_font,      \g_@@_main_CJK_font,
%     \g_@@_sans_CJK_font,  \g_@@_mono_CJK_font
%   }
%   å®šä¹‰æ–‡æ¡£ç±»å…¨å±€é€‰é¡¹çš„é”®.
%    \begin{macrocode}
\keys_define:nn { hduthesis / classoption }
  {
    agreed       .bool_set:N = \g_@@_agreement_bool,
      agreed     .initial:n  = false,
      agreed     .default:n  = true,
    mode         .tl_set:N   = \g_@@_mode_tl,
    math-font    .tl_set:N   = \g_@@_math_font,
    CJKmain-font .tl_set:N   = \g_@@_main_CJK_font,
    CJKsans-font .tl_set:N   = \g_@@_sans_CJK_font,
    CJKmono-font .tl_set:N   = \g_@@_mono_CJK_font,
    unknown      .code:n     = \@@_unknown_option:n {#1},
  }
%    \end{macrocode}
% \end{variable}
% \begin{macro}{\@@_unknown_option:n}
% \begin{variable}{\g_@@_base_options_clist}
%   ç”¨äºŽæŽ¥æ”¶å…¶ä»–å¯¹æ­¤æ–‡æ¡£ç±»æœªçŸ¥é€‰é¡¹.
%    \begin{macrocode}
\clist_new:N \g_@@_base_options_clist
%    \end{macrocode}
% \end{variable}
%   å¤„ç†æœªçŸ¥é€‰é¡¹ï¼šç§»äº¤åŸºæœ¬æ–‡æ¡£ç±»å¤„ç†.
%    \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_unknown_option:n #1
  {
    \tl_if_empty:nTF { #1 }
      {
        \clist_gput_right:NV
          \g_@@_base_options_clist \l_keys_key_str
      }
      {
        \exp_args:NNx
        \clist_gput_right:Nn \g_@@_base_options_clist
          { \l_keys_key_str = \exp_not:n {#1} }
      }
  }
%    \end{macrocode}
% \end{macro}
%   å¤„ç†æŽ¥æ”¶åˆ°çš„å…¨å±€é€‰é¡¹.
%    \begin{macrocode}
\ProcessKeyOptions [ hduthesis / classoption ]
%    \end{macrocode}
%   é‡åˆ°æœªçŸ¥æ¨¡å—æ—¶è¿”å›žè­¦å‘Šä¿¡æ¯.
%    \begin{macrocode}
\bool_lazy_all:nT
  {
    { !\str_if_empty_p:N \g_@@_mode_tl }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { thesis }     }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { beamer }     }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { stationery } }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { exam }       }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { l3doc }      }
  }
  { \@@_msg_warning:nx { unknown mode } { \g_@@_mode_tl } }
%    \end{macrocode}
%   åŠ&nbsp;è½½ \module{beamer} æ¨¡å—.
%    \begin{macrocode}
\str_if_eq:eeT { \g_@@_mode_tl } { beamer }
  {
    \PassOptionsToClass { aspectratio = 2013 } { beamer }
    \exp_args:NNV
      \LoadClass [ \g_@@_base_options_clist ] { beamer }
    \usetheme{hdu}
    \endinput
  }
%    \end{macrocode}
%   åŠ&nbsp;è½½ \module{stationery} æ¨¡å—.
%    \begin{macrocode}
\str_if_eq:eeT { \g_@@_mode_tl } { stationery }
  {
    \PassOptionsToClass { 12pt } { letter }
    \exp_args:NNV
      \LoadClass [ \g_@@_base_options_clist ] { letter }
    \@@_load_module:n { stationery }
    \endinput
  }
%    \end{macrocode}
%   åŠ&nbsp;è½½ \module{exam} æ¨¡å—.
%    \begin{macrocode}
\str_if_eq:eeT { \g_@@_mode_tl } { exam }
  {
    \exp_args:NNV
      \LoadClass [ \g_@@_base_options_clist ] { article }
    \@@_load_module:n { exam }
    \endinput
  }
%    \end{macrocode}
%   åŠ&nbsp;è½½ \module{l3doc} æ¨¡å—.
%    \begin{macrocode}
\str_if_eq:eeT { \g_@@_mode_tl } { l3doc }
  {
    \PassOptionsToClass { 11pt, letterpaper, kernel } { l3doc }
    \RequirePackage{minted}
    \exp_args:NNV
      \LoadClass [ \g_@@_base_options_clist ] { l3doc }
    \@@_load_module:n { l3doc }
    \endinput
  }
%    \end{macrocode}
%   å…¶ä½™æƒ…å†µä¸‹ï¼Œé»˜è®¤åŠ&nbsp;è½½ \module{thesis} æ¨¡å—ï¼Œå¹¶æ&nbsp;¹æ®æ‰€è¾“å…¥çš„å­¦å·ä½æ•°åŠ&nbsp;è½½ä¸åŒé…ç½®.
%   æœªç¡®è®¤ç”¨æˆ·åè®®æ—¶ï¼Œè¿”å›žé”™è¯¯ä¿¡æ¯.
%    \begin{macrocode}
\bool_lazy_any:nT
  {
    {  \str_if_eq_p:ee { \g_@@_mode_tl } { thesis }     }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { beamer }     }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { stationery } }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { exam }       }
    { !\str_if_eq_p:ee { \g_@@_mode_tl } { l3doc }      }
  }
  {
    \PassOptionsToClass { a4paper, zihao = -4 } { ctexrep }
    \PassOptionsToPackage { quiet, no-math } { xeCJK }
    \exp_args:NNV
      \LoadClass [ \g_@@_base_options_clist ] { ctexrep }
    \bool_if:NTF \g_@@_agreement_bool
      {
        \RequirePackage{hyperref}
        \pdfstringdefDisableCommands
          {
            \def \cite#1 {&lt;#1&gt;}
            \def \hologoRobust#1 {&lt;#1&gt;}
          }
        \AtBeginDocument
          {
            \hypersetup
              { hidelinks, pdfproducer = hduThesiS ~ by ~ Mingyu ~ Xia }
          }
      } { \@@_msg_error:nn { Users Agreement } { Unconfirmed } }
    \@@_load_module:n { typeset }
    \@@_load_module:n { layout }
    \cs_new_protected:Nn \@@_docinfo_degree_if_aux:
      {
        \int_compare:nNnTF
          { \tl_count:N \l_@@_set_stdntid_tl } = { 8 }
          { \@@_load_module:n { bc.config } }
          { \@@_load_module:n { pg.config } }
      }
    \endinput
  }
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/class&gt;
%    \end{macrocode}
%
% \subsection{\module{typeset} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*typeset&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {typeset}
%    \end{macrocode}
%
%    \begin{macrocode}
\RequirePackage { circuitikz, pgfplots, listings, hologo,
                  lipsum,     zhlipsum, booktabs, multicol }
\pgfplotsset { compat = newest }
%    \end{macrocode}
%   æ’å›¾ç›¸å¯¹è·¯å¾„è®¾ç½®.
%    \begin{macrocode}
\graphicspath
  {
    {./figure/}   {./figures/} {./image/}    {./images/}
    {./graphics/} {./graphic/} {./pictures/} {./picture/}
  }
%    \end{macrocode}
%   è®¾ç½®è¡Œè·å€æ•°ã€ç¼©è¿›å’Œå…¬å¼å‰åŽé—´è·.
%    \begin{macrocode}
\linespread{1.39}
\AtBeginDocument
  {
    \dim_set:Nn \abovedisplayskip {3pt}
    \dim_set:Nn \belowdisplayskip {3pt}
    \dim_set:Nn \parindent { 2\ccwd }
  }
%    \end{macrocode}
%   å…¬å¼æŽ’ç‰ˆå¿…è¦å®åŒ…åŠ&nbsp;è½½ï¼Œè¡Œé—´å…¬å¼å‰åŽé—´è·è®¾ç½®.
%    \begin{macrocode}
\RequirePackage { mathtools,  amssymb, cancel,  fixdif,
                  derivative, siunitx, physics2, bm }
\usephysicsmodule { ab, braket, op.legacy, qtext.legacy }
%    \end{macrocode}
% \begin{macro}{\@@_font_semilarge:, \@@_font_semiLarge:}
%   ä¸¤ç§æ–°å­—ä½“å°ºå¯¸è®¾ç½®.
%    \begin{macrocode}
\cs_new_protected:Nn \@@_font_semilarge:
  { \@setfontsize \@@_font_semilarge:{14}{16.5} }
\cs_new_protected:Nn \@@_font_semiLarge:
  { \@setfontsize \@@_font_semiLarge:{16.5}{17.5} }
%    \end{macrocode}
% \end{macro}
%   è®¾ç½®è¥¿æ–‡å­—ä½“ã€æ•°å­¦å­—ä½“ã€ä¸­æ–‡å­—ä½“.
%    \begin{macrocode}
\sys_if_engine_xetex:T
  {
    \RequirePackage
      [ warnings-off = { mathtools-colon, mathtools-overbracket }
      ] {unicode-math}
    \setmainfont{texgyretermes}
      [
        Extension      = .otf,         UprightFont = *-regular,
        BoldFont       = *-bold,       ItalicFont  = *-italic,
        BoldItalicFont = *-bolditalic
      ]
    \setsansfont{texgyreheros}
      [
        Extension      = .otf,         BoldItalicFont = *-bolditalic,
        UprightFont    = *-regular,    BoldFont       = *-bold,
        ItalicFont     = *-italic,     Scale          = .9
      ]
    \tl_if_empty:NF \g__hdu_math_font
      { \setmathfont { \g__hdu_math_font } }
    \tl_if_empty:NF \g__hdu_main_CJK_font
      { \exp_last_unbraced:No \setCJKmainfont \g__hdu_main_CJK_font }
    \tl_if_empty:NF \g__hdu_sans_CJK_font
      { \exp_last_unbraced:No \setCJKsansfont \g__hdu_sans_CJK_font }
    \tl_if_empty:NF \g__hdu_mono_CJK_font
      { \exp_last_unbraced:No \setCJKmonofont \g__hdu_mono_CJK_font }
  }
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/typeset&gt;
%    \end{macrocode}
%
% \subsection{\module{layout} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*layout&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {layout}
%    \end{macrocode}
%   é¡µé¢æ&nbsp;·å¼ã€ç¼–å·ã€åˆ—è¡¨è®¾ç½®.
%    \begin{macrocode}
\RequirePackage { geometry, array, setspace,
                  fancyhdr, enumitem, cleveref }
\RequirePackage
  [ skip = 1.75ex, labelsep = quad, font = small ]{caption}
\fancyhf{}
\pagestyle{fancy}
\renewcommand*\headrulewidth {.8pt}
\renewcommand*\thefigure {\arabic{chapter}-\arabic{figure}}
\renewcommand*\thetable {\arabic{chapter}-\arabic{table}}
\renewcommand*\theequation {\arabic{chapter}-\arabic{equation}}
\AddToHook{env/figure/after}{\vspace*{-2.3ex}}
\AddToHook{env/table/after}{\vskip-1.9ex}
\setlist[enumerate,1]
  {
    label = (\,\arabic*\,), itemindent = 4em, leftmargin = 0em,
    labelsep = 1ex, topsep = 0pt, itemsep = 0pt, partopsep = 0pt,
    parsep = 0em, listparindent = 2\ccwd
  }
\crefformat{figure}{å›¾#2#1#3}
\crefformat{table}{è¡¨#2#1#3}
%    \end{macrocode}
% \begin{macro}{\@@_cover_spread_box:nn, \@@_cover_center_box:nn}
%   åˆ†æ•£å¯¹é½ç›’å­ä¸Ž ä¸‹åˆ’çº¿å±…ä¸­å¯¹é½ç›’å­.
%   \footnote{ç”± \url{tex.stackexchange.com} è®ºå›ä¸Š |@egreg| æä¾›æŽ¥å£.}
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_spread_box:nn #1#2
  {
    \mode_leave_vertical:
    \hbox_to_wd:nn {#1}
      { \exp_args:Nee \tl_map_inline:nn {#2} { ##1 \hfil } \unskip }
  }
\cs_new_protected:Npn \@@_cover_center_box:nn #1#2
  {
    \mode_leave_vertical:
    \dim_set:Nn \l_tmpa_dim {#1}
    \global\setbox1 = \box\voidb@x
    \group_begin:
    \setbox0 = \vbox
      {
        \dim_set:Nn \hsize {#1}\relax
        \dim_set:Nn \parindent {0pt}
        \skip_set:Nn \leftskip {0pt plus 1fil}
        \skip_set:Nn \rightskip {0pt plus -1fil}
        \skip_set:Nn \parfillskip {0pt plus 2fil}
        #2 \par
        \loop
        \setbox2 = \lastbox
        \unless\ifvoid2
          \global\setbox1 = \vtop
            { \hbox to\hsize{\strut\unhbox2}
              \vskip-4pt \hrule height .5pt
              \vskip9.6pt \unvbox1
            }
          \unskip\unpenalty
        \repeat
      }
    \group_end:
    \box1
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_process_array:NnnN}
%   æ‹†åˆ† \cs{hduset} éƒ¨åˆ†é”®å€¼è¾“å…¥äºŒç»´æ•°ç»„.
%    \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_process_array:NnnN #1#2#3#4
  {
    \seq_set_split:Nee \l_@@_process_array_seq { / } {#1}
    \seq_set_split:Nee \l_@@_process_array_row_seq { \c_colon_str }
      { \seq_item:Nn \l_@@_process_array_seq {#2} }
    \tl_if_eq:nnTF {#3} {:}
      {
        \tl_gset:Ne #4
          { \seq_use:Nn \l_@@_process_array_row_seq {} }
      }
      {
        \tl_gset:Ne #4
          { \seq_item:Nn \l_@@_process_array_row_seq {#3} }
      }
    \seq_clear:N \l_@@_process_array_seq
    \seq_clear:N \l_@@_process_array_row_seq
  }
%    \end{macrocode}
% \end{macro}
% \begin{variable}{\g_@@_month_clist}
%   å­˜å‚¨è‹±æ–‡æœˆä»½è¡¨è¾¾.
%    \begin{macrocode}
\clist_set:Nn \g_@@_month_clist
  {
    January, February,  March,     April,   May,      June,
    July,    August,    September, October, November, December
  }
%    \end{macrocode}
% \end{variable}
% \begin{variable}
%   {
%     \l_@@_set_title_tl,      \l_@@_set_department_tl,
%     \l_@@_set_major_tl,      \l_@@_set_class_tl,
%     \l_@@_set_stdntid_tl,    \l_@@_set_author_tl,
%     \l_@@_set_supervisor_tl, \l_@@_set_bibsource_tl
%   }
%   æ¨¡å¼ \module{thesis} ä¸‹ \cs{hduset} æŽ¥å£é”®å€¼çš„å®šä¹‰.
%    \begin{macrocode}
\keys_define:nn { thesis / hduset }
  {
    title      .clist_set:N = \l_@@_set_title_tl,
    department .tl_set:N    = \l_@@_set_department_tl,
    major      .tl_set:N    = \l_@@_set_major_tl,
    class      .tl_set:N    = \l_@@_set_class_tl,
    stdntid    .tl_set:N    = \l_@@_set_stdntid_tl,
    author     .clist_set:N = \l_@@_set_author_tl,
    supervisor .tl_set:N    = \l_@@_set_supervisor_tl,
    bibsource  .tl_set:N    = \l_@@_set_bibsource_tl,
  }
%    \end{macrocode}
% \end{variable}
% \begin{macro}{\hduset}
%   æ¨¡å¼ \module{thesis} ä¸‹è®¾ç½®æ–‡æ¡£ä¿¡æ¯.
%    \begin{macrocode}
\NewDocumentCommand \hduset { m }
  {
    \keys_set:nn { thesis / hduset } {#1}
    \@@_docinfo_process_aux:  
    \@@_docinfo_degree_if_aux:  
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_docinfo_process_aux:}
%   æ¨¡å¼ \module{thesis} ä¸‹ \cs{hduset} çš„è¾…åŠ©å‘½ä»¤ï¼šæ‹†åˆ†æ•°ç»„ / è®¾ç½®å‚è€ƒæ–‡çŒ®.
%    \begin{macrocode}
\cs_set_protected_nopar:Nn \@@_docinfo_process_aux:
  {
    \@@_process_array:NnnN \l_@@_set_title_tl {1} {:} \@title
    \@@_process_array:NnnN \l_@@_set_title_tl {2} {:}
      \l_@@_set_entitle_tl
    \@@_process_array:NnnN \l_@@_set_author_tl {1} {:} \@author
    \@@_process_array:NnnN \l_@@_set_author_tl {2} {:}
      \l_@@_set_enauthor_tl
    \@@_process_array:NnnN \l_@@_set_supervisor_tl {1} {1}
      \l_@@_set_cnrole_tl
    \@@_process_array:NnnN \l_@@_set_supervisor_tl {1} {2}
      \l_@@_set_cnsupervisor_tl
    \@@_process_array:NnnN \l_@@_set_supervisor_tl {2} {1}
      \l_@@_set_enrole_tl
    \@@_process_array:NnnN \l_@@_set_supervisor_tl {2} {2}
      \l_@@_set_ensupervisor_tl
    \bool_if:NF \g_@@_agreement_bool
      { \tl_clear:N \l_@@_set_bibsource_tl }
    \tl_if_empty:NTF \l_@@_set_bibsource_tl
      {
        \newcommand*\printbibliography{\chapter*{å‚è€ƒæ–‡çŒ®}}
        \newcounter {citecount}
        \renewcommand*\cite[1]
          {
            \refstepcounter{citecount}
            \textsuperscript{[\thecitecount]}
          }
      }
      {
        \RequirePackage[sort&amp;compress]{gbt7714}
        \bibliographystyle{gbt7714-numerical}
        \dim_set:Nn \bibsep {.35ex}
        \newcommand*\printbibliography
          {
            \bibliography { \l_@@_set_bibsource_tl }
            \addcontentsline{toc}{chapter}{å‚è€ƒæ–‡çŒ®}
          }
      }
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_commitment_sign:N}
%   æ’å…¥ç­¾åå›¾ç‰‡.
%    \begin{macrocode}
\cs_new_protected:Npn \@@_commitment_sign:N #1
  {
    \leavevmode@ifvmode
    \lower \dimexpr \f@size\p@ * 9/16
    \hbox
      {
        \includegraphics
          [ height = { \fp_eval:n { 2*\f@size }\p@ } ] {#1}
      }
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_sign_process_aux:nnn}
%   å¤„ç†æ‰¿è¯ºä¹¦ç­¾åæ•°ç»„çš„è¾…åŠ©å‘½ä»¤. ç­¾åæ–‡ä»¶åéœ€è¦å±•å¼€åŽå­˜å…¥
%   \cs{l_@@_sign_figure_tl} ä¸­.
%    \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_sign_process_aux:nnn #1#2#3
  {
    \clist_set:Nn \l_@@_sign_process_clist {#1}
    \seq_set_split:Nne \l_@@_sign_figure_seq {/}
      { \clist_item:Nn \l_@@_sign_process_clist {#2} }
    \int_compare:nNnTF {#3} = {0}
      {
        \tl_set:Ne \l_@@_sign_figure_tl
          { \seq_item:Nn \l_@@_sign_figure_seq { #3 + 1 } }
        \seq_clear:N \l_@@_sign_figure_seq
      }
      {
        \seq_set_split:Nne \l_@@_sign_date_seq {-}
          { \seq_item:Nn \l_@@_sign_figure_seq {2} }
        \seq_item:Nn \l_@@_sign_date_seq {#3}
        \seq_clear:N \l_@@_sign_date_seq
      }
    \clist_clear:N \l_@@_sign_process_clist
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
%&lt;/layout&gt;
%    \end{macrocode}
%
% \subsection{\module{bc.config} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*bc.config&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\ExplSyntaxOn \makeatletter
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {bc.config}
%    \end{macrocode}
%   è®¾ç½®é¡µé¢å¸ƒå±€ã€é¡µçœ‰ã€ç›®å½•é¡µç&nbsp;æ&nbsp;¼å¼.
%    \begin{macrocode}
\geometry { top     = 3.25cm, bottom     = 2.4cm,
            left    = 4cm,    right      = 2cm,
            headsep = .72cm,  headheight = 15pt }
\fancyhead[C]
  {
    \raisebox { .12ex }
      { \small æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ \l_@@_set_entitle_tl }
  }
\hook_gput_code:nnn {cmd/tableofcontents/before} { . }
  {
    \clearpage 
    \pagenumbering{Roman} \cfoot{\small \thepage}
  }
\hook_gput_code:nnn { cmd/tableofcontents/after } { . }
  {
    \thispagestyle{fancy} \clearpage
    \pagenumbering{arabic} \cfoot{}
  }
%    \end{macrocode}
% \begin{macro}{\maketitle}
%   é‡æ–°å®šä¹‰å°é¢å¸ƒå±€.
%    \begin{macrocode}
\RenewDocumentCommand \maketitle {}
  {
    \newgeometry { margin = 3cm }
    \titlepage \@@_maketitle_bc_auxi: \endtitlepage
    \restoregeometry
  }
%    \end{macrocode}
% \end{macro}
% \begin{variable}{\l_@@_grade_int}
%   å­˜å‚¨æ¯•ä¸šå¹´ä»½. æ&nbsp;¹æ®å½“å‰æœˆä»½åˆ¤æ–­.
%    \begin{macrocode}
\int_new:N \l_@@_grade_int
\int_set:Nn \l_@@_grade_int
  {
    \int_compare:nNnTF { \c_sys_month_int } &lt; 9
      { \c_sys_year_int } { \int_eval:n { \c_sys_year_int + 1 } }
  }
%    \end{macrocode}
% \end{variable}
% \begin{macro}{\@@_maketitle_bc_auxi:}
%   \cs{maketitle} çš„è¾…åŠ©å‘½ä»¤.
%    \begin{macrocode}
\cs_new_protected_nopar:Nn \@@_maketitle_bc_auxi:
  {
    \begin{center}
      \vspace*{14\p@}
      \includegraphics[ width = .64\linewidth ]{hdu-title}
      \par \vspace*{36\p@}
      \scalebox{2.75}
      {
        \textbf
          {
            \@@_cover_spread_box:nn
              { .205\paperwidth } { \l_@@_set_entitle_tl }
          }
      }
      \par \vspace*{1.5\baselineskip}
      { \LARGE ï¼ˆ\int_use:N \l_@@_grade_int \bfseries å±Šï¼‰ }
      \par \vspace*{3.0\baselineskip}
      \begin{tabular}
        {
          &gt;{\large\bfseries}p{5.5\ccwd}@{}
          &gt;{\large\centering\arraybackslash\kaishu}p{.65\linewidth}@{}
        }
        \@@_cover_spread_box:nn { 4\ccwd } { é¢˜ç›® } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          { \@title }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { å­¦é™¢ } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          { \l_@@_set_department_tl }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { ä¸“ä¸š } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          { \l_@@_set_major_tl }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { ç­çº§ } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          { \l_@@_set_class_tl }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { å­¦å· } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          { \l_@@_set_stdntid_tl }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { å­¦ç”Ÿå§“å } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          { \@author }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { æŒ‡å¯¼æ•™å¸ˆ } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          {
            \l_@@_set_cnsupervisor_tl \quad
            \l_@@_set_cnrole_tl
          }\\[5.2ex]
        \@@_cover_spread_box:nn { 4\ccwd } { å®Œæˆæ—¥æœŸ } &amp;
        \@@_cover_center_box:nn { .95\linewidth }
          {
            \textsf{\int_use:N \c_sys_year_int} å¹´
            \textsf{\int_use:N \c_sys_month_int} æœˆ
          }
      \end{tabular}
    \end{center}
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\commitment}
%   ç”Ÿæˆæ‰¿è¯ºä¹¦
%    \begin{macrocode}
\NewDocumentCommand \commitment { O{} }
  {
    \newgeometry{ margin = 3cm }
    \titlepage
      \@@_commitment_bc_aux:n {#1}
    \endtitlepage
    \restoregeometry
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_commitment_bc_aux:n}
%   \cs{commitment} çš„è¾…åŠ©å‘½ä»¤.
%    \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_commitment_bc_aux:n #1
  {
    \vspace*{65\p@}
    \begin{center}
      \@beginparpenalty \@lowpenalty
      \Large \textsf
        { \bfseries \@@_cover_spread_box:nn { 6\ccwd }{ è¯šä¿¡æ‰¿è¯º } }
      \@endparpenalty \@M
    \end{center}
    \vspace*{.4\baselineskip} \par
    \linespread{2.1}
      {
        \@@_font_semilarge:
        æˆ‘è°¨åœ¨æ­¤æ‰¿è¯ºï¼šæœ¬äººæ‰€å†™çš„æ¯•ä¸šè®ºæ–‡ã€Š\@title ã€‹å‡ç³»æœ¬äººç‹¬ç«‹å®Œæˆï¼Œ
        æ²¡æœ‰æŠ„è¢­è¡Œä¸ºï¼Œå‡¡æ¶‰åŠå…¶ä»–ä½œè€…çš„è§‚ç‚¹å’Œææ–™ï¼Œå‡ä½œäº†æ³¨é‡Šï¼Œè‹¥æœ‰ä¸å®žï¼Œ
        åŽæžœç”±æœ¬äººæ‰¿æ‹…ã€‚
        \par\vspace*{\baselineskip} \bfseries\sffamily
        \hskip.48\linewidth æ‰¿è¯ºäººï¼ˆç­¾åï¼‰ï¼š
        \@@_sign_process_aux:nnn {#1} { 1 } { 0 }
        \tl_if_empty:NF \l_@@_sign_figure_tl
          {
            \@@_commitment_sign:N
              \l_@@_sign_figure_tl
            \tl_clear:N \l_@@_sign_figure_tl
          }
        \par \vspace*{.5\baselineskip}
        \hskip \dim_eval:n { .48\linewidth - 1em }
        \makebox [ 3em ]
          { \@@_sign_process_aux:nnn {#1} { 1 } { 1 } } å¹´
        \makebox [ 2em ]
          { \@@_sign_process_aux:nnn {#1} { 1 } { 2 } } æœˆ
        \makebox [ 2em ]
          { \@@_sign_process_aux:nnn {#1} { 1 } { 3 } } æ—¥
      }
  }
%    \end{macrocode}
% \end{macro}
% \DescribeEnv{abstract}
%   é‡æ–°å®šä¹‰æ‘˜è¦çŽ¯å¢ƒï¼ŒåŠ&nbsp;å…¥ä¸­è‹±æ–‡åˆ¤æ–­.
%    \begin{macrocode}
\RenewDocumentEnvironment {abstract} { O{en} }
  {
    \str_if_eq:nnT {#1} {en}
      {
        \tl_set:Nn \l_@@_keywords_name_tl {Keywords:~}
        \tl_set:Nn \l_@@_keywords_sep_tl {;~}
        \@beginparpenalty \@lowpenalty
        \chapter*{\normalfont\bfseries ABSTRACT}
      }
    \str_if_eq:nnT {#1} {cn}
      {
        \tl_set:Nn \l_@@_keywords_name_tl {\textsf{å…³é”®è¯ï¼š}}
        \tl_set:Nn \l_@@_keywords_sep_tl {ï¼›}
        \@beginparpenalty \@lowpenalty
        \chapter*{æ‘˜\qquad è¦}
      }
  }
  {
    \tl_clear:N \l_@@_abstract_title_tl
    \cfoot{} \clearpage
  }
%    \end{macrocode}
% \begin{variable}{\l_@@_keywords_clist}
%   å­˜å‚¨å…³é”®è¯åˆ—è¡¨.
%    \begin{macrocode}
\clist_new:N \l_@@_keywords_clist
%    \end{macrocode}
% \end{variable}
% \begin{macro}{\keywords}
%   é‡æ–°å®šä¹‰ \cs{keywords} å‘½ä»¤ï¼Œå…³é”®è¯æ&nbsp;·å¼ä¼šæ&nbsp;¹æ® \env{abstract} æ‰€é€‰è¯­è¨€è‡ªåŠ¨å˜åŒ–.  
%    \begin{macrocode}
\NewDocumentCommand \keywords { m }
  {
    \par \vspace*{\baselineskip}
    \noindent\textbf{\l_@@_keywords_name_tl}
    \clist_set:Nn \l_@@_keywords_clist {#1}
    \clist_use:Nn \l_@@_keywords_clist {\l_@@_keywords_sep_tl}
  }
%    \end{macrocode}
% \end{macro}
%   è®¾ç½®ç›®å½•æ&nbsp;·å¼.
%    \begin{macrocode}
\RequirePackage{tocloft}
\renewcommand \contentsname {\hfill ç›® \qquad å½• \hfill}
\renewcommand* \cfttoctitlefont {\sffamily\@@_font_semiLarge:}
\dim_set:Nn \cftbeforetoctitleskip {3pt}
\dim_set:Nn \cftaftertoctitleskip {24pt}
\dim_set:Nn \cftbeforechapskip {1pt}
\dim_set:Nn \cftbeforesecskip {-.2pt}
\patchcmd { \@dottedtocline }
  {
    \leaders
    \hbox { $\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$ }
  }
  {
    \kern 4pt \leaders
    \hbox { $\m@th\mkern .4 mu\hbox{-}\mkern .4 mu$ }
  } {}{}
\renewcommand* \l@chapter {\@dottedtocline{1}{0em}{1.6em}}
\renewcommand* \l@section {\@dottedtocline{1}{2.3em}{2.1em}}
\renewcommand* \@dotsep {1.7}
\renewcommand* \@pnumwidth {2.5ex}
\renewcommand* \cftchapfont {\normalfont}
\setcounter{tocdepth}{1}
%    \end{macrocode}
%   ä½¿ç”¨ \cs{ctexset} æä¾›çš„æŽ¥å£è®¾ç½®ç«&nbsp;èŠ‚æ&nbsp;·å¼.
%    \begin{macrocode}
\ctexset
  {
    chapter    =
      {
        fixskip = true, name = {},  beforeskip = 21pt,
        format+ = \sffamily \large, afterskip  = 34pt,
        number  = \arabic{chapter}, pagestyle  = fancy,
      },
    section    =
      {
        beforeskip = 1.25ex, fixskip = true,
        afterskip  = 1.5ex,  format  = \sffamily \@@_font_semilarge:
      },
    subsection =
      {
        beforeskip = 1.25ex, fixskip = true,
        afterskip  = 1.5ex,  format  = \sffamily
      }
  }
%    \end{macrocode}
%
%    \begin{macrocode}
\makeatother \ExplSyntaxOff
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/bc.config&gt;
%    \end{macrocode}
%
% \subsection{\module{pg.config} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*pg.config&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\ExplSyntaxOn \makeatletter
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {pg.config}
%    \end{macrocode}
%   è®¾ç½®é¡µé¢å¸ƒå±€ã€é¡µçœ‰ã€ç›®å½•é¡µç&nbsp;æ&nbsp;¼å¼.
%    \begin{macrocode}
\geometry { top = 2.8cm, bottom = 3.2cm, left = 3.2cm, right = 3.2cm,
            headheight = 15pt, headsep = .72cm, footskip = 1.5cm }
\fancyhead[C]
  { \raisebox { .12ex } { \small æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ç¡•å£«å­¦ä½è®ºæ–‡ } }
\hook_gput_code:nnn { cmd/tableofcontents/after } { . }
  {
    \clearpage
    \pagenumbering{arabic}
    \cfoot{\small \thepage}
  }
%    \end{macrocode}
%   é‡æ–°å®šä¹‰å°é¢å¸ƒå±€.
%    \begin{macrocode}
\RenewDocumentCommand \maketitle {}
  {
    \newgeometry{margin = 2.75cm}
    \begin{titlepage}
      \@@_maketitle_pg_auxi:
    \end{titlepage}
    \titlepage
      \@@_maketitle_pg_auxii:
    \endtitlepage
    \titlepage
      \@@_maketitle_pg_auxiii:
    \endtitlepage
    \restoregeometry
    \pagenumbering{Roman}
    \cfoot {\small \thepage}
  }
%    \end{macrocode}
% \begin{macro}
%   {\@@_maketitle_pg_auxi:, \@@_maketitle_pg_auxii:, \@@_maketitle_pg_auxiii:}
%   \cs{maketitle} çš„è¾…åŠ©å‘½ä»¤ï¼šå°é¢è®¾ç½®ã€ä¸­æ–‡æ‰‰é¡µè®¾ç½®ã€è‹±æ–‡æ‰‰é¡µè®¾ç½®.
%    \begin{macrocode}
\cs_new_protected_nopar:Nn \@@_maketitle_pg_auxi:
  {
    \begin{center}
      \null
      \includegraphics[height = 2.35cm]{hdu-title}
      \par \vspace*{40\p@}
        {
          \LARGE
          \@@_cover_spread_box:nn {.575\linewidth} {ç¡•å£«å­¦ä½è®ºæ–‡}
        }
      \par\vspace*{100\p@}
      \@@_font_semiLarge: é¢˜ \qquad ç›®ï¼š
      \@@_cover_center_box:nn { .75\linewidth } { \kaishu \@title }
      \vspace*{24\p@}\par
      \begin{tabular}
        {
          &gt;{ \@@_font_semiLarge: \centering \arraybackslash }
            p{4\ccwd}@{}
          &gt;{ \@@_font_semiLarge: \centering \arraybackslash \kaishu }
            p{.65\linewidth}@{}
        }
        \@@_cover_spread_box:nn { 4\ccwd } { ç&nbsp;”ç©¶ç”Ÿ } &amp;
        \@@_cover_center_box:nn { .96\linewidth } { \@author }\\
        \@@_cover_spread_box:nn { 4\ccwd } { ä¸“ä¸š } &amp;
        \@@_cover_center_box:nn { .96\linewidth }
          { \l_@@_set_major_tl }\\
        \@@_cover_spread_box:nn { 4\ccwd } { æŒ‡å¯¼æ•™å¸ˆ } &amp;
        \@@_cover_center_box:nn { .96\linewidth }
          {
            \l_@@_set_cnsupervisor_tl \qquad \l_@@_set_cnrole_tl 
          }\\[13.5ex]
        \@@_font_semilarge: å®Œæˆæ—¥æœŸ &amp;
        \@@_cover_center_box:nn { .96\linewidth }
          {
            \@@_font_semilarge:
            \textsf { \int_use:N \c_sys_year_int } å¹´
            \textsf { \int_use:N \c_sys_month_int } æœˆ
          }
      \end{tabular}
    \end{center}
  }
\cs_new_protected_nopar:Nn \@@_maketitle_pg_auxii:
  {
    \begin{center}
      \vspace*{25\p@}
        { \LARGE æ­å·žç”µå­ç§‘æŠ€å¤§å­¦ç¡•å£«å­¦ä½è®ºæ–‡ }
        \vspace*{140\p@} \par
        \begin{spacing}{1.15}
          \huge\textsf{ \@title }
        \end{spacing}
        \vspace*{128\p@} \par
        \begin{tabular}
          {
            &gt;{ \@@_font_semiLarge: } p{6.25\ccwd}
            &gt;{ \@@_font_semiLarge: \kaishu } l
          }
          \@@_cover_spread_box:nn { 4\ccwd } { ç&nbsp;”ç©¶ç”Ÿ }ï¼š&amp; 
          \@@_cover_spread_box:nn { 4\ccwd } { \@author }\\[2ex]
          \@@_cover_spread_box:nn { 4\ccwd } { æŒ‡å¯¼æ•™å¸ˆ }ï¼š&amp;
          \@@_cover_spread_box:nn { 4\ccwd }
            { \l_@@_set_cnsupervisor_tl }
          \hskip 1.5em \l_@@_set_cnrole_tl
        \end{tabular}
        \par \vspace{60\p@} \@@_font_semilarge:
        \textsf { \int_use:N \c_sys_year_int } \kaishu å¹´
        \textsf { \int_use:N \c_sys_month_int } \kaishu æœˆ
    \end{center}
  }
\cs_new_protected_nopar:Nn \@@_maketitle_pg_auxiii:
  {
    \begin{center}
      \vspace*{16\p@}
      {
        \bfseries \@@_font_semilarge:
        Dissertation ~ Submitted ~ to ~
        Hangzhou ~ Dianzi ~ University\\[.8ex]
        for ~ the ~ Degree ~ of ~ Master
      }
      \vspace*{120\p@} \par
      \begin{spacing}{1.12}
        \huge \bfseries \l_@@_set_entitle_tl
      \end{spacing}
      \vspace*{112\p@} \par
      \begin{tabular}{*2{&gt;{\bfseries\large}l}}
        \@@_cover_spread_box:nn { 5em } {Candidate:~} &amp;
        \l_@@_set_enauthor_tl\\[3ex]
        \@@_cover_spread_box:nn { 5em } {Supervisor:~} &amp;
        \l_@@_set_enrole_tl{} ~ \l_@@_set_ensupervisor_tl
        \\[11ex]
      \end{tabular}
      \vspace*{8\p@}\par
      \bfseries \large
      \clist_item:Nn
      \g_@@_month_clist { \int_use:N \c_sys_month_int },~
      \int_use:N \c_sys_year_int
    \end{center}
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\commitment}
%   ç”Ÿæˆæ‰¿è¯ºä¹¦
%    \begin{macrocode}
\NewDocumentCommand \commitment { O{} }
  {
    \cfoot {}
    \newgeometry{margin = 2.75cm}
    \titlepage
      \@@_commitment_pg_aux:n {#1}
    \endtitlepage
    \restoregeometry
    \cfoot {\small \thepage}
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_commitment_pg_aux:n}
%   \cs{commitment} çš„è¾…åŠ©å‘½ä»¤.
%    \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_commitment_pg_aux:n #1
  {
    \vspace*{-12\p@}
    \begin{center}
      \large
      æ­å·žç”µå­ç§‘æŠ€å¤§å­¦\\[1ex] å­¦ä½è®ºæ–‡åŽŸåˆ›æ€§å£°æ˜Žå’Œä½¿ç”¨æŽˆæƒè¯´æ˜Ž
    \end{center}
    \vspace*{20\p@}
    \begin{center}
      \@@_font_semilarge: åŽŸåˆ›æ€§å£°æ˜Ž
    \end{center}
    \par \vspace*{.4\baselineskip}
    \begin{spacing}{1.65}
      æœ¬äººéƒ‘é‡å£°æ˜Žï¼šæ‰€å‘ˆäº¤çš„å­¦ä½è®ºæ–‡ï¼Œæ˜¯æœ¬äººåœ¨å¯¼å¸ˆçš„æŒ‡å¯¼ä¸‹ï¼Œ
      ç‹¬ç«‹è¿›è¡Œç&nbsp;”ç©¶å·¥ä½œæ‰€å–å¾—çš„æˆæžœã€‚é™¤æ–‡ä¸­å·²ç»æ³¨æ˜Žå¼•ç”¨çš„å†…å®¹å¤–ï¼Œ
      æœ¬è®ºæ–‡ä¸å«ä»»ä½•å…¶ä»–ä¸ªäººæˆ–é›†ä½“å·²ç»å‘è¡¨æˆ–æ’°å†™è¿‡çš„ä½œå“æˆ–æˆæžœã€‚
      å¯¹æœ¬æ–‡çš„ç&nbsp;”ç©¶åšå‡ºé‡è¦è´¡çŒ®çš„ä¸ªäººå’Œé›†ä½“ï¼Œå‡å·²åœ¨æ–‡ä¸­ä»¥æ˜Žç¡®æ–¹å¼æ&nbsp;‡æ˜Žã€‚\par
      \noindent ç”³è¯·å­¦ä½è®ºæ–‡ä¸Žèµ„æ–™è‹¥æœ‰ä¸å®žä¹‹å¤„ï¼Œæœ¬äººæ‰¿æ‹…ä¸€åˆ‡ç›¸å…³è´£ä»»ã€‚
      \par \vspace*{1.25\baselineskip}
      \noindent \makebox [ .45\linewidth ] [ l ]
        {
          è®ºæ–‡ä½œè€…ç­¾åï¼š
          \@@_sign_process_aux:nnn {#1} { 1 } { 0 }
          \tl_if_empty:NF \l_@@_sign_figure_tl
            {
              \@@_commitment_sign:N
                \l_@@_sign_figure_tl
              \tl_clear:N \l_@@_sign_figure_tl
            }
        }
      æ—¥æœŸï¼š
      \makebox [ 2.5em ] [ l ]
        { \@@_sign_process_aux:nnn {#1} { 1 } { 1 } } å¹´
      \makebox [ 2em ]
        { \@@_sign_process_aux:nnn {#1} { 1 } { 2 } } æœˆ
      \makebox [ 2em ]
        { \@@_sign_process_aux:nnn {#1} { 1 } { 3 } } æ—¥
      \par\vspace*{20\p@}
      \begin{center}
        \@@_font_semilarge: å­¦ä½è®ºæ–‡ä½¿ç”¨æŽˆæƒè¯´æ˜Ž
      \end{center}
      \par \vspace*{.4\baselineskip}
      æœ¬äººå®Œå…¨äº†è§£æ­å·žç”µå­ç§‘æŠ€å¤§å­¦å…³äºŽä¿ç•™å’Œä½¿ç”¨å­¦ä½è®ºæ–‡çš„è§„å®šï¼Œ
      å³ï¼šç&nbsp;”ç©¶ç”Ÿåœ¨æ&nbsp;¡æ”»è¯»å­¦ä½æœŸé—´è®ºæ–‡å·¥ä½œçš„çŸ¥è¯†äº§æƒå•ä½å±žæ­å·žç”µå­ç§‘æŠ€å¤§å­¦ã€‚
      æœ¬äººä¿è¯æ¯•ä¸šç¦»æ&nbsp;¡åŽï¼Œ
      å‘è¡¨è®ºæ–‡æˆ–ä½¿ç”¨è®ºæ–‡å·¥ä½œæˆæžœæ—¶ç½²åå•ä½ä»ç„¶ä¸ºæ­å·žç”µå­ç§‘æŠ€å¤§å­¦ã€‚
      å­¦æ&nbsp;¡æœ‰æƒä¿ç•™é€äº¤è®ºæ–‡çš„å¤å°ä»¶ï¼Œå…è®¸æŸ¥é˜…å’Œå€Ÿé˜…è®ºæ–‡ï¼›
      å­¦æ&nbsp;¡å¯ä»¥å…¬å¸ƒè®ºæ–‡çš„å…¨éƒ¨æˆ–éƒ¨åˆ†å†…å®¹ï¼Œ
      å¯ä»¥å…è®¸é‡‡ç”¨å½±å°ã€ç¼©å°æˆ–å…¶å®ƒå¤åˆ¶æ‰‹æ®µä¿å­˜è®ºæ–‡ã€‚
      ï¼ˆä¿å¯†è®ºæ–‡åœ¨è§£å¯†åŽéµå®ˆæ­¤è§„å®šï¼‰
      \par \vspace*{1.25\baselineskip}
      \noindent \makebox [.45\linewidth] [ l ]
        {
          è®ºæ–‡ä½œè€…ç­¾åï¼š
          \@@_sign_process_aux:nnn {#1} { 2 } { 0 }
          \tl_if_empty:NF \l_@@_sign_figure_tl
            {
              \@@_commitment_sign:N
                \l_@@_sign_figure_tl
              \tl_clear:N \l_@@_sign_figure_tl
            }
        }
      æ—¥æœŸï¼š
      \makebox [ 2.5em ] [ l ]
        { \@@_sign_process_aux:nnn {#1} { 2 } { 1 } } å¹´
      \makebox [ 2em ]
        { \@@_sign_process_aux:nnn {#1} { 2 } { 2 } } æœˆ
      \makebox [ 2em ]
        { \@@_sign_process_aux:nnn {#1} { 2 } { 3 } } æ—¥
      \par \vspace*{\baselineskip}
      \noindent \makebox [ .45\linewidth ] [ l ]
        {
          æŒ‡å¯¼æ•™å¸ˆç­¾åï¼š
          \@@_sign_process_aux:nnn {#1} { 3 } { 0 }
          \tl_if_empty:NF \l_@@_sign_figure_tl
            {
              \@@_commitment_sign:N
                \l_@@_sign_figure_tl
              \tl_clear:N \l_@@_sign_figure_tl
            }
        }
      æ—¥æœŸï¼š
      \makebox [ 2.5em ] [ l ]
        { \@@_sign_process_aux:nnn {#1} { 3 } { 1 } } å¹´
      \makebox [ 2em ]
        { \@@_sign_process_aux:nnn {#1} { 3 } { 2 } } æœˆ
      \makebox [ 2em ]
        { \@@_sign_process_aux:nnn {#1} { 3 } { 3 } } æ—¥
    \end{spacing}
  }
%    \end{macrocode}
% \end{macro}
% \DescribeEnv{abstract}
% é‡æ–°å®šä¹‰æ‘˜è¦çŽ¯å¢ƒï¼ŒåŠ&nbsp;å…¥ä¸­è‹±æ–‡åˆ¤æ–­.
%    \begin{macrocode}
\RenewDocumentEnvironment {abstract} { O{en} }
  {
    \str_if_eq:nnT {#1} {en}
      {
        \tl_set:Nn \l_@@_keywords_name_tl {Keywords:~}
        \tl_set:Nn \l_@@_keywords_sep_tl {,~}
        \@beginparpenalty \@lowpenalty
        \chapter*{\normalfont\bfseries Abstract}
        \addcontentsline{toc}{chapter}{\bfseries Abstract}
      }
    \str_if_eq:nnT {#1} {cn}
      {
        \tl_set:Nn \l_@@_keywords_name_tl {\textsf{å…³é”®è¯ï¼š}}
        \tl_set:Nn \l_@@_keywords_sep_tl {ï¼Œ}
        \@beginparpenalty \@lowpenalty
        \chapter*{æ‘˜è¦}
        \addcontentsline{toc}{chapter}{æ‘˜è¦}
      }
  }
  {
    \tl_clear:N \l_@@_abstract_title_tl
    \clearpage
  }
%    \end{macrocode}
% \begin{variable}{\l_@@_keywords_clist}
%   å­˜å‚¨å…³é”®è¯åˆ—è¡¨.
%    \begin{macrocode}
\clist_new:N \l_@@_keywords_clist
%    \end{macrocode}
% \end{variable}
% \begin{macro}{\keywords}
%  é‡æ–°å®šä¹‰ \cs{keywords} å‘½ä»¤ï¼Œå…³é”®è¯æ&nbsp;·å¼ä¼šæ&nbsp;¹æ® \env{abstract} æ‰€é€‰è¯­è¨€è‡ªåŠ¨å˜åŒ–.
%    \begin{macrocode}
\NewDocumentCommand \keywords { m }
  {
    \par \vspace*{\baselineskip}
    \noindent\textbf{\l_@@_keywords_name_tl}
    \clist_set:Nn \l_@@_keywords_clist {#1}
    \clist_use:Nn \l_@@_keywords_clist { \l_@@_keywords_sep_tl }
  }
%    \end{macrocode}
% \end{macro}
%   è®¾ç½®ç›®å½•æ&nbsp;·å¼.
%    \begin{macrocode}
\RequirePackage{tocloft}
\renewcommand \contentsname {\hfill ç›®å½• \hfill}
\renewcommand* \cfttoctitlefont{\sffamily\@@_font_semiLarge:}
\dim_set:Nn \cftbeforetoctitleskip {12pt}
\dim_set:Nn \cftaftertoctitleskip {24pt}
\dim_set:Nn \cftbeforechapskip {1pt}
\dim_set:Nn \cftbeforesecskip {-.2pt}
\patchcmd { \@dottedtocline }
  {
    \leaders
    \hbox { $\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$ }
  }
  {
    \kern 4pt \leaders
    \hbox { $\m@th\mkern .4 mu\hbox{.}\mkern .4 mu$ }
  } {}{}
\renewcommand* \l@chapter {\@dottedtocline{1}{0em}{1.6em}}
\renewcommand* \l@section {\@dottedtocline{1}{2.3em}{2.1em}}
\renewcommand* \@dotsep {1.7}
\renewcommand* \@pnumwidth {2.5ex}
\renewcommand* \cftchapfont {\normalfont}
\setcounter{tocdepth}{1}
%    \end{macrocode}
%   ä½¿ç”¨ \cs{ctexset} æä¾›çš„æŽ¥å£è®¾ç½®ç«&nbsp;èŠ‚æ&nbsp;·å¼.
%    \begin{macrocode}
\ctexset
  {
    chapter    =
      {
        aftername  = \hspace{.5\ccwd}, fixskip   = true,
        beforeskip = 32pt,             afterskip = 32pt,
        format+    = \sffamily \@@_font_semiLarge:,
        pagestyle  = fancy
      },
    section    =
      {
        aftername  = \hspace{.5\ccwd}, fixskip   = true,
        beforeskip = 2ex,              afterskip = 2.75ex,
        format     = \sffamily \large
      },
    subsection =
      {
        aftername  = \hspace{.5\ccwd}, fixskip   = true,
        beforeskip = 2ex,              afterskip = 2.75ex,
        format     = \sffamily \@@_font_semilarge:
      }
  }
%    \end{macrocode}
%
%    \begin{macrocode}
\makeatother \ExplSyntaxOff
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/pg.config&gt;
%    \end{macrocode}
%
% \subsection{Beamer ä¸»é¢˜çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*beamer&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\ProvidesExplPackage{beamerthemehdu}{\hduthesis@date}{\hduthesis@version}
  {hduThesiS ~ \text_titlecase:n {beamer} ~ Module}
%    \end{macrocode}
%
%    \begin{macrocode}
\mode&lt;presentation&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\RequirePackage{tikz}
\usetikzlibrary{fadings}
%    \end{macrocode}
%   æ’å›¾ç›¸å¯¹è·¯å¾„è®¾ç½®.
%    \begin{macrocode}
\graphicspath
  {
    {./figure/}  {./image/}  {./graphic/}  {./picture/}
    {./figures/} {./images/} {./graphics/} {./pictures/}
  }
%    \end{macrocode}
% æ¨¡å¼ \module{beamer} ä¸‹ \cs{hduset} æŽ¥å£é”®å€¼çš„å®šä¹‰.
% \begin{variable}
%   {
%     \l_@@_set_title_tl,      \l_@@_set_subtitle_tl,
%     \l_@@_set_author_tl,     \l_@@_set_date_tl,
%     \l_@@_set_supervisor_tl, \l_@@_set_reference_tl,
%   }
%    \begin{macrocode}
\keys_define:nn { beamer / hduset }
  {
    title      .tl_set:N = \l_@@_set_title_tl,
    subtitle   .tl_set:N = \l_@@_set_subtitle_tl,
    author     .tl_set:N = \l_@@_set_author_tl,
    date       .tl_set:N = \l_@@_set_date_tl,
    supervisor .tl_set:N = \l_@@_set_supervisor_tl,
    bibsource  .tl_set:N = \l_@@_set_bibsource_tl,
  }
%    \end{macrocode}
% \end{variable}
% \begin{macro}{\hduset}
%   æ¨¡å¼ \module{beamer} ä¸‹è®¾ç½®æ–‡æ¡£ä¿¡æ¯.
%    \begin{macrocode}
\NewDocumentCommand \hduset { m }
  {
    \keys_set:nn { beamer / hduset } { #1 }
    \title { \large \l_@@_set_title_tl }
    \tl_set:Nn \insertshorttitle { \textsc \l_@@_set_subtitle_tl }
    \author [ \l_@@_set_author_tl ]
      {
        \l_@@_set_author_tl
        \tl_if_empty:NF \l_@@_set_supervisor_tl
          { 
            \texorpdfstring
              { \\[2ex]
                \small Supervised ~ by ~ \l_@@_set_supervisor_tl
              } {}
          }
      }
    \date { \l_@@_set_date_tl }
    \tl_if_empty:NTF \l_@@_set_bibsource_tl
      {
        \newcommand* \printbibliography
          {
            \begin{frame}[t]
              \frametitle{Bibliography}
            \end{frame}
          }
        \newcounter {citecount}
        \renewcommand*\cite[1]
          {
            \refstepcounter{citecount}
            \textsuperscript{[\thecitecount]}
          }
      }
      {
        \RequirePackage [ natbib = true, sorting = none, backend = biber,
                          autocite = superscript, style = numeric-comp ]
                        { biblatex }
        \addbibresource { \l_@@_set_reference_tl }
        \let \@printbibliography \printbibliography
        \renewcommand* \printbibliography
          {
            \begin{frame}[t, allowframebreaks]{Bibliography}
              \small
              \@printbibliography
            \end{frame}
          }
      }
  }
%    \end{macrocode}
% \end{macro}
%   |Beamer| èƒŒæ™¯ \&amp; æ&nbsp;‡å¤´è®¾ç½®.
%    \begin{macrocode}
\usebackgroundtemplate
  {
    \tikz [ remember~picture, overlay ]
      \node [ inner~sep = 0pt, outer~sep = auto,
              opacity = .1,    xshift = -2em 
            ] at (current~page.east)
       { \includegraphics [ height = .75\paperheight ] { hdu-logo.pdf } };
  }
\titlegraphic
  {
    \tikz [ remember~picture, overlay ]
      \node [ below~right, yshift = -1em ] at (current~page.north~west) 
        { \includegraphics [ width = 2\textwidth/7 ]{ hdu-badge.pdf } };
  }
%    \end{macrocode}
%   |Beamer| åŽŸç”Ÿä¸»é¢˜è°ƒç”¨.
%    \begin{macrocode}
\useoutertheme{infolines}
\useinnertheme[shadow = false]{rounded}
\definecolor{hdu}{HTML}{163479}
\definecolor{hduRed}{HTML}{BF6236}
\usecolortheme[named = hdu]{structure}
\setbeamercolor*{palette~primary}
  {
    use = structure, fg = black,
    bg  = structure.fg!30!white
  }
\setbeamercolor*{palette~secondary}
  {
    use = structure, fg = white,
    bg  = structure.fg!60!white
  }
\setbeamercolor*{palette~tertiary}
  {
    use = structure, fg = white,
    bg  = structure.fg!90!white
  }
\setbeamercolor{block~title}
  {
    use = structure, fg  = structure.fg,
    bg  = structure.fg!20!bg
  }
\setbeamercolor{block~body}
  {
    use = block~title, parent = normal~text, 
    bg  = block~title.bg!50!bg
  }
\addtobeamertemplate{block~begin}
  {\pgfsetfillopacity{0.8}}{\pgfsetfillopacity{1}}
\setbeamercolor{block~title~alerted}
  {
    use = alerted~text, fg = alerted~text.fg,
    bg  = alerted~text.fg!20!bg
  }
\setbeamercolor{block~body~alerted}
  {
    use = block~title~alerted, parent = normal~text,
    bg  = block~title~alerted.bg!50!bg
  }
\addtobeamertemplate{block~alerted~begin}
  {\pgfsetfillopacity{0.8}}{\pgfsetfillopacity{1}}
\setbeamercolor{block~title~example}
  {
    use = example~text,fg = example~text.fg,
    bg  = example~text.fg!20!bg
  }
\setbeamercolor{block~body~example}
  {
    use = block~title~example, parent=normal~text,
    bg  = block~title~example.bg!50!bg
  }
\addtobeamertemplate{block~example~begin}
  {\pgfsetfillopacity{0.8}}{\pgfsetfillopacity{1}}
\setbeamercolor{title}{parent=author~in~head/foot}
\setbeamertemplate{title~page}[default][colsep=-4bp,rounded=true]
\usesubitemizeitemtemplate
  {\tiny\raise1.5pt\hbox{\color{beamerstructure}$\blacktriangleright$}}
\usesubsubitemizeitemtemplate
  { \tiny\raise1.5pt\hbox{\color{beamerstructure}$\bigstar$} }
%    \end{macrocode}
%   |Beamer| é¡¶éƒ¨è¿›åº¦æ¡é…ç½®.
%    \begin{macrocode}
\addtobeamertemplate{headline}{}
  {
    \tikz [ remember~picture, overlay ]
      {
        \filldraw [hduRed, ultra~thick, line~cap = butt]
          (0,0) --++
          (\insertpagenumber\paperwidth/\insertdocumentendpage,0);
        \draw [white, very~thick, yshift = -.6pt] (0,0) --++
          (\paperwidth,0);
      }
  }
%    \end{macrocode}
%   |Beamer| ç«&nbsp;èŠ‚å°é¢è®¾ç½®.
%    \begin{macrocode}
\AtBeginSection[]
  {
    \begin{frame}
      \tikz [ remember~picture, overlay ]
        \node [ below~right, yshift = -1em ] at (current~page.north~west) 
          { \includegraphics [ width = 2\textwidth/7 ]{ hdu-badge.pdf } };
      \vfill
      \usebeamerfont{title} \insertsectionhead \par
      \tikz
        {
          \draw [line~cap = round, hdu!20, ultra~thick]
            (0,0) --++ (2\linewidth/3,0);
          \filldraw
            [ line~cap = round, hdu!60, ultra~thick, path~fading = west
            ] (0,0) --++
              (\insertpagenumber\linewidth/\insertdocumentendpage * 2/3,0);
        }
      \vfill
    \end{frame}
  }
%    \end{macrocode}
%   å…¬å¼æŽ’ç‰ˆå¿…è¦å®åŒ…åŠ&nbsp;è½½.
%    \begin{macrocode}
% math settings
\numberwithin{equation}{section}
\RequirePackage { keytheorems, amssymb, mathtools, physics2,
                  fixdif, derivative, cancel, siunitx, nicematrix }
\renewcommand* \qedsymbol {$\color{gray}\blacksquare$}
\usephysicsmodule{ ab, braket, op.legacy }
%    \end{macrocode}
%   æµ®åŠ¨ä½“è®¾ç½®.
%    \begin{macrocode}
% Figure settings
\RequirePackage [ labelsep = period, figurename = \textsc{Fig},
                  font = footnotesize ] {caption}
\RequirePackage {subcaption, booktabs, anyfontsize, ragged2e}
\captionsetup{belowskip=0pt}
\captionsetup[sub]{font = scriptsize}
\justifying
\AtBeginEnvironment{columns}{\vspace*{-.5ex}}
%    \end{macrocode}
%
%    \begin{macrocode}
\mode&lt;all&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/beamer&gt;
%    \end{macrocode}
%
% \subsection{\module{stationery} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*stationery&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {stationery}
%    \end{macrocode}
%
% \begin{macro}
%   {
%     \g_@@_set_watermark_bool,
%     \l_@@_set_title_tl, \l_@@_set_author_tl,
%     \l_@@_set_mail_tl,  \l_@@_set_date_tl
%   }
%   æ¨¡å¼ \module{stationery} ä¸‹ \cs{hduset} æŽ¥å£é”®å€¼çš„å®šä¹‰.
%    \begin{macrocode}
\keys_define:nn { stationery / hduset }
  {
    watermark   .bool_set:N = \g_@@_set_watermark_bool,
      watermark .initial:n  = false,
      watermark .default:n  = true,
    title       .tl_set:N   = \l_@@_set_title_tl,
    author      .tl_set:N   = \l_@@_set_author_tl,
    mail        .tl_set:N   = \l_@@_set_mail_tl,
    date        .tl_set:N   = \l_@@_set_date_tl
  }
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\RequirePackage{ hyperref,      geometry, tikz,
                 tikzpagenodes, twemojis, fancyhdr }
\hypersetup{hidelinks}
\urlstyle{same}
%    \end{macrocode}
% \begin{macro}{\hduset}
%   æ¨¡å¼ \module{beamer} ä¸‹è®¾ç½®æ–‡æ¡£ä¿¡æ¯.
%    \begin{macrocode}
\NewDocumentCommand \hduset { m }
  {
    \tl_clear:N \l_@@_set_author_tl
    \tl_clear:N \l_@@_set_mail_tl
    \keys_set:nn { stationery / hduset } {#1}
    \hypersetup
      {
        pdftitle = Hangzhou Dianzi University,
        pdfsubject = \l_@@_set_title_tl,
        pdfauthor = \l_@@_set_author_tl
      }
  }
%    \end{macrocode}
% \end{macro}
%   è®¾ç½®é¡µé¢å¸ƒå±€ã€é¡µçœ‰é¡µè„šæ&nbsp;¼å¼.
%    \begin{macrocode}
\geometry
  { hmargin  = .8in,    top     = 1.95in, bottom   = .75in,
    headheight = 1.2in, headsep = .3in,   footskip = .3in }
\linespread{1.25}
\RequirePackage [ skip = \baselineskip ] { parskip }
\renewcommand* \familydefault { \sfdefault }
\definecolor{hdu}{HTML}{163479}

\renewcommand* \headrulewidth {2pt}
\renewcommand* \footrulewidth {2pt}
\hook_gput_code:nnn { cmd/headrule/before } { . } { \color{hdu!80} }
\hook_gput_code:nnn { cmd/footrule/before } { . } { \color{hdu!80} }
\lhead
  { {}~
    \minipage{.6\linewidth}
      \medskip \leavevmode \lower -.111in
      \hbox { \includegraphics [ height = .75in ] {hdu-badge} }
    \endminipage \medskip \hfill
    \minipage{.36\linewidth}
      \medskip \vbox
        {
          \linespread{1.2}
          \raggedright \small \color{hdu}
          \texttwemoji{1f4cd} ~ 1158 ~ No.2 ~ St., ~ Hangzhou, ~ 310018\\
          \texttwemoji{1f4de} ~ (86) ~ 0571-86915072\\
          \texttwemoji{1f310} ~ \url{www.hdu.edu.cn}
        } \medskip
    \endminipage
  }
\lfoot
  {
    \small{} ~ \texttwemoji{1f4cd} ~
    1158 ~ No.2~Street, ~ Qiantang ~District, ~
    Hangzhou, ~ Zhejiang ~ Province, ~ 310018, ~ P.R.China
  }
\cfoot {}
\rfoot { \small \texttwemoji{1f310} ~ \url{www.hdu.edu.cn} ~ }
\pagestyle{fancy}
%    \end{macrocode}
% \begin{macro}{\maketitle}
%   é‡æ–°å®šä¹‰æ&nbsp;‡é¢˜å¸ƒå±€ï¼Œå½“æœªç»™å®š \key*{author} å’Œ \key*{mail} æ—¶ï¼Œä¸è¾“å‡º |From|.
%    \begin{macrocode}
\renewcommand* \maketitle
  {
    \group_begin: \small
    \bool_lazy_or:nnT
      { !\tl_if_empty_p:N \l_@@_set_author_tl }
      { !\tl_if_empty_p:N \l_@@_set_mail_tl }
      { \makebox [ 4em ] [ l ] { \scshape From } }
    \tl_if_empty:NTF \l_@@_set_author_tl
      { \@latex@warning@no@line {No \noexpand \author given} }
      { \l_@@_set_author_tl{} ~ }
    \tl_if_empty:NF \l_@@_set_mail_tl
      { \texttt { &lt;\l_@@_set_mail_tl&gt; } }
    \bool_lazy_or:nnT
      { !\tl_if_empty_p:N \l_@@_set_author_tl }
      { !\tl_if_empty_p:N \l_@@_set_mail_tl } { \\ }
    \makebox [ 4em ] [ l ] { \scshape Date }
    \tl_if_empty:NTF \l_@@_set_date_tl \today \l_@@_set_date_tl \\
    \tl_if_empty:NTF \l_@@_set_title_tl
      { \@latex@error {No \noexpand \title given}\@ehc }
      {
        \makebox [ 4em ] [ l ] { \scshape Subject }
        \l_@@_set_title_tl
      }
    \par \vspace{.5\baselineskip}
    \group_end:
  }
%    \end{macrocode}
% \end{macro}
%   æ°´å°è®¾ç½®.
%    \begin{macrocode}
\AtBeginDocument { \color_select:n {black!80} }
\DeclareHookRule { shipout / background } { hduthesis / stationery }
  { before } { pgfrcs }
\AddToHook { shipout / background } [ hduthesis / stationery ]
  {
    \bool_if:NT \g_@@_set_watermark_bool
      {
        \tikz [ remember~picture, overlay ]
          \node [ opacity = .2 ] at (current~page)
            { \includegraphics [ width = .4\linewidth ] {hdu-logo} };
      }
  }
%    \end{macrocode}
% \begin{macro}{\notelines}
%   ç”¨äºŽæ·»åŠ&nbsp;ç¬”è®°çº¿.
%    \begin{macrocode}
\NewDocumentCommand \notelines {O{20}}
  {
    \tikz [ remember~picture, overlay ]
      {
        \int_step_inline:nn { #1 - 1 }
          {
            \draw [ hdu, very~thick, opacity = .6 ]
              ([
                yshift = -##1 * (\textheight + .6in - 15.87pt ) / #1
                       + .3in
               ]current~page~text~area.north~west
              ) --++ (\linewidth, 0);
          }
      }
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
%&lt;/stationery&gt;
%    \end{macrocode}
%
% \subsection{\module{exam} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*exam&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {exam}
\keys_define:nn { hduthesis / exam }
  {
    watermark .tl_set:N = \l_@@_exam_watermark_tl,
  }
\NewDocumentCommand \hdutexset {m} { \keys_set:nn { hduthesis / exam } {#1} }
\DeclareHookRule { shipout / background }
  { hduthesis / exam } { before } { pgfrcs }
\AddToHook { shipout / background } [ hduthesis / exam ]
  {
    \tl_if_empty:NF \l_@@_exam_watermark_tl
      {
        \tikz [ remember~picture, overlay ]
          \node [ opacity = .2 ] at (current~page)
            {
              \includegraphics [ width = \linewidth ]
                { \l_@@_exam_watermark_tl }
            };
      }
  }
\RequirePackage
  {
    geometry, mathtools, array, bm, esint, keytheorems,
    siunitx, fixdif, derivative, physics2, tasks, anyfontsize
  }
\RequirePackage[inline]{enumitem}
\RequirePackage{fontawesome5, fancyqr, circuitikz}
\hook_gput_code:nnn { cmd/faIcon/before } { . }
  {
    \group_begin:
    \fontsize { \fp_eval:n { .9 * \f@size } } { 0 } \selectfont
  }
\hook_gput_code:nnn { cmd/faIcon/after } { . } { \group_end: }
\geometry{margin = 1in}
\RequirePackage[svgnames]{xcolor}
\newkeytheorem{note}
  [ style = remark, numbered = false,
    name = \color{DarkRed}\sffamily \faIcon{info-circle}~Tip. ]
\newkeytheorem{problem}
  [ style = definition,
    name = \color{DarkGreen}\sffamily \faIcon{pen-square}~Problem ]
\newkeytheorem{solution}
  [ style = definition, numbered = false,
    name = \color{MidnightBlue}\sffamily \faIcon{check-square}~Solution ]
\usephysicsmodule{ab, op.legacy}
\settasks { label = \sffamily\Alph*., item-indent = 2.5em, label-offset = .5pt }
\newcommand \true {\addtocounter{task}{1}\faIcon{check-circle}}
\def \@result#1 {\underline{~#1~}}
\def \s@result {\textsf{ã€\qquad ã€‘}}
\DeclareRobustCommand \result {\@ifstar\s@result\@result}
\keys_define:nn { textfig }
  {
    ratio      .tl_set:N    = \l_@@_textfig_ratio_tl,
      ratio    .initial:n   = 7 \c_colon_str 2,
    position   .tl_set:N    = \l_@@_textfig_position_tl,
      position .initial:n   = c,
    unknown    .code:n      = \tl_if_novalue:nF {#1}
      { \tl_set_eq:NN \l_@@_textfig_position_tl \l_keys_key_tl }
  }
\NewDocumentEnvironment{textfig}{ O{} }
  {
    \group_begin:
    \keys_set:nn { textfig } {#1}
    \seq_set_split:Nee \l_@@_textfig_ratio_seq { \c_colon_str }
      { \l_@@_textfig_ratio_tl }
    \noindent
    \minipage [ \l_@@_textfig_position_tl ]
      {
        \fp_eval:n
          {
            .96*\seq_item:Nn \l_@@_textfig_ratio_seq {1}/
              (
                \seq_item:Nn \l_@@_textfig_ratio_seq {1} + 
                \seq_item:Nn \l_@@_textfig_ratio_seq {2}
              )
          }\dimexpr \linewidth
      }
  }
  {
    \endminipage
    \vspace{4.5pt plus 1.5pt minus 1.5pt} \par
    \group_end:
  }
\NewDocumentCommand \textfigsplit {}
  {
    \endminipage
    \hspace{.02\linewidth}
    \minipage [ \l_@@_textfig_position_tl ]
      {
        \fp_eval:n
          {
            .96*\seq_item:Nn \l_@@_textfig_ratio_seq {2}/
              (
                \seq_item:Nn \l_@@_textfig_ratio_seq {1} + 
                \seq_item:Nn \l_@@_textfig_ratio_seq {2}
              )
          }\dimexpr \linewidth
      }
  }

\makeatother \ExplSyntaxOff
\usetikzlibrary{ fadings, patterns, arrows, decorations.markings }
\tikzset
  {
    &gt; = stealth',
    every picture/.append style =
      { line join = round, line cap = round, thick }
  }
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/exam&gt;
%    \end{macrocode}
%
% \subsection{\module{l3doc} æ¨¡å—çš„å®žçŽ°}
%
%    \begin{macrocode}
%&lt;*l3doc&gt;
%    \end{macrocode}
%
%    \begin{macrocode}
\@@_provide_module:n {l3doc}
%    \end{macrocode}
%   å®šä¹‰å¸¸ç”¨å¼ºè°ƒå‘½ä»¤.
%    \begin{macrocode}
\providecommand \module \texttt
\RenewDocumentCommand \pkg {m}
  { \href{https://ctan.org/pkg/#1}{\textsf{#1}} }
\RenewDocumentCommand \cls {m}
  { \href{https://ctan.org/pkg/#1}{\textsf{#1}} }
\NewDocumentCommand \mailto {m} { \texttt{&lt;\href{mailto:#1}{#1}&gt;} }
\def \@key #1
  { \textcolor{red}{\textbf{\texttt{#1}}} ~ \normalfont \texttt{=} ~ }
\def \s@key #1{\textcolor{red}{\textbf{\texttt{#1}}}}
\DeclareRobustCommand \key {\@ifstar\s@key\@key}
%    \end{macrocode}
%   ç”¨äºŽè¾“å…¥é”®å€¼å¯¹.
%    \begin{macrocode}
\def \val #1{\meta{\textup{#1}}}
\def \TFF {true\textbar \textbf{false}}
\def \TTF {\textbf{true}\textbar false}
\newlist{keyval}{itemize}{10}
\setlist[keyval]{leftmargin = 0pt, labelsep = 0pt}
%    \end{macrocode}
%   é…ç½® \pkg{hyperref}ï¼Œè°ƒç”¨æ‰€éœ€å®åŒ….
%    \begin{macrocode}
\RequirePackage{ hyperref }
\RequirePackage [ svgnames ] { xcolor }
\hypersetup
  {
    filecolor = DarkGreen, urlcolor = MidnightBlue,
    linkcolor = FireBrick
  }
\ExplSyntaxOff
\pdfstringdefDisableCommands
  {
    \def \file #1 { &lt;#1&gt; } \def \pkg    #1 { &lt;#1&gt; }
    \def \cls  #1 { &lt;#1&gt; } \def \mailto #1 { &lt;#1&gt; }
  }
\RequirePackage{tikz}
\usetikzlibrary{calc}
\ExplSyntaxOn
\RequirePackage [ pass ] { geometry }
\RequirePackage { enumitem, dirtree,  tabularx,
                  tasks,    pdfpages, subcaption }
\graphicspath { {} }
\RequirePackage[fontset = fandol]{ctex} \linespread{1.4}
\dim_set:Nn \parindent {0pt}
\hook_gput_code:nnn { env/function/before } { . }
  { \vspace*{-.6\baselineskip} }
\hook_gput_code:nnn { env/syntax/after } { . }
  { \par\vspace*{.1\baselineskip} }
%    \end{macrocode}
%   å®šä¹‰æ–°çš„ \pkg{hologo} æ&nbsp;‡å¿—.
%    \begin{macrocode}
\def \HoLogo@ApTeX #1{\HOLOGO@mbox {Ap\kern -.1667em\TeX}}
\def \HoLogo@hduThesiS #1
  {
    \raisebox{-.5pt}
      {
        \HOLOGO@mbox
          {
            \tikz [ baseline = (hduthesis.base) ]
              {
                \node [ inner~sep = 0pt ] (hduthesis)
                  {\sffamily\scshape hduThesi\scalebox{1.2}[1.2]{S}};
                \draw let \p1 = (hduthesis.west),
                          \p2 = (hduthesis.east) in (\x1,\y1) (\x2,\y2)
                  [ line~width = {.028pt * (\x2 - \x1)} ]
                  ([yshift = -.5ex]hduthesis.north~west)
                  to [ bend~right = 5 ]
                  ([yshift = .25ex]hduthesis.north~east);
              }
          }
      }
  }
\def \HoLogo@hduthesis #1
  { \raisebox{-.5pt} { \HOLOGO@mbox { \scshape \cls{hduThesiS} } } }
%    \end{macrocode}
%   é‡æ–°å®šä¹‰å°é¢å¸ƒå±€.
%    \begin{macrocode}
\let \old@maketitle \maketitle
\RenewDocumentCommand \maketitle {}
  {
    \newgeometry { margin = 1.2in }
    \titlepage
    \old@maketitle
    \begin{center}
      \tikz
        {
          \node [ opacity = .8 ] 
            {
              \includegraphics [ width = .14\paperwidth ]
                { hdu-motto.pdf }
            };
          \node [ opacity = .3 ]
            {
              \includegraphics [ width = .21\paperwidth ]
                { hdu-logo.pdf }
            };
      }
    \end{center}
    \thispagestyle{empty}
  }
\hook_gput_code:nnn { cmd/tableofcontents/before } { . }
  { \clearpage }
\hook_gput_code:nnn { cmd/tableofcontents/after  } { . }
  { \endtitlepage \restoregeometry }
\date{
  Released ~ \hduthesis@date \quad \texttt{v\hduthesis@version}
  \footnote{
    \url{https://github.com/\hduthesis@maintainerid/hduthesis}, ~
    \url{https://gitee.com/\hduthesis@maintainerid/hduthesis}
  }
}
%    \end{macrocode}
%
%    \begin{macrocode}
%&lt;/l3doc&gt;
%    \end{macrocode}
%
% \end{implementation}
% \clearpage
% \PrintIndex</pre></body></html>