复现步骤
- Windows 11,显示缩放 100%(ClearType 已开启)。
- 安装 Listary 7.1.0.45,界面语言选择简体中文,主题使用默认的 Porcelain。
- 右键点击托盘图标,然后选择「选项」。
- 观察左侧导航、“常规设置”标题、右侧各项正文,以及底部的“确定/取消/应用”按钮。
预期结果
文字应与系统原生控件一样锐利、笔画实心,观感至少不弱于“Windows 设置”等其他程序。V6 版本中同一位置的文字是清晰的。
实际结果
整个设置页的所有文字都使用灰度抗锯齿,笔画发虚、发灰,明显不如其他程序清楚:
- 12–13px 的中文笔画覆盖率只有约 30–50%,看起来像“灰点连成的虚线”;
- 同一窗口内,1px 分隔线与图标边缘是锐利的,唯独文字发虚,因此可以判断问题出在文字光栅化上,而不是位图被拉伸;
- 对截图(1086×633)做像素统计:所有文字区域的彩色(亚像素)像素数为 0,说明完全没有 ClearType;分隔线是单行 223,237,241,卡片底色纯白 255,因此排除了整窗缩放和半透明合成。
Windows 版本
Windows 11 专业版。
Listary 版本
V7.1.0.45(beta)
附加信息
1. 程序自身日志(ListaryLog.txt)显示渲染器是软件渲染、字体链首选了 macOS 苹方:
[listary_ui::backend] renderer selected renderer=software source=default
[listary_app_host::product::rendering] font chain ready bundle=zh-Hans
key_source=the product UI language (General.Language=zh-Hans)
primary_family=苹方-简 fallback_family=Microsoft YaHei UI faces=3 rescued=false
source=default 说明软件渲染器来自默认配置。
2. 中文字体链疑似照搬了 macOS 版本:primary_family=苹方-简 是 macOS 的系统字体;本机装有苹方时,该字体就会被优先命中。而二进制中 zh-Hans 的兜底表写的是 Microsoft YaHei UI (msyhl.ttc / msyh.ttc / msyhbd.ttc),这说明在 Windows 上本应使用雅黑。苹方笔画本身偏细,再加上软件渲染没有 hinting,13px 下模糊会更明显。
3. 量化对比(GDI+,同 13px,同为灰度抗锯齿):
| 字体 | 墨迹平均灰度 | 实心暗像素 |
|---|---|---|
| 苹方-简 Regular(现状) | 149.6 | 507 |
| 微软雅黑 UI Regular | 161.0 | 578 |
正文为 12–13px,中文字符的墨迹高度实测仅 12px。
4. 建议(按收益排序)
- 在 Windows 上把 zh-Hans 字体链的 primary 直接设为
Microsoft YaHei UI,不要优先使用苹方(或者按平台区分字体表)。 - 小字号文本改用 DirectWrite 渲染,以获得 ClearType + hinting;如果继续软件渲染,请加入 stem darkening / gamma 校正,仅靠灰度 AA 在 12px 中文上无法达到可读性。
- 提供「界面字体 / 字号 / 字重」设置项,让用户自行规避。
截图显示:
