%%
%% This is file `CSUNthesis.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% CSUNthesis.dtx  (with options: `class')
%% 
%% Copyright (C) 2020 by Jeff Wiegley, Ph.D.
%% 
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.2 or this license of (at your option) any
%% later version. The latest version of this license is in:
%% 
%%    http://www.latex-project.org/lppl.txt
%% 
%% and version 1.2 or later is part of all distributions of
%% LaTeX version 1999/12/01 or later.
%% 
%%% The todo list:
%%% Tips and tricks
%%% spacing ties ~
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{CSUNthesis}
    [2020/11/01 2.3 CSU Northridge]
%%most CS students will want to present code listings.
%%For easy line spacing
%%most authors will want to include graphics
%% There is more to life than computers
%%various front matter pages, the absence of any of these
%%macros just causes an absence of those pages.
%%information for producing a defense announcement page
%%comment out to supress announcement page.
%%Cause a copyright page to appear after the title page.
%%references come before appendicies.
 % \begin{quote}
\typeout{-- CSUN Thesis style} \typeout{-- Author: Wiegley, Jeff,
jeffw@csun.edu}
\typeout{--   Please contact the author to have any mistakes corrected.}
\usepackage{times}
\newlength{\titlewidth}
\setlength{\titlewidth}{4.5in}
\newlength{\frontmattertopmargin}
\setlength{\frontmattertopmargin}{1.0in}

\newif\ifproposal\proposalfalse
\newif\ifthesis\thesisfalse
\newif\ifabstract\abstractfalse
\newif\ifproject\projectfalse
\newif\iflof\loffalse
\newif\iflot\lotfalse
\newif\iflol\lotfalse
\newif\ifdraft\draftfalse
\newif\ifsizespec\sizespecfalse
\newif\ifmadebib\madebibfalse
\DeclareOption{twocolumn}{
  \OptionNotUsed
  \ClassError{CSUNthesis}{only single column documents allowed}{}
}
\DeclareOption{twosided}{
  \OptionNotUsed
  \ClassError{CSUNthesis}{only single sided publications allowed}{}
}
\DeclareOption{8pt}{
  \OptionNotUsed
  \ClassError{CSUNthesis}{only 10pt or 12pt typeface allowed}{}
}
\DeclareOption{9pt}{
  \OptionNotUsed
  \ClassError{CSUNthesis}{only 10pt or 12pt typeface allowed}{}
}
\DeclareOption{10pt}{
  \sizespectrue
  \PassOptionsToClass{\CurrentOption}{report}
}
\DeclareOption{11pt}{
  \sizespectrue
  \PassOptionsToClass{\CurrentOption}{report}
}
\DeclareOption{12pt}{
  \sizespectrue
  \PassOptionsToClass{\CurrentOption}{report}
}
\DeclareOption{a4paper}{
  \OptionNotUsed
  \ClassWarning{CSUNthesis}{CSU requires letter sized paper, a4paper
    ignored}{}
}
\DeclareOption{thesis}{
  \ifproject
  \ClassError{CSUNthesis}{only one thesis type may be specified}{}
  \fi
  \ifabstract
  \ClassError{CSUNthesis}{only one thesis type may be specified}{}
  \fi
  \thesistrue
}
\DeclareOption{project}{
  \ifthesis
  \ClassError{CSUNthesis}{only one thesis type may be specified}{}
  \fi
  \ifabstract
  \ClassError{CSUNthesis}{only one thesis type may be specified}{}
  \fi
  \projecttrue
}
\DeclareOption{abstract}{
  \ifthesis
  \ClassError{CSUNthesis}{only one thesis type may be specified}{}
  \fi
  \ifproject
  \ClassError{CSUNthesis}{only one thesis type may be specified}{}
  \fi
  \abstracttrue
}

