EPUB工房EPUB KOBO
EPUBを知る / トラブル解決
トラブル解決

Kindleで縦書きにならないとき
原因は1つに絞れます

「パソコンのEPUBリーダーでは縦書きなのに、Kindleに入れたら横書きになった」。縦書きEPUBを作った人が、かなりの確率でぶつかる症状です。原因はほぼ1つに特定できるので、確認の手順とあわせて解説します。
この記事の内容
  1. こんな症状ではありませんか
  2. なぜKindleだけ違うのか
  3. 確認する手順
  4. 直し方
  5. それでも直らないとき

こんな症状ではありませんか

典型的な症状

とくに2つ目の「右綴じなのに横書き」という状態は、この問題の決定的なサインです。めくる方向の指定は効いているのに、文字を縦に組む指定だけがKindleに届いていない、ということを意味します。

なぜ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ファイルの中身は、誰でも確認できます。

1
EPUBファイルをコピーする

元のファイルを壊さないよう、複製を作って作業します。

2
拡張子を .zip に変えて解凍する

EPUBの実体はZIPなので、普通に展開できます。

3
content.opf をテキストエディタで開く

ファイル名は package.opf など、ツールによって異なります。.opf という拡張子のファイルを探してください。

4
3つの指定を探す

以下の記述があるかどうかを確認します。

<spine page-progression-direction="rtl">
<meta name="primary-writing-mode" content="vertical-rl"/>

CSSファイル(.css)も開いて、こちらも確認します。

writing-mode: vertical-rl;

3つのうち欠けているものが、原因です。 経験上、欠けているのは primary-writing-mode であることがほとんどです。

直し方

ツールを使っている場合

使用しているEPUB作成ツールに、Kindle向けの出力設定がないかを確認してください。「KDP対応」「Kindle向け」といった項目があれば、それを有効にすると必要な指定が入ることがあります。

設定が見当たらず、生成されたファイルに primary-writing-mode が入らない場合は、そのツールがKindleを想定していない可能性があります。ツールの乗り換えを検討するのが確実です。

手作業で直す場合

解凍した .opf ファイルの <metadata> の中に、次の1行を追加します。

<metadata>
  <dc:title>書名</dc:title>
  <dc:language>ja</dc:language>
  <meta name="primary-writing-mode" content="vertical-rl"/>
</metadata>
ZIPに戻すときの注意

編集後にフォルダを普通にZIP圧縮して拡張子を .epub に変えても、正しいEPUBにはなりません。

mimetype というファイルをZIPの先頭に、圧縮せずに格納する必要があるためです。手作業で再圧縮する場合は、この点に対応した手順が必要になります。

それでも直らないとき

3つの指定がすべて入っているのに横書きになる場合、次の点を確認してください。

言語指定が抜けていないか

本文のHTMLに lang="ja" がないと、日本語向けの組版ルールが適用されないことがあります。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

あわせて、.opf<dc:language>ja</dc:language> も確認します。

CSSが本文に読み込まれているか

CSSファイルに writing-mode が書かれていても、本文のHTMLからそのCSSが読み込まれていなければ意味がありません。 各XHTMLの <head><link> があるかを確認してください。

縦書き指定の適用先が合っているか

CSSの writing-mode が、bodyhtml ではなく、限定的な要素だけに適用されていることがあります。本文全体に効いているかを確認してください。

古いバージョンのファイルを見ていないか

意外と多いのが、修正前のファイルを確認しているというケースです。Kindle Previewerは一度読み込んだファイルをキャッシュすることがあるので、ファイル名を変えて読み込み直してみてください。

必要な指定を自動で入れます

EPUB工房は、縦書きに必要な3つの指定をすべて自動で出力します。テキスト原稿を貼り付けるだけ。会員登録もインストールも不要です。

EPUB工房を使ってみる