
画像入りEPUBは三表で実測値と参照元を照合する
画像入りEPUB形式の作り方では、出力後の数値を参照元へ戻せる形で整理すると、修正箇所を絞りやすくなります。この記事では、原稿参照表、収録資源表、読む順番表という三つの照合表を、記事編集上の整理手段として提示します。三表はRune Studioの機能でも、記事固有Stage 4で実行した実測コマンドでもありません。
記事固有Stage 4で実測したのは、二章、image_count=3、missing_images=0、spine_count=6、navとNCXの項目が各2件、valid=trueです。本文画像2枚・表紙1枚という入力内訳を手がかりに、これらの実測値を三表へ整理し、差分時の戻し先を示します。Stage 4の操作記録には、三表の作成や使用は含まれていません。KDPへの受理や実機の見た目は別の確認に残します。
原稿参照表には参照元・相対パス・役割を書く
入力はchapters/01.mdとchapters/02.mdの二章です。各章に本文画像を1枚ずつ置き、別に表紙画像を1枚設定しました。原稿参照表は、少なくとも「参照元」「相対画像パス」「役割」の三列を持たせます。
| 参照元 | 相対画像パス | 役割 |
|---|---|---|
| chapters/01.md | images/figure01.png |
本文画像 |
| chapters/02.md | images/figure02.png |
本文画像 |
| EPUB表紙設定 | images/cover.png |
表紙 |
本文画像2枚と表紙1枚を単に「画像3枚」とまとめると、差分が出たときに直す行を選べません。本文画像なら章原稿、表紙なら表紙設定という戻し先まで、この表で固定します。
収録資源表は原稿の役割とパッケージ件数を結ぶ
収録資源表には、EPUB内の画像資源とmanifest登録を記録します。今回の固有標本で確認できた値はimage_count=3、missing_images=0です。原稿参照表の本文画像2行と表紙1行が、収録資源3件という期待値につながります。
| 照合キー | 収録資源(相対画像パス) | 役割 | manifest登録の期待 | 実測 | 欠落 | 差分時の戻し先 |
|---|---|---|---|---|---|---|
| chapters/01.md | images/figure01.png(本文画像1件) |
本文画像 | 1件 | ―(合計で照合) | ―(合計で照合) | chapters/01.mdのimages/figure01.png参照と画像ファイル |
| chapters/02.md | images/figure02.png(本文画像1件) |
本文画像 | 1件 | ―(合計で照合) | ―(合計で照合) | chapters/02.mdのimages/figure02.png参照と画像ファイル |
| EPUB表紙設定 | images/cover.png(表紙画像1件) |
表紙 | 1件 | ―(合計で照合) | ―(合計で照合) | EPUB表紙設定のimages/cover.png |
| 合計 | 本文画像2件+表紙1件 | 画像3件 | 期待3件 | image_count=3 |
missing_images=0 |
役割を照合して上の該当行へ戻る |
実測値は画像全体の合計なので、各資源行ではなく合計行で照合します。ここで使う照合キーは、元のファイル名だけではありません。「本文画像か表紙か」という役割と、期待件数も一緒に使います。収録数が2なら、本文参照の欠落か表紙設定の欠落かを原稿参照表へ戻って調べます。生成済みEPUBへ画像を直接足すと正本との対応が切れるため、出力物ではなく元の行を直します。
読む順番表は原稿章と生成章を一対一にする
読む順番表は、原稿の章順と生成後の章リンクを結びます。今回の実測ではnav.xhtmlとNCXがあり、項目数はいずれも2件でした。リンク先はnav側がp001.xhtmlとp002.xhtml、NCX側がText/p001.xhtmlとText/p002.xhtmlです。
| 原稿順 | nav | NCX | 戻し先 |
|---|---|---|---|
| chapters/01.md | p001.xhtml | Text/p001.xhtml | 1章目の選択・順番 |
| chapters/02.md | p002.xhtml | Text/p002.xhtml | 2章目の選択・順番 |
spine_count=6にはcover、title、nav、二章、colophonが含まれます。入力章数2と同じ値になる必要はありません。読む順番表で見るのは、二つの原稿章がp001、p002として同じ順番で案内されているかです。
差分は表の行へ戻して直す
実測値を三表へ整理する利点は、差分ごとの修正先が決まることです。
- 本文画像の参照行はあるが収録数が不足する:その章の相対パスと画像ファイルへ戻る
- 表紙行はあるが表紙資源が不足する:表紙設定へ戻る
- 収録資源3件は揃うが章リンクが2件でない:原稿選択と章順へ戻る
- navとNCXでリンク先が食い違う:目次対象とパッケージ生成へ戻る
この整理方法では、「画像がないから全部再生成する」ではなく、差分の照合キーから次に点検する一行を選びます。三表を使った再生成そのものは今回実測していないため、ここで示すのは修正候補を絞るための記事上の照合方法です。
Stage 4の実測値を記事編集上の三表へ整理する
記事固有Stage 4では、二章、本文画像2枚、表紙1枚を用意し、シリーズ情報、巻、表紙、対象原稿を設定してEPUBを生成しました。結果はimage_count=3、missing_images=0、spine_count=6、nav_item_count=2、ncx_item_count=2、valid=trueです。
Stage 4の操作証拠が示すのは、二章を出力し、画像3件、欠落0件、spine 6件、navとNCXの項目各2件、valid=trueを得たところまでです。三表を作成して生成に使ったこと、三表で事前照合したこと、差分行から再生成したことは記録されていません。この記事の三表は、その実測値を参照元・期待値・戻し先へ対応づけた編集上の整理方法です。別の共通Stage 4は四章・画像1件・spine 8の標本なので、今回の固有値とは混ぜません。
valid trueの範囲を三表の外へ広げない
記事固有statusはpassedですが、合格範囲はローカルEPUBパッケージです。画像の見た目、解像度、代替テキストの品質、全リーダーでの表示、KDPの受理は未確認です。valid=trueは、今回記録した検査で欠落が報告されなかったことを示し、販売可否を保証しません。
EPUB 3.3仕様では、package documentのmanifestとspine、navigation documentに別の役割があります。一般仕様上の役割と、今回の記事上の三表、Rune Studioの機能を同じものとして説明しないようにします。
Rune Studioの機能と記事側の三表を分ける
Rune Studioの公開仕様では、Macのワークスペースで原稿を選び、メタデータ、表紙、出力設定を進めてEPUB 3を生成できます。出力にはcontent.opf、nav.xhtml、NCX、本文、画像が組み込まれます。Markdownのすべての記法を無条件に変換できるという意味ではありません。
今回の数値は、固有標本をCLIで出力・検査したStage 4の観測です。三表はRune Studioの機能やCLIの実測コマンドではなく、その観測結果を記事内で照合するための整理手段です。公開機能はEPUBの作成手段、Stage 4は今回の実測結果、三表は記事編集上の管理方法として分けます。
結論:三表で参照元と実測値を照合する
この記事で提示した三表では、原稿参照表に本文画像2行と表紙1行、収録資源表に期待3件・実測image_count=3・missing_images=0、読む順番表にp001・p002の2行を置いています。差分があれば、本文参照、表紙設定、章順の該当行を戻し先として選びます。
画像入りEPUB形式の作り方を三表で参照管理する本記事の方法は、Stage 4の実測値を、原稿・収録資源・章順のどこへ戻すか整理するものです。今回のEPUBを三表どおりに生成したことや、三表から再生成したことを示すものではありません。実測範囲はローカル結果までで、販売先と実機の確認は別工程です。


