I often find myself wanting to adjust overshoots depending on specific letters. For example, the S in a serifed typeface often needs less overshoot than the O, because the S is kind of flat-ish at both ends. I know the standard advice is to have one overshoot size for caps, one for lowercase, and then sometimes another for pointy characters like V. But I'm not sure if I want to follow that advice.
Is there any reason not to adjust the overshoot per letter? Am I being overly perfectionistic? How do you go about this?
I tend to keep things consistent in the beginning for sake of speed and keeping track of everything, but then allow variation if needed.
The old terminology from PostScript is “blue zones.” They are indeed zones or bands, rather than a single height. Anything falling within the zone may be rounded to the non-overshoot height, at lower ppem sizes.
On a related note, what happens to overshoots that fall outside the blue zones? For example in this n. I'd rather not stretch the blue zone to include the overshoot of the stem, because that would make it huge (adding 11 units to a 17 units blue zone), but is that gonna bite me in the ass later on?
Overshoot is just, what the designer feels it should be for visual recognition. Of course the good practise is very similar across designers, fonts and styles, but not a hard rule. Some fonts place all capitals exactly on the baseline.
(All this is only in environments that pay attention to your hinting, meaning it won’t normally affect Mac or iOS.)
Whether this is a problem is in the eye of the beholder. At small sizes that sharp point is not going to be a full on pixel, just a gray bit. I note that Adobe Garamond Pro, which is similar in general design, does not put that top-of-serif in the blue zone, either. Minion Pro does not have the serif significantly higher than the arch of the “n” so it avoids the problem entirely.
In the n, I can make the shoulder snap to the x-height, which works fine because it is in the 'blue zone', and then the stem also adjusts accordingly (or I can use a shift instruction). However, this solution does not work for letters like the i, because they do not have a point within the 'blue zone'. My solution (shown below), which seems to work fine, is to just add a point along the top serif of i that does fall in the 'blue zone', so that the rest can follow suit. Problem solved?
I'm not sure how to implement the separate alignments, though. Should I just make two overlapping alignment zones and handle the rest through hinting instructions, or is there a smarter way to create the alignment zones? Perhaps this is not possible in Glyphs app?
Edit: I think I found what you meant in Glyphs app.