EPUBリーダで、MathMLで記述した数式がだいぶ表示できるようになりました。

EPUB3.0 では出版物に数式を含めることができるようになりました。そして、EPUBリーダでも徐々に数式を表示できるようになってきました。

数式はMathMLのプレゼンテーションで記述します。簡単なサンプルを作ってEPUBリーダの数式表示機能を確認してみました。

1.MathMLをサポートするEPUBリーダ
(1) iBooks 3.1

(2) Readium 0.9.1 (2013/5/17)
表示例は次のスクリーンショットを参照。

2.MathMLをサポートしていないEPUBリーダ
(1) Adobe Digital Editions 2.0
MathML数式はサポートしていないようです。

(2) KindlePaperwhite 
表示例は次のスクリーンショットを参照。

3.MathMLの記述の注意事項

(1) 数式を含むXHTMLファイルにはmath要素に名前空間を指定すること。
例)<math xmlns="http://www.w3.org/1998/Math/MathML">
・名前空間を指定しないと、EPUBチェック3.0ではエラーになります。

Readiumでは名前空間を指定しなくてもMathMLを表示することができます。しかし、iBooksでは名前空間を指定していないMathMLを表示することができません。

(2) OPFファイルには、数式を含むXHTMLファイルを参照するitem要素にはproperties="mathml"を指定すること。
例)<item href="201305211138.xhtml" id="id201305211138" media-type="application/xhtml+xml" properties="mathml"/>

4.MathMLの表示:ブロック数式とインライン数式

(1) 数式にはディスプレイ数式とインライン数式がある。ディプレイ数式には、math要素にdisplay=”block” を指定すること。
(2) ReadiumとiBooksともに、display=”block” を指定するとデフォルトで中央揃えになります。
特にReadiumは、display=”block” の有無で添え字の位置を切り替えています。iBooksは添え字の位置が変わりません。

5.テストデータの説明

テストデータは次からダウンロードできます。

(1) math-test-a.epub
  math要素に名前空間を設定していない例を含んでおり、EPUBチェック3.0でエラーになります。
 
(2) math-test-b.epub
  math要素に名前空間を設定していない例を削除しています。EPUBチェック3.0でエラーは報告されません。

CAS-UBは次のバージョンで数式のオーサリングを正式にサポートする予定です。しばらくお待ちください。