VORG テーブル

VORG テーブル
OpenType 1.3 で追加されたテーブルです。
縦書き時の、グリフの Y 原点位置が格納されています。

CFF 形式のアウトラインがある場合に、オプションで置くことができます。
TrueType アウトラインの場合は、無視する必要があります。

CFF の場合、各グリフの yMax の情報が格納されていないため、縦書き時の Y 原点を求めるためには、グリフの輪郭から yMax を計算する必要があります。

VORG テーブルがある場合は、その値を使って Y 原点を決めることができます。
テーブルデータ
uint16メジャーバージョン = 1
uint16マイナーバージョン = 0
int16 defaultVertOriginYエントリがないグリフに使用される、デフォルトの Y 座標
uint16 numVertOriginYMetrics下の配列の数
vertOriginYMetrics []データの配列。
glyphIndex の小さい順に並んでいる。
全てのグリフが defaultVertOriginY の値となる場合は、データがない。

vertOriginYMetrics
uint16 glyphIndexグリフインデックス値
int16 vertOriginY原点の Y 座標 (フォントデザイン単位)


ほとんどのグリフでは、defaultVertOriginY の値が使われます。
Y 原点がデフォルト値と異なるグリフの場合は、vertOriginYMetrics にデータが格納されています。

vertOriginYMetrics には、全角の記号や英字のグリフが指定されている場合が多いです。
プログラム
>> 13_vorg.c

VORG テーブルのデータを表示するプログラムです。
output.txt」に結果が出力されます。

---- VORG ----

version: 1.0
defaultVertOriginY: 880
numVertOriginYMetrics: 248

GID | char | originY
---------------------
730 | ‰ (U+2030) | 858
747 | ℀ (U+2100) | 868
748 | ℃ (U+2103) | 873
749 | ℅ (U+2105) | 868
...
59976 | A (U+FF21) | 874
59977 | B (U+FF22) | 874
59978 | C (U+FF23) | 873
59979 | D (U+FF24) | 874
...