なんでやねんDTP・新館

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

「分離禁止文字」と「禁則処理方式」

先にお知らせした INDD 2012 Tokyo で使用するデモデータを作成した際に、少し疑問に思った部分を検証してみた。


それは調整可能箇所が十分あるにも関わらず、「禁則処理方式=追い込み優先」でも3点リーダーが追い込み処理不可能だったということ。
段落パネルの禁則の設定を開くと判るが「分離禁止文字」としては、3点リーダー(U+2026)と2点リーダー(U+2025)、そしてEMダッシュ(U+2014)が登録されている。当然、行末と行頭に分離分割して配置することは不可*1となり、本来は設定によって追い込み処理がされたり追い出し処理がされる。


で、先のデモデータでは3点リーダーが追い込み優先でも追い込み処理がされず、当日は「何でか判らんけどこうなります」と(適当に言葉を誤魔化して)、「調整量を優先」の場合だけ追い込み処理がされることを説明していた。


少し時間ができたので、3点リーダー(U+2026)と2点リーダー(U+2025)、そしてEMダッシュ(U+2014)とホリゾンタルバー(U+2015)を対象に、調整可能箇所を十分に確保した作例で、色々と設定の組み合わせを変えて、少し検証してみた(日本語単数行コンポーザー使用)。



それぞれ、情報パネルでは「文字種:分離禁止文字」と表示されるが、U+2015は「分離禁止文字」には登録されていない……


まず、「追い込み優先+強い禁則」の場合



  • 何故かEMダッシュ(U+2014)のみが追い込み処理されている
  • 条件は同じハズだが、3点リーダー(U+2026)と2点リーダー(U+2025)は追い出し処理
  • 「強い禁則」にはEMダッシュ(U+2014)が【行頭禁則文字】として登録されているので前行に追い込まざるを得ない


次に、「追い込み優先+弱い禁則」の場合



  • EMダッシュ(U+2014)も追い込みはされず、追い出し処理
  • 強い禁則/弱い禁則とどういう関係があるのか不明
  • 上の2例ともホリゾンタルバー(U+2015)に関しては当然の結果


最後に、「調整量を優先」でU+2015を「分離禁止文字」に追加した設定の場合



  • やっと望む結果が得られた


いずれにしても、追い込み優先で「分離禁止文字」が追い込み処理されないという挙動は、限りなくバグに近いのではないかと思っている。


なお、INDD 2012 Tokyo は、第2回目として関西での年内開催が予定されいる。
その確実な実現のために、(リンクから辿って)事前メールアドレス登録・アンケートにご協力いただきたい。

*1:この禁則は本来の意味では【分割禁止】…分離禁止文字としてはその文字間には(行長調整の為の)アキを入れたり改行を入れたりすることが不可…分離禁止文字は分割禁止文字となるが、その逆は必ずしもそうではない