Does VOLT Help in Developing Arabic Fonts?!

AzizMostafa's picture

Peace be on All Friends,
In VOLT, Marks Positioning is carried out Independently for each letter and for each component of every ligature?!
So, to avoid the Collision of Marks with Marks and/or Letters in Arabic Fonts:
1 The thinest letter or ligature should be at least a bit wider than the widest mark. Just like asking 3 cowboys to stand side by side without allowing their Hats to collide. And this can be done at the expense of Beauty.
2 Marks should be horizontally centered on top of or below each letter and each component of every ligature. And this is not always possible even if Beauty is sacrificed.
Samples speak louder than words?!
Daringly

sergeym's picture

You can always do mark positioning in context of neighbor glyphs. So you can move marks higer if there are marks over other letters that can cause collision.

Dealing with ligatures is essentially the same, but may be tricky, though. OpenType model can not distinguish between mark over one or another component, except for mark-to-liga attachments. For example, for sequence of ligature and mark, lookup can say that something should happen only if mark is logically attached to the first component. There could be workaround for that, for example having separate glyphs for mark over first second etc. component.

Thanks,
Sergey

John Hudson's picture

You can always do mark positioning in context of neighbor glyphs. So you can move marks higer if there are marks over other letters that can cause collision.

In addition to this, I have also contextually inserted a very narrow joining stroke between two letters when I need to accomodate a mark that might otherwise collide with an adjoining letter. This is appropriate in more linear designs, rather than in the kind of calligraphic design shown in the illustration. Calligraphy has its own rules for mark size and positioning.

AzizMostafa's picture

Sergey says:
You can always do mark positioning in context of neighbor glyphs.So you can move marks higher if there are marks over other letters that can cause collision.

Say:
.. Higher and higher till I get all Marks on the same level (Mac it).
For the best mark positioning you can ever get with a ligature-free font, see this:
http://www.nonosoft.jifisa.net/download.php
Try Volting it!

Sergey continues:
Dealing with ligatures is essentially the same, but may be tricky, though. OpenType model can not distinguish between mark over one or another component, except for mark-to-liga attachments.
For example, for sequence of ligature and mark, lookup can say that something should happen only if mark is logically attached to the first component. There could be work around for that, for example having separate glyphs for mark over first, second etc. component.

Say:
Easier said than done!
Just tell me please where to position what out of hundreds — not to say thousands — of marks:
http://qurankareem.info/a/OthmanyFonts.zip
http://qurankareem.info/a/othmanyQuran.zip
This will make the brain of an octopus-minded to work overtime to work around Independently up and down, across and back, diagonally in 4 direction so that Marks wont collide.
________________________________
Happy Exploring

sergeym's picture

Easier said than done!

Who said this will be easy?! Of course Arabic typography requires very complex font logic, but it is definitely doable with OpenType layout.

Thanks,
Sergey

Si_Daniels's picture

>but it is definitely doable with OpenType layout.

reminds me of the old saying "fonts are hard... lets go shopping" ;-)

AzizMostafa's picture

John Hudson says:
... I have also contextually inserted a very narrow joining stroke between two letters when I need to accommodate a mark that might otherwise collide with an adjoining letter. This is appropriate in more linear designs, rather than in the kind of calligraphic design shown in the illustration.

Say:
After All the Automation and Volting, I have to do a manual Adjustment?! That what I did in Windows 3.11. In addition to this, I had also contextually inserted a very narrow joining Space when I needed to accommodate a mark that might otherwise collide with a final letter.

This was appropriate in more linear designs and in the kind of calligraphic design shown in the illustration, too.

AzizMostafa's picture

Sergey says:
Who said this will be easy?! Of course Arabic typography requires very complex font logic, but it is definitely doable with OpenType layout.

Say:
Easier done with Fontgraph 3.5 on windows 3.11.
Go back and re-explore!

david h's picture

I don't understand - are you asking for help? do you like to work with VOLT? or you can do it without VOLT, and even better? If yes - great, but why the 'negative'* ? You don't have to use it.

