📘

CalibreでEPUB→PDF変換するとフォントが太くなる問題をCSS一行で解決した話(小塚ゴシック)

に公開

発生した問題

Calibreを使ってEPUBをPDFに変換していたところ、
ゴシック系フォントを指定すると文字がやたら太くなる問題に遭遇した。

今回、はっきり問題が出たのは 小塚ゴシック(Kozuka Gothic)

  • フォントは小塚ゴシックを指定
  • BoldやMediumは指定していない
  • PDFに変換すると、全体がボールド寄りで重たい見た目になる

Calibreの変換設定を一通り見ても、
フォントの太さ(font-weight)を指定するUIは存在しない

「フォントは選べるのに、太さは調整できない」という状態だった。


最初に考えたこと(遠回りになりかけた案)

CalibreのPDF変換では、Windowsにインストールされているフォントが使われる。
そこで一瞬、

  • Windowsにインストールされている小塚ゴシックの
    Medium / Bold を削除して
  • Lightだけ残せば、強制的に細字になるのでは?

という案が頭をよぎった。

ただこれは、

  • OS全体に影響が出る
  • OfficeやAdobe製品で事故る可能性が高い
  • 環境依存が強く、再現性がない

という理由で、あまり良い方法ではなさそうだった。


原因の整理

調べたり試したりした結果、原因は次の組み合わせだった。

  • 小塚ゴシックはウエイトの種類が多い
    (Light / Regular / Medium / Bold など)
  • CalibreがWindows側のフォント解釈に委ねる
  • その結果、Medium〜Bold相当が選ばれてしまう

つまり、

Calibreが太くしているのではなく、
font-weightが曖昧なままフォント解釈に任せているのが問題

だった。


解決策:変換時の「追加CSS」でfont-weightを強制する

Calibreには、EPUB→PDF変換時にCSSを差し込める機能がある。

場所はここ。

  • Calibreトップ画面: 本を変換
  • 左サイドバー: 外観
  • タブ: スタイル > 追加CSS

ここに、次のCSSを1行追加した。

body {
  font-weight: 300 !important;
}

これだけで、問題は解決した。

PDF出力時、
小塚ゴシックが細字(Light相当)で安定して表示されるようになった。


なぜこれで解決するのか

ポイントは2つ。

  • font-weight: 300
    → 小塚ゴシックの Light を明示的に指定している
  • !important
    → EPUB内の既存CSSやCalibreの自動処理より優先させている

つまり、

Windows任せだったフォントの太さ解釈を、
CSSで強制的に上書きしている

という状態になる。


まとめ

  • 問題が起きたのはゴシック系フォントの小塚ゴシック
  • 原因は font-weight 未指定+Windows側の自動解釈
  • Calibreの「追加CSS」に1行書くだけで解決できた
body {
  font-weight: 300 !important;
}

Calibreは、
「どこでCSSを差し込めるか」を知っているかどうかで
使い勝手が大きく変わるツールだと実感した。

同じように
EPUB→PDF変換で文字が太くて困っている人の参考になれば幸いです。

Discussion