イチから始める同人小説のePub化・mobi化 その2表紙を付けよう。
◆概要
前回の記事
では「最低限、電子書籍と呼べるもの」を作成しました。
今回はこれに表紙を付ける作業をやっていきます。
◆ePubを分解する
まずは前回作成した「東方恋鬼異聞サンプル.epub」ファイルをコピーして
「東方恋鬼異聞サンプル_表紙付.epub」を作っておきます。
バックアップ用です。
そしたら「東方恋鬼異聞サンプル_表紙付.epub」の拡張子を「.zip」に変更し、
UNZIP(解凍)します(拡張子を変更するとき警告されますが無視)。
それではUNZIPしたものの中身を解析していきましょう。
第一階層はこんな感じ。
この中のOEBPSフォルダを開きます。
ePubのメイン構成物っぽいものが出てきました。
上から順にざっと概要を説明すると
- 01.png
前回指定した挿絵 - bodymatter_0_0.xhtml ~ bodymatter_0_3.xhtml
改ページごとに分割されたxhtmlファイル - content.opt
そのePub全体を構成するファイル群を記述したxmlファイル
先述した画像の「META-INF」フォルダ内部にある
container.xmlファイルを見ても
「まずコイツ(content.opt)を読みに行ってね」
と記述してあるので、こいつを編集することになりそうです。 - nav.xhtml
目次ファイル - style.css および template.css
でんでんコンバータで自動的に生成されたCSSファイル
どちらも使用しているようですがぱっと見では差異が分からなかったので
WinMargeでdiffを取ってみました。
全ッ然違いました(人間の目がどれだけアホか示す好例)。
style.cssは縦書き用のスタイル
template.cssは汎用的なスタイル
をそれぞれ記述していました。
字間や行間を調整したいときはこれらのファイルをいじることになります。
面倒なので今回は触りません。 - toc.ncx
ePubリーダに目次情報を提供するためのファイルのようです。
◆表紙ファイルを指定する
さて、先述のように「ePubがどのように構成されているか」を記述しているのは
どうやら「content.opt」ファイルのようです。
こいつをテキストエディタで編集していきます。中身はXMLですので編集可能です。
さあ中身を見てみましょう。
記法が独特でちょっと面食らいますが、どのファイルを使っているか、ということは
<manifest></manifest>内に全て<item ~~~~>と書かれています。
さて、ここで表紙をどのように指定するのか調べてみました。
EPUBのベストプラクティス カバー画像の登録方法 | 電子書籍、電子出版のCAS-UBブログ
によれば、
EPUB3の仕様では、manifestのitem要素のproperties属性に「cover-image」という値を指定することでカバー画像であることを示します。EPUB3の方がシンプルになったわけです。
EPUB3では、例えば、cover.jpgというファイルがカバー画像であることを示すには次のように指定します。(idの値は可変)。
【EPUB3の例】
<item properties="cover-image" id="ci" href="cover.jpg" media-type="image/jpeg" />koboやiBooks3などの新しいEPUB3のリーダは、manifestのitem要素の属性を見ています。
とあります。
というわけで、ここに書かれているとおりにやってみましょう。
まずは表紙に用いる画像ファイルをOEBPSフォルダ内に配置します。
続いてcontent.optファイルを編集します。
赤枠で囲った箇所が表紙画像を指定している箇所です。
表紙についてはこれで作業終了です。
◆ePubに戻したい(願望)
さて、単純に、下図のようにフォルダをZIPして拡張子をepubに変えるだけでは
リーダ側でepubとして認識してくれません(なんてこった)。
ePubリーダでファイルを選択しても
エラーを吐いてしまいます……
なお、内容を編集したために読み込めなくなった、ということではないようです。
epub⇒zipに拡張子変更⇒UNZIP⇒直後にZIP⇒epubに拡張子変更
でも同様の現象を確認しました。
◆どうやってePubに戻すのか
例によって、でんでんコンバータの開発者様より解説がありました。
次の要件を満たした形でZip圧縮することが仕様によって定められています。
- mimetype ファイルをアーカイブの先頭に配置する
- mimetype ファイルは圧縮や暗号化されていてはならない
- Zipコンテナは extra field を含んではならない
これは Windowsに標準で搭載されているZipではできませんし、Macでもやや面倒なコマンドを実行しなければなりません。でもEPUBの仕様に沿って圧縮してくれるソフトがありますのでとっとと導入するのがお薦めです。
ということですので(なんちゅー罠や)、
とっとと記事中で紹介されていた「ePubPack」を使います。
インストール・起動したら、ダイアログからmimetypeファイルを選択します。
保存先と保存するファイル名を指定します。
よろしくお願いします。
うまくいったようです。
※ファイル群の検証はしないからソースファイルの内容が間違ってても知らんぞ、
と追記してあります。そのへんは自分でやれと。
ともあれePubが作成されました。
もういちどReadiumで読み込めるか試してみましょう。
で……
できたァーーーーー!
表紙を付けることができました。
◆手順まとめ
-
でんでんコンバータで作成したePubファイルをZIPとして解凍・展開する
-
「OEBPS」フォルダ内にある「content.opt」ファイルをテキストエディタで開き
<manifest></manifest>タグ内に
<item properties="cover-image" id="ci" href="cover.jpg" media-type="image/jpeg" />
を追加する(太字は環境に合わせて変更する) -
ePubPackでePub形式に戻す。
以上です。
調べながらやったら2hかかりましたが、知ってさえいれば5分かかりませんね。
今回は手順そのものは簡単だったため、
新たなサンプルファイルは用意しませんでした。
前回の記事で使ったサンプルファイルをそのまま使ってみてください。
表紙の画像データが同梱されているはずです。
次回はePubをmobi化します。
といっても、Kindle Previewer にePubを食わせるだけですが。
※もし当記事の内容につきまして間違いや疑問点がありましたら
Twitterへのリプライか、当記事へのコメントでご指摘願います。