今日は、6月12日の「Kindleストアで販売する電子書籍の目次や移動メニューの作成方法。ランドマークの扱いの後退について。」の続きとして、CAS-UBでKindleストア向けの本を作る上級テクニックを説明します。[1]CAS-UBにはKindle版を直接生成する機能がありますが、こちらは目次の作り方が固定です。それに対して、今日説明する上級テクニックを使えば、目次のパターンを使い分けられます。1.作業の流れ上級者は、CAS-UBの機能でEPUB3を生成し、KindleGenでEPUB3からmobiに変換する方法を使うと良いでしょう。すると、CAS-UBの目次設定をフル活用できますし、必要であればEPUBの目次を自分で編集できます(次図)。KindleGenを使う代わりにKindlePreviewerでもEPUB3からmobiへの変換ができます。今回はKindleGenで説明します。最初にKindleGenについて簡単に紹介します。KindleGenは、アマゾンのサイトから自由にダウンロードできます。Windows版、Mac版、Linux版がありますので、ご自分のPC環境にあった版をダウンロードします。現時点の最新版はバージョン2.9です。○KindleGen以下、Windows版の例です。KindleGenはZIP形式で配布されていますのでダウンロードしたら自分のPCで任意のフォルダーに解凍します。フォルダーの内容は次のようになります。kindlegen.exeが、プログラム本体です。KindleGenで、EPUB3をmobi形式に変換するのは次のように行ないます。1WindowsのDOS窓を開く。2カレントフォルダーをkindlegen.exeがあるフォルダーに変更します。次の図は、仮に、c:ドライブのtempの下のKindleGenというフォルダーに解凍しています。3コマンド入力状態になりますので、kindlegen(プログラム名)を入力し、その後ろに変換元EPUB3ファイルをドラッグ&ドロップ、-oの後ろに出力ファイル名を入力します。4この状態でEnterキーを押すと処理を開始します。4正常終了というメッセージが出て、EPUB3と同じフォルダーにmobiファイルが作られます。これでEPUB3からmobiへの変換は準備完了です。次にEPUB3の目次生成の設定とKindleアプリでの目次の表示の関係について説明します。前回の説明をもう一度整理します。CAS-UBのEPUB3生成「一般」メニューでは目次関連の項目が3つあります。それぞれKindlePreiewerのコンテンツ・ナビゲーション用メニューに対応します。対応関係を整理すると次の表の左端欄(CAS-UB)、左から2つ目の欄(KindlePreiewer)のようになります。移動パネルの一部に割り当て(注意)KindlePreiewerはV2.9、AndroidのKindleアプリは4.5、iOSのKindleアプリは4.3実際に提供されているKindleアプリは、かなり頻繁にバージョンアップされています。iOSのKindleアプリは、4.1.2(2014年2月5日)まで、パネル移動メニューに目次が表示されませんでした。4.2(2014年4月23日)でパネル移動メニューに目次が表示されるようになりました。Android版Kindleアプリは4.4では目次項目が正しく表示されていませんでしたが、4.5で正しく表示できるようになりました。このように、パネル移動メニューはかなり頻繁に修正されています。現時点の最新版でAndroid版とiOS版で表示が同じになりました。「本文の目次」は、HTML形式で作成した目次です。EPUB3で使えるCSSレイアウトを指定できます。縦書きも設定できます。従ってCAS-UBの設定では本文目次は常に「生成する」とすると良いでしょう。次に「Navの目次」はEPUB3仕様に準拠するためには必須です。常に生成しますが、その内容としてCAS-UBでは次のどちらかを指定できます。1論理目次を選ぶと、本文目次と同じように見出しを並べた目次とします。2ランドマークを選ぶと、書籍の大枠の構造とします。(3番目のランドマークと同じ内容になります。)具体的な例を示します。最初は本文目次と同じように見出しを並べた例です。本文目次との相違は、縦書きなどのレイアウト指定をしても実際にはリーダーが対応していないので意味がないことです。本文目次と同じように見出しを並べた場合、Androidアプリ、iOSアプリとも、現在のバージョンでは見出しの階層を折り畳みません。このため目次の項目が多いと見出しが縦に長くなってしまいます。縦長になる場合、生成する階層を最上位だけにするのが良いでしょう。書籍の大枠の構造(ランドマーク)このようにNavの内容をランドマークにすると項目が少なくなり、すっきりします。見出しを並べるか、ランドマークにするかは、体裁の方針や書籍の内容によって決めると良いでしょう。Kindleストアで販売する電子書籍の目次や移動メニューの作成方法。ランドマークの扱いの後退について。コメントをどうぞKindleストアで販売する電子書籍の目次や移動メニューの作成方法。ランドマークの扱いの後退について。cas-support返信アマゾンのKindleストアで販売する電子書籍(KF8形式、拡張子はmobi)を作るには、アマゾンが配布しているKindleGenという変換ソフトを使ってEPUBからmobiに変換します。KindleGenはEPUB以外の入力も受付ますが、EPUBが一般的です。最新のKindleGen2.9を使うならば、変換元とするEPUBの作り方には二種類あります。EPUB2をベースに、Kindle独自の機能を追加した独自EPUBを準備する。EPUB3仕様に完全準拠のEPUBを準備する。KindeGenは2013年2月18日に比較的大きなバージョンアップを行い、KindleGen2.8となりました[1]。KindleGen2.7以前は(1)のEPUBを用意する必要がありましたが、KindleGen2.8以降は(1)と(2)のいづれかのEPUBを入力形式として扱えます。KindleGen2.8から2.9のバージョンアップは小さな機能追加であり、入力EPUB形式については変わっていません。以下、本ブログのテーマは、(2)の方法でEPUB3を作成するときを対象にします。その目次がKindleGenとKindleのリーダーでどのように扱われるかに関して、最近の状況を整理するものです。紙の書籍では目次のレイアウト形式や製本時の配置は確立しています。EPUBでは目次のレイアウトや配置は確立していません。現在、EPUBリーダーで使える目次機能には、主に次の種類があります。EPUBの本文コンテンツと同じ扱いのXHTML形式ファイルで目次を用意し、本文の一部として配置する。EPUB専用のナビゲーション用の目次という機能を使って目次を作成する。EPUB3のランドマークという機能で、表紙、目次、まえがき、本文、などのような書籍の構造の骨組みをあらわす。(b)、(c)はEPUB2の頃からの歴史的な機能をEPUB3でナビゲーション文書仕様として設定し直したものです。[2]この(a)~(c)の目次機能の実際の使い方については、版元やEPUBリーダーによってばらばらになっています。このことは過去に何回か本ブログで説明しています。「EPUBのナビゲーション目次とランドマークの使い方の再検討が必要。」を参照してください。[3]KindlePreviewerでの表示アマゾンはmobiファイルの内容をPC上で表示確認するツール「KindlePreviewer」を配布しています。これはKindleGenで作成したmobi形式の電子ファイルを販売前にチェックするためのツールです。KindlePreviewer2.9でmobi形式を表示するとき、(a)~(c)の目次を確認するメニューがあります。次の図は3種類の目次をKindlePreviewerで表示したところです。KindlePreviewerの移動メニューKindlePreviewerの移動メニューは、もともと設定されている項目と、ランドマークに指定した項目を合成して構築されます。CAS-UBでの3つの目次の生成設定方法CAS-UBではV2.2以降、(a)ナビゲーション目次、(b)本文目次、(b)ランドマークの3種類を自動生成する機能を用意しました。」を参照してください。[4]CAS-UBでEPUBを生成する際に、編集画面で「生成」→EPUB3「一般」で、EPUB3に(a)~(c)を含めるかどうか、含める場合どのような内容にするかを設定できます。次の図は「一般」メニューの一部で、朱枠が目次関連の設定項目を示しています。V2.2のEPUB生成「一般」設定これらの設定を変更してから「保存」し、EPUB3を出力すると指定した目次をもつEPUBを作ることができます。次回はCAS-UBで設定したこれらの目次が、最近のKindle電子書籍リーダーでどのように扱われているかを説明します。Kindleストアで販売する電子書籍の目次や移動メニューの作成方法。EPUBのナビゲーション目次とランドマークの使い方の再検討が必要。V2.1でKindle正式対応しましたので、サンプルページのブログ記事EPUB版にKindle形式を追加しました。CAS-SUPPORTブログ記事のEPUB版-2012年11月のブログの項にあります。簡単に相違点を説明します。1.EPUB3形式は一般のEPUB3リーダ向けとなります。2.mobi形式は次のKindle専用EPUB形式をKindlegenでmobi形式に変換した結果となります。3.Kindle専用EPUB形式は、Kindle専用に最適化(特殊化という方が適切かもしれません)したEPUBです。標準のEPUB3とKindle用のEPUBの相違点は次の通りです。properties="cover-image"/>なお、metaにもカバー画像を登録していますが、これはEPUB2リーダ用のためなのでEPUB3では意味がありません。・cover.htmlを出力、そのimg要素にcover.jpegを指定する。cover.htmlをmanifestとspineに登録する。※カバーページはnavやncxには登録していません。通常の書籍では目次に表紙は登録しないのでその類推からです。・cover.htmlは出力しない。Kindleは、カバー画像として登録した画像を表紙として扱うため。properties="nav"/>なお、ncxも出力していますが、これはEPUB2リーダ用に互換にするためですので、EPUB3では意味はありません。・EPUB2形式の論理目次toc.ncxを生成する。toc="ncx">・HTML形式の目次toc.htmlを生成する。type="cover"/></guide>Kindle専用EPUBをKindlegenでmobiに変換したときの、ログは次の通りです。CSSにKindleでサポートしていないプロパティを設定しているという警告がありますが、それを除くと警告・エラーはありません。以外のアットルールはサポートされていません。リーダーではサポートされていません。リーダーではサポートされていません。リーダーではサポートされていません。paperwhiteの「移動」メニューに「目次」へのリンクが表示されません。19日のJEPAにおける説明会でも、目次へのリンクメニューから目次ページに飛べるようにするには、opfのguideにtocを追加すればよいとあります。説明会の後、アマゾンの方にお聞きしたところ、目次ページ(toc.html)へのリンクは、guideにあれば、ncxに登録しなくても自動的に作られるとのことです。アマゾンの説明とPaperwhiteの挙動が食い違っているように思います。何か、間違いがあるのでしょうか?ご存知の方ぜひお教えください。◎そうそう、もうひとつ思い出しました。アマゾンの資料には、目次(toc.html)はspineの先頭におくようにと書かれています。2012.4)には説明がありません。悩んでいる人が多いようです。page-mapはアドビの独自機能で、非標準。ページ番号とEPUBの記事の対応付けをするためのXML形式らしいです。mobi形式正式サポートの機能をチェックしていて、またまたKindlegenの奇妙な動作にはまってしまいました。CAS-UBの12月20日版ではカバー(表紙)画像について、ユーザーが画像ファイルを指定していないとき、システムが扉(タイトルページ)から自動生成する機能を用意します。そのカバー画像をKindleのカバー画像として登録します。うまく登録できないように見えることがあります。次の図をご覧ください。Paperwhiteのドキュメント一覧で見たものです。・テストデータ☞ロゴがないmobiファイル☞ロゴがあるmobiファイル右は、カバー画像が見えますが、左はカバー画像がない状態(Kindleが自動的に作った画像)となっています。?変換する前の、ふたつのEPUBファイルのカバー画像の相違は、一方は、EPUBファイル内に発行所ロゴがないため、タイトルページから画像を生成するときにブロークンイメージになっているもの、他方は発行所ロゴが正しくはいっているものです。Kindelgenでmobiに変換する前のEPUB3をiBooks3で見ますと次のようになります。EPUB3の状態では、二つのカバー画像の相違点は、ロゴがあるかどうかのみです。・テストデータ☞ロゴがないEPUB3☞ロゴがあるEPUB3変換元のEPUBに入っている画像ファイルは、いずれも、600×800ピクセルのPNGです。ロゴがないほうはファイルサイズ4.54KB、ロゴがある方はファイルサイズ24.3KBという相違です。わずかな相違にみえるのですが、Kindlegenで変換したmobi形式を解凍してみますと、なぜか、まったく異なります。・ロゴがないほうの変換結果(mobi8のフォルダー下のimageフォルダー)・ロゴがあるほうの変換結果(mobi8のフォルダー下のimageフォルダー)・600×800ピクセルのPNGが一方はGIFになり、他方はJPEGになっています。・両方とも180×240ピクセルのサムネイル画像(JPEG)ができています。いうことで次のような疑問が沸きます。Kindlegenが画像をGIFにしようが、JPEGにしようが別に好きなようにやって構わない、要はきちんと表示できればそれで良い、といえば終わりですが、問題は(2)です。Paperwhiteで表示されない画像があることに気がつきました。何が起きているか、DRMのかかっていないmobiファイルをアンパックするツールMobi_unpack[2]を使って調べてみました。結果を整理すると、次のようになります。1.KindleGenでEPUBからmobiに変換すると、出来上がったmobiファイルの中には、mobi7とmobi8(KF8)形式の両方がひとつにパックされています。画像について次のような処理を行なっています。2.JEPGはそのまま両方にコピー3.PNGはGIF形式に変換して、両方にコピー4.問題はSVGです。.../>として外部オブジェクトとして指定しており、SVGファイルの実体はimagesフォルダの中にあります。これをKindleGenで変換すると次のようになります。(1)mobi7ではSVGがすべて削除されてしまいます。古いKindleではSVGはまったく表示できないということになります。xml...>....</svg></p>のように埋め込みになってしまうケースの2種類があります。Paperwhiteで表示できません。5.そのまま複製されるSVGと埋め込み処理されてしまうSVGに、SVGの仕様からみて何かの違いがあるか、ということを調べたのですが、いまのところまったく相違点がわかっていません。次の二つのSVGファイル(ok.svgとng.svg)ですが、ok.svgは表示できますが、ng.svgは表示できません。–>を入れて保存したのがng.svgです。コメントを一つ挿入しただけで表示できなくなってしまう、というわけです。mobiKindleGenのバグではないかと思いますが、どうなんでしょうか。この機会にオンラインストアを少し改善しました。第3巻』を10月下旬発売します。第4版』プリントオンデマンド版発売。技術書典5にも出品しますのでどうぞよろしくお願いします。簡単な解説10月8日(月)「アンテナハウスCAS電子出版」は、『技術書典5』に出典します。『XSL-FOの基礎』画像制作のこと。Word経由でインポートした画像は印刷品質の劣化が激しいため、第2版ではできるだけSVG形式に変更した件。EdgeのEPUB表示機能はなかなか良い。これからはEdgeだと言いたいところですが、しかし、残念な点もあります。FormatterClubセミナーでの、CAS-UBのスライドと動画を公開しました。