marcelbolten/go-noto-elabftw

eLabFTW 的 Noto 字体

v0.1.0-alpha2 2024-09-03 22:21 UTC

This package is auto-updated.

Last update: 2024-09-03 22:28:18 UTC


README

eLabFTW fonts

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 将自动获取并使用。我们使用的主要程序是 pyftmergepyftsubsetttx

fontforge 将自动添加到 Docker 镜像中,并用于将 Noto Emoji(单色)从 2048 单位/每 em(UPM)缩放到 1000 单位/每 em,以便与其他字体合并。

覆盖率

  • eLabFTW Noto -- 被分为两个文件,即 eLabFTW Noto AeLabFTW 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 包含以下统计信息:

注意事项

  1. 由于代码点和符号太多,eLabFTW Noto 分为两个文件,A 和 B。然而,在 eLabFTW 中使用 mpdf 生成 PDF 时,可以轻松地搜索文件 A 中缺失的代码点和符号。
  2. 不支持垂直文本布局,即使上游 Noto 字体支持,因为 fonttools 不支持与 vmtx/vhea 合并。
  3. Duployan 字体的符号有限,也为了避免 GSUB 泄露。草书连接、上下文形式和重叠树已被禁用。阴影和组合标记仍然有效。

许可证

本着 loka-saṃgraha 的精神,本 git 仓库中分发的脚本(“软件”)根据“Unlicense”协议贡献给公共领域。请参阅 LICENSE.txt。

然而,使用该软件生成的字体根据上游 Noto 字体项目的要求,受 SIL 开源字体许可证版本 1.1 的许可。

其他

FontTools 包附带了一些实用的工具 ttx(将 ttf 转换为 xml 和反向转换),pyftsubset(创建具有给定字体子集的字体)和 pyftmerge(合并字体,本仓库的功臣)。

libharfbuzz-bin 提供了 CLI 工具 hb-viewhb-shape,这些工具对于可视化渲染字符很有用。

otfinfo 提供有关符号、代码点、脚本等的有用信息。