電子書店で販売するためのEPUB制作実践――第3回電書ラボ公開セミナーレポート

電書ラボセミナー

「電書ラボ」が10月6日、神保町の国立情報学研究所で開催した公開セミナーの第3回「電子書店で販売するためのEPUB制作実践」を、現地からレポートします。若干荒い部分があると思いますが、ご容赦ください。

EPUBの作り方03 構造を詳細に見てみる

講師は田嶋淳さん(電書ラボ・三陽社)。普段は難易度の高いオーダーメイド的なEPUB作成を行っているそうです。以下、常体でいきます。

田嶋淳さん

EPUBの内容を詳細に見てみる

EPUBは拡張子が .epub になっているけど実態は ZIP なので、ZIP解凍すれば簡単に中身が見られる。ただし、圧縮するのはちょっと面倒。そのまま圧縮しても駄目。「ePub Packager」などのツールを使うのがラク。ただしMacだと管理ファイルが混在してしまうので、取り除いてあげる必要がある。

ターミナルでのEPUB圧縮コマンドは以下の通り。

ターミナルでのEPUB圧縮コマンド

● 田嶋さんから補足

EPUBの圧縮のところですが、詳細にはFinderのファイル管理用の不可視ファイル「.DS_Store」がEPUBのファイルにそのまま入ってしまうとepubcheckでエラーになるので、例えば「DS Store Remover」http://veadardiary.blog29.fc2.com/blog-entry-3656.htmlなどであらかじめ取り除いてからEPUB Packagerなどで圧縮してやる必要があります。専用圧縮ファイルが必要な理由はmimetypeを非圧縮にしてファイルの先頭に配置してやる必要があるため。なのでその条件をクリアできるならシェルスクリプト等で自前で圧縮してもよいです。

電書協ガイド仕様のEPUBファイル構成は以下の通り。

電書協ガイド仕様のEPUBファイル構成

item フォルダの中身は以下の通り。

item フォルダの中身

navigation-documents.xhtml は論理目次。同じファイルを指定しても構わない仕様だが、電書協ガイドでは普通の目次と別のファイルを指定することになっている。

● 田嶋さんから補足

目次に関してですが、EPUBの目次はビューア内のメニューで表示させるための論理目次とコンテンツ内に通常のページとして挿入するHTML目次があり、仕様としては同一のファイルを指定してもよいことになっています。

が、電書協ガイドでは別個のファイルを作ることになっており、論理目次はビューアのシステム内部で表示させるものという性格もあってあまり装飾的な作り込みはできないので、これは方針としては妥当だと考えております。

.opf がEPUB の中心的な要素。テキストエディタで開ける。

.opf を開いた状態

.opf の Manifest ブロックでは、EPUBを構成するファイルと場所、ID名などが指定されている。IDはユニークじゃないと駄目。JavaScriptファイルなどを使う場合も、必ずここに記述する。

.opf の Spine はページの並び順や見開き指定などを行うブロック。

● 参考資料:

実験① Manifest から1行消すとどうなる?

→ EPUB CHECK でエラーがいっぱい出る。

例えば、再校などで修正するとき、「ページを分割して欲しい」という要望や、画像を1枚増やすなどの処理をしたら、.opf の Manifest も書き換える必要がある。

実験② Spine の行の並び順を変えるとどうなる?

→ ページの並び順が変わる。

例えば、「はじめに」が目次の前に入っているのを、目次の後に移動する場合は、 .opf の Spine を書き換えればいい。

実務で使っているのは?

社内用アプリを使っている。目次も自動生成される(そこから体裁を整えるなどの工程が必要になる場合も)。

社内用アプリ

InDesignデータからのXML→XHTMLの生成

InDesign から EPUB を吐き出しても使い物にならないので、こういうやり方をしている。

InDesignデータからのXML

実はこれは過去にブログ「電書魂」で解説している。

XHTMLファイルを効率的に編集する

テキストエディタでの正規表現

テキストエディタはいろいろなものがあるので、正規表現に対応してるものならなんでも。田嶋氏は「mi」を使っている。

基礎的な正規表現パターンマッチの例は以下の図を参照。

正規表現

検索置換だけではなく、触らなければならない可能性がある場所をハイライトしておく、という使い方が便利。

Perl とかなら、ウェブに正規表現に関する情報はいっぱいある。

mi だとマルチファイル検索(同じフォルダ内にある別のファイルからも検索結果を返す)ができる。EPUBだと .xhtml ファイルが複数になる場合が多いので、非常に便利。というか、これがないと仕事にならない。

miのマルチファイル検索

Perl を利用した置換処理

テキストエディタでは追いつかないような件数の多い処理などは、Perl を使っている。下図は相互リンクの注の連番処理記述例。

相互リンクの注の連番処理記述例

セミナーで使用したスライド

電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」 from Jun Tajima

電書ラボチェッカー

講師は大江和久さん(電書ラボ・ラング)。左右に動いていたので斜めな写真になってしまいました。

大江さん

自動化できることは、みんなコンピュータにやらせましょう! というウェブツール。EPUBファイルの状態を、一覧で見えるようにする。完成したEPUBファイルの、形式(フォーマット)と内容(埋め込まれたメタデータや文字コード)を最終チェックするためのもの。

チェック結果は下図のような形で表示される。一般的なEPUBビューワでうまく表示されていない文字が使われていないかどうかとか、埋め込まれている画像外字一覧とか、いろいろな情報を一覧できる。

チェック結果の画面

しっかりチェックして、問題の起きない EPUB を制作しよう!

タイトルとURLをコピーしました