Я пытаюсь заставить emacs правильно отобразить математическое объединение символов, таких как диарез, перемычка и т. Д., В режиме font-lock.Цель состоит в том, чтобы иметь возможность написать что-то математическое, например x_dot, и отобразить его как «ẋ», или x_bar как «x̄».
Это то, что я имею до сих пор, и это в основном работает.
(font-lock-add-keywords
nil
`(("\\<\\(\\w\\)\\(_dot\\)\\>"
(0 (progn (compose-region (match-beginning 1) (match-end 2)
(concatenate 'string (match-string 1) " ̇" )) nil)))))
НО: я вижу символ визуального артефакта непосредственно перед составным персонажем.Проверьте это, написав «x_dot» или что-то похожее в буфере * scratch * после выполнения вышеприведенного.
Этот артефакт приходит и уходит как фантом.Такое поведение не возникает при составлении обычных символов, таких как «o» и «-», как в следующем примере.
(font-lock-add-keywords
nil
`(("\\<\\(\\w\\)\\(_dash\\)\\>"
(0 (progn (compose-region (match-beginning 1) (match-end 2)
(concatenate 'string (match-string 1) "-" )) nil)))))
А потом где-нибудь набрать "x_dash".
Что происходит?