Space character in Arabic and Latin fonts

Mamoun Sakkal
Mamoun Sakkal Posts: 17
edited February 2019 in Font Technology
We have a problem we struggled with for many years without success and face now one more time, I am hoping that someone on the list may have a solution.
For fonts that have both Arabic and Latin scripts we need the space character to be narrower in Arabic, especially in bolder styles. When we use an existing Latin as a companion, the space character becomes wider than required for Arabic. In the past, we added a narrower “space.arab" glyph and a substitution lookup to replace the Latin space with the Arabic space. This substitution works in Word but not in InDesign. We have tried placing the substitution lookup in <calt>, <rclt>, <ccmp>, as well as combinations of these features; ALL of these substitute correctly in Word, and NONE of them work in InDesign. 
We tried a slightly different approach now by making the narrow space as the default and changing that to the wider space in Latin script via a substitution lookup in the <ccmp> feature. We think this is a better approach since Arabic is the primary script in these fonts. This did not work and the narrow space is applied in both scripts in Word and in InDesign. 
Does anyone have information to shed light on this issue and solve our problem? Did anyone succeed in applying two different space characters to two scripts in the same font?
Thanks in advance.
Tagged:

Comments

  • AzizMostafa AzizAli
    AzizMostafa AzizAli Posts: 103
    edited February 2019
    For Arabic, I usually replace spaces with Zero Width No-Joiners then the Zero Width No-Joiners after ا،أ،إ،د،ذ،ر،ز،و and ؤ with Half-Spaces (Shift+Space). Then, thanks to QalamBartar https://ahmedgraf.com/2018/06/12/qalam-bartar/, I go on kerning, swashing, and overlapping to typeset more attractive documents.
    That's right: I do recommend manual Space-width modulation for Arabic.




  • AzizMostafa AzizAli
    AzizMostafa AzizAli Posts: 103
    edited February 2019
    Sorry! Duplicated post.
  • Bahman Eslami
    Bahman Eslami Posts: 73
    edited February 2019
    Aziz the issue is not about how to type a narrower space; it's about how to engineer a font to make the space narrower in InDesign when it's surrounded by Arabic letters without user interruption. Mamoun I'm also looking forward to hearing anyone suggesting a solution but I'm not sure if it's possible to substitute space by any other glyph in InDesign. At least I wasn't able to create a simple substitution working. Generally, I also find the space glyph from Latin fonts too wide for Arabic.
  • Have you considered using the locl feature for an alternate word space?
  • yanone
    yanone Posts: 130
    I tried the locl feature. Also not working in Indesign.
  • George Thomas
    George Thomas Posts: 648
    edited February 2019
    I tried the locl feature. Also not working in Indesign.

    Rainer at Glyphs has previously written that InDesign will do the .locl substitution but will not adjust the width from the original space.

    Substituting the space character is a real problem that may not be possible to resolve in every case. I had a similar issue between Latin and Cyrillic some years ago and never found a good solution.


  • May I ask if You have tried to substitute the space using the others unicode spaces:
    http://jkorpela.fi/chars/spaces.html
    You need to put the features in all scripts even if you are using a contextual substitution in only one.
  • Erin McLaughlin
    Erin McLaughlin Posts: 45
    edited March 2019
    Have you tried adding a negative kern between a group containing all Arabic characters and the space glyph, in the <dist> feature, rather than substituting in a new space glyph?

    (rather than the <kern> feature, since I'm not sure if Word would automatically honor it)
  • Erin McLaughlin
    Erin McLaughlin Posts: 45
    edited March 2019
    I was able to get a script-specific space glyph to work in Devanagari in both Word and InDesign CS6 in the <locl> feature in this example. (I put a black rectangle in the space.deva glyph to make it obvious).

    HAHA ok I spoke too soon. I didn't actually *change* the width of the glyph. When I did... the space still appears as the same width as the default space. Now I see the problem you encountered. Yikes! Sorry :(  No help here, I guess :(

    space.deva is the same width + rectangle:





    space.deva is a wider width + rectangle:


  • George Thomas
    George Thomas Posts: 648
    edited March 2019
    Scheherazade in the Developer version might be best. It contains a Latin charset as well as Arabic. No Feature code in the source and no UFO though.


  • In my Hebrew-Latin fonts, I split the difference for the space character. For most of my Hebrews, I prefer a space of about 27-28% of the em; for Latin, I usually prefer something narrower, about 23-24%. So 25% is usually a reasonable compromise, with pair adjustments made in kerning for the worst cases. I don’t know if such an approach will work in Arabic, but it’s worth considering. Kerning is always possible, though it is irksome to feel forced to go such a primitive route.

    Where I do need the locl feature to work is with punctuation, as I always design a separate set of period, comma, semicolon, etc, for the Hebrew. As a workaround to the locl feature, we access the alternate punctuation set through the Swash feature (made part of the Paragraph Style and Character Style in InDesign), as that feature is never used otherwise in the fonts. This should work for an alternate space character too, unless, of course, you intend to use the Swash feature. You could try another unused feature that InDesign recognizes. 

    Mind you, my fonts are used only by me and by people working for me, so there’s no need for universality. Even if Adobe fixes its access of the locl feature, there will still be the problem of backward compatibility. 

    By the way, the bigger questions are why we need—and how we use—multi-script fonts. As a working typographer, I find it almost always easier to switch fonts between scripts than use the unified fonts. After all, you have to specify languages in InDesign anyway. The only reason I include a Latin set in Hebrew fonts is to accommodate a requirement of Microsoft's (which might no longer exist, so far as I know), as I use Word as a pass-through for certain levels of text editing.

  • Thanks for all the comments and suggestions. 

  • Batman Eslami: I agree with your comment and will post here any solution that we find.
  • Mamoun Sakkal
    Mamoun Sakkal Posts: 17
    edited March 2019
    Sami Artur Mandelbaum: We will try your suggestion. Thank you.
  • Erin McLaughlin: I don't feel right about kerning all the letters in the font, it's just not right.
  • George Thomas: Scheherazade has the same space for both Latin and Arabic.
  • Scott-Martin Kosofsky: The Arabic space character needs to be substantially narrower than the Latin, especially in the Heavy and Black weights. For example, in our Shilia family where we used Univers as the Latin companion, we have space values of 270, 290, and 342 in the lightest, regular, and heaviest weights in Universe, but 212, 188, 150 for the same weights in Arabic. This means the Arabic space is 78%, 65%, and 44% of the Latin respectively.
    Shilia letter design is tighter than most Arabic similar fonts so the space had to be quite tight as well, which means we could not split the difference and use and average space because it would not be satisfactory in either script.
    I believe that for typefaces where both scripts are designed from scratch, the right solution is to make the side bearings of the glyphs in the Latin wider to produce the right space when typeset with the Arabic space character.
    For fonts intended for general use, it is extremely helpful to the users to have both scripts in the same font file.
  • AzizMostafa: Thank you for the useful links, although they do not address this problem.
  • In my reply to Scott-Martin Kosofsky above, my suggestion to make the side bearings of the Latin glyphs wider doesn't work of course because it will prevent proper spacing between the letters when there is no space character, so please ignore it. Spoke too fast while thinking only about the space character problem.