AssFontSubset
生成 ASS 字幕文件的字体子集,并自动修改字体名称及 ASS 文件中对应的字体名称
Install / Use
/learn @AmusementClub/AssFontSubsetREADME
AssFontSubset
使用 fonttools 或 harfbuzz-subset 生成 ASS 字幕文件的字体子集,并自动修改字体名称及 ASS 文件中对应的字体名称
依赖
如果使用 fonttools 进行子集化,需要:
- fonttools,推荐使用最新版本
- Path 环境变量中存在 pyftsubset 和 ttx,也可以通过选项指定所在目录,此二者是 fonttools 的一部分
AssFontSubset.Console
Usage:
AssFontSubset.Console [<path>...] [options]
Arguments:
<path> 要子集化的 ASS 字幕文件路径,可以输入多个同目录的字幕文件
Options:
-?, -h, --help Show help and usage information
--version Show version information
--fonts ASS 字幕文件需要的字体所在目录,默认为 ASS 同目录的 fonts 文件夹
--output 子集化后成品所在目录,默认为 ASS 同目录的 output 文件夹
--subset-backend <HarfBuzzSubset|PyFontTools> 子集化使用的后端 [default: PyFontTools]
--bin-path 指定 pyftsubset 和 ttx 所在目录。若未指定,会使用环境变量中的
--source-han-ellipsis 使思源黑体和宋体的省略号居中对齐 [default: True]
--debug 保留子集化期间的各种临时文件,位于 --output-dir 指定的文件夹;同时打印 出所有运行的命令 [default: False]
AssFontSubset.Avalonia
大致可以参考 v1 README 中的 gui 使用方法,目前不支持显示实时的子集化进度和 harfbuzz-subset 后端。
注意
- 每次生成时会自动删除 ass 同目录下的 output 文件夹。
- 目前,子集化后只保留了必要的 OpenType features,可参照此 issue 和 保留的 features。
Todo
- 考虑移除 gui 支持
- 考虑增加对 fontations subset (klippa) 的支持
- 不确定是否要支持可变字体(variable fonts)
- 不确定是否要恢复检查更新的功能
FAQ 常见问题和故障排除
-
如果弹出的错误信息中有提到
请尝试使用 FontForge 重新生成字体。: 请下载并安装 Fontforge,然后使用 Fontforge 打开有问题的字体,不需要改动任何信息,直接点文件——生成字体(File - Generate Font),然后生成一个新的字体文件,无视中途弹出的警告。再使用新生成的字体进行子集化操作。 -
如果 Fontforge 无法解决问题,或出现奇怪的错误,且没有有用的错误信息,请尝试更新 fonttools:
pip3 install --upgrade fonttools
-
其他已知问题
- 部分特殊字体 hb-subset 丢弃而不是重生成可用的 cmap 表,目前只能切换到 fonttools 进行子集化
- 方正锐正黑_GBK Bold 名称匹配错误
-
若有无法解决的问题,欢迎回报 issue
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
