EPUB格式是一种把书籍元数据、阅读顺序、正文、样式、图片和导航资源组织在同一出版包中的电子书格式。它可以是随视口与字号重新排版的可重排内容,也可以采用固定版式。PDF 更常用于保留预先排定的页面几何,但具体文件与阅读软件仍可能提供不同的辅助阅读能力。
选择时不必先判断哪种格式“更好”。长篇文字和可调字号通常更适合检查 EPUB 的重排效果;代码、图表、公式和精确版面则应在自己的阅读器中试读。本文用一个自制短文做真实渲染对照,并给出三类知识书的购买前检查重点。
EPUB格式是什么:出版包、资源清单与阅读顺序
W3C 的 EPUB 3.3 规范将 EPUB publication 定义为符合要求的 ZIP archive。包内的 container.xml 指向 package document;package document 记录 metadata、资源 manifest,以及决定默认阅读顺序的 spine。正文通常由 XHTML、CSS、图片和导航等资源组成。
这些结构让阅读系统知道“这是什么书、有哪些资源、按什么顺序读”,但文件能解压或扩展名为 .epub 并不能证明它符合全部规范,也不能保证任意商业阅读器的显示结果。
EPUB文件并不都能任意调布局
EPUB Reading Systems 3.3把布局分为 reflowable 与 pre-paginated。可重排内容可由阅读系统动态分页;固定版式内容则按 spine 中的页面项目呈现。若 package metadata 没有声明 rendition:layout,符合该规范的阅读系统应按全局 reflowable 解释。
这仍只是规范层的缺省含义。W3C 的 EPUB 3 Overview也说明动态布局与固定布局都存在。内容 CSS、图片与公式的表达方式、视口、字体控制以及阅读器实现会共同影响结果,因此不能从扩展名直接推断任意字号或设备表现。
EPUB和PDF区别:先看阅读任务
| 阅读任务 | 格式特点 | 购买前检查 |
|---|---|---|
| 长篇文字 | 可重排 EPUB 可随视口和字号重新分行;固定页通常整体缩放 | 中文换行、字号、行距、章节导航 |
| 代码与命令 | 长行换行与缩进显示取决于内容样式;固定页保留原位置但小屏需缩放 | 等宽样式、长行、缩进、横竖屏 |
| 图片与图表 | EPUB 图文关系取决于内容样式与阅读器;固定页保留页面位置关系 | 图例、坐标、图注与正文对应 |
| 公式与符号 | EPUB 表现取决于文字、MathML 或图像等表达;固定页可保留排版 | 符号显示、放大,以及选择、搜索或朗读需求 |
PDF 也不能只按“固定页”三个字判断可访问性。W3C WAI 的 PDF3 技术说明指出,带标签 PDF 的阅读顺序主要由标签顺序和内容树决定,多栏、图形、表格等复杂版面转换后可能仍需修复。这个说明支持逐文件检查阅读顺序,不代表所有 PDF 或阅读器都提供相同的重排能力。
真实渲染对照:重排与固定页缩放怎样不同
本站制作了一份包含原创中文测试段落的样例,其中包含代码、文字公式和 SVG 图。EPUB 显式声明为 reflowable,实际在 calibre ContentServer 网页阅读器 9.18.0 与 Chrome 156 中打开;同一 EPUB 再由 calibre 转成一页 A5 PDF,并用 Poppler 26.05 按不同宽度缩放渲染。

| 实际条件 | 段落行数 | 本次能说明什么 |
|---|---|---|
| EPUB:宽 600px、字号 20px | 4 行 | 较宽视口下的本次重排结果 |
| EPUB:宽 360px、字号 20px | 7 行 | 同字号缩窄视口后重新分行 |
| EPUB:宽 360px、字号 28px | 9 行 | 同视口增大阅读器字号后重新分行 |
| PDF:缩放到宽 600px 与 360px | 均为 4 行 | 该 A5 固定页面在 Poppler 中整体缩放 |
三组 EPUB 条件的窗口高度均为 1600px;字号通过阅读器真实 Font size 菜单设置,没有注入 CSS。窗口是受控桌面浏览器尺寸,不是物理手机。源 EPUB 与独立 calibre 库副本逐字节一致,服务测试结束后已经停止。
PDF 的字号转换参数与 EPUB 阅读器的字号控件不是同一机制,因此不能把它们当作同字号性能比赛。本次提取的 PDF 文本经字符与空白规范化后,与原创段落内容吻合,但提取结果中存在外观相同的兼容字符差异。这不等于复制、搜索、朗读或无障碍表现无损;本次固定页测试也没有检验其他阅读软件的辅助模式。
三类电子书格式试读重点
本站核对的三本 EPUB 在各自 package document 中都没有全局 rendition:layout 值,spine 也没有布局覆盖。按 EPUB Reading Systems 3.3 的缺省规则,合规阅读系统应将其解释为可重排;这不是三本书在具体 App、字号或设备中的显示实测。
代码密集:《Rust 编程(第三版)》
Jim Blandy、Jason Orendorff、Leonora F. S. Tindall 合著的《Rust 编程》面向有系统编程经验或任意语言资深开发者。试读时重点看代码块缩进、长标识符与长行怎样换行、等宽样式是否清楚,以及代码和图表周围的说明是否仍能对应。
查看《Rust 编程:快速、安全的系统开发(第三版)》目录与试读
图片与代码并置:《学习 OpenCV 5》
Joseph Howse、Joe Minichino 合著的《学习 OpenCV 5:Python 计算机视觉(第四版)》要求基本 Python 能力。试读时可检查大图与截图缩放、图注与正文对应、代码块横向阅读,以及图像附近解释在字号变化后是否仍连贯。
查看《学习 OpenCV 5:Python 计算机视觉(第四版)》目录与试读
图、公式与文字关系:《精通统计学》
Thomas Nield 的《精通统计学:面向初学者的友好指南》结合统计概念、可视化、公式和 Python 示例。试读时应看坐标轴、图例和注释是否清楚,公式采用文字、图像还是其他结构,以及代码与解释段落能否一起阅读。
购买前怎样选择电子书格式
- 经常调字号、在不同宽度阅读长文:优先试 EPUB 的正文重排、导航与中文换行。
- 依赖代码缩进、复杂图表或公式位置:不要只看格式名称,直接试目标章节。
- 需要复制、搜索、朗读或无障碍功能:在自己的阅读器和具体文件中逐项检查。
- 需要更完整的设备与内容检查步骤:参考EPUB电子书阅读方法。
本文核对了三本授权 EPUB 的 package metadata、扉页、前言与目录,没有完整通读,也没有在商业阅读器或真实手机上测试商品。原创对照只覆盖自制 EPUB、由其转换的固定页 PDF 及记录中的软件环境,未做 EPUBCheck 或 Reading System 合规认证。






