macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

縦書きの実装について(資料)

グリフコードの取得

縦用グリフ
  テーブル 機能タグ
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
TTC (True Type Collection)

複数のフォントを一つのパッケージにできる



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);

関連記事(外部サイト)

OpenType Layout tag registry