Basic Kerning Profile

Get help with FontCreator here. Please do not post feature requests or bug reports here.
Post Reply
Posts: 2
Joined: Thu Sep 22, 2016 3:50 pm

Basic Kerning Profile

Post by aLcOcGeAnNt » Thu Sep 22, 2016 4:21 pm


I am looking for a super basic kerning profile or method that includes pairs with both letters, numbers, and commonly used puncutation. I tried stripping out information from several other fonts but haven't found the right steps (here in the forum or through fiddling around with the program) which explain how to make a simple kerning table that isn't as limited as the initial kern wizard letters-only table and that isn't as prohibitively complex as some of the tables and class sets included in other fonts.

What I am really looking for is a way to make a table that includes all run of the mill letter and number pairs so that my coworker and I can kern fonts fairly quickly without having to hand-select several thousand pairs one by one.

TL;DR: How can I expand the kern wizard so that it includes number and number/letter pairs and other commonly used punctuation symbols such as dashes, commas, and quotes?

If there is a post here which explains this sort of thing or if there exists a .txt of code which can be pasted into the code editor that would be amazing. And if not, knowing there isn't would at least save us the time of needlessly looking for such a solution.

Thank you!


Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 7077
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK

Re: Basic Kerning Profile

Post by Bhikkhu Pesala » Thu Sep 22, 2016 4:40 pm

If you just run Autokern from the Tools menu FontCreator will do a lot of the donkey work for you. I prefer to do it manually to have more control over how the kerning classes are named and which glyphs they contain. Try it both ways and see which you prefer.

It's definitely worth the extra effort to use Class-based kerning even if your font only includes the ANSI character set. If it only uses Latin Basic, then there is no need, but even an ANSI font contains several versions of A i.e. Á,À,Ä,Ã, and Å that will use the same kerning pair adjustments a AT and TA, AO and OA, AV and VA, AW and WA, AY and YA, and AC, AG, DA etc.

See, even without mentioning lowercase pairing (Ay) or pairs with figures (A0), we have quite a lot of kerning pairs already. With @A_Caps class, and @VW_Caps class we need to manually adjust far fewer pairs.

Watch the Using Kerning Classes video for FC 9.0 on my FontCreator Review page to get to grips with the process of creating a comprehensive kerning pairs lookup.

What I did, was create an OpenType Feature script for Garava Regular, then I imported that into Garava Italic, Bold, and Bold Italic¹. After importing the script, I ran the Autokern feature to let FontCreator adjust the pair values, and manually checked the 500 or more pairs for anomalies. My fonts are large and some like Garava include both Small Capitals and Petite Capitals, which are all kerned: Garava has 33K kerning pairs. Checking 1,000 pairs is a lot faster than checking 33,000.

A normal ANSI font won't need nearly that many kerning pairs.

¹ The entire OpenType script can be imported to save reproducing ligatures, etc., for each type style. OpenType Layout Definition Scripts can be imported into other fonts too. If they have the exact same glyph coverage, there won't be any errors to fix.
My FontsReviews: MainTypeFont CreatorHelpFC11.0 Pro + MT7.0 @ Win10 1703

Posts: 2
Joined: Thu Sep 22, 2016 3:50 pm

Re: Basic Kerning Profile

Post by aLcOcGeAnNt » Thu Sep 22, 2016 6:14 pm

Thank you for the reply.

Is there any way to manipulate the kern wizard to include additional glyphs? Numbers, periods, dashes and commas. Super super basic kerning for run-of-the-mill A to z, 0 to 9.

I'm looking through the setting of some other fonts, and to be honest, I can't see how some of these setups didn't take years to do (at least with my knowledge of this software and typography in general). Hopefully that illustrates my confusion when approaching the topic.

Kern Wizard gets us to a "1" on a scale of 1 to 10 as far as complexity and breadth, your fonts and other professionally set up fonts are up at a "10" on that scale in my view and we're really just looking for a "2" or "3" out of 10 to manage very coarse kerning for many multiple fonts used for engraving. Currently we are kerning every sign by hand in an engraving program so if we could manage to utilize this program to update our most used fonts we could save quite a bit of time.

It was recommended by an ex coworker and their instructions refer to a much older version of the program so we're sort of starting from scratch when learning the most basic functions of this aspect of the software.

I hope my question is relatively clear, we're more on the manufacturing/layout end and less on the typography end of the industry and are probably using this tool well below its intended capabilities.

Thanks again,


Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 7077
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK

Re: Basic Kerning Profile

Post by Bhikkhu Pesala » Thu Sep 22, 2016 7:15 pm

I ran Autokern on a typical ANSI font from Bitstream. It did not take very long, but it generated way too many unwanted pairs and classes, which is why I prefer the laborious manual method.

Kerning was easier in older versions with the kern wizard, but it supports only legacy kerning tables. Modern Pro fonts from the likes of Adobe don't even contain these kern tables, though FC10 will export both GPOS and legacy kerning tables (to suit older apps, which I suspect your machines will need).

