刚发完有关上划线的东西,我就把Emacs折腾到能显示这些符号了,很简单,在已经有的配置里加一句
1
| (set-fontset-font t 'unicode "STIX" nil 'prepend)
|
让STIX字体也用于显示这些特殊符号,于是就解决了特殊符号的问题,但由于字母还是用Inconsolata显示的,所以刚才说的上划线还是没法实现😭
既然字体设置已经完善了,就分享出来。
Update: 我发现我糊涂了,prepend
是放在前面,append
是放在后面,这个时候要用append
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| (defun my--set-font (&optional frame) (with-selected-frame (or frame (selected-frame)) (if (string-equal system-type "windows-nt") (progn (set-face-attribute 'default nil :font "Inconsolata 18") (dolist (charset '(han cjk-misc chinese-gbk)) (set-fontset-font "fontset-default" charset (font-spec :family "冬青黑体简体中文 W3"))) (set-fontset-font "fontset-default" 'unicode "Segoe UI Symbol" nil 'append) (set-fontset-font "fontset-default" '(#x1F600 . #x1F64F) "Segoe UI Symbol") (set-fontset-font "fontset-default" '(#xE000 . #xF8FF) "STIX")) (set-face-attribute 'default nil :font "Inconsolata 14") (dolist (charset '(kana han cjk-misc bopomofo)) (set-fontset-font "fontset-default" charset (font-spec :name "Hiragino Sans GB")))))
(set-fontset-font "fontset-default" ?– "Symbola") (set-fontset-font "fontset-default" ?— "Symbola") (set-fontset-font "fontset-default" ?′ "Symbola") (set-fontset-font "fontset-default" ?″ "Symbola"))
(my--set-font)
(add-hook 'after-make-frame-functions 'my--set-font)
|
分三部分,第一个是设置默认字体为Inconsolata,第二个是设置中文字体,之后是附加字体以显示缺失的字形。
上面的设置需要在电脑上安装以下字体:
- Inconsolata。这是1.x版,有2.x版但有点太高不好看。
- 冬青黑体简体中文 W3、冬青黑体简体中文 W6。从Mac电脑上扒来的,好像改过参数。
- Symbola。全套字体下载地址。
- Segoe UI Symbol。Windows自带,Win8以上的不用安装,Win7如果没有打补丁可能需要安装。
- STIX。全套字体下载地址。
2017-02-07 Update: 我最新的字体配置文件可以看这个文件
https://gitee.com/chriszheng/dotEmacs/blob/master/.init/font-settings.el
本文标题:Emacs的字体设置
文章作者:Chris
发布时间:2015-04-26
最后更新:2022-03-23
原始链接:https://chriszheng.science/2015/04/26/Emacs-font-settings/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!