freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] How to get nominal width of monospaced fonts


From: Werner LEMBERG
Subject: Re: [ft] How to get nominal width of monospaced fonts
Date: Tue, 21 May 2019 11:42:06 +0200 (CEST)

> 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.


    Werner


[*] This is not completely true but suffices for practical purposes.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]