2011年09月21日

InDesignから書き出したタグをEPUBのルビに置換する #denshi

 EPUBのルビは手動で作成するしかないのだろうか。たとえば、Dreamweaverのエクステンションにはルビを挿入するツールがあるが、あまり普及しているとはいえない。もともと、Webブラウザにはルビを正しく表示可能なものがほとんどないので、HTML作成ツールではルビ機能はなおざりになっている。InDesign 5.5を使うという手もあるが、バージョンアップしなくても効率的にルビを追加する方法を考えてみた。

  ルビの入力は原則的に手動で行うしかないが、XHTMLを開いてルビタグを挿入するのは極めて面倒なだけでなく、モニタでの確認も難しい。Sigilでテキストビューとコードビューの両方を開いて確認しつつ行なうしかない。しかしタグは挿入位置を間違えると、正しく表示できないし、タグに不正があるとファイル保存すらできないことがある。誰にでもできる方法とはとてもいえない。

 そこでInDesignで指定したルビを流用する方法を考えてみた。InDesignではタグ付きテキストを書き出すことが可能だ。InDesignのタグはXHTMLのタグではないが、文字列であることは同じなので、InDesignのタグ部分のみを選択して、ルビタグに置換すればよい。

 InDesignのルビをタグに書き出すと、ルビの指定によって書き出されるタグが異なる。当たり前といえば当たり前だが、ルビ設定にある

種類
揃え
位置


をデフォルトのままにして書き出すしかない。ということは、ルビタグに置換するには、印刷用のテキストから書き出すというわけにはいかない。テキストだけをInDesignに貼り込んで、デフォルトのままルビを追加していく。

110921-01.gif

 ルビを追加したテキストは、テキストを選択反転してファイルメニューから[書き出し]を選択する。[InDesignタグ付きテキスト]を選択すると、タグ付きテキストとして書き出される。あとは、テキストを選択して不要なテキストを削除し、整形してテキストエディタで一括置換する。

110921-02.gif

 整形すると次のようになる。

<cs:><crstr:おおかみうお>狼魚<cs:><cr:><crstr:>

 このデータを置換するのだが、少し困ったことがある。というのは、ルビ文字が先に記述されているのである。通常のルビタグでは

<ruby><rb>親文字</rb><rt>ルビ文字</rt></ruby>

という構成になる。親文字とルビ文字の配置が逆なのである。とはいえ、実際に試してみるしかない。親文字とルビ文字のタグ位置が逆さまの場合、EPUBでは正しく表示できるのだろうか。InDesignのタグは

<ruby><rt>おおかみうお</rt><rb>狼魚</rb></ruby>

という形のルビタグに置換できた。複数のルビでも、最初に整形しておけば一括して置換できるし、Jedit Xのように複数テキストの置換機能があれば、1アクションで置換は可能だ。

 ルビタグに置換したテキストをEPUBのXHTMLファイルに丸ごとペーストする。XHTMLの該当する部分に貼り込むだけなので作業は簡単だろう。ところがそのまま貼り込むと、ルビ文字が親文字の前に配置されてしまう。

スタイルシートでの指定なし
110921-03.gif

110921-04.gif

 ルビにならないのである。InDesign 5.5から書き出した場合も同じだが、EPUBのルビは親文字のタグを省略するようになっていて

<ruby>親文字<rt>ルビ文字</rt></ruby>

で記述するようになっている。手動で入力する場合はこちらのほうがてっとり早い。しかしこの場合は、InDesignのタグ付きテキストは使えないということになる。

 そこでルビタグにスタイルシートを使ってインラインテーブルでレイアウト位置を指定してみた。インラインテーブルを使うとタグ内のルビテキストが先行しても、ルビとして表示されるのである。つまり、InDesignのタグ付きテキストのルビはスタイルシートでインラインテーブルを使えば、EPUBではルビになるのである。

スタイルシートでインラインテーブルでレイアウト
110921-05.gif

110921-06.gif

 さらに、ルビタグにクラス指定を行うと、中付きと肩付きを使い分けることが可能だ。デフォルトではルビは中付きになるが、インラインテーブルで揃え位置をleftにすると、肩付きにすることも可能だ。インラインテーブルでは行の揃え位置を指定する必要があるが、InDesignのタグ付きテキストからルビタグへの置換が可能で、なおかつルビ位置も使い分けも可能だ。是非一度試していただきたい。

 
ラベル:EPUB ルピ
posted by 上高地 仁 at 16:25 | Comment(1) | TrackBack(0) | InDesignとEPUB | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
正規表現を使って、
<cs:><crstr:([^>]+)>([^<>]+)<cs:><cr:><crstr:>
を検索して、
<ruby><rb>$2</rb><rt>$1</rt></ruby>
に置換するのが正攻法と思います。
Posted by 通りすがり at 2013年10月24日 14:52
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック