The ubcthesis Package^{∗}

Copyright (C) 2001 by Michael McNeil Forbes 2002/12/15

Contents

1 Introduction  5
2 Disclaimer  5
3 Version  5
4 Getting Started  5
4.1 Obtaining the ubcthesis package . . . . . . . . . . . . . . . . . . 6
4.2 Installing the ubcthesis package . . . . . . . . . . . . . . . . . . . 6
4.2.1 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.2 Generating the ubcthesis.cls file . . . . . . . . . . . . . . 7
4.2.3 Sample Thesis . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Writing a Thesis  8
5.1 Page Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.1 Headers and Footers . . . . . . . . . . . . . . . . . . . . . . 8
5.2 Class Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6 Contributions  10
7 To Do (including bugs)  10
8 Acknowledgements  12
9 The docstrip modules  13
I Documentation Driver  13
10 Identification  13
11 Document Class  14
12 End of Document  14

∗This is ubcthesis.dtx version v1.19 dated 2002/12/15. CVS Revision : 1.19

II Sample Thesis  14
13 Identification  15
14 Document Structure  15
14.1 Chapter and section counter formats . . . . . . . . . . . . . . . . . 17
15 End of Document  23

III Sample Bibliographic Database (BIBTeX)  23
16 Identification  23
17 Document Structure  23

IV The ubcthesis Document Class  26
18 Identification  26
19 Initial Code  26
20 Document Markup Functions  29
20.1 The title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
20.2 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
20.3 Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
21 Declaration of Options  32
21.1 Setting Paper Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
21.2 Choosing the type size . . . . . . . . . . . . . . . . . . . . . . . . . 33
21.3 Two-side or one-side printing . . . . . . . . . . . . . . . . . . . . . 33
21.4 Draft and committee options . . . . . . . . . . . . . . . . . . . . . 33
21.5 openright option . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
21.6 Two-column printing . . . . . . . . . . . . . . . . . . . . . . . . . . 34
21.7 Running headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
21.8 Equation numbering on the left . . . . . . . . . . . . . . . . . . . . 34
21.9 Flush left displays . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
21.10Title page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
21.11Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
21.12Figures and Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
21.13Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
21.14Open bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
21.15Crosshairs on empty pages. . . . . . . . . . . . . . . . . . . . . . . 37
21.16Font Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
22 Executing Options  41
23 Loading Packages  42

24 Document Layout  42
24.1 Paragraphing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
24.2 Page Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
24.2.1 Float placement parameters . . . . . . . . . . . . . . . . . . 43
24.3 Page Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
24.3.1 Marking conventions . . . . . . . . . . . . . . . . . . . . . . 44
24.3.2 Defining the page styles . . . . . . . . . . . . . . . . . . . . 45
25 Document Markup  49
25.1 Title Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
25.2 Authorization Form . . . . . . . . . . . . . . . . . . . . . . . . . . 53
25.3 Preface/Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
25.4 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
25.5 Parts, Chapters, Sections, Paragraphs etc. . . . . . . . . . . . . . . 55
25.5.1 Building blocks . . . . . . . . . . . . . . . . . . . . . . . . . 55
25.5.2 Mark commands . . . . . . . . . . . . . . . . . . . . . . . . 56
25.5.3 Define Counters . . . . . . . . . . . . . . . . . . . . . . . . 56
25.6 Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
25.6.1 Front Matter, Main Matter, and Back Matter . . . . . . . . 57
25.6.2 Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
25.6.3 Chapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
25.6.4 Lower level headings . . . . . . . . . . . . . . . . . . . . . . 62
25.7 Alternatives for Table of Contents . . . . . . . . . . . . . . . . . . 64
25.8 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
25.8.1 General List Parameters . . . . . . . . . . . . . . . . . . . . 65
25.8.2 Enumerate . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
25.8.3 Itemize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
25.8.4 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
25.9 Defining new environments . . . . . . . . . . . . . . . . . . . . . . 67
25.9.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
25.9.2 Quotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
25.9.3 Quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
25.9.4 Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
25.9.5 Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
25.10Setting parameters for existing environments . . . . . . . . . . . . 69
25.10.1 Array and tabular . . . . . . . . . . . . . . . . . . . . . . . 69
25.10.2 Tabbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
25.10.3 Minipage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
25.10.4 Framed boxes . . . . . . . . . . . . . . . . . . . . . . . . . . 69
25.10.5 Equation and eqnarray . . . . . . . . . . . . . . . . . . . . . 69
25.11Floating objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
25.11.1 Figure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
25.11.2 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
25.11.3 Captions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
25.12Font changing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

26 Cross Referencing  73
26.1 Table of Contents, etc. . . . . . . . . . . . . . . . . . . . . . . . . . 73
26.1.1 Table of Contents . . . . . . . . . . . . . . . . . . . . . . . 74
26.1.2 List of figures . . . . . . . . . . . . . . . . . . . . . . . . . . 76
26.1.3 List of tables . . . . . . . . . . . . . . . . . . . . . . . . . . 77
26.2 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
26.3 The index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
26.4 Footnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
27 Initialization  80
27.1 Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
27.2 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
27.3 Two column mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
27.4 The page style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
27.5 Single or double sided printing . . . . . . . . . . . . . . . . . . . . 81
27.6 Single or double spacing . . . . . . . . . . . . . . . . . . . . . . . . 82

1 Introduction

The ubcthesis class is a package designed for L^{A}TEX2e to aid students at The University of British Columbia (UBC) in Vancouver, British Columbia, Canada in writing theses that conform the the format requirements of the library. The output of the sample file has been checked and approved by the library, but this class is presently un-official (see section 2).

This class is quite general and contains many options. Hopefully, there are enough options so that you will be able to use it to format a thesis at another institution. If not, please let me know so that I may modify it (I will send you an updated version as soon as possible). See also Section 6.

2 Disclaimer

The ubcthesis L^{A}TEX class and the accompanying sample files are unofficial and are not supported by The University of British Columbia. While I have attempted to make the style file and sample files conform to all of the requirements set forth by the Special Collections department of the library, you should always consult one of the Special Collections staff for assistance with problems before starting final draft. You should be able to find the thesis requirements at one of the following sites:

   • http://www.library.ubc.ca/
   • http://www.library.ubc.ca/spcoll/
   • http://www.library.ubc.ca/spcoll/theses.html
   • http://www.library.ubc.ca/spcoll/thesesin.html
   • http://www.grad.ubc.ca/
   • http://www.grad.ubc.ca/currstudents/
   • http://www.grad.ubc.ca/currstudents/records/thesis.htm

3 Version

This section describes the version information for this file. It is maintained through a CVS repository and by manual version numbers. These should be kept in sync, however, this file might be modified outside of the CVS archive, in which case the versions might differ.

CVS Version: Id: ubcthesis.dtx,v 1.19 2004/02/04 23:20:09 mforbes Exp

Manual Version: ubcthesis.dtx v1.19 2002/12/15.

4 Getting Started

This section describes how to get up and running with the ubcthesis class. You should make sure you have all the files, then unpack them and use the sample thesis as a guide to formatting your own thesis.

4.1 Obtaining the ubcthesis package

package, however, if not (perhaps this document has been posted without the full package) then please check the following places which may have a reference to the complete package (at the time of writing, the final location of the package is not known).

   • http://www.physics.ubc.ca/
   • http://www.library.ubc.ca/

Also see the library locations listed in Section 2 as these should contain a link to the package.

The complete package should be called ubcthesis.tgz or ubcthesis.tar.gz or ubcthesis.zip or the similarly depending on how it is packaged and includes the files:

ubcthesis.dtx This file contains the ubcthesis.cls class as well as a sample thesis and all of the documentation. It can be processed with L^{A}TEX to generate the documentation (see Section 4.2.1).

ubcthesis.ins This file is a script that unpacks the ubcthesis.dtx file. It should be processed with L^{A}TEX.

fig.eps This file is a sample figure for inclusion with the sample thesis.

fig.fig This file is the xfig source for the fig.eps file.

4.2 Installing the ubcthesis package

To install the ubcthesis package you must have a working version of L^{A}TEX installed on your system. The L^{A}TEX program can them be used to generate the appropriate files and documentation. It is recommended that you copy all the

files ubcthesis.dtx, ubcthesis.ins, fig.eps and fig.fig to a temporary di-

rectory first. The rest of the installation instructions will assume that you have done this.

4.2.1 Documentation

To generate the documentation, run the following commands:

 latex ubcthesis.dtx
 makeindex -s gglo.ist -o ubcthesis.gls ubcthesis.glo
 makeindex -s gind.ist ubcthesis.idx
 latex ubcthesis.dtx
 latex ubcthesis.dtx

Running L^{A}TEX three times is required to properly generate the cross-references. The makeindex program generates the index and change logs. This will produce the file ubcthesis.dvi which can then be viewed with the xdvi program:

 xdvi ubcthesis.dvi

In addition, the usual auxiliary L^{A}TEX files will be produced. These may be discarded. Copy the documentation file ubcthesis.dvi to an appropriate location for future references.

4.2.2 Generating the ubcthesis.cls file

To generate the actual ubcthesis.cls file and the sample thesis, run L^{A}TEXonce

on the ubcthesis.ins file:
 latex ubcthesis.ins

This will generate the following files:

ubcthesis.cls This is the actual ubcthesis class file.

ubcthesis.drv This is a driver file used to unpack the other files. It may be safely removed.

ubcthesis.log This is a log of what happened during the unpacking. If you have problems, you might check this, but it may not be easy to read. It may be safely removed.

sample.tex This is the sample thesis file.

sample.bib This is a sample BIBTeX bibliography database for the sample thesis.

The sample thesis files should be moved to the same directory as the documentation files as they are very useful for someone writing a thesis. These should be used as a template because they conform to the UBC thesis requirements.

4.2.3 Sample Thesis

The sample thesis consists of the files sample.tex and sample.bib. It is setup to conform with the UBC standard and should be used as a template because it specifies the correct order of elements such as the abstract, table of contents etc. It also contains many examples of L^{A}TEX features. To compile it, use the following commands:

 latex sample
 bibtex sample
 latex sample
 latex sample

The first time, a list of references will be produced in the file sample.aux. Also, the list of tables sample.lot and list of figures sample.lof will be produced. The BIBTeX program will then use this and the list of bibliographic information in sample.bib to produce a properly formatted bibliography in sample.bib. The final calls to L^{A}TEX will arrange all the cross-references correctly.

View the sample thesis using xdvi:

 xdvi sample.dvi

The actual class file ubcthesis.cls must be installed somewhere that L^{A}TEX can find. This should be on the TEXINPUTS path. Check with your system administrator for the correct location. It is likely somewhere like:

 /usr/local/texmf/
 /opt/local/teTeX/share/

Optionally, you can simply put a copy in the same directory as your thesis.

Be sure that when you distribute your thesis, you also include the ubcthesis.cls file (and preferably the entire ubcthesis distribution!) since it is not yet a standard L^{A}TEX package.

5 Writing a Thesis

To begin writing a thesis using the ubcthesis class, you should start with the sample thesis as a template. In particular, the sample thesis shows you how order various sections and to ensure that pages are numbered appropriately. In addition, many useful options are demonstrated here.

This sections describes how you can use the ubcthesis class to accomplish various tasks.

5.1 Page Style

You may wish to change the way that you pages look in your thesis. This section describes how to do this.

5.1.1 Headers and Footers

The terms “headers” and “footers” refer to text that appears at the top and bottom of the page. The norunningheaders option can be used to suppress the display of a header, and the noheadline option can be used to suppress the line drawn under the header.

To further customize the appearance of the headers and footers, use the fancyhdr package. This gives you much more control over the headers. See the documentation supplied with the fancyhdr package for more details.

If you do decide to define your own headers, be careful about page numbering: you may need to explicitly include a page number in your header to ensure that each page is numbered.

5.2 Class Options

Most of the bevahiours of the ubcthesis class are controlled through flags that are set in the \documentclass[]{ubcthesis} statement that occurs at the start of your document. Options are specified in the square brackets, for example the sample file uses the options msc, 10pt, noupper, appendixpart, and oneside.

Options usually appear in pairs that enable or disable a feature. As the ubcthesis class was derived from the standard book class, many of the options are still supported. In this section we describe all options that are different from the standard L^{A}TEX book class and a few of the relevant options that have been maintained. The default option values are underlined.

draft draft/\underline{final} These toggle between draft and final modes. Use the final mode for final submission. Note: in the draft version, graphics are not necessarily displayed

depending on the graphics package you use.

10pt \underline{10pt}/11pt/12pt Sets the font size.

11pt
12pt

\underline{oneside}/twoside Single verses double sided. This just offsets the pages: you

oneside
twoside

must specify to print (for example, use the command lpr -Zsimplex ... for one side or lpr -Zduplex ... for two). If you are handing in your thesis single sided (the current requirement) then be sure to use the oneside option.

upper upper/\underline{noupper} Upper case chapters and part headings.

noupper

tocupper/\underline{notocupper} Upper case in the table of contents.

tocupper
notocupper

\underline{chapterheads}/nochapterheads Display “Chapter #” before chapter titles in

chapterheads
nochapterheads

the main matter of the thesis.

headcount \underline{headcount}/noheadcount Toggles the display of the numbers in chapter head-

noheadcount  ings.

msc msc/ma/masc/meng/\underline{phd} Sets the style. Sets degreetitle to ”DOCTOR OF

ma
masc
meng
phd

PHILOSOPHY”, ”MASTER OF SCIENCE” etc. in the title page. The number of signature lines is also changed.

appendixpart/\underline{noappendixpart} Specifies that the appendix should be a part

appendixpart
noappendixpart

rather than a chapter.

appendixpage/\underline{noappendixpage} Puts a page separator between the appen-

appendixpage
noappendixpage

dices. Has no effect if the option ”appendixpart” is specified since parts are already put on a separate page.

hangingcaptions hangingcaptions/\underline{nohangingcaptions} These options determine whether or not nohangingcaptions figure and table captions should “hang”. Hanging captions are justified so

that all the caption text comes after the caption label.

runningheaders \underline{runningheaders}/norunningheaders These display or suppress running headnorunningheaders ers that contain the current chapter name and number. If they are sup-

pressed, only the page number will be displayed.

headline \underline{headline}/noheadline These display or suppress a horizontal line running under noheadline the headers at the top of the page.

crosshair crosshair/\underline{nocrosshair} These toggle between crosshair and nocrosshair modes. nocrosshair The crosshair mode puts a large X on empty pages. (Pages with pagestyle

empty).

committee committee Use this option when producing the version to send to your thesis committee if they want the document with 1.5 spacing so there is some room for comments between the lines. You may change the spacing by redefining the \committeespacing command in the preamble (before the \begin{document} command). The following command would give double spacing for example.

    \renewcommand{\committeespacing}{2}

6 Contributions

While this class attempts to conform to the requirements of UBC, I have attempted to make it very general so that it will be of use for anyone writing a thesis. In particular, I have included many options that can be changed to meet the specific requirements of a given university. Ultimately, I would like to include several “global options” that would change the format to conform with various universities. These would work in much the same way that the various Font Options (see Section 21.16): each global option would set a bunch of options and variables to make the style conform to the universities requirements.

An additional type of modification would be to add a variety of title page formats (see Section 25.1). There are also many features that could be added which I have not had the time to research and implement. One would be an easy method for including custom counters (such as provided by figures and equations). One specific request is for a “Scheme” counter which would count chemical schemes or formula. This would allow users to produce a “List of Schemes” much as a list of tables and list of figures is currently produced. See Section 7 for a list of tasks.

I would appreciate any feedback, including comments, suggestions, modifications etc. In particular, I would like to know of any features that you require that are not available with the current set of options. Also, if you have a font scheme that looks good, please let me know so that I can include it (I have not spent a whole lot of time thinking about the beast choice of layout as I have had a thesis to write too!)

Michael McNeil Forbes mforbes@physics.ubc.ca

7 To Do (including bugs)

Update Font Options The default font options look okay, but the others (slanted for example) look pretty bad. These should be updated.

Custom Lists Currently, counters are provided for Figures and for Tables that are recorded in .lof and .lot files respectively for later inclusion in a List of Figures via the \listoffigures command and \listoftables commands respectively. I would like to provide a way for the user to define custom counters and similar tables for various other types of lists. In particular, a request has been made for a “List of Schemes” allowing chemists to list chemical formulae.

One easy way of doing this would be to provide a set of a fixed number of lists (perhaps with associated files .lo1, .lo2, …, .lo9) that the user can use and provide customized titles. A better way would probably allow the number to be flexible.

List of Prior Publications There is no explicit way for doing this yet. The library would prefer that this is not included, but some people like to include this information in the thesis, so a nice mechanism should be produced for doing this. This is not hard and can be easily done “by hand”.

Wide Text A small environment should be made which allows equations or other elements to be inserted which extend beyond the width of the text for occasional equations etc. that are long. This should justify the wide text properly and center it on the page (possibly including an option for the width of the box and options for flush left, right etc. with the box centered on the page).

Indices I have never worked with indices, so I have no comments on how to do this (nor have I designed the package with this in mind). Many people would probably like to include an index, and so I should include instructions on how to. I will when I figure it out…

Proper Placement of Commands In order to ensure that the ubcthesis class works well with other packages, it should be more careful about where various code elements are placed.

