mactype
mactype copied to clipboard
部分字体渲染部分字体不渲染
怪异的现象……
软件为QTabBar 2048 beta2,mactype为2019 beta 6。(不用2021 RC1是因为托盘模式在低配置设备上渲染和替换延迟太高了,而且持续运行时间长了会莫名其妙不渲染了,必须退出macTray再打开然后再重启对应的软件才行。手动启用注册表模式下却又无法渲染CentBrowser。)
Windows 10 LTSC 2019
在这个软件里,部分字体渲染+替换正常,但部分字体替换后却没有渲染。

你需要确定下rc是不是也有这个问题,如果没有的话就是已经被修复了
+1,同用QTTabBar,MacType已经是2021.1-RC1
补充,刚刚发现PowerPoint的少部分控件也有这种只替换不渲染的现象😂
我在chrome和typora中也遇到了此类问题。经过测试发现,这个问题极大可能是由于「字体集中未设置中文字体」 而引起的。例如:我创建了一个用于测试的HTML文件,并为其 <body> 标签设置如下样式:body {font-family: arial ;} ,便出现了「部分中文字体无法渲染」的问题。
之后我的解决方案是:找到未被渲染字体,并在MacType的配置文件增加如下替换(PS:我采用的热替换方式)
PMingLiU=XHei Nokia MS UI Gothic=XHei Nokia
其中XHei Nokia 为自己所需替换的目标字体,寻找过程如下:
● 环境:win7、Chrome_100.0.4896.88、MacType_2021.1-RC1、Typora_0.9.98(beta) ● 例:对于font-family: arial ; 的情况 ① 在Chrome开发工具中,选择未被成功渲染的字体的标签,依次打开Element→Computed→Rendered Fonts(元素→ 计算样式→渲染的字体)可以看到渲染的字体为「PMingLiU」,需要将其替换为「XHei Nokia」 ② 进行了上面字体替换后,中文字体部分无法渲染的问题解决,但出现部分汉字乱码,查看Element→Computed→ Rendered Fonts发现渲染的字体为「MS UI Gothic」,再次将其替换为「XHei Nokia」 ③ 进行了上面两次替换,最终在Chrome开发工具中,Element→Computed→Rendered Fonts可以看到终于将字体成功渲染 为目标字体「XHei Nokia」 ● 综上,使用上面两行替换即可解决「font-family: arial ;」出现的部分中文字体无法渲染的问题。 ● 目前未解决问题:当没有给字体设置中文字体集时,默认中文字体使用策略? ● PS:之后如果遇到某些网站出现「部分中文字体无法渲染」的问题,可按照上面例子的分析过程进行字体替换 chrome中有个插件「查找字体」也可用于查看元素所用字体
在解决chrome中「部分中文字体无法渲染」的问题的同时,最终发现软件「Typora」中文字体(菜单栏、侧边栏、偏好设置等)无法渲染的问题也被解决了,猜测可能是此软件默认字体集也采用的Arial 。
至此,对于「部分中文字体无法渲染」之类的问题应该都可以采用以上方法解决,关键就是找到未被渲染的字体!
附上部分截图:(截图用的一个chrome内核的浏览器Yandex截的,和chrome过程一致)

只进行PMingLiU=XHei Nokia替换后的效果:

Typora前后对比:

从图上可以看出来并非是没有渲染(directwrite没有可能不渲染),其实是因为你使用的字体并不是系统自带的字体,并且不含中文,所以系统会尝试读取fontlink来链接到缺失的文字,但你自己安装的字体没有fontlink,系统会尝试根据字体特性自动fontlink。 不过Windows的自动link能力十分差,经常会链接到乱七八糟的字体,导致你看到的情况。
解决方案一个就是你给出的替换对应字体的方案,另一个就是在注册表中手动补全fontlink即可。