From: Philippe Verdy (verdy_p@wanadoo.fr)
Date: Wed May 18 2011 - 18:14:40 CDT
A general positioning scheme for all classes of diacritics (at least
one) on all letters is definitely a must-have for high-quality fonts.
Unfortunately, the OpenType format still does not support a generic
positioning scheme that can act as a reasonnable rendering for
letters+diacritics pairs that are still not specifically included in
its embedded substitution and positioning tables.
So if these letter+diacritic pairs are missing in OpenType features,
all we get is a default positioning as specified in each diacritic
separately, and that fails being rendered correctly quite often
(notably for capital letters) in non monospaced fonts (the diacritic
is not horizontally centered correctly). But even in monospaced fonts,
the same diacritics are too often at the wrong vertical position (too
low on capitals for diacritics above, too high for letters with
descenders, or incorrectly attached, for example cedillas and
ogoneks).
The only solution would be that OpenType glyphs for each letter
specify various attachment points for each class of diacritics
supported in that font (there's not a lot of diacritics, and they
belong to a limited set of attachement classes). This would work at
least for a combination of at most one letter plus one diacritic, but
nothing prevents also each diacritic to indicate other attachment
point for secondary diacritics in the same class, using offseted
metrics also to recompute the overall composition rectangle (including
adjustments to the advance width) for the composition and optionally
repositioning the other remaining unaffected attachment points.
Adding a complete set of attachment points in each glyph could have a
cost, but nothing prevents to assign each glyph to an attachments
class, and define each attachment type as a list of offsets for each
list of attachements classes.
The renderer should also be able to order these diacritics according
to their own attachment class (which is not strictly the same as the
canonical combining class, due to some exceptions that could still be
handled by encoding a limited number of specific letter+diacritic
pairs in the SUB/POS tables of OpenType features, notably because
these exceptions are causing glyph substitution as well for the
diacritic itself, e.g. with the cedilla attached below sometimes
transformed into cedilla attached above after some lowercase letters,
depending on the presence of descenders on the letter, sometimes also
depending to the effective visual design of the font-family).
-- Philippe.
2011/5/18 James Cloos <cloos@jhcloos.com>:
> Running on a Linux box, using DejaVu Serif, seamonkey, firefox and arora
> get the miniscule ө̄ almost right. The majuscule Ө̄’s macron is too low.
>
> Emacs24 has the same rendering with DejaVu Serif, so the bug is in the
> font.
>
> With DejaVu Sans Mono, Emacs24 and rxvt-unicode render both cases
> correctly.
>
> So Παν誤, qt and libotf are all fine. Some fonts, though, are not
> quite ready.
>
> -JimC
> --
> James Cloos <cloos@jhcloos.com> OpenPGP: 1024D/ED7DAEA6
>
>
This archive was generated by hypermail 2.1.5 : Wed May 18 2011 - 18:19:31 CDT