縦書きで崩さない!EPUBの作り方、縦書き小説向けに崩れを防ぐ設定

縦書き原稿が三つの設定確認を通って崩れのない右開きEPUBになるアイキャッチ

縦書き小説のEPUBは、原稿を変換しただけでは完成しません。最初に確かめたいのは、本文が縦に見えるかだけでなく、文字の流れが上から下、ページが右から左、短い数字が縦中横になっているかです。この三つは別の設定なので、二章だけの短編を標本にして一つずつ確認すると原因を切り分けられます。

ここでは表紙なしの二章短編を標本にします。数字は2桁のものを3例(第1章に「10時」「25頁」、第2章に「48分」)、!?は3例(第1章に「本当!?」、第2章に「えっ!?」「まだ!?」)、ルビは3例(「縦書き/たてがき」「組版/くみはん」「傍点/ぼうてん」)に固定します。三種類を合計3例ずつにすることで、章ごとの配置差も確認できます。販売先への入稿可否や全端末での同一表示は別の検査です。

最初に三つの設定を分ける

本文の縦書きは、CSSの writing-mode: vertical-rl; が担います。vertical-rl は行を縦にし、列を右から左へ送る指定です。しかし、これだけでは本全体のページ送りまで右開きになったとは判断できません。ページ進行はEPUBのパッケージ側で確認します。

2桁の数字を一つの縦のマスに収める縦中横も、本文全体の縦書きとは別です。「10時」の10を縦中横にしたいのか、「2026年」を一文字ずつ縦に並べたいのかを原稿段階で決めます。すべての数字を一律に処理すると、年号や型番まで読みづらくなります。

二章標本を先に作る理由

第1章だけでは、章をまたいだページ進行や目次から第2章へ移る動きを見落とします。反対に全編をいきなり変換すると、崩れの原因が原稿、CSS、章順のどこにあるか探しにくくなります。

標本には次を置き、位置を変えません。

この小さな標本で、まず本文の列が右から左へ進むかを見ます。次に第1章から第2章へ送ったときの方向を確かめ、最後に数字、感嘆符と疑問符、ルビの位置を見ます。一度に全部を直さないことが重要です。

崩れごとの戻り先

本文が横書きなら、句読点を直す前に縦書き指定へ戻ります。縦書きなのにページが左から右へ進むなら、本文ではなくパッケージのページ進行を見直します。「10」が横倒しなら、その文字列を縦中横にする範囲を見直します。!? の向きや間隔が不自然なら、原稿中の全角・半角と出力時の記号処理を分けて確かめます。

ルビがずれたときは、見た目だけをCSSで押し込まず、親文字と読みの対応へ戻ります。第1章だけ直った場合も全章へ広げず、第2章の同じ標本で再現するかを確認します。この順番なら「直したつもりで別の設定を壊す」事故を減らせます。

生成前と生成後で同じ箇所を見る

生成前の縦書きプレビューは、原稿中の数字や記号を早く見つけるために使います。生成後のEPUB表示は、実際に組み立てられた本文、章順、ページ進行を見るために使います。前者で整っていても後者の合格を意味しません。

確認箇所は「数字1:第1章10時」「数字2:第1章25頁」「数字3:第2章48分」、「記号1:第1章本当!?」「記号2:第2章えっ!?」「記号3:第2章まだ!?」、「ルビ1:縦書き/たてがき」「ルビ2:組版/くみはん」「ルビ3:傍点/ぼうてん」のように名前を付けます。修正したら同じ9個の名前へ戻り、別の箇所を眺めて合格にしないようにします。二章の全標本を確認できたら、全章へ展開します。

Rune Studioを候補にするときの境界

現行Mac版の公開機能資料では、Rune Studioは vertical-rl の縦書きプレビューと、右開き・縦中横・記号処理を含むEPUB 3出力を備えるという機能範囲が確認できます。したがって、原稿の確認からEPUB候補の作成までを一つの環境で試す候補になります。

ただし、ここで述べた二章標本を実機で完遂した結果ではなく、公開資料で確認できる機能範囲です。KDPの受理や、すべての読書端末で同じ表示になることは保証しません。出力後は利用予定の検証環境でも確認してください。

日本語本文と章見出しを縦書きで表示したプレビュー画面
日本語本文と章見出しを縦書きで表示したプレビュー画面。

迷ったら三箇所だけ作る

最初の一歩は、短い二章原稿に2桁数字3例、!?3例、ルビ3例を番号付きで置くことです。本文の縦書き、右開き、縦中横を別々に直し、同じ9箇所を生成前後で見比べます。設定を混ぜないことは、縦書きEPUBの崩れの原因を切り分け、手戻りを抑える一案です。

設定表に合格条件を書く

設定を確認するときは、項目名だけでなく合格条件まで書きます。たとえば本文方向は「列が右から左へ進む」、ページ進行は「第1章から第2章へ右開きで進む」、数字は「10時が意図したまとまりで読める」、記号は「!?が台詞の流れを壊さない」、ルビは「親文字との対応が崩れない」とします。

この表を生成前と生成後の二列に分け、標本欄を「数字1〜3・記号1〜3・ルビ1〜3」と9行にすると、設定を指定したことと、出力で確認できたことを混同しません。未確認の欄には「未確認」と残し、見た目が近いだけで合格にしないことが大切です。標本を差し替えた場合は、原稿の版名も表へ追記します。

判定の例を具体化すると、本文方向は第1章と第2章の両方で列が右から左へ進むこと、ページ進行は章をまたいで右開きになること、数字は「10時」「25頁」「48分」の3例が意図したまとまりで読めること、!?3例の向きと間隔が崩れないこと、ルビ3例が親文字へ対応することを条件にします。「第1章だけ確認済み」「数字1は見たが数字2・3は未確認」のような状態は合格にしません。本文が横書きなら縦書き指定へ、ページ方向だけが逆ならページ進行へ、標本だけが崩れるなら該当文字列またはルビ処理へ戻ります。

確認が終わったら、設定表と二章標本を同じ場所へ保存します。次回の改訂で一文字だけ変更するときも、同じ標本へ戻れるため、前回の判断を再利用できます。

Rune Studioの商品ページを見る