summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/umthesis/umthesis.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/umthesis/umthesis.cls')
-rw-r--r--macros/latex/contrib/umthesis/umthesis.cls688
1 files changed, 688 insertions, 0 deletions
diff --git a/macros/latex/contrib/umthesis/umthesis.cls b/macros/latex/contrib/umthesis/umthesis.cls
new file mode 100644
index 0000000000..0baeda572c
--- /dev/null
+++ b/macros/latex/contrib/umthesis/umthesis.cls
@@ -0,0 +1,688 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% LaTeX class file in conformance with the specifications set by the
+%% University of Michigan for dissertations
+%% This class loads the standard book class and then modifies it as little as %% possible. Many of the modifications were taken from the beavtex class and
+%% the umdiss.cls
+%%
+%%%%%% NEWLY DEFINED COMMANDS
+%% The goal with this class is to use standard LaTeX commands such as author
+%% and title as much as possible, but several new commands were also necessary
+%% COMMANDS
+%% \makecopyright
+%% \degree{doctor of philosophy or whater}
+%% \program{name of program}
+%% \committeemember{one for each normal committee member}
+%% \chaircommitteemember{for your chair}
+%% \cochaircommitteemember{use two of these if you have co-chairs}
+%% \listofappendices - generates list of appendices
+%% - only use if you have more than one appendix
+%%
+%% NAMES - for most commands and environments, there is also an associated
+%% name, e.g. the preface environment uses the command \prefacename to
+%% determine how it should be labeled. If you would prefer 'Prologue' instead
+%% of 'Preface', you can change this by redefining \prefacename in the
+%% preamble of your LaTeX file, like so:
+%% \renewcommand{\prefacename}{Prologue}
+%%
+%%%%%%%% NEWLY DEFINED ENVIRONMENTS
+%% frontispiece - vertically centered, and horizontally centered, but
+%% uses a flushright environment for typesetting quotes
+%% dedication - vertically and horizontally centered
+%% acknowledgments - for typesetting acknowledgements
+%% preface - typesets the preface
+%% abstract - typesets the abstract as it should be included in the
+%% dissertation
+%% finalabstract - formatted according to Rackham guidelines for the
+%% separate abstract
+%%
+%%%%%% DEPENDENCIES (REQUIRED PACKAGES)
+%% This class requires several standard LaTeX packages
+%% setspace - easily and consistently set line spacing
+%% ifthen - required for internal class commands
+%% hyperref - provides support for all sorts of nifty and handy things, such
+%% as pdf bookmarks and thumbnails, links from the table of
+%% contents and links for references, citations, and indexing
+%%
+%%%%%% PACKAGES KNOWN TO BE COMPATIBLE
+%% natbib - better formatting for bibliographies
+%% sectsty - for changing formatting of section headings
+%% graphics, graphicx - for including graphics files
+%% note that regular latex can only include .eps files
+%% pdflatex can import .png, .jpg, .pdf, but not .eps
+%% To include .eps with pdflatex use the epstopdf package
+%% and run as 'pdflatex --shell-escape' (requires gs)
+%% tipa - for phonetic fonts
+%% tabularx - advanced tabular environments
+
+%%%%%% INCOMPATIBILITIES
+%% fncycchap
+%% titlesec
+%%%%%% ACKNOWLEDGEMENTS
+%% Thanks to Heiko Oberdiek for a tip on how to get bookmarks right for the
+%% appendix (posted on groups.google.com/group/comp.text.tex)
+%% Thanks also to Jon Hanson, who pointed out some flaws, and made several
+%% suggestions for improvements
+%% And thanks to the writers of the umdiss.cls, umich-thesis.cls, and the
+%% beavtex.cls, from which much of this was stolen
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%foo
+\newcommand{\filename}{umthesis}
+\newcommand{\fileversion}{$Revision: 55 $}
+\newcommand{\filedate}{2008/02/14}
+\newcommand{\fileauthor}{$Author: robfelty $}
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{\filename}[\filedate \fileversion %
+ : University of Michigan thesis class - based on book]
+
+\RequirePackage{setspace} %for spacing
+\RequirePackage{ifthen} % advanced control structures
+\RequirePackage{etex} % enable advanced tex features, particularly don't limit the number of dimensions to 256
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
+
+% These are the default options.
+\ExecuteOptions{12pt,openany,oneside}
+\ProcessOptions\relax
+
+\PassOptionsToClass{oneside,openany}{book}
+
+\LoadClass[letterpaper]{book}
+
+\renewcommand\l@chapter{\protect\vskip1em \@dottedtocline{0}{0em}{1.5em}}
+\newcommand\prefacename{Preface}
+\newcommand\abstractname{Abstract}
+\newcommand\dedicationname{Dedication}
+\renewcommand\contentsname{Table of Contents}
+\newcommand\acknowledgmentsname{Acknowledgments}
+\newcommand\listappendixname{List of Appendices}
+\renewcommand\appendixname{Appendix} % JH uncommented and amended this
+\newcommand\appendicesname{Appendices}
+% -------------------------------------------------------------------------------
+% Set up page layout.
+
+% \evensidemargin is used when [twoside] is set (by [preprint]).
+%\setlength{\oddsidemargin}{\@lmarwidth}
+%\setlength{\evensidemargin}{\@smarwidth}
+\pagestyle{plain}
+\setlength{\textwidth}{6in}
+\setlength{\textheight}{9in}
+% Other margins. T.G.: all other margins must be at least 1 inch.
+\setlength{\topmargin}{0in}
+\setlength{\headheight}{0in}
+\setlength{\headsep}{0in}
+\setlength{\footskip}{.5in}
+\onehalfspacing
+
+% -------------------------------------------------------------------------------
+% Font size for headings. T.G. : headings may be either 14pt only if all
+% headings are 14pt. I assume you want them all be 14 pt (at least I do). For
+% 12pt headings, you need:
+% \renewcommand{\heading}{\fontsize{12}{14.5}\selectfont}
+
+% Note: commands like \large etc are proportional to normal font size (which can
+% be 10, 11 or 12), and should be avoided. Use \heading when you typeset a
+% heading.
+\newcommand{\heading}{\huge \bf}
+
+%-------------------------------------------------------------------------------
+\newif\if@appendix
+\newcommand{\ext@toc}{toc}
+\newif\if@appendices \@appendicesfalse
+ % JH: added appendices flag above to handle multiple appendices. Becomes true if \listofappendicies is called.
+% Authors: use \mainmatter before the main content
+%\renewcommand{\mainmatter}{%
+% \cleardoublepage%
+% \@mainmattertrue%
+% \pagestyle{plain}
+% \setcounter{page}{1}%
+% \pagenumbering{arabic}%
+%}
+\renewcommand\appendix{%
+ \phantomsection
+ \if@twocolumn
+ \onecolumn
+ \fi
+ \clearpage%
+ \@appendixtrue%
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \renewcommand{\chaptername}{}
+ \gdef\@chapapp{\appendixname}%
+ \if@appendices % JH added this line
+ \else % JH added this line
+ \setcounter{chapter}{\m@ne}% JH added this line to make appendix unnumbered
+ \fi % JH added this line
+ \gdef\thechapter{\@Alph\c@chapter}% JH added this line
+
+ % the hypersetup command will tell hyperref to make bookmarks based on the
+ % list of appendices
+ \hypersetup{bookmarkstype={loa}}
+ \def\ext@toc{loa}%
+ \if@appendices % JH added this
+ \addcontentsline{toc}{chapter}{\textbf{\appendicesname}}% original line
+ \appendixpage % JH remove this line and uncomment line below if appendix page is required/desired even when only one appendix
+ \else % JH added this
+ \addcontentsline{toc}{chapter}{\textbf{\appendixname}}% JH added this
+ \fi % JH added this
+ %\appendixpage% JH: uncomment this line if appendix page is required/desired even when only one apendix
+}
+
+%% T.G. : An appendix page is required before the appendices.
+\newcommand{\appendixpage}{%
+ \thispagestyle{plain}
+ \vspace*{\fill}
+ \begin{center}{\heading \if@appendices \appendicesname \else \appendixname \fi}\end{center}% JH added appendixname alternative
+ \vspace*{\fill}
+ \clearpage%
+}
+%
+%% Redefine \@chapter, so that appendices are added in .loa file if [seploa] is
+%% set. Also, I commented out the lines adding space between figures/tables of
+%% different chapters. I am not sure yet if it is necessary. The following code
+%% is pretty much copied from book.cls. If it looks messy, don't blame me :P
+\def\@chapter[#1]#2{
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}
+ \typeout{\@chapapp\space\thechapter.}
+ \addcontentsline{\ext@toc}{\if@appendix chapter\else chapter\fi}{\if@appendix \chaptername\ \protect\numberline{\thechapter}#1\else \textbf{\chaptername\ \protect\numberline{\thechapter}#1}\fi}
+ \else
+ \addcontentsline{\ext@toc}{chapter}{#1}
+ \fi
+ \else
+ \addcontentsline{\ext@toc}{chapter}{#1}
+ \fi
+ \chaptermark{#1}
+% Gap between figures/tables of different chapters or not?
+ \addtocontents{\ext@figure}{\protect\addvspace{10\p@}}
+ \addtocontents{\ext@table}{\protect\addvspace{10\p@}}
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]
+ \else
+ \@makechapterhead{#2}
+ \@afterheading
+ \fi
+}
+%
+%% For separate listings of appendices ([seploa] is set), every appendix is
+%% listed the same as a chapter, otherwise it is like a section. not sure if it's
+%% the optimal solution. but it looks nice for now.
+\def\l@app#1#2{%
+% \l@chapter{#1}{#2}
+ %\else{\vskip 4pt {\baselineskip 14.5pt%
+ \@dottedtocline{1}{1pc}{2em}{#1}{#2}%
+%}}
+}
+
+% Chapter heading. centered, and 2 in top margin. We like them \huge \bf as well
+\renewcommand{\@makechapterhead}[1]{%
+ \begin{singlespacing}
+ \vspace*{.5in}%
+ {
+ \begin{center}
+ \normalfont \heading %\huge \bf
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter\bf\@chapapp\ \thechapter\\[.5em] \fi
+ \fi
+ \bf #1\\[1em]
+ \end{center}
+ }
+ \end{singlespacing}
+}
+
+%this sets the style for starred chapter \chapter*
+\renewcommand{\@makeschapterhead}[1]{%
+ \begin{singlespacing}
+ \vspace*{.5in}%
+ {
+ \begin{center}
+ \normalfont \heading %\huge \bf
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter\bf\@chapapp\ \thechapter\\[1em] \fi
+ \fi
+ \bf #1\\[2em]
+ \end{center}
+ }
+ \end{singlespacing}
+}
+\renewcommand\listoftables{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listtablename}%
+ \begin{singlespacing}
+ \addcontentsline{toc}{chapter}{\textbf{\listtablename}}%
+ \@mkboth{\listtablename}\listtablename{}
+ \vskip 1em
+ {\parindent \z@ \raggedright \bf Table{}\par}
+ \@starttoc{lot}%
+ \if@restonecol\twocolumn\fi
+ \end{singlespacing}
+ }
+\renewcommand\listoffigures{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listfigurename}%
+ \begin{singlespacing}
+ \addcontentsline{toc}{chapter}{\textbf{\listfigurename}}%
+ \@mkboth{\listfigurename}{\listfigurename}
+ \vskip 1em
+ {\parindent \z@ \raggedright \bf Figure{}\par}
+ \@starttoc{lof}%
+ \if@restonecol\twocolumn\fi
+ \end{singlespacing}
+ }
+\newcommand\listofappendices{%
+ \@appendicestrue % JH appendix code
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listappendixname}%
+ \begin{singlespacing}
+ \addcontentsline{toc}{chapter}{\textbf{\listappendixname}}%
+ \@mkboth{\listappendixname}\listappendixname{}
+ \vskip 1em
+ {\parindent \z@ \raggedright \bf \appendixname{}\par}
+ %% the setcounter lines can be used if you wish to not list sections in the
+ %% list of appendices. This is a bit of a hack
+ %\setcounter{tocdepth}{0}
+ \@starttoc{loa}%
+ %\setcounter{tocdepth}{4}
+ \if@restonecol\twocolumn\fi
+ \end{singlespacing}
+ }
+
+%this redefines the section headings somewhat, most importantly whether to include sections in the appendix in the list of appendices instead of in the table of contents
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ \singlespacing
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{\ext@toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{\ext@toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}}%
+ %\fi
+ \fi
+ \@xsect{#5}
+}
+% Make quote environment single-spaced.
+\let\oldquote\quote
+\let\oldendquote\endquote
+\renewenvironment{quote}{\oldquote\singlespace}{\oldendquote}
+
+% Make quotation environment single-spaced.
+\let\oldquotation\quotation
+\let\oldendquotation\endquotation
+\renewenvironment{quotation}{\oldquotation\singlespace}{\oldendquotation}
+
+%% this is mostly copied from umdiss.cls. It defines the additional necessary
+% commands for creating the title page and other frontmatter material, e.g.
+% preface, copyright.
+%% for the committemembers, the commands allow an optional
+% argument, to specify the institution for outside members
+
+%%DJM: added to detect when have gotten to second or later cochairs, for
+%% use in abstract page. not fixed for special members...
+%% RAF 2007.03.19 fixed this for special members
+
+\newif\iffirstcochair\firstcochairtrue
+
+\newtoks\chairtokenlist
+\newtoks\committeetokenlist
+\newtoks\abstokenlist
+\chairtokenlist{}
+\committeetokenlist{}
+\abstokenlist{}
+
+\def\chaircommitteemember{
+ \@ifnextchar[{\@spchaircm}{\@regchaircm}}
+
+\def\cochaircommitteemember{
+ \@ifnextchar[{\@spcochaircm}{\@regcochaircm}}
+
+\def\committeemember{%
+ \@ifnextchar[{\@spcm}{\@regcm}}
+
+\def\@spchaircm[#1]#2#3{%
+ \def\abschairname{Chair:}%
+ \addto@hook{\chairtokenlist}{& #3 #2, Chair, #1\\}%
+ \addto@hook{\abstokenlist}{& #3 #2, #1}}
+
+\def\@regchaircm#1#2{%
+ \def\abschairname{Chair:}%
+ \addto@hook{\chairtokenlist}{& #2 #1, Chair\\}%
+ \addto@hook{\abstokenlist}{& #1\\}}
+
+\def\@spcochaircm[#1]#2#3{%
+ \def\abschairname{Co-Chairs:}%
+ \addto@hook{\chairtokenlist}{& #3 #2, Co-Chair, #1\\}%
+ \iffirstcochair\addto@hook{\abstokenlist}{& #1 }
+ \else\addto@hook{\abstokenlist}{and #2 }\fi
+ \firstcochairfalse}
+
+\def\@regcochaircm#1#2{%
+ \def\abschairname{Co-Chairs:}%
+ \addto@hook{\chairtokenlist}{& #2 #1, Co-Chair\\}%
+ \iffirstcochair\addto@hook{\abstokenlist}{& #1 }
+ \else\addto@hook{\abstokenlist}{and #1 }\fi
+ \firstcochairfalse}
+
+\def\@spcm[#1]#2#3{\addto@hook{\committeetokenlist}{& #3 #2, #1\\}}
+\def\@regcm#1#2{\addto@hook{\committeetokenlist}{& #2 #1\\}}
+
+\def\committee{
+ \begin{tabular}{p{0.5in}l}
+ \multicolumn{2}{l}{Doctoral Committee:}\\
+ \the\chairtokenlist
+ \the\committeetokenlist
+ \end{tabular}}
+
+
+\newcommand\degree[1]{\gdef\@degree{#1}}
+\newcommand\program[1]{\gdef\@program{#1}}
+
+
+\renewcommand\tableofcontents{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\contentsname
+ \@mkboth{\contentsname}\contentsname{}}%
+ \begin{singlespacing}
+ \pdfbookmark[0]{\contentsname}{contents}
+ \@starttoc{toc}%
+ \if@restonecol\twocolumn\fi
+ \end{singlespacing}
+ }
+\renewcommand\maketitle{
+ \pdfbookmark[0]{Title}{title}
+ \begin{titlepage}%
+ \singlespacing
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \setcounter{page}{-1}%
+ \vspace*{1in}
+ \begin{center}%
+ {\huge \bf \@title \par}%
+ \end{center}
+ \vfill
+ \centerline{\bf by}
+ \vspace{1ex}
+ \begin{center}%
+ {\large \bf \@author}
+ \end{center}
+ \vfill
+ \begin{center}%
+ A dissertation submitted in partial fulfillment\@centercr
+ of the requirements for the degree of\@centercr
+ \@degree\@centercr
+ (\@program)\@centercr
+ in The University of Michigan\@centercr
+ \number\year\@centercr
+ \end{center}
+ \vfill
+ \committee
+\vspace*{\fill}
+\null
+\end{titlepage}%
+\setcounter{footnote}{0}%
+%\gdef\@thanks{}\let\maketitle\relax
+}
+
+\newcommand{\makecopyright}{
+\begin{titlepage}
+ \vspace*{\fill}
+ \begin{center}
+ \begin{minipage}{.4\textwidth}
+ \begin{center}
+ \copyright\ \@author\@centercr
+ \vspace*{.5em}
+ \hrule
+ \vspace*{.5em}
+ All Rights Reserved\@centercr
+ \number\year\\%
+ \end{center}
+ \end{minipage}
+ \end{center}
+ \vspace*{\fill}
+\end{titlepage}
+}
+
+\newenvironment{frontispiece}{%
+ \begin{titlepage}%
+ \vspace*{\fill}
+ %\hspace*{\fill}
+ \begin{minipage}{.7\textwidth}
+ \begin{flushright}
+ }{%
+ \end{flushright}
+ \end{minipage}
+ \vspace*{\fill}
+ %\hspace*{\fill}
+ \end{titlepage}%
+}
+\newenvironment{finalabstract}{%
+ \pagestyle{empty}
+ \setcounter{page}{0}%
+ \begin{titlepage}
+ \begin{center}
+ {\large\bf \abstractname}\@centercr
+ \vspace{0.25in}
+ {\large \@title}\@centercr
+ \vspace*{0.25in}
+ by\@centercr
+ \vspace*{0.15in}
+ {\large \@author}
+ \end{center}
+ \vspace{0.5in}
+ \noindent\begin{tabular}{ll}
+ \abschairname
+ \the\abstokenlist
+ \end{tabular}
+ \vspace{0.25in}\par
+ \begin{doublespacing}
+}{%
+
+\end{doublespacing}
+ \end{titlepage}
+}
+
+\newenvironment{dedication}{%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\else\newpage\fi%
+ \thispagestyle{plain}
+ \setcounter{page}{2}%
+ \addcontentsline{toc}{chapter}{\textbf{\dedicationname}}%
+ \vspace*{\fill}
+ \begin{center}
+ }{%
+ \end{center}
+\vspace*{\fill}
+ \if@restonecol\twocolumn \else \newpage \fi}
+
+\newenvironment{acknowledgments}{
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\else\newpage\fi%
+ \chapter*{\acknowledgmentsname\@mkboth{\acknowledgmentsname}\acknowledgmentsname{}}
+ \addcontentsline{toc}{chapter}{\textbf{\acknowledgmentsname}}
+}{
+ \if@restonecol\twocolumn \else \newpage \fi%
+}
+
+\newenvironment{preface}{%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\else\newpage\fi%
+ \chapter*{\prefacename\@mkboth{\prefacename}\prefacename{}}
+ \addcontentsline{toc}{chapter}{\textbf{\prefacename}}
+}{
+ \if@restonecol\twocolumn \else \newpage \fi%
+}
+
+\newenvironment{abstract}{%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\else\newpage\fi%
+ \chapter*{\abstractname\@mkboth{\abstractname}{\abstractname}}
+ \addcontentsline{toc}{chapter}{\textbf{\abstractname}}
+}{
+ \if@restonecol\twocolumn \else \newpage \fi%
+}
+\renewenvironment{thebibliography}[1]{
+\def\ext@toc{toc}
+ \phantomsection %makes sure it points to the right page
+ \clearpage
+\hypersetup{bookmarkstype={toc}}
+ \begin{singlespacing}
+ \if@appendices
+ \clearpage%
+ \phantomsection
+ \thispagestyle{plain}
+ \addcontentsline{toc}{chapter}{\textbf{Bibliography}}
+ \vspace*{\fill}
+ \begin{center}{\heading \bibname}\end{center}%
+ \vspace*{\fill}
+ \clearpage
+ \else
+ \chapter*{\bibname}%
+ \addcontentsline{toc}{chapter}{\textbf{Bibliography}}
+ \fi
+ %\chapter*{\bibname}%
+ % \addcontentsline{toc}{chapter}{Bibliography}
+ \@mkboth{\bibname}{\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
+ \end{singlespacing}
+}
+% natbib is a commonly used package for formatting bibliographies.
+% If using natbib, then we must redefine some things in this way
+\AtBeginDocument{%
+ \@ifpackageloaded{natbib}{
+ \renewcommand{\bibsection}{
+ \hypersetup{bookmarkstype={toc}}
+ \@mkboth{\bibname}{\bibname}%
+ % if we use an a half page for appendices, then we also do so for
+ % bibliography
+ \if@appendices
+ \clearpage%
+ \phantomsection
+ \thispagestyle{plain}
+ \addcontentsline{toc}{chapter}{\textbf{Bibliography}}
+ \vspace*{\fill}
+ \begin{center}{\heading \bibname}\end{center}%
+ \vspace*{\fill}
+ \clearpage
+ \else
+ \chapter*{\bibname}%
+ \addcontentsline{toc}{chapter}{\textbf{Bibliography}}
+ \fi
+ }
+ \newcommand{\bibpreamble}{%
+ \singlespacing
+ }
+ }{}
+}
+% makes lists single spaced, and more compact
+% copying from tweaklist.sty
+
+\def\enumhook{}
+\def\enumhooki{}
+\def\enumhookii{}
+\def\enumhookiii{}
+\def\enumhookiv{}
+\def\itemhook{}
+\def\itemhooki{}
+\def\itemhookii{}
+\def\itemhookiii{}
+\def\itemhookiv{}
+\def\descripthook{}
+\def\enumerate{%
+ \ifnum \@enumdepth >\thr@@\@toodeep\else
+ \advance\@enumdepth\@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \expandafter
+ \list
+ \csname label\@enumctr\endcsname
+ {\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}%
+ \enumhook \csname enumhook\romannumeral\the\@enumdepth\endcsname}%
+ \fi}
+\def\itemize{%
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \list
+ \csname\@itemitem\endcsname
+ {\def\makelabel##1{\hss\llap{##1}}%
+ \itemhook \csname itemhook\romannumeral\the\@itemdepth\endcsname}%
+ \fi}
+
+\renewenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel\descripthook}}
+ {\endlist}
+\renewcommand{\itemhook}{\setstretch{1}
+ \setlength{\topsep}{0pt}%
+ \setlength{\parskip}{0pt}%
+ \setlength{\partopsep}{.5\baselineskip}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+}
+
+% enumerate environment lengths
+\renewcommand{\enumhook}{\setstretch{1}
+ \setlength{\topsep}{0pt}%
+ \setlength{\parskip}{0pt}%
+ \setlength{\partopsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+}
+
+%%%%% hyperref must be loaded last, because it redefines lots of internals.
+%% So far there do not seem to be any conflicts though
+\RequirePackage{hyperref}