freetype-devel
[Top][All Lists]
Advanced

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

Re: Progress update on adjustment database


From: Werner LEMBERG
Subject: Re: Progress update on adjustment database
Date: Sat, 30 Sep 2023 06:40:35 +0000 (UTC)

> > Thanks.  Do you have meanwhile found an explanation why o-tilde
> > looks so bad for Times New Roman at 16ppem?
>
> All 4 letters in each row have a different approach:
>
> õ: vertical stretch, no segment removal
> ñ: no vertical stretch, segment removal
> ã: vertical stretch and segment removal
> all other tildes: no changes applied

OK.  I think it is a bad side effect of the current auto-hinting
algorithm that there are different approaches.  However, using the
adjustment database I wonder whether the knowledge of the character
topology can help improve the situation.  In other words, do you see a
possibility to 'decouple' the (vertical) hinting of the tilde from the
base glyph hinting by checking a flag in the database?  For this
purpose, a 'tilde' could be defined as the contour that lies higher
than the ascender of small letters – this implies that you need
another flag or enumeration to refer to small letter, uppercase
letters, etc.

As an example, the database information for glyph 'o tilde' could be

  * lowercase character
  * hint contour(s) higher than the lowercase ascender hight
    separately
  * stretch tilde vertically

> I implemented the algorithm for all glyph variants!  The version I
> used is different from what I wrote originally to fix some errors.

Looks good.  To help people understand the non-trivial algorithm I
suggest that you add a big comment that shows it working step by step
for an example font, using a reduced set of features and glyphs.

> I've only tried it on a pretty simple case so far, so I'll need to
> assemble a more complex test font or two.

A feature-rich (and freely available) font family is 'Libertinus', for
example.


    Werner

reply via email to

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