From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/pitthesis/pitthesis.cls | 1214 ++++++++++++++++++++++++++ 1 file changed, 1214 insertions(+) create mode 100644 macros/latex/contrib/pitthesis/pitthesis.cls (limited to 'macros/latex/contrib/pitthesis/pitthesis.cls') diff --git a/macros/latex/contrib/pitthesis/pitthesis.cls b/macros/latex/contrib/pitthesis/pitthesis.cls new file mode 100644 index 0000000000..24442d1c29 --- /dev/null +++ b/macros/latex/contrib/pitthesis/pitthesis.cls @@ -0,0 +1,1214 @@ +%% University of Pittsburgh, Thesis Document Class for LaTeX2e +%% +%% Related files: (*.clo are class option files) +%% pitthesis.cls -- document class file for pitt thesis +%% pitteng.clo -- Pitt Engineering thesis +%% pittstd.clo -- Pitt standard thesis +%% +%% This document class load report class. +%% Engineering thesis requires cite package which is available from CTAN. +%% cite.sty -- used in pitteng.clo, sorted & merged reference numbers +%% +%% Wonkoo Kim (wkim+@pitt.edu, wkim@bellatlantic.net) +%% +%% v1.2 September 23, 1999 - bug fixed: line spacing problem +%% v1.1 August 22, 1999 - major update -- now loads report.cls +%% v1.0.4 August 13, 1999 - try orphan/widow removal harder +%% v1.0.3 August 12, 1999 - adjusted evensidemargin for twoside printing. +%% v1.0.2 August 6, 1999 - added cover sheet for bibliography. +%% - changed all big font sizes to \Large. +%% - bug fixed: TOC was listed in TOC list. +%% v1.0.1 July 29, 1999 - added \newlength\stringlen for text alignments +%% v1.0 July 31, 1998 - First version +%% +%%-------------------------------------------------------------------------- + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{pitthesis} + [1999/08/23 v1.2 Univ. of Pittsburgh Thesis Class] + +\newcommand\@pitthesis{eng} % select Pitt Engineering Thesis style by default +\newif\if@pitteng +\newif\if@pittstd +\DeclareOption{pitteng}{\renewcommand\@pitthesis{eng}\@pittengtrue\@pittstdfalse} +\DeclareOption{pittstd}{\renewcommand\@pitthesis{std}\@pittstdtrue\@pittengfalse} +%%-------------------------------------------------------------------------- +%% floats (figures and tables) numbering style: +%% floats numbering-by-chapter option by documentclass[floatchap]{pitthesis} +%% If [floatchap] is not given and if \floatsbyappendix is called in the +%% user's document, then only figures and tables in appendices are numbered by +%% appendix chapters. I.e. Figure A-1, A-2, B-1, ... representing appendix +%% A's or appendix B's figures, otherwise all figures and tables are sequentially +%% numbered throughout the whole document before and after starting appendix. +%% +\newif\if@floatsbychapter +\@floatsbychapterfalse %% default: sequential numbering for the whole chapters +\newif\if@floatchapoption +\@floatchapoptionfalse % floatchap class option is not yet given. +\newcommand\@floatsbychap{\@floatsbychaptertrue + \typeout{Floats (figures, tables) are numbered by chapters.}} +\let\floatsbyappendix\@floatsbychap + +%% If \@floatsbychap is called, figures and tables are numbered by chapter. + +\DeclareOption{floatchap}{\@floatsbychap\@floatchapoptiontrue} +\DeclareOption{nofloatchap}{\@floatsbychapterfalse\@floatchapoptiontrue} +%%-------------------------------------------------------------------------- +\newif\if@phdthesis +\newif\if@msthesis +%% default: Ph.D. Thesis true +%% default: Master's Thesis false +\DeclareOption{phd}{\@phdthesistrue\@msthesisfalse} +\DeclareOption{ms}{\@msthesistrue\@phdthesisfalse} +%%-------------------------------------------------------------------------- +\newif\if@proposal +\@proposalfalse %% default: Not proposal +\DeclareOption{proposal}{\@proposaltrue\typeout{Generating a Thesis Proposal ...}} +%%-------------------------------------------------------------------------- +\newif\if@headings +\@headingsfalse %% default: No headings +\DeclareOption{headings}{\@headingstrue} +\DeclareOption{noheadings}{\@headingsfalse} +%%-------------------------------------------------------------------------- +\def\@pitthesislinespacing{18pt} +\DeclareOption{single}{\def\@pitthesislinespacing{12pt}} +\DeclareOption{onehalf}{\def\@pitthesislinespacing{18pt}} +\DeclareOption{double}{\def\@pitthesislinespacing{24pt}} +%%-------------------------------------------------------------------------- +%% all other options are passed to the base class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ExecuteOptions{pitteng,phd,onehalf} +\ProcessOptions +\LoadClass[letterpaper,11pt,oneside,onecolumn,final,openany]{report} + +\if@floatchapoption\else + \if@pitteng + \@floatsbychap\fi\fi % floats-by-chapter is the default for pitteng + +% **************************************** +% * PAGE LAYOUT * +% **************************************** +% +% All margin dimensions measured from a point one inch from top and side +% of page. + +% SIDE MARGINS: +\oddsidemargin 0.5in % left margin is this number plus 1 inch (1 inch = 72.27 pt) +\evensidemargin 0in % 1 inch margin for even sides (for twoside printing) +\marginparwidth 1in % the marginal paragraph is 1 inch wide +\marginparsep 12pt % the distance between marginal paragraph + % and the left margin + +% VERTICAL SPACING: +\topmargin 0pt % the distance from top edge to page head + % is this number plus 1 inch +\headheight 12pt % the height of page head is 12 points +\headsep 24pt % Space between running head and text. + +% DIMENSION OF TEXT: + +\textheight 8.5in % the height of the text body is 8.5inches +\textwidth 6.0in % the width of the text body is 6 inches + +\pagenumbering{roman} % this is the page number style +\pagestyle{plain} % for the preliminary parts +\markboth{}{} % no heading line + +% **************************************** +% * PAGE STYLES * +% **************************************** +% +% The page style 'foo' is defined by defining the command \ps@foo. This +% command should make only local definitions. There should be no stray +% spaces in the definition, since they could lead to mysterious extra +% spaces in the output. +% +% The \ps@... command defines the macros \@oddhead, \@oddfoot, +% \@evenhead, and \@evenfoot to define the running heads and +% feet---e.g., \@oddhead is the macro to produce the contents of the +% heading box for odd-numbered pages. It is called inside an \hbox of +% width \textwidth. +% +% To make headings determined by the sectioning commands, the page style +% defines the commands \chaptermark, \sectionmark, ... , where +% \chaptermark{TEXT} is called by \chapter to set a mark, and so on. +% The \...mark commands and the \...head macros are defined with the +% help of the following macros. (All the \...mark commands should be +% initialized to no-ops.) +% +% +% MARKING CONVENTIONS: +% LaTeX extends TeX's \mark facility by producing two kinds of marks +% a 'left' and a 'right' mark, using the following commands: +% \markboth{LEFT}{RIGHT} : Adds both marks. +% \markright{RIGHT} : Adds a 'right' mark. +% \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot +% macro, gets the current 'left' mark. Works like TeX's +% \botmark command. +% \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot +% macro, gets the current 'right' mark. Works like TeX's +% \firstmark command. +% The marking commands work reasonably well for right marks 'numbered +% within' left marks--e.g., the left mark is changed by a \chapter command and +% the right mark is changed by a \section command. However, it does +% produce somewhat anomalous results if two \bothmark's occur on the same page. +% +% +% Commands like \tableofcontents that should set the marks in some page styles +% use a \@mkboth command, which is \let by the pagestyle command (\ps@...) +% to \markboth for setting the heading or \@gobbletwo to do nothing. + +% \ps@empty and \ps@plain defined in latex.ltx + +% Definition of 'headings' page style +% Note the use of ##1 for parameter of \def\chaptermark inside the +% \def\ps@headings. +% +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\slshape\leftmark}% + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \if@headings + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\ \thechapter\ \ % + \fi + ##1}}{} + \else + \markboth {}{} + \fi}% + \def\sectionmark##1{% + \if@headings + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \thesection\ \ % + \fi + ##1}} + \else + \markright {} + \fi}} +\else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \if@headings + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\ \thechapter\ \ % + \fi + ##1}} + \else + \markright {} + \fi}} +\fi + +\newif\if@twocolthesis +\if@twocolumn\@twocolthesistrue + \else\@twocolthesisfalse\fi + +% **************************************** +% * CHAPTERS AND SECTIONS * +% **************************************** +% +% The value of the counter secnumdepth gives the depth of the +% highest-level sectioning command that is to produce section numbers. +% +\setcounter{secnumdepth}{3} +%\setcounter{secnumdepth}{2} +% +\newcounter {main} % \themain controls the starting +\setcounter {main}{0} +\renewcommand\themain {\@arabic\c@main} + +\renewcommand\part{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \if@twocolthesis\twocolumn\fi + \ifnum \themain<1 % Wonkoo Kim (wkim+@pitt.edu), July 31, 1998 + \setcounter{page}{1} + \setcounter{main}{1} + \pagenumbering{arabic} + \pagestyle{headings} + \markboth{}{} + \fi% + \thispagestyle{empty} % Page style of part page is 'empty' + % \thispagestyle{plain}% + \if@twocolumn % IF two-column style + \onecolumn % THEN \onecolumn + \@tempswatrue % @tempswa := true + \else % ELSE + \@tempswafalse % @tempswa := false + \fi % FI + \null\vfil % Add fil glue to center title + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \Large\bfseries \partname~\thepart + \par + \vskip 20\p@ + \fi + \Large \bfseries #2\par}% + \@endpart} +% +\def\@spart#1{% + {\centering + \interlinepenalty \@M + \normalfont + \Large \bfseries #1\par}% + \@endpart} +% \@endpart finishes the part page +\def\@endpart{\vfil\newpage + \if@twoside + \null + \thispagestyle{empty}% + \newpage + \fi + \if@tempswa + \twocolumn + \fi} + +\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \if@pitteng + \if@headings + \thispagestyle{plain} + \fi + \else + \thispagestyle{plain} + \fi + \global\@topnum\z@ % Prevents figures from going at top of page. + %\@afterindentfalse % indent the 1st paragraph -- wkim + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \if@twocolthesis\twocolumn\fi + \ifnum \themain<1 + \setcounter{page}{1} + \setcounter{main}{1} + \pagenumbering{arabic} + \pagestyle{headings} + \markboth{}{} % Wonkoo Kim (wkim+@pitt.edu) + \fi% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \def\@chapapp{} % + \if@pitteng + \typeout{\@chapapp\space\thechapter.0} %screen message + \addcontentsline{toc}{chapter}{\protect + \numberline{\thechapter.0}\quad #1} + \else + \typeout{\@chapapp\space\thechapter.} %screen message + \addcontentsline{toc}{chapter}{\protect + \numberline{\thechapter.}\quad #1} + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +% The \chapter heading +\def\@makechapterhead#1{% + \if@pitteng + %%\vspace*{12\p@}% + \else + \vspace*{0.7in}% + \fi + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \large\bfseries\centering % \@chapapp\space \thechapter + \if@pitteng + \thechapter.0\quad % extra space + \else + \thechapter.\quad % extra space + \fi + \fi + \interlinepenalty\@M + \large\bfseries #1\par\nobreak % TeX penalty to prevent page break. + \ifnum\@ptsize=2 + \vskip 24\p@ % Space between heading and text. + \else + \vskip 20\p@ + \fi + }} +\def\@schapter#1{% + \typeout{#1} % screen message + \addcontentsline{toc}{chapter}{#1} % added -- wkim + \if@headings + \@mkboth{\MakeUppercase#1}{\MakeUppercase#1}% added -- wkim + \fi + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} +% The unnumbered heading +\def\@makeschapterhead#1{% + \if@pitteng + %%\vspace*{12\p@}% + \else + \vspace*{0.7in}% + \fi + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \large\bfseries\centering #1\par\nobreak % TeX penalty to prevent page break. + \ifnum\@ptsize=2 + \vskip 24\p@ % Space between heading and text. + \else + \vskip 20\p@ + \fi + }} + +%%-------------------------------------------------------------------------- +% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} +% optional * [ALTHEADING]{HEADING} +% Generic command to start a section. +% NAME : e.g., 'subsection' +% LEVEL : a number, denoting depth of section -- e.g., chapter=1, +% section = 2, etc. A section number will be printed if +% and only if LEVEL < or = the value of the secnumdepth +% counter. +% INDENT : Indentation of heading from left margin +% BEFORESKIP : Absolute value = skip to leave above the heading. +% If negative, then paragraph indent of text following +% heading is suppressed. +% AFTERSKIP : if positive, then skip to leave below heading, +% else - skip to leave to right of run-in heading. +% STYLE : commands to set style +% If '*' missing, then increments the counter. If it is present, then +% there should be no [ALTHEADING] argument. A sectioning command +% is normally defined to \@startsection + its first six arguments. +% +\renewcommand\section{\@startsection {section}{1}{\z@}% + {5ex \@plus 1ex \@minus .2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries\centering}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {3ex\@plus 1ex \@minus .2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries}} + +% since \subsubsection heading is rather unique, it is redefined here +% +\renewcommand\subsubsection{\secdef\@subsubsection\@ssubsubsection} % + +\def\@subsubsection[#1]#2{ \refstepcounter{subsubsection}% + \addcontentsline{toc}{subsubsection}{\protect % put an entry to + \numberline{\thesubsubsection}\space #1} % jobname.toc file + \@makesubsubsectionhead{#2}\nolinebreak} + +\def\@ssubsubsection#1{\@makessubsubsectionhead{#1}\nolinebreak} + +\def\@makesubsubsectionhead#1{ % Heading for \subsubsection command + \par \vspace*{12pt} % Space before + \noindent + {\normalsize\bfseries\underbar{\hbox{% + \thesubsubsection\space\space#1}}.~~}} + +\def\@makessubsubsectionhead#1{ % Heading for \subsubsection* command + \par \vspace*{12pt} % Space before + \noindent + { \normalsize\bfseries\underbar{\hbox{#1}}\nolinebreak.~~}} + +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {2.5ex \@plus1ex \@minus.2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {2.2ex \@plus1ex \@minus .2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} + +% Default initializations of \...mark commands. (See below for their +% us in defining page styles. +% +% \def\chaptermark#1{} +% \def\sectionmark#1{} % Preloaded definitions +% \def\subsectionmark#1{} +% \def\subsubsectionmark#1{} +% \def\paragraphmark#1{} +% \def\subparagraphmark#1{} + +\newcommand\@coversheet[1]{% + % make a cover sheet with a heading centered on a page + \if@twocolthesis + \onecolumn + \else + \clearpage + \fi + \thispagestyle{empty} % cover sheets are not numbered + {\vbox{}\vfill% + \center{\Large\bfseries #1} % cover sheet heading in \Large font + \vfill\vbox{\vspace{2.4in}}} + \if@twocolthesis + \twocolumn + \else + \clearpage + \fi + } + +%%-------------------------------------------------------------------------- +%% APPENDIX +%%-------------------------------------------------------------------------- +% +% The \appendix command must do the following: +% -- reset the chapter counter to zero +% -- set \@chapapp to Appendix (for messages) +% -- redefine the chapter counter to produce appendix numbers +% -- reset the section counter to zero +% -- redefine the \chapter command if appendix titles and headings are +% to look different from chapter titles and headings. + +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{subsubsection}{0}% + \setcounter{subparagraph}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}} + +%%-------------------------------------------------------------------------- +%%%%%%% The appendix environments: %%%%%%%%%%%%%%% +%%-------------------------------------------------------------------------- +%% There would be no *-form chapters (\chapter*{}) in appendix environments. +\newenvironment{appendices}{ + \begingroup + \setcounter{chapter}{0} + \setcounter{section}{0} + \setcounter{subsection}{0} + \setcounter{subsubsection}{0} + \setcounter{subparagraph}{0} + \gdef\@chapapp{\appendixname} + \gdef\thechapter{\@Alph\c@chapter} + \addtocontents{toc}{\protect\addvspace{0.5em}}% + \if@floatsbychapter % if figures, tables are numbered by chapters + \renewcommand\thefigure + {\ifnum \c@chapter>\z@ \thechapter-\fi \@arabic\c@figure} + \renewcommand\thetable + {\ifnum \c@chapter>\z@ \thechapter-\fi \@arabic\c@table} + % \renewcommand\thefigure{\thechapter-\@arabic\c@figure} + % \renewcommand\thetable{\thechapter-\@arabic\c@table} + \else % if figures and tables are numbered sequentially + \renewcommand\thefigure{\@arabic\c@figure} + \renewcommand\thetable{\@arabic\c@table} + \fi + \renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \if@floatsbychapter + \setcounter{figure}{0} + \setcounter{table}{0} + \fi + \global\@topnum\z@ % Prevents figures from going at top of page. + %\@afterindentfalse % indent the 1st paragraph -- wkim + \secdef\@chapter\@schapter + } + \def\@chapter[##1]##2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \fi + \if@pitteng % Pitt Engineering thesis + \typeout{\@chapapp\space\thechapter} %screen message + \addcontentsline{toc}{chapter}{APPENDIX \thechapter\quad ##1} + \else % Pitt standard thesis + \typeout{\@chapapp\space\thechapter.} %screen message + \addcontentsline{toc}{chapter}{APPENDIX \thechapter.\quad ##1} + \fi + \gdef\@chapapp{} % + \chaptermark{##1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% extra vspace in list of figures + \addtocontents{lot}{\protect\addvspace{10\p@}}% extra vspace in list of tables + % + \@coversheet{APPENDIX \thechapter}% a cover sheet for each appendix chapter + \if@twocolumn + \@topnewpage[\@makechapterhead{##2}]% + \else + \@makechapterhead{##2}% + \@afterheading + \fi} + \def\@makechapterhead##1{ % Heading for \chapter command + \if@pitteng + \if@headings + \thispagestyle{plain} + \fi + \else + \thispagestyle{plain} + \fi + \global\@topnum\z@ % Prevents figures from going at top of page. + \if@pitteng\else + \vspace*{0.7in} % space at top of text page. + \fi + { + \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN + \large\bfseries\centering% + \if@pitteng % Pitt Engineering thesis + APPENDIX \thechapter\quad + \else % Pitt Standard + APPENDIX \thechapter.\quad + \fi + \fi + \large \bfseries ##1\par % may need a : in here + \nobreak % TeX penalty to prevent page break. + \ifnum\@ptsize=2 + \vskip 24\p@ % Space between heading and text. + \else + \vskip 20\p@ + \fi + } + %\@afterindentfalse % indent the 1st paragraph -- wkim + } +}{ \endgroup } + +%%-------------------------------------------------------------------------- +%% Single appendix environment: +%%-------------------------------------------------------------------------- +% +\newenvironment{singleappendix}{ + \begingroup + \setcounter{chapter}{0} + \setcounter{section}{0} + \setcounter{subsection}{0} + \setcounter{subsubsection}{0} + \setcounter{subparagraph}{0} + \gdef\@chapapp{Appendix} + \gdef\thechapter{\@Alph\c@chapter} + \addtocontents{toc}{\protect\addvspace{0.5em}}% + \if@floatsbychapter + \setcounter{figure}{0} + \setcounter{table}{0} + \if@pitteng % Pitt Engineering thesis + \def\thefigure{A.\@arabic\c@figure} + \def\thetable{A.\@arabic\c@table} + \else % Pitt Standard + \def\thefigure{A-\@arabic\c@figure} + \def\thetable{A-\@arabic\c@table} + \fi + \else + \def\thefigure{\@arabic\c@figure} + \def\thetable{\@arabic\c@table} + \fi + \def\@chapter[##1]##2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \fi + \typeout{\@chapapp} %screen message + \addcontentsline{toc}{chapter}{APPENDIX\quad ##1} + \gdef\@chapapp{} % + \chaptermark{##1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% extra vspace in list of figures + \addtocontents{lot}{\protect\addvspace{10\p@}}% extra vspace in list of tables + \if@twocolumn + \@topnewpage[\@makechapterhead{##2}]% + \else + \@makechapterhead{##2}% + \@afterheading + \fi} + \def\@makechapterhead##1{ % Heading for \chapter command + \@coversheet{APPENDIX} % the cover page for appendix + \if@pitteng + \if@headings + \thispagestyle{plain} + \fi + \else + \thispagestyle{plain} + \fi + \global\@topnum\z@ % Prevents figures from going at top of page. + \if@pitteng\else + \vspace*{12pt} % space at top of text page. + \fi + { + \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN + \large\bfseries\centering + APPENDIX \space \fi \large \bfseries ##1\par + \nobreak % TeX penalty to prevent page break. + \ifnum\@ptsize=2 + \vskip 24\p@ % Space between heading and text. + \else + \vskip 20\p@ + \fi + } + %\@afterindentfalse % indent the 1st paragraph -- wkim + } +}{ \endgroup } + +%%-------------------------------------------------------------------------- +%% Numbering Figures and Tables +%%-------------------------------------------------------------------------- +%% +%%removefr.tex +%%Date: Sat, 30 Jul 1994 17:58:55 PST +%%From: Donald Arseneau +%% +%% \@removefromreset{FOO}{BAR} : Removes counter FOO from the list of +%% counters \cl@BAR to be reset when counter BAR +%% is stepped. The opposite of \@addtoreset. +\def\@removefromreset#1#2{\let\@tempb\@elt + \expandafter\let\expandafter\@tempa\csname c@#1\endcsname + \def\@elt##1{\expandafter\ifx\csname c@##1\endcsname\@tempa\else + \noexpand\@elt{##1}\fi}% + \expandafter\edef\csname cl@#2\endcsname{\csname cl@#2\endcsname}% + \let\@elt\@tempb} + +%% to number figures and tables by chapters. +\if@floatsbychapter % If figures & tables are numbered by chapter + \if@pitteng % Pitt Engineering thesis + \renewcommand\thefigure + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} + \renewcommand\thetable + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} + \else % Pitt standard thesis + \renewcommand\thefigure + {\ifnum \c@chapter>\z@ \thechapter-\fi \@arabic\c@figure} + \renewcommand\thetable + {\ifnum \c@chapter>\z@ \thechapter-\fi \@arabic\c@table} + \fi +\else % figures & tables are numbered sequentially + \@removefromreset{figure}{chapter} + \@removefromreset{table}{chapter} + \renewcommand\thefigure{\@arabic\c@figure} + \renewcommand\thetable{\@arabic\c@table} +\fi + +%\setlength\abovecaptionskip{10\p@} +%\setlength\belowcaptionskip{0\p@} +\setlength\abovecaptionskip{5\p@} % Wonkoo Kim (wkim+@pitt.edu) +\setlength\belowcaptionskip{5\p@} % Wonkoo Kim (wkim+@pitt.edu) +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + % \sbox\@tempboxa{#1: #2}% + \sbox\@tempboxa{{\bfseries #1}\quad#2}% % Wonkoo Kim (wkim+@pitt.edu) + \ifdim \wd\@tempboxa >\hsize + % #1: #2\par + {\bfseries #1}\quad#2\par % Wonkoo Kim (wkim+@pitt.edu) + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +% + +%%-------------------------------------------------------------------------- +%% EQUATION and EQNARRAY -- put here because it must follow \chapter definition +%%-------------------------------------------------------------------------- +\@tempswafalse +\if@pittstd\if@floatsbychapter\else + \@tempswatrue\fi\fi +\if@tempswa + \@removefromreset{equation}{chapter} + \renewcommand\theequation{\@arabic\c@equation} +\else + %\@addtoreset {equation}{chapter} % Makes \chapter reset 'equation' counter. + % \@addtoreset is already done by report.cls. + %\renewcommand\theequation{\thechapter-\arabic{equation}} + \renewcommand\theequation{% + \ifnum \c@chapter>\z@ \thechapter-\fi \@arabic\c@equation} +\fi + +\jot = 3pt % Extra space added between lines of an eqnarray environment + +% The macro \@eqnnum defines how equation numbers are to appear in equations. +% +% \def\@eqnnum{(\theequation)} +\def\@eqnnum{\hbox{\rm (\theequation)}} %% WK added +%% WK -- Without this \@eqnnum, fonts(size) are different between equation, +%% eqnarray, and display math environments. + +% **************************************** +% * TABLE OF CONTENTS, ETC. * +% **************************************** +% +%\setcounter{tocdepth}{2} +\setcounter{tocdepth}{3} + +% TABLEOFCONTENTS +% In report style, \tableofcontents, \listoffigures, etc. are always +% set in single-column style. @restonecol +\renewcommand\tableofcontents{% + \clearpage % Wonkoo Kim (wkim+@pitt.edu) + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \if@pittstd + \vspace*{0.45in} + \fi + \section*{\contentsname} % Wonkoo Kim (wkim+@pitt.edu) + %\@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}%?? + \vskip -1em %% + \hfill \underline{Page}\par %% Wonkoo Kim (wkim+@pitt.edu) + \@starttoc{toc} + \if@restonecol\twocolumn\fi + } + +\def\thedots{\cleaders\hbox{$\m@th \mkern4.5mu . \mkern4.5mu$}\hfill} + +\renewcommand\listoffigures{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfigurename} + %\@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}% + \vskip -1em + \underline{Figure No.}\hfill \underline{Page}\par %% Wonkoo Kim (wkim+@pitt.edu) + \@starttoc{lof}% + \if@restonecol\twocolumn\fi + } + +\renewcommand\listoftables{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listtablename} + %\@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}% + \vskip -1em + \underline{Table No.}\hfill \underline{Page}\par %% Wonkoo Kim (wkim+@pitt.edu) + \@starttoc{lot}% + \if@restonecol\twocolumn\fi + } +%\let\l@table\l@figure + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** +% +% The thebibliography environment executes the following commands: +% +% \def\newblock{\hskip .11em plus .33em minus -.07em} -- +% Defines the `closed' format, where the blocks (major units of +% information) of an entry run together. +% +% \sloppy -- Used because it's rather hard to do line breaks in +% bibliographies, +% +% \sfcode`\.=1000\relax -- +% Causes a `.' (period) not to produce an end-of-sentence space. + +\renewenvironment{thebibliography}[1] + {\@coversheet{\bibname} % cover sheet + \addtocontents{toc}{\protect\addvspace{0.5em}}% + \chapter*{\bibname} + %\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% + \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}}% + \endlist} +\renewenvironment{theindex} + {\@coversheet{\indexname} % cover sheet + \addtocontents{toc}{\protect\addvspace{0.5em}}% + \if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \columnseprule \z@ + \columnsep 35\p@ + \twocolumn[\@makeschapterhead{\indexname}]% + \if@headings % Wonkoo Kim (wkim+@pitt.edu) + \@mkboth{\MakeUppercase\indexname}% + {\MakeUppercase\indexname}% + \thispagestyle{plain} + \fi + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} + +\renewcommand\contentsname {TABLE OF CONTENTS} +\renewcommand\listfigurename {LIST OF FIGURES} +\renewcommand\listtablename {LIST OF TABLES} +\renewcommand\bibname {BIBLIOGRAPHY} +\renewcommand\indexname {INDEX} +\renewcommand\figurename {Figure} +\renewcommand\tablename {Table} +\renewcommand\partname {PART} +\renewcommand\chaptername {Chapter} +\renewcommand\appendixname {APPENDIX} +\renewcommand\abstractname {ABSTRACT} + +%%-------------------------------------------------------------------------- +%% Parameters for Thesis +%%-------------------------------------------------------------------------- +%% +\def\@degrees{} +\def\@degree{} +\def\@school{} +\def\@university{} +\def\@proposal{} + +\def\@year{} %% \year for titlepage +\def\year#1{\def\@year{#1}} + +\def\degrees#1{\def\@degrees{#1}} +\def\degree#1{\def\@degree{#1}} +\def\school#1{\def\@school{#1}} +\def\university#1{\def\@university{#1}} +\def\proposal#1{\def\@proposal{#1}} + +%%\def\signedrule{\nobreak\leaders\hrule\hskip 2.0truein\ } +%\def\@signedrule#1{\null\nobreak\leaders\hrule\hskip#1\null} +\def\@signedrule#1{\rule[-0.6ex]{#1}{0.2pt}} +\def\signedrule{\null\nobreak\leaders\hrule\hfill\null} +%\def\signedrule{\null\nobreak\leaders\hrule\hfill\null} +%% WK -- Use \@signedrule for fixed length. (\signedrule is variable.) + +%%-------------------------------------------------------------------------- +%% Title Page +%%-------------------------------------------------------------------------- + +\def\maketitle{{ + \baselineskip 18pt % line spacing + \begin{titlepage} + \let\footnotesize\small % Local definitions to make \thanks produce + \let\footnoterule\relax % \normalsize footnotes with no separating rule. + \setcounter{page}{1} + \null + \if@pittstd + \vskip 0.7truein + \fi + \begin{center} + {\large\bfseries\baselineskip 18pt + \@title \par} % Set title in \large size. + \vskip 36pt % Vertical space after title. %% WK + {\normalsize\bfseries\baselineskip 18pt % Set author in \normalsizes. + by\par + \begin{tabular}[t]{c}\@author + \end{tabular}\par} + { + \normalsize\bfseries\baselineskip 18pt + \if@proposal + \vskip 72pt + \@proposal\par % Ph.D. Dissertation Proposal\par + \else + \vskip 12pt % Vertical space after author. + \@degrees\par + \fi + \vskip 60pt + Submitted to the Graduate Faculty\\ + of the \@school\\ + in partial fulfillment of\\ + the requirement for the degree of\\ + \@degree\par + \vskip 36pt + \@university\\ + \if@proposal + \@date + \else + \@year % set year in + \fi + } + \end{center}\par + \vskip 18pt + \baselineskip 10pt + \if@proposal\else + \noindent\hspace{3.0in} {The Author grants permission}\par + \noindent\hspace{3.0in} {to reproduce single copies.}\par + \vskip 36pt + \noindent\hspace{3.0in} {\bfseries \signedrule}\par + \vskip -1ex + \noindent\hspace{3.0in} {\bfseries\small Signed}\par + \fi + \vfil + \null + \end{titlepage} + \setcounter{footnote}{0} % Footnotes start at zero again. + \setcounter{page}{2} % page starts start at 2 for theses. + \global\let\maketitle\relax + \global\let\degrees\relax + \global\let\@degrees\@empty + \global\let\degree\relax + \global\let\@degree\@empty + \global\let\school\relax + \global\let\@school\@empty + \global\let\thanks\relax + \global\let\@thanks\@empty + % keep \@author, \@date, \@title, \@year etc. + % for committee signature & abstract pages. +}} + +%%-------------------------------------------------------------------------- +%% COMMITTEE SIGNATURE PAGE +%%-------------------------------------------------------------------------- +%% Macros for Ph.D./M.S. COMMITTEE SIGNATURE PAGE +% +% Usage: +% \begin{committeesignature}[5] % begins the committee signature page +% for 5 committee members. +% \advisor{name, title} % prints advisor's signature line \@advisor +% \chairperson{name, title} % synonym to \advisor (\@chairperson = \@advisor) +% +% [\coadvisor{name, title}] % prints coadvisor's signature line [optional] +% [\cochairperson{name, title}] % synonym to \coadvisor [optional] +% +% \committeemember{name, title} +% +% ... (as many as you want) ... +% +% \committeemember{name, title} +% +% \end{committeesignature} % ends the committee signature page +% +% For M.S. Thesis, +% \begin{committeesignature} +% \advisor{Prof. Foo Bar, Ph.D.} +% \end{committeesignature} +% +% For Ph.D. Thesis, +% \begin{committeesignature}[4] % 4 committee members. +% \advisor{Prof. Foo Bar, Ph.D.} +% \committeemember{Prof. Abc Def, Ph.D.} +% \committeemember{Prof. Xyz Uvw, Ph.D.} +% \committeemember{Prof. Bar Foo, Ph.D.} +% \end{committeesignature} +% +\newenvironment{committeesignature}[1][5] + {\baselineskip 18pt + \if@twocolumn + \@restonecoltrue + \onecolumn + \else + \clearpage + \@restonecolfalse + \fi + \if@proposal\else + \typeout{ COMMITTEE SIGNATURE PAGE } + \@makeschapterhead{COMMITTEE SIGNATURE PAGE} + \vspace{12pt} + \if@msthesis\vspace{24pt}\fi + \if@phdthesis + \vspace{-30pt} + \begin{center} + This dissertation was presented\\[4pt] + by\\[4pt] + \underline{\quad\@author\quad}\\[12pt] + It was defended on\\[4pt] + \underline{\quad\@date\quad}\\[10pt] + and approved by + \ifnum#1>5\\[36pt] % 6 members + \else\ifnum#1>4\\[36pt] % 5 + \else\ifnum#1>3\\[54pt] % 4 + \else\\[72pt]\fi\fi\fi % 3 or less + \end{center} + \fi + \fi + \if@pittstd + \ifnum#1>5\def\tempskip{-16pt} % 6 members + \else\ifnum#1>4\def\tempskip{0pt} % 5 + \else\ifnum#1>3\def\tempskip{4pt} % 4 + \else\def\tempskip{8pt}\fi\fi\fi % 3 or less + \else + \ifnum#1>5\def\tempskip{-12pt} % 6 members + \else\ifnum#1>4\def\tempskip{5pt} % 5 + \else\ifnum#1>3\def\tempskip{10pt} % 4 + \else\def\tempskip{15pt}\fi\fi\fi % 3 or less + \fi + } {} + +\if@phdthesis % if Ph.D. thesis +%%-------------------------------------------------------------------------- +% Ph.D. Committee Signatures +%%-------------------------------------------------------------------------- + \def\@authortitle{Ph.D.} % Author's title + \def\@chairperson{} % Chairperson's name (advisor) + \def\@cochairperson{} % co-chairperson's name + \def\@committee{} % committee member name + + \def\chairpersonname#1{\def\@chairperson{#1}} % define name only + \let\advisorname\chairpersonname + + \def\chairperson#1{\def\@chairperson{#1}\def\@committee{#1} + \if@proposal\else + \@phdcommittee{Chairperson} + \fi} + + \def\cochairperson#1{\def\@cochairperson{#1}\def\@committee{#1} + \if@proposal\else + \@phdcommittee{Co-chairperson} + \fi} + + \let\advisor\chairperson + \let\@advisor\@chairperson + \let\coadvisor\cochairperson + \let\@coadvisor\@cochairperson + + \def\committeemember#1{\def\@committee{#1} + \if@proposal\else + \@phdcommittee{Member} + \fi} + + \if@proposal\else + \def\@phdcommittee#1{ + \begin{tabbing} + (Signature) \= \@signedrule{5in} \\[-0.5ex] % set tab by \= + \> Committee {#1} \\[-0.7ex] % move to tabs. + \> \@committee \\[\tempskip] + \end{tabbing} + } + \fi +\else % if not Ph.D. thesis +%%-------------------------------------------------------------------------- +% M.S. Committee Signatures +%%-------------------------------------------------------------------------- + \if@pitteng + \def\@authortitle{M.S.} + \else + \def\@authortitle{M.A.} + \fi + \def\@advisor{} + \def\advisorname#1{\def\@advisor{#1}} % define name only + + \def\advisor#1{\def\@advisor{#1}\def\@committee{#1} + \if@proposal\else + \@mscommittee{Advisor} + \fi} + \def\@coadvisor{} + \def\coadvisor#1{\def\@coadvisor{#1}\def\@committee{#1} + \if@proposal\else + \@mscommittee{Co-advisor} + \fi} + \def\@committee{} + \def\committeemember#1{\def\@committee{#1} + \if@proposal\else + \@mscommittee{Committee Member} + \fi} + + \let\chairperson\advisor + \let\@chairperson\@advisor + \let\cochairperson\coadvisor + \let\@cochairperson\@coadvisor + \let\chairpersonname\advisorname + + \if@proposal\else + \def\@mscommittee#1{ + \begin{tabbing} + \hspace{2.5in} \= \hspace{0.9in} \= \kill % set tabs by \= + {\@committee} \\[-2.5ex] + \@signedrule{2.5in} \> \> \@signedrule{2.5in} \\[-.5ex] % move to tabs. + {#1} \> \> Signature \\ + \end{tabbing} + } + \fi +\fi + +\def\authortitle#1{\def\@authortitle{#1}} + +%%-------------------------------------------------------------------------- +%% ABSTRACT PAGE +%%-------------------------------------------------------------------------- +\renewcommand\abstract{{ + \baselineskip 18pt + \typeout{ ABSTRACT } + \if@twocolumn + \@restonecoltrue + \onecolumn + \else + \clearpage + \@restonecolfalse + \fi + \null % \null itself has a line space + extra + \if@pitteng + \vspace{1in} + \fi + \addcontentsline{toc}{chapter}{ABSTRACT} + \@makeschapterhead{ABSTRACT} + \vskip 1em + \if@proposal\else % if not proposal (i.e. thesis) + \noindent\hspace{3in}\raisebox{0.75ex}{Signature} \signedrule\par + \settowidth{\stringlen}{Signature}% + \if@phdthesis + \if{\@chairperson}{}\else + \vspace*{-2ex}\noindent\hspace{3in} \hspace{\stringlen} \@chairperson\par + \fi + \else + \if{\@advisor}{}\else + \vspace*{-2ex}\noindent\hspace{3in} \hspace{\stringlen} \@advisor\par + \fi + \fi + \nobreak % + \vspace*{2.5ex} % + \begin{center} + \textbf{{\@title}} \par \vspace{5ex} + {\@author} \if{\@authortitle}{} + \else{,\ \@authortitle} \fi \par + \if@pitteng % Pitt Engineering + {\@university} \par + \else % Pitt Standard + {\@university, \@year} \par + \fi + \end{center} + \vspace*{2ex} + \fi +}} + +% The macros for the ACKNOWLEDGEMENTS and FOREWORDS + +\def\acknowledgments{\chapter*{ACKNOWLEDGMENTS}} +\def\forewords{\chapter*{FOREWORDS}} +\def\preface{\chapter*{PREFACE}} +\let\acknowledgements\acknowledgments + +% **************************************** +% * INITIALIZATION * +% **************************************** +% +% Default initializations + +\newlength\stringlen % To measure string length: \settowidth{\stringlen}{text string} + % Used in pitteng.clo to align texts by \hspace{\stringlen} + +\input{pitt\@pitthesis.clo} + +\AtBeginDocument{% + \baselineskip \@pitthesislinespacing % default line spacing is 1.5 lines. + \parskip 4pt plus 10pt % the distance between paragraphes + \clubpenalty4000 % To remove orphan (single line at bottom of page) and + \@clubpenalty \clubpenalty % widow (single line at top of page). + \widowpenalty4000% % -- Wonkoo Kim (wkim+@pitt.edu) + \onecolumn % start thesis in one column even if twocolumn was chosen. +} + +\gdef\@university{University of Pittsburgh} + +\proposal{Ph.D. Dissertation Proposal} + +\endinput +%% +%% End of file `pitthesis.cls'. -- cgit v1.2.3