From da02fd6ad1c5fb45c5ec641bf236d8de4745709f Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 4 Aug 2021 03:00:43 +0000 Subject: CTAN sync 202108040300 --- .../macros/latex/contrib/gatech-thesis/CHANGES | 217 ++ .../macros/latex/contrib/gatech-thesis/COMPLIANCE | 823 +++++ .../macros/latex/contrib/gatech-thesis/COPYING | 339 +++ .../macros/latex/contrib/gatech-thesis/ChangeLog | 362 +++ .../macros/latex/contrib/gatech-thesis/INSTALL | 44 + .../macros/latex/contrib/gatech-thesis/MANIFEST | 34 + obsolete/macros/latex/contrib/gatech-thesis/NEWS | 90 + obsolete/macros/latex/contrib/gatech-thesis/NOTES | 33 + obsolete/macros/latex/contrib/gatech-thesis/README | 744 +++++ obsolete/macros/latex/contrib/gatech-thesis/TODO | 5 + .../latex/contrib/gatech-thesis/example-thesis.bib | 138 + .../latex/contrib/gatech-thesis/example-thesis.pdf | Bin 0 -> 103611 bytes .../latex/contrib/gatech-thesis/example-thesis.tex | 181 ++ .../contrib/gatech-thesis/gatech-thesis-gloss.sty | 101 + .../contrib/gatech-thesis/gatech-thesis-index.ist | 7 + .../contrib/gatech-thesis/gatech-thesis-index.sty | 139 + .../contrib/gatech-thesis/gatech-thesis-losa.bst | 264 ++ .../contrib/gatech-thesis/gatech-thesis-losa.sty | 156 + .../contrib/gatech-thesis/gatech-thesis-patch.sty | 12 + .../latex/contrib/gatech-thesis/gatech-thesis.bst | 1137 +++++++ .../latex/contrib/gatech-thesis/gatech-thesis.cls | 3150 ++++++++++++++++++++ 21 files changed, 7976 insertions(+) create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/CHANGES create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/COMPLIANCE create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/COPYING create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/ChangeLog create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/INSTALL create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/MANIFEST create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/NEWS create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/NOTES create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/README create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/TODO create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/example-thesis.bib create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/example-thesis.pdf create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/example-thesis.tex create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-gloss.sty create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.ist create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.sty create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.bst create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-patch.sty create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.bst create mode 100644 obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.cls (limited to 'obsolete') diff --git a/obsolete/macros/latex/contrib/gatech-thesis/CHANGES b/obsolete/macros/latex/contrib/gatech-thesis/CHANGES new file mode 100644 index 0000000000..ab5b3ebf47 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/CHANGES @@ -0,0 +1,217 @@ +This file contains a (fairly) detailed list of changes to the +gatech-thesis.cls file. For even more gory detail, see the +ChangeLog file. For a quick overview, see the NEWS file. + +______________ version 1.8 ________________ +* Remove bold from volume (part) titles in Table of Contents. +* Fix bug that was preventing hyperref and overpic from working + concurrently. +* Revise abstract environment to produce an abstract page that meets the + UMI requirements, rather than just replicating the summary page. +^^^^^^^^^^^^^^ version 1.8 ^^^^^^^^^^^^^^^^ +______________ version 1.7 ________________ +* Remove double spacing of thesis title as per July 2005 manual. +* Reduce font size of title (title page and approval page) and + chapter titles. (Requested by OGS) +* Reduce font size of author on title page. (Requested by OGS) +* Reduce font sizes (title, author, volume) on volume divider + pages. (Requested by OGS) +* Reduce chapter title size to match that of thesis title. (Requested + by OGS) +* Major modifications and bugfixes to the approval page. Since theses + are now submitted electronically, signature lines are no longer + required. Also, the current manual requires affiliation for all + readers and that the approval date be typed on the page. Reader (and + advis?r and committeechair) commands are now of the form + \firstreader{Ignatius Arrogant}[School of Industrial and Systems + Engineering][Georgia Institute of Technology]. The second and third + arguments default to \department and Georgia Institute of Technology, + respectively. +* Remove bold from chapter lines in Table of Contents. Also adjusted + horizontal spacing in table of contents so that chapter numbers + lower than XVIII don't overstrike chapter titles. +^^^^^^^^^^^^^^ version 1.7 ^^^^^^^^^^^^^^^^ +______________ version 1.6 ________________ +* Make Vita doublespaced +* Correct one-and-a-half-spaced linespace factor to 1.25 + from 1.33 (1.25 is specified by The LaTeX Companion) +* Add support for on-demand patches +* Fix Figure and Table captions to OGS specifications. +* Add leaders (dots) in the table of contents for + chapters. (Requested by OGS) + +^^^^^^^^^^^^^^ version 1.6 ^^^^^^^^^^^^^^^^ +______________ version 1.5 ________________ + +After showing version 1.4 to GT OGS, almost all features were +approved. Only a few, pre-approved changes were made in this +1.5 release: + +* Caption labels: + + The 'Figure X:' or 'Table Y:' part of a caption is now + printed in bold san-serif. If you want to customize this, + use the caption2 package. OGS is not concerned about the + details here, as long as you are consistent throughout. + +* List of Symbols: + + Now handled by the gatech-thesis-losa style instead of the + gatech-thesis-gloss style. The -gloss style now generates + a real glossary. + + OGS suggests that all symbol defintions be rigidly separated + from the symbols themselves. In the julesverne/bellswhistles + example, the was implemented via '\setlength{\losahang}{5cm}', + to change this: + + SYM1 an explanation of what the "SYM1" stands for. A really + long winded explanation so that I can get a linewrap or + two. + + AVeryLongSymbol notice that the first line of the definition + is intruded upon by the long symbol name, but the linewraps + are aligned at the original point. + + ---- to ---- + + SYM1 By changing \losahang, all of the definitions + now begin and linewrap to a point that is to + the right of the longest symbol name. + + AVeryLongSymbol However, this tends to look ugly if you have + many short symbols, but one really really long + one. + + You will need to set \losahang manually to an appropriate length, + depending on the contents of your glosssary. + + You should use gatech-thesis-losa.sty and the \losa{} command + to generate a List of Symbols. Use gatech-thesis-gloss.sty and + the \gloss command to generate a Glossary. + +^^^^^^^^^^^^^^ version 1.5 ^^^^^^^^^^^^^^^^ +______________ version 1.4 ________________ + +* Style of headings: + + In the most recent version of the OGS Guidelines, the + specific format of section, subsection, and subsubsection + headings is no longer specified. Because underlining is bad + (1) underlining for emphasis is bad typesetting, originally + used only when italics where not available [e.g. typewriters, + for which the original OGS Guidelines were written] + (2) Centering doesn't work on underlined text in section titles, + so earlier, we faked it with a 2in indent (hoping that all + section titles were short). Bad idea. + (3) underlining doesn't break across lines, so if you have a + very long section title, it won't wrap. It was suggested + (Elena Garcia) to use the ulem.sty package, but + (a) that would add a non-base external dependency to the class + (b) it doesn't fix the problem, unless you ALSO use the + titlesec.sty package to control section titles. Which + is yet ANOTHER external dependency. + Given (1) and (2), plus the lack of a requirement by OGS, I've + redefined the section, subsection, and subsubsection formats thus: + section: (old) (not really) centered, underlined, bold + section: (new) Large, bold, italic, at left margin + subsection: (old) bold, at left margin + subsection: (new) bold, at left margin + subsubsection: (old) bold, indented 5 "spaces" from left margin + subsubsection: (new) italic, indented 0.25in from left margin + +* Fixed bug that caused problems when last section of the document + (vita?) in \included instead of \inputted + +* Chapter headings fixups (only really applies if you're using + pagestyle{tcplain} or pagestyle{gtthesis} -- for personal copies?) + + Minor headings fixups: in short "chapters" (vita, references) which + will NOT have sections, the chapter header markers are not appropriate. + Normal is: \rightmark has chapter name, \leftmark has section name + .(when no sections, like vita, \leftmark is empty). It is up to + the pagestyle whether the \marks are used. We only use them in + gtthesis style. So, these known-short chapters should override + the markers and mark both left and right with the "chapter" name: + plus, they shouldn't read "Chapter *: Vita" but simply "Vita". + + QUESTION: perhaps abstract, TOC, LOT, ... should get similar + treatment? How likely is it that they will run more than two pages + long? + +* Massive signature page improvements. OGS Guidelines say that + if there are more than four signatories, then the signature + lines must be arranged in two columns. Before, it didn't. Now + it does. + +* Fix pagenumbering. New OGS guidelines say that pagenumbers should + go on the bottom in the middle, not in the upper right corner. + This means that 'plain' is now the default pagestyle. (Old 'gtplain' + is now renamed to 'tcplain' -- it's plain, except that the pagenumbers + are in the Top Corner. It no longer has anything to do with Georgia + Tech, so change the name to something else...hence, tcplain) + +* Reorganized the examples. There are now three: the super-simple, + very basic ``example-thesis.tex'', the moderately more advanced + julesverne/basic/ example, and the full-blown, all the bells and + whistles example in julesverne/bellswhistles. + +* More pagenumbering fixes: signature page should not be numbered. + +* Dedication page: text is automatically centered, per OGS requirements. + Looks ugly to me; for personal copies override dedicationtop/bottom: + \renewcommand*{\dedicationtop}{\vspace*{\stretch{1}} + \renewcommand*{\dedicationbottom}{\vspace*{\stretch{3}} + looks nice to me (for UNOFFICIAL copies). + +* Table of Contents, List of Figures, List of Tables: + OGS guidelines say that items in these lists should be single spaced + if a single entry requires more than one line, but that separate + entries should be doubled spaced. It wasn't before. Now it is. + +* Multivolume Thesis support: + Use the \part{} sectioning commands to indicate where Volume II + (III, etc) should begin. Put \multivolumetrue in your preamble, and + gatech-thesis.cls will automatically generate the volume I "title" + page (in addition to the "real" title page. + + It's unclear whether the volume title pages should look the same + as the "real" title page, or if the volume I title page should BE + the "real" title page. I've made some guesses. If I find out + differently, I'll change it. + +* gatech-thesis.cls now depends on the base package 'calc'. This + should not be a big deal, 'calc' is a part of the standard + LaTeX2e distribution. + +* Lists of Symbols and Abbreviations, and Index: + incorporate minimal support for glossary page and index page + within gatech-thesis.cls. However, most functionality is + kept in the add-on, option style files + gatech-thesis-index.sty and + gatech-thesis-gloss.sty + Read the comments in those files for more information. + +* Bibliography style: gatech-thesis.bst based on ieeetr.bst. Thanks + to Elena Garcia for the prod, although this version has + a separate heritage than her submission. + +* Included code: gatech-thesis.cls now includes David Carlisle's + \@removefromreset command as specified in the remreset package + available from CTAN as + macros/latex/contrib/supported/carlisle/remreset.sty + It is provided here as a convenience to the user, and because + it helps me eliminate a major kludge within gatech-thesis.cls. + The code is included with David Carlisle's permission. + remreset.sty is licensed under the LPPL; David has explicitly + given permission to include it here, under the GPL. + +* Minor fixups for two-sided printing + make sure that the last page of the preliminary environment is even, + so that Chapter 1 starts on an odd page. (Page numbers were always + right, but we need to go ahead an print the blank page, so that + duplex printers don't get confused.) It didn't before. Now it does. + +^^^^^^^^^^^^^^ version 1.4 ^^^^^^^^^^^^^^^^ +______________ version 1.3 ________________ +baseline. diff --git a/obsolete/macros/latex/contrib/gatech-thesis/COMPLIANCE b/obsolete/macros/latex/contrib/gatech-thesis/COMPLIANCE new file mode 100644 index 0000000000..3aaef92dca --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/COMPLIANCE @@ -0,0 +1,823 @@ +These notes are a running commentary on important points in +the Office of Graduate Studies Style Manual. Get it, open it, +and read along in that and in this file. + +Authorities: + OGS-SM: Office of Graduate Studies Style Manual + OGS: Office of Graduate Studies verbal confirmation + +We begin on page 7 of the OGS-SM: + +Copyright: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The current OGS-SM says that the copyright notice, if used, +should look like this: + Copyright (c) Full Name Year +on pages 7 and 13. However, on page 25, the example shows + Copyright (c) Year by Full Name +According to OGS, either is fine; gatech-thesis uses the latter +format. + +Fonts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The OGS-SM only lists the following approved fonts (and sizes): + Arial (11) -- N/A on most TeX systems + Courier (11 or 12) -- available, but Why? + Century Gothic (11 or 12) -- N/A + Geneva (11) -- N/A + Helvetica (11 or 12) -- available, but poor math support + Times (12) -- available (use mathptmx or txfonts) +But the OGS-SM doesn't mention Computer Modern, which is the +default font for TeX, and which has the best math support. + +OGS has confirmed that Computer Modern, 11 or 12 point, is +acceptable. (In TeX, unless you want to pay for proprietary +fonts, your only other realistic choice of a font with decent +support for mathematical symbles is Times, using the mathptmx +package. See julesverne/bellswhistles/jules-verne.sty for more +information. + +Margins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +By default, the GATECH-THESIS class uses the "new" margin +specification (1" on top, right, and bottom, 1.5" on left, +major headings just inside that 1" top margin). To use the +"old" margins (1" on bottom and right, 1.5" on left and top, +except that pages with major headings have a 2" top margin), +call gatech-thesis with the 'oldmargins' option: + \documentstyle[oldmargins]{gatech-thesis} +But this is not recommended. Use the default, "new" margins. + +Spacing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Line spacing is double throughout, except where the OGS-SM +specifically says that it should be single (captions, within +bibliography entries, etc). Don't change this. + +Page Numbers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The 'plain' pagestyle, which is used by GATECH-THESIS by +default, places the page numbers at the center within the +bottom margin, 0.5" from the bottom of the page. This is the +OGS-SM specification. For official copies, this should not +be changed. + +For personal copies ONLY: + You can use the 'tcplain' pagestyle which puts the page +numbers at the upper right corner (upper outside corner for +twosided printouts[*]). + You can also try the 'gtthesis' pagestyle, which for +onesided printouts puts the pagenumber at the upper right, +and the chapter title in the upper left (for twosided, +the pagenumber is on the outside upper corner; the chapter +title is on the upper inside corner of right-hand pages, and +the section title is on the upper inside corner of left-hand +pages). See the julesverne/bellswhistles/jules-verne.sty file +for an example of how to do this. + +[*] 'twosided' doesn't simply mean that you happen to print +on a duplex printer. It means that you invoke GATECH-THESIS +with the 'twoside' option: + \documentclass[twoside]{gatech-thesis} +Don't do this except for personal copies (it's the default +in draft mode -- which are personal by definition). + +Footnotes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Nothing special here; use standard LaTeX tools (\footnote, +\endnote) to do this. + +Preliminary Pages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The frontmatter pages will automatically obey the proper margin +guidelines (especially the topmargin) depending on whether you +use the default (1") margins, or choose the "old" margins (2" on +major heading pages, like titlepage, etc). + +Title Page +---------------- +Counts as page i, but not marked. Commands which can mmodify +the appearance: + +\titlepagefalse (\titlepagetrue is the default) + Don't print a title page + +\documentclass[oldmargins]{gatech-thesis} + See the Margins section above. + +Volume I Title page +---------------- +If your thesis spans multiple volumes, then you should invoke the +\multivolumetrue command within your preamble. This will cause +GATECH-THESIS to automatically generate the Volume I title page +(which is separate from the "real" title page) immediately after +the real title page. + Volume title pages are not numbered, and *do not count* in the +page number sequence. So, oddly, you will have + titlepage i + volume title page - + approval page ii +Just go with it; this weird behavior has been confirmed by OGS +(even though it isn't all that clear in the OGS-SM) + +Commands which modiry the appearance: + +\multipagetrue (\multipagefalse is the default) + Print it. + +\documentclass[oldmargins]{gatech-thesis} + See the Margins section above. + +Approval page +---------------- +Formerly known as the signature page, this is generated by default. +To suppress, invoke the \signaturepagefalse command. The +signature lines will be generated (in order) for each one of +the following commands that have been invoked (uninvoked ones +will be skipped): + \principaladvisor{a name} + \committeechair{a name} + \firstreader{a name} + \secondreader{a name} + \thirdreader{a name} + \fourthreader{a name} + \fifthreader{a name} + \sixthreader{a name} +You don't need to invoke them all; just the ones you need. +The \principaladvisor and \committechair ones are special; +in addition to the names, the titles ("Committee Chair", +"Advisor") are also printed. + +Each of the commands above has two optional arguments. The first is +the unit (school/department) name and the second is the institution +name. If not specified, they will be filled by the student's +department and Georgia Institute of Technology. Optional arguments go +AFTER mandatory argument, as in: + + \firstreader{I.M. Professor}[Department of Mathematics and Computer Science][Emory University] + +If only the first optional argument is required, the command can be invoked with only one optional argument. + + If there are less than five signatures to be printed, then +the names will be in a single column. If there are +more than five, then the signatures will be typeset in two +columns, as per the OGS-SM. This page is number ii, but the +page number is not printed (per OGS-SM). + +Commands which can modify the appearance: + +\signaturepagefalse (default is \signaturepagetrue) + suppress printing a signature page + +Dedication page +---------------- +\begin{dedication} + ... dedication text ... +\end{dedication} + +Text on this page will be automatically centered vertically, per +the OGS-SM. However, that looks unbalanced; for personal copies +you may wish to override the following two commands as follows: + \renewcommand{\dedicationtop}{\vspace*{\stretch{1}} + \renewcommand{\dedicationbottom{\vspace*{\stretch{3}} +This positions the text at about 1/4 of the way down the page, +which looks better in my opinion. But ONLY do this for personal +copies. + Also, if you invoke the \dedicationheadingtrue command in your +preamble, then the dedication page will have a big "DEDICATION" +heading on it. Don't do this; it is only provided for backward- +compatibility with the (very) old gtthesis.sty -- and this +ugliness was required by the old OGS-SM (but no longer). + +Commands which can modify the appearance: + +\dedicationheadingtrue (default is \dedicationheadingfalse) + print a big "DEDICATION" title at the top of the page + +Acknowledgements page +---------------- +\begin{acknowledgements} + ... acknowledgements text ... +\end{acknowledgements} + +nothing special here + +About the next several sections (the 'Lists'): If you are using +the hyperref package, you MUST use hyperref's breaklinks option. +If you do not, and there is a section title or figure caption +that spans multiple lines, hyperref will prevent it from breaking +at the margin (it will stay all on one line, and go off the page). + \usepackage[breaklinks,]{hyperref} +See julesverne/bellswhistles/jules-verne.sty for a good way +to handle this. + +Table of Contents +---------------- +\contents + +In general, this should "just work". By invoking the \contents +command somewhere within the preliminary environment in your +document, GATECH-THESIS will automatically create a Table of +Contents (and List of Figures and List of Tables[*]) that matches +the requirements of the OGS-SM. Specifically, that means + 1) Chapter titles, sections, subsections, and subsubsections + are listed (the OGS-SM requires at least chapters, sections, + and subsections) + 2) Each entry is singlespaced within, but doublespaced between + +[*] assuming the \tablespagefalse, \figurespagefalse commands were + not invoked. + +However, there are ways to customize the look of the TOC (but don't +use them in official copies...) + +\contentspagefalse + don't print the TOC at all (bad idea...) + +\labelchaptersintableofcontents + inserts an entry into the TOC that says ``CHAPTERS''. Obviously, + you should invoke this just before you begin chapter 1. However, + there's a slight glitch due to a bug in LaTeX: see + julesverne/bellswhistles/hack-part.tex for more info. + +\labelappendicesintableofcontents + inserts an entry into the TOC that says ``APPENDICES''. Obviously, + you should invoke this just before you begin the first appendix + (before or after the '\appendix' command; it doesn't matter). + However, there's a slight glitch due to a bug in LaTeX: see + julesverne/bellswhistles/hack-part.tex for more info. + +\settocstring{a string} + change the name used for the Table of Contents (def: 'Table of Contents') + + +\setchaptertocdepth{a number} + set how ``deep'' to number within chapters in the table of contents. + This defaults to '2', which means chapters, sections, and subsections, + You may wish to set this to '3' (thus adding subsubsections) -- but + don't use '0' or '1' because the OGS-SM requires that chapters, + sections, and subsections are listed in the TOC. + +\setappendixtocdepth{a number} + set how ``deep'' to number within appendices (chapter{}''s after + the \appendix command) in the table of contents. This defaults + to '0', which means list the Appendices themselves alone, with + no sections. This is the OGS-SM default; but you may list smaller + divisions as well by setting this to 1, 2, or 3. + +\settocdepth + temporarily change how "deep" to number in the table of + contents for current chapter/section. For example, you + usually include \subsection{}''s in the TOC (\setchaptertocdepth{2}) + but in chapter 5 you want to include subsubsections as well: + \chapter{This is Chapter 5}\settocdepth{3}. In chapter 6 the + default depth of 2 is reasserted. Change the overall defaults using + the above two commands instead. + +\multivolumetrue +\part{} + If \multivolumetrue is invoked in the preamble, then the very first + item in the TOC is the phrase "Volume I" centered (with no page number) + It is only inserted to show where the volume divisions are, but since + the volume title pages have no number, then neither do the volume + labels in the TOC. Also, another "Volume II" label (III, IV, ...) + is inserted into the TOC each time \part{} is invoked. But, + see julesverne/bellswhistles/hack-part.tex for information about + working around a LaTeX bug. + This particular bit of magic is not discussed at all in the OGS-SM, + but OGS has seen and approved the results. + +List of Tables +---------------- +\contents + +In general, this should "just work". By invoking the \contents +command somewhere within the preliminary environment in your +document, GATECH-THESIS will automatically create a List of +Tables (and List of Figures and Table of Contents[*]) that matches +the requirements of the OGS-SM. Specifically, that means + 1) Each entry is singlespaced within, but doublespaced between + 2) OGS-SM requires that the entries in the List of Tables exactly + match the captions at each table. This means you should not + use the `\caption[short caption]{long caption}' construction; + just use `\caption{the caption}'. + +[*] assuming the \contentspagefalse, \figurepagesfalse commands were + not invoked. + +However, there are ways to customize the look of the LOT (but don't +use them in official copies...) + +\setlotstring + change the name used for the List of Tables (def: 'List of Tables') + +List of Figures +---------------- +\contents + +In general, this should "just work". By invoking the \contents +command somewhere within the preliminary environment in your +document, GATECH-THESIS will automatically create a List of +Figures (and List of Tables and Table of Contents[*]) that matches +the requirements of the OGS-SM. Specifically, that means + 1) Each entry is singlespaced within, but doublespaced between + 2) OGS-SM requires that the entries in the List of Figures exactly + match the captions at each table. This means you should not + use the `\caption[short caption]{long caption}' construction; + just use `\caption{the caption}'. + +[*] assuming the \contentspagefalse, \tablespagefalse commands were + not invoked. + +However, there are ways to customize the look of the LOF (but don't +use them in official copies...) + +\setlofstring + change the name used for the List of Figures (def: 'List of Figures') + +List of Symbols or Abbreviations +---------------- +\usepackage{gatech-thesis-losa} + +This is not generated by default, since it isn't widely used (but +every thesis has tables and figures). Also, the implementation +provided requires additional packages that are not included with +this distribution. + +To generate a List of Symbols or Abbreviations (LOSA), you simply +do the following in your preamble: + \usepackage{gatech-thesis-losa} + \losafiles{} +gatech-thesis-losa.sty depends on and automatically loads the +gloss.sty package -- but you need to insure that gloss.sty is +installed in your TeX system. + +By doing this, the LOSA will be automatically generated and included +in the frontmatter, just after the LOF -- and it will be added to the +TOC. Of course, you need actual *entries* in the symbols database +file -- which must end in .bib; see the gloss.sty documentation +for the appropriate format. You also need actual citations to those +entries within your bodytext, like this: + \losa{key}. +Note that \losa{} typesets the from the entry of +the losafile within the text, so there''s no need to do this: + (BAD) word\losa{key-for-word} +Again, you should read the gloss.sty documentation for more info, but +basically gatech-thesis-losa.sty makes it simple: + 1. insert the two commands above into your preamble + 2. create a database with your glossary definitions + 3. sprinkle \losa{} citations in your text + 4. run ``bibtex'' on the .losa.aux file created + after the first ``latex'' run. (But don''t include the + .aux extension. So say ``bibtex .losa'' You + can do this at the same time you run ``bibtex'' for your + references. + 5. run ``latex'' twice more + +To customize the List of Symbols or Abbreviations, you can use the +following commands + +\setlosastring{a string} + change the name used for the List of Symbols or Abbreviations + (def: 'List of Symbols or Abbreviations') + +\setlength{\losahang}{a dimension} + The GSO prefers that the symbol descriptions are rigidly + separated from the symbols themselves. Sometimes, if you have + very long symbols/abbreviations, you may need to make + \losahang bigger than its default value of 2cm, by using a + command similar to the following, within your document preamble: + \setlength{\losahang}{4cm} + +Glossary +---------------- +\usepackage{gatech-thesis-gloss} + +This is not generated by default, since it isn't widely used (but +every thesis has tables and figures). Also, the implementation +provided requires additional packages that are not included with +this distribution. Finally, the current OGS-SM doesn't say +anything about a Glossary or List of Nomenclature, so we're +on our own, here. However, the old OGS-SM did mention it, briefly. + +To generate a Glossary or List of Nomenclature, you simply +do the following in your preamble: + \usepackage{gatech-thesis-gloss} + \glossfiles{} +gatech-thesis-gloss.sty depends on and automatically loads the +gloss.sty package -- but you need to insure that gloss.sty is +installed in your TeX system. + +By doing this, the glossary will be automatically generated and +included in the frontmatter, just after the LOF (or LOSA, if you +have it) -- and it will be added to the TOC. Of course, you need +actual *entries* in the glossary database file -- which must end +in .bib; see the gloss.sty documentation for the appropriate format. +You also need actual citations to those entries within your +bodytext, like this: + \gloss{key}. +Note that \gloss{} typesets the from the entry of +the glossfile within the text, so there''s no need to do this: + (BAD) word\gloss{keyforword} +Read the gloss.sty documentation for more info, but basically +gatech-thesis-gloss.sty makes it simple: + 1. insert the two commands above into your preamble + 2. create a glossfile with your glossary definitions + 3. sprinkle \gloss{} citations in your text + 4. run ``bibtex'' on the .gls.aux file created + after the first ``latex'' run. (But don''t include the + .aux extension. So say ``bibtex .gls'' You + can do this at the same time you run ``bibtex'' for your + references. + 5. run ``latex'' twice more + +To customize the Glossary or List of Nomenclature, you can use the +following commands + +\setglossstring{a string} + change the name used for the List of Symbols or Abbreviations + (def: 'List of Symbols or Abbreviations') + +\setlength{\glosshang}{a dimension} + Unlike the \losahang comment above, it doesn't make sense to +rigidly separate the description from the glossary terms; the +glossary terms are usually too long for this to be aesthetic. +However, this has NOT been confirmed by OGS. If you use a +glossary, be sure to confirm that the current behavior is okay. +If not, then you can use \setlength{\glosshang}{a dimension} +to fix it. + +Summary +---------------- +\begin{summary} + ... summary text ... +\end{summary} + +Nothing special to say here + +Other frontmatter +---------------- + +Before we leave the "Preliminary pages" section (pg. 15 of the OGS-SM), +there are a few additional environments that are provided by +the GATECH-THESIS class, but are not discussed in the OGS-SM: + +The entire "frontmatter" section should be enclosed within the +"preliminary" environment, like this: + +\begin{document} +\begin{preliminary} + \begin{dedication} dedication text \end{dedication} + ... etc ... + \contents + \begin{summary} summary text \end{summary} +\end{preliminary} +... chapters ... + +Preface +---------------- +\begin{preface} + ... preface text ... +\end{preface} + +The (current) OGS-SM doesn't mention a preface, but if used it +should go after the dedication. The old OGS-SM did mention it. + +Forward +---------------- +\prefacesection{Forward}{% + ... forward text ... +} + +The (current) OGS-SM doesn't mention a preface, but if used it +should go after the dedication. The old OGS-SM did mention it. + +There is no 'Forward' envronment; you can use the \prefacesection +command to create any frontmatter section you like, as follows: + \prefacesection{title of the section}{section text} + +Text Pages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\chapter{chapter title} +chapter text ... +\chapter{the next chapter title} +chapter text ... + +\appendix +\chapter{appendix title} +appendix text ... +\chapter{the next appendix title} +appendix text ... + +Section Heading Formats +--------------- +The new OGS-SM no longer specifies what the section, +subsection, or subsubsection headings should look like; according +to OGS, they don't really care: as long as it looks professional +and you are consistent. I chose to define these as follows: + +Sections: Large, Bold, Italic, Flush left +SubSections: Bold, Flush left +SubSubSections: Italic, indented + +If you wish to override and define your own formats, you can +either \renewcommand{\section}{ ... } (see any good LaTeX book), +or \usepackage{titlesec}. I recommend the latter. Actually, +I recommend leaving it alone; concentrate on writing your +dissertation and don't get distracted by messing around with +formatting. + +You can use a number of special environments for specific +purposes. The first two are useful; avoid the other four. + +\begin{longquote}...\end{longquote}: + Single-spaced version of the ``quote'' environment. +\begin{longquotation}...\end{longquotation}: + Single-spaced version of the ``quotation'' environment. +\begin{singlespaced}...\end{singlespaced}: + Format single-spaced paragraphs. +\begin{oneandahalfspaced}...\end{oneandahalfspaced}: + Format 1 1/2-spaced paragraphs. +\begin{doublespaced}...\end{doublespaced}: + Format double-spaced paragraphs. +\begin{newspacing}{}...\end{newspacing}: + Format paragraphs with an interline spacing of ``n''. + + +Reference Material +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Nothing really special to say here. + +Appendices +---------------- +See the 'Text Pages' section above, as well as the 'Table of +Contents' discussion above. + +References +---------------- +\bibfiles{a .bib database}% in the preamble +\bibliographystyle{gatech-thesis}% just after \begin{document} +\references% somewhere in the postliminary env. + +Within the \postliminary environment, execute the \references +command to generate an OGS-SM compliant bibliography. The +gatech-thesis.bst style is: + + numeric labels, sorted, IEEE abbreviations (vol. not volume, + no. not number, authors' first names abbreviated), quotes + around article titles, commas separate all fields except after + book titles and before "notes". Authors names typeset + in small caps, surname first. + +This has been approved by OGS. You may also use the 'plain' +bibliography style (\bibliographystyle{plain}), if you wish. + +Vita +---------------- +\begin{vita} + ... vita text ... +\end{vita} + +This should be the very last page of your disseration, and should come +immediately before \end{postliminary}\end{document}. + +Index +---------------- +\usepackage{gatech-thesis-index} + +This is not generated by default, since it isn't widely used (but +every thesis has tables and figures). Also, the implementation +provided requires additional packages that are not included with +this distribution. Finally, the current OGS-SM doesn't say +anything about an index; neither did the old OGS-SM. + +To generate an index, do the following in your preamble: + \usepackage{gatech-thesis-index} +and execute + \gtindex +somewhere in the postliminary environment of your thesis. +Remember, VITA should be last, so \gtindex must precede it. + +gatech-thesis-index.sty depends on and automatically loads the +index.sty package and the multicol.sty package -- but you need +to insure that index.sty and multicol.sty are installed in your +TeX system (index.sty is included in the `camel' package on +MikTeX and CTAN). + +By doing this, the index will be automatically generated and +included in the TOC. Of course, you need actual *index references* +within your document, like this: + foo\index{foo}. +Read the index.sty documentation for more info, but basically +gatech-thesis-index.sty makes it simple: + 1. insert the \usepackage and \gtindex commands into your document + 2. sprinkle \index{} citations in your text + 3. run ``makeindex'' on the .idx file created + after the first ``latex'' run, like this: + makeindex -s gatech-thesis-index.ist .idx + This will create .ind (the gatech-thesis-index.ist + file is a format specification for the index). If you want + to customize the index format, copy gatech-thesis-index.ist to + ``myformat.ist'' and change the copy. Use ``-s myformat.ist'' + instead of gatech-thesis-index.ist. + You can run the makeindex command at the same time you run ` + `bibtex'' for your references and/or glossary. + 4. run ``latex'' twice more (the same ``twice more'' needed for + bibtex and gatech-thesis-gloss.sty) + +To customize the Index, you can use the following commands + +\setindexstring{a string} + change the name used for the Index (def: 'Index') + +Tables and Figures +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Some useful packages you might want to investigate include + subfigure -- place multiple figures within a single 'figure' + environment + floatingfigure -- for figures that do not take up the full + width of the page, you may issue this command between + paragraphs, and the next paragraph will be typeset + next to the narrow figure. OGS does accept this sort + of thing, but... + wrapfig -- ditto, but with a difference: you may issue this + command inside a paragraph, but LaTeX will NOT optimize + the figure's position -- which might lead to extra + whitespace, mostly empty pages, etc. Recommend against. + longtable -- for tables that extend beyond a single page (don't + use the supertab package, it can't handle secondary caption + properly) + +Captions: +--------------- + The OGS-SM requires that Table captions be placed before the + caption, and Figure captions be placed after the figure. You can + only do this manually; it can't be automatted. To create a + table, do this: + + \begin{table}[tbp] + \caption{the caption} + \label{the label}% must come after the caption + \begin{center} + \begin{tabular} + .... + \end{tabular} + \end{center} + \end{table} + + For a figure, do this: + + \begin{figure}[tbp] + \begin{center} + \includegraphics[some options]{a graphics file} + \end{center} + \caption{the caption} + \label{the label}% must come after the caption + \end{table} + + Notice that the \caption{} command comes before the actual + tabular in the table, but comes after the includegraphics in the + figure. This is the only way to insure that the captions go where + the OGS-SM requires. + + The caption format is (by default) 'Figure X: caption-text', and + the 'Figure X:' part is typeset in bold, while the caption-text + is typeset in 'normal weight' like the rest of the body text. + To change this, use the caption2 package (note that + \usepackage[bf]{caption2} + will result in captions that are identical to the GATECH-THESIS + default). But for an official GT thesis, you want the default; + for personal copies, I like using san-serif bold like so: + (DON'T DO THIS) \usepackage[sf,bf]{caption2} + +Placement +-------------- +LaTeX usually does a fairly decent job of obeying rational placement +rules for 'floats' (e.g. tables and figures). If you need to force +a float to a specific location (note that using the 'h' option for +the figure/table environments does not do what you think it does; nor +does using the '!' option), +try the following: + \usepackage{float} + \restylefloat{figure}% or table + \begin{figure}[H]% <<< note the 'H' for 'Here' +However, this can really get you into trouble: the H'ed figure +could get placed before a non-H'ed one, even if it follows the +non-H'ed figure in the document source. This will cause, for +example, Figure 4 to be on a page before Figure 3! + +To work around this, you could *additionally* + \usepackage{afterpage} +and use + \afterpage{\clearpage\begin{figure}[H]...\end{figure}} +But THAT can lead to pages will very little text, and lots of +empty white space -- which itself is a violation of the OGS-SM. + +Think about it. Do you REALLY care if a figure is 2 or 3 pages +away from the text that references it? You're writing a 100+ +page document...messing with float placement is usually more +trouble than it is worth. Don't. + +For more information, see section 6.2 in the LaTeX companion. + +If you need to turn a figure or table on its side (landscape), +use the 'rotating' package. + +Numbering +---------------- +LaTeX will handle the Figure # and Table # sequences for you. + +For tables that will extend over more than one page, use the +'longtable' package. To follow the OGS-SM requirement that +subsequent pages of the same page also have captions, and that +these captions say only + Table XX (cont'd) +you must pay careful attention when constructing the table (and +the longtable environment is different from the table environment +plus a tabular). However, the best we can do -- without massive +TeX code, is that subsequent captions are + Table XX: (cont'd) +(the ':' is not in the original requirements). However, to even +get this far, you must do something like this: + + \begin{longtable}[c]{|c|c|c|} + \caption{the `real' caption} + \\ \hline + Column A & Column B & Column C \\ \hline + \endfirsthead% the preceding will be invoked ONLY at the + % beginning of the table + \caption[]{(cont'd)}% <<<<< This is the magic caption + \\ \hline + column a & column b & column c \\ %\hline -- not necessary + % longtable takes care of it for us. + \endhead% the preceding will be invoked at the top + % of every page except the first one + % now we do the data... + 1 & 2 & 3 \\ \hline + 4 & 5 & 6 \\ \hline + .... + \end{longtable} + +The 'magic' caption[]{(cont'd)} statement within the header section +means that every page (except the first) will get that caption -- +but since it has an empty optional argument, the '(con't)' will +NOT get listed in the LOT, and the table counter will not be +incremented. Which is what we want. + +Note that longtables are not floating; they will go exactly where +you put them. (There is no need for a longtable to float; it is +able to break at the pagebreak and continue on the next page). +However, don't use longtable for everything tabular; a 4-line +table will look really silly broken across two pages. + +You can also play games with 'continued on next page' and +'continued from previous page' within the table itself, by +using \endfoot and \endlastfoot commands and the multicolumn +command. See the longtable documentation, and Chapter 5 of the +LaTeX Companion. + +Citations of Tables and Figures +---------------- +The OGS-SM states that you should always reference figures as +'Figure 10' and tables as 'Table 4'. However, you don't want +a linebreak (or worse, a page break) to occur betwen 'Table' and +'4'; further, you don't want TeX to hyphenate 'Fig'-'ure'. So, +in LaTeX, this means if you have a figure with the label +{myfigure} and a table with the label {mytable}, you should +cite them as: + + \mbox{Figure~\ref{myfigure}} + \mbox{Table~\ref{mytable}} + +It's probably a good idea to simply define new commands in your +preamble: + + \newcommand{\figref}[1]{\mbox{Figure~\ref{#1}}} + \newcommand{\tabref}[1]{\mbox{Table~\ref{#1}}} + +because sooner or later, you WILL forget to type all that extra +junk. Just define the new commands as you like, and then do + + \figref{myfigure} + \tabref{mytable} + +and be done. Note that these commands are NOT provided by +GATECH-THESIS; not being strictly necessary, I don't want to +cramp any potential users' style by forcing my way. However, +see the julesverne/bellswhistles/jules-verne.sty file... + +Multivolume Theses or Dissertations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\multivolumetruee +\part{} + +This was already covered in the Table of Contents section, +above. One note, however: don't attempt to "name" your volumes. +That is, use \part{}, not \part{Title of Volume II} + +GATECH-THESIS will handle it if you do name your volumes -- but +the OGS-SM doesn't allow it, and there is no way short of +redefining the entire 'preliminary' environment to give Volume I +a name. + + diff --git a/obsolete/macros/latex/contrib/gatech-thesis/COPYING b/obsolete/macros/latex/contrib/gatech-thesis/COPYING new file mode 100644 index 0000000000..1bf1526387 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/obsolete/macros/latex/contrib/gatech-thesis/ChangeLog b/obsolete/macros/latex/contrib/gatech-thesis/ChangeLog new file mode 100644 index 0000000000..670e3fc5da --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/ChangeLog @@ -0,0 +1,362 @@ +-------- RELEASE v1.7 -------- + +2006-01-25 Mitchel T. Keller + + * title@top: reduce font size to large and remove double spacing + * title@text: changes to accommodate \ifdissertation and + \iflistmajor and to reduce the size of the author's name + * ifdissertation: new if to use the word dissertation on the title + page instead of thesis + * iflistmajor: new if to use "[degree] in [major]" on the title + page and put [department] down at the bottom of the page + * \major: new command to specify the major for the title page + * reader commands: two optional arguments added to all reader + commands (including advis?r and committee chair) to allow + specifying the reader's affiliation + * signature@bodytwocol: major revisions to eliminate signature + lines, list each person's affiliation, print the date approved, + and line up the first line of horizontally opposite signatures + * @makecaption: Removed call to \textsf for the first argument + when captions get long. + +-------- RELEASE v1.6 -------- + +2003-05-06 Charles Wilson + + * l@chapter: modify to add leaders, as requested + by OGS. + +2003-05-04 Charles Wilson + + * one-and-a-half spacing: use 1.25 throughout, + instead of 1.33 -- to better match the description + given in The LaTeX Companion. + +2003-04-14 Charles Wilson + + * \@makesignature: fix problem when no Committee Chair + * vita environment: make double spaced + * \@makecaption: Make 'Figure X:' part bold, but use + the normal font (OGS complained about san-serif). + * patch support: new file "gatech-thesis-patch.sty" + for faster updates... + +2002-09-30 Charles Wilson + + * \@footnotetext: correct spacing after the footnotemark + in the body text. + +-------- RELEASE v1.5 -------- + +2002-08-17 Charles Wilson + + Make the changes suggested and/or approved by OGS + + * \@makecaption: New function (copied from report.cls). + Make the 'Figure X:' part bold san-serif. To override, + use the caption2 package. Current behavior is now similar + to '\usepackage[sf,bf]{caption2}'. + * gatech-thesis-gloss.sty: change \glossname + * gatech-thesis-losa.sty: new file. Use this for List of Symbols + * gatech-thesis-losa.bst: new file. + * INSTALL: fix format + * COMPLIANCE: new file + +2002-08-08 Charles Wilson + + tag as 1.4 -- it may not be official, but it works. + Get approval from OGS, make the required changes, and + release that as 1.5 + +2002-08-08 Charles Wilson + + In the most recent version of the OGS Guidelines, the + specific format of section, subsection, and subsubsection + headings is no longer specified. Because underlining is bad + (1) underlining for emphasis is bad typesetting, originally + used only when italics where not available [e.g. typewriters, + for which the original OGS Guidelines were written] + (2) Centering doesn't work on underlined text in section titles, + so earlier, we faked it with a 2in indent (hoping that all + section titles were short). Bad idea. + (3) underlining doesn't break across lines, so if you have a + very long section title, it won't wrap. It was suggested + (Elena Garcia) to use the ulem.sty package, but + (a) that would add a non-base external dependency to the class + (b) it doesn't fix the problem, unless you ALSO use the + titlesec.sty package to control section titles. Which + is yet ANOTHER external dependency. + Given (1) and (2), plus the lack of a requirement by OGS, I've + redefined the section, subsection, and subsubsection formats thus: + section: (old) (not really) centered, underlined, bold + section: (new) Large, bold, italic, at left margin + subsection: (old) bold, at left margin + subsection: (new) bold, at left margin + subsubsection: (old) bold, indented 5 "spaces" from left margin + subsubsection: (new) italic, indented 0.25in from left margin + + * \section: change format of headings + * \subsection: change format of headings + * \subsubsection: change format of headings + +2002-08-08 Charles Wilson + + * mainline: using \AtEndDocument, write out a final setcounter + command to the aux file. This corrects a problem when the last + section of the document is \include'd instead of \input'ed. + +2002-08-08 Charles Wilson + + name handling for LOT, TOC, LOF. Not all of these are used; but + are included for completeness. One confusing note: the pdfbookmarks + for listoffigures and listoftables uses the list*name variable, + NOT the *pdfbookmarksstring variable: but the list*name includes + \Makeuppercase which is illegal in a pdfstring. + This is handled by hyperref itself (I think) which ignores + \MakeUppercase when building the bookmarks. + + * \gtcontentsname: New. holds "normal" version of the TOC name + * \toccontentlinestring: New. holds \Makeuppercase version of TOC name + * \tocpdfbookmarksstring: New. holds texofpdfstring version of TOC name + * \settocstring: New. sets the above three values appropriately, as + well as the 'normal' LaTeX variable 'contentsname' + * \gtfigurename: New. holds "normal" version of the LOF name + * \lofcontentlinestring: New. holds \Makeuppercase version of LOF name + * \lofpdfbookmarksstring: New. holds texofpdfstring version of LOF name + * \setlofstring: New. sets the above three values appropriately, as + well as the 'normal' LaTeX variable 'listfigurename' + * \gttablename: New. holds "normal" version of the LOT name + * \lotcontentlinestring: New. holds \Makeuppercase version of LOT name + * \lotpdfbookmarksstring: New. holds texofpdfstring version of LOT name + * \setlotstring: New. sets the above three values appropriately, as + well as the 'normal' LaTeX variable 'listtablename' + + * mainline: use \setlotstring, \setlofstring, \settocstring + + * \do@tablespage: use \lotcontentlinestring + * \do@contentspage: use \tocpdfbookmarkstring + * \do@figurespage: use \lofcontentlinestring + +2002-08-08 Charles Wilson + + Minor headings fixups: in short "chapters" (vita, references) which + will NOT have sections, the chapter header markers are not appropriate. + Normal is: \rightmark has chapter name, \leftmark has section name + .(when no sections, like vita, \leftmark is empty). It is up to + the pagestyle whether the \marks are used. We only use them in + gtthesis style. So, these known-short chapters should override + the markers and mark both left and right with the "chapter" name: + plus, they shouldn't read "Chapter *: Vita" but simply "Vita". + + * vita environment: markboth{}{} with the chapter name + * thebibliography: ditto, plus reset the pagestyle back to + "endmatter" (references are numbered as bodytext, according to + OGS guidelines). This means that \references MUST be the very first + section within the postliminary environment, or page numbering + could get wacky. + + QUESTION: perhaps abstract, TOC, LOT, ... should get similar + treatment? How likely is it that they will run more than two pages + long? + +2002-08-08 Charles Wilson + + Massive signature page improvements. OGS Guidelines say that + if there are more than four signatories, then the signature + lines must be arranged in two columns. + + * \newsignature: remove + * \signature@width: new length. + * \signature@bodyonecol: new function. Used to typeset the + signatures when there are less than five. If called, it + loops thru all 7 known signatures, because it doesn't know + which of them are empty. + * \signature@bodytwocol: new function. Used to typeset the + signatures when there are five or more. + * \signature@body: pointer to \signature@bodyonecol or + \signature@bodytwocol + * \signatures: new counter (all sigs) + * \cnt@Lsig: new counter (sigs in left column) + * \cnt@Rsig: new counter (sigs in right column) + * \R@signatures: New. list of signatures for right column + * \L@signatures: New. list of signatures for left column + * \ta, \tb: New. tokens for list management + * \leftappenditem#1\to#2: New. list management function (from TeXbook) + * \rightappenditem#1\to#2: New. ditto + * \concatenate#1=#2: New. ditto + * \lop#1\to#2: New. ditto + * \lopoff: New. ditto + * \dosiglist: New. Loops thru the given list (#1) as many times as is + indicated by (#2). Executes the extracted items (e.g. typesets + the signatures). + * \signature: modify to put entire signature with rule inside a + parbox. Also, don't do anything if argument is empty (previously + you'd get a rule with no name) + * \add@Lsig: New. Add the given signature to the left list, and + increment the left counter + * \add@Rsig: New. ditto, only right + * \@fifthreader: new function. added to make things nicer for + \makesignature + * \@sixthreader: new function. Ditto. + * \makesignature: add the committee chair, advisor, and first reader + to the left list (we know these three will be in the left column + if they exist). Count all specified signatures. If less than five, + punt: skip to typesetting routine. Otherwise, adjust \signature@width, + change \signature@body pointer to \signature@bodytwocol, and + compute which signatures are added to the left list, and which + are added to the right list. Typesetting: call \title@top, then + call the \signature@body pointer. + +2002-08-08 Charles Wilson + + Fix pagenumbering. New OGS guidelines say that pagenumbers should + go on the bottom in the middle, not in the upper right corner. + + * \tcplain: new name for gtplain (given the new guidelines, the + upperright numbering has nothing to do with GT, so avoid the + confusion. tc == 'Top Corner'. + * \if@tcpage: new name for \if@thesispage. Since neither gtthesis + style nor gtplain==tcplain style are actually required by the + new OGS guidelines, give this a functional name: it indicates whether + the current style is a left-right alternating style when twosided. + It is true for tcplain and for gtthesis. + * \cleartcplaindoublepage: new function, included for completeness. + I doubt it will be of much use, though. + * \cleargtthesisdoublepage: ditto + * \chapter: use plain pagestyle, not gtplain + * \appendix: ditto + * \makesignature: according to new OGS guidelines, should not be + numbered. set \thispagestyle to empty. + +2002-08-08 Charles Wilson + + * \l@part@pagenumfont: new command (gobbles pagenumber) + * \l@part: use it + +2002-08-08 Charles Wilson + + * abstract environment: change handling of cleardouble page + so that pdf bookmarks are at the proper place. + * summary environment: ditto + * acknowledgements environment: ditto + * preface environment: ditto + * vita environment: ditto + * \references: ditto + * \maketitle: ditto + * \make@parttitle: ditto + * \makesignature: ditto + * \prefacesection: ditto + * \postfacesection: ditto + * \do@tablespage: ditto + * \do@figurespage: ditto + * \do@contentspage: ditto + * dedication environment: ditto, and automatically center the text + vertically as per OGS requirements. To override this centering, + \renewcommand{} on \dedicationtop and \dedicationbottom + * \dedicationtop: new command (used by dedication environment) + * \dedicationbottom: new command (used by dedication environment) + +2002-08-08 Charles Wilson + + Fix the TOC, LOT, LOF to handle really long titles. Each title + should be single spaced, with double spacing between titles. This + means that the entire TOC, LOT, LOF must be "singlespaced", but + we must add extra vspace{} when formatting. Thus, we copy + all of the l@[X] funtions from report.cls, and modify them to + use a settable length between entries. (We will set this length + to height{A capital letter} to simulate double spacing) -- but + that's done elsewhere + + * \chap@chapter: don't add extra space to TOC, the l@[X] functions + will handle that. Modify format of the title to better support + pdf bookmarks (emdash vs. ---) + * \app@chapter: ditto + * \gt@tocentryskip@value: new length, used to handle spacing within + TOC, LOT, LOF + * \gt@beforepartskip@value: new length (TOC, LOT, LOF) + * \gt@beforechapskip@value: new length (TOC, LOT, LOF) + * \gt@beforesecskip@value: new length (TOC, LOT, LOF) + * \gt@beforesubsecskip@value: new length (TOC, LOT, LOF) + * \gt@beforesubsubsecskip@value: new length (TOC, LOT, LOF) + * \gt@beforeparaskip@value: new length (TOC, LOT, LOF) + * \gt@beforesubparaskip@value: new length (TOC, LOT, LOF) + * \gt@beforefigskip@value: new length (TOC, LOT, LOF) + * \gt@beforetableskip@value: new length (TOC, LOT, LOF) + * \gt@@toclineskip: internal length, see l@section, l@subsection... below + * \set@gttocskip: new function, sets the above lengths to + default values based on its argument. + * \gt@dottedtocline: new fuction, replaces \@dottedtocline from + report.cls, but uses \gt@@toclineskip to control spacing between + entries in the TOC, LOT, LOF. + * \l@part: copied from report.cls, modified to use gt@beforepartskip@value + * \l@chap: similar + * \l@section: assign gt@@toclineskip the appropriate length + gt@before[X]@value, and call \gt@dottedtocline. Based on report.cls + version (but increased leftmargin slightly to make room for + Roman Numberal chapter numbers. + * \l@subsection: similar + * \l@subsubsection: similar + * \l@paragraph: similar + * \l@subparagraph: similar + * \l@figure: similar + * \l@table: similar + + * mainline: use set@gttocskip + +2002-08-08 Charles Wilson + + Add support for multivolume theses, using the \part{} sectioning + commands. Since volume title pages are not to be counted in the + page numbers, we assign them negative pagenums to avoid duplication + of existing pagenums in the "real" thesis. + + gatech-thesis.cls now depends on the base package 'calc'. + + * \ifmultivolume: new if (See preliminary environment) + * \part@savepagenum: new counter, used to save existing page + number while we take a pagenumber detour + * \part@pagenum: the detour Initially set to -101, and increases. + Don't use more than 50 parts in a twosided thesis, 100 in a + onesided thesis. + * preliminary environment: if multivolume, then do a \part{} + command just after the "real" title page. + * \title@top: new function, used by sigature page, title page, and + volume titles. + * \maketitle: use it. + * \make@parttitle: new function. Use \title@top, but also typeset + the volume number [and title], and author as per OGS guidelines + * \makesignature: use \title@top + * \partname: Volume, not Part + * \part: copy from report.cls, modify to reset page number + * \@part: copy from report.cls, modify to typeset 'Volume I' + centered on the line in TOC. (Also pdf bookmark support). Calls + \make@parttitle to typeset the volume title page + * \@spart: copy from report.cls, modify to use \make@parttitle for + typesettting + * \@endpart: copy from report.cls, sets pagenum back to saved value + * \orig@contentsline: compatibility macro for hyperref support + * \labelchaptersintableofcontents: modify to support new \part{} + stuff, and hyperref (use \orig@contentsline) + * \labelappendicesintableofcontents: ditto + +2002-08-08 Charles Wilson + + Simplify \contents command to enable glossary support + + * \do@tablespage: new command, typesets the LOT + * \do@figurespage: new command, typesets the LOF + * \do@contentspage: new command, typesets the TOC + * \do@glossarypage: new command. Empty (but overridden by + gatech-thesis-gloss.sty) + * \do@indexpage: new command. Empyt (but overridden by + gatech-thesis-index.sty) + * \contents: use them + +2002-08-03 Charles Wilson + + * \@removefromreset: added new command (from David Carlisle) + * figure numbering: use \@removefromreset instead of existing kludge + * table numbering: use \@removefromreset instead of existing kludge + * equation numbering: use \@removefromreset instead of existing kludge + * preliminary environment: insure empty lefthand page is printed between + end of preliminary and beginning of chapter 1. diff --git a/obsolete/macros/latex/contrib/gatech-thesis/INSTALL b/obsolete/macros/latex/contrib/gatech-thesis/INSTALL new file mode 100644 index 0000000000..7b87ba4ec3 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/INSTALL @@ -0,0 +1,44 @@ +One of these days, I'll turn this in to an actual +.dtx file with all of the nifty built-in auto-install +procedures, plus real documentation. However, until +then you have to do it by hand. + +The following files should end up in your texmf tree +(or your localtexmf tree) at these locations: + + /tex/latex/gatech-thesis/gatech-thesis.cls + /tex/latex/gatech-thesis/gatech-thesis-patch.sty + /tex/latex/gatech-thesis/gatech-thesis-losa.sty + /tex/latex/gatech-thesis/gatech-thesis-gloss.sty + /tex/latex/gatech-thesis/gatech-thesis-index.sty + /bibtex/bst/gatech-thesis/gatech-thesis.bst + /bibtex/bst/gatech-thesis/gatech-thesis-losa.bst + /makeindex/gatech-thesis/gatech-thesis-index.ist + +Then, you need to update the file database; usually this is +something like "initexmf -u". On MikTeX, you run the "MikTeX +Options" program, and on the "General" tab, in the "File name +database" section, click on the button that says "Refresh Now". + +Alternatively, you can simply copy all of these files into your +local work directory where your thesis files will live. +However, this is sometimes dangerous as you might be tempted +to edit them directly. Wherever you choose to install the +official files, don't edit or modify them.. + +You should not need to modify the style/class files. However, +if you find that you must modify their behavior, the best thing +to do is to copy just the section of code (e.g. the function +definition) that needs changing into your own personal, +document-specific style file, and edit it there. You're +version will override the "real" version -- and there is no +need to modify the standard files. + +See the commented-out section at the end of +julesverne/bellswhistles/jules-verne.sty file, which is an +example of just this sort of thing -- it modifies the \contents +macro in gatech-thesis.cls, *without actually editing +gatech-thesis.cls* + +(NOTE: julesverne is only available from the Georgia Tech version of +the package at http://www.gradadmiss.gatech.edu/thesis.php) diff --git a/obsolete/macros/latex/contrib/gatech-thesis/MANIFEST b/obsolete/macros/latex/contrib/gatech-thesis/MANIFEST new file mode 100644 index 0000000000..fe3929d612 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/MANIFEST @@ -0,0 +1,34 @@ +Documentation + 00README + COMPLIANCE - a commentary on the official GT Style manual + COPYING - license + ChangeLog - extremely gory list of changes + CHANGES - a more general overview of changes + NEWS - simple bullet point list of changes + MANIFEST - this file + NOTES - general tips for using gatech-thesis + (and other packages) + TODO + INSTALL - how to ... + +Examples + example-thesis.tex - original source for the example + example-thesis.bib - ditto + example-thesis.dvi - what it should look like + example-thesis.ps - ditto + julesverne/ - two more examples are buried here + NOTE: The CTAN version of this package does not + include this directory. It can be retrieved + from the Georgia Tech page at + http://www.gradadmiss.gatech.edu/thesis.php + +The actual class: + gatech-thesis.cls - the gatech-thesis LaTeX2e class file + gatech-thesis.bst - bibliography style file + gatech-thesis-patch.sty - a patch framework for onthefly updates (empty) + gatech-thesis-losa.sty - add-on style for generating a list of symbols + gatech-thesis-losa.bst - list of symbols format + gatech-thesis-gloss.sty - add-on style for generating a glossary + gatech-thesis-index.sty - add-on style for generating an index + gatech-thesis-index.ist - index format + diff --git a/obsolete/macros/latex/contrib/gatech-thesis/NEWS b/obsolete/macros/latex/contrib/gatech-thesis/NEWS new file mode 100644 index 0000000000..f9255113ad --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/NEWS @@ -0,0 +1,90 @@ +This file contains a quick bullet list of changes and improvements +to the gatech-thesis pacakge. For more detail, see the +CHANGES file, or for the super neurotic, the extremely detailed +ChangeLog file. + +______________ version 1.8 ________________ +NEW FEATURES: +* The abstract environment now produces a page that meets the UMI + requirements. It should be placed at the very end of the main .tex + file. Delete the page (or comment out the environment and recompile) + when preparing the PDF for submission as an ETD. + +CHANGES: +* Minor changes to Table of Contents format. +* Bugfix for hyperref and overpic +^^^^^^^^^^^^^^ version 1.8 ^^^^^^^^^^^^^^^^ +______________ version 1.7 ________________ +NEW FEATURES: +* Now supports using the word Dissertation on the title page in place + of Thesis as well as listing the major instead of the department in + the "[degree] in [major]" portion of the title page. + +CHANGES: +* Minor changes to Table of Contents format, title page formatting, and + chapter title formating. Significant changes to approval page. New + command \approveddate{} for the date that should show on the + approval page as well as two optional arguments to all the commands + for committee members, allowing the affiliation to be specified. +^^^^^^^^^^^^^^ version 1.7 ^^^^^^^^^^^^^^^^ +______________ version 1.6 ________________ +NEW FEATURES: +* Now supports downloadable patchsets. Rather than updating + then entire distro every time there's a minor bugfix, you + can simply download a small patchfile and copy it into your + localtexmf tree. + +CHANGES: +* Fix nits with TOC format, Table and Figure caption format, + oneandahalfspaced linespacing, and Vita format. +^^^^^^^^^^^^^^ version 1.6 ^^^^^^^^^^^^^^^^ +______________ version 1.5 ________________ + +NEW FEATURES: +* NEW FILE: gatech-thesis-losa.sty (supports making a list + of symbols). +* NEW FILE: COMPLIANCE document is a blow-by-blow commentary + on the OGS Style Manual and how it is implemented by the + gatech-thesis class. +CHANGES: +* gatech-thesis-gloss.sty: Now used to generate a Glossary, + as distinguished from the List of Symbols. +* caption labels -- the 'Figure X:' part is now bold, san serif. + +^^^^^^^^^^^^^^ version 1.5 ^^^^^^^^^^^^^^^^ +______________ version 1.4 ________________ + +NEW FEATURES: +* NEW FILE: gatech-thesis-index.sty (supports making an index). Read + the comments at the top of the file for HOWTO info. +* NEW FILE: gatech-thesis-index.ist (used with above) +* NEW FILE: gatech-thesis-gloss.sty (supports making a glossary -- or + "list of symbols and abbreviations" in OGS parlance.) Read the + comments at the top of the file for HOWTO info. +* NEW FILE: gatech-thesis.bst (style for bibliographies). Based + on ieeetr.bst, but sorted and smallcapifies author names. Do + \bibliographystyle{gatech-thesis} instead of {plain} to use. +* Multivolume Thesis support. + +CHANGES: +* Changed the style of the section, subsection, and subsubsection + headings +* Signature page now has two columns if more than 4 signatories + (per new OGS Guidelines). Also, signature page should not be numbered. +* Obey new OGS pagenumbering guidelines that require bottom-center. +* Dedication page: text is automatically centered, per OGS requirements. +* Table of Contents, List of Figures, List of Tables: new OGS guidelines + say "single space entries, double space between entries." We obey. +* Reorganized the examples + +BUGFIX: +* Fixed a bug with \include'ing the final section of the document +* Technical bugfix with gtthesis pagestyle and sectionless chapters. + Fortunately, nobody uses that pagestyle for official copies. +* gatech-thesis.cls now depends on the base package 'calc' +* Incorporates with permission code from David Carlisle (\@removefromreset) +* Minor fixups for two-sided printing + +^^^^^^^^^^^^^^ version 1.4 ^^^^^^^^^^^^^^^^ +______________ version 1.3 ________________ +baseline. diff --git a/obsolete/macros/latex/contrib/gatech-thesis/NOTES b/obsolete/macros/latex/contrib/gatech-thesis/NOTES new file mode 100644 index 0000000000..639e37a880 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/NOTES @@ -0,0 +1,33 @@ +listings.sty + caption2.sty + IF you use the 'index=' option in listings.sty for captionless listings, + but you also have the caption2.sty packag loaded, it breaks. + Don't do that. Either do without captionless listings, or don't use + the caption2.sty package. This has been reported to the listings.sty + maintainer. + +hyperref: + if you have section names or figure captions in your TOC or LOF that + are longer than a single line, hyperref barfs. Make sure you are using + the breaklinks option. + + Also, you must use the 'hypertexnames=false' option, and the plainpages + option. Without these, the duplication of pagenums (front matter is + 1...X in roman, but that still dups the 1...X in the body) + +index.sty + is in the "camel" package in MikTeX + +ulem.sty - better underlining behavior. Use the \normalem option. + +gatech-thesis-losa.sty - addon for list of symbols. Depends on gloss.sty +gatech-thesis-gloss.sty - addon for glossaries. Depends on gloss.sty +gatech-thesis-index.sty - addon for indexes. Depends on index.sty and + multicol.sty + +gloss.sty - improved glossary generation, using bibtex +index.sty - improved index generation +multicol.sty - multiple columns on a page, without requiring \newpage. + +txfonts is the *way* to go. It seems to be the most hassle free way +to get Times, with good math support. Forget the times package, mathtime, +belleek, and mathptmx. Use txfonts. diff --git a/obsolete/macros/latex/contrib/gatech-thesis/README b/obsolete/macros/latex/contrib/gatech-thesis/README new file mode 100644 index 0000000000..8644cd0ee4 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/README @@ -0,0 +1,744 @@ +This is the README file for the GATECH-THESIS class for LaTeX. +It corresponds to version 1.5 of the GATECH-THESIS class +(17 August 2002) + +Copyright (c) 2002 by Charles S. Wilson. All rights reserved. + +GATECH-THESIS may be obtained from any of the following locations: + + http://www.grad.gatech.edu/thesis/index.html + this is where the official version, approved by the Georgia + Tech Office of Graduate Studies, may be found. Do NOT + attempt to use the old, out-of-date, LaTeX2.09 style file + (gtthesis.sty) that is STILL on cyberbuzz. + + http://www.neuro.gatech.edu/users/cwilson/gatech-thesis/ + the most recent version, plus archives of all past versions + will always be here. + + http://www.ctan.org/tex-archive/macros/latex/contrib/supported/gatech-thesis/ + and of course, CTAN. + +This class file can be used with the LaTeX typesetting system +to produce dissertations that adhere to Georgia Tech's guidelines +for publishing. + +There are a number of files within this archive. The important +ones are + + gatech-thesis.cls + gatech-thesis.bst + gatech-thesis-gloss.sty + gatech-thesis-losa.sty + gatech-thesis-losa.bst + gatech-thesis-index.sty + gatech-thesis-index.ist + +Everything else is fluff: examples, licensing, documentation... + +============================= +Using the GATECH-THESIS class +============================= + +First, read this file. Then read COMPLIANCE. Then read +INSTALL. Take a peek a NEWS, and then (maybe) CHANGES. +Then you can worry about the examples... + +Sample File +----------- + +example-thesis.tex + example-thesis.bib + +There is a sample dissertation (by the fictitious, but very +irritating, Perry H Disdainful) in the file example-thesis.tex. It +also uses example-thesis.bib as its bibliography database (though +the contents of the database are not important). Mostly this is +useful as an example of how to produce the front matter. If you +don't understand LaTeX at all, this file might help you get started, +but, since you're going to be writing a 100+ page document, you +should invest in a copy of the LaTeX manual (by Leslie Lamport, the +original author of LaTeX). This has recently been updated for +LaTeX2e (1, below). + +The LaTeX Companion, by Goossens, Mittelbach, and Samarin (who have been +involved in developing and supporting LaTeX2e) is also quite good. It +gives a lot of useful information if you are going to be writing or +modifying classes, and gives a lot of additional information on commonly +available style packages (2, below). + +Helpful books (in no particular order): + (1) "LaTeX: A Document Preparation System" by Leslie Lamport + (2) "The LaTeX Companion" by Goossens, Mittelbach, and Samarin + (3) "A Guide to LaTeX" by Helmut Kopka and Patrick Daly + (4) "LaTeX: Line by Line" by Antoni Diller + (5) "The LaTeX Graphics Companion" + (6) "The TeXbook" by Donald Knuth + +Larger Sample +------------- + +julesverne/basic/* + +This is a slightly more complicated, multi-file example. The text +is taken from the first five chapters of the Project Gutenberg edition +of Jules Verne's ``20,000 Leagues Under the Sea'' and is freely +redistributable as long as the complete text, 2000010.txt, accompanies +the other excerpts. The original document is also available here: + http://promo.net/pg/ + ftp://ibiblio.org/pub/docs/books/gutenberg/etext94/2000010.txt +This example can be built with either latex (to generate a .dvi file) or +with pdflatex (to generate a .pdf file). + +Gory, all-the-bells-and-whistles example: +------------ + +julesverne/bellswhistles/* + +This directory contains a reworked version of the jules-verne +example "thesis". However, all of the bells and whistles +provided by the gatech-thesis.cls class and associated styles +are exercised, along with some suggestions for thesis document +structuring. + +Features: + *) segregating preamble code into a document-specific style + *) How to easily generate OGS format complant documents + and prettier, "personal" copies. + *) Support for using hyperref (clickable links in the TOC, + when making a .pdf) + *) Using postscript versions of fonts other than Computer Modern, + like Times, Courier, etc. See extensive comments in + jules-verne.sty. + *) Using the listings package for including program code + in appendices + *) Using the add-on style gatech-thesis-gloss.sty for + generating a glossary + *) Using the add-on style gatech-thesis-losa.sty for + generating a "List of Symbols or Abbreviations" + *) Using the add-on style gatech-thesis-index.sty for + generating an index. Typically a GT thesis doesn't + have one of these, but the style is provided just in case. + *) Demonstrate the multivolume support, for those theses that + are over 2.5" thick (according to OGS Guidelines). + *) Using \include instead of \input to incorporate subsidiary + files into the main document. This lets you use \includeonly + to speed development of your document. + +This example requires some additional work to prepare your LaTeX +system, before you can compile it. See the local documentation, +julesverne/bellswhistles/00README. + +NOTE: The julesverne directory is not available in the CTAN version of +gatech-thesis. It can be obtained from the Georgia Tech version at +http://www.gradadmiss.gatech.edu/thesis.php + +Building the Examples +--------------------- + +To compile the examples, you must first install the gatech-thesis +files (see the INSTALL document). Also, the bells-and-whistles +example needs some additional preparation; see its local documentation +in julesverne/bellswhistels/00README. + +However, once you have all of the required items installed, you can +build the simplest example by executing the following commands: + +latex example-thesis.tex +bibtex example-thesis +latex example-thesis.tex +latex example-thesis.tex +dvips example-thesis + (generates a postscript file) + +To build the other examples, run the DO_* scripts. For instance, +if you are using a unix or unix-like system, cd to the julesverne/basic +directory and execute: + + ./DO_postscript.sh + +to generate a postscript output (or ./DO_pdf.sh to generate a pdf). +If, on the other hand, you are on a DOS-ish system, the execute +instead the file + + DO_postscript.bat + +(or DO_pdf.bat) To understand what the scripts do (especially the +ones in the julesverne/bellswhistles/ directory) you really ought +to read thru them... + +Choosing the GATECH-THESIS class +-------------------------------- + +To use the GATECH-THESIS class, make sure that the gatech-thesis.cls +file is on your TEXINPUTS search path and use the following command +at the start of your input file: + +\documentclass{gatech-thesis} + +To insure that gatech-thesis.cls is on your TEXINPUTS search path, +you can copy it into your localtexmf tree and then update the file +database; or you can place it into the same directory as your +thesis .tex files themselves. This is also described in the INSTALL +document. + +================================= +What the GATECH-THESIS class does +================================= + +The GATECH-THESIS class builds on the the standard LaTeX REPORT class, +and is accepted for use with Georgia Institute of Technology PhD +dissertations and Masters theses. The available commands are almost +identical to those of the REPORT class, so your best starting point +for documentation is the LaTeX manual written by Leslie Lamport. + +The key features of the class are: + +1) The primary modification to the REPORT class is the use of +pseudo-double-spacing, since Georgia Tech's rules are still designed +for typewriters. This is achieved by increasing the \baselinestretch +parameter to 1.33. The \baselinestretch is returned to a +single-spaced value of 1.00 for elements like tables, captions, and +footnotes and for all displayed text (quote, quotation, and verse +environments). + +2) Margins are 1.5" on left, 1" on top, right and bottom (headers & +footers 1/4" from body) + +3) Use 11 point by default; you can use the 10pt or 12pt options + +4) Page numbers are in the center at the bottom of the page + +5) Complete, correct front matter for Georgia Tech dissertations can +be generated. + +Options +--------------- + +There are a number of primary options. However, if called without +any options, the approved format -- 11pt, letterpaper, oneside, +doublespaced, normalmargins, final -- will be generated. + + +Any standard option for the LaTeX2e `report' class, including +`10pt', `11pt', `12pt', `oneside', `twoside', etc. is valid. + +`singlespaced', `oneandahalfspaced', or `doublespaced': + Set the entire document's default line spacing, except for + notes, which are single-spaced by default. + +`spacednotes': Let the line spacing of notes be determined + by the line spacing of the main document, instead of being + forced single-spaced. + +`normalmargins', `narrowmargins', `widemargins', `extrawidemargins' + or `oldmargins': normalmargins is the default and Georgia Tech- + approved format. Oldmargins is the OLD Georgia Tech format. + +`draft': Produce a draft copy (10pt font, double-sided, + double-spaced, normal margins, with the word ``DRAFT'' printed + at all four corners of every page, and current date printed in + a running header). + +`final': style uses the correct pseudo-double-spacing. This option + is the default and is redundant, but is included for symmetry. + +`hyperref': Indicates that the document will \usepackage{hyperref}. + This is a kludge, but I didn't want to explicitly *require* + hyperref, so we must indicate to gatech-thesis.cls whether it should + define certain hyperref commands as dummies. ALWAYS use this + option if you use the hyperref package. NEVER use this option if + you do not also use the hyperref package. + +The options are selected on the \documentclass line, e.g.: + +\documentclass[10pt,hyperref,draft]{gatech-thesis} + +Thus, the default options: + \documentclass[11pt,letterpaper,oneside, + doublespaced,normalmargins,final]{gatech-thesis} +will generate a document that conforms to the graduate studies office +and is identical to setting no options at all + \documentclass{gatech-thesis} + +Page Headers +------------ + +If you want to use page headers or footers other than the default +ones, you should try using ``fancyheadings.sty''. It is easy to use, +widely distributed, and well documented. However, the default headers +and footers are the Georgia Tech-approved ones. There are also +some interesting variations defined within the gatech-thesis.cls +itself (tcplain, gtthesis), but those should ONLY be used for personal +copies, and NOT for your official version. See the +julesverne/bellswhistles example. + +============ +Front matter +============ + +The other key service provided by this class is that it generates +correct front matter (title page, approval page, dedication, etc.) with +a fairly simple set of commands. The format of the front matter is +specified quite explicitly in the document ``Manual for Graduate Theses: +Georgia Institute of Technology'' distributed by Office of Graduate +Studies. + +A complete example of the use of the front matter commands can be +found in any of the examples distributed with the class +(example-thesis.tex or julesverne/basic or julesversion/bellswhistles). + +Declarations +------------ + +To use the front matter macros and environments, you must first +declare a number of text strings within the preamble of your document +(that is, these must be declared BEFORE the \begin{document} command.) + +\title{...} Dissertation title + +\author{...} Your name as registered with Georgia Tech + +\department{...} Specify the name of the graduate department. + \dept{...} synonym + +\degree{...} Title of your degree (e.g. ``Doctor of Philosophy'') + +\gradyear{...} Year your degree will be granted +\copyrightyear{...} synonym + +Any or all of the \*reader{}, \committeechair, or \principaladvis?r{} +commands may be ommitted -- but your signature page will look a little +silly if you don't include SOME names. + +\principaladvisor{...} Name of your thesis advisor +\principaladviser{...} if you prefer advisor spelled with an e) + +\committeechair{...} Name of your committee chairperson + +\firstreader{...} Name of other committee member +\secondreader{...} Name of other committee member +\thirdreader{...} Name of other committee member +\fourthreader{...} Name of other committee member +\fifthreader{...} Name of other committee member +\sixthreader{...} Name of other committee member + +\bibfiles{...} List of files to use when generating a bibliography + +\submitdate{...} Specify the ``month year'' in which dissertation + submitted + +\linespacing{...} Use this to override the default double-spacing. + NOT recommended; the default is approved by the + Graduate Studies Office. For draft/personal copies, + use the ``draft'' or ``singlespace'' options in your + documentclass statement, instead. +\spacing{...} compatibility synonym + +Switches +------------ + +Also, there are a number of ``true/false'' flags that can be used to +control the frontmatter generation. However, the defaults will result +in the approved Georgia Tech format. These flags, if specified, should +also be in the document preamble (BEFORE the \begin{document} command). + +\titlepagetrue or \titlepagefalse + - produce or don't produce a title page (TRUE by default) + +\signaturepagetrue or \signaturepagefalse + - produce or don't produce a signature page (TRUE by default) + +\copyrighttrue or \copyrightfalse + - place or don't place a copyright notice on the title page + (FALSE by default) + +\figurespagetrue or \figurespagefalse + - produce or don't produce a List of Figures page (TRUE by default) + +\tablespagetrue or \tablespagefalse + - produce or don't produce a List of Tables page (TRUE by default) + +\contentspagetrue or \contentspagefalse + - produce or don't produce a Table of Contents page + (TRUE by default) + +\bibpagetrue or \bibpagefalse + - produce or don't produce a Bibliography page (TRUE by default) + +\thesisproposaltrue or \thesisproposalfalse + - indicate ``Thesis Proposal'' or ``Thesis'' on the title page + (FALSE by default -- e.g. default is to say ``Thesis'') + +\dedicationheadingtrue or \dedicationheadingfalse + - display ``DEDICATION'' heading on the dedication page + (FALSE by default) + +\strictmarginstrue or \strictmarginsfalse + - if true, then obey the margin rules EVEN on the title and + signature page. Default TRUE and REQUIRED by Graduate Studies + Office, but not very appealing. (under ``oldmargins'' an extra + 50p spacing is added so that the title page looks like the + chapter headings. In any case, \strictmarginsfalse looks better + for personal copies but \strictmarginstrue is necessary for + official ones. + +\multivolumetrue or \multivolumefalse + - if true, indicates that the thesis will span multiple volumes. + triggers automatic generation of the first volume title page + (in addition to the ``entire work'' title page), but it''s up + to you to place the ``part{}'' commands in the appropriate + locations for volume 2, volume 3, etc. + +Frontmatter Environments +------------------------ +GATECH-THESIS provides a number of specialized environments for the +various frontmatter sections. Of course, you don't have to use them +all. The provided environments include + + dedication: \begin{dedication} + text here + \end{dedication} + + preface: \begin{preface} + text here + \end{preface} + + acknowledgements: \begin{acknowledgements} + text here + \end{acknowledgements} + + abstract: \begin{abstract} + text here + \end{abstract} + + summary: \begin{summary} + text here + \end{summary} + +And if that isn't enough for you, you can add your own: + \prefacesection{other-title}{...text...} +Note that these add-a-sections aren't true environments (they do not +have \begin{} and \end{} statements. So, for a ``forward'' section: + + \prefacesection{forward}{text here} + +The ``Preliminary'' environment +----------------------------- + +ALL of these preceeding environments MUST be enclosed within the +``preliminary'' environment, which ensures that page-numbering is +handled properly (e.g. no page number on the title page or signature +page, use lower case roman numerals to number the frontmatter pages, +reset the page numbers to start with arabic 1). Within this preliminary +environment, you put the environments and commands for the rest of +the front matter. + +Each environment makes its contents start on a new page. They also +emblazon the first page with a heading -- all except for the dedication +environment. For formatting the dedication page, you're on your own. +After all, the dedication is a kind of poetry and there's no predicting +the right way to format poetry. Actually, that's not entirely true: +according to the OGS Guidelines, the dedication material should be +centered vertically, so your text will be automatically centered. If +you wish to override this centerring behavior, just redefine the +dedicationtop and dedicationbottom commands: + \renewcommand{\dedicationtop}{\vspace*{\stretch{1}} + \renewcommand{\dedicationbottom{\vspace*{\stretch{3}} +Will position your dedication at about 1/4 of the way down the page. +Also, if you *want* an ugly ``DEDICATION'' heading emblazoned in +bold centered letters at the top of the page, you can use the +\dedicationheadingtrue switch within the preamble. + + \begin{preliminary} + The other environments go in here, along with + \contents + \end{preliminary} + +Table of Contents, Figures, and Tables +-------------------------------------- + +\contents + +At the appropriate point within the frontmatter, generate these tables +by issuing the \contents command. You can modify the look of the Table +of Contents with the following commands -- which should be executed +within the \begin{preliminary}...\end{preliminary} environment (see +below) but before the \contents command. + +If you also want a ``List of Symbols or Abbreviations'', you can +use the gatech-thesis-losa.sty add-on package: in your preamble, just + \usepackage{gatech-thesis-losa} + \losafiles{your-symbols-database} +And then sprinkle references to your symbols or abbreviations +within your text. Read the header in gatech-thesis-losa.sty itself +for more information, and see how the julesverne/bellswhistles/ +example does it (and don't forget to read the documenation on the +`gloss' package, which is used by gatech-thesis-losa.sty). You +also will need to run `bibtex' on the LOSA database; see the above +documentation. + +If you want a Glossary or ``List of Nomenclature'', you can +use the gatech-thesis-gloss.sty add-on package: in your preamble, just + \usepackage{gatech-thesis-gloss} + \glossfiles{glossary-database} +And then sprinkle references to your glossary terms +within your text. Read the header in gatech-thesis-gloss.sty itself +for more information, and see how the julesverne/bellswhistles/ +example does it (and don't forget to read the documenation on the +`gloss' package, which is used by gatech-thesis-gloss.sty). You +also will need to run `bibtex' on the glossary database; see the above +documentation. + +\labelchaptersintableofcontents + inserts an entry into the TOC that says ``CHAPTERS'' just + before Chapter 1. Not recommended. + +\labelappendicesintableofcontents + inserts an entry into the TOC that says ``APPENDICES'' just + before Appendix A. Not recommended. + +\setchaptertocdepth + set the default for how ``deep'' to number within chapters + in the table of contents. Defaults to subsections. + +\setappendixtocdepth + set the default for how ``deep'' to number within appendices + (chapter{}'s after the \appendix command} in the table of + contents. Defaults to Appendices only (no sections or subs) + +\settocdepth + temporarily change how ``deep'' to number in the table of + contents for current chapter/section. For example, you + usually include \section{}'s in the TOC (\setchaptertocdepth{1}) + but in chapter 5 you want to include subsection as well: + \chapter{This is Chapter 5}\settocdepth{2}. In chapter 6 the + default depth of 1 is reasserted. + +You should never need to call \setcounter{tocdepth}{..} directly. + +Use the following numbers with the various tocdepth commands above: + 0 = chapter only + 1 = chapter + sections + 2 = chapter, section, subsection + 3 = chapter, section, subsection, subsubsection + + +========== +End matter +========== + +Similarly, the end matter components (bibliography, vita, index, +afterward, etc) MUST be enclosed in a ``postliminary'' environment. + +GATECH-THESIS provides a few (okay, one) specialized environments for +the various endmatter sections, as well. + + vita: \begin{vita} + text here + \end{vita} + +And you want other sections (afterword, index), you can add them: + \postfacesection{other-title}{...text...} +Note that these add-a-sections aren't true environments (they do not +have \begin{} and \end{} statements. So, for a ``afterword'' section: + + \postfacesection{afterword}{text here} + +Additionally, if you want an index, you can use the add-on style +gatech-thesis-index.sty. Read the comments in that file, and +see how the julesverne/bellswhistles/ example does it. Basically, +you just include the following command in your preamble + \usepackage{gatech-thesis-index} +and sprinkle \index commands within your text. Don't forget to +read the documentation on the `index' package, on which the +gatech-thesis-index.sty is based. And you'll need to run makeindex +on the index database -- but that's all explained in the +documentation and demonstrated by the example. + +Bibliography +------------ + +Also, within the postliminary environment, you should issue the + \references +command in order to generate a bibliography in the Georgia Tech-approved +format. There are a few tricks to getting the \references command to +work properly, though: + + \bibpagetrue + \bibfiles{file1,file2,...} + +must be set in the preamble. (Actually, since bibpagetrue is the +default, you don't ACTUALLY need to specify it -- but don't say +\bibpagefalse and expect \references to work.) Also, + + \bibliographystyle{...} + +should be specified just after \begin{document}. Yes, it's a bit +confusing, but see the example files (example-thesis.tex, +julesverne/basic/jules-verne.tex, or +julesverne/bellswhistles/jules-verne.sty) and all will be clear. + +The updated GSO Guidelines is no longer very specific about the format +of bibliographic entries (although the example bibliography IS sorted). +I know of one thesis that was accepted using the``plain'' bibstyle +(which generates a sorted [not order-of-reference] bibliography). Then, +of course, there's the gatech-thesis.bst bibliography format, which +has been approved by the GSO. So, you'll want to use + + \bibliographystyle{gatech-thesis} +or + \bibliographystyle{plain} + +========= +Main Body +========= + +See any book on LaTeX's report class for more information, but the +following deserves special mention: + +``\appendix'' is a global mode switch that changes the way ``chapter'' +headings and TOC entries are generated. + \chapter{last chapter title} + \appendix + \chapter{first appendix title} +Note that you use the ``\chapter'' command to indicate new appendices -- +but only after switching the ``mode'' with the \appendix command. + +===================================================== +Other commands not found in the standard report style +===================================================== + +The GATECH-THESIS class also provides several other helpful environments +and commands. These include + +ignore{...} or comment{...} + Ignore the part of the file between { and } (can include + paragraph breaks); useful for commenting out large blocks. + +\begin{longquote}...\end{longquote}: + Single-spaced version of the `quote' environment + +\begin{longquotation}...\end{longquotation}: + Single-spaced version of the `quotation' environment. + +\begin{singlespaced}...\end{singlespaced}: + Format single-spaced paragraphs. + +\begin{oneandahalfspaced}...\end{oneandahalfspaced}: + Format 1 1/2-spaced paragraphs. + +\begin{doublespaced}...\end{doublespaced}: + Format double-spaced paragraphs. + +\begin{newspacing}{}...\end{newspacing}: + Format paragraphs with an interline spacing of `n'. + +\clearemptydoublepage, \clearplaindoublepage, \cleargtplaindoublepage: + Same as \cleardoublepage except that it sets the pagestyle of + any inserted blank page to `empty' `plain' or `gtplain', + respectively. + +Modifying the look of the document +---------------------------------- + +There are also a number of commands that can be used to change the +look. However, the default ``look'' is the one approved by +Georgia Tech's Graduate Studies Office, so don't use these +``look-altering'' commands for your official versions -- only for +personal copies. + +\setbodypagestyle{x}, where x = plain (the default and OGS approved), + empty, headings, myheadings, gtthesis, or tcplain. Avoid myheadings; + use the fancyheaders package instead. + +\setfrontpagestyle{x} - set pagestyle for frontmatter +\setbackpagestyle{x} - set pagestyle for endmatter + +The Graduate Studies Office approved pagestyle is plain for +the body, as well frontmatter and endmatter. (However, pages are +numbered with roman numberals in the frontmatter and automatically +switch to arabic numbers in the body and endmatter, as required by GSO. +Don't try to change the pagenumbering style). However: + + - `gtthesis' pagestyle adds a running header on each page + identifying the Chapter (and Section for twopage layouts). + This is a nice touch IMO for the body and endmatter, but + use it ONLY for personal copies. + + - note that you also need to add \pagestyle{gtthesis} + if you use \setbodypagestyle{gtthesis}. See the + julesverne/bellswhistles/jules-verne.sty for an example of + how to handle this for unofficial copies. + +Chapter headings and the TOC use ROMAN numerals, but the running headers +at the top of each page use ARABIC numbers for the Chapter number. +Thus, there are two separate formats that are used. + + \thegtchapter is used for ROMAN chapter numbers + \thechapter is used for ARABIC chapter numbers + +If you wish all chapter headings to use ROMAN, then just redefine +\thechapter in your document: + \renewcommand{\thechapter}{\thegtchapter} +Do the reverse if you want all ARABIC chapter numbers: + \renewcommand{\thegtchapter}{\thechapter} + +================================== +Installing the GATECH-THESIS class +================================== + +See the INSTALL file + +=========== +Final Notes +=========== + +For more information about the GATECH-THESIS class and its options, +look inside the class file itself -- it is heavily commented. Also, +the add-on styles contain helpful comments -- and you should read +all of the various READMEs and the comments within the ``root'' +example files: + example-thesis.tex + julesverne/basic/jules-verne.tex + julesverne/basic/00README + julesverne/bellswhistles/jules-verne.tex + julesverne/bellswhistles/jules-verne.sty + julesverne/bellswhistles/00README +Also, it wouldn't hurt to read the NEWS file, the NOTES file, and the +CHANGES file -- but I'd stay away from the ChangeLog unless you're a +real glutton for punishment. + +And read the COMPLIANCE file -- it is a blow-by-blow commentary +on the Office of Graduate Studies Style Manual for Theses, and +how it relates/is implemented by GATECH-THESIS. + +Backward Compatibility +---------------------- + +There are a number of commands available within gatech-thesis.cls that +are purely for backward compatibility with the older official +gt-thesis.sty style file that was previously provided by the Georgia +Tech Graduate Studies Office. In theory, one could take a disseration +that previously began: + + documentstyle{report} + \usepackage{gt-thesis.sty} + +and replace those two commands with + + documentclass{gatech-thesis} + +And it should ``just work''(tm). These backwards compatibility commands +are not recommended for NEW documents, and they are described only in +the comments inside the gatech-thesis.cls file itself. + +========================================= +MANIFEST -- This archive should contain +========================================= + +See these files: + MANIFEST + julesverne/basic/MANIFEST + julesverne/bellswhistles/MANIFEST + + diff --git a/obsolete/macros/latex/contrib/gatech-thesis/TODO b/obsolete/macros/latex/contrib/gatech-thesis/TODO new file mode 100644 index 0000000000..d5a7077e3d --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/TODO @@ -0,0 +1,5 @@ +Turn this whole thing into a .dtx file with actual documentation... + +Turn NOTES into a USEFUL TIPS...a chapter in 'COMPLIANCE'? I dunno; +there is an awful lot of docu duplication here. It'd really be nice +to consolidate it all into a single .tex (==.dvi,.pdf) file... diff --git a/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.bib b/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.bib new file mode 100644 index 0000000000..71733b3060 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.bib @@ -0,0 +1,138 @@ +@BOOK{knuth:tex, + AUTHOR = "Donald E. Knuth", + TITLE = "The {\TeX} Book", + PUBLISHER = {Addison-Wesley}, + YEAR = "1984", + ADDRESS = {Reading, Massachusetts}, + NOTE = {Reprinted as Vol. A of {\it Computers \& Typesetting\/}, 1986} +} + +@BOOK{knuth:pgm, + AUTHOR = "Donald E. Knuth", + TITLE = "{\TeX}: The Program", + PUBLISHER = {Addison-Wesley}, + YEAR = "1986", + VOLUME = {B}, + SERIES = {Computers \& Typesetting}, + ADDRESS = {Reading, Massachusetts} +} + +@TECHREPORT{knuth:web, + AUTHOR = {Donald E. Knuth}, + TITLE = {The {WEB} System for Structured Documentation, Version 2.3}, + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = {1983}, + NUMBER = {STAN-CS-83-980}, + ADDRESS = {Stanford, California}, + MONTH = Sep +} + +@ARTICLE{knuth:lp, + AUTHOR = {Donald E. Knuth}, + TITLE = {Literate Programming}, + JOURNAL = {The Computer Journal}, + YEAR = {1984}, + VOLUME = {27}, + NUMBER = {2}, + PAGES = {97--111}, + MONTH = May +} + +@TECHREPORT{knuth:tor, + AUTHOR = {Donald E. Knuth}, + TITLE = {A Torture Test for {\TeX}, Version 1.3}, + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = {1984}, + NUMBER = {STAN-CS-84-1027}, + ADDRESS = {Stanford, California}, + MONTH = Nov +} + +@ARTICLE{furuta:pctex, + AUTHOR = "Richard K. Furuta and Pierre A. MacKay", + TITLE = "Two {\TeX} Implementations for the {IBM PC}", + JOURNAL = "Dr. Dobb's Journal", + YEAR = "1985", + VOLUME = "10", + NUMBER = "9", + PAGES = "80--91", + MONTH = Sep +} + +@TECHREPORT{des:tex, + AUTHOR = {Jacques D{\'e}sarm{\'e}nien}, + TITLE = {How to Run {\TeX} in French}, + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = {1984}, + NUMBER = {SATN-CS-1013}, + ADDRESS = {Stanford, California}, + MONTH = Aug +} + +@TECHREPORT{samuel:tex, + AUTHOR = "Arthur L. Samuel", + TITLE = "First Grade {\TeX}: A Beginner's {\TeX} Manual", + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = "1983", + NUMBER = "SATN-CS-83-985", + ADDRESS = {Stanford, California}, + MONTH = Nov +} + +@BOOK{lamport:latex, + AUTHOR = {Leslie Lamport}, + TITLE = {{\LaTeX}: A Document Preparation System. User's Guide and + Reference Manual}, + PUBLISHER = {Addison-Wesley}, + YEAR = {1986}, + ADDRESS = {Reading, Massachusetts} +} + +@BOOK{spivak:ams, + AUTHOR = {Michael D. Spivak}, + TITLE = {The Joy of {\TeX}}, + PUBLISHER = {American Mathematical Society}, + YEAR = {1985} +} + +@MANUAL{patashnik:bibtex, + TITLE = "Bib{\TeX}ing", + AUTHOR = "Oren Patashnik", + ORGANIZATION = {Computer Science Department, Stanford University}, + ADDRESS = {Stanford, California}, + MONTH = jan, + YEAR = "1988", + NOTE = {Available in the Bib{\TeX} release} +} + +@MANUAL{patashnik:bibhax, + TITLE = {Designing Bib{\TeX} Styles}, + AUTHOR = {Oren Patashnik}, + ORGANIZATION = {Computer Science Department, Stanford University}, + MONTH = jan, + YEAR = {1988} +} + +@ARTICLE{fuchs:dvi0, + AUTHOR = "David Fuchs", + TITLE = "The Format of {\TeX}'s {DVI} Files Version 1", + JOURNAL = "TUGboat", + YEAR = "1981", + VOLUME = "2", + NUMBER = "2", + PAGES = "12--16", + MONTH = Jul +} + +@ARTICLE{fuchs:dvi, + AUTHOR = "David Fuchs", + TITLE = "Device Independent File Format", + JOURNAL = "TUGboat", + YEAR = "1982", + VOLUME = "3", + NUMBER = "2", + PAGES = "14--19", + MONTH = Oct +} + + diff --git a/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.pdf b/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.pdf new file mode 100644 index 0000000000..cc94bf9ba6 Binary files /dev/null and b/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.pdf differ diff --git a/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.tex b/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.tex new file mode 100644 index 0000000000..8c69657591 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/example-thesis.tex @@ -0,0 +1,181 @@ +\documentclass[12pt]{gatech-thesis} +\usepackage{amsmath,amssymb,latexsym,float,epsfig,subfigure} + +%% +%% This example is adapted from ucthesis.tex, a part of the +%% UCTHESIS class package... +%% +\title{The Elements of Thesis} %% If you want to specify a linebreak + %% in the thesis title, you MUST use + %% \protect\\ instead of \\, as \\ is a + %% fragile command that \MakeUpperCase + %% will break! +\author{Perry H. Disdainful} +\department{School of Industrial and Systems Engineering} + +%% Can have up to six readers, plus principaladvisor and +%% committeechair. All have the form +%% +%% \reader{Name}[Department][Institution] +%% +%% The second and third arguments are optional, but if you wish to +%% supply the third, you must supply the second. Department defaults +%% to the department defined above and Institution defaults to Georgia +%% Institute of Technology. + +\principaladvisor{Professor Alpha Betic} +\committeechair{Professor Ignatius Arrogant} +\firstreader{Professor General Reference}[School of Mathematics] +\secondreader{Professor Ivory Insular}[Department of Computer Science and Operations Research][North Dakota State University] +\thirdreader{Professor Earl Grey} +\fourthreader{Professor John Smith} +\fifthreader{Professor Jane Doe}[Another Department With a Long Name][Another Institution] +%\setcounter{secnumdepth}{2} +\degree{Doctor of Philosophy} + +%% Set \listmajortrue below, then uncomment and set this for +%% interdisciplinary PhD programs so that the title page says +%% ``[degree] in [major]'' and puts the department at the bottom of +%% the page, rather than saying ``[degree] in the [department]'' + +%% \major{Algorithms, Combinatorics, and Optimization} + +\copyrightyear{2010} +\submitdate{August 2010} % Must be the month and year of graduation, + % not thesis approval! As of 2010, this means + % this text must be May, August, or December + % followed by the year. + +%% The date the last committee member signs the thesis form. Printed +%% on the approval page. +\approveddate{1 July 2010} + +\bibfiles{example-thesis} + +%% The following are the defaults +%% \titlepagetrue +%% \signaturepagetrue +%% \copyrightfalse +%% \figurespagetrue +%% \tablespagetrue +%% \contentspagetrue +%% \dedicationheadingfalse +%% \bibpagetrue +%% \thesisproposalfalse +%% \strictmarginstrue +%% \dissertationfalse +%% \listmajorfalse +%% \multivolumefalse + +\begin{document} +\bibliographystyle{gatech-thesis} +%% +\begin{preliminary} +\begin{dedication} +\null\vfil +{\large +\begin{center} +To myself,\\\vspace{12pt} +Perry H. Disdainful,\\\vspace{12pt} +the only person worthy of my company. +\end{center}} +\vfil\null +\end{dedication} +\begin{preface} +Theses have elements. Isn't that nice? +\end{preface} +\begin{acknowledgements} +I want to ``thank'' my committee, without whose ridiculous demands, I +would have graduated so, so, very much faster. +\end{acknowledgements} +% print table of contents, figures and tables here. +\contents +% if you need a "List of Symbols or Abbreviations" look into +% gatech-thesis-gloss.sty. +\begin{summary} +Why should I provide a summary? Just read the thesis. +\end{summary} +\end{preliminary} +%% +\chapter{Introduction} + +Every dissertation should have an introduction. You might not realize +it, but the introduction should introduce the concepts, backgrouand, +and goals of the dissertation. + +\section{Concepts} + +This is where we talk about the concepts behind the dissertation. + +\subsection{Primary Concept} + +This is the primary concept. + +\subsection{Secondary Concept} + +This is the secondary concept. + +\subsubsection{Even more secondary} + +This is really not all that important. + +\begin{table} +\caption{A table, centered.} +\begin{center} +\begin{tabular}{|l|r|} + \hline +Title & Author \\ +\hline +War And Peace & Leo Tolstoy \\ +The Great Gatsby & F. Scott Fitzgerald \\ \hline +\end{tabular} +\end{center} +\end{table} +%% +\chapter{Previous Work} + +Some other research was once performed. + +\begin{figure} +\caption{A first figure.} +\end{figure} + +\begin{figure} +\caption{A second figure.} +\end{figure} +%% +\chapter{Conclusion} + +\nocite{*} +%% We need this since this file doesn't ACTUALLY \cite anything... +%% +\appendix +\chapter{Some Ancillary Stuff} + +Ancillary material should be put in appendices, which +appear just before the bibliography. + +\begin{postliminary} +\references +\postfacesection{Index}{% +%% ... generate an index here +%% look into gatech-thesis-index.sty +} +\begin{vita} +Perry H. Disdainful was born in an insignificant town +whose only claim to fame is that it produced such a fine +specimen of a researcher. +\end{vita} +\end{postliminary} + +\begin{abstract} + This is the abstract that must be turned in as hard copy to the + thesis office to meet the UMI requirements. It should \emph{not} be + included when submitting your ETD. Comment out the abstract + environment before submitting. It is recommended that you simply + copy and paste the text you put in the summary environment into this + environment. The title, your name, the page count, and your + advisor's name will all be generated automatically. +\end{abstract} + +\end{document} diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-gloss.sty b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-gloss.sty new file mode 100644 index 0000000000..0f7ba1ff3f --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-gloss.sty @@ -0,0 +1,101 @@ +%% gatech-thesis-gloss.sty - support code for creating glossaries +%% depends on gloss.sty, so it is not included by default in the +%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies +%% +%% To use this package, all you need do is include +%% \usepackage{gatech-thesis-gloss} +%% \glossfiles{} +%% in your preamble, and the glossary will be automatically generated +%% and included in the frontmatter. Of course, you need actual +%% *entries* in the glossary file -- which must end in .bib -- and you +%% need actual citations to those entries within your bodytext, like this: +%% \gloss{key}. +%% Note that \gloss{} typesets the from the entry of +%% the glossfile within the text, so there''s no need to do this: +%% (BAD) word\gloss{keyforword} +%% Read the gloss.sty documentation for more info, but basically +%% gatech-thesis-gloss.sty makes it simple: +%% 1. insert the two commands above into your preamble +%% 2. create a glossfile with your glossary definitions +%% 3. sprinkle \gloss{} citations in your text +%% 4. run ``bibtex'' on the .gls.aux file created +%% after the first ``latex'' run. (But don''t include the +%% .aux extension. So say ``bibtex .gls'' You +%% can do this at the same time you run ``bibtex'' for your +%% references. +%% 5. run ``latex'' twice more +%% +\NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{gatech-thesis-gloss} + [2002/08/08 Glossary support for gatech-thesis.cls] +\@ifclassloaded{gatech-thesis}{}{ + PackageError{This style can only be used with the gatech-thesis class} +} +\RequirePackage[refpages]{gloss} + +\newif\ifglossarypage +\glossarypagetrue% why use this package if you're not going to USE it? + +\makegloss + +\newcommand{\glossfiles}[1]% + {\ifx\empty#1\empty\else\gdef\@glossfiles{#1}\fi} +\def\@glossfiles{} + +\newcommand{\gtglossname}{} +\newcommand{\glscontentlinestring}{} +\newcommand{\glspdfbookmarkstring}{} + +\newcommand{\setglossstring}[1]{% + \renewcommand{\gtglossname}{#1} + \renewcommand{\glossname}{\Makeuppercase{#1}} + \renewcommand{\glscontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\glspdfbookmarkstring}{#1} +} +% \setglossstring{List of Nomenclature}% ??? +\setglossstring{Glossary} + +\renewcommand{\glossheading}[1]{} % don't print subsection headings ("A", "B", ...) +\renewenvironment{glosslist} + {\begin{singlespaced}\begin{list}{\relax}{% + \def\makelabel##1{##1\hfil}% + \setlength{\labelsep}{1em}% + \setlength{\labelwidth}{\glosshang}% + \addtolength{\labelwidth}{-\labelsep}% + \setlength{\itemindent}{0em}% + \setlength{\leftmargin}{\glosshang}}} + {\end{list}\end{singlespaced}} + +\renewcommand\gls@section{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\glossname}% + \@mkboth{\scshape\MakeUppercase\glossname}% + {\scshape\MakeUppercase\glossname}% +} +\renewenvironment{thegloss} + {\gls@section + \def\+##1+{}% + \@beginparpenalty\@M}% + {\if@restonecol\twocolumn\fi% + \stopglosslist} + +\renewcommand{\do@glossarypage}{% + \ifglossarypage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \addvspace{\gt@tocentryskip@value} + \phantomsection% + \addcontentsline{toc}{chapter}{\glscontentlinestring} + \printgloss{\@glossfiles} + }% + \newpage + \fi +} diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.ist b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.ist new file mode 100644 index 0000000000..3616b1fcca --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.ist @@ -0,0 +1,7 @@ +% MakeIndex style file gatech-thesis-index.ist +heading_prefix "{\\bfseries\\hfil " % Insert in front of letter +heading_suffix "\\hfil}\\nopagebreak\n" % Append after letter +headings_flag 1 % Turn on headings {uppercase} +delim_0 "\\dotfill " +delim_1 "\\dotfill " +delim_2 "\\dotfill " diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.sty b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.sty new file mode 100644 index 0000000000..61b9cd9d67 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-index.sty @@ -0,0 +1,139 @@ +%% gatech-thesis-index.sty - support code for creating an index +%% depends on index.sty, so it is not included by default in the +%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies. +%% It also depends on the multicol package. +%% +%% Note that index.sty is included in the ``camel'' package if you +%% are using MikTeX. +%% +%% To use this package, all you need do is include +%% \usepackage{gatech-thesis-index} +%% in your preamble, and +%% \gtindex +%% just after your vita section, but within the postliminary environment +%% of your bodytext. The, the index will be automatically +%% and included in the location specified, and added to the table of +%% contents. Of course, you need actual index references within your +%% main text like this: +%% foo\index{foo} +%% Read the index.sty documentation for more info, but basically +%% gatech-thesis-gloss.sty makes it simple: +%% 1. insert the \usepackage and \gtindex commands into your document +%% 2. sprinkle \index{} citations in your text +%% 3. run ``makeindex'' on the .idx file created +%% after the first ``latex'' run, like this: +%% makeindex -s gatech-thesis-index.ist .idx +%% This will create .ind (the gatech-thesis-index.ist +%% file is a format specification for the index). If you want +%% to customize the index format, copy gatech-thesis-index.ist to +%% ``myformat.ist'' and change the copy. Use ``-s myformat.ist'' +%% instead of gatech-thesis-index.ist. +%% You can run the makeindex command at the same time you run ` +%% `bibtex'' for your references and/or glossary. +%% 4. run ``latex'' twice more (the same ``twice more'' needed for +%% bibtex and gatech-thesis-gloss.sty) +%% +\NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{gatech-thesis-index} + [2002/08/08 Index support for gatech-thesis.cls] +\@ifclassloaded{gatech-thesis}{}{ + PackageError{This style can only be used with the gatech-thesis class} +} +\RequirePackage{index} +\RequirePackage{multicol} + +\newif\if@proofmode +\@proofmodefalse + +\DeclareOption{proofmode}{% + \if@draft % This is an internal gatech-thesis variable! + \@proofmodetrue % this is an internal index.sty variable + \else + \PackageWarn{option `proofmode' can't be used in 'final' mode.} + \@proofmodefalse + \fi +} +\DeclareOption{showidx}{% + \if@draft % This is an internal gatech-thesis variable! + \@proofmodetrue % this is an internal index.sty variable + \else + \PackageWarn{option `showidx' can't be used in 'final' mode.} + \@proofmodefalse + \fi +} +\ProcessOptions + +\newif\ifindexpage +\indexpagetrue% why use this package if you're not going to USE it? + +\if@proofmode + \proofmodetrue% pass option to index package +\else + \proofmodefalse% ditto +\fi + +\newcommand{\gtindexname}{} +\newcommand{\idxcontentlinestring}{} +\newcommand{\idxpdfbookmarkstring}{} + +\newcommand{\setindexstring}[1]{% + \renewcommand{\gtindexname}{#1} + \renewcommand{\indexname}{\Makeuppercase{#1}} + \renewcommand{\idxcontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\idxpdfbookmarkstring}{#1} +} +\setindexstring{Index} +% if you want to change the name of the index, do it in the preamble +% once the document begins, it''s too late. +\AtBeginDocument{% + \newindex{default}{idx}{ind}{Index} +} + +\renewenvironment{theindex}{% + \edef\indexname{\the\@nameuse{idxtitle@\@indextype}}% + \if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \chapter*{\MakeUppercase{\gtindexname}} + \@mkboth{\scshape\MakeUppercase\indexname}% + {\scshape\MakeUppercase\indexname}% + \let\item\@idxitem + \columnseprule \z@ + \columnsep 35\p@ + \begin{multicols}{2}[% + \ifx\index@prologue\@empty\else + \index@prologue + \bigskip + \fi]% + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax +}{\end{multicols}% + \if@restonecol + \onecolumn + \else + \clearpage + \fi +} + +\renewcommand{\do@indexpage}{% + \ifindexpage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}{\idxcontentlinestring} + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \printindex + }% + \newpage + \fi +} + +\newcommand{\gtindex}{\do@indexpage} +\newcommand{\bs}{\symbol{'134}}% print backslash +\newcommand{\gtCom}[1]{\texttt{\bs#1}\index{#1@\texttt{\bs#1}}} +\newcommand{\gtProg}[1]{\texttt{#1}\index{#1@\texttt{#1} program}} diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.bst b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.bst new file mode 100644 index 0000000000..022548eec9 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.bst @@ -0,0 +1,264 @@ +% gatech-thesis-losa.bst: This style is used by the gatech-thesis-losa.sty +% style to provide support for a 'List of Symbols or Abbreviations' +% within the context of gatech-thesis.cls. The advantages of +% creating a separate .bst file are that the formatting of the +% losa glossary can be different from that of other "real" glossaries +% which are also based on the gloss.sty package. +% +% This file was adapted from the file `glsplain.bst' taken from the +% gloss package. +% +% Original information: +% ORIG: +% ORIG: (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos. +% ORIG: All Rights Reserved. +% ORIG: +% ORIG: This file is part of the gloss distribution release 1.5.2 +% ORIG: -------------------------------------------------------- +% ORIG: +% ORIG: This file can be redistributed and/or modified under the terms +% ORIG: of the LaTeX Project Public License Distributed from CTAN +% ORIG: archives in directory macros/latex/base/lppl.txt; either +% ORIG: version 1 of the License, or any later version. +% ORIG: +% ORIG: % History of v0.1 +% ORIG: % ~~~~~~~~~~~~~~~ +% ORIG: % 1997/06/25 (JLDdA) Original version, by Jose Luis Diaz de Arriba (and an +% ORIG: % unindicted co-conspirator) +% ORIG: % History of v1.0 +% ORIG: % ~~~~~~~~~~~~~~~ +% ORIG: % 1999/07/29 (JBL) Rewritten in full. Now it warns if a required field is +% ORIG: % missing, conforms the new gloss.sty syntax, and +% ORIG: % writes headings for each letter. The heading, +% ORIG: % short, and group fiels have been added. +% ORIG: % History of v1.1-1.4 +% ORIG: % ~~~~~~~~~~~~~~~~~~~ +% ORIG: % 1999/10/10 (JBL) Lots of changes. +% ORIG: % History of v.1.5 +% ORIG: % ~~~~~~~~~~~~~~~~ +% ORIG: % 2001/08/02 (JBL) Added the sort-short field for compatility +% ORIG: % with glsshort.bst + +STRINGS { last.heading s t star.period} + +ENTRY + { word + sort-word + definition + heading + group + short + sort-short + } + {} + { ucword } + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {has.period} +{ duplicate$ + add.period$ = +} + +FUNCTION {str.length} +{ 't := + #0 + { t empty$ not } + { t #2 global.max$ substring$ + 't := + #1 + + } + while$ +} + + +FUNCTION {upper.first} +{ duplicate$ + #1 text.prefix$ + duplicate$ + "u" change.case$ + 's := + str.length + #1 + entry.max$ substring$ + s swap$ * +} + +FUNCTION {check.required} +{ 's := + duplicate$ empty$ + { "Empty " s * " in " * cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {push.sortword} +{ sort-word empty$ + { word field.or.null } + 'sort-word + if$ +} + +FUNCTION {check.alpha} +{ duplicate$ + purify$ + empty$ + { "Non alphabetical " cite$ * + " entry without group field" * warning$ } + 'skip$ + if$ +} + +FUNCTION {push.heading} +{ heading empty$ + { word field.or.null + #1 text.prefix$ + check.alpha + } + 'heading + if$ +} + +FUNCTION {begin.entry} +{ newline$ + "\begin{losaitem" star.period * write$ + "}{" write$ + cite$ write$ + "}{" write$ + word write$ + "}{" write$ + ucword write$ + "}{" write$ + short field.or.null write$ + "}" write$ + newline$ +} + +FUNCTION {end.entry} +{ "\end{losaitem" star.period "}" * * write$ + newline$ +} + +FUNCTION {set.vars} +{ word field.or.null + "word" check.required + upper.first + 'ucword := +} + + +FUNCTION {losadef} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later writing + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {gd} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {default.type} { losadef } + +FUNCTION {presort} +{ set.vars + push.sortword + group empty$ + { purify$ "L" } + 'group + if$ % sort-word heading + swap$ * % heading * sort-word + "l" change.case$ + 'sort.key$ := +} + +FUNCTION {begin.thelosa} +{ "\begin{thelosa}" + write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +FUNCTION {end.thelosa} +{ newline$ + "\end{thelosa}" write$ + newline$ +} + +FUNCTION {call.entries} + { group empty$ + 'push.heading + { heading empty$ + 'skip$ + { "Ignoring heading because there is group field in " + cite$ * + warning$ + } + if$ + group + } + if$ + "u" change.case$ + duplicate$ + group empty$ + 'skip$ + { "$$$$$" * } + if$ + duplicate$ + last.heading = + { pop$ pop$ } + { newline$ + 'last.heading := + group empty$ + { "\losaheading{" } + { "\losagroup{" } + if$ + swap$ * "}" * + write$ + newline$ + } + if$ + call.type$ + } + +READ + +ITERATE {presort} + +SORT + +EXECUTE {begin.thelosa} + +ITERATE {call.entries} + +EXECUTE {end.thelosa} + + diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty new file mode 100644 index 0000000000..7b6cc1626f --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty @@ -0,0 +1,156 @@ +%% gatech-thesis-losa.sty - support code for creating a 'List of +%% Symbols or Abbreviations" +%% +%% depends on gloss.sty, so it is not included by default in the +%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies +%% +%% To use this package, all you need do is include +%% \usepackage{gatech-thesis-losa} +%% \losafiles{} +%% in your preamble, and the LOSA will be automatically generated +%% and included in the frontmatter. Of course, you need actual +%% *entries* in the glossary file -- which must end in .bib -- and you +%% need actual citations to those entries within your bodytext, like this: +%% \losa{key}. +%% Note that \losa{} typesets the from the entry of +%% the losafile within the text, so there''s no need to do this: +%% (BAD) word\losa{key-for-word} +%% Again, you should read the gloss.sty documentation for more info, but +%% basically gatech-thesis-losa.sty makes it simple: +%% 1. insert the two commands above into your preamble +%% 2. create a database with your glossary definitions +%% 3. sprinkle \losa{} citations in your text +%% 4. run ``bibtex'' on the .losa.aux file created +%% after the first ``latex'' run. (But don''t include the +%% .aux extension. So say ``bibtex .losa'' You +%% can do this at the same time you run ``bibtex'' for your +%% references. +%% 5. run ``latex'' twice more +%% +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{gatech-thesis-losa} + [2002/08/08 List of Symbols support for gatech-thesis.cls] +\@ifclassloaded{gatech-thesis}{}{ + PackageError{This style can only be used with the gatech-thesis class} +} +\RequirePackage[refpages]{gloss} + +\newif\iflosapage +\losapagetrue % why use this package if you're not going to USE it? + +\newcommand{\losafiles}[1]% + {\ifx\empty#1\empty\else\gdef\@losafiles{#1}\fi} +\def\@losafiles{} + +\newcommand{\losaname}{} +\newcommand{\gtlosaname}{} +\newcommand{\losacontentlinestring}{} +\newcommand{\losapdfbookmarkstring}{} + +\newcommand{\setlosastring}[1]{% + \renewcommand{\gtlosaname}{#1} + \renewcommand{\losaname}{\Makeuppercase{#1}} + \renewcommand{\losacontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\losapdfbookmarkstring}{#1} +} +\setlosastring{List of Symbols or Abbreviations} + +\makegloss +\newgloss{losa}{.losa}{\losaname}{gatech-thesis-losa} +\newlength{\losahang} +\setlength{\losahang}{2cm} + +\newcommand\setlosagroup[1]{\@namedef{gls@group@#1}} +\newcommand{\losaheading}[1]{} % don't print subsection headings ("A", "B", ...) +\newcommand{\losagroup}[1]{% + \expandafter\losaheading\csname gls@group@#1\endcsname} + +% make the '\losa[otheroptions]{}' command a synonym for +% '\gloss[losa,otheroptions]{}' +\newcommand\losa{\protect\losa@gloss@i} +\def\losa@gloss@i{% + \@bsphack + \begingroup + \catcode`\ =9 + \@ifnextchar[{\losa@gloss@iia}{\losa@gloss@iib[]}} +\def\losa@gloss@iia[#1]{% + \endgroup + \gls@gloss@iii{losa,#1}} +\def\losa@gloss@iib[#1]{% #1 is empty + \endgroup + \gls@gloss@iii{losa}} + +% and alternate forms +\newcommand\Losa[1]{\losa[Word]{#1}} +\newcommand\onlylosa[1]{\losa[nocite]{#1}} + +\newenvironment{losalist} + {\begin{singlespaced}\begin{list}{\relax}{% + \def\makelabel##1{##1\hfil}% + \setlength{\labelsep}{1em}% + \setlength{\labelwidth}{\losahang}% + \addtolength{\labelwidth}{-\labelsep}% + \setlength{\itemindent}{0em}% + \setlength{\leftmargin}{\losahang}}} + {\end{list}\end{singlespaced}} + +\newenvironment{losaitem}[4]% + {\ifgls@list + \expandafter\let\expandafter\gls@thispage % relax if undefined + \csname glsp@\gls@name::#1\endcsname + \item[% + \gls@raisedlink{\hyper@anchorstart{\gls@name::#1}\hyper@anchorend}% + \gls@label{#2}{#3}{#4}]% + \begingroup + \let\protect\noexpand + \immediate\write\@auxout{% + \string\gls@cite{\gls@name::#1}{#2}{#3}{#4}}% + \endgroup + \else + \xdef\gls@a{\noexpand\begin{\@currenvir}}% + \endgroup + \begin{losalist}% + \gls@listtrue + \def\stopglosslist{\end{losalist}}% + \gls@a{#1}{#2}{#3}{#4}% + \fi + \ignorespaces} + {.\@@par} + +\expandafter\let\csname losaitem*\endcsname\losaitem +\expandafter\let\csname endlosaitem*\endcsname\@@par + +\newcommand\losa@section{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\losaname}% + \@mkboth{\scshape\MakeUppercase\losaname}% + {\scshape\MakeUppercase\losaname}% +} +\newenvironment{thelosa} + {\losa@section + \def\+##1+{}% + \@beginparpenalty\@M}% + {\if@restonecol\twocolumn\fi% + \stopglosslist} + +\renewcommand{\do@losapage}{% + \iflosapage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \addvspace{\gt@tocentryskip@value} + \phantomsection% + \addcontentsline{toc}{chapter}{\losacontentlinestring} + \printgloss[losa]{\@losafiles} + }% + \newpage + \fi +} diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-patch.sty b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-patch.sty new file mode 100644 index 0000000000..3593840f5d --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-patch.sty @@ -0,0 +1,12 @@ +\ProvidesFile{gatech-thesis-patch.sty}[2010/07/02 1.8 (Mitchel T. Keller)] +\gtthesis@checkVersion{1.8} +{\typeout{^^J% + ***^^J% + *** This is a patch for `gatech-thesis.cls' version 1.8, but^^J% + *** you're using version \gtthesisversion.^^J% + ***^^J% + *** Patch file not loaded.^^J% + ***^^J}% + \endinput +} +\typeout{gatech-thesis-patch loaded} diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.bst b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.bst new file mode 100644 index 0000000000..b076cdcfcd --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.bst @@ -0,0 +1,1137 @@ +% Georgia Tech thesis bibliography style (08-Aug-2002 version) +% like plain.bst, but: +% +% numeric labels, sorted, IEEE abbreviations (vol. not volume, +% no. not number, authors' first names abbreviated), quotes +% around article titles, commas separate all fields except after +% book titles and before "notes". Authors names typeset +% in small caps, surname first. +% +% Based on IEEE Transactions bibliography style (29-Jan-88 version) +% Differs from ieeetr.bst by: +% sorted, small cap author names, authors' first names abbreviated + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.quote after.sentence + after.quoted.block after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.quote := + #3 'after.sentence := + #4 'after.quoted.block := + #5 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.quote = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.quoted.block = + { write$ + newline$ + "\newblock " write$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {blank.sep} +{ after.quote 'output.state := +} + +FUNCTION {fin.entry} +{ output.state after.quoted.block = + 'skip$ + 'add.period$ + if$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { output.state after.quote = + { after.quoted.block 'output.state := } + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +%CSW: scapify copied from asm.bst +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + %CSW: surname first, small caps + %{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ scapify 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em et~al.}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ",''" * } + if$ +} + +FUNCTION {format.title.p} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ".''" * } + if$ +} + +FUNCTION {n.dashify} +{ '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$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no.~" } + { "No.~" } + if$ + number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ '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 {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { "vol.~" volume * } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { "in " booktitle emphasize * + editor empty$ + 'skip$ + { " (" * format.editors * ")" * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + output.state after.block = + { type "t" change.case$ } + { type "l" change.case$ } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + %CSW: plain.bst has the following line, unsrt.bst doesn't... + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.paddress} +{ address empty$ + { "" } + { "(" address * ")" * } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/}" * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { journal emphasize "journal" output.check + format.volume output + month empty$ + { format.number output } + 'skip$ + if$ + format.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + title empty$ + { "empty title in " cite$ * warning$ + howpublished new.sentence.checka + } + { howpublished empty$ not + address empty$ month empty$ year empty$ and and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + format.addr.pub "publisher" output.check + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.addr.pub "publisher" output.check + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.paddress output + format.pages output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ + { howpublished new.sentence.checka } + { howpublished empty$ not + month empty$ year empty$ and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + format.paddress output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title.p "title" output.check + blank.sep + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications ACM"} + +MACRO {ibmjrd} {"IBM J. Research and Development"} + +MACRO {ibmsj} {"IBM Systems~J."} + +MACRO {ieeese} {"IEEE Trans. Software Engineering"} + +MACRO {ieeetc} {"IEEE Trans. Computers"} + +MACRO {ieeetcad} + {"IEEE Trans. Computer-Aided Design"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM J. Computing"} + +MACRO {tocs} {"ACM Trans. Computer Systems"} + +MACRO {tods} {"ACM Trans. Database Systems"} + +MACRO {tog} {"ACM Trans. Graphics"} + +MACRO {toms} {"ACM Trans. Mathematical Software"} + +MACRO {toois} {"ACM Trans. Office Information Systems"} + +MACRO {toplas} {"ACM Trans. Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CSW: sorting functions copied from plain.bst +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CSW: end sorting functions copied from plain.bst +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ 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$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.cls b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.cls new file mode 100644 index 0000000000..b429446768 --- /dev/null +++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis.cls @@ -0,0 +1,3150 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% GATECH-THESIS.CLS (v1.7) +%% Copyright (c) 2002 by Charles S. Wilson. All rights reserved. +%% See licensing information, below. +%% +%% Last Update: V1.8 (2 July 2010) by Mitchel T. Keller +%% +%% Heritage: +%% UT-THESIS.CLS (v1.8) +%% -- by Francois Pitt (1999 Dec 10) +%% -- as modified by Aichen Low, 2000 Jan 14 +%% GTthesis.sty +%% -- as adapated from suthesis.sty by Ahmed Gheith +%% -- and modified by Joonwon Lee, Eilin Tien Lin, Wei Lui +%% -- and as modified by Kalyan Perumalla, 1999 Nov 18 +%% gt-thesissty.sty +%% -- by Aichen Low, 2000 Jan 17 +%% +%% All of these sources were combined to produce a single, unified +%% class file for Georgia Tech PhD Theses. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\gtthesisversion}{1.8}% current version number +\newcommand{\gtthesisupdated}{2010/07/02}% date of last change(s) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This program is free software; you can redistribute it and/or +%% modify it under the terms of the GNU General Public License +%% as published by the Free Software Foundation; either version 2 +%% of the License, or (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program; if not, write to the Free Software +%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +%% +%% See the COPYING file for license information. +%% +%% Note that the files contained within ThesisProposal.tar.gz have +%% their own licence. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% REVISION HISTORY: +%% +%% v1.8: 2010-Jul-02 Mitchel T. Keller +%% * Change font used in Table of Contents for volumes (parts). +%% * Add support for abstract page meeting UMI requirements. +%% * Fix bug that prevented hyperref and overpic packages from +%% working together properly. +%% v1.7: 2006-Jan-24 Mitchel T. Keller +%% * Remove double spacing of thesis title as per July 2005 +%% manual. +%% * Reduce font size of thesis title, chapter titles, author, +%% and volume titles. +%% * Update approval page to comply with electronic submission +%% requirements (no signature line, all committee members' +%% affiliations listed, approval date printed on page). +%% v1.6: 2003-Apr-14 Charles S. Wilson +%% * caption labels: OGS requires (e.g.) 'Figure 2:' to be in +%% same font as rest of caption (bold ok, changing font not ok) +%% * make vita double-spaced +%% * fixed a bug in Signature page when no Committee Chair. Thanks +%% Arnaud Cottet for reporting it. +%% * Changed one-and-a-half spacing to better match the description +%% in The LaTeX Companion (use 1.25, not 1.33). +%% v1.5: 2002-Aug-17 Charles S. Wilson +%% * COMPLIANCE: new documentation +%% * caption labels: make them prettier +%% * Change gatech-thesis-gloss.sty to handle real glossaries; +%% * NEW: gatech-thesis-losa.sty now handles the List of Symbols +%% v1.4: 2002-Aug-03 Charles S. Wilson +%% * Better handling of equation, table, and figure numbering +%% (added David Carlisle's \@removefromreset macro, and use +%% that instead of the previous kludge.) +%% * Corrected problem with two-sided printing: the even-numbered +%% (left hand) page between the end of \preliminary and the +%% beginning of the first chapter was not printed. This really +%% messed up duplex printers. FIXED. +%% * Corrected problem when vita (or whatever the last section +%% before \end{postliminary}) was \included instead of \inputted. +%% * Signature page no longer prints empty lines for non-existent +%% committee members. Also, uses two columns if more than 4 +%% members, per the Graduate Office Guidelines. AND we no longer +%% print its page number +%% * Now uses (requires) the calc package, which is part of the +%% standard latex installation. +%% * Automatically center the dedication (but see the new functions +%% \dedicationtop and \dedicationbottom +%% * Correctly doublespace the title on both titlepage and signaturepage +%% * page numbering defaults to a centered footer, as per the new +%% Graduate Office guidelines +%% * Added proper handling for multiple volumes in a single thesis +%% * Added support for the add-on styles ``gatech-thesis-gloss.sty'' +%% and ``gatech-thesis-index.sty''. +%% v1.3: 2002-Jan-13 Charles S. Wilson +%% * Renamed to gatech-thesis at request of the CTAN folks. +%% v1.2: 2001-May-01 Charles S. Wilson +%% * Minor tweaks to conform to latest GSO requirements +%% v1.1: 2001-Apr-29 Charles S. Wilson +%% * Fixup to work nicely with pdflatex and hyperref +%% v1.0: 2001-Jan-24 Charles S. Wilson +%% * Initial release: merged UT-THESIS.STY with GTthesis.sty +%% and gt-thesissty.sty. +%% +%% KNOWN BUGS: +%% +%% - FIXED: (sortof) [On ``dedication'' and ``acknowledgements'' +%% causing an error when they both appear on the same page.] +%% GT style doesn't allow these to appear on the same page, +%% so \begin{dedication}...\end{dedication} will ALWAYS +%% appear on its own page. Ditto acknowledgements. +%% +%% - I didn't fix this; GATECH-THESIS.CLS has inherited this bug +%% from UT-THESIS.CLS: [On missing page headers for float pages.] +%% ``teTex'' under Linux fails in precisely the same way as does +%% ``MikTeX'', so there's something clearly wrong somewhere, but +%% I don't know where. It only fails on odd-numbered pages (if +%% you remove enough text so that the page floats back to an +%% even-numbered page, the page header is correct)! +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% The following notice and changelog is included to satisfy the +%% distribution requirements explained below, but much of it no +%% longer applies. GATECH-THESIS.CLS has been changed in major ways +%% from UT-THESIS.CLS... +%% +%% OLD: +%% OLD: This file is distributed in the hope that it will be useful but +%% OLD: without any warranty (without even the implied warranty of +%% OLD: fitness for a particular purpose). For a description of this +%% OLD: file's purpose, and instructions on its use, see below. +%% OLD: +%% OLD: Feel free to copy and redistribute this file, as long as this +%% OLD: copyright notice remains intact. You may also modify the file +%% OLD: to suit your particular needs, as long as you indicate your +%% OLD: changes below (and inform the original author of your changes: +%% OLD: he's always curious to know what people think of his work). +%% OLD: +%% OLD: Send all bugs, questions, comments, suggestions, etc. to the +%% OLD: author, at . +%% OLD: +%% OLD: KNOWN BUGS: (reported by Robert Bernecky) +%% OLD: +%% OLD: - [On missing page headers for float pages.] +%% OLD: ``teTex'' under Linux fails in precisely the same way as does +%% OLD: ``MikTeX'', so there's something clearly wrong somewhere, but +%% OLD: I don't know where. It only fails on odd-numbered pages (if +%% OLD: you remove enough text so that the page floats back to an +%% OLD: even-numbered page, the page header is correct)! +%% OLD: - [On ``dedication'' and ``acknowledgements'' causing an error when +%% OLD: they both appear on the same page.] +%% OLD: ``teTeX'' and ``MikTeX'' both fail the same way on this one, with +%% OLD: ``LaTeX error: Something's wrong--perhaps a missing \item. +%% OLD: Adding a \newpage between the two environments ``fixes'' the +%% OLD: problem. Unsure what causes this, but it could be a bug +%% OLD: common to all x86 platforms... +%% OLD: +%% OLD: REVISION HISTORY: +%% OLD: +%% OLD: v1.8: 1999/12/10 (Francois Pitt) +%% OLD: - Fixed circular definition problem with \currenttextsize +%% OLD: that caused TeX to run out of input stack memory. +%% OLD: v1.7: 1999/06/02,1999/05/20,1999/05/13 (Francois Pitt) +%% OLD: - Minor change to the format of the date printed on every +%% OLD: page with the ``draft'' option. +%% OLD: - Minor cosmetic change to the word ``DRAFT'' printed on the +%% OLD: corners of every page with the ``draft'' option. +%% OLD: - Made ``draft'' mode doublespaced by default (it just makes +%% OLD: more sense for actual drafts; suggested by Eric Joanis). +%% OLD: - Changed \currenttextsize from a ``\newcommand'' to a ``\let''. +%% OLD: - Added ``known bugs'' above. +%% OLD: v1.6: 1999/03/06 (Francois Pitt) +%% OLD: - Minor change: replaced ``\ifx\empty#1\else...\fi'' with +%% OLD: ``\ifx\empty#1\empty\else...\fi'' (the former works only +%% OLD: by accident while the latter is logically correct). +%% OLD: v1.5: 1999/02/17 (Francois Pitt) +%% OLD: - Fixed missing page numbers and headers by removing +%% OLD: redefinition of \cleardoublepage (reported by Robert +%% OLD: Bernecky 1999/02/04 and Nedialko Nedialkov 1999/02/12). +%% OLD: - Added \clearemptydoublepage and \clearplaindoublepage +%% OLD: commands. +%% OLD: - Removed redefinitions of \tableofcontents, \listoftables, +%% OLD: and \listoffigures because they already call \clearpage +%% OLD: or \cleardoublepage by default. +%% OLD: - Removed ``\setcounter{tocdepth}{2}'' from the page layout +%% OLD: section (moved to ``ut-thesis.tex'' where it belongs). +%% OLD: - Added \ignore command to comment out parts of a file. +%% OLD: - Put version macros at the top of the file. +%% OLD: - Changed order of revision comments. +%% OLD: v1.4: 1998/11/05 (Francois Pitt) +%% OLD: - Fixed ``abstract'' environment so that it is really put on a +%% OLD: separate page, and changed ``\newpage\endgroup'' at the end +%% OLD: to ``\par\endgroup\newpage'', which is more logical. +%% OLD: - Changed ``acknowledgements'' environment so that it is *not* +%% OLD: put on a separate page, allowing users to add other text +%% OLD: on that page (e.g., ``dedication'' described next). +%% OLD: - Added ``dedication'' environment based on ``acknowledgements'' +%% OLD: (suggested by Robert Bernecky 98/11/04). +%% OLD: - Changed page layout so that it is defined in terms of the +%% OLD: physical page size instead of being hard-coded for letter +%% OLD: paper (8.5" x 11"). +%% OLD: v1.3: 1998/11/01 (Francois Pitt) +%% OLD: - Fixed ``thebibliography'' so page headers are generated in +%% OLD: the same style as for the rest of the thesis. +%% OLD: - Swapped \endgroup and \newpage in definition of ``abstract'' +%% OLD: and ``acknowledgements'' environments, to fix problem with +%% OLD: adjusted line spacing in ``abstract''. +%% OLD: - Renamed ``\currentsize'' to ``\currenttextsize''. +%% OLD: - Added \cleardoublepage at the end of preliminary sections, +%% OLD: so that page 1 of main text is on right-hand side. +%% OLD: v1.2: 1998/10/20 (Francois Pitt) +%% OLD: - Changed ``spacenotes'' option to ``spacednotes'' to have more +%% OLD: consistently named options. +%% OLD: - Fixed spacing between main text and footnotes. +%% OLD: - Fixed ``singlespaced'' environment, which didn't seem to +%% OLD: work at all (reported by Nedialko Nedialkov 98/10/12): +%% OLD: Actually, created a ``newspacing'' environment, which takes +%% OLD: a parameter, and based ``singlespaced'', ``oneandahalfspaced'', +%% OLD: and ``doublespaced'' environments on ``newspacing''. +%% OLD: v1.1: 1998/10/01 (Francois Pitt) +%% OLD: - Fixed bug that caused footnotes to make following tables +%% OLD: single-spaced (reported by Philip Edmonds 98/09/30). +%% OLD: - Made spacing of marginal notes and footnotes the same. +%% OLD: - Added option to control line spacing of notes. +%% OLD: - Added options to control the size of margins. +%% OLD: - Changed names of temporary macros used in redefinitions +%% OLD: to avoid conflicts with existing names. +%% OLD: v1.0: 1998/09/29 (Francois Pitt) +%% OLD: - Initial version. +%% OLD: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% LaTeX2e class file for formatting documents according to the +%% Graduate Studies' guidelines for theses at the Georgia Institute +%% of Technology. +%% +%% USAGE: \documentclass{gatech-thesis} +%% \documentclass[...options...]{gatech-thesis} +%% +%% The default settings produce a final copy, ready for submission +%% (11pt font, single-sided, double-spaced, normal margins, +%% with single-spaced notes). +%% +%% OPTIONS: +%% +%% - Any standard option for the LaTeX2e ``report'' class, including +%% ``10pt'', ``11pt'', ``12pt'', ``oneside'', ``twoside'', etc. +%% +%% - ``singlespaced'', ``oneandahalfspaced'', or ``doublespaced'': Set +%% the entire document's default line spacing, except for notes, +%% which are single-spaced by default. +%% +%% - ``spacednotes'': Let the line spacing of notes be determined +%% by the line spacing of the main document, instead of being +%% forced single-spaced. +%% +%% - ``narrowmargins'', ``normalmargins'', ``widemargins'', +%% ``extrawidemargins'' or ``oldmargins'': Set the size of +%% the margins, as follows: +%% . ``normal'': 1 1/2" on left, 1" on top, right and bottom +%% headers & footers 1/4" from body; +%% - This is the Georgia Tech standard +%% . ``narrow'': 1 1/4" on the left, 3/4" on all other sides, +%% headers & footers 1/4" from body; +%% . ``wide'': 1 1/4" on all sides, headers & footers 3/4" from +%% body; +%% . ``extrawide'': 1 1/2" on all sides, headers & footers 3/4" +%% from body. +%% . ``oldmargins'': 1 1/2" on left and top, 1" on right and bottom +%% headers & footers 1/2 from body; +%% adds 2"" extra space from top of page, on the first +%% page of a chapter or appendix. +%% - This is the OLD Georgia Tech standard +%% (If you have more than just a few marginal notes, it is +%% recommended that you use ``wide'' or ``extrawide'' margins.) +%% Use ``normalmargins'' (the default) for the approved GT format. +%% +%% - ``draft'': Produce a draft copy (10pt font, double-sided, +%% double-spaced, normal margins, with the word "DRAFT" printed +%% at all four corners of every page, and current date printed in +%% a running footer). +%% +%% - ``hyperref'': Indicates that the document will \usepackage{hyperref}. +%% This is a kludge, but I didn't want to explicitly *require* +%% hyperref, so we must indicate to gatech-thesis.cls whether it should +%% define certain hyperref commands as dummies. ALWAYS use this +%% option if you use the hyperref package. NEVER use this option if +%% you do not also use the hyperref package. +%% +%% Note that these options can be used to override the default or +%% draft document settings, so that it is possible, for example, +%% to create a double-sided final copy, or a 1 1/2-spaced draft +%% copy with wide margins, etc. Also note that when producing +%% double-sided documents, new chapters and preliminary sections +%% will always start on a right-hand page under the default +%% settings (inserting a blank page if needed), but not if the +%% ``draft'' option was used. (This can be overriden by using the +%% ``openany'' or ``openright'' options. To achieve this effect for +%% individual sections or chapters, use the \cleardoublepage +%% command.) Note that the blank page inserted in these cases will +%% still contain the header and page number that is present on all +%% pages. For ``empty'' or ``plain'' pages, explicitly use one of the +%% commands \clearemptydoublepage (totally blank inserted pages), +%% \clearplaindoublepage (blank except for page number at bottom), or +%% \cleartcplainfdoublepage (blank except for page number at Top +%% Corner (hence, TCplain). You can also explicitly use +%% \cleargtthesisdoublepage (but I don't know why you would, since this +%% only makes sense if the current pagestyle is already gtthesis, and +%% if that is the case then you're better off just using \cleardoublepage. +%% +%% NEW ENVIRONMENTS and COMMANDS: +%% in some cases, there will be two commands with identical +%% effect. These are usually because one is needed to maintain +%% compatibility with documents that expect the old macros from +%% GTthesis.sty. +%% +%% * \title{...}: (preamble only; REQUIRED) +%% +%% * \author{...}: (preamble only; REQUIRED) +%% Specify the name of the author. +%% +%% * \department{...}: (preamble only; REQUIRED) +%% * \dept{...}: compatibility synonym +%% Specify the name of the graduate department. +%% +%% * \major{...}: (preamble only; REQUIRED if \listmajortrue is set) +%% +%% * \degree{...}: (preamble only; REQUIRED) +%% Specify the name of the degree (e.g., "Doctor of Philosophy"). +%% +%% * \gradyear{...}: (preamble only; REQUIRED) +%% * \copyrightyear{...}: compatibility synonym +%% Specify the year of graduation (defaults to current year). +%% +%% * \principaladvisor{...}: (preamble only; OPTIONAL) +%% (or \principaladviser{...}, if you prefer advisor spelled with an e) +%% +%% * \committeechair{...}: (preamble only; OPTIONAL) +%% +%% * \firstreader{...}: (preamble only; OPTIONAL) +%% * \secondreader{...}: (preamble only; OPTIONAL) +%% * \thirdreader{...}: (preamble only; OPTIONAL) +%% * \fourthreader{...}: (preamble only; OPTIONAL) +%% * \fifthreader{...}: (preamble only; OPTIONAL) +%% * \sixthreader{...}: (preamble only; OPTIONAL) +%% +%% * \submitdate{month year in which submitted} +%% date is LaTeX'd if not specified +%% * \approveddate{month, day, and year on which the last committee +%% member signs the thesis form} (preamble only; REQUIRED) +%% +%% * \titlepagetrue or \titlepagefalse +%% - produce or don't produce a title page (TRUE by default) +%% +%% * \signaturepagetrue or \signaturepagefalse +%% - produce or don't produce a signature page (TRUE by default) +%% +%% * \copyrighttrue or \copyrightfalse +%% - place or don't place a copyright notice on the title page (FALSE by default) +%% +%% * \figurespagetrue or \figurespagefalse +%% - produce or don't produce a List of Figures page (TRUE by default) +%% +%% * \tablespagetrue or \tablespagefalse +%% - produce or don't produce a List of Tables page (TRUE by default) +%% +%% * \contentspagetrue or \contentspagefalse +%% - produce or don't produce a Table of Contents page (TRUE by default) +%% +%% * \bibpagetrue or \bibpagefalse +%% - produce or don't produce a Bibliography page (TRUE by default) +%% +%% * \thesisproposaltrue or \thesisproposalfalse +%% - indicate "Thesis Proposal" or "Thesis" on the title page (FALSE by default) +%% +%% * \dedicationheadingtrue or \dedicationheadingfalse +%% - display ``DEDICATION'' heading on the dedication page (FALSE by default) +%% +%% * \dedicationtop and \dedicationbottom +%% - The Graduate Office Guidelines say that the dedication should be centered +%% on the page. By default, this is done -- but IMO it looks ugly. The +%% vertical spacing above and below your text is proided by these two +%% macros; redefined them if you want to do something different. E.g. +%% this looks nice: +%% \renewcommand{\dedicationtop}{\vspace*{\stretch{1}} +%% \renewcommand{\dedicationbottom{\vspace*{\stretch{3}} +%% which places the dedication about 1/4 of the way down the page. +%% +%% * \strictmarginstrue or \strictmarginsfalse +%% - if true, then obey the margin rules EVEN on the title and signature +%% page. Default TRUE and REQUIRED by Graduate Studies Office, but +%% not very appealing. (under ``oldmargins'' an extra 50p spacing is +%% added so that the title page looks like the chapter headings +%% In any case, \strictmarginsfalse looks better for personal copies +%% but \strictmarginstrue is necessary for official ones. +%% +%% * \multivolumetrue or \multivolumefalse +%% - if true, indicates that the thesis will span multiple volumes. +%% triggers automatic generation of the first volume title page +%% (in addition to the ``entire work'' title page), but it's up +%% to you to place the ``part{}'' commands in the appropriate +%% locations for volume 2, volume 3, etc. +%% +%% * \listmajortrue or \listmajorfalse +%% - If true, puts ``In Partial Fulfillment...[degree] in +%% [major]'' on the title page and then puts the department down +%% with Georgia Institute of Technology at the bottom of the +%% page. If false, puts ``In Partial Fulfillment...[degree] in +%% the [department]'' on the title page. +%% +%% * \dissertationtrue or \dissertationfalse +%% - If true, uses the word ``Dissertation'' on the title page. If +%% false, uses ``thesis''. +%% +%% * \bibfiles{...} +%% Set the list of bibfiles to use when generating a bibliography +%% +%% - \linespacing{...}: (preamble only) +%% - \spacing{...}: compatibility synonym +%% Set the interline spacing directly, overriding document +%% defaults and options; note that in order to get the correct +%% appearance, the argument to \linespacing must be equal to +%% 1/3 + 2/3 times the desired line spacing (for example, +%% single-spaced = \linespacing{1}, +%% 1 1/2-spaced = \linespacing{1.25}, and +%% double-spaced = \linespacing{1.66}). +%% +%% - ignore{...}: +%% - comment{...}: compatibility synonym +%% Ignore the part of the file between { and } (can include +%% paragraph breaks); useful for commenting out large blocks. +%% +%% - \clearemptydoublepage, \clearplaindoublepage, +%% \cleartcplaindoublepage, \cleargtthesisdoublepage +%% Same as \cleardoublepage except that it sets the pagestyle of +%% any inserted blank page to ``empty'' ``plain'' ``tcplain'' or +%% ``gtthesis'' respectively. +%% +%% - \begin{preliminary}...\end{preliminary}: +%% Delimit head matter (title page, abstract, table of contents, +%% lists of tables and figures, etc.): set the page style and +%% numbering for the preliminary sections and reset them for the +%% main document. +%% + Alternatively, at the appropriate spots call the synonums +%% \beforepreface and \afterpreface. These ``synonyms'' do +%% the same setup tasks as \begin{preliminary} and \end{preliminary}, +%% but they don't create an ``environment. The use of these +%% synonyms is NOT recommended for new documents and are provided +%% only for backward compatibility. +%% +%% - \beforepreface: +%% Sets pagestyle and generates titlepage (via \maketitle) +%% and signature page (via \makesignature) if indicated. +%% DON'T call directly in new documents. Use \begin{preliminary} +%% instead. +%% +%% - \afterpreface: +%% Sets pagestyle back to normal, restarts page numbering +%% DON'T call directly in new documents. Use \end{preliminary} +%% instead. +%% +%% - \maketitle: +%% Generate the title page from the information supplied +%% in the preamble. Called automatically by \begin{preliminary} +%% or \beforepreface. +%% +%% - \makesignature: +%% Generate a signature page from information supplied +%% in the preamble. Called automatically by \begin{preliminary} +%% or \beforepreface. +%% +%% - \begin{dedication}...\end{dedication}: +%% Generate a dedication section, if needed. +%% +%% - \begin{acknowledgements}...\end{acknowledgements}: +%% Generate an acknowledgements section, if needed. +%% +%% - \begin{abstract}...\end{abstract}: +%% Generate the abstract page. +%% +%% - \begin{summary}...\end{summary}: +%% Generate a summary page (same as abstract, but different +%% heading) +%% +%% - \begin{preface}...\end{preface}: +%% Generate a preface section, if needed. +%% +%% - \prefacesection{other-title}{...text...} +%% Used to specify frontmatter sections that do not have +%% custom environments defined for them above. +%% +%% - \contents +%% Prints table of contents, list of figures, and list of +%% tables as indicated by \contentspagetrue, \figurespagetrue, +%% and \tablespagetrue +%% +%% - Modifying the look of the Table of Contents: +%% +%% + \labelchaptersintableofcontents +%% inserts an entry into the TOC that says ``CHAPTERS'' just +%% before Chapter 1. +%% +%% + \labelappendicesintableofcontents +%% inserts an entry into the TOC that says ``APPENDICES'' just +%% before Appendix A. +%% +%% + \settocstring +%% change the name used for the Table of Contents (def: 'Table of Contents') +%% +%% + \setlofstring +%% change the name used for the List of Figures (def: 'List of Figures') +%% +%% + \setlotstring +%% change the name used for the List of Tables (def: 'List of Tables') +%% +%% + \setchaptertocdepth +%% set the default for how ``deep'' to number within chapters +%% in the table of contents. +%% +%% + \setappendixtocdepth +%% set the default for how ``deep'' to number within appendices +%% (chapter{}'s after the \appendix command) in the table of +%% contents +%% +%% + \settocdepth +%% temporarily change how "deep" to number in the table of +%% contents for current chapter/section. For example, you +%% usually include \section{}'s in the TOC (\setchaptertocdepth{1}) +%% but in chapter 5 you want to include subsection as well: +%% \chapter{This is Chapter 5}\settocdepth{2}. In cahapter 6 the +%% default depth of 1 is reasserted. +%% +%% You should never need to call \setcounter{tocdepth}{..} directly. +%% 0 = chapter only +%% 1 = chapter + sections +%% 2 = chapter, section, subsection +%% 3 = chapter, section, subsection, subsubsection +%% +%% OLD recommended structure (GTthesis.sty) for frontmatter: +%% \begin{document} +%% \beforepreface +%% \prefacesection{Dedication}dedication text... +%% \prefacesection{Preface}preface text... +%% \prefacesection{Acknowledgements}acknowledgement text... +%% \contents % print table of contents, figures and tables here. +%% \prefacesection{Summary}summary text +%% \afterpreface +%% +%% NEW recommended structure for frontmatter: +%% \begin{document} +%% \begin{preliminary} +%% \begin{dedication}...\end{dedication} +%% \begin{preface}...\end{preface} +%% \begin{acknowledgements}...\end{acknowledgements} +%% \contents +%% \begin{summary}...\end{summary} +%% \end{preliminary} +%% +%% The old method still works, but the new method is preferred +%% for new documents. +%% +%% - \begin{longquote}...\end{longquote}: +%% Single-spaced version of the ``quote'' environment. +%% +%% - \begin{longquotation}...\end{longquotation}: +%% Single-spaced version of the ``quotation'' environment. +%% +%% - \begin{singlespaced}...\end{singlespaced}: +%% Format single-spaced paragraphs. +%% +%% - \begin{oneandahalfspaced}...\end{oneandahalfspaced}: +%% Format 1 1/2-spaced paragraphs. +%% +%% - \begin{doublespaced}...\end{doublespaced}: +%% Format double-spaced paragraphs. +%% +%% - \begin{newspacing}{}...\end{newspacing}: +%% Format paragraphs with an interline spacing of ``n''. +%% +%% (Note that the last four environments can be used to change the +%% default line spacing of any enclosed text, including figures, +%% tables, abstract or acknowledgement pages, table of contents, +%% etc.) +%% +%% - \appendix: a global mode switch (just like the report class). +%% changes the way ``chapter'' headings and TOC entries are +%% generated. +%% \chapter{last chapter titled}... +%% \appendix +%% \chapter{first appendix title}... +%% +%% - \begin{postliminary}...\end{postliminary}: +%% Delimit end matter (bibliography, vita, etc). +%% + Alternatively, call the synonyms +%% \beforepostface and \afterpostface instead. These +%% synonyms are provided for backward compatibility with +%% GTthesis.sty; their use is not recommended for new documents. +%% +%% - \beforepostface: +%% Not recommended for new documents. Use \begin{postliminary} +%% instead +%% +%% - \afterpreface: +%% Not recommended for new documents. Use \end{postliminary} +%% instead +%% +%% - \begin{vita}...\end{vita}: +%% Generate a vita page +%% +%% - \references: +%% Generate bibliography if indicated by bibliographytrue +%% NOTE: you must set \bibpagetrue AND \bibfiles{file1,file2,...} +%% in the preample, AND you must set \bibliographystyle{...} just +%% after \begin{document}. Otherwise \references won't work. +%% +%% - \postfacesection{other-title}{...text...} +%% Used to specify endsections that do not have +%% custom environments defined for them above. +%% +%% OLD recommended structure (GTthesis.sty) for endmatter: +%% \beforepostface +%% \postfacesection{Vita}vita text... +%% \afterpostface +%% +%% NEW recommended structure for frontmatter: +%% \begin{postliminary} +%% \references +%% \begin{vita}...\end{vita} +%% \end{postliminary} +%% +%% The old method still works, but the new method is preferred +%% for new documents. +%% +%% - Modifying the look of the document +%% +%% + \setbodypagestyle{x}, where x = plain, empty, headings, +%% myheadings, gtthesis, or tcplain. plain is the default). +%% + \setfrontpagestyle{x} - set pagestyle for frontmatter +%% + \setbackpagestyle{x} - set pagestyle for endmatter +%% +%% - The Graduate Studies Office approved pagestyle is +%% plain for the body, as well frontmatter and endmatter +%% (However, pages are numbered with roman numberals in +%% the frontmatter and automatically switch to arabic +%% numbers in the body and endmatter, as required by GSO. +%% Don't try to change the pagenumbering style). However: +%% - gtthesis adds a running header on each page identifying +%% the Chapter (and Section for twopage layouts). This +%% is a nice touch IMO for the body and endmatter, but +%% use it ONLY for personal copies. +%% - note that you also need to add \pagestyle{gtthesis} +%% if you use \setbodypagestyle{gtthesis}. +%% +%% + Chapter headings and the TOC use ROMAN numerals, but +%% the running headers at the top of each page use ARABIC +%% numbers for the Chapter number. Thus, there are two +%% separate formats that are used. +%% +%% - \thegtchapter is used for ROMAN chapter numbers +%% - \thechapter is used for ARABIC chapter numbers +%% +%% If you wish all chapter headings to use ROMAN, then just +%% redefine \thechapter in your document: +%% \renewcommand{\thechapter}{\thegtchapter} +%% Do the reverse for all ARABIC chapter numbers: +%% \renewcommand{\thegtchapter}{\thechapter} +%% +%% This archive provides two different examples of use -- the +%% companion file ``gatech-thesis.tex'' contains a skeleton +%% illustrating the use of this class. In addition, the jules-verne* +%% companion files contain a more lengthy, multi-file example. +%% Finally, a much abbreviated version of gatech-thesis.txt +%% appears directly below, in this file. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Example of use: +%% \documentclass[11pt,twopage,oneandahalfspaced,normalmargins]{gatech-thesis} +%% +%% (Then, use the following commands for various thesis elements, as follows) +%% +%% \title{How to Write Theses\\ +%% With Two Line Titles} +%% \author{John Henry Candidate} +%% \bibfiles{litserch,oodb} +%% \principaladviser{John Parker} +%% \committeechair{Jack Sprat} +%% \firstreader{John Green} +%% \secondreader{John BigBooty\\(Another Department)} +%% \thirdreader{...} +%% \fourthreader{...} +%% \department{School of Electrical and Computer Engineering} +%% \degree{Doctor of Philosophy} +%% \copyrightyear{2001} +%% \thesisproposalfalse +%% \contentspagetrue +%% \figurespagetrue +%% \tablespagefalse +%% \bibpagetrue +%% \titlepagetrue +%% \dedicationheadingfalse +%% \signaturepagetrue +%% \submitdate{January 2001} +%% +%% \begin{document} +%% \bibliographystyle{gatech-thesis} +%% \begin{preliminary} +%% \begin{preface} +%% This thesis tells you all you need to know about... +%% \end{preface} +%% \contents % print table of contents, figures and tables here. +%% \begin{acknowledgements} +%% I would like to thank... +%% \end{acknowledgements} +%% \end{preliminary} +%% \chapter{Introduction} +%% ... +%% \chapter{Conclusions} +%% ... +%% \appendix +%% \chapter{A Long Proof} +%% ... +%% \begin{postliminary} +%% \references +%% \postfacesection{Index}{% +%% ... generate an index here +%% } +%% \begin{vita} +%% ... was born in ... +%% \end{vita} +%% \end{postliminary} +%% \end{document} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%% IDENTIFICATION %%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{gatech-thesis} + [\gtthesisupdated\space\gtthesisversion\space(Mitchel T. Keller)]% +\RequirePackage{calc}% part of LaTeX tools bundle +%\RequirePackage{lastpage} + +\def\gtthesis@checkVersion#1{\edef\reserved@a{#1}% + \ifx \gatechthesis@version \reserved@a + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi} +\xdef\gatechthesis@version{\gtthesisversion} + +%%%%%%%%%%%% INITIAL CODE %%%%%%%%%%%% + +%% To comment out parts of a file. +% +\newcommand{\ignore}[1]{} +\newcommand{\comment}[1]{} + +%% Switch for testing draft mode (toggled by ``draft'' option). +% +\newif\if@draft +\@draftfalse % initially false by default + +%% Switch for testing current page style. +% +\newif\if@tcpage + % no default value (set by \pagestyle) + % indicates that page numbers are in the upper corners + +%% Switch for testing line spacing of notes. +% +\newif\if@singlespacednotes +\@singlespacednotestrue % initially true by default + +%% Switch for testing the hyperref option +% +\newif\if@hyperref +\@hyperreffalse % initially false by default + +%% Macro for testing the size of margins. +% +\newcommand{\@marginsize}{} + +%% Because of the draft option, and to allow users to override +%% defaults, we don't want to be passing conflicting options back to +%% the report class, so we define our own temporary toggles holding +%% the most recent setting for each of four basic options: point size, +%% number of page sides, whether new chapters open on right-hand pages +%% or on any page, and line spacing. These toggles will be set from +%% the corresponding options below. +% +\newcommand{\@thesisptsz}{} +\newcommand{\@thesisside}{} +\newcommand{\@thesisopen}{} +\newcommand{\@thesislnsp}{} + + +%%%%%%%%%%%% OPTION DECLARATION %%%%%%%%%%%% + +%% ``draft'' option: change default document settings. +% +\DeclareOption{draft}{\@drafttrue + \typeout{Gatech-Thesis Class Option: ``draft''} + \ExecuteOptions{10pt,twoside,openany,doublespaced,normalmargins} + \PassOptionsToClass{draft}{report} + %% Macros for printing "DRAFT" at the corners of a page. + \newcommand{\tlDRAFT}% + {\raisebox{ 3ex}[0pt][0pt]{\llap{\sffamily\scriptsize DRAFT\ \ }}} + \newcommand{\trDRAFT}% + {\raisebox{ 3ex}[0pt][0pt]{\rlap{\sffamily\scriptsize \ \ DRAFT}}} + \newcommand{\blDRAFT}% + {\raisebox{-3ex}[0pt][0pt]{\llap{\sffamily\scriptsize DRAFT\ \ }}} + \newcommand{\brDRAFT}% + {\raisebox{-3ex}[0pt][0pt]{\rlap{\sffamily\scriptsize \ \ DRAFT}}} +}%DeclareOption{draft} + +%% ``spacednotes'' option: make notes share the line spacing of the rest +%% of the document. +% +\DeclareOption{spacednotes}{\@singlespacednotesfalse} + +%% Margin options: change the size of margins. +%% choose normalmargins option for Georgia Tech thesis format +% +\DeclareOption{narrowmargins}{\renewcommand{\@marginsize}{0}} +\DeclareOption{normalmargins}{\renewcommand{\@marginsize}{1}} +\DeclareOption{widemargins}{\renewcommand{\@marginsize}{2}} +\DeclareOption{extrawidemargins}{\renewcommand{\@marginsize}{3}} +\DeclareOption{oldmargins}{\renewcommand{\@marginsize}{4}} + +%% Point Size options: change current setting. +% +\DeclareOption{10pt}{\renewcommand{\@thesisptsz}{10pt}} +\DeclareOption{11pt}{\renewcommand{\@thesisptsz}{11pt}} +\DeclareOption{12pt}{\renewcommand{\@thesisptsz}{12pt}} + +%% Number of Page Sides options: change current setting. +% +\DeclareOption{twoside}{\renewcommand{\@thesisside}{twoside}} +\DeclareOption{oneside}{\renewcommand{\@thesisside}{oneside}} + +%% New Chapter Openings options: change current setting. +% +\DeclareOption{openany}{\renewcommand{\@thesisopen}{openany}} +\DeclareOption{openright}{\renewcommand{\@thesisopen}{openright}} + +%% Line Spacing options: change current setting. +% +\DeclareOption{singlespaced}{\renewcommand{\@thesislnsp}{1}} +\DeclareOption{oneandahalfspaced}{\renewcommand{\@thesislnsp}{1.25}} +\DeclareOption{doublespaced}{\renewcommand{\@thesislnsp}{1.66}} + +%% STUPID HACK for hyperref, \@chapter, and \MakeUppercase +% +\newcommand{\Makeuppercase}[1]{\MakeUppercase{#1}} +\DeclareOption{hyperref}{% + \@hyperreftrue +% \renewcommand{\Makeuppercase}[1]{% +% \ifHy@pdfstring#1\else\MakeUppercase{#1}\fi} +} + +%% All other options are passed to the base class directly. +% +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} + + +%%%%%%%%%%%% OPTION EXECUTION %%%%%%%%%%%% + +%% Default settings. +% +\ExecuteOptions{11pt,letterpaper,oneside,% +openright,doublespaced,normalmargins,final} +% +%% Process options. +% +\ProcessOptions + + +%%%%%%%%%%%% PACKAGE LOADING %%%%%%%%%%%% + +%% Load base class using current setting for basic options. +% +\LoadClass[\@thesisptsz,\@thesisside,\@thesisopen]{report} + + +%% From lastpage package. Used to generate abstract. +%% Lastpage is written by Jeff Goldberg (J.Goldberg@Cranfield.ac.uk) +%% It is relased under the GPL (version 2) + +\def\lastpage@putlabel{\addtocounter{page}{-1}% + \immediate\write\@auxout{\string + \newlabel{LastPage}{{}{\thepage}{}{}{}}}% + \addtocounter{page}{1}} + + +%%%%%%%%%%%% MAIN CODE %%%%%%%%%%%% + +\if@hyperref +\else + \newcommand{\phantomsection}{}% helps with hyperref. \phantomsection +% is provided by pdflatex, but not latex. + \newcommand{\texorpdfstring}[2]{#1}% + \def\pdfbookmark[#1]#2#3{}% +\fi + +%%%%%% Line Spacing +% +%% \linespacing is used to define the default line spacing. +%% for the entire document. If the argument is less than +%% 1.25 (for 1.5-spaced) a warning message is displayed +%% when not in draft mode. +%% +%% Don't use this command for temporary, localized changes. +%% Instead, use the ``spacing environments'': +%% \begin{singlespace} ...\end{singlespaced} +%% \begin{oneandahalfspaced}...\end{oneandahalfspaced} +%% \begin{doublespaed} ...\end{doublespaced} +%% \begin{longquote} ...\end{longquote} +%% \begin{longquotation} ...\end{longquotation} +%% \begin{newspacing}{x.xx} ...\end{newspacing} +% +\newcommand{\linespacing}[1]{% + \gdef\@spacing{#1} + \newlinestretch{#1}\if@draft\else\ifdim #1pt < 1.25pt\typeout + {Gatech-Thesis Class Warning: line spacing less than 1 1/2}\fi\fi +} +% +%% \spacing is a clone of \linespacing, retained for backwards +%% compatibility with GTthesis.sty +% +\newcommand{\spacing}[1]{% + \gdef\@spacing{#1} + \newlinestretch{#1}\if@draft\else\ifdim #1pt < 1.25pt\typeout + {Gatech-Thesis Class Warning: line spacing less than 1 1/2}\fi\fi +} +\def\@spacing{1.66} + +% +%% ``longquote'' and ``longquotation'' produce single-spaced quotes, while +%% ``newspacing'' encloses paragraphs with a different line spacing, +%% such as ``singlespaced'', ``oneandahalfspaced'', or ``doublespaced''. +% +\newenvironment{longquote}% + {\begin{quote}\newlinestretch{1}}{\end{quote}} +\newenvironment{longquotation}% + {\begin{quotation}\newlinestretch{1}}{\end{quotation}} +\newenvironment{singlespaced}% + {\begin{newspacing}{1}}{\end{newspacing}} +\newenvironment{oneandahalfspaced}% + {\begin{newspacing}{1.25}}{\end{newspacing}} +\newenvironment{doublespaced}% + {\begin{newspacing}{1.66}}{\end{newspacing}} +\newenvironment{newspacing}[1]% + {\par\begingroup\newlinestretch{#1}}% + {\par\vskip\parskip\vskip\baselineskip\endgroup + \vskip-\parskip\vskip-\baselineskip} + +% +%% To change the actual line spacing. +% +\newcommand{\newlinestretch}[1]% + {\renewcommand{\baselinestretch}{#1}\currenttextsize} + +% +%% To keep track of the current text size. +% +\let\currenttextsize=\normalsize +% +%% Redefine size-changing commands to update \currenttextsize. +% +\let\tmp@tiny=\tiny +\renewcommand{\tiny}% + {\let\currenttextsize=\tmp@tiny\tmp@tiny} +\let\tmp@scriptsize=\scriptsize +\renewcommand{\scriptsize}% + {\let\currenttextsize=\tmp@scriptsize\tmp@scriptsize} +\let\tmp@footnotesize=\footnotesize +\renewcommand{\footnotesize}% + {\let\currenttextsize=\tmp@footnotesize\tmp@footnotesize} +\let\tmp@small=\small +\renewcommand{\small}% + {\let\currenttextsize=\tmp@small\tmp@small} +\let\tmp@normalsize=\normalsize +\renewcommand{\normalsize}% + {\let\currenttextsize=\tmp@normalsize\tmp@normalsize} +\let\tmp@large=\large +\renewcommand{\large}% + {\let\currenttextsize=\tmp@large\tmp@large} +\let\tmp@Large=\Large +\renewcommand{\Large}% + {\let\currenttextsize=\tmp@Large\tmp@Large} +\let\tmp@LARGE=\LARGE +\renewcommand{\LARGE}% + {\let\currenttextsize=\tmp@LARGE\tmp@LARGE} +\let\tmp@huge=\huge +\renewcommand{\huge}% + {\let\currenttextsize=\tmp@huge\tmp@huge} +\let\tmp@Huge=\Huge +\renewcommand{\Huge}% + {\let\currenttextsize=\tmp@Huge\tmp@Huge} +% +%% Make notes single-spaced if ``spacednotes'' option was not given. +%% Note that this does _not_ change the spacing of figures or tables. +% +\if@singlespacednotes +%% Make footnotes single-spaced. +\let\tmp@@footnotetext=\@footnotetext +\renewcommand{\@footnotetext}[1]% + {{\newlinestretch{1}\tmp@@footnotetext{#1}}} +%% Make footnotes inside a minipage single-spaced. +\let\tmp@@mpfootnotetext=\@mpfootnotetext +\renewcommand{\@mpfootnotetext}[1]% + {{\newlinestretch{1}\tmp@@mpfootnotetext{#1}}} +%% Make marginal notes single-spaced. +\let\tmp@@marginparreset=\@marginparreset +\renewcommand{\@marginparreset}% + {\newlinestretch{1}\tmp@@marginparreset} +\fi%@singlespacednotes +% +%%%%%% New formatting environments and commands. +% +%% \begin{preliminary} sets the pagestyle and pagenumbering +%% (roman numeral format ) for the preliminary sections; +%% It also calls \beforepreface to create the title page +%% and signature page if indicated by \titlepagetrue and/or +%% \signaturepageture. +%% +%% \end{preliminary} resets the pagenumbering. To start page +%% numbering in arabic format, use \pagestyle{plain} and +%% \pagenumbering{arabic} after the preliminary environment block +% +\newenvironment{preliminary}% + { + \newlinestretch{1.0}% + \pagenumbering{roman}% + \pagestyle{\front@pagestyle}% + \iftitlepage% + \maketitle% + \fi% + \ifmultivolume% + \part{}% + \fi% + \ifsignaturepage% + \makesignature% + \fi% + \newlinestretch{\@spacing}% + }% + {% + \if@draft% + \else% + \if@twoside% + \if@openright% + \cleardoublepage% + \fi% + \fi% + \fi% + \newpage% + \pagenumbering{arabic}% + \pagestyle{\body@pagestyle}% + \newlinestretch{\@spacing}% + }% + +%%%%%% Front Matter Parameters +% +%% The following commands set the respective field values so we +%% can generate the title page, signature page, and abstract +%% page automatically +% +\renewcommand{\author}[1]% + {\ifx\empty#1\empty\else\gdef\@author{#1}\fi} +\renewcommand{\title}[1]% + {\ifx\empty#1\empty\else\gdef\@title{#1}\fi} + +\newcommand{\degree}[1]% + {\ifx\empty#1\empty\else\gdef\@degree{#1}\fi} +% +%% Is this a thesis, or a thesis proposal ? +% +\newif\ifthesisproposal +\thesisproposalfalse % default to thesis, not thesis proposal + +% +%% Is this a thesis or a dissertation? +% +\newif\ifdissertation +\dissertationfalse % default to thesis + +% +%% Do we list the major in the ``Partial Fulfillment'' block or the department? +% +\newif\iflistmajor +\listmajorfalse % default to listing the department + +\newcommand{\major}[1]% + {\ifx\empty#1\empty\else\gdef\@major{#1}\fi} + +% +%% \department and \dept are synonymous +% +\newcommand{\department}[1]% + {\ifx\empty#1\empty\else\gdef\@department{#1}\gdef\@dept{#1}\fi} +\newcommand{\dept}[1]% + {\ifx\empty#1\empty\else\gdef\@department{#1}\gdef\@dept{#1}\fi} +% +%% date stuff +%% \gradyear and \copyrightyear are synonymmous +% +\newcommand{\gradyear}[1]% + {\ifx\empty#1\empty\else\gdef\@gradyear{#1}\gdef\@copyrightyear{#1}\fi} +\newcommand{\copyrightyear}[1]% + {\ifx\empty#1\empty\else\gdef\@gradyear{#1}\gdef\@copyrightyear{#1}\fi} +\newcommand{\submitdate}[1]% + {\ifx\empty#1\empty\else\gdef\@submitdate{#1}\fi} +\newcommand{\approveddate}[1]% + {\ifx\empty#1\empty\else\gdef\@approveddate{#1}\fi} +% +%% use \principaladviser{} or \principaladvisor{}. Choice also +%% sets the default spelling of ``advisor/adviser''. +% +\def\advis@r{Advisor} % default spelling + +% Define \principaladvisor{} to take two optional arguments after the +% name. Thus, the usage is +% \principaladvisor{Advisor Name}[Advisor Unit][Advisor Institution] +% Advisor Unit defaults to \@department and Advisor Institution +% defaults to Georgia Institute of Technology. +\newcommand{\principaladvisor}[1]{% + \@ifnextchar[{\principaladvisor@i{#1}}{\principaladvisor@i{#1}[\@department]}%] +} +\def\principaladvisor@i#1[#2]{% + \@ifnextchar[{\principaladvisor@ii{#1}[#2]}{\principaladvisor@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\principaladvisor@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\def\@advisorforabstract{#1}% + \rightappenditem#1\to\@principaladvisor% + \rightappenditem#2\to\@principaladvisor% + \rightappenditem#3\to\@principaladvisor% + \fi +} + +% Define \principaladviser{} to take two optional arguments after the +% name. Thus, the usage is +% \principaladviser{Adviser Name}[Adviser Unit][Adviser Institution] +% Adviser Unit defaults to \@department and Adviser Institution +% defaults to Georgia Institute of Technology. +\newcommand{\principaladviser}[1]{% + \@ifnextchar[{\principaladviser@i{#1}}{\principaladviser@i{#1}[\@department]}%] +} +\def\principaladviser@i#1[#2]{% + \@ifnextchar[{\principaladviser@ii{#1}[#2]}{\principaladviser@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\principaladviser@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\def\@advisorforabstract{#1}% + \rightappenditem#1\to\@principaladvisor% + \rightappenditem#2\to\@principaladvisor% + \rightappenditem#3\to\@principaladvisor% + \gdef\advis@r{Adviser}% + \fi +} + +% +%% Committee Chair +% +% Define \committeechair{} to take two optional arguments after the +% name. Thus, the usage is +% \committeechair{Name}[Unit][Institution] +% Unit defaults to \@department and Institution defaults to Georgia +% Institute of Technology. +\newcommand{\committeechair}[1]{% + \@ifnextchar[{\committeechair@i{#1}}{\committeechair@i{#1}[\@department]}%] +} +\def\committeechair@i#1[#2]{% + \@ifnextchar[{\committeechair@ii{#1}[#2]}{\committeechair@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\committeechair@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@committeechair% + \rightappenditem#2\to\@committeechair% + \rightappenditem#3\to\@committeechair% + \fi +} + +% +%% readers +% +% Define \{first|second|third|fourth|fifth|sixth}reader{} to take two +% optional arguments after the name. Thus, the usage is +% \*reader{Reader Name}[Reader Unit][Reader Institution] +% Reader Unit defaults to \@department and Reader Institution +% defaults to Georgia Institute of Technology. +\newcommand{\firstreader}[1]{% + \@ifnextchar[{\firstreader@i{#1}}{\firstreader@i{#1}[\@department]}%] +} +\def\firstreader@i#1[#2]{% + \@ifnextchar[{\firstreader@ii{#1}[#2]}{\firstreader@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\firstreader@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@firstreader% + \rightappenditem#2\to\@firstreader% + \rightappenditem#3\to\@firstreader% + \fi +} + +\newcommand{\secondreader}[1]{% + \@ifnextchar[{\secondreader@i{#1}}{\secondreader@i{#1}[\@department]}%] +} +\def\secondreader@i#1[#2]{% + \@ifnextchar[{\secondreader@ii{#1}[#2]}{\secondreader@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\secondreader@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@secondreader% + \rightappenditem#2\to\@secondreader% + \rightappenditem#3\to\@secondreader% + \fi +} + +\newcommand{\thirdreader}[1]{% + \@ifnextchar[{\thirdreader@i{#1}}{\thirdreader@i{#1}[\@department]}%] +} +\def\thirdreader@i#1[#2]{% + \@ifnextchar[{\thirdreader@ii{#1}[#2]}{\thirdreader@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\thirdreader@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@thirdreader% + \rightappenditem#2\to\@thirdreader% + \rightappenditem#3\to\@thirdreader% + \fi +} + +\newcommand{\fourthreader}[1]{% + \@ifnextchar[{\fourthreader@i{#1}}{\fourthreader@i{#1}[\@department]}%] +} +\def\fourthreader@i#1[#2]{% + \@ifnextchar[{\fourthreader@ii{#1}[#2]}{\fourthreader@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\fourthreader@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@fourthreader% + \rightappenditem#2\to\@fourthreader% + \rightappenditem#3\to\@fourthreader% + \fi +} + +\newcommand{\fifthreader}[1]{% + \@ifnextchar[{\fifthreader@i{#1}}{\fifthreader@i{#1}[\@department]}%] +} +\def\fifthreader@i#1[#2]{% + \@ifnextchar[{\fifthreader@ii{#1}[#2]}{\fifthreader@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\fifthreader@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@fifthreader% + \rightappenditem#2\to\@fifthreader% + \rightappenditem#3\to\@fifthreader% + \fi +} + +\newcommand{\sixthreader}[1]{% + \@ifnextchar[{\sixthreader@i{#1}}{\sixthreader@i{#1}[\@department]}%] +} +\def\sixthreader@i#1[#2]{% + \@ifnextchar[{\sixthreader@ii{#1}[#2]}{\sixthreader@ii{#1}[#2][Georgia Institute of Technology]}%] +} +\def\sixthreader@ii#1[#2][#3]{% +\ifx\empty#1\empty\else\rightappenditem#1\to\@sixthreader% + \rightappenditem#2\to\@sixthreader% + \rightappenditem#3\to\@sixthreader% + \fi +} + +% +%% bibliography databases +% +\newcommand{\bibfiles}[1]% + {\ifx\empty#1\empty\else\gdef\@bibfiles{#1}\fi} + +% +%% default values of private functions +% +\def\@title{} +\def\@author{} +\def\@bibfiles{} +\def\@principaladvisor{} +\def\@committeechair{} +\def\@firstreader{} +\def\@secondreader{} +\def\@thirdreader{} +\def\@fourthreader{} +\def\@fifthreader{} +\def\@sixthreader{} +\def\@submitdate{\ifcase\the\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\the\year} +\def\@copyrightyear{\number\the\year} +\def\@bibfiles{} + +%% Switch for printing copyright notice on titlepage +% +\newif\ifcopyright +\copyrightfalse % initially false by default + +%% Switch for generating a title page +% +\newif\iftitlepage +\titlepagetrue % initially true by default + +%% Switch for generating a signature page +% +\newif\ifsignaturepage +\signaturepagetrue % initially true by default + +%% Switch for generating a list of figures +% +\newif\iffigurespage +\figurespagetrue % initially true by default + +%% Switch for generating a list of tables +% +\newif\iftablespage +\tablespagetrue % initially true by default + +%% Switch for generating a table of contents +% +\newif\ifcontentspage +\contentspagetrue % initially true by default + +%% Switch for generating a bibliography +% +\newif\ifbibpage +\bibpagetrue % initially true by default + +%% Switch to indicate whether chapters are \input{}'ed or +%% \include{}'ed. Not currently used. +% +\newif\ifusinginclude +\usingincludefalse % initially false by default -- document uses \input{} + +%% Switch for relaxing the strict margin requirements +%% on the title page and signature page. Default is to +%% rigidly adhere to the standard (but that's ugly) +% +\newif\ifstrictmargins +\strictmarginstrue % initially true by default + +%% Switch for printing DEDICATION across the top of the dedication page +% +\newif\ifdedicationheading +\dedicationheadingfalse % initially false by default + +%% Switch for indicating that the thesis has multiple volumes +% +\newif\ifmultivolume +\multivolumefalse % initially false by default + +%%%%%% Front Matter Commands and Environments +%% +%% \beforepreface +%% --- create title, signature page +%% --- redefined the \maketitle command here, but +%% don't call it directly. Use \beforepreface. +%% +%% \begin{dedication}...\end{dedication} +%% \begin{preface}...\end{preface} +%% \begin{acknowledgements}...\end{acknowlegments} +%% \prefacesection{other-title} +%% --- followed by section text +%% \contents +%% --- prints table of contents, figures, and tables +%% \begin{abstract}...\end{abstract} or use +%% \begin{summary}...\end{summary} +%% \afterpreface + +\newcommand{\title@top}{% +% make sure that linestretch is already set to 1, and all +% grouping/sectioning commands have already been begun. + \ifstrictmargins + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + \begin{center}% + {\large\bfseries\MakeUppercase{\expandafter{\@title}}}\\%%%% TITLE FONT SIZE!!!! + \end{center}% + \else% + \begin{center} +% \vspace*{\stretch{1}} + \vspace*{1in} + {\large\bfseries\MakeUppercase{\expandafter{\@title}}}%%%%% TITLE FONT SIZE AGAIN + \end{center}% + \fi% +} + +\newcommand{\title@text}{ + \begin{center} + \ifthesisproposal + A Thesis Proposal\\ + Presented to\\ + The Academic Faculty\\ + \else + A \ifdissertation Dissertation\else Thesis\fi\\ + Presented to\\ + The Academic Faculty\\ + \fi + \ \\ + by\\ + \ \\ + {\@author}\\ + \vspace*{1.1in} + In Partial Fulfillment \\ + of the Requirements for the Degree \\ + {\@degree} in + \iflistmajor + \\ {\@major}\\ + \vfill + {\@department}\\ + \else + the\\ {\@department}\\ + \vfill + \fi + Georgia Institute of Technology\\ + {\@submitdate}% + \ifcopyright + \\ \vspace*{.3in}% one line + 0.3in + Copyright \copyright\ {\@copyrightyear} by {\@author} + \fi + \end{center} +} + +\newcommand{\make@parttitle}[1]{%if argument is present, it's the part title + \begingroup + \newlinestretch{1}% + \phantomsection% + \title@top + \ifstrictmargins + \vspace*{0.5in} + \begin{center} + \begin{doublespaced}{\large\bfseries% + \expandafter{\Makeuppercase{\partname}\space\Makeuppercase{\thepart}}\\ + \ifx\@empty#1\@empty\else% + \expandafter{#1}\\ + \fi% + }\end{doublespaced} + \ \\ + by\\ + \ \\ + {\@author}\\ + \end{center}% + \vfill + \else% + \vspace*{0.5in} + \begin{center} + \begin{doublespaced}{\Huge\bfseries% + \expandafter{\Makeuppercase{\partname}\space\Makeuppercase{\thepart}}\\ + \ifx\@empty#1\@empty\else% + \expandafter{#1}\\ + \fi% + }\end{doublespaced} + \vspace*{1.35in} + \ \\ + by\\ + \ \\ + {\Large\bfseries{\@author}}\\ + \end{center}% + \vfill + \fi% + \endgroup% +}%makeparttitle + +\renewcommand{\maketitle}{% + %\interlinepenalty \@M + \normalfont + \begingroup + \newlinestretch{1}% + \begin{titlepage}% + \phantomsection% + \pdfbookmark[0]{Titlepage}{title}% + \title@top% + \ifstrictmargins% + \vfill + \title@text% contains a \vfill between \degree and \department + \else% + \vfill%\vspace*{1.35in} + \title@text% contains a \vfill between \degree and \department + \vspace*{.2in}% + \fi% + \setcounter{page}{1}% + \end{titlepage}% this has a \newpage + \endgroup% + \setcounter{page}{2}% +}%maketitle + + +% +%% Change \begin{abstract}...\end{abstract} to follow guidelines +%% and put the abstract on a separate page (checking @openright). +% +\renewenvironment{abstract}{% + \typeout{***************** Abstract ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \addtocounter{page}{-1} + \phantomsection% +% \addcontentsline{toc}{chapter}% +% {\texorpdfstring{\Makeuppercase{Abstract}}{Abstract}} + \thispagestyle{empty}% + \begin{singlespaced}% + \begin{center}% + \@title\\% + \ \\% + \@author\\% + \ \\% + \pageref{LastPage} Pages\\% + \ \\% + Directed by \@advisorforabstract% + \end{center}% + \end{singlespaced}% + \begingroup% + \hspace*{2.5em}% + %% Adjust the line spacing: if it was less than 1 1/2, + %% increase it to 1 1/2; if it was between 1 1/2 and 2, + %% increase it to 2; otherwise, leave it as is. + \ifdim \baselinestretch pt < 1.25pt \newlinestretch{1.25}\else% + \ifdim \baselinestretch pt < 1.66pt \newlinestretch{1.66}\fi\fi% +}{\par\endgroup}%abstract +% +%% \begin{summary}...\end{summary} formats a +%% summary section (identical to an abstract section, +%% except that the title is ``SUMMARY'') +% +\newenvironment{summary}{% + \typeout{***************** Summary ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Summary}}{Summary}} + \chapter*{\MakeUppercase{Summary}} + \vskip 0.5in + \begingroup + \hspace*{2.5em} + %% Adjust the line spacing: if it was less than 1 1/2, + %% increase it to 1 1/2; if it was between 1 1/2 and 2, + %% increase it to 2; otherwise, leave it as is. + \ifdim \baselinestretch pt < 1.25pt \newlinestretch{1.25}\else + \ifdim \baselinestretch pt < 1.66pt \newlinestretch{1.66}\fi\fi +}{\par\endgroup}%summary +% +%% \begin{dedication}...\end{dedication} formats a +%% dedication section +% +\newcommand{\dedicationtop}{\vspace*{\stretch{1}}} +\newcommand{\dedicationbottom}{\bigskip\bigskip\vspace*{\stretch{1}}} +\newenvironment{dedication}{% + \typeout{***************** Dedication ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Dedication}}{Dedication}} + \ifdedicationheading + \chapter*{\MakeUppercase{Dedication}} + \else + \chapter*{} + \fi + \vskip 0.5in + \begingroup + \begin{itshape}\dedicationtop +}{\dedicationbottom\end{itshape}\par\endgroup}%dedication +% +%% \begin{acknowledgements}...\end{acknowledgements} formats an +%% acknowledgements section +% +\newenvironment{acknowledgements}{% + \typeout{***************** Acknowledgements ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Acknowledgements}}{Acknowledgements}} + \chapter*{\MakeUppercase{Acknowledgements}} + \vskip 0.5in + \begingroup +}{\par\endgroup}%Acknowledgements +% +%% \begin{preface}...\end{preface} formats an +%% preface section +% +\newenvironment{preface}{% + \typeout{***************** Preface ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Preface}}{Preface}} + \chapter*{\MakeUppercase{Preface}} + \vskip 0.5in + \begingroup +}{\par\endgroup}%preface + +% +%% stuff to generate a signature page +% +\newlength{\signature@width} +\setlength{\signature@width}{3.3in} +\let\signature@body\signature@bodyonecol +\newcounter{signatures} +\newcounter{cnt@Lsig} +\newcounter{cnt@Rsig} +\def\R@signatures{} +\def\L@signatures{} + +% Fun stuff from the TeXbook +\toksdef\ta=0 \toksdef\tb=2 % token list registers for temp use +\long\def\leftappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}% + \edef#2{\the\ta\the\tb}} +\long\def\rightappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}% + \edef#2{\the\tb\the\ta}} +\def\concatenate#1=#2{\ta=\expandafter{#2}\tb=\expandafter{#3}% + \edef#1{\the\ta\the\tb}} +\def\GTlop#1\to#2{\expandafter\GTlopoff#1\GTlopoff#1#2} +\long\def\GTlopoff\\#1#2\GTlopoff#3#4{\def#4{#1}\def#3{#2}} + +\newcommand{\dosiglist}[2]{% + \GTlop#1\to\@@sig \@@sig + \GTlop#1\to\@@sig \@@sig + \GTlop#1\to\@@sig \@@sig + % we know that cnt@Lsig is at least 3, maybe 4. 5 is right out. + \ifnum \value{#2} = 4 + \GTlop#1\to\@@sig \@@sig + \fi +} + +\newcommand{\signature}[1]{% + \ifx\empty#1{}\empty% + \else% + \parbox[t]{\signature@width}{% +% \rule{\signature@width}{.01in}\\ + \GTlop#1\to\signame% + \GTlop#1\to\sigdept% + \GTlop#1\to\siginst% + \parbox[t]{\signature@width}{\begin{raggedright}\signame \hfill\\ + \sigdept\hfill\\ + \emph{\siginst}\end{raggedright}\hfill}\\ + \vspace{12pt}% + } + \fi% +} + +\newcommand{\signature@bodyonecol}{% + \begin{flushright} + \parbox{\signature@width}{\begin{flushleft}Approved by:\\ \end{flushleft}}\\ +% \vspace*{0.3in} + \ifx\empty\@committeechair{}\empty% + \else% + \signature{\@committeechair}% + \fi% + \ifx\empty\@principaladvisor{}\empty% + \else% + \signature{\@principaladvisor}% + \fi% + \signature\@firstreader + \signature\@secondreader + \signature\@thirdreader + \signature\@fourthreader + \signature\@fifthreader + \signature\@sixthreader + \vspace{.5in} + %\makebox[\signature@width]{Date Approved by Chairman \hrulefill}\\ + \parbox{\signature@width}{\begin{flushleft}Date Approved: \@approveddate\end{flushleft}}\\ + \end{flushright} +} + +\newcommand{\signature@bodytwocol}{% + \begin{flushleft} + Approved by:\\ + \vspace*{12pt} + \GTlop\L@signatures\to\@@sigLone% + \GTlop\L@signatures\to\@@sigLtwo% + \GTlop\L@signatures\to\@@sigLthree% + \ifnum\value{cnt@Lsig}=4 + \GTlop\L@signatures\to\@@sigLfour + \else\def\@@sigLfour{} + \fi + + \GTlop\R@signatures\to\@@sigRone% + \GTlop\R@signatures\to\@@sigRtwo% + \ifnum\value{cnt@Rsig}=2 + \def\@@sigRthree{Date Approved: \@approveddate} + \def\@@sigRfour{} + \fi + \ifnum\value{cnt@Rsig}=3 + \GTlop\R@signatures\to\@@sigRthree% + \def\@@sigRfour{Date Approved: \@approveddate} + \fi + \ifnum\value{cnt@Rsig}=4 + \GTlop\R@signatures\to\@@sigRthree% + \GTlop\R@signatures\to\@@sigRfour% + \fi + + \begin{tabular*}{\textwidth}[t]{@{\extracolsep{\fill}}ll} + \@@sigLone & \@@sigRone\\% + \@@sigLtwo & \@@sigRtwo\\% + \@@sigLthree & \@@sigRthree\\% + \@@sigLfour & \@@sigRfour\\ + \ifnum\value{cnt@Rsig}=4 + \space &% + Date Approved: \@approveddate + \fi + \end{tabular*} + \end{flushleft} +} + +\def\add@Lsig#1{ + \ifx#1\@empty\relax\else% + \rightappenditem#1\to\L@signatures + \addtocounter{cnt@Lsig}{1}% + \fi +} +\def\add@Rsig#1{% + \ifx\@empty#1\relax\else + \rightappenditem#1\to\R@signatures + \addtocounter{cnt@Rsig}{1}% + \fi +} +\newcommand{\makesignature}{% + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \pdfbookmark[0]{Signatures}{signatures}% + % do not addtocontents (although it is in bookmarklist) + \ifx\@empty\@committeechair\relax\else + \addtocounter{signatures}{1}% + \GTlop\@committeechair\to\z% + \leftappenditem{\z, \mbox{Committee Chair}}\to\@committeechair% + \add@Lsig{\signature{\@committeechair}} + \fi + \ifx\@empty\@principaladvisor\relax\else + \addtocounter{signatures}{1}% + \GTlop\@principaladvisor\to\a% + \leftappenditem{\a, \advis@r}\to\@principaladvisor% + \add@Lsig{\signature{\@principaladvisor}} + \fi + \ifx\@empty\@firstreader\relax\else + \addtocounter{signatures}{1}% + \add@Lsig{\signature\@firstreader} + \fi +% The first three will ALWAYS be in the left column, but now we must compute +% the total number of sigs before doing anything else. + \ifx\@empty\@secondreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@thirdreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@fourthreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@fifthreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@sixthreader\relax\else\addtocounter{signatures}{1}\fi + \typeout{SIGNATURES: \arabic{signatures}} + \ifnum \value{signatures} < 5 % fuggeddaboutit. Only one column + \let\signature@body\signature@bodyonecol + \setlength{\signature@width}{0.52\textwidth} + \else + \let\signature@body\signature@bodytwocol + \setlength{\signature@width}{0.46\textwidth} + \newcounter{halfsig} + \setcounter{halfsig}{\value{signatures} - (\value{signatures} / 2)} + \typeout{LEFTCNT: \arabic{cnt@Lsig} HALF: \arabic{halfsig}} + \ifnum \value{cnt@Lsig} < \value{halfsig} + \add@Lsig{\signature\@secondreader} + \ifnum \value{cnt@Lsig} < \value{halfsig} + \ifx\@empty\@thirdreader\relax\else\add@Lsig{\signature\@thirdreader}\fi % can't ever have more than this in left column + \ifx\@empty\@fourthreader\relax\else\add@Rsig{\signature\@fourthreader}\fi + \ifx\@empty\@fifthreader\relax\else\add@Rsig{\signature\@fifthreader}\fi + \ifx\@empty\@sixthreader\relax\else\add@Rsig{\signature\@sixthreader}\fi + \else + \ifx\@empty\@thirdreader\relax\else\add@Rsig{\signature\@thirdreader}\fi + \ifx\@empty\@fourthreader\relax\else\add@Rsig{\signature\@fourthreader}\fi + \ifx\@empty\@fifthreader\relax\else\add@Rsig{\signature\@fifthreader}\fi + \ifx\@empty\@sixthreader\relax\else\add@Rsig{\signature\@sixthreader}\fi + \fi + \else + \ifx\@empty\@secondreader\relax\else\add@Rsig{\signature\@secondreader}\fi + \ifx\@empty\@thirdreader\relax\else\add@Rsig{\signature\@thirdreader}\fi + \ifx\@empty\@fourthreader\relax\else\add@Rsig{\signature\@fourthreader}\fi + \ifx\@empty\@fifthreader\relax\else\add@Rsig{\signature\@fifthreader}\fi + \ifx\@empty\@sixthreader\relax\else\add@Rsig{\signature\@sixthreader}\fi + \fi + \fi + \title@top + \vfill + \begin{center} + \signature@body + \ifstrictmargins\relax\else + \vspace{.2in} + \mbox{} + \fi + \end{center} + \thispagestyle{empty} +} +% +%% beforepreface +% +\newcommand{\beforepreface}{% + \newlinestretch{1.0}% + \pagenumbering{roman}% + \pagestyle{\front@pagestyle}% + \iftitlepage% + \maketitle% + \fi% + \ifmultivolume% + \part{}% + \fi% + \ifsignaturepage% + \makesignature% + \fi% + \newlinestretch{\@spacing}% +} +% +%% \prefacesection is here for backward compatibility with +%% the GT-thesis.sty package, and to add preface sections +%% that are not already defined. For Abstract, Preface, +%% Dedication, and Acknowlegements sections, use the +%% appropriate environments: \begin{abstract}...\end{abstract} +%% etc. +% +\newcommand{\prefacesection}[1]{% + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{#1}}{#1}} + \newlinestretch{\@spacing} + \chapter*{\MakeUppercase{#1}} + \vskip 0.5in +} +\newcommand{\afterpreface}{% + \if@draft% + \else% + \if@twoside% + \if@openright% + \cleardoublepage% + \fi% + \fi% + \fi% + \newpage% + \pagenumbering{arabic}% + \pagestyle{\body@pagestyle}% + \newlinestretch{\@spacing}% +} + +% dummy commands to prevent recursion errors... +\newcommand{\gtcontentsname}{} +\newcommand{\toccontentlinestring}{} +\newcommand{\tocpdfbookmarkstring}{} +\newcommand{\gtlistfigurename}{} +\newcommand{\lofcontentlinestring}{} +\newcommand{\lofpdfbookmarkstring}{} +\newcommand{\gtlisttablename}{} +\newcommand{\lotcontentlinestring}{} +\newcommand{\lotpdfbookmarkstring}{} + +\newcommand{\settocstring}[1]{% + \renewcommand{\gtcontentsname}{#1} + \renewcommand{\contentsname}{\Makeuppercase{#1}} + \renewcommand{\toccontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\tocpdfbookmarkstring}{#1} +} +\newcommand{\setlofstring}[1]{% + \renewcommand{\gtlistfigurename}{#1} + \renewcommand{\listfigurename}{\Makeuppercase{#1}} + \renewcommand{\lofcontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\lofpdfbookmarkstring}{#1} +} +\newcommand{\setlotstring}[1]{% + \renewcommand{\gtlisttablename}{#1} + \renewcommand{\listtablename}{\Makeuppercase{#1}} + \renewcommand{\lotcontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\lotpdfbookmarkstring}{#1} +} +\settocstring{Table of Contents} +\setlofstring{List of Figures} +\setlotstring{List of Tables} + +% +%% All this junk is for handling the spacing in the TOC, LOF, and LOT. +% +\newlength{\gt@tocentryskip@value} +\newlength{\gt@beforepartskip@value} +\newlength{\gt@beforechapskip@value} +\newlength{\gt@beforesecskip@value} +\newlength{\gt@beforesubsecskip@value} +\newlength{\gt@beforesubsubsecskip@value} +\newlength{\gt@beforeparaskip@value} +\newlength{\gt@beforesubparaskip@value} +\newlength{\gt@beforefigskip@value} +\newlength{\gt@beforetableskip@value} + +\def\set@gttocskip#1{% + \setlength{\gt@tocentryskip@value}{#1} + % set base lengths + \setlength{\gt@beforepartskip@value}{2\gt@tocentryskip@value} + \setlength{\gt@beforechapskip@value}{1.5\gt@tocentryskip@value} + \setlength{\gt@beforesecskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforesubsecskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforesubsubsecskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforeparaskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforesubparaskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforefigskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforetableskip@value}{\gt@tocentryskip@value} + % add glue + \addtolength{\gt@beforepartskip@value}{\z@ \@plus\p@} + \addtolength{\gt@beforechapskip@value}{\z@ \@plus\p@} + \addtolength{\gt@beforesecskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforesubsecskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforesubsubsecskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforeparaskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforesubparaskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforefigskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforetableskip@value}{\z@ \@plus.2\p@} +} +\set@gttocskip{10pt} + +% gobble the pagenumber +\newcommand*{\l@part@pagenumfont}[1]{} +% note: we don't do the fancy volume title centering here, because +% we use {part} for the \labelchaptersintableofcontents stuff. And +% that is NOT centered. +\renewcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{\gt@beforepartskip@value}% + \setlength\@tempdima{3em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \interlinepenalty\@M + {\leavevmode #1\hfil \hb@xt@\@pnumwidth{\hss \l@part@pagenumfont{#2}}}\par + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand*{\gt@dottedtocline}[5]{% + \ifnum #1>\c@tocdepth \else + \addvspace{\gt@@toclineskip} + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +\renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{\gt@beforechapskip@value}% + \setlength\@tempdima{2em}% was 1.5em, but that's too small. Add 0.5em to all others + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\normalfont\normalcolor + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hss\bfseries #2} + \par + \penalty\@highpenalty + \endgroup + \fi} +\renewcommand*\l@section{% + \let\gt@@toclineskip=\gt@beforesecskip@value + \gt@dottedtocline{1}{2.0em}{2.3em}} +\renewcommand*\l@subsection{% + \let\gt@@toclineskip=\gt@beforesubsecskip@value + \gt@dottedtocline{2}{4.3em}{3.2em}} +\renewcommand*\l@subsubsection{% + \let\gt@@toclineskip=\gt@beforesubsubsecskip@value + \gt@dottedtocline{3}{7.5em}{4.1em}} +\renewcommand*\l@paragraph{% + \let\gt@@toclineskip=\gt@beforeparaskip@value + \gt@dottedtocline{4}{10.5em}{5em}} +\renewcommand*\l@subparagraph{% + \let\gt@@toclineskip=\gt@beforesubparaskip@value + \gt@dottedtocline{5}{12.5em}{6em}} +\renewcommand*\l@figure{% + \let\gt@@toclineskip=\gt@beforefigskip@value + \gt@dottedtocline{1}{1.5em}{2.3em}}% this is indented 1.5em so that + % if you wish, you can a 'Figure' header + % centered above the numbers using \addtocontents +\renewcommand*\l@table{% + \let\gt@@toclineskip=\gt@beforetableskip@value + \gt@dottedtocline{1}{1.5em}{2.3em}}% ditto + +\newlength{\gt@tmpa} +\newcommand{\do@figurespage}{% + \iffigurespage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}{\lofcontentlinestring} + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \listoffigures + } + \newpage + \fi +} +\newcommand{\do@tablespage}{% + \iftablespage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}{\lotcontentlinestring} + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \listoftables + } + \newpage + \fi +} +\newcommand{\do@contentspage}{% + \ifcontentspage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \pdfbookmark[0]{\tocpdfbookmarkstring}{toc}% + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \tableofcontents + } + \newpage + \fi +} +\newcommand{\do@losapage}{} +\newcommand{\do@glossarypage}{} +\newcommand{\do@indexpage}{} + +\newcommand{\contents}{% + \newpage + \newlinestretch{\@spacing} + \do@contentspage + \do@tablespage + \do@figurespage + \do@losapage + \do@glossarypage +} + +%%%%%% Main Matter Commands and Environments +%% +%% redefine chapter headings style +%% redefine appendix headings style +%% redefine section headings style +%% number figures and tables sequentially throughout, rather +%% than restarting for each chapter. Ditto equations. +%% redefine macro for floats (incl. figures and tables) +%% so that single spacing is used +%% define a "gtindent" command for paragraph indents: +%% blank line + six space first line indentation +%% settocdepth - use this to change how "deep" to number +%% in the table of contents for different sections; e.g. +%% subsubsections for chapters, then switch to chapter-only +%% for appendices. + +% This package uses David Carlisle's \@removefromreset command as +% specified in the remreset package available from CTAN as +% macros/latex/contrib/supported/carlisle/remreset.sty +% It is \provided here as a convenience to the user, and with +% David Carlisle's permission. remreset.sty is licensed under +% the LPPL; David has explicitly given permission to include +% it here, under the GPL. +% START OF DAVID CARLISLE'S CODE +\newcommand{\@removefromreset}[2]{{% + \expandafter\let\csname c@#1\endcsname\@removefromreset + \def\@elt##1{% + \expandafter\ifx\csname c@##1\endcsname\@removefromreset + \else + \noexpand\@elt{##1}% + \fi}% + \expandafter\xdef\csname cl@#2\endcsname{% + \csname cl@#2\endcsname}}} +% END OF DAVID CARLISLE'S CODE +%%%%% See http://www.tex.ac.uk/cgi-bin/texfaq2html?label=running-nos + +% +%% Figures and tables are to be numbered sequentially throughout the +%% thesis, rather than within chapters; for style consistency, do +%% equations the same. +% +\@removefromreset{figure}{chapter} +\@removefromreset{table}{chapter} +\@removefromreset{equation}{chapter} +\def\thefigure{\@arabic\c@figure} +\def\thetable{\@arabic\c@table} +\def\theequation{\arabic{equation}} + +% +%% Redefine the macro used for floats (including figures and tables) +%% so that single spacing is used. +%% (Note \def\figure{\@float{figure}set single spacing} doesn't work +%% because figure has an optional argument) +%% +%% This code was copied directly from latex.ltx, but with the +%% \newlinespacing{} macro added to it. +% +\def\@xfloat #1[#2]{% + \@nodocument + \def \@captype {#1}% + \def \@fps {#2}% + \@onelevel@sanitize \@fps + \def \reserved@b {!}% + \ifx \reserved@b \@fps + \@fpsadddefault + \else + \ifx \@fps \@empty + \@fpsadddefault + \fi + \fi + \ifhmode + \@bsphack + \@floatpenalty -\@Mii + \else + \@floatpenalty-\@Miii + \fi + \ifinner + \@parmoderr\@floatpenalty\z@ + \else + \@next\@currbox\@freelist + {% + \@tempcnta \sixt@@n + \expandafter \@tfor \expandafter \reserved@a + \expandafter :\expandafter =\@fps + \do + {% + \if \reserved@a h% + \ifodd \@tempcnta + \else + \advance \@tempcnta \@ne + \fi + \fi + \if \reserved@a t% + \@setfpsbit \tw@ + \fi + \if \reserved@a b% + \@setfpsbit 4% + \fi + \if \reserved@a p% + \@setfpsbit 8% + \fi + \if \reserved@a !% + \ifnum \@tempcnta>15 + \advance\@tempcnta -\sixt@@n\relax + \fi + \fi + }% + \@tempcntb \csname ftype@\@captype \endcsname + \multiply \@tempcntb \@xxxii + \advance \@tempcnta \@tempcntb + \global \count\@currbox \@tempcnta + }% + \@fltovf + \fi + \global \setbox\@currbox + \color@vbox + \normalcolor + \vbox \bgroup + \newlinestretch{1.0} + \hsize\columnwidth + \@parboxrestore + \@floatboxreset +} + +% Redefine the macro used for caption labels, for a (slightly) +% fancier format. Feel free to use the caption2 package instead... +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{\textbf{#1: }#2}% + \ifdim \wd\@tempboxa >\hsize + \textsf{\textbf{#1: }}#2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} + +% Redefine the macro used for footnotes to use single spacing +\long\def\@footnotetext#1{% + \insert\footins{% + \newlinestretch{1.0}% + \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}% + }% +} + +% +%% Paragraph indents (6 spaces) +%% inserts a blank line and then indents the paragraph by 6 spaces +% +\newcommand{\gtindent}{\par \hspace{0.25in}} + +% +%% Chapter headings - centered, all caps, chapter number - roman numeral +% +% +%% Use \labelchaptersintableofcontents to insert an entry into the toc +%% that says ``CHAPTERS'' just before Chapter 1. +% Use \labelappendicesintableofcontents to insert an entry into the toc +%% that says ``APPENDICES'' just before Appendix A. +% +\let\orig@contentsline=\contentsline +\newcommand{\labelchaptersintableofcontents}[1][CHAPTERS]{% + \addtocontents{toc}{\protect\orig@contentsline{part}{#1}{}} +} +\newcommand{\labelappendicesintableofcontents}[1][APPENDICES]{% + \addtocontents{toc}{\protect\orig@contentsline{part}{#1}{}}% +} + +\renewcommand{\chaptername}{CHAPTER} +\renewcommand{\appendixname}{APPENDIX} +\renewcommand{\thepart}{\@Roman\c@part} +\renewcommand{\partname}{Volume} + +% +%% \thegtchapter is used so that we can have ROMAN numbers in the +%% chapter headings at the beginning of each chapter, but use +%% \thechapter for ARABIC numbers in the running heads on each +%% page within the chapter. +%% +%% You can Change this behavior by redefining \thegtchapter +%% within your document: +%% \renewcommand{\thegtchapter}{\thechapter} +% +\newcommand{\thegtchapter}{\@Roman\c@chapter} +\def\chapapp@tocdepth{\expandafter\chapter@tocdepth} +% +%% The following two def's provide the Indirection needed to work +%% with hyperref package, since hyperref redefines @chapter and +%% @schapter +% +\def\chapapp@chapter{\chap@chapter} +\def\chapapp@schapter{\chap@schapter} +% +%% Make @chapter and @schapter wrappers for (chap@chapter or app@chapter) +%% and (chap@schapter or app@schapter). This indirection is necessary to +%% work well with the hyperref package. +% +\def\my@empty{} +\def\@chapter[#1]#2{% + \def\my@temp{#1}% + \ifx\my@temp\my@empty + \chapapp@chapter{#2} + \else + \chapapp@chapter[#1]{#2} + \fi +} +\def\@schapter#1{% + \chapapp@schapter{#1} +} +% +%% The actual guts of the chapter heading routines +% +\renewcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \if@tcpage% DO NOT use the \front@pagestyle macro here. + {\thispagestyle{tcplain}} + \else + {\thispagestyle{plain}}%report.cls temporarily resets pagestyle to plain. Do the same. + \fi + \settocdepth{\chapapp@tocdepth} + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter +} +\def\chap@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thegtchapter.}% + \addcontentsline{toc}{chapter}% + {\texorpdfstring% + {\protect\numberline{\thegtchapter}\Makeuppercase{#1}}% + {Chapter \thechapter\space\textemdash\space#1}}% + \else + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{#1}}{#1}}% + \fi + \chaptermark{#1}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi +} +\def\@makechapterhead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \centering \large \bfseries \@chapapp\space \thegtchapter + \par\nobreak + \vskip 30\p@ + \fi + \interlinepenalty\@M + \centering \large \bfseries \MakeUppercase{#1}\par\nobreak + \vskip 30\p@ + } +} +\def\chap@schapter#1{% + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi +} +\def\@makeschapterhead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \interlinepenalty\@M + \centering \large \bfseries #1\par\nobreak + \vskip 30\p@ + } +} +% +%% Support for multi-volume thesis. +%% +%% in the premable, set \multivolumetrue and then +%% use the \part{} commannd where you want volume 2 +%% to begin, etc. Do not give names to your volumes (that is, +%% use ``\part{}'' and not ``\part{Some title}''), because +%% the Graduate Office Guidelines do not allow separate +%% titles for each volume. +% +% we temporarily set the pagenumber to a big negative number, for +% two reasons: 1) so that it doesn't duplicate the other page numbers, +% because the volume title pages are unnumbered and uncounted. We +% can't merely allow the autoincrement of pagenum and then addtocounter{page}{-1}, +% because then both pages would have the same number. 2) it's a BIG negative +% number because we allow it to increment as each \part is declared, so that +% the volume title pages don't duplicate each others pagenums. +\newcounter{part@savepagenum} +\newcounter{part@pagenum} +\setcounter{part@pagenum}{-101} % can't have more than 50 parts, +% but this number must be odd, or twopage dvi's are messed up. +\renewcommand{\part}{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{empty}% + \phantomsection% + \setcounter{part@savepagenum}{\value{page}} + \setcounter{page}{\value{part@pagenum}} + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part} + \typeout{\partname\space\thepart.}% + \addcontentsline{toc}{part}% + {\texorpdfstring% + {\noindent\protect\makebox[\@tocrmarg]{}% + {\protect\makebox[\textwidth - \@tocrmarg - \@tocrmarg]% dadgum \hfill doesn't work without mbox... + {\hfill\Makeuppercase{\partname}\space\protect{\thepart}\hspace{1em}\Makeuppercase{#1}\hfill}}}% + {Volume \thepart}}% + \else + \addcontentsline{toc}{part}% + {\texorpdfstring% + {\Makeuppercase{#1}}% + {#1}}% + \fi + \markboth{}{} + {\interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \make@parttitle{#1} + \else + \make@parttitle{} + \fi} + \@endpart} +\def\@spart#1{% + {\interlinepenalty \@M + \normalfont + \make@parttitle{}} + \@endpart} +\def\@endpart{% + \vfill\newpage\addtocounter{part@pagenum}{1}%don't count this page + \if@twoside + \if@openright + \null + \thispagestyle{empty}% + \newpage\addtocounter{part@pagenum}{1}%if we need to add another page, don't count it either + \fi + \fi + \if@tempswa + \twocolumn + \fi + \setcounter{page}{\value{part@savepagenum}} +} +% +%% Section +%% Heading 1: Large, bold, and italic, at left margin +%% Heading 2: Bold, at left margin +%% Heading 3: Italic, indented 0.25in from left margin +% +\renewcommand{\section}{% + \@startsection{section}{1}{\z@}% + {-3.25ex \@plus -1ex \@minus -.2ex}% + {1.5ex \@plus.2ex}% + {\newlinestretch{1}\normalfont\large\bfseries\itshape} +} +\renewcommand{\subsection}{% + \@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\newlinestretch{1}\normalfont\normalsize\bfseries} +} +\renewcommand{\subsubsection}{% + \@startsection{subsubsection}{3}{0.25in}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\newlinestretch{1}\normalfont\normalsize\itshape} +} + +\renewcommand{\appendix}{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \renewcommand{\@chapapp}{\appendixname} + \thispagestyle{plain}% Do NOT use the \back@pagestyle macro here + \settocdepth{\appendix@tocdepth} + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \def\thechapter{\@Alph\c@chapter} + \def\chapapp@tocdepth{\expandafter\appendix@tocdepth} + \def\chapapp@chapter{\app@chapter} + \def\chapapp@schapter{\app@schapter} + \renewcommand{\thesection}{\thechapter.\@arabic\c@section} +} +\def\app@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\texorpdfstring% + {\@chapapp\space\protect\numberline{\thechapter}\space---\space\Makeuppercase{#1}}% + {Appendix\space\thechapter\space\textemdash\space#1}}%must specify "---" explicitly here + \else + \addcontentsline{toc}{chapter}{\Makeuppercase{#1}}% + \fi + \chaptermark{#1}% + \if@twocolumn + \@topnewpage[\@makeapphead{#2}]% + \else + \@makeapphead{#2}% + \@afterheading + \fi +} +\def\@makeapphead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \centering \large \bfseries \appendixname\space \thechapter + \par\nobreak + \vskip 30\p@ + \interlinepenalty\@M + \centering \large \bfseries \MakeUppercase{#1}\par\nobreak + \vskip 35\p@ + } +} +\def\app@schapter#1{% + \if@twocolumn + \@topnewpage[\@makesapphead{#1}]% + \else + \@makesapphead{#1}% + \@afterheading + \fi +} +\def\@makesapphead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \interlinepenalty\@M + \centering \large \bfseries #1\par\nobreak + \vskip 30\p@ + } +} +%% end of \appendix environment definitions + +%% \settocdepth - use this to change how "deep" to number +%% in the table of contents for different sections; e.g. +%% subsubsections for chapters, then switch to chapter-only +%% for appendices. +%% tocdepth is reset to the value in \setchaptertocdepth +%% at each \chapter{}, or to the value in \setappendixtocdepth +%% at each \chapter{} after the \appendix command. So, if +%% you want to change the defaults, use \setchaptertocdepth and +%% \setappendixtocdepth. To temporarily change depth for the +%% current section, use a different function: \settocdepth[x]. +%% You should never need to call \setcounter{tocdepth}{..} +%% directly. +%% +%% 0 = chapter only +%% 1 = chapter + sections +%% 2 = chapter, section, subsection +%% 3 = chapter, section, subsection, subsubsection +% +\newcommand{\settocdepth}[1]{% + \addtocontents{toc}{\protect\setcounter{tocdepth}{#1}} +} +\newcommand{\setappendixtocdepth}[1]{% + \def\appendix@tocdepth{#1} +} +\newcommand{\setchaptertocdepth}[1]{% + \def\chapter@tocdepth{#1} +} + +%%%%%% Back Matter Commands and Environments +%% +%% \beforepostface +%% \thebibliography redefined so it matches GT's requirements +%% \begin{vita}...\end{vita} +%% \postfacesection{other-title} +%% --- followed by section text +%% \afterpostface +%% \references +%% --- creates the bibliography +%% \begin{postliminary}...\end{postliminary} +%% --- preferred to \beforepostface and \afterpostface + +% +%%%%%% New formatting environments and commands. +% +%% \begin{postliminary} sets the pagestyle for the +%% postliminary sections. +%% +%% \end{postliminary} resets the pagestyle and +%% performs any other cleanup. +% +\newenvironment{postliminary}% + {\pagestyle{\back@pagestyle}}% + {\settocdepth{\chapter@tocdepth}% + \pagestyle{\body@pagestyle}} + +% +%% \begin{vita}...\end{vita} formats a +%% vita section +% +\newenvironment{vita}{% + \typeout{***************** Vita ******************} + \newlinestretch{\@spacing} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Vita}}{Vita}} + \chapter*{\MakeUppercase{Vita}} + \@mkboth{\scshape\MakeUppercase{Vita}}% + {\scshape\MakeUppercase{Vita}}% + \vskip 0.5in + \begingroup +}{\par\endgroup}%Vita + +\newcommand{\beforepostface}{% + \pagestyle{\back@pagestyle} +}% + +% +%% \postfacesection is here for backward compatibility with +%% the GT-thesis.sty package, and to add postface sections +%% that are not already defined. (Appendices are not postface +%% material). Currently, the only predefined postface section +%% is Vita. Use \begin{vita}...\end{vita}. (``Index'' is a +%% postface section, but: it is defined in the add-on style +%% gatech-thesis-index.sty, and it doesn't use \postfacesection.) +% +\newcommand{\postfacesection}[1]{% + \newlinestretch{\@spacing} + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{#1}}{#1}} + \chapter*{\MakeUppercase{#1}} + \@mkboth{\scshape\MakeUppercase{#1}}% + {\scshape\MakeUppercase{#1}}% + \pagestyle{\back@pagestyle} + \vskip 0.5in +} +\newcommand{\afterpostface}{ + \settocdepth{\chapter@tocdepth}% + \pagestyle{\body@pagestyle} +} +\newcommand{\refname}{References} +\newcommand{\references}{% + \ifbibpage + \typeout{***************** References ******************} + \newlinestretch{1.0} + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{\refname}}{\refname}} +% \bibliographystyle{gatech-thesis} + \bibliography{\@bibfiles} + \fi +} + +%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%% +%% +%% redefine ``thebibliography'' environment so that title conforms to Georgia +%% Tech format (all caps, center of page) +%% +\renewenvironment{thebibliography}[1]{ + { \chapter*{\MakeUppercase{\refname}} + \@mkboth{\scshape\MakeUppercase\refname}% + {\scshape\MakeUppercase\refname}% + \pagestyle{\body@pagestyle}% REFERENCES uses BODY pagestyle, not endmatter. + \vskip 0.5in + } + \list{\@biblabel{\@arabic\c@enumiv}}% + { \settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv} + }% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty ``thebibliography'' environment} + \pagestyle{\back@pagestyle} + }% + \endlist +} + +% +%% Variations of \cleardoublepage that explicitly set the pagestyle +%% of any inserted blank page. +% +\newcommand{\clearemptydoublepage}% + {{\pagestyle{empty}\cleardoublepage}} +\newcommand{\clearplaindoublepage}% + {{\pagestyle{plain}\cleardoublepage}} +\newcommand{\cleartcplaindoublepage}% + {{\pagestyle{tcplain}\cleardoublepage}} +\newcommand{\cleargtthesisdoublepage}% + {{\pagestyle{gtthesis}\cleardoublepage}} + +\newcommand{\setfrontpagestyle}[1]{% + \gdef\front@pagestyle{#1} +} +\newcommand{\setbodypagestyle}[1]{% + \gdef\body@pagestyle{#1} +} +\newcommand{\setbackpagestyle}[1]{% + \gdef\back@pagestyle{#1} +} + +%%%%%% Page Styles +% +%% Redefine all four standard page styles (empty, plain, headings, +%% myheadings), based on the definitions in ``report'', so that they +%% conform to the GSO guidelines (and include draft information if +%% applicable). +%% +%% Also, define a new pagestyle ``tcplain'' which is just like ``plain'', +%% but puts page numbers in header (left/right 2page, or right 1page) +%% instead of at the bottom of the page. +%% +%% Then, define a new pagestyle ``gtthesis''. I like this one better +%% but the Graduate Studies Office doesn't. :-( +% +\renewcommand{\ps@empty}{ + \@tcpagefalse + \let\@mkboth\@gobbletwo + \def\@oddfoot{ + \if@draft + \blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT + \fi + }% + \let\@evenfoot\@oddfoot + \def\@oddhead{ + \if@draft + \tlDRAFT\hfil + {\slshape\small\today}\hfil\trDRAFT + \fi + }% + \let\@evenhead\@oddhead +}%ps@empty + +% +%% Pagestyle ``plain''. +% +\renewcommand{\ps@plain}{% + \@tcpagefalse% + \let\@mkboth\@gobbletwo% + \def\@oddfoot{% + \if@draft\blDRAFT\fi% + \hfil\thepage\hfil% + \if@draft\brDRAFT\fi% + }% + \let\@evenfoot\@oddfoot% + \def\@oddhead{% + \if@draft% + \tlDRAFT\hfil% + {\slshape\small\today}\hfil\trDRAFT% + \fi% + }% + \let\@evenhead\@oddhead% +}%ps@plain + +% +%% Pagestyle ``headings''. +% +\if@twoside % if two-sided printing + \renewcommand{\ps@headings}{% + \@tcpagefalse% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \let\@evenfoot\@oddfoot% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + {\slshape\rightmark}\hfil% + \thepage% + \if@draft\trDRAFT\fi% + }% + \def\@evenhead{% + \if@draft\tlDRAFT\fi% + \thepage\hfil% + {\slshape\leftmark}% + \if@draft\trDRAFT\fi% + }% + \def\chaptermark##1{% + \markboth + {\MakeUppercase{% + \ifnum\c@secnumdepth >\m@ne% + \@chapapp\ \thechapter. \ % + \fi ##1}% + }{}% + }% + \def\sectionmark##1{% + \markright% + {\MakeUppercase{% + \ifnum\c@secnumdepth >\z@% + \thesection. \ % + \fi ##1}% + }% + }% + }%ps@headings +\else % if one-sided printing + \renewcommand{\ps@headings}{% + \@tcpagefalse% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + {\slshape\rightmark}\hfil% + \thepage% + \if@draft\trDRAFT\fi% + }% + \def\chaptermark##1{% + \markright% + {\MakeUppercase{% + \ifnum\c@secnumdepth >\m@ne% + \@chapapp\ \thechapter. \ % + \fi ##1}% + }% + }% + }%ps@headings +\fi % @twoside + +% +%% Pagestyle ``myheadings''. +% +\renewcommand{\ps@myheadings}{% + \@tcpagefalse% + \let\@mkboth\@gobbletwo% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \let\@evenfoot\@oddfoot% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + {\slshape\rightmark}\hfil% + \thepage% + \if@draft\trDRAFT\fi% + }% + \def\@evenhead{% + \if@draft\tlDRAFT\fi% + \thepage\hfil% + {\slshape\leftmark}% + \if@draft\trDRAFT\fi% + }% + \let\chaptermark\@gobble\let\sectionmark\@gobble% +}%ps@myheadings + +% +%% Pagestyle ``gtthesis'' (based on ``headings''). +% +\if@twoside % if two-sided printing + \newcommand{\ps@gtthesis}{% + \@tcpagetrue% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \let\@evenfoot\@oddfoot% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + {\slshape\rightmark}\hfil% + \thepage% + \if@draft\trDRAFT\fi% + }% + \def\@evenhead{% + \if@draft\tlDRAFT\fi% + \thepage\hfil% + {\slshape\leftmark}% + \if@draft\trDRAFT\fi% + }% + \def\chaptermark##1{% + \markboth% + {\textsc{% + \ifnum\c@secnumdepth >\m@ne% + \@chapapp\ \thechapter. \ % + \fi ##1}% + }{}% + }% + \def\sectionmark##1{% + \markright% + {\textsc{% + \ifnum\c@secnumdepth >\z@% + \thesection. \ % + \fi ##1}% + } + }% + }%ps@gtthesis +\else % if one-sided printing + \newcommand{\ps@gtthesis}{% + \@tcpagetrue% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + {\slshape\rightmark}\hfil% + \thepage% + \if@draft\trDRAFT\fi% + }% + \def\chaptermark##1{% + \markright% + {\textsc{% + \ifnum\c@secnumdepth >\m@ne% + \@chapapp\ \thechapter. \ % + \fi ##1}% + } + }% + }%ps@gtthesis +\fi % @twoside + +% +%% Pagestyle ``tcplain'' (based on ``plain''). +% +\if@twoside % if two-sided printing + \newcommand{\ps@tcplain}{% + \@tcpagetrue% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \let\@evenfoot\@oddfoot% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + \hfil\thepage% + \if@draft\trDRAFT\fi% + }% + \def\@evenhead{% + \if@draft\tlDRAFT\fi% + \thepage\hfil% + \if@draft\trDRAFT\fi% + }% + }%ps@tcplain +\else % if one-sided printing + \newcommand{\ps@tcplain}{% + \@tcpagetrue% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + \hfil\thepage% + \if@draft\trDRAFT\fi% + }% + }%ps@tcplain +\fi % @twoside + + +%%%%%% Document Layout +% +%% Default line spacing: use current setting from options. +% +\linespacing{\@thesislnsp} +% +%% Page layout (see The LaTeX Companion pp.84-86). +% +%% By default, TeX puts the ``reference point'' one inch down and to +%% the right of the top-left corner of the page. This moves it back +%% to the top-left corner (making the rest of the layout easier to +%% define). +% +\setlength{\voffset}{-1in} +\setlength{\hoffset}{-1in} +% +%% Instead of hard-coding the page layout for letter paper +%% (8.5" x 11"), we will base it on \paperheight and \paperwidth, +%% so that it works with options that change the paper size. +% +\setlength{\textheight}{\paperheight} +\setlength{\textwidth}{\paperwidth} +% +%% Now, set the margin-dependent values. +% +\ifcase\@marginsize % set narrow margins: 1 1/4" left, 3/4" others +% +\addtolength{\textheight}{-1.5in} +\setlength{\topmargin}{.5in} +\setlength{\headsep}{.25in} +\setlength{\footskip}{.25in} +\addtolength{\textwidth}{-2in} +\setlength{\oddsidemargin}{1.25in} +\setlength{\evensidemargin}{.75in} +\setlength{\marginparwidth}{.5in} +\setlength{\marginparsep}{.125in} +% +\or % set normal margins: 1.5 " left, 1" others (modified 01/27/01) +% +\addtolength{\textheight}{-2in} +\setlength{\topmargin}{0.5in} +\setlength{\headsep}{0.5in} % reduced by headheight, below +\setlength{\footskip}{0.5in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\or % set wide margins: 1.5" left, 1" others, 2"" top (modified 01/14/00) +% +\addtolength{\textheight}{-3in} +\setlength{\topmargin}{1in} +\setlength{\headsep}{.5in} % reduced by headheight, below +\setlength{\footskip}{0.5in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\or % set extra wide margins: 1 1/2"" all around +% +\addtolength{\textheight}{-3in} +\setlength{\topmargin}{1in} +\setlength{\headsep}{.5in} +\setlength{\footskip}{.5in} +\addtolength{\textwidth}{-3in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1.5in} +\setlength{\marginparwidth}{1in} +\setlength{\marginparsep}{.25in} +% +\or % use oldmargin (OLD GT): 1.5" left and top, 1" others (modified 01/27/01) +% +\addtolength{\textheight}{-2.5in} +\setlength{\topmargin}{0.75in} +\setlength{\headsep}{0.75in} % reduced by headheight, below +\setlength{\footskip}{0.5in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\fi%@marginsize +% +%% Adjust \headsep to include height of running head. +% +\addtolength{\headsep}{-\headheight} +% +%% Adjust the vertical spacing between the main text and the notes, +%% and between successive notes if they are not single-spaced. +% +\setlength{\skip\footins}{.75\baselineskip} +\if@singlespacednotes +\else + \let\oldtextsize=\currenttextsize + \footnotesize + \setlength{\marginparpush}{\baselineskip} + \setlength{\footnotesep}{\baselineskip} + \oldtextsize +\fi % @singlespacednotes +% +%% \flushbottom looks silly with lots of extra space between paragraphs +%% better to put the "extra" space at the bottom of the page! +% +\raggedbottom +% +%% Default page style. +% +\pagestyle{plain} +\setfrontpagestyle{plain} +\setbodypagestyle{plain} +\setbackpagestyle{plain} + +% +%% Number subsubsections +% +\setcounter{secnumdepth}{3} + +% +%% Show subsubsections in table of contents +%% tocdepth is reset to the value in \setchaptertocdepth +%% at each \chapter{}, or to the value in \setappendixtocdepth +%% at each \chapter{} after the \appendix command. So, if +%% you want to change the defaults, use \setchaptertocdepth and +%% \setappendixtocdepth. To temporarily change depth for the +%% current section, use a different function: \settocdepth[x]. +%% You should never need to call \setcounter{tocdepth}{..} +%% directly. +%% +%% 0 = chapter only +%% 1 = chapter + sections +%% 2 = chapter, section, subsection +%% 3 = chapter, section, subsection, subsubsection +% +\setcounter{tocdepth}{3} % we call setcounter{tocdepth}{} directly here + % but user .tex files should not do this. +% We must insure that the last \setcounter command in the .toc +% file is NON-ZERO, or the listoffigures and listoftables become +% empty. Bad news. Unfortunately, that means we must do some +% raw TeXing here... +% You would think the \end{postliminary} code would fix this, and it +% does -- but only if you don't \include your vita. \input{vita} +% works great because the \end{postliminary} code causes +% \setcounter{tocdepth}{NONZERO} to be written. But, if you +% \include{vita} (or whatever the LAST section before \end{postliminary} +% is) and the \setcounter command from \end{postliminary} does NOT get +% written to the .aux file. Fooey. This is our workaround. +% BUT, do NOT remove the one from \end{postliminary}. When +% \input{vita}, THAT one gets used, and not this one! Clearly, +% a LaTeX bug. +\AtEndDocument{% + \immediate\write\@auxout% + {\string\@writefile{toc}{\string\setcounter{tocdepth}{3}}} + \clearpage\lastpage@putlabel}% + +\setchaptertocdepth{2} +\setappendixtocdepth{0} + +%% Disallow page breaks at hyphens (this will give some underfull vbox's, +%% so an alternative is to use \brokenpenalty=100 and manually search +%% for and fix such page breaks) +% +\brokenpenalty=10000 +\InputIfFileExists{gatech-thesis-patch.sty}{}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% End of GATECH-THESIS.CLS +%% +%% license information is in the COPYING file. The copyright notice +%% therein applies to the license itself, not to this file: the GNU +%% PUBLIC LICENSE is copyrighted by the Free Software Foundation. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- cgit v1.2.3