2008/06/26

やっつけ

人名索引スクリプト。さすがに、こればっかやってるわけにもいかなくなってきたので、暫定的に仕上げる。
①本文から索引項目を追加していく。選択部分からスクリプトで抽出した人名を項目に、選択部分を読みに。
②それをテキストではきだして、エクセルで読み込み、読みの部分(選択部分=人名+年号)から人名を補完していく(外国人名のときは、イニシャル、日本人名のときは、ファーストネーム)。日本人名のときは、読みの部分にローマ字表記を入れておく。
③補完したらテキストで保存しておき、それをスクリプトで読み込み、indesignの索引項目を修正していく。
③の部分が問題だったわけだが、今回の対処方法。
a.項目を入力することで、並べ替えられるのを避けるために、まず、読みの部分(選択部分が入ってる)ところに数値を入れていく(10000、10001、、10002、、、、10000+n)。
b.次に項目部分の修正(イニシャルの追加、ファーストネームの追加)。
c.読みの部分を修正(数値を消して、読みを入れていく。外国人名のときは空白、日本人名のときはローマ字表記)。
indesignの索引の並べ替えのルールは、まず読みを見てから、読みが空白ならば項目を読みとする。数値の方が、アルファベットより先。なので読みの部分を修正する時、for文をつかうなら注意が必要。
これでやってみた。
250ページぐらいの本で、人名索引は1000個弱。手作業でやるとおそらく1日仕事。
スクリプトで補助することで、索引を拾うのに1時間、人名補完で2~3時間。半分ぐらいの短縮率。

チェック用に、索引部分をアミカケにするスクリプトを走らせたのだが、さすがに1000個弱だと時間がかかる。20分近く。ここで時間切れ。明日PDFにしてチェックしてみるか。

今回、選択部分から人名を抽出するのに、文字コードのことを考慮していなかったので問題が。indesignでは「'」とか「‘」をスペシャルキャラクターとして扱うので、数値を返す時がある。例えば
o'reilly
と拾って欲しいのに
o143593847234reilly
みたいになっていた。ここは修正しておくこと。

実際のところ、このイニシャル補完の作業をオペレータがやるべきではないな。本文との人名表記の違い(単純な誤植)とか、引用文献の年号の違いとかを発見することは非常に多くあるわけで。
なんで結局次のやり方がベターのような気がしてきた。
①文献チェックの際に、本文にイニシャルを書き加えてもらう。人名索引としてとる部分にマーカーをひいてもらう。→校正者の仕事。
②索引を拾う時にそのイニシャルを補完。→オペレータの仕事。
え、そうなると、今回作ったスクリプトをまた使う日が来るのかいな・・・^^;。まぁ自分が校正者かつオペレータとなるケースもないわけではないから、いいとするか。

0 件のコメント: