So, my CVT (actually stem value in Fontlab) says 3 px, but neither Greyscale nor Cleartype will return 3 px. What, why?
Edit: More search friendly title for the next Truetype wrangler to come along.
The grey circles and the grid in the screenshot is the binary rendering.
Doh! Of course.
I'm really not sure why it is behaving this way. My guess would be some kind of tolerance relative to the natural outline that prevents hints from radical distortion, but I don't know if this is something peculiar to FontLab or to the kinds of hints that it writes.
Fontlab has internal tolerances set to prevent large* jumps in either CVTs or deltas. So for this instance, your jumps are still limited to 8/8s for deltas (ie. you can only delta move a point 1 pixel or 1/8 fractions thereof), but you can increase the tolerance for CVTs by opening TT Hinting Options > General > (increase) Stem snap precision to 32/16 of the pixel. This will allow doubling of the stem value. Note you're asking to get both 3 and 4 pixels above. The above solution could get you up to 4 pixels, but I think as long as your stem has a reasonably accurate value entered you should still be able to get 3 pixels @ 20ppm without fudging the Snap Stem much**, ie. check your measurement from the inside of the stem to the sidebearing point and make sure the 'round right' CVT entry corresponds closely to that value.
*or small, for that matter, as you can make much smaller adjustments the 1/8 pixel in TrueType, if you were so inclined, just not in Fontlab.
**otherwise, keeping the Snap Stem at 17/16 may be the best bet, but you may still find yourself fiddling with the value occasionally to achieve certain results
David: I’m not going to add more tracking with hinting. This would be an undesirable effect. As I’m sure you understand, what I want to acheive is control over the spacing to be able to correct any rounding errors introduced by the rasterizer. My question is really simply put: “I told the rasterizer to do a certain thing but it didn’t listen. Why?”
how many user agents employ the hdmx table in composition?
I have been looking for an explanation for what this does. From what I (think I) understand, the numbers listed in the hdmx table are the ones where delta hints are effective. Correct? But why is it necessary in the first place?
Frank: “I told the rasterizer to do a certain thing but it didn’t listen."
It "hears" three things on the Mac and 8 things on Windows...
Frank: "Why?”
Competition!
Frank: "But why is it necessary in the first place?"
There are two sources of metrics for a font rasterized at any ppm, the integer values in the hdmx table and the unrounded widths of the outlines.
Together with the subpixel positioning, you get a lot of different results.
Captured from web.archive.org on 29 Dec 2011. view this capture