先頭文字スタイルとここまでインデント

[7897]先頭文字スタイルとここまでインデント 投稿者:sasa 投稿日:2013/10/29 17:18:48
CS4以降でここまでインデントがずれる場合、特殊文字「結合なし」をここまでインデントの
直前に入れるという回避策が知られていますが、今回それでうまくいかない事例が出てきました。

《あああ》いいいいいい
というような形の文章で《あああ》の部分に先頭文字スタイルで文字スタイルを設定しました。
》といの間にここまでインデントを挿入すると、2行目以降がずれるため、ここまでインデントの前に
「結合なし」を入れると、《直後のあに揃ってしまいます。
これは先頭文字スタイルではなく、正規表現スタイルで設定しても同様でした。
制御文字を確認すると、「結合なし」は》の後ろではなく、《あああ》の中心付近に表示されています。

先頭文字スタイルや正規表現スタイルを設定せず、《あああ》に手動で文字スタイルを設定した場合は
当然ながら「結合なし」+ここまでインデントで問題がありません。

確認した環境はWindows7のCS6(8.0.2)ですが、簡単なテストではCS4及びCS5.5でも同じ挙動でした。
CCは環境がなく確認できません。
添付画像をご覧ください。
WindowsXPのInDesignCS4でテストしました。

先頭文字スタイルは


含む
で設定しました。

>》といの間にここまでインデントを挿入すると、
の部分は対策を行って揃えました。

上から6行目にわざとらしく中黒を打ち込み、
中黒直後に「ここまでインデント」をいれて、
対策はしていないので、7行目がズレています。
おなじ段落内なので、文字組アキ量設定は同じです。

OSの違いの影響の可能性もあるかもしれませんので、
後ほどテストして結果を書き込ませていただきます。

attached image
添付画像をご覧ください。
WindowsXPのInDesignCS6でテストしました。

やはり、先頭文字スタイルでは、
CS4と同様に再現できませんでした。
正規表現スタイルでも同様でした。

文字組アキ量設定は「行末約物半角」を使用してテストしました。
先頭文字スタイルの設定は、前回のレスと同じです。
正規表現スタイルは
^\x{300A}[^\x{300A}]+\x{300B}
のpatternを設定しました。

不具合の再現できる設定内容が知りたいと思います。
よろしくお願いいたします。

attached image
[7904]Re: 先頭文字スタイルとここまでインデント 投稿者:マサ某 投稿日:2013/10/30 09:47:05
うちでは再現してしまいました(Mac OS X 10.8.5 InDesign CS5.5(7.5.3))。
先頭文字スタイル、正規表現スタイルだけでなく、
手動で《あああ》に文字スタイルをあてたものでも再現します。

で、手動で文字スタイルをあてる際に、
《あああ》だけでなく、《あああ》から「ここまでインデント」まで含めて選択してみると、
意図通りに「いいいいいい」の前で揃うようになりました。

で、先頭文字スタイルでも「》」で指定するのではなく、
指定する文字に「ここまでインデント」をコピー&ペーストすれば大丈夫でした。
(僕は手動でコピーしましたが、「^i」でもいける……のかな?)
正規表現でも同様に、「《」から「》」までの文字列を指定するのではなく、
「ここまでインデント」までを指定すればいけるかと思います。

ちなみにですが、ちゃんと揃わない状況になっている際には、
《あああ》の「》」の前にカーソルを置いて、左に1文字移動しようとすると、
「《」の後ろまで一気にジャンプしてしまうようになっています(逆も同じ)。
なんか気持ち悪いですね……。
[7905]Re: 先頭文字スタイルとここまでインデント 投稿者:マサ某 投稿日:2013/10/30 10:18:01
「》」と「ここまでインデント」の間に「結合なし」を入れないと、
インデントが少しズレますが、2行以降は下がるようです。
(よくある感じで、希望位置のちょっと左側に揃ってる)
「結合なし」を入れると、とたんに「《」直後の「あ」に揃ってしまいます
「結合なし」の挙動がつかめない感じ……でしょうか。

ちなみに、文字組アキ量設定ですが、「行末約物半角」にしているとsasaさんが提示されてる感じになりますが、
「約物全角」または「約物半角」にすると、さらに悲惨な感じになります。
[7906]Re: 先頭文字スタイルとここまでインデント 投稿者:マサ某 投稿日:2013/10/30 11:20:59
ぱらぱらとすみません……。

要は、閉じカッコ類と「結合なし」のコンビネーションに難があるということのようなので、
「》」と「結合なし」の間に半角スペース等を入れてやると、
「いいい」の前で揃うようになるようです。

もとの文章と比べて、見た目的に「》」と「いいい」の間隔が変わってしまいますので、
バッドノウハウっぽい感じもしますが、
検索・置換で処理できるでしょうし(ライターが別におられるなら、そちらにおまかせしても?)、
「ここまでインデント」を切り換えの文字に指定するよりは、ちょっぴり手軽な気がします。
[7907]Re: 先頭文字スタイルとここまでインデント 投稿者:sasa 投稿日:2013/10/30 12:19:16
流星光輝さん、マサ某さん、ご確認いただきありがとうございます。

流星光輝さんの環境では再現されないということで、OSの関係なのか
それともCS4, 5.5, 6が併存している環境だからかと考えていると、
マサ某さんの報告が。
自分の環境のみではないということは確認できましたが、安心して
いいものやら...

