LaTeX大学生数学建模模板

大学生数模竞赛LaTeX模板分享

在LaTeX交流群群文件下载的模板,但编译出现了一些问题,本人作了如下修改,由于是我作练习的模板,所以加了很多模板,读者自己斟酌。

\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{cumcmthesis}
              [2015/08/22 v2.0
 Standard LaTeX document class]
%% Inital Code 
\newif\if@mcm@bwprint\@mcm@bwprintfalse
% tokens definition
%%%% 承诺书
\newcommand\mcm@tokens@keywords{}
\newcommand*\mcm@tokens@tihao{}
\newcommand*\mcm@tokens@baominghao{}
\newcommand*\mcm@tokens@schoolname{}
\newcommand*\mcm@tokens@membera{}
\newcommand*\mcm@tokens@memberb{}
\newcommand*\mcm@tokens@memberc{}
\newcommand*\mcm@tokens@supervisor{}
\newcommand*\mcm@tokens@yearinput{}
\newcommand*\mcm@tokens@monthinput{}
\newcommand*\mcm@tokens@dayinput{}
%%%% 编号专用页
% 没有
%% Declaration of Options 
\DeclareOption{colorprint}{\@mcm@bwprintfalse}
\DeclareOption{bwprint}{\@mcm@bwprinttrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
%% Executing of Options
\ExecuteOptions{colorprint}
\ProcessOptions\relax
%% Loading Class
\LoadClass[a4paper,12pt]{article}
%% Loading Package
\RequirePackage{ifxetex}
\RequireXeTeX
\ifxetex\else
\ClassError{mcmthesis}{You must use the `xelatex' driver\MessageBreak Please choose `xelatex'}{%
Just choose `xelatex', no `pdflatex' or `latex' and so on.}
\fi
% 支持中文的 ctex 宏包
\RequirePackage{ctex}
% 页面布局
\RequirePackage{geometry}
% 数学宏包
\RequirePackage{amsmath}
\RequirePackage{amsfonts}
\RequirePackage{amssymb}
\RequirePackage{bm}
% 设置字体
\RequirePackage{fontspec}
% 设置颜色
\RequirePackage{xcolor}
% 插入图片
\RequirePackage{graphicx}
% 表格
\RequirePackage{array}
%% 长表格
\RequirePackage{longtable}
%% booktabs 提供了\toprule 等命令.
\RequirePackage{booktabs}
%% multirow 支持在表格中跨行
\RequirePackage{multirow}
%% 调整间隔, 让表格更好看些
\RequirePackage{bigstrut}
%% 在跨行表格中输入定界符
\RequirePackage{bigdelim}
% 保护脆落命令
\RequirePackage{cprotect}
% 设置代码环境
\RequirePackage{listings}
% 首行缩进
\RequirePackage{indentfirst}
% 设置浮动体的标题
\RequirePackage{caption}
% 定制列表环境
\RequirePackage{enumitem}
% 下划线 
\RequirePackage{ulem}
% 尺寸计算
\RequirePackage{calc}

% 超链接 hyperref 的设置
\RequirePackage{hyperref}
%% Document Layout
% 页面布局
\geometry{top=25mm,bottom=20mm,left=25mm,right=25mm}
\renewcommand*{\baselinestretch}{1.38}
% 修改tabular 环境, 设置表格中的行间距为正文行间距.
\let\mcm@oldtabular\tabular
\let\mcm@endoldtabular\endtabular
\renewenvironment{tabular}%
    {\bgroup%
    \renewcommand{\arraystretch}{1.38}%
    \mcm@oldtabular}%
    {\mcm@endoldtabular\egroup}
% 每行缩进两个汉字
\setlength\parindent{2em}
% 设置字体
\setmainfont{Times New Roman}
\setmonofont{Courier New}
\setsansfont{Arial}
\renewcommand\normalsize{%
    \@setfontsize\normalsize{12.05}{14.45}%
    \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
    \abovedisplayshortskip \z@ \@plus3\p@
    \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@}
% 数学环境, 定理等设置
\newtheorem{definition}{\mcm@cap@definition}
\newtheorem{theorem}{\mcm@cap@theorem}
\newtheorem{lemma}{\mcm@cap@lemma}
\newtheorem{corollary}{\mcm@cap@corollary}
\newtheorem{assumption}{\mcm@cap@assumption}
\newtheorem{conjecture}{\mcm@cap@conjecture}
\newtheorem{axiom}{\mcm@cap@axiom}
\newtheorem{principle}{\mcm@cap@principle}
\newtheorem{problem}{\mcm@cap@problem}
\newtheorem{example}{\mcm@cap@example}
\newtheorem{proof}{\mcm@cap@proof}
\newtheorem{solution}{\mcm@cap@solution}

% 浮动环境设置
% 默认情况下, \LaTeX{} 要求每页的文字至少占据 20%,否则该页就只单独放置一个浮动环境,
% 而这通常不是我们想要的, 我们将这个要求降低到 5%.
 \renewcommand*{\textfraction}{0.05}
% 有时如果多个浮动环境连续放在一起, \LaTeX{}
% 会将它们分在几个不同页,即使它们可在同一页放
% 得下. 我们可以通过修改 |\topfraction| 和 |\bottomfraction| 分别设置顶端和底端的浮
% 动环境的最大比例.
 \renewcommand*{\topfraction}{0.9}
 \renewcommand*{\bottomfraction}{0.8}
% 有时\LaTeX{}会把一个浮动环境单独放在一页,
% 我们要求这个环境至少要占据 85% 才能单独放在一页.
% 注意:  |\floatpagefraction| 的数值必须小于 |\topfraction|.
 \renewcommand*{\floatpagefraction}{0.85}
% 关于图片 graphicx
 % 如果图片没有指定后缀, 依次按下列顺序搜索
\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png}
 % 设置图表搜索路径, 可以给图表文件夹取如下名字
