入力漏れを防ぐ!電子書籍の作り方、目次を作る手順

章の並びをそろえて電子書籍の目次を作るアイキャッチ

電子書籍の目次を作るときに入力漏れを防ぐには、見出し文字列だけを並べず、六章それぞれに表示順、目次掲載可否、移動先を持たせます。C01〜C06のうちC05「資料一覧」は本文には残し、主要目次からは除外します。表示用目次はC01、C02、C03、C04、C06の五項目です。表紙や奥付の総合制作は扱いません。

六章へ変わらない章IDを付ける

C01=はじめに、C02=準備、C03=基本操作、C04=実例、C05=資料一覧、C06=まとめとします。章名を直してもIDは維持し、目次項目と本文の対応を追えるようにします。

「第三章」のような番号だけをIDにせず、原稿管理上のC番号を別に持ちます。

本文順をC01からC06で固定する

読む順はC01、C02、C03、C04、C05、C06です。目次から除外するC05も本文順から消しません。表示用目次の順序とspine上の本文順は同じものではないためです。

章をドラッグした後は六IDを上から読み、C05の位置も確認します。

掲載可否を六章すべてに記録する

C01〜C04とC06は掲載=はい、C05は掲載=いいえです。五項目だけの一覧を作ってC05を忘れたのではなく、六章を判断した結果として一件除外したことを残します。

未判断と非掲載を同じ空欄にしません。

C05を目次から外す理由を具体化する

資料一覧は本文中のリンクから参照し、主要な読み始め地点としては使わない標本です。そのため本文には残し、表示用目次から外します。

利用者が直接開く必要がある資料集なら掲載判断は変わります。除外は固定ルールではなく、この一冊の目的です。

五つの表示ラベルを本文見出しと合わせる

目次ラベルは「はじめに」「準備」「基本操作」「実例」「まとめ」です。本文見出しに「まとめ。」と句点があれば、どちらを正とするか決め、表示ラベルだけで隠しません。

読者に見せる短縮名を使う場合は、章IDと対応を別欄にします。

移動先hrefを五項目へ割り当てる

C01はch01.xhtml、C02はch02.xhtml、C03はch03.xhtml、C04はch04.xhtml、C06はch06.xhtmlを指します。ファイル内の節へ移動する場合だけ#fragmentを付けます。

表示ラベルが正しくてもhrefがC05や別章なら入力漏れです。

リンク先の章IDを本文側でも確認する

各XHTMLの先頭見出しまたは管理記録にC番号を対応させ、リンクを開いた先が期待章かを見ます。ファイル名だけがch03でも中身がC04なら不合格です。

五項目すべてを一度ずつ移動します。

表示順と本文順の差を表で見る

表示順はC01、C02、C03、C04、C06、本文順はC01〜C06です。C04の次に表示上C06が来ても、本文を次へ送ればC05を通ります。

この差を意図したものとして説明できれば、五項目と六章の数字が違っても漏れではありません。

一般的なEPUBナビゲーションの役割を分ける

EPUB 3のナビゲーション文書は表示ラベルとリンク先を持ち、読者の移動入口になります。本文ファイルやpackage文書そのものを置き換えるものではありません。

この一般構造と、特定アプリで章順・掲載可否を選ぶ操作を同じ主語で書きません。

Rune Studioでは章順と掲載可否を選ぶ

公開資料では、EPUBウィザードのチャプター順で章、タイトルページ、目次ページを並べ、章ごとに目次掲載を選ぶ構成が説明されています。

実際の確認では、Markdown見出しの抽出、章順、章ごとの目次除外、生成後のnav.xhtmlと互換用NCXまで再現できました。

タイトル・もくじ・第一章・第二章の順序と、もくじ掲載の可否が並ぶRune StudioのEPUB作成画面
EPUB作成のファイル順序の画面。タイトル、もくじ、各章の並びと、章ごとのもくじ掲載の可否が一覧で見えます。生成が成功したことは、この画面からは分かりません。

目次タブは原稿見出しの事前確認に使う

Rune Studioの目次タブはMarkdown見出し一覧、現在位置追跡、レベル絞込み、クリック移動を行う公開仕様です。ただし、今回の実操作では目次タブの追跡、レベル絞込み、クリック移動を確認していません。六章・五リンクの固有標本も未確認です。

