The easiest way to optimize your kerning so it fits into the limitations of the OpenType font format is to use the KLTF Make Kern Feature script: http://kltf.de/kltf_otproduction.shtml
Every time I had this problem I solved it with KLTF's script. Only one thing: Don't forget to name your left and right kerning classes in a very consistent way so the script can recognize them, otherwise it will crash.
The FDK script can work well if the issue is primarily related to large multi-script data and if you set up your classes to fit the recommended schema.
However, I think Karsten’s script (linked by Adam) is much more calculating and robust in its approach to assembling the subtables and optimizing PairPos1 and PairPos2 tables. As a result, it works more reliably with a broader range of kern data and approaches, especially when the underlying cause is not necessarily multi-script.
Indeed, he should make sure that all of his kerning data is necessary and important. In my experience, kern overflow issues are often just a symptom of bad data or inefficient structuring. It’s good to address the root cause first.
But wouldn’t duplicate glyphs in kerning classes yield a different error than “overflow”?
The Yin Yang algorithm is not perfect. As far as I can remember if you have a glyph repeated in the same class this issue is not detected and cause compilation problems. Also sometimes the Yin Yang icon does not detect mistakes **if there are not kerning pairs using this class**. I usually check which is the glyph mentioned in the traceback message, save the classes, and inspect this class file with a good text editor, using the search function.
Comments
However, I think Karsten’s script (linked by Adam) is much more calculating and robust in its approach to assembling the subtables and optimizing PairPos1 and PairPos2 tables. As a result, it works more reliably with a broader range of kern data and approaches, especially when the underlying cause is not necessarily multi-script.
But wouldn’t duplicate glyphs in kerning classes yield a different error than “overflow”?
Also sometimes the Yin Yang icon does not detect mistakes **if there are not kerning pairs using this class**.
I usually check which is the glyph mentioned in the traceback message, save the classes, and inspect this class file with a good text editor, using the search function.