InDesign の索引作成について

InDesign の索引作成の質問です

InDesign で索引作成をした時に、読みも書き出す方法はあるのでしょうか?

通常は

 さ
 索引 1

となりますが、このときに[さくいん]と入力した読みもデータとして
抽出できる方法があれば御指南ください

原稿にマーカされたものを、インデの索引機能を使って作成しているのですが
編者校で[単語][読み][ページ数]のエクセルを提出することになり
インデのデータを利用できないかと思った次第です

通しノンブルが決まっていないので、最初からエクセルで作るのは避けたいところです

インデのバージョンはCS3です
よろしくお願いします
» 001
索引作成時に読みも一緒に、というのはムリっぽい気がします。
もっとスマートな方法があるとは思うのですが、
私だったら・・・・

本文Fileをタグ書き出しして(複数Fileある場合はすべて)、
索引マーカーの部分を抽出。
 ↓
項目と読みをtab区切りtextにして、エクセルでソート。
同じ項目が複数個できた場合はこの時点で削除。
 ↓
索引Fileから取得した項目とページ数をtab区切りtextにして、
本文から抽出したものと合体

項目の文字列は同じはずなので、
エクセル上でのチェックは容易だと思います。

こんな感じで、
text処理のみでうまくいくような気がします。
間違っていたら、どなたかご指摘お願いします。
ただし、
項目が入れ子になっている場合は…どうなるか解りません。
(すみません)
» 002
アクティブになっているドキュメントについて、
「単語,読み,[ページ数 ページ数 ページ数...]」という感じで
1項目1行にしたテキストファイルを書き出すJavaScriptを書いてみました。

-------------------

(function(){

var sepChar = "," // CSV用セル区切り文字(任意)
var pageNumSepChar = " "; // ページ番号の区切り文字(任意)

var tmpIndex = app.activeDocument.indexes[0];
tmpIndex.update(); // 一度索引を更新してページ数などをソート

var str = "";

// 索引項目すべてについて処理
for (var i = 0, t_len =tmpIndex.topics.length;i<t_len; i++) {

var tmpTopic = tmpIndex.topics[i];
str += tmpTopic.name + sepChar;
str += tmpTopic.sortOrder + sepChar;

// 参照先すべてのページ番号を取得していく
for (var j = 0, ref_len = tmpTopic.pageReferences.length ; j<ref_len;j++ ) {
str += tmpTopic.pageReferences[j].sourceText.parentTextFrames[0].parent.name;
// 参照先がまだ残っていたらページ番号区切り文字を入れる
str += (j != ref_len-1) ? pageNumSepChar : "";
}

str += "\n"; // 改行

} // 項目ループここまで

// テキスト書き出し(ファイル名を指定して保存)
var file = File.saveDialog ("ファイル書き出し");
if (file) {
file.open("w");
file.write(str);
file.close();
}

return;

})();

-------------------

動作確認はWindows XPのInDesign CS4でしかしていませんが、
これでいかがでしょうか……?
ブックのドキュメントをすべて含めようとすると、もっと複雑になりそうです。
» 003
momo様
やはり、インデの機能じゃ無理そうですよね
いろいろ試してみましたが、データとして書き出すのは難しそうです

こんなやり方でいこう と決まったのを下記に記します
 インデの索引機能を使ってマーカー部を拾う(ただし読みは拾えないので[1]とかで済ます)
  ↓
 ノンブル確定後に索引作成。単語とページの間はタブ指定にする
  ↓
 テキストをExcelに移行させて、よみ項目を立てて入力
  ↓
 読みでソート
この後は編者校の修正までExcel上で仕上げた後に、インデで索引の組版

といった流れです
「もう絶対に本文ページが変わるような修正は入れない!」
って条件つきですが、先方がゆうことを聞いてくれるかは不明です
基本的に進行に問題があるのはあきらかなのですが、諸事情があるので仕方ありません

ご意見ありがとうございました

chalcedony様
JavaScriptまで作成いただきありがとうございます
ただ、私のレベルが低くJavaScriptをどう適用させるのかが分かりません…
あと情報不足で申し訳なかったのですが、当方の環境はMAC OS 10.4.11 InDesign CS3 になります
すみませんでした

索引専用ソフトなども探してみましたが、やはりWindowsのものしか見つけられませんでした
» 004
>かるび様
こちらこそ、なんの説明もなく不親切で申し訳ありませんでした!
JavaScriptはWindowsでもMacでも動かすことができます。
(Macの環境がないので、実際に試してはいないのですが……)

今回は別のやり方で方針を決められたとのことですが、
もし今後スクリプトを使用される機会があったときは
こちらのページが参考になるかと思います。

スクリプトの使い方(種類・保存・利用) - 名もないテクノ手
http://d.hatena.ne.jp/seuzo/20081119/1227094226
» 005
chalcedony様

JavaScriptは、使いこなせば便利だろうとは思っていましたが
ネットに載っているテキストをScriptファイルにする方法がわからず放置していました

少し調べて作っていただいたJavaScriptを、.jsxファイルにしてインデに適用してみましたが、エラーで走りませんでした
(スクリプトテキストをExtendScript Toolkitというソフトに
 流し込んだだけなので、たぶんやり方が間違っているのでしょう)

付け焼き刃じゃ無理そうなのでScriptについては、追っかけで勉強していきます
ファイルとしてダウンロード出来るものも多そうなので
まずは、その辺から便利そうなものを探して行こうかと思います

どうもありがとうございました
» 006
chalcedonyさんが作られた書かれたスクリプトがOSX InDesign CS3動いたので、
使い方に問題があったのかと思いますので、
私の環境で動作した方法を

書き出したいドキュメントがCS3で開いている事が前提で

1.ExtendScript Toolkitではなく、ExtendScript Toolkit2を起動します。

2.新規JavaScriptを選択し、
 ウィンドウ左上がAdobe InDesign CS3になってる事を確認して、
 chalcedonyの書かれたプログラムをペースト

3.実行する。

これで動くと思います
» 007
んにゅ様

出来ました!
ありがとうございます

ただいくつかのファイルでエラーが出てしまい(章立てでファイルを分けているのです)
調べてみたところ、グループ化されている文字ボックスに索引項目があるとエラーになるようです
(正確なトコは分からないのですが…解除すれば大丈夫でした)

今回は、スクリプトの便利さがよく分かりました

作成してくださった chalcedony様
スクリプトの使い方を御指南いただいた んにゅ様
ありがとうございました

このページをシェア