KindleデータにNCX目次を作る方法を失敗例とエラーの解決策を交えて解説
Kindleは「NCX目次」と「HTML目次」の2種類あります。
2つの違いをザックリと説明すると…
Kindle インタラクティブ目次(NCX)
Kindle専用端末で利用できる目次であり、Amazonのガイドラインでは「必須」とされている。
HTML目次
全ての端末で利用可能な目次であり、Amazonのガイドラインでは「強く推奨」とされている。
目次に関してはユーザビリティ向上のためって要素が強いですね。
Amazonがあったほうが良いと言っているので、必須のNCX目次だけでも作っておいて良いでしょう。
「面倒だから後で差し替えればいいや~」と考えそうですが、ユーザーが端末へ配信したKindleデータは自動更新されないので早い段階で作っておくことをオススメします。
それでは、必須である「NCX目次(理論目次)」の作り方を見ていきましょう。
NCX目次に必要なツール
今回はKindle Comic Creator(KC2)で作成したMOBIファイルにNCX目次を追加しましょう。
作っていない人は↓の記事を参照してください。
また、この作業は「Kindle Previewer」の機能を使います。
※持っていない人は要ダウンロード
電子書籍ファイルにNCX目次を付ける
「windows 10」
「Kindle Previewer 3 Ver3.36.1」
「TeraPad」メモ張でも可
Step1、toc.ncxファイルを編集する
MOBIファイルを作成したフォルダ内のtoc.ncxファイルをテキストエディタ(メモ帳)で開く。
※toc.ncxは目次の情報が入ったファイルです。
開くと、こんな感じの文字列が出てきます。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ncx PUBLIC '-//NISO//DTD ncx 2005-1//EN' 'http://www.daisy.org/z3986/2005/ncx-2005-1.dtd'>
<ncx version="2005-1" xmlns="http://www.daisy.org/z3986/2005/ncx/" xml:lang="en-US">
<head>
<meta content="" name="dtb:uid"/>
<meta content="" name="dtb:depth"/>
<meta content="0" name="dtb:totalPageCount"/>
<meta content="0" name="dtb:maxPageNumber"/>
<meta content="true" name="generated"/>
</head>
<docTitle>
<text/>
</docTitle>
<navMap>
<navPoint playOrder="1" id="toc-1">
<navLabel>
<text>1章</text>
</navLabel>
<content src="html/Page-0.html"/>
</navPoint>
<navPoint playOrder="2" id="toc-2">
<navLabel>
<text>Page-1</text>
</navLabel>
<content src="html/Page-1.html"/>
</navPoint>
<navPoint playOrder="3" id="toc-3">
<navLabel>
<text>Page-2</text>
</navLabel>
<content src="html/Page-2.html"/>
</navPoint>
<navPoint playOrder="4" id="toc-4">
<navLabel>
<text>2章</text>
</navLabel>
<content src="html/Page-3.html"/>
</navPoint>
</navMap>
</ncx>
ズラーっと並んで頭が痛くなりそうですね。
知っておけばよい大切な要素は次の部分です。
<navPoint playOrder="1" id="toc-1">
<navLabel>
<text>ここに目次に表示したい名前</text>
</navLabel>
<content src="html/Page-0.html"/>
</navPoint>
・<navPoint>~</navPoint>で囲まれた部分が一塊(1ページ分の目次)
・<text>~<text>で囲まれた部分に目次に表示する名前を入力(1章など)
※KC2側で設定した場合、既に入力されているはず
要は、目次に表示しないページの<navPoint>~</navPoint>部分を削除すればいいだけです。
いらない情報を全部削除すると次のようになります。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ncx PUBLIC '-//NISO//DTD ncx 2005-1//EN' 'http://www.daisy.org/z3986/2005/ncx-2005-1.dtd'>
<ncx version="2005-1" xmlns="http://www.daisy.org/z3986/2005/ncx/" xml:lang="en-US">
<head>
<meta content="" name="dtb:uid"/>
<meta content="" name="dtb:depth"/>
<meta content="0" name="dtb:totalPageCount"/>
<meta content="0" name="dtb:maxPageNumber"/>
<meta content="true" name="generated"/>
</head>
<docTitle>
<text/>
</docTitle>
<navMap>
<navPoint playOrder="1" id="toc-1">
<navLabel>
<text>1章</text>
</navLabel>
<content src="html/Page-0.html"/>
</navPoint>
<navPoint playOrder="4" id="toc-4">
<navLabel>
<text>2章</text>
</navLabel>
<content src="html/Page-3.html"/>
</navPoint>
</navMap>
</ncx>
ページ数が多いほど、消す要素は多くなるので間違えないようにしましょう。
編集が終わったら、ファイルを上書き保存。
これでテキストエディタの作業終了。
ポイント
・toc.ncxの編集が不安なら、ファイルを複製コピーしておきましょう。
・文字化けしている場合、文字コードがUTF-8になっているか確認しましょう。
特にワードパッド利用時に文字化けしやすいので、メモ張で開いて文字コードを指定して保存し直しましょう。
Step2、Kindle Previewerでコンパイル
「Kindle Previewer」を起動
toc.ncxと同じフォルダ内にある「content.opf」を「Kindle Previewer」にD&D
コンパイルが完了すると「converted-content-opf」というフォルダ内に目次入りのMOBIファイルが入っています。
私の環境では、なぜかconverted-content-opfフォルダが生成されません。
同じ症状の方は「Kindle Previewer」のメニュー→「ファイル」→「エクスポート」で目次入りのMOBIファイルが出力できます。
Step3、出来たMOBIファイルに目次が入っているか確認
新しくできたMOBIファイルをKindle Previewerで 開きましょう。
自分が設定した目次が表示されていたら完成です。
余分な目次やエラーが発生した場合は、1からやり直すor↓の可能性を調べてみましょう。
NCX目次でよくある失敗例&エラー
Kindle Previewerがエラーを吐く
toc.ncxの消す部分を間違えている可能性が高いです。
バックアップしたtoc.ncxから、再度消す部分を調整しましょう。
作ったtoc.ncxが元に戻っている場合
古いMOBIファイルを「Kindle Comic Creator」で再度ビルドしてしまうとncxファイルが上書きされてしまいます。
折角編集したncxファイルが消えてしまうので、適宜ファイル名を変えたり間違えないように注意しましょう。
converted-content-opfフォルダが無かった場合
私の環境ではconverted-content-opfフォルダが生成されませんでした。
他環境で試せなかった為、仕様なのか変更されたのか環境が悪かったのかわかりません。
たぶん、メタデータ関連か目次の設定時のコンパイルエラーかもしれません(よくわからなかった)
同症状の人はKindle Previewerのエクスポートを試してください。
出来たMOBIファイルの中身が表示されないor消えている場合
失敗するとこんな画像が表示されるはずです。

