DTP作業者にとっての難易度 ★★★☆☆(3)
※2020.6.13の03:30頃/仕様を変更(新仕様のサンプルデータをアップ・動画を変更しました)
※2020.8.21の01:50頃/仕様を少し変更
InDesignの目次機能はたいへん便利ですが、タイトルや見出しを別フレーム(アンカーを含む)で作成している場合(ストーリーが別になっている場合)は順番が乱れてしまいます。今回は、これを解決するために目次用テキストを生成するスクリプトを書いてみました。
※本スクリプトは横組みのドキュメント専用です。
使い方
「makeContents_ver2_XXXXx.jsx」が実行用の本体スクリプトファイル、「pStyleList.jsx」がリスト用のスクリプトファイルです。
「pStyleList.jsx」のファイル名を変更すると動きません。
2つのスクリプトファイルは同階層に置いておかなければなりません。
別ドキュメント用に使用する際は2つのスクリプトファイルを収めたフォルダを丸ごと複製してから「pStyleList.jsx」を編集すると良いと思います。
その他、「pStyleList.jsx」の書き方については「pStyleList.jsx」内に書かれています。
テキストファイルに「ページの通し番号」「コラム番号」「y座標」「x座標」が必要ない場合は「makeContents_ver2_XXXXx.jsx」206行目の行頭の//を削除してコメントアウトを解除してください(更新により行番号が変わる可能性あり)。
注意点
コラムが複数ある場合、かならず段組みガイドを設定しておく必要があります。段組みガイドが存在しないと文字列が何コラム目に存在するか認識できません。
段抜き設定を使用している場合、このスクリプトで目次用テキストを生成することはできません。
「2番目以降のコラムに存在する」文字列を「1番目のコラムに存在する」ことにしたい場合は「pStyleList.jsx」で「行頭に付加する記号」の1文字目を「※」とします。
複数の段落が横に並んでいる場合、順番が正しく認識されないケースがあります。これを解決するには「pStyleList.jsx」の「調整値」(4項目目)に数値を設定し、y座標の値を増減します(上にあることにする場合→正の値、下にあることにする場合→負の値)
InDesignドキュメントを変更するスクリプトではありませんが注意してお使いください。
不備があることも考えられますので十分にテストを重ねた上でご使用ください。
※2020.8.21更新/以下についてスクリプトを変更しました。
……………………………………………………
「箇条書き番号・記号とテキストを区切る記号」を「>>>>」に変更
「強制改行が存在した箇所」を「<>」に変更
「タブが存在した箇所」を「<>」に変更
pStyleList.jsxの「調整値」の単位を「mm」に変更
※以下は上記修正前のサンプルデータです。
※以下は初期のサンプルデータです。念のため残しておきますが、このサンプルデータは調整値の設定ができません。また、環境設定の内容によっては正しく処理できないケースがあります(他にも仕様変更あり)。できれば新しいサンプルデータをご使用ください。このサンプルデータ時点の動画URLは以下の通りです「https://youtu.be/SMSRodjW5_A」