combox-paper

notes and other things concerning combox
git clone git://git.ricketyspace.net/combox-paper.git
Log | Files | Refs

commit 7c3d77247f39cb45bc8cc2b02c9cc01231de909a
parent 7da9b190232c071cd198280f3e917972e4c3031b
Author: Siddharth Ravikumar <sravik@bgsu.edu>
Date:   Fri, 15 Jan 2016 12:24:50 -0500

skeleton of combox report ready.

Diffstat:
report/IEEEtran.bst | 2417+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
report/Makefile | 28++++++++++++++++++++++++++++
report/combox-report.pdf | 0
report/combox.tex | 348+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
report/uthesis-v12.cls | 1465+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 4258 insertions(+), 0 deletions(-)

diff --git a/report/IEEEtran.bst 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 @@ -0,0 +1,28 @@ +#!/usr/bin/make +# +# combox - report +# +# Makefile +# +# By Siddharth Ravikumar <sravik@bgsu.edu> +# +# No rights reserved. Dedicated to Public Domain. +# <https://creativecommons.org/publicdomain/zero/1.0/> + +PDF = combox-report.pdf +SRC = combox.tex +DVI = combox.dvi + +all: $(PDF) + @evince $(PDF) & + +$(PDF): $(DVI) + @dvipdf $< $@ + +$(DVI): $(SRC) + @latex $<; latex $<; latex $< + +clean: + rm -f $(PDF) *.aux *.dvi *.log *~ + +.PHONY: clean all diff --git a/report/combox-report.pdf b/report/combox-report.pdf Binary files differ. diff --git a/report/combox.tex 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 @@ -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'. +