マサ某さんが対応策も含めてきれいにまとめておられるので、
蛇足になりますが、発生しない環境の方もおられるようですし、発生した状態の
スクリーンショットを貼っておきます。
上がここまでインデントのみの状態。(Adobeさん、いい加減直してください)
真ん中がここまでインデントの前に結合なしを挿入した状態。
下がマサ某さんがおっしゃっていた文字組アキ量設定を「約物半角」にした
状態です。

attached image
遅くなりましたが……。

「ここまでインデント」の折り返し改行後の位置のズレは、「ここまでインデント」の直前の文字の「文字組みアキ量設定」における、【行中の最適値】と【対行末の最適値】が異なっていることにより引き起こされると考えられます。
※プリセットの「行末約物全角/半角」では発生しないでしょう。

で、「結合なし」を「ここまでインデント」の直前に挿入する以外では、「ここまでインデント」直前の文字の後ろアキを固定してあげれば解消されることまでは検証済みです。
参照→http://d.hatena.ne.jp/works014/20120126

なので、作例の場合は「》」の後ろアキを正規表現スタイルなどで「二分アキ」などに設定してあげれば解決するハズです。
私の環境では大丈夫でした。
[7910]Re: 先頭文字スタイルとここまでインデント 投稿者:マサ某 投稿日:2013/10/30 16:58:08
アキ量設定を「行末受け約物全角 / 半角」にする、
あるいは、「ここまでインデント」の前の文字を「二分アキ」にする、という設定だと、
切りかえが「》」の場合はバッチリなんですけど、
たとえば半角スペースだと上手くいかなくないでしょうか。
「ここまでインデント文字」を切り換え条件にするほうが、汎用性がある気がします。
もちろん、ケースバイケースでいろいろやればいい、という気もしますけど。

いちおう、ざっくり図にまとめてみました。
どっか変なことしてるかもしれませんけど(その可能性はすごく高いけど)、
またご指摘くださいまし。

attached image
>マサ某さま
基本的にベタ組みの日本語本文と仮定してですが、(どんな用途にせよ)半角スペースを使用することが適切とはとても思えません。ベタ組みの前提が否定されますから。
また、半角スペースが行末吸収の対象となるからそういう挙動になると考えます。
私からは、以上です。
[7912]Re: 先頭文字スタイルとここまでインデント 投稿者:マサ某 投稿日:2013/10/30 17:53:38
ああ、そうかー、なるほどです。
たしかに、全角スペースだと問題くいい感じになりそうでした。
ありがとうございます。
[7914]Re: 先頭文字スタイルとここまでインデント 投稿者:sasa 投稿日:2013/10/31 12:54:46
works14さん、返信ありがとうございます。

約物の後ろのアキを二分にすることでしのげるのは分かっていたはずなんですが、
その後発覚した「全角スペースを行末吸収」に関するバグのために、
いつの間にか、ここまでインデントがずれたら結合なしを挿入するという考えになっており、
その時々で対応を考えるという当たり前のことができていなったようです。

それから、マサ某さん、長らくおつきあいいただきありがとうございました。
>「全角スペースを行末吸収」に関するバグ
は「仕様」と考えるべきですね。

「全角/半角」で発生しないのは「行中」と「対行末」の最適値が「50%」で同一の設定になっているから。
「全角スペースを行末吸収」もスペースがないモノと考えてしまうワケですから無視して揃えられると考えれば理屈は合っています。
もちろん、半角スペースも同様……
[7923]Re: 先頭文字スタイルとここまでインデント 投稿者:sasa 投稿日:2013/11/01 17:16:41
works014さん、補足説明ありがとうございます。
(前回はお名前を間違っていました。大変失礼しました。)

「全角スペースを行末吸収」時のずれは仕様ですか...
そもそも
>「ここまでインデント」の折り返し改行後の位置のズレは、「ここまでインデント」の直前の文字の
>「文字組みアキ量設定」における、【行中の最適値】と【対行末の最適値】が異なっていることにより
>引き起こされると考えられます。
というのが挙動として妥当なのかどうか私には判断できませんが、仕様だとすると、これ以降も
「直る」ことは期待薄なのでしょうか。
>sasaさん
私の推測でしかありませんが……

例えば先に紹介したリンク先に、ぶら下がり「標準」や「強制」の場合も揃わない例も挙げています。
アキ量の「対行末」の設定が使われる件や「全角スペースの行末吸収」・半角スペース(基本的に行末吸収)なども含め、すべて「行末」と何らかの関係がありますね。
つまり「ここまでインデント」の入った位置を座標として捉えるアルゴリズムの中に、直前の文字の「対行末」との関係(設定)が関連していると考えられます。
この辺りの「仕様」を根本的に変更しない限り、「直る」ことはないでしょうね。
[7928]Re: 先頭文字スタイルとここまでインデント 投稿者:sasa 投稿日:2013/11/05 12:43:22
work014さん、丁寧にありがとうございます。

今回のお話で今までにない知見を得ることができました。
ともあれ、Adobe的な「仕様」はともかく、ユーザーにとってはここまでインデントが
正常に機能していない(と見える)のは変わりないわけですので、Adobeになんとか
対処して欲しいと思います。
[7929]Re: 先頭文字スタイルとここまでインデント 投稿者:かたやなぎ 投稿日:2013/11/05 13:52:10
触れられていないようなのでお邪魔します…
CS5/10.6.8です。
「結合なし」にも文字スタイルが当たるようにすれば揃うので,場合によってはその方法で回避すればいいかなぁ,と思いました。

先頭=> 「ここまでインデント」の文字   区切る
正規表現=> ^.+(》|』)~j
…みたいな。外してたらスンマセン
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)