前回はこちら。
その前の コピペの罠ァ 3 でテキスト絡みについてやったんですが、ひとつ書き漏らしがあって。
それなりの量になってしまったので追記ではなくこちらで。
今回の素材。ここからマゼンタのテキストを削除してテスト素材とします。

こんなかんじでストーリーの最後の段落で改段落しちゃってるの、自分では好きでないので基本的に削除しちゃってるんですが、ヨソから来たデータだとしょっちゅう見かけます。

このスミ文字を「書式なしでペースト」で上書きしようと思います。
ついでに無駄な改段落文字も消しちゃおう、という意思でテキストを選択すると、こうですね。

では「書式なしでペースト」はい、どん。
うおお、お前(属性)どっから来た!

考察の前に、他のパターンでテストをやりきっちゃいましょう。
次は、改段落文字を残して選択した場合。

はい、どん。
おっ、いいかんじ、というかふつうだ。このあとどうしても気になるなら改段落文字はあらためて削除。

最後のテスト。元のテキストの先頭を1文字残して選択。
これ、自分含めQuark時代にやってる人けっこういたような。

どん。まあふつう。このあと、残しておいた1文字目を忘れずに削除しないといけない。
なんだかとっても危なっかしい。実際たまにやらかすのでもうやってません。

では実際なにが起こっているのか
テキストを選択して上書きペーストした場合、
「置換」ではなく「選択テキストを削除してからペースト」が行われている
という認識でおそらく説明がつきます。
置換とどう違うの
ためしに最初の選択範囲と同じテキストが対象になるように検索置換を実行すると、当初の期待どおりの結果となるです。
スクショの検索文字列を参考に、手元でもやってみてね。

削除してからの場合、改段落文字が削除されると、その前後の段落は所属スタイルのマージが行われます。くっつきます。
見た目の属性は残っていてもマージ先の段落スタイルからオーバーライドした状態となるわけです。

これを軸に考えた場合、もろもろ合点がいくことになります。
*段落をまるごと選択した場合、段落そのものがなくなり、後続段落が繰り上げでペースト対象となる
*改段落文字を残して選択した場合、削除とペーストはその段落内で完結するので後続段落の影響を受けない
*先頭の文字を残して選択した場合、後続段落は削除対象となり,選択した段落だけが生き残りペースト対象となる
要は、選択テキストを削除したあと、各種パネルが指す属性がペースト後の属性となるかんじです。

ほんとはちがうんですが、いったんここまでで納得してください。
そのほうが絶対に覚えやすいので。
ほんとはそうじゃないみたい
こっからが沼です。罠です。
「空の後続段落」、実はそんなもん存在しません(なんだってーMMR)。
検索置換ウィンドウで段落スタイルを検索するとナイナイって言われます。
検索置換に関しては原則として「文字」が対象なので仕方ないとはいえ。
正規表現で「^」だけとか「$」だけとかが効くのもテキストが1文字でもある場合だけなので。

スクリプトで段落の数を参照すると「1」が返る。これでもう決定的。
マゼンタ文字の段落は存在していない。

では、いまパネル群に現れている属性はどこで参照できるのだろう、という疑問。
テキストフレーム内に挿入点が立った状態、見た目に文字は選択されていませんが、
実体は「挿入点(InsertionPoint)が選択された」状態だったりします。

ところでこの挿入点の所属する段落は前の段落のおけつだったりする?
しない。というか段落に含まれていないことになっている。

え、じゃこの子の親は誰なの。
ストーリー直下のオブジェクトになっている。

そのストーリーの、末尾挿入点の塗りカラーを参照。
でたー。

んじゃんじゃ、親ストーリーの段落数は?
え、1こしかない。もうわからん!

このあたり、広義ではバグなのかもしれません。わかりません。
違ったら恥ずかしいので大声では言いません…
とりあえず挙動とその覚え方は参考になったら幸いです。
まとめませんが、
*ペースト前にいったんただ削除してみる
*削除後にパネル群で表示されている属性がペースト後のお前だ
と覚えておきましょう。
ではでは






