diff options
Diffstat (limited to 'report')
| -rw-r--r-- | report/IEEEtran.bst | 2417 | ||||
| -rw-r--r-- | report/Makefile | 28 | ||||
| -rw-r--r-- | report/combox-report.pdf | bin | 0 -> 30329 bytes | |||
| -rw-r--r-- | report/combox.tex | 348 | ||||
| -rw-r--r-- | report/uthesis-v12.cls | 1465 | 
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.pdfBinary files differ new file mode 100644 index 0000000..7b31615 --- /dev/null +++ b/report/combox-report.pdf 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'.
 +
 | 