\graphicspath{{figures/}{figure/}{pictures/}%
  {picture/}{pic/}{pics/}{image/}{images/}}
% 图表标题
\DeclareCaptionFont{song}{\songti}
\DeclareCaptionFont{minusfour}{\zihao{-4}}
\captionsetup[figure]{%
    format=hang,   % 标题从第二行开始都有缩进, 应该和 justification=raggedright 的效果一样.
    labelsep=quad, % 分隔符是一个空格
    font={song,minusfour,bf}, % 图的字体, 宋体小四
    position=bottom % position=bottom, 不代表标题放在下面, 标题仍放在你放\caption的位置.
}
\captionsetup[table]{%
    format=hang,   % 标题从第二行开始都有缩进, 应该和 justification=raggedright 的效果一样.
    labelsep=quad, % 分隔符是一个空格
    font={song,minusfour,bf}, % 表的字体, 宋体小四
    position=top % position=bottom, 不代表标题放在下面, 标题仍放在你放\caption的位置.
}
% 列表环境设置
\setlist{%
    topsep=0.3em, % 列表顶端的垂直空白
    partopsep=0pt, % 列表环境前面紧接着一个空白行时其顶端的额外垂直空白
    itemsep=0ex plus 0.1ex, % 列表项之间的额外垂直空白
    parsep=0pt, % 列表项内的段落之间的垂直空白
    leftmargin=1.5em, % 环境的左边界和列表之间的水平距离
    rightmargin=0em, % 环境的右边界和列表之间的水平距离
    labelsep=0.5em, % 包含标签的盒子与列表项的第一行文本之间的间隔
    labelwidth=2em % 包含标签的盒子的正常宽度;若实际宽度更宽,则使用实际宽度。
}

