%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% 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}