MathMLの未来を考える―(1)現状の整理

MathMLが今後どのように普及するか、未来を考えてみたい。このため、まずは、2017年11月時点での現状を整理してみる。

1. MathMLの作成
○数式エディタ
デザインサイエンス社のMathTypeは数式専用のエディタであり、編集した数式をMathMLで出力できる。MathTypeをWord、Pages、iBooksAuthorなどのワープロに組み込んで使える。

○WordのOOXMLから変換
Microsoft Wordはバイナリ文書(doc)形式の時代には、MathTypeの簡易版を組み込んでいた。Word文書形式がOffice Open XML(docx)形式になったWord 2007より独自開発の新しい数式エディタを内蔵している[1]。この新しい数式エディタで編集した数式は、OOMXL形式の文書中では独自の数式XML (Office Math Markup Language (OMML))で保存される[2]。このOMML形式の数式をWord内蔵のスタイルシートでMathMLに変換したり、Wordの編集画面から数式をコピーしてメモ帳にMathMLとして貼り付けることができる。

○TeXから変換
TeXマークアップをMathMLマークアップに変換するツールは様々なところからオープンソースとして提供されている。例えば、PagesとiBooks AuthorはLaTeXで数式を書くことができる。その場合は「blahtex」を使ってLaTeXで入力した数式をMathMLに変換している[3]

○直接記述
PagesとiBooks AuthorはMathMLを直接記述して数式を入力できる[4]

2. MathMLを使える主な配布形式の紹介
○XML文書
MathMLはXML形式のマークアップである。XMLではメインの文書の中に他の語彙によるマークアップを組み込む、名前空間という仕組が用意されている。名前空間を使えば任意のXML文書にMathMLを組み込むことができる。なお、以下に主なマークアップ語彙でのMathMLの採用例を挙げる。

○XHTML
XHTMLは、HTMLをXMLとして表現した語彙であり、上記の名前空間の機構をつかってMathMLを組み込むことができる。

○HTML5
HTML5は、MathMLの語彙をHTML5の要素と同様に扱ってHTML5文書中に記述できる(ネイティブサポートという)。こうして組み込まれたMathMLによる数式の解析は、XMLとして組み込まれたときの解析とは若干の相違が生じる。MathMLのバージョン3仕様も、HTML5に組み込むために改訂された(MathML3.0 Second Edition)。

XHTMLとHTMLでどのような点が異なるかはMathML 3.0仕様書に整理されている[5]

○EPUB3
EPUB3.1は、MathMLを本文中に組み込むことができる。但し、若干の制約が付いている[6]

○JATS
Journal Article Tag Suite (JATS) の正式版V1.1および安定ドラフト版V1.2d1は、いずれもMathMLを組み込める。数式の最上位は<mml:math>である。

○DITA
DITA 1.2まではDITAでMathMLを使おうとするとDITA 1.1で導入されたforeign要素を特殊化してMathMLを使えるようにする必要があった。DITA 1.3では数式とMathMLの二つのドメインが追加された。MathMLドメインを使えば特殊化する必要がなくなった[7]

○DAISY
DAISYコンソーシアムのMathML in DAISY Working GroupはDAISY3標準で数式をアクセシブルにするための仕様の策定を最優先課題としている[8]

3. MathMLのレンダリング
(1) 可視化(ビジュアルレンダリング)
○ブラウザネイティブ
FireFoxはMathMLをブラウザ自体の機能で可視化できる。但し、MathMLの要素や属性などを完全にサポートしている状態ではない。MathJax、KaTeX、MediaWIkiに対して、FireFoxのネイティブなMathMLレンダリングを強制するためのAdd-onも用意されている[9]

Safariは5.1からMathMLをサポートしている。それはボランティアによるWebKitの改善努力に依存するものであまり高精度とは言えなかった[10]。しかし、IgaliaによるWebKitの改善が続けられている[11]
Chrome、EdgeはMathMLをサポートしていない。
Microsoft DevelopperのページではMathMLサポートに関する投票が行われている[12]

○MathJaxによるサポート
MathJaxはMathMLをサポートしないブラウザの上で、MathMLを表示するJavaScriptプログラムである。MathJaxは多くの学会や団体が支援しており、最も成功したオープンソースの一つとして普及している。MathJaxの最新版は2.7(2017年8月リリース)である。

