Font-lineは、Opentype Vertical Metricsレポートおよびコマンドラインベースのフォントライン間隔の変更のためのLibreのオープンソースコマンドラインツールです。 .ttfと.otfフォントビルドをサポートします。
$ pip3 install font-line$ font-line report [font path]$ font-line percent [integer %] [font path]$ font-line --help Font-LineはPythonで構築されており、Python 3.7+通訳をサポートしています。コマンドラインにインストールされているPythonバージョンを確認します。
$ python3 --version
次のいずれかの方法を使用して、システムにフォントラインをインストールします。
最新のフォントラインリリースは、Pythonパッケージインデックスから入手でき、PIPでインストールできます。
$ pip3 install font-line
PIPインストール後に新しいバージョンのFont-lineにアップグレードするには、コマンドpip3 install --upgrade font-lineを使用します。
現在のリポジトリバージョン(PYPIリリースよりも先にある可能性があります)は、リポジトリをダウンロードするか、GITでクローニングすることでインストールできます。
git clone https://github.com/source-foundry/font-line.git
トップレベルリポジトリディレクトリに移動し、次のコマンドを入力します。
$ pip3 install .
このアプローチをインストールした場合、同じ手順に従ってアプリケーションの新しいバージョンにアップグレードしてください。
フォントラインは、サブコマンドを介してfont-lineコマンドライン実行可能ファイルに動作します。次のサブコマンドが利用可能です。
percent - フォントのライン間隔を、ascenderの距離の割合の割合に変更しますreport - フォントのOpenTypeメトリック値をレポートしますこれらのサブコマンドの使用については、以下で詳しく説明します。
これらのデータから導出された次のOpentype垂直メトリック値と計算された値は、 reportサブコマンドで表示されます。
reportコマンドに1つ以上のフォントパス引数を入力します。
$ font-line report [fontpath 1] <fontpath ...>
コマンドを使用して、ハック書体ファイル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ユーザーは、このレポートを>コマンドラインidiomを使用してファイルに書き込むことができます。
$ font-line report TheFont.ttf > font-report.txt
選択したファイルパスストリングに上のfont-report.txtファイルパスを変更します。
ベースラインからベースライン距離(BTBD)計算は、OpentypeフォントおよびOpentype OS/2テーブル仕様のMicrosoft推奨事項に従って実行されます。
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)))
Font-lineは、自動化されたライン間隔の変更を、EMメトリックごとにユーザー定義のユニットの割合にサポートします。この値は、以下のUPMのように短縮されます。
percentコマンドの最初の引数として、UPMの目的の割合を入力します。これは整数値として入力する必要があります。次に、フォントメトリックの変更を適用したい1つ以上のフォントパスを入力します。
$ 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] 。ファイルへのパスは、変更が完了した後、標準出力でお客様に報告されます。 Font-Lineは、フォントに適用されるGlyphセットまたはヒントを変更しません。アプリケーションがフォントファイルで使用されているときに発生するOpenTypeテーブルの変更の説明については、以下の詳細セクションを参照してください。
reportサブコマンドを使用して、新しいフォントファイルの垂直メトリックを検査できます(上記の使用法を参照)。
percentで変化しますこれらの複数の垂直メトリック値の解釈と表示は、プラットフォームとアプリケーションに依存します。広く受け入れられている「最高の」アプローチはありません。そのため、Font-lineは、 percentサブコマンドで変更が行われたときに、フォントに元のメトリック設計を保存しようとします。
Font-Lineは現在、3つの一般的に使用される垂直メトリックアプローチをサポートしています。
垂直メトリックアプローチ1 :
メトリックが定義されている場合:
フォントラインは、コマンドラインで定義された%UPM値に基づいて、予想される総高さのデルタ値を計算します。この値と、[OS/2] winscentに及ぼす観測されたユニットの数の違いは、ウィンセント値に及ぼすものを半分に分割し、次に(ライン間隔の増加に対して)(ライン間隔の減少の場合)(ライン間隔の減少)3セットの各セットの各セットのそれぞれから差し引かれます。 [OS/2] TypolineGAPおよび[HHEA]ラインガップ値は変更されていません。
垂直メトリックアプローチ2
メトリックが定義されている場合:
フォントラインは、コマンドラインで定義された%UPM値に基づいて、予想される総高さのデルタ値を計算します。この値と、[OS/2] winscentに及ぶウィンセント値に及ぶ観測されたユニットの数の違いは、[OS/2] WinASC/WindESCおよび[HHEA] ASC/DESC値から(ライン間隔の減少の場合)(ライン間隔の増加の場合)に(ライン間隔の増加)に追加されます。 [OS/2] TypoASC/TypODESC値は変更されておらず、サイズ= UPM値の定義を維持します。 [OS/2] TypolineGAPおよび[HHEA]ラインガップ値は変更されていません。
垂直メトリックアプローチ3
メトリックが定義されている場合:
フォント内のメトリック値の変更は、次のように定義されます。
内部の主要な変更は、[HHEA]上昇と降下の値に均等に分割され、[OS/2] Winascent&Windescent値にわたって均等に分割されていることに注意してください。これらの新しいメトリックプロパティを定義するために、新しい[OS/2] TypolineGap値の半分を元の[OS/2] TypoAscenderまたはTypodescenderに追加します。 [HHEA]ラインガップ値は常にゼロとして定義されます。
新しく定義された垂直メトリック値は、適切に定義されていない場合、グリフ成分の切り抜きにつながる可能性があります。これが発生しないという保証を提供するためのフォントラインにテストはありません。ユーザーは、アプリケーションを使用する前にこれらの問題に精通していると仮定し、このテストは、制作設定で変更されたフォントが使用される前にデザイナー /ユーザーに残していると仮定します。
Project Repositoryの新しい問題レポートを提出してください。
Font-Lineは、Fantastic Fonttools Pythonライブラリで構築されています。
MITライセンス。詳細については、license.mdを参照してください。