diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:58:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:58:42 +0000 |
commit | 9b5e238e48d9e40072ba8348fe272786a7cc13f6 (patch) | |
tree | 256022c4e9d46f47c4b6bf8970cd5eab015210fe /Master | |
parent | 61f0745791ae9c7baef406e9fd3c94b8a2615792 (diff) |
trunk/Master/texmf-dist/source/latex/uiucthesis
git-svn-id: svn://tug.org/texlive/trunk@569 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx | 1556 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins | 14 |
2 files changed, 1570 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx new file mode 100644 index 00000000000..70cc249ab42 --- /dev/null +++ b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx @@ -0,0 +1,1556 @@ +\def\fileversion{v2.0} \def\filedate{2005/02/01} +% \iffalse % this is a METACOMMENT ! +%% Package and Class "uiucthesis" for use with LaTeX2e. +% +%<class|package>\NeedsTeXFormat{LaTeX2e} +%<class>\ProvidesClass{uiucthesis} +%<package>\ProvidesPackage{uiucthesis} +%<class|package> [\filedate\ \fileversion\ UIUC Thesis (PJC)] +% +%<*driver> +\documentclass{ltxdoc} +\begin{document} +\title{The \textsf{uiucthesis} class + \thanks{This file has version number \fileversion, + last revised \filedate.}} +\author{Peter Czoschke\\czoschke@mrl.uiuc.edu\\ (Adapted from version by David Hull)} +\date{\filedate} +\maketitle +\DocInput{uiucthesis.dtx} +\end{document} +%</driver> +% \fi +% +% \CheckSum{1103} +% +% \MakeShortVerb{\|} +% +% \def\pkg#1{\textsf{#1}} +% \def\env#1{\textsf{#1}} +% +% \iffalse +%<*example> +% \fi +% \begin{abstract} +% Load the \pkg{uiucthesis} class for use with \LaTeX2e +% to produce a document that conforms +% to the format described in +% \emph{Handbook for Graduate Students Preparing to Deposit}\cite{Handbook}. +% \end{abstract} +% +% \section{The User Interface} +% +% This section describes how to use the \pkg{uiucthesis} class to +% produce a thesis satisfying the format requirements of the +% Grad College at UIUC. +% I assume that you are familiar with \LaTeX, and highly +% recommend that anyone attempting to use \LaTeX\ to produce a +% thesis have access to a copy of the \LaTeX\ book\cite{Lamport}. +% +% \subsection{Using \pkg{uiucthesis}} +% +% To write a thesis, you load the UIUC thesis definitions +% by loading the \pkg{uiucthesis} class at the beginning of +% your \LaTeX\ document with the |\documentclass| command. +% For example, +% \begin{quote} \hrule \begin{verbatim} +\documentclass[draftthesis,fullpage]{uiucthesis} +% \end{verbatim} \hrule \end{quote} +% \iffalse +%<example> +% \fi +% +% \DescribeMacro{[draftthesis]} +% \DescribeMacro{[fancy]} +% \DescribeMacro{[fullpage]} +% The \pkg{uiucthesis} class provides a number of options. +% The |[draftthesis]| option causes each page to have a header +% proclaiming the document to be a draft copy, along with the +% current time and date. +% It also omits the preliminary part of the +% thesis---currently only the copyright page. +% This is marginally useful for saving paper before you +% produce the final version of the thesis. +% The |[fancy]| style option produces slightly fancier chapter headings. +% The |[fullpage]| style option makes the margins as small as the +% format requirements allow. Because wide text columns are generally +% considered harder on the reader +% this is not the default, but is provided as an option because people +% seem to want it. +% The |[fancy]| and |[fullpage]| options are incompatible---choose +% one or the other. +% +% \DescribeMacro{[proquest]} +% This option is meant to be used when you are ready to deposit your thesis. +% For doctorates, the Grad College requires the submission of a specially +% formatted abstract for the ProQuest publication service. To produce this +% abstract, include the |[proquest]| option are reprocess your file. Everything +% in your \LaTeX\ document will be ignored except the contents of the \env{abstract} +% environment, which are printed out in the format required. Once the option is +% removed from the |\documentclass| command, you can reprocess your thesis as +% normal (the auxiliary files should be intact). To use this option, the name +% of your thesis advisor needs to be specified with the |\advisor| command (see +% below). +% +% \DescribeMacro{[edeposit]} +% Use this option if you are depositing your thesis electronically. The title page +% is different and the page numbering is slightly different since the committee +% approval form is not included with your thesis. If this option is used, you +% must specify your committee members with the |\committee| command (see below). +% +% \DescribeMacro{[toclabels]} +% This option includes the ``Page'' label on the right-hand side of the first page +% in the Table of Contents, List of Figures, and List of Tables. This is required by +% some departments (or you may just like the way it looks). +% +% \DescribeMacro{[offcenter]} +% In the last version of \pkg{uiucthesis}, the |[fancy]| option produced text with +% asymmetric margins so that enough room for the chapter numbers was available +% in the left margin. This version by default uses symmetric margins, even with the +% |[fancy]| option. If you have a lot of chapters, your chapter numbers may spill into +% the 1 inch margin required by the Grad College. In this case, the previous behavior +% can be reproduced with the |[offcenter]| option, which shifts the margins approximately +% 1/2 inch to the right. +% +% \subsection{The Title Page} +% +% The |\maketitle| command is redefined so that it creates a +% title page with the correct format for a thesis at UIUC. +% +% \DescribeMacro{\phdthesis} +% \DescribeMacro{\otherdoctorate} +% \DescribeMacro{\msthesis} +% \DescribeMacro{\othermasters} +% \DescribeMacro{\department} +% \DescribeMacro{\college} +% Use the |\phdthesis| or |\msthesis| to set the correct thesis type. +% If your thesis isn't for a ``Ph.D.'' or ``M.S.'', you can specify +% your degree with either\linebreak +% |\otherdoctorate{|\meta{degree name}|}{|\meta{abbreviation}|}| or\\ +% |\othermasters{|\meta{degree name}|}{|\meta{abbreviation}|}|.\\ +% For example, specifying |\phdthesis| is equivalent to giving the command\\ +% |\otherdoctorate{Doctor of Philosophy}{Ph.D.}|.\\ +% The default thesis type is |\phdthesis|. Set your department with\linebreak +% |\department{|\meta{department}|}|. This defines the field your degree will be in, so leave out +% ``Department of.'' +% The default department is ``Physics''. +% Define your college with |\college{|\meta{college}|}|. +% The default is college is ``Graduate College''; +% you shouldn't need to change it. +% +% \DescribeMacro{\schools} +% Use |\schools{|\meta{school list}|}| to list the previous degrees +% you have received and the schools that you received them from. +% Separate multiple degrees with |\\|. +% +% \DescribeMacro{\degreeyear} +% Use |\degreeyear{|\meta{year}|}| to define the year in which +% you will receive your degree. The default is the current year. +% +% \DescribeMacro{\advisor} +% \DescribeMacro{\adviser} +% Use |\advisor{|\meta{advisor name}|}| or |\adviser{|\meta{advisor name}|}| to specify the name of your +% advisor. This is needed to produce the ProQuest abstract +% (see the |[proquest]| option above). You only need to submit a +% ProQuest abstract if you are a doctoral candidate. +% +% \DescribeMacro{\committee} +% Use |\committee{|\meta{committee members}|}| to specify the members +% of your committee and their titles as you want them to appear on the +% title page. Separate members with |\\|. This is only needed for +% electronically deposited theses. +% +% \DescribeMacro{\volume} +% This macro provides nominal support for very long theses that must +% be broken up into multiple volumes. Use |\volume{|\meta{number}|}| +% to specify the volume number (a single arabic numeral). All this macro +% does is place the word VOLUME with the number you specify on the title +% page. You have to take care of what appears in each volume. The easiest +% way to do this is to create two separate source files, one for each +% volume. +% +% Here's how to produce an example similar to that in \cite{Handbook}. +% \begin{quote} \hrule \begin{verbatim} +\begin{document} + +\title{Coffee Consumption of Graduate Students \\ + Trying to Finish Dissertations} +\author{Juan Valdez} +\department{Food Science} +\schools{B.A., University of Columbia, 1981\\ + A.M., University of Illinois at Urbana-Champaign, 1986} +\phdthesis +\advisor{Java Jack} +\degreeyear{1994} +\maketitle +% \end{verbatim} \hrule \end{quote} +% \iffalse +%<example> +% \fi +% +% \subsection{Front Matter} +% +% \DescribeMacro{\frontmatter} +% Typically, a thesis might have an Abstract, a Dedication, some +% Acknowledgments, and a Preface before the Table of Contents. +% Use the |\frontmatter| command to start this preliminary section +% of the thesis. +% The |\frontmatter| command sets the page number of the next page +% to roman numeral iii (or ii if the |[edeposit]| option is used). +% (The title page is page i, and the certificate +% of committee approval, the ``red-bordered form,'' is page ii.) +% +% \DescribeMacro{abstract} +% The abstract should appear in the \env{abstract} environment. Normally, +% this just produces another chapter with |\chapter*{Abstract}|, +% but if the |[proquest]| option +% is specified, then the contents of this environment are used +% for the ProQuest abstract. +% +% \DescribeMacro{dedication} +% A dedication page can be printed with the \env{dedication} environment. +% This produces a separate page with the dedication centered horizontally +% and vertically, with the text in italics. +% +% After this front matter comes the Table of Contents, +% List of Tables, List of Figures, etc. Use the standard \LaTeX\ +% commands |\tableofcontents|, |\listoftables|, |\listoffigures|, etc., +% to generate them. +% In the \pkg{uiucthesis} format these lists are all single spaced. +% +% \DescribeMacro{symbollist} +% \DescribeMacro{symbollist*} +% Optionally, these tables can be followed by a List of Abbreviations and/or +% List of Symbols. Introduce these with the |\chapter*| command. To aid in +% making these lists, the \env{symbollist} and \env{symbollist*} environments are +% defined in \pkg{uiucthesis}. These environments produce a two-column list +% as illustrated below. By default the left column is 1 inch wide but can +% be specified with an optional argument. In the starred environment, the left +% column is left-justified, otherwise it is centered. See the example below. +% +% Here's an example of what the front matter of a typical +% thesis looks like. First comes the Abstract and the Dedication, both of +% which are optional. +% \begin{quote} \hrule \begin{verbatim} +\frontmatter + +%% Create an abstract that can also be used for the ProQuest abstract. +%% Note that ProQuest truncates their abstracts at 350 words. +\begin{abstract} +This is a comprehensive study of caffeine consumption by graduate +students at the University of Illinois who are in the very final +stages of completing their doctoral degrees. A study group of six +hundred doctoral students\ldots. +\end{abstract} + +%% Create a dedication in italics with no heading, centered vertically +%% on the page. +\begin{dedication} +To Father and Mother. +\end{dedication} + +%% Create an Acknowledgements page, many departments require you to +%% include funding support in this. +\chapter*{Acknowledgements} + +This project would not have been possible without the support of +many people. Many thanks to my adviser, Lawrence T. Strongarm, who +read my numerous revisions and helped make some sense of the +confusion. Also thanks to my committee members, Reginald Bottoms, +Karin Vegas, and Cindy Willy, who offered guidance and support. +Thanks to the University of Illinois Graduate College for awarding +me a Dissertation Completion Fellowship, providing me with the +financial means to complete this project. And finally, thanks to +my husband, parents, and numerous friends who endured this long +process with me, always offering support and love. + +%% The thesis format requires these lists to come in the following +%% order, all major sections after the Table of Contents must be listed +%% therein, which is automatically taken care of in uiucthesis: +%% +%% Table of Contents +%% List of Tables +%% List of Figures or List of Illustrations +%% List of Symbols and/or Abbreviations + +\tableofcontents +\listoftables +\listoffigures +% \end{verbatim} \hrule \end{quote} +% \iffalse +%<example> +% \fi +% +% If you want a List of Symbols or Abbreviations, you can do so as follows: +% \begin{quote} \hrule \begin{verbatim} +%% Create a List of Abbreviations. The left column +%% is 1 inch wide and left-justified +\chapter*{List of Abbreviations} + +\begin{symbollist*} +\item[CA] Caffeine Addict. +\item[CD] Coffee Drinker. +\end{symbollist*} + +%% Create a List of Symbols. The left column +%% is 0.7 inch wide and centered +\chapter*{List of Symbols} + +\begin{symbollist}[0.7in] +\item[$\tau$] Time taken to drink one cup of coffee. +\item[$\mu$g] Micrograms (of caffeine, generally). +\end{symbollist} +% \end{verbatim} \hrule \end{quote} +% \iffalse +%<example> +% \fi +% +% \subsection{Main Matter} +% +% \DescribeMacro{\mainmatter} +% Begin the main body of your thesis with the |\mainmatter| command. +% It resets the page number to arabic numeral 1. +% You can now use any of the commands defined by the +% the book document class to write your thesis. +% +% In the following example, each of the chapters +% has been broken out into separate files that are inserted into +% this main file with the |\include| command. This allows the +% thesis to be proofed quickly while it is being revised with +% the |\includeonly| command. To provide an example of what the +% chapter headings look like, one chapter has been explicitly +% coded. (Try recompiling the example file with the |[fancy]| +% option instead of |[fullpage]| to see the effect.) +% +% \begin{quote} \hrule \begin{verbatim} +\mainmatter + +\include{1-introduction} +\include{2-related} +\include{3-model} +\include{4-predictions} + +\chapter{Conclusions} + +We conclude that graduate students like coffee. + +% \end{verbatim} \hrule \end{quote} +% \iffalse +%<example> +% \fi +% +% \subsection{Reference Matter} +% +% \DescribeMacro{\appendix} +% To switch from the body of your thesis to the reference material +% at the end, you should use the standard \LaTeX\ |\appendix| command. +% +% \begin{quote} \hrule \begin{verbatim} +\appendix + +\include{A-data.tex} +% \end{verbatim} \hrule \end{quote} +% \iffalse +%<example> +% \fi +% +% \subsection{Back Matter} +% +% \DescribeMacro{\backmatter} +% The last few chapters in your thesis should not have chapter +% numbers, but should be listed in the Table of Contents. +% These chapters include the Bibliography, the Index, +% and the Vita. \LaTeX's |\backmatter| command provides the correct +% formatting for these chapters. +% +% \DescribeMacro{\bibliography} +% Use the standard \LaTeX\ bibliography commands to +% create your bibliography. Most people will use Bib\TeX to do this. +% (See \cite{Lamport}). For those in the sciences, you may want to +% check out the \pkg{cite} package (it's pretty standard), which +% will produce numerical citations that are sorted and compressed. +% You can also use the \pkg{natbib} package, although it creates a +% problem if the |headings| pagestyle is used. +% +% \DescribeMacro{\vita} +% The |\vita| command begins a new chapter for your vita. +% In fact, it does exactly the same thing as |\chapter{\vitaname}|, +% where |\vitaname| is ``Vita.'' +% +% \begin{quote} \hrule \begin{verbatim} +\backmatter + +\bibliography{thesisbib} + +\chapter{Vita} + +Juan Valdez was born\ldots. + +\end{document} +% \end{verbatim} \hrule \end{quote} +% +% \iffalse +%</example> +% \fi +% +% \section{User Customization} +% +% \DescribeMacro{\draftheader} +% If you don't like the header that the the |[draftthesis]| option +% creates, you can redefine the |\draftheader| command so that it +% produces whatever text you want. +% +% \DescribeMacro{\thesisspacing} +% The \pkg{uiucthesis} class loads \pkg{setspace} for the +% line spacing commands. See the documentation in that package +% for more information on the commands it provides. +% By default, \pkg{uiucthesis} uses one and a half line spacing, +% or double spacing if the |[fullpage]| option is specified. +% If you're unhappy with that, you can override it by redefining the +% |\thesisspacing| command. +% +% \DescribeMacro{\chaptertitlefont} +% \DescribeMacro{\sectiontitlefont} +% \DescribeMacro{\subsectiontitlefont} +% \DescribeMacro{\subsubsectiontitlefont} +% These macros contain the font declarations for the corresponding sectioning +% levels and can be redefined to suit your aesthetic desires. Use +% |\renewcommand| to do this in the preamble. +% +% \DescribeMacro{\chapternumberfont} +% The |\chapternumberfont| macro is really most applicable when the |[fancy]| option is used. It +% specifies the font declaration used for the chapter number set in the left +% margin next to the title. Otherwise it specifies the font used to print +% the words ``Chapter \#'' at the top of each chapter's opening page. Use +% |\renewcommand| to redefine this macro in the preamble. +% +% \DescribeMacro{\chaptertitleheight} +% This is the amount of space allotted for the chapter title at the top +% of the page. You can redefine it using |\setlength| in the preamble. +% +% \DescribeMacro{\bibname} +% This is a standard \LaTeX\ macro that contains the title of the reference +% section at the end of your thesis; ``References'' by default. Use +% |\renewcommand| to redefine it in the preamble. +% +% \DescribeMacro{\vitaname} +% Like |\bibname| but it contains the name used for your vita at the very end. +% The Grad College allows ``Vita'', ``Author's Biography'', or ``Curriculum Vitae'', +% each of which is slightly different in format. See \cite{Handbook}. +% +% \DescribeMacro{\note} +% This command inserts a marginal note just like |\marginpar| with two distinctions: +% First, the note is single-spaced for compactness. Second, it is only printed when +% the |[draftthesis]| option is used. Since marginal notes are not allowed in the final +% draft, the |\note| command is recommended over the |\marginpar| command. +% +% \section{Compatibility} +% +% Compatibility with previous versions of \pkg{uiucthesis} are supported. Previously it +% was implemented as a package rather than a class, in which case you opened the document +% with: +% \begin{quote} \hrule \begin{verbatim} +% \documentclass[oneside,...]{book} +% \usepackage[...]{uiucthesis} +% \end{verbatim} \hrule \end{quote} +% To provide backwards-compatibility, a style file is provided that has the same functionality +% of the class file described herein. Similarly, (really) old versions of \pkg{uiucthesis} +% used the \env{preliminary} and \env{thesis} environments, which are now deprecated +% but backwards-compatibility support is still provided. +% +% \StopEventually{% +% \begin{thebibliography}{9} +% \bibitem{Handbook} +% \emph{Handbook for Graduate Students Preparing to Deposit}. +% \newblock Graduate College, University of Illinois at +% Urbana-Champaign, 2004 +% +% \bibitem{Lamport} +% Leslie Lamport. +% \newblock \emph{\LaTeX: A Document Preparation System}. +% \newblock Addison-Wesley, 1994. +% \end{thebibliography} +% } +% +% \section{Implementation} +% +% This section shows the implementation of the \pkg{uiucthesis} class. +% Unless you are interested in the details of how \pkg{uiucthesis} works, +% you probably don't need to read it. +% +% \iffalse +%<*class|package> +\RequirePackage{setspace} +% \fi +% +% \subsection{Compatibility} +% +% Provide compatibililty with older versions of \LaTeX. +% \begin{macro}{\@ifundefined} +% \begin{macrocode} +\expandafter\ifx\csname @ifundefined\endcsname\relax + \def\@ifundefined#1{% + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\MakeUppercase} +% \begin{macrocode} +\@ifundefined{MakeUppercase}{\let\MakeUppercase=\uppercase}{} +% \end{macrocode} +% \end{macro} +% +% \subsection{Option Processing} +% +% \begin{macrocode} +\newif\if@thesisdraft \@thesisdraftfalse +\newif\if@thesisfancy \@thesisfancyfalse +\newif\if@fullpage \@fullpagefalse +\newif\if@largecaps \@largecapsfalse +\newif\if@proquest \@proquestfalse +\newif\if@edeposit \@edepositfalse +\newif\if@thesisoffcenter \@thesisoffcenterfalse +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{draftthesis}{\@thesisdrafttrue} +\DeclareOption{fancy}{\@thesisfancytrue} +\DeclareOption{fullpage}{\@fullpagetrue} +\DeclareOption{proquest}{\@proquesttrue} +\DeclareOption{toclabels}{\AtBeginDocument{\fancytoc}} +\DeclareOption{edeposit}{\@edeposittrue} +\DeclareOption{offcenter}{\@thesisoffcentertrue} +% \end{macrocode} +% +% The |[largecaps]| option causes the title and author's name to +% be use a ``large caps'' font on the title page. Otherwise, +% \pkg{uiucthesis} just converts them to uppercase and uses the +% normal fonts. The difference is that the spacing between the +% characters in the large caps font is tuned for setting type in all caps. +% +% The large caps font is \emph{not a standard font}, and so it will not exist +% unless you have installed it. +% +% \begin{macrocode} +\DeclareOption{largecaps}{\@largecapstrue} +% \end{macrocode} +% +% Load the \pkg{book} class with the |[oneside]| and |[letterpaper]| options +% +% \begin{macrocode} +%<class>\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}} +%<class>\PassOptionsToClass{letterpaper,oneside}{book} +\ProcessOptions +%<class>\LoadClass{book} +% \end{macrocode} +% +% If the |[proquest]| option is used, turn off output to auxiliary files so +% that the thesis doesn't have to be recompiled again to get all the references +% correct. Also double-space the ProQuest abstract and use the full page. +% +% \begin{macrocode} +\if@proquest + \nofiles % don't overwrite the .aux files + \def\makeindex{} + \@thesisfancyfalse + \@fullpagetrue +\fi +% \end{macrocode} +% +% If the |[draftthesis]| option was specified, define the |\draftheader| macro. +% +% \begin{macrocode} +\if@thesisdraft + \newcount\timehh\newcount\timemm + \timehh=\time \divide\timehh by 60 + \timemm=\time \count255=\timehh \multiply\count255 by -60 + \advance\timemm by \count255 + \def\draftheader{\slshape Draft of \today\ at + \ifnum\timehh<10 0\fi\number\timehh\,:\,\ifnum\timemm<10 0\fi\number\timemm}% +\fi +% \end{macrocode} +% +% Define the |\fancytoc| command which prints the headings in the Table of Contents, +% List of Figures and List of Tables if the |[toclabels]| option is used. +% +% \begin{macrocode} +\newcommand{\fancytoc}{% + \addtocontents{toc}{\vspace*{-\baselineskip}\hfill Page\endgraf}% + \addtocontents{lof}{\vspace*{-\baselineskip}~Figure\hfill Page\endgraf}% + \addtocontents{lot}{\vspace*{-\baselineskip}~Table\hfill Page\endgraf}} +% \end{macrocode} +% +% \subsection{Title Page} +% +% \begin{macro}{\title} +% \begin{macro}{\author} +% Override the standard definitions of |\title| and |\author| to also +% define uppercased versions. +% \begin{macrocode} +\def\@mkuptitle#1{\gdef\@Utitle{#1}} +\def\title#1{\gdef\@title{#1}\MakeUppercase{\protect\@mkuptitle{#1}}} +\def\@mkupauthor#1{\gdef\@Uauthor{#1}} +\def\author#1{\gdef\@author{#1}\MakeUppercase{\protect\@mkupauthor{#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\phdthesis} +% \begin{macro}{\msthesis} +% \begin{macro}{\otherdoctorate} +% \begin{macro}{\othermasters} +% \begin{macro}{\department} +% \begin{macro}{\college} +% \begin{macro}{\schools} +% \begin{macro}{\degreeyear} +% \begin{macro}{\committee} +% \begin{macro}{\volume} +% Macros to set title page elements. +% \begin{macrocode} +\def\phdthesis{\def\@degree{Doctor of Philosophy} + \def\degree{Ph.D.} + \def\@thesisname{DISSERTATION} + } +\def\msthesis{\def\@degree{Master of Science} + \def\degree{M.S.} + \def\@thesisname{THESIS} + } +\newcommand{\otherdoctorate}[2]{\def\@degree{#1} + \def\degree{#2} + \def\@thesisname{DISSERTATION} + } +\newcommand{\othermasters}[2]{\def\@degree{#1} + \def\degree{#2} + \def\@thesisname{THESIS} + } +\def\department#1{\def\@dept{#1}} +\def\college#1{\def\@college{#1}} +\def\schools#1{\def\@schools{#1}} +\def\degreeyear#1{\def\@degreeyear{#1}} +\newcommand{\committee}[1]{\gdef\@committee{#1}} +\newcommand*{\volume}[1]{\gdef\thesis@volume{VOLUME~#1}} +\newcommand*{\thesis@volume}{} +\if@edeposit + \gdef\@committee{% +%<class> \ClassError{uiucthesis}{A committee must be specified for e-deposit dissertations.}% +%<package> \PackageError{uiucthesis}{A committee must be specified for e-deposit dissertations.}% + {Use \protect\committee\space with members separated by \protect\\'s.}} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\copyrightnotice} +% Define the copyright notice as a macro so that the user +% can change it if desired. +% \begin{macrocode} +\def\copyrightnotice{\copyright~\@degreeyear~by \@author. All rights reserved.} +% \end{macrocode} +% \end{macro} +% +% Set the default title page elements. +% \begin{macrocode} +\phdthesis +\department{Physics} +\college{Graduate College} +\def\@schools{} +\def\@degreeyear{\number\year} +% \end{macrocode} +% +% +% \begin{macro}{\maketitle} +% Redefine \pkg{book}'s |\maketitle| command to produce +% the titlepage in the correct format. +% +% \begin{macrocode} +\renewcommand\maketitle{ +% \end{macrocode} +% If this is not a draft version, print the copyright page. +% \begin{macrocode} + \if@thesisdraft\else + \newpage + \thispagestyle{empty} + \null\vfill + \centerline{\copyrightnotice}% + \vskip 3ex % skip to visually center copyright notice + \vfill + \fi +% \end{macrocode} +% Now start a new page for the title page. It is single-spaced. +% \begin{macrocode} + \newpage + \thispagestyle{empty}% + \enlargethispage{1in}% + \begingroup + \def\baselinestretch{1} +% \end{macrocode} +% Check what size font we are using for the text and select a +% smaller size appropriately. +% \begin{macrocode} + \ifnum \@ptsize=2 + \@normalsize + \newcommand{\thesis@small}{\small} + \else + \large + \newcommand{\thesis@small}{\@normalsize} + \fi +% \end{macrocode} +% We have to be careful to get the vertical position right. The +% easiest way to do this seems to be to just set |\topmargin|, +% |\headheight|, and |\headsep| for this page. +% \begin{macrocode} + \headheight=0pt \headsep=0pt + \topmargin=0in +% \end{macrocode} +% Adjust the horizontal spacing so that the title page +% is centered on the page even if the rest of the document isn't. +% I'm not sure when |\textwidth| changes take place, so instead +% we calculate the correct |\oddsidemargin| to center the text column. +% \begin{macrocode} + \@tempdima=\paperwidth + \advance\@tempdima by -\textwidth + \divide\@tempdima by 2 + \advance\@tempdima by -1in + \oddsidemargin=\@tempdima + \let\evensidemargin=\oddsidemargin +% \end{macrocode} +% Create the title page. Different spacing is used depending on whether the +% |[edeposit]| option is specified. Include the committee and the paragraph +% at the bottom of the page for e-deposit theses, as required by the Grad College. +% \begin{macrocode} + \newdimen\thesis@dim + \if@edeposit + \thesis@dim=1.25in + \else + \thesis@dim=1.75in + \fi + \if@largecaps + \def\lc@selectfont{\fontshape{lc}\selectfont}% + \else + \def\lc@selectfont{}% + \fi + \begin{center} + \if@edeposit\else + \vbox to 1.25in{} + \fi + \vbox to \thesis@dim{% + {\lc@selectfont\@Utitle} + \if@thesisdraft + \\[12pt] + \draftheader + \fi + \vfil}% + \vbox to 2in{% + {\lc@selectfont BY}\\[12pt] + {\lc@selectfont\@Uauthor}\\[12pt] + \begin{tabular}{c}\@schools\end{tabular}\vfil}% + \vbox to 0.5in{\thesis@volume\vfil} + \vbox to 2.5in{% + {\lc@selectfont \@thesisname}\\[12pt] + Submitted in partial fulfillment of the requirements\\ + for the degree of \@degree\ in \@dept\\ + in the \@college\ of the\\ + University of Illinois at Urbana-Champaign, \@degreeyear\vfil} + \if@edeposit + \vbox to 2.1in{ + COMMITTEE ON FINAL EXAMINATION*\\[12pt] + \begin{tabular}{c}\@committee\end{tabular}\vfil} + \hspace*{-\oddsidemargin}\parbox[t]{6.5in}{\thesis@small% + * The Certificate of Committee Approval is not part of dissertations + deposited electronically through the Graduate College of the University + of Illinois at Urbana-Champaign. A copy of the original Certificate of + Committee Approval is permanently archived with the student's record.}% + \else + \vskip -2ex + Urbana, Illinois + \fi + \end{center} + \newpage + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Front Matter} +% +% \begin{macro}{\frontmatter} +% Redefine |\frontmatter| so that it sets the page number to 2 or 3, depending on whether or +% not the |[edeposit]| option is given. +% \begin{macrocode} +\let\thesis@frontmatter=\frontmatter +\def\frontmatter{% + \thesis@frontmatter + \if@edeposit + \setcounter{page}{2} + \else + \setcounter{page}{3} + \fi} +% \end{macrocode} +% \end{macro} +% +% \subsection{Table of Contents} +% +% \begin{macro}{\contentsname} +% Use ``Table of Contents'' instead of ``Contents''. +% \begin{macrocode} +\renewcommand\contentsname{Table of Contents} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@chapter} +% This code is a modified version of the code in the 1996/05/26 release +% of classes.dtx that produces leader dots between the chapter +% name and the page number. +% +% This macro formats the entries in the table of contents for +% chapters. It is very similar to |\l@part| +% +% First we make sure that if a pagebreak should occur, it occurs +% \emph{before} this entry. Also a little whitespace is added and a +% group begun to keep changes local. +% \changes{v1.2i}{1994/04/28}{Don't print a toc line when the tocdepth +% counter is less then 0} +% \changes{v1.3b}{1955/05/23}{Added missing braces around argument +% to \cs{addpenalty}.} +% \begin{macrocode} +\renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ +% \end{macrocode} +% +% The macro |\numberline| requires that the width of the box that +% holds the part number is stored in \LaTeX's scratch register +% |\@tempdima|. Therefore we put it there. We begin a group, and +% change some of the paragraph parameters. These are different +% from the defaults for the standard report or book class. +% \begin{macrocode} + \setlength\@tempdima{1.5em} + \begingroup + \leftskip \z@ \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent \z@ +% \end{macrocode} +% Then we leave vertical mode and switch to a bold font. +% \begin{macrocode} + \leavevmode \bfseries +% \end{macrocode} +% Because we do not use |\numberline| here, we have do some fine +% tuning `by hand', before we can set the entry. We discourage but +% not disallow a pagebreak immediately after a chapter entry. +% We use leaders between the chapter title and the page number, +% unlike the standard report or book class. +% \begin{macrocode} + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak + \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{.}\mkern\@dotsep mu$} + \hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +% \end{macrocode} +% \end{macro} +% +% Create a flag that is set after the Table of Contents where every chapter (even +% the starred chapters) are put in the TOC. +% \begin{macrocode} +\newif\ifthesis@addtoc \thesis@addtocfalse +% \end{macrocode} +% \begin{macro}{\tableofcontents} +% We want the Table of Contents to be single-spaced, so +% we save the original definition, and then arrange it so +% that the new |\tableofcontents| calls |\singlespacing| before calling +% the original definition. Then set the flag mentioned above. +% \begin{macrocode} +\let\thesis@tableofcontents=\tableofcontents +\def\tableofcontents{% + \@mkboth{\MakeUppercase{\contentsname}}{\MakeUppercase{\contentsname}}% + {\singlespacing\thesis@tableofcontents}% + \thesis@addtoctrue% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listoftables} +% \begin{macro}{\listoffigures} +% Similarly, redefine |\listoftables| and |\listoffigures| so +% that they use single spacing. Why bother, you ask? +% Well, it {\em is} possible that some user might +% call |\listoffigures| without calling |\tableofcontents|. Right? +% \begin{macrocode} +\let\thesis@listoftables=\listoftables +\def\listoftables{{\singlespacing\thesis@listoftables}} +\let\thesis@listoffigures=\listoffigures +\def\listoffigures{{\singlespacing\thesis@listoffigures}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Other Frontmatter} +% +% \begin{environment}{abstract} +% The \env{abstract} environment is special because its contents are also +% used for the ProQuest abstract, which we need the advisor's name for: +% \begin{macro}{\adviser} +% \begin{macro}{\advisor} +% Two versions of this macro are provided due to the ambiguity of the spelling +% of the word ``adviser''. +% \begin{macrocode} +\newcommand*{\advisor}[1]{\gdef\@advisor{#1}} +\newcommand*{\adviser}[1]{\gdef\@advisor{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% If the |[proquest]| option was specified, erase the definition for |\maketitle| +% since we don't want a title page, and print an error if the advisor's name is +% not specified. Then define the abstract environment to create the ProQuest abstract +% and then end the document. +% \begin{macrocode} +\if@proquest + \def\maketitle{} + \def\@advisor{% +%<class> \ClassError{uiucthesis}{An advisor must be specified for the ProQuest abstract}% +%<package> \PackageError{uiucthesis}{An advisor must be specified for the ProQuest abstract}% + {Use \protect\advisor\space to specify a name}} + \newenvironment{abstract}{% + \newpage + \pagestyle{empty} + \setcounter{page}{1} + \begin{singlespace}\begin{center} + \@Utitle\\[\baselineskip] + \@author, \degree\\ + Department of \@dept\\ + University of Illinois at Urbana-Champaign, \@degreeyear\\ + \@advisor, Adviser\\[\baselineskip] + \end{center}\end{singlespace}\par\noindent\ignorespaces + }{ + \newpage + \aftergroup\enddocument + \aftergroup\endinput + } +% \end{macrocode} +% If we are doing normal processing (no |[proquest]| option), simply define +% the \env{abstract} environment to start a regular chapter. +% \begin{macrocode} +\else + \newenvironment{abstract}{\chapter*{Abstract}}{} +\fi +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{dedication} +% The dedication environment just starts a new page and prints the dedication +% in the center in italics. +% \begin{macrocode} +\newenvironment{dedication}{ + \newpage + \leavevmode\vfill + \begin{center} + \itshape + }{ + \end{center} + \vskip 3ex + \vfill + \newpage + } +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{symbollist} +% \begin{environment}{symbollist*} +% The \env{symbollist} environments can be used to create a list of symbols or +% abbreviations. The starred version left-justifies the left column (good for +% lists of abbreviations) whereas the unstarred version centers the contents of +% the left column (good for lists of symbols). +% \begin{macrocode} +\newenvironment*{symbollist}[1][1in]{ + \begin{list}{}{\singlespacing + \setlength{\leftmargin}{#1} + \setlength{\labelwidth}{#1} + \addtolength{\labelwidth}{-\labelsep} + \setlength{\topsep}{0in}}% + \def\makelabel##1{\hfil##1\hfil}% + }{ + \end{list}} +\newenvironment*{symbollist*}[1][1in]{ + \begin{symbollist}[#1] + \def\makelabel##1{##1\hfil}} + {\end{symbollist}} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% +% \subsection{Chapter Headings} +% +% Text of chapter title must match exactly with text in Table of Contents. +% We support both plain chapter headings and ``fancy'' chapter headings. +% +% \begin{macro}{\chapternumberfont} +% Define the font used for chapter numbers in fancy chapter headings. +% If you're using scalable PostScript fonts, you might want to +% override it, for example: +% \begin{verbatim} +% \renewcommand\chapternumberfont{ +% \fontseries{bx}\fontsize{72}{72}\selectfont} +% \end{verbatim} +% \begin{macrocode} +\if@thesisfancy + \font\cminch=cminch at 60pt + \newcommand\chapternumberfont{\cminch} +\else + \newcommand\chapternumberfont{\huge\bfseries} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\chaptertitlefont} +% Define the font used for chapter titles. +% \begin{macrocode} +\newcommand\chaptertitlefont{\Huge\bfseries} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@chapter} +% This macro is called when we have a numbered chapter. When +% |secnumdepth| is larger than $-1$ and, in the book +% class, |\@mainmatter| is true, we display the chapter +% number. We also inform the user that a new chapter is about to be +% typeset by writing a message to the terminal. +% \begin{macrocode} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \if@thesisfancy + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{chapter}% + {\@chapapp\ \thechapter\quad #1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi +% \end{macrocode} +% After having written an entry to the table of contents we store +% the (alternative) title of this chapter with |\chaptermark| and +% add some white space to the lists of figures and tables. +% \begin{macrocode} + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% +% \end{macrocode} +% Then we call upon |\@makechapterhead| to format the actual +% chapter title. We have to do this in a special way when we are in +% twocolumn mode in order to have the chapter title use the entire +% |\textwidth|. In one column mode we call |\@afterheading|, which +% takes care of suppressing the indentation. +% \begin{macrocode} + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@schapter} +% The macro |\@schapter| is called when |\chapter*{...}| is called. We need +% to modify it so that if the |thesis@addtoc| flag is set, an entry to the +% Table of Contents is made. +% \begin{macrocode} +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi + \ifthesis@addtoc + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}} + \addcontentsline{toc}{chapter}{#1} + \fi} +% \end{macrocode} +% \end{macro} +% +% For fancy chapter headings, compute the correct height to use for the +% chapter number. I want the chapter number to be centered on the first line +% of the chapter title. If $a$ is the height of the chapter number and $b$ is +% the height of the chapter title, then if we set the chapter number in a +% box of height $b + (a-b)/2=(a+b)/2$ then it aligns correctly. +% +% We arrange for this value to be computed at the beginning of the document +% in case the user loads a style file that changed the default fonts. +% +% In addition, we want the chapter titles to have the same vertical placement +% on the page, regardless whether the chapter is numbered or not. We compute +% the distance we have to skip for chapters without numbers to accomplish this +% and store it in |\thesis@chapskip|. +% \begin{macrocode} +\newskip\thesis@chapskip +\AtBeginDocument{% + \newdimen\chapternumberheight + \begingroup + \chapternumberfont + \setbox255=\hbox{A} + \if@thesisfancy + \global\thesis@chapskip=\ht255 + \else + \global\thesis@chapskip=\baselineskip + \fi + \dimen255=\ht255 + \chaptertitlefont + \setbox255=\hbox{A} + \advance\dimen255 by \ht255 + \if@thesisfancy + \global\advance\thesis@chapskip by -\ht255 + \global\divide\thesis@chapskip by 2 + \global\advance\thesis@chapskip by 10\p@ + \else + \global\advance\thesis@chapskip by 20\p@ + \fi + \divide\dimen255 by 2 + \global\chapternumberheight=\dimen255 + \endgroup} +% \end{macrocode} +% +% \begin{macro}{\chaptertitleheight} +% The amount of space allotted for the chapter titles is stored in |\chaptertitleheight|. +% In this manner, the chapter text always appears at the same vertical place for each +% chapter, even if the title spills over into multiple lines. +% \begin{macrocode} +\newlength{\chaptertitleheight} +\if@thesisfancy + \setlength{\chaptertitleheight}{1.5in} +\else + \setlength{\chaptertitleheight}{1.85in} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makechapterhead} +% The macro |\@chapter| uses |\@makechapterhead|\meta{text} to format the +% heading of the chapter. This is a modified version of the standard +% |\@makechapterhead|. It sets the chapter heading in single spacing, +% and it handles the fancy heading style. The whole heading is placed +% in a |\vbox| so that it is confined to the spacing allotted to it +% as defined in |\chaptertitleheight|. +% \begin{macrocode} +\def\@makechapterhead#1{% + \vbox to \chaptertitleheight{ + \def\baselinestretch{1}\@normalsize + \parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \thesis@chapskip=\z@ + \if@thesisfancy + \vspace*{10\p@} + \leavevmode\llap{\vbox to \chapternumberheight{\hbox{% + \chapternumberfont\thechapter\,}\vss}}% + \else + {\chapternumberfont \@chapapp\space \thechapter} + \par\nobreak + \vskip 20\p@ + \fi + \fi + \fi + \interlinepenalty\@M + \vspace*{\thesis@chapskip} + \chaptertitlefont #1 + \vfil + }% + \par\nobreak% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makeschapterhead} +% The macro |\@schapter| uses |\@makeschapterhead|\meta{text}to format +% the heading of the chapter. It is similar to |\@makechapterhead| +% except that it never has to print a chapter number. +% +% \begin{macrocode} +\def\@makeschapterhead#1{% + \vbox to \chaptertitleheight{ + \def\baselinestretch{1}\@normalsize + \parindent \z@ \raggedright \normalfont + \interlinepenalty\@M + \vspace*{\thesis@chapskip} + \chaptertitlefont #1 + \vfil + }% + \par\nobreak% + } +% \end{macrocode} +% \end{macro} +% +% \subsection{Lower Level Headings} +% +% \begin{macro}{\sectiontitlefont} +% \begin{macro}{\subsectiontitlefont} +% \begin{macro}{\subsubsectiontitlefont} +% These macros contain the font declarations for the sectioning titles. +% \begin{macrocode} +\newcommand{\sectiontitlefont}{\Large\bfseries} +\newcommand{\subsectiontitlefont}{\large\bfseries} +\newcommand{\subsubsectiontitlefont}{\normalsize\bfseries} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\section} +% \begin{macro}{\subsection} +% \begin{macro}{\subsubsection} +% We redefine the lower level headings to set their titles +% ragged right. +% We don't have to change sectioning commands below +% \env{subsubsection} because they produce run-in headings. +% \begin{macrocode} +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\sectiontitlefont}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\subsectiontitlefont}} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\subsubsectiontitlefont}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Bibliography} +% +% \begin{macro}{\bibname} +% UIUC Thesis format says that if references are cited as ``[1]'' then +% one of the terms ``References,'' ``List of References,'' or +% ``Literature Cited'' should be used instead of ``Bibliography.'' +% \begin{macrocode} +\renewcommand\bibname{References} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{thebibliography} +% Note that due to the redefinition of the |\@schapter| command, the +% bibliography is inserted into the Table of Contents as is and no modification +% to the standard definition of \env{thebibliography} environment is really needed. +% However, for aesthetics it is nice to have it single-spaced. +% \begin{macrocode} +\let\thesis@thebib\thebibliography +\let\thesis@endbib\endthebibliography +\def\thebibliography{\begingroup\singlespacing\thesis@thebib} +\def\endthebibliography{\thesis@endbib\endgroup} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Index} +% +% \begin{environment}{theindex} +% The index is single spaced and a line is added to the Table of Contents. +% \begin{macrocode} +\let\thesis@theindex=\theindex +\def\theindex{\addcontentsline{toc}{chapter}{\indexname}% + \begingroup\singlespacing\thesis@theindex} +\let\thesis@endtheindex=\endtheindex +\def\endtheindex{\thesis@endtheindex\endgroup} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Page Layout} +% +% First we set the vertical layout. +% Adjust the height of the text column so that it takes up the full +% height of an 8.5 by 11 inch page. +% \begin{macrocode} +\topmargin=0pt +\advance \topmargin by -\headheight +\advance \topmargin by -\headsep +\textheight 8.9in +% \end{macrocode} +% Next, set the horizontal layout. +% +% The standard for technical papers seems to be to use +% extremely wide columns of text, and then to increase the spacing between +% lines to compensate for the long lines. +% Unfortunately, because so many papers are typeset this way, +% the format has become self-propagating. +% +% The |[fullpage]| option sets one-inch margins. +% \begin{macrocode} +\if@fullpage + \oddsidemargin 0pt + \marginparwidth 0.5in + \textwidth\paperwidth + \advance\textwidth by -2in +\fi +% \end{macrocode} +% In the old version of \pkg{uiucthesis}, the ``fancy'' thesis style used +% an asymmetrical page layout, +% shifting the text column slightly over to the right to leave +% room for the chapter number to the left of the chapter title. This layout +% is still used if the |[offcenter]| option is given, otherwise symmetrical +% margins are used. +% \begin{macrocode} +\if@thesisfancy + \if@thesisoffcenter + \advance\oddsidemargin by 36pt + \fi +% \end{macrocode} +% Set |\marginparwidth|, leaving 36pt for the right margin. +% Note that you're not allowed to actually use a marginal paragraph +% this close to the edge in the final version of a thesis, but it is still +% handy for leaving notes to yourself in the draft. +% \begin{macrocode} + \marginparwidth=\oddsidemargin + \advance\marginparwidth by 1in + \advance\marginparwidth by -\marginparsep + \advance\marginparwidth by -36pt +% \end{macrocode} +% Put the marginal paragraphs on the left side, where there's more room. +% \begin{macrocode} + \reversemarginpar +\fi +\let\evensidemargin=\oddsidemargin +% \end{macrocode} +% +% +% \subsection{Making Notes} +% +% \begin{macro}{\note} +% You can leave yourself marginal notes using the |\note{|\meta{text}|}| +% macro. If the final draft is being printed (i.e., no |[draftthesis]| option) +% then these notes are not printed. +% \begin{macrocode} +\if@thesisdraft + \newcommand{\note}[1]{\marginpar{\singlespacing\small\raggedright #1}} +\else + \newcommand{\note}[1]{} + \let\thesis@marginpar\marginpar + \def\marginpar{% +%<class> \ClassWarning{uiucthesis}{Margin paragraphs fall outside the allowed margins\MessageBreak +%<package> \PackageWarning{uiucthesis}{Margin paragraphs fall outside the allowed margins\MessageBreak + for UIUC Theses, use \protect\note\space instead of \protect\marginpar.}% + \thesis@marginpar} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{Page Numbering} +% +% Page numbers must be in one of three places, and must appear in the +% same place on \emph{every page}, including chapter openings. +% +% To accommodate the draft heading, we redefine the plain page style. +% \begin{macro}{\ps@plain} +% \begin{macrocode} +\def\ps@plain{% + \let\@mkboth\@gobbletwo + \if@thesisdraft + \def\@oddhead{\draftheader\hfil} + \else + \let\@oddhead\@empty + \fi + \let\@evenhead\@oddhead + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenfoot\@oddfoot +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps@headings} +% The ``headings'' page style is also supported. The heading at the top +% will be within the 1 inch margin that you are supposed to allow, however. +% If the |[draftthesis]| option is given, there is probably not enough room +% for both the chapter number and title, so just print the number in that case. +% \begin{macrocode} +\if@twoside + \def\ps@headings{% + \if@thesisdraft + \def\@oddhead{\draftheader\hfil\slshape\rightmark} + \def\@evenhead{\slshape\leftmark\hfil\draftheader} + \else + \def\@oddhead{\hfil\slshape\rightmark} + \def\@evenhead{\slshape\leftmark\hfil} + \fi + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenfoot\@oddfoot + \let\@mkboth\markboth + \if@thesisdraft + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\ \thechapter% + \fi + \fi}}} + \else + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \if@thesisfancy + \thechapter.~~% + \else + \@chapapp\ \thechapter.~~% + \fi + \fi + \fi + ##1}}} + \fi + \def\sectionmark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \thesection. \ % + \fi + ##1}}}} +\else + \def\ps@headings{% + \if@thesisdraft + \def\@oddhead{\draftheader\hfil\slshape\rightmark} + \else + \def\@oddhead{\hfil\slshape\rightmark\hfil} + \fi + \let\@evenhead\@oddhead + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenfoot\@oddfoot + \let\@mkboth\markboth + \if@thesisdraft + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\ \thechapter% + \fi + \fi}}} + \else + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \if@thesisfancy + \thechapter.~~% + \else + \@chapapp\ \thechapter.~~% + \fi + \fi + \fi + ##1}}} + \fi + } +\fi +% \end{macrocode} +% \end{macro} +% +% Set the default page style to (our new definition of) plain. +% \begin{macrocode} +\pagestyle{plain} +% \end{macrocode} +% +% \begin{macro}{\chapter} +% Redefine |\chapter| to not do |\thispagestyle{empty}| because +% even chapter openings should have page numbers in UIUC theses. +% \begin{macrocode} +\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{plain} + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Vita} +% +% The support for |\vita| is pretty minimal. +% +% \begin{macro}{\vitaname} +% Define |\vitaname| so the user can change it if he wants. +% \begin{macrocode} +\newcommand\vitaname{Vita} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\vita} +% Vita should appear in Table of Contents, but should not be numbered. +% \begin{macrocode} +\newcommand\vita{ + \chapter{\vitaname}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Body Formatting} +% +% \begin{macro}{\thesisspacing} +% The |\thesisspacing| command is called to switch to the default +% line spacing for the thesis. The thesis format requirements +% require at least line and a half spacing. +% The \pkg{uiucthesis} class by default uses |\onehalfspacing|, +% or |\doublespacing| if the |[fullpage]| option is in effect. +% \begin{macrocode} +\def\thesisspacing{\if@fullpage\doublespacing\else\onehalfspacing\fi} +% \end{macrocode} +% \end{macro} +% +% At this point, we're ready to set up the actual formatting for the +% front matter of the thesis. We use roman page numbers. +% Also, arrange so that |\thesisspacing| gets called when the document +% begins. We don't just call it here because that wouldn't give the +% user a chance to override it. +% \begin{macrocode} +\pagenumbering{roman} +\AtBeginDocument{\thesisspacing} +% \end{macrocode} +% +% \subsection{Compatibility} +% +% \begin{macro}{preliminary} +% The old \pkg{uiucthesis} style defined a \env{preliminary} +% environment for the front matter. This isn't needed with this +% style, so we redefine it to call |\frontmatter| for compatibility's sake. +% \begin{macrocode} +\def\preliminary{\frontmatter} +\let\endpreliminary=\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{thesis} +% Similarly, the old \pkg{uiucthesis} style defined a \env{thesis} +% environment that has been superceded by the |\mainmatter| command. +% We define it here for backward compatibility. +% \begin{macrocode} +\def\thesis{\mainmatter} +\let\endthesis=\relax +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</class|package> +% \fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins new file mode 100644 index 00000000000..747d3426766 --- /dev/null +++ b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins @@ -0,0 +1,14 @@ +\def\batchfile{uiucthesis.ins}
+\input docstrip.tex
+
+\keepsilent
+\askforoverwritefalse
+
+\declarepreamble\none
+\endpreamble
+
+\generate{\file{uiucthesis.sty}{\from{uiucthesis.dtx}{package}}
+ \file{uiucthesis.cls}{\from{uiucthesis.dtx}{class}}
+ \usepreamble\none
+ \file{thesis-ex.tex}{\from{uiucthesis.dtx}{example}}
+}
|