MathJaxは、現在、3.0を開発中である。3.0ではアーキテクチャが根本的に変更になることが告知されている[13]

○プラグイン数式レンダラ
デザインサイエンス社のMathPlayerは、当初は、IEのプラグインとして普及した。しかし、IE10以降ではMathPlayerをプラグインとして使うためのAPIが禁止になってしまった。

○XML組版ソフト
(2) 読み上げ(音声レンダリング)
○デザインサイエンス社のMathPlayerは、MathMLを音声で読むことができる[14]。MathPlayerは無料で配布されている。

4.MathMLの歴史
W3C 勧告の歴史はMathML勧告のバージョン史[15]にまとめられている。
1998年4月に MathML 1.0
2001年2月に MathML 2.0 (2003年10月 Second Edition)
2010年10月に MathML 3.0 (2014年4月 Second Edition) Second Editionでは、主にHTML5でMathMLを使うのに適合するようにXMLのパースに関する前提条件の変更の改訂がなされた。

5. まとめ
MathMLは、ドキュメントをXMLで記述するときに、数式を表現する技術として重要な存在である。必ずしも常に順風満帆という状態ではないが、徐々に普及していることが確かめられる。XML以外ではHTML5でもネイティブにサポートされている。但し、ブラウザのネイティブレンダリングに向けて足並みが揃っている状態ではない。MicrosoftのEdgeのプロジェクトでMathMLサポートへの投票が行われているが、投票者のコメントを見ると視覚障害者から熱烈な要望が多いようだ。

[1] Office2007の新しい数式エディタ
[2] 22.1 Math “ECMA-376-1:2016 Office Open XML File Formats — Fundamentals and Markup Language Reference” October 2016
[3] Pages および iBooks Author での LaTeX と MathML の対応について
[4] Pages で書類に方程式を追加するiBooks Author: LaTeX、MathML、または MathType で数式を追加する/編集する
[5] 6.4.3 Mixing MathML and HTML “Mathematical Markup Language (MathML) Version 3.0 2nd Edition”
[6] 2.5.1 Embedded MathML “EPUB Content Documents 3.1
Recommended Specification” 5 January 2017

[7] B.2.1 Changes from DITA 1.2 to DITA 1.3 “Darwin Information Typing Architecture (DITA) Version 1.3 Part 0: Overview”
[8] MathML
[9] Mozilla MathML StatusNative MathML
[10] WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。
[11] Improvements in MathML Rendering
[12] How can we improve the Microsoft Edge developer experience? MathML
[13] MathJax V3開発は、根本的な方針変更となる
[14] MathPlayer Can Speak!
[15] MathML Recommendation Version History

【広告】
「MathML数式組版入門 Ver 1.1」

技術書典 再来週末(6月25日)開催! 出展に向けて準備中!

今年は、はじめての技術書典が、6月25日(土曜日)に、秋葉原にて開催されます。

技術書典案内

アンテナハウスCAS電子出版グループは、昨年末より、プリントオンデマンド(POD)による出版を始めています。技術書典は、ちょうど良いタイミング! ということで早速、申込み。

5101952727777280

今年出版準備中の本の日程を技術書典に照準を合わせて調整し、次の5タイトルが揃いました。

(1) 『PDFインフラストラクチャ解説ー電子の紙PDFとその周辺技術を語り尽す』
(2) 『XSL-FOの基礎ーXMLを組版するためのレイアウト仕様』
(3) 『スタイルシート開発の基礎』
(4) 『MathML数式組版入門』
(5) 『DITAのすすめ』

技術書典ではPOD版の印刷物の在庫を用意して持参する予定です。見本で内容をご確認いただくことができます。

これらのタイトルの販売は技術書典のみということではなく、アマゾンなどのオンラインブックストアでもお求めいただけます。技術書典ならではのサービスとしまして、当日は、多少の値引き販売も予定しております。お時間の余裕のある方はぜひ、弊社のコマにお立ち寄りいただければと存じます。

MathJax V3開発は、根本的な方針変更となる

MathJaxのホワイトペーパー“Towards MathJax v3.0”が発表されました。MathJaxはV3.0でかなり根本的な方針変換を行うようです[1]

