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
error. Remember that you can check a character’s extensibility with the
value: the character being accessed.
An attempt at retrieving a ligature or kerning for two characters from
different fonts will signal a
different-fonts usage error.
character2: the two characters involved.
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.