株式会社ドキュメントシステム

トップページ > 索引の作り方


索引の作り方

1. 編集はいかにして索引を作るか?

mkbkindexコマンドによる索引の作り方を紹介します。四の五の言わずにやってみましょう。インストール方法などはあとで説明します。


1.1 「おかしな国のアリス」再校出し

いまあなたは、次のような全10ページの小冊子を編集しているとします。説明のため、ダサくても通しノンブルを振っておきます。


Alice V3 tobira image


Alice V3 page 2-3 image


Alice V3 page 4-5 image


Alice V3 page 6-7 image


Alice V3 page 8-9 image


現在、編集は再校段階にあり、ページ切りが確定しています。この状態から索引原稿を作成し、p.10として索引を組んでから、三校・念校をとったら、印刷所に入稿です。


1.2 索引語の拾い出し

では、索引語を拾っていきましょう。ラインマーカーや目立つペンを使って、再校校正紙の上に手で書き込みます。こんな感じです。


Alice V3 page 2-3 with marking


1.3 索引語の入力

拾った索引語を、ノンブルと一緒にテキストで入力します。
この小冊子では、全頁分でこんな感じになります。

#「おかしな国のアリス」索引元原稿
お菓子          1
おかしな        1
Alice           1
Sweets          1
Sweets[Sweetsland]      1
アリス          3
アリス          1-3
パイ            3
A               3
I               3
Alice           3
Alice           1-3
apple pie       3
Apple           3
Apple[ANNApple] 3
ブルーノ        5
B               5
Bruno           5
I               5
Biolence        5
Violence        5
チェシェ猫      7
レモン          7
Citron          7
C               7
Cheshire Cat    7
I               7
chunk           7
blew            7
ヤマネ          9
ドーナツ        9
ちっ息          9
D               9
Doumouse        9
He              9
choke           9
Doughnut        9
Donuts          9

入力の仕様は次のとおりです。

  • 漢字の"読み"は自動で推測するので入れなくてOK(KAKASIの解析能力に依存→よって間違う可能性あり)。
  • 索引語とノンブルはタブで区切る。複数でもOK。
  • 索引語中の空白(スペース文字)は語の一部として扱う。語のあとにうっかりタブではなくスペースを入れても無視される。
  • 英数文字は半角、日本語はSJIS全角、半角カナ使用不可。
  • "大きな話[小さな話]"のように、[ ] で括ると、[ ]内を上位の語に付属する子の語としてインデントして整形します。
  • ノンブルを"1-3"とすると、p.1-p.3までの範囲を指定した索引原稿を作成できます。
  • 行頭 #、空行は無視します。
  • エラー処理は雑です。うまく通らなかったら、自力で文字コードなど確認が必要。
  • 結果は標準出力です。mkbkindex -d sourceindex.txtなどとやると、生成途中の中間ファイルも出力します。

1.4 mkbkindexコマンドで処理

作成したテキストファイルが、alice_index.txtとしたら、次のようにコマンドを実行します。

$ mkbkindex alice_index.txt > alice_indexout.txt

出来たファイルを見てみましょう。

$ jless alice_indexout.txt
#「おかしな国のアリス」索引元原稿
A・B・C

A                               3
Alice                           1-3
Apple                           3
 ANNApple                      3
apple pie                       3
B                               5
Biolence                        5
blew                            7
Bruno                           5
C                               7
Cheshire Cat                    7
choke                           9
chunk                           7
Citron                          7

D・E・F

D                               9
Donuts                          9
Doughnut                        9
Doumouse                        9

G・H・I

He                              9
I                               3, 5, 7

S・T・U

Sweets                          1
 Sweetsland                    1

V・W・X・Y・Z

Violence                        5

あ行

アリス                          1-3
お菓子                          1
おかしな                        1

た行

チェシェ猫                      7
ちっ息                          9
ドーナツ                        9

は行

パイ                            3
ブルーノ                        5

や行

ヤマネ                          9

ら行

レモン                          7

きれいにソートされた、索引らしい原稿が得られました。
これを組版の方に渡せば、索引頁の出来上がりです。


Alice Index version 2 image


1.5 索引原稿の最適化

といっても、最初に作成された索引原稿は、おおむね次のような欠点が含まれているものです。

  1. 漢字の読みが間違っている。
  2. その結果、ソート語順がズレてしまう。
  3. 入力ミスや、元来の校正漏れによって、意図しない索引語、語順が出来てしまう。
  4. 遡って、本文のミスに気づく→校正紙に反映させましょう。
  5. ネスト(上位の語にインデントされた下位の語がつくこと)が不自然。統一感がない。
  6. 語順でソートした結果なのに、同じノンブルが続いてしまって、なんかカッコ悪い。
  7. 語順が気に入らない。JIS規定の語順に従いたい。
    ex. あえてこうしたい場合など。
     第01章
     第10章
     第2章
    

