glyphkit:與繪圖端無關的 Python 排版引擎
回傳不可變排版資料、自己不繪圖的 Python 排版引擎。
glyphkit 1.0 為測試版
glyphkit 1.0.0b4 是預發行版本。預發行版本之間的每項變更都記錄在變更紀錄。
from glyphkit import FontLibrary, FontSource, Paragraph, TextSpan, TextStyle
library = FontLibrary.from_sources(
(
FontSource.path("fonts/SourceSans3-Regular.ttf"),
FontSource.path("fonts/NotoSansTC-Regular.otf"),
),
generic_families={"sans-serif": ("Source Sans 3", "Noto Sans TC")},
)
paragraph = Paragraph(
(TextSpan("效用 U(x₁, x₂)", TextStyle(("sans-serif",), 18)),),
max_width=360,
)
layout = library.layout(paragraph)
print(layout.logical_bounds)
功能
-
字型與字形處理
明確的字型來源、確定的配對、設定好的後備字型、Unicode 文字系統、雙向文字與 OpenType 字形處理。
-
段落排版
換行的段落,附邏輯範圍與墨跡範圍、基線、對齊與縮排,使用排版單位而非像素。
-
結構化數學式
明確定義的類 LaTeX 語法,依 TeX 的規則與字型 OpenType MATH 表的常數排版。
-
精確的字形輪廓
以字型單位表示的移動、直線、二次、三次與封閉命令,並可依你選的容許誤差自適應展平。
-
會檢查權限的字型子集
遵守字型嵌入權限的 SFNT 或 WOFF2 子集位元組,以及有版本的純資料序列化。
-
座標與度量
字型單位、縮放、字幅與墨跡的差別,以及對齊、裁切或做碰撞檢查時該用哪個方框。
安裝
需要 Python 3.10 到 3.13。WOFF2 額外安裝項見安裝。
範例
本文件的每張圖都附上生成它的腳本。可一次下載全部。