The format is designed to be extremely compact: in the original Computer Modern distribution, every font's TFM file is smaller than 2 kB.
[2] A TFM file is broken down into a series of four-byte words, which can contain data fields of various lengths.
The body of the TFM file consists of a series of ten tables, each one except for the first laid out as an array of fixed-length fields.
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.
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.
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).
For example, this is the code for the upper-case letter Y in Computer Modern Roman, ten point: The kerning values seen here are copied from another section of the PL file in order to make it easier to read, which in itself is redundant.
Notice how the full numeric values of the kerning constants are written out each time they appear, instead of being stored once and referred to by a much smaller index.