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なのか?

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

本日のセミナー資料(CAS-UB)をアップしました。

本日は、Antenna House Formatter V6.1の発表セミナーを行ないました。

最後に、CAS-UBにつきましても、30分の時間枠を設定してもらって、数式の扱いを中心に、簡単にV2.2の紹介をさせていただきました。

セミナー資料を会場で配布できませんでしたので、下記の場所に資料(PDF)をアップしました。参考にしていただければ幸いです。

パワーポイント資料ダウンロード

今年も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

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にして埋め込むことにするかもしれません(未定)。