FontCreator 10 is harder to get started with, but once you have created a script for one of your fonts, you just import it into the other fonts (assuming that they have the same glyphs), then run autokern in the OpenType Editor to adjust the pairs. Take a look at the script from my Hari font, which contains only 17 Classes and 721 kerning pairs. If you import it into one of your fonts you will likely get a load of errors due to missing glyphs like Ā macron. However, you can view it in a text editor to see what it contains, delete any glyphs missing from your font, then save it as a new file to import into the OpenType Designer.

Adding kerning pairs to an existing lookup is simple.

Code: Select all

script latn {
  feature Kerning;

class @A_caps [A Agrave Aacute Acircumflex Atilde Adieresis Aring Amacron Abreve Aogonek];
class @BDF [B D F H K N P R X];
class @T_caps [T Tcedilla Tcaron Tcommaaccent Tdotbelow];
class @U_caps [U Ugrave Uacute Ucircumflex Udieresis Utilde Umacron Ubreve Uring Uhungarumlaut Uogonek];
class @VW_caps [V W Wcircumflex Wgrave Wacute Wdieresis uni1E88];
class @Y_caps [Y Yacute Ycircumflex Ydieresis Ygrave];
class @a_lc [a agrave aacute acircumflex atilde adieresis aring ae amacron abreve aogonek];
class @e_lc [e egrave eacute ecircumflex edieresis cdotaccent emacron ebreve edotaccent];
class @i_lc [i igrave iacute icircumflex idieresis itilde imacron ibreve iogonek];
class @o_lc [o ograve oacute ocircumflex otilde odieresis oslash omacron obreve ohungarumlaut oe];
class @r_lc [r racute rcommaaccent rcaron];
class @s_lc [s sacute scircumflex scedilla scaron scommaaccent sdotbelow];
class @u_lc [u ugrave uacute ucircumflex udieresis utilde umacron ubreve uring uhungarumlaut uogonek];
class @w_lc [w wcircumflex wgrave wacute wdieresis];
class @y_lc [y yacute ydieresis ycircumflex ygrave];

feature Kerning kern {
  lookup Kerning;

lookup Kerning {
  pos ampersand F <21> <0>;
  pos zero R <-14> <0>;
  pos four U <82> <0>;
  pos five F <-25> <0>;
  pos six F <5> <0>;
  pos seven U <47> <0>;
  pos nine F <48> <0>;
  pos A B <63> <0>;
  pos @A_caps @T_caps <123> <0>;
  pos C D <151> <0>;
  pos E F <142> <0>;
  pos F G <113> <0>;
  pos G H <47> <0>;
  pos I J <39> <0>;
  pos J K <168> <0>;
  pos M N <57> <0>;
  pos N O <64> <0>;
  pos P Q <229> <0>;
  pos Q R <46> <0>;
  pos R S <25> <0>;
  pos @T_caps @A_caps <-105> <0>;
  pos @T_caps @BDF <200> <0>;
  pos @T_caps @T_caps <400> <0>;
  pos T U <469> <0>;
  pos @T_caps @a_lc <-35> <0>;
  pos @T_caps @e_lc <-51> <0>;
  pos @T_caps @i_lc <-38> <0>;
  pos @T_caps @o_lc <-62> <0>;
  pos @T_caps @r_lc <-150> <0>;
  pos @T_caps @s_lc <-110> <0>;
  pos @T_caps @u_lc <-66> <0>;
  pos @T_caps @w_lc <-150> <0>;
  pos @T_caps @y_lc <-150> <0>;
  pos @U_caps @VW_caps <176> <0>;
  pos @VW_caps X <221> <0>;
  pos W X <224> <0>;
  pos X Y <118> <0>;
  pos @Y_caps @a_lc <26> <0>;
  pos bar J <-64> <0>;
  pos sterling one <-71> <0>;
  pos sterling two <-31> <0>;
  pos sterling three <24> <0>;
  pos sterling four <-197> <0>;
  pos sterling five <-17> <0>;
  pos sterling six <-50> <0>;
  pos sterling seven <-61> <0>;
  pos sterling nine <55> <0>;
  pos yen nine <89> <0>;
  pos brokenbar J <-64> <0>;
  pos Thorn Q <172> <0>;
  pos germandbls F <-22> <0>;
  pos lira one <-71> <0>;
  pos lira two <-31> <0>;
  pos lira three <24> <0>;
  pos lira four <-197> <0>;
  pos lira five <-17> <0>;
  pos lira six <-50> <0>;
  pos lira seven <-61> <0>;
  pos lira nine <55> <0>;
  pos Euro zero <157> <0>;
  pos Euro one <-54> <0>;
  pos Euro two <27> <0>;
  pos Euro three <157> <0>;
  pos Euro four <240> <0>;
  pos Euro five <136> <0>;
  pos Euro six <114> <0>;
  pos Euro eight <143> <0>;
  pos Euro nine <119> <0>;
My FontsReviews: MainTypeFont CreatorHelpFC11.0 Pro + MT7.0 @ Win10 1703

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests