diff options
author | Ryan Kavanagh <rak@debian.org> | 2020-02-24 09:58:40 -0500 |
---|---|---|
committer | Ryan Kavanagh <rak@debian.org> | 2020-02-24 09:58:40 -0500 |
commit | b74c5689ba85fad8859cfcace28a92d36ec92e1f (patch) | |
tree | b13e12f2978b397b576f0f1663ee0b5548fd5f96 /cmuthesis.cls | |
parent | Merge pull request #1 from cyrus-/master (diff) |
Port from 'book' to 'amsbook' class
Diffstat (limited to 'cmuthesis.cls')
-rw-r--r-- | cmuthesis.cls | 205 |
1 files changed, 69 insertions, 136 deletions
diff --git a/cmuthesis.cls b/cmuthesis.cls index 285e043..af2dbe2 100644 --- a/cmuthesis.cls +++ b/cmuthesis.cls @@ -1,11 +1,18 @@ %% dkoes 5/10/2006 -\LoadClassWithOptions{book} +\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 @@ -25,9 +32,14 @@ %\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{ +\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 @@ -36,15 +48,6 @@ \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} @@ -72,7 +75,7 @@ Carnegie Mellon University \\ Pittsburgh, PA 15213 \end{center} - +\vskip 1em \begin{center} {\bf Thesis Committee:} \\ \@committee @@ -96,110 +99,25 @@ % 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} +% 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 @@ -219,25 +137,40 @@ %usage: \draftstamp{date}{label} \newcommand{\draftstamp}[2]{\definecolor{DraftGrey}{gray}{0.7} \ClearShipoutPicture\AddToShipoutPicture{ - \begin{minipage}[b][0.11\paperheight][t]{\paperwidth} - \centering - \vspace{.4in} - \textcolor{DraftGrey}{\renewcommand{\baselinestretch}{1.0}\normalsize - \begin{tabular}{c} - #1 \\ - #2 - \end{tabular} - } - + \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} -}} - -% mainmatter is ignoring openany, fix -\renewcommand\mainmatter{% - \if@openright - \cleardoublepage - \else - \clearpage - \fi - \@mainmattertrue - \pagenumbering{arabic}} + }} + +\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
\ No newline at end of file |