イチから始める同人小説のePub化・mobi化 その2表紙を付けよう。

◆概要

前回の記事

ktkrao1.hatenablog.com

では「最低限、電子書籍と呼べるもの」を作成しました。

今回はこれに表紙を付ける作業をやっていきます。

 

ePubを分解する

まずは前回作成した「東方恋鬼異聞サンプル.epub」ファイルをコピーして
「東方恋鬼異聞サンプル_表紙付.epub」を作っておきます。
バックアップ用です。

f:id:KtkrAo1:20160822050509p:plain

 

そしたら「東方恋鬼異聞サンプル_表紙付.epub」の拡張子を「.zip」に変更し、
UNZIP(解凍)します(拡張子を変更するとき警告されますが無視)。

f:id:KtkrAo1:20160822050821p:plain

 

それではUNZIPしたものの中身を解析していきましょう。

第一階層はこんな感じ。

f:id:KtkrAo1:20160822051002p:plain

 

この中のOEBPSフォルダを開きます。

f:id:KtkrAo1:20160822051053p:plain

 

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を取ってみました。

    f:id:KtkrAo1:20160822053119p:plain

    全ッ然違いました(人間の目がどれだけアホか示す好例)。
    style.cssは縦書き用のスタイル
    template.cssは汎用的なスタイル
    をそれぞれ記述していました。
    字間や行間を調整したいときはこれらのファイルをいじることになります。
    面倒なので今回は触りません。
  • toc.ncx
    ePubリーダに目次情報を提供するためのファイルのようです。

 

◆表紙ファイルを指定する

さて、先述のように「ePubがどのように構成されているか」を記述しているのは
どうやら「content.opt」ファイルのようです。
こいつをテキストエディタで編集していきます。中身はXMLですので編集可能です。

さあ中身を見てみましょう。

f:id:KtkrAo1:20160822055050p:plain

記法が独特でちょっと面食らいますが、どのファイルを使っているか、ということは

<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フォルダ内に配置します。

f:id:KtkrAo1:20160822060157p:plain

 

続いてcontent.optファイルを編集します。

赤枠で囲った箇所が表紙画像を指定している箇所です。

f:id:KtkrAo1:20160822063107p:plain

 

表紙についてはこれで作業終了です。

 

ePubに戻したい(願望)

さて、単純に、下図のようにフォルダをZIPして拡張子をepubに変えるだけでは
リーダ側でepubとして認識してくれません(なんてこった)。

f:id:KtkrAo1:20160822061101p:plain

f:id:KtkrAo1:20160822062202p:plain

 

ePubリーダでファイルを選択しても

f:id:KtkrAo1:20160822063914p:plain

 

エラーを吐いてしまいます……

f:id:KtkrAo1:20160822063924p:plain

 

なお、内容を編集したために読み込めなくなった、ということではないようです。

epub⇒zipに拡張子変更⇒UNZIP⇒直後にZIP⇒epubに拡張子変更

でも同様の現象を確認しました。

 

◆どうやってePubに戻すのか

例によって、でんでんコンバータの開発者様より解説がありました。

blog.livedoor.jp

次の要件を満たした形でZip圧縮することが仕様によって定められています。

  • mimetype ファイルをアーカイブの先頭に配置する
  • mimetype ファイルは圧縮や暗号化されていてはならない
  • Zipコンテナは extra field を含んではならない

これは Windowsに標準で搭載されているZipではできませんし、Macでもやや面倒なコマンドを実行しなければなりません。でもEPUBの仕様に沿って圧縮してくれるソフトがありますのでとっとと導入するのがお薦めです。

ということですので(なんちゅー罠や)、
とっとと記事中で紹介されていた「ePubPack」を使います。

インストール・起動したら、ダイアログからmimetypeファイルを選択します。

f:id:KtkrAo1:20160822065133p:plain

 

保存先と保存するファイル名を指定します。

f:id:KtkrAo1:20160822065516p:plain

 

よろしくお願いします。

f:id:KtkrAo1:20160822065523p:plain

 

うまくいったようです。

f:id:KtkrAo1:20160822065559p:plain

※ファイル群の検証はしないからソースファイルの内容が間違ってても知らんぞ、
 と追記してあります。そのへんは自分でやれと。

 

ともあれePubが作成されました。

もういちどReadiumで読み込めるか試してみましょう。

f:id:KtkrAo1:20160822065816p:plain

 

で……

f:id:KtkrAo1:20160822070012p:plain

できたァーーーーー!

表紙を付けることができました。

 

 

◆手順まとめ

  1. でんでんコンバータで作成したePubファイルをZIPとして解凍・展開する

  2. 「OEBPS」フォルダ内にある「content.opt」ファイルをテキストエディタで開き
    <manifest></manifest>タグ内に
    <item properties="cover-image" id="ci" href="cover.jpg" media-type="image/jpeg" />
    を追加する(太字は環境に合わせて変更する)

  3. ePubPackでePub形式に戻す。

以上です。
調べながらやったら2hかかりましたが、知ってさえいれば5分かかりませんね。

今回は手順そのものは簡単だったため、
新たなサンプルファイルは用意しませんでした。

前回の記事で使ったサンプルファイルをそのまま使ってみてください。
表紙の画像データが同梱されているはずです。

 

 

次回はePubをmobi化します。

といっても、Kindle Previewer にePubを食わせるだけですが。

 

 

※もし当記事の内容につきまして間違いや疑問点がありましたら
 Twitterへのリプライか、当記事へのコメントでご指摘願います。

 

 

©青聿書房 Aofude Shobo