epub 目次 作り方の要点は、本文収録と目次掲載を別の判定にすることです。 本文に収録する章と、目次に表示する章は同じ集合とは限りません。epub 目次を章ごとに選ぶ場合、本文の保持、目次掲載フラグ、生成navの三列を作ります。奥付や中扉を本文へ残しながら、目次から外す設計もこの表なら混同しません。
6章のうち第2章と第4章を目次から外した
合成標本は6章です。章選択の応答ではtrue, false, true, false, true, trueを保存しました。出力EPUBはspine9で6章を保持し、navリンク4、NCX項目4、valid=trueでした。選択した4章と目次件数が一致しています。
失敗例は、「目次に載せない」を「EPUBに入れない」と取り違え、必要な章を収録対象から削ることです。逆に、掲載フラグを外したつもりで古い出力を検査すると、6件の目次が残ります。復旧では出力名とハッシュを更新し、spineの6章とnavの4章を別々に再確認します。
合格は、第1・3・5・6章だけが目次から到達でき、第2・4章は本文として収録されることです。NCXも4件であることを互換性の補助確認に使いますが、販売先や全リーダーの動作保証には広げません。
本文収録と目次掲載の集合差を保存する
六つの章IDを行にし、本文収録、nav掲載、NCX掲載の三列へ真偽を置きます。第2章と第4章は本文列が真、二つの目次列が偽です。この形なら、目次4件という合計だけでなく、除外した対象が正しいかを再現できます。章名変更後もIDを基準に追えば、似た見出しの取り違えを防げます。
読書画面から除外章へ到達する導線が必要なら、本文内リンクを別に設計します。目次へ載せないことはアクセス不能にする意味ではありません。出力後はspineの六章、nav四件、NCX四件を読み、旧出力のハッシュと混ざっていないことも確認します。
除外章へ本文内リンクから到達する試験
目次に載せない第2章と第4章も、作品上必要なら前後章から読めなければなりません。spine順で移動したときに両章が現れることを確認し、必要な本文内リンクも巡回します。navから見えないという結果を、EPUBから削除されたという意味に読み替えません。
選択フラグを変更した再出力では、六章のXHTMLハッシュが本文変更なしを示すか確認します。変わるべきなのは目次文書と関連メタデータです。本文まで変わっていれば、別の操作が混ざった可能性を調べます。
四件のnavと四件のNCXについて、章ID、表示名、参照先を照合します。合計値だけでなく、真にした第1・3・5・6章が選ばれていることが合格条件です。
読者向け目次の設計は作品ごとに異なります。中扉や奥付を外す理由を備考へ書き、別作品へ同じフラグ列をコピーしません。
目次掲載の変更履歴を章単位で残す
初稿では六章すべてを掲載し、校了時に第2章と第4章を外したなら、変更理由を章行へ書きます。「中扉のため」「奥付のため」などの理由があれば、次版で担当者が誤って真へ戻すのを防げます。単なる四件という数では、この設計判断を引き継げません。
章タイトルが変わった場合も、掲載フラグは安定した章IDに結びます。名前だけで照合すると、似た中扉を別の章と取り違えるからです。出力後は章IDからXHTML、nav、NCXへたどり、四つの真と二つの偽を再現します。
差し戻しではフラグ表を修正して生成し直します。nav.xhtmlを直接削る方法はNCXや次回出力とずれるため採用しません。
「本文にある」と「目次に出す」を別の集合にする
六章の入力から第二章と第四章だけを目次非掲載にするとき、目次行は四件に減ってもspineには六章が残るのが意図です。章番号、見出し、本文収録、nav掲載、NCX掲載、前後章からの到達の六列を作り、集合差を目視ではなく表で判定します。
STUDIO-247の専用出力は六章、spine9、画像0、欠落0、nav4件、NCX4件、valid=trueでした。第2章と第4章のincludeInTOC=falseを保存して生成した実測であり、六章中二章を目次から外す受入表と同じ標本です。
非掲載章は前章から歩いて開く
目次から隠した章が読書順からも消えていないか、第一章から次へ進んで第二章、第三章から第四章へ到達します。到達後は章題と冒頭固有語を照合し、単にページが動いたことを成功にしません。
復旧は全章を選び直さず、誤った章の掲載フラグだけを戻します。別名EPUBを生成し、表の六列を全行再検査します。全Readerの同一操作はこのローカル構造値からは保証しません。
本文収録と目次掲載の集合差を別担当へ渡す最終票
最終票の一行目にSTUDIO-247の入力パスとSHA-256、二行目に実行した画面名または命令、三行目に保存後の再読込値を記録します。このテーマで必要な比較列は「六章のspine、四行のnav、非掲載の第二章と第四章」です。どの値が入力、保存、生成物、表示のどの層に属するかを空欄にせず書きます。
章掲載が不合格のときは、返り先をその層に限定します。入力なら読み込み複製、保存なら別名の復旧ファイル、生成なら新しいEPUB、表示ならReader名付きの再試験です。失敗したファイルを上書きせず、復旧結果に別SHAを付けることで、修正者と査読者が同じ差分を見られます。
この最終票の判定原則は「目次に出ない章も前後操作で読めることを見る」ことです。ローカルの構造検査が合格しても、販売先受理、全Readerの同一表示、未操作のUIは別の未検証欄に残します。次の担当者が一枚の票から実測済みと未実測を読み分けられることが完了条件です。


