新しくEPUBを作るときは、出力直前にまとめて点検するより、最初から四つの記録を用意すると文字化けと画像切れを切り分けやすくなります。四つとは、文字候補表、画像実在表、相対参照表、収録資源表です。
ここでは四章、本文画像四枚、表紙一枚を登録する新規作成を想定します。既存EPUBを編集した後に二つの合格条件で止める方法ではなく、作り始めから記録を育てる方法です。
1枚目:文字候補表は意味判断を残す
原稿へ珍しい字や私用領域の文字を入れた時点で、章ID、行番号、文字、前後文、採用結果を表へ書きます。一件なら一行です。表示できたかどうかだけでなく、別の文字へ置き換えてよいかを著者に確認します。
Rune Studioの公開資料には、主要な日本語文字コードの判定、変換不能文字の表示、解消までの自動保存停止が記載されています。ただし、今回想定する私用領域候補一件を実画面で修正し、再検査0件にした操作は直接試していません。自分の複製原稿では、候補の位置、承認した置換、再検査結果を確かめてください。
2枚目:画像実在表はファイルそのものを見る
本文へ画像を挿入する前に、figure-01.pngからfigure-04.pngまでのファイル名、形式、置き場所を四行にします。ファイルが存在し、開けることを確認します。この表は「画像があるか」だけを扱い、本文が正しく参照しているかは次の表へ分けます。
表紙はcover-main.pngとして別行に置きます。本文画像と同じ連番へ入れると、収録資源の期待値を間違えやすいためです。
3枚目:相対参照表で古いパスを止める
各章の画像記法からパスを抜き出し、原稿ファイルを起点に実ファイルへ届くかを確認します。たとえばchapters/C02.mdから../images/figure-02.pngへ届けば合格です。
コピー元の/Users/name/Desktop/old-book/や、削除済みの../old-images/が残っていれば旧パスです。想定例では旧パス二件を0件へするのが条件ですが、この二件の修正を実操作した記録はありません。読者は自分の原稿で検索し、修正後に旧フォルダ名をもう一度検索して0件を確認する必要があります。
4枚目:収録資源表は出力後の答え合わせ
出力前の期待値は、表紙1+本文画像4=画像5です。出力後にパッケージの画像数と欠落件数を記録します。ここで4件なら一つ不足、6件なら不要な候補が入っていないかを調べます。
EPUB 3ではmanifest、spine、ナビゲーションが異なる役割を持ちます。一般仕様はW3CのEPUB 3.3で確認できます。画像数が合っていても章順まで正しいとは限らないため、spineも別に見ます。
四つの表を更新する順番
原稿を書きながら文字候補表と画像実在表を更新し、画像を本文へ挿入したら相対参照表を更新します。EPUBを出力した後だけ収録資源表へ実測値を書きます。まだ出力していないのに「画像5、欠落0」と予定値を結果欄へ書かないことが大切です。
問題が出たら一枚だけ戻ります。文字が違えば文字候補表、ファイルがなければ画像実在表、参照が違えば相対参照表、パッケージに入らなければ収録資源表です。
四章標本で確認できた結果
横書き四章、本文画像四枚、表紙一枚からEPUBを出力しました。spineは表紙、タイトル、ナビゲーション、本文四件、奥付の順です。収録画像は5、欠落0、navとNCXはあり、ローカル検査はvalid=trueでした。
直接確認できたのは四つ目の収録資源表に当たる結果です。私用領域候補一件と旧パス二件の修正完遂は確認していません。valid=trueも販売先受理や全読書アプリの表示一致を保証しません。
本番へ移す判断は、四つの表が同時に埋まったときだけ行います。文字候補表が未確認なら、画像が5枚収録されても公開用原稿にはしません。相対参照表に古いパスが残るなら、今回の欠落0件を別の原稿へ流用しません。C01〜C04の各章について、文字、画像実在、参照、収録の四列がそろった行だけを完了扱いにすると、どこまで確認したかが曖昧になりません。
画像を差し替えたときは、同じファイル名だからといって収録資源表を使い回さないでください。画像実在表へ更新日時と寸法を追記し、相対参照表で対象章を再確認してから、EPUBをもう一度出力します。再出力後の画像数が5、欠落が0でも、差し替えた画像が意図した内容かはプレビューで別に見ます。
結論:予定値と実測値を別欄にする
EPUBの作り方で文字化けと画像切れを出力前に防ぐには、文字候補、画像実在、相対参照、収録資源を四つの記録へ分けます。予定の「画像5」と、実際の「画像5・欠落0」を別欄にし、未確認の文字候補や旧パスを結果に混ぜません。
まず四章の複製で四表を作ってください。現行Mac版の概要とダウンロード先はRune Studio公式サイトで確認できます。


