なんでやねんDTP・新館

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

InDesignの文字組みアキ量設定の4大バグ

いま現在の時点で、私が把握しているInDesignの文字組みアキ量設定のバグと考える挙動について、とにかく修正して欲しいと考えている重要な4点を再度掲載し、Adobeさんの早期の解決を期待したい(すべて不具合レポートは提出済み)。

ここでは文字で表現するにとどめるが、それらの挙動の詳細な検証については、当ブログ内へのリンクを掲げておくので、ご参照いただきたい(説明が下手で理解に苦しむかも知れないが……)。


禁則処理絡みの問題_その1
行末禁則処理において、文字組アキ量設定における約物類の【対:行末】に関する設定の内容に関わらず、対:行末ではなく、【次の文字との最小値】を参照してしまうというバグ

  • 「ぶら下がりあり」の場合、句読点についてはこの問題は解消されるが、括弧類に関してはやはり問題は残る
  • 「追い出し優先」の場合は無関係

デフォルトでは、例えば句読点などの(行中の)対:仮名や対:その他の和字の「最小値=0%」となっている。しかし、「文字組アキ量設定」をカスタマイズして、行中の句点は必ず全角取りあるいは最低でも25%のアキは確保したい……といった場合には困ったことになる。
行長(字数)がある程度ある(調整箇所が十分にある)場合、このバグは顕在化しないが、20字程度の行長だと……。
InDesignはJIS X 4051(句点は全角固定)に準拠という触れ込みだが、デフォルトでは「最小値=50%」とはできず「最小値=0%」……準拠しきれない一因がここにあるような気がしてならない。

※回避策は…対行末の最適値=0%/最大値=50%などとすれば大丈夫(優先度は1)

  • つまり、最小値を最適値に代入する。(元々の最適値と)最大値は全角扱いとなっており、優先度「1」なので全角取りが可能であれば全角取りとなる

※中間値を採らない設定である対行末「0%/50%」(「0%〜50%」ではない)の設定とするのだが、和欧混植の場合には何故か中間値を採ってしまうのを確認した(これも不正な挙動、バグというしかない)(2014.06.07追記)
参照頁→ DTP駆け込み寺掲示板

文字組みアキ量設定の行末把握のバグ?
InDeaignの改行位置判断の基準_00
InDesignの改行位置判断の基準_お手上げです


禁則処理絡みの問題_その2
(ぶら下がりありで)「調整量を優先」あるいは「追い込み優先」を選択時に、(例えば)16字詰めなら16字目にぶら下がり対象文字である句読点が位置した場合、【対:行末】ではなく、【次の文字と最小値】を参照して、追い込み可能なら次の文字を追い込んでしまうというバグ

  • 「ぶら下がりなし」及び「追い出し優先」の場合は無関係

上記のような例の場合、結果的には16字詰めの行長に17字ツメ込むことになり、「文字組アキ量設定」をある程度カスタマイズしないと(誤魔化さないと)、約物に調整が集中する見苦しい組版結果となる。
私の場合、「ぶら下がり=標準」+「調整量を優先」を選択することが多いので、(各行末の2文字を確認し)文字の並びとグリッドを見て問題のある箇所を抽出、その部分に強制改行を入れるようにはしているが……時間的な余裕があればの話で、校正後の字数の増減を考えると……誤魔化すことが多い。

禁則処理のなんでやねん!
「調整量を優先」かつ「ぶら下がり/あり」組版時にみるバグ


上記2点については

「調整量を優先」と「文字組みアキ量設定」_結 にも簡単に……。


優先度の問題
文字組みアキ量設定における優先度の設定がツメ処理に効くのはイイとしても、同様に延ばし処理にも効いてしまうというお粗末なバグ(バグというのは言い過ぎかもしれないが……)

  • デフォルトで設定されている優先度にも問題はあると考えるがここでは不問とする

デフォルト設定では読点は「2」で句点は「0」となっている。この場合、例えば(ツメ組みなどで)行中の設定が「最小値/最適値」ともに「0%」で「最大値=50%」の場合*1、延ばし処理が必要になった場合は「読点」部分に先にアキが割り当てられる。
これに対処するには、優先度の設定を行頭・行末以外を「0」とし、各約物の区切りの強度に応じて(準じてかな?)最小値に差をつける程度のこと位しか出来ないのではないかと考えている*2(私の基本的な設定はそのようにしている)。

「文字組みアキ量設定」の「優先度」


隠されたアキ量の問題(設定のカスタマイズは不可能)
ある種の約物(句読点類/後ろ括弧類/中点類の各々の後)に関しては文字組みアキ量設定における最大値以外に、あらかじめ(隠された)100%分のアキが予約されているというバグ

これも行長(字数)が十分にある場合は目立つことはないが、(延ばし処理の場合には)確実にその影響は受けている。
左右均等割り付けで字間がうまく揃わないのもこれが原因と考えられる(中点類の前後に顕著)。

「文字組みアキ量設定」の最大値と延ばし処理
「文字組みアキ量設定」の最大値と延ばし処理_再

回避方法が見つかった…問題となる句読点類/後ろ括弧類/中点類の各々の後続文字の「文字前のアキ量」を「ベタ」に固定すれば「文字組みアキ量設定」の最大値の設定範囲内で処理されるようだ。
CS4以降なら「正規表現スタイル」で解決できるだろう。また、このバグは約物が連続する部分には発生しない模様。(詳細は未検証)(この部分、2014.02.14及び17追記)

もう一つの回避策が見つかりました。twitterで教えていただいたのですが、…「隠されたアキ量」そのものが「優先度=なし」のレベルにある(もちろん設定項目にはありません)ようなので、その他(目に見える設定項目)をレベル「9」以上に設定すれば「なし」レベルの「隠されたアキ量」が発動することは大きく回避されるだろう…というものです。簡単に検証してみましたが、確かに回避されました(この設定によって他のバグが顕在化しないことを願います…大丈夫でしょ…)。私がデフォルトの優先度を嫌うあまり、別の方法で約物にレベルを設けたことが、「隠されたアキ量」を顕在化させる一因でもあったということですね。
*トゥゲッターに「InDesignの隠されたアキ量」として纏めてありますので、ご参照ください。(この部分、2014.06.05追記)

※もう一つの回避策として、「元とする設定」を「なし」から作成するという方法があります…これも教えていただいたのですが…現在「+DESIGNING」さんのサイトで公開している「ベタA」などはその手順で作成してあります。(「ベタ用_A」などと「用」が付いているのは古いバージョンです)

以上、4点は微妙に絡み合う……これらのバグを解決していただかないことには、正常な(伝統的な)日本語組版は不可能だと言わざるの得ないのです。

*1:「最大値=0%」でも次に挙げる「隠されたアキ量=100%」が割り振られると考えられるが、未検証

*2:(ツメ処理においも延ばし処理においても)最適値との差の比率に応じて処理量が割り振られる