Emacs中如何对高度不同的字体设置均匀的行间距

sc

当使用行高不同的字体时,如何使行间距相同呢?Minibuffer里因为行高变化跳来跳去不是很好看。

在Protesilaos Stavrou的博客上我发现了一种方法,但必须把尺寸缩到很小才能不引起行高的变动。

(defun minibuffer-fix-pitch ()
  (face-remap-add-relative 'fixed-pitch '(:height 0.95)))
(add-hook 'minibuffer-mode-hook #'minibuffer-fix-pitch

各位有什麼更好的方案嗎(

试一下这个:

;; 这个minor mode通过给每一个CJK字符加上min-width text property实现等高等宽。每个字都加一个单独的text property会有一点性能负担,但是不算很明显。使用方法:

;; M-x cjk-grid-mode RET

;; 为了最佳的显示效果和性能,我推荐在汉字占主体的文件里用通过调整字高实现对齐(因为汉字天然比英文高,汉字高英文低看起来比较美观);在英文占主体的文件里用cjk-grid-mode(因为用字高对齐的话,占少数的汉字会明显高出来,显得很突兀)。而且,在汉字少的文件里开cjk-grid-mode,性能负担会很小。

1 个赞

看上去它似乎只是使字符寬度相同,但字高还是会不一样?

字体高度是指中英文的字体高度不一样。不过我自己用的时候,有的文本显示正常,有的布局会变得诡异。

但目前我还没找到比这个更好的实现。