You are here: OpenType
Wednesday, April 16, 2014
Example for Ligature substitution shown in Libertine Display: A common ligature besides the ff-ligature this one composed of an f and an i.
Fig. 1: Small capitals
Fig. 2: Ligatures
Fig. 3: Fractions
Fig. 4: Numeral sets
Fig. 5: Style sets
Fig. 6: Word finaling Glyphs
Fig. 7: Superiors and Inferiors
Fig. 8: Contextual substitution
Fig. 9: Show Alternative Glyphs

“OpenType” is the latest magic word in digital typography. Microsoft and Adobe have developed a standard which supports much more than just typesetting in a line. We won’t give you a whole abstract of OpenType features, but we will describe the OpenType functions that we have implemented into Linux Libertine. For further information see: Wikipedia, Adobe.
Unfortunately few user programs make use of OpenType-features, yet. The positive list indeed is short but a new innovative Tex/LaTex compiler has full OpenType-support: XeTex/XeLaTex. The following PDF shows you the advantages and use of XeTex and Libertine: Libertine-XeTex-EN.pdf.

Small capitas – Tables smpc & c2sc

Every style of Linux Libertine contains small capitals. They are, as the name implies, small versions of upper-case letters which have been manually edited to look good in titles and for emphasis in running text. With these two tables you can switch upper- and lower-case letters to small caps.

Ligatures – Tables liga, dlig & hlig

These tables are for ligature substitution. The liga-table is for standard ligatures, like ff, fi, fl... The hlig-table is for historic ligatures like st und ct, which are seldom used anymore. The dlig-table is for discretionary ligatures, such as tz.

Fractions – Table frac

LinuxLibertine contains some true fractions (in the form “¼”). Single-glyph fractions exist for fractions with the denominator two, three, four, five, six, seven and eight. Others, like 1/10 can be build up from super- and sub-scripts. The frac table specifies automatic substitution of the appropriate glyphs (e.g., “½”) for ordinary input (“1/2”).


Nearly any good font contains kerning information, but how much time and effort the designer had spent on this feature is quite different. Until the late 1990s, the kerning information was defined in a long table pair by pair. Since OpenType there is the GPOS Kerning method, which allows a group by group approach. This is a much more elegant solution, because modern fonts with more than 2000 characters would otherwise contain thousands of entries. 

Example for a kern group: Similar characters are seen as one kern group, i.e. V and W have nearly the same left and right geometry, and are thus defined in the same kern group. A corresponding group would be one of o and e which have nearly the same geometry on their left side. A kerngroup is e.g. {V,W}+{e,o}.

Linux Libertine fonts utilize this GPOS kerning feature. Unfortunately there are some programs which do not support GPOS kerning so far:

  • OpenOffice / LibreOffice (please vote for this bug)
  • Scribus
  • Papyrus
  • Microsoft Office (Office XP and previous)

Programs supporting OpenType kerning:

  • XeLaTex
  • Inkscape
  • Illustrator
  • Indesign
  • Microsoft Office 2010 (and younger)

Numeral sets – Tables pnum, tnum, onum & zero

LinuxLibertine contains different sets of numbers. The default is the tnum-set, (Fig: 1st line). They are so called “table-numbers”, which are all the same height and width. In addition, the same number style is also provided as a proportional set (pnum, Fig: 2nd line), this means that the digits have different widths. The 1 is thinner, for example, than the 8. This practically always looks better than monospaced, but in tables, of course, these digits will not align into neat columns. In longer texts one might want to use medieval numbers (also known as minuscle numbers), which will better harmonize with the alphabetical glyphs because of their different ascenders and descenders. This number-set also exists in a monospaced variant (Fig: line 3, thin zero because of the thin monospace) and proportional set with different widths (Fig: line 4).
When majuscules, minuscles and numbers are being mixed (as i.e. in Internet-addresses), confusion may arise in distinguishing between O (Oh) and 0 (zero). Therefore Linux Libertine contains two marked Zeros – one proportional and one tabular. The zero-table regulates the automatic substitution from normal to marked zero.

Style sets – Tables ssXX

These tables contain a list of stylistic alternatives (salt) or a certain subset of it (ssXX). LinuxLibertine for example contains a German variant of the capital umlauts Ä, Ö and Ü, where the dots are closer to the glyphs. These are standard since version 2.6. For all those who will not use these glyphs not as German umlauts, but rather as emphasized vowels (like Ë) there is the ss01-style-set. The ss02-style-set uses more flexible forms of some capitals, such as of K and R. Via the salt-table, nearly all glyph-variants can be shown but need to be selected separately. An example for this behavior is the new German Versal-Eszett, that is being used automatically with capitalization or small caps. Those who do not want this behavior can have the Versal Eszett substituted by SS by using the salt-table. For speakers of Swiss German, you can change all occurances of the esszet to ss/SS by using the ss03-style-set.

Final Glyphs – Table fina

In some scripts there are special glyphs for letters at the end of words. For example, the Greek alphabet has a final lower-case sigma (“ς”). Because Greek keyboards have both characters available, the fina-table will only substitute the internal sigma against the word-ending-sigma for all languages but Greek.

Superiors & Inferiors – Tables sups and sinf

For many scientific publications superiors (sups) and inferiors (sinf) are needed. Linux Libertine contains all numbers, as well as the entire basic Latin alphabet, in their optimized superior and inferior forms. Additionally, the plus and the minus glyph, among many others are included. Unlike the computer simulated inferiors and superiors (i.e. those used by “M$ Word”) which are generated by simply scaling and repositioning (shown here in red), the inferiors and superiors found in this stylistic set (shown here in green) are modified to fit the optical weight of the lower-case glyphs.

Contextual substitution – Table ccmp

The table for contextual chaining substitution (ccmp) allows the substitution of certain characters in a defined surrounding. In the latin alphabeth this is especially useful in case of the minuscle f, whose long characteristic overbording neck collides with leftwarding glyphs. For example with the question mark or accented minuscles. Typical examples are shown left (red). The Libertine contains besides the regular f also a short-necked variant. In case of problematic chains the regular f is substituted in favour of the short-neck one and a collision is thereby prevented (green). A further use of the ccmp table is for manually accented letters. If, for example, the vertical-bar accent is being combined with an i, it will collide with the dot of the i. The ccmp table then substitutes the dotless ı for the i.

Show all alternatives – Table aalt

“aalt” stands for “show all Alternatives,” this table contains all possible related glyphs for the selected one. For example, if an “a” is given, the result you would be shown is the superior and inferior a, the related small capital and a further alternative for the small capital...

At the end we must mention, that unfortunately most programs (also proprietary ones) don’t support OpenType yet – and if they do, it is only rudimentarily implemented. But we see the problem ambivalently: what the OpenType-Fonts lack, software won’t support, and vice-a-versa. As far as we know there are a few serious efforts in the software-world:
XeTex (see above)
The Scribus-Developers work at a wider support. The OpenOffice-Website mentions first steps to support OTFs. The Gimp already knows automatic ligature-substitution, but more complex support of OpenType lacks because of too simple implementations in the Pango-library.
Under Windows and MacOS at least Adobe Indesign supports all of the implemented functions found in Linux Libertine.