(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?

1 Answer 1


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.

  • Interesting! That explains a lot. I won't bother resetting anything from now on, then --- I can afford the extra few bytes of memory to make the source more readable! Aug 21, 2012 at 12:14
  • One reason to reset maketitle itself is to keep the user from accidently using it twice. It usually makes no sense to have duplicated titles!
    – mrf
    Aug 21, 2012 at 16:04
  • 8
    The main reason was "main-memory" back in those days. LaTeX was effectively eating up half of the available space just through macro definitions. So with complicated pages or with some picture environments etc you could hit the limit. So freeing up any bit was essential and you still see traces of this in the code. Pool size couldn't be reclaimed this way unfortunately. These days the memory arrays are much bigger so this type of optimization isn't necessary any more. The math alphabets have a different reason: they are hard-wired into the design and that's why the limitation still exists. Aug 21, 2012 at 20:52
  • @mrf In the absence of memory constraints, I'd prefer not to make that decision for the user. You make a good point, though: things like \maketitle are almost never called twice, so you can safely free up memory by having them reset themselves. When the memory situation was as dire as @Frank Mittelbach explains, this would be a great source of efficiency! If I'm not mistaken, \tableofcontents clears itself for the same reason. Aug 22, 2012 at 19:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .