summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Simmons <robsimmons@gmail.com>2012-02-21 13:42:06 -0500
committerRob Simmons <robsimmons@gmail.com>2012-02-21 13:42:06 -0500
commitb5b86fb118e44e988c1838935816a4a4058f6e50 (patch)
tree43eeb872768399aa72f6d7c16eb6fd2901b21446
Latex class file and template for creating a CMU thesis or thesis proposal from David Ryan Koes (dkoes).
-rw-r--r--cmuthesis.cls242
-rw-r--r--cmuthesis_template.tex138
2 files changed, 380 insertions, 0 deletions
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}}
diff --git a/cmuthesis_template.tex b/cmuthesis_template.tex
new file mode 100644
index 0000000..311b5bf
--- /dev/null
+++ b/cmuthesis_template.tex
@@ -0,0 +1,138 @@
+%for a more compact document, add the option openany to avoid
+%starting all chapters on odd numbered pages
+\documentclass[12pt]{cmuthesis}
+
+% This is a template for a CMU thesis. It is 18 pages without any content :-)
+% The source for this is pulled from a variety of sources and people.
+% Here's a partial list of people who may or may have not contributed:
+%
+% bnoble = Brian Noble
+% caruana = Rich Caruana
+% colohan = Chris Colohan
+% jab = Justin Boyan
+% josullvn = Joseph O'Sullivan
+% jrs = Jonathan Shewchuk
+% kosak = Corey Kosak
+% mjz = Matt Zekauskas (mattz@cs)
+% pdinda = Peter Dinda
+% pfr = Patrick Riley
+% dkoes = David Koes (me)
+
+% My main contribution is putting everything into a single class files and small
+% template since I prefer this to some complicated sprawling directory tree with
+% makefiles.
+
+% some useful packages
+\usepackage{times}
+\usepackage{fullpage}
+\usepackage{graphicx}
+\usepackage{amsmath}
+\usepackage[numbers,sort]{natbib}
+\usepackage[backref,pageanchor=true,plainpages=false, pdfpagelabels, bookmarks,bookmarksnumbered,
+%pdfborder=0 0 0, %removes outlines around hyper links in online display
+]{hyperref}
+\usepackage{subfigure}
+
+% Approximately 1" margins, more space on binding side
+%\usepackage[letterpaper,twoside,vscale=.8,hscale=.75,nomarginpar]{geometry}
+%for general printing (not binding)
+\usepackage[letterpaper,twoside,vscale=.8,hscale=.75,nomarginpar,hmarginratio=1:1]{geometry}
+
+% Provides a draft mark at the top of the document.
+\draftstamp{\today}{DRAFT}
+
+\begin {document}
+\frontmatter
+
+%initialize page style, so contents come out right (see bot) -mjz
+\pagestyle{empty}
+
+\title{ %% {\it \huge Thesis Proposal}\\
+{\bf Awesome Work in Computer Science}}
+\author{Me}
+\date{January 3006}
+\Year{3006}
+\trnumber{}
+
+\committee{
+Nearly Divine Personage, Chair \\
+Someone else \\
+Yet another person \\
+Someone from a strange and faraway land
+}
+
+\support{}
+\disclaimer{}
+
+% copyright notice generated automatically from Year and author.
+% permission added if \permission{} given.
+
+\keywords{Stuff, More Stuff}
+
+\maketitle
+
+\begin{dedication}
+For my dog
+\end{dedication}
+
+\pagestyle{plain} % for toc, was empty
+
+%% Obviously, it's probably a good idea to break the various sections of your thesis
+%% into different files and input them into this file...
+
+\begin{abstract}
+A short summary.
+\end{abstract}
+
+\begin{acknowledgments}
+My advisor is cool.
+\end{acknowledgments}
+
+
+
+\tableofcontents
+\listoffigures
+\listoftables
+
+\mainmatter
+
+%% Double space document for easy review:
+%\renewcommand{\baselinestretch}{1.66}\normalsize
+
+% The other requirements Catherine has:
+%
+% - avoid large margins. She wants the thesis to use fewer pages,
+% especially if it requires colour printing.
+%
+% - The thesis should be formatted for double-sided printing. This
+% means that all chapters, acknowledgements, table of contents, etc.
+% should start on odd numbered (right facing) pages.
+%
+% - You need to use the department standard tech report title page. I
+% have tried to ensure that the title page here conforms to this
+% standard.
+%
+% - Use a nice serif font, such as Times Roman. Sans serif looks bad.
+%
+% Other than that, just make it look good...
+
+
+\chapter{Introduction}
+\chapter{Conclusion}
+
+%\appendix
+%\include{appendix}
+
+\backmatter
+
+%\renewcommand{\baselinestretch}{1.0}\normalsize
+
+% By default \bibsection is \chapter*, but we really want this to show
+% up in the table of contents and pdf bookmarks.
+\renewcommand{\bibsection}{\chapter{\bibname}}
+%\newcommand{\bibpreamble}{This text goes between the ``Bibliography''
+% header and the actual list of references}
+\bibliographystyle{plainnat}
+\bibliography{register} %your bib file
+
+\end{document}