可重現性與字型安全
字型識別
建立一般的 FontLibrary 時,GlyphKit 絕不搜尋這台機器。請提供字型路徑、不可變的位元組或二進位資料流。它只讀取輸入一次,並用位元組的 SHA-256 與字型集合索引識別字型面,所以把相同的位元組搬到別處,識別不會改變。
可重現的輸入
要得到可重現的輸出,請提供明確的 FontSource,保持它們的順序穩定,宣告後備字族,並把排版結果或字型清單序列化。搜尋系統字型是要主動選用的列舉步驟,絕不是暗中的後備。discover_system_fonts() 回傳一份清單;請把它凍結,之後只透過會檢查已記錄指紋的解析器還原。清單是目錄,不是字型位元組的打包。
FontManifest(faces, generic_families, diagnostics=())
可序列化的字型面清單,帶有穩定的識別、來源與可變字型的中繼資料。
FontUse(face_id, source_ranges, variation_coordinates=())
記錄一份排版結果中,哪個字型面與可變字型座標負責了哪些原文範圍。
字型輸入上限是 128 MiB。空的、格式錯誤的、無法存取的與過大的資料,都會拋出結構化的 GlyphKit 錯誤。GlyphKit 不使用網路,也絕不會偷偷選用沒有設定的系統字型。
字型安全
library.subset() 回傳位元組與中繼資料。這個政策是機械式的,不是法律意見:
| 宣告的權限 | 預設結果 |
|---|---|
| 可安裝或可編輯 | 允許用於相容的用途 |
| 預覽或列印 | 只允許不可編輯的預覽或列印輸出 |
| 受限 | 拒絕 |
| 不明或沒有 | 拒絕,除非 allow_unknown=True |
字型授權與散布權利仍由呼叫端負責。選用的 portable 設定檔啟用 WOFF2,基本套件則提供 SFNT 子集。
使用端的義務
繪圖端依序取用已定位的字形,把 \(s/U\) 套用到精確輪廓,遵守位移與基線,並用 MathRule 提供的粗細畫每條線。它不可以重新處理字形,也不可以重做字型配對。
與繪圖端無關
命題 · 與繪圖端無關
如果兩個繪圖端取用相同的排版結果、相同的精確輪廓、相同的仿射單位換算與相同的裁切矩形,它們的字形幾何在輸出數值精度內完全相同。
點陣的抗鋸齒可能不同,但字形處理、字幅、換行位置與 Bézier 幾何都不會不同。