[cairo] freetype backend: ignore global advace if required

Bill Spitzak spitzak at d2.com
Tue Sep 6 10:53:52 PDT 2005


Couldn't the type of font be guessed with very good accuracy by which 
glyphs it provides?

Jackey Yang wrote:
> On 2005年8月23日 Tuesday 04:42, Keith Packard wrote:
> 
>>On Mon, 2005-08-22 at 12:52 -0400, Owen Taylor wrote:
>>
>>> - How common are fonts that set isFixedPitch but have multiple
>>>   character widths?
>>
>>Many (most?) CJK fonts have two character widths, and many of these
>>set isFixedPitch. Fontconfig will tell you which fonts have this
>>'feature'.
>>
> 
> CJK fonts are all two characters widths. It is a history problem, we can not 
> blame anyone. 
> 
> 
>>> - How common are fonts that have a correct advanceWidthMax but
>>>   buggy advances for individual characters?
>>
>>This group is full of nominally monospaced fonts (courier, et al) which
>>have been extended to support a broader Unicode range. Often, these
>>additional characters are of different width than the base font. In
>>addition, these fonts are often ammended with zero width characters.
>>The trouble here occurs when the maximum width is not the same as the
>>nominal width; using the global advance makes things look right for most
>>characters.
>>
>>
>>>If the second group is much bigger than the first group, then
>>>your patch is right ... we should default to not setting
>>>the FreeType flag. If the first group is bigger than the second
>>>group, the default should go the other way.
>>
>>The correct answer is "it depends". If you're using CJK fonts, the first
>>group is very common. If you're in terminal emulator land, the second is
>>more common.
>>
>>Given that few applications need monospaced characters, it's arguably
>>better to ignore global advance by default and expect that applications
>>will be able to manage varible pitch text correctly.
> 
> 
> My suggestion is to create a flag to resolve this problem, like what sunmoon 
> 1997 did before.


More information about the cairo mailing list