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