とくに2つ目の「右綴じなのに横書き」という状態は、この問題の決定的なサインです。めくる方向の指定は効いているのに、文字を縦に組む指定だけがKindleに届いていない、ということを意味します。
理由は、KindleがEPUBをそのまま表示していないからです。
Amazonは取り込んだEPUBを自社独自の形式に変換してから配信します。読者が実際に読んでいるのは、変換後のファイルです。この変換の過程で、Amazonは独自の指定を参照します。
縦書きEPUBに必要な指定は3か所ありますが、そのうち1つはAmazon専用のものです。
| 指定 | 役割 | 効く環境 |
|---|---|---|
page-progression-direction="rtl" | ページのめくり方向 | ほぼすべて |
writing-mode: vertical-rl | 文字を縦に組む(CSS) | 標準的なリーダー |
primary-writing-mode | 縦書きであることの宣言 | Kindle |
3番目が欠けていると、まさに「右綴じなのに横書き」になります。 1番目は効いているのでページは右から左にめくれ、2番目のCSSはKindleの変換で無視されるか上書きされるため、本文は横書きのまま——という組み合わせです。
Apple Booksや一般的なEPUBリーダーは、CSSの writing-mode を素直に解釈します。だから3番目が欠けていても、そこでは正しく縦書きに見えてしまう。「手元では大丈夫だった」が通用しないのが、この問題の厄介なところです。
EPUBファイルの中身は、誰でも確認できます。
元のファイルを壊さないよう、複製を作って作業します。
EPUBの実体はZIPなので、普通に展開できます。
ファイル名は package.opf など、ツールによって異なります。.opf という拡張子のファイルを探してください。
以下の記述があるかどうかを確認します。
CSSファイル(.css)も開いて、こちらも確認します。
3つのうち欠けているものが、原因です。 経験上、欠けているのは primary-writing-mode であることがほとんどです。
使用しているEPUB作成ツールに、Kindle向けの出力設定がないかを確認してください。「KDP対応」「Kindle向け」といった項目があれば、それを有効にすると必要な指定が入ることがあります。
設定が見当たらず、生成されたファイルに primary-writing-mode が入らない場合は、そのツールがKindleを想定していない可能性があります。ツールの乗り換えを検討するのが確実です。
解凍した .opf ファイルの <metadata> の中に、次の1行を追加します。
編集後にフォルダを普通にZIP圧縮して拡張子を .epub に変えても、正しいEPUBにはなりません。
mimetype というファイルをZIPの先頭に、圧縮せずに格納する必要があるためです。手作業で再圧縮する場合は、この点に対応した手順が必要になります。
3つの指定がすべて入っているのに横書きになる場合、次の点を確認してください。
本文のHTMLに lang="ja" がないと、日本語向けの組版ルールが適用されないことがあります。
あわせて、.opf の <dc:language>ja</dc:language> も確認します。
CSSファイルに writing-mode が書かれていても、本文のHTMLからそのCSSが読み込まれていなければ意味がありません。 各XHTMLの <head> に <link> があるかを確認してください。
CSSの writing-mode が、body や html ではなく、限定的な要素だけに適用されていることがあります。本文全体に効いているかを確認してください。
意外と多いのが、修正前のファイルを確認しているというケースです。Kindle Previewerは一度読み込んだファイルをキャッシュすることがあるので、ファイル名を変えて読み込み直してみてください。