html5 mathml_使用HTML5,CSS3和MathML在EPUB 3中创建布局丰富的出版物

html5 mathml

EPUB是由国际数字出版论坛(IDPF)标准化的可重用数字书籍和出版物的XML格式。 到2009年,EPUB 2已成为大多数主要电子书零售商和阅读系统使用的事实上的电子书格式。

EPUB ZIP归档文件打包在定义明确的结构下。 每个组件都有自己的规范,并以通用的EPUB标签统一:

容器规格
定义打包EPUB文档的方法。
EPUB出版物
包括有关电子书内容的所有元数据,包括:程序包的清单,基本标题,作者元数据,以及(在EPUB 3中)定义出版物期望支持的高级功能,例如JavaScript或MathML。 这称为打开容器格式文件。
EPUB内容文件
构成出版物内容的实际XHTML和CSS文件。 内容文档还包括二进制资源,例如图像,多媒体和可能的外部定义的XML文档。

本文探讨了EPUB 3的某些功能。 您将了解有关验证EPUB 3文档,导航和层次结构以及开发准则的信息。 一个示例介绍了将儿童书的页面改编为EPUB 3的过程。还学习了如何在出版物中包含MathML。

下载本文中使用的示例。

先决条件

本文中的示例代码和示例假定基本熟悉EPUB 2规范和基于XML的出版物。 请参阅相关主题关于EPUB 2的细节。

EPUB 3的变更

EPUB 2提供了HTML4和CSS2的所有格式和布局功能,对于大量文本发布而言已经足够了。 但是,出版商和作者发现EPUB 2无法处理许多内容类型和用例,例如多媒体书籍,布局复杂的书籍,数学出版物和交互式文档。 IDPF和电子书社区于2011年10月发布了EPUB 3规范。

从EPUB 2到EPUB 3的主要变化包括:

  • EPUB 3内容文档所需的架构从XHTML 1.1更改为HTML5的XHTML序列化。 包含HTML5中的多媒体元素( )是一个关键要求。
  • EPUB 3内容文档中CSS的允许范围从CSS2.1的子集扩展到了CSS3中与文档创作相关的一组成熟模块。
  • MathML是作为一阶内容类型添加到XHTML5和SVG的。
  • 现在,具有CSS视口的阅读系统需要支持嵌入式字体。 Web开放字体格式已添加为可接受的字体格式。
  • 明确支持非西方书写模式和脚本,包括日语和其他亚洲文字的垂直布局。
  • 使用自定义安全模型对JavaScript介导的交互性的可选支持。
  • 扩展了出版物文档中允许的元数据,包括对资源描述框架属性(RDFa)的一些支持。
  • 不推荐使用EPUB 2导航中心扩展(NCX)目录(TOC)文档,而推荐使用基于XHTML5的TOC。 (为了向后兼容,仍允许使用NCX。)

验证EPUB 3文件

由于EPUB 3依赖于大多数内容类型的XML序列化,因此可以进行自动验证。 EpubCheck工具是用于测试EPUB文档有效性和一致性的规范方法。 EpubCheck是开放式源代码(经Berkeley Software Distribution许可)的Java™库。 开发人员预览版可用于EPUB 3文档,并且在本文中使用。 请参阅相关主题的链接到最新版本。

强烈建议您对所有EPUB内容文档使用.xhtml扩展名。 如果没有扩展名,浏览器将不会将HTML内容解释为application/xhtml+xml 使用本文演示的许多功能(例如CSS命名空间)时,需要XML处理模式。

通常,您通过命令行与EpubCheck进行交互,如下所示。

$ java -jar epubcheck-3.0b3.jar sample.epub

Epubcheck Version 3.0b3

No errors or warnings detected.

如果响应时出现错误java.lang.NoClassDefFoundError: com/thaiopensource/validate/SchemaReader ,请确保EpubCheck发行版随附的lib /目录与EpubCheck JAR文件位于同一目录中。

EpubCheck 3可以分别验证EPUB包的单个子组件,如清单1所示 。 本文示例中使用的这一极其有用的功能可以:

  • 帮助隔离问题。
  • 减少了繁琐地将EPUB重新打包到新ZIP中以进行验证的需求。
  • 合并到用于输出单个文件类型的工具链的单元测试框架中。
清单1.针对单个文件类型运行EpubCheck 3
$ java -jar ~/src/epubcheck-3.0b3.jar sample-toc.xhtml -mode nav 
Epubcheck Version 3.0b3

WARNING: sample-toc.xhtml: File is validated as a single file of type nav and version 3! 
         Only a subset of the available tests is run!

No errors or warnings detected.

EPUB 3文档中的导航和层次结构

尽管EPUB 2中的NCX TOC文件支持用于层次导航和页面映射的丰富标记集,但它是从数字可访问信息系统(DAISY)数字有声书(用于生产可禁用打印的电子书的规范)派生而来的。 依赖于规范的DAISY格式旨在简化可支持丰富辅助功能的电子书阅读器的开发。 从这个意义上讲,NCX表现出色。 但是,NCX DTD很大,并且具有与EPUB 2不相关的功能。由于EPUB中需要NCX的哪些部分而引起的混乱,导致一些电子书零售商和阅读系统供应商产生了不希望的碎片和专有扩展。

EPUB 3弃用了NCX,并将其替换为EPUB导航文档(END)。 清单2显示了一个示例。 END使用XHTML5而不是自定义DTD,从而减少了实现和验证的XML格式。 使用EPUB名称空间(http://www.idpf.org/2007/ops)提供自定义EPUB属性。

清单2.一个最小的END

  
    Example
  
  
    

Contents

HTML5

你可能感兴趣的:(html5 mathml_使用HTML5,CSS3和MathML在EPUB 3中创建布局丰富的出版物)