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