Because the TFM’s public API is so small, there are only two usage conditions, so we’ll start with those ones. Neither of these conditions is restartable at the level of TFM.
An attempt at accessing the top, middle, bottom, or repeated character
of a non extensible character will signal a not-extensible
usage
error. Remember that you can check a character’s extensibility with the
extensiblep
predicate.
Accessor:
An attempt at retrieving a ligature or kerning for two characters from
different fonts will signal a different-fonts
usage error.
Accessors:
Finally, an attempt at changing the design size of a font to something that is not a real greater or equal to 1 will just signal a type error.