epub 画像挿入で大切なのは、編集画面に画像が見えた時点ではなく、完成EPUBの中で参照先まで開けた時点を合格にすることです。画像を六章へ一枚ずつ置き、表紙を加えた合成本を使って、原稿からXHTML、manifest、ZIP内画像まで七本の経路を追いました。
挿入時に「画像名・章・alt」を一組にする
最初に画像へ役割が分かる名前を付けます。scene-01.pngを第一章、scene-02.pngを第二章というように決め、Markdownの相対パスとaltを同じ表へ書きます。画像だけを先に一つのフォルダへ移すと、原稿に残った旧パスを見落としやすくなります。章ごとに一件ずつ挿入し、その都度閉じて開き直せば、どの操作で切れたかを限定できます。
今回の合成原稿は六章です。各章に画像参照を一つ置き、別に表紙を登録しました。入力時の確認表は「第一章から第六章の六参照」と「表紙一参照」の七行です。元PNGが同じ内容の複製でも、EPUBでは章ごとの格納役割が異なるため、ファイル内容の種類ではなく参照先の役割を数えます。
完成EPUBで七本の経路をたどる
Runeで出力したEPUBを開くと、spineは10項目、navとNCXはそれぞれ6章でした。XHTMLの画像参照は7件で、p001.xhtmlからp006.xhtmlの六件とcover.xhtmlの一件です。画像資源もp001.pngからp006.pngとcover.pngの7件、altも7件、欠落は0件でした。ローカル検査はvalid=trueで、EPUBのSHA-256はc826be189be58886a379db2f5cee40e4c499122e2f9a1ee738b701104456dc95です。
照合は件数だけで終えません。第一章のXHTMLが../Images/p001.pngを指すか、そのファイルがmanifestに宣言され、ZIP内に存在するか、altが第一章の意図と合うかを一行で読みます。同じ作業を第六章と表紙まで繰り返します。七対七でも二つの参照が同じ画像へ誤接続していれば、章別の一対一表で不合格になります。
画像が一枚だけ消えたときの戻し方
特定の章だけ表示されないなら、まずその章のMarkdownにあるsrcを調べます。大文字小文字、拡張子、全角空白、親フォルダを示す../の数が実ファイルと同じかを確認します。画像を別名で複製して数を合わせるのではなく、意図した一枚へ参照を戻します。その後、新しい名前でEPUBを書き出し、前の失敗版も比較用に残します。
表紙だけが欠ける場合は本文のMarkdownではなく表紙登録へ戻ります。反対に、ZIP内に表紙があるが本文挿絵がない場合は、表紙設定を触らず章の参照を直します。役割ごとに戻り先を分けることで、すでに合格した六経路を巻き込みません。
配布前に読む七行の格納表
引き渡し表には章名、原稿パス、生成XHTML、XHTMLのsrc、manifestのhref、ZIP実在、altを書きます。最後の一行は表紙です。すべての行が到達可能で、欠落が0になったら格納検査は合格です。画像の見た目や大きさは別欄にし、構造の合格印を流用しません。
この実測で確認したのは、合成画像を使った七資源・七参照・七alt、欠落0、ローカルvalid=trueです。第三者リーダーでの描画、KDPの受理、画像の権利は確認していません。画像がEPUB内へ入った事実と、販売先で意図どおり見える事実を分ければ、リンク切れを直した後に必要な試験も明確になります。
同じ絵の複製でも七つの役割は別に検査する
今回の合成PNGは内容とSHAが同じです。それでもp001.pngとp006.pngは別の章役割を持ちます。内容SHAだけで重複を削除すると、複数章が一つのファイルを共有する設計へ変わり、今回の七行表とは別の本になります。最適化や重複排除は格納確認が終わった後の別作業にし、この試験では出力された役割名と参照先をそのまま読みます。
altも単なる件数ではありません。第一章の参照に「図1」、第五章に「図5」が対応するよう、XHTMLごとに値を確かめます。表紙のaltは作品名です。画像の内容を十分に説明する公開用altかどうかは編集判断が必要ですが、少なくとも空欄や章の取り違えを構造表で発見できます。
画像を差し替える場合は、元の相対パスを維持して内容だけ変える方法と、新しい名前へ移して原稿も直す方法を混ぜません。前者は内容SHAが変わり、後者は参照文字列が変わります。どちらを行ったか記録してから七経路を再検査すれば、差し替え後に旧画像が残る問題も見つけやすくなります。
最終確認では、第一章、中央の第四章、最後の第六章、表紙の四行を人が読み、残り三行は表の機械値だけでなく参照先が異なることを確かめます。これにより、七件という合計が正しくても一部の章が同じ資源を誤って指す失敗を止められます。確認者は七行すべてへ合否と取得元を書き、空欄が一つでもあれば配布候補にしません。