Как мне сделать так, чтобы emacs отображал математически комбинированные символы в режиме font-lock? - PullRequest
3 голосов
/ 12 мая 2011

Я пытаюсь заставить 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".

Что происходит?

1 Ответ

2 голосов
/ 13 мая 2011

Во всяком случае, ваш первый пример прекрасно работает без артефактов в моем ультрасовременном Emacs для OS X. Возможно, вы видите причуду рендеринга, специфичную для пользовательского интерфейса и / или библиотеки шрифтов emacs вашей платформы. Если вы опубликуете больше информации о Emacs, который вы используете, люди, более опытные, чем я, могут подтвердить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...