MathJaxは、2010年8月4日にV1.0がリリースされ、5年間でWebにおける数式表示のデファクトスタンダードになりました。この間、コアを除くモジュールの開発は大幅に進みました。しかし、コア部分は、当初の主要ブラウザであったIE6以降をターゲットにして開発されたV1.0からまったく更新されていません。V1.0の開発時には、ブラウザのレイアウト機能が低かったので、それを補うために、様々な回避策を実装していました。しかし、最近のWeb標準とブラウザのレイアウト機能の進歩により、そうした対策は不要となりました。現時点では、プログラムの保守の負荷が大きくなってしまったため、新しいV3.0では、現在の古いブラウザを対象とするHTML+CSS出力を廃止し、新しいCommonHTML出力をデフォルトにします。また、APIも変わります。このような変更は、過去のバージョンとは非互換の改造となります。

実装し直しにあたり、大きな方針の変更が決まりました。

当初は、WebブラウザのMathMLネイティブサポートまでのつなぎ役として位置付けられていました。しかし、この5年でブラウザのMathMLサポート実現は当初の期待よりも遠ざかってしまい、今後も期待できないことがはっきりしてきました。

このため、数式をHTML+SVGとして出力する方向へと方針転換するようです。また、従来は、クライアントのブラウザの上でのみ動くものでした。しかし、今後は、ブラウザのみではなく、サーバー上でも動くようになるとのこと。

[1] MathJax whitepaper “Towards MathJax v3.0” releasedDecember 15, 2015
[2] Safari とFireFoxのMathMLレンダリングの改良は、クラウドファンディングを利用したボランティアの手で進んでいる
[3] WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。
[4] EDUPUBで数式をどのように表わすのか? MathMLが飛翔するか、それともSVGなのか?

Safari とFireFoxのMathMLレンダリングの改良は、クラウドファンディングを利用したボランティアの手で進んでいる

昨日の「WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。」の最後で、「WebKitもGeckoもMathMLレンダリングエンジンの開発は、ボランティア任せで専任の担当者はチェックしかしていないようです。」と書きましたが、その点についてもう少し掘り下げてみます。

WebKitのMathML関係のバグは、2013年4年1日~2014年3月8日までに、解決済みとなったものが52個あります。そのうち重複(DUPLICATE)が6件、終了(FIXED)が、46件となっています[1]。バグの内容を詳しく確認してないのですが、着実に進んでいるといえます。

FIXED46件の中では、fred.wang@free.frにアサインが22件、*@appleにアサインが14件、その他10件となっています。

WebKitについてはこの1年弱で、MathMLバグの大半がFrédéric Wang氏により、残りの多くをアップルの関係者が解決しているとみて良いでしょう。

Mozillaの方も同様で、同じ期間にFIXEDになったバグ40件の中で17件がFrédéric Wang氏によるものです。

Frédéric Wang氏のブログ[2]を見ますと、この人はフランス人のエンジニアで、現在、アメリカ数学会(American Mathematical Society)のMathJaxプロジェクトの外部契約エンジニアとしてMathJaxの改良に携わっているとあります。

Frédéric Wang氏はWebKitとGeckoのMathMLレンダリングの改良にもっと時間を割くため、2013年の11月19日からクラウドファンディングを利用して資金を集めました[3]。募集期間は終了していますが、3ヶ月程度はフルタイムで働く資金が集まったようです。

ボランティアの手によって、WebKitとGeckoという二つのレンダリングエンジンではMathMLの改良が少しずつ進んでいます。これから、バグ修正したレンダリングエンジンが、SafariやFireFoxに反映されるのが楽しみです。

Microsoft、Google、Appleという巨大な企業が、MathMLにあまり関心を持たずにボランティアが草の根的に改良しているという現状は、TeXにも似ているような気がします。それにしても、科学の根源である数学に対して、大ブラウザベンダーがあまりにも冷淡な・・・

[1] WebKit Bugzillaを、bug_status=RESOLVED、resolution=FIXED&resolution=DUPLICATE、chfieldfrom=2013-04-01&chfieldto=2014-03-08で検索した結果。
[2] Blog de Frédéric:About Me
[3] Funding MathML Developments in Gecko and WebKit (part 2)

WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。

前の記事 EDUPUBで数式をどのように表わすのか? MathMLが飛翔するか、それともSVGなのか?の続きです。

HTMLに数式を埋め込む方法はいくつかあります。ここでは、MathMLを埋め込んだときの表示について検討します。

ちなみにMathMLとはどんなものか、を知るには次の資料をご覧いただくと良いと思います。

http://www.antenna.co.jp/AHF/ahf_samples/v62/Seminar20140307.pdf

HTML5ではMathMLの要素をHTMLの要素と同じように記述することができます。次のページにサンプルがあります。

http://www.w3.org/TR/2012/CR-html5-20121217/embedded-content-0.html#mathml

HTMLの中に記述したMathMLをブラウザで表示する方法として、ブラウザのネイティブレンダリング機能で表示する方法と、MathJaxというJavascriptを使って表示する方法があります。以下の話はネイティブレンダリング機能で表示する方法に関するものです。

ブラウザの有力なレンダリングエンジンのひとつがWebKitです。WebKitは主にアップルが中心になって開発してきたものでアップルのWebブラウザであるSafariで使われています。グーグルもChromeブラウザでWebKitを使っていました。なお、グーグルは2013年の春にレンダリングエンジンをBlinkに切り替えることを発表し、2013年7月リリースのChrome28以降はBlinkベースとなっています[1]。また、Androidの標準ブラウザもAndroid4.4からBlinkベースとなっています。

MathMLは、1998年にV1がW3Cの勧告となっており、歴史の古い仕様です。利用もWebブラウザ以外の領域ではかなり普及しています。ところがブラウザのネイティブレンダリング機能によるMathML表示はなかなか進んでいません。

現在、主要なブラウザでMathMLのネイティブレンダリングをサポートしているのは、Safari 5.1以降[2](WebKit)とFireFox(レンダリングエンジンはGecko)のみです。

GeckoのMathMLレンダリングエンジン開発は、FireFoxになる以前から始まっておりFireFoxは1.0で、既にMathMLの表示をサポートしています[3]。しかし、開発のスピードは遅いようで、かなり沢山の問題が残っています。MathML3.0で規定された算数(Elementary Math)のサポートもありません。

WebKitのMathMLレンダリングも少しずつ対応が進んでいたようですがあまり活発とはいえませんでした[4]。Wikiページの履歴をみますと、4年程前(2010年8月)にAlex Milowski氏とFrançcois Sausset氏による実装が行なわれ、その後2012年にDave Barton氏がバグを修正した後、グーグルは2013年1月にリリースしたChrome24でMathMLを有効にしました[5]。MathMLの実装を行なったのは、正社員や委託契約者ではなく、ボランティアのようです。

しかし、グーグルの開発者は、このMathMLレンダリングは品質的に不十分として2013年2月リリースのChrome25でMathMLのレンダリング機能を使えなくしてしまいました[6]。このChromiumの議論を読みますと、2月時点では、グーグルの担当者からは、問題を解決したらまた使えるようにしたいという、次のようなメッセージが出ています。

#32 “Note that MathML has had to be turned off because the code is not yet production ready.
We hope to turn it on in some future release.
#40 To summarize the current status of this bug: We’d like to enable MathML in Chrome, but the WebKit code still needs further improvements before we can ship it.
(Chromiumより)

