A few months ago I adjusted a PhD thesis class file so that it was all set up to work with our department and university name, etc, as well as formatting everything in the particular manner they, in their infinite wisdom, have decided upon. A few of my friends are now using this class file and starting to find a few little oddities I hadn't ironed out.
A major one at the moment seems to be when there is more than a single page worth of text in (for instance) the abstract environment. If there is, the title ends up stranded at the bottom of one page, and the text starting on the next! =-(
welcome to the board!
The \vfil at the beginning of the abstract environment will push the following text to the bottom of the page. Try it without it.
By the way \bf is an obsolete command (like \rm, \sf, \tt, \it, \sc, \sl), use \bfseries instead.
In addition to Stefan_K advice, it seems that you don't use correctly the \newenvironment command: it has two mandatory arguments, one for the code to be executed at the beginning of the environment, and other, for the code to be run at the end:
just a short explanation why your definition of the abstract did not produce an error even if you omitted the mandatory argument, what Juanjo found out.
Probably you have an empty line following the definition above. This is equivalent to a paragraph break, that's why \endabstract will be defined as \par and no error will be raised. If you didn't have that empty line there would be an error. For example, if the abstract definition was written right before \begin{document}, \endabstract would contain \begin and the error Missing \begin{document} would be raised.
Thanks guys! Have been through and fixed the problems you've pointed out.
Sorry, I have one more question!
I'd made the same mistakes when defining an acknowledgements command. This now happily works on 2 pages, but, because it comes in after the various lists of contents, figures, etc, the second page carries the heading from the last list.
Is there a way of defining a text string LaTeX can use as a page header?
Sorry, \markboth or \markright allows me to control the headings on the first acknowledgements page, but when it runs over onto a second the preceeding page headers (in this case 'List of Tables') overrides my command.