我在Emacs中阅读了一些关于字体配置的文档,我发现了两个概念,即FONT
和FONTSET
。目前,我的理解是,fontset
是一组font
,它们按script
(又称编码)分组,我们可以创建一个字体集并指定一些字符集来使用特定字体。
但到目前为止,一些实验代码并不总是按照我的意愿运作,所以我想找出问题是什么?
首先,我创建自己的fontset
(create-fontset-from-fontset-spec
"-outline-Cousine-normal-normal-normal-*-*-*-*-*-*-*-fontset-Consolas")
然后我想将它用作当前的emacs fontset(或者这可能吗?我不确定),以下代码似乎有效:
(set-frame-font "fontset-Consolas" nil t)
然后我尝试为某些特定字符或编码自定义我的字体集:
(set-fontset-font "fontset-Consolas" 'han "Microsoft YaHei" nil 'prepend)
然而,遗憾的是,这不起作用,'han
类别中的字符不会更改其字体。然后我得到了一些示例代码并尝试以下代码:
(set-fontset-font "fontset-Default" 'han "Microsoft YaHei" nil 'prepend)
这一次,它有效,'han类中的字符使用正确的字体。但为什么我需要更改fontset-default
而不是fontset-consolas
。
然后我尝试使用以下代码恢复我的更改:
(set-fontset-font "fontset-Default" 'han "Consolas" nil 'prepend)
但是,'han
类别字符保持不变,我希望这些字符不能正确显示,因为我使用的字体不包含那些字符。为什么这次更改fontset-default
不起作用?
除了上面的代码,还有一些更普遍的问题:
default
而不是我的?set-fontset-font
第二个参数是target
,我怎么知道哪个脚本名称适合当前光标下的char。我可以使用describe-char
来显示char信息,但是我没有找到该描述中哪个词是target
param的正确词。我的问题有点冗长,感谢您的耐心并分享您的建议。