しかし、2013年10月になって、次のような新しいコメント(#43)が発信されました。MathMLはMathJaxで十分なので直接サポート(ネイティブレンダリング)は不要という趣旨の発言です。これをめぐってMathMLのネイティブレンダリングを期待する開発者との間で激論となっています。

#43 comment #40 is out of date. MathML is not something that we want at this time. We believe the needs of MathML can be sufficiently met by libraries like MathJax and doesn’t need to be more directly supported by the platform.
(Chromiumより)

グーグル開発者の発言を読みますと、品質は具体的にはセキュリティの問題が大きく、これはアーキテクチャの問題なので簡単には解決できない、ということが指摘されています。一方で、MathMLを期待する側からは、セキュリティについては解決済みであり、機能を使えなくしてからそういうことを指摘しても実際に確認できないではないか、などの批判があります。

これに関して、一般のメディアでも、「グーグルは数式の重要性がわかっていないということで批判を浴びている」という記事が掲載されています。[7]

同じMathMLレンダリング機能をSafariでは有効にしている訳ですから、グーグルのセキュリティに関する発言が実際にどこまで妥当かは判断しにくいところです。

いろいろな記事を見ていきますと、WebKitもGeckoもMathMLレンダリングエンジンの開発は、ボランティア任せで専任の担当者はチェックしかしていないようです。このあたりに問題がありそうに思うのですが、引き続きもう少し調べて見たいと思います。

[1] 「Google Chrome 28」の安定版リリース Blink採用と「リッチ通知」機能(Windowsのみ)(2013年07月10日 )
[2] Safari 5.1 and math (July 21st, 2011 at 8:29 pm by Dr. Drang)
[3] http://fred-wang.github.io/MozSummitMathML/
[4] https://trac.webkit.org/wiki/MathMLには、WebKitのMathMLプロジェクトが記載されており、進捗をチェックできます。
[5] 「Google Chrome 24」が安定版に、“MathML”や“Datalist”要素をサポート (2013/1/11 13:48) 窓の杜ほか
[6] Issue 152430: Enabling support for MathML(chromium)
[7] Google subtracts MathML from Chrome, and anger multiplies(November 5, 2013)

EDUPUBで数式をどのように表わすのか? MathMLが飛翔するか、それともSVGなのか?

数式をWebで表わすための標準としてMathML仕様[1]があります。MathMLは1998年4月にV1が標準化されていますので、既に16年近くになります。しかし、現在、MathMLで表わした数式を表示できるEPUBリーダーはもとよりWebブラウザは数が少なく、また表示できたとしても不十分です[2]。現在、ブラウザ上での数式表示はJavascriptによるMathJax[3]がデファクトになりつつありますが、MathJaxといえども、算数は表示できないなどの制限があります[4]

現在、教育コンテンツ配布のためのEPUBプロファイル仕様EDUPUBにむけて活動が活発化しています。数学はもとより科学教育では数式の記述と表示は必須です。ボストンのEDUPUBでは、数式を表示する方法に関するプレゼンもあり、数式表示の話題が関心を集めたようです。

EDUPUBの中心人物の一人であるMatt Garrishは、EDUPUB2の直前のブログ「MathML Support in EPUB」[5]で、数式が重要なのに、期待のMathMLはなかなか普及しない、という現状を憂いています。Matt氏に限らず、WebとEPUBにおける数式表示の問題を解消したいと望んでいる人は多いでしょう。

そこ本ブログでは、数回にわたり、MathMLを中心に数式表現の現状と課題をレビューするとともに、アンテナハウスの取り組みを紹介します。もちろん、できるだけ、タイトルに掲げた疑問に答えたいと考えています。

MathとEPUB/HTMLの関係

数式は科学の基本になりますので、Webで数式を表わしたいという考えは自然です。HTML2.0には数式を表わす要素はありませんが、1995年にリリースされたHTML3.0には <MATH> 要素が追加になりました[6]。しかし、次のHTML3.2では、Mathについては、引き続き検討すると述べられているだけで、仕様から削除されてしまいました。

この間、数式を表現するマークアップ言語として、MathMLが新しく提案されて独立な標準仕様として成長してきたことになります。MathMLは、EPUB3.0には、ドキュメント文書の標準機能として含まれています。そして、HTML5では、math要素を標準的な要素として含むことができるようになっています。16年間の間、別の親にそだてられたmath要素が、いよいよHTML5の中で他のHTML直系要素と肩を並べた存在になったとも言えます[7]

MathMLはV3.0で成熟した仕様になり、様々な分野で採用された。残された大きな課題はEPUB3とHTML5においてMathMLを表示すること」(Autumn Cuellar. ”A MathML Progress Report”[8])が、MathML関係者の共通の問題認識のようです。

[1] Mathematical Markup Language (MathML) Version 3.0 W3C
[2] 例えば、MathML3.0は2010年10月に勧告になり、既に満3年半を経過しました。しかし、MathML3.0で新しく追加された、a. 右から書く言語(アラビア語など)の数式記述、b. 数式内の改行制御、c. 初等数学(算数)すべてを可視化できるWeb/EPUB環境は存在しません。MathPlayerは、アラビア語の数式、算数は対応しており、改行もできる可能性があります。しかし、MathPlayerは、Internet Explorer (IE) のプラグインなのですが、IE10以降ではプラグインが利用できないため、このままIEの方針が変わらないなら廃れてしまうでしょう。
[3] MathJax
[4] MathML Forges On Peter Krautzberger。Peter氏はMathJax開発チームの一員であり、このWebページの現状報告は非常によくまとまっており、また深い情報があります。
[5] MathML Support in EPUB Matt Garrish
[6] Table of Contents HTML3.0
[7] HTML5 A vocabulary and associated APIs for HTML and XHTML
[8] Autumn Cuellar. “A MathML Progress Report” XML Prague 2014 Conference Proceedings. 14-16 Feb. 2014. University of Economics, Prague, Czech Republic

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

今年もPage2013に、CAS-UBやAH Formatterを中心に出展いたします。

アンテナハウスは、2月6日(水)~2月8日(金)東京・池袋サンシャインシティコンベンションセンター TOKYO(展示ホー ルD:文化会館2F) で開催されるPage 2013に出展します。

■Pageでの弊社の主要出展内容

主に次の製品を展示いたします。説明員がデモの用意をしてお待ちしていますので、ぜひご来場ください。

1) CAS-UB

