右開きを逆にしない!EPUB形式の作り方、縦書き日本語EPUB形式

右開きの日本語縦書きEPUB形式を整えるアイキャッチ

縦書き日本語EPUB形式を作るときは、本文の縦組みと本の右開きを別の条件として設定し、生成後に両方が残ったか確認します。本文側は縦書き用の組み方向、package側は右から左へ進む読書順です。二章標本へルビ、2桁数字12、記号!?を入れ、縦書き・右開きで生成した後、本文XHTML、OPF、nav、NCXを一つの出力版で照合します。

この記事の中心は、入力標本を用意して縦書きEPUBを生成するまでの手順です。CSSとOPFの不一致だけを診断する作業や、完成候補をKindle向け外部確認へ渡す工程とは開始点と結論が異なります。外部リーダーやストアの受理は本記事だけでは保証しません。

縦組みと右開きを別条件として先に決める

縦書きの「文字が縦に並ぶこと」と「ページが右から左へ進むこと」は同じ設定ではありません。期待表へ、本文の組み方向=vertical-rl、読書順=rtlと別々に書きます。片方だけ通った状態を縦書きEPUB完成としないためです。

さらに、ルビ、2桁数字、記号、章順、目次の期待結果を一行ずつ決めます。ルビは親文字と読みが対応すること、12と!?は横倒しのまま流さず縦中横の変換対象になること、C01からC02の順で読めること、二章へのnavigation資源が生成されることを確認対象にします。

この期待表は生成後に都合よく変えません。数字を縦中横にしない編集方針なら、入力時点で対象外と記録します。

二章標本へルビ・2桁数字・記号を入れる

本番全編の前に、C01とC02だけの複製を作ります。作品名、著者、出版社、言語、発行日を固定し、章ごとに見出しを一つ置きます。本文にはルビ一件、12、!?を、検索で一意に見つけられる文へ入れます。

標本を小さくする理由は、変換に失敗した位置へ戻りやすくするためです。縦中横が欠けたとき、全編の書字方向を変更するのではなく、対象文字列と入力記法だけを確認できます。

章ID、原稿ファイル、読む順番、目次掲載、検査文字列を表へ残します。ファイル名の数字だけで章を判断せず、見出しと冒頭文も識別に使います。

資料上の生成設定で縦書きと章順を指定する

Rune Studioの公開資料では、EPUBウィザードで作品情報、原稿、章順と目次掲載、書字方向、メタデータ、確認・出力を順に扱います。標本では作品情報を入力し、C01、C02の章順と掲載方針を確認し、書字方向を縦書きとして生成条件を作ります。

6ページの画面操作は、開始から終了まで実画面で確認できていません。ここで示すのは公開資料に基づく入力順です。手元で試すときは各画面の現在名称と選択値を記録し、画面を通過しただけで生成成功とは判断しないでください。

出力名には標本IDと版番号を付けます。既存EPUBを上書きせず、どの入力表から作った一冊かを追えるようにします。

別名でEPUBを生成する

期待表と設定を読み上げた後、二章標本を別名で生成します。生成が終了しても、ファイルが存在するだけで完成とはしません。対象EPUBのSHA-256を記録し、以降の検査を同じ一冊へ固定します。

二章の画像なし縦書き標本からEPUBを生成し、完成物検査に合格することを確認しました。生成物は10個の内部資源と5項目のspineを持ち、navとNCXがあり、欠落画像、未変換記法、空ページはありませんでした。この結果は同じ二章標本に限ります。

完成物検査が不合格になった場合や、欠落資源、未変換記法、予期しない空ページが見つかった場合は、その版を完成扱いせず、原稿または生成条件へ戻します。

rtl・vertical-rl・ルビ・縦中横を生成物で確認する

生成したEPUBの複製を展開し、content.opfのspineに右進行を示すrtlがあるか確認します。次にpackageが参照する本文XHTMLを開き、縦組み用のvertical-rl、ルビのrubyとrt、12と!?のtext_combine_horiを期待表の位置と照合します。

同じ二章標本では、右進行、縦組み本文クラス、ルビ、2桁数字と記号の変換を内部資源で確認しました。内部要素があることは、すべての外部リーダーで同じ見た目になる保証ではありません。ここで確定できるのは、入力した対象が検査可能なEPUB資源へ変換されたことです。

一件だけ変換されていなければ、全体設定ではなく該当原稿位置へ戻ります。入力記法が本文へ露出していないか、対象外の文字まで縦中横に入っていないかも確認します。

nav・NCX・spineで章移動と読書順を確認する

navとNCXでは、C01とC02の表示名と移動先が期待表に対応するか確認します。リンク先XHTMLを開き、見出しまたは冒頭文で章を特定します。資源が存在するだけで、移動先まで正しいとは限りません。

spineではタイトルや目次などの補助ページを含む収録順を確認し、本文C01からC02へ進むことを見ます。右開きはページ進行の条件であり、章順を逆転させる指定ではありません。

目次項目の採否やラベルを設計する作業と、本文中に表示する目次ページを作る作業は別に行います。本記事では、縦書き形式の作成結果として二章の移動先と読書順だけを確認します。

未確認のプレビューと外部表示を分ける

公開資料には縦書きプレビューが編集後約0.3秒で更新される機能が記載されています。実際に確認できたのは、縦書きタブと連動プレビューの対応が開き直した後も保持されたことまでです。約0.3秒の描画、名称追従、位置復帰、数字・記号・ルビの実画面は未確認です。

そのためEPUB内部構造の確認を、プレビュー表示成功の代わりにしません。外部リーダー、Kindle表示、ストア受理も別工程です。内部検査を通った一冊は外部確認へ渡せる候補であって、全環境での合格を意味しません。

近接記事へ譲る範囲を明確にする

CSSの組み方向とOPF/spineのページ進行が食い違ったときは、不一致の診断が必要です。本記事は、その二つを期待条件として入力し、生成結果まで一周する作り方です。

縦書き小説を全編へ広げてKindle向け確認へ渡す工程は、この二章標本が通った後に行います。本記事は二章で日本語縦書きEPUB形式を成立させるところで止め、表紙入り経路、KDP要件、価格、販売文は扱いません。

結論:設定から生成結果まで一つの版で閉じる

二章標本へルビ、12、!?を入れ、本文の縦組みと右開きを別条件で固定します。資料上の生成順に沿って縦書きと章順を指定し、別名でEPUBを生成してください。その一冊のOPFでrtl、本文XHTMLでvertical-rl、ruby、rt、text_combine_hori、さらにnav、NCX、spineを照合します。

右開きを逆にしない作り方の終了条件は、設定画面を通過したことではありません。期待表と同じ版の生成物で、縦組み、右進行、縦書き文字処理、章移動を説明できることです。Rune Studioの現行範囲はRune Studioの商品ページで確認できます。