Hinting

I recently watched a presentation from adobe’s Miguel Sousa on blueValues hinting and the like and I didn’t understand a thing :slight_smile:
Bottomline is, sometimes the font looks “bouncy” on screen and that’s a hinting issue. What is tthe best approach to fix this and how does glyphs help on this task. I know you can add hints in glyphs but I’m not sure what the next step would be.

Thanks!

Have a look at the official specification.
BlueValues are on page 36:

http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF

Thanks spirit. Will definitely look through it. Have you used the information on this document in any way, and did you do it in glyphs?
Cheers!
Rodrigo

Glyphs supports all necessary values that you need to control the hinting in postscript based fonts. Some of them are a bit hidden.

Usually you have to set the alignment zones and stem values.
Alignment zones are there to control the overshot (that the o is slightly taller than a x) Otherwise this would lead to “bouncy” rendering.

The stems are there to unify them in small sizes. have a look at common stems in your font. Like in n, o, H, O, N. The vertical stems in n and o are usually quite similar. Use the mean value. Do the same for the Uppercase. If you have a high contrast font, add a stem for the headlines. So, you usually end up with one or two stem values each. To decide the final settings, you need to test the font in Indesign as it shows the effect of the hints quite well.

What’s bouncing? The x-height?

What counts vertically is whether hinted horizontal stems (or ghost stems, i.e. ghost-hinted endings of vertical stems, see below) are reaching the same alignment zone. If they do, they will be aligned in lo-res situations. If the x-height bounces, then either the alignment zones are too small or the stems are not hinted. There are other potential problems as well but these two are the most likely.

If you enter good values for your standard stems, the autohinter will find those stems in your letters and put a hint on them.

Glyphs is able to find alignment zones automatically if you first enter correct vertical metrics: ascender, cap height, x-height, descender, perhaps also a smallCapHeight in the Custom Parameters. When determining these values, ignore the overshoot. So for instance, if you have the choice between various values for the x-height, say 490, 496 and 502, you want the one closest to your baseline, i.e. 490. After you set those values properly, you can click the grey circle to let Glyphs find the alignment zones.

An alignment zone must encompass anything that should later be aligned. For instance, the upper edge of the crossbar of t, the upper edge of x and the highest extremum of o, they should be inside the alignment zone for the x-height.

Now it is time to export your font and test it in an environment that actually makes use of the hinting. InDesign is a good idea, and TextEdit if you disable anti-aliasing for small text sizes in System Preferences.

If, say, your w appears lower than the other small letters: see if your w reaches the alignment zone at the x-height. If it doesn’t, fix it and re-export. If it still bounces, you might want to attach a horizontal hint at the top serifs of the w. If it’s a sans-serif and you have no horizontal element to attach your hint to, you will need a ‘ghost hint’: a horizontal hint with a width of 20 or 21 units, its top reaching the top of the w.

At first glance, it all sounds so complicated, but once you get the hang of it, it’s not that bad. :slight_smile:

Here are some links with further information:

  1. Adobe’s Type 1 Font Format from 1990 has been mentioned before. It’s a little complicated for non-nerds. There’s an addition called Type 1 Font Format Supplement from 1994, but that one’s even nerdier.
  2. Miguel Sousa’s talk at Robothon’12 is a good plain-English summary of it (PDF slides are here), though I personally like to keep BlueShift at the depth of the serif cups.
  3. David Lemon: Postscript Hinting gets you started even though I don’t agree with everything he says. Forget what he says about hint direction.

But again, try to stick to autohinting as much as possible.

Here’s a screenshot of my font in in Typical Display mode (INDD) http://cl.ly/0L3G1m153C2u3a3l3e45.

Here’s the same at low resolution http://cl.ly/2b1n343G3Q3Y33063N39

Not good :frowning:

I’ve been reading about it these last couple of days, and experimenting with it in Glyphs. There are some things that I didn’t really see in the documentations.

Should I set the same alignment zones (I’ll call it AZ from now) for the different masters of a font - say I have a hairline and a black weights for interpolation. Should I set an AZ that includes both masters or should I set one for each of the masters?

Do you have a best practice for the process of testing, for example testing multiple versions of the font?

Pocript hints are not working well for black and white rendering. You can improve that with carefully set alignment zones and stem values.

The alignment zones are interpolated. So you set them for each master. For your font you would probably need one horizontal and one vertical standard stem only. Use something in between the stem width of n, o, H, O.

The alignment of the baseline is strange. the baseline alinement sone needs be be 0 and a negative value.

And did you check the path directions?

I hit correct path directions on both masters now and most of them were ok, but some glyphs became incompatible, I’ll correct it by hand (it’s only 10 glyphs), but I’m concerned it might mess up the autohinting for these glyphs

the values for the baseline alignmnent zone on both masters is 0, -15
here’s a screenshot of the masters
Light: http://cl.ly/2e360h3g2c0h0L1I211k and http://cl.ly/0k453X3L1i3P0R2X240i
Bold: http://cl.ly/04092p3O1b3J3M411L02 and http://cl.ly/2j2o1P0e0M2S242X2D2R

Maybe this helps to see what am I doing wrong.

Give Glyphs a chance to interpolate Stems and AZs.

For instance, you have three h stems and many AZs in the Bold, but only two h stems and a handful AZs in the Light. Make sure they are the same number and also in the same order.

I still wonder what’s at 315/319.

And as I said. You do not need the stem values that are so close together. Make it 25 / 24 in the light and 150 / 140 for the Bold.

And reduce the number of alignment zones. They are meant to align the main lines in the font. That means at top/bottom of the lowercase (baseline and xHeight) and the uppercase (Cap height) and the ascender/descender. Sometimes you add some more for superior figures and such, but usually you need five zones.

Thanks guys, let me try this out and I’ll get back to you.