summaryrefslogtreecommitdiffstats
path: root/report
diff options
context:
space:
mode:
Diffstat (limited to 'report')
-rw-r--r--report/IEEEtran.bst2417
-rw-r--r--report/Makefile28
-rw-r--r--report/combox-report.pdfbin0 -> 30329 bytes
-rw-r--r--report/combox.tex348
-rw-r--r--report/uthesis-v12.cls1465
5 files changed, 4258 insertions, 0 deletions
diff --git a/report/IEEEtran.bst b/report/IEEEtran.bst
new file mode 100644
index 0000000..4b84127
--- /dev/null
+++ b/report/IEEEtran.bst
@@ -0,0 +1,2417 @@
+%%
+%% IEEEtran.bst
+%% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted)
+%% Version 1.12 (2007/01/11)
+%%
+%% Copyright (c) 2003-2007 Michael Shell
+%%
+%% Original starting code base and algorithms obtained from the output of
+%% Patrick W. Daly's makebst package as well as from prior versions of
+%% IEEE BibTeX styles:
+%%
+%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988)
+%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993)
+%%
+%% Support sites:
+%% http://www.michaelshell.org/tex/ieeetran/
+%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
+%% and/or
+%% http://www.ieee.org/
+%%
+%% For use with BibTeX version 0.99a or later
+%%
+%% This is a numerical citation style.
+%%
+%%*************************************************************************
+%% Legal Notice:
+%% This code is offered as-is without any warranty either expressed or
+%% implied; without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE!
+%% User assumes all risk.
+%% In no event shall IEEE or any contributor to this code be liable for
+%% any damages or losses, including, but not limited to, incidental,
+%% consequential, or any other damages, resulting from the use or misuse
+%% of any information contained here.
+%%
+%% All comments are the opinions of their respective authors and are not
+%% necessarily endorsed by the IEEE.
+%%
+%% This work is distributed under the LaTeX Project Public License (LPPL)
+%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
+%% distributed and modified. A copy of the LPPL, version 1.3, is included
+%% in the base LaTeX documentation of all distributions of LaTeX released
+%% 2003/12/01 or later.
+%% Retain all contribution notices and credits.
+%% ** Modified files should be clearly indicated as such, including **
+%% ** renaming them and changing author support contact information. **
+%%
+%% File list of work: IEEEabrv.bib, IEEEfull.bib, IEEEexample.bib,
+%% IEEEtran.bst, IEEEtranS.bst, IEEEtranSA.bst,
+%% IEEEtranN.bst, IEEEtranSN.bst, IEEEtran_bst_HOWTO.pdf
+%%*************************************************************************
+%
+%
+% Changelog:
+%
+% 1.00 (2002/08/13) Initial release
+%
+% 1.10 (2002/09/27)
+% 1. Corrected minor bug for improperly formed warning message when a
+% book was not given a title. Thanks to Ming Kin Lai for reporting this.
+% 2. Added support for CTLname_format_string and CTLname_latex_cmd fields
+% in the BST control entry type.
+%
+% 1.11 (2003/04/02)
+% 1. Fixed bug with URLs containing underscores when using url.sty. Thanks
+% to Ming Kin Lai for reporting this.
+%
+% 1.12 (2007/01/11)
+% 1. Fixed bug with unwanted comma before "et al." when an entry contained
+% more than two author names. Thanks to Pallav Gupta for reporting this.
+% 2. Fixed bug with anomalous closing quote in tech reports that have a
+% type, but without a number or address. Thanks to Mehrdad Mirreza for
+% reporting this.
+% 3. Use braces in \providecommand in begin.bib to better support
+% latex2html. TeX style length assignments OK with recent versions
+% of latex2html - 1.71 (2002/2/1) or later is strongly recommended.
+% Use of the language field still causes trouble with latex2html.
+% Thanks to Federico Beffa for reporting this.
+% 4. Added IEEEtran.bst ID and version comment string to .bbl output.
+% 5. Provide a \BIBdecl hook that allows the user to execute commands
+% just prior to the first entry.
+% 6. Use default urlstyle (is using url.sty) of "same" rather than rm to
+% better work with a wider variety of bibliography styles.
+% 7. Changed month abbreviations from Sept., July and June to Sep., Jul.,
+% and Jun., respectively, as IEEE now does. Thanks to Moritz Borgmann
+% for reporting this.
+% 8. Control entry types should not be considered when calculating longest
+% label width.
+% 9. Added alias www for electronic/online.
+% 10. Added CTLname_url_prefix control entry type.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% These are the defaults for the user adjustable controls. The values used
+% here can be overridden by the user via IEEEtranBSTCTL entry type.
+
+% NOTE: The recommended LaTeX command to invoke a control entry type is:
+%
+%\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
+%
+% It is called at the start of the document, before the first \cite, like:
+% \bstctlcite{IEEEexample:BSTcontrol}
+%
+% IEEEtran.cls V1.6 and later does provide this command.
+
+
+
+% #0 turns off the display of the number for articles.
+% #1 enables
+FUNCTION {default.is.use.number.for.article} { #1 }
+
+
+% #0 turns off the display of the paper and type fields in @inproceedings.
+% #1 enables
+FUNCTION {default.is.use.paper} { #1 }
+
+
+% #0 turns off the forced use of "et al."
+% #1 enables
+FUNCTION {default.is.forced.et.al} { #0 }
+
+% The maximum number of names that can be present beyond which an "et al."
+% usage is forced. Be sure that num.names.shown.with.forced.et.al (below)
+% is not greater than this value!
+% Note: There are many instances of references in IEEE journals which have
+% a very large number of authors as well as instances in which "et al." is
+% used profusely.
+FUNCTION {default.max.num.names.before.forced.et.al} { #10 }
+
+% The number of names that will be shown with a forced "et al.".
+% Must be less than or equal to max.num.names.before.forced.et.al
+FUNCTION {default.num.names.shown.with.forced.et.al} { #1 }
+
+
+% #0 turns off the alternate interword spacing for entries with URLs.
+% #1 enables
+FUNCTION {default.is.use.alt.interword.spacing} { #1 }
+
+% If alternate interword spacing for entries with URLs is enabled, this is
+% the interword spacing stretch factor that will be used. For example, the
+% default "4" here means that the interword spacing in entries with URLs can
+% stretch to four times normal. Does not have to be an integer. Note that
+% the value specified here can be overridden by the user in their LaTeX
+% code via a command such as:
+% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to
+% that via the IEEEtranBSTCTL entry type.
+FUNCTION {default.ALTinterwordstretchfactor} { "4" }
+
+
+% #0 turns off the "dashification" of repeated (i.e., identical to those
+% of the previous entry) names. IEEE normally does this.
+% #1 enables
+FUNCTION {default.is.dash.repeated.names} { #1 }
+
+
+% The default name format control string.
+FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" }
+
+
+% The default LaTeX font command for the names.
+FUNCTION {default.name.latex.cmd}{ "" }
+
+
+% The default URL prefix.
+FUNCTION {default.name.url.prefix}{ "[Online]. Available:" }
+
+
+% Other controls that cannot be accessed via IEEEtranBSTCTL entry type.
+
+% #0 turns off the terminal startup banner/completed message so as to
+% operate more quietly.
+% #1 enables
+FUNCTION {is.print.banners.to.terminal} { #1 }
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% FILE VERSION AND BANNER %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION{bst.file.version} { "1.12" }
+FUNCTION{bst.file.date} { "2007/01/11" }
+FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" }
+
+FUNCTION {banner.message}
+{ is.print.banners.to.terminal
+ { "-- IEEEtran.bst version" " " * bst.file.version *
+ " (" * bst.file.date * ") " * "by Michael Shell." *
+ top$
+ "-- " bst.file.website *
+ top$
+ "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." *
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {completed.message}
+{ is.print.banners.to.terminal
+ { ""
+ top$
+ "Done."
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% STRING CONSTANTS %%
+%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {bbl.and}{ "and" }
+FUNCTION {bbl.etal}{ "et~al." }
+FUNCTION {bbl.editors}{ "eds." }
+FUNCTION {bbl.editor}{ "ed." }
+FUNCTION {bbl.edition}{ "ed." }
+FUNCTION {bbl.volume}{ "vol." }
+FUNCTION {bbl.of}{ "of" }
+FUNCTION {bbl.number}{ "no." }
+FUNCTION {bbl.in}{ "in" }
+FUNCTION {bbl.pages}{ "pp." }
+FUNCTION {bbl.page}{ "p." }
+FUNCTION {bbl.chapter}{ "ch." }
+FUNCTION {bbl.paper}{ "paper" }
+FUNCTION {bbl.part}{ "pt." }
+FUNCTION {bbl.patent}{ "Patent" }
+FUNCTION {bbl.patentUS}{ "U.S." }
+FUNCTION {bbl.revision}{ "Rev." }
+FUNCTION {bbl.series}{ "ser." }
+FUNCTION {bbl.standard}{ "Std." }
+FUNCTION {bbl.techrep}{ "Tech. Rep." }
+FUNCTION {bbl.mthesis}{ "Master's thesis" }
+FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" }
+FUNCTION {bbl.st}{ "st" }
+FUNCTION {bbl.nd}{ "nd" }
+FUNCTION {bbl.rd}{ "rd" }
+FUNCTION {bbl.th}{ "th" }
+
+
+% This is the LaTeX spacer that is used when a larger than normal space
+% is called for (such as just before the address:publisher).
+FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " }
+
+% The LaTeX code for dashes that are used to represent repeated names.
+% Note: Some older IEEE journals used something like
+% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along
+% the baseline. However, IEEE now uses a thinner, above baseline,
+% six dash long sequence.
+FUNCTION {repeated.name.dashes} { "------" }
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% PREDEFINED STRING MACROS %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"Jun."}
+MACRO {jul} {"Jul."}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sep."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+
+%%%%%%%%%%%%%%%%%%
+%% ENTRY FIELDS %%
+%%%%%%%%%%%%%%%%%%
+
+ENTRY
+ { address
+ assignee
+ author
+ booktitle
+ chapter
+ day
+ dayfiled
+ edition
+ editor
+ howpublished
+ institution
+ intype
+ journal
+ key
+ language
+ month
+ monthfiled
+ nationality
+ note
+ number
+ organization
+ pages
+ paper
+ publisher
+ school
+ series
+ revision
+ title
+ type
+ url
+ volume
+ year
+ yearfiled
+ CTLuse_article_number
+ CTLuse_paper
+ CTLuse_forced_etal
+ CTLmax_names_forced_etal
+ CTLnames_show_etal
+ CTLuse_alt_spacing
+ CTLalt_stretch_factor
+ CTLdash_repeated_names
+ CTLname_format_string
+ CTLname_latex_cmd
+ CTLname_url_prefix
+ }
+ {}
+ { label }
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% INTEGER VARIABLES %%
+%%%%%%%%%%%%%%%%%%%%%%%
+
+INTEGERS { prev.status.punct this.status.punct punct.std
+ punct.no punct.comma punct.period
+ prev.status.space this.status.space space.std
+ space.no space.normal space.large
+ prev.status.quote this.status.quote quote.std
+ quote.no quote.close
+ prev.status.nline this.status.nline nline.std
+ nline.no nline.newblock
+ status.cap cap.std
+ cap.no cap.yes}
+
+INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames }
+
+INTEGERS { is.use.number.for.article
+ is.use.paper
+ is.forced.et.al
+ max.num.names.before.forced.et.al
+ num.names.shown.with.forced.et.al
+ is.use.alt.interword.spacing
+ is.dash.repeated.names}
+
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% STRING VARIABLES %%
+%%%%%%%%%%%%%%%%%%%%%%
+
+STRINGS { bibinfo
+ longest.label
+ oldname
+ s
+ t
+ ALTinterwordstretchfactor
+ name.format.string
+ name.latex.cmd
+ name.url.prefix}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOW LEVEL FUNCTIONS %%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {initialize.controls}
+{ default.is.use.number.for.article 'is.use.number.for.article :=
+ default.is.use.paper 'is.use.paper :=
+ default.is.forced.et.al 'is.forced.et.al :=
+ default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al :=
+ default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al :=
+ default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing :=
+ default.is.dash.repeated.names 'is.dash.repeated.names :=
+ default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor :=
+ default.name.format.string 'name.format.string :=
+ default.name.latex.cmd 'name.latex.cmd :=
+ default.name.url.prefix 'name.url.prefix :=
+}
+
+
+% This IEEEtran.bst features a very powerful and flexible mechanism for
+% controlling the capitalization, punctuation, spacing, quotation, and
+% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need
+% or use the newline/newblock feature, but it has been implemented for
+% possible future use.) The output states of IEEEtran.bst consist of
+% multiple independent attributes and, as such, can be thought of as being
+% vectors, rather than the simple scalar values ("before.all",
+% "mid.sentence", etc.) used in most other .bst files.
+%
+% The more flexible and complex design used here was motivated in part by
+% IEEE's rather unusual bibliography style. For example, IEEE ends the
+% previous field item with a period and large space prior to the publisher
+% address; the @electronic entry types use periods as inter-item punctuation
+% rather than the commas used by the other entry types; and URLs are never
+% followed by periods even though they are the last item in the entry.
+% Although it is possible to accommodate these features with the conventional
+% output state system, the seemingly endless exceptions make for convoluted,
+% unreliable and difficult to maintain code.
+%
+% IEEEtran.bst's output state system can be easily understood via a simple
+% illustration of two most recently formatted entry fields (on the stack):
+%
+% CURRENT_ITEM
+% "PREVIOUS_ITEM
+%
+% which, in this example, is to eventually appear in the bibliography as:
+%
+% "PREVIOUS_ITEM," CURRENT_ITEM
+%
+% It is the job of the output routine to take the previous item off of the
+% stack (while leaving the current item at the top of the stack), apply its
+% trailing punctuation (including closing quote marks) and spacing, and then
+% to write the result to BibTeX's output buffer:
+%
+% "PREVIOUS_ITEM,"
+%
+% Punctuation (and spacing) between items is often determined by both of the
+% items rather than just the first one. The presence of quotation marks
+% further complicates the situation because, in standard English, trailing
+% punctuation marks are supposed to be contained within the quotes.
+%
+% IEEEtran.bst maintains two output state (aka "status") vectors which
+% correspond to the previous and current (aka "this") items. Each vector
+% consists of several independent attributes which track punctuation,
+% spacing, quotation, and newlines. Capitalization status is handled by a
+% separate scalar because the format routines, not the output routine,
+% handle capitalization and, therefore, there is no need to maintain the
+% capitalization attribute for both the "previous" and "this" items.
+%
+% When a format routine adds a new item, it copies the current output status
+% vector to the previous output status vector and (usually) resets the
+% current (this) output status vector to a "standard status" vector. Using a
+% "standard status" vector in this way allows us to redefine what we mean by
+% "standard status" at the start of each entry handler and reuse the same
+% format routines under the various inter-item separation schemes. For
+% example, the standard status vector for the @book entry type may use
+% commas for item separators, while the @electronic type may use periods,
+% yet both entry handlers exploit many of the exact same format routines.
+%
+% Because format routines have write access to the output status vector of
+% the previous item, they can override the punctuation choices of the
+% previous format routine! Therefore, it becomes trivial to implement rules
+% such as "Always use a period and a large space before the publisher." By
+% pushing the generation of the closing quote mark to the output routine, we
+% avoid all the problems caused by having to close a quote before having all
+% the information required to determine what the punctuation should be.
+%
+% The IEEEtran.bst output state system can easily be expanded if needed.
+% For instance, it is easy to add a "space.tie" attribute value if the
+% bibliography rules mandate that two items have to be joined with an
+% unbreakable space.
+
+FUNCTION {initialize.status.constants}
+{ #0 'punct.no :=
+ #1 'punct.comma :=
+ #2 'punct.period :=
+ #0 'space.no :=
+ #1 'space.normal :=
+ #2 'space.large :=
+ #0 'quote.no :=
+ #1 'quote.close :=
+ #0 'cap.no :=
+ #1 'cap.yes :=
+ #0 'nline.no :=
+ #1 'nline.newblock :=
+}
+
+FUNCTION {std.status.using.comma}
+{ punct.comma 'punct.std :=
+ space.normal 'space.std :=
+ quote.no 'quote.std :=
+ nline.no 'nline.std :=
+ cap.no 'cap.std :=
+}
+
+FUNCTION {std.status.using.period}
+{ punct.period 'punct.std :=
+ space.normal 'space.std :=
+ quote.no 'quote.std :=
+ nline.no 'nline.std :=
+ cap.yes 'cap.std :=
+}
+
+FUNCTION {initialize.prev.this.status}
+{ punct.no 'prev.status.punct :=
+ space.no 'prev.status.space :=
+ quote.no 'prev.status.quote :=
+ nline.no 'prev.status.nline :=
+ punct.no 'this.status.punct :=
+ space.no 'this.status.space :=
+ quote.no 'this.status.quote :=
+ nline.no 'this.status.nline :=
+ cap.yes 'status.cap :=
+}
+
+FUNCTION {this.status.std}
+{ punct.std 'this.status.punct :=
+ space.std 'this.status.space :=
+ quote.std 'this.status.quote :=
+ nline.std 'this.status.nline :=
+}
+
+FUNCTION {cap.status.std}{ cap.std 'status.cap := }
+
+FUNCTION {this.to.prev.status}
+{ this.status.punct 'prev.status.punct :=
+ this.status.space 'prev.status.space :=
+ this.status.quote 'prev.status.quote :=
+ this.status.nline 'prev.status.nline :=
+}
+
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ { skip$ }
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ { skip$ }
+ if$
+}
+
+
+% convert the strings "yes" or "no" to #1 or #0 respectively
+FUNCTION {yes.no.to.int}
+{ "l" change.case$ duplicate$
+ "yes" =
+ { pop$ #1 }
+ { duplicate$ "no" =
+ { pop$ #0 }
+ { "unknown boolean " quote$ * swap$ * quote$ *
+ " in " * cite$ * warning$
+ #0
+ }
+ if$
+ }
+ if$
+}
+
+
+% pushes true if the single char string on the stack is in the
+% range of "0" to "9"
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+% multiplies the integer on the stack by a factor of 10
+FUNCTION {bump.int.mag}
+{ #0 'multiresult :=
+ { duplicate$ #0 > }
+ { #1 -
+ multiresult #10 +
+ 'multiresult :=
+ }
+ while$
+pop$
+multiresult
+}
+
+% converts a single character string on the stack to an integer
+FUNCTION {char.to.integer}
+{ duplicate$
+ is.num
+ { chr.to.int$ "0" chr.to.int$ - }
+ {"noninteger character " quote$ * swap$ * quote$ *
+ " in integer field of " * cite$ * warning$
+ #0
+ }
+ if$
+}
+
+% converts a string on the stack to an integer
+FUNCTION {string.to.integer}
+{ duplicate$ text.length$ 'namesleft :=
+ #1 'nameptr :=
+ #0 'numnames :=
+ { nameptr namesleft > not }
+ { duplicate$ nameptr #1 substring$
+ char.to.integer numnames bump.int.mag +
+ 'numnames :=
+ nameptr #1 +
+ 'nameptr :=
+ }
+ while$
+pop$
+numnames
+}
+
+
+
+
+% The output routines write out the *next* to the top (previous) item on the
+% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains
+% the output status for the top two items on the stack, these output
+% routines have to consider the previous output status (which corresponds to
+% the item that is being output). Full independent control of punctuation,
+% closing quote marks, spacing, and newblock is provided.
+%
+% "output.nonnull" does not check for the presence of a previous empty
+% item.
+%
+% "output" does check for the presence of a previous empty item and will
+% remove an empty item rather than outputing it.
+%
+% "output.warn" is like "output", but will issue a warning if it detects
+% an empty item.
+
+FUNCTION {output.nonnull}
+{ swap$
+ prev.status.punct punct.comma =
+ { "," * }
+ { skip$ }
+ if$
+ prev.status.punct punct.period =
+ { add.period$ }
+ { skip$ }
+ if$
+ prev.status.quote quote.close =
+ { "''" * }
+ { skip$ }
+ if$
+ prev.status.space space.normal =
+ { " " * }
+ { skip$ }
+ if$
+ prev.status.space space.large =
+ { large.space * }
+ { skip$ }
+ if$
+ write$
+ prev.status.nline nline.newblock =
+ { newline$ "\newblock " write$ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.warn}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+% "fin.entry" is the output routine that handles the last item of the entry
+% (which will be on the top of the stack when "fin.entry" is called).
+
+FUNCTION {fin.entry}
+{ this.status.punct punct.no =
+ { skip$ }
+ { add.period$ }
+ if$
+ this.status.quote quote.close =
+ { "''" * }
+ { skip$ }
+ if$
+write$
+newline$
+}
+
+
+FUNCTION {is.last.char.not.punct}
+{ duplicate$
+ "}" * add.period$
+ #-1 #1 substring$ "." =
+}
+
+FUNCTION {is.multiple.pages}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {capitalize}{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+FUNCTION {do.name.latex.cmd}
+{ name.latex.cmd
+ empty$
+ { skip$ }
+ { name.latex.cmd "{" * swap$ * "}" * }
+ if$
+}
+
+% IEEEtran.bst uses its own \BIBforeignlanguage command which directly
+% invokes the TeX hyphenation patterns without the need of the Babel
+% package. Babel does a lot more than switch hyphenation patterns and
+% its loading can cause unintended effects in many class files (such as
+% IEEEtran.cls).
+FUNCTION {select.language}
+{ duplicate$ empty$ 'pop$
+ { language empty$ 'skip$
+ { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$
+}
+
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {space.word}{ " " swap$ * " " * }
+
+
+% Field Conditioners, Converters, Checkers and External Interfaces
+
+FUNCTION {empty.field.to.null.string}
+{ duplicate$ empty$
+ { pop$ "" }
+ { skip$ }
+ if$
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ { pop$ }
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {empty.entry.warn}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$ url empty$
+ and and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+
+% The bibinfo system provides a way for the electronic parsing/acquisition
+% of a bibliography's contents as is done by ReVTeX. For example, a field
+% could be entered into the bibliography as:
+% \bibinfo{volume}{2}
+% Only the "2" would show up in the document, but the LaTeX \bibinfo command
+% could do additional things with the information. IEEEtran.bst does provide
+% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is
+% currently not used as the bogus bibinfo functions defined here output the
+% entry values directly without the \bibinfo wrapper. The bibinfo functions
+% themselves (and the calls to them) are retained for possible future use.
+%
+% bibinfo.check avoids acting on missing fields while bibinfo.warn will
+% issue a warning message if a missing field is detected. Prior to calling
+% the bibinfo functions, the user should push the field value and then its
+% name string, in that order.
+
+FUNCTION {bibinfo.check}
+{ swap$ duplicate$ missing$
+ { pop$ pop$ "" }
+ { duplicate$ empty$
+ { swap$ pop$ }
+ { swap$ pop$ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {bibinfo.warn}
+{ swap$ duplicate$ missing$
+ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" }
+ { duplicate$ empty$
+ { swap$ "empty " swap$ * " in " * cite$ * warning$ }
+ { swap$ pop$ }
+ if$
+ }
+ if$
+}
+
+
+% IEEE separates large numbers with more than 4 digits into groups of
+% three. IEEE uses a small space to separate these number groups.
+% Typical applications include patent and page numbers.
+
+% number of consecutive digits required to trigger the group separation.
+FUNCTION {large.number.trigger}{ #5 }
+
+% For numbers longer than the trigger, this is the blocksize of the groups.
+% The blocksize must be less than the trigger threshold, and 2 * blocksize
+% must be greater than the trigger threshold (can't do more than one
+% separation on the initial trigger).
+FUNCTION {large.number.blocksize}{ #3 }
+
+% What is actually inserted between the number groups.
+FUNCTION {large.number.separator}{ "\," }
+
+% So as to save on integer variables by reusing existing ones, numnames
+% holds the current number of consecutive digits read and nameptr holds
+% the number that will trigger an inserted space.
+FUNCTION {large.number.separate}
+{ 't :=
+ ""
+ #0 'numnames :=
+ large.number.trigger 'nameptr :=
+ { t empty$ not }
+ { t #-1 #1 substring$ is.num
+ { numnames #1 + 'numnames := }
+ { #0 'numnames :=
+ large.number.trigger 'nameptr :=
+ }
+ if$
+ t #-1 #1 substring$ swap$ *
+ t #-2 global.max$ substring$ 't :=
+ numnames nameptr =
+ { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$
+ nameptr large.number.blocksize - #1 + global.max$ substring$
+ large.number.separator swap$ * *
+ nameptr large.number.blocksize - 'numnames :=
+ large.number.blocksize #1 + 'nameptr :=
+ }
+ { skip$ }
+ if$
+ }
+ while$
+}
+
+% Converts all single dashes "-" to double dashes "--".
+FUNCTION {n.dashify}
+{ large.number.separate
+ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+
+% This function detects entries with names that are identical to that of
+% the previous entry and replaces the repeated names with dashes (if the
+% "is.dash.repeated.names" user control is nonzero).
+FUNCTION {name.or.dash}
+{ 's :=
+ oldname empty$
+ { s 'oldname := s }
+ { s oldname =
+ { is.dash.repeated.names
+ { repeated.name.dashes }
+ { s 'oldname := s }
+ if$
+ }
+ { s 'oldname := s }
+ if$
+ }
+ if$
+}
+
+% Converts the number string on the top of the stack to
+% "numerical ordinal form" (e.g., "7" to "7th"). There is
+% no artificial limit to the upper bound of the numbers as the
+% least significant digit always determines the ordinal form.
+FUNCTION {num.to.ordinal}
+{ duplicate$ #-1 #1 substring$ "1" =
+ { bbl.st * }
+ { duplicate$ #-1 #1 substring$ "2" =
+ { bbl.nd * }
+ { duplicate$ #-1 #1 substring$ "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% If the string on the top of the stack begins with a number,
+% (e.g., 11th) then replace the string with the leading number
+% it contains. Otherwise retain the string as-is. s holds the
+% extracted number, t holds the part of the string that remains
+% to be scanned.
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+% Converts the word number string on the top of the stack to
+% Arabic string form. Will be successful up to "tenth".
+FUNCTION {word.to.num}
+{ duplicate$ "l" change.case$ 's :=
+ s "first" =
+ { pop$ "1" }
+ { skip$ }
+ if$
+ s "second" =
+ { pop$ "2" }
+ { skip$ }
+ if$
+ s "third" =
+ { pop$ "3" }
+ { skip$ }
+ if$
+ s "fourth" =
+ { pop$ "4" }
+ { skip$ }
+ if$
+ s "fifth" =
+ { pop$ "5" }
+ { skip$ }
+ if$
+ s "sixth" =
+ { pop$ "6" }
+ { skip$ }
+ if$
+ s "seventh" =
+ { pop$ "7" }
+ { skip$ }
+ if$
+ s "eighth" =
+ { pop$ "8" }
+ { skip$ }
+ if$
+ s "ninth" =
+ { pop$ "9" }
+ { skip$ }
+ if$
+ s "tenth" =
+ { pop$ "10" }
+ { skip$ }
+ if$
+}
+
+
+% Converts the string on the top of the stack to numerical
+% ordinal (e.g., "11th") form.
+FUNCTION {convert.edition}
+{ duplicate$ empty$ 'skip$
+ { duplicate$ #1 #1 substring$ is.num
+ { extract.num
+ num.to.ordinal
+ }
+ { word.to.num
+ duplicate$ #1 #1 substring$ is.num
+ { num.to.ordinal }
+ { "edition ordinal word " quote$ * edition * quote$ *
+ " may be too high (or improper) for conversion" * " in " * cite$ * warning$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LATEX BIBLIOGRAPHY CODE %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {start.entry}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ initialize.prev.this.status
+}
+
+% Here we write out all the LaTeX code that we will need. The most involved
+% code sequences are those that control the alternate interword spacing and
+% foreign language hyphenation patterns. The heavy use of \providecommand
+% gives users a way to override the defaults. Special thanks to Javier Bezos,
+% Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all
+% the other gurus on comp.text.tex for their help and advice on the topic of
+% \selectlanguage, Babel and BibTeX.
+FUNCTION {begin.bib}
+{ "% Generated by IEEEtran.bst, version: " bst.file.version * " (" * bst.file.date * ")" *
+ write$ newline$
+ preamble$ empty$ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" *
+ write$ newline$
+ "\providecommand{\url}[1]{#1}"
+ write$ newline$
+ "\csname url@samestyle\endcsname"
+ write$ newline$
+ "\providecommand{\newblock}{\relax}"
+ write$ newline$
+ "\providecommand{\bibinfo}[2]{#2}"
+ write$ newline$
+ "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}"
+ write$ newline$
+ "\providecommand{\BIBentryALTinterwordstretchfactor}{"
+ ALTinterwordstretchfactor * "}" *
+ write$ newline$
+ "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus "
+ write$ newline$
+ "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}"
+ write$ newline$
+ "\providecommand{\BIBforeignlanguage}[2]{{%"
+ write$ newline$
+ "\expandafter\ifx\csname l@#1\endcsname\relax"
+ write$ newline$
+ "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%"
+ write$ newline$
+ "\typeout{** loaded for the language `#1'. Using the pattern for}%"
+ write$ newline$
+ "\typeout{** the default language instead.}%"
+ write$ newline$
+ "\else"
+ write$ newline$
+ "\language=\csname l@#1\endcsname"
+ write$ newline$
+ "\fi"
+ write$ newline$
+ "#2}}"
+ write$ newline$
+ "\providecommand{\BIBdecl}{\relax}"
+ write$ newline$
+ "\BIBdecl"
+ write$ newline$
+}
+
+FUNCTION {end.bib}
+{ newline$ "\end{thebibliography}" write$ newline$ }
+
+FUNCTION {if.url.alt.interword.spacing}
+{ is.use.alt.interword.spacing
+ {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$}
+ { skip$ }
+ if$
+}
+
+FUNCTION {if.url.std.interword.spacing}
+{ is.use.alt.interword.spacing
+ {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$}
+ { skip$ }
+ if$
+}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% LONGEST LABEL PASS %%
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ type$ "ieeetranbstctl" =
+ { skip$ }
+ { number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ { skip$ }
+ if$
+ }
+ if$
+}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%
+%% FORMAT HANDLERS %%
+%%%%%%%%%%%%%%%%%%%%%
+
+%% Lower Level Formats (used by higher level formats)
+
+FUNCTION {format.address.org.or.pub.date}
+{ 't :=
+ ""
+ year empty$
+ { "empty year in " cite$ * warning$ }
+ { skip$ }
+ if$
+ address empty$ t empty$ and
+ year empty$ and month empty$ and
+ { skip$ }
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ address "address" bibinfo.check *
+ t empty$
+ { skip$ }
+ { punct.period 'prev.status.punct :=
+ space.large 'prev.status.space :=
+ address empty$
+ { skip$ }
+ { ": " * }
+ if$
+ t *
+ }
+ if$
+ year empty$ month empty$ and
+ { skip$ }
+ { t empty$ address empty$ and
+ { skip$ }
+ { ", " * }
+ if$
+ month empty$
+ { year empty$
+ { skip$ }
+ { year "year" bibinfo.check * }
+ if$
+ }
+ { month "month" bibinfo.check *
+ year empty$
+ { skip$ }
+ { " " * year "year" bibinfo.check * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ this.to.prev.status
+ this.status.std
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ name.format.string
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ { nameptr num.names.shown.with.forced.et.al #1 + =
+ numnames max.num.names.before.forced.et.al >
+ is.forced.et.al and and
+ { "others" 't :=
+ #1 'namesleft :=
+ }
+ { skip$ }
+ if$
+ namesleft #1 >
+ { ", " * t do.name.latex.cmd * }
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ { " " * bbl.etal emphasize * }
+ { numnames #2 >
+ { "," * }
+ { skip$ }
+ if$
+ bbl.and
+ space.word * t do.name.latex.cmd *
+ }
+ if$
+ }
+ if$
+ }
+ { t do.name.latex.cmd }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ cap.status.std
+ } if$
+}
+
+
+
+
+%% Higher Level Formats
+
+%% addresses/locations
+
+FUNCTION {format.address}
+{ address duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ }
+ if$
+}
+
+
+
+%% author/editor names
+
+FUNCTION {format.authors}{ author "author" format.names }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+ { ", " *
+ get.bbl.editor
+ capitalize
+ *
+ }
+ if$
+}
+
+
+
+%% date
+
+FUNCTION {format.date}
+{
+ month "month" bibinfo.check duplicate$ empty$
+ year "year" bibinfo.check duplicate$ empty$
+ { swap$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ "there's a month but no year in " cite$ * warning$ }
+ if$
+ *
+ }
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ swap$ 'skip$
+ {
+ swap$
+ " " * swap$
+ }
+ if$
+ *
+ }
+ if$
+}
+
+FUNCTION {format.date.electronic}
+{ month "month" bibinfo.check duplicate$ empty$
+ year "year" bibinfo.check duplicate$ empty$
+ { swap$
+ { pop$ }
+ { "there's a month but no year in " cite$ * warning$
+ pop$ ")" * "(" swap$ *
+ this.to.prev.status
+ punct.no 'this.status.punct :=
+ space.normal 'this.status.space :=
+ quote.no 'this.status.quote :=
+ cap.yes 'status.cap :=
+ }
+ if$
+ }
+ { swap$
+ { swap$ pop$ ")" * "(" swap$ * }
+ { "(" swap$ * ", " * swap$ * ")" * }
+ if$
+ this.to.prev.status
+ punct.no 'this.status.punct :=
+ space.normal 'this.status.space :=
+ quote.no 'this.status.quote :=
+ cap.yes 'status.cap :=
+ }
+ if$
+}
+
+
+
+%% edition/title
+
+% Note: IEEE considers the edition to be closely associated with
+% the title of a book. So, in IEEEtran.bst the edition is normally handled
+% within the formatting of the title. The format.edition function is
+% retained here for possible future use.
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ convert.edition
+ status.cap
+ { "t" }
+ { "l" }
+ if$ change.case$
+ "edition" bibinfo.check
+ "~" * bbl.edition *
+ cap.status.std
+ }
+ if$
+}
+
+% This is used to format the booktitle of a conference proceedings.
+% Here we use the "intype" field to provide the user a way to
+% override the word "in" (e.g., with things like "presented at")
+% Use of intype stops the emphasis of the booktitle to indicate that
+% we no longer mean the written conference proceedings, but the
+% conference itself.
+FUNCTION {format.in.booktitle}
+{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ select.language
+ intype missing$
+ { emphasize
+ bbl.in " " *
+ }
+ { intype " " * }
+ if$
+ swap$ *
+ cap.status.std
+ }
+ if$
+}
+
+% This is used to format the booktitle of collection.
+% Here the "intype" field is not supported, but "edition" is.
+FUNCTION {format.in.booktitle.edition}
+{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ select.language
+ emphasize
+ edition empty$ 'skip$
+ { ", " *
+ edition
+ convert.edition
+ "l" change.case$
+ * "~" * bbl.edition *
+ }
+ if$
+ bbl.in " " * swap$ *
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.article.title}
+{ title duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ "t" change.case$
+ }
+ if$
+ "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ { quote.close 'this.status.quote :=
+ is.last.char.not.punct
+ { punct.std 'this.status.punct := }
+ { punct.no 'this.status.punct := }
+ if$
+ select.language
+ "``" swap$ *
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.article.title.electronic}
+{ title duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ "t" change.case$
+ }
+ if$
+ "title" bibinfo.check
+ duplicate$ empty$
+ { skip$ }
+ { select.language }
+ if$
+}
+
+FUNCTION {format.book.title.edition}
+{ title "title" bibinfo.check
+ duplicate$ empty$
+ { "empty title in " cite$ * warning$ }
+ { this.to.prev.status
+ this.status.std
+ select.language
+ emphasize
+ edition empty$ 'skip$
+ { ", " *
+ edition
+ convert.edition
+ status.cap
+ { "t" }
+ { "l" }
+ if$
+ change.case$
+ * "~" * bbl.edition *
+ }
+ if$
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.book.title}
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ select.language
+ emphasize
+ }
+ if$
+}
+
+
+
+%% journal
+
+FUNCTION {format.journal}
+{ journal duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ select.language
+ emphasize
+ }
+ if$
+}
+
+
+
+%% how published
+
+FUNCTION {format.howpublished}
+{ howpublished duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ }
+ if$
+}
+
+
+
+%% institutions/organization/publishers/school
+
+FUNCTION {format.institution}
+{ institution duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.organization}
+{ organization duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.address.publisher.date}
+{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date }
+
+FUNCTION {format.address.publisher.date.nowarn}
+{ publisher "publisher" bibinfo.check format.address.org.or.pub.date }
+
+FUNCTION {format.address.organization.date}
+{ organization "organization" bibinfo.check format.address.org.or.pub.date }
+
+FUNCTION {format.school}
+{ school duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ cap.status.std
+ }
+ if$
+}
+
+
+
+%% volume/number/series/chapter/pages
+
+FUNCTION {format.volume}
+{ volume empty.field.to.null.string
+ duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ bbl.volume
+ status.cap
+ { capitalize }
+ { skip$ }
+ if$
+ swap$ tie.or.space.prefix
+ "volume" bibinfo.check
+ * *
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.number}
+{ number empty.field.to.null.string
+ duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ status.cap
+ { bbl.number capitalize }
+ { bbl.number }
+ if$
+ swap$ tie.or.space.prefix
+ "number" bibinfo.check
+ * *
+ cap.status.std
+ }
+ if$
+}
+
+FUNCTION {format.number.if.use.for.article}
+{ is.use.number.for.article
+ { format.number }
+ { "" }
+ if$
+}
+
+% IEEE does not seem to tie the series so closely with the volume
+% and number as is done in other bibliography styles. Instead the
+% series is treated somewhat like an extension of the title.
+FUNCTION {format.series}
+{ series empty$
+ { "" }
+ { this.to.prev.status
+ this.status.std
+ bbl.series " " *
+ series "series" bibinfo.check *
+ cap.status.std
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter}
+{ chapter empty$
+ { "" }
+ { this.to.prev.status
+ this.status.std
+ type empty$
+ { bbl.chapter }
+ { type "l" change.case$
+ "type" bibinfo.check
+ }
+ if$
+ chapter tie.or.space.prefix
+ "chapter" bibinfo.check
+ * *
+ cap.status.std
+ }
+ if$
+}
+
+
+% The intended use of format.paper is for paper numbers of inproceedings.
+% The paper type can be overridden via the type field.
+% We allow the type to be displayed even if the paper number is absent
+% for things like "postdeadline paper"
+FUNCTION {format.paper}
+{ is.use.paper
+ { paper empty$
+ { type empty$
+ { "" }
+ { this.to.prev.status
+ this.status.std
+ type "type" bibinfo.check
+ cap.status.std
+ }
+ if$
+ }
+ { this.to.prev.status
+ this.status.std
+ type empty$
+ { bbl.paper }
+ { type "type" bibinfo.check }
+ if$
+ " " * paper
+ "paper" bibinfo.check
+ *
+ cap.status.std
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+ { this.to.prev.status
+ this.status.std
+ duplicate$ is.multiple.pages
+ {
+ bbl.pages swap$
+ n.dashify
+ }
+ {
+ bbl.page swap$
+ }
+ if$
+ tie.or.space.prefix
+ "pages" bibinfo.check
+ * *
+ cap.status.std
+ }
+ if$
+}
+
+
+
+%% technical report number
+
+FUNCTION {format.tech.report.number}
+{ number "number" bibinfo.check
+ this.to.prev.status
+ this.status.std
+ cap.status.std
+ type duplicate$ empty$
+ { pop$
+ bbl.techrep
+ }
+ { skip$ }
+ if$
+ "type" bibinfo.check
+ swap$ duplicate$ empty$
+ { pop$ }
+ { tie.or.space.prefix * * }
+ if$
+}
+
+
+
+%% note
+
+FUNCTION {format.note}
+{ note empty$
+ { "" }
+ { this.to.prev.status
+ this.status.std
+ punct.period 'this.status.punct :=
+ note #1 #1 substring$
+ duplicate$ "{" =
+ { skip$ }
+ { status.cap
+ { "u" }
+ { "l" }
+ if$
+ change.case$
+ }
+ if$
+ note #2 global.max$ substring$ * "note" bibinfo.check
+ cap.yes 'status.cap :=
+ }
+ if$
+}
+
+
+
+%% patent
+
+FUNCTION {format.patent.date}
+{ this.to.prev.status
+ this.status.std
+ year empty$
+ { monthfiled duplicate$ empty$
+ { "monthfiled" bibinfo.check pop$ "" }
+ { "monthfiled" bibinfo.check }
+ if$
+ dayfiled duplicate$ empty$
+ { "dayfiled" bibinfo.check pop$ "" * }
+ { "dayfiled" bibinfo.check
+ monthfiled empty$
+ { "dayfiled without a monthfiled in " cite$ * warning$
+ *
+ }
+ { " " swap$ * * }
+ if$
+ }
+ if$
+ yearfiled empty$
+ { "no year or yearfiled in " cite$ * warning$ }
+ { yearfiled "yearfiled" bibinfo.check
+ swap$
+ duplicate$ empty$
+ { pop$ }
+ { ", " * swap$ * }
+ if$
+ }
+ if$
+ }
+ { month duplicate$ empty$
+ { "month" bibinfo.check pop$ "" }
+ { "month" bibinfo.check }
+ if$
+ day duplicate$ empty$
+ { "day" bibinfo.check pop$ "" * }
+ { "day" bibinfo.check
+ month empty$
+ { "day without a month in " cite$ * warning$
+ *
+ }
+ { " " swap$ * * }
+ if$
+ }
+ if$
+ year "year" bibinfo.check
+ swap$
+ duplicate$ empty$
+ { pop$ }
+ { ", " * swap$ * }
+ if$
+ }
+ if$
+ cap.status.std
+}
+
+FUNCTION {format.patent.nationality.type.number}
+{ this.to.prev.status
+ this.status.std
+ nationality duplicate$ empty$
+ { "nationality" bibinfo.warn pop$ "" }
+ { "nationality" bibinfo.check
+ duplicate$ "l" change.case$ "united states" =
+ { pop$ bbl.patentUS }
+ { skip$ }
+ if$
+ " " *
+ }
+ if$
+ type empty$
+ { bbl.patent "type" bibinfo.check }
+ { type "type" bibinfo.check }
+ if$
+ *
+ number duplicate$ empty$
+ { "number" bibinfo.warn pop$ }
+ { "number" bibinfo.check
+ large.number.separate
+ swap$ " " * swap$ *
+ }
+ if$
+ cap.status.std
+}
+
+
+
+%% standard
+
+FUNCTION {format.organization.institution.standard.type.number}
+{ this.to.prev.status
+ this.status.std
+ organization duplicate$ empty$
+ { pop$
+ institution duplicate$ empty$
+ { "institution" bibinfo.warn }
+ { "institution" bibinfo.warn " " * }
+ if$
+ }
+ { "organization" bibinfo.warn " " * }
+ if$
+ type empty$
+ { bbl.standard "type" bibinfo.check }
+ { type "type" bibinfo.check }
+ if$
+ *
+ number duplicate$ empty$
+ { "number" bibinfo.check pop$ }
+ { "number" bibinfo.check
+ large.number.separate
+ swap$ " " * swap$ *
+ }
+ if$
+ cap.status.std
+}
+
+FUNCTION {format.revision}
+{ revision empty$
+ { "" }
+ { this.to.prev.status
+ this.status.std
+ bbl.revision
+ revision tie.or.space.prefix
+ "revision" bibinfo.check
+ * *
+ cap.status.std
+ }
+ if$
+}
+
+
+%% thesis
+
+FUNCTION {format.master.thesis.type}
+{ this.to.prev.status
+ this.status.std
+ type empty$
+ {
+ bbl.mthesis
+ }
+ {
+ type "type" bibinfo.check
+ }
+ if$
+cap.status.std
+}
+
+FUNCTION {format.phd.thesis.type}
+{ this.to.prev.status
+ this.status.std
+ type empty$
+ {
+ bbl.phdthesis
+ }
+ {
+ type "type" bibinfo.check
+ }
+ if$
+cap.status.std
+}
+
+
+
+%% URL
+
+FUNCTION {format.url}
+{ url empty$
+ { "" }
+ { this.to.prev.status
+ this.status.std
+ cap.yes 'status.cap :=
+ name.url.prefix " " *
+ "\url{" * url * "}" *
+ punct.no 'this.status.punct :=
+ punct.period 'prev.status.punct :=
+ space.normal 'this.status.space :=
+ space.normal 'prev.status.space :=
+ quote.no 'this.status.quote :=
+ }
+ if$
+}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%
+%% ENTRY HANDLERS %%
+%%%%%%%%%%%%%%%%%%%%
+
+
+% Note: In many journals, IEEE (or the authors) tend not to show the number
+% for articles, so the display of the number is controlled here by the
+% switch "is.use.number.for.article"
+FUNCTION {article}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.journal "journal" bibinfo.check "journal" output.warn
+ format.volume output
+ format.number.if.use.for.article output
+ format.pages output
+ format.date "year" output.warn
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {book}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ author empty$
+ { format.editors "author and editor" output.warn }
+ { format.authors output.nonnull }
+ if$
+ name.or.dash
+ format.book.title.edition output
+ format.series output
+ author empty$
+ { skip$ }
+ { format.editors output }
+ if$
+ format.address.publisher.date output
+ format.volume output
+ format.number output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {booklet}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors output
+ name.or.dash
+ format.article.title "title" output.warn
+ format.howpublished "howpublished" bibinfo.check output
+ format.organization "organization" bibinfo.check output
+ format.address "address" bibinfo.check output
+ format.date output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {electronic}
+{ std.status.using.period
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors output
+ name.or.dash
+ format.date.electronic output
+ format.article.title.electronic output
+ format.howpublished "howpublished" bibinfo.check output
+ format.organization "organization" bibinfo.check output
+ format.address "address" bibinfo.check output
+ format.note output
+ format.url output
+ fin.entry
+ empty.entry.warn
+ if.url.std.interword.spacing
+}
+
+FUNCTION {inbook}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ author empty$
+ { format.editors "author and editor" output.warn }
+ { format.authors output.nonnull }
+ if$
+ name.or.dash
+ format.book.title.edition output
+ format.series output
+ format.address.publisher.date output
+ format.volume output
+ format.number output
+ format.chapter output
+ format.pages output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {incollection}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.in.booktitle.edition "booktitle" output.warn
+ format.series output
+ format.editors output
+ format.address.publisher.date.nowarn output
+ format.volume output
+ format.number output
+ format.chapter output
+ format.pages output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {inproceedings}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.in.booktitle "booktitle" output.warn
+ format.series output
+ format.editors output
+ format.volume output
+ format.number output
+ publisher empty$
+ { format.address.organization.date output }
+ { format.organization "organization" bibinfo.check output
+ format.address.publisher.date output
+ }
+ if$
+ format.paper output
+ format.pages output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {manual}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors output
+ name.or.dash
+ format.book.title.edition "title" output.warn
+ format.howpublished "howpublished" bibinfo.check output
+ format.organization "organization" bibinfo.check output
+ format.address "address" bibinfo.check output
+ format.date output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {mastersthesis}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.master.thesis.type output.nonnull
+ format.school "school" bibinfo.warn output
+ format.address "address" bibinfo.check output
+ format.date "year" output.warn
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {misc}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors output
+ name.or.dash
+ format.article.title output
+ format.howpublished "howpublished" bibinfo.check output
+ format.organization "organization" bibinfo.check output
+ format.address "address" bibinfo.check output
+ format.pages output
+ format.date output
+ format.note output
+ format.url output
+ fin.entry
+ empty.entry.warn
+ if.url.std.interword.spacing
+}
+
+FUNCTION {patent}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors output
+ name.or.dash
+ format.article.title output
+ format.patent.nationality.type.number output
+ format.patent.date output
+ format.note output
+ format.url output
+ fin.entry
+ empty.entry.warn
+ if.url.std.interword.spacing
+}
+
+FUNCTION {periodical}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.editors output
+ name.or.dash
+ format.book.title "title" output.warn
+ format.series output
+ format.volume output
+ format.number output
+ format.organization "organization" bibinfo.check output
+ format.date "year" output.warn
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {phdthesis}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.phd.thesis.type output.nonnull
+ format.school "school" bibinfo.warn output
+ format.address "address" bibinfo.check output
+ format.date "year" output.warn
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {proceedings}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.editors output
+ name.or.dash
+ format.book.title "title" output.warn
+ format.series output
+ format.volume output
+ format.number output
+ publisher empty$
+ { format.address.organization.date output }
+ { format.organization "organization" bibinfo.check output
+ format.address.publisher.date output
+ }
+ if$
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {standard}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors output
+ name.or.dash
+ format.book.title "title" output.warn
+ format.howpublished "howpublished" bibinfo.check output
+ format.organization.institution.standard.type.number output
+ format.revision output
+ format.date output
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {techreport}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.howpublished "howpublished" bibinfo.check output
+ format.institution "institution" bibinfo.warn output
+ format.address "address" bibinfo.check output
+ format.tech.report.number output.nonnull
+ format.date "year" output.warn
+ format.note output
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+FUNCTION {unpublished}
+{ std.status.using.comma
+ start.entry
+ if.url.alt.interword.spacing
+ format.authors "author" output.warn
+ name.or.dash
+ format.article.title "title" output.warn
+ format.date output
+ format.note "note" output.warn
+ format.url output
+ fin.entry
+ if.url.std.interword.spacing
+}
+
+
+% The special entry type which provides the user interface to the
+% BST controls
+FUNCTION {IEEEtranBSTCTL}
+{ is.print.banners.to.terminal
+ { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." *
+ top$
+ }
+ { skip$ }
+ if$
+ CTLuse_article_number
+ empty$
+ { skip$ }
+ { CTLuse_article_number
+ yes.no.to.int
+ 'is.use.number.for.article :=
+ }
+ if$
+ CTLuse_paper
+ empty$
+ { skip$ }
+ { CTLuse_paper
+ yes.no.to.int
+ 'is.use.paper :=
+ }
+ if$
+ CTLuse_forced_etal
+ empty$
+ { skip$ }
+ { CTLuse_forced_etal
+ yes.no.to.int
+ 'is.forced.et.al :=
+ }
+ if$
+ CTLmax_names_forced_etal
+ empty$
+ { skip$ }
+ { CTLmax_names_forced_etal
+ string.to.integer
+ 'max.num.names.before.forced.et.al :=
+ }
+ if$
+ CTLnames_show_etal
+ empty$
+ { skip$ }
+ { CTLnames_show_etal
+ string.to.integer
+ 'num.names.shown.with.forced.et.al :=
+ }
+ if$
+ CTLuse_alt_spacing
+ empty$
+ { skip$ }
+ { CTLuse_alt_spacing
+ yes.no.to.int
+ 'is.use.alt.interword.spacing :=
+ }
+ if$
+ CTLalt_stretch_factor
+ empty$
+ { skip$ }
+ { CTLalt_stretch_factor
+ 'ALTinterwordstretchfactor :=
+ "\renewcommand{\BIBentryALTinterwordstretchfactor}{"
+ ALTinterwordstretchfactor * "}" *
+ write$ newline$
+ }
+ if$
+ CTLdash_repeated_names
+ empty$
+ { skip$ }
+ { CTLdash_repeated_names
+ yes.no.to.int
+ 'is.dash.repeated.names :=
+ }
+ if$
+ CTLname_format_string
+ empty$
+ { skip$ }
+ { CTLname_format_string
+ 'name.format.string :=
+ }
+ if$
+ CTLname_latex_cmd
+ empty$
+ { skip$ }
+ { CTLname_latex_cmd
+ 'name.latex.cmd :=
+ }
+ if$
+ CTLname_url_prefix
+ missing$
+ { skip$ }
+ { CTLname_url_prefix
+ 'name.url.prefix :=
+ }
+ if$
+
+
+ num.names.shown.with.forced.et.al max.num.names.before.forced.et.al >
+ { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$
+ max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al :=
+ }
+ { skip$ }
+ if$
+}
+
+
+%%%%%%%%%%%%%%%%%%%
+%% ENTRY ALIASES %%
+%%%%%%%%%%%%%%%%%%%
+FUNCTION {conference}{inproceedings}
+FUNCTION {online}{electronic}
+FUNCTION {internet}{electronic}
+FUNCTION {webpage}{electronic}
+FUNCTION {www}{electronic}
+FUNCTION {default.type}{misc}
+
+
+
+%%%%%%%%%%%%%%%%%%
+%% MAIN PROGRAM %%
+%%%%%%%%%%%%%%%%%%
+
+READ
+
+EXECUTE {initialize.controls}
+EXECUTE {initialize.status.constants}
+EXECUTE {banner.message}
+
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+EXECUTE {begin.bib}
+ITERATE {call.type$}
+EXECUTE {end.bib}
+
+EXECUTE{completed.message}
+
+
+%% That's all folks, mds.
diff --git a/report/Makefile b/report/Makefile
new file mode 100644
index 0000000..3317a32
--- /dev/null
+++ b/report/Makefile
@@ -0,0 +1,28 @@
+#!/usr/bin/make
+#
+# combox - report
+#
+# Makefile
+#
+# By Siddharth Ravikumar <sravik@bgsu.edu>
+#
+# No rights reserved. Dedicated to Public Domain.
+# <https://creativecommons.org/publicdomain/zero/1.0/>
+
+PDF = combox-report.pdf
+SRC = combox.tex
+DVI = combox.dvi
+
+all: $(PDF)
+ @evince $(PDF) &
+
+$(PDF): $(DVI)
+ @dvipdf $< $@
+
+$(DVI): $(SRC)
+ @latex $<; latex $<; latex $<
+
+clean:
+ rm -f $(PDF) *.aux *.dvi *.log *~
+
+.PHONY: clean all
diff --git a/report/combox-report.pdf b/report/combox-report.pdf
new file mode 100644
index 0000000..7b31615
--- /dev/null
+++ b/report/combox-report.pdf
Binary files differ
diff --git a/report/combox.tex b/report/combox.tex
new file mode 100644
index 0000000..6e64489
--- /dev/null
+++ b/report/combox.tex
@@ -0,0 +1,348 @@
+\documentclass[12pt]{uthesis-v12} %---> DO NOT ALTER THIS COMMAND
+\begin{document} %---> %---> %---> %---> DO NOT ALTER THIS COMMAND
+
+%--------+----------------------------------------------------------+
+% | \title{} (REQUIRED) |
+% | \author{} (REQUIRED) |
+% | |
+% | See section 3.1 of "Read_Me_First_(v12).pdf" |
+% | |
+% | Also see section 2.2 of above "Read Me" file for the |
+% | proper use of the invisible tilde ("~") character when |
+% | entering a middle initial in the \author command. |
+% +----------------------------------------------------------+
+
+\title{combox}
+
+\author{Siddharth Ravikumar}
+
+%--------+----------------------------------------------------------+
+% | \copyrightpage{} (REQUIRED) |
+% | |
+% | See section 3.2 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) You must enter either "yes" or "no" in this |
+% | command. Inputting "yes" produces a copyright |
+% | notification page as the second page and inputting |
+% | "no" produces a blank second page. |
+% | 2) Input to this command is case sensitive. |
+% | 3) Default: the "yes" option. |
+% +----------------------------------------------------------+
+
+\copyrightpage{yes}
+
+%--------+----------------------------------------------------------+
+% | \mydocument{} (REQUIRED) |
+% | |
+% | See section 3.3 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) Input to this command is limited to the following |
+% | three options: a) Dissertation |
+% | b) Thesis |
+% | c) Project |
+% | 2) Input to this command is case-sensitive. |
+% +----------------------------------------------------------+
+
+\mydocument{Project}
+
+%--------+----------------------------------------------------------+
+% | \degree{}{} (REQUIRED) |
+% | |
+% | See section 3.4 of "Read_Me_First_(v12).pdf" |
+% | |
+% | You need to provide two distinct inputs into this |
+% | command: |
+% | 1) In the first set of braces you need to specify |
+% | the *exact* degree you will receive. Some |
+% | examples are: -) Masters of Arts |
+% | -) Masters of Science |
+% | -) Doctor of Philosophy |
+% | 2) In the second set of braces you need to state the |
+% | *specific* discipline or area for that degree |
+% | (e.g., Economics, Education, Engineering, etc.). |
+% | Students should consult their advisor if they have any |
+% | questions about this information. |
+% +----------------------------------------------------------+
+
+\degree{Masters of Science}{Computer Science}
+
+%--------+----------------------------------------------------------+
+% | \conferraldate{}{} (REQUIRED) |
+% | |
+% | See section 3.5 of "Read_Me_First_(v12).pdf" |
+% | |
+% | In the two set of braces enter the month and then the |
+% | year your degree will be *conferred* by the university. |
+% +----------------------------------------------------------+
+
+\conferraldate{May}{2016}
+
+%--------+----------------------------------------------------------+
+% | \advisor{} (REQUIRED) |
+% | |
+% | See section 3.6.2 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) Also see section 2.2 of "Read_Me_First_(v12).pdf" |
+% | for the proper use of the invisible tilde ("~") |
+% | character when entering a middle initial or the |
+% | abbreviation of an academic title (e.g., Dr.) in |
+% | the \advisor{} command. |
+% | 2) Also see section 3.6.1. for consistent presentation |
+% | of title page signature lines. |
+% +----------------------------------------------------------+
+
+\advisor{Dr.~Robert C. Green II}
+
+%--------+----------------------------------------------------------+
+% | Committee Member Signature Commands (OPTIONAL) |
+% | |
+% | See section 3.6.3 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) Use the commands below to provide signature lines |
+% | for your "other" committee members; |
+% | --> you must list your other committee members |
+% | in alphabetic order by last name |
+% | --> to do this, use the commands below in the |
+% | order presented below. |
+% | 2) You can choose to include none, some, or all of the |
+% | "XXXmember" commands below --- based on the number |
+% | committee members you have; simply delete (or |
+% | comment-out) any of the commands below that are not |
+% | needed. |
+% | 3) Do not include the name of your committee chair or |
+% | the Graduate Dean in the commands listed below. |
+% | Their signature lines are generated by the |
+% | \advisor{} and \graduatedean{}{} commands. |
+% | 4) You cannot use any of the commands below more than |
+% | once. (For details on this issue, see section 3.6.3 |
+% | of "Read_Me_First_(v12).pdf".) |
+% | 5) Also see section 2.2 of "Read_Me_First_(v12).pdf" |
+% | for the proper use of the invisible tilde ("~") |
+% | character when entering a middle initial or the |
+% | abbreviation of an academic title (e.g., Dr.) in |
+% | the commands below. |
+% | 6) See section 3.6.1. for consistent presentation of |
+% | title page signature lines. |
+% | |
+% | I know I shouldn't have to say this, but enough |
+% | students over the years have made the same mistake |
+% | that I'm forced to state: |
+% | |
+% | THE NAMES USED IN THE FOLLOWING COMMANDS ARE |
+% | SILLY NAMES I'VE USED AS EXAMPLES ONLY. THEY |
+% | ARE NOT THE ACTUAL NAMES OF YOUR COMMITTEE |
+% | MEMBERS. REPLACE THE SILLY NAMES BELOW WITH |
+% | THE NAMES OF YOUR ACTUAL COMMITTEE MEMBERS. |
+% | |
+% +----------------------------------------------------------+
+
+ \secondmember{Dr.~XX}
+ \thirdmember{Dr.~XX}
+
+%--------+----------------------------------------------------------+
+% | \graduatedean{}{} (REQUIRED) |
+% | |
+% | See section 3.6.4 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) THE NAME AND TITLE PROVIDED BELOW ARE THOSE OF THE |
+% | ACTUAL GRADUATE DEAN AT THE TIME THIS DOCUMENT WAS |
+% | CONSTRUCTED (January 2012). Contact the Graduate |
+% | College to determine whether this information is |
+% | correct at the time you submit your document. |
+% | 2) Section 2.2 of "Read_Me_First_(v12).pdf" describes |
+% | the proper use of the invisible tilde ("~") |
+% | character when entering a middle initial or the |
+% | abbreviation of an academic title (e.g., Dr.) in |
+% | the \graduatedean{} command. |
+% | 3) See section 3.6.1. for consistent presentation of |
+% | title page signature lines. |
+% +----------------------------------------------------------+
+
+\graduatedean{Dr.~Michael Ogawa}{Dean}
+
+%--------+----------------------------------------------------------+
+% | \maketitle (REQUIRED) |
+% | |
+% | See section 3.7 of "Read_Me_First_(v12).pdf" |
+% | |
+% | This is a required LaTeX command; to be brief, bad |
+% | things will happen if this command is not included |
+% | in your document at this particular location. |
+% +----------------------------------------------------------+
+
+\maketitle %----> -----> ----> ----> DO NOT ALTER THIS COMMAND
+
+%--------+----------------------------------------------------------+
+% | Abstract Page Environment (REQUIRED) |
+% | |
+% | See section 3.8 of "Read_Me_First_(v12).pdf" |
+% +----------------------------------------------------------+
+
+\begin{abstractpage}
+[Insert the abstract to your work here]
+\end{abstractpage}
+
+%--------+----------------------------------------------------------+
+% | Dedication Page Environment (OPTIONAL) |
+% | |
+% | See section 3.9 of "Read_Me_First_(v12).pdf" |
+% | |
+% | If both a dedication page and an acknowledgements page |
+% | are included in the document, the dedication page must |
+% | proceed the acknowledgements page. |
+% +----------------------------------------------------------+
+
+\begin{dedication}
+ \noindent Dedicated to the
+ \verb+$EDITOR+ I used to write everything.
+\end{dedication}
+
+%--------+----------------------------------------------------------+
+% | Acknowledgments Page Environment (OPTIONAL) |
+% | |
+% | See section 3.10 of "Read_Me_First_(v12).pdf" |
+% | |
+% | If both a dedication page and an acknowledgements page |
+% | are included in the document, the dedication page must |
+% | proceed the acknowledgements page. |
+% +----------------------------------------------------------+
+
+\begin{acknowledgments}
+ \noindent Dr.~Robert C. Green II who gave me an oppurnity to work on
+ combox.
+\end{acknowledgments}
+
+%--------+----------------------------------------------------------+
+% | \tableofcontents (REQUIRED) |
+% | \listoftables (CONDITIONAL) |
+% | \listoffigures (CONDITIONAL) |
+% | |
+% | See sections 3.11 & 3.12 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) You must include the \tableofcontents command in |
+% | your document: the UT Manual requires every |
+% | dissertation/thesis to have a detailed table of |
+% | contents. |
+% | 2) Including the \listoftables and \listoffigures |
+% | commands is "conditional." See sections 3.12 of |
+% | "Read_Me_First_(v12).pdf" for additional details. |
+% +----------------------------------------------------------+
+
+\tableofcontents %-----> -----> ----> DO NOT ALTER THIS COMMAND
+\listoftables \listoffigures
+
+%--------+----------------------------------------------------------+
+% | \captionformat{} (REQUIRED) |
+% | |
+% | See section 3.12.2 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) You are required to choose between the "hang" or |
+% | "align" option for this command. |
+% | 2) Input to this command is case sensitive. |
+% | 3) Default: ``hang'' option. |
+% +----------------------------------------------------------+
+
+\captionformat{hang}
+
+%--------+----------------------------------------------------------+
+% | List of Abbreviations Environment (OPTIONAL) |
+% | |
+% | See section 3.13 of "Read_Me_First_(v12).pdf" |
+% | |
+% | 1) This is an optional section; consult your advisor |
+% | to determine whether you need/want to include this |
+% | section in your document. |
+% | 2) If you do not want a List of Abbreviations simply |
+% | delete the material below (and these instructions). |
+% | 3) If you do want a List of Abbreviations simply |
+% | replace the silly material below with the |
+% | information relevant to your document. |
+% | a. Within the "listofabbreviations" environment |
+% | below you must use a separate \abbreviation{}{} |
+% | command for each entry in your List of |
+% | Abbreviations. |
+% | b. As the examples below demonstrate, the |
+% | information within the first set of braces is |
+% | the abbreviation and the information in the |
+% | second set of braces is the definition of that |
+% | abbreviation. |
+% +----------------------------------------------------------+
+
+\begin{listofabbreviations}
+
+ \abbreviation{YAML}{YAML Ain't Markup Language}
+
+\end{listofabbreviations}
+
+
+%--------+----------------------------------------------------------+
+% | Preface Environment (OPTIONAL) |
+% | |
+% | See section 3.15 of "Read_Me_First_(v12).pdf" |
+% +----------------------------------------------------------+
+
+\begin{preface}
+[Insert your preface here]
+\end{preface}
+
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+%--------+----------------------------------------------------------+
+% | \makebody (REQUIRED) |
+% | |
+% | See section 3.16 of "Read_Me_First_(v12).pdf" |
+% | |
+% | This is a *required* UThesis command; again, bad |
+% | things will happen if this command is not included in |
+% | your document at this particular location --- see the |
+% | file "Read_Me_First_(v12).pdf" for details. |
+% +----------------------------------------------------------+
+
+\makebody %-------> -------> -------> DO NOT ALTER THIS COMMAND
+
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+%--------+----------------------------------------------------------+
+% | \chapter{} (REQUIRED) |
+% | |
+% | See section 3.17 of "Read_Me_First_(v12).pdf" |
+% | |
+% | For guidance on using the commands \chapter{}, |
+% | \section{}, \subsection{}, \subsubsection{}, etc., see |
+% | Leslie Lamport's "LaTeX: A Document Preparation |
+% | System." Addison Wesley: Reading Massachusetts, 1985. |
+% +----------------------------------------------------------+
+
+\chapter{Introduction}
+
+
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+\chapter{Background}
+
+\chapter{Literature Review}
+
+\chapter{combox Architecture and Design}
+
+\chapter{Use Cases, Benchmarks, and Demonstration}
+
+\chapter{Conclusion and Future Work}
+
+\bibliographystyle{IEEEtran}
+\bibliography{bib}
+
+\end{document} %---> ---> ---> ---> DO NOT ALTER THIS COMMAND
+
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
diff --git a/report/uthesis-v12.cls b/report/uthesis-v12.cls
new file mode 100644
index 0000000..c726447
--- /dev/null
+++ b/report/uthesis-v12.cls
@@ -0,0 +1,1465 @@
+
+%***************************************************************
+%-->
+%--> UTHESIS is a LaTeX document class that facilitates uniform
+%--> dissertations and theses at the University of Toledo. I
+%--> created this package so that UT graduate students do not
+%--> spend time thinking about mundane issues such as formatting
+%--> requirements. Instead, a student can concentrate all their
+%--> effort on the content of their dissertation/thesis --- and
+%--> UTHESIS will quickly transform their draft document into
+%--> one that satisfies all style and formatting requirements
+%--> established by the Graduate Faculty.
+%-->
+%--> Portions of this file were drawn from material included in
+%--> standard LaTeX distributions and from LaTeX code posted
+%--> anonymously on the web. Authors of such code I can
+%--> identify include: Stephen Page for "doublespace.sty", David
+%--> M. Jones for "hangcaption.sty", Leslie Lamport and David
+%--> Carlisle for "ifthen.sty", and David Carlisle for
+%--> "indentfirst.sty". I am sincerely grateful to these known
+%--> and unknown authors because the material they made
+%--> available will help current and future UT graduate students
+%--> prepare their dissertations and theses.
+%-->
+%--> --- Mike Dowd
+%-->
+%***************************************************************
+
+\typeout{=========================================================}
+\typeout{============ University of Toledo Thesis Style ==========}
+\typeout{======================== UThesis ========================}
+\typeout{=========================================================}
+\typeout{======================= Mike Dowd =======================}
+\typeout{==================== August 22, 2011 ====================}
+\typeout{=========================================================}
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{uthesis-v12}
+ [1994/12/09 v1.2x
+ Standard LaTeX document class]
+\newcommand{\@ptsize}{}
+\newif\if@restonecol
+\newif\if@titlepage
+\@titlepagetrue
+\newif\if@openright
+\newif\if@openbib
+\@openbibfalse
+
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}}
+\DeclareOption{landscape}
+ {\setlength\@tempdima {\paperheight}%
+ \setlength\paperheight {\paperwidth}%
+ \setlength\paperwidth {\@tempdima}}
+\DeclareOption{10pt}{\renewcommand{\@ptsize}{2}}
+\DeclareOption{11pt}{\renewcommand{\@ptsize}{2}}
+\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}}
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\DeclareOption{titlepage}{\@titlepagetrue}
+\DeclareOption{notitlepage}{\@titlepagefalse}
+\DeclareOption{openright}{\@openrighttrue}
+\DeclareOption{openany}{\@openrightfalse}
+\DeclareOption{onecolumn}{\@twocolumnfalse}
+\DeclareOption{twocolumn}{\@twocolumntrue}
+\DeclareOption{leqno}{\input{leqno.clo}}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+\DeclareOption{openbib}{\@openbibtrue}
+\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,openany}
+\ProcessOptions
+\input{size1\@ptsize.clo}
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+\renewcommand{\baselinestretch}{}
+\setlength\parskip{0\p@ \@plus \p@}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+\setcounter{topnumber}{2}
+\renewcommand{\topfraction}{.7}
+\setcounter{bottomnumber}{1}
+\renewcommand{\bottomfraction}{.3}
+\setcounter{totalnumber}{3}
+\renewcommand{\textfraction}{.2}
+\renewcommand{\floatpagefraction}{.5}
+\setcounter{dbltopnumber}{2}
+\renewcommand{\dbltopfraction}{.7}
+\renewcommand{\dblfloatpagefraction}{.5}
+\if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth {\uppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ %
+ \fi
+ ##1}}{}}%
+ \def\sectionmark##1{%
+ \markright {\uppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. \ %
+ \fi
+ ##1}}}}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markright {\uppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ %
+ \fi
+ ##1}}}}
+\fi
+\def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\@gobbletwo
+ \let\chaptermark\@gobble
+ \let\sectionmark\@gobble
+ }
+\if@titlepage
+ \newcommand{\maketitle}{\begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \null\vfil
+ \vskip 60\p@
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large \@date \par}% % Set date in \large size.
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \let\thanks\relax\let\maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
+\else
+\newcommand{\maketitle}{\par
+ \begingroup
+ \renewcommand{\thefootnote}{\fnsymbol{footnote}}%
+ \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \let\thanks\relax
+ \let\maketitle\relax\let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ {\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}
+\fi
+\newcommand*{\chaptermark}[1]{}
+\setcounter{secnumdepth}{2}
+\newcounter {part}
+\newcounter {chapter}
+\newcounter {section}[chapter]
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\renewcommand{\thepart} {\Roman{part}}
+\renewcommand{\thechapter} {\arabic{chapter}}
+\renewcommand{\thesection} {\thechapter.\arabic{section}}
+\renewcommand{\thesubsection} {\thesection.\arabic{subsection}}
+\renewcommand{\thesubsubsection}{\thesubsection .\arabic{subsubsection}}
+\renewcommand{\theparagraph} {\thesubsubsection.\arabic{paragraph}}
+\renewcommand{\thesubparagraph} {\theparagraph.\arabic{subparagraph}}
+\newcommand{\@chapapp}{\chaptername}
+\newcommand{\part}{\cleardoublepage
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \hbox{}\vfil
+ \secdef\@part\@spart}
+
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}
+ {\centering
+ \interlinepenalty \@M
+ \reset@font
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname~\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}
+\def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \reset@font
+ \Huge \bfseries #1\par}%
+ \@endpart}
+\def\@endpart{\vfil\newpage
+ \if@twoside
+ \hbox{}%
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
+\newcommand{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi
+ %%%%%%%%%%%%%%%%%%% \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+\def\@makechapterhead#1{%
+ \vspace*{22\p@}% %%%%%%%% CHANGED FROM \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \reset@font
+ \ifnum \c@secnumdepth >\m@ne
+ \huge\bfseries \@chapapp{} \thechapter
+ \par\nobreak
+ \vskip 22\p@% %%%%%%%% CHANGED FROM \vskip 20\p@%
+ %%%%%%%% This \vskip command controls the vertical
+ %%%%%%%% space between the chapter number and the
+ %%%%%%%% chapter heading.
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 48\p@% %%%%%%%% CHANGED FROM \vskip 40\p@
+ %%%%%%%% In contrast to that below, this \vskip command
+ %%%%%%%% controls the vertical space between the chapter
+ %%%%%%%% heading and the subsequent text --- When There
+ %%%%%%%% Is A Chapter Number (e.g., "Chapter 1").
+ }}
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+\def\@makeschapterhead#1{%
+ \vspace*{22\p@}% %%%%%%%% CHANGED FROM \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \reset@font
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 24\p@% %%%%%%%% CHANGED FROM \vskip 40\p@
+ %%%%%%%% In contrast to that above, this \vskip command
+ %%%%%%%% controls the vertical space between the chapter
+ %%%%%%%% heading and the subsequent text --- When There
+ %%%%%%%% Is NO Chapter Number.
+ }}
+\newcommand{\section}{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\reset@font\Large\bfseries}}
+\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\reset@font\large\bfseries}}
+\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\reset@font\normalsize\bfseries}}
+\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\reset@font\normalsize\bfseries}}
+\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\reset@font\normalsize\bfseries}}
+\if@twocolumn
+ \setlength\leftmargini {2em}
+\else
+ \setlength\leftmargini {2.5em}
+\fi
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\if@twocolumn
+ \setlength\leftmarginv {.5em}
+ \setlength\leftmarginvi {.5em}
+\else
+ \setlength\leftmarginv {1em}
+ \setlength\leftmarginvi {1em}
+\fi
+\setlength\leftmargin {\leftmargini}
+\setlength \labelsep {.5em}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\renewcommand{\theenumi}{\arabic{enumi}}
+\renewcommand{\theenumii}{\alph{enumii}}
+\renewcommand{\theenumiii}{\roman{enumiii}}
+\renewcommand{\theenumiv}{\Alph{enumiv}}
+\newcommand{\labelenumi}{\theenumi.}
+\newcommand{\labelenumii}{(\theenumii)}
+\newcommand{\labelenumiii}{\theenumiii.}
+\newcommand{\labelenumiv}{\theenumiv.}
+\renewcommand{\p@enumii}{\theenumi}
+\renewcommand{\p@enumiii}{\theenumi(\theenumii)}
+\renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
+\newcommand{\labelitemi}{$\m@th\bullet$}
+\newcommand{\labelitemii}{\normalfont\bfseries --}
+\newcommand{\labelitemiii}{$\m@th\ast$}
+\newcommand{\labelitemiv}{$\m@th\cdot$}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+\newcommand{\descriptionlabel}[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+\if@titlepage
+ \newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \begin{center}
+ \bfseries \abstractname
+ \end{center}}
+ {\par\vfil\null\endtitlepage}
+\else
+ \newenvironment{abstract}{%
+ \if@twocolumn
+ \section*{\abstractname}%
+ \else
+ \small
+ \begin{center}%
+ {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \quotation
+ \fi}
+ {\if@twocolumn\else\endquotation\fi}
+\fi
+\newenvironment{verse}
+ {\let\\=\@centercr
+ \list{}{\itemsep \z@
+ \itemindent -1.5em%
+ \listparindent\itemindent
+ \rightmargin \leftmargin
+ \advance\leftmargin 1.5em}%
+ \item[]}
+ {\endlist}
+\newenvironment{quotation}
+ {\list{}{\listparindent 1.5em%
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@ \@plus\p@}%
+ \item[]}
+ {\endlist}
+\newenvironment{quote}
+ {\list{}{\rightmargin\leftmargin}%
+ \item[]}
+ {\endlist}
+\newenvironment{titlepage}
+ {%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ %%%%%%%%%%%%%%%% \thispagestyle{empty}%
+ \if@compatibility
+ \setcounter{page}{0}
+ \else
+ \setcounter{page}{1}%
+ \fi}%
+ {\if@restonecol\twocolumn \else \newpage \fi
+ \setcounter{page}{1}%
+ }
+\newcommand{\appendix}{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \renewcommand{\@chapapp}{\appendixname}%
+ \renewcommand{\thechapter}{\Alph{chapter}}}
+\setlength\arraycolsep{5\p@}
+\setlength\tabcolsep{6\p@}
+\setlength\arrayrulewidth{.4\p@}
+\setlength\doublerulesep{2\p@}
+\setlength\tabbingsep{\labelsep}
+\skip\@mpfootins = \skip\footins
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+\@addtoreset{equation}{chapter}
+\renewcommand{\theequation}{\thechapter.\arabic{equation}}
+\newcounter{figure}[chapter]
+\renewcommand{\thefigure}{\thechapter.\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{\figurename~\thefigure}
+\newenvironment{figure}
+ {\@float{figure}}
+ {\end@float}
+\newenvironment{figure*}
+ {\@dblfloat{figure}}
+ {\end@dblfloat}
+\newcounter{table}[chapter]
+\renewcommand{\thetable}{\thechapter.\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{\tablename~\thetable}
+\newenvironment{table}
+ {\@float{table}}
+ {\end@float}
+\newenvironment{table*}
+ {\@dblfloat{table}}
+ {\end@dblfloat}
+\newlength\abovecaptionskip
+\newlength\belowcaptionskip
+\setlength\abovecaptionskip{10\p@}
+\setlength\belowcaptionskip{0\p@}
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\newcommand{\@pnumwidth}{1.55em}
+\newcommand{\@tocrmarg} {2.55em}
+\newcommand{\@dotsep}{4.5}
+\setcounter{tocdepth}{3}
+\newcommand{\tableofcontents}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\contentsname\vspace{0.18in}
+ \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% %%% I ADDED THE \vspace{0.18in}
+ \addcontentsline{toc}{chapter}{\contentsname}
+ \@starttoc{toc}%
+ \if@restonecol\twocolumn\fi
+ }
+\newcommand*{\l@part}[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus\p@}%
+ \begingroup
+ \setlength\@tempdima{3em}%
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode
+ \large \bfseries #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+ \nobreak
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}
+ \endgroup
+ \fi}
+\newcommand*{\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\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+\newcommand*{\l@section} {\@dottedtocline{1}{1.5em}{2.3em}}
+\newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}}
+\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}}
+\newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}}
+\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}}
+\newcommand{\listoffigures}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listfigurename\vspace{0.18in}
+ \@mkboth{\uppercase{\listfigurename}}%
+ {\uppercase{\listfigurename}}}% %%% I ADDED THE \vspace{0.18in}
+ \addcontentsline{toc}{chapter}{\listfigurename}%%%%%%%% I ADDED THIS
+ \@starttoc{lof}%
+ \if@restonecol\twocolumn\fi
+ }
+\newcommand*{\l@figure}{\@dottedtocline{1}{0em}{2.3em}}
+\newcommand{\listoftables}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listtablename\vspace{0.18in}
+ \@mkboth{\uppercase{\listtablename}}{\uppercase{\listtablename}}}% %%% I ADDED THE \vspace{0.18in}
+ \addcontentsline{toc}{chapter}{\listtablename}
+ \@starttoc{lot}%
+ \if@restonecol\twocolumn\fi
+ }
+\let\l@table\l@figure
+\newdimen\bibindent
+\bibindent=1.5em
+\newenvironment{thebibliography}[1]
+ {\chapter*{References %%% \bibname %%% THIS GUARANTEES THE SECTION
+ %%% HEADING WILL BE "REFERENCES"
+ %%% (THIS IS MANDATED BY THE
+ %%% GRADUATE FACULTY)
+ \addcontentsline{toc}{chapter}{References} %%% I ADDED THIS LINE
+ \@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}}%
+ \list{\@biblabel{\arabic{enumiv}}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \if@openbib
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ \fi
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand{\theenumiv}{\arabic{enumiv}}}%
+ \if@openbib
+ \renewcommand{\newblock}{\par}
+ \else
+ \renewcommand{\newblock}{\hskip .11em \@plus.33em \@minus.07em}%
+ \fi
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+\newcommand{\newblock}{}
+\newenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \columnseprule \z@
+ \columnsep 35\p@
+ \twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\uppercase{\indexname}}%
+ {\uppercase{\indexname}}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+\newcommand{\@idxitem} {\par\hangindent 40\p@}
+\newcommand{\subitem} {\par\hangindent 40\p@ \hspace*{20\p@}}
+\newcommand{\subsubitem}{\par\hangindent 40\p@ \hspace*{30\p@}}
+\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
+\renewcommand{\footnoterule}{%
+ \kern-3\p@
+ \hrule width .4\columnwidth
+ \kern 2.6\p@}
+\@addtoreset{footnote}{chapter}
+\long\def\@makefntext#1{%
+ \parindent 1em%
+ \noindent
+ \hbox to 1.8em{\hss\@makefnmark}#1}
+\newcommand{\contentsname}{Contents}
+\newcommand{\listfigurename}{List of Figures}
+\newcommand{\listtablename}{List of Tables}
+\newcommand{\bibname}{References} %%% SEE ABOVE COMMAND
+ %%% "\newenvironment{thebibliography}[1]"
+ %%% I RENDER \bibname MOOT (AS IS MANDATED
+ %%% BY THE GRADUATE FACULTY).
+\newcommand{\indexname}{Index}
+\newcommand{\figurename}{Figure}
+\newcommand{\tablename}{Table}
+\newcommand{\partname}{Part}
+\newcommand{\chaptername}{Chapter}
+\newcommand{\appendixname}{Appendix}
+\newcommand{\abstractname}{Abstract}
+\newcommand{\today}{\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\day, \number\year}
+\setlength\columnsep{10\p@}
+\setlength\columnseprule{0\p@}
+\pagestyle{plain}
+\pagenumbering{arabic} % Arabic page numbers
+\if@twoside
+\else
+ \raggedbottom
+\fi
+\if@twocolumn
+ \twocolumn
+ \sloppy
+ \flushbottom
+\else
+ \onecolumn
+\fi
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+
+\typeout{=========================================================}
+\typeout{============ University of Toledo Thesis Style ==========}
+\typeout{=========================================================}
+\typeout{================= }
+\typeout{================= Let the magic begin ...}
+\typeout{================= }
+\typeout{=========================================================}
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#############################
+%############################# Set the margins
+%#############################
+%############################# Do NOT alter these values --- the
+%############################# Graduate College is watching
+%#############################
+
+\oddsidemargin 0.5in \evensidemargin 0.0in \textwidth 6.0in
+\textheight 8.9in \marginparwidth 0.0in \marginparsep 0.0in
+\topmargin 0.0in \headheight 0.0in \headsep 0.0in
+\footskip 0.32in \topskip 0.0in % \footheight 0.15in
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+
+\typeout{------------> borrowing Lamport's and Carlisle's ifthen.sty}
+
+%% File `ifthen.sty'
+%% Authors: Leslie Lamport and David Carlisle
+%% Copyright (c) 1991 by Leslie Lamport
+%% Copyright (c) 1994-2001 LaTeX3 project, David Carlisle
+
+\def\TE@throw{\@ne=\@ne\noexpand\fi}
+\def\boolean#1#2{%
+ \TE@throw\expandafter\noexpand\csname if#1\endcsname#2}
+\def\TE@length#1#2{\TE@throw\noexpand\ifdim#1#2}
+\def\TE@odd#1#2{%
+ \TE@throw\noexpand\TE@@odd#1\noexpand\@nil\noexpand\ifodd\count@#2}
+\def\TE@@odd#1#2\@nil{%
+ \@defaultunits
+ \count@\if-#1-0\else0\expandafter#1\fi#2\relax\@nnil}
+\def\TE@repl#1#2{%
+ \long\def\@tempc##1#1##2{%
+ \def\@tempa{##2}\def\@tempb{\@tempc}%
+ \ifx\@tempa\@tempb
+ \toks@\expandafter{\the\toks@##1}%
+ \expandafter\@gobble
+ \else
+ \toks@\expandafter{\the\toks@##1#2}%
+ \expandafter\@tempc
+ \fi
+ ##2}%
+ \expandafter\toks@\expandafter{\expandafter}%
+ \expandafter\@tempc\the\toks@#1\@tempc}
+\long\def\ifthenelse#1{%
+ \toks@{#1}%
+ \TE@repl\or\TE@or
+ \TE@repl\and\TE@and
+ \TE@repl\not\TE@neg
+ \TE@repl\OR\TE@or
+ \TE@repl\AND\TE@and
+ \TE@repl\NOT\TE@neg
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \def\@setref##1##2##3{%
+ \ifx##1\relax\z@\else\expandafter##2##1\fi}%
+ \def\value##1{\the\csname c@##1\endcsname}%
+ \let\equal\TE@equal \let\(\TE@lparen \let\)\TE@rparen
+ \let\isodd\TE@odd \let\lengthtest\TE@length
+ \let\isundefined\TE@undef
+ \begingroup
+ \let\@tempa\relax\let\@tempb\relax
+ \xdef\@gtempa{\expandafter\TE@eval\the\toks@\TE@endeval}%
+ \endgroup
+ \@gtempa
+ \expandafter\endgroup\ifTE@val
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\def\TE@eval{\noexpand\TE@negatefalse\noexpand\iftrue\noexpand\ifnum}
+\newif\ifTE@val
+\newif\ifTE@negate
+\def\TE@endeval{\relax
+ \noexpand\TE@setvaltrue\noexpand
+ \else
+ \noexpand\TE@setvalfalse\noexpand
+ \fi
+ \noexpand\TE@negatefalse\noexpand
+ \fi}
+\def\TE@setvaltrue{%
+ \ifTE@negate\TE@valfalse\else\TE@valtrue\fi}
+\def\TE@setvalfalse{\let\ifTE@val\ifTE@negate}
+\def\TE@or{\TE@endeval\noexpand\ifTE@val\noexpand\else\noexpand\ifnum}
+\def\TE@and{\TE@endeval\noexpand\ifTE@val\noexpand\ifnum}
+\def\TE@neg{\TE@throw\noexpand\TE@negswitch\noexpand\ifnum}
+\def\TE@negswitch{\ifTE@negate\TE@negatefalse\else\TE@negatetrue\fi}
+\def\TE@lparen#1{\TE@throw\begingroup\TE@eval#1}
+\def\TE@rparen#1{%
+ \TE@endeval
+ \noexpand\expandafter\endgroup\noexpand\ifTE@val#1}
+\long\def\TE@equal#1#2#3{\TE@throw
+ \def\@tempa{#1}\def\@tempb{#2}%
+ \noexpand\ifx\@tempa\@tempb#3}
+\def\setboolean#1#2{%
+ \lowercase{\def\@tempa{#2}}%
+ \@ifundefined{@tempswa\@tempa}%
+ {\PackageError{ifthen}%
+ {You can only set a boolean to `true' or `false'}\@ehc}%
+ {\@ifundefined{#1\@tempa}%
+ {\PackageError{ifthen}{Boolean #1 undefined}\@ehc}%
+ {\csname#1\@tempa\endcsname}}}
+\def\newboolean#1{%
+ \expandafter\@ifdefinable\csname if#1\endcsname{%
+ \expandafter\newif\csname if#1\endcsname}}
+\def\provideboolean#1{%
+ \@ifundefined{if#1}{%
+ \expandafter\newif\csname if#1\endcsname}\relax}
+\long\def\whiledo#1#2{%
+ \ifthenelse{#1}%
+ {\@whiledotrue
+ \@whilesw\if@whiledo\fi
+ {#2%
+ \ifthenelse{#1}\@whiledotrue\@whiledofalse}}%
+ {}%
+ }
+\def\TE@undef#1#2{%
+ \TE@throw\noexpand\ifx\noexpand\@undefined\noexpand#1#2}
+\newif\if@whiledo
+%% \endinput
+%%
+%% End of file `ifthen.sty'.
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+
+\typeout{------------> borrowing Stephen Page's doublespace.sty}
+
+%
+% Author: Stephen Page -- sdpage@prg.oxford.ac.uk
+% sdpage%prg.oxford.ac.uk@cs.ucl.ac.uk
+%
+% Release date: 6 July 1986 - September 3, 1986
+
+\def\baselinestretch{2}
+
+\def\setstretch#1{\renewcommand{\baselinestretch}{#1}}
+
+\def\@setsize#1#2#3#4{\@nomath#1%
+ \let\@currsize#1\baselineskip
+ #2\baselineskip\baselinestretch\baselineskip
+ \parskip\baselinestretch\parskip
+ \setbox\strutbox\hbox{\vrule height.7\baselineskip
+ depth.3\baselineskip width\z@}%
+ \normalbaselineskip\baselineskip#3#4}
+
+\skip\footins 20pt plus4pt minus4pt
+
+\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
+ \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
+ \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
+ \@tfor \@tempa :=#2\do
+ {\if\@tempa h\advance\@tempcnta \@ne\fi
+ \if\@tempa t\advance\@tempcnta \tw@\fi
+ \if\@tempa b\advance\@tempcnta 4\relax\fi
+ \if\@tempa p\advance\@tempcnta 8\relax\fi
+ }\global\count\@currbox\@tempcnta}\@fltovf\fi
+ \global\setbox\@currbox\vbox\bgroup
+ \def\baselinestretch{1}\small\normalsize
+ \boxmaxdepth\z@
+ \hsize\columnwidth \@parboxrestore}
+\long\def\@footnotetext#1{\insert\footins{\def\baselinestretch{1}\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces
+ #1\strut}}}
+
+\def\singlespace{%
+\vskip\parskip%
+\vskip\baselineskip%
+\def\baselinestretch{1}%
+\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
+\vskip-\parskip%
+\vskip-\baselineskip%
+}
+
+\def\endsinglespace{\par}
+
+\def\spacing#1{\par%
+ \def\baselinestretch{#1}%
+ \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}
+
+\def\endspacing{\par%
+ \vskip \parskip%
+ \vskip \baselineskip%
+ \endgroup%
+ \vskip -\parskip%
+ \vskip -\baselineskip%
+ \begingroup}
+
+\def\onehalfspace{\spacing{1.5}}
+\let\endonehalfspace=\endspacing
+
+\def\doublespace{\spacing{2}}
+\let\doublespace=\endspacing
+
+\everydisplay{
+ \abovedisplayskip \baselinestretch\abovedisplayskip%
+ \belowdisplayskip \abovedisplayskip%
+ \abovedisplayshortskip \baselinestretch\abovedisplayshortskip%
+ \belowdisplayshortskip \baselinestretch\belowdisplayshortskip}
+
+%***********************************************************
+%*********
+%********* The following sets the appropriate value of
+%********* \setstretch{value} for double spacing. This
+%********* value is determined by the font point size
+%********* chosen by the user of UThesis (i.e., 10pt, 11pt,
+%********* or 12pt). As Goossens, Mittelbach, and Samarin
+%********* (1993, p. 470) indicates, this adjustment is
+%********* necessary because the simple "\setstretch{2}"
+%********* command adds approximately 20% additional space
+%********* per line.
+%*********
+\ifthenelse{\@ptsize = 0}{ \setstretch{1.67} }{}
+\ifthenelse{\@ptsize = 1}{ \setstretch{1.62} }{}
+\ifthenelse{\@ptsize = 2}{ \setstretch{1.66} }{}
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+
+\typeout{------------> borrowing David M. Jones' hangcaption.sty}
+
+% David M. Jones
+% MIT Laboratory for Computer Science
+% Room NE43-316
+% 545 Technology Square
+% Cambridge, MA 02139
+% USA
+
+\newlength\captionwidth \captionwidth=\hsize
+
+\def\hangcaption{\refstepcounter\@captype\@dblarg{\@hangcaption\@captype}}
+
+\long\def\@hangcaption#1[#2]#3{%
+ \baselineskip 14.5\p@
+ \addcontentsline{\csname ext@#1\endcsname}{#1}%
+ {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
+ \par
+ \begingroup
+ \@parboxrestore
+ \setbox\@tempboxa\hbox{\csname fnum@#1\endcsname: #3}%
+ \ifdim \wd\@tempboxa > \captionwidth
+ \begingroup
+ \setbox\@tempboxa\hbox{\csname fnum@#1\endcsname: }%
+ \advance \captionwidth by -\wd\@tempboxa
+ \@makecaption{\csname fnum@#1\endcsname}%
+ {\ignorespaces{\protect\parbox[t]{\captionwidth}{\leavevmode#3}}}%
+ \endgroup
+ \else
+ \begingroup
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}%
+ \endgroup
+ \fi
+ \par\vspace{1.7ex}%
+ \endgroup}
+
+\let\isucaption\hangcaption
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% %%%
+%%% \let\caption\hangcaption %%% This would force ALL captions to be hangcaptions
+%%% %%%
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% \let\captionwidth=\textwidth
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+
+\typeout{------------> UT Thesis Specifications}
+
+%#########################################################################
+%#########
+%######### ERROR COMMANDS
+%#########
+
+\def\NoCommandError#1{\fbox{\large\bf Error: $\backslash$#1\{\} was omitted}}
+\def\EmptyCommandError#1{\fbox{\large\bf Error: $\backslash$#1\{\} is empty}}
+
+\def\NoMULTCommandError#1{\fbox{\bf Error: $\backslash$#1\{\}\{\} was omitted}}
+\def\EmptyMULTCommandError#1{\fbox{\bf Error: $\backslash$#1\{\}\{\} is empty}}
+
+%#########################################################################
+%#########
+%######### UNIVERSITY TITLE PAGE
+%#########
+
+\def\Treatise{\NoCommandError{mydocument}}
+\def\mydocumentERROR{\fbox{\large\bf ~Incorrect (or misspelled) entry in $\backslash$mydocument\{\}~}}
+\newcommand{\mydocument}[1]{\ifthenelse{\equal{#1}{} } % 1st IF
+ {\def\Treatise{\Emptymydocument} } % ............................... THEN of 1st IF
+ { \ifthenelse{\equal{#1}{Dissertation} } % ......................... BEGIN Else of 1st IF; 2nd IF
+ {\def\Treatise{#1}} % ................................. THEN of 2nd IF
+ {\ifthenelse{\equal{#1}{Thesis}} % .................... BEGIN Else of 2nd IF; 3rd IF
+ {\def\Treatise{Thesis}} %.......................... THEN of 3rd IF
+ {\ifthenelse{\equal{#1}{Project}} % ............... BEGIN Else of 3nd IF; 4th IF
+ {\def\Treatise{Project}} %..................... THEN of 4th IF
+ {\def\Treatise{\mydocumentERROR}} %............ ENDS ELSE of 4th IF
+ } %................................................ ENDS ELSE of 3rd IF
+ } % .................................................. ENDS Else of 2nd IF
+ } % ................................................................ ENDS Else of 1st IF
+ } % ........................................................................... ENDS \mydocument definition
+%-------------------------
+\def\DegreeLevel{\NoMULTCommandError{degree} }
+\def\DegreeDiscipline{\NoMULTCommandError{degree} }
+\def\EmptydegreeLEVEL{\EmptyMULTCommandError{degree} }
+\def\EmptydegreeDISCIPLINE{\EmptyMULTCommandError{degree} }
+\newcommand{\degree}[2]{\ifthenelse{\equal{#1}{} }
+ {\def\DegreeLevel{\mbox{\EmptydegreeLEVEL }}}
+ {\def\DegreeLevel{\mbox{#1}} }
+ \ifthenelse{\equal{#2}{} }
+ {\def\DegreeDiscipline{\mbox{\EmptydegreeDISCIPLINE }}}
+ {\def\DegreeDiscipline{\mbox{#2}} }
+ } % Ends \degree definition
+%-------------------------
+\def\AwardMonth{\NoMULTCommandError{conferraldate} }
+\def\AwardYear{\NoMULTCommandError{conferraldate} }
+\def\EmptyconferraldateMONTH{\EmptyMULTCommandError{conferraldate} }
+\def\EmptyconferraldateYEAR{\EmptyMULTCommandError{conferraldate} }
+\newcommand{\conferraldate}[2]{\ifthenelse{\equal{#1}{} }
+ {\def\AwardMonth{\mbox{\EmptyconferraldateMONTH }}}
+ {\def\AwardMonth{\mbox{#1}} }
+ \ifthenelse{\equal{#2}{} }
+ {\def\AwardYear{\mbox{\EmptyconferraldateYEAR }}}
+ {\def\AwardYear{\mbox{#2}} }
+ } % Ends \conferraldate definition
+%-------------------------
+\def\Advisor{\NoCommandError{advisor} }
+\def\Emptyadvisor{\EmptyCommandError{advisor} }
+\newcommand{\advisor}[1]{\ifthenelse{\equal{#1}{} }
+ {\def\Advisor{\mbox{\Emptyadvisor}}}
+ {\def\Advisor{\mbox{#1}} }}
+%-------------------------
+\def\Dean{\NoMULTCommandError{graduatedean} }
+\def\Emptygraduatedean{\EmptyMULTCommandError{graduatedean} }
+\def\DeanTitle{\NoMULTCommandError{graduatedeanTitle} }
+\def\EmptygraduatedeanTitle{\EmptyMULTCommandError{graduatedean} }
+\newcommand{\graduatedean}[2]{\ifthenelse{\equal{#1}{} }
+ {\def\Dean{\mbox{\Emptygraduatedean}}}
+ {\def\Dean{\mbox{#1}} }
+ \ifthenelse{\equal{#2}{} }
+ {\def\DeanTitle{\mbox{\EmptygraduatedeanTitle}}}
+ {\def\DeanTitle{\mbox{#2}} }
+ } % Ends graduatedean definition
+%-------------------------
+
+\def\addSecondMember{} \def\addFifthMember{} \def\addEighthMember{}
+\def\addThirdMember{} \def\addSixthMember{}
+\def\addFourthMember{} \def\addSeventhMember{}
+
+\def\sigEXP{\rule{0pt}{2em}} \def\TitleLineSkip{\\}
+\def\sigNEGspace{-2.5em} \def\TitleLineBIGskip{\\[0.75em]}
+
+\newcounter{TotalSIGs} \setcounter{TotalSIGs}{1}
+\newcounter{SecondSIG} \setcounter{SecondSIG}{0}
+\newcounter{ThirdSIG} \setcounter{ThirdSIG}{0}
+\newcounter{FourthSIG} \setcounter{FourthSIG}{0}
+\newcounter{FifthSIG} \setcounter{FifthSIG}{0}
+\newcounter{SixthSIG} \setcounter{SixthSIG}{0}
+\newcounter{SeventhSIG} \setcounter{SeventhSIG}{0}
+\newcounter{EighthSIG} \setcounter{EighthSIG}{0}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \newcommand{\secondmember}[1]{\TitleSign
+ \addtocounter{SecondSIG}{1} % ....... Number of times the "\secondmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{SecondSIG} > 1} % ....... Determines if "\secondmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\secondmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addSecondMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%--------------------------------------------------------------------------------------------------------------------------------------------------------
+ \newcommand{\thirdmember}[1]{\TitleSign
+ \addtocounter{ThirdSIG}{1} % ....... Number of times the "\thirdmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{ThirdSIG} > 1} % ....... Determines if "\thirdmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\thirdmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addThirdMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%--------------------------------------------------------------------------------------------------------------------------------------------------------
+ \newcommand{\fourthmember}[1]{\TitleSign
+ \addtocounter{FourthSIG}{1} % ....... Number of times the "\fourthmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{FourthSIG} > 1} % ....... Determines if "\fourthmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\fourthmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addFourthMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%--------------------------------------------------------------------------------------------------------------------------------------------------------
+ \newcommand{\fifthmember}[1]{\TitleSign
+ \addtocounter{FifthSIG}{1} % ....... Number of times the "\fifthmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{FifthSIG} > 1} % ....... Determines if "\fifthmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\fifthmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addFifthMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%---------------------------------------------------------------------------------------------------------------------------------------------------------
+ \newcommand{\sixthmember}[1]{\TitleSign
+ \addtocounter{SixthSIG}{1} % ....... Number of times the "\sixthmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{SixthSIG} > 1} % ....... Determines if "\sixthmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\sixthmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addSixthMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%---------------------------------------------------------------------------------------------------------------------------------------------------------
+\newcommand{\seventhmember}[1]{\TitleSign
+ \addtocounter{SeventhSIG}{1} % ....... Number of times the "\seventhmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{SeventhSIG} > 1} % ....... Determines if "\seventhmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\seventhmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addSeventhMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%---------------------------------------------------------------------------------------------------------------------------------------------------------
+ \newcommand{\eighthmember}[1]{\TitleSign
+ \addtocounter{EighthSIG}{1} % ....... Number of times the "\eighthmember" command is used
+ \addtocounter{TotalSIGs}{1} % ....... Adds to Total Number of specified signature lines
+ \ifthenelse{\value{EighthSIG} > 1} % ....... Determines if "\eighthmember" command is repeated
+ {\addtocounter{TotalSIGs}{-1}} % ....... Reduce Total if "\eighthmember" command is repeated
+ {} % ....... Null "else" statement
+ \def\addEighthMember{ \sigEXP \\ \hline \\[\sigNEGspace] #1, Committee Member \EndSigLine } }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\AddTitleSign{}
+\def\TitleSign{\def\AddTitleSign{\addSecondMember
+ \addThirdMember
+ \addFourthMember
+ \addFifthMember
+ \addSixthMember
+ \addSeventhMember
+ \addEighthMember} }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%% The general line spacing for the title page is %%%
+ %%% controlled in the section "Assorted Stuff" below. %%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\maketitle{\renewcommand{\thepage}{\roman{page}}
+\ifthenelse{\value{TotalSIGs} > 7} % ................................. Determines if there are 8 committee signatures (including the chair)
+ {% ........................................................ Begins the "Then" to the first "If"
+ \def\EndSigLine{\\[-0.75em]} % ..........................................................................................................
+ \def\EndChairSigLine{\\[-0.75em]} % ...................... Spacing adjustments for when 8 committee member signature lines are
+ \def\SeperateDeanSigLine{\\[1.5em]} % ...................... provided (including the chair). Spacing is very `tight' in this case.
+ \def\SeperateTitleFromSigLines{\\[1.5em]} % ..........................................................................................................
+ }% ........................................................ Ends the "Then" to the first "If"
+ {% ........................................................ Begins the "Else" to the first "If"
+ \ifthenelse{\value{TotalSIGs} > 6} % ............................ Determines if there are 7 committee signatures (including the chair)
+ {% ........................................................ Begins the "Then" to the second "If"
+ \def\EndSigLine{\\[-0.5em]} % ................................................................................................
+ \def\EndChairSigLine{\\[-0.5em]} % ........................ Spacing adjustments for when 7 committee member signature lines are
+ \def\SeperateDeanSigLine{\\[1.75em]} % ........................ provided (including the chair). Spacing is `tight' in this case.
+ \def\SeperateTitleFromSigLines{\\[2em]} % ................................................................................................
+ }% ........................................................ Ends the "Then" to the second "If"
+ {% ........................................................ Begins the "Else" to the second "If"
+ \def\EndSigLine{\\} % ................................................................................................
+ \def\EndChairSigLine{\\} % ........................ Spacing settings for when 1 to 6 committee member signature lines are
+ \def\SeperateDeanSigLine{\\[2em]} % ........................ provided (including the chair). Spacing is `easy' in this case.
+ \def\SeperateTitleFromSigLines{\\[2em]} % ................................................................................................
+ }% ........................................................ Ends the "Else" to the second "If"
+ }% ........................................................ Ends the "Else" to the first "If"
+\begin{titlepage}
+ \def\baselinestretch{4.2}
+ A \Treatise \TitleLineSkip
+ entitled \TitleLineBIGskip
+ \ifthenelse{\equal{\@title}{}}
+ { \fbox{\large\bf Error: insert title in $\backslash$title\{\}} }
+ {\@title} \TitleLineBIGskip
+ %###
+ %### The error command above covers the situation
+ %### where the \title{} command is absent from the
+ %### LaTeX file.
+ %###
+ by \TitleLineSkip
+ \ifthenelse{\equal{\@author}{}}
+ { \fbox{\large\bf Error: insert name in $\backslash$author\{\}} }
+ {\@author} \TitleLineBIGskip
+ %###
+ %### The error command above covers the situation
+ %### where the \author{} command is absent from
+ %### the LaTeX file.
+ %###
+ Submitted to the Graduate Faculty as partial fulfillment of
+ the requirements for the \TitleLineSkip \DegreeLevel~Degree~in~\DegreeDiscipline
+ \vfill
+ \hfill\begin{tabular}{l} \SeperateTitleFromSigLines \hline \\[\sigNEGspace]
+ \Advisor, Committee Chair \EndChairSigLine
+ \AddTitleSign \SeperateDeanSigLine \hline \\[\sigNEGspace]
+ \multicolumn{1}{c}{\Dean, \DeanTitle} \\[-1em]
+ \multicolumn{1}{c}{College of Graduate Studies} \\
+ \end{tabular} \vfill
+ Bowling Green State University \\[-0.5em]
+ \AwardMonth~\AwardYear
+\end{titlepage}
+
+\def\BlankSecondPage{\clearpage\mbox{}
+ \thispagestyle{empty}
+ \clearpage}
+\SecondPage
+} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ENDS DEFINITION OF \maketitle
+
+\def\SecondPage{\CopyRight}
+\newcommand{\copyrightpage}[1]{\ifthenelse{\equal{#1}{} } %..................... 1st IF
+ {\def\SecondPage{\CopyRight}} %............... THEN to 1st IF
+ {\ifthenelse{\equal{#1}{no} } %............... Starts ELSE to 1st IF; starts 2nd IF
+ {\def\SecondPage{\BlankSecondPage}} %..... THEN to 2nd IF
+ {\def\SecondPage{\CopyRight}} %........... ELSE to 2nd IF
+ } %........................................... Ends ELSE to 1st IF
+ } %............................................... Ends definition of \copyrightpage
+
+%#########################################################################
+%#########
+%######### COPYRIGHT PAGE
+%#########
+
+\def\CopyRight{\clearpage\mbox{}
+ \thispagestyle{empty}
+ \vfill
+ \begin{singlespace}
+ \noindent
+ \begin{tabular}{p{.97\textwidth}}
+ \multicolumn{1}{c}{Public Domain, No Rights Reserved.}
+ \\[1em] %%% PROVIDES 1 BLANK LINE BETWEEN MATERIAL
+
+ \@author~has dedicated the work to the public domain by waiving all of his
+ rights to the work worldwide under copyright law, including
+ all related and neighboring rights, to the extent allowed by law.
+ You can copy, modify, distribute and perform the work, even for commercial
+ purposes, all without asking permission.
+
+ \\
+ See https://creativecommons.org/publicdomain/zero/1.0/legalcode
+ for the full legal verbiage.
+ \end{tabular}
+ \end{singlespace}
+ %%% \mbox{} \\[-1em] \rule{0.5\textwidth}{0.5pt}
+ \clearpage}
+
+%#########################################################################
+%#########
+%######### ABSTRACT PAGE
+%#########
+
+\def\abstractpage{%%% BEGIN ABSTRACTPAGE DEFINITION
+ \clearpage\addcontentsline{toc}{chapter}{Abstract}
+ \begin{singlespace}
+ \begin{center}{ %%% BEGINS TOP PORTION
+ An Abstract of \TitleLineBIGskip
+ \ifthenelse{\equal{\@title}{}}
+ { \fbox{\large\bf Error: insert title in $\backslash$title\{\}} }
+ {\@title} \TitleLineBIGskip
+ %###
+ %### The error command above covers the situation
+ %### where the \title{} command is absent from the
+ %### LaTeX file.
+ %###
+ by \TitleLineBIGskip
+ \ifthenelse{\equal{\@author}{}}
+ { \fbox{\large\bf Error: insert name in $\backslash$author\{\}} }
+ {\@author} \\[1.2em]
+ %###
+ %### The error command above covers the situation
+ %### where the \author{} command is absent from
+ %### the LaTeX file.
+ %###
+ } %%% ENDS TOP PORTION
+ { %%% BEGIN LOWER PORTION
+ Submitted to the Graduate Faculty as partial fulfillment
+ of the requirements for the \TitleLineSkip
+ \DegreeLevel~Degree~in~\DegreeDiscipline \TitleLineBIGskip
+ Bowling Green State University \\
+ \AwardMonth~\AwardYear \\[2.25em]
+ } %%% END LOWER PORTION \\
+ \end{center}
+ \end{singlespace}
+ } %%% END \abstractpage DEFINITION
+\def\endabstractpage{\mbox{} \clearpage }
+
+%#########################################################################
+%#########
+%######### DEDICATION PAGE
+%#########
+
+\def\dedication{\thispagestyle{empty}\hbox{}\vspace{1.66in}}
+\def\enddedication{\clearpage}
+
+%#########################################################################
+%#########
+%######### ACKNOWLEDGEMENT PAGE
+%#########
+
+\def\acknowledgments{\chapter*{Acknowledgments}
+ \addcontentsline{toc}{chapter}{Acknowledgments}
+ \vspace{0.32in}}
+\def\endacknowledgments{\clearpage}
+
+%#########################################################################
+%#########
+%######### LIST OF ABBREVIATIONS
+%#########
+
+\def\abbreviation#1#2{\setlength{\parskip}{-0.3em}\item[#1] #2 }
+
+\newcommand{\abbreviationlabel}[1]{\mbox{\textrm{#1~}}\dotfill}
+\newenvironment{listofabbreviations}
+ {\chapter*{List of Abbreviations}
+ \addcontentsline{toc}{chapter}{List of Abbreviations}
+ \vspace{0.8em}
+ \begin{singlespace}
+ \begin{list}{}%
+ {\renewcommand{\makelabel}{\abbreviationlabel}%
+ \setlength{\labelwidth}{2in}%
+ \setlength{\leftmargin}{2.08in}%
+ }%
+ }%
+ {\end{list}\end{singlespace}}
+
+%#########################################################################
+%#########
+%######### LIST OF SYMBOLS
+%#########
+
+\def\emblem#1#2{\setlength{\parskip}{-0.3em}\item[#1] #2 }
+\def\emblemskip{\mbox{} \\[-1em]}
+
+\newcommand{\symbollabel}[1]{\mbox{\textrm{#1~}}\dotfill}
+\newenvironment{listofsymbols}
+ {\chapter*{List of Symbols}
+ \addcontentsline{toc}{chapter}{List of Symbols}
+ \vspace{0.8em}
+ \begin{singlespace}
+ \begin{list}{}%
+ {\renewcommand{\makelabel}{\symbollabel}%
+ \setlength{\labelwidth}{1in}%
+ \setlength{\leftmargin}{1.08in}%
+ }%
+ }%
+ {\end{list}\end{singlespace}}
+
+%#########################################################################
+%#########
+%######### PREFACE PAGE
+%#########
+
+\def\preface{\chapter*{Preface}
+ \addcontentsline{toc}{chapter}{Preface}
+ \vspace{0.34in}}
+\def\endpreface{\clearpage}
+
+%#########################################################################
+%#########
+%######### Reference page
+%#########
+
+\def\myreferences{\chapter*{References}
+ \addcontentsline{toc}{chapter}{References}}
+
+\def\referencelist#1{\ifthenelse{\equal{#1}{single}} %...................................... begins 1st "if"
+ {\vspace{0.12in}\begin{singlespace} %...................................... begins the "then" of 1st "if"
+ \begin{description} %......................................
+ \setlength{\parskip}{1em} %................................
+ \setlength{\labelsep}{-1em} %..............................
+ \def\endreferencelist{\end{description} %..................
+ \end{singlespace} } } %.............. ends the "then" of 1st "if"
+ {\ifthenelse{\equal{#1}{double}} %.......................... begins the "else" of 1st "if" AND begins 2nd "if"
+ {\vspace{2.4\topsep}\begin{description} %....... begins the "then" of 2nd "if"
+ \setlength{\labelsep}{-1em} %..................
+ \def\endreferencelist{\end{description}} } %... ends the "then" of 2nd "if"
+ {\begin{description} %.......................... begins the "else" of 2nd "if"
+ \def\endreferencelist{\end{description}} } %... ends the "else" of 2nd "if"
+ } %....................................................... ends 2nd "if"
+ } %..................................................................... ends 1st "if"
+%#########################################################################
+%#########
+%######### Assorted Stuff
+%#########
+
+\def\titlepage{\newpage\centering
+ \thispagestyle{empty}
+ \parindent 0pt \parskip 10pt plus 1fil minus 1fil
+ \def\baselinestretch{1.62}\@normalsize\vbox to \vsize\bgroup\vbox to 9in\bgroup}
+\def\endtitlepage{\par\kern 0pt\egroup\vss\egroup\newpage}
+
+\def\signature#1#2{\par\noindent#1\dotfill\null\\*
+ {\raggedleft #2\par}}
+
+\def\abstract{\small\def\baselinestretch{1}\@normalsize}
+\def\endabstract{\par}
+
+% If using the report style, use - instead of . in the figure number.
+\@ifundefined{thechapter}{}{\def\thefigure{\thechapter-\arabic{figure}}}
+
+\def\UTHESIS{{\sl U\kern-.095em\kern-.4667em\lower.7ex\hbox{Thesis}}}
+\def\UT{{\rm U\kern-.05em\kern-.4667em\lower.7ex\hbox{T}}}
+
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+
+%#########################################################################
+%#########
+%######### Default Title and Author commands
+%#########
+\title{\fbox{\large\bf Error: missing $\backslash$title\{\} command}}
+\author{\fbox{\large\bf Error: missing $\backslash$author\{\} command}}
+ %###
+ %### The definition of "\maketitle" covers
+ %### the situation where the "\title{}"
+ %### or "\author{}" command is blank (or
+ %### empty).
+ %###
+
+%#########################################################################
+%#########
+%######### The captionformat command
+%#########
+
+\newcommand{\captionformat}[1]{ \ifthenelse{\equal{#1}{align} }
+ { }
+ { \let\caption\hangcaption } }
+
+%#########################################################################
+%#########
+%######### The following sets the headers and footers
+%######### for the text's pages:
+%#########
+
+\newcommand{\makebody}{\clearpage
+ \renewcommand{\thepage}{\arabic{page}}
+ \setcounter{page}{1}}
+
+%#########################################################################
+%#########
+%######### The following indents the first paragraph in a section
+%#########
+
+\typeout{------------> borrowing David Carlisle's indentfirst.sty}
+
+\let\@afterindentfalse\@afterindenttrue
+\@afterindenttrue
+
+%#########################################################################
+%######### The following sets the section levels that
+%######### are enumerated and included in the
+%######### table of contents.
+%#########
+
+\setcounter{secnumdepth}{3}
+\setcounter{tocdepth}{3}
+
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+%#########################################################################
+
+\endinput
+%%
+%% End of file `UThesis11b.cls'.
+