Re: 行の配置の説明

Nat McCully 様

 小林 敏 です.

コメント,ありがとうございます.参考になります.

行間は,たしかに実装上は問題があるかと思いますが,ここでは説明を主に考えてのことで,8日に会議でも実装には踏み込まないという方向で議論されています.

原点(行送りの基準点)は,欧文ベースラインが多いんだ.計算が大変そうと思うが,原点から文字サイズに応じたボディの大きさを計算すれば,それほどむつかしくないんだ.

  Nat McCully さんwrote

>ナットです。
>
>敏先生のご提案の方向性に賛同いたします。行間を基本とした説明は直感的であり、
>特に異なるサイズが混在する場合に明快です。
>レイアウトエンジンの実装の観点から、いくつか補足させてください。
>1. フォント原点とボディ端の関係
>デジタルフォントでは、字形の配置はフォント原点(欧文ベースラインに相当)を基
>準に行われます。日本語フォントでは、この原点はボディ(全角枠)の下端から約12%
>内側に位置しています。つまり、レイアウトエンジンが特別な処理を行わない場合、
>行の位置や行間距離はすべてこの12%の位置を基準に計算されることになります。同一
>サイズであれば問題ありませんが、異なるサイズが混在すると、ボディ間の実際の間
>隔が意図した値からずれます。仕様においては、測定の基準点がボディ端であること
>を明示する必要があると考えます。
>2. 行間から行位置への変換
>行送り(原点間距離)であれば、行位置は単純に前行の原点+行送りで求められます。
>一方、行間(ボディ間距離)から行位置を求めるには、前行のボディ下端までの距離
>(原点から約12%)と、次行のボディ上端から原点までの距離(約88%)を加算する必
>要があります。サイズが異なる場合、これらの値は行ごとに異なるため、次の行のサ
>イズが判明するまで行位置を確定できません。
>3. UIにおける挙動の違い
>現在、多くのアプリケーションでは行送りをUIに表示しています。行送りの場合、文
>字サイズを変更しても行位置は変わらず、ボディ間の隙間が変化するだけです。もし
>行間をUIで使用した場合、文字サイズの変更によって行間の値は変わらないにもかか
>わらず、後続の行位置がすべて移動することになります。ユーザーにとっては予期し
>ない挙動となる可能性があります。
>以上は仕様の方向性に対する異論ではなく、説明の中で実装との関係に触れる際に考
>慮いただければという点です。
>
>
>以上です。

Received on Thursday, 9 April 2026 04:11:03 UTC