Take the 2-minute tour ×

In most fonts, arabic digits have nonproportional width, meaning that 1 and 8 have exactly the same width even if the former has a smaller natural width. This is good for typesetting tables, but in running text this distracts:


  Look at this figure:
  1,123,456 cars.
  How to remove the extra space between the first two 1?


I feel that there's slightly too much space between the first two "ones". What do the typographers think about this issue? How do I enable kerning of digits (or just usage of their natural width) in running text?

share|improve this question
in metal fonts, there were two different sets of digits, one to be used in text ("natural" width), and a different one (monowidth) to be used in tables. computerized composition "simplified" this, choosing the monowidth version since much of the early computer-generated material was tables. how proportional widths might be enabled for digits depends on the flavor of tex being used, and how fonts are accessed. for "traditional" tex, using tfm files, the original font could be cloned under a new name, and new widths assigned manually via a .pl file. –  barbara beeton Jul 11 '12 at 13:27
@barbarabeeton: Wow. So no hope for a \propdigits command or environment? –  krlmlr Jul 11 '12 at 13:43
probably someone could construct such a command, but it would likely have to be different for every font, and i'm not aware that anyone has done it yet. (someone else may know different.) –  barbara beeton Jul 11 '12 at 13:46
add comment

1 Answer

up vote 11 down vote accepted

OpenType has among the standard font features tnum for “Tabular Figures” vs. pnum for “Proportional Figures”.

(This is distinct from, and orthogonal to, the choice of lnum “Lining Figures” vs. onum “Oldstyle Figures”.)

The OpenType-capable TeX engines LuaTeX & XɘTeX can access these glyphs if the font you’re using supports those features. Try this example with LuaLaTeX or XeLaTeX:

\fontspec{Linux Libertine O}
{\addfontfeatures{Numbers={Lining,Monospaced}}     0123456789}

{\addfontfeatures{Numbers={Lining,Proportional}}   0123456789}

{\addfontfeatures{Numbers={OldStyle,Monospaced}}   0123456789}

{\addfontfeatures{Numbers={OldStyle,Proportional}} 0123456789}


(The alternate figures in fontspec’s default typeface, Latin Modern Roman, are ugly; avoid them.)

share|improve this answer
add comment

Your Answer


