> I'm trying to determine the nominal width of monospaced fonts, in
> pixels, that is the normal horizontal advance of rendered glyphs
> when FT_FACE_FLAG_FIXED_WIDTH is set.
This is not sufficient information. Are you interested in the
*linear* (i.e., unhinted) advance width or the hinted one? The former
can be a fractional pixel value, while the latter is always returned
as full pixels for TrueType fonts.[*]
> I thought, at first, to look at face->size->metrics.max_advance, but
> if I do that I find that it's always several pixels more than what I
> eventually get after FT_LOAD_RENDERing each glyph, and computing
> face->glyph->advance.x >> 6.
This might be due to hinting.
> For example, using Liberation Mono: with a height of 16 pixels, I
> get 11 in metrics.max_advance, but the actual advance width, based
> on advance.x, is 10. With a height of 21 pixels, I get a
> max_advance of 15, and the actual advance based on advance.x is 13.
> Is it possible to get the advance width, of fixed width fonts,
> without actually rendering some sample glyphs and seeing what it is?
If hinting is involved, no. Exception: The font contains an `hdmx'
table that lists advance widths for some ppem value.