RE: 仮想ボディと外枠の関係性

先ほどのメッセージで少し言葉が足りなかったので、以下の通り加筆します。



> ところで,ラテン文字の場合,いったいどのような情報がフォントは保持していますか.以下のY軸の位置はフォントとして持っているのですか.あるいは,ない場合は,フォントから計測できるのですか.



OpenTypeフォントのOS/2テーブルには、Ascender, Descender, Cap Height, x-heightの情報が収容されています。



> こうした位置はフォントデザイナーが決めることだと思います.

> つまり,和文文字の仮想ボディのどこに,上記のラテン文字の位置を合わせるかを指定できます.



実装上は、先にも書きましたが、デザイナーは、欧文フォント・和文フォントを問わず、BASEテーブルに和文の全角位置が、欧文のベースライン位置(y = 0)と相対的にどの位置にあるかの情報を設定することが可能です。Adobe製の欧文フォントには(多くの場合)BASEテーブルに、Cap. heightの中心が和文の全角ボディの中心の高さと一致するように、和文の全角ボディの位置情報が設定されています。



(ただし歴史的な実装について言えば、初期のPostScript処理系のための和文フォントの形式(Type 1形式に基づく2-byteコードに対応する複合フォント及びそこから発展した、「生の」[SFNTやOpenTypeからは独立した]CIDFontに基づく和文フォントでは、y = -120の位置に、和文の全角ボディの底辺を設定して、その位置の全角ボディを基準にして和文グリフのアウトラインが作られました。そのため、CFF-ベース(CFFはType 1形式に互換変換可能なより圧縮されたグリフ手続きを記述したフォーマット)をアウトライン情報としてもつOpenTypeの和文フォントでも、伝統的にy = -120の位置に和文の全角ボディの底辺の位置が設定されてきました。そしてそのような和文フォントのOS/2テーブルのsTypoAscenderとsTypoAscenderには、和文全角の上辺と底辺の位置のy座標が設定されてきました)。



実装を離れた、和文と欧文との相対的な位置関係の一般的な記述としては「フォントデザイナーが決める」がもっとも正しいと考えます。



山本太郎

Received on Monday, 29 July 2024 00:28:31 UTC