自動で長体を掛ける

2018年08月21日

InDesignで自動で長体を掛けたい場合があります。例えDMなどの宛名。バリアブル印刷などで宛名を印字する際、用意したスペースよりも長い住所があると、いちいち長体を掛けるのが面倒。誰かスクリプト書いてくれないかなあ。

そんなとき、スクリプトよりも簡単なのが「ジャスティフィケーション」の「グリフの拡大/縮小」を使うこと。ここの最小値に「50%」とか入れておくと、その値まで勝手に長体がかかってくれます。

ただし、そこだけいじっても変化はありません。これが有効になるのは次の条件が必要です。

  • 欧文段落コンポーザまたは多言語対応段落コンポーザを使用すること(単数行ではありません)
  • 両端揃えにすること

そうすることで、文字量に応じて勝手に長体がかかってくれるわけです。めでたし、めでたし。

 

え? あふれていない時は左揃えにしたい? あー、そんな時は、行末にフラッシュスペースを追加しておいてくださいな(あふれる/あふれないにかかわらず)。JavaScriptで入れたい場合は「\u2001」ですよ。

2021年6月23日 追記

コメントをいただきましたので、あふれていないときの処理を追記します。

単語の区切りを示す文字を含まない場合に、あふれていないときの処理が指定できます。

それが、ジャスティフィケーションの設定の「1 単語揃え」です。ここでたとえば「中央揃え」を選んでおくと、図のようにあふれていない場合は中央揃えになります。

そうすると行末にフラッシュスペースを入れる必要はなくなります。

ただし、これには条件があります。それは単語の区切りとなる文字を含んでいないことです。「単語の区切りとなる文字」とは主に半角スペース(U+0020)ですが、その縦組み用字形やイタリック字形なども含まれます。もしかするとそれ以外にも該当する文字があるかもしれません。単語の区切りとなる文字が含まれていると、「1 単語」にはなりませんから両端揃えになってしまいます。

半角スペースが含まれているけれど、あふれていないときに中央揃えをしたい」という場合は、半角スペースを別の文字に変更して「1 単語」の状態にすれば可能です。たとえENスペース(U+2002)。ENスペースは単語の区切りとはみなされないので、これに置換することで可能になります。