%% %% This is file `examples/hitart/reports/hithesisart.cls', %% generated with the docstrip utility. %% %% The original source files were: %% %% hithesis.dtx (with options: `artcls') %% %% This is a generated file. %% %% Copyright (C) 2017-2021 by Chu Yanshuo %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3a %% 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.3a or later is part of all distributions of LaTeX %% version 2004/10/01 or later. %% %% To produce the documentation run the original source files ending with `.dtx' %% through LaTeX. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{hithesisart} [2021/05/06 3.0.15 Harbin Institute of Technology Thesis Template] \RequirePackage{ifthen} \RequirePackage{kvoptions} \SetupKeyvalOptions{ family=hit, prefix=hit@, setkeys=\kvsetkeys} \newif\ifhit@bachelor \newif\ifhit@master \newif\ifhit@doctor \define@key{hit}{type}{% \hit@bachelorfalse \hit@masterfalse \hit@doctorfalse \expandafter\csname hit@#1true\endcsname} \newif\ifhit@shenzhen \newif\ifhit@weihai \newif\ifhit@harbin \define@key{hit}{campus}{% \hit@shenzhenfalse \hit@weihaifalse \hit@harbinfalse \expandafter\csname hit@#1true\endcsname} \ifhit@weihai\relax\else \ifhit@shenzhen\relax\else \hit@harbintrue \fi \fi \newif\ifhit@opening \newif\ifhit@midterm \define@key{hit}{stage}{% \hit@openingfalse \hit@midtermfalse \expandafter\csname hit@#1true\endcsname} \DeclareBoolOption[true]{raggedbottom} \DeclareBoolOption[false]{pifootnote} \DeclareBoolOption[false]{debug} \DeclareBoolOption[true]{toc} \DeclareBoolOption[true]{newtxmath} \DeclareStringOption{fontset} \DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexart}} \ProcessKeyvalOptions* \PassOptionsToPackage{no-math}{fontspec} \ifhit@bachelor\relax\else \ifhit@master\relax\else \ifhit@doctor\relax\else \ClassError{hithesisart}% { \MessageBreak Please specify thesis type in option: \MessageBreak type=[bachelor | master | doctor] } \fi \fi \fi \ifhit@opening\relax\else \ifhit@midterm\relax\else \ClassError{hithesisart}% { \MessageBreak Please specify stage in option: \MessageBreak stage= } \fi \fi \ifhit@doctor \ifhit@midterm \ifhit@shenzhen \ClassError{hithesisart}% { \MessageBreak This document class does not support midterm report for doctor in shenzhen campus. \MessageBreak please use \string\documentclass{hithesisartplus} } \fi \fi \fi \ifthenelse% {\equal{\hit@fontset}{}}% {% \PassOptionsToPackage{AutoFakeBold=2}{xeCJK} }% {% \ifthenelse% {\equal{\hit@fontset}{siyuan}}% {\relax}% {% \PassOptionsToPackage{AutoFakeBold=2}{xeCJK} }% \PassOptionsToClass{fontset=\hit@fontset}{ctexart} }% \LoadClass[a4paper,UTF8,zihao=-4,scheme=plain]{ctexart} \RequirePackage{etoolbox} \RequirePackage{ifxetex} \ifxetex \else \ClassError{hithesis}% {Please use: \MessageBreak xelatex}{} \fi \RequirePackage{xparse} \RequirePackage{amsmath} \RequirePackage[amsmath,thmmarks,hyperref]{ntheorem} \RequirePackage{amssymb} \RequirePackage[defaultsups]{newtxtext} \ifhit@newtxmath \RequirePackage{newtxmath} \fi \RequirePackage{courier} \RequirePackage{graphicx} \RequirePackage{pdfpages} \includepdfset{fitpaper=true} \RequirePackage{enumitem} %使用enumitem宏包,改变列表项的格式 \RequirePackage{environ} \ifhit@raggedbottom \RequirePackage[bottom,perpage,hang]{footmisc} \raggedbottom \else \RequirePackage[perpage,hang]{footmisc} \fi \ifhit@pifootnote \RequirePackage{pifont} \fi \RequirePackage{xeCJKfntef} \RequirePackage{longtable} \RequirePackage{booktabs} \RequirePackage[sort&compress,numbers]{natbib} \RequirePackage{hyperref} \hypersetup{% CJKbookmarks=true, linktoc=all, bookmarksnumbered=true, bookmarksopen=true, bookmarksopenlevel=1, breaklinks=true, colorlinks=false, plainpages=false, pdfborder=0 0 0} \urlstyle{same} \ifhit@debug \RequirePackage[showframe]{geometry} \else \RequirePackage{geometry} \fi \geometry{%根据PlutoThesis 原版定义而来 a4paper, % 210 * 297mm hcentering, ignoreall, nomarginpar, centering, text={150true mm,236true mm}, left=30true mm, head=5true mm, headsep=2true mm, footskip=0true mm, foot=5.2true mm } \ifhit@debug% \RequirePackage{layout} \RequirePackage{layouts} \RequirePackage{lineno} \fi \RequirePackage{fancyhdr} \RequirePackage{tabularx} \RequirePackage{varwidth} \RequirePackage{changepage} \RequirePackage{multicol} \RequirePackage[below]{placeins}%允许上一个section的浮动图形出现在下一个section的开始部分,还提供\FloatBarrier命令,使所有未处理的浮动图形立即被处理 \RequirePackage{flafter} % 使得所有浮动体不能被放置在其浮动环境之前,以免浮动体在引述它的文本之前出现. \RequirePackage{multirow} %使用Multirow宏包,使得表格可以合并多个row格 \RequirePackage{subfigure}%支持子图 %centerlast 设置最后一行是否居中 \RequirePackage[subfigure]{ccaption} %支持双语标题 \RequirePackage{xltxtra} \renewcommand\normalsize{% \@setfontsize\normalsize{12bp}{20.50398bp}% \abovedisplayskip=8pt \abovedisplayshortskip=8pt \belowdisplayskip=\abovedisplayskip \belowdisplayshortskip=\abovedisplayshortskip} \def\hit@def@fontsize#1#2{% \expandafter\newcommand\csname #1\endcsname[1][1.3]{% \fontsize{#2}{##1\dimexpr #2}\selectfont}} \hit@def@fontsize{dachu}{58bp} \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{banxiaosi}{13bp} \hit@def@fontsize{xiaosi}{12bp} \hit@def@fontsize{dawu}{11bp} \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} \ctexset{% section={ afterindent=true, beforeskip={7.5mm},%上下空0.5行 afterskip={7.5mm}, format={\heiti\xiaosan[1.25]}, aftername=\enspace, fixskip=true, break={}, }, subsection={ afterindent=true, beforeskip={6.5mm}, afterskip={6.5mm}, format={\heiti\sihao[1.25]}, aftername=\enspace, fixskip=true, break={}, }, subsubsection={ afterindent=true, beforeskip={3mm}, afterskip={3mm}, format={\heiti\normalsize}, aftername=\enspace, fixskip=true, break={}, }, paragraph/afterindent=true, subparagraph/afterindent=true } \def\hit@def@term#1{% \define@key{hit}{#1}{\csname #1\endcsname{##1}} \expandafter\gdef\csname #1\endcsname##1{% \expandafter\gdef\csname hit@#1\endcsname{##1}} \csname #1\endcsname{}} \hit@def@term{ctitlecover} %中文标题封面 \hit@def@term{csubject} \hit@def@term{cauthor} \hit@def@term{cstudentid} \hit@def@term{cclassid} \hit@def@term{caffil} \hit@def@term{csupervisor} \hit@def@term{cdate} \def\hit@parse@keywords#1{ \define@key{hit}{#1}{\csname #1\endcsname{##1}} \expandafter\gdef\csname hit@#1\endcsname{} \expandafter\gdef\csname #1\endcsname##1{ \@for\reserved@a:=##1\do{ \expandafter\ifx\csname hit@#1\endcsname\@empty\else \expandafter\g@addto@macro\csname hit@#1\endcsname{% \ignorespaces\csname hit@#1@separator\endcsname} \fi \expandafter\expandafter\expandafter\g@addto@macro% \expandafter\csname hit@#1\expandafter\endcsname\expandafter{\reserved@a}}}} \def\hitsetup{\kvsetkeys{hit}} \newcommand{\hit@report@titlepage@graduate}{ \ifthenelse% {\equal{\hit@fontset}{siyuan}}% {\xiaosi[1]\vspace*{0.65em}}% {\xiaosi[1]\textcolor[rgb]{1,1,1}{\songti{\hit@hi}}}% \vspace*{10mm} \begin{center} \kaishu\xiaoer\textbf{\hit@cschoolname\ifhit@shenzhen\hit@shenzhencampus\fi} \end{center} \vspace{5mm} \begin{center} \songti\erhao\textbf{\hit@cxuewei\hit@cthesisname \ifhit@opening \hit@stage@opening \else \ifhit@midterm \hit@stage@midterm \fi \fi \hit@stage@doctype } \end{center} \vspace{10mm} \parbox[t][3cm][t]{\textwidth}{ \begin{center} \songti\xiaoer\textbf{\hit@cthesistitleprefix\hit@title@csep\hit@ctitlecover} \end{center} } \parbox[b][3cm][t]{\textwidth}{ \begin{center}\songti\sanhao \renewcommand{\arraystretch}{2.1} \begin{tabular}{l@{\ \ }c} \textbf{\hit@graduate@caffiltitle} & \underline{\makebox[6.1cm]{\textbf{\hit@caffil}}}\\ \textbf{\hit@graduate@cmajortitle} & \underline{\makebox[6.1cm]{\textbf{\hit@csubject}}}\\ \textbf{\hit@graduate@supervisor} & \underline{\makebox[6.1cm]{\textbf{\hit@csupervisor}}}\\ \textbf{\hit@graduate@studenttitle} & \underline{\makebox[6.1cm]{\textbf{\hit@cauthor}}}\\ \textbf{\hit@graduate@studentid} & \underline{\makebox[6.1cm]{\textbf{\hit@cstudentid}}}\\ \textbf{\hit@graduate@datetitle} & \underline{\makebox[6.1cm]{\textbf{\hit@cdate}}}\\ \end{tabular}\renewcommand{\arraystretch}{1} \end{center} } \vfill \ifhit@harbin \hit@harbin@schoolbottommark \else \ifhit@shenzhen \hit@shenzhen@schoolbottommark \fi \fi } \newcommand{\hit@report@titlepage@bachelor}{ \ifthenelse% {\equal{\hit@fontset}{siyuan}}% {\xiaosi[1]\vspace*{0.65em}}% {\xiaosi[1]\textcolor[rgb]{1,1,1}{\songti{\hit@hi}}}% \vspace*{10mm} \begin{center} \includegraphics[width=6.2cm]{hitlogo} \end{center} \begin{center} \songti\xiaoyi\textbf{\hit@bachelor@cthesisname \ifhit@opening \hit@stage@opening \else \ifhit@midterm \hit@stage@midterm \fi \fi \hit@stage@doctype } \end{center} \vspace{15mm} \parbox[t][6.5cm][t]{\textwidth}{ \begin{center} \songti\xiaoer\textbf{\hit@cthesistitleprefix\hit@title@csep\hit@ctitlecover} \end{center} } \parbox[b][6cm][t]{\textwidth}{ \begin{center}\songti\sanhao \renewcommand{\arraystretch}{2.1} \begin{tabular}{l@{\ \ }c} \textbf{\hit@bachelor@cmajortitle} & \underline{\makebox[6.1cm]{\textbf{\hit@csubject}}}\\ \textbf{\hit@bachelor@cstudenttitle} & \underline{\makebox[6.1cm]{\textbf{\hit@cauthor}}}\\ \textbf{\hit@bachelor@cstudentidtitle} & \underline{\makebox[6.1cm]{\textbf{\hit@cstudentid}}}\\ \ifhit@weihai % 威海校区特有 \textbf{\hit@bachelor@cclass} & \underline{\makebox[6.1cm]{\textbf{\hit@cclassid}}}\\ \fi \textbf{\hit@bachelor@csupervisortitle} & \underline{\makebox[6.1cm]{\textbf{\hit@csupervisor}}}\\ \textbf{\hit@bachelor@cdatetitle} & \underline{\makebox[6.1cm]{\textbf{\hit@cdate}}}\\ \end{tabular}\renewcommand{\arraystretch}{1} \end{center} } \vfill \ifhit@weihai \relax \else \hit@harbin@bachelor@schoolbottommark \fi } \newcommand{\hit@report@backpage@bachelor}{ \thispagestyle{empty} \noindent\parbox[t][6.5cm][t]{\textwidth}{\hit@bachelor@teachercomment} \noindent\parbox[b][6cm][t]{\textwidth}{\hit@bachelor@teachersign\underline{\makebox[3cm]{}}\hfill\hit@bachelor@checkdate\underline{\makebox[3cm]{}}} } \renewcommand\tableofcontents{% \thispagestyle{empty} {\centering\section*{\contentsname}} \normalsize\@starttoc{toc} } \def\makecover{ \begin{titlepage} \ifhit@bachelor \hit@report@titlepage@bachelor \else \hit@report@titlepage@graduate \fi \clearpage \ifhit@toc \tableofcontents \clearpage \fi \end{titlepage} } \def\makebackcover{ \clearpage \hit@report@backpage@bachelor } \newcommand\bibstyle@numerical{\bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}} \newcommand\bibstyle@inline{\bibpunct{[}{]}{,}{n}{,}{\hit@inline@sep}} \citestyle{numerical} \DeclareRobustCommand\inlinecite{\@inlinecite} \def\@inlinecite#1{\begingroup\citestyle{inline}\let\@cite\NAT@citenum\citep{#1}\endgroup} \let\onlinecite\inlinecite \renewenvironment{thebibliography}[1]{% \list{\@biblabel{\@arabic\c@enumiv}}% {\renewcommand{\makelabel}[1]{##1\hfill} \settowidth{\labelwidth}{\@biblabel{#1}} \setlength{\labelsep}{0.5em} \setlength{\itemindent}{0pt} \setlength{\leftmargin}{\labelsep+\labelwidth} \addtolength{\itemsep}{-0.8em} \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv}}% \sloppy\frenchspacing \flushbottom \clubpenalty0 \@clubpenalty \clubpenalty \widowpenalty0% \interlinepenalty-50% \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist\frenchspacing} \AtEndOfClass{\input{hithesisart.cfg}} \AtEndOfClass{\sloppy} \endinput %% %% End of file `examples/hitart/reports/hithesisart.cls'.