Comment faire des caractères de combinaison mathématiques en mode Font-Lock?
-
12-11-2019 - |
Question
J'essaie d'obtenir des EMACS pour rendre correctement mathématique de combiner des caractères de la diagèse, sur la barre, etc. en mode Font-Lock.L'objectif est de pouvoir écrire quelque chose de mathématique comme x_dot et qu'il soit affiché comme "ẋ" ou x_bar comme "x̄".
C'est ce que j'ai jusqu'à présent, et cela fonctionne surtout.
(font-lock-add-keywords
nil
`(("\\<\\(\\w\\)\\(_dot\\)\\>"
(0 (progn (compose-region (match-beginning 1) (match-end 2)
(concatenate 'string (match-string 1) " ̇" )) nil)))))
Mais: Je vois un personnage d'artefact visuel juste avant le caractère composé.Testez ceci en écrivant "x_dot" ou quelque chose de similaire dans le tampon * gratter * après avoir exécuté ce qui précède.
Cet artefact vient et va comme un fantôme.Ce comportement ne se produit pas lors de la composition de caractères normaux tels que "O" et "-", comme dans l'exemple suivant.
(font-lock-add-keywords
nil
`(("\\<\\(\\w\\)\\(_dash\\)\\>"
(0 (progn (compose-region (match-beginning 1) (match-end 2)
(concatenate 'string (match-string 1) "-" )) nil)))))
puis en tapant "x_dash" quelque part.
Qu'est-ce qui se passe?
La solution
Pour ce que ça vaut la peine, votre premier exemple fonctionne bien sans artefacts dans mes emacs de bélange-bord sur le système d'exploitation X. Vous voyez probablement une course à pied spécifique à la bibliothèque UI et / ou de police de votre plate-forme.Si vous publiez plus d'informations sur les EMACS que vous utilisez, les personnes plus expert que moi pourraient être en mesure de confirmer le problème.