これらは、mkbkindexで生成した出力ファイルを、手作業で編集して、調整してから入稿索引原稿としてください。


1.〜4.は、KAKASIの仕様だったり、校正上の問題です。索引頁が組版されたら、きちんと校正をかけましょう。


5.〜7.は、美意識の問題なので、出力ファイルを好みの索引になるよう、エディタ等で最適化していってください。


なお、mkbkindexでは、編集者が考えぬいた上で、このような語順の規則に従っています。語順を変更したい場合はsourceをいじる必要があります。


フィードバックを歓迎します。(TODOリスト


2. mkbkindexのインストール準備

  1. mkbkindexでは、unix系のCUI環境(LinuxとかBSDとか....)を自力運用していないと、きびしめです。でも、マシンパワーは必要ないのでラズパイでも動いたりします。まずは、システム管理者にこのサイトを見せて、相談してみましょう。
  2. MacOSは、実際には裏側でBSD Unixが動いているので問題なく動作します。後ほどインストール方法を記述します。
  3. mkbkindexはPythonとKAKASIを利用します。mkbkindexを利用する前にインストールしておきましょう(これが理解不能な場合、1. にもどる)。

3. mkbkindex本体のインストール

mkbkindexは、GitHubで配布(BSDライセンス)していますが、以下に各OS毎のインストール方法をまとめておきます。


3.1 Linux (Debian) へのインストール

ここでは、Debian 8.2.0 (amd64) へのインストール方法を示します。あらかじめ、Debianをインストールしておきます。インストール言語はJapanese(日本語)とします。


1. 「端末」を開くか、あるいは他のPCからSSHなどでログインします。


2. テンポラリのディレクトリを作成し、そこにmkbkindexをダウンロードします。

$ mkdir -p ~/tmp/mkbkindex
$ cd ~/tmp/mkbkindex
$ wget https://github.com/ayoko/mkbkindex/archive/master.zip

3. ZIPファイルを展開し、展開先のディレクトリに移動します。

$ unzip master.zip
$ cd mkbkindex-master

4. ライセンスを一読し、docディレクトリにドキュメントがあることを確認します。

$ more LICENSE
$ ls doc

5. sudoとKAKASIをインストールします。パスワードを聞かれたら自分のパスワードを入力します。 (sudoはmkbkindexに直接関係ありませんが、後々の作業が楽になります。)

$ su
(rootのパスワードおよび改行を入力します)
# apt-get install sudo kakasi
(続行するかと聞かれたらYおよび改行を入力します)
# adduser 自分のユーザー名 sudo
# exit
$ (再度)exit
(sudoが有効になるように、ここで一度ログアウトしてログインし直します。
以下のコマンドがエラーなく実行できれば、sudoが正しく設定できています。
うまくいかない場合は、Debianを再起動してみましょう)
$ sudo ls
(自分のパスワードおよび改行を入力)

6. ファイル群をインストールします。以下、sudoコマンドでパスワードを聞かれたら、 自分のパスワードと改行を入力します。

$ sudo mkdir -p /usr/local/bin /usr/local/libexec
$ sudo cp libexec/{[1-7]*,roman.py} /usr/local/libexec
$ sudo chmod +x /usr/local/libexec/{[1-7]*,roman.py}

7. bin/mkbkindexを編集(カスタマイズ)します。 任意のテキストエディタでbin/mkbkindexを開き、libexecdirというキーワードが含まれる2行を以下のように修正します。(一つ目の行先頭の #と/mkbkindexを取り除き、その次の行の先頭に#を追加します。)


修正後:

libexecdir=/usr/local/libexec
# libexecdir=./libexec

8. bin/mkbkindexをインストールします。

$ sudo cp bin/mkbkindex /usr/local/bin
$ sudo chmod +x /usr/local/bin/mkbkindex

9. テストとして、サンプルファイルを処理してみます。

$ mkbkindex examples/input.txt > output.txt

次のようなメッセージが出て、output.txtが生成されます。

1_add_yomigana...2_make2ndindex...3_sort...4_removeindex...5_extractlayer...
6_mergenumbers...7_format...
done

output.txtはSJISファイルなので、次のように閲覧します。

$ nkf -w output.txt | less
(あるいはjless output.txtなど)

3.2 Raspberry Piへのインストール

RaspbianのインストールされたRaspberry Pi(ラズパイ)でも動作します。インストール方法は、上記Debianと同様です。(Raspberry Pi 1 model B+で動作確認済。)


3.3 Mac OS X (10.10.5) へのインストール

(記述予定)


[このWebページはここで終わりです]


■トップページへ ▲上へ