(calt) with fina and init in arabic font

Is it possible to develop this method to operate automatically in Glyphs App?

Screen Show

Fina and init are mutually exclusive. What you mean is “.isol”. And what do you mean by “.alt”? It is ambiguous, so it is better to use “.ss01” if that is what you mean. Then it should build automatically.

Or better yet, leave out the .isol altogether. It should be implicit. So just rer_beh.ss01

This is not an additional Glyphs to use ss01 property.

This style is used in Arabic Fonts on the basic Glyphs to avoid coalescence points with some of the Glyphs.

Often; placed with a table: compulsory replacement. Some put it within Calt property.

But automatically appeared in dilg! Shortened to rewrite the codes.

If it is a required ligature, add .rlig instead.

Ah, now I see. I could not open the video before.

So, what you want is this:
sub reh-ar.fina beh-ar.init by reh_beh-ar.medi.rlig;
sub reh-ar.fina beh-ar by reh_beh-ar.fina.rlig;

Please confirm or correct. Unfortunately, Glyphs produces these wrong now. I will file a feature request.

Is it also possible that both are isolated? For now, this is the only one that Glyphs can do automatically:
sub reh-ar beh-ar by reh_beh-ar.rlig;

Mekkablue, we had an interesting discussion about similar problem in Latin with Georg in Barcelona and I recommended following solution:

sub f.ss01 i.ss02 by f_i.ss01_ss02;

Maybe this idea could be applied on Arabic script as well. Although the glyph names could become pretty complex:

sub f.sc.ss01 i.sc.ss02 by f_i.sc.ss01_sc.ss02;


This is the programming that I added to the Font
sub reh-ar.fina yeh-ar.init by reh_yeh-ar.fina.alt;
sub reh-ar.fina beh-ar.init by reh_beh-ar.fina.alt;

In the case of the proposed technique has been set.It is supposed to work this way.
sub reh-ar.fina yeh-ar.init by reh_yeh-ar.fina.init.alt;
sub reh-ar.fina beh-ar.init by reh_beh-ar.fina.init.alt;

The glyph should not be called ‘reh_yeh-ar.fina.alt’ but ‘reh_yeh-ar.medi’. This should produce the correct feature code automatically.

Georg Seifert
This method does not give good results, replacement in arabic Fonts can not act, but as I told you earlier … check the mail

Classification of the glyphs as follows: final,Medil,Initial & isolated.
But you forgot to classify basic glyphs!

And therefore can not, in some cases, the inclusion of the main glyphs in the “script code” because it is not classified.

Believe me, if the classification as such. Able to solve many of the problems that direct you in the Arabic and non-Arabic.

beh-ar.isol > Isolated
beh-ar.orig > Original
beh-ar.fina > Final
beh-ar.medi > Medil
beh-ar.init > Initial

What for you need the .orig? All glyphs without an suffix are the originals.

In Latin, “there is no” multiple forms in different places of the characters,The result they charset original, but in the Arab one character has more than one form and position,Glyphs engine deal with these positions and shapes through the function,not the name,The names are similar but different functions,If it adopted in programming function,You must be used function with all characters

For example:

beh.init_reh.fina_noon.org-ar > beh_reh_noon.init.fina.org-ar

In this simple example, you do not need to see the forms of characters,from the function itself will know the shape of each character and location as it will be known Glyphs engine.

Try this example as usual


What is the function that will put it in the end?!

The problem here is “dependence” from the beginning to the Arabic Unicode in everything!

I really don’t understand what you try to do. From one of your earlier examples:

sub reh-ar.fina yeh-ar.init by reh_yeh-ar.fina.alt;

You make a ligature from two not connecting glyphs?

And why do you need a .orig suffix. There is a .isol suffix and for almost all of them, the isol shape is exactly the same as the version base shape. So you don’t need a alef-ar.isol because it looks exactly the same as the alef-ar.

beh.init_reh.fina_noon.org-ar > beh_reh_noon.init.fina.org-ar

that is again a not connecting ligature. Why do you need this? This is much easier handled with contextual alternates. So you draw a special noon as it should occur next to a reh. Then you add a few lines to the calt feature like this:

sub [reh-ar reh-ar.fina beh_reh-ar beh_reh-ar.medi ...] noon-ar' by noon-ar.altReh;

(The first groups should include all glyphs that end with a reh. So you don’t need to add a ligature for each combination.

beh-ar.init + reh-ar.fina = beh_reh-ar

The suffix should reflect the state of the hole ligature. In this case, the ligature does not connect to either side so it is a isolated shape. The isolated shape is equivalen to the base shape so you can omit the .isol suffix.
Another example:

beh-ar.medi + reh-ar.fina = beh_reh-ar.fina

This ligature connects to the preceding glyph and not the following. So it acts as a final glyphs.

1 Like