/ divides up the memory available to it into various categories. On most systems the sizes of these categories are fixed at the beginning of a / run and cannot dynamically grow to meet unexpected demands. (In fact certain implementations of / have the sizes fixed at the time a format file is created, or even when the / program is compiled.) Use of extra packages places burdens on certain memory categories (string pool, hash size, main memory) in proportion to the total size of the packages. Table A.1 lists the recommended capacities in various categories for successful use of the / major documentstyles or the amsmath package. Not all categories are listed; the ones that appear are the ones where problems tend to occur nowadays.
Note in particular that the base value for string pool needs to
be much larger than the values typically found at the end of a /
log. This is because the string pool capacity reported by / in
response to a \tracingstats command is not the base value,
but the result of subtracting from the base value the number of
characters in /'s built-in error messages, the names of primitive
control sequences, and the names of all additional control sequences
defined in the format file (in our case, the whole of /), not to
mention font names and file names. Thus the reported value only measures
the amount of string capacity that remains to the user after the format
file is loaded. The reported value for number of strings is reduced in
the same way.
Table: Recommended values for selected / memory
categories