summaryrefslogblamecommitdiff
path: root/cmuthesis.cls
blob: c2a5607dae17b6e759f26b8281d12df81b825b2d (plain) (tree)
1
2
3
4
5
6
7
8

                  
                              
 



                                                          



                                                                          


                                                                         


















                                                                                                                                                                      






                                                                    
                

                     




                                                                       







                                                                     


























                                                                   
          






















                                                                                                                                                              
 

















                                                                    









                                                                            
                                                                          







                                                              









                                                                           
                  

























                                                                                   
%% dkoes 5/10/2006

\LoadClassWithOptions{amsbook}

% pass tells geometry not to mess with amsbook's defaults,
% but instead to use them as the default.
\PassOptionsToPackage{pass}{geometry}
\RequirePackage{geometry}

%% dkoes - Here's a bunch of stuff taken from mjz-titlepage.sty that makes
% a pretty CMU techreport acceptable title page

%% rak - Updated in 2020 to use the amsbook class and to simplify some of
% the LaTeX code.

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

% The 2020 classification is online, but amsbook hasn't been updated
% yet to include it.
\@ifundefined{subjclassname@2020}{%
  \@namedef{subjclassname@2020}{%
  \textup{2020} Mathematics Subject Classification}%
}

\def\@maketitle{
\thispagestyle{empty}

%% 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.
\newgeometry{hmargin={0cm, 0cm}}

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

\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}
\vskip 1em
\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


% amsbook default textwidth / textheight is 30pc / 50.5pc (p. 10
% of amsclass manual). To save Catherine paper (and to allow us
% slightly wider inference rule displays), we increase the width
% by two pica and scale the height accordingly.
% Then call \calclayout to have AMS recalculate whatever it needs
% to recalculate (p. 80 of manual).
% positioning of subjclass, keywords, and abstract based on p.61
% of manual.
\restoregeometry\thispagestyle{empty}
%\newgeometry{textwidth=32pc,textheight=53.9pc}\thispagestyle{empty}
\calclayout
\begin{center}
  \ifx\@empty\@subjclass\else\@setsubjclass\fi
  \ifx\@empty\@keywords\else\@setkeywords\fi
\end{center}
\vfil
\@setabstract
}

% 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
% 1.4 comar - moved it below the page number to avoid problem with synctex
\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][0.11\paperheight][t]{\paperwidth}
      \centering
      \vspace{.5in}
      \textcolor{DraftGrey}{\renewcommand{\baselinestretch}{1.0}\normalsize
        \begin{tabular}{c}
          #1 \\
          #2
        \end{tabular}
      }

    \end{minipage}
  }}

\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{acknowledgments}
 {\begin{psuedochapter}{Acknowledgments}}
   {\end{psuedochapter}}


 \setlength{\textwidth}{32pc}
 \setlength{\textheight}{53.9pc}
 \calclayout