%%
%% This is file `mcmthesis.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% mcmthesis.dtx (with options: `class')
%%
%% -----------------------------------
%% This is a generated file.
%%
%% Copyright (C) 2010 -- 2015 by latexstudio
%% 2014 -- 2019 by Liam Huang
%% 2019 -- present by latexstudio.net
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% 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.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% The Current Maintainer of this work is latexstudio.net.
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{mcmthesis}
[2024/01/22 v6.3.3 The Thesis Template Designed For MCM/ICM]
\typeout{The Thesis Template Designed For MCM/ICM}
\def\MCMversion{v6.3.3}
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\define@boolkey{MCM}[MCM@opt@]{CTeX}[false]{}
\define@boolkey{MCM}[MCM@opt@]{titlepage}[true]{}
\define@boolkey{MCM}[MCM@opt@]{abstract}[true]{}
\define@boolkey{MCM}[MCM@opt@]{sheet}[true]{}
\define@boolkey{MCM}[MCM@opt@]{titleinsheet}[false]{}
\define@boolkey{MCM}[MCM@opt@]{keywordsinsheet}[false]{}
\define@cmdkeys{MCM}[MCM@opt@]{tcn,problem,tstyle}
\define@key{MCM}{tcn}[0000]{\gdef\MCM@opt@tcn{#1}}
\define@key{MCM}{problem}[A]{\gdef\MCM@opt@problem{#1}}
\define@key{MCM}{tstyle}[A]{\gdef\MCM@opt@tstyle{#1}}
\setkeys{MCM}{tcn=0000,problem=B,tstyle=\color{red}\bfseries}
\define@key{mcmthesis.cls}{tcn}[0000]{\gdef\MCM@opt@tcn{#1}}
\define@key{mcmthesis.cls}{problem}[A]{\gdef\MCM@opt@problem{#1}}
\define@key{mcmthesis.cls}{tstyle}[A]{\gdef\MCM@opt@tstyle{#1}}
\define@boolkey{mcmthesis.cls}[MCM@opt@]{CTeX}{}
\define@boolkey{mcmthesis.cls}[MCM@opt@]{titlepage}{}
\define@boolkey{mcmthesis.cls}[MCM@opt@]{abstract}{}
\define@boolkey{mcmthesis.cls}[MCM@opt@]{sheet}{}
\define@boolkey{mcmthesis.cls}[MCM@opt@]{titleinsheet}{}
\define@boolkey{mcmthesis.cls}[MCM@opt@]{keywordsinsheet}{}
\MCM@opt@sheettrue
\MCM@opt@titlepagetrue
\MCM@opt@titleinsheetfalse
\MCM@opt@keywordsinsheetfalse
\MCM@opt@abstracttrue
\newcommand{\mcmsetup}[1]{\setkeys{MCM}{#1}}
\ProcessOptionsX\relax
\LoadClass[letterpaper, 12pt]{article}
\newcommand{\team}{Team \#\ \MCM@opt@tcn}
\RequirePackage{fancyhdr, fancybox}
\RequirePackage{ifthen}
\RequirePackage{listings}
\RequirePackage[toc, page, title, titletoc, header]{appendix}
\RequirePackage{paralist}
\RequirePackage{amsthm, amsfonts}
\RequirePackage{amsmath, bm}
\RequirePackage{amssymb, mathrsfs}
\RequirePackage{latexsym}
\RequirePackage{longtable, multirow, hhline, tabularx, array}
\RequirePackage{flafter}
\RequirePackage{pifont, calc}
\RequirePackage{colortbl, booktabs}
\RequirePackage{geometry}
\RequirePackage[T1]{fontenc}
\RequirePackage[scaled]{berasans}
\RequirePackage{hyperref}
\RequirePackage{ifpdf, ifxetex}
\ifMCM@opt@CTeX
\else
\RequirePackage{environ}
\fi
\ifpdf
\RequirePackage{graphicx}
\RequirePackage{epstopdf}
\else
\ifxetex
\RequirePackage{graphicx}
\else
\RequirePackage[dvipdfmx]{graphicx}
\RequirePackage{bmpsize}
\fi
\fi
\RequirePackage[svgnames]{xcolor}
\ifpdf
\hypersetup{hidelinks}
\else
\ifxetex
\hypersetup{hidelinks}
\else
\hypersetup{dvipdfm, hidelinks}
\fi
\fi
\geometry{letterpaper, margin = 1in}
\fancypagestyle{main}{
\fancyhf{}
\lhead{\small\sffamily \team}
\rhead{\small\sffamily Page \thepage\ of \pageref{LastPage}}
}
\pagestyle{main}
\fancypagestyle{aimain}{
\fancyhf{}
\lhead{\small\sffamily \team}
\rhead{\small\sffamily Page \thepage }
}
\setlength\parskip{.5\baselineskip}
\renewcommand\tableofcontents{%
\centerline{\normalfont\Large\bfseries\sffamily\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\vskip 5ex%
\@starttoc{toc}%
}
\setcounter{totalnumber}{4}
\setcounter{topnumber}{2}
\setcounter{bottomnumber}{2}
\renewcommand{\textfraction}{0.15}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.65}
\renewcommand{\floatpagefraction}{0.60}
\renewcommand{\figurename}{Figure}
\renewcommand{\tablename}{Table}
\graphicspath{{./}{./img/}{./fig/}{./image/}{./figure/}{./picture/}
{./imgs/}{./figs/}{./images/}{./figures/}{./pictures/}}
\def\maketitle{%
%\let\saved@thepage\thepage
%\let\thepage\relax
\ifMCM@opt@sheet
\makesheet
\fi
\newpage
\setcounter{page}{1}
\pagestyle{fancy}
\ifMCM@opt@titlepage
\MCM@maketitle
\fi
\newpage
}
\def\abstractname{Summary}
\ifMCM@opt@CTeX
\newbox\@abstract%
\setbox\@abstract\hbox{}%
\long\def\abstract{\bgroup\global\setbox\@abstract\vbox\bgroup\hsize\textwidth\leftskip1cm\rightskip1cm}%
\def\endabstract{\egroup\egroup}%
\def\make@abstract{%
\begin{center}%
\textbf{\abstractname}%
\end{center}%
\usebox\@abstract\par
}
\else
\RenewEnviron{abstract}{\xdef\@abstract{\expandonce\BODY}}
\def\make@abstract{%
\begin{center}%
\textbf{\abstractname}%
\end{center}%
\@abstract\par
}
\fi
\newenvironment{letter}[1]{%
\par%
\bgroup\parindent0pt%
\begin{minipage}{5cm}
\flushleft #1%
\end{minipage}}
{\egroup\smallskip}
\def\keywordsname{Keywords}
\ifMCM@opt@CTeX
\newbox\@keywords
\setbox\@keywords\hbox{}
\def\keywords{\global\setbox\@keywords\vbox\bgroup\noindent\leftskip0cm}
\def\endkeywords{\egroup}%
\def\make@keywords{%
\par\hskip.4cm\textbf{\keywordsname}: \usebox\@keywords\hfill\par
}
\else
\NewEnviron{keywords}{\xdef\@keywords{\expandonce\BODY}}
\def\make@keywords{%
\par\noindent\textbf{\keywordsname}:
\@keywords\par
}
\fi
\newcommand{\headset}{{\the\year}\\MCM/ICM\\Summary Sheet}
\newcommand{\problem}[1]{\mcmsetup{problem = #1}}
\def\makesheet{%
\thispagestyle{empty}%
\null%
\vspace*{-5pc}%
\begin{center}
\begingroup
\setlength{\parindent}{0pt}
\begin{minipage}[t]{0.33\linewidth}
\centering%
\textbf{Problem Chosen}\\[0.7pc]
{\Large \MCM@opt@tstyle {\MCM@opt@problem}}\\[2.8pc]
\end{minipage}%
\begin{minipage}[t]{0.33\linewidth}
\centering%
\textbf{\headset}%
\end{minipage}%
\begin{minipage}[t]{0.33\linewidth}
\centering%
\textbf{Team Control Number}\\[0.7pc]
{\Large\MCM@opt@tstyle{\MCM@opt@tcn}}\\[2.8pc]
\end{minipage}\par
\rule{\linewidth}{1.5pt}
\endgroup
\vskip 5pt%
\ifMCM@opt@titleinsheet
\normalfont \LARGE \@title \par
\fi
\end{center}
\ifMCM@opt@keywordsinsheet
\make@abstract
\make@keywords
\else
\make@abstract
\fi}
\newcommand{\MCM@maketitle}{%
%\let\thepage\saved@thepage
%\setcounter{page}{1}
\begin{center}%
\let \footnote \thanks%
\pagestyle{fancy}%
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em%
\ifMCM@opt@abstract%
\make@abstract
\make@keywords
\fi%
}
\def\MCM@memoto{\relax}
\newcommand{\memoto}[1]{\gdef\MCM@memoto{#1}}
\def\MCM@memofrom{\relax}
\newcommand{\memofrom}[1]{\gdef\MCM@memofrom{#1}}
\def\MCM@memosubject{\relax}
\newcommand{\memosubject}[1]{\gdef\MCM@memosubject{#1}}
\def\MCM@memodate{\relax}
\newcommand{\memodate}[1]{\gdef\MCM@memodate{#1}}
\def\MCM@memologo{\relax}
\newcommand{\memologo}[1]{\gdef\MCM@memologo{\protect #1}}
\def\@letterheadaddress{\relax}
\newcommand{\lhaddress}[1]{\gdef\@letterheadaddress{#1}}
\newenvironment{memo}[1][Memorandum]{%
\pagestyle{fancy}%
\ifthenelse{\equal{\MCM@memologo}{\relax}}{%
% without logo specified.
}{%
% with logo specified
\begin{minipage}[t]{\columnwidth}%
\begin{flushright}
\vspace{-0.2in}
\MCM@memologo
\vspace{0.5in}
\par\end{flushright}%
\end{minipage}%
}
\begin{center}
\LARGE\bfseries\scshape
#1
\end{center}
\begin{description}
\ifthenelse{\equal{\MCM@memoto}{\relax}}{}{\item [{To:}] \MCM@memoto}
\ifthenelse{\equal{\MCM@memofrom}{\relax}}{}{\item [{From:}] \MCM@memofrom}
\ifthenelse{\equal{\MCM@memosubject}{\relax}}{}{\item [{Subject:}] \MCM@memosubject}
\ifthenelse{\equal{\MCM@memodate}{\relax}}{}{\item [{Date:}] \MCM@memodate}
\end{description}
\par\noindent
\rule[0.5ex]{\linewidth}{0.1pt}\par
\bigskip{}
}{%
\clearpage
\pagestyle{fancy}%
}
\newtheorem{Theorem}{Theorem}[section]
\newtheorem{Lemma}[Theorem]{Lemma}
\newtheorem{Corollary}[Theorem]{Corollary}
\newtheorem{Proposition}[Theorem]{Proposition}
\newtheorem{Definition}[Theorem]{Definition}
\newtheorem{Example}[Theorem]{Example}
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-1sp\@plus -.2ex \@minus -.2ex}%
{1pt \@plus .2ex}%
{\rmfamily\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-1sp\@plus -.2ex \@minus -.2ex}%
{1pt \@plus .2ex}%
{\rmfamily\large\bfseries}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-.5ex\@plus -1ex \@minus -.2ex}%
{.25ex \@plus .2ex}%
{\rmfamily\normalsize\bfseries}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{1ex \@plus1ex \@minus.2ex}%
{-1em}%
{\rmfamily\normalsize}}
\providecommand{\dif}{\mathop{}\!\mathrm{d}}
\providecommand{\me}{\mathrm{e}}
\providecommand{\mi}{\mathrm{i}}
\definecolor{grey}{rgb}{0.8,0.8,0.8}
\definecolor{darkgreen}{rgb}{0,0.3,0}
\definecolor{darkblue}{rgb}{0,0,0.3}
\def\lstbasicfont{\fontfamily{pcr}\selectfont\footnotesize}
\lstset{%
% numbers=left,
% numberstyle=\small,%
showstringspaces=false,
showspaces=false,%
tabsize=4,%
frame=lines,%
basicstyle={\footnotesize\lstbasicfont},%
keywordstyle=\color{darkblue}\bfseries,%
identifierstyle=,%
commentstyle=\color{darkgreen},%\itshape,%
stringstyle=\color{black},%
breaklines=true,%
postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}
}
\lstloadlanguages{C,C++,Java,Matlab,python,Mathematica}
\def\AIcite{\@newl@bel b}
\let\citation\@gobble
\DeclareRobustCommand\AIcite{%
\@ifnextchar [{\@tempswatrue\@AIcitex}{\@tempswafalse\@AIcitex[]}}
\def\@AIcitex[#1]#2{\leavevmode
\let\@AIcitea\@empty
\@AIcite{\@for\@AIciteb:=#2\do
{\@AIcitea\def\@AIcitea{,\penalty\@m\ }%
\edef\@AIciteb{\expandafter\@firstofone\@AIciteb\@empty}%
\if@filesw\immediate\write\@auxout{\string\citation{\@AIciteb}}\fi
\@ifundefined{b@\@AIciteb}{\hbox{\reset@font\bfseries ?}%
\G@refundefinedtrue
\@latex@warning
{Citation `\@AIciteb' on page \thepage \space undefined}}%
{\@AIcite@ofmt{\csname b@\@AIciteb\endcsname}}}}{#1}}
\def\@AIcite#1#2{[AI: {#1\if@tempswa , #2\fi}]}
\let\@AIcite@ofmt\hbox
\def\reportname{Report on Use of AI}
\providecommand\@AIlabel[1]{#1.~}
\newenvironment{ReportAiUse}[1]
{\centerline{\underline{\large\sffamily\bfseries\reportname}}%
\vspace*{-.2em}
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@AIlabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@AIlabel{#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}
\def\AImatter{\label{LastPage}\clearpage\pagestyle{aimain}}
\endinput
%%
%% This work consists of these files mcmthesis.dtx,
%% figures/ and
%% code/,
%% and the derived files mcmthesis.cls,
%% mcmthesis-demo.tex,
%% README,
%% LICENSE,
%% mcmthesis.pdf and
%% mcmthesis-demo.pdf.
%%
%% End of file `mcmthesis.cls'.