电子书及其格式:FB2 和 FB3 - 历史、优点、缺点和工作原理

在上一篇文章中我们谈到了 DjVu 格式的特点。 今天我们决定重点关注 FictionBook2 格式(更广为人知的名称为 FB2)及其“后继者”FB3。

电子书及其格式:FB2 和 FB3 - 历史、优点、缺点和工作原理
/flickr/ 朱迪特·克莱因 / CC

格式的外观

90世纪XNUMX年代中期,爱好者们 我们开始 将苏联书籍数字化。 他们翻译并保存了多种形式的文学作品。 Runet 中最早的库之一 - 马克西姆·莫什科夫图书馆 - 使用格式化文本文件 (TXT)。

这一选择对它有利,因为它能够抵抗字节损坏并且具有多功能性——TXT 可在任何操作系统上打开。 然而,他 使事情变得困难 处理存储的文本信息。 例如,要移动到第千行,必须处理其前面的 999 行。 书也 已存储 在Word文档和PDF中 - 后者很难转换为其他格式,并且弱计算机打开和 显示的 有延迟的 PDF 文档。

HTML 还被用来“存储”电子文献。 它使索引、转换为其他格式和文档创建(标记文本)变得更加容易,但它也带来了自己的缺点。 其中最重要的一项是“模糊性» 标准:在编写标签时允许一定的自由。 其中一些必须关闭,另一些(例如, ) - 无需关闭它。 标签本身可以具有任意嵌套顺序。

尽管不鼓励对文件进行此类处理(此类文档被认为是不正确的),但该标准要求读者尝试显示内容。 这就是困难所在,因为在每个应用程序中,“猜测”过程都是以自己的方式实现的。 同时,当时市场上可用的阅读设备和应用程序 明白的 一到两种专门的格式。 如果一本书只有一种格式,则必须重新格式化才能阅读。 旨在解决所有这些缺点 小说书2,或者FB2,它接管了最初的文本“梳理”和转换。

请注意,该格式有其第一个版本 - 小说书1 - 然而,它本质上只是实验性的,持续时间不长,目前不受支持,也不向后兼容。 因此,FictionBook 通常意味着它的“继承者”——FB2 格式。

FB2 由以下开发人员创建 德米特里·格里博夫升公司技术总监米哈伊尔·马茨涅夫 (Mikhail Matsnev) 是 Haali Reader 的创建者。 该格式基于 XML,它比 HTML 更严格地管理未封闭和嵌套标签的工作。 XML 文档伴随着所谓的 XML 模式。 XML 模式是一个特殊文件,其中包含所有标签并描述其使用规则(顺序、嵌套、强制和可选等)。 在 FictionBook 中,图表位于文件 FictionBook2.xsd 中。 可以在以下位置找到示例 XML 架构: 链接 (这是litre电子书店使用的)。

FB2文档结构

文档中的文本 存储 在特殊标签中 - 段落类型的元素: , 和。 还有一个元素,它没有内容,用于插入间隙。

所有文档均以根标签开头,下面可能会出现, , 和。

标签包含样式表以方便转换为其他格式。 在使用谎言编码 base64 呈现文档可能需要的数据。

元素包含有关本书的所有必要信息:作品类型、作者列表(全名、电子邮件地址和网站)、标题、带有关键字的块、注释。 它还可能包含有关对文档所做的更改的信息以及有关书籍出版商(如果该书籍以纸质形式出版)的信息。

这就是块的一部分的样子在 FictionBook 条目中 作品 阿瑟·柯南·道尔的《血字研究》,摘自 古腾堡计划:

<?xml version="1.0" encoding="iso-8859-1"?>
 <FictionBook 
  >
  <description>
    <title-info>
      <genre match="100">detective</genre>
      <author>
        <first-name>Arthur</first-name>
        <middle-name>Conan</middle-name>
        <last-name>Doyle</last-name>
      </author>
      <book-title>A Study in Scarlet</book-title>
      <annotation>
      </annotation>
      <date value="1887-01-01">1887</date>
    </title-info>
  </description>

FictionBook 文档的关键组成部分是。 它包含本书本身的文本。 整个文档中可以有多个这样的标签 - 附加块用于存储脚注、注释和注释。

FictionBook 还提供了几个用于处理超链接的标签。 它们基于规范 星联,由财团开发 W3C 专门用于在 XML 文档中的不同资源之间创建链接。

格式的优点

FB2 标准仅包含所需的最少标签集(足以“设计”小说),这简化了读者的处理。 而且,在直接操作FB格式的阅读器的情况下,用户有机会自定义几乎所有的显示参数。

该文档的严格结构允许您自动执行从 FB 格式到任何其他格式的转换过程。 相同的结构使得可以处理文档的各个元素 - 按书籍作者、标题、流派等设置过滤器。因此,FB2 格式在 Runet 中广受欢迎,成为俄罗斯电子图书馆和图书馆的默认标准在独联体国家。

格式的缺点

FB2 格式的简单性既是它的优点,也是它的缺点。 这限制了复杂文本布局的功能(例如,页边空白中的注释)。 它没有矢量图形或对编号列表的支持。 由于这个原因,格式 不太适合 用于教科书、参考书和技术文献(格式的名称甚至谈到了这一点 - 小说书或“小说书”)。

同时,为了显示有关书籍的最少信息(标题、作者和封面),程序需要处理几乎整个 XML 文档。 这是因为元数据位于文本的开头,而图像位于末尾。

FB3-格式开发

由于对书籍文本格式的要求增加(并且为了减轻 FB2 的一些缺点),Gribov 开始研究 FB3 格式。 后来开发停止了,但在 2014 年 恢复.

据作者称,他们研究了出版技术文献时的真实需求,查看了教科书、参考书、手册,并概述了一组更具体的标签,可以显示任何书籍。

在新规范中,FictionBook 格式是一种 zip 存档,其中元数据、图像和文本存储为单独的文件。 标准中指定了 zip 文件格式的要求及其组织约定 ECMA-376,它定义了 Open XML。

在格式(间距、下划线)方面进行了许多改进,并添加了一个新对象 - “块” - 它以四边形的形式格式化书籍的任意片段,并且可以通过环绕嵌入到文本中。 现在支持编号列表和项目符号列表。

FB3 在免费许可证下分发并且是开源的,因此所有实用程序都可供发布者和用户使用:转换器、云编辑器、阅读器。 当前的 版本 格式, 读者 и 编辑 可以在项目的 GitHub 存储库中找到。

总的来说,FictionBook3 的普及程度仍然不如其前辈,但一些电子图书馆已经提供这种格式的书籍。 几年前,Littles 宣布他们打算将整个目录转换为新格式。 一些读者已经支持所有必要的 FB3 功能。 例如,所有现代型号的 ONYX 读卡器都可以使用这种开箱即用的格式,例如, 达尔文3 или 埃及艳后 3.

电子书及其格式:FB2 和 FB3 - 历史、优点、缺点和工作原理
/ ONYX BOOX 埃及艳后 3

FictionBook3 的更广泛分布将创建一个生态系统 导向的 能够在任何资源有限的设备上充分有效地处理文本:黑白或小显示屏、低内存等。据开发人员称,一本书一旦布置好,在任何环境中都将尽可能方便。

PS 我们提请您注意 ONYX BOOX 读者的几条评论:



来源: habr.com

添加评论