[comp.windows.x] font ink metrics

erik@srava.sra.JUNET (Erik M. van der Poel) (04/19/89)

What are ink metrics?

I have looked for answers, and this is what I have found so far:

In "Xlib - C Language X Interface", R3, 6.5:

        The lbearing member defines the extent of the left edge of the
        character ink from the origin.

        The rbearing member defines the extent of the right edge of the
        character ink from the origin.

        The ascent member defines the extent of the top edge of the
        character ink from the origin.

        The descent member defines the extent of the bottom edge of the
        character ink from the origin.

In "Release Notes", R3, 4.1:

      * In particular, ink metrics in fonts have been fixed; client errors in
        computing character sizes will now be easy to spot.

        The sample server font compiler has been renamed bdftosnf and has been
        fixed to properly generate ink metrics for terminal emulator fonts.

Would anyone care to explain in a bit more detail what is meant by the sentence
marked with the *?

Ink metrics are only computed by bdftosnf when the -i flag is not used and the
font is a fixed-width terminal emulator font, right? As far as I can tell, only
the -t flag is passed by default. This means that the per_char array in the
XFontStruct structures would always be there, even if one was dealing with a
supposedly fixed-width font. If a client wanted to make sure that a fixed-width
font was being used, how could it check that?

Finally, a word of advice to those who want to compile the k14 Japanese Kanji
font (in contrib/fonts/bdf/oldx11): Use the -i flag. If you don't you will end
up wasting a lot of swap space (about 90K) with the per_char array. (And if you
run several kterm's, that's a lot of wasted space.)
-- 
Erik M. van der Poel                  erik@sra.junet             (Japan)
SRA, 1-1-1 Hirakawa-cho, Chiyoda-ku   erik%sra.junet@uunet.uu.net  (USA)
Tokyo 102 Japan. TEL +81-3-234-2692   erik%sra.junet@mcvax.uucp (Europe)