[Tex/LaTex] Why are \@title, \@author, and \@date cleared during \maketitle

best practicestitles

(This is not a duplicate of How can I use @author, @date, and @title after maketitle?)

I understand that \maketitle resets a bunch of macros, including \@title, \@author, \@date, and \maketitle itself. I assume there's a good reason for this, and I'd like to know what it is.

For a bit of context, I'm writing my own class which redefines \maketitle to print a title page in the format required by my university for theses and dissertations. This title page includes some information, like the expected degree, which one might handle similarly to the title and author (i.e. provide a \degree macro which sets an internal\@degree macro).

It seems that I have a few options for my redefinition of \maketitle:

  1. I could be lazy and not bother resetting anything.
  2. I could mimic the standard behaviour and reset \title, \@title, …
  3. I could go beyond that and reset my new (analogous) macros \degree, \@degree, …

Up to this point I've chosen the third option, but I haven't the faintest clue why. Is there a good reason why \maketitle should reset document information macros like \title?

Best Answer

The documentation of article.cls (see classes.pdf) says

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

This is a result of constraints in earlier tex systems where pools sizes and other aspects of memory etc. were limited. Much of the original design of TeX contains elements chosen to make optimal use of the space available. In modern set-ups this is almost never a problem. One interesting constraint that is still around is on the number of math alphabets that can be loaded.