snowie2000 / mactype

Better font rendering for Windows.
https://mactype.net
GNU General Public License v3.0
9.97k stars 442 forks source link

关于字体替换的奇怪BUG #1031

Open ssssssbbb opened 2 weeks ago

ssssssbbb commented 2 weeks ago

软硬件全新,Mactype搬自另一台没问题的机器,加载方式均为注册表。

配置文件里面有 [Fontsubtitutes@xxx.exe] AAA=BBB BBB这个字体在新电脑上本来没有,即先有Mactype和配置文件后有字体,装上去之后BBB字体反向替换成AAA,没注意是不是全局,反正是xxx.exe以外的程序,但Word等DW应用没问题。以为BBB字体安装出问题查了很久,最后发现把这行去掉就恢复,再加上去问题也没有复现。。。。

另外,[Fontsubtitutes@xxx.exe]上面有一个空白的[Fontsubtitutes]不知道是否注入到全局设置里面去了,但这个配置文件在另一台机器一直正常,[Fontsubtitutes@xxx.exe]调换顺序、删除、再增加也没有复现问题

注:AAA字体是雅黑,所以如果反向替换太匪夷所思的话,其实可能只是普通的fallback,但是BBB字体就是被屏蔽了无疑

digiant commented 1 week ago

windows11字体安装,最好不要直接双击安装,要右键选择给所有用户安装,这两种安装方式貌似路径不一样。

ssssssbbb commented 1 week ago

windows11字体安装,最好不要直接双击安装,要右键选择给所有用户安装,这两种安装方式貌似路径不一样。

Win10,打开预览后点的安装,而且我在Windows\Fonts里面看到了那个字体

snowie2000 commented 1 week ago

每个程序的mactype实例都是独立的,所以先有配置还是先有字体对渲染没有任何影响,因为在安装字体后再启动的程序他们并不知道你安装字体这件事。

这个反向替换就很奇怪,mactype在启动时会检查aaa=bbb中两端的字体是否都存在: https://github.com/snowie2000/mactype/blob/4cad9911fe33a02730a4b9237c239963d4b70a27/settings.cpp#L1668-L1670 如果任何一方的字体不存在则该替换是不生效的。

或者你可以提供下你用的字体的名称,我这边试试看?

另外注册表模式非必要已经不再建议使用,容易出奇奇怪怪的问题

ssssssbbb commented 1 week ago

每个程序的mactype实例都是独立的,所以先有配置还是先有字体对渲染没有任何影响,因为在安装字体后再启动的程序他们并不知道你安装字体这件事。

这个反向替换就很奇怪,mactype在启动时会检查aaa=bbb中两端的字体是否都存在:

https://github.com/snowie2000/mactype/blob/4cad9911fe33a02730a4b9237c239963d4b70a27/settings.cpp#L1668-L1670

如果任何一方的字体不存在则该替换是不生效的。 或者你可以提供下你用的字体的名称,我这边试试看?

另外注册表模式非必要已经不再建议使用,容易出奇奇怪怪的问题

A是雅黑,所以其实可能不是反向替换,只是一个找不到B时的FallBack,但是B确实被屏蔽了,B是HarmonyOS Sans SC,当时设置是给Wechat.exe的

snowie2000 commented 1 week ago

wechat是一个dw程序,dw程序的替换似乎存在很多不稳定性

ssssssbbb commented 1 week ago

wechat是一个dw程序,dw程序的替换似乎存在很多不稳定性

特意用的3.8.1.26,最后的GDI版本

关键是我这台新机器是问题解决后才开始用Wechat的,当时发现问题是在chrome.exe上面

digiant commented 2 days ago

wechat是一个dw程序,dw程序的替换似乎存在很多不稳定性

特意用的3.8.1.26,最后的GDI版本

关键是我这台新机器是问题解决后才开始用Wechat的,当时发现问题是在chrome.exe上面

老哥再忍忍,最新的微信PC版4.0正在内测,换qt了,和qq nt平台一样了,字体渲染效果媲美mac

ssssssbbb commented 2 days ago

wechat是一个dw程序,dw程序的替换似乎存在很多不稳定性

特意用的3.8.1.26,最后的GDI版本 关键是我这台新机器是问题解决后才开始用Wechat的,当时发现问题是在chrome.exe上面

老哥再忍忍,最新的微信PC版4.0正在内测,换qt了,和qq nt平台一样了,字体渲染效果媲美mac

啊?QQ NT不是elctron吗?只能DW能有好东西?确实有新闻说用QT的,但是这就和QQNT不一样了,而且没有高DPI的话,DW只有差和不那么差,和好不沾边。

要尝试得备份一下userdata,否则单是程序退回去也不让用旧版,有条件尽量在虚拟机里面测试吧

snowie2000 commented 9 hours ago

根据目前大家反馈的情况,似乎fontlink对于字体替换存在一些bug,等我有空的时候好好检查一下

ssssssbbb commented 5 hours ago

根据目前大家反馈的情况,似乎fontlink对于字体替换存在一些bug,等我有空的时候好好检查一下

我对你的敬仰如同滔滔江水连绵不绝~