Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ssssssbbb opened this issue Sep 30, 2024 · 10 comments
Open

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

ssssssbbb opened this issue Sep 30, 2024 · 10 comments

Comments

@ssssssbbb
Copy link

ssssssbbb commented Sep 30, 2024

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

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

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

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

@digiant
Copy link

digiant commented Oct 7, 2024

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

@ssssssbbb
Copy link
Author

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

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

@snowie2000
Copy link
Owner

snowie2000 commented Oct 8, 2024

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

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

mactype/settings.cpp

Lines 1668 to 1670 in 4cad991

if (k.init(buf) && v.init(vp)) {
if (FindKey(k) < 0 && k.m_bCharSet == v.m_bCharSet) Add(k, v);
}

如果任何一方的字体不存在则该替换是不生效的。

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

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

@ssssssbbb
Copy link
Author

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

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

mactype/settings.cpp

Lines 1668 to 1670 in 4cad991

if (k.init(buf) && v.init(vp)) {
if (FindKey(k) < 0 && k.m_bCharSet == v.m_bCharSet) Add(k, v);
}

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

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

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

@snowie2000
Copy link
Owner

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

@ssssssbbb
Copy link
Author

ssssssbbb commented Oct 8, 2024

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

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

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

@digiant
Copy link

digiant commented Oct 14, 2024

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

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

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

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

@ssssssbbb
Copy link
Author

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
Copy link
Owner

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

@ssssssbbb
Copy link
Author

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants