2008/06/23

人名索引

試行錯誤中。

方法その1。文献リストから、出版(発表)年を参照しつつ、検索して一致したものを索引に追加していく。この方法の問題は、検索方法が複雑になること(というか、どこまで考慮すればいいのかわからん・・・)。

方法その2。ひとまず、本文中の人名と年号をまとめて索引として追加していく。後から、文献リストと照合してイニシャル補完。ページがずれる心配がないのならば、この方法が一番手っ取り早い。例えば、本文中での
Frued, 1925
Lazarus & Folkman, 1969
田中・加藤(2004)
Eysenck et al.(1985)
Smith, Gibson, & Jacob, 1966
こうゆう表記をそのまま索引項目に追加していって、いったん、CSV方式かなんかで出力してから、エクセルとかで、ソートして、人名を分解して、年号を参考にしながらイニシャルを補完する。indesignの索引機能を、一時的に使って、最終的には、エクセルかなんかの索引データを整形して、本文にはりつけることになる。indesignを使わずに、人力で人名索引を作成する時は、この方法でやっていた。エクセル上で
Frued, 1925
Lazarus & Folkman, 1969  45
田中・加藤(2004)  46
Eysenck et al.(1985)  89
Smith, Gibson, & Jacob, 1966  97
と入力していって(空白部分でセルを区切る)後からソートし直して、人名部分をセルごとに分解して・・・と。
問題は、再校段階で索引を作るときは、ページがずれる可能性があるってこと。indesginで索引を作成するということの一番のメリットは、索引頁のチェックをする必要がないことにあるわけで、それが使えなくなるのは痛い。

で今思案中の方法。索引項目には連名でなく一名ずつ採っていく。ただそれだけだと、イニシャルの補完が大変なので、一時的に、項目の読みの部分に連名+年号を入力しておく。索引を取り終わったら、読みを基準にソートされているはずなので(すなわち、アルファベティカルオーダー)、文献リストのオーダーとほぼ同じなはず=照合しやすい。問題は、漢字表記は読みに使えないのでどうするか、と。まぁ暫定的に、アルファベットで入力しておくか、どうか。日本語文献が多い時は厄介かも。

この方法だと、索引をとるときが面倒。まず、本文での「連名+年号」の部分を選択して、コピー。で次に名前を一名ずつ索引にとっていく。読みにコピーした「連名+年号」を入力。タブキーで動かして、Alt+Sで読みに移動して・・・とか手間かかりすぎ。
こうゆう部分はスクリプトで手間を省くべきということで、選択部分から人名を抜き出して、一名ずつ索引項目に追加しつつ、それぞれの読みに選択部分を貼り付け、と動くものを作ってるうちに、時間切れ。

今まではアウトプットの部分で、スクリプトを考えていたのだが、こうゆうインプットの部分でのスクリプトもだいぶ作業時間を短縮してくれるはず。

2008/06/20

索引

学術書の場合、だいたい事項索引については執筆者にマーキングしてもらい、それを編集部のほうで拾っていき、人名索引は、機械的に拾っていく、というケースが多い。
indesignには索引機能があるので、重宝してる。校正の結果のページズレも、反映してくれるからだ。ただ、索引を拾った部分を、出力紙では視認できないので、索引個所にアミカケ、というスクリプトを作って対応している(アミカケというより、アンダーラインの設定をいじったアミカケ風)。

さて、厄介なのは人名索引である。本文に出てくる人名というのは、だいたい引用文献で言及されるケース。その場合は、イニシャルは省略されていて、索引ページでは、そのイニシャルは補完されていなければならない。つまり、人名を拾う際に、文献リストと照合して、イニシャルを補完していく必要がある。

章末に、文献リストが記載するケースの場合は、それほど苦ではないのだが(せいぜい、多くても2ページほどである)、が巻末に文献リスト、ということになると、下手すると10ページ以上にわたるリストとの照合作業をする必要がある。
これが面倒。非常に面倒。やりたくない作業の一つである(一番やりたくないのは、責了前の索引チェックだが)。

本文での人名記述のパターンとして
Piagetは、思考発達段階説を唱えた。
・・・・・・ということになる(Lazarus & Folkman, 1984)。
というものがあるのだが、どうやるのが効率的なものか・・・・・・。

2008/06/17

オブジェクトを別のページへ移動させる

先日のエントリでのNaNの件。

現ページから、前もしくは次のページを取得するとき、
pages.itemByRange(currentPage.name-2, currentPage.name-2)
というふうにやってたのが駄目だったみたいだ。この場合、Rangeが1ページ分でも、返される値は、配列になるわけで、そこが問題だったと。

ということで単純に前ページのときは、
pages[currentPage.name-2]
で、次ページのときは、
pages[currentPage.name]
で取得するように変更したら、問題なく動く。

てことでオブジェクトを前もしくは次のページに移動させることはできた。だが、オブジェクトが回転されてたりする場合は、どっかに飛んでいってしまうので^^;、注意が必要。要検証。

2008/06/16

原稿整理のルール

自分用メモ。

タグテキストでやるのは、タグをそもそも打ち込むのが面倒なので却下。XMLはこれから勉強。なんで暫定的に、簡易タグ~制御文字で。

まず、段落スタイルを統一しておく(A:本文、B:章、C:節、D:項、E:見出し、F:図表、G:引用、とか)。
段落スタイルに対応したタグもしくは制御文字を原稿データに入力していく($$章、$$節、~、~など)。
一つの段落でおさまるものは、$$○を段落の頭に挿入。ブロック単位のものは、タグで囲む。

インデザインに整形された原稿データを流し込む。スクリプトの適用(段落を一つずつチェックして、制御文字、タグで段落スタイルを適用していく)。

先頭スタイル終了文字はかなり使えるので、別途、制御文字を用意しておく。それから、マイナスとかイコールだとかの記号や、半角カンマと和字のアキの設定とか、ややこしい作業はこの流し込みの後に、一括調整できるようにスクリプトを作っとく。

図を放り込む

原稿整理の段階での簡易タグ付け(制御文字――例えば、「##節」などを使う)によって、原稿流し込み→自動的に段落スタイルの適用、という作業が可能になって、だいぶ楽になった。その際に、表についても、自動的にインデザイン上で組むようにできたので(もちろん、罫線やセル幅などの微調整は必要)、残っている手間のかかる作業というと、イラストレーターで作成した図の配置。

これが結構厄介。アンカーオブジェクトにする、て手もあるだろうが(たぶん、こっちの方が楽?)、キャプションとの位置関係とか、図の配置位置は、天もしくは地の左右中央が基本だったりすることから、スクリプトで制御しようかと。

オブジェクトは、放り込んだ図=Rectangle、キャプション=TextFrame、となる。版面のテキストフレームの種類がフレームグリッドかどうかで取得して、そのフレームの天もしくは地に合うように、visibleBoundsを設定する。その時、図とキャプションの間隔を、図中文字の1字分に固定する。図がRectangleでない場合――例えば、インデザイン上で図を作った場合のことは次考える^^;。

このスクリプトはサッとできた。で次に考えたのが、校正で図を別のページに移動する必要が出てきた時。これも手動でやってると、手間がかかる、というかイライラしてくる。

なんで、これは図にかぎらず、ページ上のオブジェクトを別のページに移動できるスクリプトを考えたんだが。。。時間切れ。

移動先のページを取得→オブジェクトのmoveメソッドの引数にそのページを割り当て。これでオブジェクトの移動は簡単にできるんだが、その時、移動先のページの(0, 0)の位置にオブジェクトが配置される。で2番目の引数で位置を設定する。この場合、ページの左上からの位置になるので、あからじめ、移動前のオブジェクトのページ左上との相対位置を取得して、当てはめることになるんだが、レイアウトグリッドの設計が左右中央でないばあいは、偶数ページ、奇数ページで設定を調整する必要がある。

これは面倒、ということで、レイアウトグリッドとの相対位置をオフセット値みたいなかんじで保存しといて、ページ⇔レイアウトグリッド⇔オブジェクト、という関係で、位置の数値を決めようと思ったんだけど・・・。
ページ⇔レイアウトグリッドのとこで、数値がNaNになってしまう・・・・・・。ここらへんは勉強不足でなぜだかわからんので、後でしらべておくこと。