右開きを逆にしない!EPUBルビ、縦書きプレビューと出力後のルビ確認

EPUBのルビ確認では、「ルビ記法が出力に残ったか」と「縦書きプレビューで親文字のそばに読みに見えるか」を分けて調べます。今回の合成原稿では、Rune Studioの縦書きプレビューに「検証語」と読みの「けんしょうご」が並び、出力EPUBのXHTMLにもruby要素が残りました。画面と生成物の両方がそろって初めて、この標本のルビを受け入れられます。

最初に親文字と読みの組を三つ決める

本番原稿でいきなり全ルビを眺めると、欠落と位置ずれを同時に探すことになります。まず短い複製へ、長さの違う三組を置きます。今回の標本には「検証語/けんしょうご」と「漢字/かんじ」を含め、2桁数字と!?も同じ段落に置きました。確認対象を一行にまとめると、縦中横や記号処理とルビの境界も見分けられます。

一般的な確認では、親文字、読み、出現数を表にします。プレビュー欄と出力欄を分け、片方の合格をもう片方へ写しません。親文字だけが見えるなら表示側の問題、XHTMLからrtが消えているなら変換側の問題です。同じ「ルビが変」に見えても戻り先が異なります。

Rune Studioのルビは、サイドバーまたは書式メニューから挿入できます。命令で再現する場合はrune text ruby --match 検証語 --reading けんしょうごを使います。今回の専用ファイルではこの操作が成功し、原稿へルビ記法が挿入されました。記事ではこの対応記法を扱い、Markdown全仕様の一般機能とは呼びません。

縦書きプレビューは文字列ではなく配置を目で見る

ルビを入れた原稿をアクティブにし、「プレビュー」を開いて縦書きへ切り替えます。Rune Studioの現行Mac版ではCSSのvertical-rlを使う縦書きプレビューが実装されています。検証画面では列が右から左へ並び、「検証語」のそばに小さな「けんしょうご」、「漢字」のそばに「かんじ」が見えることを原寸で確認しました。2桁の12と!?も同じ画面にあり、ルビだけを別原稿で確認したわけではありません。

ここで合格にするのは、指定した親文字に指定した読みが隣接していることです。画面全体が縦書きでも、読みが別の親文字へ付いていれば不合格です。表示を拡大して、親文字の開始と読みの開始が対応するかを一組ずつ見ます。今回保存した画面は合成標本の現行Macプレビューであり、販売先の全端末に同じ位置で出ることを証明する画像ではありません。

プレビューに読みが出ない場合は、まず原稿へ戻ります。親文字と読みの区切りが崩れていないか、同じ語に二重の記法が入っていないかを確認します。画面の再読み込みだけを繰り返すのではなく、記法を一組だけ作り直し、プレビューを閉じて再び開きます。

出力後はXHTMLのrubyと右開き指定を別々に読む

プレビューで合格しても、引き渡すのはEPUBファイルです。検証ではrune epub series setへ縦書きと日本語を指定し、2つの原稿ファイルを選びました。改ページにより章は3つになり、rune epub planで順番を確認した後、別名のEPUBへ出力しています。保存先は専用ワークスペースのEPUBフォルダです。

再読込した結果はvalid=true、spine 6、navあり、NCXありでした。展開したXHTMLにはruby要素が3件あり、そのうち「検証語」にrtの「けんしょうご」、「漢字」に「かんじ」が収録されていました。OPFのspineにはpage-progression-direction="rtl"もあります。ルビの保持はXHTML、右から左へのページ進行指定はOPFというように、証拠の場所を分けます。

valid=trueだけではルビの読みが正しいとは限りません。構造検査に通った後も、対象のXHTMLを開き、表に記録した親文字と読みを検索します。3件を期待した標本で2件しか見つからなければ、EPUBを読書アプリで開く前に変換工程へ戻せます。

画面だけ合う場合とXHTMLだけ合う場合の戻り方

プレビューは正しいのにXHTMLからルビが消えた場合は、出力対象に古い原稿を選んでいないかを確認します。EPUBウィザードの原稿選択と章順を開き、ルビを直したファイルが選択されているか、同名の複製が混ざっていないかを見ます。出力ファイル名の試行番号を増やし、前のEPUBへ上書きしないでください。

XHTMLにはルビがあるのにプレビューで親文字との対応が読めない場合は、表示側の問題として扱います。親文字を一語へ縮めた標本を作り、背景色や拡大率を変えずに再表示します。それでも位置を判定できなければ、プレビューの見た目を確認済みと書かず、XHTMLでの保持だけを記録します。

右開きが疑わしいときはルビ記法を触りません。EPUBの組み方向とOPFのrtlを確認します。逆に、ページ進行が正しくても読みが違うなら親文字とrtへ戻ります。問題を分離しておけば、一つの修正で別の合格を壊しにくくなります。

合格は「見えた」「残った」「方向が合った」の三点

今回の合成標本では、現行Mac版の縦書きプレビューで親文字と読みを目視し、出力XHTMLで3件のrubyを読み、OPFでrtlを確認しました。これがこの記事の実測範囲です。iPad版は開発中のため対象にせず、販売先や全リーダーの表示一致も保証しません。

epub ルビの作業を本番へ移すときは、代表的な三組を選び、プレビュー欄、XHTML欄、ページ進行欄を埋めてください。どれかが空欄なら「たぶん同じ」と補わず、その欄の証拠が取れる場所へ戻ります。ルビの存在と右開きを一つの印象で済ませず、別々の根拠をそろえることが、出力後の手戻りを最も小さくします。