W14023: 本へのガイドの項目の追加に失敗しました :
Warning(prcgen):W14023: Failed to add the guide item to the book


 Sigil1.0.0を使いePub3形式の電子書籍を作り、KindlePreviewer3で開いてみたら次のような変換ログが出ました。

警告

W14023: 本へのガイドの項目の追加に失敗しました : C:\Users\book\AppData\Local\Temp\fb32a55e-12b7-48ab-bc23-68361eb88b59\OEBPS\Images\rIMG_1792.JPG

ステータス

本が変換されましたが、警告があります.

 rIMG_1792.JPGについてのガイドの項目追加に失敗したというメッセージです。 しかし、プレビュー画面をみるとこの写真は組み込まれ、正しく表示されています。

Sigilのツール機能を使い論理目次(nav.xhtml)を生成した状態のePubファイルをKindlePreviewer3で開くとエラーなくmobi変換が出来ていました。

ところが、次のステップでSigilのツール機能でHTML目次(TOC.xhtml)を生成したePubファイルをKindlePreviewer3で開いたのが上のエラーログです。

 論理目次を作成した段階ではエラーがなかったので、JPGに関する記述がエラーの原因ではないのは明らかです。 HTML目次を作成した段階でエラーが出たので、何が悪さをしているかを論理目次についてはHTML目次を作成する前後の変化を比較し、HTML目次についてはその内容に誤りがないかを確認してみました。

 いずれの目次ファイルを見ても、文法的なエラーは見つかりません。 次に論理ファイルの中での記述内容の変化がある部分を比較したら次のようになっていました。

HTML目次追加前

<nav epub:type="landmarks" id="landmarks" hidden="">
  <h1>Landmarks</h1>
  <ol>
   <li>
    <a epub:type="toc" href="#toc">Table of Contents</a>
   </li>
   <li>
    <a epub:type="cover" href="cover.xhtml">Cover</a>
   </li>
  </ol>
</nav>


HTML目次追加後

<nav epub:type="landmarks" id="landmarks" hidden="">
  <h1>Landmarks</h1>
  <ol>
   <li>
   <a epub:type="toc" href="#toc">Table of Contents</a>
   </li>

   <li>
    <a epub:type="cover" href="cover.xhtml">Cover</a>
   </li>
   <li>
   <a epub:type="toc" href="TOC.xhtml">Table of Contents</a>
   </li>

  </ol>
</nav>

 この部分は論理目次の中のランドマークと呼ばれる表記の部分です。 ランドマークはどのファイルが表紙、目次や奥付けなどの書籍の構成を表す部分であるかを定義したものです。 一行目が論理目次(type="toc")を、2行目が表紙(type="cover")を、3行目がHTML目次(type="toc")を定義し、ファイルがhref=""で正しく指定されています。

 ランドマークは電子書籍端末のナビゲーション機能で見たい場所に飛ばす機能に使われていますが、上記の中には目次を示す場所が二つあります。 2種類の目次を作成したので、この通りで文法的には間違いではありません。 しかしナビゲーション機能にとって、目次は一か所でなく二ヶ所に指定されているので、どちらに飛ぶのか決められないのです(実際はどちらに飛んでも目次が表示されるので問題は何のですが、プログラムはあいまいな指示では困り警告しているのです)。 これが、mobi変換時に2か所の定義がある場合文法エラーではなく、警告となっている原因です。 残念ながらKindlePreviewer3の警告の内容紹介が間違っています。 これではせっかく警告してもらっても、人間が正しく直す情報とはならないので、これはこれで困ったものです。

 原因がはっきりしたので、ランドマークの中にある目次の指定は論理目次かHTML目次かどちらかにしましょう。 

 解決策 1 ランドマーク中の目次指定を2か所から1か所にしたら警告が出なくなります。

 具体的には、上にあるファイルの赤字部又は青字部のいずれか一方を削除して、ランドマーク内の目次指定を1か所にします。

 解決策 2 TOC.xhtmlを削除し、nav.xhtmlを表紙の後ろに移動し、TOC.xhtmlの代わりにする。 ランドマーク内には"type=toc"指定が1か所なので警告は出ません。

 具体的には、ePub3形式の書籍ではTOC.xhtmlを作らずに、nav.xhtmlファイルを表紙の次に移動させるだけで完了です。 この解決策の方がスマートです。

 その理由。 Kindleのベストプラクティスでは論理目次とHTML目次と二つ作ることを推奨しています。 これは古いePub2形式書籍では論理目次はtoc.noxファイルであり、htmlファイルではないことがその理由です。 読者が本の中で目次を見る為にもう一つhtml形式で作った目次を表紙の後ろに置くのを勧めているのです。 しかし、ePub3形式では論理目次はnav.xhtmlファイルに変わりました。 拡張子で明らかですが、nav.xhtmlは論理目次でもありHTML目次でもあります。 したがってわざわざTOC.xhtml目次を作る必要はありません。


ご意見、お問い合わせは までメールを送ってください。

↑ PAGE TOP