cgddrd/CS39440-major-project

View on GitHub
documentation/final_report/project.cls

Summary

Maintainability
Test Coverage
% article.sty 23 Sep 85
% modified by F.W. Long to provide headers and footers 17 March 1989
% modified by F.W. Long for West Wales Software, 29 May 1989
% modified by J.J. Rowland for InFACT documents 7 July 1989
% modified by H.R.Nicholls for student project documents 14 November 1991
% modified by H.R.Nicholls to indicate UW Aberystwyth, and change postcode, 14.10.92

\typeout{Group project doc style modified by N.W. Hardy 2010-10-12}

% 11pt style - no option
% a4 style for the height, adjusted later for width
% converted to a class file  from projectstyle.sty by N.W.Hardy 2010-10-12
%   Added necessary header material
%   Removed unnecessary counters
%   Page and font size now from options on the the loaded style
%   Added a subtitle
%   Removed cic and coconf
%   Moved the front page address block to new position
%   Made the header just a line not a table (cic and coconf)
%   Changed all to Aberystywth University

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{project}[2010/10/12 Group project Class]

\LoadClass[11pt,twoside,a4paper]{article}


\def\labelenumi{\arabic{enumi}.} 
\def\theenumi{\arabic{enumi}} 
\def\labelenumii{(\alph{enumii})}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}
\def\labelenumiii{\roman{enumiii}.}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}
\def\labelenumiv{\Alph{enumiv}.}
\def\theenumiv{\Alph{enumiv}} 
\def\p@enumiv{\p@enumiii\theenumiii}

\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\ast$}
\def\labelitemiv{$\cdot$}

\def\verse{\let\\=\@centercr 
 \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent 
 \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
\let\endverse\endlist
\def\quotation{\list{}{\listparindent 1.5em
 \itemindent\listparindent
 \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
\let\endquotation=\endlist
\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
\let\endquote=\endlist

\def\descriptionlabel#1{\hspace\labelsep \bf #1}
\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
 \let\makelabel\descriptionlabel}}
\let\enddescription\endlist


\def\theequation{\arabic{equation}}


\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
 \else \newpage \fi \thispagestyle{empty}\c@page\z@}
\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}

\arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt 
\tabbingsep \labelsep 

\skip\@mpfootins = \skip\footins
\fboxsep = 3pt \fboxrule = .4pt 


\def\thepart{\Roman{part}} \def\thesection {\arabic{section}}
\def\thesubsection {\thesection.\arabic{subsection}}
\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}

\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
\setcounter{tocdepth}{3}

% set parskip to zero locally within the lists

\def\tableofcontents{\section*{CONTENTS}
 {\parskip=0pt \@starttoc{toc}}}
\def\l@part#1#2{\addpenalty{\@secpenalty}
 \addvspace{2.25em plus 1pt} \begingroup
 \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip
-\@pnumwidth 
 {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
 \nobreak \endgroup}
\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt}
\@tempdima 1.5em \begingroup
 \parindent \z@ \rightskip \@pnumwidth 
 \parfillskip -\@pnumwidth 
 \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par
 \endgroup}
\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\def\listoffigures{\section*{LIST OF FIGURES}
 {\parskip=0pt \@starttoc{lof}}}
\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\def\listoftables{\section*{LIST OF TABLES}
 {\parskip=0pt \@starttoc{lot}}}
\let\l@table\l@figure


