3

我阅读了一些关于 Emacs 中字体配置的文档,我发现了两个概念,它们是FONTFONTSET. 目前,我的理解是,fontset是一组fontscript(又名编码)分组的,我们可以创建一个字体集并指定一些字符集来使用特定的字体。

但是直到现在,一些实验代码并不总是像我希望的那样工作,所以我想找出问题所在?

首先,我创建自己的字体集

(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)

但是,很遗憾这不起作用,并且'hancategory中的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)

但是,'hanchar 类别保持不变,我希望这些 char 不应该正确显示,因为我使用的字体不包含那些 char。为什么fontset-default这次改变不起作用?

除了上面的代码,还有一些更普遍的问题:

  1. 如何将emacs默认字体集更改为我自己的,可以吗?
  2. 是多个字体集同时工作还是只有一个字体集工作?为什么我的测试代码需要更改default而不是我的?
  3. 第二set-fontset-font个参数是target,如何知道哪个脚本名称适合当前光标下的字符。我可以describe-char用来显示 char 信息,但我找不到这个描述中的哪个词是该target参数的正确词。
  4. emacs中字体配置有哪些值得注意的地方?

我的问题有点长,所以感谢您的耐心并分享您的建议。

4

0 回答 0