开题报告定稿

This commit is contained in:
2025-05-27 22:20:35 +08:00
commit 35bc388fb3
24 changed files with 161563 additions and 0 deletions

475
hithesisart.cls Normal file
View File

@ -0,0 +1,475 @@
%%
%% 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 <yanshuoc@gmail.com>
%%
%% 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=<opening|midterm>
}
\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'.