[* a lot of negative here lately; negative season?]

AzizMostafa's picture

Thanks for your Positive Feedback David
My "Uncompromisng Arabic Font" was done without VOLT.
http://typophile.com/node/19348
However, I am looking forward to transforming my (5+1) fonts into a single OTF.
But it seems that Volt does not help?! Is there a better Alternative?
Thank you once again.

david h's picture

You're welcome Aziz.

I need a lifeguard to go through that thread (typophile.com/node/19348)
So, if we keep it simple (but no simpler): you want a single OpenType? You can't do it with VOLT (+ hard work) ? Why not?

Si_Daniels's picture

I get the impression that this is really just an excuse to vent on VOLT, and there's nothing wrong with that. However, Sergey & John took the question seriously and shouldn't be harshed for trying to offer some advice. Falling into the same trap I might suggest that the power users of VOLT do a lot of the number crunching outside of VOLT (eg in Excel and perl based tools), and import the source tables into VOLT for compilation - that's apparently the best approach on complex jobs.

Katia Dali's picture

hello there!!

I am a new VOLT user and Im facing a problem that might seem silly to you. but i wish u can help me with this: "im working on an Arabic open type font designed by font lab, when Im opening the font from VOLT toolbar or File/open menu, im not being able to view the glyphs, what I see i empty boxes with ID numbers. while when i open a font like "times new romans" lets say, i can see the letters in the edit glyphs window. so please can you help me figure out how to import a new font and be able to see the font in the edit glyph window.

i wish what i said makes sense to you.

Miguel Sousa's picture

> when Im opening the font from VOLT toolbar or File/open menu, im not being able to view the glyphs

Is the font TrueType ?

Si_Daniels's picture

I think Miguel is correct - the font is likely an OpenType CFF font, needs to be TrueType. Reason for this is that VOLT uses its own inbuilt rasterizer (TTF) rather than the system rasterizers.

John Hudson's picture

After All the Automation and Volting, I have to do a manual Adjustment?!

No no no, I mean I have automatic contextual insertion of a narrow connecting stroke within the VOLT lookups.

John Hudson's picture

Here is an example, using the Adobe Arabic font created with VOLT. The insertion of the narrow connecting stroke is done automatically, as a GSUB type 2 lookup, based on the context of the mark following the alif.

John Hudson's picture

By the way, I don't think that OpenType is the best way to handle Arabic text. There are, for instance, good arguments for layout systems that treat diacritic marks as a separate layer applied after word formation. Contextual mark positioning and spacing adjustment is the most difficult and cumbersome aspect of Arabic OpenType, especially if one wants refinement. The benefit of OpenType is in its wide support and adaptability. If you have a different solution that works for your needs -- even if it only works in one application and requires macros --, is there a need to make an OpenType version?

AzizMostafa's picture

Thanks John for your input.
Though the example given does not occur in Arabic, I do understand what you mean. Any how, if it is applied to the last word in the first sample (on the left), it will be spoilt?
How if a word ends with R+TaMarbota and the Tanween of TaMarbota collides with R?

david h's picture

> There are, for instance, good arguments for layout systems that treat diacritic marks as a separate layer applied after word formation.

Such as?

AzizMostafa's picture

John Hudson says:
By the way, I don’t think that OpenType is the best way to handle Arabic text.

Say:
OpenType is the best way to handle marks-free Arabic text?
So, let us concentrate on Ligatures.
In ArabicTypesetting, a number of 2&3-component ligatures were built.
In Nafees Naskh of http://www.crulp.org, instead, all the possible shapes of characters to form ligatures were built — save LamAlif of course.
Which approach do you see better and Why?

AzizMostafa's picture

Back at the service of Friends,
Here are 2 lines of the same Arabic Text using ArabicTypesetting OTF:
the lower is marked and the upper is marks-free.

