2017年05月30日

文字スタイル部分・下線部分などを索引化する【改良版】

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2017.8.27にサンプルデータを更新(置換の設定ミスでいくつかのアルファベットが削除される問題を修正しました)

※2017.9.14にサンプルデータを更新

※2019.2.21にスクリプトを含むサンプルデータを更新


以前『文字スタイル部分・下線部分などを索引化する』で索引用テキストを抽出するJavaScriptをご紹介しました。私自身は便利に使っているのですが、文字スタイル名や下線などの設定を変更するにはJavaScriptファイルそのものを書き換える必要があり、あまり使いやすくない(かなぁ)と感じてきました。今回は、手軽にダイアログで操作できるように改良してみました。

まずは動画をご覧ください。
以下、簡単に説明します。

文字スタイルから索引用テキストを抽出する

0529-003.png

InDesignドキュメントを表示した状態でスクリプトを実行するとダイアログが表示されます。ドロップダウンリストにはドキュメントに設定されている文字スタイルがすべて表示されますので、索引化したいものを選択して実行してください。テキストファイルはドキュメントと同階層に生成されます。

●文字スタイルの取得にはInDesignerの悪あがき(DOTさん)の『グループ化された段落スタイルを取得』を使わせていただきました。


下線・打ち消し線・文字色から索引用テキストを抽出する

0529-002.png

こちらも同様にダイアログが表示されます。必要な項目をチェックし、ドロップダウンリストから線種や色(スウォッチ名)を選択してください。

●先日開催された「DTPerのスクリプトもくもく会」で@Uske_Sさん、@AJABONさんからダイアログについていろいろ教えていただいたおかげで形にすることができました。ありがとうございました。


複数の索引用テキストを合体してソートする

こちらはオマケのスクリプトです。複数の索引用テキストが入ったフォルダを選択して実行すると、それらの内容を合体した上でソートし、重複項目を整理します。合体したテキストファイルは元フォルダと同階層に生成されます。

いずれも、いつにも増して手探りで書いたスクリプトなのでお試しになる際は十分にテストされるようお願いします。

★2017.8.27、2017.9.14にサンプルデータを更新

サンプルデータ(2017.9.14)はこちら《sakuin_new_0914a.zip》です。


スクリプトを更新しました(2019.2.21)

内容を知りたい方は以下を参照ください

旧スクリプトを使っていて困ったことがありました。あるドキュメントで見開きをまたぐフレームグリッドに本文を流していたのですが、左ページに存在する用語も右ページに存在する用語も索引を抽出すると“同じページに存在する”と認識されてしまったのです。

※縦組みで傍注を設けたいと考え、やむなく左右ページをまたぐフレームを使用しました。

gz011.png

旧スクリプトは「その用語を含むテキストフレーム(フレームグリッド含む)が“どのページに置かれているか”」を抽出するものでした。“どのページに置かれているか”は、そのフレームの左右中央の座標で判断されるようです(詳しくはUske_Sさんのhttp://uske-s.hatenablog.com/entry/2017/08/13/132800を参照)。ですから同じフレームに属していれば用語自体が左右どちらのページに表示されていても“同じページに存在する”と認識されてしまうわけです。

※同じ座標に置かれた同じサイズ(パレットの数値上)のフレームでも作成手順によって“右ページに存在する"と認識されたり“左ページに存在する"と認識されたりすることがありました(ガイドへの吸着などの作業手順が怪しい印象)。ここを正しく処理するのは面倒ですし、目で見て確認しづらいので危険だと思いました。


こちらが今回のスクリプトで処理した結果です。左右ページが正しく認識されています。
gz013.png

今回考えた解決方法は単純です。たとえば縦組みで用語(正しくは用語の先頭文字の左上角)が左ページに存在する(これはhorizontalOffsetで取得)のに得られたページが偶数だった場合、「見開きの左ページに存在するんだから奇数でなければおかしい」と考え、得られたページの値に1を加える……などといった処理をおこないます。「縦組み/横組み」×「偶数/奇数」の計4パターンしか存在しないのでさほど負担はありませんでした。
gz001.png

なお、矛盾が生じていない用語については無視されますので旧スクリプトと同様に同じように抽出されます。

あれこれ試しながら組み立てたスクリプトです。何らかのミスが潜んでいる可能性もありますので運用は慎重に、十分テストした上でご使用ください。
サンプルデータはこちら《sakuin_2019_0221a.zip》です。
posted by 照山裕爾 at 04:04| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする