Terminals font hinting

Last updated: 2015-04-06

This page compares some of the font hinting options available. For brevity, sub-pixel hinting styles will only use RGB style. All images are using rxvt-unicode on Ubuntu 14.04, using the Pragmata Pro font.

Slight and Full hinting yielded same results when antialiasing was off.

Hinting off and Hinting on with Hintstyle=none yeilded same results when antialiasing was off.

Subpixel hinting settings did not differ when antialiasing was off.

All shots have autohint=false and lcdfilter=lcddefault.

urxvt.font:xft:PragmataPro-12

urxvt.letterSpace: N (where N is -1, 0, or 1) given by the number at the end of the screenshot

Each screenshot shows the captial o and number 0 compare, as well as uppercase i, number 1, lowercase L and pipe characters. This is followed by hintingstyle/hinting (full for hintstyle=hintfull, slight for hintstyle=hintslight, none for hintstyle=hintnone, and nohnt for hinting=false). Next is the subpixel setting (rgb for rgba=rgb, non for rgba=none. Next is antialiasing (antialiased for antialias=true, aliased for antialias=false.

Grouped by aliasing, then hintstyle, then subpixel:

Grouped by aliasing, then subpixel, then hintstyle:

It appears that adding antialiasing increases the character width by one, and adding sub-pixel hinting in the horizontal direction increases the character width by another pixel.

Arch Linux Wiki on Font Configuration mentions that hintstyle=hintslight is good for retaining font shape the truest, but it can make fonts fuzzier to line up to the grid. hintstyle=hintfull aligns to the pixelgrid so it is crisper, but can distort the font shape.