-
Notifications
You must be signed in to change notification settings - Fork 0
/
vitmsprojectreport.cls
363 lines (292 loc) · 11.8 KB
/
vitmsprojectreport.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
%
% LaTeX Class File for VIT MS Final Year Project Report
%
% Author Santhos Baala RS, VIT University - Vellore.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{vitmsprojectreport}[2014/03/11 Custom class for VIT MS Project Report]
\def\vitdraftmode{0} % Declare Draft Mode as false
\DeclareOption{draft}{
\def\vitdraftmode{1}
}
\ProcessOptions
% Load report in draft mode if specified
\ifx\vitdraftmode1
\LoadClass[a4paper,12pt,draft]{report}
\else
\LoadClass[a4paper,12pt]{report}
\fi
\RequirePackage[english]{babel}
\RequirePackage{titlesec}
\RequirePackage{setspace}
\RequirePackage{lmodern}
\RequirePackage{tocloft}
\RequirePackage{cite}
\RequirePackage[hidelinks]{hyperref}
\RequirePackage{footmisc}
\RequirePackage{graphicx}
\RequirePackage{caption}
\RequirePackage{subcaption}
\RequirePackage{xcolor}
\RequirePackage[normalem]{ulem}
\RequirePackage{enumitem}
\RequirePackage{algorithm2e}
\RequirePackage{algorithmicx}
\RequirePackage{algpseudocode}
% To put a numbered chapter for bibliography:
\RequirePackage[nottoc,notlof,notlot,numbib]{tocbibind}
% Packages for Equation
\RequirePackage{amsmath}
\RequirePackage{mathtools}
\RequirePackage{xfrac}
\RequirePackage{nicefrac}
\RequirePackage{amssymb}
% Packages for Table
\RequirePackage{multirow}
\RequirePackage{rotating}
% Declare Shorthands for Equations
\newcommand{\vect}{(x_1,x_2,\dots,x_n)}
\newcommand{\expres}[1]{(#1_1,#1_2,\dots,#1_n)}
\newcommand{\vecto}[2]{(#1_1,#1_2,\dotsc,#1_#2)}
% These three commands make up the "Times New Roman" font
\renewcommand{\sfdefault}{phv}
\renewcommand{\rmdefault}{ptm}
\renewcommand{\ttdefault}{pcr}
% Remove the ugly boxes around links
\hypersetup{
colorlinks=false,
allbordercolors={1 1 1},
}
% Avoid hyphenation to a great degree
\hyphenpenalty=5000
\tolerance=1000
% Set to 1.5 line spacing
\setstretch{1.5}
% Remove natural indentation for lists
\let\originalItemize\itemize
\renewcommand{\itemize}{
\originalItemize[itemsep=0.05cm,leftmargin=*]
}
\let\originalEnumerate\enumerate
\renewcommand{\enumerate}{
\originalEnumerate[itemsep=0.05cm,leftmargin=*]
}
\let\originalDescription\description
\renewcommand{\description}{
\originalDescription[itemsep=0.05cm,leftmargin=*]
}
% A4 Paper and Required Margin for one-side printing
\RequirePackage[a4paper, top=2.25cm, bottom=2.25cm, left=4.0cm, right=2cm]{geometry}
% Page Number on Bottom Right
\RequirePackage{fancyhdr}
\fancypagestyle{plain}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[R]{\textcolor{gray}{\thepage}}
\fancyfoot{}
}
\pagestyle{plain} % Set the page style for all the pages
% Change the footnote rule style
\renewcommand\footnoterule{%
\vspace{0.25cm}
\hrule\@width.4\columnwidth
\vspace{0.25cm}
}
% Set the footnote font size
\renewcommand\footnotelayout{\fontsize{10}{12}\selectfont}
% Change the Hypperref Style to use roman font family
\renewcommand\UrlFont{\rmfamily}
% Change the algorithm environment to behave as a floating figure
\renewenvironment{algorithm}
{\begin{figure}[htb]\hrulefill}
{\vspace{-2.35em}\hrulefill\end{figure}}
% Change the title of table of contents [Use with Babel-English]
\setlength{\cftbeforetoctitleskip}{-3em} % Remove Top Margin of TOC title.
\setlength{\cftaftertoctitleskip}{1em} % Reduce Bottom Margin of TOC title.
\addto\captionsenglish{%
\renewcommand{\contentsname}%
{\hfill\bfseries\fontsize{14}{16.8}\selectfont \uline{Table of Contents}\hfill}%
}
% Change the title style of list of tables [Use with Babel-English]
\setlength{\cftbeforelottitleskip}{-3em} % Remove Top Margin of TOC title.
\setlength{\cftafterlottitleskip}{1em} % Reduce Bottom Margin of TOC title.
\addto\captionsenglish{%
\renewcommand{\listtablename}%
{\clearpage\hfill\bfseries\fontsize{14}{16.8}\selectfont \uline{List of Tables}\hfill}
}
% Change the title style of list of figures [Use with Babel-English]
\setlength{\cftbeforeloftitleskip}{-3em} % Remove Top Margin of TOC title.
\setlength{\cftafterloftitleskip}{1em} % Reduce Bottom Margin of TOC title.
\addto\captionsenglish{%
\renewcommand{\listfigurename}%
{\clearpage\hfill\bfseries\fontsize{14}{16.8}\selectfont \uline{List of Figures}\hfill}
}
% Custom chapter title - Plain [Number]. [Title] - 14pt
\renewcommand{\@makechapterhead}[1]{
{\noindent\bf\fontsize{14}{16.8}\selectfont\thechapter .\quad #1 \newline}
}
% Custom section title - 13pt
\titleformat*{\section}{\bf\fontsize{13}{15.6}\selectfont}
% Custom sub-section title - 12 pt
\titleformat*{\subsection}{\bf\fontsize{12}{14.4}\selectfont}
% Custom sub-sub-section title - 12 pt Italic
\titleformat*{\subsubsection}{\itshape\bfseries\fontsize{12}{14.4}\selectfont}
% Plain bibliography style
\bibliographystyle{plain}
% A new table environment with extra padding: padded table. Position fixed at HTB
\newenvironment{paddedtable}
{\@float{table}[htb]\setlength{\tabcolsep}{10pt}\def\arraystretch{1.75}}
{\end@float}
\newenvironment{paddedtable*}
{\@dblfloat{table}[htb]}
{\end@dblfloat}
%==========================================================================
% %
% Macros %
% %
%==========================================================================
% Macro To Render The Title Page
%
% ARGS: Title of the project, Your Name, Reg No., Guide's Name, Guide's Title
\newcommand{\maketitlepage}[5]{
\def\vitprojecttitle{{\let\\=\relax #1}} % Cache the project title for later use
\def\vitauthorname{#2} % Cache the author name for later use
\def\vitauthorregno{#3} % Cache the author regno for later use
\def\vitguidename{#4} % Cache the guide name for later use
\def\vitguidetitle{#5} % Cache the guide title for later use
\begin{titlepage}
\vspace*{\fill}
\begin{center}
\textrm{\bf\fontsize{20}{24}\selectfont #1\\}
\vspace{1em}
\textrm{\fontsize{12}{14.4}\selectfont\textsc{A Project Report\\}}
\vspace{1em}
\textrm{\fontsize{12}{14.4}\selectfont\textit{Submitted in partial fulfilment for the award of the degree of\\}}
\vspace{0.75em}
\textrm{\fontsize{18}{21.6}\selectfont MS\\}
\vspace{0.75em}
\textrm{\fontsize{18}{21.6}\selectfont in\\}
\vspace{0.75em}
\textrm{\fontsize{18}{21.6}\selectfont Sofware Engineering\\}
\vspace{0.75em}
\textrm{\fontsize{12}{14.4}\selectfont By\\}
\vspace{1.5em}
\textrm{\fontsize{20}{24}\selectfont #2, #3\\}
\vspace{0.75em}
\textrm{\fontsize{12}{14.4}\selectfont Under the Guidance of\\}
\vspace{0.75em}
\textrm{\fontsize{18}{21.6}\selectfont #4\\}
\textrm{\fontsize{18}{21.6}\selectfont #5\\}
\vspace{0.15em}
\textrm{\fontsize{14}{16.8}\selectfont\textsc{School Of Information Technology And Engineering\\VIT University\\}}
\vspace{4em}
\includegraphics{vit.png}
\end{center}
\vspace*{\fill}
\end{titlepage}
}
% Macro To Render The Declaration Page
%
% ARGS: None (Cached by title page)
\newcommand{\makedeclarationpage}{
\newpage
\begin{center}
\bfseries\fontsize{14}{16.8}\selectfont\uline{DECLARATION BY THE CANDIDATE}
\end{center}
\begingroup
\hyphenpenalty 10000
\exhyphenpenalty 10000
\noindent
I here by declare that the project report titled, \textbf{``\vitprojecttitle''} submitted by me to VIT University, Vellore in partial fulfilment of the requirement for the award of the degree of \textbf{M.S. (Software Engineering)} is a record of bonafide project work carried out by me under the guidance of \textbf{\hyphenpenalty=100000\vitguidename~(\vitguidetitle)}. I further declare that the work reported in this project has not been submitted and will not be submitted, either in part or in full, for the award of any other degree or diploma in this institute or any other institute or university.
\endgroup
\noindent
\linebreak
Place: Vellore \hspace{\stretch{1}} Signature of the Candidate\\
Date:\\
\\
\vspace{1.0cm}
\hspace{\stretch{1}} \vitauthorname~(\vitauthorregno)
\clearpage
}
% Macro To Render The Bonafide Page
%
% ARGS: None (Cached by title page)
\newcommand{\makebonafidepage}{
\newpage
\begin{center}
\includegraphics{vit.png}
\vspace{0.5em}
\bfseries\fontsize{12}{14.4}\selectfont \\SCHOOL OF INFORMATION TECHNOLOGY AND ENGINEERING [SITE]\\
\bfseries\fontsize{12}{14.4}\selectfont SOFTWARE ENGINEERING DIVISION\\
\bfseries\fontsize{12}{14.4}\selectfont\uline{BONAFIDE CERTIFICATE}
\end{center}
\noindent
This is to certify that the project report titled, \textbf{``\vitprojecttitle''}, submitted by \textbf{\vitauthorname~(\vitauthorregno)} to VIT University, Vellore in partial fulfillment of the requirement for the award of the degree of M.S. (Software Engineering) is a record of bonafide work carried out by him/her under my guidance. The project fulfills the requirements as per the regulations of this institute and in my opinion meets the necessary standards for submission. The contents of this report have not been submitted and will not be submitted either in part or in full, for the award of any other degree or diploma in this institute or any other institute or university.\\
\vspace{1.5cm}
\begin{flushright}
\textbf{
\vitguidename\hspace*{\stretch{0.36}}\\
Internal Guide\hspace*{\stretch{0.30}}\\
}
\vitguidetitle,\hspace*{\stretch{0.25}}\\
School Of Information Technology \& Engineering\hspace*{\stretch{0}}
\end{flushright}
\vspace{1cm}
\hrule
\vspace{2.0cm}
\textbf{
Internal Examiner\hspace*{\fill}External Examiner{\hspace*{\stretch{0.1}}}
}
\clearpage
}
% Macro To Render The Acknowledgement Page
%
% ARGS: Dean, Program Manager, Year Co-Ordinator
\newcommand{\makeackpage}[3]{
\newpage
\begin{center}
\bfseries\fontsize{14}{16.8}\selectfont\uline{Acknowledgements}
\end{center}
I take immense pleasure in thanking \textbf{Dr. G. Viswanathan}, my beloved Chancellor, VIT University, \textbf{#1}, Dean, School Of Information Technology and Engineering, {\hyphenpenalty=10000\textbf{#2}}, Program Manager, M.S. Software Engineering and {\hyphenpenalty=100000\textbf{#3}}, Project coordinator, M.S. Software Engineering for having permitted me to carry out the project.
I express gratitude to my guide, \textbf{\hyphenpenalty=10000{\vitguidename}}, for guidance and suggestions that helped me to complete the project on time. Words are inadequate to express my gratitude to the faculty and staff members who encouraged and supported me during the project. Finally, I would like to thank my ever-loving parents for their blessings and my friends for their timely help and support.
\clearpage
}
% Macro To Render The Executive Summary Page
%
% ARGS: The executive summary text
\newcommand{\makeexecsummarypage}[1]{
\newpage
\begin{center}
\bfseries\fontsize{14}{16.8}\selectfont\uline{Executive Summary}
\end{center}
#1
\clearpage
}
% Single Macro to generate the default pages.
% Functions like a Façade to the individual macros.
%
% Args: (TitlePage + Ack + Exec)
% Title of the project, Your Name, Reg No., Guide's Name, Guide's Title,
% Dean, Program Manager, Year Co-Ordinator,
% The executive summary text
\newcommand{\makestartingpages}[9]{
\pagenumbering{roman} % Set page numbering to roman style
\maketitlepage{#1}{#2}{#3}{#4}{#5} % Title Page
\makedeclarationpage % Declaration Page
\makebonafidepage % Bonafide Page
\makeackpage{#6}{#7}{#8} % Acknowledgements Page
\makeexecsummarypage{#9} % Exec. Summary Page
\tableofcontents % Table Of Contents
\listoffigures % List of Figures
\listoftables % List of Tables
\clearpage
\setcounter{page}{1}
\pagenumbering{arabic}
}
% Macro to insert references chapter
%
% Args: the bibliography file
\newcommand{\insertreferences}[1]{
\renewcommand{\bibname}{References} % Change 'Bibliography' to 'References'
\bibliography{#1}
}