Need a help Please on Kerning Arabic Font in FontLab

ott's picture

I am working on Arabic font using Fontlab, I just want to know how to Kerning arabic letters/characters in font lab? Anyone knows can help me please? I have checked some well designed arabic fonts through FontLab and observer something like this "pos uni0632 uni0622 <-60 0 -60 0>;"

what is the numbers refer to? and how I can generating and kerning arabic letters in fontlab??

Look forward to your help


Janic's picture

I don't think you can generate a finished Arabic font in FontLab. You will need to use the latest AFDK or VOLT. What you are seeing with "pos uni0632 uni0622 <-60 0 -60 0>;" is FontLabs interpretation of kern lookups for right to left kerning.

Try reading the guiding notes for VOLT and finish your font using it.

ott's picture

Hi Janic,
But I have been seen full well programed fonts in fontlab!So, still, Is there anyway to kern arabic font in fontlab?

satya's picture

You can kern in FontLab - however - in order to generate a functional (Unicode compliant) typeface, you'll need to use either VOLT or AFDK.

AzizMostafa's picture

What + Where to kern is more challenging than how?!
You are encouraged to post here:

Miguel Sousa's picture

You can use FontLab to kern a Right-To-Left (RTL) font, but FontLab will not export the kerning in the proper RTL format.

The "pos uni0632 uni0622 <-60 0 -60 0>;" you're seeing is the correct kern pair format for RTL scripts.
For LTR scripts the format is "pos A V <0 0 -60 0>;" which can be simplified to "pos A V -60;".

The <A B C D> values are:
-- C horizontal advanced width adjustment
-- A horizontal position adjustment
-- B and D are for vertical adjustments

ott's picture

Hi again,
AzizMostafa: I have posted there, thanks

Miguel Sousa, Thanks for this info, but the question now, what should I do to kern RTL in fontlab?How? what should I do to generate something like <-60 0 -60 0> ??


Theunis de Jong's picture

Still only using FontLab? As Satya said above,

You can kern in FontLab - however - in order to generate a functional (Unicode compliant) typeface, you'll need to use either VOLT or AFDK.

ott's picture

Ok guys, It seems Fontlab is not enough, Ok, How I can use Kern2VOLT to kern my arabic letters?? Any idea?

John Hudson's picture

This is the workflow for kern2volt.

1. Do your kerning in FontLab, using the RTL preview setting in the kern window.

2. Generate a .ttf font containing a) an oldstyle flat (non-OTL) kern table and b) post table glyph names that will match your VOLT project glyph names. [Note that if you have used class kerning in FontLab you will need to 'flatten' it, i.e. expand the class kerning to individual pairs before generating the font with the kern table.

3. Open the font in VOLT and import the glyph names from the post table (this is under the Import/Glyph Data menu. Save the font, and then close VOLT.

4. Open a command line window (cmd.exe on Windows), navigate to the directory where your font and kern2volt are located (alternatively, if you know how, you can set the Windows path variables so that kern2volt can be run from any directory). Run kern2volt on the font being sure to use the -rtl option:

kern2volt -rtl myfont.ttf

5. kern2volt will produce a .vtl format VOLT GPOS lookup file containing your kerning. Note that kern2volt will have compressed your expanded kerning into ad hoc groups for maximum efficiency based on shared kerning values.

6. At this stage you generally want to generate a new .ttf font from FontLab *without* the oldstyle kern table. Open this new font in VOLT and import the .vtl generated by kern2volt. Assign this kerning lookup to the 'kern' feature for the Arabic script/language tags.

Note: if you have kerning for Arabic numerals as well as Arabic letters, you will need two separate FontLab kerning sources, one for RTL kerning and one for LTR kerning (obviously also true if you have a multiscript font that contains e.g. Latin glyphs as well as Arabic). Follow the above steps for each kerning set, running the LTR kerning through kern2volt without the -rtl option.

Syndicate content Syndicate content