[求助] Emacs 中文字体标点符号显示异常

在 Arch Linux 下 Emcs 中文字体的标点符号显示的高度都是在字体的中间,请问下这种情况会是什么原因造成的。同样的 Emacs 配置在 Mac ,Windows 和 WSL2 的 Arch Linux 都是正常的。效果如下图:

另外:在 Emacs 以外的其他程序中显示都是正常的。

Emacs 版本:28.0.50 navtive comp
OS: Arch Linux

估计你默认字体弄了个Noto-CJK-TC。台湾的标点符号就是在正当中的。

你光标放到那个标点符号上,M-x describe-char看看用的什么字体。

1 个赞

确实是因为使用了繁体的符号。

             position: 7 of 16 (38%), column: 12
            character: , (displayed as ,) (codepoint 65292, #o177414, #xff0c)
              charset: unicode (Unicode (ISO10646))
code point in charset: 0xFF0C
               script: cjk-misc
               syntax: . 	which means: punctuation
             category: .:Base, c:Chinese, h:Korean, j:Japanese, |:line breakable
             to input: type "C-x 8 RET ff0c" or "C-x 8 RET FULLWIDTH COMMA"
          buffer code: #xEF #xBC #x8C
            file code: #xEF #xBC #x8C (encoded by coding system utf-8)
              display: by this font (glyph code)
    ftcrhb:-GOOG-Noto Serif CJK TC-normal-normal-normal-*-27-*-*-*-*-0-iso10646-1 (#xF351)

Character code properties: customize what to show
  name: FULLWIDTH COMMA
  general-category: Po (Punctuation, Other)
  decomposition: (wide 44) (wide ',')

但是我自己设置的是 Noto Sans Mono CJK SC ,不知道它为什么会用错。

把系统的 Noto-CJK-TC 字体都给禁用了,一切正常了。感谢 @yangsheng6810 指点。

  • 字体还能主动禁用吗 ? 我是通过换emacs 的字体解决的

我用的 KDE 的 Arch Linux ,字体管理里面搜索出所有的 TC 字体,然后右键可以禁用的。
通过 Emacs,你是怎么设置的呢?

加一行配置指定字体就好了:

(set-fontset-font t 'cjk-misc "Noto Sans CJK SC Regular")