26
The fsuthesis Class * Bret Whissel [email protected] January 12, 2016 1 Introduction The fsuthesis class may be used to generate Theses and Dissertations in the for- mat required by the Florida State University Graduate School as described by the document Guidelines & Requirements for Electronic Theses, Treatises and Disser- tations, 2015–2016 edition. This class extends the standard L A T E X document class report.cls, adding elements and re-formatting as required to comply with FSU’s standards. Official changes to this class file will be reflected in the first two elements of the version number. Any local changes to this file may be tracked by incrementing the third element of the version number (see the \ProvidesClass macro above in this document’s source code). Dependencies: In addition to the primary L A T E X packages, this class requires the external package ifpdf, which ships with most distributions of L A T E X. 2 What Has Gone Before The first FSU L A T E X style file was based on macros from Stanford University, mod- ified to comply with FSU standards by Meteorology professor Jon Ahlquist. Mimi Burbank, until her retirement from the Supercomputer Computations Research Institute (SCRI), maintained another set of macros for campus-wide use. Subse- quent updates were provided by Wickus Nienaber, a Ph.D. student in Computer Science, and Jack Tyndall, a staff member with the Graduate School. Started in 2009, this version is an entirely new re-write by Bret Whissel, presently with the FSU Information Technology Services department’s Unix Group. Corrections and improvements should be directed to his attention at [email protected]. * This document corresponds to fsuthesis v3.7.0, dated 2016/01/12. 1

The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

The fsuthesis Class∗

Bret [email protected]

January 12, 2016

1 Introduction

The fsuthesis class may be used to generate Theses and Dissertations in the for-mat required by the Florida State University Graduate School as described by thedocument Guidelines & Requirements for Electronic Theses, Treatises and Disser-tations, 2015–2016 edition. This class extends the standard LATEX document classreport.cls, adding elements and re-formatting as required to comply with FSU’sstandards.

Official changes to this class file will be reflected in the first two elements ofthe version number. Any local changes to this file may be tracked by incrementingthe third element of the version number (see the \ProvidesClass macro above inthis document’s source code).

Dependencies: In addition to the primary LATEX packages, this class requiresthe external package ifpdf, which ships with most distributions of LATEX.

2 What Has Gone Before

The first FSU LATEX style file was based on macros from Stanford University, mod-ified to comply with FSU standards by Meteorology professor Jon Ahlquist. MimiBurbank, until her retirement from the Supercomputer Computations ResearchInstitute (SCRI), maintained another set of macros for campus-wide use. Subse-quent updates were provided by Wickus Nienaber, a Ph.D. student in ComputerScience, and Jack Tyndall, a staff member with the Graduate School.

Started in 2009, this version is an entirely new re-write by Bret Whissel,presently with the FSU Information Technology Services department’s UnixGroup. Corrections and improvements should be directed to his attention [email protected].

∗This document corresponds to fsuthesis v3.7.0, dated 2016/01/12.

1

Page 2: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

3 Option Registration

hardcopy

expanded

chapterleaders

copyright

In addition to the options provided by the standard report class, this class pro-vides four supplemental options: hardcopy, expanded, chapterleaders, andcopyright.

The hardcopy option will increase the size of the margin along the binding-edge. If the standard option twoside is also given, then the binding-edge will beshifted for even and odd pages, and the standard option openright will be forced.

The expanded option increases the spacing of baselines. This requires manysubtle tweaks in standard report definitions, as vertical spacing at chapter headingsand other places becomes irregular and must be accounted for.

The chapterleaders option causes the display of leader dots in the Table ofContents for chapter headings, which would otherwise be suppressed. This couldbe nice for people who request that section/sub-section headings in the ToC besuppressed.

The copyright option includes a copyright notice on the title page of thedocument, using the author’s name and defense year to generate the line.

\if@hardcopy

\if@expanded

\ifch@pleaders

\ifc@pyright

Declaring the document options merely sets appropriate flags, which we definehere. We deal with the options later.

1 \newif\if@hardcopy

2 \newif\if@expanded

3 \newif\ifch@pleaders

4 \newif\ifc@pyright

The rest of this section is boiler-plate for handling the options and passingstandard options on to the report class for handling. The final step is to load thereport class, so that we may continue to override its features here. Then we loadthe ifpdf package since we will need it down the road.

5 \DeclareOption{hardcopy}{\@hardcopytrue}

6 \DeclareOption{expanded}{\@expandedtrue}

7 \DeclareOption{chapterleaders}{\ch@pleaderstrue}

8 \DeclareOption{copyright}{\c@pyrighttrue}

9 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}

10 \ProcessOptions \relax

11 \LoadClass{report}

12 \RequirePackage{ifpdf}

4 Establishing Page Margins

Now we’ll set up page margins that FSU expects. In general, the August 2013Guidelines & Requirements for Electronic Theses, Treatises and Dissertations re-quires that margins be at least 1 inch on all sides.

\headheight

\headsep

We do not use running headers, but should someone turn them on, we set themto appear (illegally) in the area above the page body.

2

Page 3: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

13 \setlength{\headheight}{\topskip}

14 \setlength{\headsep}{10pt}

\textheight

\footskip

We set the \textheight to accommodate a fixed number of lines whose heightsare defined by \baselineskip. (This parameter is established by the documentfont size selection.) We want the page body to occupy the entire vertical space,less the top and bottom margins and the space reserved for the pagenumber. TheGuidelines specify a 1/2-inch space between the last line and the page number,so we set \footskip to be in that ballpark to start. Once we’ve established theactual text height, we’ll reset \footskip to absorb any additional space.

15 \setlength{\footskip}{0.35in}

16 \setlength{\@tempdima}{\paperheight}

17 \addtolength{\@tempdima}{-2in}

18 \addtolength{\@tempdima}{-\footskip}

19 \divide\@tempdima\baselineskip

20 \@tempcnta=\@tempdima

21 \setlength\textheight{\@tempcnta\baselineskip}

Now that the text height has been calculated, we fix the \footskip setting totake up the slack.

22 \setlength{\footskip}{\paperheight}

23 \addtolength{\footskip}{-2in}

24 \addtolength{\footskip}{-\textheight}

\topmargin Finally, we set \topmargin now that we’ve fixed the rest of the vertical space.

25 \setlength{\topmargin}{\paperheight}

26 \addtolength{\topmargin}{-2in}

27 \addtolength{\topmargin}{-\headheight}

28 \addtolength{\topmargin}{-\headsep}

29 \addtolength{\topmargin}{-\textheight}

30 \addtolength{\topmargin}{-\footskip}

\textwidth

\oddsidemargin

\evensidemargin

Accounting for the required margins, standard 8.5x11” paper allows a maximumLATEX \textwidth of 6.5 inches. The horizontal margins are derived from thiscolumn width, so with the following code, if a narrower papersize is selected (e.g.,A4), the margins will be narrower.

31 \setlength{\textwidth}{6.5in}

32 \setlength{\@tempdima}{\paperwidth}

33 \addtolength{\@tempdima}{-2in}

34 \addtolength{\@tempdima}{-\textwidth}

35 \divide\@tempdima by2

36 \setlength{\oddsidemargin}{\@tempdima}

37 \setlength{\evensidemargin}{\@tempdima}

3

Page 4: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

5 Processing the Document Options

5.1 Handling the hardcopy Option

\evenoddoffset For printing hard copies of a thesis or dissertation, we allow a little extra mar-gin space along the binding edge. The size of this extra space is defined by\evenoddoffset. For two-sided hard copies, we force chapters (and everythingusing that level heading) to begin on right-hand (recto, odd-numbered) pages. Themargin adjustments are added to the \begin{document} hooks, so that the usermay redefine \evenoddoffset in the document preamble. The hardcopy optionwill produce a non-compliant document, but it may be nice for a personal hardcopy.

38 \newlength{\evenoddoffset}

39 \setlength{\evenoddoffset}{0.25in}

40 \if@hardcopy%

41 \AtBeginDocument{\addtolength{\textwidth}{-\evenoddoffset}%

42 \addtolength{\oddsidemargin}{\evenoddoffset}}

43 \if@twoside\@openrighttrue%

44 \AtBeginDocument{\addtolength{\evensidemargin}{-\evenoddoffset}}

45 \else

46 \AtBeginDocument{\addtolength{\evensidemargin}{\evenoddoffset}}\fi

