なんでやねんDTP・新館

はてなダイアリーから移行しました…

打ち消し線と下線の基準位置など

InDesignの比較的よく使用される機能に打ち消し線と下線があるが、その設定位置や太さとの関係は曖昧なママで運用されているのではないかと思われるので、より正確な組版を実現する参考として私の理解の範囲で記しておく。

以下は100Qの小塚明朝Rに打ち消し線と下線をデフォルトの設定で付加した状態(カラーのみ変更)。

まず、罫の太さは100Q(25mm)に対して1.25mmなので5%。
オフセットの数値として打ち消し線には「8.333mm」、下線には「3.625mm」が自動で設定されるが、さらに拡大して、その数値の意味を解読してみると……

打ち消し線は文字サイズの1/3に当たる数値がオフセットに自動的にセットされ、文字の正確なセンターよりやや下に、下線は文字サイズの12/100に罫太さの半分をプラスした数値がオフセットの部分に自動的にセットされ、仮想ボディの下端ピッタリに位置することになる。

共にその基準は12/100という数値から判るように、欧文ベースライン位置になっているので、オフセットを「0」にしてやるとピッタリと重なる。

よって、打ち消し線を正確に文字のセンターに入れたければ、文字サイズの38/100の数値をオフセットに設定してやればよい。

  • この場合は「100Q*0.38=38Q=9.5mm」となる

下線の場合は文字サイズ*0.12に罫線の太さの1/2をプラスし、さらに必要ならアキをプラスした数値をオフセットに設定することになる。

欧文ベースライン位置はフォントによって微差があるかもしれないが、一般的には仮想ボディの下端から12/100の位置と考えていいと思う*1
これらの数値の関係は、例えば100Qを20Qに変更した場合にもこの計算式が当てはまるので、ほぼ正しいだろうと思う。検証してみて欲しい。
尚、罫の太さを変更した場合も欧文ベースラインを中心に上下に拡大・縮小されるので計算式は同様。

試しに、欧文ベースライン位置が異なっているのが既に明かな書体(参照)、クレーPro-MとグレコStd-Mを同様にデフォルトの設定で表示してみると、打ち消し線のオフセットは8.333mmで共通、下線はそれぞれ4.25mmと5.075mmが自動で設定される。
結果的には、欧文ベースライン位置は異なっているので、数値が共通であるにも関わらず打ち消し線は揃っておらず、設定がまちまちの下線が揃うということになる。
これは文字揃えを仮想ボディ基準の設定にした場合のこと。欧文ベースラインとした場合は当然、打ち消し線が揃うことになる。(101118追記し、末尾に補足)

つまり、下線設定ではInDesignがフォント内部の欧文ベースラインの情報を元に数値を自動で判別し入力するということのようだ。

ここから逆算すると、InDesignがクレーの欧文ベースライン位置は(仮想ボディ下端から)「4.25−0.625=3.625(14.5/100)」、グレコは「5.075−0.625=4.45(17.8/100)」と判断していることになり、100Q(25mm)のセンターである12.5mmとの差、8.875mm(35.5/100)及び8.05mm(32.2/100)を打ち消し線のオフセット数値に入力することでピッタリと揃う結果となる*2

なお、文字揃えを欧文ベースラインにした場合はデフォルトの設定では以下のようになる。

下はフォントの並びを入れ替えただけだが、先頭のフォントの欧文ベースラインが基準となるようなので、この挙動にも注意が必要*3
※「ベースライン」の表記を「欧文ベースライン」に改めた。(2013.02.20朝)

●以下、20150220追記
線幅は例外もあるようです。下記リンク画像をご参照ください。
線幅の例外
さらに、フォントデザイナーの大曲都市さんから貴重なアドバイスをいただきました。下記ツイートをご参照ください。
参照
もう少し、フォントの内部情報について勉強しなければなりません。

*1:一部に1/8(=12.5/100)としたサイトもあるが……正確ではない

*2:先頭の小塚は9.5mm。打ち消し線が中黒のセンターに位置しないのは気になるが……

*3:仮想ボディ:緑ラインとの関係に注目