font 设置疑问

有几个疑问:

  1. set-frame-font 函数签名是 (set-frame-font FONT &optional KEEP-SIZE FRAMES INHIBIT-CUSTOMIZE),这里 FONT 的正规格式是什么呀,日常描述我们一般说 Fira code, monospace 等等,但是正规 format 去哪看呢?

  2. 我在 option->set default font 下准备设置 Cascadia Code,这个字体有常规体,加粗加细等,为啥我在 UI 界面选择加细没有用呢

有好几个方法:

  1. 在emacs里,可以run下面的代码,查看系统里装的所有字体的英文名称:
(print (font-family-list))               ; ⇒ ("Academy Engraved LET" "Al Bayan" "Al Nile" "Al Tarikh" "all-the-icons" "American Typewriter" "Andale Mono" "Arial" "Arial Black" "Arial Hebrew" "Arial Hebrew Scholar" "Arial Narrow" ...)
  1. 如果是MacOS,在字体册里也有字体的中文和英文名:

很奇怪,字体app里可以看到,但是没法用

image

我也是这样,不知为啥。现在的问题是TUI下可以设置,GUI下不能使用。

set-frame-font 接受 GTK font name,xlfd,或 font-spec。具体格式可参考 Emacs Lisp 手册中的 “Low Level Font” 一节。

另外,Emacs 28 在 Mac 系统下的字体弹窗有严重 bug,建议使用 emacs 29。可以从 emacsformacosx.com 下载 nightly 包裹,或手动编译。

1 个赞

看解决方案,试试29