【未解決】KindleのSend-to-Kindleで縦書きEPUBのCSS行間が狭くできない問題と1.14emの限界値
テキストファイルをEPUBに変換するツール「AozoraEpub3」を使用し、縦書き電子書籍を作成してSend-to-Kindle機能でKindle端末へ転送・閲覧する手法は、電子書籍自作における標準的な選択肢となっています。
この環境で紙の文庫本のような密度の高い紙面を実現し、読書体験を向上させるための鍵となるのがCSSによる行間(line-height)の調整です。Kindleのデフォルト表示では行間が広く設定されており(約1.8em相当)、1画面あたりの文字数が少なくなる傾向があります。
本取り組みの目的は、AozoraEpub3内のCSS(vertical.css)をカスタマイズし、行間を意図的に詰めることでページめくりの頻度を削減し、端末上での閲覧効率を高めることにあります。具体的には、標準の1.8emから1.1em前後の狭い行間を設定し、1画面あたりの表示文字数を約30%以上増加させる表示密度の確立を定量的目標として設定していました。
2026年7月に突如発生したCSS行間指定の無効化現象
しかし、2026年7月に入り、これまで正常に機能していたCSSの行間調整を適用したEPUBファイルをSend-to-Kindle経由で送信したところ、端末上で設定が一切反映されない問題が発生しました。
具体的には、CSS側で line-height: 0.8em や 1.10em といった狭い指定を行っているにもかかわらず、Kindleでファイルを開くと強制的に標準の広い行間にリセットされてしまう現象です。
AozoraEpub3のテンプレートCSSの記述を変更し、EPUBの再生成と送信を繰り返しても、端末上の表示には何ら変化が見られず、設定が無効化される事態となりました。
4月時点の同一EPUB再送実験で判明したAmazon側の仕様変更
原因がローカルの変換設定にあるのか、転送環境にあるのかを切り分けるため、過去のデータを用いた比較検証を行いました。
検証の基準として、2026年4月21日にSend-to-Kindleで転送した縦書きEPUBファイルを確認したところ、当時は狭い行間指定(1.13em以下)が正常に反映され、意図通りの文字密度で表示されていました。
そこで、2026年4月21日当時に生成し、正常表示が確認されていた同一のEPUBファイルを、ローカル環境で再変換や編集を行わずにそのまま再度Send-to-Kindle経由で送信する実験を実施しました。
実験の結果、4月時点では正常に表示されていた同一ファイルであるにもかかわらず、7月の再送時には行間設定が無効化され、広い行間にリセットされることを確認しました。
この結果から、AozoraEpub3の出力仕様やローカル環境の問題ではなく、2026年4月下旬から7月までの間に、Amazon側のクラウド変換エンジン(Send-to-KindleにおけるEPUBからKFX等への変換パイプライン)で縦書きCSSに対するバリデーション仕様が変更されたことが確実となりました。
実験で突き止めた限界値「1.14emの壁」とvertical.cssの指定
Amazon側のサーバー変換において、どの数値までが行間指定として許容されるのかを特定するため、line-height の数値を段階的に変化させたテスト用EPUBを作成し、転送実験を繰り返しました。
検証結果は以下の通りです。
・line-height: 80% / 0.8em → 無効化(標準行間にリセット)
・line-height: 100% / 1.0em → 無効化(標準行間にリセット)
・line-height: 110% / 1.10em → 無効化(標準行間にリセット)
・line-height: 112% / 1.12em → 無効化(標準行間にリセット)
・line-height: 113% / 1.13em → 無効化(標準行間にリセット)
・line-height: 114% / 1.14em → 正常に反映(行間が詰まった状態で適用)
実験の結果、Send-to-Kindleのクラウド変換エンジンは、1.13em(113%)以下の指定を「レイアウト崩れ防止」の観点から自動消去・リセットする閾値を設けていることが判明しました。
現在、AozoraEpub3 の /aozoraepub3/template/OPS/css/vertical.css において、body 要素に対して以下のように 1.14em を指定することで、フィルターを回避して適用可能な最小行間を維持できます。
@charset "utf-8";
@namespace "http://www.w3.org/1999/xhtml";
body {
line-height: 1.14em !important;
}
今後の検証方針とAmazonへの問い合わせ状況
現時点では line-height: 1.14em !important; の指定が、Send-to-Kindle経由で適用できる行間の限界値(暫定解)となります。
しかし、2026年4月以前のように 1.10em や 1.00em といった、より高密度なレイアウトへ戻すための完全な回避策(CSS構文やHTML構造のハック)については、未だ特定に至っていません。
引き続き対策方法を検証していく予定です。
まとめ
Send-to-Kindle経由で縦書きEPUBを送信する際、2026年4月以降のAmazon側仕様変更により、CSSのline-heightが1.13em以下の指定が無効化される現象が発生しています。過去に正常表示されていた同一EPUBの再送実験により、原因がクラウド変換エンジンの仕様変更にあると特定され、検証の結果、現在適用可能な最小行間は1.14emであることが判明しました。現在はAozoraEpub3のbodyにline-height: 1.14em !important;を指定することで暫定対応し、完全解決に向けて継続して調査を行っています。