Some questions about making an Arabic font


I am learning Glyphs and enjoy it very much. I have some question about making an Arabic (Persian) font. Your help is very appreciated.

  • I generated alef-ar.fina (FE8E). Glyphs wants me to make it by adding something to the base glyph of isolated form of Alef (FE8D). The problem is that the final form of Alef looks different from its isolated form, and is only made of one piece. It can’t be made by adding something to the isolated form of Alef. Am I missing something here?

  • Also, I noticed that the letter “yeh-farsi” (06CC) is missing from the Farsi set (at left side bar). This is a major glyph in Farsi and should be added to the pre-set of glyphs.

  • Also, I made ligatures for Latin very easily, but so far I couldn’t make it work in Arabic. I noticed that this issue was reported at the forum in 2011. Is it still a problem in Arabic or I am making mistake in making it? Since this feature is vital for making an Arabic font, may you make a guide in your blog for explaining it more for Arabic?

I found out your blog extremely helpful. Many thanks to you for your help!

  1. The components that are put in the glyphs automatically are only a suggestions to start with. Just delete it. I will fix that in the database.
  2. this is already fixed for the next update.
  3. To make a ligature is a bi more complex than in latin. if you like to make a ligature for waw-ar and noon-ar: remove the -ar and stick it together with a underscore and add the -ar again > waw_noon-ar. If you what to make a ligature from waw-ar.init and noon-at.medi it will look like this: was_noon-ar.init (because the hole glyphs is then at the beginning of the word.

Thank you George for your help.

It seems that the preview band of the Glyphs doesn’t show the Arabic ligature (I didn’t forget to applied the feature). I was confused that why it doesn’t work. I exported the font and it worked fine in TextEdit.

A question; Is it correct if I name a ligature something like “ben-noon-ar.init.liga” to force the ligature? Or the double-siffix would cause problem? If not, How should I differentiate a dlin from a liga?

The double suffix works almost fine. Features are generated and the font will work perfectly. But if you directly add the ligature to the edit view, it will break the connections.

I fixed some issues with the arabic layout so in my version it works fine. I will release the update soon.

Please help me.

I have easily made ligature for lam_alef-ar.fina. Now I want to make another liga for the instances that gaf is typed before this. So I made a ligature for gaf_lam_alef-ar.fina.liga but it doesn’t work.

Now my questions are;

1- What should I do for making a .liga with 3 or more glyphs in Arabic?

2- How could I make such a ligature that itself is built by combining two ligatures or one ligature plus a glyphs (like my [gaf-ar]+[lam_alef-ar.fina]?

I use version 1.3.15 (413) on Lion 10.8.2.

Thank you!

1- This is already fixed in the current version, may still be an issue in the Appstore version. What you can still do is add the feature manually:

  • In File > Font Info > Features create a feature ‘liga’.
  • Add this line to it:
    sub gaf-ar.medi lam-ar.medi alef-ar.fina by gaf_lam_alef-ar.fina.liga;

2- Just open the glyph, choose Layer > Add Components and choose the glyphs you want to put in.


My Glyphs was automatically making this line that you wrote.

But when I changed the following line, it worked:
sub gaf-ar.medi lam_alef-ar.fina by gaf_lam_alef-ar.fina.liga;

It seems that when the following glyphs already make a ligature, the formula should refer to that ligature instead the individual glyphs.

For adding components, when I do it, it is locked and I can’t move it. What I am doing wrong?

the three letter ligature needs to be before the two letter ligature. By default, the lam+alef ligatures are in the rlig features that comes before the liga feature. So you either use your substitution or move the liga feature above the rlig feature.

components are automatically aligned. There is a bug in the alignment for arabic ligatures, you need to put them in in the wrong order. But you will probably decompose some parts of it, this unlocks all other components. If you still what to keep all components, right click them and choose “Disable automatic alignment”.

Thank you! Your help solved my problem.

I tried to figure this one out, but I couldn’t. Your help as always is very appreciated.

I want to make a Glyph substitution that work like this;
I want to substitute beh-ar.init and tcheh-ar.medi to be replaced by beh-ar.init.alt and tcheh-ar.medi that I have made.

May you please help me.
Thank you.

Correction; I should have typed:

to substitute
beh-ar.init and tcheh-ar.medi
to be replaced by
beh-ar.init.alt and tcheh-ar.medi.alt


You can’t make a many to many substitution. But this should work.

sub beh-ar.init’ tcheh-ar.medi by beh-ar.init.alt;
sub beh-ar.init tcheh-ar.medi’ by tcheh-ar.medi.alt;

I don’t know how to thank you!

I had to changed your code to this to get what I wanted:

sub beh-ar.init’ tcheh-ar.medi by beh-ar.init.alt;
sub beh-ar.init.alt tcheh-ar.medi’ by tcheh-ar.medi.alt;

Many thanks.

Is there any way to keep this substitution intact, when marks like dammatan or shadda are added between them?

You are right. I wrote this in the browser.

You need to add a

lookupflag IgnoreMarks;

at the beginning of the feature.

I am most grateful to you!

Thank you.

Is there a way (like writing a code in Glyphs), to keep gsub compositions together when Keshida applies to then in justified text?

I know how to do that manually in ID.

I’m not really sure what you mean? Can you explain?

for example I made a substitute beh-ar.init.alt and substitute tcheh-ar.medi.alt for the beginning of the words and used this formula for them as you thought me on a few post earlier:

sub beh-ar.init’ tcheh-ar.medi by beh-ar.init.alt;
sub beh-ar.init.alt tcheh-ar.medi’ by tcheh-ar.medi.alt;

It is working and everything is fine. the beh stands on top of the special shape middle tcheh.

But when in inDesign, the text is justified and Keshida feature is active, inDesign would add tatweel between the characters to make the words longer. And I don’t want any tatweel be added between this beh and tcheh. I can go and manually find and choose all of these stances and turn off the Keshida for them, but they are too many in my font.

I was thinking if they are a code for this purpose that prevent this problem. I am sure that I’m not the first person who has this problem.

If I still couldn’t explain my question well, let me know to explain it by pictures.

Thank you!

I kind of understand the problem but do not know enough about the arabic Indesign to be able to give you advice.

Thank you.

I have a question related to this, regarding Farsi ligatures. There are a few ligatures of two letters, with the second one being yeh-farsi. For example feh followed by yeh-Farsi. The ligature is the same as feh followed by Alef-Maksura. Glyphs offers feh_alefmaksura-ar, but to make the Persian user get the same result, this ligature also needs to work for feh and yeh-farsi. What exactly is the naming convention for this? feh_yeh-farsi does not work, or more exactly, for naming it like this, you need to write the substitution by hand. Just for the standard ligatures this is already quite a few ligatures – is there a way to name them, to be able to generate the code automatically?