- From: <atsuda@fontworks.co.jp>
- Date: Tue, 24 Oct 2023 06:24:00 +0000
- To: <binn@k.email.ne.jp>, <kida@mac.com>
- CC: <public-i18n-japanese@w3.org>
- Message-ID: <TYCPR01MB100878D7FA55D57226B7145069BDFA@TYCPR01MB10087.jpnprd01.prod.outlook.co>
小林様 津田です。 1.文字のアウトラインを示すために座標空間が必要になります。 黒丸はその原点になります。 ですから、フォントの構造という点から考えると、 原点に対して、仮想ボディを置くということになると存じます。 現状、主要な日本語OpenTypeフォントは、 左下を(0、−120)、右上を(1000、880)の位置に仮想ボディを置きます。 字面はその仮想ボディに対して、デザインに応じて、その内側に設定します。うろ覚えですが、字面用の線はデザイナーの仕事を見ていると、複数引いているようでした。おそらく、漢字用、かな用などと使い分けているのではないでしょうか。 2.まず、文字配置の方向です。 水平方向に関するデータは必須データです。 垂直方向に関するデータはオプションです。 日本語フォントでは、垂直方向の配置ができるようにオプションを付けることが一般的です。 ではその文字方向に関するデータですが、ベースラインの位置、サイドベアリング(原点から字面までの距離)、字幅です。 ベースラインの位置はベースライン(BASE)というテーブルで制御できます。しかしながら、こちらもオプションです。 無い場合には、ベースラインは原点を通る水平線です。 (レフト)サイドベアリングと字幅は、水平方向メトリクス(hmtx)テーブルに設定します。サイドベアリングはPS系のOpenTypeでは使用されません。原点に対してアウトラインがそのままラスタライズされます。TrueType系では、サイドベアリングの値と座標のサイドベアリングが異なる場合には、その差分をサイドベアリングの値として、座標値に付加します。 垂直方向のベースラインは垂直中心ベースライン(vertical center baseline)で、垂直方向ヘッダ(vhea)に設定します。(おそらくですが、BASEがあれば、アプリケーションはそちらを使用すると思います) 弊社では仮想ボディの中心に設定されます。 (トップ)サイドベアリングと字幅は、垂直方向メトリクス(vmtx)テーブルに設定します。 PS系OpenTypeでは、サイドベアリング(厳密にはサイドベアリングでは無いですが、原点に対する文字の配置のためのデータと言うことで)はVORGテーブルに記述します。無い場合には、垂直方向メトリクス(vmtx)テーブルをアプリケーションは使用すると思います。 次に、字詰めですが、プロポーショナルスペーシングのための字詰を行うpalt値は原点の位置と字幅によって設定します。 カーニングの場合は、一般的に前後の文字に対する前の文字の字幅で設定します。(仕様上は、後ろの文字の原点の位置をずらしても良いことになっています) https://learn.microsoft.com/en-us/typography/opentype/spec/gpos#valueRecord 3.2.の回答でお願いいたします。 4.ご指摘の通りです。 フォントデザイナーは文字間は強く意識してデザインしていますが、行間については、それほど意識はしておりません。行間はアプリケーションの仕様の方が重要になると考えております。そして、文字レイアウトは、フォントのデータ、ミドルウェア(OSを含む)、アプリケーションによって決まるものです。 5.ご存知だとは思いますが、全角を意識してデザインされたフォントばかりでは無いということを確認させていただきました。 よろしくお願いいたします。 差出人: Kobayashi Toshi <binn@k.email.ne.jp> 日付: 火曜日, 2023年10月24日 8:51 宛先: 津田 昭(フォントワークス) <atsuda@fontworks.co.jp>, kida@mac.com <kida@mac.com> CC: public-i18n-japanese@w3.org <public-i18n-japanese@w3.org> 件名: Re: 全角の定義の再提案 津田 様 小林 敏 です. いくつか質問がありますので,よろしくお願いいたします. 1 図3の黒点が文字配置の基準となる.であれば,各文字は,仮想ボディの枠のデータを保持しているのですか,それれとも,字面との関係として黒点の位置が指示されているのですか? 2 文字配置の基準は,行送り方向はベースライン,字詰め方向は文字の先頭ということですが,OpenTypeでは,これしかないのですか,それとも別指定も可能ですか. 3 ベースラインの位置は,OpenTypeでは設定で変更できますか? 4 “文字のサイズと行間が対応するのではなく、文字のサイズの範囲と行間が対応する場合があります。” とありますが,これは,行送りとして指定されたで基準点から基準点まで位置で指定すると行の拡大されず,Wordのようにline-heightで指定された場合,ある大きさを超えると行単位でline-heightが拡大されるという意味ですか. 5 “全角や半角という考え方において、使用するフォントの文字もその考えにそってデザインされていることが前提” 仮想ボディが全角ということでは,それに従ってデザインされた文字は全角といっていいのでは.山本さんのいうように仮想ボディをはみ出すことがあってもよいことでしょう.活字組版でもボディから字面がはみ出した文字はあったのですから. なお,今回の全角の定義の変更では,jlreq-dでは,全角はあくまで長さの基準を意味し,つまり全角アキ,二分アキという意味でしか使用しないで,全角文字や半角文字という意味では使用しない,ということを考えています. atsuda@fontworks.co.jp さんwrote >全角、半角について、少し違和感を感じておりましたので、書類にまとめさせていただきました。 >現状の内容から少しずれますが、確認とさせていただきたく存じます。(少し前に、フォントごとに違うという議論があったので、乗り遅れた感もありますが。)
Received on Tuesday, 24 October 2023 06:26:19 UTC