ワンソースでブックオンデマンド書籍のためのPDF制作、EPUB・Kindle形式の電子書籍の制作を同時に行なうことができます。

2) XMDFtoEPUB変換ツール

XMDFのソースXMLから、EPUBに変換できます。「電書協フォーマット」対応のEPUBを出力することもできます。

3) AH Formatter

(1) 多言語組版

AH FormaterV6.0では南アジア・東南アジアの文字はデバナガリ(Devanagari)文字とタイ(Thai)文字のみのサポートです。V6.1でインド系文字にベンガリ(Bengali)、グジャラーティ(Gujarati)、タミール(Tamil)、テルグ(Telgu)、グルムキ(Gurmukhi)、オリア(Oriya)、カンナダ(Kannada)、マラヤラム(Malayalam)の8文字を追加、東南アジア系文字にクメール(Khmer)文字の組版をサポートします。

(2) 数式組版

数式組版についてもV6.1に向けて機能強化中です。

■出展情報
ブース番号:D-26
入場費用 :1,000円(下記までお問い合わせいただければ無料入場券を送付いたします)
お問い合わせ:03-5829-9021 
e-mail:sis@antenna.co.jp

EPUBリーダの数式サポート―iBooks3.0のMathML表示がかなり進化

10月の主要EPUBリーダの新版登場でひとつ注目したいのが数式のサポート強化です。Readiumは3月にMathJaxを使ったMathML表示をサポートしました[1]。

これに対して、iBooksはMathMLの直接レンダリングを強化したようです。

表 メジャーなEPUBリーダのMathJaxサポート

項目 iBooks3.0 (iOS6) Adobe Digita
Editions 2.0
Readium 0.5.3 Kindle Previewer 2.7
(Kindle Paperwhite モード)
MS明朝
MathMLサポート MathML直接描画 未サポート MathJaxによる 未サポート

1.iBooks3.0による表示例

(1) 図1の一番上の数式では最初の()が上下に伸びすぎています。二つ目の数式では「・」が親文字と離れすぎです。この2点を除くと大体使えると思います。

図1 サンプル数式のiBooks3.oによる表示1

(2) 図2についても()が上下に伸びすぎている点を除くと使えると思います。

図2 サンプル数式のiBooks3.oによる表示2

2.ReadiumによるMathMLの表示

ReadiumはMathJaxで数式を表示しています。Readiumによる表示を次に示します。こちらの方はすべての数式が綺麗に表示されています。

図1 サンプル数式のReadiumによる表示1

図2 サンプル数式のReadiumによる表示2

3.総合的にみて

EPUB3.0になって数式MathMLの表示がEPUB3.0リーダの標準機能になりました。まだ、EPUB3.0リーダによる数式表示機能の実装は全体として遅れています。しかし、iBooksが数式のMathML表示をサポートしつつあることが分かります。現状ではまだすべての数式をサポートできていないようですが、このペースですとあと半年もあればMathJax並みになりそうで、かなり期待が持てます。

