2010年4月24日土曜日

ePub形式の電子書籍を作成してみる

5月に発売になるiPadや、日本でも購入可能なKindleなど、魅力的なデバイスには事欠かなくて困っちゃいますが、特に電子書籍に興味があります。本って、文庫や新書ならかさばらないので良いけれど、ハードカバーとかになると鞄がパンパンになってしまい、ノートPCとどちらを持って行くか悩みがち。なので、電子書籍ならかさばらなくて良いかなーと、かなり期待してます。まあ、日本では大手出版社が電子書籍化に対して慎重なため、日常生活で使えるようになるのは数年後でしょうが(消費者の利益観点ではなく出版社の収益観点で慎重になってる、ってのが残念ですが)。
とは言え、やっぱり興味があるので電子書籍関係の情報を調べてたところ、電子書籍の作成方法について面白そうな事を発見。電子書籍フォーマットの1つに「ePub」という形式があり、iPadやSony Readerで採用されている電子書籍フォーマットなのですが、ePubはXHTMLベースなので簡単に作れそうな事が判明。iPad向けの電子書籍を自作できちゃうって事ですか?
という事で、早速ePub形式で電子書籍を作ってみる事にした。

ePub形式は、簡単に言うと以下のようなファイル。
  • コンテンツファイル(本文)とメタ情報ファイル(書籍情報)をzipで1ファイルに固めた形式
    • 拡張子は「.epub」
  • コンテンツファイルはXHTML形式で作成
    • 画像ファイル、CSSファイルも含められる
  • メタ情報ファイルはXML形式で作成
    • タイトル、著者名、出版日、キーワード、著作権表記、などなど
    • 目次
    • コンテンツファイル一覧
ePub形式の仕様はIPDFという米国の出版社団体が策定・推進している。IPDFのサイトでePub形式の仕様書が公開されており、ePub形式は以下の3つの仕様で策定されている。
  • OPS(仕様書原文日本語訳
    • コンテンツファイルのフォーマットに関する仕様書
    • サポートされているXHTMLタグ・属性、画像形式、CSS属性について定義している
  • OPF(仕様書原文日本語訳
    • メタ情報ファイルのフォーマットに関する仕様書
    • XMLタグや記述の仕方について定義している
    • 目次情報のフォーマットとしてNCXをサポートしている
  • OCF(仕様書原文Google日本語訳
    • .epub形式ファイルの物理的な構成に関する仕様書
    • zipのディレクトリ構成、ファイル名の規則などについて定義している

全部を読むのはしんどいし、「このファイルは圧縮・暗号化しちゃダメ」みたいなzipの固め方にもお作法があるらしい(横浜工文社さんの説明が詳しい)。めんどくさいから、手っ取り早くePub形式の電子書籍を作れるオーサリングソフトないかなーと探してみたら「Sigil(シジル)」というのがあった。

20100422122718
Sigilはオープンソースのフリーな電子書籍エディタ。WYSIWYG形式のユーザーインターフェースなので、Wordでの文書作成と同じ感覚で文書編集ができる。XHTMLソースやCSSの表示・編集もできるようになっているので、俺みたいな「やっぱHTMLはタグをテキストエディタでごりごり書かないと」みたいな変態さんもOK。Wordというよりも、ブログエディタに近いかも。
Sigilのファイル保存形式は独自形式(拡張子「.sgf」)だが、.epubや.html、.txtなどの他形式ファイルを読み込む事も可能。

20100423131514

HTML形式を読み込めるので、試しに

  1. ブログのレシピ記事を画像ごとローカルに保存
  2. ヘッダやサイドバーなどの不要なタグを削除してSigilで読み込み
  3. レシピ集の電子書籍版を作成

という事をやってみる。
まず、ブログのレシピ記事一式をブラウザで丸ごと保存する。
次に、HTMLファイルをテキストエディタで開き、ヘッダやサイドバー、スクリプトなどの不要なタグをごっそり削除。なぜかわからないけど、2ペインや3ペイン構造のHTMLを読み込むと、一部の文章がごっそり消されてしまう。本当はこういうのは手作業じゃなくてXSLTとか使うのがスマートなんだろうけど、ただの実験なので今回はパス。
Sigilに読み込んだところ、こんな感じになった。

20100423133302

見出しに<a>タグ付いててうっとうしいので、テキストエディタの置換とかでガッツリ消したり、レイアウトをちょっといじるためにXHTMLソースをいじってみたところ、Book Viewの再描画にえらく時間がかかる。こんなんじゃやってられないなーと思ったら、「Chapter Break」という機能がある事に気がついた。これは、章ごとにXHTMLを分割してくれる機能で、指定した場所でボタンを押すだけで、その前後で文章を2ファイルに分割してくれる。これで1ファイルあたりのサイズを小さくしたところ、再描画時間も短くなって作業しやすくなった。

20100424141043 
見出しとかの装飾を一括して指定したい時は、CSSを作成する。左側のBook browerの[Styles]フォルダを右クリックして[Add new item…]を選択すれば、CSSファイルを追加できる。[Add existing item…]を選択すれば、CSSファイルを取り込む事もできる。

20100424142009

書籍のメタ情報はツールバーの[Tools]から設定できる。
[Tools]→[Meta Editor]を選択すると、書籍のタイトルや著者、その他OPFで定義されているメタ情報を設定できる。

20100424142521 
目次情報の設定する場合は[Tools]→[Toc Editor…]を選択する。ただし、目次情報は<h1>~<h5>のタグを付けた見出しが自動的に選択・設定されるようになっており、どの見出しを目次に含めるか含めないかの設定だけしかできない。目次情報を設定するNCXの仕様では、目次に指定可能なタグの縛りは特に無いので(アンカーリンクのURIを指定するだけの仕様)、これはSigilの制限。まあ、見出しに<h1>~<h5>タグをちゃんと使うというお作法だと思えば良いのだろう。
20100424145033
一通り編集が終わったら、[File]→[Save As…]で.epub形式の電子書籍ファイルを保存できる。
早速、電子書籍ビューアーで開いてみる。使用するのはAdobe製の無償電子書籍ビューアー「Adobe Digital Editions」。

・・・思いっきり文字化けしてる。
20100424154110
調べてみたところ、どうやらXHTMLファイルの<html>タグにlang属性を指定しないと、電子書籍ビューアー側が日本語を表示できないらしい。
SigilのXHTMLソース編集で、<html>タグに以下の属性を追加する。

  • xml:lang="ja" lang="ja"
20100424154540
修正してから再度Adobe Digital Editionsで表示。今度は上手くいった。
20100424155123
初めて電子書籍を作ってみたが、思ったよりは簡単だった。ただ、使用した編集ソフトのSigilは日本語対応や性能など、細かい使い勝手がよろしくないので、一般人が使うには敷居が高く、まだまだ普及しそうにないなあ。もしかしたら他に使い勝手の良いソフトがあるかもしれないけど。何かこういうのってMS Wordが対応してくれるんじゃないかと密かに期待。
ちなみに、完成したePubファイルをアップしてみた(ダウンロードはこちらから)。

0 件のコメント:

コメントを投稿