mactype icon indicating copy to clipboard operation
mactype copied to clipboard

部分字体渲染部分字体不渲染

Open Gokou-Ruri opened this issue 4 years ago • 4 comments

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

Gokou-Ruri avatar Oct 28 '21 03:10 Gokou-Ruri

你需要确定下rc是不是也有这个问题,如果没有的话就是已经被修复了

snowie2000 avatar Oct 28 '21 03:10 snowie2000

+1,同用QTTabBar,MacType已经是2021.1-RC1 Screenshot (619) 补充,刚刚发现PowerPoint的少部分控件也有这种只替换不渲染的现象😂

SamToki avatar Feb 12 '22 06:02 SamToki

我在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过程一致)

解决Mactype在chrome中部分字体渲染,部分字体未渲染问题1

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

解决Mactype在chrome中部分字体渲染,部分字体未渲染问题2

Typora前后对比:

解决Mactype在chrome中部分字体渲染,部分字体未渲染问题3

fcat7 avatar May 01 '22 07:05 fcat7

从图上可以看出来并非是没有渲染(directwrite没有可能不渲染),其实是因为你使用的字体并不是系统自带的字体,并且不含中文,所以系统会尝试读取fontlink来链接到缺失的文字,但你自己安装的字体没有fontlink,系统会尝试根据字体特性自动fontlink。 不过Windows的自动link能力十分差,经常会链接到乱七八糟的字体,导致你看到的情况。

解决方案一个就是你给出的替换对应字体的方案,另一个就是在注册表中手动补全fontlink即可。

snowie2000 avatar May 01 '22 09:05 snowie2000