JSesh a maintenant un mécanisme de ligature relativement avancé, qui n'est pas aussi bon que celui de RES, mais donne des résultats raisonnables dans la plupart des cas. Dans de nombreux cas, JSesh est capable de « deviner » où les groupes ligaturés doivent s'insérer, mais il peut également le faire avec une aide supplémentaire. Cette aide peut être fournie dans le fichier SVG du signe lui-même, et nous avons décidé d'utiliser les mécanismes d'inkscape pour cela.
Pour chaque signe, JSesh tentera de calculer deux zones de ligatures, une pour les ligatures de groupes avant le signe, l'autre pour les ligatures de groupes après le signe. Ces zones peuvent être calculées automatiquement, mais l'auteur du signe peut également les spécifier lui-même.
Pour créer l'une des deux zones de ligature dans Inkscape, procédez comme suit :
Convenons-en, nous utilisons les informations d'identification et d'étiquette d'une manière inacoutumée. La raison en est purement pragmatique. C'est beaucoup plus facile de faire les choses de cette façon, car le créateur du signe n'a pas besoin de connaître l'organisation interne du format XML.
Le groupe ligaturé ira quelque part dans la zone de ligature. Mais où exactement ? Il peut se tenir au milieu de la zone ou s'accrocher à l'un de ses côtés. En fait, le comportement de l'algorithme de mise en page n'est pas toujours le même. Dans , le “t” a tendance à s'adapter en bas à gauche de la zone rectangulaire. Dans , le signe U36 est plus ou moins centré, à la fois horizontalement et verticalement. JSesh permet aux auteurs de signes de concevoir le comportement des “zones de ligature”, de la manière exposée ci-dessous. Rappelez-vous de la valeur de l'étiquette supprimée dans le paragraphe précédent. Vous pouvez la renseigner selon la syntaxe suivante :
gravité : spécification de gravité.
où la spécification de gravité peut contenir les valeurs suivantes :
“Propriétés de la zone”, gravity:te
signifie que le groupe qui serait ligaturé dans la zone1 (devant le signe “enfant”) collerait au haut du rectangle rouge, et resterait près du signe, par exemple .