By comparison, one can easily see:
The left significant word in the lower line is a bit longer than the above due to the narrow stroke between its first and second letters, as mentioned by John Hudson .
The 2 Middle words in each line have the same shape irrespective of Marks.
The 3 words on the right of the lower line are not ligatured as above. In other words. Marks spoilt the ligatures.

Why this Inconsistent Behaviour?!

AzizMostafa's picture

John Hudson says:
There are, for instance, good arguments for layout systems that treat diacritic marks as a separate layer applied after word formation.
...
If you have a different solution that works for your needs — even if it only works in one application and requires macros —, is there a need to make an OpenType version?

Say:
Yes. There is a need to make an OpenType version to benefit from the OpenType wide support and adaptability to long documents not a couple of lines that can be fantastically handled in a number of applications by creating 2 layers: one for letters and the other for marks!

John Hudson's picture

How if a word ends with R+TaMarbota and the Tanween of TaMarbota collides with R

There are two ways to deal with this kind of collision. I believe the more traditional technique is to contextually lower the Tanween so that it no longer collides with the R. Another technique is to introduce a contextually sensitive kerning adjustment between the R and the TaMarbota when the latter is followed by a below mark. I think the decision which method to use depends very much on the type design. In a very modern, linear design one might want to make the heights of marks quite regular and not raise or lower them contextually, so in that case the kerning option might be best. In a traditional naskh design, though, one might want to preserve the letter relationships and allow the marks to move as necessary; this better emulates the scribal approach.

John Hudson's picture

So, let us concentrate on Ligatures.
In ArabicTypesetting, a number of 2&3-component ligatures were built.
In Nafees Naskh of http://www.crulp.org, instead, all the possible shapes of characters to form ligatures were built — save LamAlif of course.
Which approach do you see better and Why?

Although every Arabic font I have worked on to date has involved ligature glyphs for one reason or another, I actually think that the better approach is not to use ligatures, but instead to have component stroke shapes which are contextually substituted to produce the correct forms. This technique is much more adaptable and efficient. Consider, for example, Monotype Nastaliq, which had up to 22,000 ligature glyphs -- some for entire words -- in its late metal and final phototype versions, but which has recently been remade in OpenType using only a small fraction of that number of glyphs.

I'm aware of some fonts that even use component strokes to create the lam_alif sequence, i.e. that do not contain any ligatures at all.

John Hudson's picture

David,

Tom Milo's DecoType Arabic layout system uses a layering approach which follows the way in which calligraphers construct a word. First the 'archigraphemes' of the letters are written; these are the letters, correctly formed, but without any marks at all, not even the distinguishing dots. Then the dots are written relative to the letterforms and taking into account context of nearby strokes. Then vowels are written relative to both letterforms and dots. If I remember correctly, Tom breaks the system down into about seven different layers, based on classification of marks. Also, marks in the system are not of fixed size, but may be longer or shorter depending on context, as found in calligraphy.

Although all my own Arabic work has been in OpenType, I'm pretty convinced that only an approach like Tom's can result in optimal mark positioning. The downside of such a system is that it tends to be very slow: not something you would want to use for, e.g. e-mail. But in the context of book production, it is the best thing available.

John Hudson's picture

The left significant word in the lower line is a bit longer than the above due to the narrow stroke between its first and second letters, as mentioned by John Hudson.

In this case, I believe the method is not an inserted narrow stroke but a variant form of the K, but yes the result is the same.

The 3 words on the right of the lower line are not ligatured as above. In other words. Marks spoilt the ligatures.

This font contains two different kinds of ligature lookups. Some ligatures are allowed to form even when marks are involved in the sequence (in VOLT, they are set to process NONE of the mark glyphs), and some ligatures are inhibited from forming when marks are involved (in VOLT, they are set to process ALL mark glyphs). This is a design decision. In the Arabic Typsetting font, Mamoun Sakkal decided to prevent ligatures involving vertical stacking from forming when marks are applied, because in these situations it is sometimes confusing, even for the reader, to know to which letter in the ligature a mark is applied.