\DeclareOption{lof}{\loftrue}
\DeclareOption{nolof}{\loftrue}
\DeclareOption{lol}{\loltrue}
\DeclareOption{nolol}{\loltrue}
\DeclareOption{lot}{\lottrue}
\DeclareOption{nolot}{\lottrue}
\DeclareOption{draft}{\drafttrue\AtBeginDocument{\onehalfspacing}}
\DeclareOption{draftcls}{\drafttrue\AtBeginDocument{\onehalfspacing}}
\DeclareOption{final}{\draftfalse\AtBeginDocument{\singlespacing}}
\DeclareOption{proposal}{\proposaltrue}

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ExecuteOptions{final}
\ProcessOptions\relax
\ifsizespec\relax\else\PassOptionsToClass{12pt}{report}\fi
\LoadClass{report}
%%%%%\usepackage[usenames]{color}
\usepackage{ulem}
\normalem
\newcommand{\udot}{\bgroup \markoverwith{\lower .4ex\hbox{.}}\ULon}
\newcommand{\udash}{\bgroup \markoverwith{\lower .8ex\hbox{-}}\ULon}
\newcommand{\marginreason}[2]{%
\def\thereason{#2}%
\ifx\@empty\thereason\relax\else\marginpar{\color{#1}#2}\fi%
}
\newcommand\edit[2]{%
  \typeout{WARNING: edit change tracking macro exists in source}%
  {\color{Red}\uline{#1}}\marginreason{Red}{#2}}%
\newcommand\delete[2]{%
  \typeout{WARNING: delete change tracking macro exists in source}%
  {\color{Red}\sout{#1}}\marginreason{Red}{#2}}%
\newcommand\add[2]{%
  \typeout{WARNING: add change tracking macro exists in source}%
  {\color{Red}\udot{#1}}\marginreason{Red}{#2}}%
%%    \begin{macrocode}
\newcommand\replace[3]{%
  \typeout{WARNING: replace change tracking macro exists in source}%
  {\color{Red}\sout{#1}\udot{#2}}\marginreason{Red}{#3}}%
%%    \begin{macrocode}
\newcommand\note[1]{%
  \typeout{WARNING: replace change tracking macro exists in source}%
  {\color{Red}\uwave{#1}}}%

\renewcommand\contentsname{\normalfont Table of Contents}
\renewcommand\bibname{References}
\def\@makechapterhead#1{%
  {\parindent \z@ \centering \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \bfseries\boldmath \@chapapp\space \thechapter
        \par\nobreak
    \fi
    \interlinepenalty\@M
    \bfseries\boldmath #1\par\nobreak
    \vskip 20\p@
  }}

\def\@makeschapterhead#1{%
  {\parindent \z@ \centering
    \normalfont
    \interlinepenalty\@M
    \bfseries\boldmath #1\par\nobreak
    \vskip 20\p@
  }}

\def\@makepchapterhead#1{%
  {\parindent \z@ \centering
    \normalfont
    \interlinepenalty\@M
    #1\par\nobreak
    \vskip 20\p@
  }}

\def\prefacechapter#1{\if@twocolumn
                   \@topnewpage[\@makepchapterhead{#1}]%
                 \else
                   \@makepchapterhead{#1}%
                   \@afterheading
                 \fi}

\renewcommand\listoffigures{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \prefacechapter{\listfigurename}%
      \@mkboth{\MakeUppercase\listfigurename}%
              {\MakeUppercase\listfigurename}%
    \@starttoc{lof}%
    \if@restonecol\twocolumn\fi
    }

\renewcommand\listoftables{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \prefacechapter{\listtablename}%
      \@mkboth{%
          \MakeUppercase\listtablename}%
         {\MakeUppercase\listtablename}%
    \@starttoc{lot}%
    \if@restonecol\twocolumn\fi
    }

\renewcommand{\section}{
  \@startsection{section}{1}{0mm}{0pt}{0.0001pt}%
{\noindent\normalfont\normalsize\bfseries\boldmath}}%

\renewcommand{\subsection}{
  \@startsection{subsection}{1}{0mm}{0pt}{0.0001pt}%
{\noindent\normalfont\normalsize\bfseries\boldmath}}%

\renewcommand{\subsubsection}{
  \@startsection{subsubsection}{1}{0mm}{0pt}{0.0001pt}%
{\noindent\normalfont\normalsize\bfseries\boldmath}}%

\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne%
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@%
    \setlength\@tempdima{1.5em}%
    \begingroup%
      \parindent \z@ \rightskip \@pnumwidth%
      \parfillskip -\@pnumwidth%
      \leavevmode%\bfseries
      \advance\leftskip\@tempdima%
      \hskip -\leftskip%
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par%
      \penalty\@highpenalty%
    \endgroup%
  \fi}

\renewcommand{\maketitle}{}

\ifproposal
\renewcommand{\thesection}{\arabic{section}}
\fi

\ifthesis
\relax
\else
\ifabstract\relax\else\ifproject\relax\else\thesistrue\fi\fi
\fi

\setlength{\headheight}{0.0in}     % results in 1.0inch
\setlength{\headsep}{0.0in}     % results in 1.0inch
\setlength{\topmargin}{0.0in}     % results in 1.0inch
\setlength{\textheight}{9.0in}
\setlength{\footskip}{0.5in}
\setlength{\oddsidemargin}{0.5in} % results in 1.5in
\setlength{\evensidemargin}{\oddsidemargin}
\setlength{\textwidth}{6.0in}

\RequirePackage{setspace}

\pagestyle{plain}

\newcommand{\@degree}{Master~of~Science}

\newcommand{\@department}{Computer~Science}

\newcommand{\degree}[2]{
  \renewcommand{\@degree}{#1}
  \renewcommand{\@department}{#2}
}


\newcommand{\references}[2]{
  \ifx\undefined\@thesisbibstyle
  \newcommand{\@thesisbibstyle}{#1}
  \else
  \renewcommand{\@thesisbibstyle}{#1}
  \fi
  \ifx\undefined\@thesisbibfile
  \newcommand{\@thesisbibfile}{#2}
  \else
  \renewcommand{\@thesisbibfile}{#2}
  \fi
}

\newcommand{\submitted}[2]{
  \ifx\undefined\@submitmonth
  \newcommand{\@submitmonth}{#1}
  \else
  \renewcommand{\@submitmonth}{#1}
  \fi
  \ifx\undefined\@submityear
  \newcommand{\@submityear}{#2}
  \else
  \renewcommand{\@submityear}{#2}
  \fi
}

\newcommand{\defense}[4]{
  \ifx\undefined\@defenseday
  \newcommand{\@defenseday}{#1}
  \newcommand{\@defensedate}{#2}
  \newcommand{\@defensetime}{#3}
  \newcommand{\@defenselocation}{#4}
  \else
  \renewcommand{\@defenseday}{#1}
  \renewcommand{\@defensedate}{#2}
  \renewcommand{\@defensetime}{#3}
  \renewcommand{\@defenselocation}{#4}
  \fi
}

\newcommand{\contact}[1]{
  \ifx\undefined\@contact
  \newcommand{\@contact}{#1}
  \else
  \renewcommand{\@contact}{#1}
  \fi
}

\newcommand{\collaboration}[1]{
  \ifx\undefined\@collaborator
  \newcommand{\@collaborator}{#1}
  \else
  \renewcommand{\@collaborator}{#1}
  \fi
}

\newcommand{\dedication}[1]{
  \ifx\undefined\@dedication
  \newcommand{\@dedication}{#1}
  \else
  \renewcommand{\@dedication}{#1}
  \fi
}

\newcommand{\acknowledgement}[1]{
  \ifx\undefined\@acknowledgement
  \newcommand{\@acknowledgement}{#1}
  \else
  \renewcommand{\@acknowledgement}{#1}
  \fi
}

\newcommand{\preface}[1]{
  \ifx\undefined\@preface
  \newcommand{\@preface}{#1}
  \else
  \renewcommand{\@preface}{#1}
  \fi
}

\renewcommand{\abstract}[1]{
  \ifx\undefined\@abstract
  \newcommand{\@abstract}{#1}
  \else
  \renewcommand{\@abstract}{#1}
  \fi
}

\newcommand{\copyrightyear}[1]{
  \ifx\undefined\@copyrightyear
  \newcommand{\@copyrightyear}{#1}
  \else
  \renewcommand{\@copyrightyear}{#1}
  \fi
}

\newcommand{\coordinator}[1]{
  \ifx\undefined\@coordinator
  \newcommand{\@coordinator}{#1}
  \else
  \renewcommand{\@coordinator}{#1}
  \fi
}

\newcommand{\committee}[3]{
  \ifx\undefined\@memberA
  \newcommand{\@memberA}{#2}
  \else
  \renewcommand{\@memberA}{#2}
  \fi
  \ifx\undefined\@memberB
  \newcommand{\@memberB}{#3}
  \else
  \renewcommand{\@memberB}{#3}
  \fi
  \ifx\undefined\@memberChair
  \newcommand{\@memberChair}{#1}
  \else
  \renewcommand{\@memberChair}{#1}
  \fi
}

\newcommand{\frontpagesetup}[1]{
  \begin{center}
    %\Large #1
    #1
  \end{center}
}

\newcommand{\mpbibliography}{
  \ifmadebib\relax\else
  \ifx\undefined\@thesisbibstyle
  \typeout{WARNING: YOU NEED A BIBLIOGRAPHY!! See the references macro}
  \else
  \bibliographystyle{\@thesisbibstyle}
  \bibliography{\@thesisbibfile}
  \addcontentsline{toc}{chapter}{\bibname}
  \madebibtrue\fi
  \fi
}

\renewcommand\appendix{\mpbibliography\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@Alph\c@chapter}}

\newcommand{\mpproposal}{
  \ifx\undefined\@author
  \ClassError{CSUNthesis}{no \protect\author{<author>} given.}{}
  \fi
  \ifx\undefined\@title
  \ClassError{CSUNthesis}{no \protect\title{<title>} given.}{}
  \fi
  {
    \thispagestyle{empty}
    \begin{center}
      \vspace*{\frontmattertopmargin}
      %University heading
      CALIFORNIA STATE UNIVERSITY, NORTHRIDGE

      %space before title
      \vspace{0.625in}

      %title
      %minipage required because the title should wrap rather narrow
      \begin{minipage}{5.5in}
\centering
\begin{spacing}{0.0}

  \textbf{\MakeUppercase{\@title}}

\end{spacing}

\vspace{0.375in}

\begin{spacing}{3.0}

  \ifthesis A thesis
          \else
             \ifproject A graduate project
             \else An abstract
             \fi
          \fi
  proposal for the degree of
  \ifx\undefined\@degree
    Master~of~Science
  \else
    \@degree
  \fi
  \ in
  \ifx\undefined\@department
    Computer~Science
  \else
    \@department
  \fi

  \vspace{0.375in}

  By

  \vspace{0.375in}

  \@author
  \ifx\undefined\@contact
  \relax
  \else
  \\\@contact
  \fi

  \today

  \ifx\undefined\@collaborator
  \relax
  \else
  \vspace*{0.625in}
  in collaboration with\\\@collaborator
  \fi
\end{spacing}
      \end{minipage}

      % the date needs to be outside of the minipage so that \vfill
      % works to flush the date to the bottom of the page.

      \vfill
      \hfill
      \begin{minipage}{4.00in}

\makebox[2.75in]{\hrulefill}\makebox[0.5in][r]{Date:}
\hrulefill\\
\makebox[4.125in][l]{\@memberChair, Committee Chair}

\vspace{.25in}

\makebox[2.75in]{\hrulefill}\makebox[0.5in][r]{Date:}
\hrulefill\\
\makebox[4.125in][l]{\@coordinator, Graduate Coordinator}

\vspace{.25in}

\makebox[2.75in]{\hrulefill}\makebox[0.5in][r]{Date:}
\hrulefill\\
\makebox[4.125in][l]{\@author, Student}

      \end{minipage}
      %fill to the bottom of page
    \end{center}
  }
  \newpage
}

\newcommand{\mpannouncement}
{
  \ifx\undefined\@defensedate
  \relax
  \else
  \thispagestyle{empty}
  % save current margin information
  \newlength{\oldwidth}
  \newlength{\oldoddside}
  \newlength{\oldtop}
  \newlength{\oldheight}
  \setlength{\oldtop}{\topmargin}
  \setlength{\oldheight}{\textheight}
  \setlength{\oldwidth}{\textwidth}
  \setlength{\oldoddside}{\oddsidemargin}
  % set new margins for even page layout
  \setlength{\oddsidemargin}{0.25in}
  \setlength{\textwidth}{6in}
  \setlength{\topmargin}{0.25in}
  \setlength{\textheight}{8.5in}
  % draw the simple border frame
  % picture width and height needs to be (0,0) so as not
  % to take up space. (you can draw outside the boundary
  \noindent\begin{picture}(0,0)(72,-81.5)
  \put(0,0){\line(1,0){576}}
  \put(0,0){\line(0,-1){756}}
  \put(576,-756){\line(-1,0){576}}
  \put(576,-756){\line(0,1){756}}
  \end{picture}
  \vspace{-.5in}
  \begin{center}
    \bfseries
    \begin{minipage}{5in}
      \begin{center}
MASTERS PRESENTATION

\vspace{0.5in}

\MakeUppercase{\@title}

By

\@author
      \end{center}

      \noindent Committee Members:
      \begin{list}{}{\leftmargin=2in\itemsep=-6pt\topsep=-6pt}
      \item \@memberChair\ (Chair)
      \item \@memberA
      \item \@memberB
      \end{list}

      \vspace{14pt}
      \noindent\begin{tabular}{@{}ll}
      Date: & \@defenseday, \@defensedate\ at \@defensetime \\
      Location: & \@defenselocation
      \end{tabular}
    \end{minipage}
  \end{center}
  \begin{center}
    \bfseries ABSTRACT
  \end{center}
  \noindent \@abstract

  % generate the page
  \newpage
  %reset margins to original values
  \setlength{\oddsidemargin}{\oldoddside}
  \setlength{\textwidth}{\oldwidth}
  \setlength{\textheight}{\oldheight}
  \setlength{\topmargin}{\oldtop}
  \fi
}

\newcommand{\mptitle}{
  \ifx\undefined\@submitmonth
  \ClassError{CSUNthesis}{no
    \protect\submitted{<month>}{<year>}given.}{}
  \fi
  \ifx\undefined\@submityear
  \ClassError{CSUNthesis}{no
    \protect\submitted{<month>}{<year>}given.}{}
  \fi
  \ifx\undefined\@author
  \ClassError{CSUNthesis}{no \protect\author{<author>} given.}{}
  \fi
  \ifx\undefined\@title
  \ClassError{CSUNthesis}{no \protect\title{<title>} given.}{}
  \fi
  {
    \thispagestyle{empty}
    \setcounter{page}{1}
    \begin{center}
      %University heading
      CALIFORNIA STATE UNIVERSITY, NORTHRIDGE

      %space before title
      \vspace{2.625in}

      %title
      %minipage required because the title should wrap rather narrow
      \begin{minipage}{\titlewidth}
\centering
\begin{spacing}{2.0}

  \MakeUppercase{\@title}

\end{spacing}

\vspace{0.375in}

\begin{spacing}{1.0}

  \ifthesis A thesis
          \else
             \ifproject A graduate project
             \else An abstract
             \fi
          \fi
  submitted in partial fulfillment of the
  requirements for the degree of
  \ifx\undefined\@degree
    Master~of~Science
  \else
    \@degree\
  \fi
  in
  \ifx\undefined\@department
    Computer~Science
  \else
    \@department
  \fi

  \vspace{0.375in}

  By

  \vspace{0.375in}

  \@author
  \ifdraft
  \ifx\undefined\@contact
  \relax
  \else
  \\\@contact
  \fi
  \fi

  \ifx\undefined\@collaborator
  \relax
  \else
  \vspace*{0.625in}
  in collaboration with\\\@collaborator
  \fi
\end{spacing}
      \end{minipage}

      % the date needs to be outside of the minipage so that \vfill
      % works to flush the date to the bottom of the page.

      %fill to the bottom of page
      \vfill


      \@submitmonth\ \@submityear
    \end{center}
  }
  \newpage
}

\newcommand{\mpcopyright}{
  \ifx\undefined\@copyrightyear
    \relax
  \else
  \null\vfill
  \begin{center}
    %\fontsize{14}{16.8}\selectfont
    \copyright\ Copyright\ by \@author\ \@copyrightyear\\
    All Rights Reserved
  \end{center}
  \addcontentsline{toc}{chapter}{Copyright}
  \newpage
  \fi
}

\newcommand{\mpsignature}{
  \ifx\undefined\@memberA
  \ClassError{CSUNthesis}{No
    \protect\committee given; must be provided}{}
  \fi
  \ifx\undefined\@memberB
  \ClassError{CSUNthesis}{No
    \protect\committee given; must be provided}{}
  \fi
  \ifx\undefined\@memberChair
  \ClassError{CSUNthesis}{No
    \protect\committee given; must be provided}{}
  \fi
  \ifx\undefined\@author
  \ClassError{CSUNthesis}{no \protect\author{<author>} given.}{}
  \fi
  \vspace*{2.5in}
  \begin{center}
    \begin{minipage}{5.05in}
      The
      \ifthesis
      thesis
      \else
      \ifproject
      graduate project
      \else
      abstract
      \fi
      \fi
      of \@author\ is approved:

      \vspace*{1in}

      \makebox[3in]{\hrulefill}\makebox[0.5in]{}
      \makebox[1.5in]{\hrulefill}\\
      \makebox[3in][l]{\@memberA}\makebox[0.5in]{}
      \makebox[1.5in][l]{Date}

      \vspace{.375in}

      \makebox[3in]{\hrulefill}\makebox[0.5in]{}
      \makebox[1.5in]{\hrulefill}\\
      \makebox[3in][l]{\@memberB}\makebox[0.5in]{}
      \makebox[1.5in][l]{Date}

      \vspace{.375in}

      \makebox[3in]{\hrulefill}\makebox[0.5in]{}
      \makebox[1.5in]{\hrulefill}\\
      \makebox[3in][l]{\@memberChair, Chair}\makebox[0.5in]{}
      \makebox[1.5in][l]{Date}

    \end{minipage}
    \vfill
    California State University, Northridge
  \end{center}
  \addcontentsline{toc}{chapter}{Signature page}
  \newpage
}

\newcommand{\mppreface}{
  \ifx\undefined\@preface
    \relax
  \else
    \frontpagesetup{Preface}
    \@preface
    \addcontentsline{toc}{chapter}{Preface}
    \newpage
  \fi
}

\newcommand{\mpdedication}{
  \ifx\undefined\@dedication
    \relax
  \else
    \frontpagesetup{Dedication}
    \@dedication
    \addcontentsline{toc}{chapter}{Dedication}
    \newpage
  \fi
}

\newcommand{\mpacknowledgement}{
  \ifx\undefined\@acknowledgement
    \relax
  \else
    \frontpagesetup{Acknowledgements}
    \@acknowledgement
    \addcontentsline{toc}{chapter}{Acknowledgements}
    \newpage
  \fi
}

\newcommand{\mptableofcontents}{
%%  \newlength{\oldparskip}
%%  \setlength{\oldparskip}{\parskip}
%%  \setlength{\parskip}{0pt}
%%Graduate Evaluator Shrew, now changes her mind, again, and this
%%is no longer allowed to be listed in the Table of Contents;
%%Contrary to her original whim which made me put this in here in
%%the first place.
%%  \addcontentsline{toc}{chapter}{Table of Contents}
  \tableofcontents
%%  \setlength{\parskip}{\oldparskip}
  \newpage
}

\newcommand{\mplistoftables}{
  \iflot
    \addcontentsline{toc}{chapter}{List of Tables}
    \listoftables
    \newpage
  \fi
}

\newcommand{\mplistoffigures}{
  \iflof
    \addcontentsline{toc}{chapter}{List of Figures}
    \listoffigures
    \newpage
  \fi
}

\newcommand{\mplofillustrations}{}

\newcommand{\mplistoflistings}{
  \iflol
    \renewcommand{\lstlistlistingname}{\normalfont List of Listings}
    \addcontentsline{toc}{chapter}{List of Listings}
    \lstlistoflistings
    \newpage
  \fi
}

\newcommand{\mpabstract}
{
  \ifx\undefined\@abstract
    \ifproposal\relax\else
      \ClassError{CSUNthesis}
 {No \protect\abstract given; must be provided}{}
    \fi
  \fi
  {
    {
    \newlength{\oldbaselineskip}
    \setlength{\oldbaselineskip}{\baselineskip}
    \setlength{\baselineskip}{34pt}
    \begin{center}
      ABSTRACT

      \MakeUppercase{\@title}

      By

      \@author

      \@degree\ in \@department
    \end{center}
    }
    %\setlength{\baselineskip}{\oldbaselineskip}
\begin{doublespace}
    \@abstract
\end{doublespace}
  }
  \addcontentsline{toc}{chapter}{Abstract}
  \newpage
}

\AtBeginDocument{
  \pagenumbering{roman}
  \ifproposal
  \mpproposal
  \else
  \parskip=10pt
  \mpannouncement
  \mptitle
  \mpcopyright
  \mpsignature
  \mpdedication
  \mpacknowledgement
  \mppreface
  \parskip=0pt
  \mptableofcontents
  \mplistoftables
  \mplistoffigures
  \mplofillustrations
  \mplistoflistings
  \parskip=10pt
  \mpabstract
  \fi
  \pagenumbering{arabic}
}

\AtEndDocument{%
\mpbibliography%
}

\endinput
%%
%% End of file `CSUNthesis.cls'.
