AmusementClub / AssFontSubset

使用 fonttools 生成 ASS 字幕文件的字体子集,并自动修改字体名称及 ASS 文件中对应的字体名称
185 stars 4 forks source link

超过 31 字符的长名称被截尾 #11

Closed 0tkl closed 4 months ago

0tkl commented 5 months ago

以下描述均指 Windows 平台上的行为。

测试仍然是在 2.0.0-beta4 上进行的。看到了分支上推了 https://github.com/AmusementClub/AssFontSubset/commit/406d16b68472045cd3165ae43bc1f514fa96617a ,本来想测一下最新的构建的,但这个 commit 怎么没能触发 GHA……

阿里巴巴普惠体 3.0 字族中包含了 AlibabaPuHuiTi-3-55-RegularL3.otf 和 AlibabaPuHuiTi-3-95-ExtraBold.otf 字体。在英文环境下,全名分别为 Alibaba PuHuiTi 3.0 55 Regular L3Alibaba PuHuiTi 3.0 95 ExtraBold

但是运行脚本时的报错中:

|ERR|One or more errors occurred. (Not found font file: Alibaba PuHuiTi 3.0 55 Regular ,0,0、Alibaba PuHuiTi 3.0 95 ExtraBol,0,0)

可见全名被截断。这样的报错信息使非专业用户很迷惑。并且虽然这符合大部分渲染器的行为,但较新的 libass 是支持超长名称的样式的。下图是自己编译的包含了最新 libass 的 Aegisub。第一行是 Regular L3,其余行均为 ExtraBold。

image

image

我们建议遇到超长名称的字体时,日志类型应为「警告」,提示词改成「字体名称超长,许多渲染器不支持」之类的内容,但真正查找的字体名不截尾。