I use the same method when dealing with the initial lam_mim sequence, in which the mim portion of the ligature ends up to the right of the lam, which phonetically precedes it. So if the lam takes a mark, I prevent this ligature from forming because it is too easy to be confused about which letter is taking the mark.

Of course, if one is seeking to emulate the traditional naskh style including its mark positioning, then one probably doesn't want to inhibit ligation in these circumstances. But then one is also presuming a level of readership that is quite high.

david h's picture

Thanks John. Just read his paper (20th International Unicode conference)

AzizMostafa's picture

Thanks John,
...... Monotype Nastaliq has recently been remade in OpenType using only a small fraction of that number of glyphs.
How Lucky! No Bites (Marks)

Tom Milo’s DecoType Arabic layout system..... it is the best thing available.
Kelk2000 has no match:
http://www.kelk.ws
Appreciatively,

John Hudson's picture

I wasn't familiar with the Kelk2000 stuff. Thank you fr the link.

It isn't clear, though, from the limited English information available on the website whether the results of this system are live text. There is talk about creating 'artwork', which looks very impressive (reminds me of Tom's 'Make Calligraphy' plug-in for MS Office 2000), but does it remain live (Unicode?) searchable and editable text? That is really key in the context of crossmedia publishing, which is obviously becoming more and more important.

John Hudson's picture

By the way, at the Unicode conference in California in March Tom showed a demo of the stuff he has been working on with Winsoft as a plug-in for the Middle East version of InDesign CS3. It works a little like a CJK input method: you type a word in Unicode and are presented with all the valid options for writing that word according to the rules of the script style you are using, and you select the one you want. Very impressive.

AzizMostafa's picture

John On behalf of Tom & WinSoft:
You type a word in Unicode and are presented with all the valid options for writing that word according to the rules of the script style you are using, and you select the one you want. Very impressive.

Say: That is exactly what Kelk2000 does.

AzizMostafa's picture

John Hudson says:
In the Arabic Typesetting font, Mamoun Sakkal decided to prevent ligatures involving vertical stacking from forming when marks are applied, because in these situations it is sometimes confusing, even for the reader, to know to which letter in the ligature a mark is applied.
I use the same method when dealing with the initial lam_mim sequence, in which the mim portion of the ligature ends up to the right of the lam, which phonetically precedes it. So if the lam takes a mark, I prevent this ligature from forming because it is too easy to be confused about which letter is taking the mark.

Sorry to say: Unsuccessful Decision!
Save in the Lam_mim sequence, sacrificing ligatures elsewhere was not justifiable!
Arab eyes do snap Marks on ligatures to their corresponding components:
The right and left significant marks are respectively snapped to the right and left components and the middles to the middles.
And this is intuitive to the non-Arab eyes too.

Worse is the shifting up of the beginning of words like the marked one here. The arm of the second letter appears higher than Alif?!
Wish the unmarked shape were maintained.

AzizMostafa's picture

How if a word ends with R+TaMarbota and the Tanween of TaMarbota collides with R? (Right)

John says:
... I believe the more traditional technique is to contextually lower the Tanween so that it no longer collides with the R. (Middle)
Say: This wont Only look odd but will transgress the lower line (Win-Descent) also.

John says:
.. Another technique is to introduce a contextually sensitive kerning adjustment between the R and the TaMarbota when the latter is followed by a below mark. (Left)
Say: This is the Only possible solution unfortunately not applied in the said OTF.

John says:
... In a very modern, linear design one might want to make the heights of marks quite regular and not raise or lower them contextually...
Say: No way!

AzizMostafa's picture

My last posting has changed alot.
Please check it before replying.
Thanking you and Apologizing for the inconvenience.
Happy Postings

John Hudson's picture

Sorry to say: Unsuccessful Decision!
Save in the Lam_mim sequence, sacrificing ligatures elsewhere was not justifiable!
Arab eyes do snap Marks on ligatures to their corresponding components:
The right and left significant marks are respectively snapped to the right and left components and the middles to the middles.
And this is intuitive to the non-Arab eyes too.

