# What is a polynomial kerning table?

## What is a polynomial kerning table?

### Question

From Robert Bringhurst's *The Elements of Typographic Style*:

Names like T.V.R. Murti and T.R.V Murti, for example, pose microscopic typographic problems that no binomial kerning table can solve. Fonts with

polynomial kerning tablesâ€” able to kern a given pair of letters in different ways according to context â€” have existed for a decade and my someday be the norm. For now, they are a rarity.

What exactly is a polynomial kerning table? How is it different from a binomial kerning table or a *standard* kerning table? What about it or it's implementation makes it *polynomial*?

### Accepted Answer

Polynomial simply means consisting of several terms, as opposed to binomial consisting of only two terms.

In most cases, kerning is the spacing between *pairs* of characters (binomial). It is however possible and useful to apply kerning based on a larger string of characters (polynomial). This is called contextual kerning. (As far as I'm aware, the term *polynomial kerning* isn't a standard term and it is more usually and widely called *contextual kerning*)

Contextual kerning is often needed in characters with negative sidebearings. Most often with a space or punctuation in between. For example, the triplet `L apostrophe A`

. The `L apostrophe`

pair will have negative kerning and the `apostrophe A`

pair will have negative kerningâ€”this may result in the `L`

and `A`

colliding and the apostrophe too close to the `A`

and too far away from the `L`

.

Contextual kerning is supported by the OpenType format but support in desktop publishing software and various text-processing engines is limited.

I don't have any figures to back this up, butâ€”from my experienceâ€”contextual kerning isn't something many type designers implement. After the very long and tedious process of kerning character pairs, not many designers will be too worried about contextual kerning. Especially when support is so limited.

### Related reading on contextual kerning:

- Wikipedia - Contextual Kerning
- Glyphs App - Contextual Kerning
- FontForge - Advanced Typography Tables
- Adobe Developer - OpenType Feature File Specification

*Note: most of this answer is taken from this previous Q&A
.*

### Popular Answer

The prefix of *nomial* refers to the number of glyphs taking into account when determining kerning. Hence a binomial kerning table employs kerning pairs, while a polynomial kerning table considers kerning triplets, quadruplets, and so on.

While this choice of words is somewhat justified by the Greek origin of *binomial* and *polynomial* meaning *consisting of two/multiple parts,* I consider it a bad choice as those terms are already taken by mathematics and relevant to type design as such. Usually, the term *contextual kerning* is used instead of *polynomial kerning*.

To illustrate the difference, letâ€™s consider the examples from the quote. I rendered them once using only kerning pairs (top) and then adjusted the spacing as I would like it to be (bottom). Bear in mind that the latter is only a quick illustrative sketch and not perfect:

As you can see, with pair kerning, things do not look good. For example, there is too much space in *V.* and *R.V.* This is likely to avoid overlaps in combinations like *V.V.* Triplet kerning takes into account which letter is following or preceding the dot and thus it can place the dot closer to the *V* if appropriate. Moreover, it can harmonise the spacing in all capitalâ€“dotâ€“capital combinations.

Quadruplet kerning could do things like harmonising the space in *R. M* and *V. M* by acknowledging that the *V* is leaning into the word space while the *R* is leaning away from it. However, the actual realisation of this in a typesetting program is unlikely, as they usually do not use the space glyph of the font but handle spaces themselves.