epub navigation documentは、EPUBに収録した内容から、読者へ目次として案内する項目を示す文書です。本文を本へ入れるかどうかと、目次へ載せるかどうかは同じ選択ではありません。今回の六章標本では全章をspineへ収録し、章1と章6を目次から外した結果、navとNCXには中央の四章だけが残りました。
収録集合と案内集合を分けて考える
前書き、短い扉、奥付のように、読書順には必要でも目次へ出さない項目があります。逆に目次リンクを消したからといって、本文ファイルがEPUBから削除されたとは限りません。Navigation Documentを理解する近道は、収録集合と案内集合を二つの表にすることです。
表の左には原稿名と読書順、右には目次掲載の有無と表示ラベルを書きます。章題を変更したら右側のラベルも確認します。件数だけでは、古い章題や誤った到達先を発見できません。
一般的なEPUB 3ではnav.xhtmlがナビゲーション文書としてパッケージに含まれます。Rune Studioは章の選択と目次掲載を設定し、navとNCXを生成する候補です。標準の役割と製品の操作を同じ主語で混ぜないようにします。
案内集合には、単に「載せる/載せない」だけでなく、読者がその入口を必要とする理由も残します。長い資料編なら目次入口が役立ち、数行の献辞なら通常のページ送りだけで十分かもしれません。判断は本の構成から決めます。
六章の除外実験で役割を見た
検証では章1から章6までの合成Markdownを明示順で渡し、章1と章6だけを目次対象から除外しました。出力後のspineはタイトル、nav、本文6件、奥付の計9項目です。つまり六章はすべて本に残っています。
navリンクは章2、章3、章4、章5の四件でした。NCXのnavPointも同じ四件、同じ順です。各hrefとsrcは実在するXHTMLへ到達し、欠落資源は0件でした。ローカルのEPUB検査はvalid=trueです。
この実験から、目次除外は本文削除とは違うと構造で確認できます。章1と章6をnavから探しても見つかりませんが、spineとXHTMLには存在します。目次だけを見て欠落と判断しないための具体例です。
第三者リーダーのメニューは操作していません。四件がどのデザインで表示されるか、端末上でどの位置に出るかは未観測です。ここで合格にできるのは文書構造と参照到達性までです。
生成された文書を三段階で読む
最初にラベルを読み、承認済み章題と一致するか確認します。次に並び順を読み、原稿の案内順と比べます。最後にhrefをZIP内のXHTMLへ解決し、リンク先の本文が期待した章かを確かめます。
リンクが四件あるという一項目だけでは不十分です。章2のラベルが章3へ向いていても件数は四件になります。ラベル、順序、到達先の三列を行ごとに照合すると、読者が迷う原因を特定できます。
nav.xhtmlのリンクに階層がある場合は、親子関係も案内表へ追加します。今回の標本は平坦な四件なので、階層表示までは確認していません。平坦な結果から入れ子目次の表示を推測しないようにします。
目次へ戻したい章があれば、原稿本文を複製せず、掲載設定だけを変更します。読書順が違うなら入力順へ戻ります。ファイルがないなら収録処理を調べます。症状に対応する一箇所だけを直し、再出力後に同じ三列を読み直します。
編集上の使い分けと限界
Navigation Documentは、読者へどの入口を見せるかを編集する道具です。本文の章順そのもの、シリーズ書誌、文字コード、端末の表示品質を一つで保証するものではありません。扱う問題を案内設計に限定すると、近接するnavリンク作成やNCX互換の記事と役割が分かれます。
今回の六章標本なら、「全章を収録するが中央四章を目次で案内する」という意図が構造に反映されています。対象リーダーでの章移動まで確認したい場合は、別途そのリーダーを操作します。
編集途中で章1を目次へ戻す場合は、掲載列だけを変更して再出力します。章1の本文を複製したり、spineの順番を動かしたりしません。小さな変更なら、新旧navの差も一行だけになり、意図を説明しやすくなります。
販売先の自動目次やリーダー独自のメニューは、nav.xhtml以外の情報も使う可能性があります。公開先ごとの表示を必要とする場合は、構造合格の後に実サービスへ渡して確認します。
収録と目次の切り分けが合格する条件は、spineが収録表と一致し、navのラベル・順序・hrefが案内表と一致し、参照欠落が0件であることです。まず自分の原稿を「本には必要」「目次にも必要」の二列へ分けると、論理目次の役割を迷わず決められます。
チームで確認するなら、構成担当が二列の期待値を固定し、出力担当がspineとnavの観測値を追記します。期待と結果を同じ担当の記憶だけで埋めないため、意図しない除外を見つけやすくなります。修正後は変えた行だけでなく、前後一行の順序も読み直します。
章数が増えた改訂版では、新章を収録するか、目次に載せるか、どのラベルを使うかをそれぞれ判断します。旧navをコピーして件数だけ足すと、リンク先の対応を誤る恐れがあります。改訂版の案内表を正本にして再生成してください。