yibie
1
我一直使用「方正聚珍新仿」这个字体,它不等高等宽,在 org-mode 里显示时,经常会碰到表格不对齐,Headlin 的中文 tag 不对齐的情况。
我一直知道 cnfonts 可以混合不同的字体解决中英文对齐的问题,但我之前不知道,如何为 cnfonts 增加其它的中文字体。今天发现,原来特别简单。
直接编辑 cnfonts.el 这个文件即可,里面有一个列表,直接列出了 cnfonts 支持的字型:
然后,在中文字体的列表里,添加自己需要的字型即可。
但需要注意的是,不能够直接输入该字体的中文名称,需要输入 emacs 可识别的中文字体名。这个解决起来也简单,借助 counsel-font 的功能,找到你需要的字体,直接点回车复制,并添加到列表里即可。
现在,我的 org 文件里的中文标签显示已经对齐:
2 个赞
這種辦法比較原始,我之前也想過這樣做,但如果下次cnfont更新,這些設置就沒了。
次原始的是,在config.el文件中把這一段重新寫一下,至少不會因更新而丟失吧。
SPQR
3
defvar可以覆盖defconst设置的变量,不用修改cnfonts.el,放在自己配置文件里面就行
可以用这个变量
(defcustom cnfonts-personal-fontnames nil
"用户自己维护的字体列表,其结构与 `cnfonts--fontnames-fallback' 一致."
:group 'cnfonts
:type '(choice (const :tag "None" nil)
(list (repeat :tag "English fonts" string)
(repeat :tag "Chinese fonts" string)
(repeat :tag "Ext-B fonts" string)
(repeat :tag "Symbol fonts" string)
(repeat :tag "Fonts used for ornament chars " string))))
1 个赞
大佬能舉個例子嗎?比如增加 noto sans cjk tc 字體。謝謝
可以直接用 note sans mono cjk tc 字体
在 scratch 中写一行 elisp 代码:
(cl-prettyprint (font-family-list))
执行后,就会在 scratch 中插入当前可用字体的名称列表,然后再找找你需要的字体的名称,很可能不是 “noto sans cjk tc”
比如我想增加「思源黑体 TC」的字体,是这样吗:
(defcustom cnfonts-personal-fontnames nil
"用户自己维护的字体列表,其结构与 `cnfonts--fontnames-fallback' 一致."
:group 'cnfonts
:type '(choice (const :tag "None" nil)
(list (repeat :tag "English fonts" string)
(repeat :tag "思源黑体 TC" string)
(repeat :tag "Ext-B fonts" string)
(repeat :tag "Symbol fonts" string)
(repeat :tag "Fonts used for ornament chars " string))))```
我是使用这种方式,之前也试了好多次,亲测有效
(use-package cnfonts
:ensure t
:after all-the-icons
:hook (cnfonts-set-font-finish
. (lambda (fontsizes-list)
(set-fontset-font t 'unicode (font-spec :family "all-the-icons") nil 'append)
(set-fontset-font t 'unicode (font-spec :family "file-icons") nil 'append)
(set-fontset-font t 'unicode (font-spec :family "Material Icons") nil 'append)
(set-fontset-font t 'unicode (font-spec :family "github-octicons") nil 'append)
(set-fontset-font t 'unicode (font-spec :family "FontAwesome") nil 'append)
(set-fontset-font t 'unicode (font-spec :family "Weather Icons") nil 'append)))
:custom
(cnfonts-personal-fontnames '(("PragmataPro Mono Liga" "Go Mono" "Fira Code" "Ubuntu Mono")
("M 盈黑 PRC W5" "方正聚珍新仿简繁" "苹方 常规" "微软雅黑" "苹方 中等" "M 盈黑 PRC W4" "PragmataPro Mono Liga")
("Simsun-ExtB" "方正聚珍新仿简繁" "PragmataPro Mono Liga")
("Segoe UI Symbol" "PragmataPro Mono Liga")))
:config
(cnfonts-enable))
5 个赞