Hans,
Sorry to bring this up after over a year, but I just noticed something that
doesn't seem right. I implemented some contextual substitutions in my own
fork of the Keter YG Hebrew font (.ttf file attached) under the "dlig"
feature that should do the following two things:
1. If a *shin *with a *sin *dot (שׂ) is pointed with a *holam *(the
vowel point placed high and on the left), then the *shin*, *sin *dot,
and *holam *are combined into a single ligature that depicts the *sin *dot
and *holam *merged into a single point.
2. If a *shin *with a *shin *dot (שׁ) follows another letter pointed
with a *holam *(except for *vav*, which must be pointed with a *holam
haser*), then the shin and shin dot are replaced with a ligature that
moves the *shin* dot a bit to the right (so that it appears to be merged
with the preceding *holam*), and the combination of the preceding letter
and the actual holam is changed to just the preceding letter (thus
effectively stripping the old *holam*).
I've tested both of these features in FontForge, and they work as expected
there. Likewise, if I test them in the following XeLaTeX script, XeLaTeX
handles both rules correctly:
```
\documentclass{article}
%Set fonts and font features:
\usepackage{fontspec}
\setmainfont[Path=../fonts/KeterYG/, UprightFont = *-Medium, Script=Hebrew,
Ligatures=Discretionary]{KeterYG} % I'm using a local copy of the attached
font
\begin{document}
שֹׂבַע
עָשׂוֹר
קֹשֶׁט
שֹׁשַׁנִּים
עָשׂוֹר
מֹשֶׁה
שַׁלֹשׁ
\end{document}
```
But in ConTeXt, only rule (1) above works as expected. Here is a minimal
(non-)working example:
```
\starttypescriptcollection[keteryg]
\starttypescript[serif][keteryg]
\definefontsynonym[Serif][file:../fonts/KeterYG/KeterYG-Medium.ttf][features=hebrew]
% use a local copy of the attached font, with all the necessary Hebrew
features (this includes dlig by default)
\stoptypescript
\starttypescript[keteryg]
\definetypeface[keteryg][rm][serif][keteryg][default]
\stoptypescript
\stoptypescriptcollection
%Set up the main font:
\setupbodyfont[keteryg]
%Set up right-to-left alignment:
\setupalign[r2l]
\starttext
שֹׂבַע
עָשׂוֹר
קֹשֶׁט
שֹׁשַׁנִּים
עָשׂוֹר
מֹשֶׁה
שַׁלֹשׁ
\stoptext
```
In examples 3, 4, 6, and 7, the *holam *dot still appears before the *shin*
-with-merged-*shin*-dot-and-*holam *ligature, when it should be absent. (I
realize that it may be difficult to tell; in the last two examples, the
presence of two dots is easier to make out.)
Do you have any idea why this might be happening in ConTeXt? Does the glyph
reordering in font-imp-combining.lua take place before any OpenType
features in the font are applied?
Thanks again!
Joey
On Thu, Apr 30, 2020 at 4:17 PM Joey McCollum
Okay! I have not figured out how to add a new page to the wiki, but I was able to add a section to the end of the "Arabic and Hebrew" page ( https://www.contextgarden.net/Arabic_and_Hebrew) discussing the issue, providing a test, and briefly describing the fix.
Joey
On Thu, Apr 30, 2020 at 11:14 AM Hans Hagen
wrote: On 4/30/2020 4:28 PM, Joey McCollum wrote:
Thanks so much, Hans! I should be able to add a wiki page summarizing the tests before the end of the week.
For reference purposes, do you know which version of ConTeXt has (or will have) this update included? todays upload
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------