でも、InDesignの「ページ番号とセクションの設定」では、ノンブルは1系統しかつけられない。そこで、javascriptを書いてみた。
- 2行目の 変数prev_issueに前の号の最後のノンブルを代入する。(下の例は前の号が96ページで終わっている場合)
- いま編集している号の各ページの通巻ノンブルを置きたいところ(マスターページにではなく、各ページの上)に「#PTV」と書いておく。
- スクリプトを実行する。
var prev_issue = 96; app.findTextPreferences = NothingEnum.nothing; app.changeTextPreferences = NothingEnum.nothing; for (var j = 0; j < app.activeDocument.pages.length; j++){ var pageObj = app.activeDocument.pages[j]; for (var i = 0; i < pageObj.textFrames.length; i++){ var page_thrghout_vol = String(parseInt(pageObj.name) + prev_issue); app.changeTextPreferences.changeTo = page_thrghout_vol; app.findTextPreferences.findWhat = "#PTV"; if (pageObj.textFrames[i].parentStory.contents.length>0){ pageObj.textFrames[i].parentStory.changeText(); } } }
- 紺色文字のところは、ページを順繰りに処理し、各ページの上のテキストフレームを順繰りに選び、その内のストーリーを処理していくループ(定石らしい)。
- 各ページのノンブルは、pageObj.nameだけど、これは文字列なので、前の号の最終ノンブルと足し算をするために、いったんparseInt( )関数で数値化している。そして、足し算のあと、また文字列に戻すのにString( )関数を使っている。
- 各ページのノンブル(pageObj.name)に前号の最終ノンブル(prev_issue)を足したものが通巻ノンブル(page_thrghout_vol)となる。それをページ上の文字列「#PTV」と置換しているだけ。
- 普段、javascriptを書いていないので、変数名など変だと思う。
0 件のコメント:
コメントを投稿