samth-dissertation/Styles/dissertationfmt.sty
Sam Tobin-Hochstadt 9c7a001a36 init
2017-07-10 13:02:10 -04:00

255 lines
7.1 KiB
TeX

%%% Northeastern University, CCIS dissertation style, based on the
%%% memoir class. Must be included under \documentclass[12pt]{memoir}
%%% Made by Vassilis Koutavas, 2008.
%%% Time-stamp: <2009-10-06 16:29:48 samth>
\ProvidesPackage{dissertationfmt}
\typeout{NEU, CCIS Dissertation style by Vassilis Koutavas, 2008}
\RequirePackage{timestamp}
\RequirePackage{amsthm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Page margins and lengths
\setstocksize{11in}{8.5in} % Letter paper
\settrimmedsize{\stockheight}{\stockwidth}{*}
\settrims{0in}{0in}
\settypeblocksize{*}{33pc}{*} % Idealy 66 chars per line (60-70)
\setlrmargins{1.6in}{*}{*} % Margins should be at least 1.25 in each.
% Abstract has no extra margins
\setlength{\absleftindent}{0pt}
\setlength{\absrightindent}{0pt}
% header height
\newlength{\@tmp@headheight}
\setlength{\@tmp@headheight}{20pt}
% header separator
\newlength{\@tmp@headsep}
\setlength{\@tmp@headsep}{10pt}
% footer skip
\newlength{\@tmp@footskip}
\setlength{\@tmp@footskip}{30pt}
\setheadfoot{\the\@tmp@headheight}{\the\@tmp@footskip}
\setheaderspaces{*}{\the\@tmp@headsep}{*}
%%% Top and bottom margins calculation
% actual whitespace above header and below footer
\newlength{\@tmp@headspace}
\setlength{\@tmp@headspace}{1.0in}
\newlength{\@tmp@footspace}
\setlength{\@tmp@footspace}{1.0in}
% calculate header margin and footer margin to achieve the
% above whitespace
\newlength{\@tmp@uppermargin}
\setlength{\@tmp@uppermargin}{\@tmp@headspace}
%\addtolength{\@tmp@uppermargin}{\the\@tmp@headheight}
\addtolength{\@tmp@uppermargin}{\@tmp@headsep}
\newlength{\@tmp@lowermargin}
\setlength{\@tmp@lowermargin}{\@tmp@footspace}
% uncomment next line if there is a footer in normal version
%\addtolength{\@tmp@lowermargin}{\the\@tmp@footskip}
\setulmarginsandblock{\the\@tmp@uppermargin}{\the\@tmp@lowermargin}{*}
%% end top and bottom margins calculation
\setmarginnotes{.5ex}{4ex}{10pt}
% fix all lengths
\checkandfixthelayout
% Test:
%\newlength{\mylen}
%\settoheight{\mylen}{100}
%\typeout{------Footer Height: \the\mylen}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Headings style
\makechapterstyle{ccsthesischapter}{%
% Chapters
\renewcommand{\chapnamefont}{\normalfont\Large\scshape}
\renewcommand{\printchaptername}{\center\chapnamefont \@chapapp}
\renewcommand{\chapnumfont}{\normalfont\Large\scshape}
\renewcommand{\chaptitlefont}{\normalfont\LARGE}
\renewcommand{\printchaptertitle}[1]{\center\chaptitlefont ##1}
% Sections
\setsecheadstyle{\normalfont\Large\bfseries\raggedright}
\setsubsecheadstyle{\normalfont\large\bfseries\raggedright}
\setsubsubsecheadstyle{\normalfont\large\bfseries\raggedright}
\setparaheadstyle{\normalfont\normalsize\bfseries}
\setsubparaheadstyle{\normalfont\normalsize\bfseries}
% Abstract
\renewcommand{\abstractnamefont}{\normalfont\Huge}
\renewcommand{\abstracttextfont}{\normalfont}
\renewcommand{\absnamepos}{flushright}
% vertical spaces for headings
\setbeforesecskip{-18pt \@plus -2pt \@minus -2pt}
\setaftersecskip{12pt \@plus 1pt \@minus 1pt}
\setbeforesubsecskip{-16pt \@plus -2pt \@minus -2pt}
\setaftersubsecskip{11pt \@plus 1pt \@minus 1pt}
\setbeforesubsubsecskip{-16pt \@plus -2pt \@minus -2pt}
\setaftersubsubsecskip{11pt \@plus 1pt \@minus 1pt}
\setbeforeparaskip{11pt \@plus 1pt \@minus 1pt}
\setafterparaskip{-1em}
\setbeforesubparaskip{11pt \@plus 1pt \@minus 1pt}
\setaftersubparaskip{-1em}
\setlength{\midchapskip}{7pt}
\setlength{\abstitleskip}{7pt}
% Numbering
\maxsecnumdepth{subsubsection}
\setsecnumdepth{subsubsection}
% Subsections apear in ToC
\maxtocdepth{subsection}
}
\chapterstyle{ccsthesischapter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Page style
% Start from the headings style
\copypagestyle{ccsthesispage}{headings}
\setlength{\headwidth}{\textwidth}
\addtolength{\headwidth}{\marginparsep}
\addtolength{\headwidth}{\marginparwidth}
\makeheadposition{ccsthesispage}{flushright}{flushleft}{flushright}{flushleft}
\makerunningwidth{ccsthesispage}{\headwidth}
\makeheadrule{ccsthesispage}{\headwidth}{\normalrulethickness}
% Draft version have extra footers
\ifdraftdoc
\RequirePackage[usenames]{color}
\makeevenfoot{ccsthesispage}%
{\color{Gray}\normalfont\small\slshape Book Draft: \today}{}
{}% {\color{Gray}\normalfont\small\slshape Chapter SVN Draft: \svndate}
\def\chaptertimestamp{\timestamp}
\makeoddfoot{ccsthesispage}%
{\color{Gray}\normalfont\small\slshape Book Draft: \today}{}
{}% {\color{Gray}\normalfont\small\slshape Chapter SVN Draft: \svndate}
\fi
% apply pagestyle
\pagestyle{ccsthesispage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Set other parameters
% set double spacing
\renewcommand{\baselinestretch}{1.5}
%fixes overflowing 3-digit page numbers in ToC
\setpnumwidth{2.55em}
%fix overflowing figure numbers in LoF
\setlength\cftfigurenumwidth{2.9em}
% Captions style (see documentation of ccaption package, which is
% already included in memoir)
\captionnamefont{\normalfont\bfseries}
% Abstract in ToC
\abstractintoc
% Theorem environments
\newtheorem{theorem}{Theorem}[section]
\newtheorem{definition}[theorem]{Definition}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{corollary}[theorem]{Corollary}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Title page
% space between each part of the title page
\newlength{\@titlesecsep}
\setlength{\@titlesecsep}{5em}
% title format
\pretitle{\begin{center}\Large}
\posttitle{\end{center}}
% author format
\preauthor{\begin{center}\normalsize}
\postauthor{\end{center}}
% date format
\predate{\begin{center}\normalsize}
\postdate{\end{center}}
% format of text in between above fields
\newcommand{\@titletextstyle}{\normalsize}
% custom maketitle command
\newcommand{\makeccsthesistitle}{%
\begin{titlingpage}
\calccentering{\unitlength}
\begin{adjustwidth*}{\unitlength}{-\unitlength}
\maketitle
\end{adjustwidth*}
\end{titlingpage}
}
\ifdraftdoc % Layout of draft version
% Draft version has accurate date/time on title
\date{\slshape Draft date: \today}
\else % Layout of final version
% between title and author
\renewcommand{\maketitlehookb}{%
\vspace*{\@titlesecsep}
\begin{center}\@titletextstyle
A dissertation presented\\by
\end{center}
\vspace*{\@titlesecsep}
}
% between author and date
\renewcommand{\maketitlehookc}{%
\vspace*{\@titlesecsep}
\begin{center}\@titletextstyle
to the Faculty of the Graduate School\\
of the College of Computer and Information Science\\
in partial fulfillment of the requirements for the degree of\\
Doctor of Philosophy
\end{center}
\vspace*{\@titlesecsep}
\begin{center}\@titletextstyle
Northeastern University\\
Boston, Massachusetts
\end{center}
}
% only month, year in date
\def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi,\space \number\year}
\fi
%%%%%% Signature pages
\typeout{*** TODO: add the signature pages in the final version}