序章や奥付を読書順には入れたいが、目次には出したくない。そのとき、章をEPUBへ収録する設定と、epub 目次へ案内項目を出す設定を分けます。STUDIO-271の検証本では六章全てを本文に収録し、第二章と第五章だけを目次から外しました。判定の中心は「六章あるが、案内は四章」という二軸の一致です。
六章を二列のリリース票にする
原稿を生成画面へ渡す前に、第一章から第六章までを行に並べます。「本文収録」列は全行が可、「目次掲載」列は1・3・4・6章が可、2・5章が否です。非掲載の理由も書き、誤操作による未設定と意図的な除外を見分けます。
この表がないと、生成後にリンクが四件しかない事実を「二章落ちた」と誤読します。逆に、spineに四章しかないのに「目次をすっきりさせた」と見なすのも危険です。
ZIPを開いてspineから先に数える
出力EPUBのSHA-256はff05c530fb3cd6a8c0d79b58007ba52f678663696680b28d314b12d6b31ccd21です。ZIPとして開き、まずOPFのspineから本文の読書順を読みました。p001.xhtmlからp006.xhtmlまで六章がそろい、それぞれの見出しと冒頭固有語を確認できれば、収録軸は合格です。
次にnav.xhtmlのリンクを読みます。参照先は第一、三、四、六章の四件でした。最後にtoc.ncxを開き、こちらも同じ四章のcontent srcを持つことを確認しました。navとNCXの件数だけでなく、各参照先と章題をリリース票の行へ戻します。
第二章が消えたら「どこから」を先に決める
失敗は二種類あります。第二章のXHTMLがspineやmanifestから消えたなら本文収録の失敗です。XHTMLはありspineにもあるがnavにだけないなら、予定通りの非掲載か、掲載フラグの設定違いです。リリース票の理由列が、その二つを分けます。
復旧は誤った軸だけで行います。本文から消えたなら章選択へ戻し、目次だけが違うなら掲載フラグを戻します。出力EPUBを手で繋ぎ直さず、入力から別名で再生成し、新しいSHAでspine・nav・NCXを全行見直します。
非掲載章を前後ページから開く
構造の次は操作試験です。第一章を開いて「次へ」で第二章へ進み、章題と冒頭固有語を確認します。同じように第四章から第五章を開きます。その後、目次から1・3・4・6章の四行を選び、それぞれ正しい章へ着くかを見ます。
今回の実測はローカルパッケージの展開と構造検査までで、特定読書アプリのクリック結果は取得していません。したがって「全読書アプリで意図通りに見えた」とは書きません。この操作試験を行うときは、アプリ名・版・EPUB SHAと到達章を一緒に残します。
六収録・四案内を別々に合格にする
受入表は六行あり、全行でXHTMLとspine順が一致します。そのうち四行にだけnavとNCXの参照があり、残る二行には意図的な非掲載理由があります。検査値のvalid=trueはこのローカル構造に対する結果です。
販売先の受理、リーダーごとのメニュー表示、非掲載章の扱いは別途の環境別試験です。ここでの完了は、本文の六章を失わず、意図した四章だけを二種類の目次から案内できる構造を説明できることです。
非掲載理由を校正工程で固定する
目次に出さない判断は、生成担当者だけのメモにしません。第二章は前章から続けて読む短い幕間、第五章は第四章と一体で読ませる補遺、というように、読者体験に結びつく理由をリリース票へ残します。章題変更や担当交代があっても、理由を読めば掲載フラグを維持すべきか再検討できます。
校正では、非掲載章にも本文見出し、本文先頭の固有語、前後章からの到達順を割り当てます。目次にないことを理由に校正範囲から外すと、spineには存在するのに内容確認だけ漏れるからです。第二章と第五章の行には「目次リンクなし」と「本文検査済み」を別々に記録し、空欄を合格の代用にしません。
また、紙面上の章番号とファイル名の数字を同一視しないことも重要です。たとえば編集で第二章の前に新章を挿入すると、表示上の章番号はずれてもp002.xhtmlという名前が残る場合があります。検査票では表示見出し、ファイルパス、spine位置の三つを持ち、番号だけの比較で誤判定しないようにします。
再出力では章IDを前版から推測しない
修正後のEPUBを作るときは、旧版のIDをコピーして合格扱いにしません。新しいファイルを展開し、その版のOPFからmanifest IDとhrefの対応を取り直します。navのhref、NCXのsrc、実体XHTMLを新しい対応表で解決し、旧版との差分には「意図した変更」と「予期しない変更」を分けて印を付けます。
失敗例は、第三章の表示名だけを変えたつもりがnavのリンク先まで第四章へずれるケースです。この場合、四リンクという件数は変わらないため、件数検査だけでは通過してしまいます。復旧では入力側の第三章の参照設定へ戻り、別名で再出力し、四つのリンクを一件ずつXHTMLの見出しへ解決します。第三章の見出しと冒頭固有語が一致して初めて直ったと判定します。
最終受入票にはEPUBのSHA、六つのspine位置、四つのnav参照、四つのNCX参照、二つの非掲載理由を同じ試行番号で残します。これにより、後から別ファイルを開いて「同じ結果だった」と取り違えるのを防げます。タイトルが約束する章ごとの掲載・非掲載設定は、フラグの操作だけでなく、その設定が作った本文と案内の二つの構造を照合して完了します。