[Emacs] 替數學符號設定專用字型
作者:gugod 發佈於: #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/
看來適合的字型:
- Concrete Math: https://www.ctan.org/tex-archive/fonts/concmath-otf
- Libertinus Mono: https://github.com/alerque/libertinus
- Julia Mono: https://juliamono.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,無法被這行設定的效果給涵蓋到。