One particular problem related to a conflict with the natbib package was resolved in Section 26.2 by using the \AtBeginDocument{ command. In particular, natbib redefined the thebibliography environment and caused a problem. Now we redefine the thebibliography environment after the preamble. This may defeat some of the point of using the natbib package but allows us to work now. Problems like this should be investigated and a good resolution found.

hyperref Package There are problems with the hyperref package and index entries when producing the documentation. There was also a problem with hyperref in the actual class with the table of contents, but this has been resolved. In the future note that one must be careful where one converts things to upper case: doing so where the toc was written created problems with the hyper-link information. Now the conversion happens before the hyper-links are added.

When this is fixed, include the index and instructions on how to make the index.

Section Numbering The \@headingalignment command affects something adversely, but I cannot remember what. This should be tested and the bug fixed.

Draft Headers The Headers in draft mode should still have the page numbers on the right hand side. There is a discrepancy between the abstract page etc. and the rest of the document.

Magic Numbers Many of these have been replaced, but there are still many magic numbers that should be replaced by modifiable constants.

Title Pages Possibly options for uppercase, or add some other styles for the titlepage.

Page Numbering Make the page numbering scheme more flexible. In particular, consider suppressing the counting of certain pages (such as the authorization form) rather than hard setting the numbers.

Lettered Figures Add options for lettered figures.

Table Of Contents If there are a very large number of sections, then the numbers in the toc become large than the space allocated for them. (For an example of this, see the table of contents for this file!) Ideally, when running, the size of the maximum label should be calculated and this used to set the spacing. This could be sent to the .aux file or possibly computed ahead of time.

Page Breaks Add ability to break pages in weird locations. (See Darren Peets class).

Acknowledgements Add a place to acknowledge people who contribute to the project in the documentation!

Chapter Headlines The first page of a chapter now returns to the pagestyle plain which is the default behaviour for the L^{A}TEX classes. An option should be added which allows one to customize the chapter page style to give the option of running headers as before.

Draft Mode It might be useful to have a draft mode which includes graphics (because this also includes the current date). Also, if it does not break anything, a CVS revision number should be included in the draft header as well. Draft mode might also force a header onto every page.

Change Log Ordering/Index Presently the change log is not sorted very well in that version 1.2 is really below 1.12. The former should probably be changed to 1.02 etc. Also, the styles etc. should be updated, and the calls to makeindex should somehow be automated if possible. Finally, the index should actually link to the pages if possible (with hyperref?) so that modern version of xdvi etc. will allow you to click and go to the relevant pages.

If there are any other features or bugs you would like to see, please let me know (see Section 6).

8 Acknowledgements

This class was derived from classes.dtx Version 2001/04/21 v1.4e which is part of the LaTeX base system. The original file is available from

• http://www.ctan.org

For information on the LaTeX project, see

• http://www.latex-project.org

Additional modifications we incorporated from the thesis.cls file by Wenzel Matiaske The incorporations were made from Version 1996/25/01 1.0g. The thesis.cls and thesis.dtx distribution is available from.

• http://www.ctan.org

I would like to especially thank the following people for contributions:

• Darren Peets for helping debug the class and offering many useful suggestions.

• James P. Zibin for suggesting the fix for the header overflow bug.

Description of the files

From here on, this document describes the actual source files produced line by line. The following files are described:

ubcthesis.drv This is the documentation driver file that produces the documentation (which you are probably reading). This must come first because it includes the \documentclass statement for this file.

sample.tex This is the sample thesis. Use this file as a template for your thesis.

sample.bib This is a sample bibliography database (in BIBTeX format) to show you how to use one.

ubcthesis.cls This is the actual ubcthesis L^{A}TEX2e class file. Look here for specific details about the class, especially if you want to modify or contribute to it.

9 The docstrip modules

The following modules are used in the implementation to direct docstrip in generating the external files:

ubcthesis produce the documentclass ubcthesis
sampletex produce the sample L^{A}TEX file
samplebib produce the sample BIBTeX file
driver  produce a documentation driver file

File I

Documentation Driver

This bit of code contains the documentation driver file for TEX, i.e., the file that will produce the documentation you are currently reading. It will be extracted from this file by the docstrip program.

Here is the comment that tells docstrip to put the rest of the code into

ubcthesis.drv

1 ⟨∗driver⟩

10 Identification

This section identifies the version of the file. It also indicates which version of L^{A}TEX (L^{A}TEX2e) is required and makes sure that an appropriate message is displayed when another TEX format is used.

 2 \NeedsTeXFormat{LaTeX2e}[1995/12/01]

Now we announce the file or class name and its version:

 3 \ProvidesFile{classes.drv}[2002/12/15 v1.19 ^^J
 4 University of British Columbia Thesis Class Documentation Driver]

11 Document Class

Now we specify the documentclass to use the ltxdoc.cls file. This will format the documentation appropriately. This must be the first uncommented \documentclass command in the file which is why the driver must come first.

We also use the hyperref package to allow point and click linking within the document. There are some problems with the index however.

 5 \documentclass{ltxdoc}
 6 \usepackage{hyperref}

We do want an index, using line numbers

 7 % Uncomment these lines to make an index and a change log in the
 8 % documentation.
 9 \AtBeginDocument{\CodelineIndex\EnableCrossrefs}
10 \AtBeginDocument{\RecordChanges}
11 %\OnlyDescription % Uncomment this to suppress description of files.

The following command retrieves the date and version information from the file.

12 \GetFileInfo{ubcthesis.drv}

Some commonly used abbreviations

13 \newcommand*{\Lopt}[1]{\textsf {#1}}
14 \newcommand*{\file}[1]{\texttt {#1}}
15 \newcommand*{\Lcount}[1]{\textsl {\small#1}}
16 \newcommand*{\pstyle}[1]{\textsl {#1}}
17 \newcommand*{\prog}[1]{\textsc {#1}}
18 \newcommand{\exclude}[1]{#1}

We also want the full details.

19 \begin{document}
20 \DocInput{ubcthesis.dtx}

12 End of Document

21 \end{document}

Finally, we close off the driver file so that nothing else is put into the documentation driver.

22 ⟨/driver⟩

File II

Sample Thesis

This section presents the code for the sample thesis with comments. It is recommended that you first obtain the sample thesis files and compile them as described in Section 4.2.3. This way you can try the various options to see how they work.

Here is the comment that tells docstrip to put the following code into

sample.tex.

1 ⟨∗sampletex⟩

13 Identification

This section identifies the version of the file. It also indicates which version of L^{A}TEX (L^{A}TEX 2ε) is required and makes sure that an appropriate message is displayed when another TEX format is used.

 2 %% This Sample thesis requires \LaTeX2e
 3 \NeedsTeXFormat{LaTeX2e}[1995/12/01]

Now we announce the file or class name and its version:

 4 \ProvidesFile{sample.tex}[2002/12/15 v1.19 ^^J
 5 University of British Columbia Sample Thesis]

14 Document Structure

This section describes the structure that your L^{A}TEX document must have. Various sections of the sample code will be presented to illustrate this structure though the sample file sample.tex does not contain all of the options and features.

The first section of a L^{A}TEX document contains information about the structure of the document. This is called the document preamble.

Usually the first command is the \documentclass command which specifies the class to use and the options to the class

6

 7 \documentclass[msc,10pt,noupper,appendixpart,oneside]{ubcthesis}
 8 %% The ubcthesis class uses the standard thesis class so all of the
 9 %% thesis options are available (Defaults are enclosed in []) for example:
10 %% ...
11 %% [noappendixpage]/appendixpage - Puts a page separator between the
12 %%                                 appendices.  Has no effect if the
13 %%                                 option "appendixpart" is specified.
14 %%
15 %% Known bugs:
16 %% - Even if [upper] is used, the "Appendices" part label is in normal
17 %% case.
18 %%
19 %% To compile issue the following commands:
20 %% latex sample
21 %% bibtex sample
22 %% latex sample
23 %% latex sample
24 %% latex sample
25 %%
26 %% To view use xdvi (on unix systems):
27 %% xdvi sample.dvi
28 %%
29 %% To make a postscript file, use dvips:
30 %% dvips -o sample.ps sample.dvi
31 %%
32 %% To view the postscript file, use ghostview or gv (on unix systems):
33 %% gv sample.ps
34 %%
35 %%************************************************
36 %% Optional packages.

37 %%
38 %% The use of these packages is optional: they are standard now and
39 %% should be installed on your system, but if they are not, you might
40 %% have to comment out the appropriate lines to get this file to
41 %% compile.
42 %%
43 %%******** natbib ********************************
44 %% This is a very nice package for bibliographies.  It includes options
45 %% for sorting and compressing bibliographic entries.
46 \usepackage[numbers,sort&compress]{natbib}

47

48 %%******** hyperref *****************************
49 %% This adds hyperlinks to your document: with the right viewers (later
50 %% versions of xdvi, acrobat with pdftex, latex2html etc.) this will
51 %% make your equation, figure, citation references etc. hyperlinks so
52 %% that you can click on them.  Also, your table of contents will be
53 %% able to take you to the appropriate sections.  In the viewers that
54 %% support this, the links often appear with an underscore.  This
55 %% underscore will not appear in printed versions.
56 \usepackage{hyperref}

57

58 %% If you would like to compile this sample thesis without the
59 %% hyperref package, then you will need to comment out the previous
60 %% \usepackage command and uncomment the following command which will
61 %% put the URL's in a typewriter font but not link them.
62 %%\newcommand\href[2]{\texttt{#2}}

63

64 %%******** graphics and graphicx ******************************
65 %% This allows you to include encapsulated postscript files.  If you
66 %% don't have this, comment the \includegraphics{} line following the
67 %% comment "%graphics" later in this file.
68 \usepackage{graphicx}

69

70 %%******** lscape ******************************
71 %% This allows you to include landscape layout pages by using the
72 %% |landscape| environment. Note that this output might only be valid
73 %% after converting to a postscript or pdf file.
74 \usepackage{lscape}

75

76 %%******** psfrag ******************************
77 %% This allows you to replace text in postscript pictures with formated
78 %% latex text.  This allows you to use math in graph labels
79 %% etc. Uncomment the psfrag lines following the "%psfrag" comment
80 %% later in this file if you don't have this package.  The replacements
81 %% will only be visible in the final postscript file: they will be
82 %% listed in the .dvi file but not performed.
83 \usepackage{psfrag}

84

85 %% These commands are optional.  The defaults are shown.
86 \institution{The University Of British Columbia}
87 \institutionaddress{Vancouver, Canada}
88 \department{Department of Physics and Astronomy}
89 \numberofsignatures{4}          % Signature lines on title page

90

 91 %% You can issue as many of these as you have...
 92 \previousdegree{B.Sc., The University of British Columbia, 1989}
 93 \previousdegree{M.Sc., The University of Toronto, 1992}

94

 95 %% You can override the option setting here.
 96 %% \degreetitle{Jack of All Trades}

97

 98 %% These commands are required.
 99 \title{A Sample Thesis}
100 \subtitle{With a Subtitle}
101 \author{Michael McNeil Forbes}
102 \copyrightyear{2000}
103 \submitdate{\today}

14.1 Chapter and section counter formats

For any counter CTR, \theCTR is a macro that defines the printed version of counter CTR. It is defined in terms of the following macros:

\arabic{COUNTER} prints the value of COUNTER as an Arabic numeral. \roman{COUNTER} prints the value of COUNTER as a lowercase Roman nu-

meral.

\Roman{COUNTER} prints the value of COUNTER as an uppercase Roman numeral.

\alph{COUNTER} prints the value of COUNTER as a lowercase letter: 1 = a, 2 = b, etc.

\Alph{COUNTER} prints the value of COUNTER as an uppercase letter: 1 = A, 2 = B, etc.

This section of the sample class redefines these (actually, the redefinitions match the defaults so this would be pointless in the actual thesis, but is here for demonstration purposes.)

104 %% One might want to override the format of the section and chapter
105 %% numbers.  This shows you how to do it.  Note that
106 \renewcommand\thepart         {\Roman{part}}
107 \renewcommand\thechapter      {\arabic{chapter}}

The section and lower commands also display the numbers of higher sections too and a punctuation mark. These show you how to change these. (Again, the formats actually given here are the defaults.)

108 \renewcommand\thesection      {\thechapter.\arabic{section}}
109 \renewcommand\thesubsection   {\thesection.\arabic{subsection}}
110 \renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}
111 \renewcommand\theparagraph    {\thesubsubsection.\arabic{paragraph}}
112 \renewcommand\thesubparagraph {\theparagraph.\arabic{subparagraph}}

113

114 % Two related counters control the level of sections that are numbered
115 % and the level of sections included in the table of contents:
116 \setcounter{tocdepth}{2}
117 \setcounter{secnumdepth}{2}

118

119 %% Here is the start of the document.
120 \begin{document}

121

122 %% This starts numbering in Roman numerals as required for the thesis

123 %% style.
124 \frontmatter

125

126 %% The order of the following components is preserved.  The order
127 %% listed here is the order currently required by the library.
128 \maketitle
129 \authorizationform
130 \begin{abstract}
131 The \texttt{ubcthesis.cls} \LaTeX\ class file and accompanying
132 documents, such as this sample thesis, are distributed in the hope
133 that it will be useful but without any warranty (without even the
134 implied warranty of fitness for a particular purpose).  For a
135 description of this file's purpose, and instructions on its use, see
136 below.

137

138 These files are distributed under the GPL which should be included
139 here in the future.  Please let the author know of any changes or
140 improvements that should be made.

141

142 Michael Forbes.
143 mforbes@physics.ubc.ca
144 \end{abstract}

145

146 \tableofcontents
147 \listoftables
148 \listoffigures
149 %% Any other lists should come here, i.e.
150 %% Abbreviation schemes, definitions, lists of formulae, list of
151 %% schemes, prior publications.  Only include a list of prior
152 %% publications if required by your department.

153

154 \preface
155 These papers have been published earlier\ldots.

156

157 \acknowledgements
158 Thank you mother here.

159

160 %% Force a new page.
161 \newpage

162

163 %% Any other unusual sections should come here between the
164 %% acknowledgements and the main body.

165

166 %% Suppress the running headers for this page only.
167 \thispagestyle{plain}
168 \chapter*{Disclaimer} % Unnumbered
169 The \texttt{ubcthesis} \LaTeX\ class and the accompanying sample files
170 are \emph{unofficial} and are not supported by The University of
171 British Columbia.  While I have attempted to make the style file and
172 sample files conform to all of the requirements set forth by the
173 Special Collections department of the library, you should always
174 consult one of the Special Collections staff for assistance with problems
175 \emph{before} starting final draft.  You should be able to find the
176 thesis requirements at one of the following sites:

178 \begin{table}[h]
179 \begin{center}
180  \begin{tabular}{|l|}
181  \hline
182  \href{http://www.library.ubc.ca/}
183  {\texttt{http://www.library.ubc.ca/}}\\
184  \href{http://www.library.ubc.ca/spcoll/}
185  {\texttt{http://www.library.ubc.ca/spcoll/}}\\
186  \href{http://www.library.ubc.ca/spcoll/theses.html}
187  {\texttt{http://www.library.ubc.ca/spcoll/theses.html}}\\
188  \href{http://www.library.ubc.ca/spcoll/thesesin.html}
189  {\texttt{http://www.library.ubc.ca/spcoll/thesesin.html}}\\
190  \href{http://www.grad.ubc.ca/}
191  {\texttt{http://www.grad.ubc.ca/}}\\
192  \href{http://www.grad.ubc.ca/currstudents/}
193  {\texttt{http://www.grad.ubc.ca/currstudents/}}\\
194  \href{http://www.grad.ubc.ca/currstudents/records/thesis.htm}
195  {\texttt{http://www.grad.ubc.ca/currstudents/records/thesis.htm}}\\
196  \hline
197  \end{tabular}
198 \end{center}
199 \caption{\label{tab:ubcurls}
200  Where to find information regarding thesis preparation at
201  \protect\href{http://www.ubc.ca/}{UBC}.}
202 \end{table}

203

204 %% Force a new page.
205 \newpage

206

207 %% Suppress the running headers for this page only.
208 \thispagestyle{plain}

209

210 %% The ___toc commands are new: they accept two arguments.  The first is
211 %% displayed as the heading, the second appears in the table of
212 %% contents.  This is only provided for unnumbered sections
213 %% etc. presently. A similar effect without a listing in the toc would
214 %% be achieved by the standard command:
215 %% \chapter*{A Japanese Introduction}
216 \chaptertoc{A Japanese Introduction}{Poem} % Unnumbered

217

218 %% Here is a quote:
219 \begin{quote}
220 % It is centered
221 \begin{center}
222  This is a small poem,\\
223  a little poem, a Haiku,\\
224  to show you how to.\\
225  ---Michael Forbes.
226 \end{center}
227 \end{quote}
228 This small poem shows several features:
229 \begin{itemize}
230 \item The \verb|\newpage| command has been used to force a page break.

231 \item The pagestyle has been set to suppress the headers using the
232 command \verb|\thispagestyle{plain}|.  Note that using
233 \verb|\pagestyle{plain}| would have affected all of the subsequent
234 pages.
235 \item The new \verb|\chaptertoc{}|
236 command has been used to generate a title and to list this
237 ``chapter'' in the table of contents as ``Poem''.  If one did not
238 desire to have an entry in the table of contents, then one would
239 just use the starred command \verb|\chapter*{}|.
240 \item All of this has been done \emph{before} the \verb|\mainmatter|
241 command has been issued to delay normal Arabic numbering.  Thus,
242 this poem will be numbered with lowercase Roman numerals as part of
243 the front matter.
244 \end{itemize}

245

246 %% Now regular page numbering begins.
247 \mainmatter

248

249 %% Parts are the largest units
250 \part{Thesis}

251

252 %% Chapters are the next main unit.
253 \chapter{This is a Chapter}

254

255 %% Sections are a sub-unit
256 \section{A Section}
257 Here is a section with some text.  Equations look like this $y=x$.

258

259 This is an example of a second paragraph in a section so you can
260 see how much it is indented by.

261

262 %% Subsections follow
263 \subsection{This is a Subsection}
264 Here is an example of a citation: \cite{Wandelt:2000ad}.  The actual
265 form of the citation is governed by the bibliographystyle.  These
266 citations are maintained in a BIBTeX file \texttt{sample.bib}.  You
267 could type these directly into the file.  For an example of the format
268 to use look at the file \texttt{sample.bbl} after you compile this
269 file.

270

271 This is an example of a second paragraph in a subsection so you can
272 see how much it is indented by.

273

274 \subsubsection{This is a Subsubsection}
275 Here are some more citations \cite{LL:1977,Peccei:1989,Turner:1999}.
276 If you use the \texttt{natbib} package with the \verb+sort&compress+
277 option, then the following citation will look the same as the first
278 citation in this section: \cite{Turner:1999,Peccei:1989,LL:1977}.

279

280 This is an example of a second paragraph in a subsubsection so you can
281 see how much it is indented by.

282

283 \paragraph{This is a Paragraph}
284 Paragraphs and subparagraphs are the smallest units of text.  There is

285 no subsubsubsection etc.

286

287 \subparagraph{This is a Subparagraph}
288 This is the last level of organisation.  If you need more than this,
289 you should consider reorganising your work\dots

290

291 \begin{equation}
292 \mathrm{f}(x)=\int_{-\infty}^{\int_{-\infty}^x
293  e^{-\frac{y^2}{2}}\mathrm{d}{y}}e^{-z^2}\mathrm{d}z
294 \end{equation}

295

296 In order to show you how a separate page would look like (i.e. without
297 a chapter heading) I must type some more text.  Thus I will babble a
298 bit and keep babbling for at least one more page\ldots  What you
299 should notice is that the chapter titles appear substantially lower
300 than the continuing text. Babble babble
301 babble babble babble babble babble babble babble babble babble babble
302 babble babble babble babble babble babble babble babble babble babble
303 babble babble babble babble babble babble babble babble babble babble
304 babble babble babble babble babble babble babble babble babble.

305

306 Babble babble babble babble babble babble babble babble babble babble
307 babble babble babble babble babble babble babble babble babble babble
308 babble babble babble babble babble babble babble babble babble babble
309 babble babble babble babble babble babble babble babble babble babble
310 babble babble babble babble babble babble babble babble babble babble
311 babble babble babble babble babble babble babble babble babble babble
312 babble babble babble babble babble babble babble babble babble babble
313 babble babble babble babble babble babble babble babble babble babble
314 babble babble babble babble babble babble babble babble babble babble
315 babble babble babble babble babble babble babble babble babble babble
316 babble babble babble babble babble babble babble babble babble babble
317 babble babble babble babble babble babble babble babble babble babble
318 babble babble babble babble.

319

320 \begin{table}[t]                 %optional [t, b or h];
321 \begin{tabular}{|r||r@{.}l|}
322  \hline
323  Phoenix & \$960&35\\
324  \hline
325  Calgary & \$250&00\\
326  \hline
327 \end{tabular}
328 \caption{
329  \label{tab:Table1}
330  Here is the caption for this wonderful table.Text of Caption}
331 \end{table}

332

333 \chapter[Another Chapter\ldots]{Another Chapter with a Very Long
334 Chapter-name that will Probably Cause Problems}
335 This chapter name is very long and does not display properly in the
336 running headers or in the table of contents.  To deal with this, we
337 provide a shorter version of the title as the optional argument to the
338 \verb|\chapter[]{}| command.

340 \section{Another Section}
341 Another bunch of text to demonstrate what this file does.
342 You might want a list for example:
343 \begin{itemize}
344 \item An item in a list.
345 \item Another item in a list.
346 \end{itemize}

347

348 \section*{An Unnumbered Section That is Not Included in the Table of Contents}
349 Here is an example of a figure environment:
350 \begin{figure}[ht]
351 \begin{center}
352 %%psfrag: comment the following line if not using the psfrag package
353  \psfrag{pie makes me happy!}{$\pi$ makes me happy!}
354 %%includegraphics: comment the following if not using the graphicx package
355  \includegraphics[width=0.4\textwidth]{fig.eps}
356  \caption{This is a figure of a happy face with a \texttt{psfrag}
357  replacement.  The original figure (drawn in xfig and exported to
358  a .eps file) has the text ``pie makes me happy!''.  The
359  \texttt{psfrag} package replaces this with ``$\pi$ makes me
360  happy!''.\label{fig:happy}}
361 \end{center}
362 \end{figure}
363 Figures can make a document more enjoyable as demonstrated by
364 Figure~\ref{fig:happy}.

365

366 \subsection*{An Unnumbered Subsection}
367 Note that if you use subsections or further divisions under an
368 unnumbered section, then you should make them unnumbered as well
369 otherwise you will end up with zeros in the section numbering.

370

371 \begin{landscape}
372 \chapter{Landscape Mode}
373 The landscape mode allows you to rotate a page about 90 degrees.  Note
374 that this might only work after you convert the \texttt{dvi} file to a
375 postscript (\texttt{ps}) or \texttt{pdf} file using \texttt{dvips} or
376 \texttt{dvipdf} etc.
377 \end{landscape}

378

379 %% This file is setup to use a bibtex file sample.bib and uses the
380 %% plain style.  Note, the bibliography could come after the appendices.
381 \bibliographystyle{plain}
382 \bibliography{sample}

383

384 %% Use this to reset the appendix counter.
385 \appendix
386 \chapter{First Appendix}
387 Here you can have your appendices. Note that the appendix bug will
388 get you here if you use the option \texttt{upper}.  Use the modified
389 thesis.cls file to work around this.

390

391 %% Indices come here.

392

15 End of Document

393 \end{document}

Finally, we close off the file so that nothing else is put into the sample thesis.

394 ⟨/sampletex⟩

File III

Sample Bibliographic Database (BIBTeX)

This section presents the code for the bibliographic database for the sample thesis with comments. It is recommended that you first obtain the sample thesis files and compile them as described in Section 4.2.3. This way you can try the various options to see how they work.

Here is the comment that tells docstrip to put the following code into

sample.bib.

1 ⟨∗samplebib⟩

16 Identification

This section identifies the version of the file. Formally this should be a comment, but as it appears prior to any entry, bibtex will treat it as a comment (beware though, the character may not appear outside of an entry.)

 2 \ProvidesFile{sample.bib}[2002/12/15 v1.19 ^^J
 3 University of British Columbia Sample Thesis]

17 Document Structure

 4 %% These are just some examples of articles and books.  Some of the fields
 5 %% are not needed, for example the abstract and SLACcitation fields.  There
 6 %% are many other types of documents.  The entry CL:2000 poses a problem
 7 %% in the URL field.  I am not sure how to get around this right now.

8

 9 @Article{Wandelt:2000ad,
10 author       = "Benjamin D. Wandelt and Romeel Dave and Glennys R.
11  Farrar and Patrick C. McGuire and David N. Spergel and
12  Paul J. Steinhardt",
13 title        = "Self-interacting dark matter",
14 year         = "2000",
15 eprint       = "astro-ph/0006344",
16 SLACcitation = "%%CITATION = ASTRO-PH 0006344;%%",
17 abstract     = "Spergel and Steinhardt have recently proposed the
18  concept of dark matter with strong self-interactions as
19  a means to address numerous discrepancies between
20  observations of dark matter halos on subgalactic scales
21  and the predictions of the standard collisionless dark

22  matter picture. We review the motivations for this
23  scenario and discuss some recent, successful numerical
24  tests. We also discuss the possibility that the dark
25  matter interacts strongly with ordinary baryonic
26  matter, as well as with itself. We present a new
27  analysis of the experimental constraints and
28  re-evaluate the allowed range of cross-section and
29  mass.",

30 }

31

32 @Book{LL:1977,
33 author       = "L. D. Landau and E. M. Lifshitz",
34 title        = "Quantum Mechanics: Non-relativistic theory",
35 publisher    = "Pergamon Press",
36 year         = "1989, c1977",
37 volume       = "3",
38 series       = "Course of Theoretical Physics",
39 address      = "Oxford; New York",
40 edition      = "Third",

41 }

42 43

44 @InCollection{Peccei:1989,
45 author       = "R. D. Peccei",
46 title        = "Special Topics: The Strong {CP} Problem",
47 booktitle    = "CP violation",
48 publisher    = "World Scientific",
49 year         = "1989",
50 editor       = "C. Jarlskog",
51 address      = "Singapore",
52 month        = jan,

53 }

54

55 @InProceedings{CL:2000,
56 author       = "S. A. {Colgate} and H. {Li}",
57 title        = "The Magnetic Fields of the Universe and Their Origin",
58 booktitle    = "10 pages, 1 figure (figures.png), invited talk at IAU
59  195 Preprint no. LAUR 00-180.",
60 year         = "2000",
61 month        = jan,
62 pages        = "1418",
63 URL          = "{http://adsabs.harvard.edu/cgi-bin/nph-bib_query?bibcode=\
64 2000astro.ph..1418C&db_key=PRE}",
65 adsnote      = "Provided by the NASA Astrophysics Data System",
66 eprint       = "astro-ph/0001418",
67 abstract     = "Recent rotation measure observations of a dozen or so
68  galaxy clusters have revealed a surprisingly large
69  amount of magnetic fields, whose estimated energy and
70  flux are, on average, {$\sim 10^{58}$} ergs and {$\sim
71  10^{41}$ G cm$^2$}, respectively. These quantities are
72  so much larger than any coherent sums of individual
73  galaxies within the cluster that an efficient galactic
74  dynamo is required. We associate these fields with
75  single AGNs within the cluster and therefore with all

 76  galaxies during their AGN phase. Only the central,
 77  massive black hole (BH) has the necessary binding
 78  energy, {$\sim 10^{61}$} ergs. Only the accretion disk
 79  during the {BH} formation has the winding number,
 80  {$\sim 10^{11}$} turns, necessary to make the gain and
 81  magnetic flux. We present a model of the BH accretion
 82  disk dynamo that might create these magnetic fields,
 83  where the helicity of the {$\alpha - \Omega$} dynamo is
 84  driven by star-disk collisions. The back reaction of
 85  the saturated dynamo forms a force-free field helix
 86  that carries the energy and flux of the dynamo and
 87  redistributes them within the clusters.",

88 }

89

 90 @Misc{Turner:1999,
 91 author       = "M. S. Turner",
 92 title        = "Dark Matter, Dark Energy and Fundamental Physics",
 93 howpublished = "astro-ph/9912211",
 94 year         = "1999",
 95 month        = dec,
 96 abstract     = "More than sixty years ago Zwicky made the case that
 97  the great clusters of galaxies are held together by the
 98  gravitational force of unseen (dark) matter. Today, the
 99  case is stronger and more precise: Dark, nonbaryonic
100  matter accounts for {$30\% \pm 7\%$} of the critical mass
101  density, with baryons (most of which are dark)
102  contributing only {$4.5\% \pm 0.5\%$} of the critical
103  density. The large-scale structure that exists in the
104  Universe indicates that the bulk of the nonbaryonic
105  dark matter must be cold (slowly moving particles). The
106  SuperKamiokande detection of neutrino oscillations
107  shows that particle dark matter exists, crossing an
108  important threshold. Over the past few years a case has
109  developed for a dark-energy problem. This dark
110  component contributes about {$80\% \pm 20\%$} of the critical
111  density and is characterized by very negative pressure
112  {$(p_X < -0.6 \rho_X)$}. Consistent with this picture of
113  dark energy and dark matter are measurements of {CMB}
114  anisotropy that indicate that total contribution of
115  matter and energy is within {$10\%$} of the critical
116  density. Fundamental physics beyond the standard model
117  is implicated in both the dark matter and dark energy
118  puzzles: new fundamental particles (e.g., axion or
119  neutralino) and new forms of relativistic energy (e.g.,
120  vacuum energy or a light scalar field). A flood of
121  observations will shed light on the dark side of the
122  Universe over the next two decades; as it does it will
123  advance our understanding of the Universe and the laws
124  of physics that govern it.",

125 }

126

127 @Book{Vilenkin:1994,
128 author =       {Alexander Vilenkin and E. P. S. Shellard},
129 title =        {Cosmic Stringas and Other Topological Defects},

130 publisher =    {Cambridge University Press},
131 year =         1994,
132 address =      {Cambridge}

133 }

134

135 ⟨/samplebib⟩

File IV

The ubcthesis Document Class

Here is the comment that tells docstrip to put the following code into

sample.tex.

1 ⟨∗ubcthesis⟩

18 Identification

This section identifies the version of the file. It also indicates which version of L^{A}TEX (L^{A}TEX 2ε) is required and makes sure that an appropriate message is displayed when another TEX format is used.

 2 \NeedsTeXFormat{LaTeX2e}[1995/12/01]

Now we announce the file or class name and its version:

 3 \ProvidesClass{ubcthesis}[2002/12/15 v1.19 ^^J
 4 University of British Columbia Thesis Class]

19 Initial Code

In this part we define a few commands that are used later on.

\@ptsize This control sequence is used to store the second digit of the pointsize we are typesetting in. So, normally, it’s value is one of 0, 1 or 2.

 5 \newcommand\@ptsize{}

\if@restonecol When the document has to printed in two columns, we sometimes have to temporarily switch to one column. This switch is used to remember to switch back.

 6 \newif\if@restonecol

\@chaptertocdots This turns on chapter leaders in the table of contents.

 7 \newif\if@chaptertocdots \@chaptertocdotstrue

\SetTime \hours \minutes \now These are some macros that set the time for use in the headers in draft mode.

 8 \newcount\hours
 9 \newcount\minutes
10 \def\SetTime{\hours=\time
11  \global\divide\hours by 60
12  \minutes=\hours
13  \multiply\minutes by 60
14  \advance\minutes by-\time

15  \global\multiply\minutes by-1 }
16 \def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}

\@toupper \@toctoupper Converts the argument to uppercase if the upper or tocupper options are specified. invoked.

17 \newcommand\@toupper[1]{\if@upper\MakeUppercase{#1}\else{#1}\fi}
18 \newcommand\@toctoupper[1]{\if@tocupper\MakeUppercase{#1}\else{#1}\fi}

\@startonecolumn \@endonecolumn These ensure one-column mode and restore for things like the toc, authorization form, titlepage etc. First we must define some temporary lengths to save the old lengths.

19 \newlength\oldtextwidth
20 \newlength\oldlinewidth
21 \newlength\oldparindent
22 \newlength\oldmarginparsep
23 \newlength\oldmarginparwidth
24 \newlength\oldoddsidemargin
25 \newlength\oldevensidemargin

Now we define the macro body.

26 \providecommand*{\@startonecolumn}{
27 \if@twocolumn
28  \@restonecoltrue

29

30  \global\setlength\oldtextwidth{\textwidth}
31  \global\setlength\oldlinewidth{\linewidth}

First, we calculate the maximum \textwidth, which we will allow on the selected paper and store it in \@tempdima. Then we store the length of a line with approximately 60–70 characters in \@tempdimb. The values given are more or less suitable when Computer Modern fonts are used.

32  \setlength\@tempdima{\paperwidth}
33  \addtolength\@tempdima{-2in}
34  \ifcase\@ptsize\relax
35  \setlength\@tempdimb{345\p@}
36  \or
37  \setlength\@tempdimb{360\p@}
38  \or
39  \setlength\@tempdimb{390\p@}
40  \fi

In one column mode the text should not be wider than the minimum of the paperwidth (minus 2 inches for the margins) and the maximum length of a line as defined by the number of characters.

41  \ifdim\@tempdima>\@tempdimb\relax
42  \global\setlength\textwidth{\@tempdimb}
43  \else
44  \global\setlength\textwidth{\@tempdima}
45  \fi

Here we modify the width of the text a little to be a whole number of points.

46  \global\@settopoint\textwidth
47  \global\setlength\linewidth{\textwidth}

The horizontal space between the main text and marginal notes is determined by \marginparsep, the minimum vertical separation between two marginal notes is controlled by \marginparpush.

48  \global\setlength\oldmarginparsep{\marginparsep}
49  \global\setlength\marginparsep{7\p@}

50

51  \global\setlength\oldparindent{\parindent}
52  \ifcase\@ptsize\relax
53  \global\setlength\parindent{15\p@}
54  \or
55  \global\setlength\parindent{17\p@}
56  \or
57  \global\setlength\parindent{1.5em}
58  \fi

For one-sided printing we center the text on the page, by calculating the difference between \textwidth and \paperwidth. Half of that difference is than used for the margin (thus \oddsidemargin is 1in less).

59  \global\setlength\oldmarginparwidth{\marginparwidth}
60  \global\setlength\oldoddsidemargin{\oddsidemargin}

61

62  \if@twoside
63  \setlength\@tempdima        {\paperwidth}
64  \addtolength\@tempdima      {-\textwidth}
65  \global\setlength\oddsidemargin {.4\@tempdima}
66  \addtolength\oddsidemargin  {-1in}

The width of the margin for text is set to the remainder of the width except for a ‘real margin’ of white space of width 0.4in. A check should perhaps be built in to ensure that the (text) margin width does not get too small!

67  \global\setlength\marginparwidth   {.6\@tempdima}
68  \global\addtolength\marginparwidth {-\marginparsep}
69  \global\addtolength\marginparwidth {-0.4in}

For one-sided printing we center the text on the page, by calculating the difference between \textwidth and \paperwidth. Half of that difference is than used for the margin (thus \oddsidemargin is 1in less).

70  \else
71  \setlength\@tempdima        {\paperwidth}
72  \addtolength\@tempdima      {-\textwidth}
73  \global\setlength\oddsidemargin    {.5\@tempdima}
74  \global\addtolength\oddsidemargin  {-1in}
75  \global\setlength\marginparwidth   {.5\@tempdima}
76  \global\addtolength\marginparwidth {-\marginparsep}
77  \global\addtolength\marginparwidth {-0.4in}
78  \global\addtolength\marginparwidth {-.4in}
79  \fi

With the above algorithm the \marginparwidth can come out quite large which we may not want.

80  \ifdim \marginparwidth >2in
81  \global\setlength\marginparwidth{2in}
82  \fi

Having done these calculations we make them pt values.

83  \global\@settopoint\oddsidemargin
84  \global\@settopoint\marginparwidth

The \evensidemargin can now be computed from the values set above.

85  \global\setlength\oldevensidemargin{\evensidemargin}

86

87  \global\setlength\evensidemargin  {\paperwidth}
88  \global\addtolength\evensidemargin{-2in}
89  \global\addtolength\evensidemargin{-\textwidth}
90  \global\addtolength\evensidemargin{-\oddsidemargin}

91

Setting \evensidemargin to a full point value may produce a small error. However it will lie within the error range a doublesided printer of today’s technology can accurately print.

92  \global\@settopoint\evensidemargin

Now we change the number of columns because this command uses the lengths to format stuff.

93  \onecolumn
94 \else
95  \@restonecolfalse
96 \fi

97 }

98 \providecommand*{\@endonecolumn}{
99 \if@restonecol
100  \global\setlength\textwidth{\oldtextwidth}
101  \global\setlength\linewidth{\oldlinewidth}
102  \global\setlength\parindent{\oldparindent}
103  \global\setlength\marginparsep{\oldmarginparsep}
104  \global\setlength\marginparwidth{\oldmarginparwidth}
105  \global\setlength\oddsidemargin{\oldoddsidemargin}
106  \global\setlength\evensidemargin{\oldevensidemargin}
107  \twocolumn
108 \fi}

\if@openright A switch to indicate if chapters must start on a right-hand page. The default for the report class is no; for the book class it’s yes.

109 \newif\if@openright

\if@mainmatter The switch \if@mainmatter, only available in the document class book, indicates whether we are processing the main material in the book.

110 \newif\if@mainmatter \@mainmattertrue

20 Document Markup Functions

These are defined here because some of the commands are used by the options.

20.1 The title

\title \author \date These three macros are provided by latex.dtx to provide information about the title, author(s) and date of the document. The information is stored away in internal control sequences. It is the task of the \maketitle command to use the information provided. The definitions of these macros are shown here for information.

111 % \newcommand*{\title}[1]{\gdef\@title{#1}}
112 % \newcommand*{\author}[1]{\gdef\@author{#1}}
113 % \newcommand*{\date}[1]{\gdef\@date{#1}}

The \date macro gets today’s date by default.

114 % \date{\today}

\subtitle This macro also has an associated boolean which tells the titlepage whether or not it should attempt to display a subtitle.

115 \newif\if@subtitle \@subtitlefalse
116 \newcommand*{\subtitle}[1]{\@subtitletrue \gdef\@subtitle{#1}}

\institution \institutionaddress \degreetitle \department \faculty These commands are added for theses. They are used on the title page.
117 \newcommand*{\institution}[1]{\gdef\@institution{#1}}
118 \def\@institution{\@latex@warning@no@line{No \noexpand\institution\ given}}
119 \newcommand*{\institutionaddress}[1]{\gdef\@institutionaddress{#1}}
120 \def\@institutionaddress{\@latex@warning@no@line{No
121  \noexpand\institutionaddress\ given}}
122 \newcommand*{\degreetitle}[1]{\gdef\@degreetitle{#1}}
123 \def\@degreetitle{\@latex@warning@no@line{No \noexpand\degreetitle\ given}}
124 \newcommand*{\department}[1]{\gdef\@department{#1}}
125 \def\@department{\@latex@warning@no@line{No \noexpand\department\ given}}
126 \newcommand*{\faculty}[1]{\gdef\@faculty{#1}}
127 \def\@faculty{\@latex@warning@no@line{No \noexpand\faculty\ given}}

Some of these get default values here:

128 \institution{The University of British Columbia}
129 \institutionaddress{Vancouver, Canada}
130 \department{Department of Physics and Astronomy}
131 \faculty{The Faculty of Graduate Studies}

\numberofsignatures This is the number of signature lines to put on the cover.

132 \newcommand*{\numberofsignatures}[1]{\gdef\@numberofsignatures{#1}}
133 \numberofsignatures{4}

\@copyrightyear \@submitdate These are dates. By default, these are set to the date of compilation.

134 \newcommand*{\copyrightyear}[1]{\gdef\@copyrightyear{#1}}
135 \newcommand*{\submitdate}[1]{\gdef\@submitdate{#1}}
136 \copyrightyear{\number\year}
137 \submitdate{\today}

\previousdegree This may be issued more than once. Each degree is added to the buffer. The buffer starts empty.

138 \newcommand\@previousdegrees{}

To add a new line we must use the \expandafter TEX command. This causes the commands to be expanded pairwise—hence why we need several of them—from right to left rather than from left to right. The last \expandafter acts on the following command. Note that we add the newline at the end to prevent too much space from occuring at between the author and the previous degrees in the case of a full titlepage.

139 \newcommand*\previousdegree[1]{
140 \expandafter\gdef\expandafter\@previousdegrees\expandafter
141 {\@previousdegrees{#1}\\}}

20.2 Fonts

These options provide access to the various fonts for chapter titles etc. First we must define the font variables. The two fonts \titlepagefont and \titlefont are used as defaults, though options may changes these.

\titlepagefont \titlefont \subtitlefont \authorfont \degreetitlefont \facultyfont \institutionfont These fonts are used on the title page.
142 \newcommand\titlepagefont{\normalsize}
143 \newcommand\titlefont{}
144 \newcommand\subtitlefont{\titlefont}
145 \newcommand\authorfont{\titlepagefont}
146 \newcommand\degreetitlefont{\titlepagefont}
147 \newcommand\facultyfont{\titlepagefont}
148 \newcommand\institutionfont{\titlepagefont}
149 \newcommand\abstractfont{}
150 \newcommand\partfont{}
151 \newcommand\partnamefont{}
152 \newcommand\chapterfont{}
153 \newcommand\chaptertitlefont{}
154 \newcommand\chapterauthorfont{}
155 \newcommand\sectionfont{}
156 \newcommand\subsectionfont{}
157 \newcommand\subsubsectionfont{}
158 \newcommand\paragraphfont{}
159 \newcommand\subparagraphfont{}
160 \newcommand\translatorfont{}
161 \newcommand\theoremheaderfont{}
162 \newcommand\theorembodyfont{}
163 \newcommand\itemfont{}
164 \newcommand\examplefont{}
165 \newcommand\headingstextfont{}
166 \newcommand\pagenumberfont{}
167 \newcommand\captionheaderfont{}
168 \newcommand\captionbodyfont{}
169 \newcommand\figurefont{}
170 \newcommand\tablefont{}
171 \newcommand\indexsize{}
172 \newcommand\bibsize{}

20.3 Spacing

These options are the various spacings used in Section headings etc.

\partbetweenskip This length allows for one to adjust the space between the part heading and the part title

\chapterbeforeskip \chapterbetweenskip \chapterafterskip These lengths allow for one to adjust the space before the chapter headings, between the chapter heading and chapter titles and after the chapter titles.

\sectionindent
\sectionbeforeskip
\sectionafterskip
\subsectionindent
\subsectionbeforeskip
\subsectionafterskip
\subsubsectionindent
\subsubsectionbeforeskip
\subsubsectionafterskip
\paragraphindent
\paragraphbeforeskip
\paragraphafterskip
\subparagraphindent
\subparagraphbeforeskip
\subparagraphafterskip

173 \newlength{\partbetweenskip}
174 \newlength{\chapterbeforeskip}
175 \newlength{\chapterbetweenskip}
176 \newlength{\chapterafterskip}
177 \newlength{\sectionindent}
178 \newlength{\sectionbeforeskip}
179 \newlength{\sectionafterskip}
180 \newlength{\subsectionindent}
181 \newlength{\subsectionbeforeskip}
182 \newlength{\subsectionafterskip}
183 \newlength{\subsubsectionindent}
184 \newlength{\subsubsectionbeforeskip}
185 \newlength{\subsubsectionafterskip}
186 \newlength{\paragraphindent}
187 \newlength{\paragraphbeforeskip}
188 \newlength{\paragraphafterskip}
189 \newlength{\subparagraphindent}
190 \newlength{\subparagraphbeforeskip}
191 \newlength{\subparagraphafterskip}

\lofindent \lotindent These lengths specify how much to indent the list of figures and list of tables.

192 \newcommand{\lofindent}{1.5em}
193 \newcommand{\lotindent}{1.5em}

\loflabelwidth \lotlabelwidth These lengths specify how much space to leave for figure an table labels in the list of figures an list of tables.

194 \newcommand{\loflabelwidth}{2.3em}
195 \newcommand{\lotlabelwidth}{2.3em}

21 Declaration of Options

21.1 Setting Paper Sizes

a4paper a5paper b5paper letterpaper legalpaper executivepaper The variables \paperwidth and \paperheight should reflect the physical paper

size after trimming. For desk printer output this is usually the real paper size since there is no post-processing. Classes for real book production will probably add other paper sizes and additionally the production of crop marks for trimming.

196 \DeclareOption{a4paper}
197 {\setlength\paperheight {297mm}%
198  \setlength\paperwidth  {210mm}}
199 \DeclareOption{a5paper}
200 {\setlength\paperheight {210mm}%
201  \setlength\paperwidth  {148mm}}

202 \DeclareOption{b5paper}
203 {\setlength\paperheight {250mm}%
204  \setlength\paperwidth  {176mm}}
205 \DeclareOption{letterpaper}
206 {\setlength\paperheight {11in}%
207  \setlength\paperwidth  {8.5in}}
208 \DeclareOption{legalpaper}
209 {\setlength\paperheight {14in}%
210  \setlength\paperwidth  {8.5in}}
211 \DeclareOption{executivepaper}
212 {\setlength\paperheight {10.5in}%
213  \setlength\paperwidth  {7.25in}}

landscape The option landscape switches the values of \paperheight and \paperwidth, assuming the dimensions were given for portrait paper.

214 \DeclareOption{landscape}
215 {\setlength\@tempdima   {\paperheight}%
216  \setlength\paperheight {\paperwidth}%
217  \setlength\paperwidth  {\@tempdima}}

21.2 Choosing the type size

10pt 11pt 12pt The type size options are handled by defining \@ptsize to contain the last digit of the size in question and branching on \ifcase statements. This is done for historical reasons to stay compatible with other packages that use the \@ptsize variable to select special actions. It makes the declarations of size options less than 10pt difficult, although one can probably use 9 and 8 assuming that a class wont define both 8pt and 18pt options.

218 \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
219 \DeclareOption{11pt}{\renewcommand\@ptsize{1}}
220 \DeclareOption{12pt}{\renewcommand\@ptsize{2}}

21.3 Two-side or one-side printing

oneside twoside For two-sided printing we use the switch \if@twoside. In addition we have to set

the \if@mparswitch to get any margin paragraphs into the outside margin.

Note that the user must specify when printing that the printer print double sided: there is no information in the file which indicates this. This option only ensures that the margins will line up properly.

221 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
222 \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}

21.4 Draft and committee options

final draft If the user requests draft we show any overfull boxes. We could probably add some more interesting stuff to this option.

223 \newif\if@final \@finaltrue
224 \DeclareOption{draft}{\setlength\overfullrule{5pt}\@finalfalse \SetTime}
225 \DeclareOption{final}{\setlength\overfullrule{0pt}\@finaltrue}

committee Use this option when producing the version to send to your thesis committee if they want the document with 1.5 spacing so there is some room for comments between the lines. You may change the spacing by redefining the \committeespacing command.

226 \newif\if@committee \@committeefalse
227 \DeclareOption{committee}{\@committeetrue}

21.5 openright option

openright openany This option determines whether o not a chapter must start on a right-hand page request one.

228 \DeclareOption{openright}{\@openrighttrue}
229 \DeclareOption{openany}{\@openrightfalse}

21.6 Two-column printing

onecolumn twocolumn Two-column and one-column printing is again realized via a switch. Remember that you must also tell the printer to print on both sides though!

230 \DeclareOption{onecolumn}{\@twocolumnfalse}
231 \DeclareOption{twocolumn}{\@twocolumntrue}

21.7 Running headers

runningheaders norunningheaders These display or suppress running headers that contain the current chapter name and number. If they are suppressed, only the pagenumber will be displayed.

232 \newif\if@runningheaders \@runningheaderstrue
233 \DeclareOption{runningheaders}{\@runningheaderstrue}
234 \DeclareOption{norunningheaders}{\@runningheadersfalse}

centerheadline nocenterheadline These control the centering of the running headers.

235 \newif\if@centerheadline \@centerheadlinetrue
236 \DeclareOption{centerheadline}{\@centerheadlinetrue}
237 \DeclareOption{nocenterheadline}{\@centerheadlinefalse}

headline noheadline These control the display of a horizontal line below the running headers at the top of the page.

238 \newif\if@headline \@headlinetrue
239 \DeclareOption{headline}{\@headlinetrue}
240 \DeclareOption{noheadline}{\@headlinefalse}

21.8 Equation numbering on the left

The option leqno can be used to get the equation numbers on the left side of the equation. It loads code which is generated automatically from the kernel files when the format is built. If the equation number does get a special formatting then instead of using the kernel file the class would need to provide the code explicitly.

leqno
241 \DeclareOption{leqno}{\input{leqno.clo}}

21.9 Flush left displays

The option fleqn redefines the displayed math environments in such a way that they come out flush left, with an indentation of \mathindent from the prevailing left margin. It loads code which is generated automatically from the kernel files when the format is built.

fleqn
242 \DeclareOption{fleqn}{\input{fleqn.clo}}

21.10 Title page

uppertitle/nouppertitle uppersubtitle/nouppersubtitle upperauthor/noupperauthor upperdegreetitle/noupperdegreetitle upperfaculty/noupperfaculty upperdepartment/noupperdepartment upperinstitution/noupperinstitution These options affect the display of the titlepage.
243 \newif\if@uppertitle \@uppertitlefalse
244 \DeclareOption{uppertitle}{\@uppertitletrue\@uppersubtitletrue}
245 \DeclareOption{nouppertitle}{\@uppertitlefalse\@uppersubtitlefalse}
246 \newif\if@uppersubtitle \@uppersubtitlefalse
247 \DeclareOption{uppersubtitle}{\@uppersubtitletrue}
248 \DeclareOption{nouppersubtitle}{\@uppersubtitlefalse}
249 \newif\if@upperauthor \@upperauthorfalse
250 \DeclareOption{upperauthor}{\@upperauthortrue}
251 \DeclareOption{noupperauthor}{\@upperauthorfalse}
252 \newif\if@upperdegreetitle \@upperdegreetitletrue
253 \DeclareOption{upperdegreetitle}{\@upperdegreetitletrue}
254 \DeclareOption{noupperdegreetitle}{\@upperdegreetitlefalse}
255 \newif\if@upperfaculty \@upperfacultyfalse
256 \DeclareOption{upperfaculty}{\@upperfacultytrue}
257 \DeclareOption{noupperfaculty}{\@upperfacultyfalse}
258 \newif\if@upperdepartment \@upperdepartmentfalse
259 \DeclareOption{upperdepartment}{\@upperdepartmenttrue}
260 \DeclareOption{noupperdepartment}{\@upperdepartmentfalse}
261 \newif\if@upperinstitution \@upperinstitutiontrue
262 \DeclareOption{upperinstitution}{\@upperinstitutiontrue}
263 \DeclareOption{noupperinstitution}{\@upperinstitutionfalse}

phd msc masc ma meng These options changes the title of the degree according to the type of degree. The \degreetitle command can be used to override this.

264 \DeclareOption{phd}{
265 \degreetitle{Doctor of Philosophy}
266 \numberofsignatures{4}

267 }

268 \DeclareOption{msc}{
269 \degreetitle{Master of Science}
270 \numberofsignatures{2}

271 }

272 \DeclareOption{masc}{
273 \degreetitle{Master of Applied Science}
274 \numberofsignatures{2}

275 }

276 \DeclareOption{ma}{
277 \degreetitle{Master of Arts}
278 \numberofsignatures{2}

280 \DeclareOption{meng}{
281 \degreetitle{Master of Engineering}%
282 \numberofsignatures{2}

283 }

logo nologo These options control the display of an institution logo on the titlepage. You must define the graphic to be used by using the \insitutionlogo command.

284 \newif\iflogo\logofalse
285 \DeclareOption{logo}{\logotrue}
286 \DeclareOption{nologo}{\logofalse}

21.11 Headings

chapterheads nochapterheads These determine if the section headings are uppercase and if chapter headings should be displayed before the chapter title.

287 \newif\if@chapterheads \@chapterheadstrue
288 \DeclareOption{chapterheads}{\@chapterheadstrue}
289 \DeclareOption{nochapterheads}{\@chapterheadsfalse}
290 \newif\if@headcount \@headcounttrue

partheads nopartheads These determine if the section headings are uppercase and if part headings should be displayed before the part title.

291 \newif\if@partheads \@partheadstrue
292 \DeclareOption{partheads}{\@partheadstrue}
293 \DeclareOption{nopartheads}{\@partheadsfalse}
294 \newif\if@headcount \@headcounttrue

headcount noheadcount These options determine if the numbers should be displayed in the chapter and part headings.

295 \DeclareOption{headcount}{\@headcounttrue}
296 \DeclareOption{noheadcount}{\@headcountfalse}

upper noupper These options determine if the headings (part, chapter, sections etc.) should be converted to uppercase. This option is good if the font size of the headings is not much larger than the body text.

297 \newif\if@upper \@upperfalse
298 \DeclareOption{upper}{\@uppertrue}
299 \DeclareOption{noupper}{\@upperfalse}

tocupper notocupper These options determine if the table of contents should be converted to uppercase.

300 \newif\if@tocupper \@tocupperfalse
301 \DeclareOption{tocupper}{\@tocuppertrue}
302 \DeclareOption{notocupper}{\@tocupperfalse}

leftheads centerheads rightheads These options affect the display of several things including the part pages and headers. This uses the variable \@headingalignment.

\@headingalignment
303 \newcommand\@headingalignment{\raggedright}
304 \DeclareOption{leftheads}{\renewcommand\@headingalignment{\raggedleft}}
305 \DeclareOption{centerheads}{\renewcommand\@headingalignment{\centering}}
306 \DeclareOption{rightheads}{\renewcommand\@headingalignment{\raggedright}}

21.12 Figures and Tables

hangingcaptions nohangingcaptions These options determine whether or not figure and table captions should “hang”. Hanging captions are justified so that all the caption text comes after the caption label.

307 \newif\if@hangingcaptions \@hangingcaptionstrue
308 \DeclareOption{hangingcaptions}{\@hangingcaptionstrue}
309 \DeclareOption{nohangingcaptions}{\@hangingcaptionsfalse}

21.13 Appendix

appendixpart noappendixpart These options affect whether or not the Appendices are a separate “part” or just chapters.

310 \newif\if@appendixpart \@appendixpartfalse
311 \DeclareOption{appendixpart}{\@appendixparttrue}
312 \DeclareOption{noappendixpart}{\@appendixpartfalse}

appendixpage noappendixpage These decide if the appendices should have a separate page if they are actually chapters. If appendixpart is chosen then these have no effect.

313 \newif\if@appendixpage \@appendixpagetrue
314 \DeclareOption{appendixpage}{\@appendixpagetrue}
315 \DeclareOption{noappendixpage}{\@appendixpagefalse}

21.14 Open bibliography

openbib The option openbib produces the “open” bibliography style, in which each block starts on a new line, and succeeding lines in a block are indented by \bibindent.

316 \DeclareOption{openbib}{%

First some hook into the bibliography environment is filled.

317 \AtEndOfPackage{%
318 \renewcommand\@openbib@code{%
319  \advance\leftmargin\bibindent
320  \itemindent -\bibindent
321  \listparindent \itemindent
322  \parsep \z@

323 }%

In addition the definition of \newblock is overwritten.

324 \renewcommand\newblock{\par}}%

325 }

21.15 Crosshairs on empty pages.

crosshair nocrosshair These toggle between crosshair and nocrosshair modes. The crosshair mode puts a large X on empty pages. (Pages with pagestyle empty).

326 \newif\if@crosshair \@crosshairtrue
327 \DeclareOption{crosshair}{\@crosshairfalse}
328 \DeclareOption{crosshair}{\@crosshairtrue}

21.16 Font Options

These are different options for document fonts and spacings in the section headings etc.

defaultfonts
329 \DeclareOption{defaultfonts}{
330  \renewcommand\titlepagefont{\normalsize}
331  \renewcommand\titlefont{\Large}
332  \renewcommand\subtitlefont{\large}
333  \renewcommand\institutionfont{\slshape}
334  \renewcommand\abstractfont{\large\slshape}
335  \renewcommand\partfont{\huge \bfseries}
336  \renewcommand\partnamefont{\Huge \bfseries}
337  \renewcommand\chapterfont{\huge\bfseries}
338  \renewcommand\chaptertitlefont{\Huge\bfseries}
339  \renewcommand\chapterauthorfont{\large}
340  \renewcommand\sectionfont{\Large\bfseries}
341  \renewcommand\subsectionfont{\large\bfseries}
342  \renewcommand\subsubsectionfont{\normalsize\bfseries}
343  \renewcommand\paragraphfont{\normalsize\bfseries}
344  \renewcommand\subparagraphfont{\normalsize\bfseries}
345  \renewcommand\translatorfont{}
346  \renewcommand\theoremheaderfont{\upshape}
347  \renewcommand\theorembodyfont{}
348  \renewcommand\itemfont{\slshape}
349  \renewcommand\examplefont{}
350  \renewcommand\headingstextfont{\slshape}
351  \renewcommand\pagenumberfont{}
352  \renewcommand\captionheaderfont{}
353  \renewcommand\captionbodyfont{}
354  \renewcommand\figurefont{}
355  \renewcommand\tablefont{}
356  \setlength{\partbetweenskip}{20pt}
357  \setlength{\chapterbeforeskip}{30pt}
358  \setlength{\chapterbetweenskip}{20pt}
359  \setlength{\chapterafterskip}{30pt}
360  \renewcommand\sectionindent{\z@}
361  \renewcommand\sectionbeforeskip{-3.5ex \@plus -1ex \@minus -.2ex}
362  \renewcommand\sectionafterskip{2.3ex \@plus.2ex}
363  \renewcommand\subsectionindent{\z@}
364  \renewcommand\subsectionbeforeskip{-3.25ex \@plus -1ex \@minus -.2ex}
365  \renewcommand\subsectionafterskip{1.5ex \@plus.2ex}
366  \renewcommand\subsubsectionindent{\z@}
367  \renewcommand\subsubsectionbeforeskip{-3.25ex\@plus -1ex \@minus -.2ex}
368  \renewcommand\subsubsectionafterskip{1.5ex \@plus .2ex}
369  \renewcommand\paragraphindent{\z@}
370  \renewcommand\paragraphbeforeskip{3.25ex \@plus1ex \@minus.2ex}
371  \renewcommand\paragraphafterskip{-1em}
372  \renewcommand\subparagraphindent{\parindent}
373  \renewcommand\subparagraphbeforeskip{3.25ex \@plus1ex \@minus .2ex}
374  \renewcommand\subparagraphafterskip{-1em}

375 }

slanted
376 \DeclareOption{slanted}{
377  \renewcommand\titlefont{\LARGE}
378  \renewcommand\abstractfont{\large\slshape}
379  \renewcommand\subtitlefont{\large}
380  \renewcommand\authorfont{}
381  \renewcommand\degreetitlefont{\large}
382  \renewcommand\partfont{\Large}
383  \renewcommand\chapterfont{\large}
384  \renewcommand\chaptertitlefont{\large}
385  \renewcommand\chapterauthorfont{\large}
386  \renewcommand\sectionfont{\large\slshape}
387  \renewcommand\subsectionfont{\slshape}
388  \renewcommand\subsubsectionfont{\slshape}
389  \renewcommand\paragraphfont{\slshape}
390  \renewcommand\subparagraphfont{\slshape}
391  \renewcommand\institutionfont{\slshape}
392  \renewcommand\translatorfont{}
393  \renewcommand\theoremheaderfont{\upshape}
394  \renewcommand\theorembodyfont{}
395  \renewcommand\itemfont{\slshape}
396  \renewcommand\examplefont{}
397  \renewcommand\headingstextfont{\small\slshape}
398  \renewcommand\pagenumberfont{\small}
399  \renewcommand\captionheaderfont{\slshape\small}
400  \renewcommand\captionbodyfont{\small}
401  \renewcommand\figurefont{}
402  \renewcommand\tablefont{}
403  \setlength{\partbetweenskip}{20pt}
404  \setlength{\chapterbeforeskip}{30pt}
405  \setlength{\chapterbetweenskip}{20pt}
406  \setlength{\chapterafterskip}{30pt}
407  \renewcommand\sectionindent{\z@}
408  \renewcommand\sectionbeforeskip{-3.5ex \@plus -1ex \@minus -.2ex}
409  \renewcommand\sectionafterskip{2.3ex \@plus.2ex}
410  \renewcommand\subsectionindent{\z@}
411  \renewcommand\subsectionbeforeskip{-3.25ex \@plus -1ex \@minus -.2ex}
412  \renewcommand\subsectionafterskip{1.5ex \@plus.2ex}
413  \renewcommand\subsubsectionindent{\z@}
414  \renewcommand\subsubsectionbeforeskip{-3.25ex\@plus -1ex \@minus -.2ex}
415  \renewcommand\subsubsectionafterskip{1.5ex \@plus .2ex}
416  \renewcommand\paragraphindent{\z@}
417  \renewcommand\paragraphbeforeskip{3.25ex \@plus1ex \@minus.2ex}
418  \renewcommand\paragraphafterskip{-1em}
419  \renewcommand\subparagraphindent{\parindent}
420  \renewcommand\subparagraphbeforeskip{3.25ex \@plus1ex \@minus .2ex}
421  \renewcommand\subparagraphafterskip{-1em}

422 }

bold
423 \DeclareOption{bold}{%
424  \renewcommand\titlefont{\LARGE\bfseries}
425  \renewcommand\subtitlefont{\large\bfseries}
426  \renewcommand\abstractfont{\Large\bfseries}

427  \renewcommand\authorfont{}
428  \renewcommand\degreetitlefont{\large\bfseries}
429  \renewcommand\partfont{\LARGE\bfseries}
430  \renewcommand\chapterfont{\LARGE\bfseries}
431  \renewcommand\chaptertitlefont{\LARGE\bfseries}
432  \renewcommand\chapterauthorfont{\large}
433  \renewcommand\sectionfont{\Large\bfseries}
434  \renewcommand\subsectionfont{\large\bfseries}
435  \renewcommand\subsubsectionfont{\bfseries}
436  \renewcommand\paragraphfont{\bfseries}
437  \renewcommand\subparagraphfont{\bfseries}
438  \renewcommand\translatorfont{}
439  \renewcommand\institutionfont{\slshape}
440  \renewcommand\theoremheaderfont{\bfseries}
441  \renewcommand\theorembodyfont{\itshape}
442  \renewcommand\itemfont{\bfseries}
443  \renewcommand\examplefont{}
444  \renewcommand\headingstextfont{\small\bfseries}
445  \renewcommand\pagenumberfont{\small}
446  \renewcommand\captionheaderfont{\bfseries}
447  \renewcommand\captionbodyfont{}
448  \renewcommand\figurefont{}
449  \renewcommand\tablefont{}
450  \setlength{\partbetweenskip}{20pt}
451  \setlength{\chapterbeforeskip}{30pt}
452  \setlength{\chapterbetweenskip}{20pt}
453  \setlength{\chapterafterskip}{30pt}
454  \renewcommand\sectionindent{\z@}
455  \renewcommand\sectionbeforeskip{-3.5ex \@plus -1ex \@minus -.2ex}
456  \renewcommand\sectionafterskip{2.3ex \@plus.2ex}
457  \renewcommand\subsectionindent{\z@}
458  \renewcommand\subsectionbeforeskip{-3.25ex \@plus -1ex \@minus -.2ex}
459  \renewcommand\subsectionafterskip{1.5ex \@plus.2ex}
460  \renewcommand\subsubsectionindent{\z@}
461  \renewcommand\subsubsectionbeforeskip{-3.25ex\@plus -1ex \@minus -.2ex}
462  \renewcommand\subsubsectionafterskip{1.5ex \@plus .2ex}
463  \renewcommand\paragraphindent{\z@}
464  \renewcommand\paragraphbeforeskip{3.25ex \@plus1ex \@minus.2ex}
465  \renewcommand\paragraphafterskip{-1em}
466  \renewcommand\subparagraphindent{\parindent}
467  \renewcommand\subparagraphbeforeskip{3.25ex \@plus1ex \@minus .2ex}
468  \renewcommand\subparagraphafterskip{-1em}

469 }

sfbold
470 \DeclareOption{sfbold}{%
471  \renewcommand\titlefont{\LARGE\sffamily\bfseries}
472  \renewcommand\abstractfont{\large\sffamily\bfseries}
473  \renewcommand\subtitlefont{\large\sffamily}
474  \renewcommand\authorfont{\Large\sffamily\slshape}
475  \renewcommand\degreetitlefont{\large\sffamily}
476  \renewcommand\partfont{\LARGE\sffamily\bfseries}
477  \renewcommand\chapterfont{\LARGE\sffamily\bfseries}
478  \renewcommand\chaptertitlefont{\LARGE\sffamily\bfseries}

479  \renewcommand\chapterauthorfont{\Large\sffamily\bfseries}
480  \renewcommand\sectionfont{\large\sffamily\bfseries}
481  \renewcommand\subsectionfont{\large\sffamily\bfseries}
482  \renewcommand\subsubsectionfont{\sffamily\bfseries}
483  \renewcommand\paragraphfont{\sffamily\bfseries}
484  \renewcommand\subparagraphfont{\sffamily}
485  \renewcommand\translatorfont{}
486  \renewcommand\institutionfont{\sffamily}
487  \renewcommand\theoremheaderfont{\sffamily}
488  \renewcommand\theorembodyfont{}
489  \renewcommand\itemfont{\sffamily}
490  \renewcommand\examplefont{}
491  \renewcommand\headingstextfont{\small\sffamily}
492  \renewcommand\pagenumberfont{\small\rmfamily}
493  \renewcommand\captionheaderfont{\sffamily}
494  \renewcommand\captionbodyfont{}
495  \renewcommand\figurefont{}
496  \renewcommand\tablefont{}
497  \setlength{\partbetweenskip}{20pt}
498  \setlength{\chapterbeforeskip}{30pt}
499  \setlength{\chapterbetweenskip}{20pt}
500  \setlength{\chapterafterskip}{30pt}
501  \renewcommand\sectionindent{\z@}
502  \renewcommand\sectionbeforeskip{-3.5ex \@plus -1ex \@minus -.2ex}
503  \renewcommand\sectionafterskip{2.3ex \@plus.2ex}
504  \renewcommand\subsectionindent{\z@}
505  \renewcommand\subsectionbeforeskip{-3.25ex \@plus -1ex \@minus -.2ex}
506  \renewcommand\subsectionafterskip{1.5ex \@plus.2ex}
507  \renewcommand\subsubsectionindent{\z@}
508  \renewcommand\subsubsectionbeforeskip{-3.25ex\@plus -1ex \@minus -.2ex}
509  \renewcommand\subsubsectionafterskip{1.5ex \@plus .2ex}
510  \renewcommand\paragraphindent{\z@}
511  \renewcommand\paragraphbeforeskip{3.25ex \@plus1ex \@minus.2ex}
512  \renewcommand\paragraphafterskip{-1em}
513  \renewcommand\subparagraphindent{\parindent}
514  \renewcommand\subparagraphbeforeskip{3.25ex \@plus1ex \@minus .2ex}
515  \renewcommand\subparagraphafterskip{-1em}

516 }

22 Executing Options

Here we execute the default options to initialize certain variables. Note that we need the percent signs to break the lines.

517 \ExecuteOptions{%
518 letterpaper,%
519 10pt,%
520 twoside,%
521 onecolumn,%
522 final,%
523 openright,%
524 noupper,%
525 defaultfonts,%
526 nologo}

The \ProcessOptions command causes the execution of the code for every option FOO which is declared and for which the user typed the FOO option in his \documentclass command. For every option BAR he typed, which is not declared, the option is assumed to be a global option. All options will be passed as document options to any \usepackage command in the document preamble.

527 \ProcessOptions

Now that all the options have been executed we can load the chosen class option file that contains all size dependent code.

528 \input{bk1\@ptsize.clo}

23 Loading Packages

If a logo is to be displayed on the titlepage, then the graphics package must be loaded

529 \iflogo\RequirePackage{graphics}\fi

24 Document Layout

In this section we are finally dealing with the nasty typographical details.

24.1 Paragraphing

\lineskip \normallineskip These parameters control TEX’s behaviour when two lines tend to come too close together.

530 \setlength\lineskip{1\p@}
531 \setlength\normallineskip{1\p@}

\baselinestretch This is used as a multiplier for \baselineskip. The default is to not stretch the baselines. Note that if this command doesn’t resolve to “empty” any plus or minus part in the specification of \baselineskip is ignored.

532 \renewcommand\baselinestretch{}

\parskip \parindent \parskip gives extra vertical space between paragraphs and \parindent is the width of the paragraph indentation. The value of \parindent depends on whether we are in two column mode.

533 \setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty \@medpenalty \@highpenalty The commands \nopagebreak and \nolinebreak put in penalties to discourage

these breaks at the point they are put in. They use \@lowpenalty, \@medpenalty or \@highpenalty, dependent on their argument.

534 \@lowpenalty   51
535 \@medpenalty  151
536 \@highpenalty 301

\clubpenalty \widowpenalty These penalties are use to discourage club and widow lines. Because we use their default values we only show them here, commented out.

537 % \clubpenalty  150
538 % \widowpenalty 150

\displaywidowpenalty \predisplaypenalty \postdisplaypenalty Discourage (but not so much) widows in front of a math display and forbid breaking directly in front of a display. Allow break after a display without a penalty. Again the default values are used, therefore we only show them here.

539 % \displaywidowpenalty 50
540 % \predisplaypenalty   10000
541 % \postdisplaypenalty  0

\interlinepenalty Allow the breaking of a page in the middle of a paragraph.

542 % \interlinepenalty 0

\brokenpenalty We allow the breaking of a page after a hyphenated line.

543 % \brokenpenalty 100

24.2 Page Layout

All margin dimensions are measured from a point one inch from the top and lefthand side of the page.

24.2.1 Float placement parameters

All float parameters are given default values in the L^{A}TEX 2ε kernel. For this reason parameters that are not counters need to be set with \renewcommand.

Limits for the placement of floating objects

\c@topnumber The topnumber counter holds the maximum number of floats that can appear on the top of a text page.

544 \setcounter{topnumber}{2}

\topfraction This indicates the maximum part of a text page that can be occupied by floats at the top.

545 \renewcommand\topfraction{.7}

\c@bottomnumber The bottomnumber counter holds the maximum number of floats that can appear on the bottom of a text page.

546 \setcounter{bottomnumber}{1}

\bottomfraction This indicates the maximum part of a text page that can be occupied by floats at the bottom.

547 \renewcommand\bottomfraction{.3}

\c@totalnumber This indicates the maximum number of floats that can appear on any text page.

548 \setcounter{totalnumber}{3}

\textfraction This indicates the minimum part of a text page that has to be occupied by text.

549 \renewcommand\textfraction{.2}

\floatpagefraction This indicates the minimum part of a page that has to be occupied by floating objects before a ‘float page’ is produced.

550 \renewcommand\floatpagefraction{.5}

\c@dbltopnumber The dbltopnumber counter holds the maximum number of two column floats that can appear on the top of a two column text page.

551 \setcounter{dbltopnumber}{2}

\dbltopfraction This indicates the maximum part of a two column text page that can be occupied by two column floats at the top.

552 \renewcommand\dbltopfraction{.7}

\dblfloatpagefraction This indicates the minimum part of a page that has to be occupied by two column wide floating objects before a ‘float page’ is produced.

553 \renewcommand\dblfloatpagefraction{.5}

24.3 Page Styles

The page style foo is defined by defining the command \ps@foo. This command should make only local definitions. There should be no stray spaces in the definition, since they could lead to mysterious extra spaces in the output (well, that’s something that should be always avoided).

\@evenhead \@oddhead \@evenfoot \@oddfoot The \ps@... command defines the macros \@oddhead, \@oddfoot, \@evenhead,

and \@evenfoot to define the running heads and feet—e.g., \@oddhead is the macro to produce the contents of the heading box for odd-numbered pages. It is called inside an \hbox of width \textwidth.

24.3.1 Marking conventions

To make headings determined by the sectioning commands, the page style defines

the commands \chaptermark, \sectionmark, . . . ,

where \chaptermark{⟨TEXT ⟩} is called by \chapter to set a mark, and so on.

The \...mark commands and the \...head macros are defined with the help of the following macros. (All the \...mark commands should be initialized to no-ops.)

L^{A}TEX extends TEX’s \mark facility by producing two kinds of marks, a ‘left’ and a ‘right’ mark, using the following commands:

\markboth{⟨LEFT ⟩}{⟨RIGHT ⟩}: Adds both marks. \markright{⟨RIGHT ⟩}: Adds a ‘right’ mark.

\leftmark: Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot

macros, it gets the current ‘left’ mark. \leftmark works like TEX’s \botmark command.

\rightmark: Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot

macros, it gets the current ‘right’ mark. \rightmark works like TEX’s

\firstmark command.

The marking commands work reasonably well for right marks ‘numbered within’ left marks—e.g., the left mark is changed by a \chapter command and the right mark is changed by a \section command. However, it does produce somewhat anomalous results if two \markboth’s occur on the same page.

Commands like \tableofcontents that should set the marks in some page styles use a \@mkboth command, which is \let by the pagestyle command (\ps@...) to \markboth for setting the heading or to \@gobbletwo to do nothing.

24.3.2 Defining the page styles

The pagestyles empty and plain are defined in latex.dtx.

\headlinespace This is the separation between the running header text and the line under it if the headline option is used.

554 \newlength{\headlinespace}
555 \setlength{\headlinespace}{5pt}

\e@skip This is I am not exactly sure what this does, but it somehow corrects for the centering of the headings. I found this construct in the thesis class and I use it here though I am not sure how it works. We need the extra parens to prevent the font from leaking out.

556 \newcommand{\e@skip}{{\headingstextfont \phantom{y}}}

\ps@plain The definition of the page style plain has to be different for two sided printing than it is for one sided printing. All it displays is the page number: no headline and no marks.

557 \if@twoside
558 \def\ps@plain{%

The running feet are empty in this page style, the running head contains the page number and one of the marks. We enclose them in a box and put a line underneath if the headline option is selected. We also center it if the centerheadline option is selected.

559  \let\@oddfoot\@empty\let\@evenfoot\@empty
560  \def\@evenhead{%
561  \parbox{\textwidth}{%

Here we use an \hfill rather than an \hfil because it seems like \thepage contains an \hfil, so we need this to push it to the left.

562  \makebox[\textwidth]{{\pagenumberfont\thepage}\hfill}

We do this just to make sure that the headings sit at the same height.

563  \if@headline\vspace{\headlinespace}\fi}%

564 }%

565  \def\@oddhead{%
566  \parbox{\textwidth}{%

Here we use an \hfill rather than an \hfil because it seems like \thepage contains an \hfil, so we need this to push it to the right.

567  \makebox[\textwidth]{\hfill{\pagenumberfont\thepage}}
568  \if@headline
569  \vspace{\headlinespace}%
570  \fi}%

571 }% 572 }%

The definition of \ps@plain for one sided printing can be much simpler, because we treat even and odd pages the same. Therefore we don’t need to define

\@even....
573 \else
574 \def\ps@plain{%
575  \let\@oddfoot\@empty
576  \def\@oddhead{%
577  \parbox{\textwidth}{%

Here we use an \hfill rather than an \hfil because it seems like \thepage contains an \hfil, so we need this to push it to the right.

578  \makebox[\textwidth]{\hfill{\pagenumberfont\thepage}}%
579  \if@headline
580  \vspace{\headlinespace}%
581  \fi}%

582 }% 583 }%

584 \fi

\ps@headings The definition of the page style headings has to be different for two sided printing than it is for one sided printing.

585 \if@twoside
586 \def\ps@headings{%

The running feet are empty in this page style, the running head contains the page number and one of the marks. We enclose them in a box and put a line underneath if the headline option is selected. We also center it if the centerheadline option is selected.

587  \let\@oddfoot\@empty\let\@evenfoot\@empty
588  \def\@evenhead{%
589  \parbox{\textwidth}{%
590  \makebox[\textwidth]{%

Here we use an \hfill rather than an \hfil because it seems like \thepage contains an \hfil, so we need this to push it to the right.

591  {\pagenumberfont\thepage}\hfill{\headingstextfont\leftmark}%
592  \e@skip%
593  \if@centerheadline\hfill\fi

594 }%

595  \if@headline
596  \vspace{\headlinespace}%
597  \hrule%
598  \fi}%

599 }%

600  \def\@oddhead{%
601  \parbox{\textwidth}{%
602  \makebox[\textwidth]{%
603  \if@centerheadline\hfill\fi%
604  {\headingstextfont\rightmark}\e@skip\hfill{\pagenumberfont\thepage}%

605 }%

606  \if@headline
607  \vspace{\headlinespace}%
608  \hrule%
609  \fi}%

610 }%

When using this page style, the contents of the running head is determined by the chapter and section titles. So we \let \@mkboth to \markboth.

611  \let\@mkboth\markboth

We use the \chaptermark and \sectionmark macros to fill the running heads.

Note the use of ##1 for the parameter of the \chaptermark command, which will be defined when \ps@headings is executed.

612  \def\chaptermark##1{%
613  \markboth {
614  \ifnum \c@secnumdepth >\m@ne
615  \if@mainmatter
616  \@toupper{\@chapapp}\
617  \if@headcount
618  \thechapter. \ %
619  \fi
620  \fi
621  \fi
622  \@toupper{##1}}{}}%
623  \def\sectionmark##1{%
624  \markright {
625  \ifnum \c@secnumdepth >\z@
626  \if@headcount
627  \thesection. \ %
628  \fi
629  \fi
630  \@toupper{##1}}}}

The definition of \ps@headings for one sided printing can be much simpler, because we treat even and odd pages the same. Therefore we don’t need to define

 \@even....
631 \else
632 \def\ps@headings{%
633  \let\@oddfoot\@empty
634  \def\@oddhead{%

Here we put the header in a \parbox so that we can stack it above a rule is the headline is chosen.

635  \parbox{\textwidth}{%
636  \makebox[\textwidth]{%

Here we center with an \hfill rather than an \hfil because it seems like \thepage contains an \hfil, so we need this to push it to the right.

637  \if@centerheadline\hfill\fi%
638  {\headingstextfont\rightmark}\e@skip\hfill{\pagenumberfont\thepage}%

639 }%

640  \if@headline%
641  \vspace{\headlinespace}%
642  \hrule}%
643  \fi%

644 }%

645  \let\@mkboth\markboth

We use \markright now instead of \markboth as we did for two sided printing.

646  \def\chaptermark##1{%
647  \markright {
648  \ifnum \c@secnumdepth >\m@ne
649  \if@mainmatter
650  \@toupper{\@chapapp\ }
651  \if@headcount
652  \thechapter. \ %
653  \fi
654  \fi

655  \fi
656  \@toupper{##1}}}}
657 \fi

\ps@draft This is the pagestyle used for a draft version. The headers are modified so that they display the current date and time of the draft.

658 \def\ps@draft{%
659 \let\@oddfoot\@empty\let\@evenfoot\@empty
660 \def\@oddhead{%
661  \parbox{\textwidth}{%
662  \makebox[\textwidth]{%
663  {\pagenumberfont\today\ \now\ ---%
664  {\headingstextfont\draftname: ``\jobname''}%
665  \hfil\e@skip%
666  \thepage}%

667 }%

668  \if@headline
669  \vspace{\headlinespace}%
670  \hrule%
671  \fi

672 }% 673 }%

674 \def\@evenhead{%
675  \parbox{\textwidth}{%
676  \makebox[\textwidth]{%
677  {\pagenumberfont\thepage%
678  \e@skip\hfil%
679  {\headingstextfont\draftname: ``\jobname''}%
680  --- \today\ \now}%

681 }%

682  \if@headline
683  \vspace{\headlinespace}%
684  \hrule%
685  \fi

686 }% 687 }%

688 \let\@mkboth\@gobbletwo
689 \let\chaptermark\@gobble
690 \let\sectionmark\@gobble

691 }

crosshair The crosshair option puts a large X on any page with pagestyle clear. This option is taken from the thesis class.

692 \if@crosshair
693 \def\clap#1{\hbox to 0pt{\hss#1\hss}} \newdimen\@crosshairrule
694 \@crosshairrule=.24pt \def\@crosshairs{\vbox to
695  0pt{\hsize=0pt\baselineskip=0pt\lineskip=0pt \vss \clap{\vrule
696  height .125in width \@crosshairrule depth 0pt} \clap{\vrule
697  width .25in height \@crosshairrule depth 0pt} \clap{\vrule
698  height .125in width \@crosshairrule depth 0pt} \vss}}
699 \def\ps@clear{%
700  \let\@oddfoot\@empty\let\@evenfoot\@empty
701  \def\@oddhead{\hfil\raise\headheight\@crosshairs}

702  \let\@evenhead\@oddhead}
703 \fi

\ps@myheadings The definition of the page style myheadings is fairly simple because the user determines the contents of the running head himself by using the \markboth and

 \markright commands.
704 \def\ps@myheadings{%
705 \let\@oddfoot\@empty\let\@evenfoot\@empty
706 \def\@evenhead{%
707  \parbox{\textwidth}{%
708  \makebox[\textwidth]{%
709  {\pagenumberfont\thepage}\hfil{\headingstextfont\leftmark}%
710  \e@skip%
711  \if@centerheadline\hfil\fi

712 }%

713  \if@headline
714  \vspace{\headlinespace}%
715  \hrule%
716  \fi}%

717 }%

718 \def\@oddhead{%
719  \parbox{\textwidth}{%
720  \makebox[\textwidth]{%
721  \if@centerheadline\hfil\fi%
722  {\headingstextfont\rightmark}\e@skip\hfil{\pagenumberfont\thepage}%

723 }%

724  \if@headline
725  \vspace{\headlinespace}%
726  \hrule%
727  \fi}%

728 }%

We have to make sure that the marking commands that are used by the chapter and section headings are disabled. We do this \letting them to a macro that gobbles its argument(s).

729 \let\@mkboth\@gobbletwo
730 \let\chaptermark\@gobble
731 \let\sectionmark\@gobble

732 }

25 Document Markup

25.1 Title Page

Currently, this document class supports only one style of titlepage which is modeled after the sample displayed by the UBC library in 2001. In future versions, I would like to include various styles of titlepage corresponding to various institutions default formats.

\signatures This command prints out as many signature lines as dictated by the argument. This is used on the titlepage.

733 \newcommand*{\signatures}[1]{

734 \count0=0
735 \loop\ifnum\count0<#1 \advance\count0 by 1
736 { \begin{minipage}{4in}
737  \par
738  \vspace{.25in}
739  \hbox to 4in{\dotfill}
740  \end{minipage}}
741 \endgraf\repeat

742 }

\logofile The macro \logofile is used to specify the name of a graphic file to use on the titlepage.

743 \def\@logofile{\@latex@warning@no@line{No \noexpand\logofile\ given}}
744 \newcommand*{\logofile}[1]{\gdef\@logofile{#1}}

\maketitle This macro is used in the document to produce the titlepage. The titlepage produced here conforms to the sample displayed by the UBC library in 2001.

745 \newcommand\maketitle{

The titlepage should display no headers or page numbers and start on a new page.

746 \thispagestyle{empty}
747 \setcounter{page}\@ne

The titlepage should be one column.

748 \@startonecolumn

We would really like to keep the titlepage together on one page. One option would be to put it in a minipage, but instead we increase the size (height) of the page, keeping one inch margins by using the \enlargethispage* command (see the documentation for ltoutput.dtx). The star form only increases the page height if needed. Also, we reset the line spacing to single spacing.

749 \setlength\@tempdima{\paperheight}
750 \addtolength\@tempdima{-2in}
751 \addtolength\@tempdima{-\textheight}
752 \enlargethispage*{\@tempdima}
753 %  \begin{minipage}{0.95\textwidth}

Also, we use single spacing, restoring the spacing afterwards. Note: in order for \baselinestretch to take effect, the font must be reselected. Here this is done with \titlepagefont but at the end we must explicitly call \selectfont to force the calculation.

754  \edef\@tempbaselinestretch{\baselinestretch}
755  \renewcommand{\baselinestretch}{1}
756  \titlepagefont

We center the entire title vertically. \vfil is a vertical space (or glue) of infinite stretchability: It will expand and push the page down. An accompanying \vfil at the bottom will push up and the page will be centered. Note that \vfill works the same way, but that \vfill is “more infinite” than \vfil so a \vfill will always collapse a \vfil. The \null must be used because, at the top of a new page, rubber space is normally eaten.

757 \null\vfil

Then we set the title in the \titlefont; leave a little space, the, if a subtitle has been defined, we put is in \subtitlefont, then after a little space we put “by”, then leave some space and and set the author(s) in \authorfont. We do this inside a tabular environment to get them in a single column. Then we list the previous degrees. We do this in a tabular environment so that the extra newline does not give a problem. Before the date we leave a little whitespace again.

The titlepage is always centered, regardless of the center option.

758 \begin{center}%
759  {\titlefont
760  \if@uppertitle\MakeUppercase{\@title}\else{\@title}\fi
761  \par}%
762  \vspace{1em}%
763  \if@subtitle
764  {\subtitlefont
765  \if@uppersubtitle\MakeUppercase{\@subtitle}\else{\@subtitle}\fi
766  \par}%
767  \vspace{1em}%
768  \fi
769  by \par%
770  \vspace{1em}%
771  {\authorfont
772  \lineskip .75em%
773  \begin{tabular}[t]{c}%
774  \if@upperauthor\MakeUppercase{\@author}\else{\@author}\fi
775  \end{tabular}\par}%
776  \vspace{1em}
777  \vfil
778  \begin{tabular}[t]{c}
779  \@previousdegrees\relax
780  \end{tabular}\par%
781  \vfil
782  A THESIS SUBMITTED IN PARTIAL FULFILMENT OF\par%
783  THE REQUIREMENTS FOR THE DEGREE OF\par%
784  \vspace{1em}
785  {\degreetitlefont
786  \if@upperdegreetitle\MakeUppercase{\@degreetitle}\else{\@degreetitle}\fi
787  \par}%
788  \vspace{1em}
789  in \par%
790  \vspace{1em}
791  {\facultyfont
792  \if@upperfaculty\MakeUppercase{\@faculty}\else{\@faculty}\fi
793  \par}%
794  \vspace{1em}
795  (\@department)\par%
796  \vspace{1em}
797  \vspace{3ex}
798  We accept this thesis as conforming \par%
799  to the required standard \par%
800  \vspace{5ex}
801  \signatures{\@numberofsignatures}
802  \vspace{5ex}

Here we place the university name and copyright. The logo option can be used to include a small graphic logo here to the left of this information. To process this we need to compute the width of the text. Here we define a box with the text and defined the width and height of that box. We are using TeX primitives here:

803  \setbox0=\vbox{
804  \hbox{\if@upperinstitution\MakeUppercase{\@institution}
805  \else{\@institution}\fi}
806  \hbox{\@submitdate}
807  \hbox{\copyright\ \@author, \@copyrightyear}}
808  \newlength{\@logocopywidth}
809  \setlength{\@logocopywidth}{\wd0}

Now we construct the box of text centering the text within the box by using \hfil:

810  \newcommand\@logocopy{\vbox{
811  \hbox to\@logocopywidth{%
812  \hfil\if@upperinstitution\MakeUppercase{\@institution}
813  \else{\@institution}\fi
814  \hfil}
815  \vspace{1.5ex}
816  \hbox to\@logocopywidth{\hfil\@submitdate\hfil}
817  \vspace{1.5ex}
818  \hbox to\@logocopywidth{%
819  \hfil\copyright\ \@author, \@copyrightyear\hfil}}}
820  \newlength{\@logocopyheight}
821  \settoheight{\@logocopyheight}{\@logocopy}

Here we include the logo in a box, or nothing if the logo option is not used and record its width:

822  \newcommand\@logo{\hbox{
823  \iflogo
824  \includegraphics*[height=\@logocopyheight]{\@logofile}
825  \fi}}
826  \newlength{\@logowidth}
827  \settowidth{\@logowidth}{\@logo}

Now we actually typeset the logo and text centered:

828  \centerline{\hbox{%
829  \hfill\@logo\@logocopy\hspace{\@logowidth}}}
830 \end{center}
831 \vfil\null
832 %  \end{minipage}

The titlepage should have nothing else on it.

833 \clearpage

Reset column mode. We must do this after the new page has been specified

 with \clearpage.
834 \@endonecolumn

Here we reset the line spacing: Note: in order for \baselinestretch to take effect, the font must be reselected. Here this is done with an explicit call to \selectfont to force the calculation.

835 \normalfont
836 \normalsize
837 \edef\baselinestretch{\@tempbaselinestretch}

We reset the footnote counter, disable \thanks and \maketitle and save some storage space by emptying the internal information macros.

838 \setcounter{footnote}{0}%
839 \global\let\thanks\relax
840 \global\let\maketitle\relax
841 \global\let\@thanks\@empty
842 \global\let\@author\@empty
843 \global\let\@date\@empty
844 \global\let\@title\@empty

After the title is set the declaration commands \title, etc. can vanish. The definition of \and makes only sense within the argument of \author so this can go as well.

845 \global\let\title\relax
846 \global\let\author\relax
847 \global\let\date\relax
848 \global\let\and\relax

849 }

25.2 Authorization Form

This is very university specific. You should add one of your own if you make a class for outside of UBC.

\ubcauthorizationform \authorizationform The \ubcauthorizationform is specific to UBC but it is the only one defined so

it is also assigned to \authorizationform.

850 \newcommand{\ubcauthorizationform}{

We clear the page (making sure it opens properly if twopage is selected) and set the pagestyle to empty. Page numbers should not be displayed.

851 \thispagestyle{clear}
852 \cleardoublepage
853 \thispagestyle{empty}

854

855 \@startonecolumn

We use single spacing, restoring the spacing afterwards. Note: in order for \baselinestretch to take effect, the font must be reselected. Here this is done

 with \selectfont.
856 \edef\@tempbaselinestretch{\baselinestretch}
857 \renewcommand{\baselinestretch}{1}
858 \selectfont
859 In presenting this thesis in partial fulfilment of the requirements
860 for an advanced degree at the University of British Columbia, I
861 agree that the Library shall make it freely available for reference
862 and study. I further agree that permission for extensive copying of
863 this thesis for scholarly purposes may be granted by the head of my
864 department or by his or her representatives. It is understood that
865 copying or publication of this thesis for financial gain shall not
866 be allowed without my written permission.

867

868 \vfil
869 \begin{flushright}
870  (Signature) \rule{2in}{0.5pt}

871 \end{flushright}
872 \vfil

873

874 \noindent
875 \@department

876

877 \vspace{2em}
878 \noindent
879 \@institution\par
880 \@institutionaddress

881

882 \vspace{2em}
883 \noindent
884 Date \rule{2in}{0.5pt}

885

886 % The authorization form should not count as a page, but this will
887 % be taken care of in the abstract.

888

889 %  \addtocounter{page}{-1}

Here we force a new page and reset the columns. Note that the columns must be reset after the newpage has been forced.

890 \clearpage
891 \@endonecolumn

Here we reset the line spacing: Note: in order for \baselinestretch to take effect, the font must be reselected. Here this is done with an explicit call to \selectfont to force the calculation.

892 \edef\baselinestretch{\@tempbaselinestretch}
893 \global\let\thanks\relax
894 \selectfont

895 }

Here is a command to use the \ubcauthorization form. Eventually, there may be several different types for different institutions.

896 \newcommand{\authorizationform}{\ubcauthorizationform}

25.3 Preface/Foreword

The preface/foreword should not have a number, but should be listed in the table of contents: hence we define these here.

\preface \foreword The only difference between \preface and \foreword is the name they use.

897 \newcommand{\preface}{\chaptertoc{\prefacename}{\prefacename}}
898 \newcommand{\foreword}{\chaptertoc{\forewordname}{\forewordname}}

25.4 Acknowledgements

\acknowledgements
899 \newcommand*{\acknowledgements}{\chaptertoc{\acknowledgementsname}{\acknowledgementsname}}

25.5 Parts, Chapters, Sections, Paragraphs etc.

25.5.1 Building blocks

The definitions in this part of the class file make use of two internal macros, \@startsection and \secdef. To understand what is going on here, we describe their syntax.

The macro \@startsection has 6 required arguments, optionally followed by a ∗, an optional argument and a required argument:

\@startsection⟨name⟩⟨level⟩⟨indent⟩⟨beforeskip⟩⟨afterskip⟩⟨style⟩ optional *

[⟨altheading⟩]⟨heading⟩

It is a generic command to start a section, the arguments have the following meaning:

⟨name⟩ The name of the user level command, e.g., ‘section’.

⟨level⟩ A number, denoting the depth of the section – e.g., chapter=1, section = 2, etc. A section number will be printed if and only if ⟨level⟩ = the value of the secnumdepth counter.

⟨indent⟩ The indentation of the heading from the left margin

⟨beforeskip⟩ The absolute value of this argument gives the skip to leave above the heading. If it is negative, then the paragraph indent of the text following the heading is suppressed.

⟨afterskip⟩ If positive, this gives the skip to leave below the heading, else it gives the skip to leave to the right of a run-in heading.

⟨style⟩ Commands to set the style of the heading.

∗ When this is missing the heading is numbered and the corresponding counter is incremented.

⟨altheading⟩ Gives an alternative heading to use in the table of contents and in the running heads. This should be present when the ∗ form is used.

⟨heading⟩ The heading of the new section.

A sectioning command is normally defined to \@startsection and its first six arguments.

The macro \secdef can be used when a sectioning command is defined without using \@startsection. It has two arguments:

\secdef⟨unstarcmds⟩⟨starcmds⟩

⟨unstarcmds⟩ Used for the normal form of the sectioning command.

⟨starcmds⟩ Used for the ∗-form of the sectioning command.

You can use \secdef as follows:

       \def\chapter { ... \secdef \CMDA \CMDB }
       \def\CMDA    [#1]#2{ ... }  % Command to define
                                   % \chapter[...]{...}
       \def\CMDB    #1{ ... }      % Command to define
                                   % \chapter*{...}

25.5.2 Mark commands

\chaptermark \sectionmark \subsectionmark \subsubsectionmark \paragraphmark \subparagraphmark Default initializations of \...mark commands. These commands are used in the

definition of the page styles (see section 24.3.2) Most of them are already defined by latex.dtx, so they are only shown here.

900 \newcommand*\chaptermark[1]{}
901 % \newcommand*\sectionmark[1]{}
902 % \newcommand*\subsectionmark[1]{}
903 % \newcommand*\subsubsectionmark[1]{}
904 % \newcommand*\paragraphmark[1]{}
905 % \newcommand*\subparagraphmark[1]{}

25.5.3 Define Counters

\c@secnumdepth The value of the counter secnumdepth gives the depth of the highest-level sectioning command that is to produce section numbers.

906 \setcounter{secnumdepth}{2}
\c@part \c@chapter \c@section \c@subsection \c@subsubsection \c@paragraph \c@subparagraph These counters are used for the section numbers. The macro

\newcounter{⟨newctr⟩}[⟨oldctr⟩] defines⟨newctr⟩ to be a counter, which is reset to zero when counter ⟨oldctr⟩ is stepped. Counter ⟨oldctr⟩ must already be defined.

907 \newcounter {part}
908 \newcounter {chapter}
909 \newcounter {section}[chapter]
910 \newcounter {subsection}[section]
911 \newcounter {subsubsection}[subsection]
912 \newcounter {paragraph}[subsubsection]
913 \newcounter {subparagraph}[paragraph]
\thepart \thechapter \thesection \thesubsection \thesubsubsection \theparagraph \thesubparagraph For any counter CTR, \theCTR is a macro that defines the printed version of

counter CTR. It is defined in terms of the following macros:

\arabic{COUNTER} prints the value of COUNTER as an arabic numeral. \roman{COUNTER} prints the value of COUNTER as a lowercase roman nu-

meral.

\Roman{COUNTER} prints the value of COUNTER as an uppercase roman numeral.

\alph{COUNTER} prints the value of COUNTER as a lowercase letter: 1 = a, 2 = b, etc.

\Alph{COUNTER} prints the value of COUNTER as an uppercase letter: 1 = A, 2 = B, etc.

Actually to save space the internal counter representations and the commands operating on those are used.

914 \renewcommand\thepart {\@Roman\c@part}
915 \renewcommand\thechapter {\@arabic\c@chapter}
916 \renewcommand\thesection {\thechapter.\@arabic\c@section}
917 \renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}
918 \renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
919 \renewcommand\theparagraph    {\thesubsubsection.\@arabic\c@paragraph}
920 \renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}

25.6 Formatting

\@chapapp  \@chapapp is initially defined to be ‘\chaptername’. The \appendix command

redefines it to be ‘\appendixname’.

921 \newcommand\@chapapp{\chaptername}

25.6.1 Front Matter, Main Matter, and Back Matter

A book contains these three (logical) sections. The switch \@mainmatter is true iff we are processing Main Matter. When this switch is false, the \chapter command does not print chapter numbers.

Here we define the commands that start these sections.

\frontmatter This command starts Roman page numbering and turns off chapter numbering. Since this restarts the page numbering from 1, it should also ensure that a right page is used.

922 \newcommand\frontmatter{%
923 %   \if@openright
924  \cleardoublepage
925 %   \else
926 %     \clearpage
927 %   \fi
928 \@mainmatterfalse
929 \pagenumbering{roman}}

\mainmatter This command clears the page, starts arabic page numbering and turns on chapter numbering. Since this restarts the page numbering from 1, it should also ensure that a recto page is used.

930 \newcommand\mainmatter{%
931 %   \if@openright
932  \cleardoublepage
933 %   \else
934 %     \clearpage
935 %   \fi
936 \@mainmattertrue
937 \pagenumbering{arabic}}

\backmatter This clears the page, turns off chapter numbering and leaves page numbering unchanged.

938 \newcommand\backmatter{%
939 \if@openright
940  \cleardoublepage
941 \else
942  \clearpage
943 \fi
944 \@mainmatterfalse}

25.6.2 Parts

\part The command to start a new part of our document.

We start a new (righthand) page and make the pagestyle plain.

945 \newcommand\part{%
946 \if@openright

947  \cleardoublepage
948 \else
949  \clearpage
950 \fi
951 \thispagestyle{plain}%

When we are making a two column document, this will be a one column page.

952 \if@twocolumn
953  \onecolumn
954  \@tempswatrue
955 \else
956  \@tempswafalse
957 \fi

We need an empty box to prevent the fil glue from disappearing.

958 \null\vfil

Here we use \secdef to indicate which commands to use to make the actual heading.

959 \secdef\@part\@spart

960 }

\@part This macro does the actual formatting of the title of the part. Again the macro is differently defined for the article document class than for the document classes report and book.

When secnumdepth is larger than −2 we have a numbered part, otherwise it is unnumbered.

961 \def\@part[#1]#2{%
962 \ifnum \c@secnumdepth >-2\relax
963  \refstepcounter{part}%
964  \addcontentsline{toc}{part}{\thepart\hspace{1em}\@toctoupper{#1}}%
965 \else
966  \addcontentsline{toc}{part}{\@toctoupper{#1}}%
967 \fi

We empty the mark registers and center the title on the page if the centering option is true. Also we prevent breaking between lines and reset the font.

968 \@mkboth{}{}%
969 {\centering
970  \interlinepenalty \@M
971  \normalfont

When this is a numbered part we have to print the number.

972  \if@partheads
973  \ifnum \c@secnumdepth >-2\relax
974  {\partnamefont\@toupper{\partname}\nobreakspace\thepart\par}

We leave some space before we print the title and leave the finishing up to

 \@endpart.
975  \vspace{\partbetweenskip}
976  \fi
977  \fi
978  {\partnamefont #2\par}%

979 }%

980 \@endpart

981 }

\@spart This macro does the actual formatting of the title of the part when the star form of the user command was used. In this case we never print a number. Otherwise the formatting is the same.

982 \def\@spart#1{%
983 {\centering
984  \interlinepenalty \@M
985  \normalfont
986  {\partnamefont #1\par}%

987 }%

988 \@endpart

989 }

\@endpart This macro finishes the part page, for both \@part and \@spart.

First we fill the current page.

990 \def\@endpart{\vfil\newpage

Then, when we are in twosided mode and chapters are supposed to be on right hand sides, we produce a completely blank page.

991 \if@twoside
992  \if@openright
993  \null
994  \thispagestyle{clear}%
995  \newpage
996  \fi
997 \fi

When this was a two column document we have to switch back to two column mode.

998 \if@tempswa
999  \twocolumn
1000 \fi}

25.6.3 Chapters

\chapter A chapter should always start on a new page therefore we start by calling \clearpage. The first page of each chapter is set to use the plain pagestyle. This is the default L^{A}TEX class behaviour and expected by some packages such as fancyhdr.^{1} At a future date, an option may be provided to alter this behaviour. .

1001 \newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
1002  \thispagestyle{plain}%

Then we prevent floats from appearing at the top of this page because it looks weird to see a floating object above a chapter title.

1003  \global\@topnum\z@

Then we suppress the indentation of the first paragraph by setting the switch \@afterindent to false. We use \secdef to specify the macros to use for actually setting the chapter title.

1004  \@afterindentfalse
1005  \secdef\@chapter\@schapter}

1Actually, the package works fine without this behaviour but the documentation tells the user that they must change the plain pagestyle in order to affect these pages. Now following these instructions should work as expected.

\@chapter This macro is called when we have a numbered chapter. When secnumdepth is larger than −1 and when \@mainmatter is true, we display the chapter number. We also inform the user that a new chapter is about to be typeset by writing a message to the terminal.

1006 \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
1007  \if@mainmatter
1008  \refstepcounter{chapter}%
1009  \typeout{\@chapapp\space\thechapter.}%
1010  \addcontentsline{toc}{chapter}%
1011  {\protect\numberline{\thechapter}\@toctoupper{#1}}%
1012  \else
1013  \addcontentsline{toc}{chapter}{\@toctoupper{#1}}%

1014 \fi

1015  \else
1016  \addcontentsline{toc}{chapter}{\@toctoupper{#1}}%

1017 \fi

After having written an entry to the table of contents we store the (alternative) title of this chapter with \chaptermark and add some white space to the lists of figures and tables.

1018  \chaptermark{#1}%
1019  \addtocontents{lof}{\protect\addvspace{10\p@}}%
1020  \addtocontents{lot}{\protect\addvspace{10\p@}}%

Then we call upon \@makechapterhead to format the actual chapter title. We have to do this in a special way when we are in twocolumn mode in order to have the chapter title use the entire \textwidth. In one column mode we call \@afterheading which takes care of suppressing the indentation.

1021  \if@twocolumn
1022  \@topnewpage[\@makechapterhead{#2}]%
1023  \else
1024  \@makechapterhead{#2}%
1025  \@afterheading
1026  \fi}

\@makechapterhead The macro above uses \@makechapterhead⟨text⟩ to format the heading of the

chapter.

We begin by leaving some white space. The we open a group in which we have a paragraph indent of 0pt, and in which we have the text set ragged right. We also reset the font.

1027 \def\@makechapterhead#1{%

Here we would like to move the chapter label up if the label is displayed so that the actual chapter titles all appear on the same level. We test the flag \@chapterheads to see if we should display the chapter heading. This can be toggled with the chapterheads and nochapterheads options.

1028 \setlength{\@tempdima}{\chapterbeforeskip}
1029 \if@chapterheads
1030  \if@mainmatter
1031  \settoheight{\@tempdimb}{
1032  \chapterfont
1033  \@toupper{\@chapapp}
1034  \space

1035  \thechapter}
1036  \addtolength{\@tempdima}{-\@tempdimb}
1037  \addtolength{\@tempdima}{-\chapterbetweenskip}

1038 \fi 1039 \fi

1040 \vspace*{\@tempdima}%
1041 {\parindent \z@
1042  \@headingalignment \normalfont
1043  \interlinepenalty\@M

Then we check whether the number of the chapter has to be printed. If so we leave some whitespace between the chapter number and its title. The option headcount is used to toggle the display of the number.

1044  \ifnum \c@secnumdepth >\m@ne
1045  \if@chapterheads
1046  \if@mainmatter
1047  {\chapterfont%
1048  \@toupper{\@chapapp}%
1049  \if@headcount\space\thechapter\fi

1050 }%

1051  \par\nobreak
1052  \vspace{\chapterbetweenskip}

1053 \fi 1054 \fi 1055 \fi

Now we set the title in \chaptertitlefont. We prevent a page break from occuring in the middle of or after the title. Finally we leave \chapterafterskip whitespace before the text begins. If we are not displaying the chapter headings, then we add the number to the chapter titles.

1056  \interlinepenalty\@M
1057  {\chaptertitlefont %
1058  \if@chapterheads\else
1059  \if@headcount
1060  \thechapter.\space%

1061 \fi 1062 \fi

1063  \@toupper{#1}%
1064  \par\nobreak}
1065  \vspace*{\chapterafterskip}%

1066 } 1067 }

\@schapter This macro is called when we have an unnumbered chapter. It is much simpler than \@chapter because it only needs to typeset the chapter title.

1068 \def\@schapter#1{\if@twocolumn
1069  \@topnewpage[\@makeschapterhead{#1}]%
1070  \else
1071  \@makeschapterhead{#1}%
1072  \@afterheading
1073  \fi}

\@makeschapterhead The macro above uses \@makeschapterhead⟨text⟩to format the heading of the chapter. It is similar to \@makechapterhead except that it never has to print a chapter number.

1074 \def\@makeschapterhead#1{%
1075 \vspace*{\chapterbeforeskip}%
1076 {\parindent \z@
1077  \@headingalignment
1078  \normalfont
1079  \interlinepenalty\@M
1080  {\chaptertitlefont \@toupper{#1}%
1081  \par\nobreak}
1082  \vspace*{\chapterafterskip}%

1083 } 1084 }

25.6.4 Lower level headings

These commands all make use of \@startsection.

\section This gives a normal heading with white space above and below the heading, the title set in \sectionfont, and no indentation on the first paragraph. Note that we check for optional arguments and perform all uppercase conversion here. This used to cause problems with the hyperref package when we put the uppercase in when writing the table of contents. Now the uppercase is put into the table of contents file.

The starred version of these commands is provided by using the \@ifstar macro to convert the name of the section command to one of \@section or \@sectionstar. These are the commands that actually do all the work.

1085 \newcommand*{\section}{\@ifstar\@sectionstar\@section}%
1086 \newcommand\@section[2][]{%
1087 \@startsection {section}{1}{\sectionindent}%
1088  {\sectionbeforeskip}%
1089  {\sectionafterskip}%
1090  {\@headingalignment\normalfont\sectionfont}%
1091  [\@toctoupper{\ifx\empty#1\empty%

1092 #2%

1093  \else%

1094 #1%

1095  \fi}]{#2}}
1096 \newcommand\@sectionstar[2][]{%
1097 \@startsection{section}{1}{\sectionindent}%
1098  {\sectionbeforeskip}%
1099  {\sectionafterskip}%
1100  {\@headingalignment\normalfont\sectionfont}*{#2}}

\subsection This gives a normal heading with white space above and below the heading, the title set in \large\bfseries, and no indentation on the first paragraph.

1101 \newcommand*{\subsection}{\@ifstar\@subsectionstar\@subsection}%
1102 \newcommand\@subsection[2][]{%
1103 \@startsection {subsection}{2}{\subsectionindent}%
1104  {\subsectionbeforeskip}%
1105  {\subsectionafterskip}%
1106  {\@headingalignment\normalfont\subsectionfont}%

1107  [\@toctoupper{\ifx\empty#1\empty%

1108 #2%

1109  \else%

1110 #1%

1111  \fi}]{#2}}
1112 \newcommand\@subsectionstar[2][]{%
1113 \@startsection{subsection}{2}{\subsectionindent}%
1114  {\subsectionbeforeskip}%
1115  {\subsectionafterskip}%
1116  {\@headingalignment\normalfont\subsectionfont}*{#2}}

\subsubsection This gives a normal heading with white space above and below the heading, the title set in \normalsize\bfseries, and no indentation on the first paragraph.

1117 \newcommand*{\subsubsection}{\@ifstar\@subsubsectionstar\@subsubsection}%
1118 \newcommand\@subsubsection[2][]{%
1119 \@startsection {subsubsection}{3}{\subsubsectionindent}%
1120  {\subsubsectionbeforeskip}%
1121  {\subsubsectionafterskip}%
1122  {\@headingalignment\normalfont\subsubsectionfont}%
1123  [\@toctoupper{\ifx\empty#1\empty%

1124 #2%

1125  \else%

1126 #1%

1127  \fi}]{#2}}
1128 \newcommand\@subsubsectionstar[2][]{%
1129 \@startsection{subsubsection}{3}{\subsubsectionindent}%
1130  {\subsubsectionbeforeskip}%
1131  {\subsubsectionafterskip}%
1132  {\@headingalignment\normalfont\subsubsectionfont}*{#2}}

\paragraph This gives a run-in heading with white space above and to the right of the heading,

  the title set in \normalsize\bfseries.
1133 \newcommand*{\paragraph}{\@ifstar\@paragraphstar\@paragraph}%
1134 \newcommand\@paragraph[2][]{%
1135 \@startsection {paragraph}{4}{\paragraphindent}%
1136  {\paragraphbeforeskip}%
1137  {\paragraphafterskip}%
1138  {\@headingalignment\normalfont\paragraphfont}%
1139  [\@toctoupper{\ifx\empty#1\empty%

1140 #2%

1141  \else%

1142 #1%

1143  \fi}]{#2}}
1144 \newcommand\@paragraphstar[2][]{%
1145 \@startsection{paragraph}{4}{\paragraphindent}%
1146  {\paragraphbeforeskip}%
1147  {\paragraphafterskip}%
1148  {\@headingalignment\normalfont\paragraphfont}*{#2}}

\subparagraph This gives an indented run-in heading with white space above and to the right of the heading, the title set in \normalsize\bfseries.

1149 \newcommand*{\subparagraph}{\@ifstar\@subparagraphstar\@subparagraph}%

1150 \newcommand\@subparagraph[2][]{%
1151 \@startsection {subparagraph}{5}{\subparagraphindent}%
1152  {\subparagraphbeforeskip}%
1153  {\subparagraphafterskip}%
1154  {\@headingalignment\normalfont\subparagraphfont}%
1155  [\@toctoupper{\ifx\empty#1\empty%

1156 #2%

1157  \else%

1158 #1%

1159  \fi}]{#2}}
1160 \newcommand\@subparagraphstar[2][]{%
1161 \@startsection{subparagraph}{5}{\subparagraphindent}%
1162  {\subparagraphbeforeskip}%
1163  {\subparagraphafterskip}%
1164  {\@headingalignment\normalfont\subparagraphfont}*{#2}}

25.7 Alternatives for Table of Contents

\parttoc \chaptertoc \sectiontoc \subsectiontoc \subsubsectiontoc \paragraphtoc \subparagraphtoc These new sectioning commands allow the user to specify different section titles

than entered in the toc. The starred form does not number the section.

1165 \newcommand*{\parttoc}[2]{
1166 \def\@tempname{\@toupper{#1}}
1167 \part*{\@tempname}
1168 \@mkboth{\@tempname}{\@tempname}
1169 \addcontentsline{toc}{part}{\@toctoupper{#2}}

1170 }

1171 \newcommand*{\chaptertoc}[2]{
1172 \def\@tempname{\@toupper{#1}}
1173 \chapter*{\@tempname}
1174 \@mkboth{\@tempname}{\@tempname}
1175 \addcontentsline{toc}{chapter}{\@toctoupper{#2}}

1176 }

1177 \newcommand*{\sectiontoc}[2]{
1178 \def\@tempname{\@toupper{#1}}
1179 \section*{\@tempname}
1180 \@mkboth{\@tempname}{\@tempname}
1181 \addcontentsline{toc}{section}{\@toctoupper{#2}}

1182 }

1183 \newcommand*{\subsectiontoc}[2]{
1184 \def\@tempname{\@toupper{#1}}
1185 \subsection*{\@tempname}
1186 \@mkboth{\@tempname}{\@tempname}
1187 \addcontentsline{toc}{subsection}{\@toctoupper{#2}}

1188 }

1189 \newcommand*{\subsubsectiontoc}[2]{
1190 \def\@tempname{\@toupper{#1}}
1191 \subsubsection*{\@tempname}
1192 \@mkboth{\@tempname}{\@tempname}
1193 \addcontentsline{toc}{subsubsection}{\@toctoupper{#2}}

1194 }

1195 \newcommand*{\paragraphtoc}[2]{
1196 \def\@tempname{\@toupper{#1}}
1197 \paragraph*{\@tempname}
1198 \@mkboth{\@tempname}{\@tempname}

1199 \addcontentsline{toc}{paragraph}{\@toctoupper{#2}}

1200 }

1201 \newcommand*{\subparagraphtoc}[2]{
1202 \def\@tempname{\@toupper{#1}}
1203 \subparagraph*{\@tempname}
1204 \@mkboth{\@tempname}{\@tempname}
1205 \addcontentsline{toc}{subparagraph}{\@toctoupper{#2}}

1206 }

25.8 Lists

25.8.1 General List Parameters

The following commands are used to set the default values for the list environment’s parameters. See the L^{A}TEX manual for an explanation of the meanings of the parameters. Defaults for the list environment are set as follows. First,

\rightmargin, \listparindent and \itemindent are set to 0pt. Then, for a

Kth level list, the command \@listK is called, where ‘K’ denotes ‘i’, ’‘i’, ... , ‘vi’. (I.e., \@listiii is called for a third-level list.) By convention, \@listK should

set \leftmargin to \leftmarginK.
\leftmargin \leftmargini \leftmarginii \leftmarginiii \leftmarginiv \leftmarginv \leftmarginvi When we are in two column mode some of the margins are set somewhat smaller.
1207 \if@twocolumn
1208 \setlength\leftmargini  {2em}
1209 \else
1210 \setlength\leftmargini  {2.5em}

1211 \fi

Until the whole of the parameter setting in these files is rationalized, we need to set the value of \leftmargin at this outer level.

1212 \leftmargin  \leftmargini

The following three are calculated so that they are larger than the sum of \labelsep and the width of the default labels (which are ‘(m)’, ‘vii.’ and ‘M.’).

1213 \setlength\leftmarginii  {2.2em}
1214 \setlength\leftmarginiii {1.87em}
1215 \setlength\leftmarginiv  {1.7em}
1216 \if@twocolumn
1217 \setlength\leftmarginv  {.5em}
1218 \setlength\leftmarginvi {.5em}
1219 \else
1220 \setlength\leftmarginv  {1em}
1221 \setlength\leftmarginvi {1em}

1222 \fi

\labelsep \labelwidth \labelsep is the distance between the label and the text of an item; \labelwidth is the width of the label.

1223 \setlength  \labelsep  {.5em}
1224 \setlength  \labelwidth{\leftmargini}
1225 \addtolength\labelwidth{-\labelsep}

\@beginparpenalty \@endparpenalty These penalties are inserted before and after a list or paragraph environment. They are set to a bonus value to encourage page breaking at these points.

\@itempenalty This penalty is inserted between list items.

1226 \@beginparpenalty -\@lowpenalty
1227 \@endparpenalty   -\@lowpenalty
1228 \@itempenalty     -\@lowpenalty

25.8.2 Enumerate

The enumerate environment uses four counters: enumi, enumii, enumiii and enumiv, where enumN controls the numbering of the Nth level enumeration.

\theenumi \theenumii \theenumiii \theenumiv The counters are already defined in latex.dtx, but their representation is changed here.

1229 \renewcommand\theenumi{\@arabic\c@enumi}
1230 \renewcommand\theenumii{\@alph\c@enumii}
1231 \renewcommand\theenumiii{\@roman\c@enumiii}
1232 \renewcommand\theenumiv{\@Alph\c@enumiv}
\labelenumi \labelenumii \labelenumiii \labelenumiv The label for each item is generated by the commands
\labelenumi . . . \labelenumiv.
1233 \newcommand\labelenumi{\theenumi.}
1234 \newcommand\labelenumii{(\theenumii)}
1235 \newcommand\labelenumiii{\theenumiii.}
1236 \newcommand\labelenumiv{\theenumiv.}
\p@enumii \p@enumiii \p@enumiv The expansion of \p@enumN\theenumN defines the output of a \ref command

when referencing an item of the Nth level of an enumerated list.

1237 \renewcommand\p@enumii{\theenumi}
1238 \renewcommand\p@enumiii{\theenumi(\theenumii)}
1239 \renewcommand\p@enumiv{\p@enumiii\theenumiii}

25.8.3 Itemize

\labelitemi \labelitemii \labelitemiii \labelitemiv Itemization is controlled by four commands: \labelitemi, \labelitemii,

\labelitemiii, and \labelitemiv, which define the labels of the various itemization levels: the symbols used are bullet, bold en-dash, centered asterisk and centred dot.

1240 \newcommand\labelitemi{\textbullet}
1241 \newcommand\labelitemii{\normalfont\bfseries \textendash}
1242 \newcommand\labelitemiii{\textasteriskcentered}
1243 \newcommand\labelitemiv{\textperiodcentered}

25.8.4 Description

description The description environment is defined here – while the itemize and enumerate environments are defined in latex.dtx.

1244 \newenvironment{description}
1245 {\list{}{\labelwidth\z@ \itemindent-\leftmargin
1246  \let\makelabel\descriptionlabel}}
1247 {\endlist}

\descriptionlabel To change the formatting of the label, you must redefine \descriptionlabel.

1248 \newcommand*\descriptionlabel[1]{\hspace\labelsep
1249 \normalfont\bfseries #1}

25.9 Defining new environments

25.9.1 Abstract

abstract With onecolumn the abstract is treated as a chapter. With the twocolumn option, the abstract is still displayed in one column but we must format it and make sure it appears in the table of contents. The abstract also opens facing when the twoside option is chosen.

1250 \newenvironment{abstract}{%
1251 %    The page numbering should start on the abstract as page ii but
1252 %    the abstract should open on an odd page.  Thus, if the |\twoside|
1253 %    option is chosen (which is not allowed by the library) then we
1254 %    will forgo this rule and leave the counter as it is.  We should
1255 %    turn pagenumbering and headings on now, but the user will be
1256 %    responsible for this.   If he/she follows the instructions in the
1257 %    sample file, this will happen automatically because the page numbers
1258 %    have been suppressed on the other pages.
1259 %    \begin{macrocode}
1260 \if@twoside\else
1261  \setcounter{page}{2}

1262 \fi

Here we set the page to one column and reset the margins if needed.

1263 \if@twocolumn\@startonecolumn\fi

Now we format the abstract as a chapter.

1264  \chaptertoc{\abstractname}{\abstractname}
1265 %    \addcontentsline{toc}{chapter}{\abstractname}%
1266 %    \@mkboth{\abstractname}{\abstractname}%
1267 %    \@aligntitle{{\abstractfont \abstractname}}
1268 %    \@endparpenalty\@M

1269 }

Here is the end of the environment. We clear the page and reset the column spacing.

1270 {\clearpage\@endonecolumn}
1271 % \end{environment}

1272 %

1273 % \begin{environment}
1274 % \subsubsection{Verse}

1275 %

1276 % \begin{environment}{verse}
1277 %   The verse environment is defined by making clever use of the
1278 %   list environment's parameters.  The user types |\\| to end a line.
1279 %   This is implemented by |\let|'ing |\\| equal |\@centercr|.

1280 %

1281 % \changes{v1.3j}{1995/08/16}{stop \cs{item} scanning for [ with
1282 %    \cs{relax}}
1283 %    \begin{macrocode}
1284 \newenvironment{verse}
1285  {\let\\\@centercr
1286  \list{}{\itemsep      \z@
1287  \itemindent   -1.5em%
1288  \listparindent\itemindent
1289  \rightmargin  \leftmargin

1290  \advance\leftmargin 1.5em}%
1291  \item\relax}
1292  {\endlist}

25.9.2 Quotation

quotation The quotation environment is also defined by making clever use of the list environment’s parameters. The lines in the environment are set smaller than \textwidth. The first line of a paragraph inside this environment is indented.

1293 \newenvironment{quotation}
1294  {\list{}{\listparindent 1.5em%
1295  \itemindent    \listparindent
1296  \rightmargin   \leftmargin
1297  \parsep        \z@ \@plus\p@}%
1298  \item\relax}
1299  {\endlist}

25.9.3 Quote

quote The quote environment is like the quotation environment except that paragraphs are not indented.

1300 \newenvironment{quote}
1301  {\list{}{\rightmargin\leftmargin}%
1302  \item\relax}
1303  {\endlist}

25.9.4 Theorem

This document class does not define it’s own theorem environments, the defaults, supplied by latex.dtx are available.

25.9.5 Appendix

\appendix The \appendix command is not really an environment, it is a macro that makes

some changes in the way things are done.

In the report and book document classes the \appendix command must do the following:

• reset the chapter and section counters to zero,

   • set \@chapapp to \appendixname (for messages),

• redefine the chapter counter to produce appendix numbers,

• possibly redefine the \chapter command if appendix titles and headings are to look different from chapter titles and headings. This redefinition is done globally to ensure that it survives even if \appendix is issued within an environment such as multicols.

1304 \newcommand\appendix{\par
1305 \setcounter{chapter}{0}%
1306 \setcounter{section}{0}%
1307 \gdef\@chapapp{\appendixname}%
1308 \gdef\thechapter{\@Alph\c@chapter}}

25.10 Setting parameters for existing environments

25.10.1 Array and tabular

\arraycolsep The columns in an array environment are separated by 2\arraycolsep.

1309 \setlength\arraycolsep{5\p@}

\tabcolsep The columns in an tabular environment are separated by 2\tabcolsep.

1310 \setlength\tabcolsep{6\p@}

\arrayrulewidth The width of rules in the array and tabular environments is given by

\arrayrulewidth.
1311 \setlength\arrayrulewidth{.4\p@}

\doublerulesep The space between adjacent rules in the array and tabular environments is given

by \doublerulesep.
1312 \setlength\doublerulesep{2\p@}

25.10.2 Tabbing

\tabbingsep This controls the space that the \' command puts in. (See L^{A}TEX manual for an explanation.)

1313 \setlength\tabbingsep{\labelsep}

25.10.3 Minipage

\@minipagerestore The macro \@minipagerestore is called upon entry to a minipage environment to set up things that are to be handled differently inside a minipage environment. In the current styles, it does nothing.

\@mpfootins Minipages have their own footnotes; \skip\@mpfootins plays same rôle for footnotes in a minipage as \skip\footins does for ordinary footnotes.

1314 \skip\@mpfootins = \skip\footins

25.10.4 Framed boxes

\fboxsep The space left by \fbox and \framebox between the box and the text in it.

\fboxrule The width of the rules in the box made by \fbox and \framebox.

1315 \setlength\fboxsep{3\p@}
1316 \setlength\fboxrule{.4\p@}

25.10.5 Equation and eqnarray

\theequation When within chapters, the equation counter will be reset at the beginning of a

new chapter and the equation number will be prefixed by the chapter number.

This code must follow the \chapter definition or, more exactly, the definition of the chapter counter.

1317 \@addtoreset {equation}{chapter}
1318 \renewcommand\theequation
1319 {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation}

\jot \jot is the extra space added between lines of an eqnarray environment. The default value is used.

1320 % \setlength\jot{3pt}

\@eqnnum The macro \@eqnnum defines how equation numbers are to appear in equations. Again the default is used.

1321 % \def\@eqnnum{(\theequation)}

25.11 Floating objects

The file latex.dtx only defines a number of tools with which floating objects can be defined. This is done in the document class. It needs to define the following macros for each floating object of type TYPE (e.g., TYPE = figure).

\fps@TYPE The default placement specifier for floats of type TYPE.

\ftype@TYPE The type number for floats of type TYPE. Each TYPE has associated a unique positive TYPE number, which is a power of two. E.g., figures might have type number 1, tables type number 2, programs type number 4, etc.

\ext@TYPE The file extension indicating the file on which the contents list for float type TYPE is stored. For example, \ext@figure = ‘lof’.

\fnum@TYPE A macro to generate the figure number for a caption. For example,

     \fnum@TYPE == ‘Figure \thefigure’.

\@makecaption⟨num⟩⟨text⟩ A macro to make a caption, with ⟨num⟩ the value produced by \fnum@... and ⟨text⟩ the text of the caption. It can assume it’s in a \parbox of the appropriate width. This will be used for all floating objects.

The actual environment that implements a floating object such as a figure is defined using the macros \@float and \end@float, which are defined in latex.dtx.

An environment that implements a single column floating object is started with \@float{TYPE}[⟨placement⟩] of type TYPE with ⟨placement⟩ as the placement specifier. The default value of ⟨PLACEMENT ⟩ is defined by \fps@TYPE.

The environment is ended by \end@float. E.g., \figure == \@floatfigure,

\endfigure == \end@float.

25.11.1 Figure

Here is the implementation of the figure environment.

\c@figure First we have to allocate a counter to number the figures.

In the report and book document classes figures within chapters are numbered per chapter.

1322 \newcounter{figure}[chapter]
1323 \renewcommand \thefigure
1324  {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}

\fps@figure \ftype@figure \ext@figure \num@figure Here are the parameters for the floating objects of type ‘figure’.

1325 \def\fps@figure{tbp}
1326 \def\ftype@figure{1}
1327 \def\ext@figure{lof}
1328 \def\fnum@figure{\figurename\nobreakspace\thefigure}

figure figure* And the definition of the actual environment. The form with the * is used for double column figures.

1329 \newenvironment{figure}
1330  {\@float{figure}}
1331  {\end@float}
1332 \newenvironment{figure*}
1333  {\@dblfloat{figure}}
1334  {\end@dblfloat}

25.11.2 Table

Here is the implementation of the table environment. It is very much the same as the figure environment.

\c@table First we have to allocate a counter to number the tables.

In the report and book document classes tables within chapters are numbered per chapter.

1335 \newcounter{table}[chapter]
1336 \renewcommand \thetable
1337  {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}

\fps@table \ftype@table \ext@table \num@table Here are the parameters for the floating objects of type ‘table’.

1338 \def\fps@table{tbp}
1339 \def\ftype@table{2}
1340 \def\ext@table{lot}
1341 \def\fnum@table{\tablename\nobreakspace\thetable}

table table* And the definition of the actual environment. The form with the * is used for double column tables.

1342 \newenvironment{table}
1343  {\@float{table}}
1344  {\end@float}
1345 \newenvironment{table*}
1346  {\@dblfloat{table}}
1347  {\end@dblfloat}

25.11.3 Captions

\@makecaption The \caption command calls \@makecaption to format the caption of floating objects. It gets two arguments, ⟨number⟩, the number of the floating object and ⟨text⟩, the text of the caption. Usually ⟨number⟩ contains a string such as ‘Figure 3.2’. The macro can assume it is called inside a \parbox of right width, with

\normalsize.

\abovecaptionskip \belowcaptionskip These lengths contain the amount of white space to leave above and below the caption.

1348 \newlength\abovecaptionskip
1349 \newlength\belowcaptionskip
1350 \setlength\abovecaptionskip{10\p@}
1351 \setlength\belowcaptionskip{0\p@}

The definition of this macro is \long in order to allow more then one paragraph in a caption.

1352 \long\def\@makecaption#1#2{%
1353 \vskip\abovecaptionskip

We want to see if the caption fits on one line on the page, therefore we first typeset it in a temporary box.

1354 \sbox\@tempboxa{{\captionheaderfont #1:} {\captionbodyfont #2}}%

We can the measure its width. If it it is larger than the current \hsize we typeset the caption as an ordinary paragraph. In this case, we check the option hangingcaptions to see if we should hang the caption after the label or not.

1355 \ifdim \wd\@tempboxa >\hsize
1356 \if@hangingcaptions
1357  \@hangfrom{\captionheaderfont #1: }{\captionbodyfont #2\par}%
1358 \else
1359  #1: #2\par%

1360 \fi

If the caption fits, we center it. Because this uses an \hbox directly in vertical mode, it does not execute the \everypar tokens; the only thing that could be needed here is resetting the ‘minipage flag’ so we do this explicitly.

1361 \else
1362  \global \@minipagefalse
1363  \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%

1364 \fi

1365 \vskip\belowcaptionskip}

25.12 Font changing

Here we supply the declarative font changing commands that were common in L^{A}TEX version 2.09 and earlier. These commands work in text mode and in math mode. They are provided for compatibility, but one should start using the \text... and \math... commands instead. These commands are defined using \DeclareTextFontCommand, a command with three arguments: the user command to be defined; L^{A}TEX commands to execute in text mode and L^{A}TEX commands to execute in math mode.

\rm \tt \sf The commands to change the family. When in compatibility mode we select the ‘default’ font first, to get L^{A}TEX2.09 behaviour.

1366 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
1367 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
1368 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}

\bf The command to change to the bold series. One should use \mdseries to explicitly switch back to medium series.

1369 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}

\sl \it \sc And the commands to change the shape of the font. The slanted and small caps shapes are not available by default as math alphabets, so those changes do nothing in math mode. However, we do warn the user that the selection will not have any effect.One should use \upshape to explicitly change back to the upright shape.

1370 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
1371 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
1372 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}

{\cal \atop \mit} The commands \cal and \mit should only be used in math mode, outside math mode they have no effect. Currently the New Font Selection Scheme defines these commands to generate warning messages. Therefore we have to define them ‘by hand’.

1373 \DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
1374 \DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}

26 Cross Referencing

26.1 Table of Contents, etc.

A \section command writes a \contentsline{section}{⟨title⟩}{⟨page⟩} com-

mand on the .toc file, where ⟨title⟩ contains the contents of the entry and ⟨page⟩ is the page number. If sections are being numbered, then ⟨title⟩ will be of the form \numberline{⟨num⟩}{⟨heading⟩} where ⟨num⟩ is the number produced by \thesection. Other sectioning commands work similarly.

A \caption command in a ‘figure’ environment writes

   \contentsline{figure}{\numberline{⟨num⟩}{ ⟨caption⟩}}{⟨page⟩}

on the .lof file, where ⟨num⟩ is the number produced by \thefigure and ⟨caption⟩ is the figure caption. It works similarly for a ‘table’ environment.

The command \contentsline{⟨name⟩} expands to \l@⟨name⟩. So, to specify

the table of contents, we must define \l@chapter, \l@section, \l@subsection,

... ; to specify the list of figures, we must define \l@figure; and so on. Most of these can be defined with the \@dottedtocline command, which works as follows.

\@dottedtocline{⟨level⟩}{⟨indent⟩}{⟨numwidth⟩}{⟨title⟩}{⟨page⟩}

⟨level⟩ An entry is produced only if⟨ level⟩ <= value of the tocdepth counter. Note, \chapter is level 0, \section is level 1, etc.

⟨indent⟩ The indentation from the outer left margin of the start of the contents line.

⟨numwidth⟩ The width of a box in which the section number is to go, if ⟨title⟩ includes a \numberline command.

\@pnumwidth \@tocrmarg \@dotsep This command uses the following three parameters, which are set with a \newcommand (so em’s can be used to make them depend upon the font).

\@pnumwidth The width of a box in which the page number is put.

\@tocrmarg The right margin for multiple line entries. One wants \@tocrmarg ≥

     \@pnumwidth

\@dotsep Separation between dots, in mu units. Should be defined as a number like 2 or 1.7

1375 \newcommand\@pnumwidth{1.55em}
1376 \newcommand\@tocrmarg{2.55em}
1377 \newcommand\@dotsep{4.5}
1378 \setcounter{tocdepth}{2}

26.1.1 Table of Contents

\tableofcontents This macro is used to request that L^{A}TEX produces a table of contents. In the report and book document classes the tables of contents, figures etc. are always set in single-column style.

1379 \newcommand\tableofcontents{%
1380 \cleardoublepage
1381  \if@twocolumn
1382  \@restonecoltrue\onecolumn
1383  \else
1384  \@restonecolfalse

1385 \fi

The title is set using the \chaptertoc command, making sure that the running head –if one is required– contains the right information. Note that this includes the table of contents in the table of contents.

1386  \chaptertoc{\contentsname}{\contentsname}

The the actual table of contents is made by calling \@starttoc{toc}. After that we restore twocolumn mode if necessary.

1387  \@starttoc{toc}%
1388  \if@restonecol\twocolumn\fi

1389 }

\l@part Each sectioning command needs an additional macro to format its entry in the table of contents, as described above. The macro for the entry for parts is defined in a special way.

First we make sure that if a page break should occur, it occurs before this entry. Also a little whitespace is added and a group begun to keep changes local.

1390 \newcommand*\l@part[2]{%
1391 \ifnum \c@tocdepth >-2\relax
1392  \addpenalty{-\@highpenalty}%
1393  \addvspace{2.25em \@plus\p@}%

The macro \numberline requires that the width of the box that holds the part number is stored in L^{A}TEX’s scratch register \@tempdima. Therefore we initialize it there even though we do not use \numberline internally—the value used is quite large so that something like \numberline{VIII} would still work.

1394  \setlength\@tempdima{3em}%
1395  \begingroup

We set \parindent to 0pt and use \rightskip to leave enough room for the page numbers.^{2} To prevent overfull box messages the \parfillskip is set to a negative value.

1396  \parindent \z@ \rightskip \@pnumwidth
1397  \parfillskip -\@pnumwidth

Now we can set the entry, in a large bold font. We make sure to leave vertical mode, set the part title and add the pagenumber, set flush right.

1398  {\leavevmode
1399  \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par

Prevent a page break immediately after this entry, but use \everypar to reset the \if@nobreak switch. Finally we close the group.

1400  \nobreak
1401  \global\@nobreaktrue
1402  \everypar{\global\@nobreakfalse\everypar{}}%
1403  \endgroup
1404 \fi}

\l@chapter This macro formats the entries in the table of contents for chapters. It is very

similar to \l@part

First we make sure that if a page break should occur, it occurs before this entry. Also a little whitespace is added and a group begun to keep changes local.

1405 \newcommand*\l@chapter[2]{%
1406 \ifnum \c@tocdepth >\m@ne
1407  \addpenalty{-\@highpenalty}%
1408  \vskip 1.0em \@plus\p@

The macro \numberline requires that the width of the box that holds the part number is stored in L^{A}TEX’s scratch register \@tempdima. Therefore we initialize it there even though we do not use \numberline internally (the position as well as the values seems questionable but can’t be changed without producing compatibility problems). We begin a group, and change some of the paragraph parameters (see also the remark at \l@part regarding \rightskip).

1409  \setlength\@tempdima{1.5em}%
1410  \begingroup
1411  \parindent \z@ \rightskip \@pnumwidth
1412  \parfillskip -\@pnumwidth

Then we leave vertical mode.

1413  \leavevmode

Because we do not use \numberline here, we have do some fine tuning ‘by hand’, before we can set the entry. We discourage but not disallow a page break immediately after a chapter entry.

1414  \advance\leftskip\@tempdima
1415  \hskip -\leftskip
1416  {\bfseries #1}\nobreak%

2We should really set \rightskip to \@tocrmarg instead of \@pnumwidth (no version of L^{A}TEX ever did this), otherwise the \rightskip is too small. Unfortunately this can’t be changed in L^{A}TEX 2ε as we don’t want to create different versions of L^{A}TEX 2ε which produce different typeset output unless this is absolutely necessary; instead we suspend it for L^{A}TEX3.

Dotted leaders can be controlled by setting the boolean \if@chaptertocdotstrue.

1417  \if@chaptertocdots
1418  \leaders\hbox{$\m@th%

If a document uses fonts other than computer modern, the use of a dot from math can be very disturbing despite the fact that this might be the only place in a document that then uses computer modern. Therefore we surround the dot with an \hbox to escape to the surrounding text font.

1419  \mkern \@dotsep mu\hbox{.}\mkern \@dotsep%
1420  mu$}\hfil
1421  \else
1422  \hfil

1423 \fi

1424 %      \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
1425  \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}\par%
1426  \penalty\@highpenalty
1427  \endgroup
1428 \fi}

\l@section The definition for \l@section is much simpler.

1429 \newcommand*\l@section[2]{%
1430 \@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}%

1431 }

\l@subsection \l@subsubsection \l@paragraph \l@subparagraph All lower level entries are defined using the macro \@dottedtocline (see above).
1432 \newcommand*\l@subsection[2]{\@dottedtocline{2}{3.8em}{3.2em}{#1}{#2}}
1433 \newcommand*\l@subsubsection[2]{\@dottedtocline{3}{7.0em}{4.1em}{#1}{#2}}
1434 \newcommand*\l@paragraph[2]{\@dottedtocline{4}{10em}{5em}{#1}{#2}}
1435 \newcommand*\l@subparagraph[2]{\@dottedtocline{5}{12em}{6em}{#1}{#2}}

26.1.2 List of figures

\listoffigures This macro is used to request that L^{A}TEX produces a list of figures. It is very

  similar to \tableofcontents.
1436 \newcommand\listoffigures{%
1437  \if@twocolumn
1438  \@restonecoltrue\onecolumn
1439  \else
1440  \@restonecolfalse

1441 \fi

1442  \chaptertoc{\listfigurename}{\listfigurename}%
1443  \@starttoc{lof}%
1444  \if@restonecol\twocolumn\fi

1445 }

\l@figure This macro produces an entry in the list of figures.

1446 \newcommand*\l@figure{\@dottedtocline{1}{\lofindent}{\loflabelwidth}}

26.1.3 List of tables

\listoftables This macro is used to request that L^{A}TEX produces a list of tables. It is very similar

to \tableofcontents.
1447 \newcommand\listoftables{%
1448  \if@twocolumn
1449  \@restonecoltrue\onecolumn
1450  \else
1451  \@restonecolfalse

1452 \fi

1453  \chaptertoc{\listtablename}{\listtablename}%
1454  \@starttoc{lot}%
1455  \if@restonecol\twocolumn\fi

1456 }

\l@table This macro produces an entry in the list of tables.

1457 %\let\l@table\l@figure
1458 \newcommand*\l@table{\@dottedtocline{1}{\lotindent}{\lotlabelwidth}}

26.2 Bibliography

The bibliography commands should be defined at the end of the preamble so that they supersede any redefinitions that may occur in an optional package such as natbib. First we define a dummy environment so that natbib does not complain when it redefines it:

1459 \newenvironment{thebibliography}[1]{}{}

Now put our definition at the end of the preamble:

1460 \AtBeginDocument{

\bibindent The “open” bibliography format uses an indentation of \bibindent.

1461 \newdimen\bibindent
1462 \setlength\bibindent{1.5em}

thebibliography The ‘thebibliography’ environment executes the following commands:

   \renewcommand{\newblock}{\hskip.11em \@plus.33em \@minus.07em}

— Defines the “closed” format, where the blocks (major units of information) of an entry run together.

\sloppy — Used because it’s rather hard to do line breaks in bibliographies, \sfcode`\.=1000\relax — Causes a ‘.’ (period) not to produce an end-of-

sentence space.

The implementation of this environment is based on the generic list environment. It uses the enumiv counter internally to generate the labels of the list.

When an empty ‘thebibliography’ environment is found, a warning is issued.

1463 \renewenvironment{thebibliography}[1]

1464 {

1465 \chaptertoc{\bibname}{\bibname}%
1466 \list{\@biblabel{\@arabic\c@enumiv}}%
1467 {\settowidth\labelwidth{\@biblabel{#1}}%
1468  \leftmargin\labelwidth
1469  \advance\leftmargin\labelsep

1470  \@openbib@code
1471  \usecounter{enumiv}%
1472  \let\p@enumiv\@empty
1473  \renewcommand\theenumiv{\@arabic\c@enumiv}}%
1474 \sloppy

This is setting the normal (non-infinite) value of \clubpenalty for the whole of this environment, so we must reset its stored value also. (Why is there a % after the second 4000 below?)

1475 \clubpenalty4000
1476 \@clubpenalty \clubpenalty
1477 \widowpenalty4000%
1478 \sfcode`\.\@m}
1479 {\def\@noitemerr
1480 {\@latex@warning{Empty `thebibliography' environment}}%
1481 \endlist}

\newblock The default definition for \newblock is to produce a small space.

1482 \newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}

\@openbib@code The default definition for \@openbib@code is to do nothing. It will be changed by the openbib option.

1483 \let\@openbib@code\@empty

\@biblabel The label for a \bibitem[...] command is produced by this macro. The default from latex.dtx is used.

1484 % \renewcommand*{\@biblabel}[1]{[#1]\hfil}

\@cite The output of the \cite command is produced by this macro. The default from

latex.dtx is used.
1485 % \renewcommand*{\@cite}[1]{[#1]}

This now closes the group of commands defined at the end of the preamble.

1486 } % AtBeginDocument

26.3 The index

theindex The environment ‘theindex’ can be used for indices. It makes an index with two columns, with each entry a separate paragraph. At the user level the commands \item, \subitem and \subsubitem are used to produce index entries of various levels. When a new letter of the alphabet is encountered an amount of \indexspace white space can be added.

1487 \newenvironment{theindex}
1488  {\if@twocolumn
1489  \@restonecolfalse
1490  \else
1491  \@restonecoltrue

1492 \fi

1493  \columnseprule \z@
1494  \columnsep 35\p@
1495  \twocolumn[\@makeschapterhead{\indexname}]%
1496  \@mkboth{\@toupper{\indexname}}{\@toupper{\indexname}}%

1497  \thispagestyle{plain}\parindent\z@
1498  \parskip\z@ \@plus .3\p@\relax
1499  \let\item\@idxitem}

When the document continues after the index and it was a one column document we have to switch back to one column after the index.

1500  {\if@restonecol\onecolumn\else\clearpage\fi}

\@idxitem \subitem \subsubitem These macros are used to format the entries in the index.

1501 \newcommand\@idxitem{\par\hangindent 40\p@}
1502 \newcommand\subitem{\@idxitem \hspace*{20\p@}}
1503 \newcommand\subsubitem{\@idxitem \hspace*{30\p@}}

\indexspace The amount of white space that is inserted between ‘letter blocks’ in the index.

1504 \newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}

26.4 Footnotes

\footnoterule Usually, footnotes are separated from the main body of the text by a small rule. This rule is drawn by the macro \footnoterule. We have to make sure that the rule takes no vertical space (see plain.tex) so we compensate for the natural height of the rule of 0.4pt by adding the right amount of vertical skip.

To prevent the rule from colliding with the footnote we first add a little negative vertical skip, then we put the rule and make sure we end up at the same point where we begun this operation.

1505 \renewcommand\footnoterule{%
1506 \kern-3\p@
1507 \hrule\@width.4\columnwidth
1508 \kern2.6\p@}

\c@footnote Footnotes are numbered within chapters in the report and book document styles.

1509 \@addtoreset{footnote}{chapter}

\@makefntext The footnote mechanism of L^{A}TEX calls the macro \@makefntext to produce the actual footnote. The macro gets the text of the footnote as its argument and should use \@thefnmark as the mark of the footnote. The macro \@makefntextis called when effectively inside a \parbox of width \columnwidth (i.e., with \hsize

= \columnwidth).

An example of what can be achieved is given by the following piece of TEX code.

          \newcommand\@makefntext[1]{%
             \@setpar{\@@par
                      \@tempdima = \hsize
                      \advance\@tempdima-10pt
                      \parshape \@ne 10pt \@tempdima}%
             \par
             \parindent 1em\noindent
             \hbox to \z@{\hss\@makefnmark}#1}

The effect of this definition is that all lines of the footnote are indented by 10pt, while the first line of a new paragraph is indented by 1em. To change these dimensions, just substitute the desired value for ‘10pt’ (in both places) or ‘1em’. The mark is flushright against the footnote.

In these document classes we use a simpler macro, in which the footnote text is set like an ordinary text paragraph, with no indentation except on the first line of a paragraph, and the first line of the footnote. Thus, all the macro must do is set \parindent to the appropriate value for succeeding paragraphs and put the proper indentation before the mark.

1510 \newcommand\@makefntext[1]{%
1511  \parindent 1em%
1512  \noindent
1513  \hb@xt@1.8em{\hss\@makefnmark}#1}

\@makefnmark The footnote markers that are printed in the text to point to the footnotes should be produced by the macro \@makefnmark. We use the default definition for it.

1514 %\renewcommand\@makefnmark{\hbox{\@textsuperscript
1515 %                                  {\normalfont\@thefnmark}}}

27 Initialization

27.1 Words

This document class is for documents prepared in the English language. To prepare a version for another language, various English words must be replaced. All the English words that require replacement are defined below in command names. These commands may be redefined in any class or package that is customising L^{A}TEX for use with non-English languages. These are not meant to be used by the user unless they really need access to change these, thus I have kept them in the same syntax as for the book class.

\contentsname
\listfigurename
\listtablename

1516 \newcommand\contentsname{Contents}
1517 \newcommand\listfigurename{List of Figures}
1518 \newcommand\listtablename{List of Tables}
\bibname \indexname
1519 \newcommand\bibname{Bibliography}
1520 \newcommand\indexname{Index}
\figurename \tablename
1521 \newcommand\figurename{Figure}
1522 \newcommand\tablename{Table}
\partname
\chaptername
\appendixname
\abstractname
\prefacename
\forewordname
\acknowledgementsname

1523 \newcommand\partname{Part}
1524 \newcommand\chaptername{Chapter}
1525 \newcommand\appendixname{Appendix}
1526 \newcommand\abstractname{Abstract}
1527 \newcommand\prefacename{Preface}

1528 \newcommand\forewordname{Foreword}
1529 \newcommand\acknowledgementsname{Acknowledgements}
\forewordname
1530 \newcommand\draftname{Preliminary Draft}

27.2 Date

\today This macro uses the TEX primitives \month, \day and \year to provide the date

of the L^{A}TEX-run.

At \begin{document} this definition will be optimized so that the names of all the ‘wrong’ months are not stored. This optimisation is not done here as that would ‘freeze’ \today in any special purpose format made by loading the class file into the format file.

1531 \def\today{\ifcase\month\or
1532 January\or February\or March\or April\or May\or June\or
1533 July\or August\or September\or October\or November\or December\fi
1534 \space\number\day, \number\year}

27.3 Two column mode

\columnsep This gives the distance between two columns in two column mode.

1535 \setlength\columnsep{10\p@}

\columnseprule This gives the width of the rule between two columns in two column mode. We have no visible rule.

1536 \setlength\columnseprule{0\p@}

27.4 The page style

We use the page style headings by default. We use Arabic page numbers.

1537 \if@final
1538 \if@runningheaders
1539  \pagestyle{headings}
1540 \else
1541  \pagestyle{plain}

1542 \fi

1543 \else
1544 \pagestyle{draft}

1545 \fi

1546 \pagenumbering{arabic}

27.5 Single or double sided printing

When the twoside option wasn’t specified, we don’t try to make each page as long as all the others.

1547 \if@twoside
1548 \else
1549 \raggedbottom

1550 \fi

When the twocolumn option was specified we call \twocolumn to activate this mode. We try to make each column as long as the others, but call sloppy to make our life easier.

1551 \if@twocolumn
1552 \twocolumn
1553 \sloppy
1554 \flushbottom

Normally we call \onecolumn to initiate typesetting in one column.

1555 \else
1556 \onecolumn

1557 \fi

27.6 Single or double spacing

\committeespacing The spacing of the document is single spaced by default unless the committee option is selected. In this case it is set by \commiteespacing which is by default 1.5 spaced so that the thesis committee has room for comments.

1558 \newcommand{\committeespacing}{1.5}
1559 \AtBeginDocument{
1560 \renewcommand\baselinestretch{%
1561  \if@committee%
1562  \committeespacing%
1563  \else 1%
1564  \fi%

1565 }% 1566 }%

Finally, we close off the file so that nothing else is put into the sample thesis.

1567 ⟨/ubcthesis⟩

Index

Numbers written in italic refer to the page where the corresponding entry is described; numbers underlined refer to the code line of the definition; numbers in roman refer to the code lines where the entry is used.

Symbols

\$ . . . . . . . . . . 323, 325

\% … 100, 102, 110, 115

\@Roman . . . . . . . . . . 914

  \@afterheading . . . .

. . . . . . 1025, 1072

  \@afterindentfalse 1004
  \@aligntitle . . . . . 1267
  \@appendixpagefalse 315
  \@appendixpagetrue .

. . . . . . . . 313, 314

  \@appendixpartfalse

. . . . . . . . 310, 312

  \@appendixparttrue . 311

\@author . . . . . 112,

774, 807, 819, 842

                           \@beginparpenalty   \underline{1226}
                           \@biblabel . . . . . . .

. . 1466, 1467, \underline{1484}

                           \@centerheadlinefalse

. . . . . . . . . . . 237

                           \@centerheadlinetrue

. . . . . . . . 235, 236

                           \@chapapp . . . . 616,

650, \underline{921}, 1009, 1033, 1048, 1307

\@chapter . . 1005, \underline{1006}

                           \@chapterheadsfalse 289

                                                     \@chapterheadstrue .

. . . . . . . . 287, 288

                                                     \@chaptertocdots . . . \underline{7}
                                                     \@chaptertocdotstrue 7

\@cite . . . . . . . . . . \underline{1485}

                                                     \@clubpenalty . . . . 1476
                                                     \@committeefalse . . 226
                                                     \@committeetrue . . . 227
                                                     \@copyrightyear . . .

…. \underline{134}, 807, 819

                                                     \@crosshairfalse . . 327
                                                     \@crosshairrule . . .

. 693, 694, 696–698

                                                     \@crosshairs . . 694, 701

\@crosshairtrue 326, 328

\@date . . . . . . . 113, 843

\@dblfloat . 1333, 1346
\@degreetitle . . . . .

…. 122, 123, 786

\@department . . . . . .

. 124, 125, 795, 875 \@dotsep . . . . . . . . \underline{1375}

\@dottedtocline . . .

. . 1430, 1432– 1435, 1446, 1458

\@endonecolumn . . . .

. \underline{19}, 834, 891, 1270

\@endparpenalty . . .

. . . . . . \underline{1226}, 1268 \@endpart . 980, 988, \underline{990} \@eqnnum . . . . . . . . \underline{1321}

\@evenfoot   \underline{554}, 559,

587, 659, 700, 705

\@evenhead   \underline{554}, 560,

588, 674, 702, 706 \@faculty . 126, 127, 792

\@finalfalse . . . . . . 224
\@finaltrue . . . 223, 225
\@fontswitch 1373, 1374
\@hangfrom . . . . . . 1357
\@hangingcaptionsfalse

. . . . . . . . . . . 309

\@hangingcaptionstrue

. . . . . . . . 307, 308

\@headcountfalse . . 296
\@headcounttrue . . .

…. 290, 294, 295

\@headingalignment .

…. \underline{303}, 1042, 1077, 1090, 1100, 1106, 1116, 1122, 1132, 1138, 1148, 1154, 1164

\@headlinefalse . . . 240
\@headlinetrue 238, 239
\@highpenalty . \underline{534},

1392, 1407, 1426 \@idxitem . . 1499, \underline{1501} \@ifstar 1085, 1101,

1117, 1133, 1149

\@institution . . . . .

. 117, 118, 804, 805, 812, 813, 879

\@institutionaddress

…. 119, 120, 880

\@itempenalty . . . . \underline{1226}
\@latex@warning . . 1480

\@latex@warning@no@line

…. 118, 120, 123, 125, 127, 743

\@logo …. 822, 827, 829 \@logocopy 810, 821, 829

\@logocopyheight . .

…. 820, 821, 824

\@logocopywidth 808,

809, 811, 816, 818 \@logofile 743, 744, 824

\@logowidth 826, 827, 829
\@lowpenalty . . . . . .

… \underline{534}, 1226–1228

\@mainmatterfalse .

. . . . . . . . 928, 944

\@mainmattertrue . .

. . . . . . . . 110, 936

\@makecaption . . . . \underline{1348}
\@makechapterhead .

. . 1022, 1024, \underline{1027}

\@makefnmark 1513, \underline{1514}
\@makefntext . . . . . \underline{1510}
\@makeschapterhead .

. . . . . . . 1069, 1071, \underline{1074}, 1495

\@medpenalty . . . . . . \underline{534}
\@minipagefalse . . 1362
\@minipagerestore   \underline{1314}
\@mparswitchfalse . 221
\@mparswitchtrue . . 222
\@mpfootins . . . . . . \underline{1314}
\@nobreakfalse . . . 1402
\@nobreaktrue . . . . 1401
\@noitemerr . . . . . . 1479
\@numberofsignatures

. . . . . . . . 132, 801

\@oddfoot . . . . \underline{554},

559, 575, 587, 633, 659, 700, 705

\@oddhead . \underline{554}, 565,

576, 600, 634, 660, 701, 702, 718

\@openbib@code . . . .

. . 318, 1470, \underline{1483}

\@openrightfalse . . 229
\@openrighttrue . . . 228
\@paragraph . 1133, 1134
\@paragraphstar . . .

. . . . . . 1133, 1144 \@part . . . . . . . 959, \underline{961}

\@partheadsfalse . . 293
\@partheadstrue 291, 292
\@pnumwidth . . . \underline{1375},

1396, 1397, 1399, 1411, 1412, 1424, 1425

                          \@previousdegrees .

. 138, 140, 141, 779 \@ptsize . . . . . . . \underline{5},

34, 52, 218–220, 528

                          \@restonecolfalse .

…. 95, 1384, 1440, 1451, 1489

                          \@restonecoltrue . .

…. 28, 1382, 1438, 1449, 1491

\@roman . . . . . . . . . 1231

                          \@runningheadersfalse

. . . . . . . . . . . 234

                          \@runningheaderstrue

. . . . . . . . 232, 233

                          \@schapter . 1005, \underline{1068}

\@section . . 1085, 1086

                          \@sectionstar 1085, 1096
                          \@settopoint . . . . . .

…. 46, 83, 84, 92 \@spart . . . . . . 959, \underline{982}

                          \@startonecolumn . .

. \underline{19}, 748, 855, 1263

                          \@startsection 1087,

1097, 1103, 1113, 1119, 1129, 1135, 1145, 1151, 1161

                          \@starttoc . . . . . . .

. . 1387, 1443, 1454

                          \@submitdate . . . . . .

…. \underline{134}, 806, 816

                          \@subparagraph . . . .

. . . . . . 1149, 1150

                          \@subparagraphstar .

. . . . . . 1149, 1160

                          \@subsection 1101, 1102
                          \@subsectionstar . .

. . . . . . 1101, 1112

                          \@subsubsection . . .

. . . . . . 1117, 1118

                          \@subsubsectionstar

. . . . . . 1117, 1128

                          \@subtitle . . . 116, 765
                          \@subtitlefalse . . . 115
                          \@subtitletrue . . . . 116
                          \@tempbaselinestretch

. 754, 837, 856, 892

\@tempname . . 1166–

1168, 1172– 1174, 1178– 1180, 1184– 1186, 1190– 1192, 1196– 1198, 1202–1204

\@textsuperscript 1514

\@thanks . . . . . . . . . 841

\@thefnmark . . . . . . 1515

\@title … 111, 760, 844

\@tocrmarg . . . . . . \underline{1375}
\@toctoupper  \underline{17}, 964,

966, 1011, 1013, 1016, 1091, 1107, 1123, 1139, 1155, 1169, 1175, 1181, 1187, 1193, 1199, 1205

\@tocupperfalse 300, 302
\@tocuppertrue . . . . 301
\@topnewpage 1022, 1069

\@topnum . . . . . . . . 1003

\@toupper . . \underline{17}, 616,

622, 630, 650, 656, 974, 1033, 1048, 1063, 1080, 1166, 1172, 1178, 1184, 1190, 1196, 1202, 1496

\@twocolumnfalse . . 230
\@twocolumntrue . . . 231
\@twosidefalse . . . . 221
\@twosidetrue . . . . . 222
\@upperauthorfalse .

. . . . . . . . 249, 251

\@upperauthortrue . 250
\@upperdegreetitlefalse

. . . . . . . . . . . 254

\@upperdegreetitletrue

. . . . . . . . 252, 253

\@upperdepartmentfalse

. . . . . . . . 258, 260

\@upperdepartmenttrue

. . . . . . . . . . . 259

\@upperfacultyfalse

. . . . . . . . 255, 257

\@upperfacultytrue . 256
\@upperfalse . . 297, 299
\@upperinstitutionfalse

. . . . . . . . . . . 263

\@upperinstitutiontrue

. . . . . . . . 261, 262

\@uppersubtitlefalse

…. 245, 246, 248

\@uppersubtitletrue

. . . . . . . . 244, 247

\@uppertitlefalse .

. . . . . . . . 243, 245

\@uppertitletrue . . 244
\@uppertrue . . . . . . . 298

\@width . . . . . . . . . 1507 \10pt . . . . . . . . . . . . \underline{218} \11pt . . . . . . . . . . . . \underline{218} \12pt . . . . . . . . . . . . \underline{218}

\␣ . . . . . . . . 63, 118, 121, 123, 125, 127, 131, 169, 616, 618, 627, 650, 652, 663, 680, 743, 807, 819

A

\a4paper . . . . . . . . . \underline{196} \a5paper . . . . . . . . . \underline{196}

\abovecaptionskip .

. . . . . . \underline{1348}, 1353 abstract (environ-

ment) . . . . . \underline{1250}

\abstractfont . . . . .

…. 149, 334, 378, 426, 472, 1267

\abstractname . . . . .

. . 1264–1267, \underline{1523}

\acknowledgements .

. . . . . . . . 157, \underline{899}

\acknowledgementsname

. . . . . . . 899, \underline{1523}

\addcontentsline 964,

966, 1010, 1013, 1016, 1169, 1175, 1181, 1187, 1193, 1199, 1205, 1265

\addtocontents . . . .

. . . . . . 1019, 1020

\addtocounter . . . . . 889

\alpha . . . . . . . . . . . 83 \and . . . . . . . . . . . . . 848 \appendix … 385, \underline{1304}

\appendixname 1307, \underline{1523}
\appendixpage . . . . . \underline{313}
\appendixpart . . . . . \underline{310}

\arabic . . . . . . 107–112

\arraycolsep . . . . . \underline{1309}
\arrayrulewidth . . \underline{1311}
\AtBeginDocument . .

. 9, 10, 1460, 1559

\AtEndOfPackage . . . 317

\author … 101, \underline{111}, 846

\authorfont . . . \underline{142},

380, 427, 474, 771

\authorizationform .

. . . . . . . . 129, \underline{850}

B

\b5paper . . . . . . . . . \underline{196}

\backmatter . . . . . . . \underline{938}
\baselineskip . . . . . 695
\baselinestretch \underline{532},

754, 755, 837, 856, 857, 892, 1560

\belowcaptionskip .

. . . . . . \underline{1348}, 1365 \bf . . . . . . . . . . . . \underline{1369} \bibindent 319, 320, \underline{1461}

\bibliography . . . . . 382
\bibliographystyle . 381

\bibname … 1465, \underline{1519} \bibsize . . . . . . . . . 172 \bold . . . . . . . . . . . . \underline{423}

\bottomfraction . . . \underline{547}
\brokenpenalty . . . . \underline{543}

C

\c@bottomnumber . . . \underline{546}
\c@chapter . . . . . . .

\underline{907}, 915, 1308, 1319, 1324, 1337

\c@dbltopnumber . . . \underline{551}

\c@enumi . . . . . . . . 1229 \c@enumii . . . . . . . 1230

\c@enumiii . . . . . . 1231
\c@enumiv . . . . . . . .

. . 1232, 1466, 1473

\c@equation . . . . . . 1319

\c@figure . . . . . . . \underline{1322}

\c@footnote . . . . . . \underline{1509}
\c@paragraph . . \underline{907}, 919

\c@part . . . . . . \underline{907}, 914

\c@secnumdepth 614,

625, 648, \underline{906}, 962, 973, 1006, 1044

\c@section . . . \underline{907}, 916
\c@subparagraph  \underline{907}, 920
\c@subsection . \underline{907}, 917

\c@subsubsection . .

. . . . . . . . \underline{907}, 918 \c@table . . . . . . . . \underline{1335}

\c@tocdepth . 1391, 1406
\c@topnumber . . . . . . \underline{544}
\c@totalnumber . . . . \underline{548}

\cal . . . . . . . . . . . . \underline{1373} \caption . . 199, 328, 356

\captionbodyfont . .

. 168, 353, 400, 447, 494, 1354, 1357

\captionheaderfont .

. 167, 352, 399, 446, 493, 1354, 1357

\centerheadline . . . \underline{235}
\centerheads . . . . . . \underline{303}

\centering 305, 969, 983

\centerline . . . . . . . 828

\changes . . . . . . . . 1281 \chapter 168, 215, 239,

253, 333, 338, 372, 386, \underline{1001}, 1173

\chapterafterskip .

. \underline{173}, 359, 406, 453, 500, 1065, 1082

\chapterauthorfont .

. . . . . . . . 154, 339, 385, 432, 479

\chapterbeforeskip .

. \underline{173}, 357, 404, 451, 498, 1028, 1075

\chapterbetweenskip

. \underline{173}, 358, 405, 452, 499, 1037, 1052

\chapterfont . . . . . .

. 152, 337, 383, 430, 477, 1032, 1047

\chapterheads . . . . . \underline{287}
\chaptermark 612, 646,

689, 730, \underline{900}, 1018

\chaptername . 921, \underline{1523}
\chaptertitlefont .

. 153, 338, 384, 431, 478, 1057, 1080

\chaptertoc 216, 235,

897–899, \underline{1165}, 1264, 1386, 1442, 1453, 1465

\clap . . . . . 693, 695–697

\cleardoublepage . .

. 852, 924, 932, 940, 947, 1001, 1380

\clearpage . . . . . . .

. 833, 890, 926, 934, 942, 949, 1001, 1270, 1500

\clubpenalty . . . . . .

. . \underline{537}, 1475, 1476

\columnsep . 1494, \underline{1535}
\columnseprule . . . .

. . . . . . 1493, \underline{1536}

\columnwidth . . . . . 1507
\committee . . . . . . . \underline{226}
\committeespacing   \underline{1558}
\contentsname 1386, \underline{1516}
\copyright . . . 807, 819
\copyrightyear . . . .

…. 102, 134, 136 \count . . . . . . . 734, 735

\crosshair . . . \underline{326}, \underline{692}

\cs . . . . . . . 1281, 1282

D

\date . . . . . . . . \underline{111}, 847

\dblfloatpagefraction

. . . . . . . . . . . \underline{553}

\dbltopfraction . . . \underline{552}
\DeclareOldFontCommand

. . . . . . 1366–1372

\DeclareRobustCommand

. . . . . . 1373, 1374

\defaultfonts . . . . . \underline{329}
\degreetitle . . . . . .

. . 96, \underline{117}, 265, 269, 273, 277, 281

\degreetitlefont \underline{142},

381, 428, 475, 785

\department . . . . 88, \underline{117}
description (environ-

ment) . . . . . \underline{1244}

\descriptionlabel .

. . . . . . 1246, \underline{1248}

\displaywidowpenalty

. . . . . . . . . . . \underline{539}

\dotfill . . . . . . . . . 739 \dots . . . . . . . . . . . . 289

\doublerulesep . . . \underline{1312}

\draft . . . . . . . . . . . \underline{223} \draftname 664, 679, 1530

E

\e@skip . . . . . . \underline{556}, 592, 604, 638, 665, 678, 710, 722

\edef . 754, 837, 856, 892 \emph . . . . . 170, 175, 240 \empty . . 1091, 1107,

1123, 1139, 1155 \endgraf . . . . . . . . . 741

\enlargethispage . . 752

environments:

abstract . . . . . \underline{1250}

   description . . . \underline{1244}

figure* . . . . . . \underline{1329} figure . . . . . . . \underline{1329}

   quotation . . . . . \underline{1293}

quote . . . . . . . . \underline{1300} table* . . . . . . . \underline{1342} table . . . . . . . . \underline{1342}

   thebibliography  \underline{1463}

theindex . . . . . \underline{1487}

\evensidemargin . . .

. 85, 87–90, 92, 106

\examplefont . . 164,

349, 396, 443, 490 \exclude . . . . . . . . . 18

\executivepaper . . . \underline{196}
\ext@figure . . . . . . \underline{1325}
\ext@table . . . . . . \underline{1338}

F

\faculty . . . . . . . . . \underline{117}

\facultyfont . . \underline{142}, 791

\fboxrule . . . . . . . \underline{1315} \fboxsep . . . . . . . . \underline{1315} figure (environment) \underline{1329} figure* (environment)

. . . . . . . . . . \underline{1329}

\figurefont . . . 169,

354, 401, 448, 495

\figurename . 1328, \underline{1521}

\file . . . . . . . . . . . . 14 \final . . . . . . . . . . . \underline{223} \fleqn . . . . . . . . . . . \underline{242}

\floatpagefraction . \underline{550}
\flushbottom . . . . . 1554
\fnum@figure . . . . . 1328
\fnum@table . . . . . . 1341

\footins . . . . . . . . 1314

\footnoterule . . . . \underline{1505}

\foreword . . . . . . . . \underline{897}

\forewordname . . . . .

. . 898, \underline{1523}, \underline{1530}

\fps@figure . . . . . . \underline{1325}
\fps@table . . . . . . \underline{1338}

\frac . . . . . . . . . . . . 293

\frontmatter . . 124, \underline{922}
\ftype@figure . . . . \underline{1325}
\ftype@table . . . . . \underline{1338}

G

\GetFileInfo . . . . . . 12

H

\hangingcaptions . . \underline{307}

\hb@xt@ . 1363, 1399,

1424, 1425, 1513

\headcount . . . . . . . \underline{295}
\headheight . . . . . . . 701
\headingstextfont .

. 165, 350, 397, 444, 491, 556, 591, 604, 638, 664, 679, 709, 722

\headline . . . . . . . . \underline{238}

\headlinespace   \underline{554},

563, 569, 580, 596, 607, 641, 669, 683, 714, 725

\hline . . . . . . . 181,

196, 322, 324, 326 \hours . . . . . . . . . . . . \underline{8} \href . . . . . . 62, 182,

184, 186, 188, 190, 192, 194, 201

\Huge . . . . . . . . 336, 338 \huge . . . . . . . . 335, 337

I

\if@appendixpage . . 313
\if@appendixpart . . 310
\if@centerheadline .

…. 235, 593, 603, 637, 711, 721

\if@chapterheads 287,

1029, 1045, 1058

\if@chaptertocdots .

. . . . . . . . 7, 1417

\if@committee 226, 1561
\if@crosshair . 326, 692

\if@final … 223, 1537

\if@hangingcaptions

. . . . . . . 307, 1356

\if@headcount . . . . .

. 290, 294, 617, 626, 651, 1049, 1059

\if@headline . . 238,

563, 568, 579, 595, 606, 640, 668, 682, 713, 724

\if@mainmatter . . . .

. \underline{110}, 615, 649, 1007, 1030, 1046

\if@openright . . . . .

. \underline{109}, 923, 931, 939, 946, 992, 1001

\if@partheads . 291, 972

\if@restonecol . . . .

… \underline{6}, 99, 1388, 1444, 1455, 1500

\if@runningheaders .

. . . . . . . 232, 1538

\if@subtitle . . 115, 763
\if@tocupper . . . 18, 300
\if@twocolumn . . . . .

. 27, 952, 1021, 1068, 1207, 1216, 1263, 1381, 1437, 1448, 1488, 1551

\if@twoside . 62, 557,

585, 991, 1260, 1547 \if@upper . . . . . 17, 297

\if@upperauthor 249, 774
\if@upperdegreetitle

. . . . . . . . 252, 786

\if@upperdepartment 258
\if@upperfaculty . .

. . . . . . . . 255, 792

\if@upperinstitution

…. 261, 804, 812

\if@uppersubtitle .

. . . . . . . . 246, 765

\if@uppertitle 243, 760

\iflogo … 284, 529, 823

\includegraphics . .

. . . . . 66, 355, 824

\indexname . . . . . . .

. . 1495, 1496, \underline{1519}

\indexsize . . . . . . . 171
\indexspace . . . . . . \underline{1504}

\infty . . . . . . . . . . . 292

\institution . . . 86, \underline{117}
\institutionaddress

. . . . . . . . 87, \underline{117}

\institutionfont \underline{142},

333, 391, 439, 486 \int . . . . . . . . . . . . . 292

\interlinepenalty .

. \underline{542}, 970, 984, 1043, 1056, 1079

\it . . . . . . . . . . . . \underline{1370} \item . . . . . . . . 230,

231, 235, 240, 344, 345, 1291, 1298, 1302, 1499

\itemfont . . . . 163,

348, 395, 442, 489

\itemindent . . . . . . .

320, 321, 1245, 1287, 1288, 1295 \itemsep . . . . . . . . 1286 \itshape …. 441, 1370

J

\jot . . . . . . . . . . . . \underline{1320}

L

\l@chapter . . . . . . \underline{1405}

\l@figure . . \underline{1446}, 1457

\l@paragraph . . . . . \underline{1432}

\l@part . . . . . . . . . \underline{1390}

\l@section . . . . . . \underline{1429}
\l@subparagraph . . \underline{1432}
\l@subsection . . . . \underline{1432}
\l@subsubsection . \underline{1432}

\l@table . . . . . . . . \underline{1457} \label …. 199, 329, 360

\labelenumi . . . . . . \underline{1233}
\labelenumii . . . . . \underline{1233}
\labelenumiii . . . . \underline{1233}
\labelenumiv . . . . . \underline{1233}
\labelitemi . . . . . . \underline{1240}
\labelitemii . . . . . \underline{1240}
\labelitemiii . . . . \underline{1240}
\labelitemiv . . . . . \underline{1240}
\labelsep . . . . \underline{1223},

1248, 1313, 1469

\labelwidth . . . \underline{1223},

1245, 1467, 1468

\landscape . . . . . . . \underline{214}

\LARGE 377, 424, 429–

431, 471, 476–478 \Large 331, 340, 382,

426, 433, 474, 479 \large 332, 334, 339,

341, 378, 379, 381, 383–386, 425, 428, 432, 434, 472, 473, 475, 480, 481, 1399

\LaTeX . . . . . 2, 131, 169 \Lcount . . . . . . . . . . 15 \ldots …. 155, 298, 333 \leaders . . . . . . . . 1418

\leftheads . . . . . . . \underline{303}
\leftmargin 319, \underline{1207},

1245, 1289, 1290, 1296, 1301, 1468, 1469

\leftmargini   \underline{1207}, 1224
\leftmarginii . . . . \underline{1207}
\leftmarginiii . . . \underline{1207}
\leftmarginiv . . . . \underline{1207}
\leftmarginv . . . . . \underline{1207}
\leftmarginvi . . . . \underline{1207}

\leftskip . . 1414, 1415

\legalpaper . . . . . . . \underline{196}

\leqno . . . . . . . . . . . \underline{241}

\letterpaper . . . . . . \underline{196}

\lineskip . \underline{530}, 695, 772

\linewidth . 31, 47, 101
\listfigurename . . .

. . . . . . 1442, \underline{1516}

\listoffigures 148, \underline{1436}
\listoftables 147, \underline{1447}
\listparindent 321,

1288, 1294, 1295

\listtablename . . . .

. . . . . . 1453, \underline{1516}

\lofindent . . \underline{192}, 1446
\loflabelwidth  \underline{194}, 1446

\logo . . . . . . . . . . . . \underline{284}

\logofalse . . . 284, 286

\logofile . . . . . . . . \underline{743} \logotrue . . . . . . . . 285 \loop . . . . . . . . . . . . 735 \Lopt . . . . . . . . . . . . 13

\lotindent . . \underline{192}, 1458
\lotlabelwidth  \underline{194}, 1458

M

\ma . . . . . . . . . . . . . \underline{264}

\mainmatter 240, 247, \underline{930}

\makebox 562, 567, 578, 590, 602, 636, 662, 676, 708, 720

\makelabel . . . . . . 1246
\maketitle . . . 128, \underline{745}
\MakeUppercase 17, 18,

760, 765, 774, 786, 792, 804, 812

\marginparsep . . . . .

48, 49, 68, 76, 103

\marginparwidth . . .

. 59, 67–69, 75– 78, 80, 81, 84, 104

\masc . . . . . . . . . . . . \underline{264} \mathbf . . . . . . . . . 1369 \mathcal . . . . . . . . 1373 \mathit . . . . . . . . . 1370

\mathnormal . . . . . . 1374

\mathrm . . 292, 293, 1366 \mathsf . . . . . . . . . 1367 \mathtt . . . . . . . . . 1368 \meng . . . . . . . . . . . . \underline{264} \minutes . . . . . . . . . . \underline{8} \mit . . . . . . . . . . . . \underline{1373} \mkern . . . . . . . . . . 1419 \msc . . . . . . . . . . . . . \underline{264} \multiply . . . . . . 13, 15

N \newblock … 324, \underline{1482} \newcount . . . . . . . 8, 9 \newif …. 6, 7, 109,

110, 115, 223, 226, 232, 235, 238, 243, 246, 249, 252, 255, 258, 261, 284, 287, 290, 291, 294, 297, 300, 307, 310, 313, 326

                          \noappendixpage . . . \underline{313}
                          \noappendixpart . . . \underline{310}
                          \nobreakspace . . . . .

. . 974, 1328, 1341

                          \nocenterheadline . \underline{235}
                          \nochapterheads . . . \underline{287}
                          \nocrosshair . . . . . . \underline{326}
                          \noexpand . 118, 121,

123, 125, 127, 743

                          \nohangingcaptions . \underline{307}
                          \noheadcount . . . . . . \underline{295}
                          \noheadline . . . . . . . \underline{238}

\nologo . . . . . . . . . . \underline{284}

                          \nopartheads . . . . . . \underline{291}
                          \normalcolor . . . . . 1425
                          \normalfont . . . 835,

971, 985, 1042, 1078, 1090, 1100, 1106, 1116, 1122, 1132, 1138, 1148, 1154, 1164, 1241, 1249, 1366– 1372, 1425, 1515

                          \normallineskip . . . \underline{530}
                          \normalsize . . . 142,

330, 342–344, 836

                          \norunningheaders . \underline{232}
                          \notocupper . . . . . . . \underline{300}

\noupper . . . . . . . . . \underline{297} \now . . . . . . . \underline{8}, 663, 680

                          \num@figure . . . . . . \underline{1325}
                          \num@table . . . . . . \underline{1338}
                          \numberofsignatures

. . 89, \underline{132}, 266, 270, 274, 278, 282

O

                          \oddsidemargin . . . .

… 60, 65, 66, 73, 74, 83, 90, 105

                                                   \oldevensidemargin .

. . . . . . 25, 85, 106

                                                   \oldlinewidth 20, 31, 101
                                                   \oldmarginparsep . .

. . . . . . 22, 48, 103

                                                   \oldmarginparwidth .

. . . . . . 23, 59, 104

                                                   \oldoddsidemargin .

. . . . . . 24, 60, 105

                                                   \oldparindent 21, 51, 102
                                                   \oldtextwidth 19, 30, 100

\Omega . . . . . . . . . . . 83

                                                   \onecolumn . 93, \underline{230},

953, 1382, 1438, 1449, 1500, 1556

\oneside . . . . . . . . . \underline{221} \openany . . . . . . . . . \underline{228} \openbib . . . . . . . . . \underline{316}

                                                   \openright . . . . . . . \underline{228}
                                                   \overfullrule . 224, 225

P \p@enumii . . . . . . . \underline{1237}

                                                   \p@enumiii . . . . . . \underline{1237}

\p@enumiv . . \underline{1237}, 1472

                                                   \pagenumberfont . . .

…. 166, 351, 398, 445, 492, 562, 567, 578, 591, 604, 638, 663, 677, 709, 722

                                                   \pagenumbering . . . .

… 929, 937, 1546

                                                   \paperheight 197, 200,

203, 206, 209, 212, 215, 216, 749

                                                   \paperwidth . . . . 32,

63, 71, 87, 198, 201, 204, 207, 210, 213, 216, 217

                                                   \paragraph . . . . . . \underline{1133}
                                                   \paragraphafterskip

. \underline{173}, 371, 418, 465, 512, 1137, 1147

                                                   \paragraphbeforeskip

. \underline{173}, 370, 417, 464, 511, 1136, 1146

                                                   \paragraphfont . . . .

. 158, 343, 389, 436, 483, 1138, 1148

\paragraphindent . .

. \underline{173}, 369, 416, 463, 510, 1135, 1145

\paragraphmark . . . . \underline{900}
\paragraphtoc . . . . \underline{1165}

\parbox 561, 566, 577, 589, 601, 635, 661, 675, 707, 719

\parindent . . . . 51,

53, 55, 57, 102, 372, 419, 466, 513, \underline{533}, 1041, 1076, 1396, 1411, 1497, 1511

\parsep . . . . . 322, 1297 \parskip …. \underline{533}, 1498 \part …. 250, \underline{945}, 1167

\partbetweenskip . .

…. \underline{173}, 356, 403, 450, 497, 975

\partfont . . . . 150,

335, 382, 429, 476

\partheads . . . . . . . \underline{291}

\partname … 974, \underline{1523}

\partnamefont . 151,

336, 974, 978, 986 \parttoc . . . . . . . . \underline{1165} \phantom . . . . . . . . . 556 \phd . . . . . . . . . . . . . \underline{264} \pi . . . . . . . . . 353, 359 \pm . . . . . . 100, 102, 110

\postdisplaypenalty  \underline{539}
\predisplaypenalty . \underline{539}

\preface . . . . . 154, \underline{897}

\prefacename . 897, \underline{1523}
\previousdegree . . .

. . . . . . 92, 93, \underline{138} \prog . . . . . . . . . . . . 17

\providecommand . 26, 98
\ProvidesFile . . . . . 2–4

\ps@clear . . . . . . . . 699 \ps@draft . . . . . . . . \underline{658}

\ps@headings . . . . . . \underline{585}
\ps@myheadings . . . . \underline{704}

\ps@plain . . . . . . . . \underline{557} \psfrag . . . . . . . . . . 353 \pstyle . . . . . . . . . . 16

Q

quotation (environ-

ment) . . . . . \underline{1293} quote (environment) \underline{1300}

R

\raggedleft . . . . . . . 304

\raise . . . . . . . . . . . 701

                          \RecordChanges . . . . 10

\ref . . . . . . . . . . . . . 364

                          \renewenvironment 1463

\repeat . . . . . . . . . . 741

                          \RequirePackage . . . 529

\rho . . . . . . . . . . . . . 112

                          \rightheads . . . . . . . \underline{303}

\rm . . . . . . . . . . . . \underline{1366} \Roman . . . . . . . . . . . 106 \rule . . . . . . . . 870, 884

                          \runningheaders . . . \underline{232}

S \sbox . . . . . . . . . . . 1354 \sc . . . . . . . . . . . . \underline{1370} \scshape . . . . . . . . 1372 \section . . . . . 256,

340, 348, \underline{1085}, 1179

                          \sectionafterskip .

. \underline{173}, 362, 409, 456, 503, 1089, 1099

                          \sectionbeforeskip .

. \underline{173}, 361, 408, 455, 502, 1088, 1098

                          \sectionfont . . . . . .

. 155, 340, 386, 433, 480, 1090, 1100

                          \sectionindent . . . .

. \underline{173}, 360, 407, 454, 501, 1087, 1097

                          \sectionmark . . . . . .

. 623, 690, 731, \underline{900}

                          \sectiontoc . . . . . . \underline{1165}

\SetTime . . . . . . . \underline{8}, 224

                          \settoheight . 821, 1031

\sf . . . . . . . . . . . . \underline{1366} \sfbold . . . . . . . . . . \underline{470}

                          \sffamily . . . . 471–

484, 486, 487, 489, 491, 493, 1367

                          \signatures . . . \underline{733}, 801

\sim . . . . . . . . 70, 78, 80 \sl . . . . . . . . . . . . \underline{1370} \slanted . . . . . . . . . \underline{376} \small . 15, 397–400,

444, 445, 491, 492 \subitem . . . . . . . . \underline{1501}

                          \submitdate 103, 135, 137
                          \subparagraph . . . . .

. . 287, \underline{1149}, 1203

                          \subparagraphafterskip

. \underline{173}, 374, 421, 468, 515, 1153, 1163

                                                   \subparagraphbeforeskip

. \underline{173}, 373, 420, 467, 514, 1152, 1162

                                                   \subparagraphfont .

. 159, 344, 390, 437, 484, 1154, 1164

                                                   \subparagraphindent

. \underline{173}, 372, 419, 466, 513, 1151, 1161

                                                   \subparagraphmark . \underline{900}
                                                   \subparagraphtoc . \underline{1165}
                                                   \subsection . . . . . . .

263, 366, \underline{1101}, 1185

                                                   \subsectionafterskip

. \underline{173}, 365, 412, 459, 506, 1105, 1115

                                                   \subsectionbeforeskip

. \underline{173}, 364, 411, 458, 505, 1104, 1114

                                                   \subsectionfont . . .

. 156, 341, 387, 434, 481, 1106, 1116

                                                   \subsectionindent .

. \underline{173}, 363, 410, 457, 504, 1103, 1113

                                                   \subsectionmark . . . \underline{900}
                                                   \subsectiontoc . . . \underline{1165}
                                                   \subsubitem . . . . . . \underline{1501}
                                                   \subsubsection 274,

\underline{1117}, 1191, 1274

                                                   \subsubsectionafterskip

. \underline{173}, 368, 415, 462, 509, 1121, 1131

                                                   \subsubsectionbeforeskip

. \underline{173}, 367, 414, 461, 508, 1120, 1130

                                                   \subsubsectionfont .

. 157, 342, 388, 435, 482, 1122, 1132

                                                   \subsubsectionindent

. \underline{173}, 366, 413, 460, 507, 1119, 1129

                                                   \subsubsectionmark . \underline{900}
                                                   \subsubsectiontoc   \underline{1165}

\subtitle …. 100, \underline{115}

                                                   \subtitlefont . . . . .

…. \underline{142}, 332, 379, 425, 473, 764

T

                                                   \tabbingsep . . . . . . \underline{1313}

                                                   \tabcolsep . . . . . . \underline{1310}

table (environment) \underline{1342}
table* (environment) \underline{1342}

\tablefont . . . 170,

355, 402, 449, 496

\tablename . 1341, \underline{1521}
\tableofcontents . .

. . . . . . . 146, \underline{1379}

\textasteriskcentered

. . . . . . . . . . 1242

\textbullet . . . . . . 1240
\textendash . . . . . . 1241
\textfraction . . . . . \underline{549}
\textheight . . . . . . . 751
\textperiodcentered

. . . . . . . . . . 1243 \textsc . . . . . . . . . . 17 \textsf . . . . . . . . . . 13 \textsl . . . . . . . . 15, 16 \texttt . 14, 62, 131,

169, 183, 185, 187, 189, 191, 193, 195, 266, 268, 276, 356, 359, 374–376, 388

\textwidth . . . . 30,

42, 44, 46, 47, 64, 72, 89, 100, 355, 561, 562, 566, 567, 577, 578, 589, 590, 601, 602, 635, 636, 661, 662, 675, 676, 707, 708, 719, 720, 753

\thanks . . . . . . 839, 893

thebibliography (envi-

ronment) . . \underline{1463}

\thechapter . . . 107,

108, 618, 652, \underline{914}, 1009, 1011, 1035, 1049, 1060, 1308, 1319, 1324, 1337

\theenumi . . . . \underline{1229},

1233, 1237, 1238

                   \theenumii . . . . . . .

. . \underline{1229}, 1234, 1238

                   \theenumiii . . . . . . .

. . \underline{1229}, 1235, 1239

                   \theenumiv . . . . . . .

. . \underline{1229}, 1236, 1473

                   \theequation   \underline{1317}, 1321
                   \thefigure . 1323, 1328

theindex (environ-

ment) . . . . . \underline{1487}

                   \theorembodyfont 162,

347, 394, 441, 488

                   \theoremheaderfont .

. . . . . . . . 161, 346, 393, 440, 487

\thepage 562, 567, 578, 591, 604, 638, 666, 677, 709, 722

                   \theparagraph . . . . .

…. 111, 112, \underline{914} \thepart . . . . . . . . .

. 106, \underline{914}, 964, 974

                   \thesection . . . . . . .

. 108, 109, 627, \underline{914}

                   \thesubparagraph . .

. . . . . . . . 112, \underline{914}

                   \thesubsection . . . .

…. 109, 110, \underline{914}

                   \thesubsubsection .

…. 110, 111, \underline{914} \thetable . . 1336, 1341

                   \thispagestyle . . . .

. 167, 208, 232, 746, 851, 853, 951, 994, 1002, 1497

\time . . . . . . . . . . 10, 14 \title …. 99, \underline{111}, 845

                   \titlefont   \underline{142}, 331,

377, 424, 471, 759

                   \titlepagefont . . . .

…. \underline{142}, 330, 756 \tocupper . . . . . . . . \underline{300} \today …. 103, 114,

137, 663, 680, \underline{1531}

                                             \topfraction . . . . . . \underline{545}
                                             \translatorfont 160,

345, 392, 438, 485 \tt . . . . . . . . . . . . \underline{1366} \ttfamily . . . . . . . 1368

                                             \twocolumn 107, \underline{230},

999, 1388, 1444, 1455, 1495, 1552

\twoside …. \underline{221}, 1252

U

                                             \ubcauthorizationform

. . . . . . . . . . . \underline{850}

\upper . . . . . . . . . . . \underline{297}

                                             \upperauthor/noupperauthor

. . . . . . . . . . . \underline{243}

                                             \upperdegreetitle/noupperdegreetitle

. . . . . . . . . . . \underline{243}

                                             \upperdepartment/noupperdepartment

. . . . . . . . . . . \underline{243}

                                             \upperfaculty/noupperfaculty

. . . . . . . . . . . \underline{243}

                                             \upperinstitution/noupperinstitution

. . . . . . . . . . . \underline{243}

                                             \uppersubtitle/nouppersubtitle

. . . . . . . . . . . \underline{243}

                                             \uppertitle/nouppertitle

. . . . . . . . . . . \underline{243}

\upshape . . . . . 346, 393

V \vbox . . . . . 694, 803, 810 \verb . . . . . . . . 230,

232, 233, 235, 239, 240, 276, 338

\vrule . . . . . . . 695–697 \vss . . . . . . . . . 695, 698

W

                                             \widowpenalty   \underline{537}, 1477

Change History

v1.0d

General:  Added  use  of

\NeedsTeXFormat . . . . . . . . . 23

Made eqaution and eqnarray environments in the fleqn option up to date with latex.dtx …. 23 remove \@in, made option makeindex a synonym for option makeidx . . . . . . . . . . . . 23

                                      removed \@minus, \@plus,
                                       \@settopoint, \@setfontsize;

they are now in the kernel … 23 Replaced \bf with \bfseries; \rm with \rmfamily . . . . . . . 23

v1.0f

General: Made all lines shorter than 72 characters . . . . . . . . . . . . 23 Use class ltxdoc document class 10

\bf: Macro added . . . . . . . . . . . 69 \it: Macro added . . . . . . . . . . . 70 \rm: Macro added . . . . . . . . . . . 69 \sc: Macro added . . . . . . . . . . . 70 \sf: Macro added . . . . . . . . . . . 69 \sl: Macro added . . . . . . . . . . . 70 \tt: Macro added . . . . . . . . . . . 69

v1.0g

General: Distinguished between compatibility and ‘normal’ mode for the font changing commands. . . . . . . . . . . . . . . . . . 69 Made change in eqnarray for the fleqn option, as suggested by Rainer. . . . . . . . . . . . . . . . . . 23

\cal: Macro added . . . . . . . . . . 70 theindex: Moved the setting of

\@restonecoltrue . . . . . . . . 75

\listoffigures: Moved the setting

of \@restonecolfalse . . . . . 73

\listoftables: Moved the setting

of \@restonecolfalse . . . . . 74

\mit: Macro added . . . . . . . . . . 70

\tableofcontents: Moved the set-
ting of \@restonecolfalse . . 71
executivepaper: Removed typo,

A4 is not 279 mm high . . . . . 29 v1.0h

General: Corrected some typos. ASAJ. . . . . . . . . . . . . . . . . . 32 Made the definitions of the font- and size-changing commands use \renew rather than \new. Defined the float pa-

rameters with \renewcommand

rather than \newcommand. Corrected some typos in the fleqn option. Replaced two occurrences of -\@secpenalty by \@secpenalty. ASAJ. . . . . . . 23 These are now defined in the ker-

nel, so use \@renewfontswitch.

Compatibility mode defines

\@renewfontswitch to do noth-

ing, so we don’t need to check for compatibility mode any more. . . . . . . . . . . . . . . . . . . 69

\bottomfraction:  Replaced
\newcommand with \renewcommand.

ASAJ. . . . . . . . . . . . . . . . . . 40

\dblfloatpagefraction:  Re-
placed \newcommand with
\renewcommand. ASAJ. . . . . . 41
\dbltopfraction:  Replaced
\newcommand with \renewcommand.

ASAJ. . . . . . . . . . . . . . . . . . 41

\floatpagefraction:  Re-
placed \newcommand with
\renewcommand. ASAJ. . . . . . 40
\l@part: Replaced -\@secpenalty

by \@secpenalty. ASAJ. … 71

\textfraction:  Replaced
\newcommand with \renewcommand.

ASAJ. . . . . . . . . . . . . . . . . . 40

\topfraction: Replaced \newcommand
with \renewcommand. ASAJ. . 40

v1.0i

thebibliography: Corrected definition of thebibliography for article . . . . . . . . . . . . . . . . . . . . 74

v1.0j

General: Added \normalfont back in the definitions of \rm etc. as this should be the default behaviour . . . . . . . . . . . . . . . . 69

Added \ProvidesFile to size

files . . . . . . . . . . . . . . . . . . . 23 Use \cmd in change entries … 23

v1.0k

General: Removed some ty-

pos/bugs . . . . . . . . . . . . . . . 23

\l@chapter: Added \hbox around

dots. . . . . . . . . . . . . . . . . . . 73 v1.0l

General: add the extension to the names of the files . . . . . . . . . 23 Changed version numbering; moved leqno and fleqn options to an external file. . . . . . . . . . 23

\l@chapter: Don’t reset to

\rmfamily . . . . . . . . . . . . . . 73 v1.0m

\labelwidth: Use em instead of pt to remain compatible with old styles . . . . . . . . . . . . . . . . . . 62

\leftmarginvi: Use em instead of pt to remain compatible with old styles . . . . . . . . . . . . . . . 62

\parindent: \parindent should be

different, depending on the pointsize . . . . . . . . . . . . . . . . 39 v1.0n

General: Removed code for makeidx option and made it a separate package; removed use of \setlength from list parameters. . . . . . . . . . . . . . . . . . . . 23

v1.0o

General: Small documentation

changes . . . . . . . . . . . . . . . . 23 v1.0q

General: Small documentation

changes . . . . . . . . . . . . . . . . 23 v1.0r

General: Moved driver code in order

not to need a separate driver . 10 v1.10

General: Forword → Foreword. 51, 77 v1.11

\@chapter: Renamed \beforechaptervspace
etc. to \chapterbeforeskip

etc. . . . . . . . . . . . . . . . . . . . 57 Used \@toctoupper rather than \@toupper . . . . . . . . . . . . . . 57

\@part: Renamed \beforechaptervspace
etc. to \chapterbeforeskip

etc. . . . . . . . . . . . . . . . . . . . 55 Used \@toctoupper rather than \@toupper . . . . . . . . . . . . . . 55

General: Added \@toctoupper . . 24 Added tocupper option …. 5, 33 Included lengths as well as fonts. These should probably be lengths and use \setlength, but this seems to add an extra space between the heading and the text which I do not know how to avoid. . . . . . . . . . . . . 34 Provided a starred form of the commands . . . . . . . . . . . . . . 59 Provided heading spacing lengths. . . . . . . . . . . . . . . . . 28

Renamed \beforechaptervspace
etc. to \chapterbeforeskip

etc. and moved these . . . . . . 28 Replaced magic numbers …. 59 Used \@toctoupper rather than \@toupper . . . . . . . . . . . 59, 61

\section: Used \@toctoupper

rather than \@toupper . . . . . 59 v1.12

General: Added \lofindent and

\loflabelwidth to replace

magic numbers. . . . . . . . . . . 73

Added  \lofindent  and

\lotindent . . . . . . . . . . . . . 29

Added \loflabelwidth and
\lotlabelwidth . . . . . . . . . . 29
Added  \lotindent  and
\lotlabelwidth to replace

magic numbers. . . . . . . . . . . 74 v1.13

\@makechapterhead: Moved brace
so that \par\nobreak are in-

cluded in the same font grouping: this removes a bug where the chapter heading was not spaced properly between lines. 58

\@makeschapterhead: Moved brace
so that \par\nobreak are in-

cluded in the same font grouping: this removes a bug where the chapter heading was not spaced properly between lines. 59

v1.14

\@startonecolumn:  Added

\faculty command. . . . . . . . 27 General: Darren added \degreetitlefont.

Added  \titlepagefont,
\facultyfont, \institutionfont

. . . . . . . . . . . . . . . . . . . . . . . 28 Darren added ma, masc, meng options and change number of signatures. . . . . . . . . . . . . . . 32 Darren added the graphics package if the logo option is used. 39 Darren added upperdegreetitle and upperinstitution options. Added a bunch of others. … 32

\maketitle: Added \@faculty and

similar options. . . . . . . . . . . . 47

Fixed \MakeUppercase problem:

make sure that you give the arguments. The construction

\if· · ·\MakeUppercase\fi{text}

does not work. . . . . . . . . . . . 47 v1.15

\maketitle: Darren changed

\normalfont to \titlepagefont

. . . . . . . . . . . . . . . . . . . . . . . 47 v1.17

\chapter: We now set the pagestyle for this page to plain as was the default for the original classes. This was the default behaviour and is referenced for example in the fancyhdr package. Ultimately there should be an option for setting this style. … 56

v1.19

General: Added % to \def\@evenhead{

and \def\@oddhead{ com-

mands on their own line so that an extra space is not inserted causing the previous overflow. Now the 0.99 factor can be removed. Thanks to James P. Zibin for this fix. . . . . . . . . . . 41

v1.1a

\@endonecolumn: New algorithm
for \marginparwidth . . . . . . . 25

New algorithm for \oddsidemargin . . . . . . . . . . . . . . . . . . . . . . . 25

\@makefntext: Use \@makefnmark

to generate footnote marker . . 77 General: Removed \typeout mes-

sages . . . . . . . . . . . . . . . . . . 23 \brokenpenalty: Show correct de-

fault which is 100 . . . . . . . . . 40 v1.1f

General: Inserted forgotten line

break . . . . . . . . . . . . . . . . . . 23 v1.2a

General: Added openright option.

(LL) . . . . . . . . . . . . . . . . . . . 23 v1.2b

General: Added the … matter com-

mands. (LL) . . . . . . . . . . . . . 23 v1.2d

General: Checked the file for long lines and wrapped them when necessary; made a slight implementation modification to the openright and openany options. 23

v1.2e

General: \@renewfontswitch has
become \DeclareOldFontCommand

. . . . . . . . . . . . . . . . . . . . . . . 69 v1.2g

\sc: Added warning if used in math

mode . . . . . . . . . . . . . . . . . . 70 \sl: Added warning if used in math

mode . . . . . . . . . . . . . . . . . . 70 v1.2i

General: Use LaTeX instead of La-

TeX2e in messages . . . . . . . . 23 \l@chapter: Don’t print a toc line

when the tocdepth counter is less than 0 . . . . . . . . . . . . . . 72 \l@part: Don’t print a toc line when the tocdepth counter is less then -1 . . . . . . . . . . . . . . 71

v1.2j

General: Removed the use of

\fileversion c.s. . . . . . . . . . 23 v1.2k

                                   \descriptionlabel:  Inserted

\normalfont . . . . . . . . . . . . . 63

                                   \labelitemii: Inserted \normalfont

. . . . . . . . . . . . . . . . . . . . . . . 63 v1.2l

General: changed some \changes

entries . . . . . . . . . . . . . . . . . 23 v1.2m

General: Forgot a few entries … 23 v1.2o

General: Changed file information 23 v1.2p

General: Moved identification and

driver to the front of the file . 23 v1.2q

                                   \@makecaption: Use \sbox\@tempboxa
                                       instead of \setbox\@tempboxa\hbox

to make this colour safe . . . . . 69 v1.2t

General: Refrased a few sentences

to prevent overfull hboxes … 23 v1.2v

\@dotsep: Changed documentation

from > or = to ≥ . . . . . . . . . 70

                                   \@makechapterhead:  Added
                                       \interlinepenalty\@M to pre-

vent a page break in the middle of a title . . . . . . . . . . . . . . . . 58 Added a \nobreak to prevent a page break between the chapter number and the chapter title . 58

                                   \@makeschapterhead:  Added
                                       \interlinepenalty\@M to pre-

vent a page break in the middle of a title . . . . . . . . . . . . . . . . 59

General: Made the oneside option work for the book class . . . . . 23 removed typo . . . . . . . . . . . . . 78

\if@mainmatter: Moved the alloca-

                                       tion of \if@mainmatter here . 26

v1.2w

General: Use \newcommand* …. 11 Use \newcommand* for commands with arguments . . . . . . . . . . . 23

\mit: Now define \cal and \mit us-

                                       ing \DeclareRobustCommand* 70

v1.2x

\@makecaption: Due to a change in the way floats are handled we

need to set the \if@minipage

switch to false . . . . . . . . . . . . 69 v1.2y

\descriptionlabel: made com-

mand short . . . . . . . . . . . . . . 63 v1.2z

\@endonecolumn:  Also  take
\marginparsep into account

here . . . . . . . . . . . . . . . . . . . 25 General: Always use \cs in

\changes entries . . . . . . . . . . 23

thebibliography: added a missing

percent character . . . . . . . . . 74 v1.3a

General: Replaced all \hbox to by

\hb@xt@ . . . . . . . . . . . . . . . . 23

\footnoterule: use \@width . . . 76

v1.3b

thebibliography: Added missing

braces in definition of thebibliography environment. . . . . . . 74

\l@chapter: Added missing braces around argument to \addpenalty. . . . . . . . . . . . . 72

\l@part: Added missing braces around argument to \addpenalty. . . . . . . . . . . . . 71

v1.3c

\@makechapterhead:  replace
\reset@font with \normalfont

. . . . . . . . . . . . . . . . . . . . . . . 57

\@makeschapterhead:  re-
place  \reset@font  with

\normalfont . . . . . . . . . . . . . 59

\@part: replace \reset@font with

\normalfont . . . . . . . . . . . . . 55

\@spart: replace \reset@font with

\normalfont . . . . . . . . . . . . . 56

\section: replace \reset@font

with \normalfont . . . . . . . . . 59 v1.3d

General: Replaced all \uppercase

by \MakeUppercase . . . . . . . . 23

v1.3f

\subsubitem: Corrected error in

definition of \@idxitem. . . . . 76 v1.3h

General: Split up to save save stack /1742 . . . . . . . . . . . . . . . . . . 77 v1.3i

General: Moved code for generic class options leqno and fleqn to kernel file . . . . . . . . . . . . . . . 79

v1.3j

\@endpart: move docstrip guard to avoid defining \@endpart in article . . . . . . . . . . . . . . . . . . . 56

\@makechapterhead: replace braces

by \space . . . . . . . . . . . . . . 58 \@part: add missing percent …. 55

thebibliography: remove surplus

spaces . . . . . . . . . . . . . . . . . 74 \l@part: Add missing percent . . 72 \maketitle: use \let to save space 50 \mit: Remove surplus braces … 70

\part: Replace \hbox by \null . 55
\subsubitem: use \@idxitem to

save space . . . . . . . . . . . . . . 76 \today: use \edef to save a lot of

space . . . . . . . . . . . . . . . . . . 78 quotation: stop \item scanning for

[ with \relax . . . . . . . . . . . . 65 quote: stop \item scanning for [

with \relax . . . . . . . . . . . . . 65 v1.3k

\@openbib@code: Macro added . . 75

\@startonecolumn:  Macro

\if@openbib removed . . . . . . 26

thebibliography: Code for open-

bib changed . . . . . . . . . . . . . 74

\maketitle: Disable \title and

similar decls . . . . . . . . . . . . . 50 \newblock: Default changed. … 75 openbib: openbib option reimple-

mented . . . . . . . . . . . . . . . . . 34 v1.3l

General: Disabled in compatibility mode all options that are new in L^{A}TEX 2ε. . . . . . . . . . . . . . 23

v1.3n

\maketitle: Empty \@date as well 50

v1.3q

\leftmarginvi: Temporary(?) fix: revert to setting \leftmargin at outer level . . . . . . . . . . . . 62

v1.3r

\frontmatter: Make this command

react to the option openany . . 54 \mainmatter: Make this command

react to the option openany . . 54 \part: Make this command react to

the option openany . . . . . . . . 54 v1.3s

\labelitemii: Replaced -- with

\textendash . . . . . . . . . . . . . 63 v1.3t

thebibliography: Added setting

value of \@clubpenalty . . . . . 74 v1.3u

\c@figure: Added test for non-zero

chapter number . . . . . . . . . . 67 \c@table: Added test for non-zero

chapter number . . . . . . . . . . 68

\labelitemii:  Changed  to
\textbullet, \textasteriskcentered
and \textperiodcentered . . . 63

\theequation: Added test for non-

zero chapter number . . . . . . . 66 v1.3v

General: Documentation fixes… 23 v1.3w

\today: use \def again, latex/2620 78 v1.3x

\l@part: Removed setting of \@tempdima as this macro does not use \numberline to set the toc line. . . . . . . . . . . . . . . . . 71

v1.3y

\frontmatter: Two years on: Make this command not react to the option openany as this makes the verso/recto numbering wrong: see pr/2754 for discussion . . . . . . . . . . . . . . . . . 54

\mainmatter: Two years on: Make this command not react to the option openany as this makes the verso/recto numbering wrong: see pr/2754 for discussion . . . . . . . . . . . . . . . . . 54

v1.3z

\appendix: Redefine \thechapter

and  \@chapapp  globally

(pr/2862) . . . . . . . . . . . . . . . 65 v1.4a

\l@chapter: we should use

\@tocrmarg; see PR/2881…. 72 \l@part: we should use

\@tocrmarg; see PR/2881…. 71 v1.4b

\@endpart: Only add empty page after part if twoside and openright (pr/3155) . . . . . . . . . . . 56

v1.4c

                                   \listoffigures: Moved \@mkboth

out of heading arg (pr/3285) . 73

                                   \listoftables: Moved \@mkboth

out of heading arg (pr/3285) . 74 v1.4d

                                   \l@part: Initialize \@tempdima to

some sensible value (pr/3327) 71 v1.4e

\@part: Replaced tilde with

\nobreakspace (pr/3310) … 55 \num@figure: Replaced tilde with

\nobreakspace (pr/3310) … 68 \num@table: Replaced tilde with

\nobreakspace (pr/3310) … 68 v1.9

                                   \@startonecolumn: Added \number

before \year macro. . . . . . . . 27

                                   General: Added \@headingalignment.

. . . . . . . . . . . . . . . . . . . . . . . 60

                                      Changed  \textwidth  to

0.99\textwidth to prevent overflows. Not a good fix. … 41 Fixed numbering bug by increasing level . . . . . . . . . . . . . . . . 59

                                   \authorizationform: Fixed spac-

ing problem with committee option. . . . . . . . . . . . . . . . . 50, 51

\maketitle: Fixed spacing problem with committee option… 47, 49