marcelbolten / go-noto-elabftw
eLabFTW 的 Noto 字体
This package is auto-updated.
Last update: 2024-09-03 22:28:18 UTC
README
Noto 字体支持 eLabFTW!在 eLabFTW 中通过 mPDF 创建 PDF 时,我们希望尽可能避免冗余和符号。下载根据 eLabFTW 前端支持的语言合并的 pan-Unicode 和 Noto 字体。
也请参阅注意事项。
下载
如果您只是想使用这些字体,请访问发布页面并下载您所需的文件。
开发版本可以从GitHub Actions页面下载。点击任何带有绿色勾号✅(管道通过)的工作流程,然后在“工件”下下载“eLabFTWNotoFonts.zip”(需要登录)。
注意:即使没有常规提交到这个存储库,CI 管道每周都会构建新的 Go Noto eLabFTW 字体,从上游拉取最新的 Noto 字体(使用计划好的 cron)。因此,从“操作”页面下载“工件”以获得 Noto 字体的最佳功能和错误修复。
构建
如果您想自己构建字体,请创建一个虚拟环境(venv)并运行脚本
python -m venv venv_fonty
source venv_fonty/bin/activate
./scripts/eLab_fonts.sh
deactivate
或者通过 ./start_docker.sh
启动提供的 Docker 容器,然后在容器内部运行 ./scripts/eLab_fonts.sh。
字体生成可能需要几分钟,具体取决于您的计算机性能。
每个脚本都设计为可重入的,因此您可以多次运行它而不会更改存储库的工作状态或反复下载。
依赖项
fonttools
将自动获取并使用。我们使用的主要程序是 pyftmerge
、pyftsubset
和 ttx
。
fontforge
将自动添加到 Docker 镜像中,并用于将 Noto Emoji(单色)从 2048 单位/每 em(UPM)缩放到 1000 单位/每 em,以便与其他字体合并。
覆盖率
-
eLabFTW Noto -- 被分为两个文件,即 eLabFTW Noto A 和 eLabFTW Noto B,以覆盖在 eLabFTW 使用 Noto 字体之前受支持的脚本。
eLabFTW Noto A 覆盖拉丁-希腊-西里尔,Unihan Core 2020(约 20000 个代码点)、数学、符号和表情符号。
eLabFTW Noto B 用于支持超出 Unihan Core 2020 的附加 CJK 符号。
-
Go Noto 古代 -- 结合了 70 多个不常使用的古代、历史或宗教文字的 Noto 字体。此字体可能对研究或学术用途或语言爱好者有用。此字体不支持任何 CJK。
具体结合的字体可以在源代码中找到。
字体统计信息
CI 管道在每次运行中都会以 tsv 格式(制表符分隔值)收集字体统计信息,并可以在构建工件中下载。
以下统计信息对应于版本 v0.1。
请注意,eLabFTW Noto 包含以下统计信息:
注意事项
- 由于代码点和符号太多,eLabFTW Noto 分为两个文件,A 和 B。然而,在 eLabFTW 中使用 mpdf 生成 PDF 时,可以轻松地搜索文件 A 中缺失的代码点和符号。
- 不支持垂直文本布局,即使上游 Noto 字体支持,因为 fonttools 不支持与
vmtx
/vhea
合并。 - Duployan 字体的符号有限,也为了避免 GSUB 泄露。草书连接、上下文形式和重叠树已被禁用。阴影和组合标记仍然有效。
许可证
本着 loka-saṃgraha 的精神,本 git 仓库中分发的脚本(“软件”)根据“Unlicense”协议贡献给公共领域。请参阅 LICENSE.txt。
然而,使用该软件生成的字体根据上游 Noto 字体项目的要求,受 SIL 开源字体许可证版本 1.1 的许可。
其他
FontTools 包附带了一些实用的工具 ttx
(将 ttf 转换为 xml 和反向转换),pyftsubset
(创建具有给定字体子集的字体)和 pyftmerge
(合并字体,本仓库的功臣)。
libharfbuzz-bin
提供了 CLI 工具 hb-view
和 hb-shape
,这些工具对于可视化渲染字符很有用。
otfinfo
提供有关符号、代码点、脚本等的有用信息。