AppData内にconversionLog.csvが生成され、次の警告メッセージが表示されていました。
「警告:W14010: メディアファイルが見つかりません」
フォルダ内の「htmlフォルダ」内がおかしくなっている or 参照フォルダを変更したせいでリンク先がおかしい
リンク先を調べるのは手間だ!ってことで↓
Kindle Comic Creatorで「新しい本の作成」→「新しい本をどこに保存しますか?」の項目を「デフォルトのまま」新しく作り直す。
デフォルトは「C:\user\Documents」辺りだと思います。
まとめ
思いついて試せる分だけ失敗例を挙げてみました。解決法が力技でしたがいろいろ修正試すよりやり直したほうが早いときがあります。
また、今回紹介したテキストエディタで直接編集する方法は、あくまで1つの手段です。
Kindle目次の作り方は複数あります。環境や使いやすさは人によって違うので1つの例として参照してください。
ユーザーが端末へ配信した書籍データは自動更新されません。
後でいいや~と考えず、早い段階で目次を作っておくと後々楽です。
ディスカッション
コメント一覧
NCXファイル編集後にKindle Previewerで「警告:W14010: メディアファイルが見つかりません」が生じてこのサイトを参考に解決しました。
どうも私の環境ではhtml画像ファイルへのパスに日本語があるとエラーが出るようです。
画像ファイルはKindle Comic Creatorに読み込ませるPDFファイル名を元にできていたので、そのPDFファイル名を英語にすればきれいに解決しました。
コメントありがとうございます。
確かに2バイト文字があるとエラー出てしまいそうですね。
こちらで試行が足りずお手数をおかけしたようで申し訳ありません。解決したようでなによりです。
同じようなエラーを吐いている人へ参考になりそうな情報で助かります。