なんでやねんDTP・新館

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

InDeaignの改行位置判断の基準_00

記事(及び画像)中で【行末約物】の扱いについて「全角/半角浮動」「全角/半角(浮動)」などと表記してあるものは「状況により全角/半角の二者択一」という意味であり、決して中間値を採るという意味ではありません。私の(用語的な)理解不足による不適切な表記に他なりません。ご寛恕くださいませ。
InDesignの文字組みアキ量設定の基本設定画面の「50%(0%〜50%)」などは「最適/50%、最小/0%、最大/50%」ということで中間値を許容します。しかし、行末設定に現れる「50%/0%」は「最適50%/最小0%」、「0%/50%」は「最適0%/最大50%」の二択で中間値は採りません。
※「〜」の有無で見分ければいいでしょう(もちろん、「固定」は固定)。


これまでの記事で、InDesignが改行位置を判断・決定する部分にバグがあるのではないか? と再三にわたり疑問を呈してきた。
乗りかかった舟でもあり、性格的にも粘着質(巳年のオヂンです)なので、この機会にと、InDesignが改行位置を判断・決定するアルゴリズムの徹底的な分析を試みようとした。


まずは「文字組みアキ量設定」だが、デフォルトで用意されている「行末受け約物全角/半角」「行末約物半角」「(行末)約物全角」をベースに以下の通り計9種を用意した(基本設定のみで可)。

  • 行末受け約物全角/半角(行中浮動/行末浮動二択)(デフォルト)
  • +行中句読点全角固定(行中全角/行末浮動二択)(test01)
  • +行中句読点半角固定(行中半角/行末浮動二択)(test02)
  • 行末約物半角(行中浮動/行末半角)(デフォルト)
  • +行中句読点全角固定(行中全角/行末半角)(test03)
  • +行中句読点半角固定(行中半角/行末半角)(test04)
  • (行末)約物全角(行中浮動/行末全角)(デフォルト)*1
  • +行中句読点全角固定(行中全角/行末全角)(test05)
  • +行中句読点半角固定(行中半角/行末全角)(test06)*2

※つまり、文字幅を固定する場合は、行末に関しては括弧類・中点類も固定されるが、行中は句読点のみを固定する(括弧類・中点類は浮動幅)こととし、判断を容易にしているということ*3


一方、密接に絡んでくるハズの、「ぶら下がり方法」3種と「禁則調整方式」4種の組み合わせでは以下の12種が考えられる。

  • 「ぶら下がり/なし」+「追い込み優先」
  • 「ぶらさがり/なし」+「追い出し優先」
  • 「ぶらさがり/なし」+「追い出しのみ」
  • 「ぶらさがり/なし」+「調整量を優先」
  • 「ぶら下がり/標準」+「追い込み優先」
  • 「ぶらさがり/標準」+「追い出し優先」
  • 「ぶらさがり/標準」+「追い出しのみ」
  • 「ぶらさがり/標準」+「調整量を優先」
  • 「ぶら下がり/強制」+「追い込み優先」
  • 「ぶらさがり/強制」+「追い出し優先」
  • 「ぶらさがり/強制」+「追い出しのみ」
  • 「ぶらさがり/強制」+「調整量を優先」


対象とする文字列は、行末あるいは行頭に読点が配置されるように以下の3例で、各々行中に括弧類を適宜配置し全角分(100%)以上の十分な調整可能値を確保したモノと、調整可能箇所がないモノを用意した*4。(日本語単数行コンポーザー使用)。



結局、上の文字列(6段落)に対し、例えば「ぶら下がり/なし+追い込み優先」で9種の文字組みアキ量設定を適用することになり、



これが12種類。12*9で108種、108種*6段落で計648段落・1,296行に及ぶことになり、作成自体は簡単なモノだが、ブログに掲載するには無理がある量になってしまう……
で、記事としては不可解な挙動を起こす部分とその反証となる部分のみを採り上げて、その分析を試みる予定だったが……。



冷静に考えれば当然の結果かも知れないが、意気込んだ割には結果は意外にあっさりしたモノで、
「ぶら下がり/標準」及び「ぶら下がり/強制」との組み合わせでは、例の「調整量を優先」で行中に調整可能量が十分にある場合に1字追い込んでしまう例のバグしか顕在化せず、
「ぶら下がり/なし」の組み合わせでは、「行末丁度に収まっているモノ」に不可解な挙動が集中するのみだった。



なので、「行末丁度に収まっているモノ」の文字列に「ぶら下がり/なし」の「禁則調整方式」別に9種の「文字組みアキ量設定」を適用した結果を元に考えてみることにしたのだが……ややこしくて面白い、けれど手に余りそうで……どうアプローチするか未だ検討中。


上記のように、全体を俯瞰した印象では、「ぶら下がり/なし」より「ぶら下がり/あり」の方が意図した通り素直に組み上がっていると感じられた(例のバグを除いては)。


とりあえず、使用したCS3の生データとそのpdfを置いておくので、ご興味のある方はどうぞ。(MacOSX標準zip) → nandeyanen090914.zip 直 【アイコンをクリック】

  • その設定から予想される結果とは違うモノにを付してあるつもり(は大丈夫)。
  • 設定・適用ミスなどありましたら、コメント欄でツッコミをお願いします。但し、ヤッツケ仕事で作成しましたので、データ作成方法などについてのツッコミはご勘弁を。
  • 末尾4頁に「行末丁度に収まっているモノ」の文字列に「ぶら下がり/なし」の「禁則調整方式」別に9種の「文字組みアキ量設定」を適用した結果を抽出して集合させてある。


まずは、予告のつもりだが……お茶を濁すだけに終わるかも知れない。

*1:この場合、段落先頭始め括弧は手動で半角に固定した。以下同

*2:一般的には考えられない組み合わせだが、そこは検証用として……

*3:検証には無関係だが、行中句読点全角固定の場合は連続約物の句読点の部分も全角固定としたが、半角固定の場合は最小0%/最適50%のママとした

*4:このようなケースが混在することは十分起こり得る