Непоследовательная высота шрифта emacs для математических символов unicode

Непоследовательная высота шрифта emacs для математических символов unicode

При вставке необычных математических символов Unicode (обычно с помощью font-lock-add-keywords) я сталкиваюсь с этой проблемой: если в моем шрифте по умолчанию нет определенного символа, вместо него используется другой шрифт, содержащий этот символ.

Почему-то высота символа во втором шрифте иногда отличается от высоты всех обычных символов в первом шрифте, может быть, на один пиксель. Это изменяет высоту текущей строки и «перемещает» большую часть текста на экране вверх/вниз на пиксель, когда я печатаю символ, что довольно раздражает. (Шрифт замены по умолчанию, который вызывает эту проблему, — Arial.)

В настоящее время я решаю эту проблему, используя что-то вроде этого, когда «Source Code Pro» является шрифтом по умолчанию:

(set-default-fontset "fontset-default" '(#x???? . #x????) "DejaVu Serif")

Диапазон примерно такой: 2100..23ff, 27c0..27ff, 2900..2bff. Иногда это не работает, когда я обнаруживаю, что в DejaVu Serif тоже нет символа, и мне нужно найти еще один шрифт с такой же высотой, в котором он есть. Это в emacs 24.3 на OS X 10.9.3.

Связанная с этим проблема заключается в том, что для некоторых символов используется разный шрифт (разная высота) в зависимости от того, выделен ли символ внутри выбранной области.

Почему это происходит, и что с этим делать? Мне все равно, какой шрифт использовать, лишь бы высота строк не прыгала. Есть предложения? Есть ли способ настроить высоту второго альтернативного шрифта так, чтобы она была точно такой же?

Связанный контент