急救室
首发于急救室

【反馈】把你对微软雅黑的不满统统告诉我

简短问题汇总:


微软雅黑问题汇总


1. (来自字体设计师的意见)

雅黑的喇叭口设计已经过时,不适合在屏幕上使用


2. (来自用户和字体设计师的重要意见)

Hinting问题,尤其是粗体的hinting,“字”和“宇”在很多屏幕上难以区分


3. (来自用户和应用开发者的重要意见)

雅黑的字面太大,和Segoe UI非常不协调。并且,雅黑自带了一套放大加粗版的Segoe UI,这在和真正的Segoe UI混用时就会产生很糟糕的混乱感。

图中展示了开发者设置两文本框同为15PX时,雅黑版Segoe UI和原版Segoe UI的区别。

UWP上,大多数文本框默认都是优先使用原版Segoe UI,并且外国开发者也是UWP的开发主流。他们不可能为了一个巨大的微软雅黑而去重新调整文本框大小或者界面布局。所以雅黑必须要做到在同字号下能与Segoe UI和谐共处,不能自带一套放大加粗的Segoe(造成混排混乱),更不能比原版Segoe UI字面大太多——包括中文部分也不可以。

否则就会出现各种排版错乱的情况——丑已经是次要的了:

(由于雅黑字面太大,导致上图右下角的车速显示不完全)

例如最新一次Win 10 Mobile照片应用更新后,顶端中文字号过大,简直像老人机一样,希望作出调整,或者起码给出让我们用户自行设置选择的选项。



4. (关于字体规范性的重要意见)

中文在全角拉丁区的标点,全都是不规范的,例如「,。:;?!() []{}」,只是把英文符号的两侧间距加宽相同宽度,完全不符合国标规范。(微軟正黑體都知道逗号纵向居中,雅黑却不知道放在左下角么?)


5. (来自用户的意见)

西文双引号的区分度太低,西文I和l区分度太低


6. (来自开发者和用户的重要意见)

Win10的高级系统属性对话框比vista大三圈,繁体版只大一圈,英文版是一样大的,这就是你们微软雅黑高度参数设得过高造成的!!!要知道MapDialogRect是根据字体大小(而不是DPI)来缩放布局的!!!还有那个office2016的段落对话框,真是顶天立地啊!!!雅黑的默认行距太大了,总是有种1.5倍的感觉。任何分辨率下的pc端都是这样。

在Win32中,对话框的布局尺寸是DLU(对话框逻辑单位),它是一个基于字体的布局缩放方案(而不是基于DPI的),其中MapDialogRect用来将DLU转换为像素单位,公式为pixelX=DLUX*baseUnitX/4,pixelY=DLUY*baseUnixY/8,baseUnitX和baseUnitY是对话框字体的平均宽度和平均高度TEXTMETRIC::tmHeight。由此可见,字体的以上两个属性在对话框布局缩放上起到了关键性作用。

在中文系统中,Win10和Office2016的对话框字体在MUI文件中被设为微软雅黑,但是Win10雅黑的baseUnitY相对于其它语言的对应字体(英文的、繁体中文、日文等)是异常的大,这就导致了计算出的pixelX、pixelY。(实际上这个问题在Win8.1就出现了,但是你们一直没意识到)。

下图可以对比一下,可以清晰地看出,英文版的{高级系统属性}对话框Win7-Win10几乎没有变化,而中文版则大了三圈不止,这是非常尴尬的。

图中可见:Win7的中文、英文版高度都是正常的,但是Win10的中文版微软雅黑高度异常的高,导致对话框长出了一大截。

用下面这个程序创建了一个11pt的字体,并打印它的平均宽度和最大高度:

HDC screendc = GetDC(NULL);
HFONT font = CreateFont(-MulDiv(11, GetDeviceCaps(screendc, LOGPIXELSY), 72), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, L"Microsoft Yahei UI");
SelectObject(screendc, font);
TEXTMETRIC tm = {};
GetTextMetrics(screendc, &tm);
printf("height=%d width=%d\n", tm.tmHeight, tm.tmAveCharWidth);

最终研究发现:

使用Win8 Build 9200运行那个程序,得到height=19 width=7

使用Win10 Build 14393运行那个程序,得到height=20 width=7

另外,如果将字体重量改成实际使用的9pt时,更明显:

Win8 Build 9200得到height=15 width=6

Win10 Build 14393得到height=17 width=6

差别更明显,说明msyh.ttcMicrosoft Yahei UI字体的问题,而不是Microsoft Yahei。

从下图可以参考Win7/Win8/Win10的系统属性窗口大小(Win7<Win8<Win10)截图均为96DPI下的情况。

看来微软雅黑的高度设置确有问题。

7. 微软雅黑的日文假名部分太过敷衍,不仅设计极丑而且hinting也很糟糕。


8. (来自字体设计师和开发者的重要意见)

最大的问题还是字重吧, 现在这样修修补补不是办法, 急需更换一套全字重 (且具备可延展性) 的字体, 否则对 Web 和 UWP 设计/开发都会是负担.

开发者需要一套字重齐全、且能和其它主流字体和谐共存共用的字体,现阶段的微软雅黑已经给本地化工作带来了很大负担。

9. (来自程序员的呼声)

需要一个等宽版的雅黑字体

用于一些特殊应用场景,如Visual Studio、Power Shell等。

==

在之前微软雅黑已经做了不少改进,不过,现在如果你对微软雅黑还有什么特别不满的地方,欢迎在评论区或者邮件告诉我;

我的邮箱是 hotellonely#live.com ,把#换成@即可。


比如说,在你的屏幕上,微软雅黑还有没有参差不齐的问题?

微软雅黑在你的屏幕上会不会出现笔画粘连?

微软雅黑和其他系统自带字体在同一字号下可以和谐共用吗?比如雅黑与Arial、Segoe的和谐度如何?


又或者你还有什么特别的意见和建议?


请务必不要吝啬,全部都告诉我。

请顺便告诉我你所使用的屏幕尺寸、分辨率,和DPI缩放倍数大小。


如,10寸,1920*1080,DPI 150%,出现高低参差不齐……

如果需要附图,欢迎邮件发给我。图越多越好!


谢谢各位的热情!

编辑于 2016-09-19

文章被以下专栏收录

    不是软狗不要看,不是软狗不要关注。 现已成为微软官方商城软文广告中心( 其他文章随意转载,不过请著明出处:知乎@可可苏玛 微信:cocosuma 微博:同知乎ID