<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% \iffalse meta-comment
%
% Copyright (C) 2021 by Xiao Sun &lt;demerzelsun@gmail.com&gt;
%
% This file may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% \fi
%
% \iffalse
%&lt;*driver&gt;
\ProvidesFile{hitreport.dtx}[2021/01/14 1.0.0 Harbin Institute of Technology Report Template]
\documentclass{ltxdoc}
\usepackage{dtx-style}

\EnableCrossrefs
\CodelineIndex

\begin{document}
    \DocInput{hitreport.dtx}
\end{document}
%&lt;/driver&gt;
% \fi
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&amp;
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \&lt;
%   Equals        \=     Greater than  \&gt;     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \DoNotIndex{\newenvironment,\@bsphack,\@empty,\@esphack,\sfcode}
% \DoNotIndex{\addtocounter,\label,\let,\linewidth,\newcounter}
% \DoNotIndex{\noindent,\normalfont,\par,\parskip,\phantomsection}
% \DoNotIndex{\providecommand,\ProvidesPackage,\refstepcounter}
% \DoNotIndex{\RequirePackage,\setcounter,\setlength,\string,\strut}
% \DoNotIndex{\textbackslash,\texttt,\ttfamily,\usepackage}
% \DoNotIndex{\begin,\end,\begingroup,\endgroup,\par,\\}
% \DoNotIndex{\if,\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi}
% \DoNotIndex{\let,\def,\xdef,\edef,\newcommand,\renewcommand}
% \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect}
% \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize}
% \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny}
% \DoNotIndex{\normalfont,\bfseries,\slshape,\sffamily,\interlinepenalty}
% \DoNotIndex{\textbf,\textit,\textsf,\textsc}
% \DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad}
% \DoNotIndex{\centering,\raggedright,\ref}
% \DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize}
% \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne}
% \DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass}
% \DoNotIndex{\AtBeginDocument,\AtEndDocument}
%
% \changes{v1.0.0}{2021/01/14}{Initial version}
%
% \GetFileInfo{\jobname.dtx}
%
% \def\indexname{ç´¢å¼•}
% \def\glossaryname{ä¿®æ”¹è®°å½•}
% \IndexPrologue{\section{\indexname}}
% \GlossaryPrologue{\section{\glossaryname}}

