XSL-FO + MathML Rendering

XSL-FO + MathML
MathML表示、PDF生成、SVG生成
2004年10月4日
第13回多言語組版研究会資料
www.antenna.co.jp
XSL-FO
• Extensible Stylesheet Language (XSL)
Version 1.0
W3C Recommendation 15 October 2001
http://www.w3.org/TR/2001/REC-xsl-20011015/
Version 1 は1998から2001にかけて開発された。
• XSLの目標は、XMLドキュメントをPDFや紙
のようなページの概念をもつ媒体にレイアウ
トすること。
– formatting object(FO)を56種類定義
– さらに248種類のproperty(プロパティ=属性)
2
MathML
• MathMLは、数学に関するXMLベースの言語
である。
• W3CのMath Working Groupが1998年に
MathML 1.0 仕様を決定 (2001年にMathML
2.0となった)
3
XSL Formatter
• XSL Formatter はアンテナハウスが開発した
XSL-FOを組版するソフト
– XSL-FOの商用製品の中で最初に出たものの一つ
– 2000年日本語版V1を発売
– 継続してバージョンアップ→現在はV3.1
• 入力データ: XML/XSL-FO + ラスタ/ベクタグラフィック, SVG
• 出力データ: PDF, Windowsプリンタ, Windows GUI,
SVG (開発中, 商品化はV3.3以降)
• Operating System
– Windows2000/2003,XP, Linux, Solaris
– AIX, Mac OS X (V3.2からサポート予定)
4
MathML オプション
(XSL Formatter V3.2用)
• Antenna Houseの独自開発
• XSL-FOに埋め込まれたMathMLマークアッ
プを組版する。
• XSL Formatter V3.2以降のオプションとして
商品化予定。
• 評価版(日本語)のダウンロードはここから:
http://www.antenna.co.jp/FO/
5
MathMLオプションでできること
• XSL-FO + MathML によりXML組版の応用
分野にSTM (科学, 技術, 医学) 出版が追加
される。
• 将来は、XSL-FO + MathMLはTeXに取って
代わるだろう。
– TeXは普及しているがXMLではない
6
MathMLをWebとPDFに使う
• XMLからXHTML変換
– XML + MathML  XHTML + MathML
• XMLからPDF変換
– XML + MathML  XSL-FO + MathML
7
XSL-FOの中でのMathMLの扱い
•
•
XSL formatting object の中でMathMLの
マークアップをどう扱うか?
MathMLはベクトル図形として扱われる。
– 現在、XSL-FO V1.0仕様では、XSL-FO以外の
オブジェクトを次の2つのオブジェクトの中でし
か扱えない。
1. fo:instream-foreign-object
と
2. fo:external-graphic.
8
fo:instream-foreign-object
MathMLの中で実体参照を使うときはDTDで実体を宣言することが必要である。
①DTDが必要な時:
<fo:instream-foreign-object>
<![CDATA[<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">
<math xmlns=http://www.w3.org/1998/Math/MathML>
... MathML including entity reference...
</math>
]]>
</fo:instream-foreign-object>
②DTDを使わない時:
<fo:instream-foreign-object>
<math xmlns=http://www.w3.org/1998/Math/MathML>
... MathML without entity reference...
</math>
</fo:instream-foreign-object>
9
fo:external-graphic
• fo:external-graphic のsrc属性の値としてMathMLファイル
のURLを指定することができる。
•
<fo:external-graphic
src="url('MathML/rec-rambda2l.mml')"
content-type="application/mathml+xml“ ... />
10
Inline and Block
• インライン・オブジェクト: オブジェクトを文字として扱う
• ブロック・オブジェクト:数式のみの段落
fo:instream-foreign-objectをfo:blockで囲む
Example
インライン
...
ブロック
11
Interface
• MathML組版エンジンは、環境から次の情報
を継承する:
–
–
–
–
–
font-size
font-family
font-weight
font-style
length of a 1px
• XSL-FO組版エンジンは、MathML組版エン
ジンから次の情報を取得する:
– position of base-line
12
MathML サポートレベル
• MathML 2.0仕様の実装状況
• W3C MathMLテスト・スィートの結果
– V3.2 Beta version
13
例
• XSL-FO + MathML
14
Windows GUI
XSL Formatter
GUI
15
PDF
Adobe Acrobat
16
SVG
IE6 +
Adobe
SVG Viewer
17
互換性の問題
• 世界中で様々なツールが使われるだろ
う
– MathMLは、数式エディタやコンバータなどの
様々なツールで作成される
• MathMLを作成するソフトと組版するソフ
トの互換性は非常に重要な課題である。
– MathMLの自動組版にとっては、様々なツールで
生成されるMathMLのマークアップが正しいこと
が必須。
18