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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top