InDesignのオプティカル・カーニング

この機能は現在欧文だけを想定しており、和文には対応していません。欧文の場合、自動的に文字と文字との間隔を調整します。

  • まず、基本の確認。プロポーショナルの欧文の場合、「メトリクス」はフォントが内部的に保持しているペアカーニング情報('kern'テーブル)に基づいて文字間を調整する。下図の「Type」の例では「Ty」の組み合わせのみが、メトリクス・カーニングの対象となる。一方「オプティカル」は、フォント内部の数値を参照するのではなく、文字の形に基づいて、InDesignがカーニング値を決定する。


  • 和文組版の場合、仮名や漢字は全角が基準となる。OpenType機能の「プロポーショナルメトリクス」は、フォントが内部的に保持しているプロポーショナル文字幅情報('palt'テーブル)に基づいて文字間を調整する。「メトリクス」は、この'palt'に加え、ペアカーニング情報('kern'テーブル)も参照する。「オプティカル」は全角をベースとして文字間を調整するので、最初の文字の左のアキはそのまま残る(下図)。


  • オプティカル」と「プロポーショナルメトリクス」の併用は、おすすめできない。「プロポーショナルメトリクス」によって文字幅がプロポーショナルとなるにもかかわらず、「オプティカル」では全角ベースのカーニング(下図の例では-355)が適用されてしまうからである。


  • 「メトリクス」では、(ヒラギノの場合)句点・読点・括弧類などは半角(幅500)が基準となる。「オプティカル」では、「文字組み:あり」の場合に「半角」という概念が介入してくる。以下の図で「文字組み:あり」の場合の「文字組み」は、約物の前後にアキを入れないものとする。


  • 上図の「、く」の例では文字組みの有無による調整量の違いはないが、下図の「、あ」の例では違いが生じている。「オプティカル」で「文字組み:あり」の場合、「読点と後続する文字の間の(文字の形による)調整量が500に満たない場合、カーニング値を-500とする」というプロセスが付加されているものと思われる。


  • 下図は、「オプティカル」で最も目立つ問題である「始め括弧類の重なり」のロジックを示したもの。「文字組み:あり」では、括弧が半角取りなのに、調整量が「文字組み:なし」の場合と変わっていない。


  • オプティカル」で「文字組み:あり」の場合の中黒は、後続する文字を入力すると、位置が変化する。詳しくは(アルゴリズムについては推測だが)下図のとおり。おそらくこれはバグではなく、「オプティカル」と「文字組み」の折り合いをつけるべくローカライズした結果だろう。ただし、ロジックはなんだかあやしい*1


  • 「文字の形による文字間の調整」であるオプティカル・カーニングは、基本的に、文字を適切に組んだあとの仕上げとして実行すべきものだろう。ところがInDesignの「オプティカル」では、「文字組み:なし」の状態における調整量がベースとなり、「文字組み:あり」の場合、事後的になんとかしようとしている点に、そもそも無理がある。
  • もちろん、「オプティカル」が中核的な機能として実装されており、「文字組み」の実装のほうはローカライゼーションであるというような事情があるのだろうし、無理を承知でローカライズを試みたらやっぱりうまくいかなくて「和文には対応していません」ということになったのだろうけれど。

*1:中黒と先行するの文字の間のカーニング値を算出する式に変数yを使っているあたり。