\def\thebibliography#1{\section*{REFERENCES}\list
 {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
 \advance\leftmargin\labelsep
 \usecounter{enumi}}
 \def\newblock{\hskip .11em plus .33em minus -.07em}
 \sloppy
 \sfcode`\.=1000\relax}
\let\endthebibliography=\endlist
 

\newif\if@restonecol
\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
\columnseprule \z@
\columnsep 35pt\twocolumn[\section*{Index}]
 \markboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@
 \parskip\z@ plus .3pt\relax\let\item\@idxitem}
\def\@idxitem{\par\hangindent 40pt}
\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}

\def\footnoterule{\kern-3\p@ 
 \hrule width .4\columnwidth 
 \kern 2.6\p@} 

\long\def\@makefntext#1{\parindent 1em\noindent 
 \hbox to 1.8em{\hss$^{\@thefnmark}$}#1}


\setcounter{topnumber}{2}
\def\topfraction{.7}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.3}
\setcounter{totalnumber}{3}
\def\textfraction{.2}
\def\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{.7}
\def\dblfloatpagefraction{.5}

\long\def\@makecaption#1#2{
 \vskip 10pt 
 \setbox\@tempboxa\hbox{#1: #2}
 \ifdim \wd\@tempboxa >\hsize \unhbox\@tempboxa\par \else \hbox
to\hsize{\hfil\box\@tempboxa\hfil} 
 \fi}


\def\thefigure{\@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{Figure \thefigure}
\def\figure{\@float{figure}}
\let\endfigure\end@float
\@namedef{figure*}{\@dblfloat{figure}}
\@namedef{endfigure*}{\end@dblfloat}

\def\thetable{\@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{Table \thetable}
\def\table{\@float{table}}
\let\endtable\end@float
\@namedef{table*}{\@dblfloat{table}}
\@namedef{endtable*}{\end@dblfloat}


% set up the information for the title page
% title redefined to also set shorttitle

\def\title#1{\gdef\@title{#1} \gdef\@shorttitle{#1}}
\def\subtitle#1{\gdef\@subtitle{#1}}
\def\shorttitle#1{\gdef\@shorttitle{#1}}
\def\client#1{\gdef\@client{{\it Client:} & #1 \\}} \gdef\@client{}
\def\configref#1{\gdef\@configref{#1}}
\def\projref#1{\gdef\@projref{{\it Proj. Ref.:} & #1 \\}} \gdef\@projref{}
\def\version#1{\gdef\@version{#1}}
\def\status#1{\gdef\@status{#1}}


% note pagestyle set to myheadings after the title page

\def\maketitle{\par
 \begingroup
 \def\thefootnote{\fnsymbol{footnote}}
 \def\@makefnmark{\hbox 
 to 0pt{$^{\@thefnmark}$\hss}} 
 \if@twocolumn 
 \twocolumn[\@maketitle] 
 \else \newpage
 \global\@topnum\z@ \@maketitle \fi\thispagestyle{myheadings}\@thanks
 \endgroup
 \setcounter{footnote}{0}
 \let\maketitle\relax
 \let\@maketitle\relax
 \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}

% generate the title page
% note the extra {...} to restrict the scope of headheight

\def\@maketitle{{\headheight 12pt\newpage
\thispagestyle{empty}\c@page\z@
 \null
 \vskip 0.4in
 \hskip 0.3in
\begin{minipage}{5.2in}
 \centering\Large\bf\@title\par
 \centering\large\bf\@subtitle
\end{minipage}

 \hskip 0.3in
\begin{tabular}[t]{lp{3.3in}}
{\it Author:}        & \@author  \\
{\it Email:}        & wde7@aber.ac.uk \& csf7@aber.ac.uk  \\
{\it Degree Scheme:}        & G601 Software Engineering MEng  \\
\@projref
\@client
{\it Config.\ Ref.:} & \@configref  \\
{\it Date:}          & \@date    \\
{\it Version:}       & \@version \\
{\it Status:}        & \@status  \\
\end{tabular}\par
\vfill
\hskip 0.3in
\begin{minipage}{5.2in}
\begin{tabular}{l}
Department of Computer Science, \\
Aberystwyth University,\\
Aberystwyth, \\
Ceredigion, SY23 3DB, \\
U.K. \\
 \\
\copyright Aberystwyth University \number\year \\
\end{tabular}
\end{minipage}
\newpage}}

\def\abstract{\if@twocolumn
\section*{Abstract}
\else \small 
\begin{center}
{\bf Abstract\vspace{-.5em}\vspace{0pt}} 
\end{center}
\quotation 
\fi}
\def\endabstract{\if@twocolumn\else\endquotation\fi}

\mark{{}{}} 

\if@twoside \def\ps@headings{\def\@oddfoot{}\def\@evenfoot{}\def\@evenhead{\rm
\thepage\hfil \sl \leftmark}\def\@oddhead{\hbox{}\sl \rightmark \hfil
\rm\thepage}\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth
>\z@
 \thesection\hskip 1em\relax \fi ##1}}{}}\def\subsectionmark##1{\markright
{\ifnum \c@secnumdepth >\@ne
 \thesubsection\hskip 1em\relax \fi ##1}}}
\else \def\ps@headings{\def\@oddfoot{}\def\@evenfoot{}\def\@oddhead{\hbox
{}\sl \rightmark \hfil \rm\thepage}\def\sectionmark##1{\markright
{\uppercase{\ifnum \c@secnumdepth >\z@
 \thesection\hskip 1em\relax \fi ##1}}}}
\fi

% set up my own headers and footers

\def\ps@myheadings{\def\@oddhead{\headline}\def\@oddfoot{\footline}
\def\@evenhead{\headline}\def\@evenfoot{\footline}
\def\sectionmark##1{}\def\subsectionmark##1{}}

\newcommand{\headline}%
{\it \@shorttitle/\@version(\@status)\hfill ~}
\newcommand{\footline}%
{{\it Aberystwyth University/Computer Science} \hfill Page \thepage\ of \pageref{thelastpage}}

% set up our style parameters

\hyphenpenalty=5000
\doublehyphendemerits=10000
\finalhyphendemerits=10000

\topsep 0pt
\parskip 7pt plus 2pt minus 1pt
\parindent 0pt

\setlength{\textwidth}{5.5in}
\setlength{\evensidemargin}{\oddsidemargin}

% override the style for section and subsubsubsection headings

\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus
 -.2ex}{2.3ex plus .2ex}{\large\bf}}
\def\paragraph{\@startsection
 {paragraph}{4}{\z@}{-3ex plus -1ex minus -.2ex}{1ex plus .2ex}{\normalsize\bf}}

% subsubsubsection headings to be numbered, set secnumdepth accordingly

\setcounter{secnumdepth}{4}

% redefine today to produce English format dates

\def\today{\number\day\space\ifcase\month\or
 January\or February\or March\or April\or May\or June\or
 July\or August\or September\or October\or November\or December\fi
 \space\number\year}

% more style definitions

\ps@myheadings \pagenumbering{arabic}
\onecolumn \if@twoside\else\raggedbottom\fi