16 lines
2.5 KiB
Markdown
16 lines
2.5 KiB
Markdown
# 类似公交窄体(推荐32px)
|
||
|
||
独立16×32字格,末列留空。ID 为 `builtin:walnut-bus-16x32`,成品为 `app/fonts/bundled/SimilarBus16x32.ttf`。字符集与优化版16px一致(6763汉字、95 ASCII、26标点/符号),不增加其他语言承诺。32px是主要字号,64px为整数倍;不把32px款缩小到16px当成小字优化。
|
||
|
||
中文完整骨架来自 GNU Unifont 18.0.01 标准 G-source BDF,官方来源/版本/下载摘要见 `upstream/source.json`。选择 SIL OFL 1.1 制作衍生字体;保留原始版权、OFL及双许可证说明。字体未使用附件姚体轮廓。构建程序是项目自己的实现,没有复制Unifont的GPL构建代码。
|
||
|
||
设计不是将旧8×16放大。每个字从原16列中文骨架开始,横画与独立竖画主要2px,相邻部件留空,不够空间时保持1px。密集字的横画改单行,竖画保持连续;斜画重新补偏移阶梯;包围字重新绘制外框、内横、贯穿竖画。英文大写/数字从项目独立骨架重新安排26px字身及双列主笔画,小写单独分配字身、侧边距、基线和下伸部。
|
||
|
||
`glyphs.json` 保存所有32行、16位十六进制字模,`revisions.json` 保存覆盖与原因,`classes.json` 登记每类不少于8个代表字。method=grid-redraw为独立网格绘制,method=structure-rule为分类规则生成;后者不得称作逐字手工设计。算法在 `scripts/bus_font_design.py`,轮廓构建在 `scripts/build_bus_font.py`。共享字体构建锁及本地wheel位于相邻 `walnut-bus-8x16/`,不依赖仓库外文件。
|
||
|
||
从已准备的项目字体环境运行 `build_bus_font.py` 可离线构建两款;仅显式 `--design` 会重新生成分类字模。使用 `proof_bus_font.py --height 32 --output <受保护临时目录>` 生成全码位图册、密度/重复审计。输入摘要在SHA256SUMS;成品摘要和旧版淘汰/别名登记在bundle manifest。
|
||
|
||
推荐字号逐像素检查与字模一致、无灰阶、无越格;重点字64px与最近邻放大一致。分类词语和实际网页预览需额外视觉检查,不以覆盖或密度分数代替辨识判断。极密集罕用字仍可能需要上下文,未做真实用户辨识率实验。
|
||
|
||
更新字体后,受影响模板/动图的可再生缩略图重建,并写 `.font-version` 辅助缓存、增加 font_v URL参数;作品JSON、scene digest、修订号不变。辅助缓存只与登记缩略图共存,源图删除后按原资源清理规则删除对应辅助缓存。
|