
當插入不常見的數學 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 也沒有該字元時,這不起作用,並且我需要找到另一種具有相同高度的字體。這是在 OS X 10.9.3 上的 emacs 24.3 中。
一個相關的問題是,對於某些字符,根據字符是否在選定區域內突出顯示,使用不同的字體(不同的高度)。
為什麼會發生這種情況?我並不特別在意使用哪種字體,只要行高不跳躍即可。有什麼建議麼?有什麼方法可以將第二個替代字體的高度調整為完全相同嗎?