縦書きの実装について(資料)
グリフコードの取得
縦用グリフ
テーブル | 機能タグ | |
---|---|---|
GSUB | vrt2 |
数字用グリフ 縦中横に使う
幅 | テーブル | 機能タグ |
---|---|---|
2分 | GSUB | hwid |
3分 | GSUB | twid |
4分 | GSUB | qwid |
字送り幅、高さの取得
GPOS かなの文字詰め情報
レイアウト
追い出し、追い込みの処理
追い込みの条件
改行して一つめの文字が行頭禁則文字
改行して一つめの文字が行頭禁則文字かつ2つ目の文字が行頭禁則でない
追い出しの条件
一つめ、二つ目ともに行頭禁則文字の場合、行末文字を次の行の先頭に
ルビ、圏点
親文字の場所に基づいて位置調整
用語
テーブル
タグ | テーブル名 | |
---|---|---|
DSIG | デジタル署名テーブル | |
GDEF | ||
LTSH | ||
OS/2 | OS/2,Windows固有のメトリックス | |
VDMX | ||
cmap | 文字コードからグリフインデックスへの変換 | |
cvt | ||
fpgm | ||
gasp | ||
glyf | グリフのアウトライン | |
hdmx | ||
head | フォントの情報 | |
hhea | ||
hmtx | 欧文フォントのピッチ情報(文字送り情報) | |
kern | 'vkrn'で縦書き | |
loca | グリフインデックスからグリフデータ位置へのマップ | |
maxp | フォントのプロファイル | |
name | フォントファミリー名、著作権情報など | |
post | ||
prep |
nameテーブル
フォント名や社名など
Nameレコード
型 | 名称 | |
---|---|---|
platformID | プラットフォームID |
...
GSUBテーブル
GSUB (Glyph Substituon)字形置換
異体字変換、縦横用、ルビ文字など
タグ | 機能 | |
---|---|---|
aalt | 異体字 | Access All Alternates |
jp78 | JIS78字形 | JIS X 0208:1978 |
jp83 | JIS83字形 | JIS X 0208:1983 |
trad | 旧字体 | |
expt | エキスパート字形 | |
hojo | 補助漢字 | |
jp90 | デフォルトに戻す | |
jp04 | JIS X 0213:2004例示字体 | |
nlck | 表外漢字字体表 |
GPOSテーブル
タグ | 機能 | |
---|---|---|
tnum | 表用数字 | |
curs | 筆記体の接続 |
GDEFテーブル
合字キャレット情報
※OpenTypeの基本はJIS90字形、異なる場合のみJIS78,JIS83タグが付いている
※jp04,nlckは注意が必要
※モリサワPro5 2007年12月以前のものにはバグ有り
アドバンス幅
文字を送る送り幅
左サイドベアリング
原点からグリフ左端までの間隔
右サイドベアリング
横幅(アドバンス幅)からグリフ右端までの間隔
xハイト
アルファベットのxの高さ。小文字の基準の高さ。
ディセンダ
ベースラインから下に伸びる部分
キャップハイト
大文字の基準の高さ
アセンダ
xハイトから上に伸びる部分
アセント
文字の高さ
ディセント
文字の深さ
ヒント
小さなフォントを表示する際にラスタライザに渡す情報
不明
"mark"テーブル
"mkmk"テーブル マークからマークへ
関連するCoreGraphics関数
CGFontGetUnitsPerEm()
指定したフォントのem値を返す。
CG_EXTERN int CGFontGetUnitsPerEm(CGFontRef font)
CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);