「分享」基于msys2 ucrt64 使用官方的脚本编译 Windows 版本的 Emacs 31 安装包

自己的init-xxx.el文件可以加,但很多是第三方包的,不好去改。

kiennq编译的这个版本似乎用不了dynimic module?我试了下把编译好的dll放在load-path里面也提示找不到文件

能用,我就在用xeft

建议你直接去给第三方包提 issue 或者 PR,让他们加上。

目前 mps 已经合并到了 igc 分支,编译起来更加方便了。

下面这个版本已经加入了 igc 支持,需要的可以下载使用。

3 个赞

谢谢。试用体验不错。不过,完全相同的配置下,你这个build相比kiennq build字体粗些,导致有些字符看起来不舒服,黏在一起。

我对比了下编译选项:

kiennq build:

 'configure --prefix=/d/a/emacs-build/emacs-build/pkg/master-x86_64
 'CFLAGS=-O2 -fno-semantic-interposition -floop-parallelize-all
 -ftree-parallelize-loops=4' --with-native-compilation --with-zlib
 --with-xpm --with-xml2 --with-tree-sitter --without-tiff --with-rsvg
 --with-png --with-lcms2 --with-jpeg --with-harfbuzz --with-gnutls
 --with-gif --without-cairo --disable-build-details --without-dbus
 --with-compress-install --with-small-ja-dic'

本贴build:

Configured using:
 'configure --with-modules --without-dbus
 --with-native-compilation=aot --without-compress-install
 --with-tree-sitter --with-mps=yes CFLAGS=-O2'

字体、高度、宽度都是相同的,跟harfbuzz有关吗?

我的 build 其实也是开了 --with-harfbuzz的,这个是默认就开启的。 不清楚是哪方面造成的差异。

我的 build 是没加任何 patch 的,不知道 kiennq build 是否加了字体方面的优化补丁?

我查了下没发现特殊编译项。

区别比较明显,下图上面的是kienqq的build。

你是说 SUN 这三个字母的区别吗?
你是设置了什么字体?明显这2个位置用的不是同一个字体。 上图是有衬线的,下图是无衬线的。

估计是你的字体设置有问题,没正确应用字体,自动回退到默认的字体了。

我建议你把windows的cleartype校准菜单打开对比一下,我感觉上面像是cleartype没有生效,下面是正常的

他更喜欢上面那个不正常的效果,因为比较细。 :grin:

字体一样,两者输出结果都是: (face-attribute 'default :font)=> "-outline-Consolas-regular-normal-normal-mono-15-*-*-*-c-*-iso8859-1"

粗体黏在一起阅读效果差

image

在我这里两个都一样

字体放大后差异就没那么明显了。

粗体,设置(face-attribute 'default :height)=>90左右试试看

可能kiennq和你的build用到的freetype库不是同一个版本,不过这种情况最简单的办法是调整windows cleartype,你可以把整个系统的字体渲染都调成那种细细的

调到最细也没有什么变化。 :grin:

你说的黏在一起是说中文字体吗?

可能是因为你没设置中文字体,Emacs 可以把中文和英文分别设置为指定字体。默认的中文字体效果是很差的,在Windows上没法用。

比如我个人的 Emacs 设置中,在 Windows 上英文用了 “SF Mono”,中文使用了 “Microsoft Yahei",你可以试试设置为 Consolas + Microsoft Yahei。

1 个赞