<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% æ–‡ä»¶ `hfutexam.cls'
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
% åˆè‚¥å·¥ä¸šå¤§å­¦è¯•å·æ¨¡æ¿
% ä½œè€…: å¼&nbsp;ç¥žæ˜Ÿ
% ä½¿ç”¨å‰è¯·å…ˆå®‰è£…å­—ä½“: æ–¹æ­£å°æ&nbsp;‡å®‹ã€æ–¹æ­£ä»¿å®‹, å¦åˆ™è¯·ä½¿ç”¨é€‰é¡¹ nofangzheng (é‡‡ç”¨æ–°å®‹ä½“å’Œä»¿å®‹ä»£æ›¿)
% ç¼–è¯‘æ¨¡å¼ï¼š XeLaTeX
% ä½&nbsp;å¯ä»¥ä»»æ„ä¿®æ”¹æˆ–å†æ¬¡åˆ†å‘è¯¥æ–‡ä»¶
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{hfutexam}[2023/11/13 v1.9 HFUTExam document class by Zhang Shenxing]
% æ–‡æ¡£é€‰é¡¹
\newif\ifhfut@ShiJuan\hfut@ShiJuantrue
\newif\ifhfut@DaTiZhi\hfut@DaTiZhifalse
\newif\ifhfut@Simple\hfut@Simplefalse
\newif\ifhfut@Fandol\hfut@Fandoltrue
\DeclareOption{datizhi}{\hfut@ShiJuanfalse\hfut@DaTiZhitrue\hfut@Simplefalse}
\DeclareOption{cankaodaan}{\hfut@ShiJuanfalse\hfut@DaTiZhitrue\hfut@Simplefalse}
\DeclareOption{simple}{\hfut@ShiJuanfalse\hfut@DaTiZhifalse\hfut@Simpletrue }
\DeclareOption{nofangzheng}{\hfut@Fandolfalse} % é»˜è®¤ä½¿ç”¨æ–¹æ­£å­—ä½“
% åŸºäºŽ ctexart æ–‡æ¡£ç±»
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ctexart}}
\ProcessOptions\relax
\ifhfut@Simple\else\PassOptionsToClass{twocolumn}{ctexart}\fi
\ProcessOptions\relax
\LoadClass[12pt,oneside]{ctexart}
% é¡µé¢è®¾ç½®
\RequirePackage{amsmath,amssymb,amsthm, graphicx, enumitem, fancyhdr, lastpage, etoolbox, geometry, tikz, zref-savepos}
\RequirePackage[normalem]{ulem}
\ifhfut@Simple
	\geometry{a4paper,scale=0.8}
\else
	\geometry{
		paperheight=29.7cm,
		paperwidth=42cm,
		left=3.17cm,
		right=3.17cm,
		voffset=2.2cm,
		headheight=78pt,
		headsep=12pt,
		footskip=1cm
	}
	\setlength\columnsep{0.8cm} % åˆ†æ&nbsp;é—´è·
	\columnseprule=0.5pt % åˆ†æ&nbsp;çº¿å®½åº¦
\fi
% è¯•å·ä¿¡æ¯
\newcommand{\hfutstretch}{1.5} % ä¸‹åˆ’çº¿å†…ä¸¤ä¾§ç©ºæ&nbsp;¼é•¿åº¦é™¤ä»¥æ¡ç›®ä¹‹é—´ç©ºæ&nbsp;¼é•¿åº¦
\newcommand{\hfutul}[1]{\uline{\hspace{\stretch{\hfutstretch}}#1\hspace{\stretch{\hfutstretch}}}}
\newcommand{\hfutrule}[1]{\rule{#1}{0mm}}
\newcommand{\hfutboxyes}{{\raisebox{-2pt}{\LARGE$\checkmark\hspace{-18pt}\square$}}}
\newcommand{\hfutboxno}{{\raisebox{-2pt}{\LARGE$\square$}}}
\newcommand{\XueNian}[2]{\gdef\hfut@XueNian{{\hfutFontTimes #1}ï½ž{\hfutFontTimes #2}}}
\newcommand{\BiaoTi}[1]{\gdef\hfut@BiaoTi{#1}}
\newcommand{\XueQi}[1]{\gdef\hfut@XueQi{#1}}
\newcommand{\XueFen}[1]{\gdef\hfut@XueFen{#1}}
\newcommand{\KeChengXingZhi}[1]{\gdef\hfut@KeChengXingZhi{#1}}
\newcommand{\KaoShiXingShi}[1]{\gdef\hfut@KaoShiXingShi{#1}}
\newcommand{\KeChengDaiMa}[1]{\gdef\hfut@KeChengDaiMa{#1}}
\newcommand{\KeChengMingCheng}[1]{\gdef\hfut@KeChengMingCheng{#1}}
\newcommand{\ZhuanYeBanJi}[1]{\gdef\hfut@ZhuanYeBanJi{#1}}
\newcommand{\KaoShiRiQi}[1]{\gdef\hfut@KaoShiRiQi{#1}}
\newcommand{\MingTiJiaoShi}[1]{\gdef\hfut@MingTiJiaoShi{#1}}
\newcommand{\XiZhuRenQianMing}[2][5em]{\gdef\hfut@XiZhuRenQianMing{%
	\tikz[overlay]\node at (1.5,0.22) {\ifx#2\@empty\else\includegraphics[width=#1]{#2}\fi};%
	\uline{\hspace{0.5em}\hfutrule{#1}\hspace{0.5em}}}}
\BiaoTi{}
\XueNian{}{}
\XueQi{}
\KeChengDaiMa{}
\KeChengMingCheng{}
\XueFen{}
\KeChengXingZhi{}
\KaoShiXingShi{}
\ZhuanYeBanJi{}
\KaoShiRiQi{}
\MingTiJiaoShi{}
\XiZhuRenQianMing{}
% ç²—å­—ä½“è®¾å®š
\newfontfamily\hfutFontTimes[AutoFakeBold={3}]{Times New Roman} % ç²—ç½—é©¬
\ifhfut@Fandol
	\setCJKfamilyfont{hfutFontTitle}[AutoFakeBold={3}]{FZXiaoBiaoSong-B05S} % ç²—æ–¹æ­£å°æ&nbsp;‡å®‹
	\newfontfamily\hfutFontTitleEn[AutoFakeBold={3}]{FZXiaoBiaoSong-B05S}
	\setCJKfamilyfont{hfutFontHead}[AutoFakeBold={3}]{FZFangSong-Z02S} % ç²—æ–¹æ­£ä»¿å®‹
	\newfontfamily\hfutFontHeadEn[AutoFakeBold={3}]{FZFangSong-Z02S}
\else
	\setCJKfamilyfont{hfutFontTitle}[AutoFakeBold={3}]{NSimSun} % ç²—æ–°å®‹ä½“
	\newfontfamily\hfutFontTitleEn[AutoFakeBold={3}]{NSimSun}
	\setCJKfamilyfont{hfutFontHead}[AutoFakeBold={3}]{FangSong} % ç²—ä»¿å®‹
	\newfontfamily\hfutFontHeadEn[AutoFakeBold={3}]{FangSong}
\fi
\newcommand{\hfutFontTitle}{\CJKfamily{hfutFontTitle}\hfutFontTitleEn}
\newcommand{\hfutFontHead}{\hfutFontHeadEn\CJKfamily{hfutFontHead}}
% é‡æ–°è®¾å®šå­—ä½“å¤§å°
\renewcommand{\LARGE}{\fontsize{21pt}{25.2pt}\selectfont}
\renewcommand{\large}{\fontsize{14pt}{21pt}\selectfont}
\renewcommand{\small}{\fontsize{10.5pt}{12.6pt}\selectfont}
% ç¼©è¿›
\setlength{\parindent}{0em}
\renewcommand{\indent}{\hspace*{2em}}
\newlength{\ltemp}
% é¡µçœ‰é¡µè„š
\pagestyle{fancy}
\fancyhf{}
\newcommand{\hfutpage}{{\hfutFontTimes\thepage}}
\newcommand{\hfutlastpage}{{\hfutFontTimes\pageref*{LastPage}}}
\ifhfut@ShiJuan % è¯•å·é¡µçœ‰é¡µè„š
	\renewcommand\headrulewidth{0.5pt}
	\renewcommand\footrulewidth{0.5pt}
	\setCJKfamilyfont{hfutFontSimSun}[AutoFakeBold={3}]{SimSun} % ç²—å®‹ä½“
	\fancyhead[C]{\bfseries\large\hfutFontHead\hfutrule{6em}
		\hfill\makebox[280mm][s]{\LARGE\hfutFontTitle~\hfut@BiaoTi~}
		\hfill{\CJKfamily{hfutFontSimSun} å…±\uline{\makebox[1.5em]{\hfutlastpage}}é¡µç¬¬\uline{\makebox[1.5em]{\hfutpage}}é¡µ}

		\vspace{6pt}%
		\hfut@XueNian{}å­¦å¹´ç¬¬\uline{\hfill\hfut@XueQi\hfill}å­¦æœŸ
		\hfill è¯¾ç¨‹ä»£ç&nbsp;\hfutul{\hfut@KeChengDaiMa}
		\hfill è¯¾ç¨‹åç§°\hfutul{\hfut@KeChengMingCheng}
		\hfill å­¦åˆ†\uline{\hfill\hfut@XueFen\hfill}
		\hfill è¯¾ç¨‹æ€§è´¨: %
			å¿…ä¿®\ifdefstring{\hfut@KeChengXingZhi}{å¿…ä¿®}{\hfutboxyes}{\hfutboxno}%
			é€‰ä¿®\ifdefstring{\hfut@KeChengXingZhi}{é€‰ä¿®}{\hfutboxyes}{\hfutboxno}%
			é™ä¿®\ifdefstring{\hfut@KeChengXingZhi}{é™ä¿®}{\hfutboxyes}{\hfutboxno}
		\hfill è€ƒè¯•å½¢å¼: %
			å¼€å·\ifdefstring{\hfut@KaoShiXingShi}{å¼€å·}{\hfutboxyes}{\hfutboxno}%
			é—­å·\ifdefstring{\hfut@KaoShiXingShi}{é—­å·}{\hfutboxyes}{\hfutboxno}

		\vspace{6pt}%
		ä¸“ä¸šç­çº§ï¼ˆæ•™å­¦ç­ï¼‰\hfutul{\hfut@ZhuanYeBanJi}
		\hfill è€ƒè¯•æ—¥æœŸ\hfutul{\hfut@KaoShiRiQi}
		\hfill å‘½é¢˜æ•™å¸ˆ\hfutul{\hfut@MingTiJiaoShi}
		\hfill ç³»ï¼ˆæ‰€æˆ–æ•™ç&nbsp;”å®¤ï¼‰ä¸»ä»»å®¡æ‰¹ç­¾å\hfut@XiZhuRenQianMing%
	}
	\fancyfoot[C]{\small\vspace{0.5\baselineskip}å‘½é¢˜æ•™å¸ˆæ³¨æ„äº‹é¡¹:
		1. ä¸»è€ƒæ•™å¸ˆå¿…é¡»äºŽè€ƒè¯•ä¸€å‘¨å‰å°†â€œè¯•å·Aâ€ã€â€œè¯•å·Bâ€ç»æ•™ç&nbsp;”å®¤ä¸»ä»»å®¡æ‰¹ç­¾å­—åŽé€æ•™åŠ¡ç§‘å°åˆ·ã€‚\hspace{1em}%
		2. è¯·å‘½é¢˜æ•™å¸ˆç”¨é»‘è‰²æ°´ç¬”å·¥æ•´åœ°ä¹¦å†™é¢˜ç›®æˆ–ç”¨A4çº¸æ¨ªå¼æ‰“å°è´´åœ¨è¯•å·ç‰ˆèŠ¯ä¸­ã€‚
	}
	\NewDocumentCommand\fillblank{O{35mm} O{5mm} m}{%
		\settodepth{\ltemp}{#3}%
		\uline{\makebox[#1]{\rule{0pt}{#2}\raisebox{\ltemp}{#3}}}%
	}
\fi
\ifhfut@DaTiZhi % ç­”é¢˜çº¸é¡µçœ‰é¡µè„š
	\renewcommand\headrulewidth{0.5pt}
	\renewcommand\footrulewidth{0.5pt}
	\fancyhead[C]{\bfseries\large\hfutFontHead
		\makebox[\linewidth][s]{\LARGE\hfutFontTitle~\hfut@BiaoTi~}
		
		\vspace{6pt}%
		\hfut@XueNian{}å­¦å¹´ç¬¬\uline{\hfill\hfut@XueQi\hfill}å­¦æœŸ
		\hfill è¯¾ç¨‹ä»£ç&nbsp;\hfutul{\hfut@KeChengDaiMa}
		\hfill è¯¾ç¨‹åç§°\hfutul{\hfut@KeChengMingCheng}
		\hfill å‘½é¢˜æ•™å¸ˆ\hfutul{\hfut@MingTiJiaoShi}
		\hfill ç³»ï¼ˆæ‰€æˆ–æ•™ç&nbsp;”å®¤ï¼‰ä¸»ä»»å®¡æ‰¹ç­¾å\hfut@XiZhuRenQianMing%
		
		\vspace{6pt}%
		æ•™å­¦ç­çº§\hfutul{\hfutrule{10em}}
		\hfill å­¦ç”Ÿå§“å\hfutul{\hfutrule{10em}}
		\hfill å­¦å·\hfutul{\hfutrule{8em}}
		\hfill è€ƒè¯•æ—¥æœŸ\hfutul{\hfut@KaoShiRiQi}
		\hfill æˆç»©\hfutul{\hfutrule{6em}}%
	}
	\fancyfoot[C]{\small\vspace{0.5\baselineskip}ç¬¬~\hfutpage~é¡µ~~å…±~\hfutlastpage~é¡µ}
	\NewDocumentCommand\fillblank{O{35mm} O{9mm} m}{%
		\settodepth{\ltemp}{#3}%
		\uline{\makebox[#1]{\rule{0pt}{#2}\raisebox{\ltemp}{#3}}}%
	}
\fi
\ifhfut@Simple % ç®€å•æ¨¡å¼é¡µçœ‰é¡µè„š
	% \titleformat*{\section}{\bfseries\LARGE\hfutFontTitle}
	\RequirePackage{hyperref}
	\renewcommand\headrulewidth{0pt}
	\renewcommand\footrulewidth{0pt}
	\renewcommand{\maketitle}{%
	\phantomsection
	\addcontentsline{toc}{section}{\hfut@BiaoTi}
		\begin{center}\bfseries
			\makebox[\linewidth][s]{\LARGE\hfutFontTitle~\hfut@BiaoTi~}
			
			\vspace{6pt}%
			\makebox[\linewidth]{\large\hfutFontHead~
				\hfill \hfut@XueNian{}å­¦å¹´ç¬¬\hfut@XueQi{}å­¦æœŸ
				\hspace{\stretch{3}} \hfut@KeChengMingCheng(\hfut@KeChengDaiMa)
				\hfill~
			}
		\end{center}
	}
	\fancyfoot[C]{\small{}ç¬¬~\hfutpage~é¡µ~~å…±~\hfutlastpage~é¡µ}
	\NewDocumentCommand\fillblank{O{35mm} O{5mm} m}{%
		\settodepth{\ltemp}{#3}%
		\uline{\makebox[#1]{\rule{0pt}{#2}\raisebox{\ltemp}{#3}}}%
	}
\fi
% é¢˜å·åŠ&nbsp;ç²—
\renewcommand{\labelenumi}{{\bfseries \theenumi.}}
% é¢˜å¹²
\newcommand\tigan[1]{\noindent{\large\textbf{#1}}}
% æ‰“åˆ†æ&nbsp;
\newcommand\scorebox{%
	\vspace{0.5\baselineskip}\noindent%
	\begin{tikzpicture}[overlay,xshift=13.8cm,yshift=-1.6cm]%
		\draw (0,0) rectangle (3.6,2);%
		\draw (1.8,0)--(1.8,2);%
		\draw (0,1)--(3.6,1);%
		\draw (0.9,1.5) node {\textbf{\normalsize å¾—åˆ†}};%
		\draw (2.7,1.5) node {\textbf{\normalsize é˜…å·äºº}};%
	\end{tikzpicture}%
}
% ç­”é¢˜çº¸æç¤ºä¿¡æ¯
\newcommand\notice{%
	\noindent\textbf{\small è€ƒç”Ÿæ³¨æ„äº‹é¡¹ï¼š\\%
	\indent 1. æœ¬è¯•å·åˆ†è¯•é¢˜ä¸Žç­”å·ä¸¤éƒ¨åˆ†ï¼›\\%
	\indent 2. æ‰€æœ‰è¯•é¢˜çš„è§£ç­”ï¼ˆåŒ…æ‹¬é€‰æ‹©ã€å¡«ç©ºï¼‰å¿…é¡»å†™åœ¨ä¸“ç”¨ç­”å·çº¸ä¸Šï¼Œåœ¨è¯•é¢˜ä¸Šç›´æŽ¥ä½œç­”ä¸€å¾‹æ—&nbsp;æ•ˆï¼›\\%
	\indent 3. è€ƒè¯•ç»“æŸåŽï¼Œå¿…é¡»å°†è¯•é¢˜ã€ç­”å·æ•´ç†ä¸Šäº¤ï¼Œä¸å¾—å°†è¯•é¢˜å¸¦ç¦»è€ƒåœºï¼›\\%
	\indent 4. è€ƒç”ŸåŠ¡å¿…è®¤çœŸå¡«å†™ç­çº§ã€å§“åã€å­¦å·ç­‰ä¿¡æ¯ã€‚}\par%
	{\leavevmode\xleaders\hbox{\rule[4pt]{8pt}{0.5pt}\,}\hfill\null}%
}
% å¡«ç©ºé¢˜
\newlength{\lxxmax}
\newlength{\lquar}
\newlength{\lhalf}
\newlength{\lfull}
% é€‰æ‹©é¢˜, æ&nbsp;¹æ®é€‰é¡¹å†…å®¹é•¿åº¦è‡ªåŠ¨æŽ’ç‰ˆ
\newcounter{lxxtype}
\NewDocumentCommand\xx{O{0} m m m m}{%
	\setlength{\lfull}{\columnwidth}%
	\addtolength{\lfull}{-\leftmargin}%
	\setlength{\lhalf}{0.5\lfull}%
	\setlength{\lquar}{0.25\lfull}%
	\setcounter{lxxtype}{0}%
	\ifnum#1=1\setcounter{lxxtype}{1}\fi%
	\ifnum#1=2\setcounter{lxxtype}{2}\fi%
	\ifnum#1=4\setcounter{lxxtype}{4}\fi%
	\settowidth{\lxxmax}{A.~#2~}% èŽ·å–æœ€é•¿é€‰é¡¹é•¿åº¦
	\settowidth{\ltemp}{B.~#3~}%
	\ifdimcomp\ltemp&gt;\lxxmax{\setlength{\lxxmax}{\ltemp}}{}%
	\settowidth{\ltemp}{C.~#4~}%
	\ifdimcomp\ltemp&gt;\lxxmax{\setlength{\lxxmax}{\ltemp}}{}%
	\settowidth{\ltemp}{D.~#5~}%
	\ifdimcomp\ltemp&gt;\lxxmax{\setlength{\lxxmax}{\ltemp}}{}%
	\ifnum\value{lxxtype}=0%
		\setcounter{lxxtype}{4}%
		\ifdimcomp\lxxmax&gt;\lquar{\setcounter{lxxtype}{2}}{}%
		\ifnum\value{lxxtype}=2%
			\ifdimcomp\lxxmax&gt;\lhalf{\setcounter{lxxtype}{1}}{}%
		\fi%
	\fi%
	\vspace{5pt}%
	\ifnum\value{lxxtype}=1%
		\\\makebox[\lfull][l]{A.~#2}%
		\\\makebox[\lfull][l]{B.~#3}%
		\\\makebox[\lfull][l]{C.~#4}%
		\\\makebox[\lfull][l]{D.~#5}%
	\fi%
	\ifnum\value{lxxtype}=2%
		\\\makebox[\lhalf][l]{A.~#2}%
			\makebox[\lhalf][l]{B.~#3}%
		\\\makebox[\lhalf][l]{C.~#4}%
			\makebox[\lhalf][l]{D.~#5}%
	\fi%
	\ifnum\value{lxxtype}=4%
		\\\makebox[\lquar][l]{A.~#2}% 
			\makebox[\lquar][l]{B.~#3}%
			\makebox[\lquar][l]{C.~#4}%
			\makebox[\lquar][l]{D.~#5}%
	\fi%
}
% é€‰æ‹©é¢˜ç­”é¢˜æ¡†
\newcommand\xuanzeti[2]{%
	\begin{tikzpicture}%
		\draw (0,0) rectangle (1.8,2);%
		\draw (0,1)--(1.8,1);%
		\draw (0.9,0.5) node {#2} (0.9,1.5) node {\textbf{#1}};%
	\end{tikzpicture}%
}
% å¾—åˆ†ç‚¹å‘½ä»¤ https://ask.latexstudio.net/ask/question/7557.html
\makeatletter
\ExplSyntaxOn
\zref@require@unique
\NewDocumentCommand{\examscore}{O{} m}{
	\mode_if_math:TF
		{ \@@_math_cdotfill:n {\text{#2}} }
		{ \__examzh_cdotfill: #2 }
	\mode_if_math:F{
		\ignorespaces
	}
}
\cs_new:Npn \__examzh_cdotfill:
{
	\mode_leave_vertical:
	\cleaders \hb@xt@ .44em {\hss $\cdot$ \hss} \hfill
	\kern\z@
}
\cs_new_protected:Npn \@@_math_cdotfill:n #1
{
	\stepcounter { zref@unique }
	\hbox_overlap_right:n
	{
		\zsaveposx { \thezref@unique L }
		\zref@ifrefundefined { \thezref@unique R }
		{ }
		{
			\cleaders
			\hbox_to_wd:nn { .44em } { \hss $\cdot$ \hss }
			\skip_horizontal:n
			{
				\zposx { \thezref@unique R } sp
				- \zposx { \thezref@unique L } sp
			}
		}
	}
	\tag * { \zsaveposx { \thezref@unique R } #1 }
}
\ExplSyntaxOff
\makeatother
\newcommand\Score[1]{~~~\examscore{#1}}
\newcommand\score[1]{~~~\examscore{(#1åˆ†)}}
\renewcommand\le{\leqslant}
\renewcommand\ge{\geqslant}

</pre></body></html>