字體線是用於OPENTYPE垂直指標報告和基於命令線的字體線間距修改的LIBRE開源命令行工具。它支持.ttf和.otf字體構建。
$ pip3 install font-line$ font-line report [font path]$ font-line percent [integer %] [font path]$ font-line --help 字體線由Python構建,並支持Python 3.7+口譯員。使用命令在命令行上檢查您已安裝的Python版本:
$ python3 --version
使用以下任何一種方法在系統上安裝字體線。
最新的字體線版本可通過Python軟件包索引獲得,可以與PIP安裝:
$ pip3 install font-line
要在PIP安裝後升級到新版本的字體線,請使用命令pip3 install --upgrade font-line 。
可以通過下載存儲庫或用git克隆來安裝當前的存儲庫版(可能在PYPI版本之前):
git clone https://github.com/source-foundry/font-line.git
導航到頂級存儲庫目錄並輸入以下命令:
$ pip3 install .
如果使用此方法安裝,請按照相同的說明昇級到應用程序的新版本。
字體線通過子命令可執行可執行文件的font-line命令行。可用以下子命令:
percent - 將字體的線間距修改為登山器的百分比為下降距離report - 報告字體的OPENTYPE指標值下面詳細描述了這些子命令的使用。
report子命令顯示以下opentype垂直指標值和從這些數據得出的計算值:
report子命令用法輸入一個或多個字體路徑參數到命令:
$ font-line report [fontpath 1] <fontpath ...>
這是使用命令使用hack類型File Hack-Regular.ttf生成的報告的示例:
$ font-line report Hack-Regular.ttf
=== Hack-Regular.ttf ===
Version 3.003;[3114f1256]-release
SHA1: b1cd50ba36380d6d6ada37facfc954a8f20c15ba
::::::::::::::::::::::::::::::::::::::::::::::::::
Metrics
::::::::::::::::::::::::::::::::::::::::::::::::::
[head] Units per Em: 2048
[head] yMax: 2027
[head] yMin: -605
[OS/2] CapHeight: 1493
[OS/2] xHeight: 1120
[OS/2] TypoAscender: 1556
[OS/2] TypoDescender: -492
[OS/2] WinAscent: 1901
[OS/2] WinDescent: 483
[hhea] Ascent: 1901
[hhea] Descent: -483
[hhea] LineGap: 0
[OS/2] TypoLineGap: 410
::::::::::::::::::::::::::::::::::::::::::::::::::
Ascent to Descent Calculations
::::::::::::::::::::::::::::::::::::::::::::::::::
[hhea] Ascent to Descent: 2384
[OS/2] TypoAscender to TypoDescender: 2048
[OS/2] WinAscent to WinDescent: 2384
::::::::::::::::::::::::::::::::::::::::::::::::::
Delta Values
::::::::::::::::::::::::::::::::::::::::::::::::::
[hhea] Ascent to [OS/2] TypoAscender: 345
[hhea] Descent to [OS/2] TypoDescender: -9
[OS/2] WinAscent to [OS/2] TypoAscender: 345
[OS/2] WinDescent to [OS/2] TypoDescender: -9
::::::::::::::::::::::::::::::::::::::::::::::::::
Baseline to Baseline Distances
::::::::::::::::::::::::::::::::::::::::::::::::::
hhea metrics: 2384
typo metrics: 2458
win metrics: 2384
[OS/2] fsSelection USE_TYPO_METRICS bit set: False
::::::::::::::::::::::::::::::::::::::::::::::::::
Ratios
::::::::::::::::::::::::::::::::::::::::::::::::::
hhea metrics / UPM: 1.16
typo metrics / UPM: 1.2
win metrics / UPM: 1.16
該報告包括字體版本字符串,字體文件的SHA-1哈希摘要以及與字體中的線間距相關的OPENTYPE表格指標。
Unix/linux/OS X用戶可以將此報告寫入使用>命令行成語的文件:
$ font-line report TheFont.ttf > font-report.txt
將上方的font-report.txt文件路徑修改為您選擇的文件路徑字符串。
基線到基線距離(BTBD)計算是根據Microsoft建議對Opentype字體和Opentype OS/2表規范進行的。
BTBD = hhea.Ascent + abs(hhea.Descent) + hhea.LineGap
BTBD = OS/2.typoAscent + abs(OS/2.typoDescent) + OS/2.typoLineGap
BTBD = OS/2.winAscent + OS/2.winDescent + [External Leading]
外部領導被定義為:
MAX(0, hhea.LineGap - ((OS/2.WinAscent + OS/2.winDescent) - (hhea.Ascent - hhea.Descent)))
字體線支持對用戶定義的每個EM度量單元的自動線間距修改。該值將縮寫為下面的UPM。
percent輸入UPM的所需百分比作為命令的第一個參數。應將其作為整數值輸入。然後輸入您要應用字體指標更改的一條或多個字體路徑。
$ font-line percent [percent change] [fontpath 1] <fontpath ...>
字體設計器使用的常見默認值為20%UPM。要將路徑TheFont.ttf上的字體修改為UPM度量的20%,您將輸入以下命令:
$ font-line percent 20 TheFont.ttf
增加或降低整數值以相應增加或減小線間距。
原始字體文件保存在未修改的版本中,修改文件寫入在定義為[original filename]-linegap[percent].[ttf|otf] 。修改完成後,在標準輸出中向您報告了文件的路徑。字體線不會修改應用於字體的字形集或提示。有關OPENTYPE表的修改的說明,請參見下面的詳細信息部分,當時應用程序在字體文件上使用。
您可以使用report子命令中的新字體文件中檢查新字體文件中的垂直指標(請參見上面的用法)。
percent這些多個垂直指標值的解釋和顯示是平台和應用程序依賴性的。沒有廣泛接受的“最佳”方法。因此,當用percent命令進行修改時,字體線試圖將原始指標設計保存在字體中。
字體線目前支持三種常用的垂直指標方法。
垂直指標方法1 :
指標被定義為:
字體線根據命令行中定義的%UPM值計算總預期高度的增量值。該值與跨越[OS/2] walascent到風速值的觀察到的單元數量之間的差異將一半劃分為一半,然後添加到(增加線間距)或從字體中的三組昇華/下降值中的每組中減去(為減小線間距)。 [OS/2] TypolineGap和[HHEA]線段值未修改。
垂直指標方法2
指標被定義為:
字體線根據命令行中定義的%UPM值計算總預期高度的增量值。該值與跨越[OS/2] Walascent到WindeScent值的觀察到的單位數量之間的差異將一半劃分為一半,然後添加到(增加線間距)或從[OS/2] Winasc/2] Winasc/WindESC和[HHEA] ASC/DESC值中減去(用於減小線間距)。 [OS/2] typoasc/typodesc值未經修改,並保持大小的定義= UPM值。 [OS/2] TypolineGap和[HHEA]線段值未修改。
垂直指標方法3
指標被定義為:
字體中指標值的更改定義為:
請注意,內部領導修改在[HHEA]上升和下降值之間以及[OS/2] Walascent&Windescent值之間均勻分裂。我們將新的[OS/2] TypolineGap值的一半添加到原始[OS/2] TypoAscender或Typodescender,以定義這些新的指標屬性。 [HHEA] lineGap值始終定義為零。
新定義的垂直指標值如果未正確定義,可以導致字形組件的剪輯。字體線上沒有測試可以保證不會發生這種情況。我們假設在使用該應用程序之前,用戶在這些問題上精通這些問題,並將此測試留給設計器 /用戶,然後再在生產設置中使用修改後的字體。
請提交有關項目存儲庫的新問題報告。
字體線是由夢幻般的Fonttools Python圖書館構建的。
麻省理工學院許可證。有關詳細信息,請參見License.MD。