Closed graphicore closed 9 years ago
More conversation:
@Tarobish
@graphicore I'm working on these colliding letters. At the moment I'm generating some of the combinations, and they collide indeed, so I can totally see what my task is. I'm trying to get most of the combinations displayed. It's kind of interesting :-)
There is one intersting question, maybe I'll figure this out soon by myself, but:
@Tarobish the last part just need the extension in between when the final form of 'Alef' comes with the vowel below the baseline Like this پإ or يإ
I'm not quite sure how to enter this text. Especially, how to add the vowel. Can you send me a simple text file containing some examples of this, so I can figure out how I can reproduce the needed input. Simple text file: the ending is .txt, you should have a text editor that can do this on the mac. Also, the encoding should be utf-8 (which should be the default) What I know right now:
Sure, ill send the .text containing some example :) also i added a new sample text that containing some example for checking the vowels
@graphicore From your example above in the email it looks like you are entering two characters: uni067E + uni0625 and uni064Q + uni0625
The latter "uni0625" is ARABIC LETTER ALEF WITH HAMZA BELOW is "hamza below" the vowel (and thus the part with the problem)? Or do I read the examples wrongly and there needs to be some other combining character that adds the vowel and I lost that information?
in this example you are absolutely right but letter ALEF it may get different below’s vowel like this یاِ or یاٍ as you see even in these sample they didn’t pay attention to it and the have colliding
@Tarobish please check this glyph it is a letter ALEF with extension, we do have it in our font it may have same purpose in Amiri “aAlf.fina.alt” for the letter "Alef "in final form with and without vowels (above and below)
@Tarobish I just checked all the glyphs in the class below, ending with .medi_YaaBari
They are all the same to their counterparts without _YaaBari
at the end of their names. There are some more or less big differences in the letters below, however, I think that's just signal noise (not intentional).
So, now I remove the class and it's usage and later the glyphs. If there is a good reason not to do this, let me know.
The reason is, this makes it a bit easier for me to work with the features.
Here are the glyphs you might want to check:
In uni0750.medi_YaaBari
the TashkilAbove
anchor is significantly further on the right side
In uni0626.medi_YaaBari
the position of Hamza.Above
differs a bit
In uni0678.medi_YaaBari
the Hamza.Above
is a bit more on the right
In uni063D.medi_YaaBari
the Vovel is a tiny bit differently positioned
In uni06BA.medi_YaaBari
the TashkilAbove
is a bit lower
Here is the whole class that's going to be missing.
@aBaa.medi_YaaBari = [ uni0777.medi_YaaBari uni0680.medi_YaaBari uni0776.medi_YaaBari uni06BC.medi_YaaBari uni0750.medi_YaaBari uni0756.medi_YaaBari uni0768.medi_YaaBari uni06CE.medi_YaaBari uni0775.medi_YaaBari uni06BD.medi_YaaBari uni0626.medi_YaaBari uni066E.medi_YaaBari uni0620.medi_YaaBari uni064A.medi_YaaBari uni06BB.medi_YaaBari uni067F.medi_YaaBari uni0755.medi_YaaBari uni08A0.medi uni067D.medi_YaaBari uni067E.medi_YaaBari uni067B.medi_YaaBari uni0628.medi_YaaBari uni067A.medi_YaaBari uni0751.medi_YaaBari uni0646.medi_YaaBari uni0753.medi_YaaBari uni0752.medi_YaaBari uni062A.medi_YaaBari uni0678.medi_YaaBari uni063D.medi_YaaBari uni062B.medi_YaaBari uni0679.medi_YaaBari uni06B9.medi_YaaBari uni0769.medi_YaaBari uni0649.medi_YaaBari uni067C.medi_YaaBari uni0754.medi_YaaBari uni06D1.medi_YaaBari uni06D0.medi_YaaBari uni06BA.medi_YaaBari uni06CC.medi_YaaBari uni0767.medi_YaaBari ];
On Jun 10, 2015, at 8:46 AM, Lasse Fister notifications@github.com wrote:
@Tarobish https://github.com/Tarobish I just checked all the glyphs in the class below, ending with .medi_YaaBari They are all the same to their counterparts without _YaaBariat the end of their names. There are some more or less big differences in the letters below, however, I think that's just signal noise (not intentional).
You are right, they are all belong to the same family (just difference in the position of vowel and dots) the point is this class, we need all the character with have dots below like یے پے
So, now I remove the class and it's usage and later the glyphs. If there is a good reason not to do this, let me know.
The reason is, this makes it a bit easier for me to work with the features.
Here are the glyphs you might want to check:
In uni0750.medi_YaaBari the TashkilAbove anchor is significantly further on the right side
we need this In uni0626.medi_YaaBari the position of Hamza.Above differs a bit
we can remove it from the class In uni0678.medi_YaaBari the Hamza.Above is a bit more on the right
we can remove it from the class In uni063D.medi_YaaBari the Vovel is a tiny bit differently positioned
we need this In uni06BA.medi_YaaBari the TashkilAbove is a bit lower
we can remove it from the class Here is the whole class that's going to be missing.
@aBaa.medi_YaaBari = [ uni0777.medi_YaaBari uni0680.medi_YaaBari uni0776.medi_YaaBari uni06BC.medi_YaaBari uni0750.medi_YaaBari uni0756.medi_YaaBari uni0768.medi_YaaBari uni06CE.medi_YaaBari uni0775.medi_YaaBari uni06BD.medi_YaaBari uni0626.medi_YaaBari uni066E.medi_YaaBari uni0620.medi_YaaBari uni064A.medi_YaaBari uni06BB.medi_YaaBari uni067F.medi_YaaBari uni0755.medi_YaaBari uni08A0.medi uni067D.medi_YaaBari uni067E.medi_YaaBari uni067B.medi_YaaBari uni0628.medi_YaaBari uni067A.medi_YaaBari uni0751.medi_YaaBari uni0646.medi_YaaBari uni0753.medi_YaaBari uni0752.medi_YaaBari uni062A.medi_YaaBari uni0678.medi_YaaBari uni063D.medi_YaaBari uni062B.medi_YaaBari uni0679.medi_YaaBari uni06B9.medi_YaaBari uni0769.medi_YaaBari uni0649.medi_YaaBari uni067C.medi_YaaBari uni0754.medi_YaaBari uni06D1.medi_YaaBari uni06D0.medi_YaaBari uni06BA.medi_YaaBari uni06CC.medi_YaaBari uni0767.medi_YaaBari ]; — Reply to this email directly or view it on GitHub https://github.com/Tarobish/Jomhuria/issues/6#issuecomment-110806799.
They are all the same to their counterparts ...
You are right, they are all belong to the same family (just difference in the position of vowel and dots)
I don't say they are similar as in " belong to the same family", I say they are virtually the same (like equal). I checked them, one by one.
the point is this class, we need all the character with have dots below like یے پے
I don't understand how we need characters that are really just duplicates. When I say "tiny bit" I mean really tiny. It would be a big help to get text input examples that currently render right but don't render right when the class is removed. The problem is, I can't type anything useful. I could however spend some time to generate just all combinations that trigger this class to be used.
I'm logging here a bit what I do, so that I don't forget what happened, it's getting quite a lot of information ...
From the data above, I removed duplicates.
I also removed everything that does not refer a unicode char in it's name, because these are never used directly. They are just providing the drawings as components. the u*
chars are used in shaping.
After checking back with Kourosh I now removed all of the medi_YaaBari stuff.
I recognized that all the uniF***
and u1EE29
are not joining with the uni0***
glyphs, which is totally ok, because the uniF***
are legacy fallbacks anyways. Where these are used the others are not, they are not meant to be together.
The one question is if we need them in the OpenType feature at all, because, if there is unicode, these glyphs are not used ... (if we remove them, subsetting may get easier, but I don't know)
I made a nice feature that inserts the extension character (Kashida) between colliding glyphs. I needed a second try to make it elegant. I use this for the first group and the second group yet, more to come. The glyph used is currently uni0640.1
(kashida/tatweel) but we could use any other glyph as well (Kouroush said that one is good).
Interestingly, the final Alef with tatweel from Kourosh screenshot above is already replacing a uni0640.1
followed by a normal uni0627.fina
(final alef), in kashida.fea. We can probably trigger that mechanism when doing just the same as with the first group. (We cold also use the uni0627.fina_Tatweel
) directly.
The ligature is failing in two (afaik) cases: Some (final) Alef forms that are special:
0625 إ ARABIC LETTER ALEF WITH HAMZA BELOW ≡ 0627 ا 0655 ٕ
0673 ٳ ARABIC LETTER ALEF WITH WAVY HAMZA BELOW * Kashmiri * this character is deprecated and its use is strongly discouraged * use the sequence 0627 ا 065F ٟ instead
when this is entered as u'\u200D\u0627\u065F'
(200D = zero width joiner, 0627 = alef. 065F wavy hamza below)
harfbuzz shapes this: '[uni0673.fina|space]
and for u'\u200D\u0627\u0655'
(0655 = hamza below)
harfbuzz shapes this: '[uni0625.fina|space]'
I searched a while, but this is not done by the features or anything else in the font. It must be some form of unicode normalization. (who to ask Khaled? Behdad?)
So, I'm thinking about decomposing uni0625.fina and uni0673.fina into their components, then they work with the normal routines of adding the kashida etc.
the input u'\u200D\u0627\u065F'
which comes out as uni0673.fina
was made by our own features in composition.fea
. I removed it and the behavior is now as I want it.
the input u'\u200D\u0627\u0655'
which comes out as uni0625.fina
seems to be some builtin unicode normalization. I can decompose it in basic.fea
in the feature fina
with sub uni0625 by uni0627.fina uni0655;
Ok, this is almost done.
see: http://tarobish.github.io/Jomhuria/#tests/collision-below-1 and http://tarobish.github.io/Jomhuria/#tests/collision-below-2
Note that I use the gh-pages server to show the tests :-) http://tarobish.github.io/Jomhuria When we find some time we can add fancy stuff there ;-)
In the second document: http://tarobish.github.io/Jomhuria/#tests/collision-below-2 It can be noted that some Marks are positioned badly in the generated cases. We should most probably fix that.
please check these (all the character in combination with uni0625.fina) uni0680.init(first) + uni0625.fina(second) ڀإ ڀ + إ uni0776.init(first) + uni0625.fina(second) ݶإ ݶ + إ uni06CE.init(first) + uni0625.fina(second) ێإ ێ + إ uni0775.init(first) + uni0625.fina(second) ݵإ ݵ + إ uni06BD.init(first) + uni0625.fina(second) ڽإ ڽ + إ uni064A.init(first) + uni0625.fina(second) يإ ي + إ uni067E.init(first) + uni0625.fina(second) پإ پ + إ uni0753.init(first) + uni0625.fina(second) ݓإ ݓ + إ uni0752.init(first) + uni0625.fina(second) ݒإ ݒ + إ uni063D.init(first) + uni0625.fina(second) ؽإ ؽ + إ uni0754.init(first) + uni0625.fina(second) ݔإ ݔ + إ uni06D1.init(first) + uni0625.fina(second) ۑإ ۑ + إ uni06CC.init(first) + uni0625.fina(second) یإ ی + إ uni0767.init(first) + uni0625.fina(second) ݧإ ݧ + إ uni0680.medi(first) + uni0625.fina(second) ڀإ ڀ + إ uni0776.medi(first) + uni0625.fina(second) ݶإ ݶ + إ uni06CE.medi(first) + uni0625.fina(second) ێإ ێ + إ uni0775.medi(first) + uni0625.fina(second) ݵإ ݵ + إ uni06BD.medi(first) + uni0625.fina(second) ڽإ ڽ + إ uni064A.medi(first) + uni0625.fina(second) يإ ي + إ uni067E.medi(first) + uni0625.fina(second) پإ پ + إ uni0753.medi(first) + uni0625.fina(second) ݓإ ݓ + إ uni0752.medi(first) + uni0625.fina(second) ݒإ ݒ + إ uni063D.medi(first) + uni0625.fina(second) ؽإ ؽ + إ uni0754.medi(first) + uni0625.fina(second) ݔإ ݔ + إ uni06D1.medi(first) + uni0625.fina(second) ۑإ ۑ + إ uni06CC.medi(first) + uni0625.fina(second) یإ ی + إ uni0767.medi(first) + uni0625.fina(second) ݧإ ݧ + إ
also these characters (uniFEF3) uniFEF3(first) + uniFBA9(second) ﻳﮩ ﻳ + ﮩ uniFEF3(first) + uniFBAF(second) ﻳﮯ ﻳ + ﮯ uniFEF3(first) + uniFBE5(second) ﻳﯥ ﻳ + ﯥ uniFEF3(first) + uniFBFD(second) ﻳﯽ ﻳ + ﯽ uniFEF3(first) + uniFC10(second) ﻳﰐ ﻳ + ﰐ uniFEF3(first) + uniFC90(second) ﻳﲐ ﻳ + ﲐ uniFEF3(first) + uniFD17(second) ﻳﴗ ﻳ + ﴗ uniFEF3(first) + uniFD18(second) ﻳﴘ ﻳ + ﴘ uniFEF3(first) + uniFE8A(second) ﻳﺊ ﻳ + ﺊ uniFEF3(first) + uniFEF0(second) ﻳﻰ ﻳ + ﻰ uniFEF3(first) + uniFEF2(second) ﻳﻲ ﻳ + ﻲ
(uniFB58) uniFB58(first) + uniFBAF(second) ﭘﮯ ﭘ + ﮯ uniFB58(first) + uniFBE5(second) ﭘﯥ ﭘ + ﯥ uniFB58(first) + uniFBFD(second) ﭘﯽ ﭘ + ﯽ uniFB58(first) + uniFC10(second) ﭘﰐ ﭘ + ﰐ uniFB58(first) + uniFC90(second) ﭘﲐ ﭘ + ﲐ uniFB58(first) + uniFD17(second) ﭘﴗ ﭘ + ﴗ uniFB58(first) + uniFD18(second) ﭘﴘ ﭘ + ﴘ uniFB58(first) + uniFE8A(second) ﭘﺊ ﭘ + ﺊ uniFB58(first) + uniFEF0(second) ﭘﻰ ﭘ + ﻰ uniFB58(first) + uniFEF2(second) ﭘﻲ ﭘ + ﻲ
(uniFB5C) uniFB5C(first) + uniFBA9(second) ﭜﮩ ﭜ + ﮩ uniFB5C(first) + uniFBAF(second) ﭜﮯ ﭜ + ﮯ uniFB5C(first) + uniFBE5(second) ﭜﯥ ﭜ + ﯥ uniFB5C(first) + uniFBFD(second) ﭜﯽ ﭜ + ﯽ uniFB5C(first) + uniFC10(second) ﭜﰐ ﭜ + ﰐ uniFB5C(first) + uniFC90(second) ﭜﲐ ﭜ + ﲐ uniFB5C(first) + uniFD17(second) ﭜﴗ ﭜ + ﴗ uniFB5C(first) + uniFD18(second) ﭜﴘ ﭜ + ﴘ uniFB5C(first) + uniFE8A(second) ﭜﺊ ﭜ + ﺊ uniFB5C(first) + uniFEF0(second) ﭜﻰ ﭜ + ﻰ uniFB5C(first) + uniFEF2(second) ﭜﻲ ﭜ + ﻲ
(uniFBFE) uniFBFE(first) + uniFBA9(second) ﯾﮩ ﯾ + ﮩ uniFBFE(first) + uniFBAF(second) ﯾﮯ ﯾ + ﮯ uniFBFE(first) + uniFBE5(second) ﯾﯥ ﯾ + ﯥ uniFBFE(first) + uniFBFD(second) ﯾﯽ ﯾ + ﯽ uniFBFE(first) + uniFC10(second) ﯾﰐ ﯾ + ﰐ uniFBFE(first) + uniFC90(second) ﯾﲐ ﯾ + ﲐ uniFBFE(first) + uniFD17(second) ﯾﴗ ﯾ + ﴗ uniFBFE(first) + uniFD18(second) ﯾﴘ ﯾ + ﴘ uniFBFE(first) + uniFE8A(second) ﯾﺊ ﯾ + ﺊ uniFBFE(first) + uniFEF0(second) ﯾﻰ ﯾ + ﻰ uniFBFE(first) + uniFEF2(second) ﯾﻲ ﯾ + ﻲ
Thanks :)
Great! :) i just checked all the generated tests :) it works perfect, it was just some problems that i mentioned it the comment :)
Many Thanks
On Jun 12, 2015, at 2:27 PM, Lasse Fister notifications@github.com wrote:
Ok, this is almost done.
see: http://tarobish.github.io/Jomhuria/#tests/collision-below-1 http://tarobish.github.io/Jomhuria/#tests/collision-below-1 and http://tarobish.github.io/Jomhuria/#tests/collision-below-2 http://tarobish.github.io/Jomhuria/#tests/collision-below-2 Note that I use the gh-pages server to show the tests :-) http://tarobish.github.io/Jomhuria http://tarobish.github.io/Jomhuria When we find some time we can add fancy stuff there ;-)
In the second document: http://tarobish.github.io/Jomhuria/#tests/collision-below-2 http://tarobish.github.io/Jomhuria/#tests/collision-below-2 It can be noted that some Marks are positioned badly in the generated cases. We should most probably fix that.
— Reply to this email directly or view it on GitHub https://github.com/Tarobish/Jomhuria/issues/6#issuecomment-111622519.
@Tarobish
please check these (all the character in combination with uni0625.fina)
I think that looks fine in http://tarobish.github.io/Jomhuria/#tests/collision-below-1 It's the 13th column. The Table layout changed, you have to hover over the Alefs in the head-line to find uni0625.fina with a tooltip. I made that to save some space and make the appearance more even)
also these characters …
for me all good: uniFEF3 uniFB58 uniFB5C uniFBFE
Perfect, it looks fine :)
On Jun 19, 2015, at 12:21 PM, Lasse Fister notifications@github.com wrote:
@Tarobish https://github.com/Tarobish please check these (all the character in combination with uni0625.fina)
I think that looks fine in http://tarobish.github.io/Jomhuria/#tests/collision-below-1 http://tarobish.github.io/Jomhuria/#tests/collision-below-1 It's the 13th column. The Table layout changed, you have to hover over the Alefs in the head-line to find uni0625.fina with a tooltip. I made that to save some space and make the appearance more even)
also these characters …
for me all good: uniFEF3 uniFB58 uniFB5C uniFBFE
— Reply to this email directly or view it on GitHub https://github.com/Tarobish/Jomhuria/issues/6#issuecomment-113612976.
@Tarobish wrote:
the file:
@Tarobish wrote: