ご無沙汰しております。
長々と前置きはしないことにして
淡々とInDesignの(たぶん)バグ報告します。
InDesignの索引作成時は見出し語の位置にマーカーを入れていくのですが、これをスクリプトからやろうとすると、ある条件下で挿入位置がずれるというバグがあります。JavaScriptとVBScriptで確認。
- 見出し語と同じストーリー上に表が入っている
- その表が見出し語より前にある
- その表が複数行ある(列の数は関係ない模様)
CSまでは起きなかった問題です。CS4では起きるのを確認しました。CS2あたりからおかしくなってきたらしいと聞いたことがありますが、情報元のページが消えててわかんなくなったorz
というわけで実験してみました。InDesign CS5.5、言語はJavaScript、もちろんWindows版です。
見事にずれてます。実験に使ったスクリプトは以下のもの。
var doc = app.activeDocument; var idx = (doc.indexes.length>0) ? doc.indexes[0] : doc.indexes.add(); idx.topics.add("見出し語","よみがな").pageReferences.add(app.selection[0]);
文書内の「→←」の間にカーソルを立てては実行、を繰り返すこと7回でさっきの画像の状態になりました。順不同にやっても変わらず。
索引を実際に追加してるのは3行目です。topics.add()で項目を追加し、pageReferences.add()で現在選択してる箇所(挿入点、またはテキスト)を参照先として指定しています。
ちなみに、リファレンス見るかぎりCS2〜CS5.5で動くはずです。CS6はまだ触ったことないです。
これのせいで
外部テキストに用意したリストを読み込んで一発で索引登録できるスクリプト!*1とか、テキスト選択して実行すると読みがなを自動解析して索引に登録するスクリプト!とか、そういうのが作りづらくなってるんで何とかして欲しいです。
しかし、索引って使ってる人少ないのかなあ……。
*1:これはディザInDesignのお〜まちさんが作ってらっしゃいますね。表さえ入ってなければCS5.5でもばっちり便利に使えてます。