上付き文字の禁則処理

[8221]上付き文字の禁則処理 投稿者:たく 投稿日:2014/05/28 11:38:58
InDesignの禁則処理で、上付き文字が文頭に来ないようにする設定はどうすればいいですか?
いい方法あれば教えていただけませんか。

日本語の横組みで、環境はWindows7、InDesignCS5です。
よろしくお願いします。
[8222]Re: 上付き文字の禁則処理 投稿者:たく 投稿日:2014/05/28 11:57:07
すみません 問い合わせは 「文頭」でなく、「行頭」でした。
禁則処理セットの「行頭禁則文字」に登録できればいいんですが・・・。
[8224]Re: 上付き文字の禁則処理 投稿者:Subi 投稿日:2014/05/28 14:11:01
上付き文字が数字だけなら、数字をInDesignの機能で上付きにするのではなくフォントのスーパースクリプト(上付き書体)を使い、正規表現検索でひとつ前の文字とまとめて分割禁止をかけるか、正規表現スタイルに指定するという方法があります。
[8225]Re: 上付き文字の禁則処理 投稿者:オメガ 投稿日:2014/05/28 20:22:53
ここの過去ログですが、参考になるかと。
上付き数字のケースですが、数字以外の場合でもやり方次第で対応可能ではないでしょうか。

[No.7711]上付スージの行頭を回避したい
http://www2.rocketbbs.com/11/bbs.cgi?id=thats&mode=pickup&no=7711
[8226]Re: 上付き文字の禁則処理 投稿者:たく 投稿日:2014/05/29 08:18:11
過去のログも含め大変助かりました。
ありがとうございました。

ちなみに上付き文字に文字スタイル(たとえば[CITATION]文字スタイル)がついていれば検索文字列?検索形式?にどのような設定すればいいのでしょうか?

特定の文字+[CITATION] を分割禁止処理したいです。
[8227]Re: 上付き文字の禁則処理 投稿者:流星光輝 投稿日:2014/05/29 09:27:37
横からですが、
私が過去ログに書いたScriptを使用されるなら、
.itemByName('上付');

.itemByName('[CITATION]');
とかに書きなおして実行すればよろしいと思います。
[8228]Re: 上付き文字の禁則処理 投稿者:オメガ 投稿日:2014/05/29 12:57:16
流星光輝さんありがとうございます。
やはりスクリプトで処理するのが手っ取り早いとは思いますが、
あえて検索置換で行うなら、正規表現検索で
検索文字列:(空欄)
置換文字列:##$0
 検索形式:上付き文字、または文字スタイルを指定
 置換形式:分割禁止(文字スタイルで指定している場合は不要)
で上付き文字の先頭に文章中に使用されていない文字(例として##)を入れ、上付き文字全体を分割禁止に。

次に、
検索文字列:(.)(##)
置換文字列:$1
 検索形式:(なし)
 置換形式:分割禁止
にして##を削除しつつ上付き文字の前の文字を分割禁止にすればできると思います。
[8231]Re: 上付き文字の禁則処理 投稿者:たく 投稿日:2014/05/29 16:46:56
皆さま いろいろありがとうございます。
スクリプトに挑戦してみようかとやってみましたが、うまく動きません。
文字スタイル(Cite/cite_bib: 「Cite」フォルダ内の「cite_bib」)を検索にする場合、下記の書き方で大丈夫でしょうか?このスクリプトを動かしてもエラーにはなりませんが、分割禁止になりません。
どこがおかしいのでしょうか?

#target InDesign
app.findTextPreferences=NothingEnum.nothing;
app.changeTextPreferences=NothingEnum.nothing;
var doc=app.activeDocument;
app.findTextPreferences.appliedCharacterStyle=doc.characterStyleGroups.itemByName("Cite").characterStyles.itemByName("cite_bib");
var rep=doc.findText();
for (var i=0;i<rep.length;i++){
rep[i].parent.characters[rep[i].index-1].noBreak=true; // 分割禁止
}
[8232]Re: 上付き文字の禁則処理 投稿者:流星光輝 投稿日:2014/05/29 17:59:44
まったくもってテストする時間ないのですが、
var rep=doc.findText();
の後に
alert(rep.length);
突っ込んで0がアラートされるなら、
スタイルグループの指定の所で失敗してるんじゃないかと思います。
[8234]Re: 上付き文字の禁則処理 投稿者:たく 投稿日:2014/05/30 06:29:43
流星光輝さんありがとうございます。

alert(rep.length);
を追記すると7とか10がでますのでスタイルグループの指定は大丈夫なのでしょうか?
[8235]Re: 上付き文字の禁則処理 投稿者:流星光輝 投稿日:2014/05/30 07:17:47
> 追記すると7とか10がでますのでスタイルグループの指定は大丈夫なのでしょうか?
7とか10がスタイルグループ下の文字スタイルの適用個数と
一致するのではないでしょうか?
Scriptを実行したドキュメントを私は見ることが出来ないので
ご自身で確認ください…

いちお解説しておきますが、
●▲■1)
の文字列の
1)
部分に目的の文字スタイルが適用されている状態として
■の部分に分割禁止の設定をする仕様です。
なので、文字スタイルには分割禁止が設定されているものとします。
この条件下で失敗しているようであれば、
それは、別の問題がありそうですが、前述したように
私は実ドキュメントを見ることが出来ないので、
それもご自身でご確認ください。
[8237]Re: 上付き文字の禁則処理 投稿者:たく 投稿日:2014/05/30 18:16:31
流星光輝さんありがとうございます。

文字スタイルの分割禁止の設定が原因でした。
問題 解決できました。

今からスクリプトの勉強に挑戦してみます。
今回は有難うございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)