DTP屋あかつき@おばなの稼業録。
  【InDesign CS2】ルビを「半」自動で振る  2007.07.17.Tue / 16:20 
InDesignCS2でタグを使ってルビを「半」自動で振ってみました。
エクステンションを購入する予算が無い、Rubyなどのスクリプトが使えない、ルビが旧かな遣い等一般的なルビではない、などの場合に有効だと思いこんでます。
これでも手作業でチマチマ振るよりもずっと効率的、ですよね?
あくまで「半」自動なので、作業者の根性を要求したり、色々不具合があったりしますので、使用する際は自己責任で。

【出来ないコト】
A.同じ漢字で読みが異なる場合の区別がつかず、どちらかのルビに統一されてしまう
「~した時」→「とき」と「10時」→「じ」の区別がつかない
B.漢字単語が連続する場合、ルビが振れない
「日本国民」→「にほん」「こくみん」のようなルビは振れない。
C.連続する漢字単語に対して誤ったルビが振られる
「A」と「B」が連携した不具合で「日本国民」→「にほん」とルビが振られてしまう

【用意するモノ・作業環境】
InDesign
Excel(とExcelの関数に関する知識)
Jedit(もしくは正規表現が使用でき、複数文字列一括置換が可能なテキストエディター)
ルビのバラ打ちテキスト(ルビごとに改行されていること)

【手順の概要】
1.InDesignでスタイルを作成
2.スタイルをタグ付きテキストで書き出す
3.ルビを振りたい文章から漢字文字列を抽出、あわせて漢字文字列にマーキング
4.抽出した漢字文字列とルビ、InDesignタグをExcelで合成
5.マーキングした漢字文字列を検索対象に設定して、合成した文字列に置換
6.InDesignタグのスタイル部分を置換した文書に合成
7.完成したタグ付きテキストをInDesignに読み込ませる
以下、手順の説明。例文は日本国憲法前文です。
完成見本、作業途中のファイルをこちらにアップしました。文中の(/0x/ファイル名)はファイルのディレクトリとファイル名です。

【1.InDesignでスタイルを作成する】

1-a.ドキュメントを作成する(/01/ルビ振り前.indd)
InDesignのタグを利用してルビ振りを行うので、各種スタイルを設定して適用しておきます。
段落スタイルを設定する際、ルビの種類を設定するのを忘れないようにしてください。また、スタイル等を仮に設定しておき、ルビを振ってからスタイルを設定し直すこともできます。

070717-01.jpg
※ただし、下記の手順を経た完成したタグ付きテキストをInDesignに配置すると、ルビがすべてモノルビになってしまうので、スタイルを再度適用し直す必要があります。

1-b.ルビを1カ所だけ設定する
スタイル設定の続きで、ルビを1カ所だけ設定します。ルビのInDesignタグ表記を抜き出すためです。

【2.スタイルをタグ付きテキストで書き出す】

2-a.「1」で設定したスタイルを書き出す(/02/スタイル書き出し.txt)
本例ではルビを振りたいテキストをルビなしの状態でInDesignに流し込みスタイルを設定、書き出ししました。
タグ形式は「略式」、エンコーディングは「Shift JIS」に設定していますが、異体字etcを使用している場合はエンコーディングを変更してもOKです。その場合、テキストエディットでエンコーディングを確実に操作できないと後で苦労します。

070717-02.jpg


2-b.書き出したタグ付きテキストからルビのタグを抜き出す。
「1-b」で設定した部分のタグを探し出します。
このようなタグ付きテキストになっているはずです。
<cr:1><crstr:にほん><cmojir:0>日本<cr:><crstr:><cmojir:>
タグを探し出したら、新しいテキストファイルにコピー&ペーストしておきます。(/02/ルビのタグ.txt)

【3.ルビを振りたい文章から漢字文字列を抽出、あわせて漢字文字列にマーキング】

3-a.ルビを振りたいテキストファイルから漢字の文字列を抜き出す
ルビを振りたいテキストファイル(以下、対象文。ファイル名は対象.txtと仮称)(/03/対象文.txt)から、Jedit等の正規表現が使えるエディターで漢字の文字列を抜き出し、抜き出した漢字を一単語ずつ改行で区切ります。
抜き出した結果はこのようになります。(/03/漢字抜き出し結果.txt)
070717-03.jpg

※MacOSXのAutomatorで抜き出し用のフローを制作しました。(/03/漢字検索抜き出し.workflow)ただし、正規表現での漢字文字列の指定はテキストのエンコーディングによって異なります。
また、この抜き出しは漢字文字列を検索対象にしているため、連続した漢字単語を見分けられません。そのため、漢字単語が連続する場合、個別にルビが振れません。


3-b.漢字文字列にマーカーを付与
対象分の漢字文字列にマーカーを付与します(以下、マーカー付き文字列)。Jeditの正規表現を使った置換で、検索対象を「漢字文字列(表記例:[一-十 亜-龠]+)」、置換結果を「◆?0◆」と設定します。対象文内で「◆」を使用している場合は他の記号(■とか★とか)に置き換えてください。
置換が完了したらファイルを別名保存します。ここでは「マーカー付き文字列.txt」として保存しています。(/03/マーカー付き文字列.txt)
070717-04.jpg


【4.抽出した漢字文字列とルビ、InDesignタグをExcelで合成】(/04/文字-ルビ_合わせ済み.xls)

