Я хочу использовать SourceCodePro
как мой шрифт по умолчанию, но он не охватывает персидские символы, которые находятся в области, например, #x0600
до #x06FF
. Я попытался Somthing как этотКак я могу использовать разные шрифты ttf для некоторых символов utf-8 в emacs?
(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"))
этого не получилось.
Update: благодаря рекомендации от @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 Спасибо! вторая работала нормально. Поэтому мы всегда должны называть крюк, когда создаем новые рамки! это странно, и это не сработало для латинского скрипта, потому что я использовал '(add-to-list 'default-frame-alist' (font." Source Code Pro "))' вне функции, чтобы изменить значение по умолчанию для латинских символов –
@legoscia можете ли вы ответить на свой вопрос? а также у вас есть идея, почему необходимо использовать 'after-make-frame-functions'? это как-то связано с запуском Emacs в режиме демона? –