thesis/ncsuthesis.cls

714 lines
26 KiB
TeX

%%
%% This is file `ncsuthesis.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% ncsuthesis.dtx (with options: `class')
%% --------------------------------------------------------------------
%% ncsuthesis --- A thesis class conforming to NC State ETD guidelines.
%% E-mail: jmhykes@ncsu.edu
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% --------------------------------------------------------------------
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ncsuthesis}[2012/01/26 v0.4 NC State ETD conformant thesis class]
%% -------------------------------------------------------------------------- %%
%% ------------------------------ Thesis type ------------------------------- %%
%% -------------------------------------------------------------------------- %%
\newcommand{\ncsu@thesistype}{phd}
\DeclareOption{phd}{\renewcommand{\ncsu@thesistype}{phd}}
\DeclareOption{ms}{\renewcommand{\ncsu@thesistype}{ms}}
%% Spacing options
\newcommand{\ncsu@defaultspacing}{\onehalfspacing}
\DeclareOption{singlespacing}{
\renewcommand{\ncsu@defaultspacing}{\singlespacing}}
\DeclareOption{onehalfspacing}{
\renewcommand{\ncsu@defaultspacing}{\onehalfspacing}}
\DeclareOption{doublespacing}{
\renewcommand{\ncsu@defaultspacing}{\doublespacing}}
\newenvironment{lscape}{\begin{lscapenum}}{\end{lscapenum}}
\DeclareOption{hardcopy}{
\renewenvironment{lscape}{\begin{lscapenotnum}}{\end{lscapenotnum}}
}
\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{book}}
\DeclareOption{10pt}{\PassOptionsToClass{\CurrentOption}{book}}
\DeclareOption{11pt}{\PassOptionsToClass{\CurrentOption}{book}}
\DeclareOption{12pt}{\PassOptionsToClass{\CurrentOption}{book}}
\DeclareOption*{\PackageWarning{ncsuthesis}{Unknown option `\CurrentOption'. Ignoring}}
\ExecuteOptions{phd,onehalfspacing} % the default option is <phd, onehalfspacing>
\ProcessOptions
\LoadClass[openany,oneside,titlepage,letterpaper]{book}
\RequirePackage{setspace}
\RequirePackage{hyphenat}
\RequirePackage{nolbreaks}
\RequirePackage{ifthen}
\RequirePackage{sectsty}
\RequirePackage{tocloft}
\RequirePackage{graphicx}
\RequirePackage[nottoc]{tocbibind} % includes lof, lot, refs in toc
\RequirePackage{calc}
%%----------------------------------------------------------------------------%%
%%---------------------------- Formatting Options ----------------------------%%
%% -------------------------------------------------------------------------- %%
%% Capital letter height
\newlength{\ncsu@capitalheight}
\settoheight{\ncsu@capitalheight}{D}
%% Line height
\newlength{\ncsu@lineheight}
\setlength{\ncsu@lineheight}{2.0ex}
%% Leading height: The leading changes thoughout the document, so this
%% length must be updated
\newlength{\ncsu@leading}
%% We must add two double spaces plus one capital-height (for the page number)
%% to footskip. Footskip is measured from the top of the bottom margin.
%% (See geometry package documentation, note that includefoot option is used.)
\ncsu@defaultspacing
% \newlength{\ncsu@footskip}
% \setlength{\ncsu@footskip}{\ncsu@capitalheight}
% \addtolength{\ncsu@footskip}{2\baselineskip}
% \addtolength{\ncsu@footskip}{0.5in} % A little extra space to ensure there
% % are 2 full double spaced lines
% \RequirePackage[includefoot,
% tmargin=1in,
% bmargin=0.5in,
% rmargin=1in,
% lmargin=1.25in,
% footskip=\ncsu@footskip]{geometry}
% January 2023 Update - Just set all margins to 1in
\usepackage[margin=1in]{geometry}
%% -------------------------------------------------------------------------- %%
%% Disposition format -- any titles, headings, section titles
\newcommand{\ncsu@dispositionformat}{}
\allsectionsfont{\ncsu@dispositionformat}
\providecommand{\dispositionformat}[1]{
\renewcommand{\ncsu@dispositionformat}{#1}
\allsectionsfont{\ncsu@dispositionformat}
}
%% Heading/Chapter/Section format
\newcommand{\ncsu@headingformat}{\ncsu@dispositionformat}
\providecommand{\headingformat}[1]{
\renewcommand{\ncsu@headingformat}{\ncsu@dispositionformat #1}
}
%% \chapter*-to-first line space
%% This applies to preliminary headings, and ToC, LoF, LoT
\newlength{\ncsu@afterschapsep}
\setlength{\ncsu@afterschapsep}{3\ncsu@lineheight}
%% -------------------------------------------------------------------------- %%
%% Headers/footers - page number
\pagestyle{plain}
%% -------------------------------------------------------------------------- %%
%% Vertical space around tables and figures, triple spacing
\setlength{\textfloatsep}{3\ncsu@lineheight}
\setlength{\intextsep}{3\ncsu@lineheight}
%%----------------------------------------------------------------------------%%
%%--------------------------- Content Options -------------------------------%%
%% -------------------------------------------------------------------------- %%
%% Author name
\newcommand{\ncsu@authorfirstmiddle}{Nuwan Subhashana}
\newcommand{\ncsu@authorlast}{Yapa}
%% Command to test for period after middle name
\newboolean{@ncsu@needsperiod}
\newcommand{\ncsu@testlastchar}[2]{%
\ifthenelse{\equal{#2}{\relax}}{
\ifthenelse{\equal{#1}{.}}{%
\setboolean{@ncsu@needsperiod}{false}
}{% #1 != .
\setboolean{@ncsu@needsperiod}{true}
}
\let\next=\relax
}
{% #2 != relax
\let\next=\ncsu@testlastchar
}
\next#2
}
\providecommand{\student}[2]{
\renewcommand{\ncsu@authorfirstmiddle}{#1}
\renewcommand{\ncsu@authorlast}{#2}
\ncsu@testlastchar#1\relax
\author{\ncsu@authorfirstmiddle{} \ncsu@authorlast}
}
%% Degree year - in case the degree year doesn't match the current year.
\newcommand{\ncsu@year}{\the\year}
\providecommand{\degreeyear}[1]{
\renewcommand{\ncsu@year}{#1}
}
%% -------------------------------------------------------------------------- %%
%% Thesis Title
\newcommand{\ncsu@thesistitle}{My Thesis Title}
\providecommand{\thesistitle}[1]{\renewcommand{\ncsu@thesistitle}{#1}}
%% -------------------------------------------------------------------------- %%
%% --------------------- Chapter Commands ---------------------------------- %%
%% -------------------------------------------------------------------------- %%
%% -------------------------------------------------------------------------- %%
%% Redefine the \chapter* driver \@makeschapterhead. This is used for the
%% preliminary headings.
%% The spacing between the title baseline and the top of capital letters on
%% the first line is specified by \ncsu@afterschapsep. However, this vertical
%% height built by two separate lengths:
%% 1. the space between the baseline of the title and the top of the
%% first line (including leading above the line).
%% (\ncsu@afterschapbeforeleadingsep)
%% 2. From the top of the first line leading to the top of
%% capital letters on the first line. (\ncsu@leading)
\newlength{\ncsu@afterschapbeforeleadingsep}
\AtBeginDocument{% at begin doc is necessary since fncychap
% redefines \@makeschapterhead
\renewcommand{\@makeschapterhead}[1]{%
% Measure the leading here (which depends on the current line spacing),
% and adjust the spacing accordingly between the baseline of the
% heading and the top of capital letters on the first line.
\setlength{\ncsu@leading}{\baselineskip-\ncsu@capitalheight}%
\setlength{\ncsu@afterschapbeforeleadingsep}%
{\ncsu@afterschapsep-\ncsu@leading}%
{\noindent\centering%
{\ncsu@headingformat #1}%
\par\nobreak%
\vspace{\ncsu@afterschapbeforeleadingsep}}%
}
}
%% -------------------------------------------------------------------------- %%
%% Abstract page commands
%% - hyphnat package \nohyphens prevents title from being hyphenated.
%% - \nolbreaks removes any line breaks in title (but you must use \linebreak
%% instead of \\
\newcommand{\abstractname}{Abstract}
\newenvironment{abstract}{%
\singlespacing
\titlepage
\chapter*{\abstractname}
\MakeUppercase{\ncsu@authorlast{}, \ncsu@authorfirstmiddle{}}%
\ifthenelse{\boolean{@ncsu@needsperiod}}{\@. }{~}%
\nohyphens{\nolbreaks{\ncsu@thesistitle}.
(Under the direction of
\ifthenelse{\equal{\ncsu@chairtype}{chair}}%
{\ncsu@chair}{\ncsu@cochairI\ and \ncsu@cochairII}).}\\
\ncsu@defaultspacing
\thispagestyle{empty}
\pagestyle{empty}
}%
{\endtitlepage \pagestyle{plain}}
%% -------------------------------------------------------------------------- %%
%% Abstract page commands
\newcommand{\makecopyrightpage}{
\begin{titlepage}
\centering
\quad
\vspace{0.35\textheight}
\copyright{} Copyright \ncsu@year{} by \@author \\[1em]
All Rights Reserved
\vfill
\end{titlepage}
}
%% -------------------------------------------------------------------------- %%
%% Title page commands
\newcommand{\ncsu@committeesize}{4}
\providecommand{\committeesize}[1]{\renewcommand{\ncsu@committeesize}{#1}}
%% To allow for Chair vs Co-chairs:
\newcommand{\ncsu@chairtype}{}
%% For each committee member, we have their name and title.
%% By default, their title is empty. We use an optional argument
%% to set the title of committee members or to set the chair's
%% title to something other than `Chair of Advisory Committee'.
\newcommand{\ncsu@chair}{Advisor Q. Chair}
\newcommand{\ncsu@chairtitle}{Chair of Advisory Committee}
\providecommand{\chair}[2][]{
\renewcommand{\ncsu@chair}{#2}
% Checking if optional title argument is present.
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@chairtitle}{#1}}
% Declare that we have a chair:
\renewcommand{\ncsu@chairtype}{chair}
}
\newcommand{\ncsu@cochairI}{Co-chair 1 of Committee}
\newcommand{\ncsu@cochairItitle}{Co-chair of Advisory Committee}
\providecommand{\cochairI}[2][]{
\renewcommand{\ncsu@cochairI}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@cochairItitle}{#1}}
% Declare that we have co-chairs.
\renewcommand{\ncsu@chairtype}{cochair}
}
\newcommand{\ncsu@cochairII}{Co-chair 2 of Committee}
\newcommand{\ncsu@cochairIItitle}{Co-chair of Advisory Committee}
\providecommand{\cochairII}[2][]{
\renewcommand{\ncsu@cochairII}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@cochairIItitle}{#1}}
\renewcommand{\ncsu@chairtype}{cochair}
}
\newcommand{\ncsu@memberI}{Member 1 of Committee}
\newcommand{\ncsu@memberItitle}{}
\providecommand{\memberI}[2][]{
\renewcommand{\ncsu@memberI}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@memberItitle}{#1}}
}
\newcommand{\ncsu@memberII}{Member 2 of Committee}
\newcommand{\ncsu@memberIItitle}{}
\providecommand{\memberII}[2][]{
\renewcommand{\ncsu@memberII}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@memberIItitle}{#1}}
}
\newcommand{\ncsu@memberIII}{Member 3 of Committee}
\newcommand{\ncsu@memberIIItitle}{}
\providecommand{\memberIII}[2][]{
\renewcommand{\ncsu@memberIII}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@memberIIItitle}{#1}}
}
\newcommand{\ncsu@memberIV}{Member 4 of Committee}
\newcommand{\ncsu@memberIVtitle}{}
\providecommand{\memberIV}[2][]{
\renewcommand{\ncsu@memberIV}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@memberIVtitle}{#1}}
}
\newcommand{\ncsu@memberV}{Member 5 of Committee}
\newcommand{\ncsu@memberVtitle}{}
\providecommand{\memberV}[2][]{
\renewcommand{\ncsu@memberV}{#2}
\ifthenelse{\equal{#1}{}}{}{\renewcommand{\ncsu@memberVtitle}{#1}}
}
\newcommand{\ncsu@titlepageparagraph}{
\ifthenelse{\equal{\ncsu@thesistype}{phd}}{
A dissertation submitted to the Graduate Faculty of\\
North Carolina State University\\
in partial fulfillment of the\\
requirements for the Degree of\\
Doctor of Philosophy
}{} % end ifthenels phd
\ifthenelse{\equal{\ncsu@thesistype}{ms}}{
A thesis submitted to the Graduate Faculty of\\
North Carolina State University\\
in partial fulfillment of the\\
requirements for the Degree of\\
Master of Science
}{} % end ifthenels phd
}
\newcommand{\ncsu@program}{Degree Program}
\providecommand{\program}[1]{\renewcommand{\ncsu@program}{#1}}
\newcommand{\ncsu@citystate}{Raleigh, North Carolina}
\newcommand{\ncsu@signatureline}[2][]{
\begin{minipage}[t]{0.4\textwidth}
\centering
\hrule
\vspace{0.5ex}
#2\\ #1
\end{minipage}
}
\newcommand{\ncsu@committeesignatures}{
\ifthenelse{\equal{\ncsu@chairtype}{chair}}{
\ifthenelse{\ncsu@committeesize=3}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[6em]
\multicolumn{2}{c}{\ncsu@signatureline[\ncsu@chairtitle]{\ncsu@chair}}
\end{tabular}
}{} % end ifthenelse = 3
\ifthenelse{\ncsu@committeesize=4}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[6em]
\ncsu@signatureline[\ncsu@memberIIItitle]{\ncsu@memberIII} &
\ncsu@signatureline[\ncsu@chairtitle]{\ncsu@chair} \\
\end{tabular}
}{} % end ifthenelse = 4
\ifthenelse{\ncsu@committeesize=5}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[5em]
\ncsu@signatureline[\ncsu@memberIIItitle]{\ncsu@memberIII} &
\ncsu@signatureline[\ncsu@memberIVtitle]{\ncsu@memberIV} \\[5em]
\multicolumn{2}{c}{\ncsu@signatureline[\ncsu@chairtitle]{\ncsu@chair}}
\end{tabular}
}{} % end ifthenelse = 5
\ifthenelse{\ncsu@committeesize=6}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[5em]
\ncsu@signatureline[\ncsu@memberIIItitle]{\ncsu@memberIII} &
\ncsu@signatureline[\ncsu@memberIVtitle]{\ncsu@memberIV} \\[5em]
\ncsu@signatureline[\ncsu@memberVtitle]{\ncsu@memberV} &
\ncsu@signatureline[\ncsu@chairtitle]{\ncsu@chair} \\
\end{tabular}
}{} % end ifthenelse = 6
}{} % end ifthenelse type = chair
\ifthenelse{\equal{\ncsu@chairtype}{cochair}}{
% co-chairs; if number is odd, put co-chairs on top line.
\ifthenelse{\ncsu@committeesize=3}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@cochairItitle]{\ncsu@cochairI} &
\ncsu@signatureline[\ncsu@cochairIItitle]{\ncsu@cochairII} \\[6em]
\multicolumn{2}{c}%
{\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI}}
\end{tabular}
}{} % end ifthenelse = 3
\ifthenelse{\ncsu@committeesize=4}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[6em]
\ncsu@signatureline[\ncsu@cochairItitle]{\ncsu@cochairI} &
\ncsu@signatureline[\ncsu@cochairIItitle]{\ncsu@cochairII}
\end{tabular}
}{} % end ifthenelse = 4
\ifthenelse{\ncsu@committeesize=5}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@cochairItitle]{\ncsu@cochairI} &
\ncsu@signatureline[\ncsu@cochairIItitle]{\ncsu@cochairII} \\[5em]
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[5em]
\multicolumn{2}{c}%
{\ncsu@signatureline[\ncsu@memberIIItitle]{\ncsu@memberIII}}
\end{tabular}
}{} % end ifthenelse = 5
\ifthenelse{\ncsu@committeesize=6}{
\begin{tabular}[t]{c@{\hspace{0.5in}}c}
\ncsu@signatureline[\ncsu@memberItitle]{\ncsu@memberI} &
\ncsu@signatureline[\ncsu@memberIItitle]{\ncsu@memberII} \\[5em]
\ncsu@signatureline[\ncsu@memberIIItitle]{\ncsu@memberIII} &
\ncsu@signatureline[\ncsu@memberIVtitle]{\ncsu@memberIV} \\[5em]
\ncsu@signatureline[\ncsu@cochairItitle]{\ncsu@cochairI} &
\ncsu@signatureline[\ncsu@cochairIItitle]{\ncsu@cochairII} \\
\end{tabular}
}{} % end ifthenelse = 6
}{} % end ifthenelse type = cochair
}
\newcommand{\maketitlepage}{
\thispagestyle{empty}
\clearpage
\singlespacing
\begin{center}
\vfill
\ncsu@thesistitle
\vfill
by \\
\@author
\vfill
\ncsu@titlepageparagraph
\vfill
\ncsu@program\\[4\ncsu@lineheight]
\ncsu@citystate\\[0\ncsu@lineheight]
\ncsu@year
\vfill
APPROVED BY:
\vfill
\ncsu@committeesignatures
\end{center}
\clearpage
\ncsu@defaultspacing
}
%% -------------------------------------------------------------------------- %%
%% ------------ Dedication, biography, and acknowledgements ----------------- %%
%% -------------------------------------------------------------------------- %%
%% Template
\newcommand{\ncsu@dedbioack}[1]{%
\chapter*{#1}%
}
%% Dedication
\newcommand{\dedicationtitle}{Dedication}
\newenvironment{dedication}
{\ncsu@dedbioack{\dedicationtitle}}
{\clearpage}
%% Biography
\newcommand{\biographytitle}{Biography}
\newenvironment{biography}
{\ncsu@dedbioack{\biographytitle}}
{\clearpage}
%% Acknowledgements
\newcommand{\acknowledgementstitle}{Acknowledgements}
\newenvironment{acknowledgements}
{\ncsu@dedbioack{\acknowledgementstitle}}
{\clearpage}
%% -------------------------------------------------------------------------- %%
%% ------------------------- Table of Contents ----------------------------- %%
%% -------------------------------------------------------------------------- %%
\renewcommand{\contentsname}{Table of Contents}
\settowidth{\cftchapnumwidth}{\textbf{Chapter 00}}
\renewcommand{\cftchappresnum}{Chapter }
\renewcommand{\cftchapleader}{\cftdotfill{\cftsecdotsep}}
\newcommand{\thesistableofcontents}{%
\singlespacing%
\setlength{\cftbeforetoctitleskip}{-\baselineskip}
\setlength{\ncsu@leading}{\baselineskip-\ncsu@capitalheight}%
\setlength{\cftaftertoctitleskip}%
{\ncsu@afterschapsep-\cftbeforechapskip-\ncsu@leading}%
\tableofcontents%
\clearpage%
\ncsu@defaultspacing%
}
%% tocloft typesets ToC title, so we must give it our heading formats
%\renewcommand{\cfttoctitlefont}{\hfill\ncsu@headingformat}
%\renewcommand{\cftaftertoctitle}{\hfill}
\renewcommand{\cfttoctitlefont}{\hspace*{\fill}\ncsu@headingformat}
\renewcommand{\cftaftertoctitle}{\hspace*{\fill}}
\renewcommand{\listfigurename}{List of Figures}
\settowidth{\cftfignumwidth}{Figure 00.00}
\renewcommand{\cftfigpresnum}{Figure }
\newcommand{\thesislistoffigures}{%
\singlespacing%
\setlength{\cftbeforeloftitleskip}{-\baselineskip}
\setlength{\ncsu@leading}{\baselineskip-\ncsu@capitalheight}%
\setlength{\cftafterloftitleskip}%
{\ncsu@afterschapsep-\cftbeforechapskip-\ncsu@leading}%
\listoffigures%
\clearpage%
\ncsu@defaultspacing%
}
\renewcommand{\cftloftitlefont}{\hfill\ncsu@headingformat}
\renewcommand{\cftafterloftitle}{\hfill}
\renewcommand{\listtablename}{List of Tables}
\settowidth{\cfttabnumwidth}{Table 00.00}
\renewcommand{\cfttabpresnum}{Table }
\newcommand{\thesislistoftables}{%
\singlespacing%
\setlength{\cftbeforelottitleskip}{-\baselineskip}
\setlength{\ncsu@leading}{\baselineskip-\ncsu@capitalheight}%
\setlength{\cftafterlottitleskip}%
{\ncsu@afterschapsep-\cftbeforechapskip-\ncsu@leading}%
\listoftables%
\clearpage%
\ncsu@defaultspacing%
}
\renewcommand{\cftlottitlefont}{\hfill\ncsu@headingformat}
\renewcommand{\cftafterlottitle}{\hfill}
%% -------------------------------------------------------------------------- %%
%% ------------------------- Landscape Pages ------------------------------- %%
%% -------------------------------------------------------------------------- %%
%% Loading pdflscape package for page rotation
\RequirePackage{pdflscape}
%% Loading fancyhdr package to change page numbering
\RequirePackage{fancyhdr}
%% Loading sideways for sideways environment
\RequirePackage{rotating}
\newlength{\portraittextheight}
\setlength{\portraittextheight}{\textheight}
\addtolength{\portraittextheight}{\footskip}
\newlength{\portraittextwidth}
\setlength{\portraittextwidth}{\textwidth}
\RequirePackage{afterpage}
\RequirePackage{changepage}
%% Rotate page and page number
\newenvironment{lscapenum}
{
%% The standard landscape environment does not rotate the margins and
%% page number. However, we want the margins (mostly) rotated as well
%% as the page number. To change the margins, we use the \changepage
%% command from the \changepage package. Since the \textheight and
%% \textwidth dimensions get switched, we need to reduce the rotated
%% \textheight by \ncsu@footskip and increase the \textwidth by the
%% same measure.
%%
%% The syntax of the \changepage command is
%% \changepage{textheight}{textwidth}{evensidemargin}{oddsidemargin}{columnsep}
%% {topmargin}{headheight}{headsep}{footskip}
\clearpage
\changepage{\ncsu@footskip}{-\ncsu@footskip}{}{}{}{}{}{}{}
\begin{landscape}
\pagestyle{fancy}
\fancyhead{} % clear all header fields
\fancyfoot{} % clear all footer fields
\renewcommand{\headrulewidth}{0pt}
\rfoot{
%% Since the header and footer are unrotated, we must manually
%% place the page number. The picture environment is included in
%% standard LaTeX.
\setlength{\unitlength}{\portraittextheight}
\begin{picture}(0,0)
\put(0.055,0.557){\begin{sideways}\thepage\end{sideways}} % page number
\end{picture}
}
}
{
\end{landscape}
%% The \textheight is too large leaving landscape environment
%% since we invoked the \changepage. We manually reduce it.
\addtolength{\textheight}{-\ncsu@footskip}
%% \textheight controls 3 other variables, which must be updated.
%% See \endlandscape definition in lscape.sty
\global\@colht=\textheight
\global\vsize=\textheight
\global\@colroom=\textheight
\pagestyle{plain}
}
%% Rotate page but NOT page number
\newenvironment{lscapenotnum}
{
\begin{landscape}
}
{
\end{landscape}
}
%% -------------------------------------------------------------------------- %%
%% --------------------------- Captions ------------------------------- %%
%% -------------------------------------------------------------------------- %%
%% Adding space to start of caption
%% save
\RequirePackage{caption}
\DeclareCaptionLabelSeparator{colon}{:\hspace{0.8em}}
%% -------------------------------------------------------------------------- %%
%% ------------------------- References ------------------------------------ %%
%% -------------------------------------------------------------------------- %%
\renewcommand{\bibname}{References}
%% natbib redefines \thebibliography, so we add our own requirements
%% at \begin{document} time.
\AtBeginDocument{
\let\ncsu@thebibliography\thebibliography
\let\endncsu@thebibliography\endthebibliography
\renewenvironment{thebibliography}[1]
{
\singlespacing
\begin{ncsu@thebibliography}{#1}
}
{
\end{ncsu@thebibliography}
\ncsu@defaultspacing
}
}
%% -------------------------------------------------------------------------- %%
%% ------------------------- The Appendices -------------------------------- %%
%% -------------------------------------------------------------------------- %%
\newlength{\appendixwidth}
\settowidth{\appendixwidth}{APPENDIX A}
\addtolength{\appendixwidth}{1em}
\providecommand{\appendixheader}[1]{
\renewcommand{\ncsu@appendixheader}{#1}
}
%% Count the total number of appendices
\RequirePackage{totcount}
\regtotcounter{chapter} % chapter counter is used for appendices
\AtBeginDocument{%
%% Since ETD requirements are different than LaTeX's normal formatting of
%% the Table of Content's Appendix listings,
%% we change the indentation of chapters, sections, and subsections in
%% the appendix part of the table of contents, but no deeper divisions,
%% so we must cap the tocdepth at 2:
\newcounter{ncsu@appendixtocdepth}
\ifthenelse{\c@tocdepth > 2}
{\setcounter{ncsu@appendixtocdepth}{2}}
{\setcounter{ncsu@appendixtocdepth}{\c@tocdepth}}
\let\ncsu@appendix\appendix
\renewcommand{\appendix}{
\ifthenelse{\isundefined{\ncsu@appendixheader}}
% Appendix title page heading not defined, define it
{
\ifthenelse{\totvalue{chapter} = 1 }%
%% number of appendices = 1
{\newcommand{\ncsu@appendixheader}{APPENDIX}}
%% number of appendices > 1
{\newcommand{\ncsu@appendixheader}{APPENDICES}}
}
% Appendix title page heading already defined, do nothing
{}
\chapter*{\ncsu@appendixheader} %% insert 'Appendix' titlepage
\addcontentsline{toc}{chapter}{\ncsu@appendixheader}
%% Adding "Appendix" before letter in TOC
%% We must change the width of the box which the appendix letter is set in
%% and add the "Appendix " before the letter. See tocloft documentation.
\addtocontents{toc}{
\protect\renewcommand{\protect\cftchappresnum}{Appendix }
\protect\renewcommand{\protect\cftchapnumwidth}{\protect\appendixwidth}
\protect\renewcommand{\protect\cftchapfont}{\protect\cftsecfont}
\protect\setlength{\protect\cftbeforechapskip}{\protect\cftbeforesecskip}
\protect\setlength{\protect\cftchapindent}{\protect\cftsecindent}
\protect\renewcommand{\protect\cftchappagefont}{\protect\cftchapfont}
\protect\setlength{\protect\cftsecindent}{\protect\cftsubsecindent}
\protect\addtolength{\protect\cftsubsecindent}{\cftsecnumwidth}
\protect\setcounter{tocdepth}{\c@ncsu@appendixtocdepth}
}
\clearpage
\ncsu@appendix %% call internal \appendix macro
} % \renewcommand{appendix}
} % \AtBeginDocument
\ncsu@defaultspacing
%%
%% Copyright (C) 2009-2012 by Josh Hykes <jmhykes@ncsu.edu> and others
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License (LPPL), either
%% version 1.3c of this license or (at your option) any later
%% version. The latest version of this license is in the file:
%%
%% http://www.latex-project.org/lppl.txt
%%
%% This work is "maintained" (as per LPPL maintenance status).
%%
%% This work consists of the file ncsuthesis.dtx
%% and the derived files ncsuthesis.ins,
%% ncsuthesis.pdf and
%% ncsuthesis.cls.
%%
%%
%% End of file `ncsuthesis.cls'.