4-a.抜き出した文字列をExcelにコピーし、隣の列にバラ打ちのルビをコピーする
「3-a」で抜き出した漢字文字列とバラ打ちのルビ(/04/ルビ_バラ打ち.txt)をExcelにコピーします。
070717-05.jpg


4-b.漢字とルビがズレている箇所を修正する
連続している漢字単語の部分で抜き出した漢字文字列とバラ打ちのルビが一致しなくなっています。連続している漢字単語に対応するルビには後で探しやすいようにダミー(作例では「xxxx」)を設定しておくと便利です。
ルビを付加してオリジナルの文章に書き戻す際、「3-b」で作成した「マーカー付き文字列.txt」を利用するため、連続した漢字単語を分割すると書き戻せなくなってしまいますので、連続した漢字単語は分割しないでください。また、この摺り合わせが結構大変ですが、根気よく作業してください。

4-c.漢字とルビ・InDesignタグを結合する
「2-b」で探し出したタグを参考に、漢字とルビ、タグを結合します(以下、ルビ付き文字列)。
Excelの関数を使用して「="<cr:1><crstr:"&(バラ打ちルビがある列番号)&">"&(漢字文字列がある列番号)&"<cr:><crstr:>"」で結合できます。
また、ルビ付き文字列を書き戻すため、「="◆"&(漢字文字列がある列番号)&"◆"」関数式で漢字文字列にマーカーを付与します(以下、マーカー付き文字列)。「◆」は3-bで付与したマーカー文字と同じになるように設定します。
070717-06.jpg


【5.マーキングした漢字文字列を検索対象に設定して、合成した文字列に置換】

5-a.「マーカー付き文字列」と「ルビ付き文字列」をタブ区切りで結合し、テキストに書き出す
マーカー付き文字列とルビ付き文字列のあるExcelの列をテキストエディターにコピー&ペーストします。
作業が完了したら、ファイル名を「ルビ付き文字列.txt」にして保存します。(/05/ルビ付き文字列.txt)
070717-07.jpg


5-b.マーカー付き文字列をルビ付き文字列で一括置換する
Jeditで「3-b」で作成した「マーカー付き文字列.txt」に「ルビ付き文字列.txt」を使用して一括置換します。

070717-08.jpg

※複数一括置換の使い方はJeditのヘルプを参照してください。
このとき連続する漢字単語に対してルビが振れないため、マーカー文字が残る場合がありますが、この段階では修正せず、InDesign上で修正してください。また、誤ったルビもInDesign上で修正した方が効率的かと思われます。
置換が完了したら「置換後.txt」として保存します。

【6.InDesignタグのスタイル部分を置換した文書に合成】

6-a.「置換後.txt」にInDesignタグのスタイル部分を合成する
「置換後.txt」の先頭部分に「2-a」で書き出したタグ付きテキストの先頭部分をコピー&ペーストします。
「置換後.txt」内のテキストの先頭文字の前にタグ付きテキストの先頭部分を挿入します。両者の先頭部分を見比べて「置換後.txt」内の文章の先頭部分に段落スタイルが適用されるように合成してください。
合成が完了したテキストは「置換完了.txt」として保存します。(/01-材料/置換完了.txt)
070717-10.jpg


【7.完成したタグ付きテキストをInDesignに読み込ませる】

7-a.タグ付きテキストをInDesignに読み込ませる
「置換完了.txt」をタグ付きテキストとしてInDesignに読み込ませます。読み込み時のオプションは適宜設定してください。
また、フレームグリッドに読み込ませると、段落スタイルが適用されすに読み込まれます。テキストフレームに流し込んでも段落スタイルが適用されない、スタイル名に「+」が付く場合があります。この場合、流し込みが完了したら再度段落スタイルを適用してください。

7-b.ルビが正確に振られているかチェックする
ルビが正確に振られていない/全くルビが振られていない箇所がありますので、修正を加えます。

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

と、まあ、難解な説明と面倒な手順ですが、お困りの際はお試し下さいませ。
実は自分の備忘録用だったりするのは秘密w
No.137 / DTP /  comments(1)  /  trackbacks(0) /  PAGE TOP△
COMMENT TO THIS ENTRY
- from 丸山

Jeditのメニュー「ツール」にある
「漢字をひらがなに変換する」は
読みがなのバラ打ちに便利ですよ。
ご存知でしたらスイマセン。

2007.07.21.Sat / 00:43 / [ EDIT ] / PAGE TOP△

  非公開コメント
TRACKBACK URL OF THIS ENTRY

TRACKBACK TO THIS ENTRY

■特設

INDD 2016(2016年10月14日、お茶の水ソラシティで開催)



■Profile

尾花 暁(あかつき)

  • Author:尾花 暁(あかつき)
  • 性別:オス

    自称、DTPなんでも屋。
    [すきなもの]作業効率化のマネゴト・技術ネタ
    [苦手なもの]小さい画像のキリヌキ・責了時の修正

    ※公開後にエントリーの文章を修正することがあります。内容を大幅に変更・修正した場合は履歴を明記しますが、誤字脱字の修正など細かい変更に関しては明記しません。

    ご意見・ご要望はページ下部のメールフォームからお願いします。

■訪問者数累計

■お役立ち度

この日記のはてなブックマーク数

■お問い合わせ

名前:
メール:
件名:
本文:

CopyRight 2006 あかつき@おばなのDTP稼業録 All rights reserved.