From b5b86fb118e44e988c1838935816a4a4058f6e50 Mon Sep 17 00:00:00 2001
From: Rob Simmons <robsimmons@gmail.com>
Date: Tue, 21 Feb 2012 13:42:06 -0500
Subject: Latex class file and template for creating a CMU thesis or thesis
 proposal from David Ryan Koes (dkoes).

---
 cmuthesis.cls | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 242 insertions(+)
 create mode 100644 cmuthesis.cls

(limited to 'cmuthesis.cls')

diff --git a/cmuthesis.cls b/cmuthesis.cls
new file mode 100644
index 0000000..f69d36d
--- /dev/null
+++ b/cmuthesis.cls
@@ -0,0 +1,242 @@
+%% dkoes 5/10/2006
+
+\LoadClassWithOptions{book}
+
+
+%% dkoes - Here's a bunch of stuff taken from mjz-titlepage.sty that makes
+% a pretty CMU techreport acceptable title page
+
+%% titlepage parameters
+%%   required: title, author, date, Year, trnumber, committee
+%%   optional: permission, support, disclaimer, keywords
+
+\def\title#1{\gdef\@title{#1}}
+\def\author#1{\gdef\@author{#1}}
+\def\date#1{\gdef\@date{#1}}
+\def\Year#1{\gdef\@Year{#1}}
+\def\trnumber#1{\gdef\@trnumber{#1}}
+\def\committee#1{\gdef\@committee{#1}}
+\def\permission#1{\gdef\@permission{#1}}
+\def\support#1{\gdef\@support{#1}}
+\def\disclaimer#1{\gdef\@disclaimer{#1}}
+\def\keywords#1{\gdef\@keywords{#1}}
+
+\newsavebox{\@copyrightbox}
+%\def\@copyrightnotice#1{{\small\sbox{\@copyrightbox}{#1}\ifthenelse{\lengthtest{\wd\@copyrightbox > \linewidth}}{\noindent #1 \par}{\begin{center} #1 \end{center}}}}
+\def\@copyrightnotice#1{{\small\sbox{\@copyrightbox}{#1}\ifdim\wd\@copyrightbox>\linewidth \noindent #1 \par\else\begin{center} #1 \end{center}\fi}}
+
+\def\maketitle{
+\thispagestyle{empty}
+
+% calculate skip needed to ensure that title appears in the cut-out
+\newlength{\@cutoutvskip}
+\setlength{\@cutoutvskip}{2.1875 true in}       % position of cut-out
+\addtolength{\@cutoutvskip}{-1 true in}         % printer margin
+\addtolength{\@cutoutvskip}{-\topmargin}
+\addtolength{\@cutoutvskip}{-\headheight}
+\addtolength{\@cutoutvskip}{-\headsep}
+
+%% Centered things on the title page must be *physically* centered
+%% on the page, so they line up with the cut-out window. So we hardwire
+%% the margins for the title page so that left margin = right margin:
+%%         left margin = (8.5in - textwidth)/2
+\oddsidemargin=8.5in
+\advance\oddsidemargin by -\textwidth
+\oddsidemargin=.5\oddsidemargin
+\advance\oddsidemargin by -1in % TeX sux
+%
+\let\footnoterule\relax
+\vglue\@cutoutvskip
+\begin{center}
+%\begin{minipage}[t]{4.875in}   % must be a minipage due to \thanks
+\begin{minipage}[t]{4.8in}      % hackery
+\vbox to 2in{
+\vfill
+\begin{center}
+{\Large \strut \@title\par}
+\vfill
+{\large \begin{tabular}[t]{c}\@author\end{tabular}\par}
+\vfill
+{\sc \@trnumber\par}
+\smallskip
+{\large \@date\par}
+\end{center}
+\vfill}
+\end{minipage}
+\end{center}
+
+\vskip 3em
+
+\begin{center}
+    School of Computer Science \\
+    Carnegie Mellon University \\
+    Pittsburgh, PA 15213
+\end{center}
+
+\begin{center}
+    {\bf Thesis Committee:} \\
+    \@committee
+\end{center}
+\vspace{1em}
+\begin{center}
+    \em
+    Submitted in partial fulfillment of the requirements \\
+    for the degree of Doctor of Philosophy.
+\end{center}
+
+
+\vfill
+
+\@ifundefined{@permission}{\@copyrightnotice{Copyright \copyright\ \@Year\ \@author}}{\@copyrightnotice{Copyright \copyright\ \@Year\ \@author. \@permission}}
+
+\@ifundefined{@support}{}{{\medskip\footnotesize\noindent\@support\par}}
+
+\@ifundefined{@disclaimer}{}{{\medskip\footnotesize\noindent\@disclaimer\par}}
+
+% keywords go at bottom of page ii (the rear of the titlepage)
+% if keywords are omitted, this page is blank
+
+\clearpage
+\thispagestyle{empty}
+\@ifundefined{@keywords}{}{\vspace*{\fill} {\bf Keywords:} \@keywords}
+\cleardoublepage
+}
+
+\newenvironment{dedication}
+  {\cleardoublepage \thispagestyle{empty} \vspace*{\stretch{1}} \begin{center} \em}
+  {\end{center} \vspace*{\stretch{3}} \clearpage}
+
+
+\newenvironment{psuedochapter}[1]
+  {\cleardoublepage
+   \thispagestyle{empty}
+   \vspace*{\stretch{1}} 
+   \begin{center} \large {\bf #1} \end{center}
+%   \addcontentsline{toc}{chapter}{\numberline{}#1} --not yet mjz 
+   \begin{quotation}}
+  {\end{quotation} 
+   \vspace*{\stretch{3}}
+   \clearpage}
+
+\newenvironment{abstract}
+	{\begin{psuedochapter}{Abstract}}{\end{psuedochapter}}
+
+\newenvironment{acknowledgments}
+	{\begin{psuedochapter}{Acknowledgments}}{\end{psuedochapter}}
+
+
+
+
+
+%% dkoes - what follows is just a result of my personal style preferences
+% most things are shamelessly ripped from various conference class files
+
+%                       Utilities
+%                       ---------
+
+
+\newcommand{\centeroncapheight}[1]{%
+  {\setbox\@tempboxa = \hbox{#1}%
+   \@measurecapheight{\@tempdima}%         % Calculate ht(CAP) - ht(text)
+   \advance \@tempdima by -\ht\@tempboxa   %           ------------------
+   \divide \@tempdima by 2                 %                   2
+   \raise \@tempdima \box\@tempboxa}}
+
+\newbox{\@measbox}
+
+\def \@measurecapheight #1{%                            {\dimen}
+  \setbox\@measbox = \hbox{ABCDEFGHIJKLMNOPQRSTUVWXYZ}%
+  #1 = \ht\@measbox}
+
+\long\def \@titlefootnote #1#2{%
+  \insert\footins{%
+    \reset@font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+%%%    \protected@edef\@currentlabel{%
+%%%       \csname p@footnote\endcsname\@thefnmark}%
+    \color@begingroup
+      \def \@makefnmark {$^{#1}$}%
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#2\@finalstrut\strutbox}%
+    \color@endgroup}}
+
+%                       Lists
+%                       -----
+
+\setlength{\topsep}{1pt}
+ \setlength{\itemsep}{1pt}
+\setlength{\parsep}{3pt}
+
+\renewcommand{\labelitemi}{{\small \centeroncapheight{\textbullet}}}
+\renewcommand{\labelitemii}{\centeroncapheight{\rule{2.5pt}{2.5pt}}}
+\renewcommand{\labelitemiii}{$-$}
+\renewcommand{\labelitemiv}{{\Large \textperiodcentered}}
+
+\renewcommand{\@listi}{%
+  \leftmargin = \leftmargini
+  \listparindent = 0pt}
+
+\let \@listI = \@listi
+
+\renewcommand{\@listii}{%
+  \leftmargin = \leftmarginii
+  \topsep = 1pt
+  \labelwidth = \leftmarginii
+  \advance \labelwidth by -\labelsep
+  \listparindent = \parindent}
+
+\renewcommand{\@listiii}{%
+  \leftmargin = \leftmarginiii
+  \labelwidth = \leftmarginiii
+  \advance \labelwidth by -\labelsep
+  \listparindent = \parindent}
+
+\renewcommand{\@listiv}{%
+  \leftmargin = \leftmarginiv
+  \labelwidth = \leftmarginiv
+  \advance \labelwidth by -\labelsep
+  \listparindent = \parindent}
+
+
+% A simple style file to provide a draft marking in the background of
+% a file
+% Thank you to Will Uther who provided the base code that I rolled
+% into this package
+% ChangeLog
+% 1.1: shrunk and shifted the stamp so that it avoid the unprintable
+% area at the top of the page
+% 1.2 dkoes - made it big and rotated and light
+% 1.3 dkoes - made it small, and unrotated since Jonathan Aldrich complained
+\RequirePackage{graphicx}
+\RequirePackage{eso-pic}
+\RequirePackage{color}
+
+%Got this from Will (will@cs.cmu.edu)
+%usage: \draftstamp{date}{label}
+\newcommand{\draftstamp}[2]{\definecolor{DraftGrey}{gray}{0.7}
+  \ClearShipoutPicture\AddToShipoutPicture{
+    \begin{minipage}[b][\paperheight][t]{\paperwidth}     
+    \centering
+    	\vspace{.4in}
+            \textcolor{DraftGrey}{\renewcommand{\baselinestretch}{1.0}\normalsize
+            \begin{tabular}{c}
+                    #1 \\
+                    #2
+             \end{tabular}            
+        }
+        
+    \end{minipage}
+}}
+
+% mainmatter is ignoring openany, fix
+\renewcommand\mainmatter{%
+  \if@openright
+    \cleardoublepage
+  \else
+    \clearpage
+  \fi
+  \@mainmattertrue
+  \pagenumbering{arabic}}
-- 
cgit v1.2.3

