怎样用 Calibre 调整 EPUB 的格式使之完美阅读: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
我:怎么 epub 这种按理论来说应该最优美的电子书格式,往往一团糟,是我打开方式不对吗?我用的 epub 拓展在 firefox 里打开。没有任何样式,没有段前缩进,没有段前段后空行,纯文本的样子。Windows 10 上有什么能还原 epub 原生样式的电子书阅读器? | 我:怎么 epub 这种按理论来说应该最优美的电子书格式,往往一团糟,是我打开方式不对吗?我用的 epub 拓展在 firefox 里打开。没有任何样式,没有段前缩进,没有段前段后空行,纯文本的样子。Windows 10 上有什么能还原 epub 原生样式的电子书阅读器? | ||
== 历史 == | |||
ChatGPT:你这个吐槽非常典型,而且你不是一个人。EPUB 理论上是“最优雅的电子书格式”,现实里却经常变成“HTML 裸奔文本”。原因主要有三层: | ChatGPT:你这个吐槽非常典型,而且你不是一个人。EPUB 理论上是“最优雅的电子书格式”,现实里却经常变成“HTML 裸奔文本”。原因主要有三层: | ||
# 格式本身本质就是一堆 HTML + CSS。完全依赖阅读器对 CSS 的支持程度。 | # 格式本身本质就是一堆 HTML + CSS。完全依赖阅读器对 CSS 的支持程度。 | ||
| Line 8: | Line 9: | ||
最佳阅读器,不是 EPUB 拓展。不是 SumatraPDF。而是 Calibre。 | 最佳阅读器,不是 EPUB 拓展。不是 SumatraPDF。而是 Calibre。 | ||
== Calibre == | |||
Calibre 分为: | Calibre 分为: | ||
# Main。它能使各类电子书格式互转。 | # Main。它能使各类电子书格式互转。 | ||
| Line 13: | Line 15: | ||
# Viewer。它能调字体。能调段前段后距。 | # Viewer。它能调字体。能调段前段后距。 | ||
== Viewer == | |||
一个典型好用的 Viewer 样式如下: | 一个典型好用的 Viewer 样式如下: | ||
# 字号 20 px | # 字号 20 px | ||
| Line 27: | Line 30: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 正则 == | |||
Calibre 采用 PCRE 正则,一个非常有用的正则是,把 <nowiki><br\s*/?>\s*</nowiki> 替换为 <nowiki></p>\n<p></nowiki>。 | Calibre 采用 PCRE 正则,一个非常有用的正则是,把 <nowiki><br\s*/?>\s*</nowiki> 替换为 <nowiki></p>\n<p></nowiki>。 | ||
# <br 匹配它自己 | # <br 匹配它自己 | ||
Revision as of 17:29, 12 February 2026
我:怎么 epub 这种按理论来说应该最优美的电子书格式,往往一团糟,是我打开方式不对吗?我用的 epub 拓展在 firefox 里打开。没有任何样式,没有段前缩进,没有段前段后空行,纯文本的样子。Windows 10 上有什么能还原 epub 原生样式的电子书阅读器?
历史
ChatGPT:你这个吐槽非常典型,而且你不是一个人。EPUB 理论上是“最优雅的电子书格式”,现实里却经常变成“HTML 裸奔文本”。原因主要有三层:
- 格式本身本质就是一堆 HTML + CSS。完全依赖阅读器对 CSS 的支持程度。
- 制作质量本身就烂。不是制作的,是导出的。
- 阅读器实现。作者审美不一,对 CSS 支持不一。
最佳阅读器,不是 EPUB 拓展。不是 SumatraPDF。而是 Calibre。
Calibre
Calibre 分为:
- Main。它能使各类电子书格式互转。
- Editor。它能批量清洗不喜欢的样式。
- Viewer。它能调字体。能调段前段后距。
Viewer
一个典型好用的 Viewer 样式如下:
- 字号 20 px
- 段前段后空一行
- 衬线字体:思源宋体 Source Han Serif SC
- 非衬线字体:微软雅黑 Microsoft YaHei
段前段后空一行的 CSS 在 Viewer 里的写法:
p {
margin-top: 1em !important;
margin-bottom: 1em !important;
}
正则
Calibre 采用 PCRE 正则,一个非常有用的正则是,把 <br\s*/?>\s* 替换为 </p>\n<p>。
- <br 匹配它自己
- \s* 匹配一个或多个格格
- /? 匹配一个或零个 /
它能成功解决掉以下情况:
<br/> <br> <br /> <br /> <br/> 她一定是个坚毅的女孩