Kindle用のepubを作成する場合、忘れてはならないことがiPhoneでの表示テストである。Kindle Previewerである程度は表示内容を確認できるが、実際にはダウンロードされたKindleブックの大半はiOSで読まれていると思われる。iPhoneやiPadでの確認は避けて通れない。
Kindleではmobiファイルという形式を使う。Kindle用のmobiファイルはAndroidのKindleアプリではそのまま開くことができる。MacintoshでもBluetoothで同期すればデバイス内のファイルをブラウズできるのでその中のKindleフォルダにコピーするだけでいい。曇天文庫などは、mobiファイルもそのままダウンロードできるので、コピーするだけで本が読める。
Kindle用に作成したepubファイルは、Kindle Previewerでmobiファイルを作成できる。Kindle Previewerの[デバイスのデバイスモードの設定]で「Kindle Paperwhite」を選択して変換すると、mobiファイルが作成されるので、それをそのままAndroidのKindleアプリに投げればよい。
*Kindle Previewerの[デバイスのデバイスモードの設定]で「Kindle Paperwhite」を選択。
ややこしいのはiPhoneで表示するときである。[デバイスのデバイスモードの設定]で「iPhone用Kindle」を選択して、epubファイルをKindle Previewerのウィンドウにドラッグする。Kindle Previewerはまずmobiファイルを作成して続いて、iPhone用の「azk」の拡張子の付けられたファイルを作成する。このazkファイルは、iPhoneのKindleアプリにコピーするのだ。
AndroidではBluetooth経由でコピーできたが、iPhoneではそうはいかない。iPhoneとMacintoshのBluetooth接続では、ネットワーク接続しかできないので、Kindleアプリ内のフォルダを表示することができない。意図的に機能が制限されているとしか思えない。したがって、azkファイルはiTunesとiPhoneを同期してアプリ内にファイルを転送するしかない。
iPhoneでチェックが必要なのは、とくにepub内に画像を配置しているときである。テキストだけであればあまりレイアウトの違いはないが、画像の処理方法はKindle PreviewerのKindle Paperwhiteでの表示と、iPhoneでの表示は異なってくることがある。というのは、Kindleでは画像の表示サイズはパーセントで指定できるが、iPhoneではパーセントは無視されるからだ。iPhoneではピクセルでの指定が必要となる。
*Kindle Previewerでの回り込み画像。画像のサイズはパーセントで指定している。
しかし画像の大きさをピクセルで指定すると、デバイスによってレイアウトが大きく異なってしまう可能性がでてくる。Kindleでは一ページ内にテキストと画像が合わせて表示されても、iPhoneでは画像が次のページに分割されてしまうことになる。パーセントで指定したい場合と、ピクセルで指定したい場合を使い分けることができないのである。
またazkファイルには別の問題もある。それはファイルサイズが大きくなると、iTunesからKindleアプリにファイルを転送できなくなることだ。だいたい10MBを超えると怪しくなってしまう。そのため固定レイアウトではiPhoneでのチェックはかなり難しい。
iPhoneでepubファイルを確認するには、少し乱暴だが、Kindleアプリを使わずにiBooksにepubをそのままコピーするのだ。iBooksはiTunes経由で同期する分には、epub2でもepubcheckでエラーが表示されたファイルでも表示するのでそのまま読むことができる。
Kindleに申請したあとプレビューファイルをiPhoneにダウンロードしたものと、iBooksにコピーしたepubを比べてみると、完全に同じではないがほぼ表示が同じだった。回り込み画像をパーセントで指定していると、そのスタイルシート指定は無視されて、画像が左右一杯にレイアウトされてしまう。iBooksもiPhoneのKindleアプリも同じようにである。Androidでは指定通りの比率で画像は配置されるのだ。
*iBooksでオリジナルのepubを開く。画像が相対指定が解除されている。
*同じようにKindleからダウンロードしたファイルをiPhoneのKindleアプリで開く。画像の相対指定は無視されている。回り込みの扱いは多少異なっている。この場合、画像の幅をピクセル値で指定して画像を小さくすることでテキストがうまく回り込むように指定するしかない。
どうもiPhoneでの表示はKindleアプリといえども、iBooksに準拠しているのでないかと思われる。アマゾンの立場では、自社のデバイスもAndroid用のKindleアプリも、iOS用のアプリも同じ表示結果になるものを使いたいだろう。アマゾンはepub3そのものに準拠することはあまり考えておらず、最低必要限度のタグとcssのセットがあればいいと考えているはずだ。
ところがAppleはそれを認めず、epub3に準拠したファイルをiOSのKindleアプリに要求していると考えられる。実際にKDPで変換されたxhtmlファイルはepub3用に変換されているようだ。iOSの内部機能を使うと、それしか選択肢がないということなのかもしれないが、それでも画像の配置方法(つまり画像幅の相対指定を使うこと)を統一することはできるのではないか。
おそらくiOSでのepubはSafariのレンダリングエンジン「WebKit」を丸ごと使わざるを得なくなっているのだろう。iOSのKindleアプリの仕様は正確にはKF8ではないかもしれない。iOSでのKindleアプリが当初トラブルを多く抱えていたのは、iPhone用のファイル変換がうまくいっていなかったためだと思われる。
Kindle Previewerが書き出すazkファイルは、仕様がゆるいKindle用のepubファイルをepub3に変換したファイルだろう。mobiファイルはリバースできるが、azkファイルはリバースできないので本当のところはわからない。しかしiBooksのepubに合わせた記述の変更が行われていることは確かだろう。
Kindleブックといえども、iOSでのレイアウトの確認は不可欠である。epub内に画像を配置している場合は、Kindle Previewerだけでチェックするのではなく、iPhoneやiPadでのチェックは必要だろう。azkファイルがKindleアプリにうまく転送できない場合は、iBooksにepubファイルをコピーして確認するしかなさそうだ。
◆三国志 全10巻 吉川英治 [Kindle版]