% 超链接
\AtBeginDocument{%
    \hypersetup{%
        % unicode=false, % hyperref 和 xetex 同时使用时不能开启 Unicode 选项.
        hyperfootnotes=true,
        hyperindex=true,
        colorlinks=true,
        bookmarksnumbered=true,
        bookmarksopen=true,
        bookmarksopenlevel=0,
        breaklinks=true}%
}
\if@mcm@bwprint
\AtBeginDocument{\hypersetup{hidelinks}}
\else\relax\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Document Markup

% 生成封面, 使用\maketitle
\renewcommand{\maketitle}{\par
    \begingroup
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \endgroup
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
\def\@maketitle{%
  \newpage
  \null
 % 承诺书
 \vskip2ex
  \thispagestyle{empty}
  {\zihao{4}\mcm@commit@string@headname\\[-3pt]
  \noindent\rule{\textwidth-1.34em}{1pt}\par}
  \begin{center}%
    {\zihao{-3}\bfseries\heiti \mcm@commit@string@titlea \par}%
    {\vskip1ex\zihao{3}\bfseries\songti \mcm@commit@string@titleb \par}
  \end{center}
    {\zihao{-4} \mcm@commit@string@contents \par}
    {\vskip1ex\zihao{-4}
    \renewcommand{\ULthickness}{0.4pt}\setlength{\ULdepth}{2pt}
    \hspace*{2em}\mcm@commit@string@problemnum\uline{\hspace{1em}\mcm@tokens@tihao\hfill}\makebox[0.66em]{}\par
    \mcm@commit@string@signupnum\uline{\hspace{1em}\mcm@tokens@baominghao\hfill}\makebox[0.66em]{}\par
    \mcm@commit@string@schoolname\uline{\hfill\mcm@tokens@schoolname\hfill}\makebox[0.66em]{}\par
    \newlength{\mcm@lenB}
    \settowidth{\mcm@lenB}{\mcm@commit@string@membername\hspace{1em}1.}
    \setlength{\mcm@lenB}{\textwidth-\mcm@lenB}
    % 不这样做右边难以对齐!
    \mcm@commit@string@membername     
    \begin{minipage}[t]{\mcm@lenB}
   	1.\uline{\hspace{1em}\mcm@tokens@membera\hfill} \makebox[0.46em]{}\par
   	2.\uline{\hspace{1em}\mcm@tokens@memberb\hfill} \makebox[0.46em]{}\par
   	3.\uline{\hspace{1em}\mcm@tokens@memberc\hfill} \makebox[0.46em]{}\par
   \end{minipage}\par\vskip1ex
    \mcm@commit@string@supervisorname\uline{\hspace{1em}\mcm@tokens@supervisor\hfill}\makebox[0.66em]{}
    %{\kaishu\mcm@commit@string@inform\par}
    \vskip2ex
    \newlength{\mcm@lenA}
    \settowidth{\mcm@lenA}{请仔细核对,提交后将不再允许做任何修改。如}% 虽然"日期"刚好在"错误"下面, 但注意"日期"还会缩进, 所以要省去"填写""两字
    \hspace*{\mcm@lenA}\mcm@commit@string@date\hspace{0.5em}\uline{\hfill\hspace{1em}\mcm@tokens@yearinput\hspace{1em}\hfill}%
    \mcm@commit@string@year\uline{\hfill\mcm@tokens@monthinput\hfill}\mcm@commit@string@month%
    \uline{\hfill\mcm@tokens@dayinput\hfill}\mcm@commit@string@day\makebox[1em]{}\par}
    \vskip1ex
    {\kaishu\bfseries\mcm@commit@string@inform\par}
    \vfill
    \null
% 编号专用页
    \makeothertitle
    }

%% 定义 编号专用页
\def\makeothertitle{%
\par
\newpage
\null
\thispagestyle{empty}
{\zihao{4}\mcm@numberpage@string@headname\\[-5pt]
  \noindent\hspace*{0.67em}\rule{\textwidth-1.33em}{1pt}\par}
\begin{center}
{\zihao{4}\bfseries\heiti \mcm@numberpage@string@titlea\par}
{\vskip1ex\zihao{3}\bfseries\songti \mcm@numberpage@string@titleb\par}
\end{center}\par
{%
\zihao{4}
\vskip3em
\hspace*{2em}\mcm@numberpage@string@appraiselog
\par
\newlength{\mcm@lenC}
\setlength{\mcm@lenC}{\textwidth-8.72em}
\setlength{\mcm@lenC}{\mcm@lenC/6}
\newlength{\mcm@lenD}
\settoheight{\mcm@lenD}{\mcm@numberpage@string@reviewer}
\setlength{\mcm@lenD}{\mcm@lenD+2em}
\newlength{\mcm@lenF}
\settoheight{\mcm@lenF}{\mcm@numberpage@string@remarks}
\setlength{\mcm@lenF}{\mcm@lenF+2em}
\newcolumntype{P}{@{}p{\mcm@lenC}@{}}
\hspace*{1.5em}\begin{tabular}{|!{\hspace{4pt}}c!{\hspace{4pt}}|*{6}{P|}}
 \hline
 \rule{0pt}{\mcm@lenD}\raisebox{0.6em}[0pt][0pt]{\mcm@numberpage@string@reviewer} & & & & & &  \\\cline{1-7}
 \rule{0pt}{\mcm@lenF}\raisebox{0.6em}[0pt][0pt]{\mcm@numberpage@string@remarks} & & & & & &  \\
 \hline
\end{tabular}\par
\vskip5em
\hspace*{2em}\mcm@numberpage@string@unifiednum
\vskip7em
\hspace*{2em}\mcm@numberpage@string@countrynum}
\vskip7em
{\zihao{-4}\kaishu\bfseries\mcm@numberpage@string@inform\par}
\vfill
\null
\newpage
\null
\setcounter{page}{1}
{\centering \zihao{3}\bfseries \@title\par}
\vskip1ex
}

% 中文标题名称设置
\renewcommand\contentsname{\mcm@cap@contentsname}
\renewcommand\listfigurename{\mcm@cap@listfigurename}
\renewcommand\listtablename{\mcm@cap@listtablename}
\renewcommand\refname{\mcm@cap@refname}
\renewcommand\indexname{\mcm@cap@indexname}
\renewcommand\figurename{\mcm@cap@figurename}
\renewcommand\tablename{\mcm@cap@tablename}
\renewcommand\appendixname{\mcm@cap@appendixname}
\renewcommand\abstractname{\mcm@cap@abstractname}

% 中文标题格式设置
% 目录深度
\setcounter{secnumdepth}{2}
% 节标题格式, 居中, 使用\chinese命令修改计数器, \kern 使得数字和内容不至于太远
\renewcommand\thesection{\chinese{section}\kern-1em}
\renewcommand\thesubsection{\arabic{section}\thinspace.\thinspace\arabic{subsection}}
\renewcommand\thesubsubsection{\thesubsection\thinspace.\thinspace\arabic{subsubsection}}
\renewcommand\section{\@startsection{section}{1}{\z@}%
    {-3.5ex \@plus -1ex \@minus -.2ex}%
    {2.3ex \@plus.2ex}%
    {\centering\normalfont\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
    {-3.25ex\@plus -1ex \@minus -.2ex}%
    {1.5ex \@plus .2ex}%
    {\normalfont\large\bfseries}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
    {-3.25ex\@plus -1ex \@minus -.2ex}%
    {1.5ex \@plus .2ex}%
    {\normalfont\normalsize\bfseries}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
    {3.25ex \@plus1ex \@minus.2ex}%
    {-1em}%
    {\normalfont\normalsize\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
     {3.25ex \@plus1ex \@minus .2ex}%
     {-1em}%
     {\normalfont\normalsize\bfseries}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Define new environment and command
%% 摘要两个字设置为 4 号.
%% 定义摘要环境
\renewenvironment{abstract}{%
    \if@twocolumn
        \section*{\abstractname}%
    \else
     \begin{center}%
	{\zihao{4}\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
	 \end{center}%
     \quotation
    \fi}
    {\if@twocolumn\else\endquotation\newpage\null\fi}
\renewenvironment{quotation}
    {\list{}{\listparindent 2em%
     \itemindent \listparindent
     \rightmargin\z@
     \leftmargin\z@
     \parsep \z@ \@plus\p@}%
    \item\relax}
    {\endlist}

\newcommand\keywords[1]{%
    \renewcommand{\mcm@tokens@keywords}{#1}
    \par
    \vskip1ex
    {\noindent\zihao{-4}\heiti\mcm@cap@keywordsname:}~{\mcm@tokens@keywords}
    }
% 定义附录  
\renewcommand\appendix{\par
    \setcounter{section}{0}%
     \setcounter{subsection}{0}%
    \gdef\thesection{\appendixname\@Alph\c@section}}        
% 重定义参考文献环境
\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} 

\newcommand*\tihao[1]{%
    \renewcommand{\mcm@tokens@tihao}{#1}}
\newcommand*\baominghao[1]{%
    \renewcommand{\mcm@tokens@baominghao}{#1}}
\newcommand*\schoolname[1]{%
    \renewcommand{\mcm@tokens@schoolname}{#1}}
\newcommand*\membera[1]{%
    \renewcommand{\mcm@tokens@membera}{#1}}
\newcommand*\memberb[1]{%
    \renewcommand{\mcm@tokens@memberb}{#1}}
\newcommand*\memberc[1]{%
    \renewcommand{\mcm@tokens@memberc}{#1}}
\newcommand*\supervisor[1]{%
    \renewcommand{\mcm@tokens@supervisor}{#1}}
\newcommand*\yearinput[1]{%
    \renewcommand{\mcm@tokens@yearinput}{#1}}
\newcommand*\monthinput[1]{%
    \renewcommand{\mcm@tokens@monthinput}{#1}}
\newcommand*\dayinput[1]{%
    \renewcommand{\mcm@tokens@dayinput}{#1}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Initialization 
 %%%数学定理相关的常量
\newcommand*{\mcm@cap@definition}{定义}
\newcommand*{\mcm@cap@theorem}{定理}
\newcommand*{\mcm@cap@lemma}{引理}
\newcommand*{\mcm@cap@corollary}{推论}
\newcommand*{\mcm@cap@assumption}{假设}
\newcommand*{\mcm@cap@conjecture}{猜想}
\newcommand*{\mcm@cap@axiom}{公理}
\newcommand*{\mcm@cap@principle}{定律}
\newcommand*{\mcm@cap@problem}{问题}
\newcommand*{\mcm@cap@example}{}
\newcommand*{\mcm@cap@proof}{证明}
\newcommand*{\mcm@cap@solution}{}
 %%%  中文标题名称
\newcommand*{\mcm@cap@contentsname}{目录}
\newcommand*{\mcm@cap@listfigurename}{插图清单}
\newcommand*{\mcm@cap@listtablename}{附表清单}
\newcommand*{\mcm@cap@refname}{参考文献}
\newcommand*{\mcm@cap@indexname}{索引}
\newcommand*{\mcm@cap@figurename}{}
\newcommand*{\mcm@cap@tablename}{}
\newcommand*{\mcm@cap@appendixname}{附录}
\newcommand*{\mcm@cap@abstractname}{摘要}
 %%%  中文关键字
\newcommand*{\mcm@cap@keywordsname}{关键字}

 %%% 承诺书中的常量
\newcommand*\mcm@commit@string@headname{赛区评阅编号(由赛区组委会填写):}
\newcommand*\mcm@commit@string@titlea{\the\year 高教社杯全国大学生数学建模竞赛}
\newcommand*\mcm@commit@string@titleb{\hspace{1em}\hspace{1em}}
\newcommand\mcm@commit@string@contents{\quotation
 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》%
\hspace*{-0.6em}(以下简称为“竞赛章程和参赛规则”,\hspace{-0.2em}可从全国大学生数学建模竞赛网站下载)。

我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)%
与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

 我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料%
(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。%
如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。

 我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示%
(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。
\endquotation
}
\newcommand*\mcm@commit@string@problemnum{我们参赛选择的题号(从A/B/C/D中选择一项填写):}
\newcommand*\mcm@commit@string@signupnum{我们的报名参赛队号(12位数字全国统一编号):}
\newcommand*\mcm@commit@string@schoolname{参赛学校(完整的学校全称,不含院系名):}
\newcommand*\mcm@commit@string@membername{参赛队员 (打印并签名) :}
\newcommand*\mcm@commit@string@supervisorname{指导教师或指导教师组负责人  (打印并签名):}
\newcommand\mcm@commit@string@inform{\quotation
\noindent(此承诺书打印签名后作为纸质论文的封面,注意电子版论文中不得出现此页。%
以上内容请仔细核对,如填写错误,论文可能被取消评奖资格。)
\endquotation
}
\newcommand*\mcm@commit@string@date{日期:}
\newcommand*\mcm@commit@string@year{}
\newcommand*\mcm@commit@string@month{}
\newcommand*\mcm@commit@string@day{}
\newcommand*\mcm@commit@string@appraisenum{赛区评阅编号(由赛区组委会评阅前进行编号):}

 %%% 编号专用页中的常量
\newcommand*\mcm@numberpage@string@headname{赛区评阅编号(由赛区组委会填写):}
\newcommand*\mcm@numberpage@string@titlea{\the\year 高教社杯全国大学生数学建模竞赛}
\newcommand*\mcm@numberpage@string@titleb{\hspace{.5em}\hspace{.5em}\hspace{.5em}\hspace{.5em}}
\newcommand*\mcm@numberpage@string@appraiselog{赛区评阅记录(可供赛区评阅时使用):}
\newcommand\mcm@numberpage@string@reviewer{\shortstack{\\\\}}
\newcommand\mcm@numberpage@string@remarks{\shortstack{\\}}
\newcommand*\mcm@numberpage@string@unifiednum{送全国评阅统一编号(由赛区组委会填写):}
\newcommand*\mcm@numberpage@string@countrynum{全国评阅随机编号(由全国组委会填写):}
\newcommand\mcm@numberpage@string@inform{\quotation
\noindent(此编号专用页仅供赛区和全国评阅使用,参赛队打印后装订到纸质论文的第二页上。%
注意电子版论文中不得出现此页,即电子版论文的第一页为标题、摘要和关键词页。)
\endquotation
}


\endinput

上面可以自行保存为.cls。
下面是编译块:

% !Mode:: "TeX:UTF-8"
%!TEX program  = xelatex
\documentclass[bwprint]{cumcmthesis}
%===================Package Area==================%
\usepackage{enumitem}
\usepackage{upgreek}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{bm}
%\usepackage{pxfonts}
%直立体pai打印  命令 \piup  
\usepackage{enumerate}
\usepackage{mdwlist}
\usepackage{tikz,mathpazo}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage{flowchart}
\usepackage{python}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{array}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{lipsum}
\setlength{\parindent}{2em}
\usepackage[numbers,super,square,sort&compress]{natbib}
\setlength{\bibsep}{0.5ex}  %vertical spacing between references
\setmainfont{Times New Roman}
\newcommand{\upcite}[1]{\cite{#1}}
\input{isomath}
%\
%参考文献用\upcite{a}

\makeatletter
\def\@listi{%
  \leftmargin\leftmargini
  \parsep 0pt%
  \topsep \parsep
  \itemsep \parsep}
\let\@listI\@listi
\@listi
\def\@listii{%
  \leftmargin\leftmarginii
  \labelwidth\leftmarginii
  \advance\labelwidth-\labelsep
  \parsep 0pt%
  \topsep \parsep
  \itemsep \parsep}
\def\@listiii{%
  \leftmargin\leftmarginiii
  \labelwidth\leftmarginiii
  \advance\labelwidth-\labelsep
  \parsep 0pt%
  \topsep \parsep
  \itemsep \parsep
  \partopsep \p@ \@plus\z@ \@minus\p@}


%浮动环境定制
\setlength{\@fptop}{5pt}
\setlength{\floatsep}{10pt \@plus3pt \@minus1pt}
\setlength{\intextsep}{10pt \@plus3pt \@minus2pt}
\setlength{\textfloatsep}{10pt \@plus3pt \@minus2pt}
\makeatother
\lstset{ %
    extendedchars=false,            % Shutdown no-ASCII compatible
    language=Matlab,                % choose the language of the code
    basicstyle=\normalsize\tt,    % the size of the fonts that are used for the code
    tabsize=3,                            % sets default tabsize to 3 spaces
    numbers=left,                   % where to put the line-numbers
    numberstyle=\small,              % the size of the fonts that are used for the line-numbers
    stepnumber=1,                   % the step between two line-numbers. If it's 1 each line
    % will be numbered
    numbersep=5pt,                  % how far the line-numbers are from the code   %
    keywordstyle=\color[rgb]{0,0,1}\bfseries,                % keywords
    commentstyle=\color[rgb]{0.133,0.545,0.133},    % comments
    stringstyle=\color[rgb]{0.627,0.126,0.941},      % strings
    backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color}
    showspaces=false,               % show spaces adding particular underscores
    showstringspaces=false,         % underline spaces within strings
    showtabs=false,                 % show tabs within strings adding particular underscores
    frame=single,                 % adds a frame around the code
    captionpos=b,                   % sets the caption-position to bottom
    breaklines=true,                % sets automatic line breaking
    breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
    title=\lstname,                 % show the filename of files included with \lstinputlisting;
    % also try caption instead of title
    mathescape=true,escapechar=?    % escape to latex with ?..?
    escapeinside={\%*}{*)},         % if you want to add a comment within your code
    %columns=fixed,                  % nice spacing
    %morestring=[m]',                % strings
    %morekeywords={%,...},%          % if you want to add more keywords to the set
    %    break,case,catch,continue,elseif,else,end,for,function,global,%
    %    if,otherwise,persistent,return,switch,try,while,...},%
}  %代码高亮

\hypersetup{pdfauthor={Emil Krøll}}

\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}  %三级标题
\newcommand{\deflabel}[1]{\bf #1\hfill}%
\newenvironment{myproblemlist}[1]%
{\begin{list}{}{\settowidth{\labelwidth}{\bf #1}%
			\setlength{\leftmargin}{\labelwidth}%
			\addtolength{\leftmargin}{\labelsep}%
			\renewcommand{\makelabel}{\deflabel}}}%
	{\end{list}}  %关键词描述
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}    %重定义表格内容
%国际标准组织(ISO)公式:
%1.用斜体表示向量,例如
%===================end==Package Area==================%


\title{ATM交易状态特征分析与异常检测}
\tihao{B}
\baominghao{11}
\schoolname{西安交通大学}
\membera{}
\memberb{}
\memberc{}
\supervisor{某老师}
\yearinput{2017}
\monthinput{8}
\dayinput{27}
\begin{document}
    \maketitle
 \begin{abstract}
    %\begin{myproblemlist}{针对问题一}
    %\item [针对问题一] 
    %\item [针对问题二] 
    %\item[针对问题三] 
    %\end{myproblemlist}
\keywords{ 特征提取 }
\end{abstract}

\section{问题重述}
\subsection{问题背景}
\subsection{问题提出}
%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{itemize}[itemindent=1em]
%\item 假设题中所给的数据获取方式和来源具有可靠性和真实性且对模型稳定性无影响。\par
%%\item 假设题中一月部分数据(与二三四月数据波动趋势明显不符)对整体模型的构建影响不大。\par
%%\item 假设题中所有原始数据具有实时性。\par
%%%%%%%%%%%%%%%%%%%%%%%%%%\end{itemize}
\section{符号说明及名词定义}
\begin{tabular}{cc}
	\hline
	\makebox[0.4\textwidth][c]{符号及名词}	&  \makebox[0.5\textwidth][c]{意义} \\ \hline
	$X(t)$	    & 真实数据 \\ \hline
	$Y(t)$	    & 训练样本  \\ \hline
	$M(t)$	    & 残差数据  \\ \hline
	$n(t)$	    & 趋势数据  \\ \hline
	$s(t)$	    & 季节数据  \\ \hline
	$o$         & 预测误差  \\ \hline
	$\alpha$	& 平滑参数一  \\ \hline
	$\beta$	    & 平滑参数二  \\ \hline
	$\gamma$    & 平滑参数三  \\ \hline
	$k$	        & 周期  \\ \hline
\multicolumn{2}{p{15cm}}{
\begin{myproblemlist}{季节因子}
	\item[季节因子] 观测值与预测值的比值
	\item[指数平滑] 通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进行预测
	\item[阈值]    指一个效应能够产生的最低值或最高值
\end{myproblemlist}}\\
\hline
\end{tabular}
\section{模型建立与求解}

%\begin{figure}[!htb]
%   \centering
%\begin{tikzpicture}[font={\sf \small}]
%\def \smbwd{2cm}
%\thispagestyle{empty}

%定义流程图的具体形状
%\node (start) at (0,0) [draw, terminal,minimum width=\smbwd, minimum height=0.5cm] {原始数据};      % 定义开始
%\node (getdata1) at (0,-1.5) [draw, predproc, align=left,minimum width=\smbwd,minimum height=1cm] {数据预处理};
%\node (getdata2) at (0,-3.5) [draw, predproc, align=left,minimum width=\smbwd,minimum height=1cm] {特征提取};
%\coordinate (point3) at (0,-4.75);
%\node (getdata3) at (0,-5.5) [draw, predproc, align=left,minimum width=\smbwd,minimum height=1cm] {模型设计};
%定义预处理过程,读取数据
%\node (decide) at (0,-7.5) [draw, storage, minimum width=\smbwd, minimum height=1cm] {预测器};  %定义判断条件
%\node (storage) at (0,-9.5) [draw, storage, minimum width=\smbwd, minimum height=1cm] {比较器};     %定义数据存储
%\node (process) at (4,-7.5) [draw, process, minimum width=\smbwd, minimum height=1cm] {真实数据};      %定义处理过程
%\coordinate (point1) at (0,-10.75);
%\node (end) at (0,-11.75) [draw, terminal,minimum width=\smbwd,minimum height=0.5cm] {结束};        %定义结束

%连接定义的形状,绘制流程图--表示垂直线,|表示箭头方向
%\draw[->] (start) -- (getdata1);
%\draw[->] (getdata1) -- (getdata2);
%\draw[->] (getdata2) -- (getdata3);
%\draw[->] (getdata3) -- node[right]{$X_t$} (decide);
%\draw[->] (decide) -- node[right]{$X_t^{'}$} (storage);
%\draw[->] (decide) -- (storage);
%\draw[->] (point3) -| node[above]{$Y_t$} (process);
%\draw[->] (process) |- (storage);
%\draw[->] (storage) -- (end);

%\end{tikzpicture}
%\caption{模型结构}\label{fig:one}
%\end{figure}
\subsection{数据预处理}
 这是书籍的参考\cite{name1}
aaa\cite{plain:myArticle}
\lipsum[5]

\bibliographystyle{plain}
\bibliography{bibtex-example}
\newpage

\appendix

\section{我的 MATLAB 源程序}
%\begin{lstlisting}
%\end{lstlisting}

\end{document}

你可能感兴趣的:(latex模板)