
EPUBで画像が表示されない原因の一つが、原稿に書いた相対パスと、実際の画像の置き場所の食い違いです。今回の検証では、この状態でも書き出しが成功しました。対策は、出力前に原稿を起点として画像の実在を確かめ、出力後にもEPUB内の欠けを検査する二段構えです。
この記事では、なぜ切れるのか、切れたときに何が起きるのか、どうやって出す前に見つけるのかを扱います。画像フォルダの決め方や、画像記法の書き方は別の記事に譲ります。
原稿は「場所」ではなく「道順」を持っている
原稿の中に書いてあるのは、画像そのものではなく、その画像までの道順です。画像/挿絵1.png と書いてあれば、「この原稿があるフォルダの下の、画像というフォルダの中の、挿絵1.png」という意味になります。
道順なので、起点が変わるか、行き先が変わるかのどちらかで切れます。
- 画像を別のフォルダへ移した(行き先が変わった)
- 原稿を別のフォルダへ移した(起点が変わった)
- 画像の名前を変えた(行き先が変わった)
- フォルダの名前を変えた(途中が変わった)
このうち、書き手が「整理した」つもりでやるのは上の4つ全部です。整理は道順を壊す作業でもある、というのが実際のところです。
出力前は、原稿を起点に実在を確かめる
出力前の確認では、原稿内の画像記法を見つけ、原稿ファイルがあるフォルダを起点にパスをたどります。行き先に画像ファイルが実在すれば、その相対パスはつながっています。見つからなければ、画像を元へ戻すか、原稿内のパスを現在地へ合わせます。
画像を移したことが分かっている場合、rune Studioでは古い場所と新しい場所を指定して、書き換え対象を事前に数えられます。検証では下見が1ファイル・1か所を返し、書き換え後に原稿のパスが新しい場所へ変わりました。これは「切れたパスを自動発見する」検査ではなく、既知の移動に対して変更範囲を確認してから直す手順です。
出来上がりを開いて確かめる、という方法
いちばん素朴なのは、書き出したEPUBを読書アプリで開き、挿絵のあるページまで進んで確かめることです。
もう一つは、EPUBを解いて中の画像フォルダを見る方法です。入っているはずの画像が入っているかを、ファイルの一覧で確かめます。
「書き出しは成功する」のが、いちばん厄介
画像が切れていても、EPUBの書き出しは止まりません。
実際に開発版を命令から動かして確かめました。原稿が指している画像を別のフォルダへ移してから書き出したところ、書き出しは成功し、EPUBファイルが作られました。エラーも警告も出ませんでした。
この状態のEPUBを読書アプリで開くと、その章まで進んだところで初めて絵が出ないと分かります。挿絵が9章目にあるなら、9章目まで読まないと分かりません。
販売後に見つかれば、差し替えが必要になる場合があります。だから、手元での事前確認と書き出し後の検査を分けて行います。
EPUBを解いて中を見る方法は確実ですが、20枚の挿絵があるとき、原稿の道順20件と、中に入っている画像20件を突き合わせることになります。手作業では現実的ではありません。
rune Studioは、切れた画像を名指しで返す
rune Studioには、書き出したEPUBの中身を調べる機能があります。読む順番、目次、画像の欠け、記法の取り残し、空のページを一度に見ます。
先ほどの、画像を移してから書き出したEPUBを調べました。結果は問題ありに変わり、「本文が参照している画像がEPUBに入っていません」として、どの本文がどの画像を指しているかがそのまま返りました。
正常なEPUBを同じ検査にかけると、画像は2件入っており、欠けは0件、判定は問題なしでした。同じ検査で、画像欠けの指摘があるかどうかが分かります。
EPUBの中では、画像の名前が変わる
ひとつ知っておくと役に立つことがあります。EPUBの中に入るとき、画像の名前は原稿に書いた名前のままではなく、ページを基準にした名前に付け替えられます。実際、原稿では 挿絵1.png だった画像が、EPUBの中では本文のページに対応した名前になっていました。
だから、EPUBを解いて画像の名前を探しても、原稿と同じ名前は見つかりません。 突き合わせを手でやろうとして混乱するのは、たいていここです。
出す前に直すなら、道順の書き換え
切れが見つかったら、原稿の道順を直します。rune Studioには道順をまとめて書き換える機能があり、書き換える前に対象の件数を返します。移動前と移動後の場所を指定して下見したところ、対象は1ファイル・1か所と返り、実行すると原稿の中の道順が新しい場所に変わりました。
向く人と、別の方法が向く人
向いているのは、挿絵のある本を出す人全員です。 枚数が少なくても、フォルダを一度でも整理したなら起きます。
挿絵が1枚もない本なら、この手順は不要です。 文字だけの小説なら、この検査で見るのは画像以外の項目になります。
なお、確かめたのはEPUBファイルの中に画像が入っているかどうかまでです。読書アプリで実際にどう表示されるか、画像の大きさが適切かは、この検査の範囲外です。
まとめ
- 画像が出ない原因の一つは、原稿の相対パスと実際の置き場所の食い違い
- 画像が切れていてもEPUBの書き出しは成功するので、その場では気づけない
- 出力前は原稿を起点にファイルの実在を確かめ、既知の移動は件数を下見してからパスを書き換える
- rune Studioは書き出したEPUBを調べ、どの本文がどの画像を指しているかを名指しで返す
- EPUBの中では画像の名前が付け替わるので、手で突き合わせようとすると混乱する
次の一歩として、出力前の原稿から画像パスを1本たどり、ファイルが実在するか確かめてください。書き出し後の検査が0件なら、確認できた範囲では画像欠けの指摘がない、という意味です。表示と販売先の受理は別に確認します。


