「電書ラボ」が10月6日、神保町の国立情報学研究所で開催した公開セミナーの第3回「電子書店で販売するためのEPUB制作実践」を、現地からレポートします。若干荒い部分があると思いますが、ご容赦ください。
EPUBの作り方03 構造を詳細に見てみる
講師は田嶋淳さん(電書ラボ・三陽社)。普段は難易度の高いオーダーメイド的なEPUB作成を行っているそうです。以下、常体でいきます。
EPUBの内容を詳細に見てみる
EPUBは拡張子が .epub になっているけど実態は ZIP なので、ZIP解凍すれば簡単に中身が見られる。ただし、圧縮するのはちょっと面倒。そのまま圧縮しても駄目。「ePub Packager」などのツールを使うのがラク。ただしMacだと管理ファイルが混在してしまうので、取り除いてあげる必要がある。
ターミナルでのEPUB圧縮コマンドは以下の通り。
● 田嶋さんから補足:
EPUBの圧縮のところですが、詳細にはFinderのファイル管理用の不可視ファイル「.DS_Store」がEPUBのファイルにそのまま入ってしまうとepubcheckでエラーになるので、例えば「DS Store Remover」http://veadardiary.blog29.fc2.com/blog-entry-3656.htmlなどであらかじめ取り除いてからEPUB Packagerなどで圧縮してやる必要があります。専用圧縮ファイルが必要な理由はmimetypeを非圧縮にしてファイルの先頭に配置してやる必要があるため。なのでその条件をクリアできるならシェルスクリプト等で自前で圧縮してもよいです。
電書協ガイド仕様のEPUBファイル構成は以下の通り。
item フォルダの中身は以下の通り。
navigation-documents.xhtml は論理目次。同じファイルを指定しても構わない仕様だが、電書協ガイドでは普通の目次と別のファイルを指定することになっている。
● 田嶋さんから補足:
目次に関してですが、EPUBの目次はビューア内のメニューで表示させるための論理目次とコンテンツ内に通常のページとして挿入するHTML目次があり、仕様としては同一のファイルを指定してもよいことになっています。
が、電書協ガイドでは別個のファイルを作ることになっており、論理目次はビューアのシステム内部で表示させるものという性格もあってあまり装飾的な作り込みはできないので、これは方針としては妥当だと考えております。
.opf がEPUB の中心的な要素。テキストエディタで開ける。
.opf の Manifest ブロックでは、EPUBを構成するファイルと場所、ID名などが指定されている。IDはユニークじゃないと駄目。JavaScriptファイルなどを使う場合も、必ずここに記述する。
.opf の Spine はページの並び順や見開き指定などを行うブロック。
● 参考資料:
実験① Manifest から1行消すとどうなる?
→ EPUB CHECK でエラーがいっぱい出る。
例えば、再校などで修正するとき、「ページを分割して欲しい」という要望や、画像を1枚増やすなどの処理をしたら、.opf の Manifest も書き換える必要がある。
実験② Spine の行の並び順を変えるとどうなる?
→ ページの並び順が変わる。
例えば、「はじめに」が目次の前に入っているのを、目次の後に移動する場合は、 .opf の Spine を書き換えればいい。
実務で使っているのは?
社内用アプリを使っている。目次も自動生成される(そこから体裁を整えるなどの工程が必要になる場合も)。
InDesignデータからのXML→XHTMLの生成
InDesign から EPUB を吐き出しても使い物にならないので、こういうやり方をしている。
実はこれは過去にブログ「電書魂」で解説している。
XHTMLファイルを効率的に編集する
テキストエディタでの正規表現
テキストエディタはいろいろなものがあるので、正規表現に対応してるものならなんでも。田嶋氏は「mi」を使っている。
基礎的な正規表現パターンマッチの例は以下の図を参照。
検索置換だけではなく、触らなければならない可能性がある場所をハイライトしておく、という使い方が便利。
Perl とかなら、ウェブに正規表現に関する情報はいっぱいある。
mi だとマルチファイル検索(同じフォルダ内にある別のファイルからも検索結果を返す)ができる。EPUBだと .xhtml ファイルが複数になる場合が多いので、非常に便利。というか、これがないと仕事にならない。
Perl を利用した置換処理
テキストエディタでは追いつかないような件数の多い処理などは、Perl を使っている。下図は相互リンクの注の連番処理記述例。
セミナーで使用したスライド
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」 from Jun Tajima
電書ラボチェッカー
講師は大江和久さん(電書ラボ・ラング)。左右に動いていたので斜めな写真になってしまいました。
自動化できることは、みんなコンピュータにやらせましょう! というウェブツール。EPUBファイルの状態を、一覧で見えるようにする。完成したEPUBファイルの、形式(フォーマット)と内容(埋め込まれたメタデータや文字コード)を最終チェックするためのもの。
チェック結果は下図のような形で表示される。一般的なEPUBビューワでうまく表示されていない文字が使われていないかどうかとか、埋め込まれている画像外字一覧とか、いろいろな情報を一覧できる。
しっかりチェックして、問題の起きない EPUB を制作しよう!