目次タブの一覧がそのままEPUBの掲載可否ではありません。C05を表示用目次から外す判断はウィザード側に残ります。

五項目を上から順に開く

C01、C02、C03、C04、C06の順で目次リンクを開き、表示見出しと章IDを確認します。最後のC06だけでなく全件を試します。

誤った章へ移動した場合は、表示ラベルではなく六章表のIDへ戻り、hrefと移動先見出しを同時に直します。リンクだけを別章へ付け替えてラベルを残すと、次の生成で同じ不一致が戻ります。五件を上から開き直し、C01、C02、C03、C04、C06の順、空ラベルゼロ、空hrefゼロ、重複hrefゼロになったときだけ合格です。

戻る操作で目次へ戻れるかも読み手の手順として確認しますが、特定端末のUIを保証しません。

章名一件を変えた場合の影響を限定する

C03「基本操作」を「基本操作の流れ」へ変えたら、本文見出しと表示ラベルを更新します。hrefが同じch03.xhtmlなら移動先は変えません。

ここで行うのは目次を作る段階の整合確認です。修正前後のEPUBを再生成して差分を比べる仕上げは、別の確認として行います。

表紙・奥付を目次判断へ混ぜない

表紙画像、著者、発行日、奥付は一冊に必要でも、六章の掲載可否とhrefを決める根拠ではありません。本記事の一覧へ書誌欄を足しません。

目次だけの欠落を見つけやすくするため役割を限定します。

六行の目次判断表を先に完成させる

表の列は章ID、本文見出し、本文順、掲載可否、表示ラベル、href、除外理由です。C01〜C06の六行を作り、C05だけ掲載いいえと理由を埋めます。

五つの表示項目から逆算せず、六章すべてを判断してから掲載行を抽出します。

hrefの相対位置を目次ファイル基準で解決する

nav.xhtmlと章XHTMLが同じOEBPS階層ならch03.xhtml、textサブフォルダに章があるならtext/ch03.xhtmlのように、目次ファイルからの相対位置を考えます。

文字列が期待名でも実ファイルへ到達しないhrefは不合格です。

重複リンクと未参照章を同時に探す

五hrefを集合として確認し、同じch03.xhtmlが二回あれば重複、掲載はいの章へリンクがなければ欠落です。C05は掲載いいえなので未参照でも予定どおりです。

表示項目数五が合っていても、重複一件と欠落一件が相殺されることがあります。

表示ラベルを短くしても章IDを保持する

本文見出し「第三章 基本操作の詳しい流れ」を目次で「基本操作」と短縮する場合、C03対応を判断表に残します。短縮後の語だけで別章と誤認しないためです。

検索結果やアクセシビリティを考え、意味を失う一文字ラベルにはしません。

章順を変えたら六行すべて再採番する

C04とC05の本文順を入れ替えた場合、表示目次に出ないC05も含めて六行の順序を更新します。表示五項目だけを動かすと本文順との対応を失います。

href先のファイル名を順番だけで決めている場合は、実章IDも再確認します。

目次から本文へ移動後の戻り口を保つ

各章リンクを開いた後、リーダーの目次操作で五項目一覧へ戻れるかを一般的な読書手順として確認します。本文に独自の「目次へ戻る」リンクを必須とはしません。

端末固有UIの位置や名称は本記事の合格条件にしません。

空ラベルと空hrefを六行表で明示的に拒否する

掲載はいの五章では表示ラベルとhrefの両方が必須です。ラベルだけあって移動先が空、hrefだけあって画面に文字が出ない状態を、項目数五の中へ数えません。

C05は掲載いいえなので表示ラベルとhrefを空にできますが、除外理由は必須です。空欄が未入力か意図的除外かを一行の可否で区別します。

六判断・五表示・五移動で完了する

六章すべてに掲載判断があり、五項目が期待順で表示され、五hrefが正しい章へ移動すれば完了です。C05は本文に残り非掲載理由があります。

まず六章表を作り、Rune Studioの商品ページで章順と目次掲載の公開範囲を確認してください。五リンクを開いて合格した後に、表紙や奥付を含むパッケージ全体の検査へ進みます。