summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ryersonsgsthesis/ryersonSGSThesis.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ryersonsgsthesis/ryersonSGSThesis.cls')
-rw-r--r--macros/latex/contrib/ryersonsgsthesis/ryersonSGSThesis.cls416
1 files changed, 416 insertions, 0 deletions
diff --git a/macros/latex/contrib/ryersonsgsthesis/ryersonSGSThesis.cls b/macros/latex/contrib/ryersonsgsthesis/ryersonSGSThesis.cls
new file mode 100644
index 0000000000..884201a684
--- /dev/null
+++ b/macros/latex/contrib/ryersonsgsthesis/ryersonSGSThesis.cls
@@ -0,0 +1,416 @@
+%This project is licensed under the Apache License - Version 2.0. See the LICENSE file for details%
+\ProvidesClass{ryersonSGSThesis}[2019/02/24 v1.0.3 Ryerson SGS Thesis class, Author - Yasir Shoaib, Apache License - Version 2.0]
+\NeedsTeXFormat{LaTeX2e}
+
+\newcommand{\setAuthor}[1]{\author{#1}}
+\newcommand{\setTitle}[1]{\title{#1}}
+
+\newcommand{\setThesisDegree}[1]{\def\@thesisDegree{#1}}
+\newcommand{\show@thesisDegree}{\@thesisDegree}
+
+\newcommand{\setPastDegreeA}[1]{\def\@pastDegreeA{#1}}
+\newcommand{\show@pastDegreeA}{\@pastDegreeA}
+
+\newcommand{\setPastDegreeB}[1]{\def\@pastDegreeB{#1}}
+\newcommand{\show@pastDegreeB}{\@pastDegreeB}
+
+\newcommand{\setPastDegreeC}[1]{\def\@pastDegreeC{#1}}
+\newcommand{\show@pastDegreeC}{\@pastDegreeC}
+
+\newcommand{\setPastDegreeD}[1]{\def\@pastDegreeD{#1}}
+\newcommand{\show@pastDegreeD}{\@pastDegreeD}
+
+\newcommand{\setUniversity}[1]{\def\@university{#1}}
+\newcommand{\show@university}{\@university}
+
+\newcommand{\setDepartment}[1]{\def\@department{#1}}
+\newcommand{\show@department}{\@department}
+
+\newcommand{\setLocation}[1]{\def\@location{#1}}
+\newcommand{\show@location}{\@location}
+
+\newcommand{\setThesisYear}[1]{\def\@thesisYear{#1}}
+\newcommand{\show@thesisYear}{\@thesisYear}
+
+\newcommand{\setAuthorsDeclaration}[1]{\def\@authorsDeclarationText{#1}}
+\newcommand{\show@authorsDeclarationText}{\@authorsDeclarationText}
+
+\newcommand{\setAbstract}[1]{\def\@abstractText{#1}}
+\newcommand{\show@abstractText}{\@abstractText}
+
+\newcommand{\setAcknowledgements}[1]{\def\@acknowledgements{#1}}
+\newcommand{\show@acknowledgements}{\@acknowledgements}
+
+\newcommand{\setDedication}[1]{\def\@dedication{#1}}
+\newcommand{\show@dedication}{\@dedication}
+
+\newcommand{\define}[1]{\index{#1}\emph{#1}}
+\newcommand{\indexText}[1]{\index{#1}#1}
+
+\newcommand\frontmatter{
+ \cleardoublepage
+ \pagenumbering{roman}
+}
+
+\newcommand\mainmatter{
+ \cleardoublepage % for page numbering. Main body (Introduction) should be page 1
+ \pagenumbering{arabic}
+ \doublespacing
+}
+
+\newcommand\backmatter{
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+}
+
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+\ProcessOptions\relax
+\LoadClass{report}
+
+\pdfpageheight 11.0in
+\paperwidth 8.5in
+\RequirePackage[paperwidth=8.5in,paperheight=11.0in,left=1in,right=1in,top=1in,bottom=1in]{geometry}
+%\RequirePackage[parfill]{parskip} % Remove paragraph indentation
+\RequirePackage{float}
+\RequirePackage[pdftex,
+ colorlinks={true},
+ linkcolor={Blue3},
+ urlcolor={Blue3},
+ citecolor={Blue3},
+ pdfstartview={FitH},
+ bookmarks={true},
+ pdfauthor={Author},
+ pdftitle={Title},
+ pdfsubject={Subject}
+ plainpages=false,
+ pdfpagelabels
+ ]{hyperref}
+\RequirePackage[nocompress]{cite}
+\RequirePackage{amsfonts}
+\RequirePackage{amssymb}
+\RequirePackage[cmex10]{amsmath}
+\RequirePackage{verbatim}
+\RequirePackage{lmodern}
+\RequirePackage{setspace}
+\RequirePackage{longtable}
+\RequirePackage{array,ragged2e}
+\RequirePackage[toc,page,title,header]{appendix}
+\RequirePackage{listings}
+\RequirePackage{algpseudocode}
+\RequirePackage{algorithm}
+\RequirePackage{algorithmicx}
+\RequirePackage[usenames,dvipsnames,svgnames,table,x11names]{xcolor}
+\RequirePackage{todonotes}
+\RequirePackage{makeidx}
+\RequirePackage{subfiles}
+\RequirePackage{blindtext}
+
+\makeindex
+
+\definecolor{dkgreen}{rgb}{0,0.4,0}
+\definecolor{maroon}{rgb}{0.5,0,0}
+\definecolor{gray}{rgb}{0.5,0.5,0.5}
+\definecolor{mauve}{rgb}{0.58,0,0.82}
+\definecolor{pblue}{rgb}{0.13,0.13,1}
+\definecolor{pgreen}{rgb}{0,0.5,0}
+\definecolor{pred}{rgb}{0.9,0,0}
+\definecolor{pgrey}{rgb}{0.46,0.45,0.48}
+\definecolor{darkblue}{rgb}{0.0,0.0,0.5}
+\definecolor{cyan}{rgb}{0.0,0.6,0.6}
+\definecolor{BackgroundGreen}{HTML}{E6F0F0}
+\definecolor{NoteBackground}{HTML}{FFFCE3}
+\definecolor{BackgroundBeige}{HTML}{FDF6E3}
+\definecolor{BackgroundYellow}{HTML}{FEFBDF}
+\definecolor{SolarizedGrey}{HTML}{657B83}
+\definecolor{CornellRed}{HTML}{B31B1B}
+\definecolor{CppGold}{HTML}{b38000}
+\definecolor{PythonBlue}{HTML}{3675a9}
+
+\lstset{frame=single,
+ language=Java,
+ columns=flexible,
+ showspaces=false,
+ showtabs=false,
+ breaklines=true,
+ showstringspaces=false,
+ numbers=left,
+ numberstyle=\tiny\color{gray},
+ stepnumber=1,
+ numbersep=8pt,
+ numberstyle=\color{SolarizedGrey},
+ breakatwhitespace=true,
+ commentstyle=\color{gray}\upshape,
+ keywordstyle=\color{pblue},
+ stringstyle=\color{dkgreen},
+ basicstyle={\linespread{1}\small\ttfamily},
+ tabsize=3,
+ moredelim=[il][\textcolor{pgrey}]{$$},
+ moredelim=[is][\textcolor{pgrey}]{\%\%}{\%\%}
+}
+
+\lstdefinelanguage{Java}{%
+ tabsize=4,
+ showstringspaces=false,
+ mathescape=true,
+ breaklines=true,
+ numbers=left,
+ keywords={%
+ abstract, continue, for, new, switch, assert, default, goto, package,
+ synchronized, boolean, do, if, private, this, break, double, implements,
+ protected, throw, byte, else, import, public, throws, case, enum,
+ instanceof, return, transient, catch, extends, int, short, try, char,
+ final, interface, static, void, class, finally, long, strictfp, volatile,
+ const, float, native, super, while
+ },
+ keywords=[2]{%
+ },
+ morestring=[b]",
+ morestring=[b]',
+ morecomment=[l]{//},
+ morecomment=[s]{/*}{*/},
+ keywordstyle=[2]\color{DarkOrchid},
+ numberstyle=\color{SolarizedGrey}
+}
+
+\lstdefinelanguage{JavaScript}{
+ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, const, let, async, await, if, in, while, do, else, case, break, from},
+ ndkeywords={class, export, boolean, throw, implements, import, this},
+ sensitive=false,
+ comment=[l]{//},
+ morecomment=[s]{/*}{*/},
+ morestring=[b]',
+ morestring=[b]"
+}
+
+
+\lstdefinelanguage{XML}
+{
+ morestring=[s]{"}{"},
+ morecomment=[s]{?}{?},
+ morecomment=[s]{!--}{--},
+ moredelim=[s][\color{black}]{>}{<},
+ moredelim=[s][\color{pblue}]{\ }{=},
+ identifierstyle=\color{darkblue}
+}
+%\renewcommand{\lstlistingname}{Source}% Listing -> Source-code
+%\renewcommand{\lstlistlistingname}{List of \lstlistingname s}% List of Listings -> List of Source-code
+\hypersetup{pdfpagemode=UseNone}
+\AtBeginDocument{
+ \hypersetup{
+ pdftitle = {\@title},
+ pdfauthor = {\@author},
+ }
+}
+\RequirePackage[toc,acronym]{glossaries}
+
+\RequirePackage{graphicx}
+\RequirePackage[scriptsize]{caption}
+\RequirePackage{subcaption}
+\RequirePackage{charter}
+\RequirePackage{IEEEtrantools}
+\RequirePackage{sectsty}
+\RequirePackage{csquotes}
+\RequirePackage[bf,big,raggedright]{titlesec}
+
+\setcounter{secnumdepth}{3}
+%\setcounter{tocdepth}{5}
+
+\defglsdisplayfirst[\acronymtype]{#1#4\index{#1}}
+\defglsdisplayfirst[\glsdefaulttype]{#1#4\index{#1}}
+
+%Reference: https://tex.stackexchange.com/questions/247035/adding-chapter-prefix-for-appendix
+\titleformat{\chapter}[display]%
+ {\raggedright\huge\bfseries}% global formatting (number and title)
+ {\ifnum\pdfstrcmp{\@currenvir}{appendices}=0
+ Appendix \thechapter
+ \else
+ Chapter \thechapter
+ \fi}% label: number and its formatting
+ {10pt}% spacing between number and title
+ {}% optional (content between number and title)
+\titlespacing*{\chapter}
+ {0pt}% left
+ {40pt}% before
+ {15pt}% after
+
+%Following can be used within the .tex file as well but
+%before doing so uncomment the makeatletter and makeatother macros.
+%%http://www.michaelshell.org/tex/ieeetran/bibtex/
+%%\makeatletter
+%\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
+%\def\@bstctlcite[#1]#2{\@bsphack
+% \@for\@citeb:=#2\do{%
+% \edef\@citeb{\expandafter\@firstofone\@citeb}%
+% \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
+% \@esphack}
+%%\makeatother
+
+%\captionsetup{font=scriptsize,labelfont=scriptsize}
+\hyphenpenalty 5000
+\exhyphenpenalty 5000
+
+\newcommand\T{\rule{0pt}{2.6ex}} % Top strut
+\newcommand\B{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut
+
+\newcolumntype{L}[1]{>{\RaggedRight\hspace{0pt}}p{#1}}
+\newcolumntype{R}[1]{>{\RaggedLeft\hspace{0pt}}p{#1}}
+
+\author{Author's name}
+\title{Thesis Title}
+
+\doublespacing
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ryersonSGSThesis %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newenvironment{ryersonSGSThesis}{%begin ryersonSGSThesis
+\bibliographystyle{IEEEtran}
+\bstctlcite{IEEEexample:BSTcontrol}
+\newgeometry{left=1in,right=1in,top=2in,bottom=1.25in}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Front matter %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\frontmatter
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 1. Title page %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{titlepage}
+ \begin{center}
+ \textsc{\large \@title}\\
+ \vfill
+ by\\
+ \vfill
+
+ {
+ \large \@author \\
+ \@ifundefined{@pastDegreeA}{
+ \empty
+ \ClassWarning {ryersonSGSThesis} {No past degree set. Use `setPastDegreeA' etc. commands}
+ }{
+ \@pastDegreeA\\
+ }
+ \@ifundefined{@pastDegreeB}{\empty}{\@pastDegreeB\\}
+ \@ifundefined{@pastDegreeC}{\empty}{\@pastDegreeC\\}
+ \@ifundefined{@pastDegreeD}{\empty}{\@pastDegreeD\\}
+ }
+
+ \vfill
+ A dissertation\\
+ presented to \@university\\
+ in partial fulfillment of\\
+ the requirements for the degree of\\
+ \@thesisDegree\\
+ in the Program of\\
+ \@department\\
+ \vfill
+ \@location, \@thesisYear\\
+ \copyright\ \@author, \@thesisYear \\
+ All Rights Reserved\\
+ \end{center}
+\end{titlepage}
+
+\restoregeometry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 2. Author's declaration %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@ifundefined{@authorsDeclarationText}{
+ \empty
+ \ClassWarning {ryersonSGSThesis} {No author's declaration. Use `setAuthorsDeclaration' commnad}
+}{
+\section*{\centering{Author's Declaration For Electronic Submission Of A Dissertation}}
+\@authorsDeclarationText
+\clearpage
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 3. Abstract %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% author and thesis details on top
+\begin{center}
+ \setcounter{page}{2}
+ \textsc{\large \@title}\\
+ \large \@author \\
+ \@thesisDegree \\
+ \@department \\
+ \@university, \@thesisYear
+\end{center}
+
+% abstract text
+\@ifundefined{@abstractText}{
+ \empty
+ \ClassWarning {ryersonSGSThesis} {No abstract set. Use `setAbstract' command}
+}{
+\section*{\centering{Abstract}}
+\@abstractText
+\clearpage
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 4. Acknowledgements %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@ifundefined{@acknowledgements}{
+ \empty
+ \ClassWarning {ryersonSGSThesis} {No acknowledgements set. Use `setAcknowledgements' command}
+}{
+\section*{\centering{Acknowledgments}}
+\@acknowledgements
+\clearpage
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 5. Dedication %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@ifundefined{@dedication}{
+ \empty
+ \ClassWarning {ryersonSGSThesis} {No dedication set. Use `setDedication' command}
+}{
+\section*{\centering{Dedication}}
+ \vspace*{\fill}
+ \begin{flushright}
+ \textit{\@dedication}
+ \end{flushright}
+ \vspace*{\fill}
+ \clearpage
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 6. Table of contents %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tableofcontents
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 7. List of Tables %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\listoftables
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 9. List of Figures %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\listoffigures
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 9. List of Listings %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\lstlistoflistings
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 9. List of Algorithms %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\listofalgorithms
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Main body %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clearpage % for page numbering. Main body (Introduction) should be page 1
+\mainmatter
+}
+%*****************end ryersonSGSThesis************************
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Back matter %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\backmatter