なんでやねんDTP・新館

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

「ここまでインデント」のバグは解消されていないよ!

InDesign CC(2014)で解消された*1と盛んに喧伝されている感のある「ここまでインデント」のバグですが、解消されたと理解しては大きな罠に陥ることになります。
より正確には【「日本語段落コンポーザー」を使用した場合に限っては】という但し書きが必要です。

【ここ重要!!】
2015.01.28の「InDesign CS6 8.1.0 アップデート」でこの問題は解消されました。
但し、CS6のアップデートですよ! CC以降は未だ日本語単数行コンポーザーは無理!
リリースノート

この記事内容は、あくまでも執筆当時のものです(もちろん、当ブログ記事全体にいえることでもありますが…)。
この後のバージョンアップなどでかなり修正されているという話も聞きますので、今後さらに検証が必要だと考えていますが、なかなか時間が……。
その辺りをお含みおきくださり、ご自身の環境でご確認くださいませ。
(何でもそうですね…要は「鵜呑みにしないこと」です)
(この部分、20170209追記

以下に画像を掲げて説明しておきます。

「ここまでインデント」のバグについては以下をご参照ください。
togetterの纏め→InDesignの「ここまでインデント」はDKIか
このブログ内→今が旬の「ここまでインデント」


知られている「ここまでインデント」のバグが発生する要因は……

  • 「文字組みアキ量設定」の行末の最適値と行中の最適値が異なる場合…例えば「行末約物半角」
  • 「ぶら下がり」が「標準」あるいは「強制」の場合
  • 「全角スペースを行末吸収」をONにしている場合
  • 半角スペースは否応なく行末吸収されますので上記と同様

などで、それぞれの文字種(つまり、行末と行中の扱いが異なる文字種が「ここまでインデント」文字の直前にある場合に、2行目の始まり位置が正常にならないというモノでした。


InDesign CC(2014)で再現してみますと……



確かに「日本語段落コンポーザー」では正常な位置から2行目が始まっていますので、一見したところバグは見事に解消されたかのように見えます。


しかし、これを「日本語単数行コンポーザー」にすると……



以前の状態と同様、なんら不具合は解消されていません。


もちろん「行末受け約物全角/半角」にしたところで……



「ぶら下がり」と「全角スペースを行末吸収」に関わる部分は正常にはなりません(従来通り)。


私の知る限り、日本語文字組版の中で一般的に採用されているのは「日本語単数行コンポーザー」で、「日本語段落コンポーザー」を採用するのは和欧混植や英数字が多く、(それらが分割禁止となる関係で)行毎の文字数が大きく異なる場合などに限られるようです(が、何故かデフォルト…)。
そのような現状を考えると、「ここまでインデント」のバグはまだまだ解消されたとはいえず、(使用するコンポーザーによっては)従来同様の処理*2が必要となってきます。
ご注意ください。

        • -

(以下、公開当日追記
なお、「日本語段落コンポーザー」でも「ここまでインデント」直前の文字が「英数字」(欧文用文字)であれば、2行目は揃いません。



これは和欧文間隔が、「後続の和字の属性として(文字の前にアキが)発生」するためだと思われます。


とりあえずの解決策としては、後続の和字に対して「文字の前アキ」で「ベタ=アキなし」とし、「ここまでインデント」直前の文字(英数字)の後アキを固定することで解決できます(ここでは「四分アキ」としました)*3



蛇足ながら…「ここまでインデント」の前の部分は、通常では「文字組みアキ量設定」の最適値が適用された状態となります。

  • ズレが発生する原因を簡単にいえば、(折り返し後の)2行目の行頭位置が「ここまでインデント」直前の文字の「対行末」の設定によって決定されるのに対し、「ここまでインデント」直後の文字の位置は、直前の文字との「行中」の設定によるということにあります。

*1:正確にはCCのアップデータから

*2:従来の処理=冒頭のリンク先にも記されていますが、「ここまでインデント」の前に「結合なし」を挿入

*3:この解決方法=「ここまでインデント」直前の文字の後アキを固定する方法は他のケースでもある程度有効です