Since I wasn't responsible for the font in question (at least, not for the Arabic part of it), I don't want to second guess the reasons for the ligature decisions. I'll just note that, obviously, Mamoun Sakkal has 'Arab eyes', and he made these decisions.

Worse is the shifting up of the beginning of words like the marked one here. The arm of the second letter appears higher than Alif?!
Wish the unmarked shape were maintained.

I agree that this looks quite unhappy.

AzizMostafa's picture

Thanks John for your understanding and tolerance.
In the said font, no mid-word ligatures were included. Obviously, there was no difficulty in that and words like the alif-lamed here would look as happy as their sisters.
Was that up to the Decision-Maker also?

John Hudson's picture

Yes. Decisions about what glyphs are font contains and how they work are the decisions of the designer.

In most Arabic fonts I have worked with, ligatures tend to be limited to a few isolated sequences, a few initial sequences, and generally more final sequences. But there is no reason why a font could not contain medial ligatures.

The issue that one runs into, though, is deciding which ligatures take preference. This is another reason why I favour a non-ligature approach, which is more flexible and is not constrained by choices about what ligatures to include and which take precedence.

AzizMostafa's picture

> But there is no reason why a font could not contain medial ligatures.
How wonderful the font will look like then!
Medial ligatures make words shorter (less horizontal) and more comfortable to the eyes ( for Arabs and non-Arabs):

> The issue that one runs into, though, is deciding which ligatures take preference.
This should not be an issue as the priority is given to 2 middle shapes: Meem then to the sea-horse (Jeem and likewise).

> ... This is another reason why I favour a non-ligature approach ....
A better approach is a combination of the 2: 3&4-component ligatures and stroke shapes to produce 2-component ligatures.

Yours for Beautiful Arabic Faces, John

John Hudson's picture

Medial ligatures make words shorter (less horizontal) and more comfortable to the eyes ( for Arabs and non-Arabs)

Less horizontal, of course, usually means more vertical, and this may have been a factor in the decision not to employ medial ligatures in the Arabic Typesetting font. This font is mainly going to be used in an application like MS Word, by users who are used to employing fonts using the default linespacing. In such a situation, having word forms growing tall through use of medial ligatures could cause problems with parts of letters being clipped as they extend beyond the font's WinAscent setting. Obviously in fonts designed primarily for use by experienced typographers such as yourself, or in professional page layout applications, this would be less of a concern.

AzizMostafa's picture

> Less horizontal, of course, usually means more vertical
What makes you jump to this wrong conclusion?
Simply avoid Ligatures with the tall Ta&Za and Kaf and you are done!
Yours with Flowers

AzizMostafa's picture

> ... and this may have been a factor in the decision not to employ medial ligatures in the Arabic Typesetting font... In such a situation, having word forms growing tall through use of medial ligatures could cause problems with parts of letters being clipped as they extend beyond the font’s WinAscent setting.

Another Guess?
The raised letter forms in the said font speak louder than ligatures?!

John Hudson's picture

I was looking at your earlier example of the dad_jeem ligature, and thinking that if you maintained that if the lam were raised to connect to the dad in its ligated form, the overall height would be very tall: taller even than the raised letter example you show here.

AzizMostafa's picture

In the case of Lam+Dad+jeem, the lam should be a little bit lowered and its lower end curved to shoulder Dad...
More importantly, the Dad+jeem should not be in that height and thickness...
Accurate Calculation counts?!

AzizMostafa's picture

So far, Marks and Ligatures have been covered, but kerning was out of discussion.
Sampling 3 words in the ArabicTypesetting font created by John Hudson with VOLT, see how the kerning between (Z+Alif) and (R+3ain) has shortened and beautified the middle word. But no kerning took place between (R+Alif) in the left word nor between (R+3ain) in the right one...
Why does kerning work in some places and does not work for the very couple(s) elsewhere? Was the fault in VOLT? Or elsewhere?

John Hudson's picture

