Anti-Aliasing Tweaks

December 02, 2004 10AM PST

Horizontal kerning is pretty easy in Photoshop: use the Alt or Cmd + arrow key combination, adjust at will, repeat as necessary. But what about vertical kerning?

The problem is this: it’s relatively easy to match kerning between words in Photoshop by using the built-in kerning controls. Adjusting anti-aliasing requires a bit more effort, but it remains completely do-able.

However, there seems to be a built-in dependency on where you set type on the canvas which I can only describe as a vertical anti-aliasing starting point. It appears that the fine adjustment of horizontal letter-spacing isn’t enough control, as baselines can either fall on a precise pixel, or on a percentage point somewhere between two pixels.

Examples of normal and fuzzy type

In the first image to the left, the two lines of type have been kerned equally. The top example is crisper, whereas the bottom example is fuzzy, particularly around the bottom of each letterform.

Close-ups of the e letterform

In the second image to the left, the two “e” letterforms have been scaled up a few hundred percent, and in the bottom row a white grid has been overlaid. This close-up shows that the left “e” has a more solid letterform, especially on the horizontal strokes (the crossbar, the stroke under the bottom counter). The right “e” has much heavier horizontal strokes, anti-aliased across two pixels, and looks more blurry and wispy.

The main difference between these type examples is where they were set on the canvas with the type tool. What appears to be happening is that the starting point can either be an integer pixel value — and thus render closer to the pixel grid, as in the first example — or a fractional pixel value, which throws the entire letterform slightly off the pixel grid.

So the problem then, is how to control this? Once type is set, horizontal adjustment is possible in sub-pixel values thanks to the kerning tools. But vertical adjustment only appears to be possible with the Move tool, which operates on whole-pixel values.

The only solution I can see is to keep re-setting with the Type tool, and hope that through trial and error it’ll eventually set properly. Someone tell me there’s an easier way.

Addendum: And there is an easier way. The answer comes from Scott Gould:

You can move text vertically in sub-pixels, as long as you’re editing the text in question (i.e. text is highlighted or there’s a text cursor flashing away), by using the Ctrl/Apple key temporary move tool. For reasons that sorta, kinda make sense, this won’t work on “Sharp” or “Crisp” antialiasing. With “Strong” or “Smooth”, you’re all set.

Works great, thanks Scott.