47 \fi

5.2 Handling the chapterleaders Option

This option makes a minor change to the Table of Contents by adding leader dotsfrom the chapter title to the page number. The default LATEX report class doesnot provide leaders on chapter headings, just section and lower heading levels. Ifthe user is writing a paper without subheadings, then the appearance of the Tableof Contents might be improved by including such leader dots.

\l@chapter If the user has requested the chapterleaders document option, \l@chapter isre-defined to provide the leaders as requested.

48 \ifch@pleaders

49 \renewcommand*\l@chapter[2]{%

50 \ifnum \c@tocdepth >\m@ne

51 \addpenalty{-\@highpenalty}%

52 \vskip 1.0em \@plus\p@

53 {\@dottedtocline{0}{0pt}{1.5em}{\bfseries#1}{\bfseries#2}}

54 \fi}

55 \fi

5.3 Handling the expanded Option

Expanded spacing requires a lot of tweaking. The standard report-class mecha-nisms allow a user to redefine \baselinestretch, and then all baseline leading isincreased by this factor. Instead, the expanded spacing environment stretches the\baselineskip by half again as much, but only for the normal font size in the

4

Page 5: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

main body of the text. Other environments revert to single-spacing (e.g., the var-ious Tables of Contents in the front matter, table and figure captions, footnotes),and vertical spacing in list environments is also scaled back.

The definitions which follow are only defined if the expanded option has beenselected.

56 \if@expanded

5.3.1 Baseline Parameters

\adjbaselineskip

\blstretchiness

\smblstretchiness

To start, we define the adjustment to \baselineskip to be some fraction of theoriginal \baselineskip. This adjustment is not defined to be a rubber length,since we generally want fixed, predictable baselines while we are in single-spacemode. In expanded spacing mode, however, we can allow a little stretchinesssince we’ve already got some whitespace between lines. We define some baselinestretchiness with \blstretchiness, and a smaller amount of stretchiness with\smblstretchiness.

57 \newlength{\adjbaselineskip}%

58 \setlength{\adjbaselineskip}{0.5\baselineskip}%

59 \def\blstretchiness{0pt plus.4pt minus.3pt}

60 \def\smblstretchiness{0pt plus.3pt minus.2pt}

Note: If tweaking \adjbaselineskip here, be sure to evaluate the \listbaselineskipparameter below as well. It may need to be adjusted if the baselineskip strays toofar from 150%.

\listbaselineskip We use the \listbaselineskip to reset to narrower spacing for list environments(see below). In the ballpark of the 150% expanded baselineskip, a baselineskipreduced to 80% of expanded looks OK.

61 \newlength{\listbaselineskip}%

62 \@tempdima=\baselineskip\advance\@tempdima by\adjbaselineskip

63 \setlength{\listbaselineskip}{0.8\@tempdima}

5.3.2 Redefining \normalsize

\FSU@onormalsize

\normalsize

\expandspacing

We preserve the original definition of \normalsize in \FSU@onormalsize, andthen we redefine \normalsize to call \expandspacing instead. \expandspacingfirst calls the old definition of \normalsize to establish the original baselines.(Otherwise, multiple calls to \expandspacing will generate wider and wider base-line spacings.)

64 \let\FSU@onormalsize=\normalsize%

65 \newcommand{\expandspacing}{\FSU@onormalsize%

66 \addtolength{\baselineskip}{\adjbaselineskip}%

67 \addtolength{\baselineskip}{\blstretchiness}}%

68 \let\normalsize=\expandspacing%

5

Page 6: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

5.3.3 Chapter Heading Adjustment

\afterheadadj While in expanded-spacing mode, the first line of text after chapter headings willbe set a little lower than if we were in single-space mode. (We will be in single-space mode for the automatically-generated lists in the front-matter, for example,while most of the other chapter-level sections will be in expanded-spacing mode.)To compensate, we should call the macro \afterheadadj to remove extra verticalspace when we go into expanded-spacing mode after chapter headings.

69 \newcommand{\afterheadadj}{\addvspace{-\adjbaselineskip}}%

5.3.4 Adjustments to the \list Environments

In expanded-spacing mode, most of the \list environments look pretty bad if leftwith the standard expanded baselines. We attempt to compensate by reducing theamount of baseline skip while in list mode. We accomplish this by first calling thestandard list startup machinery, and then reducing the baseline skip and baselinestretchiness.

\f@olist

\list

We preserve the regular function of the \list command in the macro \f@olist,and then we redefine \list to scale back the standard expanded spacing inthe list environments. The \baselineskip adjustment occurs only in theouter-most \list environment. (All inner \lists will share the same reduced\baselineskip.)

70 \let\f@olist=\list

71 \def\list#1#2{%

72 \f@olist{#1}{#2}

73 \ifnum\@listdepth=1

74 \setlength{\baselineskip}{\listbaselineskip}

75 \addtolength{\baselineskip}{\smblstretchiness}

76 \fi

77 }

\f@oendlist

\endlist

After our mutation of \list, we undo our damage here by re-defining \endlist

to restore expanded spacing at the close of the outer-most \list environment.

78 \let\f@oendlist=\endlist

79 \def\endlist{%

80 \f@oendlist

81 \ifnum\@listdepth=0 \normalsize \fi

82 }

verbatim

verbatim*

A verbatim environment looks awkward with expanded spacing, so we re-definethe environment to revert to standard spacing here. We handle both the standardand starred versions. (These definitions are borrowed from the LATEX code andmodified.)

83 \let\f@overbat=\verbatim

84 \expandafter\let\expandafter\f@overbats

85 \expandafter=\csname endverbatim*\endcsname

86 \let\f@oendverb=\endverbatim

6

Page 7: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

87 \def\verbatim{\par\FSU@onormalsize\f@overbat}

88 \def\endverbatim{\f@oendverb\afterheadadj}

89 \@namedef{verbatim*}{\par\FSU@onormalsize\@verbatim\@sxverbatim}

90 \expandafter\let\csname endverbatim*\endcsname =\endverbatim

5.3.5 Fallback Definitions

We allow our redefinitions to be NO-OPs if the expanded document option hasnot been selected. (Some of our later macro definitions attempt to call a few ofthe macros above without testing \if@expanded.)

91 \else

92 \let\expandspacing=\relax

93 \let\FSU@onormalsize=\relax

94 \let\afterheadadj=\relax

95 \let\f@olist=\list

96 \let\f@oendlist=\endlist

97 \fi

98 \FSU@onormalsize

singlespaced There may be times when it is necessary to provide single-spacing while inexpanded mode. This environment provides that. If not in expanded mode, itbecomes a normal paragraph.

99 \newenvironment{singlespaced}

100 {\par\if@expanded\FSU@onormalsize\addvspace{\adjbaselineskip}\fi}{\par}

6 Testing the Presence of hyperref

\if@hyperloaded We may want to enhance the behavior of a few of our macros if the hyperref packagehas been loaded. We cannot test for package loading after begin{document}, andthe user’s \usepackage{hyperref} will have occurred after this file has beenloaded. So what we can do is create a new test here and have it initialized in the\begin{document} hooks. This test is used to add PDF bookmarks to the titlepage and to the table of contents page (if hyperref has been loaded).

101 \newif\if@hyperloaded

102 \AtBeginDocument{\@ifpackageloaded{hyperref}

103 {\@hyperloadedtrue}{\@hyperloadedfalse}}

7 Definition of Title Page Macros

7.1 Token Storage

\@degree

\@department

\@college

\@degreeyear

\@defensedate

\@manuscripttype

These definitions should be redefined within the document’s preamble, set to sanevalues using the corresponding macros in the next section.

104 \gdef\@degree{\ClassError{fsuthesis}%

105 {No \protect\degree\space given}%

106 {You must provide a \protect\degree{Degree Name}%

7

Page 8: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

107 \space command}}

108 \gdef\@department{\ClassError{fsuthesis}%

109 {No \protect\department\space given}%

110 {You must provide a \protect\department{Name of Department}%

111 \space command}}

112 \gdef\@college{\ClassError{fsuthesis}%

113 {No \protect\college\space given}%

114 {You must provide a \protect\college{My College or School}%

115 \space command}}

116 \gdef\@degreeyear{\ClassError{fsuthesis}%

117 {No \protect\degreeyear\space given}%

118 {You must provide a \protect\degreeyear{20NN}\space command}}

119 \gdef\@defensedate{\ClassError{fsuthesis}%

120 {No \protect\defensedate\space given}%

121 {You must provide a \protect\defensedate{Month dd, 20NN}%

122 \space command}}

123 \gdef\@manuscripttype{\ClassError{fsuthesis}%

124 {No \protect\manuscripttype\space given}%

125 {You must provide a \protect\manuscripttype{Dissertation}%

126 \space command}}

7.2 Title Page Token-Setting Macros

\degree

\department

\college

\degreeyear

\defensedate

\manuscripttype

\semester

\if@department

These macros redefine the corresponding tokens described above. These shouldall be redefined within the preamble section of the thesis or dissertation, withthe exception of \department, which may not be appropriate in some Schools orColleges.

127 \newif\if@department

128 \newcommand*{\degree}[1]{\gdef\@degree{#1}}

129 \newcommand*{\department}[1]{\gdef\@department{#1}\@departmenttrue}

130 \newcommand*{\college}[1]{\gdef\@college{#1}}

131 \newcommand*{\degreeyear}[1]{\gdef\@degreeyear{#1}}

132 \newcommand*{\defensedate}[1]{\gdef\@defensedate{#1}}

133 \newcommand*{\manuscripttype}[1]{\gdef\@manuscripttype{#1}}

134 \newcommand*{\semester}[1]{}

7.3 Title Page Generation

\maketitle This macro generates the title page by expanding a few of the macros that shouldhave been specified in the thesis document’s preamble. No page number is writ-ten on the title page, but the page should occupy all the vertical space (withinthe margins), including the space normally occupied by the page number. Thewhole page is enclosed in a centering environment, within the LATEX report class’stitlepage environment.

If the hyperref package has been loaded, we first add a PDF bookmark tothe title page for convenience. Then the pagebody is expanded vertically bythe amount \footskip. Next we restore single-spacing with \FSU@onormalsize.(We’ll double-space manually by inserting \baselineskips where necessary.) We

8

Page 9: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

use \vfills to distribute vertical white space evenly across the page. We don’tknow how long the user’s title is, and we’ll let LATEX decide how best to break thetitle into multiple lines. However, the title should be double-spaced, so we double\baselineskip before processing the title. This adds one extra blank line beforethe title, so we compensate by \vskiping a negative \baselineskip first.

135 \renewcommand{\maketitle}{\begin{titlepage}%

136 \ifpdf\if@hyperloaded\pdfbookmark[0]{Title Page}{MainTitlePage}\fi\fi

137 \enlargethispage{\footskip}%

138 \begin{center}%

139 \FSU@onormalsize FLORIDA STATE UNIVERSITY

140 \vskip\baselineskip

141 \MakeUppercase{\@college}%

142 \vfill

143 \vskip-\baselineskip

144 {\addtolength{\baselineskip}{\baselineskip}%

145 \MakeUppercase{\@title}\vfill}

146 By

147 \vskip\baselineskip

148 \MakeUppercase{\@author}

149 \vfill

150 A \@manuscripttype{} submitted to the\\

151 \if@department\@department\else\@college\fi\\

152 in partial fulfillment of the\\

153 requirements for the degree of\\

154 \@degree

155 \vfill

156 \@degreeyear%

157 \vfill

158 \ifc@pyright%

159 Copyright \copyright\ \@degreeyear\ \@author. All Rights Reserved.\fi%

160 \pagebreak[4]

161 \end{center}

162 \end{titlepage}

163 }

8 Definition of Committee Membership Page Macros

8.1 Committee Membership Page Definitions

\commwidth

\commskip

These macros control the width of the committee member column and the verticalspace between members. The \commwidth length determines the width of thename column. Names and titles are set flush-left within this column, but thecolumn itself is set flush-right on the page. Therefore, increasing the width herewill move the start of the column to the left.

We allow plenty of vertical stretchiness between entries as defined here in the\commskip parameter, and significant shrink capacity as well. With this arrange-

9

Page 10: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

ment we can accommodate three to ten committee members without stressing thepage design significantly.

164 \newlength{\commwidth}

165 \setlength{\commwidth}{4in}

166 \newlength{\commskip}

167 \setlength{\commskip}{0.5in plus0.25fil minus.3in}

\committeeperson Theses/Dissertations require listing the student’s graduate committee. Commit-tee members are added to the page by means of the \committeeperson macro. Itworks by expanding and re-defining the \@thecmems macro with additional argu-ments each time it is called. The committee page then inserts the macro’s text asis. I use \expandafter here since I just want one level of expansion rather thanthe complete-to-the-core expansion of \xdef. We account for the extra \vskip atthe top of the column later.

168 \gdef\@thecmems{}

169 \newcommand{\committeeperson}[2]{%

170 \expandafter\gdef\expandafter\@thecmems\expandafter{%

171 \@thecmems\vskip\commskip\makebox[\commwidth][l]{#1}\\

172 \makebox[\commwidth][l]{#2}}}

8.2 Committee Page Generation

\makecommitteepage This macro inserts the boiler-plate text into a committee page. For the text atthe top of the page, we first test whether the author and defense date informationcan fit on one line. If it can, we eject the line as is and start a new paragraphfor the supervisory committee line. If it won’t fit (because the author’s nameis exceedingly long), then allow the supervisory committee line to join with theprevious line in a single paragraph.

When the \@thecmems macro was created, it included a \vskip before the thefirst committee member. Before we expand the \@thecmems macro, we \vskip

backwards so that we have tighter control over the spacing balance here. (It’s easierthan inserting extra logic in the \expandafter series in the \committeeperson

macro.)

173 \newcommand{\makecommitteepage}{\FSU@onormalsize\setcounter{page}{2}%

174 \if@openright\cleardoublepage\else\clearpage\fi%

175 {%\addtolength{\baselineskip}{0.5\baselineskip}%

176 \setbox\@tempboxa=\hbox{\@author{} defended this

177 \MakeLowercase{\@manuscripttype} on \mbox{\@defensedate}.}

178 \ifdim\wd\@tempboxa>\textwidth\raggedright\noindent\unhbox\@tempboxa{} \else

179 \noindent\unhbox\@tempboxa\par\fi

180 \noindent The members of the supervisory committee were:\par}

181 \vfil\begin{flushright}\vskip-\commskip%

182 \addtolength{\baselineskip}{0.4\baselineskip}\@thecmems\end{flushright}\vfil

183 \vskip\baselineskip

184 {%\addtolength{\baselineskip}{0.5\baselineskip}

185 \noindent

186 The Graduate School has verified and approved the

10

Page 11: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

187 above-named committee members, and certifies that the

188 \MakeLowercase{\@manuscripttype} has been approved in accordance

189 with university requirements.\par}\vfil\pagebreak[4]}

9 Setting PDF Metadata

\@subject

\@keywords

\subject

\keywords

\if@subject

\if@keywords

Whether or not the user is aware of it, the PDF programs, drivers, and converterswill set some document metadata in the output, such as document title, author,etc. If these are not set explicitly, then they could be set to some unknown values.Here we attempt to provide some adequate defaults. To start, we define a fewextra macros which the user can use to enhance the metadata inserted into thedocument.

190 \gdef\@subject{}

191 \gdef\@keywords{}

192 \newif\if@subject

193 \newif\if@keywords

194 \newcommand*{\subject}[1]{\gdef\@subject{#1}\@subjecttrue}

195 \newcommand*{\keywords}[1]{\gdef\@keywords{#1}\@keywordstrue}

\@pdfmetadata

\@hypermetadata

We must provide two different methods for setting metadata, since the hyperrefpackage will ignore the PDF information keywords. Execution is deferred untilthe begin{document}, so all the required information should be available. Notethat the hyperref package will convert many accented or special characters in the\@title and \@author strings (but not all) so that they may be properly includedas PDF metadata. Without hyperref, the \@author and \@title will probably notproduce reliable results if they contain non-ASCII characters. (The same caveatsapply to the \@subject and \@keywords strings.)

196 \def\@pdfmetadata{{\def\protect{}\def\\{ }%

197 \edef\@litstr{/Title (\@title) /Author (\@author)}%

198 \if@subject\edef\@litstr{\@litstr /Subject (\@subject)}\fi%

199 \if@keywords\edef\@litstr{\@litstr /Keywords (\@keywords)}\fi%

200 \expandafter\pdfinfo\expandafter{\@litstr}}}

201 \def\@hypermetadata{{\def\\{ }\edef\@nt{\@title}%

202 \hypersetup{pdftitle={\@nt},pdfauthor={\@author}}%

203 \if@subject\hypersetup{pdfsubject={\@subject}}\fi%

204 \if@keywords\hypersetup{pdfkeywords={\@keywords}}\fi}}

205 \AtBeginDocument{\ifpdf\if@hyperloaded\@hypermetadata\else\@pdfmetadata\fi\fi}

10 Document Sections

\frontmatter

\mainmatter

Borrowing from the book class, we add these two macros for helping to distinguishbetween front matter material and the body of the document. All page numbersare in small roman numerals for the front matter text; starting with the openingof the first chapter, pages are numbered starting with the arabic numeral “1”.

206 \newcommand{\frontmatter}{\pagenumbering{roman}}

207 \newcommand{\mainmatter}{%

11

Page 12: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

208 \if@openright\cleardoublepage\else\clearpage\fi%

209 \expandspacing\pagenumbering{arabic}}

11 Special Names

\acknowledgename

\biosketchname

\contentsname

\listabbrevname

\listmusexname

\listsymname

\musexname

\appendixtocname

Here we (re)define heading names for special pages. In addition, a new \musexname

macro is created for labeling the captions of musical examples. Other standardreport macros defining heading names are listed here in commented-out form forreference. (Their default settings will be used unless overridden here or in theuser’s document preamble.)

210 %\renewcommand*{\abstractname}{}

211 \newcommand*{\acknowledgename}{Acknowledgments}

212 %\renewcommand*{\bibname}{}

213 \newcommand*{\biosketchname}{Biographical Sketch}

214 \renewcommand*{\contentsname}{Table of Contents}

215 \newcommand*{\listabbrevname}{List of Abbreviations}

216 %\renewcommand*{\listfigurename}{}

217 %\renewcommand*{\listtablename}{}

218 \newcommand*{\listmusexname}{List of Musical Examples}

219 \newcommand*{\listsymname}{List of Symbols}

220 \newcommand*{\musexname}{Example}

221 \newcommand*{\appendixtocname}{Appendix}

12 Front Matter Environments

dedication

acknowledgments

The dedication page has no heading. Whatever text the user may provide willbe placed about 1/3rd of the way down the page. The acknowledgments page isformatted as a chapter heading page (without a chapter number). These pagesare not listed the table of contents.

222 \newenvironment{dedication}%

223 {\if@openright\cleardoublepage\else\clearpage\fi\mbox{}\vfill}

224 {\vfill\vfill\vskip1in\mbox{}\pagebreak[4]}

225 \newenvironment{acknowledgments}%

226 {\chapter*{\acknowledgename}\normalsize\afterheadadj}

227 {\clearpage\FSU@onormalsize}

listofsymbols

listofabbrevs

Lists of Symbols or Abbreviations are not required, but if a user does include them,they have chapter-style headings, and they are included in the table of contentsusing the frontmatter classification. These pages are set to be single-spaced, asthey are likely to contain tabular material.

228 \newenvironment{listofsymbols}

229 {\chapter*{\listsymname}\FSU@onormalsize%

230 \addcontentsline{toc}{frontmatter}{\listsymname}}

231 {\clearpage}

232 \newenvironment{listofabbrevs}

233 {\chapter*{\listabbrevname}\FSU@onormalsize%

12

Page 13: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

234 \addcontentsline{toc}{frontmatter}{\listabbrevname}}

235 {\clearpage}

abstract The abstract environment is set to be in expanded spacing (if requested bydocument option), and an entry is added to the ToC using the frontmatter

style.

236 \renewenvironment{abstract}%

237 {\chapter*{\abstractname}\normalsize\afterheadadj%

238 \addcontentsline{toc}{frontmatter}{\abstractname}}

239 {\clearpage\FSU@onormalsize}

13 Additional Front Matter Formatting

\@dottedtocline

\listspenalty

The FSU Guidelines require that table, figure, and musical example captionsbe listed in their entirety in the front matter of the document. Some of thecaptions can be quite lengthy. By default, LATEX wants to keep an entire captionon one page, rather than letting it be split between pages if necessary. This canlead to very bad spacing on the List of. . . pages. This behavior is containedwithin LATEX’s \@dottedtocline macro by setting \interlinepenalty=10000.We redefine this macro here so that we can set \interlinepenalty to a value ofour own choosing. In addition, the original \@dottedtocline macro created anoverfull hbox if the page number exceeded the default \@pnumwidth value. Forthose rare occasions when the page number width might exceed this value, weallow the page numbers to consume an extra dot if necessary.

240 \newcount\listspenalty

241 \listspenalty=200

242 \def\@dottedtocline#1#2#3#4#5{%

243 \ifnum #1>\c@tocdepth \else

244 \vskip \z@ \@plus.2\p@

245 {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip

246 \parindent #2\relax\@afterindenttrue

247 \interlinepenalty=\listspenalty

248 \leavevmode \@tempdima #3\relax

249 \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip

250 {#4}\nobreak \leaders\hbox{$\m@th

251 \mkern \@dotsep mu\hbox{.}\mkern \@dotsep

252 mu$}\hfill \nobreak%

253 \setbox\@tempboxa=\hbox{\normalfont\normalcolor #5}%

254 \ifdim\@pnumwidth<\wd\@tempboxa \hbox{\normalfont\normalcolor #5}%

255 \else \hb@xt@\@pnumwidth{\hfil\normalfont\normalcolor #5}\fi%

256 \setbox\@tempboxa\null

257 \par}%

258 \fi}

\tableofcontents If the hyperref package has been loaded, it would be nice to have a PDF bookmarkto the table of contents page. We need to redefine the original \tableofcontents

13

Page 14: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

in order to add that functionality. We also set the \listspenalty to retain thedefault LATEX behavior of preventing entries from being split between pages.

259 \renewcommand{\tableofcontents}{

260 \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi

261 \chapter*{\contentsname

262 \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%

263 \ifpdf\if@hyperloaded\pdfbookmark[0]{Table of Contents}{contents}\fi\fi

264 {\listspenalty=10000\@starttoc{toc}\if@restonecol\twocolumn\fi}%

265 }

\iffront@dded

\l@frontmatter

This macro specifies how frontmatter entries in the Table of Contents appear.Each entry is separated by a little vertical space, with leader dots to the pagenumber.

266 \newif\iffront@dded

267 \newcommand*\l@frontmatter{%

268 \iffront@dded\addvspace{1ex \@plus\p@}\else\front@ddedtrue\fi

269 \@dottedtocline{0}{0pt}{0pt}}

\toclevel@frontmatter For setting up bookmarks, the hyperref package wants to know what level of thehierarchy various sections of the Table of Contents are. We can hide the frontmatter entries behind the Table of Contents entry by setting the frontmatter ToClevel to 1 here.

270 \def\toclevel@frontmatter{1}

\ifb@ckadded

\l@backmatter

The “back matter” of the document consists of the References/Bibliography sec-tion and the Biographical Sketch. Since we’re approaching the end of the table ofcontents, there is a potential to have a single entry at the top of one page. Wetry to discourage this by increasing the penalty between the leading and trailingbackmatter items.

271 \newif\ifb@ckadded

272 \newcommand*\l@backmatter{%

273 \ifb@ckadded\addpenalty{\@highpenalty}\addvspace{1ex \@plus\p@}%

274 \addpenalty{\@highpenalty}%

275 \else\b@ckaddedtrue\addpenalty{0}\addvspace{1em \@plus\p@}\fi%

276 \@dottedtocline{0}{0pt}{0pt}}

\toclevel@backmatter As for the frontmatter handling for the hyperref package, we need to define theheading level of the backmatter items for bookmarks.

277 \def\toclevel@backmatter{0}

\l@figure

\l@table

Figure and table captions are listed with a single space between each of them.Since table and figure captions have the same format, the \l@table macro is\let from the \l@figure macro.

278 \renewcommand*\l@figure{%

279 \addvspace{10pt}%

280 \@dottedtocline{0}{0pt}{3.2em}}

281 \let\l@table\l@figure

14

Page 15: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

\FSU@lofsomething Since the List of Figures, List of Tables, and List of Musical Examples all havesimilar function, the common elements are gathered in this one definition. (Thiscode is borrowed and modified from the report class.)

282 \newcommand{\FSU@lofsomething}[2]{\FSU@onormalsize%

283 \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi

284 \chapter*{#1}%

285 \addvspace{-10pt}

286 \addcontentsline{toc}{frontmatter}{#1}%

287 \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}

288 \@starttoc{#2}%

289 \if@restonecol\twocolumn\fi

290 }

\listoftables

\listoffigures

\listofmusex

All the hard stuff is done. Now we just define these macros in terms of\FSUl@fsomething.

291 \renewcommand{\listoftables}{%

292 \FSU@lofsomething{\listtablename}{lot}}

293 \renewcommand{\listoffigures}{%

294 \FSU@lofsomething{\listfigurename}{lof}}

295 \newcommand{\listofmusex}{%

296 \FSU@lofsomething{\listmusexname}{lom}}

14 Musical Example Indexing

Here we establish some boiler-plate stuff to hook into the standard LATEX mecha-nisms for table and figure captions, adding a List of Musical Examples capabilityand new environments for their captioning. Musical example captions will be writ-ten to a .lom file. The hyperref package, should it be loaded later by the user,expects an additional labeling macro called \theHmusex to be defined.

297 \let\l@musex\l@figure

298 \newcounter{musex}[chapter]

299 \renewcommand{\themusex}%

300 {\ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@musex}

301 \newcommand{\theHmusex}%

302 {\ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@musex}

303 \def\fps@musex{tbp}

304 \def\ftype@musex{1}

305 \def\ext@musex{lom}

306 \def\fnum@musex{\musexname\nobreakspace\themusex}

musex

musex*

These work just like the figure environments.

307 \newenvironment{musex}%

308 {\@float{musex}}

309 {\end@float}

310 \newenvironment{musex*}%

311 {\@dblfloat{musex}}

312 {\end@dblfloat}

15

Page 16: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

15 End Matter Formatting

\refitemsep

\refindent

A new length parameter \refitemsep is created to define the vertical space thatseparates individual bibliographic entries. This is calculated from the default\baselineskip for the selected point size, with a little bit of stretchiness added.\refindent adjusts the hanging indentation.

313 \newskip{\refitemsep}

314 \newskip{\refindent}

315 {\FSU@onormalsize%

316 \global\setlength{\refitemsep}{\baselineskip}

317 \global\addtolength{\refitemsep}{0pt plus3pt minus0.2pt}}

318 \setlength{\refindent}{2.5em}

references This environment is intended for user-generated formatting of a reference list orbibliography, i.e., non-BibTEX. It establishes single-spaced lines with a blank linebetween entries, and the first line of each entry is exdented. The page headingis determined by the current definition of \bibname, not the environment, so theuser must invoke \renewcommand*{\bibname}{References} in order to changethe name of this section.

319 \newenvironment{references}

320 {\chapter*{\bibname}\FSU@onormalsize%

321 \interlinepenalty=10000\sloppy

322 \addvspace{-\baselineskip} \@afterindenttrue%

323 \addcontentsline{toc}{backmatter}{\bibname}%

324 \setlength{\leftskip}{\refindent}%

325 \setlength{\parindent}{-\refindent}%

326 \setlength{\parskip}{\refitemsep}}

327 {\clearpage}

thebibliography This is a re-definition of a BibTEX-generated bibliography. We have to be be sureto turn off expanded spacing (if it had been requested), and add an entry to theToC.

328 \renewenvironment{thebibliography}[1]

329 {\chapter*{\bibname}\FSU@onormalsize%

330 \addcontentsline{toc}{backmatter}{\bibname}%

331 \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%

332 \f@olist{\@biblabel{\@arabic\c@enumiv}}%

333 {\settowidth\labelwidth{\@biblabel{#1}}%

334 \leftmargin\labelwidth

335 \advance\leftmargin\labelsep

336 \@openbib@code

337 \usecounter{enumiv}%

338 \let\p@enumiv\@empty

339 \setlength{\itemsep}{\refitemsep}

340 \setlength{\parsep}{0pt}

341 \renewcommand\theenumiv{\@arabic\c@enumiv}}%

342 \interlinepenalty=10000

343 \sloppy

16

Page 17: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

344 \clubpenalty4000

345 \@clubpenalty \clubpenalty

346 \widowpenalty4000%

347 \sfcode‘\.\@m}

348 {\def\@noitemerr

349 {\@latex@warning{Empty ‘thebibliography’ environment}}%

350 \f@oendlist}

15.1 Accommodating natbib and apacite

Packages natbib and apacite overwrite our redifinition of the standard LATEXthebibliography environment, so we must accommodate them specially. Fur-ther, the apacite package may optionally import the natbib package, so we haveto be careful about what we “fix” and under which conditions here. Becausethese packages will be loaded after this class has been loaded, we must defer ourcorrections until the preamble has been processed, so once again, we rely on the\AtBeginDocument hook.

\f@plainnat

\bibsection

\bibpreamble

\bibpostamble

We’ll start with the plain natbib corrections. We can accommodate this package byadding definitions to natbib’s \bibsection. There, we’ll set the proper chapterheading, make an addition to the Table of Contents, and reset to single line-spacing. We’ll also add definitions to natbib’s \bibpreamble macro so that wecan re-instate the standard LATEX list environment, and then restore our ownversion again by supplementing the definition of \bibpostamble.

351 \def\f@plainnat{%

352 \setlength{\bibsep}{\refitemsep}

353 \setlength{\bibhang}{\refindent}

354 \renewcommand\bibsection{\chapter*{\bibname}\FSU@onormalsize%

355 \addcontentsline{toc}{backmatter}{\bibname}%

356 \let\f@oldpre=\bibpreamble\let\f@oldpost=\bibpostamble%

357 \renewcommand\bibpreamble{\f@oldpre\interlinepenalty=10000

358 \if@expanded\let\f@savenlist=\list\let\list=\f@olist\fi}%

359 \renewcommand\bibpostamble{%

360 \if@expanded\let\list=\f@savenlist\fi\f@oldpost}}}

\f@apacite Package apacite has more machinery to adjust, but again, we need to re-instate theLATEX default behavior for line spacing and lists for when we may be in expanded

mode. We have to make different adjustments if the natbibapa package optionhas been specified.

361 \def\f@apacite{%

362 \renewcommand{\bibliographytypesize}{\FSU@onormalsize%

363 \interlinepenalty=10000

364 \if@expanded\let\f@savenlist=\list\let\list=\f@olist\fi}%

365 \@ifpackageloaded{natbib}%

366 {\renewcommand\bibsection{\chapter*{\bibname}

367 \addcontentsline{toc}{backmatter}{\bibname}}

368 \setlength{\bibsep}{\refitemsep}%

369 \setlength{\bibhang}{\refindent}}%

17

Page 18: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

370 {\setlength{\bibitemsep}{\refitemsep}%

371 \setlength{\bibleftmargin}{\refindent}%

372 \setlength{\bibindent}{-\refindent}%

373 \renewcommand{\st@rtbibchapter}{\chapter*{\bibname}%

374 \addcontentsline{toc}{backmatter}{\bibname}}}}

Notes for future consideration: perhaps the changes to the list environmentshould be made a part of the \FSU@onormalsize and \normalsize definitions, sothat these become effective whenever we enter or leave expanded mode typesetting.Or perhaps our own list environment can just be made sensitive to the currentstate of \FSU@onormalsize/\normalsize.

Now we enfold the corrections into the \AtBeginDocument hook.

375 \AtBeginDocument{\@ifpackageloaded{apacite}{\f@apacite}%

376 {\@ifpackageloaded{natbib}{\f@plainnat}{}}}

biosketch The final page of a thesis or dissertation is the Biographical Sketch. It will be setin expanded spacing (if that document option has been requested).

377 \newenvironment{biosketch}

378 {\chapter*{\biosketchname}\normalsize\afterheadadj%

379 \addcontentsline{toc}{backmatter}{\biosketchname}}

380 {\clearpage\FSU@onormalsize}

16 Sectioning Command Formatting

\chapheadskip The amount of vertical space from the top of the text body area to the top of thechapter heading is defined here by \chapheadskip. This value is set here to be0 inches from the top of the page. If the chapter heading font is changed, this codewill need adjustment.

381 \newlength{\chapheadskip}

382 \sbox\@tempboxa{\LARGE\bfseries CHAPTER}

383 \setlength{\chapheadskip}{0in}

384 \addtolength{\chapheadskip}{-\ht\@tempboxa}

\@makechapterhead

\@makeschapterhead

Chapter headings are upper-case, centered, LARGE, and bold. Starred chapterheadings omit the ’Chapter/Appendix’ label, and this is used for all the non-chapter page headings in the format.

385 \def\@makechapterhead#1{%

386 \hrule height0pt depth0pt width0pt\vskip\chapheadskip%

387 {\centering\parindent=0pt\LARGE\bfseries%

388 \ifnum\c@secnumdepth >\m@ne%

389 \MakeUppercase{\@chapapp}\space\thechapter\par

390 \nobreak\vskip20pt\fi%

391 \interlinepenalty\@M%

392 \MakeUppercase{#1}\par\nobreak\addvspace{40pt}

393 }

394 }

395 \def\@makeschapterhead#1{%

18

Page 19: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

396 \hrule height0pt depth0pt width0pt\vskip\chapheadskip%

397 {\centering\parindent=0pt\LARGE\bfseries%

398 \interlinepenalty\@M%

399 \MakeUppercase{#1}\par\nobreak\addvspace{40pt}

400 }

401 }

\section

\subsection

Chapter sections have centered headings. Subsections are flush left.

402 \renewcommand{\section}{\@startsection{section}{1}{0pt}%

403 {4.0ex plus1ex minus0.3ex}%

404 {2.0ex plus0.3ex minus0.2ex}%

405 {\normalfont\centering\Large\bfseries}}

406 \renewcommand{\subsection}{\@startsection{subsection}{2}{0pt}%

407 {3ex plus.8ex minus0.1ex}%

408 {1.25ex plus0.1ex minus.1ex}%

409 {\normalfont\raggedright\large\bfseries}}

\subsubsection

\paragraph

\subparagraph

These sectioning commands produce in-line headings, and they must end with aperiod. Rather than relying on the user to consistently provide the period andto remain consistent with other sectioning commands, these macros are re-definedto take an additional argument (i.e., the heading text). This text is normallyabsorbed by the \@startsection macro, so instead we can tack a period onto theend of the text when we pass control to \@startsection. The downside of thecurrent implementation is that we lose the ability to apply optional arguments forthese three sectioning commands.

410 \renewcommand{\subsubsection}[1]%

411 {\@startsection{subsubsection}{3}{\parindent}%

412 {1ex plus.5ex minus0.1ex}%

413 {-1em}%

414 {\normalfont\bfseries}{#1.}}

415 \renewcommand{\paragraph}[1]%

416 {\@startsection{paragraph}{4}{\parindent}%

417 {1ex plus.5ex minus0.1ex}%

418 {-0.75em}%

419 {\normalfont\scshape}{#1.}}

420 \renewcommand{\subparagraph}[1]%

421 {\@startsection{subparagraph}{5}{\parindent}%

422 {0pt}{-0.5em}{\normalfont\itshape}{#1.}}

16.1 Appendix Handling

\appendix FSU likes to have the document appendices labeled as such in the ToC. To accom-modate this, we create the \appendixtocname macro (see the “Special Names”section). We also add extra code to the default \appendix macro here to insertan entry into the table of contents using a new “appendix” class.

For the sake of correct PDF bookmarks, hyperref needs a little assistance inthis case (because we are creating a bogus heading). We force the current hyper-

19

Page 20: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

link to point to what we suppose will be the first appendix page before calling\addcontentsline.

423 \let\f@ldappendix=\appendix

424 \gdef\appendix{\f@ldappendix

425 \if@hyperloaded\def\@currentHref{appendix.A}\fi

426 \addcontentsline{toc}{appendix}{\appendixtocname}}

\l@appendix We’ve just defined a new appendix ToC class, so now we need to provide for itsformat in the ToC. The format below is modified from the default report class\l@chapter definition. It would be the same except that we don’t need pagenumbers, and we want to insert a high penalty after the heading and reduce thevertical space so that it will be attached to the next appendix line should the ToCneed to be broken over pages. I have inserted a rather large penalty before theheading to encourage a break there, allowing for the appendix heading and anyappendices to float to the next page, along with the back matter material.

427 \newcommand*\l@appendix[2]{%

428 \ifnum \c@tocdepth >\m@ne

429 \addpenalty{-2000}\vskip 1.0em \@plus\p@%

430 \setlength\@tempdima{1.5em}%

431 \begingroup

432 \parindent \z@ \leavevmode \bfseries

433 \advance\leftskip\@tempdima \hskip -\leftskip

434 #1\nobreak\hfil \par

435 \penalty\@highpenalty\vskip -0.35em\penalty\@highpenalty

436 \endgroup

437 \fi}

\toclevel@appendix Set the bookmark level for the appendix heading.

438 \def\toclevel@appendix{0}

17 Tweaking Captions

\fcapindent

\belowcaptionskip

The default report class sets captions with the same margins as the rest of the pagebody. Instead, we narrow the caption column by the amount \fcapindent. Thevertical space below a caption is set by report to be 0 points, but since captionsabove tables need some space, we set the value to 10 points here.

439 \newlength{\fcapindent}

440 \setlength{\fcapindent}{2em}

441 \setlength{\belowcaptionskip}{10\p@}

\@makecaption We narrow the caption column by adjusting \leftskip and \rightskip. We alsoset the text in single-space mode if expanded spacing has been requested. (Small,single-line captions remain centered, as in the default report class.)

442 \long\def\@makecaption#1#2{%

443 \vskip\abovecaptionskip%

444 \sbox\@tempboxa{#1: #2}%

445 \ifdim \wd\@tempboxa >\hsize

20

Page 21: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

446 {\advance\leftskip\fcapindent \rightskip=\leftskip\relax%

447 \FSU@onormalsize%

448 #1: #2\par}

449 \else

450 \global \@minipagefalse

451 \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%

452 \fi

453 \vskip\belowcaptionskip}

21

Page 22: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

Change History

v2.0.0General: Initial release of new de-

sign. . . . . . . . . . . . . . . . . . . . . 1v2.1.0

\maketitle: Fixed titling with ac-cented/foreign characters. . . . . 8

v2.2.0\maketitle: Fixed distribution of

vertical spacing. . . . . . . . . . . . 8v2.3.0

dedication: if openright, forcerecto . . . . . . . . . . . . . . . . . . 12

\if@hyperloaded: Added test forhyperref . . . . . . . . . . . . . . . . . 7

\makecommitteepage: if openright,force recto . . . . . . . . . . . . . . 10

\maketitle: Added pdfbookmark

to title page. . . . . . . . . . . . . . . 8\tableofcontents: Redefined from

report class to add pdfbookmark

for table of contents . . . . . . . 13v3.0.0

General: Added ifpdf package . . . . 2Added definitions for \@subject

and \@keywords . . . . . . . . . . . 7Change to FSU Guidelinesbumps major version number;Enhanced PDF metadata. . . . . 1

\committeeperson: Removed sig-nature lines for new ETD for-mat. . . . . . . . . . . . . . . . . . . . 10

\commskip: Renamed width andskip, removing reference to sig-natures. . . . . . . . . . . . . . . . . . 9

\if@keywords: Explicitly set PDFmetadata. . . . . . . . . . . . . . . . 11

\makecommitteepage: changedfrom “Signature Page” to“Committee Page”, removingsignature lines and college-levelapprovals. . . . . . . . . . . . . . . . 10

v3.1.0General: Improve handling of long

table and figure captions. . . . . 1\listspenalty: Added new

penalty item to allow long cap-tions to be split between pages 13

\tableofcontents: Prevent entriesfrom being split between pages,restoring default LATEX behav-ior . . . . . . . . . . . . . . . . . . . . 13

\topmargin: Removed the\flushbottom option from thedefault configuration. . . . . . . . 3

v3.2.0

General: Make special accommo-dations for the optional natbibpackage. . . . . . . . . . . . . . . . . 17

v3.3.0

General: Make special accommoda-tions for the optional apacitepackage. . . . . . . . . . . . . . . . . 17

\appendix: Modified standard re-port macro to insert an extraToC element . . . . . . . . . . . . . 19

\appendixtocname: Added a newsymbol name to hold the Tableof Contents heading for an ap-pendix or appendices. . . . . . . 12

references: Changed \parskip touse \refitemsep. Changed in-dentation to be consistent withapacite. . . . . . . . . . . . . . . . . 16

verbatim: Set verbatim environ-ment to revert to standard spac-ing when using expanded spac-ing. . . . . . . . . . . . . . . . . . . . . 6

thebibliography: Set \itemsep to\refitemsep and set \parsep

to 0pt . . . . . . . . . . . . . . . . . . 16

singlespaced: New environmentproviding single-spacing. . . . . . 7

\l@appendix: New formattingmacro for the ToC appendixclass . . . . . . . . . . . . . . . . . . . 20

\l@backmatter: Added a backmat-ter ToC class to handle Refer-ences and Biographical Sketchseparately from frontmatter . . 14

\l@frontmatter: Added test forfirst frontmatter item to avoidextra vertical space after ToCheader . . . . . . . . . . . . . . . . . 14

22

Page 23: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

\maketitle: Added layout forcopyright option. . . . . . . . . . . 8

copyright: Added new documentoption to add copyright decla-ration to the title page. . . . . . . 2

v3.4.0\chapheadskip: Changed spacing

before chapter header to 0in. . 18\evenoddoffset: Adjusted text

width for hardcopy option sincethe text column is now wider. . 4

\makecommitteepage: Adjustedvertical spacing of the com-mittee page and moved namecolumn closer to center. . . . . . 10

\maketitle: Altered spacing forcopyright on title page tobe consistent with Guide-lines 2013 . . . . . . . . . . . . . . . 8

Removed “THE” fromFLORIDA STATE UNIVER-SITY. . . . . . . . . . . . . . . . . . . . 8

\textwidth: Set text column to6.5 inches. . . . . . . . . . . . . . . . . 3

v3.5.0General: Add \interlinepenalty

to prevent page breaks mid-item. . . . . . . . . . . . . . . . . . . 17

references: Added \interlinepenalty

to prevent page breaks mid-item. . . . . . . . . . . . . . . . . . . 16

\f@apacite: Added \interlinepenalty

to prevent page breaks mid-item. . . . . . . . . . . . . . . . . . . 17

thebibliography: Added\interlinepenalty to preventpage breaks mid-entry. . . . . . 16

\refindent: Increased stretchinessof \refitemsep to facilitate un-breakable bibliography entries 16

v3.6.0

General: Removed \@semester

macro since it’s no longerneeded. . . . . . . . . . . . . . . . . . 7

\maketitle: Removed \@semester

element to comply with changeto FSU format. . . . . . . . . . . . . 8

\semester: Made \semester macroa no-op to comply with changein FSU format. . . . . . . . . . . . . 8

v3.7.0

\@dottedtocline: If pagenumbersexceed the allotted width, usethe natural box width instead ofthe predefined width . . . . . . . 13

\commskip: Increased the name col-umn width, moving column tothe left to center it better. . . . . 9

\listbaselineskip: New macro toreplace previously hard-codedvalue . . . . . . . . . . . . . . . . . . . 5

Index

Numbers written in italic refer to the page where the corresponding entry is de-scribed; numbers underlined refer to the code line of the definition; numbers inroman refer to the code lines where the entry is used.

Symbols

\. . . . . . . . . . . . . . . 347

\@M . . . . . . . . . 391, 398

\@afterindenttrue .. . . . . . . . 246, 322

\@arabic . . . . . . . . .. 300, 302, 332, 341

\@author . . . . . 148,159, 176, 197, 202

\@biblabel . . . 332, 333

\@chapapp . . . . . . . . 389

\@clubpenalty . . . . . 345

\@college . . . . . . . .. 104, 130, 141, 151

\@currentHref . . . . . 425

\@dblfloat . . . . . . . 311

\@defensedate . . . . .. . . . 104, 132, 177

\@degree . . 104, 128, 154

\@degreeyear . . . . . .. 104, 131, 156, 159

\@department . . . . . .. . . . 104, 129, 151

\@departmenttrue . . 129

\@dotsep . . . . . . . . . 251

\@dottedtocline 53,240, 269, 276, 280

\@empty . . . . . . . . . . 338

\@expandedtrue . . . . . 6

23

Page 24: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

\@float . . . . . . . . . . 308

\@hardcopytrue . . . . . 5

\@highpenalty . . . . .. 51, 273, 274, 435

\@hyperloadedfalse . 103

\@hyperloadedtrue . 103

\@hypermetadata . . . 196

\@ifpackageloaded .. 102, 365, 375, 376

\@keywords 190, 199, 204

\@keywordstrue . . . . 195

\@latex@warning . . . 349

\@listdepth . . . . . 73, 81

\@litstr . . . . . 197–200

\@makecaption . . . . . 442

\@makechapterhead . 385

\@makeschapterhead . 385

\@manuscripttype 104,133, 150, 177, 188

\@minipagefalse . . . 450

\@mkboth . . 262, 287, 331

\@namedef . . . . . . . . 89

\@noitemerr . . . . . . . 348

\@nt . . . . . . . . . 201, 202

\@openbib@code . . . . 336

\@openrighttrue . . . 43

\@pdfmetadata . . . . . 196

\@pnumwidth . . . 254, 255

\@restonecolfalse .. . . . . . . . 260, 283

\@restonecoltrue . .. . . . . . . . 260, 283

\@startsection 402,406, 411, 416, 421

\@starttoc . . . 264, 288

\@subject . 190, 198, 203

\@subjecttrue . . . . . 194

\@sxverbatim . . . . . . 89

\@thecmems . . . . . . .. 168, 170, 171, 182

\@title . . . 145, 197, 201

\@tocrmarg . . . . . . . 245

\@verbatim . . . . . . . 89

\ . . . . . . . . . . . . . . 159

A

\abovecaptionskip . 443

abstract (environ-ment) . . . . . . 236

\abstractname . . . . .. . . . 210, 237, 238

\acknowledgename . .. . . . . . . . 210, 226

acknowledgments (envi-ronment) . . . 222

\addcontentsline 230,234, 238, 286,323, 330, 355,367, 374, 379, 426

\addpenalty . . . . . . .. . 51, 273–275, 429

\addtolength . . . 17,18, 23, 24, 26–30, 33, 34, 41,42, 44, 46, 66,67, 75, 144, 175,182, 184, 317, 384

\addvspace . . . . . . .. . 69, 100, 268,273, 275, 279,285, 322, 392, 399

\adjbaselineskip . .57, 62, 66, 69, 100

\afterheadadj . . 69,88, 94, 226, 237, 378

\appendix . . . . . . . . 423\appendixtocname . .

. . . . . . . . 210, 426\AtBeginDocument 41,

44, 46, 102, 205, 375

B\b@ckaddedtrue . . . . 275\baselineskip 19, 21,

58, 62, 66, 67,74, 75, 140, 143,144, 147, 175,182–184, 316, 322

\begingroup . . . . . . . 431\belowcaptionskip .

. . . . . . . . 439, 453\bfseries . . . . . 53,

382, 387, 397,405, 409, 414, 432

\bibhang . . . . . 353, 369\bibindent . . . . . . . 372\bibitemsep . . . . . . . 370

\bibleftmargin . . . . 371\bibliographytypesize

. . . . . . . . . . . 362\bibname . . . . . 212,

320, 323, 329–331, 354, 355,366, 367, 373, 374

\bibpostamble . . . . . 351\bibpreamble . . . . . . 351\bibsection . . . 351, 366\bibsep . . . . . . 352, 368biosketch (environ-

ment) . . . . . . 377\biosketchname . . . .

. . . . 210, 378, 379\blstretchiness . 57, 67\box . . . . . . . . . . . . . 451

C\c@chapter . . . 300, 302\c@enumiv . . . . 332, 341\c@musex . . . . . 300, 302\c@pyrighttrue . . . . . 8\c@secnumdepth . . . . 388\c@tocdepth 50, 243, 428\centering 387, 397, 405\ch@pleaderstrue . . . 7\chapheadskip . . . . .

. . . . 381, 386, 396\chapter . . 226, 229,

233, 237, 261,284, 320, 329,354, 366, 373, 378

\chapterleaders . . . . 1\ClassError 104, 108,

112, 116, 119, 123\cleardoublepage . .

. . . . 174, 208, 223\clearpage 174, 208,

223, 227, 231,235, 239, 327, 380

\clubpenalty . . 344, 345\college . . 113, 114, 127\committeeperson . . 168\commskip . 164, 171, 181\commwidth 164, 171, 172\contentsname . . . . .

. . . . 210, 261, 262\copyright . . . . . 1, 159\csname . . . . . . . . 85, 90

24

Page 25: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

\CurrentOption . . . . . 9

D\DeclareOption . . . . 5–9dedication (environ-

ment) . . . . . . 222\defensedate . . . . . .

. . . . 120, 121, 127\degree . . . 105, 106, 127\degreeyear 117, 118, 127\department 109, 110, 127

E\edef . . . . . 197–199, 201\end@dblfloat . . . . . 312\end@float . . . . . . . 309\endcsname . . . . . 85, 90\endgroup . . . . . . . . 436\endlist . . . . . . . 78, 96\endverbatim . 86, 88, 90\enlargethispage . . 137environments:

abstract . . . . . . 236acknowledgments 222biosketch . . . . . . 377dedication . . . . . 222listofabbrevs . . 228listofsymbols . . 228musex . . . . . . . . . 307musex* . . . . . . . . 307references . . . . . 319singlespaced . . . 99thebibliography 328verbatim . . . . . . 83verbatim* . . . . . . 83

\evenoddoffset . . . . 38\evensidemargin . . .

. . . . . . . 31, 44, 46\expanded . . . . . . . . . 1\expandspacing . . . .

. . . . . . 64, 92, 209\ext@musex . . . . . . . 305

F\f@apacite . . . 361, 375\f@ldappendix . 423, 424\f@oendlist . 78, 96, 350\f@oendverb . . . . . 86, 88\f@oldpost . . . 356, 360\f@oldpre . . . . 356, 357

\f@olist . . . . . . . . .70, 95, 332, 358, 364

\f@overbat . . . . . 83, 87\f@overbats . . . . . . . 84\f@plainnat . . . 351, 376\f@savenlist . . . . . .

. . . . 358, 360, 364\fcapindent . . . 439, 446\fnum@musex . . . . . . . 306\footskip . . 15, 30, 137\fps@musex . . . . . . . 303\front@ddedtrue . . . 268\frontmatter . . . . . . 206\FSU@lofsomething .

. 282, 292, 294, 296\FSU@onormalsize . .

. . . 64, 87, 89,93, 98, 100, 139,173, 227, 229,233, 239, 282,315, 320, 329,354, 362, 380, 447

\ftype@musex . . . . . . 304

H\hardcopy . . . . . . . . . 1\hbox . . . . . . . . 176,

250, 251, 253, 254\headheight . . . . . 13, 27\headsep . . . . . . . 13, 28\hfill . . . . . . . . . . . 252\hskip . . . . . . . 249, 433\hypersetup . . . 202–204

I\if@department 127, 151\if@expanded . 1, 56,

100, 358, 360, 364\if@hardcopy . . . . . 1, 40\if@hyperloaded 101,

136, 205, 263, 425\if@keywords . . . . . .

. . . . 190, 199, 204\if@openright . . . . .

. . . . 174, 208, 223\if@restonecol 264, 289\if@subject 190, 198, 203\if@twocolumn . 260, 283\if@twoside . . . . . . . 43\ifb@ckadded . . . . . . 271

\ifc@pyright . . . . 1, 158\ifch@pleaders . . . 1, 48\iffront@dded . . . . . 266\ifpdf . . . . 136, 205, 263\interlinepenalty .

. 247, 321, 342,357, 363, 391, 398

\itemsep . . . . . . . . . 339\itshape . . . . . . . . . 422

K\keywords . . . . . . . . 190

L\l@appendix . . . . . . . 427\l@backmatter . . . . . 271\l@chapter . . . . . . . 48\l@figure . . . . 278, 297\l@frontmatter . . . . 266\l@musex . . . . . . . . . 297\l@table . . . . . . . . . 278\labelsep . . . . . . . . 335\labelwidth . . . 333, 334\LARGE . . . . 382, 387, 397\Large . . . . . . . . . . . 405\large . . . . . . . . . . . 409\leaders . . . . . . . . . 250\leavevmode . . . 248, 432\leftmargin . . . 334, 335\leftskip . . . . 245,

249, 324, 433, 446\list 70, 95, 358, 360, 364\listabbrevname . . .

. . . . 210, 233, 234\listbaselineskip 61, 74\listfigurename 216, 294\listmusexname 210, 296listofabbrevs (envi-

ronment) . . . 228\listoffigures . . . . 291\listofmusex . . . . . . 291listofsymbols (envi-

ronment) . . . 228\listoftables . . . . . 291\listspenalty . 240, 264\listsymname . . . . . .

. . . . 210, 229, 230\listtablename 217, 292\LoadClass . . . . . . . 11\long . . . . . . . . . . . . 442

25

Page 26: The fsuthesis Classmyweb.fsu.edu/bwhissel/fsulatex/files/fsuthesis.pdfthe version number. Any local changes to this le may be tracked by incrementing ... 5.1 Handling the hardcopy

M\m@th . . . . . . . . . . . . 250\mainmatter . . . . . . . 206\makebox . . . . . 171, 172\makecommitteepage . 173\MakeLowercase 177, 188\maketitle . . . . . . . 135\MakeUppercase . . . .

. . . . 141, 145,148, 262, 287,331, 389, 392, 399

\manuscripttype . . .. . . . 124, 125, 127

\mkern . . . . . . . . . . . 251musex (environment) . 307musex* (environment) 307\musexname . . . 210, 306

N\newcount . . . . . . . . 240\newskip . . . . . 313, 314\noindent . 178–180, 185\normalcolor . . 253–255\normalfont . . . . . . .

. 253–255, 405,409, 414, 419, 422

\normalsize . . . . . . .64, 81, 226, 237, 378

\null . . . . . . . . 249, 256

O\oddsidemargin . . 31, 42\onecolumn . . . 260, 283

P\p@enumiv . . . . . . . . 338\pagebreak 160, 189, 224\pagenumbering 206, 209\paperheight . 16, 22, 25

\paperwidth . . . . . . . 32

\paragraph . . . . . . . 410

\parfillskip . . . . . . 245

\parindent . . . 246,325, 387, 397,411, 416, 421, 432

\parsep . . . . . . . . . . 340

\parskip . . . . . . . . . 326

\PassOptionsToClass . 9

\pdfbookmark . . 136, 263

\pdfinfo . . . . . . . . . 200

\penalty . . . . . . . . . 435

\ProcessOptions . . . 10

R

\raggedright . . 178, 409

references (environ-ment) . . . . . . 319

\refindent . . . . . . .. 313, 324, 325,353, 369, 371, 372

\refitemsep 313, 326,339, 352, 368, 370

\RequirePackage . . . 12

\rightskip . . . 245, 446

S

\scshape . . . . . . . . . 419

\section . . . . . . . . . 402\semester . . . . . . . . 127

\setbox . . . 176, 253, 256

\setcounter . . . . . . . 173

\settowidth . . . . . . . 333

\sfcode . . . . . . . . . . 347

singlespaced (environ-ment) . . . . . . . 99

\sloppy . . . . . . 321, 343

\smblstretchiness 57, 75

\st@rtbibchapter . . 373

\subject . . . . . . . . . 190

\subparagraph . . . . . 410

\subsection . . . . . . . 402

\subsubsection . . . . 410

T

\tableofcontents . . 259

\textheight . . . . . 15, 29

\textwidth . 31, 41, 178

thebibliography (envi-ronment) . . . 328

\thechapter 300, 302, 389

\theenumiv . . . . . . . 341

\theHmusex . . . . . . . 301

\themusex . . . . 299, 306

\toclevel@appendix . 438

\toclevel@backmatter

. . . . . . . . . . . 277

\toclevel@frontmatter

. . . . . . . . . . . 270

\topmargin . . . . . . . 25

\topskip . . . . . . . . . 13

\twocolumn . . . 264, 289

U

\unhbox . . . . . . 178, 179

\usecounter . . . . . . . 337

V

\verbatim . . . . . . 83, 87

verbatim (environ-ment) . . . . . . . 83

verbatim* (environ-ment) . . . . . . . 83

W

\widowpenalty . . . . . 346

26