怎样用 Calibre 调整 EPUB 的格式使之完美阅读

From 清冽之泉
Jump to navigation Jump to search

我:怎么 epub 这种按理论来说应该最优美的电子书格式,往往一团糟,是我打开方式不对吗?我用的 epub 拓展在 firefox 里打开。没有任何样式,没有段前缩进,没有段前段后空行,纯文本的样子。Windows 10 上有什么能还原 epub 原生样式的电子书阅读器?

历史

ChatGPT:你这个吐槽非常典型,而且你不是一个人。EPUB 理论上是“最优雅的电子书格式”,现实里却经常变成“HTML 裸奔文本”。原因主要有三层:

  1. 格式本身本质就是一堆 HTML + CSS。完全依赖阅读器对 CSS 的支持程度。
  2. “制作”质量本身就烂。往往不是制作的,是导出的,本身就没有什么 CSS。

最佳阅读器,不是 EPUB 拓展。不是 SumatraPDF。而是 Calibre。

Calibre

Calibre 分为:

  1. Main。它能使各类电子书格式互转。
  2. Editor。它能批量清洗不喜欢的样式。
  3. Viewer。它能调字体。能调段前段后距。

CSS

一个典型好用的 Viewer 样式设置如下:

  1. 字号 20 px
  2. 段前段后空一行
  3. 衬线字体:思源宋体 Source Han Serif SC
  4. 非衬线字体:微软雅黑 Microsoft YaHei

段前段后空一行的 CSS 在 Viewer 里的写法:

p {
  margin-top: 1em !important;
  margin-bottom: 1em !important;
}

这是我模仿的网页版知乎的阅读体验。我刷知乎十几年了,百刷不厌,知乎网页端的字体、字号、段前段后间距,非常值得学习。看似简单,实则很有用。

正则

Calibre 采用 PCRE 正则,一个非常有用的正则是,把 <br\s*/?>\s* 替换为 </p>\n<p>。

  1. <br 匹配它自己
  2. \s* 匹配一个或多个格格
  3. /? 匹配一个或零个 /

它能成功解决掉以下情况:

<br/>
<br>
<br />
<br    />
<br/>    她一定是个坚毅的女孩

对比

左边是别的阅读器,没法调字体、字号、别的样式。没有换行,给人一种急着赶路、呼吸不畅、压力满满、读不完了的感觉。

右边是 Calibre Viewer,可以自己调字体、字号、别的样式。段前段后空一行,很舒展,适合慢慢享用。

通过 Calibre Editor 调电子书格式,再通过 Calibre Viewer 阅读,能很好地解决电子阅读不美观的问题,阅读的体验完美了。