[Emacs] 替數學符號設定專用字型

作者:   發佈於:   #emacs

這是個還在進行中的題目,總之先把一些步驟寫下來。

TLDR: 先選了 Concrete Math。畢竟是個看慣了的經典字型:

(set-fontset-font t 'symbol (font-spec :family "Concrete Math"))

主要目的是讓 Emacs 在顯示各種集合算符的時候,能夠用看來舒服的字型。許多設計給寫程式用的等寬字型似乎還沒有涵蓋到這個區塊。

以下幾個是偶爾會用到的集合算符:

S ∖ T
S ∈ T
S ∋ T
S ≤ T
S ≥ T
S ≣ T

這個工具提供了快速瀏覽,方便比較: https://mono-math.netlify.app/

看來適合的字型:

所謂「看來適合」的判斷基準目前是至少要寬度大約爲 M 字母的兩倍寬的。有些等寬字型雖然有涵蓋這些符號,但是都是做成與 M 同寬,在程式碼中會看來很「擠」。如果是等寬、baseline 能配合拉丁文字字型就更好了。

因爲這些符號對應的 Unicode 字符的 script 屬性都是 symbol。若要讓 Emacs 以 Concrete Math 來顯示這些符號,可在 .emacs/init.el 中加入這行設定:

(set-fontset-font t 'symbol (font-spec :family "Concrete Math"))

不過一般程式中用到的四則運算用符號 + - * / ,其 script 屬性都是 latin,無法被這行設定的效果給涵蓋到。