% \title{\bfseries\color{violet} \hitreport: å“ˆå°”æ»¨å·¥ä¸šå¤§å­¦æœ¬ç§‘ç”Ÿæ³›ç”¨æŠ¥å‘Š}
% \author{å­™éª \\[5pt]\texttt{demerzelsun@gmail.com}}
% \date{\fileversion\ (\filedate)}
% \maketitle\thispagestyle{empty}
%
% \begin{abstract}\noindent
% æ­¤å®åŒ…æ—¨åœ¨å»ºç«‹ä¸€ä¸ªå…äºŽé…ç½®çš„ã€æŒ‡ä»¤ç›¸å¯¹ç®€å•çš„å“ˆå°”æ»¨å·¥ä¸šå¤§å­¦ä½œä¸šã€å®žéªŒæŠ¥å‘Šé€šç”¨æ¨¡æ¿ã€‚
% \end{abstract}
%
%
% \vskip2cm
% \def\abstractname{å…è´£å£°æ˜Ž}
% \begin{abstract}
% \noindent
% \begin{enumerate}
% \item æœ¬æ¨¡æ¿çš„å‘å¸ƒéµå®ˆ \LaTeX\ Project Public Licenseï¼Œä½¿ç”¨å‰è¯·è®¤çœŸé˜…è¯»åè®®å†…
%   å®¹ã€‚
% \item \textbf{æœ¬æ¨¡æ¿ä¸ºä½œè€…ç¼–å†™çš„æŠ¥å‘Šæ¨¡æ¿ï¼Œä¸Žå“ˆå°”æ»¨å·¥ä¸šå¤§å­¦å®˜æ–¹æ²¡æœ‰ä»»ä½•å…³ç³»}ã€‚æœ¬æ¨¡æ¿çš„æ&nbsp;¼å¼æ—&nbsp;æ³•å…¼é¡¾æ‰€æœ‰è¯¾ç¨‹è¦æ±‚ï¼Œ
% ä½†å·²ç»é€‚é…äº†ç»å¤§å¤šæ•°çš„éœ€æ±‚åœºæ™¯ã€‚
% ä»»ä½•ä½¿ç”¨æœ¬å®åŒ…è¿›è¡Œå®žéªŒæŠ¥å‘Šåˆ¶ä½œæ—¶ï¼Œè¯·\textbf{åŠ¡å¿…æ&nbsp;¹æ®è¯¾ç¨‹è¦æ±‚è¿›è¡Œå†™ä½œ}ã€‚
% ç”±äºŽä½¿ç”¨æœ¬æ¨¡æ¿è€Œå¼•èµ·çš„ä½œä¸šéªŒæ”¶é—®é¢˜ï¼Œ
% å‡ä¸Žæœ¬æ¨¡æ¿ä½œè€…æ—&nbsp;å…³ã€‚
% \item ä»»ä½•ä¸ªäººæˆ–ç»„ç»‡ä»¥æœ¬æ¨¡æ¿ä¸ºåŸºç¡€è¿›è¡Œä¿®æ”¹ã€æ‰©å±•è€Œç”Ÿæˆçš„æ–°çš„ä¸“ç”¨æ¨¡æ¿ï¼Œ
% è¯·ä¸¥æ&nbsp;¼éµå®ˆ \LaTeX\ Project Public License åè®®ã€‚
% ç”±äºŽè¿çŠ¯åè®®è€Œå¼•èµ·çš„ä»»ä½•çº&nbsp;çº·äº‰ç«¯å‡ä¸Ž
%   æœ¬æ¨¡æ¿ä½œè€…æ—&nbsp;å…³ã€‚
% \end{enumerate}
% \end{abstract}
%
% \clearpage
% \pagestyle{fancy}
% \begin{multicols}{2}[
%   \setlength{\columnseprule}{.4pt}
%   \setlength{\columnsep}{18pt}]
%   \tableofcontents
% \end{multicols}
% \clearpage
%
% \section{æ¨¡æ¿ä»‹ç»}
% \hitreport (\textbf{H}arbin \textbf{I}istitute of \textbf{T}echnology \LaTeX\ Versatile \textbf{Report} Template)æ˜¯ä¸ºå“ˆå°”æ»¨å·¥ä¸šå¤§å­¦ä¸€æ&nbsp;¡ä¸‰åŒºçš„æœ¬ç§‘ç”Ÿè®¾è®¡çš„ä¸€ä¸ªå…äºŽé…ç½®çš„ä½œä¸šã€å®žéªŒæŠ¥å‘Šæ¨¡æ¿ã€‚å¸Œæœ›å®ƒå¯ä»¥ä½¿ä½&nbsp;çš„ä½œä¸šæˆ–å®žéªŒæŠ¥å‘Šä¸ä¼šå›&nbsp;å½¢å¼ä¸Šçš„ç¼ºé™·å¯¼è‡´è¯„åˆ†çš„ä¸‹é™ã€‚
%
% è¯¥æ–‡æ¡£æ&nbsp;¼å¼åŸºäºŽ ctexbook, ä¸»è¦å®Œæˆäº†é™¤äº†ä¸»ä½“å†…å®¹ä»¥å¤–çš„å‡&nbsp;ä¹Ž\textbf{å…¨éƒ¨}å·¥ä½œã€‚åŒæ—¶ï¼Œé€šè¿‡ä½¿ç”¨ Github ç‰ˆæœ¬å®åŒ…ï¼Œä½&nbsp;è¿˜å¯ä»¥æ›´å¥½çš„ç®¡ç†è‡ªå·±çš„ \LaTeX æ–‡æ¡£ã€‚
%
% æœ¬æ–‡æ¡£å°†å°½é‡å®Œæ•´çš„ä»‹ç»æ¨¡æ¿çš„ä½¿ç”¨æ–¹æ³•ï¼Œå¦‚æœ‰ä¸æ¸…æ¥šä¹‹å¤„å¯ä»¥å‚è€ƒç¤ºä¾‹æ–‡æ¡£æˆ–è€…æ&nbsp;¹æ®ç¬¬  èŠ‚è¯´æ˜Žæé—®ï¼Œæœ‰å…´è¶£è€…éƒ½å¯ä»¥å‚ä¸Žå®Œå–„æ­¤æ‰‹å†Œï¼Œä¹Ÿéžå¸¸æ¬¢è¿Žåœ¨Githubä¸Šæå‡ºIssuesã€‚
% 
% \section{å®‰è£…}
% \label{sec:installation}
% \subsection{CTAN}
% 	æœ¬å®åŒ…å·²è¢«æ”¶çº³äºŽ CTAN ä¸­ï¼Œå‡¡å®‰è£…å®Œæ•´ç‰ˆ Texlive ç”¨æˆ·å¯ç›´æŽ¥ä½¿ç”¨ï¼š
% \begin{latex} 
%    \usepackage{hitreport} 
% \end{latex}
% è¿›è¡Œå†™ä½œï¼Œä½†æ˜¯é€šå¸¸ç‰ˆæœ¬è¾ƒæ—§ï¼Œä¸”ä¸ä¾¿æ›´æ–°ã€‚
%
% \subsection{Github}
% æƒ³èŽ·å¾—æœ€æ–°ç‰ˆæœ¬çš„è¯·å‰å¾€ Github ä¸»é¡µä¸‹è½½ï¼š
% \url{https://github.com/demerzelsun12/hitreport} 
% 
% åŒæ—¶ï¼Œé¢å‘ Github ç‰ˆæœ¬çš„è¯´æ˜Žä¸»è¦åœ¨ README.md ä¸­ï¼Œ
% å¦‚æžœä½¿ç”¨çš„æ˜¯ Github ç‰ˆæœ¬ï¼Œè¯·é˜…è¯» README.md
%
% \subsection{Gitee}
% ä¸ºè§£å†³éƒ¨åˆ†åŒå­¦æ—&nbsp;æ³•æ­£å¸¸è®¿é—® GitHub æˆ–è€…ä¸‹è½½é€Ÿåº¦è¿‡æ…¢çš„æƒ…å†µï¼Œ
% æœ¬æ¨¡æ¿åœ¨ Gitee ä¸Šä¹ŸåšåŒæ­¥æ›´æ–°ï¼ŒGiteeä¸‹è½½åœ°å€ä¸ºï¼š
% \url{https://gitee.com/demerzel/hitreport}
% 
% æ¨¡æ¿æ”¯æŒåœ¨ TeX Liveã€MacTeX å’Œ MIKTeX å¹³å°ä¸‹è¿›è¡Œç¼–è¯‘ï¼Œ
% ä½¿ç”¨æœ€æ–°ç‰ˆæœ¬å¯ä»¥é¿å… bugã€‚
%
% \subsection{æ¨¡æ¿çš„ç»„æˆ}
% ç”±äºŽæŠ¥å‘Šçš„çŸ­æ—¶æ€§çš„ç‰¹ç‚¹ï¼Œä¹Ÿæ–¹ä¾¿æ›´å¤šé›¶åŸºç¡€çš„åŒå­¦ä½¿ç”¨æœ¬æ¨¡æ¿ï¼Œ
% æœ¬æ¨¡æ¿è¿›æœ€å¤§å¯èƒ½ç®€åŒ–äº†éžå®žé™…æŠ¥å‘Šæ–‡å­—çš„é…ç½®éƒ¨åˆ†ã€‚ä¸‹è¡¨åˆ—å‡ºäº†æ¨¡æ¿çš„ä¸»è¦æ–‡ä»¶åŠå…¶åŠŸèƒ½ä»‹ç»ï¼š
%
% \begin{longtable}{l|p{8cm}}
% \toprule
% {\heiti æ–‡ä»¶ï¼ˆå¤¹ï¼‰} &amp; {\heiti åŠŸèƒ½æè¿°}\\\midrule
% \endfirsthead
% \midrule
% {\heiti æ–‡ä»¶ï¼ˆå¤¹ï¼‰} &amp; {\heiti åŠŸèƒ½æè¿°}\\\midrule
% \endhead
% \endfoot
% \endlastfoot
% hitreport.ins &amp; \textsc{DocStrip} é©±åŠ¨æ–‡ä»¶ï¼ˆå¼€å‘ç”¨ï¼‰ \\
% hitreport.dtx &amp; \textsc{DocStrip} æºæ–‡ä»¶ï¼ˆå¼€å‘ç”¨ï¼‰\\\midrule
% ref/ &amp; ç¤ºä¾‹æ–‡æ¡£å‚è€ƒæ–‡çŒ®ç›®å½• \\
% figures/ &amp; ç¤ºä¾‹æ–‡æ¡£å›¾ç‰‡è·¯å¾„ \\
% data/ &amp; å®žä¾‹æ–‡æ¡£å„ç«&nbsp;èŠ‚è·¯å¾„ \\
% photo/ &amp; æ¨¡æ¿å°é¢å¼•ç”¨å›¾ç‰‡è·¯å¾„ \\
% code/ &amp; ç¤ºä¾‹æ–‡æ¡£å¼•ç”¨ä»£ç&nbsp;è·¯å¾„ \\\midrule
% report.tex &amp; ç¤ºä¾‹æ–‡æ¡£åŸºæœ¬é…ç½® \\
% hitreport.cls &amp; æ¨¡æ¿ç±»æ–‡ä»¶ \\
% hitreport-example.tex &amp; ç¤ºä¾‹æ–‡æ¡£ä¸»æ–‡ä»¶\\
% hitreport-example.pdf &amp; ç¤ºä¾‹æ–‡æ¡£ \\
% hitsetup.tex &amp; ç¤ºä¾‹æ–‡æ¡£åŸºæœ¬é…ç½®\\\midrule
% Makefile &amp; è‡ªåŠ¨è¿è¡Œè„šæœ¬ \\
% latexmkrc &amp; latexmk é…ç½®æ–‡ä»¶ \\
% README.md &amp; è¯´æ˜Žæ–‡ä»¶ \\
% \textbf{hitreport.pdf} &amp; ç”¨æˆ·æ‰‹å†Œï¼ˆæœ¬æ–‡æ¡£ï¼‰\\ \bottomrule
% \end{longtable}
%
% å‡&nbsp;ç‚¹è¯´æ˜Žï¼š
% \begin{itemize}
% \item \file{hitreport.cls} å¯ç”± \file{hitreport.ins}
%   å’Œ \file{hitreport.dtx} ç”Ÿæˆï¼Œä½†ä¸ºäº†é™ä½Žæ–°æ‰‹ç”¨æˆ·çš„ä½¿ç”¨éš¾åº¦ï¼Œæ•…
%   å°† \file{hitreport.cls} æ–‡ä»¶ä¸€èµ·å‘å¸ƒã€‚æ–°æ‰‹å¯ç›´æŽ¥ä¸‹è½½ Release ç‰ˆ
%	æœ¬ï¼ŒRelease ç‰ˆæœ¬ä¸åŒ…å« \file{hitreport.ins} å’Œ
%	\file{hitreport.dtx}ã€‚
% \item ä½¿ç”¨æ¨¡æ¿æ–‡ä»¶æˆ–å¯¹æ¨¡æ¿æ–‡ä»¶è¿›è¡Œä¿®æ”¹å‰è¯·é˜…è¯»æœ¬æ–‡æ¡£ï¼š
%	\file{hitreport.pdf}ã€‚
% \end{itemize}
% 
%
% \subsection{ç”Ÿæˆæ¨¡æ¿}
% \label{sec:generate-cls}
%	æ¨¡æ¿çš„æºæ–‡ä»¶ï¼ˆ\file{hitreport.dtx}ï¼‰ä¸­åŒ…å«äº†å¤§é‡çš„æ³¨é‡Šï¼Œéœ€è¦å°†æ³¨
%	é‡ŠåŽ»æŽ‰ç”Ÿæˆè½»é‡çº§çš„ \file{.cls} æ–‡ä»¶ä¾› \cs{documentclass} è°ƒç”¨ã€‚
%	ä½¿ç”¨Makefileæˆ– \XeLaTeX ç”Ÿæˆæ¨¡æ¿æ–‡ä»¶ã€‚
% \begin{shell}
%    $ make cls 
% \end{shell}
% æˆ–
% \begin{shell}
%    $ xelatex hitreport.ins
% \end{shell}
% 
% \note[æ³¨æ„ï¼š]{å¦‚æžœæ²¡æœ‰ç”Ÿæˆçš„æ¨¡æ¿ \file{hitreport.cls} æ–‡ä»¶
%   ï¼ˆä¸Ž \file{hitreport-example.tex} åœ¨åŒä¸€ç›®å½•ä¸‹ï¼‰ï¼Œ
%   \LaTeX{} åœ¨ç¼–è¯‘æ—¶å¯èƒ½æ‰¾åˆ°å‘è¡Œç‰ˆä¸­è¾ƒæ—§ç‰ˆæœ¬çš„ \file{.cls}ï¼Œä»Žè€Œé€&nbsp;æˆç¼–è¯‘å†²çªã€‚}
%
% \subsection{ç”ŸæˆæŠ¥å‘Š}
% \label{sec:gengrate-report}
% æœ¬èŠ‚ä»‹ç»å‡&nbsp;ç§å¸¸è§çš„ç”ŸæˆæŠ¥å‘Šçš„æ–¹æ³•ã€‚ç”¨æˆ·å¯æ&nbsp;¹æ®è‡ªå·±çš„æƒ…å†µé€‰æ‹©ã€‚
%
% åœ¨æ’°å†™æŠ¥å‘Šæ—¶ï¼Œéœ€è¦æ³¨æ„ï¼Œä»£ç&nbsp;å¼•ç”¨å¯ä»¥ä½¿ç”¨ç›¸å¯¹è·¯å¾„ï¼Œä½†æ˜¯å›¾ç‰‡å¼•ç”¨åˆ™å¿…é¡»
% æ”¾åœ¨ figures æ–‡ä»¶å¤¹ä¸‹ã€‚å¦‚æžœéœ€è¦å¯¹æ&nbsp;¡å¾½ä»¥åŠæ&nbsp;¡åå›¾ç‰‡åç§°è¿›è¡Œä¿®æ”¹ï¼Œ 
% \file{hitreport.cls} æ–‡ä»¶ä¸­ç›¸åº”ä½ç½®ä¹Ÿéœ€è¦ä¿®æ”¹ã€‚
%
% åœ¨æ’°å†™æŠ¥å‘Šæ—¶ï¼Œ\textbf{ä¸æŽ¨è}ä½¿ç”¨åŽŸæœ‰çš„ \file{hitreport-example.tex} è¿™ä¸€åç§°ã€‚
% å»ºè®®å°†å…¶å¤åˆ¶ä¸€ä»½ï¼Œæ”¹ä¸ºå…¶ä»–çš„åå­—ï¼ˆå¦‚ \file{report.tex} æˆ–è€… \file{main.tex}ï¼‰ã€‚
% éœ€è¦æ³¨æ„ï¼Œå¦‚æžœä½¿ç”¨äº†æ¥è‡ª \file{data} ç›®å½•ä¸­çš„ \file{tex} æ–‡ä»¶ï¼Œ
% åˆ™é‡å‘½åä¸»æ–‡ä»¶åŽï¼Œå…¶é¡¶ç«¯çš„ \texttt{!TeX root} é€‰é¡¹ä¹Ÿéœ€è¦ç›¸åº”ä¿®æ”¹ã€‚
%
% \subsubsection{GNU make}
% \label{sec:make}
% å¦‚æžœç”¨æˆ·å¯ä»¥ä½¿ç”¨ GNU make å·¥å…·ï¼Œè¿™æ˜¯æœ€æ–¹ä¾¿çš„åŠžæ³•ã€‚
% æ‰€ä»¥ \hitreport æä¾›äº† \file{Makefile}ï¼š
% \begin{shell}
%    $ make report    # ç”ŸæˆæŠ¥å‘Šç¤ºä¾‹ hitreport-example.pdf
%    $ make doc       # ç”Ÿæˆè¯´æ˜Žæ–‡æ¡£ hitreport.pdf
%    $ make clean     # æ¸…ç†ç¼–è¯‘ç”Ÿæˆçš„è¾…åŠ©æ–‡ä»¶
% \end{shell}
%
% éœ€è¦æ³¨æ„ï¼Œå¦‚æžœæ›´æ”¹äº†ä¸»æ–‡ä»¶çš„åç§°ï¼Œåˆ™éœ€è¦ä¿®æ”¹ \file{Makefile} é¡¶ç«¯çš„ \texttt{REPORT} å˜é‡å®šä¹‰ã€‚
% 
% \subsubsection{latexmk}
% latexmk å‘½ä»¤æ”¯æŒå…¨è‡ªåŠ¨ç”Ÿæˆ\LaTeX{}ç¼–å†™çš„æ–‡æ¡£ï¼Œå¹¶ä¸”æ”¯æŒä½¿ç”¨ä¸åŒçš„å·¥å…·é“¾æ¥è¿›è¡Œç”Ÿæˆï¼Œå®ƒä¼šè‡ªåŠ¨è¿è¡Œå¤šæ¬¡å·¥å…·ç›´åˆ°äº¤å‰å¼•ç”¨éƒ½è¢«è§£å†³ã€‚ä¸‹é¢ç»™å‡ºäº†ä¸€ä¸ªç”¨ latexmk è°ƒç”¨ xelatex ç”Ÿæˆæœ€ç»ˆæ–‡æ¡£çš„ç¤ºä¾‹:
% \begin{shell}
%    $ latexmk hitreport-example.tex		# ç”Ÿæˆç¤ºä¾‹æŠ¥å‘Š
%    $ latexmk hitreport.dtx				# ç”Ÿæˆè¯´æ˜Žæ–‡æ¡£hitreport.pdf
%    $ latexmk -c							# æ¸…ç†ç¼–è¯‘ç”Ÿæˆçš„è¾…åŠ©æ–‡ä»¶
% \end{shell}
% \texttt{latexmk} çš„ç¼–è¯‘è¿‡ç¨‹æ˜¯é€šè¿‡ \file{latexmkrc} æ–‡ä»¶æ¥é…ç½®çš„ï¼Œå¦‚æžœè¦è¿›ä¸€æ­¥äº†è§£ï¼Œ
% å¯ä»¥å‚è€ƒ \pkg{latexmk} æ–‡æ¡£ã€‚
%
%
% \subsubsection{\XeLaTeX}
% \label{sec:xelatex}
% å¦‚æžœç”¨æˆ·æ—&nbsp;æ³•ä½¿ç”¨ä»¥ä¸Šä¸¤ç§è¾ƒä¸ºæ–¹ä¾¿çš„ç¼–è¯‘æ–¹æ³•ï¼Œå°±åªèƒ½æŒ‰ç…§ä»¥ä¸‹å¤æ‚çš„åŠžæ³•æ‰‹åŠ¨ç¼–è¯‘ã€‚
%
% é¦–å…ˆï¼Œæ›´æ–°æ¨¡æ¿ï¼š
% \begin{shell}
%    $ xetex hitreport.ins                       # ç”Ÿæˆ hitreport.cls
% \end{shell}
%
% ç„¶åŽï¼Œç”Ÿæˆè®ºæ–‡ï¼š
% \begin{shell}
%    $ xelatex hitreport-example.tex
%    $ bibtex hitreport-example.aux              # ç”Ÿæˆ bbl æ–‡ä»¶
%    $ xelatex hitreport-example.tex             # è§£å†³å¼•ç”¨
%    $ xelatex hitreport-example.tex             # ç”ŸæˆæŠ¥å‘Š PDF
%
% \end{shell}
%
% ä½¿ç”¨ä¸‹é¢çš„å‘½ä»¤ç”¨æ¥ç”Ÿæˆç”¨æˆ·æ‰‹å†Œï¼š
% \begin{shell}
%    $ xelatex -shell-escape hitreport.dtx
%    $ makeindex -s gind.ist -o hitreport.ind hitreport.idx
%    $ xelatex -shell-escape hitreport.dtx
%    $ xelatex -shell-escape hitreport.dtx  # ç”Ÿæˆè¯´æ˜Žæ–‡æ¡£ hitreport.pdf
% \end{shell}
%
% \subsection{å‡çº§}
% \label{sec:upgrade}
% å¦‚æžœéœ€è¦å‡çº§ \hitreport{}ï¼Œåº”å½“ä»Ž GitHub ä¸‹è½½æœ€æ–°çš„ç‰ˆæœ¬ï¼Œ
% å°† \file{hitreport.dtx}ï¼Œ\file{hitreport.ins}ï¼Œæ‹·è´è‡³å·¥ä½œç›®å½•è¦†ç›–ç›¸åº”çš„æ–‡ä»¶ï¼Œç„¶åŽæŒ‰ç…§
% ç¬¬~\ref{sec:generate-cls} èŠ‚çš„å†…å®¹ç”Ÿæˆæ–°çš„æ¨¡æ¿å’Œä½¿ç”¨è¯´æ˜Žã€‚
%
% æœ‰æ—¶æ¨¡æ¿å¯èƒ½è¿›è¡Œäº†é‡è¦çš„ä¿®æ”¹ï¼Œä¸å…¼å®¹å·²å†™å¥½çš„æ­£æ–‡å†…å®¹ï¼Œç”¨æˆ·åº”æŒ‰ç…§ç¤ºä¾‹
% æ–‡æ¡£é‡æ–°è°ƒæ•´ã€‚
%
%
% \section{ä½¿ç”¨è¯´æ˜Ž}
% \label{sec:usage}
% \subsection{ç¤ºä¾‹æ–‡ä»¶}
% æŽ¨èä»Žæ¨¡æ¿è‡ªå¸¦çš„ç¤ºä¾‹æ–‡æ¡£å…¥æ‰‹ï¼Œå…¶ä¸­åŒ…æ‹¬äº†å†™ä½œç”¨åˆ°çš„æ‰€æœ‰å‘½ä»¤åŠå…¶ä½¿ç”¨æ–¹æ³•ï¼Œåªéœ€è¦ç”¨è‡ªå·±çš„å†…å®¹è¿›è¡Œç›¸åº”æ›¿æ¢å°±å¯ä»¥ã€‚å¯¹äºŽä¸æ¸…æ¥šçš„å‘½ä»¤å¯ä»¥æŸ¥é˜…æœ¬æ‰‹å†Œã€‚ä¸‹é¢çš„ä¾‹å­æè¿°äº†æ¨¡æ¿ä¸­ç«&nbsp;èŠ‚çš„ç»„ç»‡å½¢å¼ï¼Œæ¥è‡ªäºŽç¤ºä¾‹æ–‡æ¡£ï¼Œå…·ä½“å†…å®¹å¯ä»¥å‚è€ƒæ¨¡æ¿é™„å¸¦çš„ \file{hitreport-example.tex}ã€‚
%
% \subsection{é€‰é¡¹}
% \label{sec:option}
% æŠ¥å‘Šçš„è¯­è¨€æ˜¯ä¸­æ–‡ï¼Œæš‚ä¸æ”¯æŒè‹±æ–‡ã€‚
% \DescribeOption{open}
% æ­£è§„å‡ºç‰ˆç‰©çš„ç«&nbsp;èŠ‚å‡ºçŽ°åœ¨å¥‡æ•°é¡µï¼Œä¹Ÿå°±æ˜¯å³æ‰‹è¾¹çš„é¡µé¢ï¼Œè¿™å°±æ˜¯ \option{right}ï¼Œã€‚åœ¨è¿™ç§æƒ…å†µä¸‹ï¼Œå¦‚æžœå‰ä¸€ç«&nbsp;çš„æœ€åŽä¸€é¡µä¹Ÿæ˜¯å¥‡æ•°ï¼Œé‚£ä¹ˆæ¨¡æ¿ä¼šè‡ªåŠ¨ç”Ÿæˆä¸€ä¸ªçº¯ç²¹çš„ç©ºç™½é¡µã€‚
% æäº¤çš„ä½œä¸šå¦‚æžœæ˜¯ç”µå­ç¨¿çš„è¯ï¼Œå¯ä»¥ä½¿ç”¨è¿žç»­é¡µï¼Œå³ä½¿ç”¨\option{any}
% \DescribeOption{wide}
% æ˜¯å¦ä½¿ç”¨å®½é¡µé¢ã€‚å¦‚æžœç”Ÿæˆä½œä¸šçš„è¯ï¼Œå®½é¡µé¢æˆ–è®¸å¥½çœ‹ã€‚
% \DescribeOption{draft}
% æ˜¯å¦ç”Ÿæˆæ°´å°ã€‚ç”Ÿæˆçš„æ°´å°ä¸º Draft è¡¨ç¤ºæ­¤æ–‡æ¡£å°šä¸ºè‰ç¨¿
%
% \subsection{å­—ä½“é…ç½®}
% \label{sec:font-config}
% æ¨¡æ¿é»˜è®¤å¯ä»¥è‡ªåŠ¨æ£€æµ‹æ“ä½œç³»ç»Ÿï¼Œå¹¶é…ç½®æ”¹å¹³å°ä¸Šåˆé€‚çš„å­—ä½“ï¼Œ
% å…·ä½“çš„é…ç½®ç­–ç•¥å¦‚è¡¨~\ref{tab:font}ã€‚
% \begin{table}[htb]
%   \centering
%   \caption{hitreport è‡ªåŠ¨é…ç½®å­—ä½“ç­–ç•¥}
%   \label{tab:font}
%   \begin{tabular}{ccc}
%     \toprule
%     Windows         &amp; macOS           &amp; å…¶ä»–            \\
%     \midrule
%     Times New Roman &amp; Times New Roman &amp; TeX Gyre Termes \\
%     Arial           &amp; Arial           &amp; TeX Gyre Heros  \\
%     Courier         &amp; Menlo           &amp; TeX Gyre Cursor \\
%     ä¸­æ˜“å®‹ä½“        &amp; åŽæ–‡å®‹ä½“        &amp; Noto å®‹ä½“     \\
%     ä¸­æ˜“é»‘ä½“        &amp; åŽæ–‡é»‘ä½“        &amp; Noto é»‘ä½“     \\
%     \bottomrule
%   \end{tabular}
% \end{table}
%
% ç„¶è€Œè‡ªåŠ¨é…ç½®çš„å­—ä½“åªèƒ½ä¿è¯ç¼–è¯‘é€šè¿‡ï¼Œä½†æ˜¯è¿˜å­˜åœ¨ä¸€äº›é—®é¢˜ï¼š
% \begin{enumerate}
%   \item åœ¨å…¶ä»–å¹³å°ä¸Šé…ç½®çš„ TeX Gyre ç³»åˆ—å­—ä½“ï¼Œè™½ç„¶åœ¨é£Žæ&nbsp;¼ä¸Šæ¯”è¾ƒæŽ¥è¿‘ Times å’Œ Arialï¼Œ
%     ä½†æ˜¯æ¯•ç«Ÿè·Ÿéƒ¨åˆ†è¯¾ç¨‹è¦æ±‚çš„å­—ä½“ä¸å®Œå…¨ä¸€è‡´ï¼›
%   \item åŽæ–‡å­—åº“è™½ç„¶ä¸è¿åä¸€èˆ¬çš„å†™ä½œè¦æ±‚ï¼Œ
%     ä½†æ˜¯å…¶å­—å½¢è·Ÿä¸­æ˜“å­—åº“æœ‰æ‰€å·®åˆ«ï¼Œå¯èƒ½è¢«æ‰¹æ”¹è€å¸ˆè®¤ä¸ºæ&nbsp;¼å¼ä¸ç¬¦åˆè¦æ±‚ã€‚
% \end{enumerate}
%
% æ‰€ä»¥å»ºè®®åœ¨æäº¤æœ€ç»ˆç‰ˆå‰ä½¿ç”¨ Windows å¹³å°çš„å­—ä½“è¿›è¡Œç¼–è¯‘ã€‚
%
% ç”¨æˆ·ä¹Ÿå¯ä»¥åœ¨è°ƒç”¨ hitreport æ—¶æ‰‹åŠ¨æŒ‡å®šä½¿ç”¨çš„å­—åº“ï¼Œå¦‚ï¼š
%
% \begin{latex}
%   \documentclass[fontset=windows]{hitreport}
% \end{latex}
%
% å…è®¸çš„é€‰é¡¹æœ‰ \option{windows}ã€\option{mac}ï¼Œè¯¦
% è§ \pkg{ctex}ã€\pkg{xeCJK}ã€\pkg{fontspec} ç­‰å®åŒ…çš„ä½¿ç”¨è¯´æ˜Žã€‚
%
%
% \subsection{è®ºæ–‡è®¾ç½®}
% è®ºæ–‡çš„è®¾ç½®å¯ä»¥é€šè¿‡ç»Ÿä¸€å‘½ä»¤ \cs{hitsetup} è®¾ç½® \emph{key=value} å½¢å¼å®Œæˆã€‚
%
% \DescribeMacro{\hitsetup}
% \cs{hitsetup} ç”¨æ³•ä¸Žå¸¸è§ \emph{key=value} å‘½ä»¤ç›¸åŒï¼Œå¦‚ä¸‹ï¼š
% \begin{latex}
%   \hitsetup{
%     key1 = value1,
%     key2 = {a value, with comma},
%   }
%   % å¯ä»¥å¤šæ¬¡è°ƒç”¨
%   \hitsetup{
%     key3 = value3,
%     key1 = value11,  % è¦†ç›– value1
%   }
% \end{latex}
%
% \note[æ³¨æ„ï¼š]{\cs{hitsetup} ä½¿ç”¨ \pkg{kvsetkeys} æœºåˆ¶ï¼Œæ‰€ä»¥é…ç½®é¡¹ä¹‹é—´ä¸èƒ½æœ‰ç©ºè¡Œï¼Œå¦åˆ™
% ä¼šæŠ¥é”™ã€‚}
%
%
%
% \subsection{å°é¢ä¿¡æ¯}
%
% \label{sec:titlepage}
% å°é¢ä¿¡æ¯å¯ä»¥é€šè¿‡ç»Ÿä¸€è®¾ç½®å‘½ä»¤ \cs{hitsetup} è®¾ç½® \emph{key=value} å½¢å¼å®Œæˆï¼›
%
% \subsubsection{æŠ¥å‘Šæ&nbsp;¡åŒº}
% é€‰æ‹©ä¸åŒæ&nbsp;¡åŒºçš„æ&nbsp;¡åã€‚å¤‡é€‰ä¸ºharbinã€shenzhenã€weihaiã€‚
% \begin{latex}
%   \hitsetup{
%     campus  = {harbin},
%   }
% \end{latex}
%
%
% \subsubsection{æŠ¥å‘Šä¸»æ&nbsp;‡é¢˜}
% ä¸­æ–‡æ&nbsp;‡é¢˜ã€‚å¯ä»¥åœ¨æ&nbsp;‡é¢˜å†…éƒ¨ä½¿ç”¨æ¢è¡Œ|\\|ã€‚
% \begin{latex}
%   \hitsetup{
%     title  = {æŠ¥å‘Šä¸»æ&nbsp;‡é¢˜},
%   }
% \end{latex}
%
% \subsubsection{æŠ¥å‘Šå‰¯æ&nbsp;‡é¢˜}
% ä¸­æ–‡æ&nbsp;‡é¢˜ã€‚å¯ä»¥åœ¨æ&nbsp;‡é¢˜å†…éƒ¨ä½¿ç”¨æ¢è¡Œ|\\|ã€‚
% \begin{latex}
%   \hitsetup{
%     expand  = {æŠ¥å‘Šå‰¯æ&nbsp;‡é¢˜},
%   }
% \end{latex}
%
% \subsubsection{é™¢ç³»åç§°}
% é™¢ç³»åç§°ã€‚
% \begin{latex}
%   \hitsetup{
%     department = {ç³»åå…¨ç§°},
%   }
% \end{latex}
%
% \subsubsection{ä¸“ä¸šåç§°}
%
% \begin{latex}
%   \hitsetup{
%     discipline  = {ä¸“ä¸šåç§°},
%   }
% \end{latex}
%
% \subsubsection{ä½œè€…å§“å}
% ä½œè€…å§“åã€‚
% \begin{latex}
%   \hitsetup{
%     author  = {ä¸­æ–‡å§“å},
%   }
% \end{latex}
%
% \subsubsection{å­¦å·}
% å­¦å·ã€‚
% \begin{latex}
%   \hitsetup{
%     student-id  = {1180310840},
%   }
% \end{latex}
%
% \subsubsection{æŒ‡å¯¼æ•™å¸ˆ}
% æŒ‡å¯¼æ•™å¸ˆã€‚
% \begin{latex}
%   \hitsetup{
%     supervisor  = {æŒ‡å¯¼æ•™å¸ˆ},
%   }
% \end{latex}
%
% \subsubsection{å®žéªŒåœ°ç‚¹}
% ç›´æŽ¥ä¸­æ–‡ä¹¦å†™å®žéªŒåœ°ç‚¹ã€‚
% \begin{latex}
%   \hitsetup{
%     lablocation  = {æ&nbsp;¼ç‰©207},
%   }
% \end{latex}
%
% \subsubsection{å­¦æœŸ}
% è¯¾ç¨‹å­¦æœŸï¼Œç›´æŽ¥ä¹¦å†™ä¸­æ–‡å³å¯ã€‚
% \begin{latex}
%   \hitsetup{
%     term  = {2021æ˜¥å­£å­¦æœŸ},
%   }
% \end{latex}
%
% \subsubsection{æˆæ–‡æ—¥æœŸ}
% é»˜è®¤ä¸ºå½“å‰æ—¥æœŸï¼Œä¹Ÿå¯ä»¥è‡ªå·±æŒ‡å®šï¼Œè¦æ±‚ä½¿ç”¨ ISO æ&nbsp;¼å¼ã€‚
% \begin{latex}
%   \hitsetup{
%     date = {2021-03-01},
%   }
% \end{latex}
%
%
% \myentry{ç”Ÿæˆå°é¢}
% \DescribeMacro{\maketitle}
% ç”Ÿæˆå°é¢ã€‚
% \begin{latex}
%   % ç›´æŽ¥ç”Ÿæˆå°é¢
%   \maketitle
% \end{latex}
% 
% \subsection{æ­£æ–‡éƒ¨åˆ†}
% \subsubsection{æ•°å­¦ç¬¦å·}
% \label{sec:math}
% æŠ¥å‘Šçš„æ•°å­¦ç¬¦å·é»˜è®¤éµå¾ª GB/T 3102.11â€”1993ã€Šç‰©ç†ç§‘å­¦å’ŒæŠ€æœ¯ä¸­ä½¿ç”¨çš„æ•°å­¦ç¬¦å·ã€‹ã€‚
% è¯¥æ&nbsp;‡å‡†å‚ç…§é‡‡çº³ ISO 31-11:1992ï¼Œ
% ä½†æ˜¯ä¸Ž \TeX{} é»˜è®¤çš„è‹±ç¾Žå›½å®¶çš„ç¬¦å·ä¹&nbsp;æƒ¯æœ‰è®¸å¤šå·®å¼‚ï¼Œä¸»è¦æœ‰ï¼š
% \newcommand\dif{\mathop{}\!\mathrm{d}}
% \begin{enumerate}
%   \item å¤§å†™å¸Œè…Šå­—æ¯é»˜è®¤ä¸ºæ–œä½“ï¼Œ
%     æœ‰é™å¢žé‡ç¬¦å·  å›ºå®šä½¿ç”¨æ­£ä½“ã€‚
%   \item æ•°å­¦å¸¸æ•°å’Œç‰¹æ®Šå‡½æ•°åç”¨æ­£ä½“ã€‚
%   \item å¾®åˆ†å·ä½¿ç”¨æ­£ä½“ã€‚
%   \item å‘é‡ã€çŸ©é˜µå’Œå¼&nbsp;é‡ç”¨ç²—æ–œä½“ã€‚
%   \item çœç•¥å·æŒ‰ç…§ä¸­æ–‡çš„ä¹&nbsp;æƒ¯å›ºå®šå±…ä¸­ã€‚
% \end{enumerate}
%
% \DescribeOption{math-style}
% è‹±æ–‡è®ºæ–‡çš„æ•°å­¦ç¬¦å·é»˜è®¤ä½¿ç”¨ \TeX{} æ&nbsp;·å¼ã€‚
% å¦‚æžœæœ‰å¿…è¦ï¼Œä¹Ÿå¯ä»¥é€šè¿‡è®¾ç½® \option{math-style} é€‰æ‹©æ•°å­¦ç¬¦å·æ&nbsp;·å¼ï¼Œ
% å¯é€‰ï¼š\option{GB}ï¼ˆä¸­æ–‡é»˜è®¤ï¼‰ï¼Œ\option{TeX}ï¼ˆè‹±æ–‡é»˜è®¤ï¼‰ï¼Œ\option{ISO}ã€‚
% \begin{latex}
%   \hitsetup{
%     math-style = ISO,
%   }
% \end{latex}
%
% æ¨¡æ¿ä½¿ç”¨
% \href{http://mirrors.ctan.org/macros/latex/contrib/unicode-math/unicode-math.pdf}{\pkg{unicode-math}}
% é…ç½®æ•°å­¦ç¬¦å·çš„å­—ä½“ã€‚
% å…¨éƒ¨æ•°å­¦ç¬¦å·çš„å‘½ä»¤å‚è€ƒ
% \href{http://mirrors.ctan.org/macros/latex/contrib/unicode-math/unimath-symbols.pdf}{\pkg{unimath-symbols}}ã€‚
% æ³¨æ„ï¼Œ\pkg{unicode-math} å®åŒ…ä¸Ž \pkg{amsfonts}ã€\pkg{amssymb}ã€\pkg{bm}ã€
% \pkg{mathrsfs}ã€\pkg{upgreek} ç­‰å®åŒ…\emph{ä¸}å…¼å®¹ã€‚
% æ¨¡æ¿ä½œäº†å¤„ç†ï¼Œç”¨æˆ·å¯ä»¥ç›´æŽ¥ä½¿ç”¨è¿™äº›å®åŒ…çš„å‘½ä»¤ï¼Œå¦‚ \cs{bm}ã€\cs{mathscr}ã€
% \cs{uppi}ã€‚
%
%
% \subsubsection{å®šç†çŽ¯å¢ƒ}
% \label{sec:theorem}
% \hitreport å®šä¹‰äº†å¸¸ç”¨çš„æ•°å­¦çŽ¯å¢ƒï¼š
%
% \begin{center}
% \begin{tabular}{*{7}{l}}\toprule
%   axiom &amp; theorem &amp; definition &amp; proposition &amp; lemma &amp; conjecture &amp;\\
%   å…¬ç† &amp; å®šç† &amp; å®šä¹‰ &amp; å‘½é¢˜ &amp; å¼•ç† &amp; çŒœæƒ³ &amp;\\\midrule
%   proof &amp; corollary &amp; example  &amp; assumption &amp; remark &amp; problem &amp; solution\\
%   è¯æ˜Ž &amp; æŽ¨è®º &amp; ä¾‹å­ &amp; å‡è®¾ &amp; æ³¨é‡Š &amp; é—®é¢˜ &amp; è§£\\\bottomrule
% \end{tabular}
% \end{center}
%
% æ¯”å¦‚ï¼š
% \begin{latex}
%   \begin{definition}
%     é“åƒä¹˜ä¹‹å›½ï¼Œæ•¬äº‹è€Œä¿¡ï¼ŒèŠ‚ç”¨è€Œçˆ±äººï¼Œä½¿æ°‘ä»¥æ—¶ã€‚
%   \end{definition}
% \end{latex}
% äº§ç”Ÿï¼ˆè‡ªåŠ¨ç¼–å·ï¼‰ï¼š
% \medskip
%
% \noindent\framebox[\linewidth][l]{{\heiti å®šä¹‰~1.1~~~} % {é“åƒä¹˜ä¹‹å›½ï¼Œæ•¬äº‹è€Œä¿¡ï¼ŒèŠ‚ç”¨è€Œçˆ±äººï¼Œä½¿æ°‘ä»¥æ—¶ã€‚}}
%
% \smallskip
% åˆ—ä¸¾å‡ºæ¥çš„æ•°å­¦çŽ¯å¢ƒæ¯•ç«Ÿæ˜¯æœ‰é™çš„ï¼Œå¦‚æžœæƒ³ç”¨\emph{èƒ¡è¯´}è¿™æ&nbsp;·çš„æ•°å­¦çŽ¯å¢ƒï¼Œé‚£ä¹ˆå¯ä»¥å®šä¹‰ï¼š
% \begin{latex}
%   \newtheorem{nonsense}{èƒ¡è¯´}[chapter]
% \end{latex}
%
% ç„¶åŽè¿™æ&nbsp;·ä½¿ç”¨ï¼š
% \begin{latex}
%   \begin{nonsense}
%     å¥‘ä¸¹æ­¦å£«è¦æ¥ä¸­åŽŸå¤ºæ­¦æž—ç§˜ç¬ˆã€‚â€”â€” æ…•å®¹åš
%   \end{nonsense}
% \end{latex}
%
% äº§ç”Ÿï¼ˆè‡ªåŠ¨ç¼–å·ï¼‰ï¼š
%
% \medskip
% \noindent\framebox[\linewidth][l]{{\heiti èƒ¡è¯´~1.1~~~} % {å¥‘ä¸¹æ­¦å£«è¦æ¥ä¸­åŽŸå¤ºæ­¦æž—ç§˜ç¬ˆã€‚â€”â€” æ…•å®¹åš}}
% 
% \subsection{å…¶ä»–éƒ¨åˆ†}
% \subsubsection{å‚è€ƒæ–‡çŒ®}
% \label{sec:bibliography}
%
% å‚è€ƒæ–‡çŒ®é€šå¸¸å¯ä»¥ä½¿ç”¨ \hologo{BibTeX} æˆ– biblatex ç”Ÿæˆã€‚
% \hologo{BibTeX} æ˜¯ LaTeX å¤„ç†å‚è€ƒæ–‡çŒ®çš„ä¼&nbsp;ç»Ÿçš„æ–¹å¼ï¼Œ
% éœ€è¦åœ¨ä½¿ç”¨ \cs{bibliographystyle}\marg{style} é€‰æ‹©æ&nbsp;·å¼
% å¹¶ç”¨ \cs{bibliography} è®¾ç½® \file{.bib} çš„è·¯å¾„ã€‚
% ç„¶åŽä½¿ç”¨ \texttt{bibtex} å¯¹ \file{.aux} æ–‡ä»¶è¿›è¡Œç¼–è¯‘å¾—åˆ° \file{.bbl} æ–‡ä»¶ã€‚
% å…¶ä¸­çš„å‚è€ƒæ–‡çŒ®è¡¨å†…å®¹ä¼šåœ¨åŽç»­ç¼–è¯‘æ—¶æ›¿æ¢åˆ° \cs{bibliography} çš„ä½ç½®ã€‚
% Biblatex æ˜¯è¾ƒæ–°çš„æ–¹å¼ï¼Œéœ€è¦åœ¨è½½å…¥å®åŒ…æ—¶é€šè¿‡ \option{style} é€‰æ‹©æ&nbsp;·å¼ï¼Œ
% åœ¨å¯¼è¨€åŒºä½¿ç”¨ \cs{addbibresource} å£°æ˜Žæ•°æ®åº“çš„è·¯å¾„ï¼Œ
% å¹¶åœ¨è¾“å‡ºå‚è€ƒæ–‡çŒ®è¡¨çš„ä½ç½®ä½¿ç”¨ \cs{printbibliography} å‘½ä»¤,
% è€Œä¸”ç¼–è¯‘å‚è€ƒæ–‡çŒ®çš„å‘½ä»¤éœ€è¦æ¢ä¸º biberã€‚
% è¿™ä¸¤ç§æ–¹å¼å„æœ‰ä¼˜ç¼ºç‚¹ï¼Œæ¯”å¦‚ BibTeX æ—&nbsp;æ³•å¯¹ä¸­æ–‡æŒ‰ç…§æ‹¼éŸ³æŽ’åºï¼Œä¸€äº›æ&nbsp;·å¼æ›´æ–°ä¸å¤ŸåŠæ—¶ï¼›
% Biblatex è¿è¡Œè¾ƒç¼“æ…¢ï¼Œæ—&nbsp;æ³•å¯¹å¤šä¸ªå‚è€ƒæ–‡çŒ®è¡¨ä½¿ç”¨ä¸åŒæ&nbsp;·å¼ã€‚
% ç”¨æˆ·éœ€è¦æ&nbsp;¹æ®å®žé™…é€‰æ‹©åˆé€‚çš„æ–¹å¼ã€‚
%
% ç”±äºŽæŠ¥å‘ŠåŸºæœ¬ä¸åšå‚è€ƒæ–‡çŒ®çš„æ&nbsp;¼å¼è¦æ±‚ï¼Œæ­¤å¤„çš„åˆ¶ä½œè¾ƒä¸ºå®½æ³›ï¼Œé‡‡ç”¨ APA æ&nbsp;¼å¼ï¼Œ
% APA çš„ BibTeX æ&nbsp;·å¼ç”± \pkg{apacite} å®åŒ…æä¾›ï¼Œéœ€è¦åœ¨å¯¼è¨€åŒºè°ƒç”¨ï¼š
% \begin{latex}
%   \usepackage[natbibapa]{apacite}
%   \bibliographystyle{apacite}
% \end{latex}
% å…¶ä¸­ \option{natbibapa} ä¼šè°ƒç”¨ \pkg{natbib} æ¥å¤„ç†å¼•ç”¨ï¼Œ
% è¿™ä¹Ÿæ˜¯å®åŒ…æŽ¨èçš„ç”¨æ³•ã€‚
% æ³¨æ„ç›®å‰çš„ \pkg{apacite} åªæ”¯æŒåˆ° APA ç¬¬ 6 ç‰ˆã€‚
% æ›´æŽ¨èä½¿ç”¨å·²ç»æ›´æ–°åˆ° APA ç¬¬ 7 ç‰ˆçš„ \pkg{biblatex-apa}ï¼š
% \begin{latex}
%   \usepackage[style=apa]{biblatex}
%   \addbibresource{refs-apa.bib}
% \end{latex}
% æ³¨æ„ï¼Œå¦‚æžœå‚è€ƒæ–‡çŒ®ä¸­å¼•ç”¨äº†ä¸­æ–‡æ–‡çŒ®çš„è¯ï¼Œè¿™ä¸¤ç§æ–¹æ³•éƒ½ä¸èƒ½æ­£ç¡®è°ƒæ•´æ&nbsp;¼å¼ï¼Œ
% éœ€è¦æ‰‹åŠ¨è¿›è¡Œä¿®æ”¹ \file{.bbl} æ–‡ä»¶çš„å†…å®¹ï¼Œ
% è¿™æ—¶ BibTeX æ¯” biblatex æ›´ç®€å•äº›ã€‚
%
%
%
% \subsubsection{é™„å½•}
%
% é™„å½•ç”± \cs{appendix} å‘½ä»¤å¼€å¯ï¼Œç„¶åŽåƒæ­£æ–‡ä¸€æ&nbsp;·ä¹¦å†™ã€‚éƒ¨åˆ†å®žéªŒæŠ¥å‘Šè¦æ±‚é™„å½•
% å¼•ç”¨ä»£ç&nbsp;ï¼Œå¯ä»¥ä½¿ç”¨ç›¸å¯¹è·¯å¾„å¼•ç”¨ã€‚
% \begin{latex}
%   \appendix
%   \chapter{...}
%   ...
% \end{latex}
%
%
% \section{è‡´è°¢}
% æŠ¥å‘Šä¸€èˆ¬ä¸éœ€è¦æ·»åŠ&nbsp;è‡´è°¢çš„ç«&nbsp;èŠ‚ï¼Œæ•…æœ¬æ¨¡æ¿ä¸åšç›¸åº”çš„åˆ¶ä½œã€‚
% æ„Ÿè°¢ä»¥ä¸‹å®åŒ…çš„ä½œè€…ï¼Œæœ¬å®åŒ…ä»Žä¸­ä½¿ç”¨äº†éƒ¨åˆ†ä»£ç&nbsp;å’Œå€Ÿé‰´ï¼š
% \begin{itemize}
%  \item æ¸…åŽå¤§å­¦\thuthesis \quad  https://github.com/tuna/thuthesis
%  \item å“ˆå°”æ»¨å·¥ä¸šå¤§å­¦ \hithesis \quad https://github.com/dustincys/hithesis
% \end{itemize}
% 
% \StopEventually{\PrintIndex}
% \clearpage
%
% \section{å®žçŽ°ç»†èŠ‚}
% \subsection{åŸºæœ¬ä¿¡æ¯}
%    \begin{macrocode}
%&lt;cls&gt;\NeedsTeXFormat{LaTeX2e}[2017/04/15]
%&lt;cls&gt;\ProvidesClass{hitreport}
%&lt;cls&gt;[2020/12/31 v1.1 Standard LaTeX Template for hitreport]
%    \end{macrocode}
%
% æŠ¥é”™
%    \begin{macrocode}
\newcommand\hit@error[1]{%
  \ClassError{hitreport}{#1}{}%
}
\newcommand\hit@warning[1]{%
  \ClassWarning{hitreport}{#1}%
}
\newcommand\hit@patch@error[1]{%
  \hit@error{Failed to patch command \protect#1}%
}
\newcommand\hit@deprecate[2]{%
  \def\hit@@tmp{#2}%
  \hit@warning{%
    The #1 is deprecated%
    \ifx\hit@@tmp\@empty\else
      . Use #2 instead%
    \fi
  }%
}
%    \end{macrocode}
%
% æ£€æŸ¥ \LaTeXe{} kernel ç‰ˆæœ¬
%    \begin{macrocode}
\@ifl@t@r\fmtversion{2017/04/15}{}{
  \hit@error{%
    TeX Live 2017 or later version is required to compile this document%
  }
}
%    \end{macrocode}
%
% æ£€æŸ¥ç¼–è¯‘å¼•æ“Žï¼Œè¦æ±‚ä½¿ç”¨ \XeLaTeXã€‚
%    \begin{macrocode}
\RequirePackage{ifxetex}
\RequireXeTeX
\ifxetex\else
\ClassError{hitreport}{You must use the `xelatex' driver\MessageBreak 
Please choose `xelatex'}{Just choose `xelatex', no `pdflatex' or `latex' and so on.}
\fi
%    \end{macrocode}
%
% \subsection{å®šä¹‰é€‰é¡¹}
% \label{sec:defoption}
% åˆå§‹åŒ–ä¿¡æ¯
%	\begin{macrocode}
%&lt;*cls&gt;
\RequirePackage{kvdefinekeys}
\RequirePackage{kvsetkeys}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
  family=hit,
  prefix=hit@,
  setkeys=\kvsetkeys}
%    \end{macrocode}
%
% \begin{macro}{\hitsetup}
% æä¾›ä¸€ä¸ª \cs{hitsetup} å‘½ä»¤æ”¯æŒ \emph{key-value} çš„æ–¹å¼æ¥è®¾ç½®ã€‚
%    \begin{macrocode}
\newcommand\hitsetup[1]{%
  \kvsetkeys{hit}{#1}%
}
%    \end{macrocode}
% \end{macro}
%
% åŒæ—¶ç”¨ \emph{key-value} çš„æ–¹å¼æ¥å®šä¹‰è¿™äº›æŽ¥å£ï¼š
% \begin{latex}
%   \hit@define@key{
%     &lt;key&gt; = {
%       name = &lt;name&gt;,
%       choices = {
%         &lt;choice1&gt;,
%         &lt;choice2&gt;,
%       },
%       default = &lt;default&gt;,
%     },
%   }
% \end{latex}
%
% å…¶ä¸­ |choices| è®¾ç½®å…è®¸ä½¿ç”¨çš„å€¼ï¼Œé»˜è®¤ä¸ºç¬¬ä¸€ä¸ªï¼ˆæˆ–è€… \meta{default}ï¼‰ï¼›
% \meta{code} æ˜¯ç›¸åº”çš„å†…å®¹è¢«è®¾ç½®æ—¶æ‰§è¡Œçš„ä»£ç&nbsp;ã€‚
%
%    \begin{macrocode}
\newcommand\hit@define@key[1]{%
  \kvsetkeys{hit@key}{#1}%
}
\kv@set@family@handler{hit@key}{%
%    \end{macrocode}
%
% \cs{hitsetup} ä¼šå°† \meta{value} å­˜åˆ° \cs{hit@\meta{key}}ï¼Œ
% ä½†æ˜¯å®çš„åå­—åŒ…å« â€œ-â€ è¿™æ&nbsp;·çš„ç‰¹æ®Šå­—ç¬¦æ—¶ä¸æ–¹ä¾¿ç›´æŽ¥è°ƒç”¨ï¼Œæ¯”å¦‚ |key = math-style|ï¼Œ
% è¿™æ—¶å¯ä»¥ç”¨ |name| è®¾ç½® \meta{key} çš„åˆ«ç§°ï¼Œæ¯”å¦‚ |key = math@style|ï¼Œ
% è¿™æ&nbsp;·å°±å¯ä»¥é€šè¿‡ \cs{hit@math@style} æ¥å¼•ç”¨ã€‚
% |default| æ˜¯å®šä¹‰è¯¥ \meta{key} æ—¶é»˜è®¤çš„å€¼ï¼Œç¼ºçœä¸ºç©ºã€‚
%
%    \begin{macrocode}
  \@namedef{hit@#1@@name}{#1}%
  \def\hit@@default{}%
  \def\hit@@choices{}%
  \kv@define@key{hit@value}{name}{%
    \@namedef{hit@#1@@name}{##1}%
  }%
%    \end{macrocode}
%
% ç”±äºŽåœ¨å®šä¹‰æŽ¥å£æ—¶ï¼Œ\cs{hit@\meta{key}@@code} ä¸ä¸€å®šæœ‰å®šä¹‰ï¼Œ
% è€Œä¸”åœ¨æ–‡æ¡£ç±»/å®åŒ…ä¸­è¿˜æœ‰å¯èƒ½å¯¹è¯¥ |key| çš„ |code| è¿›è¡Œæ·»åŠ&nbsp;ã€‚
% æ‰€ä»¥ \cs{hit@\meta{key}@@code} ä¼šæ£€æŸ¥å¦‚æžœåœ¨å®šä¹‰æ–‡æ¡£ç±»/å®åŒ…æ—¶åˆ™æŽ¨è¿Ÿæ‰§è¡Œï¼Œå¦åˆ™ç«‹å³æ‰§è¡Œã€‚
%
%    \begin{macrocode}
  \@namedef{hit@#1@@check}{}%
  \@namedef{hit@#1@@code}{}%
%    \end{macrocode}
%
% ä¿å­˜ä¸‹ |choices = {}| å®šä¹‰çš„å†…å®¹ï¼Œåœ¨å®šä¹‰ \cs{hit@\meta{name}} åŽå†æ‰§è¡Œã€‚
%
%    \begin{macrocode}
  \kv@define@key{hit@value}{choices}{%
    \def\hit@@choices{##1}%
    \@namedef{hit@#1@@reset}{}%
%    \end{macrocode}
%
% \cs{hit@\meta{key}@check} æ£€æŸ¥ |value| æ˜¯å¦æœ‰æ•ˆï¼Œ
% å¹¶è®¾ç½® \cs{ifhit@\meta{name}@\meta{value}}ã€‚
%
%    \begin{macrocode}
    \@namedef{hit@#1@@check}{%
      \@ifundefined{%
        ifhit@\@nameuse{hit@#1@@name}@\@nameuse{hit@\@nameuse{hit@#1@@name}}%
      }{%
        \hit@error{Invalid value "#1 = \@nameuse{hit@\@nameuse{hit@#1@@name}}"}%
      }%
      \@nameuse{hit@#1@@reset}%
      \@nameuse{hit@\@nameuse{hit@#1@@name}@\@nameuse{hit@\@nameuse{hit@#1@@name}}true}%
    }%
  }%
  \kv@define@key{hit@value}{default}{%
    \def\hit@@default{##1}%
  }%
  \kvsetkeys{hit@value}{#2}%
  \@namedef{hit@\@nameuse{hit@#1@@name}}{}%
%    \end{macrocode}
%
% ç¬¬ä¸€ä¸ª \meta{choice} è®¾ä¸º \meta{default}ï¼Œ
% å¹¶ä¸”å¯¹æ¯ä¸ª \meta{choice} å®šä¹‰ \cs{ifhit@\meta{name}@\meta{choice}}ã€‚
%
%    \begin{macrocode}
  \kv@set@family@handler{hit@choice}{%
    \ifx\hit@@default\@empty
      \def\hit@@default{##1}%
    \fi
    \expandafter\newif\csname ifhit@\@nameuse{hit@#1@@name}@##1\endcsname
    \expandafter\g@addto@macro\csname hit@#1@@reset\endcsname{%
      \@nameuse{hit@\@nameuse{hit@#1@@name}@##1false}%
    }%
  }%
  \kvsetkeys@expandafter{hit@choice}{\hit@@choices}%
%    \end{macrocode}
%
% å°† \meta{default} èµ‹å€¼åˆ° \cs{hit@\meta{name}}ï¼Œå¦‚æžœéžç©ºåˆ™æ‰§è¡Œç›¸åº”çš„ä»£ç&nbsp;ã€‚
%
%    \begin{macrocode}
  \expandafter\let\csname hit@\@nameuse{hit@#1@@name}\endcsname\hit@@default
  \expandafter\ifx\csname hit@\@nameuse{hit@#1@@name}\endcsname\@empty\else
    \@nameuse{hit@#1@@check}%
  \fi
%    \end{macrocode}
%
% å®šä¹‰ \cs{hitsetup} æŽ¥å£ã€‚
%
%    \begin{macrocode}
  \kv@define@key{hit}{#1}{%
    \@namedef{hit@\@nameuse{hit@#1@@name}}{##1}%
    \@nameuse{hit@#1@@check}%
    \@nameuse{hit@#1@@code}%
  }%
}
%    \end{macrocode}
%
% å®šä¹‰æŽ¥å£å‘ |key| æ·»åŠ&nbsp; |code|ï¼š
%
%    \begin{macrocode}
\newcommand\hit@option@hook[2]{%
  \expandafter\g@addto@macro\csname hit@#1@@code\endcsname{#2}%
}
%    \end{macrocode}
% æŠ¥å‘Šæ’°å†™çš„æ&nbsp;¡åŒº
%    \begin{macrocode}
\hit@define@key{
  campus = {
    name = campus,
    choices = {
      harbin,
      shenzhen,
      weihai,
    },
  },
%    \end{macrocode}
%
% å­—ä½“
%    \begin{macrocode}
  fontset = {
    choices = {
      windows,
      mac,
      ubuntu,
      fandol,
      none,
    },
    default = none,
  },
  system = {
    choices = {
      mac,
      unix,
      windows,
      auto,
    },
    default = auto,
  },
  font = {
    choices = {
      times,
      termes,
      xits,
      libertinus,
      lm,
      auto,
      none,
    },
    default = auto,
  },
  cjk-font = {
    name = cjk@font,
    choices = {
      windows,
      mac,
      noto,
      fandol,
      auto,
      none,
    },
    default = auto,
  },
  math-font = {
    name = math@font,
    choices = {
      xits,
      stix,
      libertinus,
      lm,
      none,
    },
    default = xits,
  },
  math-style = {
    name = math@style,
    choices = {
      GB,
      ISO,
      TeX,
    },
    default = GB,
  },
}
%    \end{macrocode}
%
%
% å®šä¹‰å…³é”®å­—
%    \begin{macrocode}
\newcommand\hit@tokens@keywords{}
\ProcessOptions\relax
%    \end{macrocode}
% 
% 
% 
% \subsection{è£…è½½å®åŒ…}
% \label{sec:loadpackage}
%
% è®¾ç½®é»˜è®¤ \option{openany}ã€‚
%    \begin{macrocode}
\DeclareBoolOption[false]{openright}
\DeclareComplementaryOption{openany}{openright}
%    \end{macrocode}
%
% \option{raggedbottom} é€‰é¡¹ï¼ˆé»˜è®¤æ‰“å¼€ï¼‰
%    \begin{macrocode}
\DeclareBoolOption[true]{raggedbottom}
%    \end{macrocode}
% å°†é€‰é¡¹ä¼&nbsp;é€’ç»™ \pkg{ctexbook}ã€‚
%    \begin{macrocode}
\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}}
%    \end{macrocode}
%
% è§£æžç”¨æˆ·ä¼&nbsp;é€’è¿‡æ¥çš„é€‰é¡¹ï¼Œå¹¶åŠ&nbsp;è½½ \pkg{ctexbook}ã€‚
%    \begin{macrocode}
\ProcessKeyvalOptions*
%    \end{macrocode}
%
% è®¾ç½®é»˜è®¤ \option{openany}ã€‚
%    \begin{macrocode}
\ifhit@openright
  \PassOptionsToClass{openright}{book}
\else
  \PassOptionsToClass{openany}{book}
\fi
%    \end{macrocode}
%
% ä½¿ç”¨ \pkg{ctexbook} å®åŒ…ï¼Œä¼˜äºŽè°ƒç”¨ \pkg{ctex} å®åŒ…
%    \begin{macrocode}
\PassOptionsToPackage{quiet}{fontspec}
\LoadClass[a4paper,UTF8,zihao=-4,scheme=plain,fontset=none]{ctexbook}[2017/04/01]
%    \end{macrocode}
%
% å¼•ç”¨å®åŒ…å’Œç›¸å…³å®šä¹‰
%    \begin{macrocode}
\RequirePackage{etoolbox}
\RequirePackage{filehook}
\RequirePackage{xparse}
%    \end{macrocode}
%
% è®¾ç½®é¡µé¢å¸ƒå±€
%    \begin{macrocode}
\RequirePackage{geometry}
\geometry{
  paper          = a4paper,  % 210 * 297mm
  marginparwidth = 2cm,
  marginparsep   = 0.5cm,
}
\newcommand\hit@set@geometry{%
  \geometry{
    margin     = 3cm,
    headheight = 0.5cm,
    headsep    = 0.3cm,
    footskip   = 0.8cm,
  }%
}
\hit@set@geometry
%    \end{macrocode}
%
% åˆ©ç”¨ \pkg{fancyhdr} è®¾ç½®é¡µçœ‰é¡µè„šã€‚
%    \begin{macrocode}
\RequirePackage{fancyhdr}
%    \end{macrocode}
%
% è®¾ç½®ç›®å½•
%    \begin{macrocode}
\RequirePackage{titletoc}
%    \end{macrocode}
%
% åˆ©ç”¨ \pkg{notoccite} é¿å…ç›®å½•ä¸­å¼•ç”¨ç¼–å·æ··ä¹±ã€‚
%    \begin{macrocode}
\RequirePackage{notoccite}
%    \end{macrocode}
%
%
% æ•°å­¦å®åŒ…ï¼Œ\AmSTeX\ å®åŒ…ï¼Œç”¨æ¥æŽ’å…¬å¼ã€‚
%    \begin{macrocode}
\RequirePackage{amsmath}
%    \end{macrocode}
%
% ä½¿ç”¨ \pkg{unicode-math} å¤„ç†æ•°å­¦å­—ä½“ã€‚
%    \begin{macrocode}
\RequirePackage{unicode-math}
%    \end{macrocode}
%
% æ”¯æŒtikzç”»å›¾
%    \begin{macrocode}
\RequirePackage{tikz}
%    \end{macrocode}
%
% \pkg{pdfpages} å®åŒ…ä¾¿äºŽæ’å…¥ PDF æ–‡æ¡£ã€‚
%    \begin{macrocode}
\RequirePackage{pdfpages}
\includepdfset{fitpaper=true}
%    \end{macrocode}
%
% è®¾ç½®é¢œè‰²
%    \begin{macrocode}
\RequirePackage{xcolor}
%    \end{macrocode}
%
% æ”¯æŒæ’å…¥å›¾ç‰‡
%    \begin{macrocode}
\RequirePackage{graphicx}
%    \end{macrocode}
%
% å¹¶æŽ’å›¾å½¢ã€‚\pkg{subfigure}ã€\pkg{subfig} å·²ç»ä¸å†æŽ¨èï¼Œç”¨æ–°çš„ \pkg{subcaption}ã€‚
% æµ®åŠ¨å›¾å½¢å’Œè¡¨æ&nbsp;¼æ&nbsp;‡é¢˜æ&nbsp;·å¼ã€‚\pkg{caption2} å·²ç»ä¸æŽ¨èä½¿ç”¨ï¼Œé‡‡ç”¨æ–°çš„ \pkg{caption}ã€‚
%    \begin{macrocode}
\RequirePackage[labelformat=simple]{subcaption}
%    \end{macrocode}
%
%	æ”¯æŒæ–‡ç«&nbsp;å†…éƒ¨å¼•ç”¨
%    \begin{macrocode}
\RequirePackage{hyperref}
%    \end{macrocode}
%
%	æ”¯æŒæ·»åŠ&nbsp;è¡¨æ&nbsp;¼
%    \begin{macrocode}
\RequirePackage{array}
%    \end{macrocode}
%
%	æ”¯æŒè¡¨æ&nbsp;¼è·¨é¡µæ˜¾ç¤ºï¼Œbooktabs æä¾›äº† \cs{toprule} ç­‰å‘½ä»¤.
%    \begin{macrocode}
\RequirePackage{longtable}
\RequirePackage{booktabs}
%    \end{macrocode}
%
%	multirow æ”¯æŒåœ¨è¡¨æ&nbsp;¼ä¸­è·¨è¡Œ
%    \begin{macrocode}
\RequirePackage{multirow}
%    \end{macrocode}
%
%	æ”¯æŒè¡¨æ&nbsp;¼è¿‡é•¿è·¨é¡µæ˜¾ç¤º
%    \begin{macrocode}
\RequirePackage{threeparttable}
%    \end{macrocode}
%
%	è°ƒæ•´é—´éš”, è®©è¡¨æ&nbsp;¼æ›´å¥½çœ‹äº›
%    \begin{macrocode}
\RequirePackage{bigstrut}
%    \end{macrocode}
%
%	åœ¨è·¨è¡Œè¡¨æ&nbsp;¼ä¸­è¾“å…¥å®šç•Œç¬¦
%    \begin{macrocode}
\RequirePackage{bigdelim}
%    \end{macrocode}
%
%	è®¾ç½®ä»£ç&nbsp;çŽ¯å¢ƒ
%    \begin{macrocode}
\RequirePackage{listings}
%    \end{macrocode}
%
%	æ”¯æŒä»£ç&nbsp;æ&nbsp;¹æ®è¯­è¨€ç±»åž‹é«˜äº®
%    \begin{macrocode}
\RequirePackage{xcolor}
%    \end{macrocode}
%
%	æ”¯æŒurlå¼•ç”¨
%    \begin{macrocode}
\RequirePackage{url}
%    \end{macrocode}
%
%
% \subsubsection{\pkg{algorithm} å®åŒ…}
%
% ä½¿ \env{algorithm} å’Œ \env{listing} çŽ¯å¢ƒçš„åç§°éšè¯­è¨€è®¾ç½®è€Œæ”¹å˜ï¼Œ
% å¹¶ä½¿å…¶åœ¨é™„å½•ä¸­çš„ç¼–å·è§„åˆ™ä¸Žå›¾ã€è¡¨ç­‰ä¸€è‡´ã€‚
%
% \begin{macro}{\listofalgorithm}
% \begin{macro}{\listofalgorithm*}
%    \begin{macrocode}
\PassOptionsToPackage{chapter}{algorithm}
\AtEndOfPackageFile*{algorithm}{
  \floatname{algorithm}{\thu@algorithm@name}
  \renewcommand\listofalgorithms{%
    \hit@listof{algorithm}%
  }
  \renewcommand\listalgorithmname{\hit@list@algorithm@name}
  \def\ext@algorithm{loa}
  \contentsuse{algorithm}{loa}
  \titlecontents{algorithm}
    [\z@]{}
    {\contentspush{\fname@algorithm~\thecontentslabel\quad}}{}
    {\hit@leaders\thecontentspage}
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%
% \subsubsection{\pkg{algorithm2e} å®åŒ…}
%
%    \begin{macrocode}
\PassOptionsToPackage{algochapter}{algorithm2e}
\AtEndOfPackageFile*{algorithm2e}{
  \renewcommand\algorithmcfname{\hit@algorithm@name}
  \SetAlgoCaptionLayout{thu@caption@font}
  \SetAlCapSty{relax}
  \SetAlgoCaptionSeparator{\hspace*{1em}}
  \SetAlFnt{\fontsize{11bp}{14.3bp}\selectfont}
  \renewcommand\listofalgorithms{%
    \hit@listof{algorithmcf}%
  }
  \renewcommand\listalgorithmcfname{\hit@list@algorithm@name}
  \def\ext@algorithmcf{loa}
  \contentsuse{algocf}{loa}
  \titlecontents{algocf}
    [\z@]{}
    {\contentspush{\algorithmcfname~\thecontentslabel\quad}}{}
    {\hit@leaders\thecontentspage}
}
%    \end{macrocode}
%
% \subsubsection{\pkg{minted} å®åŒ…}
%
%    \begin{macrocode}
\AtEndOfPackageFile*{minted}{
  \newcommand\hit@set@listing@language{%
    \floatname{listing}{ä»£ç&nbsp;}%
  }
  \hit@set@listing@language
}
%    \end{macrocode}
%
%
%
% å¦‚æžœç”¨æˆ·åœ¨å¯¼è¨€åŒºæœªè°ƒç”¨ \pkg{biblatex}ï¼Œåˆ™è‡ªåŠ¨è°ƒç”¨ \pkg{natbib}ã€‚
%    \begin{macrocode}
\AtEndPreamble{
  \@ifpackageloaded{biblatex}{}{
    \@ifpackageloaded{apacite}{}{
      \RequirePackage{natbib}
    }
  }
}
\AtEndOfPackageFile*{natbib}{
  \@ifpackageloaded{apacite}{}{
    \RequirePackage{bibunits}
  }
}
%    \end{macrocode}
%
% å¯¹å†²çªçš„å®åŒ…æŠ¥é”™ã€‚
%    \begin{macrocode}
\newcommand\hit@package@conflict[2]{
  \AtBeginOfPackageFile*{#2}{
    \hit@error{The "#2" package is incompatible with required "#1"}
  }
}
\hit@package@conflict{unicode-math}{amscd}
\hit@package@conflict{unicode-math}{amsfonts}
\hit@package@conflict{unicode-math}{amssymb}
\hit@package@conflict{unicode-math}{bbm}
\hit@package@conflict{unicode-math}{bm}
\hit@package@conflict{unicode-math}{eucal}
\hit@package@conflict{unicode-math}{eufrak}
\hit@package@conflict{unicode-math}{mathrsfs}
%    \end{macrocode}
%
%	æ”¯æŒæ–‡ä¸­å¼•ç”¨
%    \begin{macrocode}
\RequirePackage{cite}
%    \end{macrocode}
%
%	æ’å…¥ä»£ç&nbsp;ï¼Œè¿›è¡Œè®¾ç½®
%    \begin{macrocode}
\RequirePackage{listings}
\lstset{
    numbers=left, %è®¾ç½®è¡Œå·ä½ç½®
    numberstyle=\tiny, %è®¾ç½®è¡Œå·å¤§å°
    keywordstyle=\color{blue}, %è®¾ç½®å…³é”®å­—é¢œè‰²
    commentstyle=\color[cmyk]{1,0,1,0}, %è®¾ç½®æ³¨é‡Šé¢œè‰²
    frame=single, %è®¾ç½®è¾¹æ¡†æ&nbsp;¼å¼
    escapeinside=``, %é€ƒé€¸å­—ç¬¦(1å·¦é¢çš„é”®)ï¼Œç”¨äºŽæ˜¾ç¤ºä¸­æ–‡
    breaklines, %è‡ªåŠ¨æŠ˜è¡Œ
    extendedchars=false, %è§£å†³ä»£ç&nbsp;è·¨é¡µæ—¶ï¼Œç«&nbsp;èŠ‚æ&nbsp;‡é¢˜ï¼Œé¡µçœ‰ç­‰æ±‰å­—ä¸æ˜¾ç¤ºçš„é—®é¢˜
    xleftmargin=2em,
    xrightmargin=2em,
    aboveskip=1em, %è®¾ç½®è¾¹è·
    tabsize=4, %è®¾ç½®tabç©ºæ&nbsp;¼æ•°
    showspaces=false, %ä¸æ˜¾ç¤ºç©ºæ&nbsp;¼
    belowskip=3mm,
    showstringspaces=false,columns=flexible,
    framerule=1pt,
    rulecolor=\color{gray!35},
    backgroundcolor=\color{gray!5},
    basicstyle={\small\ttfamily},
    stringstyle=\color{mauve},
    breakatwhitespace=true
}
%    \end{macrocode}
%
%	é‡å®šä¹‰é¢œè‰²
%    \begin{macrocode}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
%    \end{macrocode}
%	å®šä¹‰é¦–è¡Œç¼©è¿›	
%    \begin{macrocode}
\RequirePackage{indentfirst}
%    \end{macrocode}
%	è®¾ç½®æµ®åŠ¨ä½“æ&nbsp;‡é¢˜
%    \begin{macrocode}
\RequirePackage{caption}
%    \end{macrocode}
%	è®¾ç½®åˆ—è¡¨çŽ¯å¢ƒ
%    \begin{macrocode}
\RequirePackage[shortlabels]{enumitem}
\RequirePackage{environ}
%    \end{macrocode}
%
% ç¦æ­¢ \LaTeX{} è‡ªåŠ¨è°ƒæ•´å¤šä½™çš„é¡µé¢åº•éƒ¨ç©ºç™½ï¼Œå¹¶ä¿æŒè„šæ³¨ä»ç„¶åœ¨åº•éƒ¨ã€‚
% è„šæ³¨æŒ‰é¡µç¼–å·ã€‚
%    \begin{macrocode}
\ifhit@raggedbottom
  \RequirePackage[bottom,perpage,hang]{footmisc}
  \raggedbottom
\else
  \RequirePackage[perpage,hang]{footmisc}
\fi
%    \end{macrocode}
%
% åˆ©ç”¨ \pkg{xeCJKfntef} å®žçŽ°æ±‰å­—çš„ä¸‹åˆ’çº¿å’Œç›’å­å†…ä¸¤æ®µå¯¹é½ï¼Œå¹¶å¯ä»¥é¿å…
% \cs{makebox}\oarg{width}\oarg{s} å¯èƒ½äº§ç”Ÿçš„ underful boxesã€‚
%    \begin{macrocode}
\RequirePackage{xeCJKfntef}
\RequirePackage{soul}
%    \end{macrocode}
%
%	ä¸‹åˆ’çº¿
%    \begin{macrocode}
\RequirePackage{ulem}
%
%    \end{macrocode}
%	å°ºå¯¸è®¡ç®—
%    \begin{macrocode}
\RequirePackage{calc}
%    \end{macrocode}
%	æ”¯æŒæ’å…¥é™„å½•
%    \begin{macrocode}
\RequirePackage[titletoc,title]{appendix}
\AtBeginEnvironment{thebibliography}{%
    \phantomsection
    \addcontentsline{toc}{section}{\refname}
    }
%    \end{macrocode}
%
%	ä¿®æ”¹tabular çŽ¯å¢ƒ, è®¾ç½®è¡¨æ&nbsp;¼ä¸­çš„è¡Œé—´è·ä¸ºæ­£æ–‡è¡Œé—´è·.
%    \begin{macrocode}
\let\hitreport@oldtabular\tabular
\let\hitreport@endoldtabular\endtabular
\renewenvironment{tabular}%
	{\bgroup%
	\renewcommand{\arraystretch}{1.2}%
	\hitreport@oldtabular}%
	{\hitreport@endoldtabular\egroup}
%    \end{macrocode}
%	æ®µé¦–ç¼©è¿›ä¸¤ä¸ªæ±‰å­—
%    \begin{macrocode}
\setlength\parindent{2em}
%    \end{macrocode}
%
% \subsection{ä¸»æ–‡æ¡£æ&nbsp;¼å¼}
% \label{sec:mainbody}
%
% \subsubsection{Three matters}
% \begin{macro}{\cleardoublepage}
% å¯¹äºŽ \textsl{openright} é€‰é¡¹ï¼Œå¿…é¡»ä¿è¯ç«&nbsp;é¦–é¡µå³å¼€ï¼Œä¸”å¦‚æžœå‰ç«&nbsp;æœ«é¡µæ—&nbsp;å†…å®¹é¡»
% æ¸…ç©ºå…¶é¡µçœ‰é¡µè„šã€‚
%    \begin{macrocode}
\def\cleardoublepage{%
  \clearpage
  \if@twoside
    \ifodd\c@page
    \fi
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\frontmatter}
% \begin{macro}{\mainmatter}
% \begin{macro}{\backmatter}
% æˆ‘ä»¬çš„å•é¢å’ŒåŒé¢æ¨¡å¼ä¸Žå¸¸è§„çš„ä¸å¤ªä¸€æ&nbsp;·ã€‚
%    \begin{macrocode}
\renewcommand\frontmatter{%
  \cleardoublepage
  \@mainmatterfalse
  \pagenumbering{Roman}%
}
\renewcommand\mainmatter{%
  \cleardoublepage
  \@mainmattertrue
  \pagenumbering{arabic}%
}
\renewcommand\backmatter{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \@mainmatterfalse
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \subsubsection{å­—ä½“}
% \label{sec:font}
% ä½¿ç”¨ \pkg{fontspec} é…ç½®å­—ä½“ã€‚
%    \begin{macrocode}
\ifhit@fontset@mac
  \hitsetup{
    font     = times,
    cjk-font = mac,
  }
\else
  \ifhit@fontset@windows
    \hitsetup{
      font     = times,
      cjk-font = windows,
    }
  \else
    \ifhit@fontset@fandol
      \hitsetup{
        font     = termes,
        cjk-font = fandol,
      }
    \else
      \ifhit@fontset@ubuntu
        \hitsetup{
          font     = termes,
          cjk-font = noto,
        }
      \fi
    \fi
  \fi
\fi
%    \end{macrocode}
%
% æ£€æµ‹ç³»ç»Ÿ
%    \begin{macrocode}
\ifhit@system@auto
  \IfFileExists{/System/Library/Fonts/Menlo.ttc}{
    \hitsetup{system = mac}
  }{
    \IfFileExists{/dev/null}{
      \IfFileExists{null:}{
        \hitsetup{system = windows}
      }{
        \hitsetup{system = unix}
      }
    }{
      \hitsetup{system = windows}
    }
  }
\fi
%    \end{macrocode}
%
% XITS å­—ä½“äºŽ 2018-10-03 æ›´æ”¹äº†å­—ä½“çš„æ–‡ä»¶åï¼Œæ‰€ä»¥éœ€è¦åˆ¤æ–­ã€‚
% åŽŸæ–‡ä»¶åä¸º \file{xits-regular.otf}ã€\file{xits-math.otf} ç­‰ï¼Œ
% åŽæ”¹ä¸º \file{XITS-Regular.otf}ã€\file{XITSMath-Regular.otf} ç­‰ã€‚
%
% Libertinus å­—ä½“åŒæ&nbsp;·ã€‚
%    \begin{macrocode}
\let\hit@font@family@xits\@empty
\newcommand\hit@set@xits@names{%
  \ifx\hit@font@family@xits\@empty
    \IfFontExistsTF{XITSMath-Regular.otf}{%
      \gdef\hit@font@family@xits{XITS}%
      \gdef\hit@font@style@xits@rm{Regular}%
      \gdef\hit@font@style@xits@bf{Bold}%
      \gdef\hit@font@style@xits@it{Italic}%
      \gdef\hit@font@style@xits@bfit{BoldItalic}%
      \gdef\hit@font@name@xits@math@rm{XITSMath-Regular}%
      \gdef\hit@font@name@xits@math@bf{XITSMath-Bold}%
    }{%
      \gdef\hit@font@family@xits{xits}%
      \gdef\hit@font@style@xits@rm{regular}%
      \gdef\hit@font@style@xits@bf{bold}%
      \gdef\hit@font@style@xits@it{italic}%
      \gdef\hit@font@style@xits@bfit{bolditalic}%
      \gdef\hit@font@name@xits@math@rm{xits-math}%
      \gdef\hit@font@name@xits@math@bf{xits-mathbold}%
    }%
  \fi
}
\let\hit@font@family@libertinus\@empty
\newcommand\hit@set@libertinus@names{%
  \ifx\hit@font@family@libertinus\@empty
    \IfFontExistsTF{LibertinusSerif-Regular.otf}{%
      \gdef\hit@font@family@libertinus@serif{LibertinusSerif}%
      \gdef\hit@font@family@libertinus@sans{LibertinusSans}%
      \gdef\hit@font@name@libertinus@math{LibertinusMath-Regular}%
      \gdef\hit@font@style@libertinus@rm{Regular}%
      \gdef\hit@font@style@libertinus@bf{Bold}%
      \gdef\hit@font@style@libertinus@it{Italic}%
      \gdef\hit@font@style@libertinus@bfit{BoldItalic}%
    }{%
      \gdef\hit@font@family@libertinus@serif{libertinusserif}%
      \gdef\hit@font@family@libertinus@sans{libertinussans}%
      \gdef\hit@font@name@libertinus@math{libertinusmath-regular}%
      \gdef\hit@font@style@libertinus@rm{regular}%
      \gdef\hit@font@style@libertinus@bf{bold}%
      \gdef\hit@font@style@libertinus@it{italic}%
      \gdef\hit@font@style@libertinus@bfit{bolditalic}%
    }%
  \fi
}
%    \end{macrocode}
%
% ä¸€èˆ¬çš„æŠ¥å‘Šè¦æ±‚è¥¿æ–‡å­—ä½“ä½¿ç”¨ Times New Roman å’Œ Arialï¼Œ
% ä½†æ˜¯åœ¨ Linux ä¸‹æ²¡æœ‰è¿™ä¸¤ä¸ªå­—ä½“ï¼Œæ‰€ä»¥ä½¿ç”¨å®ƒä»¬çš„å…‹éš†ç‰ˆ TeX Gyre Termes å’Œ
% TeX Gyre Herosã€‚
%    \begin{macrocode}
\ifhit@font@auto
  \ifhit@system@unix
    \hitsetup{font=termes}
  \else
    \hitsetup{font=times}
  \fi
\fi
\newcommand\hit@load@font@times{%
  \setmainfont{Times New Roman}%
  \setsansfont{Arial}%
  \ifhit@system@mac
    \setmonofont{Menlo}[Scale = MatchLowercase]%
  \else
    \setmonofont{Courier New}[Scale = MatchLowercase]%
  \fi
}
\newcommand\hit@load@font@termes{%
  \setmainfont{texgyretermes}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-italic,
    BoldItalicFont = *-bolditalic,
  ]%
  \hit@load@texgyre@sans@mono
}
\newcommand\hit@load@texgyre@sans@mono{%
  \setsansfont{texgyreheros}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-italic,
    BoldItalicFont = *-bolditalic,
  ]%
  \setmonofont{texgyrecursor}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-italic,
    BoldItalicFont = *-bolditalic,
    Ligatures      = CommonOff,
  ]%
}
\newcommand\hit@load@font@xits{%
  \hit@set@xits@names
  \setmainfont{\hit@font@family@xits}[
    Extension      = .otf,
    UprightFont    = *-\hit@font@style@xits@rm,
    BoldFont       = *-\hit@font@style@xits@bf,
    ItalicFont     = *-\hit@font@style@xits@it,
    BoldItalicFont = *-\hit@font@style@xits@bfit,
  ]%
  \hit@load@texgyre@sans@mono
}
\newcommand\hit@load@font@libertinus{%
  \hit@set@libertinus@names
  \setmainfont{\hit@font@family@libertinus@serif}[
    Extension      = .otf,
    UprightFont    = *-\hit@font@style@libertinus@rm,
    BoldFont       = *-\hit@font@style@libertinus@bf,
    ItalicFont     = *-\hit@font@style@libertinus@it,
    BoldItalicFont = *-\hit@font@style@libertinus@bfit,
  ]%
  \setsansfont{\hit@font@family@libertinus@sans}[
    Extension      = .otf,
    UprightFont    = *-\hit@font@style@libertinus@rm,
    BoldFont       = *-\hit@font@style@libertinus@bf,
    ItalicFont     = *-\hit@font@style@libertinus@it,
  ]%
  \setmonofont{lmmonolt10}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-oblique,
    BoldItalicFont = *-boldoblique,
  ]%
}
\@namedef{hit@load@font@lm}{%
  \setmainfont{lmroman10}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-italic,
    BoldItalicFont = *-bolditalic,
  ]%
  \setsansfont{lmsans10}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-oblique,
    BoldItalicFont = *-boldoblique,
  ]%
  \setmonofont{lmmonolt10}[
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-oblique,
    BoldItalicFont = *-boldoblique,
  ]%
}
\newcommand\hit@load@font{%
  \@nameuse{hit@load@font@\hit@font}%
}
\hit@load@font
\hit@option@hook{font}{\hit@load@font}
%    \end{macrocode}
%
% ä½¿ç”¨ \pkg{unicode-math} é…ç½®æ•°å­¦ç¬¦å·æ&nbsp;¼å¼ã€‚
%    \begin{macrocode}
\newcommand\hit@stix@stylistic@set{%
  \ifhit@math@style@TeX\else
    8
  \fi
}
\newcommand\hit@set@math@style{%
  \ifhit@math@style@TeX
    \unimathsetup{
      math-style = TeX,
      bold-style = TeX,
      partial    = italic,
    }%
  \else
    \unimathsetup{
      math-style = ISO,
      bold-style = ISO,
      partial    = upright,
    }%
  \fi
  \ifhit@math@style@GB
    \protected\def\le{\leqslant}%
    \protected\def\ge{\geqslant}%
    \DeclareRobustCommand\mathellipsis{\mathinner{\unicodecdots}}%
  \else
    \protected\def\le{\leq}%
    \protected\def\ge{\geq}%
    \DeclareRobustCommand\mathellipsis{\mathinner{\unicodeellipsis}}%
  \fi
}
\hitsetup{math-style=GB}%
\hit@set@math@style
\hit@option@hook{math-style}{\hit@set@math@style}
%    \end{macrocode}
%
%    \begin{macrocode}
\newcommand\hit@load@math@font@xits{%
  \hit@set@xits@names
  \setmathfont{\hit@font@name@xits@math@rm}[
    Extension    = .otf,
    StylisticSet = \hit@stix@stylistic@set,
  ]%
  \setmathfont{\hit@font@name@xits@math@rm}[
    Extension    = .otf,
    StylisticSet = 1,
    range        = {cal,bfcal},
  ]%
}
\newcommand\hit@load@math@font@stix{%
  \setmathfont{STIX2Math}[
    Extension    = .otf,
    StylisticSet = \hit@stix@stylistic@set,
  ]%
  \setmathfont{STIX2Math}[
    Extension    = .otf,
    StylisticSet = 1,
    range        = {cal,bfcal},
  ]%
}
\newcommand\hit@load@math@font@libertinus{%
  \hit@set@libertinus@names
  \setmathfont{\hit@font@name@libertinus@math .otf}%
}
\newcommand\hit@load@math@font@lm{%
  \setmathfont{latinmodern-math.otf}%
}
\newcommand\hit@load@math@font{%
  \@nameuse{hit@load@math@font@\hit@math@font}
}
\hit@load@math@font
\hit@option@hook{math-font}{\hit@load@math@font}
\hit@option@hook{math-style}{\hit@load@math@font}
%    \end{macrocode}
%
%
% ä¸­æ–‡å­—ä½“
%    \begin{macrocode}
\ifhit@cjk@font@auto
  \ifhit@system@mac
    \hitsetup{cjk-font = mac}
  \else
    \ifhit@system@windows
      \hitsetup{cjk-font = windows}
    \else
      \IfFontExistsTF{Noto Serif CJK SC}{
        \hitsetup{cjk-font = noto}
      }{
        \hitsetup{cjk-font = fandol}
      }
    \fi
  \fi
\fi
\newcommand\hit@load@cjk@font@windows{%
  \xeCJKsetup{EmboldenFactor=3}%
  \setCJKmainfont{SimSun}[
    AutoFakeBold = true,
    ItalicFont   = KaiTi,
  ]%
  \setCJKsansfont{SimHei}[AutoFakeBold]%
  \setCJKmonofont{FangSong}%
  \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold]%
  \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold]%
  \setCJKfamilyfont{zhkai}{KaiTi}%
  \setCJKfamilyfont{zhfs}{FangSong}%
  \setCJKfamilyfont{hwxk}{STXingkai}%
}
\newcommand\hit@load@cjk@font@mac{%
  \setCJKmainfont{Songti SC}[
    UprightFont    = * Light,
    BoldFont       = * Bold,
    ItalicFont     = Kaiti SC,
    BoldItalicFont = Kaiti SC Bold,
  ]%
  \setCJKsansfont{Heiti SC}[BoldFont=* Medium]%
  \setCJKmonofont{STFangsong}
  \setCJKfamilyfont{zhsong}{Songti SC}[
    UprightFont = * Light,
      BoldFont  = * Bold,
  ]%
  \setCJKfamilyfont{zhhei}{Heiti SC}[
    UprightFont = * Light,
    BoldFont    = * Medium,
  ]%
  \setCJKfamilyfont{zhfs}{STFangsong}%
  \setCJKfamilyfont{hwxk}{STXingkai}%
  \setCJKfamilyfont{zhkai}{Kaiti SC}[BoldFont = * Bold]%
  \setCJKfamilyfont{zhli}{Baoli SC}%
  \setCJKfamilyfont{zhyuan}{Yuanyi SC}[
    UprightFont = * Light,
    BoldFont    = * Bold,
  ]%
}
%    \end{macrocode}
%
% æ³¨æ„ Noto CJK çš„ regular å­—é‡åå­—ä¸å¸¦â€œRegularâ€ã€‚
%    \begin{macrocode}
\newcommand\hit@load@cjk@font@noto{%
  \setCJKmainfont{Noto Serif CJK SC}[
    UprightFont    = * Light,
    BoldFont       = * Bold,
    ItalicFont     = FandolKai-Regular,
    ItalicFeatures = {Extension = .otf},
  ]%
  \setCJKsansfont{Noto Sans CJK SC}[
    BoldFont    = * Medium,
  ]%
  \setCJKmonofont{Noto Sans Mono CJK SC}%
  \setCJKfamilyfont{zhsong}{Noto Serif CJK SC}[
    UprightFont = * Light,
    UprightFont = * Bold,
  ]%
  \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[
    BoldFont    = * Medium,
  ]%
  \setCJKfamilyfont{zhfs}{FandolFang}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
  \setCJKfamilyfont{zhkai}{FandolKai}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
  \setCJKfamilyfont{hwxk}{STXingkai}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
}
\newcommand\hit@load@cjk@font@fandol{%
  \setCJKmainfont{FandolSong}[
    Extension   = .otf,
    UprightFont = *-Regular,
    BoldFont    = *-Bold,
    ItalicFont  = FandolKai-Regular,
  ]%
  \setCJKsansfont{FandolHei}[
    Extension   = .otf,
    UprightFont = *-Regular,
    BoldFont    = *-Bold,
  ]%
  \setCJKmonofont{FandolFang}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
  \setCJKfamilyfont{zhsong}{FandolSong}[
    Extension   = .otf,
    UprightFont = *-Regular,
    BoldFont    = *-Bold,
  ]%
  \setCJKfamilyfont{zhhei}{FandolHei}[
    Extension   = .otf,
    UprightFont = *-Regular,
    BoldFont    = *-Bold,
  ]%
  \setCJKfamilyfont{zhfs}{FandolFang}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
  \setCJKfamilyfont{zhkai}{FandolKai}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
  \setCJKfamilyfont{hwxk}{FandolKai}[
    Extension   = .otf,
    UprightFont = *-Regular,
  ]%
}
\ifhit@cjk@font@none\else
  \providecommand\songti{\CJKfamily{zhsong}}
  \providecommand\heiti{\CJKfamily{zhhei}}
  \providecommand\fangsong{\CJKfamily{zhfs}}
  \providecommand\kaishu{\CJKfamily{zhkai}}
  \providecommand\huawenxingkai{\CJKfamily{hwxk}}
\fi
\newcommand\hit@load@cjk@font{%
  \@nameuse{hit@load@cjk@font@\hit@cjk@font}%
}
\hit@load@cjk@font
\hit@option@hook{cjk-font}{\hit@load@cjk@font}
%    \end{macrocode}
%
% \begin{macro}{\normalsize}
% æ­£æ–‡å°å››å· (12bp) å­—ï¼Œè¡Œè·ä¸ºå›ºå®šå€¼ 20 bpã€‚
% å…¶ä»–å­—å·çš„è¡Œè·æŒ‰ç…§ç›¸åŒçš„æ¯”ä¾‹è®¾ç½®ã€‚
%
% è¡¨è¾¾å¼è¡Œçš„è¡Œè·ä¸ºå•å€è¡Œè·ï¼Œæ®µå‰ç©º 6 ç£…ï¼Œæ®µåŽç©º 6 ç£…ã€‚
%    \begin{macrocode}
\renewcommand\normalsize{%
  \@setfontsize\normalsize{12bp}{20bp}%
  \abovedisplayskip 6bp%
  \abovedisplayshortskip 6bp%
  \belowdisplayskip 6bp
  \belowdisplayshortskip \abovedisplayshortskip}

\normalsize
\ifx\MakeRobust\@undefined \else
    \MakeRobust\normalsize
\fi
\DeclareRobustCommand\small{%
   \@setfontsize\small{10.5bp}{17.5bp}%
   \abovedisplayskip 6bp%
   \abovedisplayshortskip 6bp%
   \belowdisplayshortskip 6bp%
   \def\@listi{\leftmargin\leftmargini
               \topsep \z@skip
               \parsep \z@skip
               \itemsep \z@skip}%
   \belowdisplayskip \abovedisplayskip
}
\DeclareRobustCommand\footnotesize{%
   \@setfontsize\footnotesize{9bp}{15bp}%
   \abovedisplayskip 6bp%
   \abovedisplayshortskip 6bp%
   \belowdisplayshortskip 6bp%
   \def\@listi{\leftmargin\leftmargini
               \topsep \z@skip
               \parsep \z@skip
               \itemsep \z@skip}%
   \belowdisplayskip \abovedisplayskip
}
\DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize{7.5bp}{12.5bp}}
\DeclareRobustCommand\tiny{\@setfontsize\tiny{6.5bp}{10.83bp}}
\DeclareRobustCommand\large{\@setfontsize\large{15bp}{25bp}}
\DeclareRobustCommand\Large{\@setfontsize\Large{18bp}{30bp}}
\DeclareRobustCommand\LARGE{\@setfontsize\LARGE{22bp}{36.67bp}}
\DeclareRobustCommand\huge{\@setfontsize\huge{24bp}{40bp}}
\DeclareRobustCommand\Huge{\@setfontsize\Huge{26bp}{43.33bp}}
%    \end{macrocode}
% \end{macro}
%
% WORD ä¸­çš„å­—å·å¯¹åº”è¯¥å…³ç³»å¦‚ä¸‹ï¼ˆ1bp = 72.27/72 ptï¼‰:
% \begin{center}
% \begin{longtable}{llll}
% \toprule
% åˆå· &amp; 42bp &amp; 14.82mm &amp; 42.1575pt \\
% å°åˆ &amp; 36bp &amp; 12.70mm &amp; 36.135 pt \\
% ä¸€å· &amp; 26bp &amp; 9.17mm &amp; 26.0975pt \\
% å°ä¸€ &amp; 24bp &amp; 8.47mm &amp; 24.09pt \\
% äºŒå· &amp; 22bp &amp; 7.76mm &amp; 22.0825pt \\
% å°äºŒ &amp; 18bp &amp; 6.35mm &amp; 18.0675pt \\
% ä¸‰å· &amp; 16bp &amp; 5.64mm &amp; 16.06pt \\
% å°ä¸‰ &amp; 15bp &amp; 5.29mm &amp; 15.05625pt \\
% å››å· &amp; 14bp &amp; 4.94mm &amp; 14.0525pt \\
% å°å›› &amp; 12bp &amp; 4.23mm &amp; 12.045pt \\
% äº”å· &amp; 10.5bp &amp; 3.70mm &amp; 10.59375pt \\
% å°äº” &amp; 9bp &amp; 3.18mm &amp; 9.03375pt \\
% å…­å· &amp; 7.5bp &amp; 2.56mm &amp; \\
% å°å…­ &amp; 6.5bp &amp; 2.29mm &amp; \\
% ä¸ƒå· &amp; 5.5bp &amp; 1.94mm &amp; \\
% å…«å· &amp; 5bp &amp; 1.76mm &amp; \\\bottomrule
% \end{longtable}
% \end{center}
%
% \begin{macro}{\hit@def@fontsize}
% æ&nbsp;¹æ®ä¹&nbsp;æƒ¯å®šä¹‰å­—å·ã€‚ç”¨æ³•ï¼š
%
% \cs{hit@def@fontsize}\marg{å­—å·åç§°}\marg{ç£…æ•°}
%
% é¿å…äº†å­—å·é€‰æ‹©å’Œè¡Œè·çš„ç´§è€¦åˆã€‚æ‰€æœ‰å­—å·å®šä¹‰æ—¶ä¸ºå•å€è¡Œè·ï¼Œå¹¶æä¾›é€‰é¡¹æŒ‡å®šè¡Œè·å€æ•°ã€‚
%    \begin{macrocode}
\def\hit@def@fontsize#1#2{%
  \expandafter\newcommand\csname #1\endcsname[1][1.3]{%
    \fontsize{#2}{##1\dimexpr #2}\selectfont}}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\chuhao}
% \begin{macro}{\xiaochu}
% \begin{macro}{\yihao}
% \begin{macro}{\xiaoyi}
% \begin{macro}{\erhao}
% \begin{macro}{\xiaoer}
% \begin{macro}{\sanhao}
% \begin{macro}{\xiaosan}
% \begin{macro}{\sihao}
% \begin{macro}{\xiaosi}
% \begin{macro}{\wuhao}
% \begin{macro}{\xiaowu}
% \begin{macro}{\liuhao}
% \begin{macro}{\xiaoliu}
% \begin{macro}{\qihao}
% \begin{macro}{\bahao}
% ä¸€ç»„å­—å·å®šä¹‰ã€‚
%    \begin{macrocode}
\hit@def@fontsize{chuhao}{42bp}
\hit@def@fontsize{xiaochu}{36bp}
\hit@def@fontsize{yihao}{26bp}
\hit@def@fontsize{xiaoyi}{24bp}
\hit@def@fontsize{erhao}{22bp}
\hit@def@fontsize{xiaoer}{18bp}
\hit@def@fontsize{sanhao}{16bp}
\hit@def@fontsize{xiaosan}{15bp}
\hit@def@fontsize{sihao}{14bp}
\hit@def@fontsize{xiaosi}{12bp}
\hit@def@fontsize{wuhao}{10.5bp}
\hit@def@fontsize{xiaowu}{9bp}
\hit@def@fontsize{liuhao}{7.5bp}
\hit@def@fontsize{xiaoliu}{6.5bp}
\hit@def@fontsize{qihao}{5.5bp}
\hit@def@fontsize{bahao}{5bp}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \subsubsection{æ–‡ç«&nbsp;æ&nbsp;‡é¢˜è®¾ç½®}
% \label{sec:paragraphlanguage}
%
% ã€‚
%    \begin{macrocode}
\newcommand\hit@set@chapter@names{%
  \ctexset{
    chapter/name   = {ç¬¬,ç«&nbsp;},
  }%
  \def\bibname{å‚è€ƒæ–‡çŒ®}%
  \def\appendixname{é™„å½•}%
  \def\indexname{ç´¢å¼•}%
  \def\contentsname{ç›®\quad å½•}%
  \def\listfigurename{æ’å›¾ç´¢å¼•}%
  \def\listtablename{è¡¨æ&nbsp;¼ç´¢å¼•}%
  \def\hit@list@figure@table@name{æ’å›¾å’Œé™„è¡¨ç´¢å¼•}%
  \def\hit@list@algorithm@name{ç®—æ³•ç´¢å¼•}%
  \def\listequationname{å…¬å¼ç´¢å¼•}%
}
\hit@set@chapter@names
%    \end{macrocode}
%
%    \begin{macrocode}
\newcommand\hit@set@names{%
  \ctexset{
    figurename = å›¾,
    tablename  = è¡¨,
  }%
  \def\hit@algorithm@name{ç®—æ³•}%
  \def\hit@equation@name{å…¬å¼}%
  \def\hit@assumption@name{å‡è®¾}%
  \def\hit@definition@name{å®šä¹‰}%
  \def\hit@proposition@name{å‘½é¢˜}%
  \def\hit@lemma@name{å¼•ç†}%
  \def\hit@theorem@name{å®šç†}%
  \def\hit@axiom@name{å…¬ç†}%
  \def\hit@corollary@name{æŽ¨è®º}%
  \def\hit@exercise@name{ç»ƒä¹&nbsp;}%
  \def\hit@example@name{ä¾‹}%
  \def\hit@remark@name{æ³¨é‡Š}%
  \def\hit@problem@name{é—®é¢˜}%
  \def\hit@conjecture@name{çŒœæƒ³}%
  \def\hit@proof@name{è¯æ˜Ž}%
  \def\hit@theorem@separator{ï¼š}%
}
\hit@set@names
%    \end{macrocode}
%
% å¸¦åœˆæ•°å­—å’Œæ˜Ÿå·ä½¿ç”¨ä¸­æ–‡å­—ä½“ã€‚
%    \begin{macrocode}
\xeCJKDeclareCharClass{CJK}{"2460 -&gt; "2473}
\xeCJKDeclareCharClass{CJK}{"2605}
%    \end{macrocode}
%
% \newcommand\unicodechar[1]{U+#1ï¼ˆ\symbol{"#1}ï¼‰}
% ç”±äºŽ Unicode çš„ä¸€äº›æ&nbsp;‡ç‚¹ç¬¦å·æ˜¯ä¸­è¥¿æ–‡æ··ç”¨çš„ï¼š
% \unicodechar{00B7}ã€
% \unicodechar{2013}ã€
% \unicodechar{2014}ã€
% \unicodechar{2018}ã€
% \unicodechar{2019}ã€
% \unicodechar{201C}ã€
% \unicodechar{201D}ã€
% \unicodechar{2025}ã€
% \unicodechar{2026}ã€
% \unicodechar{2E3A}ï¼Œ
% æ‰€ä»¥è¦æ&nbsp;¹æ®è¯­è¨€è®¾ç½®æ­£ç¡®çš„å­—ä½“ã€‚
% \footnote{\url{https://github.com/CTeX-org/ctex-kit/issues/389}}
% æ­¤å¤–åˆ‡æ¢è¯­è¨€æ—¶ï¼Œæœ‰ä¸€éƒ¨åˆ†åç§°æ˜¯éœ€è¦è¢«é‡æ–°å®šä¹‰çš„ã€‚
%    \begin{macrocode}
\newcommand\hit@set@punctuations{%
  \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}%
  \xeCJKDeclareCharClass{FullRight}{
    "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
  }%
}
\hit@set@punctuations
%    \end{macrocode}
%
% \subsubsection{é¡µçœ‰é¡µè„š}
% \label{sec:headerfooter}
%
% \pkg{fancyhdr} å®šä¹‰é¡µçœ‰é¡µè„šå¾ˆæ–¹ä¾¿ï¼Œä½†æ˜¯æœ‰ä¸€ä¸ªéžå¸¸éšè”½çš„å‘ã€‚
% ç¬¬ä¸€æ¬¡è°ƒç”¨ \pkg{fancyhdr} å®šä¹‰çš„æ&nbsp;·å¼æ—¶ä¼šä¿®æ”¹ \cs{chaptermark}ï¼Œ
% è¿™ä¼šå¯¼è‡´é¡µçœ‰ä¿¡æ¯é”™è¯¯ï¼ˆå¤šä½™ç«&nbsp;å·å¹¶ä¸”è‹±æ–‡å¤§å†™ï¼‰ã€‚
% è¿™æ˜¯å›&nbsp;ä¸ºåœ¨ \cs{ps@fancy} ä¸­å¯¹ \cs{chaptermark} è¿›è¡Œé‡å®šä¹‰ï¼Œ
% æ‰€ä»¥æˆ‘ä»¬å…ˆè°ƒç”¨ \cs{ps@fancy}ï¼Œå†ä¿®æ”¹ \cs{chaptermark}ã€‚
%    \begin{macrocode}
\pagestyle{fancy}
%    \end{macrocode}
%
% å®šä¹‰é¡µçœ‰å’Œé¡µè„šã€‚
% é¡µçœ‰å®‹ä½“äº”å·å­—ï¼Œå±…ä¸­ä¹¦å†™ï¼›
% é¡µç&nbsp;äº”å· Times New Roman ï¼Œä½äºŽé¡µé¢åº•ç«¯ï¼Œå±…ä¸­ä¹¦å†™ã€‚
%
%    \begin{macrocode}
\fancypagestyle{plain}{%
  \fancyhf{}%
  \renewcommand\footrulewidth{0pt}%
    \renewcommand\headrulewidth{0.75bp}%
    \fancyhead[C]{%
      \wuhao
      \leftmark
      }%
    \fancyfoot[C]{\wuhao\thepage}%
    \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth{\CTEXifname{\CTEXthechapter\quad}{}##1}{}%
    }%
  \let\sectionmark\@gobble
}
\pagestyle{plain}
%    \end{macrocode}
%
% \cs{chapter} ä¼šè°ƒç”¨ç‰¹æ®Šçš„ page styleã€‚
%    \begin{macrocode}
\ctexset{chapter/pagestyle = plain}
%    \end{macrocode}
%
%
% \subsubsection{æ®µè½}
% \label{sec:paragraph}
%
% å…¨æ–‡é¦–è¡Œç¼©è¿› 2 å­—ç¬¦ï¼Œæ&nbsp;‡ç‚¹ç¬¦å·ç”¨å…¨è§’
%    \begin{macrocode}
\ctexset{%
  punct=quanjiao,
  space=auto,
}
\newcommand\hit@set@indent{%
    \ctexset{autoindent=2}%
}
\hit@set@indent
%    \end{macrocode}
%
% è®¾ç½® url æ&nbsp;·å¼ï¼Œä¸Žä¸Šä¸‹æ–‡ä¸€è‡´
%    \begin{macrocode}
\urlstyle{same}
%    \end{macrocode}
%
% ä½¿ç”¨ \pkg{xurl} çš„æ–¹æ³•ï¼Œå¢žåŠ&nbsp; URL å¯æ–­è¡Œçš„ä½ç½®ã€‚
%    \begin{macrocode}
\g@addto@macro\UrlBreaks{%
  \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9%
  \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M
  \do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z
  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l\do\m
  \do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z
}
\Urlmuskip=0mu plus 0.1mu
%    \end{macrocode}
%
% å–æ¶ˆåˆ—è¡¨çš„é—´è·ï¼Œä»¥ç¬¦åˆä¸­æ–‡ä¹&nbsp;æƒ¯ã€‚
%    \begin{macrocode}
\partopsep=\z@skip
\def\@listi{\leftmargin\leftmargini
            \parsep \z@skip
            \topsep \z@skip
            \itemsep\z@skip}
\let\@listI\@listi
\@listi
\def\@listii {\leftmargin\leftmarginii
              \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep    \z@skip
              \parsep    \z@skip
              \itemsep   \z@skip}
\def\@listiii{\leftmargin\leftmarginiii
              \labelwidth\leftmarginiii
              \advance\labelwidth-\labelsep
              \topsep    \z@skip
              \parsep    \z@skip
              \partopsep \z@skip
              \itemsep   \z@skip}
%    \end{macrocode}
%
% ä½¿ç”¨ \pkg{enumitem} å‘½ä»¤è°ƒæ•´é»˜è®¤åˆ—è¡¨çŽ¯å¢ƒé—´çš„è·ç¦»ï¼Œ
%    \begin{macrocode}
\setlist{nosep}
%    \end{macrocode}
%
%
% \subsubsection{è„šæ³¨}
% \label{sec:footnote}
% è„šæ³¨å†…å®¹é‡‡ç”¨å°äº”å·å­—ï¼Œä¸­æ–‡ç”¨å®‹ä½“ï¼Œè‹±æ–‡å’Œæ•°å­—ç”¨ Times New Roman ä½“æŒ‰ä¸¤ç«¯å¯¹é½æ&nbsp;¼å¼ä¹¦å†™ï¼Œ
% å•å€è¡Œè·ï¼Œæ®µå‰æ®µåŽå‡ç©º 0 ç£…ã€‚
% è„šæ³¨çš„åºå·æŒ‰é¡µç¼–æŽ’ï¼Œä¸åŒé¡µçš„è„šæ³¨åºå·ä¸éœ€è¦è¿žç»­ã€‚
%
% è„šæ³¨å¤„åºå·â€œ1ï¼Œâ€¦â€¦ï¼Œ10â€çš„å­—ä½“æ˜¯â€œæ­£æ–‡â€ï¼Œä¸æ˜¯â€œä¸Šæ&nbsp;‡â€ï¼Œåºå·ä¸Žè„šæ³¨å†…å®¹æ–‡å­—ä¹‹é—´ç©ºåŠä¸ªæ±‰å­—ç¬¦ï¼Œ
% è„šæ³¨çš„æ®µè½æ&nbsp;¼å¼ä¸ºï¼šå•å€è¡Œè·ï¼Œæ®µå‰ç©º 0 ç£…ï¼Œæ®µåŽç©º 0 ç£…ï¼Œæ‚¬æŒ‚ç¼©è¿› 1.5 å­—ç¬¦ï¼›
% å­—å·ä¸ºå°äº”å·å­—ï¼Œæ±‰å­—ç”¨å®‹ä½“ï¼Œå¤–æ–‡ç”¨ Times New Roman ä½“ã€‚
%
% è„šæ³¨åºå·ä½¿ç”¨å¸¦åœˆæ•°å­—ã€‚
% \begin{macro}{\hit@circled}
% ç”Ÿæˆå¸¦åœˆçš„è„šæ³¨æ•°å­—ï¼Œæœ€å¤šå¤„ç†åˆ° 10ã€‚
%    \begin{macrocode}
\newcommand\hit@circled[1]{%
  \ifnum#1 &gt;10\relax
    \hit@error{%
      Too many footnotes in this page.
      Keep footnote less than 10%
    }%
  \fi
  {\symbol{\the\numexpr#1+"245F\relax}}%
}
\renewcommand{\thefootnote}{\hit@circled{\c@footnote}}
\renewcommand{\thempfootnote}{\hit@circled{\c@mpfootnote}}
%    \end{macrocode}
% \end{macro}
%
% å®šä¹‰è„šæ³¨åˆ†å‰²çº¿ï¼Œå­—å·ï¼ˆå®‹ä½“å°äº”ï¼‰ï¼Œä»¥åŠæ‚¬æŒ‚ç¼©è¿›ï¼ˆ1.5å­—ç¬¦ï¼‰ã€‚
%    \begin{macrocode}
\def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@}
\footnotemargin=13.5bp
%    \end{macrocode}
%
% ä¿®æ”¹ \pkg{footmisc} å®šä¹‰çš„è„šæ³¨æ&nbsp;¼å¼ã€‚
%    \begin{macrocode}
\long\def\@makefntext#1{%
  \begingroup
    % åºå·å–æ¶ˆä¸Šæ&nbsp;‡
    \def\@makefnmark{\hbox{\normalfont\@thefnmark}}%
    \xiaowu
    \ifFN@hangfoot
      \bgroup
      \setbox\@tempboxa\hbox{%
        \ifdim\footnotemargin&gt;\z@
          \hb@xt@\footnotemargin{\@makefnmark\hss}%
        \else
          \@makefnmark
        \fi
      }%
      \leftmargin\wd\@tempboxa
      \rightmargin\z@
      \linewidth \columnwidth
      \advance \linewidth -\leftmargin
      \parshape \@ne \leftmargin \linewidth
      % \footnotesize
      \xiaowu
      \@setpar{{\@@par}}%
      \leavevmode
      \llap{\box\@tempboxa}%
      \parskip\hangfootparskip\relax
      \parindent\hangfootparindent\relax
    \else
      \parindent1em%
      \noindent
      \ifdim\footnotemargin&gt;\z@
        \hb@xt@ \footnotemargin{\hss\@makefnmark}%
      \else
        \ifdim\footnotemargin=\z@
          \llap{\@makefnmark}%
        \else
          \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}%
        \fi
      \fi
    \fi
    \footnotelayout#1%
    \ifFN@hangfoot
      \par\egroup
    \fi
  \endgroup
}
%    \end{macrocode}
%
%
% \subsubsection{æ‘˜è¦}
% \label{sec:abstractformat}
%	æ‘˜è¦ä¸¤ä¸ªå­—è®¾ç½®ä¸º 3 å·.
%	å®šä¹‰æ‘˜è¦çŽ¯å¢ƒ
%
% \begin{macro}{\hit@clist@use}
% ä¸åŒè®ºæ–‡æ&nbsp;¼å¼å…³é”®è¯ä¹‹é—´çš„åˆ†å‰²ä¸å¤ªç›¸åŒï¼Œæˆ‘ä»¬ç”¨ \option{keywords} 
% æ¥æ”¶é›†å…³é”®è¯åˆ—è¡¨ï¼Œç„¶åŽç”¨æœ¬å‘½ä»¤æ¥ç”Ÿæˆç¬¦åˆè¦æ±‚çš„æ&nbsp;¼å¼ï¼Œ
% ç±»ä¼¼äºŽ \LaTeX3 çš„ \cs{clist\_use:Nn}ã€‚
%    \begin{macrocode}
\hit@define@key{
  keywords,
}
\newcommand\hit@clist@use[2]{%
  \def\hit@@tmp{}%
  \def\hit@clist@processor##1{%
    \ifx\hit@@tmp\@empty
      \def\hit@@tmp{#2}%
    \else
      #2%
    \fi
    ##1%
  }%
  \expandafter\comma@parse\expandafter{#1}{\hit@clist@processor}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{environment}{abstract}
% ä¸­æ–‡æ‘˜è¦éƒ¨åˆ†çš„æ&nbsp;‡é¢˜ä¸ºâ€œ\textbf{æ‘˜è¦}â€ï¼Œç”¨é»‘ä½“ä¸‰å·å­—ã€‚
% æ‘˜è¦å†…å®¹ç”¨å°å››å·å­—ä¹¦å†™ï¼Œä¸¤ç«¯å¯¹é½ï¼Œæ±‰å­—ç”¨å®‹ä½“ï¼Œå¤–æ–‡å­—ç”¨ Times New Roman ä½“ï¼Œ
% æ&nbsp;‡ç‚¹ç¬¦å·ä¸€å¾‹ç”¨ä¸­æ–‡è¾“å…¥çŠ¶æ€ä¸‹çš„æ&nbsp;‡ç‚¹ç¬¦å·ã€‚
%    \begin{macrocode}
\newenvironment{abstract}{%
  \cleardoublepage
  \begingroup
    \hit@chapter*{\hit@abstract@name}%
  \endgroup
}{%
%    \end{macrocode}
%
% æ¯ä¸ªå…³é”®è¯ä¹‹é—´ç©ºä¸¤ä¸ªæ±‰å­—ç¬¦å®½åº¦ï¼Œ ä¸”ä¸ºæ‚¬æŒ‚ç¼©è¿›ã€‚
%    \begin{macrocode}
  \par
  \null\par
    \textbf{å…³é”®è¯ï¼š}%
  \hit@clist@use{\hit@keywords}{ï¼›}%
    \cleardoublepage
}
%    \end{macrocode}
% \end{environment}
%
% 
% \subsection{æ•°å­¦çŽ¯å¢ƒã€å®šç†è®¾ç½®}
% \label{sec:mathenv}
%
% \begin{macro}{\bm}
% \begin{macro}{\boldsymbol}
% å…¼å®¹æ—§çš„ç²—ä½“å‘½ä»¤ï¼š\pkg{bm} çš„ \cs{bm} å’Œ \pkg{amsmath} çš„ \cs{boldsymbol}ã€‚
%    \begin{macrocode}
\DeclareRobustCommand\bm[1]{{\symbf{#1}}}
\DeclareRobustCommand\boldsymbol[1]{{\symbf{#1}}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\square}
% å…¼å®¹ \pkg{amssymb} ä¸­çš„å‘½ä»¤ã€‚
%    \begin{macrocode}
\newcommand\square{\mdlgwhtsquare}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\checkmark}
% å…è®¸åœ¨æ–‡æœ¬æ¨¡å¼ä¸­ä½¿ç”¨ \cs{checkmark}ã€‚
%    \begin{macrocode}
\AtBeginDocument{%
  \renewcommand\checkmark{\ensuremath{âœ“}}%
}
%    \end{macrocode}
% \end{macro}
%
% å…è®¸å¤ªé•¿çš„å…¬å¼æ–­è¡Œã€åˆ†é¡µç­‰ã€‚
%    \begin{macrocode}
\allowdisplaybreaks[4]
%    \end{macrocode}
%
% \subsubsection{æµ®åŠ¨å¯¹è±¡ï¼šæ’å›¾å’Œè¡¨æ&nbsp;¼}
% \label{sec:float}
%
% å›¾è¡¨æµ®åŠ¨ä½“çš„é»˜è®¤ä½ç½®è®¾ä¸º |h|ã€‚
%    \begin{macrocode}
\def\fps@figure{h}
\def\fps@table{h}
%    \end{macrocode}
%
% è®¾ç½®æµ®åŠ¨å¯¹è±¡å’Œæ–‡å­—ä¹‹é—´çš„è·ç¦»
%    \begin{macrocode}
\setlength{\floatsep}{6bp}
\setlength{\textfloatsep}{6bp}
\setlength{\intextsep}{6bp}
\setlength{\@fptop}{0bp \@plus1.0fil}
\setlength{\@fpsep}{12bp \@plus2.0fil}
\setlength{\@fpbot}{0bp \@plus1.0fil}
%    \end{macrocode}
%
% ä¸‹é¢è¿™ç»„å‘½ä»¤ä½¿æµ®åŠ¨å¯¹è±¡çš„ç¼ºçœå€¼ç¨å¾®å®½æ¾ä¸€ç‚¹ï¼Œä»Žè€Œé˜²æ­¢å¹…åº¦å¯¹è±¡å&nbsp;æ®è¿‡å¤šçš„æ–‡æœ¬é¡µé¢ï¼Œ
% ä¹Ÿå¯ä»¥é˜²æ­¢åœ¨å¾ˆå¤§ç©ºç™½çš„æµ®åŠ¨é¡µä¸Šæ”¾ç½®å¾ˆå°çš„å›¾å½¢ã€‚
%    \begin{macrocode}
\renewcommand{\textfraction}{0.15}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.65}
\renewcommand{\floatpagefraction}{0.60}
%    \end{macrocode}
%
% å…è®¸ç”¨æˆ·è®¾ç½®å›¾è¡¨ç¼–å·çš„è¿žæŽ¥ç¬¦ã€‚
%    \begin{macrocode}
\hit@define@key{
  figure-number-separator = {
    name    = figure@number@separator,
    default = {.},
  },
  table-number-separator = {
    name    = table@number@separator,
    default = {.},
  },
  equation-number-separator = {
    name    = equation@number@separator,
    default = {.},
  },
  number-separator = {
    name    = number@separator,
    default = {.},
  },
}
\renewcommand\thefigure{%
  \ifnum\c@chapter&gt;\z@
    \thechapter
    \hit@figure@number@separator
  \fi
  \@arabic\c@figure
}
\renewcommand\thetable{%
  \ifnum\c@chapter&gt;\z@
    \thechapter
    \hit@table@number@separator
  \fi
  \@arabic\c@table
}
\renewcommand\theequation{%
  \ifnum\c@chapter&gt;\z@
    \thechapter
    \hit@equation@number@separator
  \fi
  \@arabic\c@equation
}
\newcommand\hit@set@number@separator{%
  \let\hit@figure@number@separator\hit@number@separator
  \let\hit@table@number@separator\hit@number@separator
  \let\hit@equation@number@separator\hit@number@separator
}
\hit@option@hook{number-separator}{\hit@set@number@separator}
%    \end{macrocode}
%
%
% å¯¹ \pkg{longtable} è·¨é¡µè¡¨æ&nbsp;¼è¿›è¡Œç›¸åŒçš„è®¾ç½®ã€‚
%    \begin{macrocode}
\AtEndOfPackageFile*{longtable}{
  \AtBeginEnvironment{longtable}{%
  \fontsize{11bp}{20.3bp}\selectfont
  }
}
%    \end{macrocode}
%
% å®šåˆ¶æµ®åŠ¨å›¾å½¢å’Œè¡¨æ&nbsp;¼æ&nbsp;‡é¢˜æ&nbsp;·å¼ï¼Œä»¥åŠæ”¹å˜é™„å½•ä¸­æµ®åŠ¨ä½“çš„ç¼–å·è§„åˆ™ï¼š
% \begin{itemize}
%   \item å›¾è¡¨æ&nbsp;‡é¢˜å­—ä½“ä¸º 11pt
%   \item åŽ»æŽ‰å›¾è¡¨å·åŽé¢çš„å†’å·ï¼Œå›¾åºä¸Žå›¾åæ–‡å­—ä¹‹é—´ç©ºä¸€ä¸ªæ±‰å­—ç¬¦å®½åº¦
%   \item å›¾ï¼šcaption åœ¨ä¸‹ï¼Œæ®µå‰ç©º 6 ç£…ï¼Œæ®µåŽç©º 12 ç£…
%   \item è¡¨ï¼šcaption åœ¨ä¸Šï¼Œæ®µå‰ç©º 12 ç£…ï¼Œæ®µåŽç©º 6 ç£…
% \end{itemize}
%    \begin{macrocode}
\DeclareCaptionFont{hit}{%
  \fontsize{11bp}{15bp}\selectfont
}
\captionsetup{
  font           = hit,
  labelsep       = quad,
  aboveskip      = 6bp,
  belowskip      = 6bp,
  figureposition = bottom,
  tableposition  = top,
}
\captionsetup[sub]{font=hit}
\renewcommand{\thesubfigure}{(\alph{subfigure})}
\renewcommand{\thesubtable}{(\alph{subtable})}
% \renewcommand{\p@subfigure}{:}
%    \end{macrocode}
%
% ç&nbsp;”ç©¶ç”Ÿå’Œæœ¬ç§‘ç”Ÿéƒ½æŽ¨èä½¿ç”¨ä¸‰çº¿è¡¨ï¼Œå¹¶ä¸”è¦æ±‚è¡¨çš„ä¸Šã€ä¸‹è¾¹çº¿ä¸ºå•ç›´çº¿ï¼Œçº¿ç²—ä¸º 1.5 ç£…ï¼›
% ç¬¬ä¸‰æ¡çº¿ä¸ºå•ç›´çº¿ï¼Œçº¿ç²—ä¸º 1 ç£…ã€‚
% è¿™é‡Œè®¾ç½® \pkg{booktabs} çº¿ç²—çš„é»˜è®¤å€¼ã€‚
%    \begin{macrocode}
\heavyrulewidth=1.5bp
\lightrulewidth=1bp
%    \end{macrocode}
%
%    \begin{macrocode}
\AtEndOfPackageFile*{threeparttable}{
  \g@addto@macro\TPT@defaults{\wuhao}
}
%    \end{macrocode}
%
% \subsubsection{ç«&nbsp;èŠ‚æ&nbsp;‡é¢˜}
% \label{sec:theor}
%    \begin{macrocode}
\newcommand{\hit@abstract@name}{æ‘˜ \quad è¦}
\newcommand{\hit@abstract@name@en}{Abstract}
%    \end{macrocode}
%
% å„çº§æ&nbsp;‡é¢˜æ&nbsp;¼å¼è®¾ç½®ã€‚
%    \begin{macrocode}
\ctexset{%
  chapter = {
    nameformat   = {},
    numberformat = {},
    titleformat  = {},
    fixskip      = true,
    afterindent  = true,
    lofskip      = 0pt,
    lotskip      = 0pt,
  },
  section = {
    afterindent  = true,
  },
  subsection = {
    afterindent  = true,
  },
  subsubsection = {
    afterindent  = true,
  },
  paragraph/afterindent = true,
  subparagraph/afterindent = true,
}
%    \end{macrocode}
%
% æœ¬æ¨¡æ¿è®¾ç½®ï¼š
% \begin{itemize}
%   \item å„ç«&nbsp;æ&nbsp;‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{ç¬¬ 1 ç«&nbsp; å¼•è¨€}â€ã€‚
%
%     ç«&nbsp;åºå·ä¸Žç«&nbsp;åä¹‹é—´ç©ºä¸€ä¸ªæ±‰å­—ç¬¦ã€‚
%     é‡‡ç”¨é»‘ä½“ä¸‰å·å­—ï¼Œå±…ä¸­ä¹¦å†™ï¼Œå•å€è¡Œè·ï¼Œ
%     æ®µå‰ç©º 24 ç£…ï¼Œæ®µåŽç©º 18 ç£…ã€‚
%
%   \item ä¸€çº§èŠ‚æ&nbsp;‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{2.1 å®žéªŒè£…ç½®ä¸Žå®žéªŒæ–¹æ³•}â€ã€‚
%
%     èŠ‚æ&nbsp;‡é¢˜åºå·ä¸Žæ&nbsp;‡é¢˜åä¹‹é—´ç©ºä¸€ä¸ªæ±‰å­—ç¬¦ï¼ˆä¸‹åŒï¼‰ã€‚
%     é‡‡ç”¨é»‘ä½“å››å·ï¼ˆ14ptï¼‰å­—å±…å·¦ä¹¦å†™ï¼Œè¡Œè·ä¸ºå›ºå®šå€¼ 20 ç£…ï¼Œ
%     æ®µå‰ç©º 24 ç£…ï¼Œæ®µåŽç©º 6 ç£…ã€‚
%
%   \item äºŒçº§èŠ‚æ&nbsp;‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{2.1.1 å®žéªŒè£…ç½®}â€ã€‚
%
%     é‡‡ç”¨é»‘ä½“ 13pt å­—å±…å·¦ä¹¦å†™ï¼Œè¡Œè·ä¸ºå›ºå®šå€¼ 20 ç£…ï¼Œ
%     æ®µå‰ç©º 12 ç£…ï¼Œæ®µåŽç©º 6 ç£…ã€‚
%
%   \item ä¸‰çº§èŠ‚æ&nbsp;‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{2.1.2.1 å½’çº³æ³•}â€ã€‚
%
%     é‡‡ç”¨é»‘ä½“å°å››å·ï¼ˆ12ptï¼‰å­—å±…å·¦ä¹¦å†™ï¼Œè¡Œè·ä¸ºå›ºå®šå€¼ 20 ç£…ï¼Œ
%     æ®µå‰ç©º 12 ç£…ï¼Œæ®µåŽç©º 6 ç£…ã€‚
% \end{itemize}
%
% è¿™é‡Œä¸‰çº§èŠ‚æ&nbsp;‡é¢˜çš„â€œä¸­æ–‡é»‘ä½“å°å››å·â€å– 13ptã€‚
%    \begin{macrocode}
\newcommand\hit@set@section@format{%
    \ctexset{%
      chapter = {
        format     = \centering\sffamily\sanhao,
        nameformat  = {},
        titleformat = {},
        beforeskip = 27bp,
        afterskip  = 27bp,
        aftername  = \quad,
      },
      section = {
        format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
        beforeskip = 24bp,
        afterskip  = 6bp,
        aftername  = \quad,
      },
      subsection = {
        format     = \sffamily\fontsize{13bp}{20bp}\selectfont,
        beforeskip = 12bp,
        afterskip  = 6bp,
        aftername  = \quad,
      },
      subsubsection = {
        format     = \sffamily\fontsize{12bp}{20bp}\selectfont,
        beforeskip = 12bp,
        afterskip  = 6bp,
        aftername  = \quad,
      },
    }%
    \ctexset{chapter/number = \thechapter}%
}
\hit@set@section@format
%    \end{macrocode}
%
% \begin{macro}{\hit@chapter*}
% æ¨¡æ¿å®šä¹‰æ‰€æœ‰çš„ç«&nbsp;éƒ½å‡ºçŽ°åœ¨ç›®å½•é‡Œï¼Œæ¯”å¦‚æ‘˜è¦ã€Abstractã€ä¸»è¦ç¬¦å·è¡¨ç­‰ã€‚
%
%    \begin{macrocode}
\newcommand\hit@pdfbookmark[2]{}
\newcommand\hit@phantomsection{}
\NewDocumentCommand\hit@chapter{s o m o}{%
  \IfBooleanF{#1}{%
    \hit@error{You have to use the star form: \string\hit@chapter*}%
  }%
  \if@openright\cleardoublepage\else\clearpage\fi%
  \IfValueTF{#2}{%
    \ifthenelse{\equal{#2}{}}{%
      \hit@pdfbookmark{0}{#3}%
    }{%
      \hit@phantomsection
      \addcontentsline{toc}{chapter}{#2}%
    }%
  }{%
    \hit@phantomsection
    \addcontentsline{toc}{chapter}{#3}%
  }%
  \ctexset{chapter/beforeskip=40bp}
  \chapter*{#3}%
  \ctexset{chapter/beforeskip=30bp}
  \IfValueTF{#4}{%
    \ifthenelse{\equal{#4}{}}{%
      \@mkboth{}{}%
    }{%
      \@mkboth{#4}{#4}%
    }%
  }{%
    \@mkboth{#3}{#3}%
  }%
}
%    \end{macrocode}
% \end{macro}
%
%
% \subsubsection{ç›®å½•}
% \label{sec:toc}
% æœ€å¤š 4 å±‚ï¼Œå³: x.x.x.xï¼Œå¯¹åº”çš„å‘½ä»¤å’Œå±‚åºå·åˆ†åˆ«æ˜¯ï¼š
% \cs{chapter}(0), \cs{section}(1), \cs{subsection}(2), \cs{subsubsection}(3)ã€‚
%    \begin{macrocode}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{2}
%    \end{macrocode}
%
% \begin{macro}{\tableofcontents}
% ç›®å½•ç”Ÿæˆå‘½ä»¤ã€‚
%    \begin{macrocode}
\renewcommand\tableofcontents{%
  \hit@chapter*[]{\contentsname}%
  \@starttoc{toc}%
}
\hit@define@key{
  toc-chapter-style = {
    name = toc@chapter@style,
    choices = {
      arial,
      times,
    },
    default = arial,
  },
}
\newcommand\hit@leaders{\titlerule*[4bp]{.}}
\newcommand\hit@set@toc@format{%
  \contentsmargin{\z@}%
%    \end{macrocode}
%
% ç›®å½•ä»Žç¬¬ 1 ç«&nbsp;å¼€å§‹ï¼Œæ¯ç«&nbsp;æ&nbsp;‡é¢˜ç”¨é»‘ä½“å°å››å·å­—ï¼Œè¡Œé—´è·ä¸º 20ptï¼Œ
% è¡Œå‰ç©º 6ptï¼Œè¡ŒåŽç©º 0ptã€‚
% å…¶å®ƒçº§èŠ‚æ&nbsp;‡é¢˜ç”¨å®‹ä½“å°å››å­—ï¼Œè¡Œé—´è·ä¸º 20ptã€‚
%
% æ³¨æ„ç¤ºä¾‹ä¸­ç«&nbsp;æ&nbsp;‡é¢˜çš„å­—æ¯å’Œæ•°å­—æ˜¯è¡¬çº¿ä½“ï¼Œæ‰€ä»¥è¿™é‡Œç”¨ \cs{heiti}ã€‚
% ç¤ºä¾‹ä¸­çš„ä¸€çº§å’ŒäºŒçº§èŠ‚æ&nbsp;‡é¢˜åˆ†åˆ«ç¼©è¿› 1 å’Œ 1.5 ä¸ªæ±‰å­—ç¬¦ã€‚
%    \begin{macrocode}
\titlecontents{chapter}
  [\z@]{\addvspace{6bp}\sffamily}
  {\contentspush{\thecontentslabel\quad}}{}
  {\rmfamily\hit@leaders\thecontentspage}%
\titlecontents{section}
  [1em]{}
  {\contentspush{\thecontentslabel\quad}}{}
  {\hit@leaders\thecontentspage}%
\titlecontents{subsection}
  [2em]{}
  {\contentspush{\thecontentslabel\quad}}{}
  {\hit@leaders\thecontentspage}%
}
%    \end{macrocode}
%
%    \begin{macrocode}
\hit@set@toc@format
%    \end{macrocode}
% \end{macro}
%
%
%
%  \subsection{å‚è€ƒæ–‡çŒ®çŽ¯å¢ƒè®¾ç½®}
%  \label{sec:bib}
%
%	é‡å®šä¹‰å‚è€ƒæ–‡çŒ®çŽ¯å¢ƒ
%    \begin{macrocode}
\renewenvironment{thebibliography}[1]
  {\section*{\refname}%
    \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
  \endlist}	
%    \end{macrocode}
%
%
% \subsection{å…¶ä»–çŽ¯å¢ƒè®¾ç½®}
% \label{sec:config}
%
% \subsubsection{\pkg{amsthm} å®åŒ…}
%
% å®šç†æ&nbsp;‡é¢˜ä½¿ç”¨é»‘ä½“ï¼Œæ­£æ–‡ä½¿ç”¨å®‹ä½“ï¼Œå†’å·éš”å¼€ã€‚
%    \begin{macrocode}
\AtEndOfPackageFile*{amsthm}{%
  \newtheoremstyle{hit}
    {\z@}{\z@}
    {\normalfont}{\z@}
    {\normalfont\sffamily}{\hit@theorem@separator}
    {0.5em}{}
  \theoremstyle{hit}
  \newtheorem{assumption}{\hit@assumption@name}[chapter]%
  \newtheorem{definition}{\hit@definition@name}[chapter]%
  \newtheorem{proposition}{\hit@proposition@name}[chapter]%
  \newtheorem{lemma}{\hit@lemma@name}[chapter]%
  \newtheorem{theorem}{\hit@theorem@name}[chapter]%
  \newtheorem{axiom}{\hit@axiom@name}[chapter]%
  \newtheorem{corollary}{\hit@corollary@name}[chapter]%
  \newtheorem{exercise}{\hit@exercise@name}[chapter]%
  \newtheorem{example}{\hit@example@name}[chapter]%
  \newtheorem{remark}{\hit@remark@name}[chapter]%
  \newtheorem{problem}{\hit@problem@name}[chapter]%
  \newtheorem{conjecture}{\hit@conjecture@name}[chapter]%
  \renewenvironment{proof}[1][\hit@proof@name]{\par
    \pushQED{\qed}%
    % \normalfont \topsep6\p@\@plus6\p@\relax
    \normalfont \topsep\z@\relax
    \trivlist
    \item[\hskip\labelsep
      %     \itshape
      % #1\@addpunct{.}]\ignorespaces
      \sffamily
      #1\@addpunct{\hit@theorem@separator}]\ignorespaces
  }{%
    \popQED\endtrivlist\@endpefalse
  }
  \renewcommand\qedsymbol{\ensuremath{\QED}}
}
%    \end{macrocode}
%
% \subsubsection{\pkg{ntheorem} å®åŒ…}
%
% å®šç†æ&nbsp;‡é¢˜ä½¿ç”¨é»‘ä½“ï¼Œæ­£æ–‡ä½¿ç”¨å®‹ä½“ï¼Œå†’å·éš”å¼€ã€‚
%    \begin{macrocode}
\AtEndOfPackageFile*{ntheorem}{%
  \theorembodyfont{\normalfont}%
  \theoremheaderfont{\normalfont\sffamily}%
  \theoremsymbol{\ensuremath{\QED}}%
  \newtheorem*{proof}{\hit@proof@name}%
  \theoremstyle{plain}%
  \theoremsymbol{}%
  \theoremseparator{\hit@theorem@separator}%
  \newtheorem{assumption}{\hit@assumption@name}[chapter]%
  \newtheorem{definition}{\hit@definition@name}[chapter]%
  \newtheorem{proposition}{\hit@proposition@name}[chapter]%
  \newtheorem{lemma}{\hit@lemma@name}[chapter]%
  \newtheorem{theorem}{\hit@theorem@name}[chapter]%
  \newtheorem{axiom}{\hit@axiom@name}[chapter]%
  \newtheorem{corollary}{\hit@corollary@name}[chapter]%
  \newtheorem{exercise}{\hit@exercise@name}[chapter]%
  \newtheorem{example}{\hit@example@name}[chapter]%
  \newtheorem{remark}{\hit@remark@name}[chapter]%
  \newtheorem{problem}{\hit@problem@name}[chapter]%
  \newtheorem{conjecture}{\hit@conjecture@name}[chapter]%
}
%    \end{macrocode}
%
% \subsubsection{\pkg{algorithm} å®åŒ…}
%
% ä½¿ \env{algorithm} å’Œ \env{listing} çŽ¯å¢ƒçš„åç§°éšè¯­è¨€è®¾ç½®è€Œæ”¹å˜ï¼Œ
% å¹¶ä½¿å…¶åœ¨é™„å½•ä¸­çš„ç¼–å·è§„åˆ™ä¸Žå›¾ã€è¡¨ç­‰ä¸€è‡´ã€‚
%
% \begin{macro}{\listofalgorithm}
% \begin{macro}{\listofalgorithm*}
%    \begin{macrocode}
\PassOptionsToPackage{chapter}{algorithm}
\AtEndOfPackageFile*{algorithm}{
  \floatname{algorithm}{\hit@algorithm@name}
  \renewcommand\listofalgorithms{%
    \hit@listof{algorithm}%
  }
  \renewcommand\listalgorithmname{\hit@list@algorithm@name}
  \def\ext@algorithm{loa}
  \contentsuse{algorithm}{loa}
  \titlecontents{algorithm}
    [\z@]{}
    {\contentspush{\fname@algorithm~\thecontentslabel\quad}}{}
    {\hit@leaders\thecontentspage}
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsubsection{\pkg{algorithm2e} å®åŒ…}
%
%    \begin{macrocode}
\PassOptionsToPackage{algochapter}{algorithm2e}
\AtEndOfPackageFile*{algorithm2e}{
  \renewcommand\algorithmcfname{\hit@algorithm@name}
  \SetAlgoCaptionLayout{hit@caption@font}
  \SetAlCapSty{relax}
  \SetAlgoCaptionSeparator{\hspace*{1em}}
  \SetAlFnt{\fontsize{11bp}{14.3bp}\selectfont}
  \renewcommand\listofalgorithms{%
    \hit@listof{algorithmcf}%
  }
  \renewcommand\listalgorithmcfname{\hit@list@algorithm@name}
  \def\ext@algorithmcf{loa}
  \contentsuse{algocf}{loa}
  \titlecontents{algocf}
    [\z@]{}
    {\contentspush{\algorithmcfname~\thecontentslabel\quad}}{}
    {\hit@leaders\thecontentspage}
}
%    \end{macrocode}
%
% \subsubsection{\pkg{minted} å®åŒ…}
%
%    \begin{macrocode}
\AtEndOfPackageFile*{minted}{
  \newcommand\hit@set@listing@language{%
    \floatname{listing}{ä»£ç&nbsp;}%
  }
  \hit@set@listing@language
}
%    \end{macrocode}
%
%
% \subsubsection{\pkg{hyperref} å®åŒ…}
%
%    \begin{macrocode}
\AtEndOfPackageFile*{hyperref}{
  \hypersetup{
    linktoc            = all,
    bookmarksnumbered  = true,
    bookmarksopen      = true,
    bookmarksopenlevel = 1,
    unicode            = true,
    psdextra           = true,
    breaklinks         = true,
    plainpages         = false,
    pdfdisplaydoctitle = true,
    hidelinks,
  }%
%    \end{macrocode}
%
% \pkg{hyperref} ä¸Ž \pkg{unicode-math} å­˜åœ¨ä¸€äº›å…¼å®¹æ€§é—®é¢˜ï¼Œè§
% \href{https://github.com/ustctug/ustcthesis/issues/223}{%
%   ustctug/ustcthesis\#223}ï¼Œ
% \href{https://github.com/ho-tex/hyperref/pull/90}{ho-tex/hyperref\#90} å’Œ
% \href{https://github.com/ustctug/ustcthesis/issues/235}{%
%   ustctug/ustcthesis/\#235}ã€‚
%    \begin{macrocode}
  \@ifpackagelater{hyperref}{2019/04/27}{}{%
    \g@addto@macro\psdmapshortnames{\let\mu\textmu}
  }%
  \hypersetup{
    pdflang = zh-CN,
  }%
  \AtBeginDocument{%
    \hypersetup{
      pdftitle    = \hit@title,
      pdfauthor   = \hit@author,
    }%
    \hypersetup{
      pdfcreator={hitreport-v1.0}}
  }%
}
%    \end{macrocode}
%
%
%	æµ®åŠ¨çŽ¯å¢ƒè®¾ç½®
% é»˜è®¤æƒ…å†µä¸‹, \LaTeX{} è¦æ±‚æ¯é¡µçš„æ–‡å­—è‡³å°‘å&nbsp;æ® 20\%,å¦åˆ™è¯¥é¡µå°±åªå•ç‹¬æ”¾ç½®ä¸€ä¸ªæµ®åŠ¨çŽ¯å¢ƒ,
% è€Œè¿™é€šå¸¸ä¸æ˜¯æˆ‘ä»¬æƒ³è¦çš„, æˆ‘ä»¬å°†è¿™ä¸ªè¦æ±‚é™ä½Žåˆ° 5\%.
%    \begin{macrocode}
\renewcommand*{\textfraction}{0.05}
%    \end{macrocode}
%	æœ‰æ—¶å¦‚æžœå¤šä¸ªæµ®åŠ¨çŽ¯å¢ƒè¿žç»­æ”¾åœ¨ä¸€èµ·, \LaTeX{}ä¼šå°†å®ƒä»¬åˆ†åœ¨å‡&nbsp;ä¸ªä¸åŒé¡µï¼Œå³ä½¿å®ƒä»¬å¯åœ¨åŒä¸€é¡µæ”¾
% å¾—ä¸‹. æˆ‘ä»¬å¯ä»¥é€šè¿‡ä¿®æ”¹ |\topfraction| å’Œ |\bottomfraction| åˆ†åˆ«è®¾ç½®é¡¶ç«¯å’Œåº•ç«¯çš„æµ®åŠ¨çŽ¯å¢ƒçš„æœ€å¤§æ¯”ä¾‹.
%    \begin{macrocode}
\renewcommand*{\topfraction}{0.9}
\renewcommand*{\bottomfraction}{0.8}
%    \end{macrocode}
%	æœ‰æ—¶\LaTeX{}ä¼šæŠŠä¸€ä¸ªæµ®åŠ¨çŽ¯å¢ƒå•ç‹¬æ”¾åœ¨ä¸€é¡µ,
%	æˆ‘ä»¬è¦æ±‚è¿™ä¸ªçŽ¯å¢ƒè‡³å°‘è¦å&nbsp;æ® 85% æ‰èƒ½å•ç‹¬æ”¾åœ¨ä¸€é¡µ.
%	æ³¨æ„:  |\floatpagefraction| çš„æ•°å€¼å¿…é¡»å°äºŽ |\topfraction|.
%    \begin{macrocode}
\renewcommand*{\floatpagefraction}{0.85}
%    \end{macrocode}
%	å…³äºŽå›¾ç‰‡ graphicx
% 	å¦‚æžœå›¾ç‰‡æ²¡æœ‰æŒ‡å®šåŽç¼€, ä¾æ¬¡æŒ‰ä¸‹åˆ—é¡ºåºæœç´¢
%    \begin{macrocode}
\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png}
%    \end{macrocode}
%	è®¾ç½®å›¾è¡¨æœç´¢è·¯å¾„, å¯ä»¥ç»™å›¾è¡¨æ–‡ä»¶å¤¹å–å¦‚ä¸‹åå­—
%    \begin{macrocode}
\graphicspath{{figures/}{figure/}{pictures/}{picture/}{pic/}{pics/}{image/}{images/}}
%    \end{macrocode}
%	å›¾è¡¨æ&nbsp;‡é¢˜
%    \begin{macrocode}
\DeclareCaptionFont{song}{\songti}
\DeclareCaptionFont{minusfour}{\zihao{-4}}
\captionsetup[figure]{
    format=hang,   %æ&nbsp;‡é¢˜ä»Žç¬¬äºŒè¡Œå¼€å§‹éƒ½æœ‰ç¼©è¿›, åº”è¯¥å’Œ justification=raggedright çš„æ•ˆæžœä¸€æ&nbsp;·.
    labelsep=quad, %åˆ†éš”ç¬¦æ˜¯ä¸€ä¸ªç©ºæ&nbsp;¼
    font={song,minusfour,bf}, %å›¾çš„å­—ä½“, å®‹ä½“å°å››
    position=bottom %position=bottom, ä¸ä»£è¡¨æ&nbsp;‡é¢˜æ”¾åœ¨ä¸‹é¢, æ&nbsp;‡é¢˜ä»æ”¾åœ¨ä½&nbsp;æ”¾\captionçš„ä½ç½®.
}
\captionsetup[table]{%
    format=hang,   % æ&nbsp;‡é¢˜ä»Žç¬¬äºŒè¡Œå¼€å§‹éƒ½æœ‰ç¼©è¿›, åº”è¯¥å’Œ justification=raggedright çš„æ•ˆæžœä¸€æ&nbsp;·.
    labelsep=quad, % åˆ†éš”ç¬¦æ˜¯ä¸€ä¸ªç©ºæ&nbsp;¼
    font={song,minusfour,bf}, % è¡¨çš„å­—ä½“, å®‹ä½“å°å››
    position=top % position=bottom, ä¸ä»£è¡¨æ&nbsp;‡é¢˜æ”¾åœ¨ä¸‹é¢, æ&nbsp;‡é¢˜ä»æ”¾åœ¨ä½&nbsp;æ”¾\captionçš„ä½ç½®.
}
%    \end{macrocode}
%
%	åˆ—è¡¨çŽ¯å¢ƒè®¾ç½®
%    \begin{macrocode}
\setlist{%
    topsep=0.3em, % åˆ—è¡¨é¡¶ç«¯çš„åž‚ç›´ç©ºç™½
    partopsep=0pt, % åˆ—è¡¨çŽ¯å¢ƒå‰é¢ç´§æŽ¥ç€ä¸€ä¸ªç©ºç™½è¡Œæ—¶å…¶é¡¶ç«¯çš„é¢å¤–åž‚ç›´ç©ºç™½
    itemsep=0ex plus 0.1ex, % åˆ—è¡¨é¡¹ä¹‹é—´çš„é¢å¤–åž‚ç›´ç©ºç™½
    parsep=0pt, % åˆ—è¡¨é¡¹å†…çš„æ®µè½ä¹‹é—´çš„åž‚ç›´ç©ºç™½
    leftmargin=1.5em, % çŽ¯å¢ƒçš„å·¦è¾¹ç•Œå’Œåˆ—è¡¨ä¹‹é—´çš„æ°´å¹³è·ç¦»
    rightmargin=0em, % çŽ¯å¢ƒçš„å³è¾¹ç•Œå’Œåˆ—è¡¨ä¹‹é—´çš„æ°´å¹³è·ç¦»
    labelsep=0.5em, % åŒ…å«æ&nbsp;‡ç­¾çš„ç›’å­ä¸Žåˆ—è¡¨é¡¹çš„ç¬¬ä¸€è¡Œæ–‡æœ¬ä¹‹é—´çš„é—´éš”
    labelwidth=2em % åŒ…å«æ&nbsp;‡ç­¾çš„ç›’å­çš„æ­£å¸¸å®½åº¦ï¼›è‹¥å®žé™…å®½åº¦æ›´å®½ï¼Œåˆ™ä½¿ç”¨å®žé™…å®½åº¦ã€‚
}
%    \end{macrocode}
%
% \subsection{å°é¢ä¿¡æ¯}
% \label{sec:cover}
% 
%
% æŠ¥å‘Šé¢˜ç›®ã€‚
%    \begin{macrocode}
\hit@define@key{
  title = {
    default = {æ&nbsp;‡é¢˜},
  },
%    \end{macrocode}
%
% æŠ¥å‘Šå°æ&nbsp;‡é¢˜
%    \begin{macrocode}
  expand = {
    default = {å°æ&nbsp;‡é¢˜},
  },
%    \end{macrocode}
%
% å§“åã€å­¦å·ã€æŒ‡å¯¼è€å¸ˆã€‚
%    \begin{macrocode}
  author = {
    default = {å§“å},
  },
  student-id = {
    name = student@id,
  },
  supervisor = {
    default = {å¯¼å¸ˆå§“å},
  },
%    \end{macrocode}
%
% é™¢ç³»åç§°ã€‚
%    \begin{macrocode}
  department = {
    default = {è®¡ç®—å­¦éƒ¨},
  },
%    \end{macrocode}
%
% ä¸“ä¸šåç§°ã€‚
%    \begin{macrocode}
  discipline = {
    default = {è®¡ç®—æœºç§‘å­¦ä¸ŽæŠ€æœ¯},
  },
%    \end{macrocode}
%
% ç­çº§åºå·
%  \begin{macrocode}
  classnum = {
    default = {1803105}
  },
%  \end{macrocode}
%
% å®žéªŒåœ°ç‚¹
%  \begin{macrocode}
  lablocation = {
    default = {æ&nbsp;¼ç‰©207}
  },
%  \end{macrocode}
%
% å­¦æœŸ
%  \begin{macrocode}
  term = {
    default = {2021æ˜¥}
  },
%  \end{macrocode}
%
% æŠ¥å‘Šæˆæ–‡æ—¥æœŸã€‚
%    \begin{macrocode}
  date = {
    default = {\the\year-\two@digits{\month}-\two@digits{\day}},
  }
}
%    \end{macrocode}
%
% è¾“å‡ºæ—¥æœŸçš„ç»™å®šæ&nbsp;¼å¼ï¼š\cs{hit@format@date}\marg{format}\marg{date}ï¼Œ
% å…¶ä¸­æ&nbsp;¼å¼ \meta{format} æŽ¥å—ä¸‰ä¸ªå‚æ•°åˆ†åˆ«å¯¹åº”å¹´ã€æœˆã€æ—¥ï¼Œ
% \meta{date} æ˜¯ ISO æ&nbsp;¼å¼çš„æ—¥æœŸï¼ˆyyyy-mm-ddï¼‰ã€‚
%    \begin{macrocode}
\newcommand\hit@format@date[2]{%
  \edef\hit@@date{#2}%
  \def\hit@@process@date##1-##2-##3\@nil{%
    #1{##1}{##2}{##3}%
  }%
  \expandafter\hit@@process@date\hit@@date\@nil
}
\newcommand\hit@date@zh@digit[3]{#1 å¹´ \number#2 æœˆ \number#3 æ—¥}
\newcommand\hit@date@zh@digit@short[3]{#1 å¹´ \number#2 æœˆ}
\newcommand\hit@date@zh@short[3]{\zhdigits{#1}å¹´\zhnumber{#2}æœˆ}
\newcommand\hit@date@month[1]{%
  \ifcase\number#1\or
    January\or February\or March\or April\or May\or June\or
    July\or August\or September\or October\or November\or December%
  \fi
}
\newcommand\hit@date@en@short[3]{\hit@date@month{#2}, #1}
%    \end{macrocode}
%
%
% ä¸‹åˆ’çº¿å‘½ä»¤
%    \begin{macrocode}
\newcommand\hit@underline[2][6em]{\hskip1pt\underline{\hb@xt@ #1{\hss#2\hss}}\hskip3pt}
\newcommand\hit@CJKunderline[2][6em]{\CJKunderline*{\hb@xt@ #1{\hss#2\hss}}}
%    \end{macrocode}
%
% 
%  å°é¢è¡¨æ&nbsp;¼ä¿¡æ¯
%  \begin{macrocode}
\newcommand\hit@titlepage@info{%
  \large
  \renewcommand{\arraystretch}{1}
  \begin{tabular}{lp{3.5cm}&lt;{\centering}lc}
    \makebox[4em][s]{å­¦\hspace{\fill}é™¢}\hit@theorem@separator    &amp; {\hit@department} &amp; \hspace{1em}  \makebox[4em][s]{ä¸“\hspace{\fill}ä¸š}\hit@theorem@separator    &amp; {\hit@discipline} \\ \cline{2-2} \cline{4-4}
    \makebox[4em][s]{ç­\hspace{\fill}çº§}\hit@theorem@separator    &amp; {\hit@classnum}  &amp; \hspace{1em}  \makebox[4em][s]{å­¦\hspace{\fill}å·}\hit@theorem@separator    &amp; {\hit@student@id} \\ \cline{2-2} \cline{4-4}
    \makebox[4em][s]{å§“\hspace{\fill}å}\hit@theorem@separator    &amp; {\hit@author}    &amp;\hspace{1em} \makebox[4em][s]{å®žéªŒåœ°ç‚¹}\hit@theorem@separator&amp; {\hit@lablocation} \\ \cline{2-2} \cline{4-4}
    \makebox[4em][s]{æŒ‡å¯¼è€å¸ˆ}\hit@theorem@separator&amp; {\hit@supervisor} &amp;\hspace{1em} \makebox[4em][s]{å­¦\hspace{\fill}æœŸ}\hit@theorem@separator    &amp; {\hit@term} \\ \cline{2-2} \cline{4-4}
  \end{tabular}
}
%  \end{macrocode}
%
%
% è®ºæ–‡æˆæ–‡æ‰“å°çš„æ—¥æœŸï¼Œç”¨ä¸‰å·å®‹ä½“æ±‰å­—ï¼Œå­—è·å»¶ä¼¸ 0.5bpï¼Œ
% æ‰€ä»¥ \cs{CJKglue} åº”è¯¥è®¾ä¸º 1 bpã€‚
%    \begin{macrocode}
\newcommand\hit@titlepage@date{%
  \begingroup
    \sanhao
    \def\CJKglue{\hskip 1bp}%
    \hit@format@date{\hit@date@zh@short}{\hit@date}\par
  \endgroup
}
%    \end{macrocode}
%
%	ç”Ÿæˆå°é¢ï¼Œä½¿ç”¨\cs{maketitle}å‘½ä»¤
%    \begin{macrocode}
\renewcommand\maketitle{
  \cleardoublepage
  \pagenumbering{Alph}%
  \hit@maketitlepage
  \clearpage
}
%    \end{macrocode}
%
%
%  æ&nbsp;¹æ®æ&nbsp;¡åŒºé€‰æ‹©æ&nbsp;¡åŒºæ&nbsp;¡å¾½åŠæ&nbsp;¡åå›¾ç‰‡
%    \begin{macrocode}
\newcommand\hit@titlepage@fig{
  \ifhit@campus@harbin
    \begin{center}
      \begin{figure}[h]
        \includegraphics[scale=0.5]{photo/hithrb.pdf} % æœ¬éƒ¨æ&nbsp;¡å¾½å›¾ç‰‡
      \end{figure}
    \end{center}
  \else
    \ifhit@campus@shenzhen
      \begin{center}
        \begin{figure}[h]
          \includegraphics[scale=0.26]{photo/hitsz.pdf} % æ·±åœ³æ&nbsp;¡åŒºæ&nbsp;¡å¾½å›¾ç‰‡
        \end{figure}
      \end{center}
  \else 
    \ifhit@campus@weihai
      \begin{center}
        \begin{figure}[h]
          \includegraphics[scale=0.26]{photo/hitwh.pdf} % æ&nbsp;¡å¾½å›¾ç‰‡
        \end{figure}
      \end{center}
  \fi
  \fi
  \fi
}
%    \end{macrocode}
%
%   å®šä¹‰å°é¢
% \begin{macrocode}
\newcommand\hit@maketitlepage{%
\newgeometry{
  vmargin = 2.54cm,
  hmargin = 3.17cm,
}
  \newpage
  \hit@titlepage@fig
	 \vspace{1.5cm}
	 \begingroup
	   \centering 
	   \textbf{\huawenxingkai \fontsize{32}{0} \selectfont \hit@title}\\
	 \endgroup
	 \vspace{2cm}
	 \begingroup
	   \centering 
	   \textbf{\heiti \fontsize{20}{0} \selectfont \hit@expand}\\
	 \endgroup
	 \vspace{2.5cm}
	\parbox[h][10cm][t]{\textwidth}{\centering\hit@titlepage@info}\par
	\begingroup
	  \centering
	  {\heiti  \sihao\hit@format@date{\hit@date@zh@digit}{\hit@date}\par}%
	\endgroup
  \thispagestyle{empty}
  \restoregeometry
}
% \end{macrocode}
%
%	å®šä¹‰é™„å½•
%    \begin{macrocode}
\renewcommand{\setthesection}{\appendixname\Alph{section}}
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\gdef\thesection{\appendixname\@Alph\c@section}}
%    \end{macrocode}
%
% \subsection{å…¶å®ƒ}
% \label{sec:other}
%
% å€Ÿç”¨ \cls{ltxdoc} å’Œ \cls{l3doc} é‡Œé¢çš„å‡&nbsp;ä¸ªå‘½ä»¤æ–¹ä¾¿å†™æ–‡æ¡£ã€‚
%    \begin{macrocode}
\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\DeclareRobustCommand\file{\nolinkurl}
\DeclareRobustCommand\env{\textsf}
\DeclareRobustCommand\pkg{\textsf}
\DeclareRobustCommand\cls{\textsf}
%    \end{macrocode}
%
%    \begin{macrocode}
\sloppy
%&lt;/cls&gt;
%    \end{macrocode}
%
%
% \iffalse
%    \begin{macrocode}
%&lt;*dtx-style&gt;
\ProvidesPackage{dtx-style}
\RequirePackage{hypdoc}
\RequirePackage{ifthen}
\RequirePackage{fontspec}[2017/01/20]
\RequirePackage{amsmath}
\RequirePackage{unicode-math}
\RequirePackage[UTF8,scheme=chinese]{ctex}
\RequirePackage[
  top=25mm, bottom=25mm,
  left=40mm, right=20mm,
  headsep=3mm]{geometry}
\RequirePackage{hologo}
\RequirePackage{array,longtable,booktabs}
\RequirePackage{listings}
\RequirePackage{fancyhdr}
\RequirePackage{xcolor}
\RequirePackage{enumitem}
\RequirePackage{etoolbox}
\RequirePackage{metalogo}

\unimathsetup{
  math-style=ISO,
  bold-style=ISO,
}

\DeclareRobustCommand\mathellipsis{\mathinner{\unicodecdots}}
\IfFontExistsTF{XITSMath-Regular.otf}{
  \setmathfont[
    Extension    = .otf,
    BoldFont     = XITSMath-Bold,
    StylisticSet = 8,
  ]{XITSMath-Regular}
  \setmathfont[range={cal,bfcal},StylisticSet=1]{XITSMath-Regular.otf}
}{
  \setmathfont[
    Extension    = .otf,
    BoldFont     = *bold,
    StylisticSet = 8,
  ]{xits-math}
  \setmathfont[range={cal,bfcal},StylisticSet=1]{xits-math.otf}
}

\colorlet{hit@macro}{blue!60!black}
\colorlet{hit@env}{blue!70!black}
\colorlet{hit@option}{purple}
\patchcmd{\PrintMacroName}{\MacroFont}{\MacroFont\bfseries\color{hit@macro}}{}{}
\patchcmd{\PrintDescribeMacro}{\MacroFont}{\MacroFont\bfseries\color{hit@macro}}{}{}
\patchcmd{\PrintDescribeEnv}{\MacroFont}{\MacroFont\bfseries\color{hit@env}}{}{}
\patchcmd{\PrintEnvName}{\MacroFont}{\MacroFont\bfseries\color{hit@env}}{}{}

\def\DescribeOption{%
  \leavevmode\@bsphack\begingroup\MakePrivateLetters%
  \Describe@Option}
\def\Describe@Option#1{\endgroup
  \marginpar{\raggedleft\PrintDescribeOption{#1}}%
  \hit@special@index{option}{#1}\@esphack\ignorespaces}
\def\PrintDescribeOption#1{\strut \MacroFont\bfseries\sffamily\color{hit@option} #1\ }
\def\hit@special@index#1#2{\@bsphack
  \begingroup
    \HD@target
    \let\HDorg@encapchar\encapchar
    \edef\encapchar usage{%
      \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}%
    }%
    \index{#2\actualchar{\string\ttfamily\space#2}
           (#1)\encapchar usage}%
    \index{#1:\levelchar#2\actualchar
           {\string\ttfamily\space#2}\encapchar usage}%
  \endgroup
  \@esphack}

\lstdefinestyle{lstStyleBase}{%
   basicstyle=\small\ttfamily,
   aboveskip=\medskipamount,
   belowskip=\medskipamount,
   lineskip=0pt,
   boxpos=c,
   showlines=false,
   extendedchars=true,
   upquote=true,
   tabsize=2,
   showtabs=false,
   showspaces=false,
   showstringspaces=false,
   numbers=none,
   linewidth=\linewidth,
   xleftmargin=4pt,
   xrightmargin=0pt,
   resetmargins=false,
   breaklines=true,
   breakatwhitespace=false,
   breakindent=0pt,
   breakautoindent=true,
   columns=flexible,
   keepspaces=true,
   gobble=4,
   framesep=3pt,
   rulesep=1pt,
   framerule=1pt,
   backgroundcolor=\color{gray!5},
   stringstyle=\color{green!40!black!100},
   keywordstyle=\bfseries\color{blue!50!black},
   commentstyle=\slshape\color{black!60}}

\lstdefinestyle{lstStyleShell}{%
   style=lstStyleBase,
   frame=l,
   rulecolor=\color{purple},
   language=bash}

\lstdefinestyle{lstStyleLaTeX}{%
   style=lstStyleBase,
   frame=l,
   rulecolor=\color{violet},
   language=[LaTeX]TeX}

\lstnewenvironment{latex}{\lstset{style=lstStyleLaTeX}}{}
\lstnewenvironment{shell}{\lstset{style=lstStyleShell}}{}

\setlist{nosep}

\DeclareDocumentCommand{\option}{m}{\textsf{#1}}
\DeclareDocumentCommand{\env}{m}{\texttt{#1}}
\DeclareDocumentCommand{\pkg}{s m}{%
  \textsf{#2}\IfBooleanF#1{\hit@special@index{package}{#2}}}
\DeclareDocumentCommand{\cls}{s m}{%
  \textsf{#2}\IfBooleanF#1{\hit@special@index{package}{#2}}}
\DeclareDocumentCommand{\file}{s m}{%
  \nolinkurl{#2}\IfBooleanF#1{\hit@special@index{file}{#2}}}
\newcommand{\myentry}[1]{%
  \marginpar{\raggedleft\color{purple}\bfseries\strut #1}}
\newcommand{\note}[2][Note]{{%
  \color{magenta}{\bfseries #1}\emph{#2}}}

\DeclareDocumentCommand{\githubuser}{m}{\href{https://github.com/#1}{@#1}}

\def\thuthesis{\textsc{Thu}\-\textsc{Thesis}}
\def\hitreport{\textsc{Hit}\-\textsc{Report}}
\def\hithesis{\textsc{hi}\-\textsc{Thesis}}
%&lt;/dtx-style&gt;
%    \end{macrocode}
% \fi
%
% \Finale
%
\endinput
% \iffalse
%  Local Variables:
%  mode: doctex
%  TeX-master: t
%  End:
% \fi
</pre></body></html>