找回密码
 立即注册
查看: 595|回复: 4

请问如何批量查找受 HB_SUBSET_FLAGS_NO_HINTING 影响的字体

该用户从未签到

17

主题

117

回帖

0

VC币

中级会员

Rank: 3Rank: 3

积分
12024
QH7B 发表于 2025-12-29 11:32:29 | 显示全部楼层 |阅读模式
如题,目前已知 FA 丸ゴシックM 和 標楷體 存在此问题,想知道是否还有其他字体有相同的问题,以便我使用单独编译的工具进行子集化,避免出现文字显示问题。
回复

使用道具 举报

  • TA的每日心情
    开心
    2026-6-3 02:11
  • 签到天数: 298 天

    [LV.8]以坛为家I

    1

    主题

    25

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    17008
    milkfans 发表于 2025-12-30 21:48:59 | 显示全部楼层

    中日字体基本都有hinting,受影响字符多少的问题,hb-info.exe --show-technology fontfile可以看有没有hinting  看了下原码就是判断字体是否包含
    fpgm或prep或cvt子表,有其中任意子表就表示字体有hinting   

    hb-subset的默认设置不是不开--no-hinting吗 ,用默认就好了啊
    它默认子集化应该就是只保留必要的hinting
    测试以下字体在不同字形范围内子集化后的大小,单位KB
     
    字型gid范围
    字体
    1-100
    1-100(nohinting)
    1-1000
    1-1000(nohinting)
    *
    *(nohinting)
    FA 丸ゴシックM
    46
    9
    165
    125
    5046
    2686
    標楷體
    19
    9
    200
    152
    2839
    2239
    方正准圆_GBK
    12
    12
    149
    148
    9769
    9649

    看结果默认子集化应该也是只保留相关的hinting
    像方正准圆_GBK这种hinting用的少的字体,开启nohinting并不会减少多少体积  像標楷體和FA 丸ゴシックM这种hinting用的多的开启nohinting会导致显示不正常,

    回复

    使用道具 举报

    该用户从未签到

    17

    主题

    117

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    12024
    QH7B  楼主| 发表于 2025-12-30 22:46:39 | 显示全部楼层
    milkfans 发表于 2025-12-30 21:48
    中日字体基本都有hinting,受影响字符多少的问题,hb-info.exe --show-technology fontfile可以看有没有hi ...

    感谢回复!
    那就是说子集化时如果加了这个FLAG,多数字体都会出现显示问题,只是大部分的不明显很难发现是吗?
    但是 mkvtool 的作者说这样会显著降低子集化后字体文件的体积,而只有极个别的字体会出现显示问题,所以拒绝去掉这个FLAG。
    目前我一直是原版和自己编译的版本换着用,那按照你的说法以后我只用自己编译的去掉这个FLAG的版本就可以了是吗?


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2026-6-3 02:11
  • 签到天数: 298 天

    [LV.8]以坛为家I

    1

    主题

    25

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    17008
    milkfans 发表于 2025-12-31 00:50:11 | 显示全部楼层
    QH7B 发表于 2025-12-30 22:46
    感谢回复!
    那就是说子集化时如果加了这个FLAG,多数字体都会出现显示问题,只是大部分的不明显很难发现 ...


    我没研究过harfbuzz subset的源码,单从测试的结果来看,我觉得默认开这个没什么道理,官方的默认设置也是不开启
    harfbuzz github上release有提供windows下subset编译的二进制文件 harfbuzz ,你可以自己测试下不同字体的开启nohinting这个开关对结果的影响
    测试下来大部分字体开启nohinting可能最终体积会小个几KB到几十KB,例如180KB和220KB看起来最终体积差的很多,但相较原字体几MB的体积来说,这点优化可能都不到原字体体积的1%,我自己的结论不开nohinting保证兼容性更重要
    printscreen.jpg


    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:34
  • 签到天数: 795 天

    [LV.10]以坛为家III

    20

    主题

    168

    回帖

    20

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    249223
    op200 发表于 2025-12-31 01:37:14 | 显示全部楼层
    hb 和 fonttools 的 subset 都是默认保留 hinting,那些天天接触字体的开发者写的默认选项肯定是有道理的(
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表