to save space, because width values, for instance, are frequently duplicated. Because height and depth values are duplicated more frequently, to fit all of these values into a single word, the indexes are limited to four bits. Because of this, there is a limit of sixteen different character heights and sixteen different character depths in any given TFM file. Also, there is a limit of sixty-four different italic corrections. There is also one more index which can point into the lig_kern table, or to information about extensible characters, depending on a two-bit tag value. Extensible characters use a series of repeated characters to construct a single large one of arbitrary size, usually large delimiters such as parentheses or brackets. There then follow the four tables width, height, depth and italic, which contain values (in fix_word format) referred to by indexes in char_info. Ligatures and kerning are represented using a simple programming language consisting of fixed-length four-byte operations in the lig_kern table; it makes use of kerning values (specified as fix_words) in the kern table, which follows it. Extensible characters are specified in the exten table, using a series of four-byte words specifying the top, middle, bottom and repeated sections of an extensible character. For instance, the character at left below would be obtained by setting (top, mid, bot, rep) to the character codes for (/, <, \, |). The first three character codes can be set to zero. For instance, if mid were set to 0 in the previous example, the result would change from the brace drawn at left to the parenthesis drawn to its right. / / | | | | < | | | | | \ \ Of course, the font would use specially designed characters for this, instead of reusing existing ones, but the principle is the same. The final table, param, contains a series of specifically defined fix_word values, including the font's x-height and the amount of italic slant (to determine how far to shift accents). Certain coding schemes such as TeX math symbols and TeX math extension define extra parameters which appear after these. Property lists There is a human-readable equivalent to the TFM format called PL, for property list. There is an exact correspondence between a TFM file and a PL file: one can be freely converted to the other and back again with no loss of information using the tftopl and