なんでやねんDTP・新館

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

合成フォントに躓きました…

この記事は、DTP Advent Calendar 2018の12日目の記事です(最後に残った1枠でございました…)。

いま現在進行中の案件でタテ組みの「合成フォント」を組んだ際にちょっと躓いたので、経緯を纏めておきます(アプリケーションはInDesign CS6です)。

デザイナーさんからのフォーマットは「合成フォント」と書いてはあるものの、「正規表現スタイル」で指定してありました。
段落スタイルの内容は【[\d\l\u\l\ \”\@]+?】に文字サイズを110%拡大した欧文フォントを充てるというモノで、文字揃えは(タテ組みですから)「仮想ボディの中央」で、「1行取り」とされていました。
「1行取り」とする理由は、欧文部分を「110%」にしてありますから、グリッドに収まらずに2行取りとかになってしまうからですね。
※これは(110%とする)文字スタイルの「文字の比率を基準に行の高さを調整」のチェックを外せば特に問題ないでしょう(合成フォントではこの問題は起きないのはご存じの通り)。

この正規表現スタイルを利用して合成フォント風の表現を実現する方法は知ってはいるのですが、ベースラインを弄る場合には文字サイズ毎に文字スタイルを作成する必要があるため私は使うことに二の足を踏んでいました。

また、この支給された正規表現スタイルではピリオドやコンマあるいは一重引用符や閉じ側の二重引用符やダーシ類に欧文書体は適用されませんね。

なので、とりあえず合成フォントを組むことにしました(あらかじめ仮名書体を使うことや、U+02D9を使って文字を作る必要があるということが判っていたこともありますが…)。

  • 2種の引用符とU+2014は「特例文字」で設定しました
  • 「¨」U+00A8は合成フォントの分類では全角記号となっています。

まず第一の躓きは、合成フォントを作成する際にベースラインを弄らなかったこと。
合成フォントで適用できる範囲外のラテン1補助やラテン文字の拡張AおよびBなどの(一部の)文字が出現すると「文字スタイルを適用」…としたのですが、当然ベースラインが微妙に異なりますね(これは判っていたことなのですが…)。


合成フォントは欧文ベースライン揃えの状態から文字サイズを110%としているのに対し、正規表現スタイルで適用した場合は「文字揃え=仮想ボディの中央」の設定に応じて文字の位置が決まります。なので当然の結果ですね。

  • 下はすべて合成フォント
  • 「¨」U+00A8の左右のアキが異なることにも注目してくださいね(上が正常)

まあ、文字スタイルでベースラインを弄ってもいいのですが、それでは本末転倒ですし、括弧内の文字サイズは小さくしたり、後注部分などを含め数種類の文字サイズが出現するため文字スタイルがそれだけ必要になります(ただし、今回の場合はベースラインを弄る必要はなかったのですが…)。
なので、これを解消するために合成フォントの「特例文字」で
ラテン1補助の一部やラテン文字拡張A [\x{0100}-\x{017F}]、ラテン文字拡張B [\x{0180}-\x{024F}]、ギリシャ文字 [\x{03840370}-\x{03FF}]*1などなどを追加し(合成フォントの半角欧文との重複は特に問題なしと理解)、ついでにベースラインを、(「文字揃え=仮想ボディの中央」で110%拡大した場合の位置に揃うように)1.8%上へ移動しました。

これで大丈夫と思いましたが、さらに落とし穴がありました。
画像をご覧いただくと、引用符にはアキ量設定の半角アキが適用されているようなのが判りますね(ギリシャ文字の一部などにも不自然なアキが発生しています)。引用符として使う場合は欧文スペースとセットで使うことが多いでしょうから気づかないのですが、アポストロフィとして使う場合にはアキを削除する必要が出てきますね。
さらに、合成フォントを組んでもギリシャ文字部分はタテ組みでは正立してしまう文字種が多いようです。

結局、合成フォントを組む場合は、少なくとも「引用符」と「ギリシャ文字」は正規表現スタイルで欧文フォントを適用する方がいいということになりました。

結論としては、ベースラインを特に弄る必要がない、あるいは(ベースラインを弄るとしても)使用する文字サイズのバリエーションが少ないのであれば、正規表現スタイルで合成フォント風の表現を実現するのが一番ラクだろうということに……。

ということで…「今更なにを」的なことになってしまいました。

但し、そのように正規表現スタイルで文字サイズを大きくした欧文は、正立させるとその文字サイズの字送り量になってしまいますので、正立させる部分があるなら「合成フォント」を組む方がラクですね。(この部分、20190820追記)

※合成フォントとギリシャ文字の件については、中嶋かをりさんが先日言及されていましたね。→「InDesign上でのギリシャ文字のおかしなふるまい

 

*1:ギリシャ文字拡張 [\x{1F00}-\x{1FFF}]