なんでやねんDTP・新館

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

異級数混植のフレーム先頭行を制御する

ごく一般的な段落内文字サイズが一定の場合とくに困る事はないが、異級数混植の場合で、フレームの先頭にその異級数部分が来ると困ったことになる。
その簡単な解決方法が判ったので報告しておく。


●フレームグリッドの場合
※グリッド揃え・文字揃えとも同様の設定


たとえば、16Q/行送り28Hの場合で、普通の一定サイズの文字列ならなんら問題はない……



ところが欧文部分を24Qに変更すると……



このような場合、従来は先頭行を1行取りとして解決していた。



だが、テキストフレーム設定のこの部分、デフォルトの設定を……



右のように設定を「固定」に変更するだけ(数値は「0mm」ママ)で……



すんなりと解決できる。

  • フレームグリッドの持つベースライン(揃えの基準線)に固定するということだろうと推測する
  • 欧文ベースラインはフレームグリッド設定の書体に依存する(一般的には仮想ボディの下端から-120/1000)


これは……

冷静に考えると…フレームグリッドで1行目にグリッド設定より大きな文字がきた場合に、2行取りになったり1行目が空いたりする原因は…テキストフレーム設定の「先頭のベースライン位置」が「仮想ボディの高さ」になっているから…ということ…仮想ボディがグリッドより大きいのだから当然の結果…

と言えるのだろう。(この部分追記_2011.11.05…元は公開当日のtwitter上での呟き)


ものかのさんからtwittter上で“オブジェクトスタイルの[基本グリッド]で「固定」にすれば、それがデフォルトになりますね”とのコメントをいただき、確認した。(公開当日15:24_追記*1


●テキストフレームの場合
※行送りの基準位置を含め各種揃えは同様の設定



同様に欧文部分を24Qに変更後は……



先頭行の最大文字サイズに縛られてしまうのだが……
それぞれ以下の様にテキストフレームの設定を変更すると……
(カスタムベースライン)グリッド揃えを使用するのが肝腎


文字揃え・グリッド揃えおよび行送りの基準位置が仮想ボディの中央


  • 16Q=4mmの中央なので「2mm」に設定


文字揃え・グリッド揃えおよび行送りの基準位置が仮想ボディの下


  • 16Q=4mmに設定


文字揃え・グリッド揃えおよび行送りの基準位置が欧文ベースライン


  • 16Q*0.88=14.08Q=3.52mmに設定(一般的には0.88で大丈夫)
  • 上の三つの画像の先頭ベースライン位置にそれぞれ別の数値を入れてあるが「0mm」でも大丈夫なハズ

※この部分、難しく考えすぎのようです。グリッド揃えを使用せずに、先頭ベースライン位置の設定だけでいいような感じ…未検証(なので、以降もテキストフレームに関しては…)
2017.01.13追記


つまり、異級数混植の場合のフレーム内の1行目を固定するには……

            • -

フレームグリッドの場合は「テキストフレーム設定/ベースラインオプション」をオフセット部分の設定「仮想ボディの高さ」を「固定」に変更(数値は「0mm」ママで大丈夫)
テキストフレームの場合は「テキストフレーム設定/ベースラインオプション」をオフセット部分の設定「仮想ボディの高さ」を「固定」に変更して適切な数値を入力し、さらにカスタムベースライングリッドも同様に設定すればイイ……
テキストフレームの場合は「テキストフレーム設定/ベースラインオプション」をオフセット部分の設定「仮想ボディの高さ」を「固定」に変更(数値は「0mm」ママで大丈夫)、さらにカスタムベースライングリッドを適切設定すればイイ……

            • -

ということになる。


上のテキストフレームの場合の対処の部分:“「固定」に変更して適切な数値を入力”の部分は“数値は「0mm」ママで大丈夫”なようだ(もちろん数値が適切であれば不整合はない)。カスタムベースライングリッドさえ適切に設定すれば……検証不足で申し訳ない。(公開当日15:39_追記
上記の部分、少し私に誤解があったようだ。「固定」で入力する数値は仮想ボディの下端の位置を設定するモノのようなので、「仮想ボディの下揃え」の場合はこの数値を基本サイズに設定すれば、カスタムベースラインの設定は不要だろうし、他の揃えではカスタムベースラインが揃えの基準になるので、ここの設定自体が不要ということになるだろう。但し未検証(この段落、2012.01.26追記
なお、先頭行の最大文字サイズの(仮想)ボディの下端が来るべき位置を計算できればベースライングリッド揃えを使わなくても、「固定」に数値設定すれば大丈夫(この段落、2017.01.13追記


「ベースライン」というのは「欧文ベースライン」に限ったことではなく、「揃えの基準ライン」と考えるのが理解の手助けになると思う。


以下、2011.11.05追記
なお、上記の作例のように単純な処理の場合は、合成フォントで予め欧文を150%(24÷16*100=150)に設定したモノを作成しておけば(「テキストフレーム設定/ベースラインオプション」はデフォルトのママ)コト足りるし、「文字の比率を基準に行の高さを調整」にチェックが入っていないテキストフレームなら、目的の文字を文字パネルで%指定で拡大しても大丈夫。
twitter上で @ さんからご提言いただいた。なおこのネタ自体も最初のきっかけは @nyobochan さんの呟きから……)

*1:正直に白状すれば…今まであまり触ったことがないのです