Aziz, I did not create the Arabic Typesetting font: I only designed the Latin portion of the typeface. Mamoun Sakkal designed the Arabic, beginning with an initial idea from Paul Nelson, and Mamoun also did the VOLT work for the font.

I think the kerning problem you are seeing must be due to the Arabic Typesetting kerning being implemented as a width adjustment on the first glyph, which is how GPOS kerning is properly implemented for left-to-right scripts. When this font was made, no one had figured out that right-to-left kerning needs to be implemented differently -- as equivalent width and positioning adjustments to the second glyph --; I presume this will be fixed in the next version of this font. [Microsoft may be concerned about backwards compatibility and text reflow in existing documents, but this kerning problem is so bad that I think such concerns should be ignored.]

If right-to-left kerning is implemented in the same way as left-to-right, only every second pair of glyphs gets kerned, and this is what you are seeing in your test. If you were to add another character before the sequence زرع then you would see the kerning suddently applied between رع. You see this in the graphic below. The second line shows the Adobe Arabic font, in which the kerning has been applied to the second glyph in the lookups, and the spacing is consistent regardless of the number of glyphs in the run.

[Note that if one uses the kern2volt tool to convert a FontLab generated kern table to GPOS kerning in VOLT, the tool has an -RTL option that will correctly define the lookups for right-to-left scripts. You will need separate kern table sources for RTL and LTR kerning though.]

AzizMostafa's picture

Thanks John for your elaborated answer.
> If you were to add another character before the sequence زرع then you would see the kerning suddently applied between رع.

Say: True only if R is added. Or a zero-width non-joiner!
The 2nd word from the left in my very first sample says otherwise...

And from your samples, It seems that both Adobe and Mircosoft confused Arabic with English Kerning!

Hope you will find my previous postings useful:
http://typophile.com/node/19609
http://typophile.com/node/19348

> .. Mamoun Sakkal designed the Arabic.. and Mamoun also did the VOLT work..
Say: I’ll just note that, obviously, Mamoun Sakkal has ‘Arab eyes..

Katia Dali's picture

I want to ask you all, how did you learn VOLT? Does anyone of you has a manual for it?

John Hudson's picture

I learned VOLT by using it and by pestering Paul Nelson and Sergey Malkin at Microsoft. I had the advantage that I was developing fonts for them so they were obliged to answer my questions. :)

There isn't a really good VOLT manual or tutorial out there, although what is available is still quite helpful if mixed with experiment and trawling in the archives of the VOLT user community on MSN. I'd be interested in writing a proper VOLT manual if I had time and someone were to pay me.

In the meantime, I suggest looking at these links:

http://www.microsoft.com/typography/developers/volt/default.htm
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=VOLT_Tu...

then go to the MSN VOLT community site:

http://groups.msn.com/MicrosoftVOLTuserscommunity

and look through the message archives for the release notes for individual updates or search for specific topics.

Katia Dali's picture

thank you john, it was nice of you to reply to my questions. but i still need to know how much time (approximtely) it took you to learn volt? and did you face lots of difficulties? Actually the font that im working on is Arabic and it is a very specialized language with lots of glyphs..

John Hudson's picture

VOLT for Arabic is not very complicated -- not compared to, say, Devanagari, which I'm working on at the moment. The basic GSUB shaping features -- init, medi, fina (isol is optional, basically only necessary if you want to perform contextual heh shaping) -- are very straight forward, as are the ligature substitutions. Things are trickier if you start getting into contextual substitutions, e.g. if you have different glyph forms that you want to employ in different situations, but even then you just need to keep track of your contexts.

GPOS mark positioning is probably the most difficult thing you'll need to learn for Arabic, and is mainly tricky because the interface might not be intuitive at first. Read the tutorials carefully.

VOLT isn't a massive program -- it does some specific tasks for OpenType Layout development -- so there isn't very much to learn in terms of interface. The thing that takes time is figuring out the best way to do things for different scripts, and also learning what expectations shaping engines have for those scripts.

Syndicate content Syndicate content