JSesh has now a relatively advanced ligature mechanism, which is not as good as the one in RES, but give reasonnable results in most cases. In many cases, JSesh is able to “guess” where ligatured groups should fit, but it can also do with some extra help. This help can be provided in the sign's SVG file itself, and we decided to use the mechanisms of inkscape for that.
For each sign, JSesh will try to compute two ligature zones, one for ligatures of groups before the sign, the other for ligatures of groups after the sign. Those zones can be computed automatically, but the sign author can also provide them.
to create one of the two ligature zones in inkscape, do the following:
Admitedly, we are using the id and label information in a way they are not supposed to be used. The reason for this is purely pragmatic. It's far easier to do things that way, as the sign creator has no need to know about the inner organization of the XML format.
The ligatured group will go somewhere in the ligature zone. But where exactly ? It can stand in the middle of the area, or stick to one of its sides. In fact, the behaviour of the layout algorithm is not always the same. In , the “t” tends to fit on the bottom left of the rectangular area. In , the U36 sign is more or less centered, both horizontally and vertically. JSesh allows signs authors to design the behaviour of “ligature zones”, in the following way. Remember the label of the previous paragraph? You can set it to
gravity: gravity specifications.
where gravity specifications can contain
“Zone Properties”, gravity:te
means that the group which would be ligatured in zone1 (in front of the “child” sign) would stick to the top of the red rectangle, and stay near the sign, for instance .