我想使用SourceCodePro
作为我的默认字体,但它并不涵盖范围内的波斯语字符,例如#x0600
直到#x06FF
。 我试过这样的东西如何在emacs中为某些utf-8字符使用不同的ttf字体?
(set-fontset-font t
'ascii
"Source Code Pro-12")
(set-fontset-font t
(cons (decode-char 'ucs #x0600)
(decode-char 'ucs #x6FF))
"Roya-13")
但它没有奏效。 我也尝试过使用fontset-standard
和fontset-default
这样
(set-face-font 'default "fontset-default")
(set-fontset-font "fontset-default"
'emacs (font-spec :name "Source Code Pro"))
(set-fontset-font "fontset-default"
'iso-8859-1 (font-spec :name "Source Code Pro"))
(set-face-attribute 'font-lock-comment-face nil
:family "Inconsolata" :height 140)
(set-fontset-font "fontset-default"
'(#x0600 . #x06FF) (font-spec :name "Roya:pixelsize=16:foundry=farsiweb:weight=normal:slant=normal:width=normal:scalable=true"))
(set-fontset-font "fontset-default"
'(#x0750 . #x075F) (font-spec :name "Roya:pixelsize=16:foundry=farsiweb:weight=normal:slant=normal:width=normal:scalable=true"))
(set-fontset-font "fontset-default"
'(#x08A0 . #x08FF) (font-spec :name "Roya:pixelsize=16:foundry=farsiweb:weight=normal:slant=normal:width=normal:scalable=true"))
(set-fontset-font "fontset-default"
'(#xFB50 . #xFDFF) (font-spec :name "Roya:pixelsize=16:foundry=farsiweb:weight=normal:slant=normal:width=normal:scalable=true"))
(set-fontset-font "fontset-default"
'(#xFD70 . #xFEFF) (font-spec :name "Roya:pixelsize=16:foundry=farsiweb:weight=normal:slant=normal:width=normal:scalable=true"))
(set-fontset-font "fontset-default"
'(#x1EE00 . #x1EEFF) (font-spec :name "Roya:pixelsize=16:foundry=farsiweb:weight=normal:slant=normal:width=normal:scalable=true"))
这也不能工作。
更新:使用`后使帧函数使之成为工作 感谢指导意见@legoscia我
(defun zzgraph/fix-fontset (&optional frame)
(set-fontset-font "fontset-default" 'arabic "Roya"))
(add-hook 'after-make-frame-functions 'zzgraph/fix-fontset)
[这里](http://superuser.com/a/778348/4542)和[这里](https://github.com/legoscia/dotemacs/blob /master/dotemacs.org#fix-the-display-of-emoji)是为我工作的片段。 – legoscia
@legoscia谢谢!第二个工作正常。所以我们在制作新帧时总是必须挂钩!这很奇怪,并且它对latin脚本不起作用,因为我使用'(添加到列表'默认帧alist'(字体。“源代码Pro”))'在函数之外来改变默认面对于拉丁字符 –
@legoscia您能否让您的评论成为答案?你也有什么想法,为什么使用'后make-frame-functions'是必要的?它与在守护进程模式下运行Emacs有什么关系? –