範囲内の数字を検索置き換えなどでうまく増やすことはできないでしょうか?

[4932]範囲内の数字を検索置き換えなどでうまく増やすことはできないでしょうか? | 投稿者:naoko | 投稿日:2010/07/22(Thu) 21:41:00
はじめまして。私はCS4を使用しています。

どうか、お助けいただけないでしょうか。

今組んでいる本で、索引を別途手打ちで作成して、インデザインにテキストを流し込んで、修正を終えた後に、索引中のページ番号が途中から本文とずれていることが分かりました!

具体的には本文で210ページなのが索引では198ページに(泣)。2ぺーじずつ、210ページから、索引と本文がずれているようなのです。全体で600ページ程ある本なので、手打ちで直すには気が遠くなります...。検索置き換えで、この範囲内の数字を2ページずつふやすようなことはできないでしょうか?

普通無理だとは思うのですが、どうかお知恵をお借り出来ますと幸いです。
» 1
下記ブログ記事を参考にしてください。
「特定の数字を加減乗除するスクリプト」
*http://d.hatena.ne.jp/seuzo/20090217/1234839952

最新のバージョンではCS4対応と書いてありますが、分かち書きをしない日本語では、正規表現を変更する必要があると思います。
» 2
せうぞー様

すごい! あなたは神様ですか。まさにこういう感じです。

いけそうな気がするのですが、リンク先の画像に出ている「number adjuster」というのはどこから出せば良いのでしょうか...?
下の方で正規表現のことも書かれているのですが、上には書いていないし......? ハイレベルでちょっと近づくことができません(汗)

恐れ入りますが、記事に出ているところまでたどり着くにはどうしたら良いのでしょうか...。何度もすみません。
» 3
スクリプトそのものは、indesignsecretsに直リンクになっています。
スクリプトの使い方については、下記ブログを参考にしてください。
「スクリプトの使い方(種類・保存・利用)」
*http://d.hatena.ne.jp/seuzo/20081119/1227094226
#ファイルパスなどがInDesign CS3用に書かれていますから、適宜CS4に合わせて読んでください。

変更すべき正規表現については、スクリプト中の
"-*[0-9][0-9,.]*b"
とある部分を
"-?[0-9][0-9,.]*"
に書き換えればOKです。

近くにInDesignのスクリプトに詳しい人がいたら、訊いてみてください。
» 4
お世話になります。

以前、似たような状況の記事を書いたので参考までに。
*http://ameblo.jp/knym71/entry-10396081757.html

ただし、実務で検証をとっていませんので、あくまでも参考&自己責任でお願いします。

せうぞーさん、number adjusterちょいちょい使ってます。ありがとうございました(でもやはり英語の壁が...)。
» 5
す、すごすぎます。

教えて頂いたリンクを読んで、こつこつと分からないながら進めました。

せうぞー様
無事スクリプトを起動することができました。ただ、「190以上の数字に2をプラスする」という指定がどうしてもうまくできなくて、すべての数字がプラスされてしまいました。こちらは回避する方法はございますか?

kin様
完全に私の目的と同じことをされていて驚きました! ご指示頂いた通りすすめましたが、最後のスクリプトを使用する段階で、スクリプトを押しても起動しないという状況になってしまいました...。「regex_continuous_substitution.jsx」を単純に落としてフォルダに入れただけなのでそりゃそうよね、という感じなのですが、このスクリプトを使用するにあたり、後何かすべきことはありますでしょうか。作成したタブ区切りテキストの保存場所もお教えいただけますでしょうか。


何度もご質問ばかりで、大変申し訳ないです。あともう少しのところまで来ている感触があるのですが...。どうか、よろしくおねがいします。
» 6
naokoさま、ごくろうさまです。

regex_continuous_substitution.jsxはせうぞーさん作のスクリプトです。めぐりめぐって、やっぱり神様ですね。

使い方は同梱のファイルを読んでtestをしてもらえばわかるかと...。

スクリプトのフォルダに入れてパネルからクリックすれば、どのファイルを読み込むかというダイアログが出るはずです。

スタイルを指定した場合はファイル内に同名のスタイルがないと怒られます。

で、置換用のファイル置き場はどこでもいいのです。

使い捨てであればデスクトップに置くと、読み込む際にダイアログからコマンド+D(Mac)ですぐにデスクトップにアクセスできるので便利ですよ。
» 7
>「190以上の数字に2をプラスする」という指定がどうしてもうまくできなくて

あらかじめ、ある範囲内の数字に文字スタイルを適用してから「number adjuster」でその文字スタイルをターゲットにすればいいと思います。
ある範囲の数字をマークするには、正規表現検索置換で一括置換できます。
たとえば、190?699までを置換したければ
(?<![/.,])(19|[2-6])(?![/.,])
と検索してください。
» 8
本当に、ありがとうございます><

まずは、せうぞー様の方式が簡単かなと思い、正規表現で教えていただいた式を入力したところ、全部がうまく置き換わりませんでした。どうやら、一行中で一つの数字の固まりしか選ばれないようで、たとえば「279, 338, 379」という並びだと、379しかスタイルが置き換わらないようなのです...。

ずっといじっていたのですが、どうしても正規表現、分かりませんね...

もうちょっと試行錯誤してみます!
» 9
>379しかスタイルが置き換わらないようなのです...。

それは正規表現の先読みで「範囲内の数字」の後に「,」カンマが来るのを無視するようにしているからです。
これは、「これは234,567円です」といったカンマで位取りしている数字を無視します。

もし索引に「279, 338, 379」というような文字列しかないのであれば
(?<![/.,])(19|[2-6])(?![/])
としてもいいでしょう。

正規表現は覚えるとたいへん便利なので、すこしずつでも勉強するといいかもしれません。
» 10
せうぞー様
kin様


さて、お助けいただきたながら、ようやく先ほど入稿をすることができました。

ありがとうございました。今回はせうぞー様に教えて頂いた方法でデータを修正いたしました。(regex_continuous_substitution.jsxがどうしても反応してくれなかったので...、今後の課題とします)

正規表現は、本当に便利ですね。これは逃げていないである程度使いこなせるようにならないと時間の無駄と、知りました。

本当にこのたびはお手を煩わせてしまってすみませんでした! 無事解決いたしましてとても嬉しいです。

こんな私ですが、どうぞ今後ともよろしくお願いします。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)