optical kerning from indesign

alpkan's picture

hello all,
i am working on a project and I need to send one of my typefaces to several people
who are not so familiar with InDesign. I do not have time at the moment to kern the
typeface. Does anyone know a python script that can import optical kerning
values from InDesign to Fontlab?

William Berkson's picture

If you do a search on Adobe's optical kerning here, you will find that there are a lot of problems with it. If it is spaced well, you are probably better off with no kerning, or lightly kerning a few characters like fVWT, and letting it go at that. Some people have successfully used the ikern service.

alpkan's picture

i am aware of the problems. i know how indesign optical spacing works. my question is simply if anyone knows a script that can take the kerning values from indesign to fontlab. let us not waste time by discussing what good spacing is, etc... thanks.

1996type's picture

I don't think it exists, but that's just a guess. Igino Marini from iKern can create quite good spacing and kerning in a matter of days.

Igor Freiberger's picture

IIRC, InDesign optical kerning is, like the paragraph composer engine, based on complex, patented algorithms. Due to this, I don't think it could be translated into a script.

kentlew's picture

I seem to remember something like this.

See if this script from Georg Siefert might help with you have in mind:


It’s not Python. It’s Javascript that you have to run in InDesign on a single text frame (can be threaded over many pages) and output an AFM file. But you might be able to press it into service for your needs, if you don’t find anything else more direct.

I don’t think it’ll read out the Optical Metrics values directly. And, of course, you have to provide the kern-pair strings. What I think you’d have to do is go through your kerning text string and manually override and reset each value in order to have the script pull them out to AFM.

What I mean by that is that you’d have to advance your cursor between each kern pair and hit option-leftarrow to override the Optical value, then immediately hit option-rightarrow to return to the value determined by Optical metrics, but now as a manual kern that the script will detect and harvest. (Maybe you could script that action locally just to speed things up.)

I don’t know if that description made sense, or if this will help you.

(I’m sparing you my considerable rant against the Adobe Optical Kerning routine. ;-)

Syndicate content Syndicate content