readera 中文文档 下载 App

FB2 / EPUB / MOBI 在 ReadEra 里的渲染优化细节

可重排格式的渲染为什么难

EPUB、FB2、MOBI 这类格式被称为"可重排格式"是因为它们的排版不是固定的——内容是结构化标记,阅读器需要根据当前设备的屏幕宽度、字号、行距等参数,重新生成一版适合当前设备的排版。

这个重新生成的过程就是渲染。不同阅读器渲染质量天差地别——很多阅读器直接"按标记原样显示",不管标记里有多少不规范。ReadEra 做了很多额外优化让渲染结果更好看。

FB2:ReadEra 的俄罗斯根

ReadEra 起源于俄语市场,FB2 是俄罗斯/东欧最常见的电子书格式。ReadEra 对 FB2 的优化做得最深入:

自动优化章节结构

很多俄语市场来源的 FB2 文件的章节标记不完整——<section> 标签层级混乱、<subtitle> 缺失、甚至整个文件只有一个根 <section>。

ReadEra 的做法:

  1. 扫描整个 FB2 文件的 <title>、<subtitle>、<section> 标签
  2. 如果发现结构不完整(比如所有章节都在同一层级),按标题文本特征(长度、是否以数字开头、是否含关键字)尝试切分
  3. 生成更合理的目录树

西里尔字母连字符

俄语、乌克兰语、保加利亚语等使用西里尔字母的语言,连字符(hyphenation)规则非常特殊——不同于拉丁字母的英文连字符。ReadEra 内置了西里尔字母专用连字符词典,确保:

这是很多西方开发者做的阅读器(Moon+、Librera)做不好的地方——他们的连字符词典只有英文。

自动从 ZIP/RAR 解压

这是 FB2 用户最常用的功能——很多俄语 FB2 资源发布时默认打成 ZIP 或 RAR。ReadEra 直接打开压缩包,无需手动解压。详见 压缩包直接读。

EPUB:标准 + 适度修正

EPUB 是国际主流电子书格式,结构规范。ReadEra 对 EPUB 的策略是"尊重标准 + 修正常见不规范":

自动识别目录

EPUB 规范要求目录放在 .ncx 或 .nav.xhtml 里。ReadEra 会:

修正嵌套问题

部分旧 EPUB 有标题嵌套错误(<h3> 出现在 <h1> 前面)。ReadEra 不会按错误嵌套生成目录——它按标题实际出现的顺序和深度重新整理。

支持 EPUB2 和 EPUB3

两个版本都支持。EPUB3 的 HTML5 嵌入内容、嵌入字体、媒体片段(音频/视频)都能正常渲染。

MOBI / AZW3:Kindle 体系兼容

Amazon Kindle 用的格式,ReadEra 都能读:

格式Kindle 版本ReadEra 支持
AZW3Kindle Paperwhite/KOBO 之后的 Kindle✓
MOBI旧版 Kindle / Paperwhite✓
AZW第一代 Kindle✗

ReadEra 对 MOBI/AZW3 的处理相对朴素——它们的结构比 EPUB 更封闭(部分字段是 Kindle 私有),ReadEra 能解析但不会做太多自动优化(因为不知道哪些字段是 Kindle 私有的)。

ReadEra 渲染器的"适度哲学"

ReadEra 的渲染策略可以总结为:

  1. 尊重原标记优先:书里有的标题、段落、引用、代码块都按原标记显示
  2. 修正常见不规范其次:自动生成目录(DOC/DOCX)、优化 FB2 章节结构、修正 EPUB 层级
  3. 智能排版细节:西里尔字母连字符、中文段落间距、英文两端对齐 + 连字符开关
  4. 不做过度干扰:不自动改写段落、不重排顺序、不替换图片——保持原书内容不变

这个策略和部分"激进优化"的阅读器不同——ReadEra 追求的是"看起来和原书设计者想要的差不多,但在手机屏上更舒服",而不是"按阅读器自己的逻辑重新设计整本书"。

和系统字体的关系

渲染的字体效果完全取决于你选的字体 + 字体本身的字重和字形。ReadEra 在渲染时:

具体字体设置见 字体与排版细节。