PakType 9.0 version released
Thank you Philippe! I use Microsoft VOLT and that does not support five hex digit code. I struggled for some time and didn't want to loose my work. Finally I am able to use VOLT project without VOLT application and still add 5 digit codes! I have finally added Arabic Extended C so far in version 9.0. My first goal is to support all Quran orthographies supported by Unicode. So far Arabic Mathematical Symbols and Rumi Numeral Symbols are not in my to-do list. But I'll try. Thanks
Updated pages
Completed Unicode 17 changes
Created release for Version 9
Completed Unicode 17 changes
Updated change log
Completed Unicode 17 changes
Completed Unicode 17 changes
Completed Stg1
Fixed issues
Renamed fonts and intermediate files
Added Unicode 17 characters to Tehreer
Fixed issues
Renamed intermediate font project
Added Unicode 17 characters
Renamed intermediate font and project files
Completed Unicode 17 changes
Removed FCP project
Added VOLT project
Renamed VOLT project font
woRKING ON gdef
Generated Stg 2 and 3 fonts
Fixed file
Added glyph info file
Added Python script for FontForge
Created Stg1 font
Added first batch of glyphs for Unicode 17.
Renamed FF Output file
Created FF Stage files
FIxed pages
Added ـ instead of ZWJ
kerning between U0631 REH and U06A9 KEHEH and similar pairs
Hello, I have added kerning in all the fonts now. Please take a look. Thanks
Deleted old version
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Added Kerning
Fixed Latin numbers in Aaya symbol
U+2060 is not supported
If I use 00A0 then the word breaks apart.
kerning between U0631 REH and U06A9 KEHEH and similar pairs
Arabic small high footnote marker (U+08E0) should be combining above and not spacing
noon ghunna (U+06BA) initial and medial letterforms have an incorrect dot above
Noon Ghunna shapes are fixed in the latest release.
Added Initial and Medial shapes for Noon Ghunna - 06BA
8.1 Version
* Added Change Log file
* Added Initial and Medial shapes for Noon Ghunna - 06BA
* Added Initial and Medial shapes for Noon Ghunna - 06BA
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this width adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. Not all Arabic fonts are making this adjusment (and do not correctly position it above spaces, kashida or dotted circle, however they all display it above the baseline, not on the baseline). This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic should...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space; the same is true when combining with the Arabic kashida. This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic should fit in the width without needing an adjustment (but this may not be true for other combining Quranic annotation signs, notably "large" combining small ligatures, where such width adjusment...
Note that when combining it above a space (U+0020 or U+00A0), the combination may need to widened and may be larger than this space. This change of metrics is normally not needed when combining this marker above the dotted circle, where the diacritic should fit in the width without needing an adjustment (but this may not be true for other combining Quranic annotation signs, notably "large" combining small ligatures, where such width adjusment for the combined pair would still be needed with the dotted...
Arabic small high footnote marker (U+08E0) should be combining above and not spacing
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. Inserting it between two Arabic letters has no effect, it does not override the default joining behavior of these letters. Its role is only semantic for...
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. Inserting it between two Arabic letters has no effect, it does not override the default joining behavior of these letters. Its role is only semantic for...
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. Inserting it between two Arabic letters has no effect, it does not override the default joining behavior of these letters. Its role is only semantic for...
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. Inserting it between two Arabic letters has no effect, it does not override the default joining behavior of these letters. Its role is only semantic for...
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. Inserting it between two Arabic letters has no effect, it does not override the default joining behavior of these letters. To control the contextual joining...
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. To control the contextual joining forms of letters, ZWJ or ZWNJ can be prepended and/or appended to ANY Arabic letters to change their default joining...
May be the alternative is ZERO-WIDTH NON JOINER (ZWNJ), if the intent is to glue two words together, while still prohibing the joining of the final letter of the 1st word with the 1st letter of the 2nd word. This is the standard behavior in Arabic and it is described in the Unicode standard. WORD JOINER is not described in the standard for Arabic. To control the contextual joining forms of letters, ZWJ or ZWNJ can be prepended and/or appended to ANY Arabic letters to change their default joining...
Thanks for your work, have a good continuation on this project. May be you'll work at the same time on the second (more minor bug) about kerning pairs (#12) for the next version 7.3 when you'll plan it. It would be useful to include some texts in Urdu, Pashto, Bosnian, and Jawi in your test samples (which currently target mostly Quranic texts in Arabic, or Sindhi, or possibly some other Pakistanese languages).
Thanks for your work, have a good continuation on this project. May be you'll work on the second more minor bug kerning pairs (#12) for the next version 7.3 if you plan it. It would be useful to include some texts in Urdu, Pashto, Bosnian, and Jawi in your test samples (which currently target mostly Quranic texts in Arabic, or Sindhi, or possibly some other Pakistanese languages).
I'll fix the initial and medial forms of noon ghunna. Yahoo Mail: Search, Organize, Conquer On Tue, Apr 29, 2025 at 7:17 AM, Philippe Verdyverdy_p@users.sourceforge.net wrote: Note that the isolated and final forms of U+06BA are effectively dotless. It seems that you've forgotten to include the initial and medial forms in your development Excel speadshet. And then filled the "holes" using incorrect assumption. U+06BA does NOT bzhave the same as U+08BD. This bug is confirmed in Unicode charts and...
Thank you for your kind words and encouragement. i have not added kerning pairs so far. I'll try to add them.
I'll work on it
U+2060 is not supported
When I worked on this item then I noticed that U+00A0 was changing the shape of the characters to final and causing the next character to have initial shape. In other words it was breaking a word into two words. Whereas U+2060 works correctly.
You should have indicated that U+2060 is the "WORD JOINER". Its role is not at all about horizontal alignment, but to indicate that two words must be kept glued together. This does not change the spacing, but forbids some breaks: If you use U+2060 between two words, there's no extra SPACE between them, the WORD JOINER occurs directly between the last alphabetic grapheme of the 1st word and the first alphabetic grapheme of the 2nd word. Note that its effect is to display usually these two words as...
You should have indicated that U+2060 is the "WORD JOINER". Its role is not at all about horizontal alignment, but to indicate that two words must be kept glued together. This does not change the spacing, but forbids some breaks: If you use U+2060 between two words, there's no extra SPACE between them, the WORD JOINER occurs directly between the last alphabetic grapheme of the 1st word and the first alphabetic grapheme of the 2nd word. Note that its effect is to display usually these two words as...
You should have indicated that U+2060 is the "WORD JOINER". Its role is not at all about horizontal alignment, but to indicate that two words must be kept glued together. This does not change the spacing, but forbids some breaks: If you use U+2060 between two words, there's no extra SPACE between them, the WORD JOINER occurs directly between the last alphabetic grapheme of the 1st word and the first alphabetic grapheme of the 2nd word. Note that its effect is to display usually these two words as...