From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/york-thesis/york-thesis.dtx | 1164 ++++++++++++++++++++++ 1 file changed, 1164 insertions(+) create mode 100644 macros/latex/contrib/york-thesis/york-thesis.dtx (limited to 'macros/latex/contrib/york-thesis/york-thesis.dtx') diff --git a/macros/latex/contrib/york-thesis/york-thesis.dtx b/macros/latex/contrib/york-thesis/york-thesis.dtx new file mode 100644 index 0000000000..89d762f8ff --- /dev/null +++ b/macros/latex/contrib/york-thesis/york-thesis.dtx @@ -0,0 +1,1164 @@ +% \iffalse meta-comment +% +% Copyright (C) 2002-11 by Diane Gall +% ------------------------------------------------------- +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{york-thesis.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesClass{york-thesis} +%<*class> +[2011/06/13 v3.6 York University (Toronto, Canada) thesis class] +% +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{listings} +\EnableCrossrefs +\RecordChanges +\widowpenalty=50000 \clubpenalty=50000 +\begin{document} + \DocInput{york-thesis.dtx} +\end{document} +% +% \fi +% +% \CheckSum{0} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v1.0}{1995/04/25}{Set up for distribution to others} +% \changes{v1.1}{2002/02/13}{Various housekeeping functions} +% \changes{v2.5}{2005/04/20}{Extensive changes to comply with the new +% Spring 2005 FGS Thesis and Dissertation Guidelines} +% \changes{v3.0}{2005/05/21}{Converted all code to literate +% programming; corrected innumerable minor errors} +% \changes{v3.5}{2010/05/06}{Updated author name} +% +% \GetFileInfo{york-thesis.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \title{The \textsf{york-thesis} class\thanks{This document +% corresponds to \textsf{york-thesis}~\fileversion, dated +% \filedate.}} \author{Diane Gall \\ +% \texttt{gall@spookyhill.net}\thanks{For the love of all that is +% holy, if you find errors your output, get hold of me pronto at +% \texttt{gall@spookyhill.net}---I will make every effort to make +% the corrections quickly and get back to you. However, you need +% to describe the problem clearly and include the source and +% output that offends.}} +% +% \maketitle +% \parindent = 0pt +% \parskip = 1em +% \begin{abstract} +% \noindent The \textsf{york-thesis} class implements the York +% University (Toronto, Canada) Faculty of Graduate Studies guidelines +% for Theses and Dissertations (Spring 2005). This class file is based +% on the \textsf{report} class included in every \LaTeX\ +% distribution. All requirements are pre-programmed and various +% additional bits that I found useful when writing my dissertation are +% included. +% \end{abstract} +% +% \section{Introduction} +% +% This document specifies completely the changes the class file makes +% to the \textsf{report} class in order for the output to meet the +% York FGS specifications for Theses and Dissertations. These +% guidelines are available from your graduate programme office and +% from FGS.\footnote{They are also available at +% \texttt{http://www.yorku.ca/grads/pub/td.htm}} It is your +% responsibility to ensure that your output meets these requirements. +% +% \section{Usage} +% +% \subsection{Installation} +% +% Now that you have run both \texttt{york-thesis.ins} and +% \texttt{york-thesis.dtx} through \LaTeX, the only file you +% \textit{need} to install is the \texttt{york-thesis.cls} file. It +% goes in your personal \texttt{texmf} tree, wherever that is. For +% MacOS X users, this location is in \texttt{Library/texmf/tex/latex/} +% in your home folder. +% +% If you are using emacs and AUCTeX, the file \texttt{york-thesis.el} +% should be installed in a folder called \texttt{style} in your +% personal \texttt{emacs-lisp} folder in your home directory. This +% file contains some definitions for AUCTeX. +% +% The york-thesis-Template.tex file contains a sample master document +% that uses all of the features provided by the class file over +% \textsf{report.cls}. If you forget to set anything, the defaults +% from the class file will be used, so review your output carefully. +% +% \subsection{Deployment} +% +% \DescribeMacro{\documentclass} Use: |\documentclass| \oarg{options} +% \{\textsf{york-thesis}\} +% +% The \textsf{york-thesis} class is invoked in the standard +% fashion. The defaults are +% \textsf{letterpaper,10pt,oneside,onecolumn,draft,openany}. The +% |\documentclass| command has extra functionality built into two +% options: \textsf{draft} and \textsf{final}. The \textsf{draft} +% option sets the margins to 1 inch all around and single-spaces +% everything. All other \textsf{draft} features of the \textsf{report} +% class (such as marking overfull boxes and providing empty boxes for +% graphics) are left intact, if you explicitly declare \textsf{draft}; +% otherwise, you get the graphics drawn and bad boxes are not marked. +% The \textsf{final} option, by itself in the options list, sets all +% parameters for producing output suitable for examination and +% deposit. All other options are available, though some (like +% \textsf{titlepage}) do nothing.\footnote{If you declare +% \textsf{twocolumn}, the output may be goofy. I intend to make this +% a real option in future. See \S\ref{future}.} +% +% \subsection{Preprogrammed Formats} +% \label{preprog} +% +% The York FGS guidelines are both specific and vague. Where the +% guidelines \textit{require} some feature, it is implemented as the +% default. If you change the behaviour of anything, you should confirm +% that this liberty is permitted by the guidelines. I have taken some +% liberties that are permitted---these are detailed below. +% +% \DescribeMacro{\chapter} \DescribeMacro{\section} +% \DescribeMacro{\subsection} \DescribeMacro{\subsubsection} +% \DescribeMacro{\paragraph} I have made the size and spacing of the +% output these commands less idiotic---that is, smaller. The chapter +% type size is slightly larger than that for the others (|\Large| +% rather than |\Huge|), but the others are now simply |\large|, save +% |\paragraph|, which is |\normalsize|. Additionally, the chapter +% command gives you a chapter number with the title on a single line +% without the word `Chapter' to remind you that this is where a +% chapter begins. I think we can all tell from the context. +% +% \DescribeMacro{\appendix} Appendices are marked with +% capital Roman letters (i.e., A, B, C, et cetera), and treated +% exactly the same as a normal chapter. +% +% \DescribeEnv{quote} \DescribeEnv{quotation} \DescribeEnv{verse} I +% have made a command decision regarding these environments. The +% guidelines allow for single spacing these in the submission copy and +% I think it just looks better to do so. So, these three environments +% are single-spaced in both \textsf{draft} and \textsf{final}. I am +% planning to implement a switch for this in the future. If this is an +% important feature for anyone, please give me a shout. +% +% \DescribeMacro{\footnote} The guidelines allow footnotes to be +% single-spaced, so they are. Also, I have set the footnote +% continuation bar (the one that gets drawn when footnotes continue on +% the next page) to be drawn across the width of the text. Again, if +% anyone needs a switch to double space their footnotes soon, give me +% a shout. +% +% \subsection{Booleans and Macros} +% +% \subsubsection{Preamble Material} +% +% These booleans and macros must be set before the |document| +% environment begins. +% +% \DescribeMacro{masters} This \textsf{boolean} sets whether the +% document should be typeset as a PhD dissertation or a Masters +% thesis. +% +% \DescribeMacro{hasfigures} This \textsf{boolean} sets whether there +% are any figures in the text. All this switch does is tell \LaTeX\ to +% construct a list of figures and insert an entry for the list of +% figures in the table of contents. +% +% \DescribeMacro{hastables} This \textsf{boolean} sets whether there +% are any tables in the text. All this switch does is tell \LaTeX\ to +% construct a list of tables and insert an entry for the list of +% tables in the table of contents. +% +% \DescribeMacro{\title} This macro specifies the title of the work +% for the title page. +% +% \DescribeMacro{\author} This macro specifies your name for the title +% page. +% +% \DescribeMacro{\department} This macro specifies the department or +% graduate programme within which you are pursuing the degree. +% +% \DescribeMacro{\date} This macro specifies the full month and year +% of the defense date. +% +% \DescribeMacro{\committeememberslist} Use: |\committeememberslist| +% \marg{enumerated list} +% +% This macro specifies the list of your +% examination committee members for the authenticity page, if you are +% printing one. What goes into the macro must be an enumerated list. +% +% \DescribeMacro{\mastersof} This macro specifies which Masters degree +% you are attempting (i.e., Master of Science, Master of Arts). This +% macro has no effect if |\boolean{masters}| is false, i.e., if this +% is a PhD dissertation. +% +% \DescribeMacro{\degreename} This macro specifies the name of the +% degree you are attempting: Master or Magisteriate, Doctor or +% Doctorate. +% +% \DescribeMacro{\abstractfile} This macro specifies the filename of +% the .tex file that contains your abstract. If you do not specify a +% file, nothing is typeset. The macro constructs the title and table +% of contents entry for the page. All you need to do in the file is +% enter the text. The first line of the abstract should not be +% indented, so this is forced by the class file. +% +% \DescribeMacro{\dedicationfile} This macro specifies the filename of +% the .tex file that contains your dedication text. All you need to do +% here is specify the text of your dedication. +% +% \changes{v3.2}{2006/01/31}{Added the \textsf{dedicationfile} macro.} +% +% \DescribeMacro{\acknowledgementsfile} This macro specifies the +% filename of the .tex file that contains your acknowledgements. If +% you do not specify a file, nothing is typeset. The macro constructs +% the title and table of contents entry for the page. All you need to +% do in the file is enter the text. The first line of the +% acknowledgements should not be indented, so this is forced by the +% class file. +% +% \DescribeMacro{\prefacefile} This macro specifies the filename of +% the .tex file that contains your preface. If you do not specify a +% file, nothing is typeset. The macro constructs the title and table +% of contents entry for the page. All you need to do in the file is +% enter the text. The first line of the preface should not be +% indented, so this is forced by the class file. +% +% \DescribeMacro{\abbreviationsfile} This macro specifies the filename +% of the .tex file that contains any abbreviations for citations, et +% cetera, that you are going to use in the text. If you do not specify +% a file, nothing is typeset. The macro constructs the title and +% table of contents entry for the page. All you need to do in the file +% is enter the text. The first line of the abbreviations page should +% not be indented, so this is forced by the class file. +% +% \subsubsection{Source Material} +% \label{sourcemat} +% +% These macros are used inside the |document| environment. +% +% \DescribeMacro{\makefrontmatter} This macro generates the title +% page, abstract, acknowledgements, preface, abbreviations page, table +% of contents, and lists of tables and figures. It can be commented +% out until you need the front matter generated. +% +% \DescribeMacro{\epigraph} Use: |\epigraph| \marg{pithy quote} +% \marg{source} +% +% I have added a command to insert an epigraph to be used inside an +% |epigraphs| environment immediately after the |\chapter| command (or +% wherever it strikes your fancy). It takes two arguments: a pithy +% quote and the source. The text is inserted right-justified with a +% rule underneath just after the chapter title (when invoked right +% after the |\chapter| command). The output is single-spaced in +% \texttt{draft} mode and double-spaced in \texttt{final} mode. As you +% can see, the possibilities are endless. +% +% \subsection{Environments} +% +% The |quote|, |quotation|, and |verse| environments have been +% modified as specified in \S\ref{preprog}. +% +% \DescribeEnv{epigraphs} This environment allows for the setting of +% epigraphs---if you are so inclined. It is a list environment and +% uses the |\epigraph| macro as the list item as specified in +% \S\ref{sourcemat}. +% +% \DescribeEnv{fquote} \DescribeEnv{fquotation} \DescribeEnv{fverse} +% These environments are redefinitions of the corresponding +% environments for use inside footnotes. They properly set the text +% size to |\footnotesize| and control the spacing appropriately. +% +% \section{Miscellaneous Goodies} +% +% \subsection{Bugs} +% +% There are, of course, no bugs in this class file. In the incredibly +% unlikely event that it does not perform correctly, it is obvious that +% it is the operator's fault. Please send a detailed description of your +% error to me at \texttt{gall@spookyhill.net} and I will instruct you in +% the proper use of the class file. If, on the other hand, you have the +% temerity to think that there could be \textit{improvements} to this +% most perfect code, please send those along as well for I do enjoy +% condescending to those who dare second-guess genius.\footnote{For the +% humour-impaired, if this thing is messed up, send me a detailed +% description of the error or improvement desired and I'll make +% something useful happen.} +% +% \subsection{Future Features} +% \label{future} +% +% \begin{itemize} +% +% \item Implement a switch for the |quote|, |quotation|, |verse| +% environments so that they can be set to double-space in +% \textsf{final} mode. +% +% \item Implement a switch for the |\footnote| command so that they +% can be double-spaced in \textsf{final} mode. +% +% \item Some people might want to have the option of setting their +% \textsf{draft} documents two sided and/or two columned (i.e., any +% damned way they want). If you do so right now, things may look +% goofy (most of the frontmatter, for instance). I want to make it +% such that a decent looking \textsf{draft} document can be +% generated. My idea here is that users might want to make their +% thesis/dissertation look like a book at the end of the day, since +% the \textsf{final} document is not set like a book. This is not a +% high priority. +% +% \item Generation of subject matter appropriate text. I forsee a +% |generate| option for the |\documentclass| command. This option +% will, if the computer is attached to the Internet, search all +% available sources, generate a thesis statement (based upon the +% value of the |\title| macro), and the supporting arguments for +% that thesis. I anticipate a great deal of extra code will be +% necessary, so this feature will be an ongoing project. +% +% \end{itemize} +% +% \StopEventually{\PrintChanges} +% +% \section{Implementation} +% +% \subsection{Initial Code} +% +% All of these packages are in the standard distribution of +% \LaTeX. I've included the \textsf{makeidx} so I can re-define +% |\printindex|. The |saving| boolean is defined here for use with the +% class options. +% +% \begin{macrocode} +\RequirePackage{ifthen} +\RequirePackage{calc} +\RequirePackage{makeidx} +\newboolean{saving} +% \end{macrocode} +% +% \subsection{Declaration of Options} +% +% \changes{v1.1}{2002/02/13}{added \textsf{final} and \textsf{draft} +% options in \textsf{documentclass} macro.} +% \changes{v3.0}{2005/05/21}{changed the fashion in which options are +% processed so that \textsf{report.cls} correctly gets the draft and +% final options.} \changes{v3.0}{2005/05/21}{FGS guidelines allow +% for 10pt, 11pt, and 12pt type now. I no longer enforce 12pt; +% however, it is set as the default. Other type sizes must be +% explicitly declared.} +% +% All of the options available to the |report| class are available in +% \textsf{york-thesis}.\footnote{Do not use the |titlepage| and +% |abstract| environments from \textsf{report.cls}. The title page +% and the abstract are taken care of by the |makefronmatter| +% macro.} I have changed the default options (i.e., the option set +% executed where there are no explicitly declared options in the +% |\documentclass| macro. There are also two changes to the standard +% behaviour of two options: \textsf{draft} and \textsf{final}. +% +% The default option list is: +% \textsf{letterpaper,10pt,oneside,onecolumn,draft,openany} +% +% I have set the options up in a way that increases the number of +% options for typesetting the document. +% +% If \textsf{draft} is declared \textit{implicitly} (that is, neither +% \textsf{draft} or \textsf{final} is declared in the options list), +% then all text is set to single-spacing, graphics are drawn, and bad +% boxes are not marked. +% +% If draft is declared \textit{explicitly} (that is, \textsf{draft} is +% declared in the options list), then all text is set to +% single-spaced, graphics are not drawn (bounding boxes are drawn), +% and bad boxes are marked. +% +% If \textsf{final} is declared, the text is set to double-space (as +% described in \S\ref{preprog}), one sided printing, and one +% column. If \textsf{final} is declared alone, what you get is +% acceptable by FGS for deposit. +% +% \begin{macrocode} +\DeclareOption{draft}{\setboolean{saving}{true}} +\DeclareOption{final}{\setboolean{saving}{false} + \PassOptionsToClass{letterpaper,12pt,oneside,% + onecolumn,final,openany}{report}} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ExecuteOptions{draft} +% \end{macrocode} +% +% \subsection{Execution of Options} +% +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% \subsection{Package Loading} +% +% \begin{macrocode} +\LoadClass{report} +% \end{macrocode} +% +% \subsection{Main Code} +% +% \subsubsection{Preliminary Matter} +% +% I need to re-define a number of standard macros and settings to get +% everything to come out exactly right. This is where that magic +% happens. +% +% \begin{macrocode} +\let\oldquote\quote \let\oldendquote\endquote +\let\oldquotation\quotation \let\oldendquotation\endquotation +\let\oldverse\verse \let\oldendverse\endverse +\let\oldbibliography\bibliography +\let\oldendbibliography\endbibliography +\let\oldprintindex\printindex +% \end{macrocode} +% +% +% The following are booleans along with their initial values +% +% \changes{v2.5}{2005/04/20}{added the boolean +% \textsf{authenticitypage}} \changes{v3.0}{2005-05-21}{removed the +% boolean \textsf{authenticitypage}; the authenticity page is now +% always generated} +% +% \begin{macro}{hasfigures} +% +% This \textsf{boolean} sets whether a list of figures should be +% generated +% +% \begin{macrocode} +\newboolean{hasfigures}\setboolean{hasfigures}{false} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{hastables} +% +% This \textsf{boolean} sets whether a list of tables should be +% generated +% +% \begin{macrocode} +\newboolean{hastables}\setboolean{hastables}{false} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{masters} +% +% The |masters| boolean was taken from dissertation.sty with +% modification. If set \textsf{true}, you will need to specify which +% master's degree you are pursuing with the |\masterof| macro. +% +% \begin{macrocode} +\newboolean{masters}\setboolean{masters}{false} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\spacing} +% +% I redefine |\baselinestretch| and recompute |\baselineskip| +% lateral effect: set typeface to normal size roman +% +% \begin{macrocode} +\newcommand{\spacing}[1]{\renewcommand{\baselinestretch}{#1}% + \large\normalsize} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@removefromreset} +% +% I define a command that can undo footnote reset between chapters +% (shamelessly lifted from removefr.sty by Donald Arseneau) and then +% do it. +% +% \begin{macrocode} +\def\@removefromreset#1#2{\let\@tempb\@elt + \expandafter\let\expandafter\@tempa\csname c@#1\endcsname + \def\@elt##1{\expandafter\ifx\csname c@##1\endcsname\@tempa\else + \noexpand\@elt{##1}\fi}% + \expandafter\edef\csname cl@#2\endcsname{\csname cl@#2\endcsname}% + \let\@elt\@tempb} +\@removefromreset{footnote}{chapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\resetfootnote} +% +% Here I undo the hideous |\@addtoreset| in \textsf{report.cls} +% +% \begin{macrocode} +\def\resetfootnote{\setcounter{footnote}{0}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footnotetext} +% +% Make footnotes single spaced, footnote continuation lines +% longer +% +% \changes{v1.1}{2002/02/13}{made footnote spacing single +% spaced in final} +% +% \changes{v3.4}{2006/05/16}{stole code from |footmisc| to +% lengthen footnote continuation lines} +% +% +% \begin{macrocode} +\long\def\@footnotetext#1{% + \insert\footins{% + \def\baselinestretch {1}% + \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 + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} +\gdef\split@prev{0} +\let\pagefootnoterule\footnoterule +\let\mpfootnoterule\footnoterule +\def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@} +\def\footnoterule{\relax + \ifx \@listdepth\@mplistdepth + \mpfootnoterule + \else + \ifnum\split@prev=\z@ + \pagefootnoterule + \else + \splitfootnoterule + \fi + \xdef\split@prev{\the\insertpenalties}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\appendix} +% +% Renew the |\appendix| command to deal with spacing in appendices +% correctly +% +% \begin{macrocode} +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter} + \ifthenelse{\boolean{saving}}{\spacing{1}}{\spacing{2}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bibliography} +% +% Renew the |\bibliography| macro so that it puts in its own toc entry +% +% \begin{macrocode} +\renewenvironment{bibliography}[1]% + {\addcontentsline{toc}{chapter}{Bibliography}\oldbibliography {#1}}% + {\oldendbibliography} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\printindex} +% +% Renew the |\printindex| macro so that it puts in its own toc entry +% +% \begin{macrocode} +\renewcommand{\printindex}{\newpage% + \addcontentsline{toc}{chapter}{Index}\oldprintindex} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hugeskip} +% +% Skip twice as much as the TeX command |\bigskip| +% +% \begin{macrocode} +\def\hugeskip{\vskip 24pt plus 8pt minus 8pt} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\@ifdefined} +% +% Expand second argument if the command in the first argument is not +% defined +% +% \begin{macrocode} +\def\@ifdefined#1#2{\@ifundefined{#1}{}{#2}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\@makechapterhead} +% +% These macros are redefined here to use not-so-huge type and to +% provide chapters of form: N chaptername +% +% \changes{v1.5}{2003/09/20}{Changed appearance of chapter titles: +% removed \textsf{chaptername} and placed the section number on +% the same line as the label (suggested by Dave Makalsky)} +% +% \begin{macrocode} +\def\@makechapterhead#1{ \vspace*{50pt} { \parindent 0pt + \raggedright% + \ifnum \c@secnumdepth > \m@ne \Large\bf + \thechapter \hskip 1em \fi \Large \bf #1\par + \nobreak \vskip 40pt } } +\def\@makeschapterhead#1{ \vspace*{50pt} { \parindent 0pt \raggedright + \Large \bf #1\par + \nobreak \vskip 40pt }} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\section} +% +% This section of code re-defines some standard stuff for sanity. +% +% \begin{macrocode} +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries}} +\renewcommand\subsection{\@startsection {subsection}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\normalsize\bfseries}} +\renewcommand\subsubsection{\@startsection {subsubsection}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% We rename the headings for the toc, lof, and the references. +% +% \begin{macrocode} +\renewcommand\contentsname{Table of Contents} +\renewcommand\listfigurename{List of Figures} +\renewcommand\listtablename{List of Tables} +\renewcommand\bibname{Bibliography} +% \end{macrocode} +% +% We modify the definitions for the various contents headers +% +% \begin{macrocode} +\newcommand{\contentsheader}[2] { \addtocontents{#1} { + \centerline{\underline{#2}\protect\hfill% + \underline{Page}}}} +\renewcommand\tableofcontents { \chapter*{\contentsname} + \addcontentsline{toc}{chapter}{Table of Contents} + \@starttoc{toc}} +\renewcommand\listoffigures { \chapter*{\listfigurename} + \addcontentsline{toc}{chapter}{List of Figures} + \@starttoc{lof}} +\renewcommand\listoftables { \chapter*{\listtablename} + \addcontentsline{toc}{chapter}{List of Tables} + \@starttoc{lot}} +% \end{macrocode} +% +% \subsubsection{Margins and spacing} +% +% Rules taken from York FGS Guidelines for Theses and Dissertations +% +% The style guide, for the final deposited verrsion, requires 1.5in +% left and top margin and 1.0in right and bottom margins. +% +% If |\boolean{saving}| is true, set for draft; otherwise, set for +% final +% +% \begin{macrocode} +\ifthenelse{\boolean{saving}} {% + \setlength {\topmargin}{0.0in} + \setlength {\textheight}{\paperheight-2.5in} + \setlength {\oddsidemargin}{0.0in} + \setlength {\evensidemargin}{0.0in} + \setlength {\textwidth}{\paperwidth-2in} + \spacing{1} + } {% + \setlength {\topmargin}{0.65in} + \setlength {\textheight}{\paperheight-3.05in} + \setlength {\oddsidemargin}{0.6in} + \setlength {\evensidemargin}{0.1in} + \setlength {\textwidth}{\paperwidth-2.65in} + \setlength {\footskip}{0.3in} + \spacing{2} +% \end{macrocode} +% +% \begin{environment}{quote} +% +% \changes{v1.1}{2002/02/13}{changed \textsf{quote} environment for +% single spacing in \textsf{final}} +% +% \begin{macrocode} + \renewenvironment{quote}{\oldquote\spacing{1}}% + {\oldendquote\spacing{2}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{quotation} +% +% \changes{v1.1}{2002/02/13}{changed \textsf{quotation} environment +% for single spacing in \textsf{final}} +% +% \begin{macrocode} + \renewenvironment{quotation}{\oldquotation\spacing{1}}% + {\oldendquotation\spacing{2}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{verse} +% +% \changes{v1.1}{2002/02/13}{changed \textsf{verse} environment for +% single spacing in \textsf{final}} +% +% \begin{macrocode} + \renewenvironment{verse}{\oldverse\spacing{1}}% + {\oldendverse\spacing{2}}} +% \end{macrocode} +% \end{environment} +% +% Let's space the footnotes nicely and, since we have no headers, +% remove them from the page layout. +% +% \begin{macrocode} +\setlength {\footnotesep}{14pt} +\setlength {\headheight}{0in} +\setlength {\headsep}{0in} +% \end{macrocode} +% +% \subsubsection{Commands to define parameters for the front matter} +% +% There are two kinds of commands that define parameters for the front +% matter: macros that provide info (like |\author| or |\abstractfile|) +% and booleans that set flags. +% +% The following are the definitions of the macros that provide info +% (standard LaTeX commands like |\author| are omitted because they are +% already defined). +% +% \changes{v2.5}{2005/04/20}{added \textsf{degreename}, +% \textsf{committeememberslist}} +% +% \begin{macrocode} +\def\department#1{\gdef\@department{#1}} +\def\masterof#1{\gdef\@masterof{#1}} +\def\abstractfile#1{\gdef\@abstractfile{#1}} +\def\dedicationfile#1{\gdef\@dedicationfile{#1}} +\def\acknowledgementsfile#1{\gdef\@acknowledgementsfile{#1}} +\def\prefacefile#1{\gdef\@prefacefile{#1}} +\def\abbreviationsfile#1{\gdef\@abbreviationsfile{#1}} +\def\committeememberslist#1{\gdef\@committeememberslist{#1}} +\def\degreename#1{\gdef\@degreename{#1}} +% \end{macrocode} +% +% The following are the initial values for some macros that provide +% info. +% +% \begin{macrocode} +\gdef\@author{YOUR FULL NAME} \gdef\@title{{\bf THE TITLE OF YOUR + WORK}} \gdef\@date{\number\year} \gdef\@department{PHILOSOPHY} +\gdef\@masterof{Arts} \gdef\@committeememberslist{% + \begin{enumerate}% + \item Joanne Examiner% + \item Fred P. Questioner% + \end{enumerate}} +\ifthenelse{\boolean{masters}}{\gdef\@degreename{MASTER}}% + {\gdef\@degreename{DOCTOR}} +% \end{macrocode} +% +% \subsubsection{Generate frontmatter} +% +% \begin{macro}{\makefrontmatter} +% +% What we want is a single macro that will generate all of the +% frontmatter of the document, such as, the title page, abstract, +% authenticity page, table of contents, etc.\@ Each page of the +% frontmatter is created by individual macros. This keeps things +% modular and tidy. Any sections of the frontmatter that are not +% declared are ignored. +% +% \changes{v1.1}{2002/02/13}{added a TOC entry for the Table of +% Contents} +% \changes{v3.6}{2011/06/13}{added code so that fancyhdr package could +% be used} +% +% \begin{macrocode} +\def\makefrontmatter{% + \pagestyle {empty} + \pagenumbering {roman} + \maketitlepage + \pagestyle {empty} \makecopyrightpage + \pagestyle {empty} \makeauthenticitypage + \setcounter {page} {3} + \@ifdefined {@abstractfile}{\makeabstract} + \pagestyle {fancy} + \@ifdefined {@dedicationfile}{\makededication} + \@ifdefined {@acknowledgementsfile}{\makeacknowledgements} + \tableofcontents + \ifthenelse{\boolean{hastables}}{\listoftables}{} + \ifthenelse{\boolean{hasfigures}}{\listoffigures}{} + \@ifdefined{@prefacefile}{\makepreface} + \@ifdefined{@abbreviationsfile}{\makeabbreviations} + \newpage + \pagenumbering {arabic} + \setcounter {page}{1}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\maketitlepage} +% +% The title page is standard. The guidelines require uppercase +% throughout, so I have forced this wherever necessary. +% +% \changes{v3.3}{2002/03/07}{removed the tabular environment from +% around the title macro. I still have the problem of not being able +% to force a line break inside the title macro.} +% +% \begin{macrocode} +\def\maketitlepage{ + \vspace*{.85in} + \begin{center} + \spacing{1} + \textbf{\MakeUppercase{\@title}} + \hugeskip + \hugeskip + \hugeskip + {\bigskip \MakeUppercase{\@author}} + \end{center} + \hugeskip \hugeskip \hugeskip \hugeskip \hugeskip \hugeskip + {\spacing{1} + \begin{center} + \ifmasters A THESIS \else A DISSERTATION \fi + SUBMITTED TO THE FACULTY OF GRADUATE STUDIES \\ + IN PARTIAL FULFILMENT OF THE REQUIREMENTS \\ + FOR THE DEGREE OF \\ + \hugeskip \hugeskip \hugeskip + \ifmasters \MakeUppercase{\@degreename} OF + \MakeUppercase{\@masterof} + \else + \MakeUppercase{\@degreename} OF PHILOSOPHY \fi \\ + \hugeskip \hugeskip + GRADUATE PROGRAM IN \MakeUppercase{\@department} \\ + YORK UNIVERSITY \\ + TORONTO, ONTARIO \\ + \MakeUppercase{\@date} + \end{center}} + \newpage } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\copyrightpage} +% +% The copyright page has to be centred both left and right and up and +% down \textit{between the margins}. Not hard to do but a little bit +% of a pain to make come out just right. +% +% The author might be using the department generated copyright pages, +% but I have no idea if this is still a common practice. So, the +% copyright page is always generated. +% +% \begin{macrocode} +\def\makecopyrightpage{% + \begin{center} + \setlength{\fboxrule}{.004in} \setlength{\fboxsep}{2cm} + \mbox{} + \par\vspace*{\stretch{1}} + \fbox{\parbox{4in}{% + \spacing{1} + \begin{center} + \textbf{\MakeUppercase{\@title}} + \end{center} by + \textbf{\@author} + + \bigskip + a \ifmasters thesis \else dissertation \fi submitted to the + Faculty of Graduate Studies of York University in partial + fulfilment of the requirements for the degree of + \begin{center} + \ifmasters \textbf{\MakeUppercase{\@degreename} OF + \MakeUppercase{\@masterof}} + \else + \textbf{\MakeUppercase{\@degreename} OF PHILOSOPHY} \fi \\ + $\copyright$\ \number\year \\ + \end{center} + + Permission has been granted to: a) YORK UNIVERSITY LIBRARIES + to lend or sell copies of this dissertation in paper, + microform or electronic formats, and b) LIBRARY AND ARCHIVES + CANADA to reproduce, lend, distribute, or sell copies of this + \ifmasters thesis \else dissertation \fi anywhere in the world + in microform, paper or electronic formats \textit{and} to + authorise or procure the reproduction, loan, distribution or + sale of copies of this \ifmasters thesis \else dissertation + \fi anywhere in the world in microform, paper or electronic + formats. + + \bigskip The author reserves other publication rights, and + neither the \ifmasters thesis \else dissertation \fi nor + extensive extracts for it may be printed or otherwise + reproduced without the author's written permission.}} + \vspace*{\stretch{1}} +\end{center} +\newpage} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makeauthenticitypage} +% +% This page is used in lieu of a Certificate page when the thesis or +% dissertation is being deposited electronically. Now that we can do +% this, I have no idea why anyone \textit{wouldn't} submit +% electronically. As such, we will always have an authenticity +% page. If you don't like it, throw it away and stick a certificate +% page in. +% +% \begin{macrocode} +\def\makeauthenticitypage{% + \par\vfill + {\spacing{1} + \begin{center} + \textbf{\MakeUppercase{\@title}} \hugeskip\hugeskip by + \textbf{\@author} + \end{center} + \hugeskip\noindent By virtue of submitting this document + electronically, the author certifies that this is a true + electronic equivalent of the copy of the \ifmasters thesis \else + dissertation \fi approved by York University for the award of + the degree. No alteration of the content has occurred and if + there are any minor variations in formatting, they are as a + result of the coversion to Adobe Acrobat format (or similar + software application). \hugeskip + \begin{flushright} + \begin{minipage}[t]{4in} + Examination Committee Members: \@committeememberslist + \end{minipage} + \end{flushright}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makeabstract} +% +% The abstract page is pretty standard. It sets up a toc entry, starts +% a new chapter, and forces a non-indented first paragraph. +% +% \begin{macrocode} +\def\makeabstract{% + \chapter*{Abstract} + \addcontentsline {toc}{chapter}{Abstract} + \noindent + \@input{\@abstractfile}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makededication} +% +% \changes{v3.2}{2006/01/31}{Added the \textsf{makededication} and +% \textsf{dedicationfile} macro.} +% +% The dedication page is pretty simple. It just sets whatever is in +% your dedication.tex file. +% +% \begin{macrocode} +\def\makededication{% + \newpage + \@input{\@dedicationfile}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makepreface} +% +% We need to include the preface file, if specified +% +% \changes{v2.0}{2004/05/13}{Added prefacefile support} +% +% \begin{macrocode} +\def\makepreface{% + \chapter*{Preface} + \addcontentsline {toc}{chapter}{Preface} + \noindent + \@input{\@prefacefile}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makeabbreviations} +% +% This page will probably be rarely used. If you have a lot of +% references from one or two authors, sometimes it is clearer to use +% an abbreviation rather than the sometimes cryptic in-line +% citation. This is the page where you provide the legend. +% +% I have found this particularly useful in conjunction with +% \texttt{natbib}'s |\citepalias| and |\citetalias| macros. +% +% \begin{macrocode} +\def\makeabbreviations{% + \chapter*{Abbreviations} + \addcontentsline{toc}{chapter}{Abbreviations} + \noindent + \@input{\@abbreviationsfile}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makeacknowledgements} +% +% \begin{macrocode} +\def\makeacknowledgements{% + \chapter*{Acknowledgements} + \addcontentsline{toc}{chapter}{Acknowledgements} + \noindent + \@input{\@acknowledgementsfile}} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Other new commands and environments} +% +% \begin{environment}{epigraphs} +% \begin{macro}{\epigraph} +% +% Constructed with stolen code from epigraph.sty by Peter Wilson +% (pandgwilson at earthlink dot net) +% +% This is simple: |\epigraph| macros go in an |epigraphs| environment +% +% \changes{v3.0}{2005/05/21}{Set \textsf{epigraphwidth} to .8 of the +% \textsf{columnwidth} rather than the \textsf{textwidth}} +% +% \changes{v3.1}{2005/07/27}{Make \textsf{epigraphs} environment +% single-spaced in all output modes.} +% +% \begin{macrocode} +\newlength{\epigraphwidth}\setlength{\epigraphwidth}{.8\columnwidth} +\newlength{\epigraphrule}\setlength{\epigraphrule}{.4\p@} +\newcommand{\@epirule}{\rule[.5ex]{\epigraphwidth}{\epigraphrule}} +\newcommand{\epigraph}[2]% + {\item #1\vspace{-12pt}\begin{flushright}#2\end{flushright}} +\newcommand{\epigraphlabel}[1]{\hfill} +\newenvironment{epigraphs}{% + \begin{flushright} + \begin{minipage}{\epigraphwidth} + \list{}% + {\itemindent\z@ \labelwidth\z@ \labelsep\z@ + \leftmargin\z@ \rightmargin\z@ + \let\makelabel\epigraphlabel}}% + {\endlist\vspace{-18pt}\@epirule\vspace{24pt}\end{minipage}\end{flushright}} +\let\oldepigraphs\epigraphs \let\oldendepigraphs\endepigraphs +\ifthenelse{\boolean{saving}}{}{% + \renewenvironment{epigraphs}{\oldepigraphs\spacing{1}}% + {\oldendepigraphs\spacing{2}} +} +% \end{macrocode} +% \end{macro} +% \end{environment} +% +% \begin{environment}{fquote} +% +% The |fquote| environment corrects for line spacing and indentation +% when used inside a |\footnote|. +% +% \changes{v2.0}{2004/05/13}{Added \textsf{fquote} environment for +% footnotes} +% +% \begin{macrocode} +\newenvironment{fquote}% + {\oldquote\footnotesize}% + {\oldendquote\normalsize} +% \end{macrocode} +% \end{environment} +% \begin{environment}{fquotation} +% +% The |fquotation| environment corrects for line spacing and indentation +% when used inside a |\footnote|. +% +% \changes{v2.0}{2004/05/13}{Added \textsf{fverse} environment for +% footnotes} +% +% \begin{macrocode} +\newenvironment{fquotation}{\oldquotation\footnotesize}% + {\oldendquotation\normalsize} +% \end{macrocode} +% \end{environment} +% \begin{environment}{fverse} +% The |fverse| environment corrects for line spacing and indentation +% when used inside a |\footnote|. +% +% \changes{v2.0}{2004/05/13}{Added \textsf{fverse} environment for +% footnotes} +% +% \begin{macrocode} +\newenvironment{fverse}{\oldverse\footnotesize}% + {\oldendverse\normalsize} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\threestars} +% The |threestars| macro gives a centred set of three asterisks for +% use at the end of a section near the end of a chapter so that a +% new `concluding' section need not be used. +% +% \changes{v3.1}{2005/07/27}{Added \textsl{threestars} macro} +% +% \begin{macrocode} +\newcommand{\threestars}{\begin{center}% + *\hspace{.5in}*\hspace{.5in}*\hspace{.5in}\end{center}} +% \end{macrocode} +% \end{macro} +% +% \Finale +% \newpage +% \appendix +% +% \section{The york-thesis-Template.tex File} +% +% This is a listing of a sample master document for your thesis or +% dissertation. I recommend placing chapters and appendices in +% separate files (like I force you to do for your abstract, preface, +% acknowledgements, and abbreviations). This makes everything more +% manageable from an editor point of view (you are scrolling through +% thousands of lines) and makes typesetting parts of the document much +% easier. +% +% \lstinputlisting[language=TeX,basicstyle={\footnotesize}]{york-thesis-Template.tex} +\endinput -- cgit v1.2.3