縦書きEPUBのページ進行は、紙の本らしい印象だけで決めるものではありません。原稿の組方向、OPFの進行指定、CSSの書字方向が同じ設計を示しているかを確認します。この記事では epub ページ めくり 方向の決め方を、四章の固定原稿で説明します。検証結果はOPFが rtl、CSSが vertical-rl、章順を示すnavとNCXが各四項目でした。
先に作品の開き方を仕様書へ書く
最初に「縦書き・右開き」か「横書き・左開き」かを一行で決めます。途中で感覚的に変更しないため、作品名、組方向、先頭章、最終章と一緒に記録します。翻訳版など別の組方向を持つ本は、同じ設定表を使い回さず別版として管理します。
固定原稿は四章で、各章に一つの章題と一件のルビを置きました。章数と代表記法を決めてから出力すれば、めくり方向の修正が本文資源を落としていないかも同じ本で調べられます。
OPFのrtlとCSSのvertical-rlを読む
生成したEPUBを開き、OPFのspineにある page-progression-direction="rtl" を確認します。これは読む順序の進行方向を表す指定です。次にスタイルシートの writing-mode: vertical-rl を探し、本文が縦方向へ組まれる指定と対応しているかを見ます。
片方だけが右向きでも合格にしません。進行指定が rtl なのに本文が横組みなら、読書アプリごとの補正に結果を委ねることになります。設定表、OPF、CSSの三箇所を同じ版の出力から読みます。
横書き版も同時に作る場合は、設定ファイルと出力先を分けます。縦書きEPUBのCSSを横書き版へコピーしたり、逆向きのspine指定を残したりしないよう、版名に組方向を含めます。検査表にも縦版のSHAを明記します。
navとNCXで四章の順序を往復する
固定結果ではnavとNCXがそれぞれ四章を同じ順序で持ち、欠落資源は0件でした。目次の表示名だけでなくリンク先XHTMLを比べ、第一章から第四章までがspineの並びと一致することを確認します。
めくり方向を直した後に章順が逆転したら、設定変更とは別の編集が混ざっています。原稿一覧、spine、nav、NCXを一列に並べ、最初に異なる箇所へ戻ります。四という件数が合っていても、順番が違えば不合格です。
ルビ四件を構造の取りこぼし検査に使う
各章のルビはめくり方向そのものを決めません。四章が期待どおりXHTMLへ変換されたことを確かめる標識です。固定EPUBではruby要素を合計四件確認しました。章ごとに親文字と読みを照合し、別章の要素を数えていないことも確かめます。
このように、方向の判定値と変換の完全性を別欄へ置きます。rtl が正しくてもルビが欠けることはあり、ルビ四件があってもページ進行が左向きという組み合わせはあり得ます。一つの成功表示にまとめません。
端末のスワイプ方向は実機で追加確認する
今回の固定操作で測ったのはEPUB内部です。物理トラックパッドや読書端末で、どちらへ指を動かすと次ページになるかは計測していません。アプリによって「指の動き」と「ページが進む向き」の表現も異なるため、内部指定から画面挙動を断定しません。
実機試験では端末名、OS、読書アプリと版を記録し、第一章の冒頭から一回だけ次ページへ進みます。表示されたページ、操作方向、ページ番号を残し、内部構造検査とは別の結果として扱います。
左開きになったときは一変数ずつ戻す
期待と逆に進む場合、OPFとCSSを同時に書き換え続けると原因が分からなくなります。まず出力設定を仕様書の「縦書き・右開き」へ戻し、新しいファイル名で再出力します。その後、OPF、CSS、spine、目次の順で再検査します。
古いEPUBは上書きせずSHAと出力時刻を残します。読書アプリのキャッシュが古い本を表示する場合があるため、新旧ファイルを区別して開き直します。それでも画面だけが逆なら、端末側の表示設定を別に調べます。
表紙を開いた直後の挙動と、本文中で次ページへ進む挙動も分けます。表紙や扉を単ページとして扱うアプリでは、最初の一回だけ印象が異なることがあります。第一章の本文内でもう一度試し、作品全体の方向と混同しません。
共同作業では「右開き」と「右へスワイプ」のような曖昧な指示を避けます。仕様書には rtl と、第一章の次に第二章が現れることを併記します。操作ジェスチャーではなく出版物の読む順序で合意します。
引き渡しは方向・章順・未実測を分ける
引き継ぎ表には、作品の指定、OPFの進行値、CSSの書字方向、spine、nav、NCX、欠落数を書きます。今回の値は rtl、vertical-rl、四章、ruby四件、欠落0です。ローカル構造検査の合格は販売先受理や全読書アプリの同一表示を保証しません。
Rune Studioの公開資料ではMac版の縦書きプレビューとEPUB出力が案内されています。公開機能の説明と固定EPUBの取得値を分け、実機のページ操作は未実測として次の試験へ渡します。この三層を混ぜなければ、めくり方向を感覚ではなく再確認できる仕様として管理できます。