[1] Readium 0.19 update adds MathML support
[2] 数式のサンプル (CAS-UBで作成したもの)

CAS-UBでの数式の編集とEPUB・PDFでの数式表示について

CAS-UBでは数式を含むEPUB/PDFの作成を重要なテーマとして位置づけて開発に取り組んでいます。数式機能は当初の予定よりも正式リリースが遅れているため、多くのお客様にお待ちいただいています。そこで、ここでCAS-UBでの数式の取り扱いの現状と開発の予定について報告いたします。

1. 現状

1.1 入力方法
コンテンツの本文にインライン数式とディスプレイ数式を埋め込むことができます。CAS-UBでは本文をCAS記法で記述しますが、数式はAMS-LaTeX (以下、TeXと略記します)の記法で記述します。数式の範囲は$$~$$で囲むことで本文と数式を区別します。

1.2 出力方法
a. EPUB3
EPUB3のコンテンツ本文はXHTML5ですが、数式部分はMathMLの形式でXHTML5の中に埋め込みます。EPUB3を出力するときTeXの記法からMathMLに自動的に変換します。

b. PDF
数式をTeXの記法からMathMLに変換し、AH FormatterでMathMLをレンダリングしてPDF中に数式を埋め込みます。

c. Webページ
ブラウザはMathJaxを使って数式を表示できます。そこで、CAS-UBのWebページ(プレビュー)作成では、数式部分をTeXのまま出力、XHTMLにMathJax対応コードを埋め込みます。

1.3 ドキュメント・サンプル
上述の入力と出力の方法は、CAS-UBの公開マニュアルに記載されていませんが、現在、クラウド上では上の仕組みを使うことができます。

使用方法、記述例およびサポートするTeXの記法、および出力結果を次のところにサンプルとして公開いたしました。このサンプルは、開発途上のアルファ版の段階であることをご理解ください。

CAS-UBサンプルの「CAS-UBによる数式の扱い」をご覧ください。

2. 開発課題

現在、次の点を課題として開発を行なっています。一部は計画も含み、今後変更になる可能性がありますのでご了解ください。

2.1 AMA-LaTeX記法からMathMLへの変換
TeXで記述した数式をMathMLに変換するとき変換できない記述があります。変換可能な範囲を増やす開発を行ないます。

なお、別の方法として、CAS-UBで編集するコンテンツにMathMLを直接埋め込むことも検討しています。これによりTeXから変換できない数式、MathMLとして予め用意されている数式コンテンツをEPUBやPDFにインポートしたり、貼り付けたりできることになるでしょう。

2.2 MathMLのレンダリングの改善
PDF生成時に数式をより綺麗にレンダリングするため、AH Formatter V6のMathMLレンダリング機能の強化を行なっています。具体的には次のような項目です。

(1) 数式専用フォントへの対応
STIXフォントなどの数式専用のフリーフォントを使ったレンダリングも行なうようにします。数式専用フォントを利用することで、数学の記号類をより綺麗にレンダリングできるようになります。

(2) MathMLのレンダリングのチューニング
MathMLをより綺麗に表示するためのレンダリングのプログラムの見直しと改善を行なっています。

2.3 その他
数式番号の付与方法、番号の自動付与、本文から数式を参照するための仕組みを開発します。

2.4 数式リーダ
MathML数式を含むEPUBを表示できるリーダは、現時点ではFireFoxのプラグインのみです。新たなリーダがでてきたら随時評価を行ないます。

3. 日程

上記の開発課題への対応は今年10~12月に完了する予定です。

4. EPUBリーダ

4.1 MathMLを表示できるEPUBリーダ

2.4項の通り、CAS-UBで作成したEPUB3では数式はMathMLで表現されています。EPUB3の仕様上は問題ないのですが、実際には、これを正しく表示できるEPUBリーダはFireFoxのプラグインのEPUBリーダのみです。iBooks, Adobe Digital EditionsなどのほかのEPUBリーダでは正しく表示できませんのでご注意ください。

4.1 その他の選択肢

EPUB3リーダでMathMLのサポートが見込めない状況であれば、数式をSVGにして埋め込むことにするかもしれません(未定)。