上付スージの行頭を回避したい

[7703]上付スージの行頭を回避したい 投稿者:かず 投稿日:2013/07/26 12:18:18
いつも参考させて頂いています。

MacOS10.8 CS4 使用です。

上付スージが行頭に来た時,前の文字とスージを選択して
分割禁止に手作業でおこなっています。
かなりの数や見落とし等もあり,何か方法はないものかと思っております。

ご教授の程宜しくお願いいたします。

attached image
[7708]Re: 上付スージの行頭を回避したい 投稿者:流星光輝 投稿日:2013/07/26 20:40:39
そこに文字スタイルを適用しているとしたら、
その文字スタイルで検索かけて前の文字に分割禁止を
適用するScriptを書いて動かすと良いと思います。
文字スタイル側には予め分割禁止を仕込んでおけば良いです。
[7709]Re: 上付スージの行頭を回避したい 投稿者:オメガ 投稿日:2013/07/26 23:22:21
正規表現検索で、
 検索文字列:.\d+
 置換形式:+分割禁止
として、数字とその直前の文字を分割禁止にします。

これだと上付き数字だけでなく標準の数字とその直前の文字も分割禁止になってしまうので、
 検索文字列:.\d+
 検索形式:+分割禁止 +位置:標準
 置換形式:-分割禁止
として、標準位置の数字とその直前の文字の分割禁止を元に戻せば良いと思います。
[7711]Re: 上付スージの行頭を回避したい 投稿者:黒猫 投稿日:2013/07/27 01:46:52
邪道技ですが…。

すでに上付き文字の設定がなされているという前提で、
正規表現検索を使います。

検索文字列:(\d+)
置換文字列:~h$1 ←先頭文字スタイルの終了文字と検索結果1
検索形式:上付き文字 ←Open Type機能のヤツとは違います
※キャプチャーつけておきますので参考にどうぞ。

この設定なら一回の検索置換でいけると思いますが、
幅がないとはいえ余計な文字が入ってしまうので、
流したテキストを他媒体などで二次利用する場合は
やめておいたほうがいいかもしれません…。

attached image
[7712]Re: 上付スージの行頭を回避したい 投稿者:流星光輝 投稿日:2013/07/27 02:07:03
言い出しっぺ法則で書きました。
CS6で動作確認。
CS1でも同じ事やってるので、
たぶん動くと思うです。
(めんどいのでエラー処理入れてませんorz)

#target InDesign
app.findTextPreferences=NothingEnum.nothing; // 検索・置換をクリア
app.changeTextPreferences=NothingEnum.nothing;
var doc=app.activeDocument; // 捕まえて
app.findTextPreferences.appliedCharacterStyle=doc.characterStyles.itemByName('上付'); // 文字スタイルを検索条件に指定
var rep=doc.findText(); // 検索のみ実施
for (var i=0;i<rep.length;i++){
rep[i].parent.characters[rep[i].index-1].noBreak=true; // 分割禁止
}
[7715]Re: 上付スージの行頭を回避したい 投稿者:かず 投稿日:2013/07/29 11:30:25
解答いただいた皆さまありがとうございました。

いろいろなやり方がありますね。
大変助かりました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)