お知らせ

・運営関係

Gihyo Digital PublishingのEPUBをmobiに変換してKindleで読む

Kindleファンの皆さん,こんにちは。技術評論社の高橋です。

大分経ちますが前回の終わりに,Gihyo Digital PublishingのEPUB3内部構造について説明するという話を振っていましたが,諸般の事情から先日『EPUB3用XHTML作成ガイド - Gihyo Digital Publishing版』を執筆し,こちらにEPUBで使用されるXHTMLの基本の話をまとめてみました。ご興味あればご覧ください。コメントあればフォームや@k_taka宛にご連絡いただければ幸いです。XHTML以外については,そのうちということで。

E-ink型の電子書籍端末,Kindle

さて,日本のAmazonはKindleを現在販売していませんが,すでにKindleをお持ちの方もいるでしょう。わたしもそのような一人なのですが,E-ink型の電子書籍読書端末として先日発売されたKindle 4Gは,デバイスの軽さ,レスポンスの速さなどの点で良い端末だと思います。E-ink端末特有の画面描画書き換え処理も,Kindleの処理速度であればほとんど気にならないでしょう。

iPadとKindle(表示しているのは今回調整して変換させたmobi)

しかし,残念ながらKindleはEPUBに対応していないため,Gihyo Digital Publishingから購入したEPUBをそのままKindleへコピーしても読めないのです。Kindle上で読める電子書籍のフォーマットはいくつかありますが,このような場合に利用するのがmobiというフォーマットです。そこで今回はタイトルのとおり,Gihyo Digital PublishingのEPUBをmobiに変換して,Kindleでまずまず良い感じに読むための一例を紹介します。

なお,Gihyo Digital Publishingでは現在のところmobiをサポートしていませんので,今回の方法がKindleでの閲覧を保障するものではないことにご注意ください(個人的にはmobiよりもKF8に注力したいと考えています)。

EPUBからmobiへの変換にcalibreを利用する

今回は手軽に作業するために,電子書籍管理のマルチソフトであるcalibreのみを利用します。calibreの詳細については,こちらの連載を参考ください。

calibreはフォーマット変換機能を含んでいるため,簡単にEPUBをmobiに変換することができます。まずは,当サイトからダウンロードしたEPUBをドラッグアンドドロップ等でcalibreに追加します。もしかしたら追加した書籍の書名がサブタイトルしか表示されないかもしれませんが,ここはひとまず気にしないことにしてください(calibreもEPUB3に完全対応しているわけではないので。もちろん正しい書名に修正してもらうと扱いやすいと思います)。

その後,calibre上で該当書籍を右クリックして,[本を変換][個別に変換]を選択します。

電子書籍管理ソフトcalibre

すると変換画面([書誌情報]タブ)が表示されます。左上の[入力フォーマット]がEPUBになっていることを確認して,右上の[出力フォーマット]をMOBIにしてください。タイトルがおかしい場合には,ここで修正しておきましょう。[タイトル]の欄で正しいタイトルを入力してください。これで最低限の設定は終わるのですが,このまま変換画面の右下にあるOKボタンを押して変換した場合,Kindleでの表示がイマイチなmobiができあがってしまいます。

デフォルトのEPUB→MOBI変換だと章タイトルが消えていたり,箇条書きの数字がうるさい

そこで,変換画面の各タブの項目を設定していきます。[外観]タブでは,以下のとおりです。

calibreの設定画面([外観]タブ)

[基本フォントサイズ]を15.0ptに,[フォントサイズのキー]は空欄に,[最小の行高さ]を200.0%に,[行間]を0.0ポイントに,[入力の文字コード]を空欄に設定します。

また,[段落の間の間隔を削除する][段落の間に空行を入れる]のチェックを外します。[テキスト揃え]はオリジナルを選択します。その下の6つのチェックボックス([記号文字を変換する]など)のチェックもすべて外します。

その後,Extra CSSに以下のコードをコピーペーストで貼り付けてください(作り込んでないため,多少怪しさがあるCSSですが)。

.content .titlepage,
.content .titlepage header {
  margin: 0 !important;
  padding: 0 !important;
}
.content .titlepage h1,
.content .titlepage h2 {
  margin: 0 !important;
  text-indent: 0 !important;
}
.content p {
  text-indent: 1em;
  margin: 1em 0;
}
.content ul li p,
.content ol li p,
.content dl dd p {
  margin: 0 !important;
}
.content .rearnotes ol li p {
  font-size: x-small !important;
}
.content figcaption {
  font-size: x-small !important;
}
.content table td,
.content table th,
.content pre samp,
.content pre code[class^="language"] {
  font-size: x-small !important;
}

[Filter Style Information]では[color]のみにチェックをつけます。以上で[外観]タブの設定は終了です。

[ヒューリスティック]のタブでは[ヒューリスティック処理を有効にする]にチェックされていないないことを確認します。

[ページ設定]のタブでは[出力プロファイル]にKindleを,[入力プロファイル]にDefault Input Profile,余白は各5.0ポイントが選択されいてることを確認します。

[構造の検出]タブでは,[章の判別]に以下をコピーペーストしてください(class属性の属性値がcotentとなっているh1要素を指定しています)。

//h:h1[re:test(@class, "content", "i")]

以降の項目はデフォルトの設定で,[章のマーク]はpagebreak,その下の3つの項目のうち[偽のマージンを削除する]のみにチェックします。また,[この前に改ページを挿入]には/が記述されていることを確認してください。

[目次]のタブはデフォルトの設定のままで構いません。一応デフォルトの設定は[目次に追加するリンクの数]が50,[章のしきい値]が6で,他の項目はチェックなし,もしくは空欄です。

[検索置換]のタブは3つの表現をすべて使います(本当はもっと使いたいのですが)。

1つめの表現
  • 検索に使う正規表現:<(header|h1).*hidden="hidden"[^\x00]+?</\1>
  • 変換するテキスト:(空欄)
2つめの表現
  • 検索に使う正規表現:<(/?)ol
  • 変換するテキスト:<\1ul
3つめの表現
  • 検索に使う正規表現:<table
  • 変換するテキスト:<table border="1"

[MOBI出力]のタブはデフォルトの設定のままで構いません。デフォルトの設定は,すべての項目にチェックが外れた状態で,[Kindleオプション]の[私的なドキュメントのタグ]に[PDOC]のみを入れた形です。

[デバッグ]のタブは空欄で構いません。

以上で変換の設定が終了したので,変換画面の右下にあるOKボタンを押してください。変換時間は多少かかります。calibreの本体画面の右下にあるジョブ数が1から0になったら変換終了です。

その後,KindleをUSBで接続してください。calibreに認識されます(ライブラリに[デバイス上]という項目が現れるはずです)。Kindleに移したい書籍を右クリックして,[デバイスに送信][メインメモリに送信]と選択すれば,Kindleにmobiファイルが送られます。

さて,USBケーブルを抜いてKindleで確認してみましょう。

変換時に調整をかけると、ある程度見やすくなる

まあまあ見やすいmobiができたと思いますが,いかがでしょうか。駆け足でしたが以上になります。

今後とも,電子書籍のより良い読書体験を。

お知らせ一覧