Windows, ttfautohint, and 'strong stem width/positioning'
Lar Gactyl
Posts: 10
I am trying to apply ttfautohint to a font generated in FontForge, but I
seem to be having problems with the "strong stem width and positioning"
settings. As far as I understand, this is supposed to toggle the
snapping of horizontal strokes to the pixel grid. I've tried setting
this to either 'smooth' or 'strong' for all three Windows targets
(grayscale, GDI ClearType, DW ClearType), but I barely see any
difference in the results.
The way my font is designed, the "-" (hyphen) for instance is one pixel wide at 12pt, and two at 24pt. I'd like this width to be properly anti-aliased when I vary the font size (that is, what I want is the 'smooth' option here). But that never happens, no matter what I set it to; I still get discrete steps in width -- the hyphen stays one pixel wide up to 17pt, then abruptly becomes two pixels wide at 18pt.
Needless to say, this greatly distorts the appearance of my font. There *are* some minimal differences in rendering when I compare the 'smooth' and 'strong' settings, but they're pretty much unnoticeable, and the long straight horizontal strokes are not affected.
FWIW, I'm testing on Windows 7. My font doesn't suffer from this issue on Linux and Mac. I know that Windows renderers are notoriously overzealous with snapping outlines to the pixel grid, but can this be salvaged somehow? Am I missing some setting e.g. in the 'Grid Fitting' table that could solve this?
The way my font is designed, the "-" (hyphen) for instance is one pixel wide at 12pt, and two at 24pt. I'd like this width to be properly anti-aliased when I vary the font size (that is, what I want is the 'smooth' option here). But that never happens, no matter what I set it to; I still get discrete steps in width -- the hyphen stays one pixel wide up to 17pt, then abruptly becomes two pixels wide at 18pt.
Needless to say, this greatly distorts the appearance of my font. There *are* some minimal differences in rendering when I compare the 'smooth' and 'strong' settings, but they're pretty much unnoticeable, and the long straight horizontal strokes are not affected.
FWIW, I'm testing on Windows 7. My font doesn't suffer from this issue on Linux and Mac. I know that Windows renderers are notoriously overzealous with snapping outlines to the pixel grid, but can this be salvaged somehow? Am I missing some setting e.g. in the 'Grid Fitting' table that could solve this?
Tagged:
0
Comments
-
Have you tried setting the GASP table to always use ysmoothing?0
-
Mike Duggan said:Have you tried setting the GASP table to always use ysmoothing?
Or... come to think of it, it would probably be best to do that after the ttfautohint step, in which case a different (external) tool would be best; any recommendation for such a tool to tweak the GASP table?
0 -
VTT can edit the GASP table0
-
this is how I would recommend the settings.
when these settings are used, you should set the GASP to always use ysmoothing, and you should not then see the discrete steps in DirectWrite rendering environments.2 -
Thanks, I'll try that. Out of curiosity, is there any specific reason for keeping "strong" stems enabled for GDI CT?
0 -
because there is no support for y-smoothing in GDI as of today.0
-
Lar Gactyl real name?
0 -
No, not exactly.
To enable y-smoothing using VTT's GASP-table editor, do I uncheck 'grid fitting' for all entries?
If so, that does not appear to work. In fact, I also tried most of the available combinations using FontForge's own GASP table editor, but to no avail... either I'm misunderstanding something, or this table only applies in limited scenarios (that is, I'm mistaken in assuming that DirectWrite CT is used e.g. in Win7's Font Viewer, Notepad, or most other normal situations).
At any rate, my horizontal strokes are still being discretely grid-snapped... any other ideas would be welcome.
0 -
If you send me the font I will take a look mikedu at Microsoft.com0
-
Direct write is not used in Win 7 font viewer, or notepad0
-
Both use GDI, which does not support ysmoothing so can only snap and break in discrete pixels0
-
Mike Duggan said:Both use GDI, which does not support ysmoothing so can only snap and break in discrete pixels
0 -
All current versions of Edge, Firefox and Chrome use DirectWrite as far as I know.0
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 799 Font Technology
- 1K Technique and Theory
- 617 Type Business
- 444 Type Design Critiques
- 541 Type Design Software
- 30 Punchcutting
- 136 Lettering and Calligraphy
- 83 Technique and Theory
- 53 Lettering Critiques
- 483 Typography
- 301 History of Typography
- 114 Education
- 68 Resources
- 498 Announcements
- 79 Events
- 105 Job Postings
- 148 Type Releases
- 165 Miscellaneous News
- 269 About TypeDrawers
- 53 TypeDrawers Announcements
- 116 Suggestions and Bug Reports