本文書には、標準的な修正が加えられている場合があるので、正誤表も参照してください。
本文書は、HTML版に加え、標準ではない次の形態でも用意されています: 差分付きHTML、XHTML+MathML版、及びPDF版 訳注: いずれも英語のみ
翻訳もご覧ください.
Copyright © 1998-2010 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
この仕様書は、数学マークアップ言語、すなわちMathMLについて定義するものです。 MathMLは、数式を表現し、その構造と内容の両方を捉えるためのXMLアプリケーションです。 MathMLの目的は、HTMLがテキストに対して可能にした機能のように、数学がワールドワイドウェブ上で提供され、受信され、そして処理されるようにすることです。
このマークアップ言語MathMLの仕様書は、それを用いたレンダラーやエディター、つまりMathMLを入出力のプロトコルとして用いて通信するソフトウェアを開発または実装する人々を主な読者として想定しています。 本文書は、ユーザーガイドではなく、どちらかというと参考文献です。
MathMLは、数学の表記及び内容の両方を符号化するために用いることができます。 MathMLのタグの約38%は抽象的な表記上の構造を表現するためのものであり、また、170個ほどのタグは曖昧さを残さずに式の意図を特定するためのものです。 本仕様書の後半の章では、MathMLのコンテンツ要素とプレゼンテーション要素がどのように相互作用し、MathMLのレンダラーがどのように実装されブラウザと相互作用すべきかについて論じています。 最後に本文書は、数学に用いられる特別な文字について、そのMathMLにおける取り扱い、Unicodeにおける表現(presence)、及び書体との関係について述べています。
MathMLは人間に可読ですが、一般的には、数式エディター、対話プログラム、及び他の特別なソフトウェア・ツールを用いてMathMLを生成することになります。 そのようなMathMLツールは、フリーウェア・商用プロダクトともすでに存在しており、また、さらに多くのものが開発されています。
この節は、本文書の公開時における位置づけについて述べたものです。 他の文書によって本文書が取って代わられることがあります。 W3Cの最新の出版物一覧及び本技術報告書の最新改訂は、W3C技術報告書一覧 (http://www.w3.org/TR/) にあります。
本文書は、W3C数学作業部会によって勧告として作成されたもので、W3C数学活動の一部です。 W3C数学作業部会の目標は、W3C数学作業部会憲章(2006年7月改訂)で論じています。 本文書の著者は、W3C数学作業部会のメンバーです。 W3C数学作業部会の参加者の一覧が入手できます。
本文書は、W3C委員、ソフトウェア開発者、及び他のW3C部会や関連団体によって審議され、W3C委員長によりW3C勧告として承認されたものです。 これは安定した文書であり、他の文書から参考文献または引用文献として利用することができます。 W3Cは勧告を作成することにより、仕様への注目を集め、その広い利用を推進することとし、もってウェブの機能性及び相互運用可能性を向上させています。
W3C数学作業部会は、包括的な テストスイートを保守しています。 これは一般に公開されており、開発者はその表示結果を提出することが推奨されます。 テスト結果は、一般に公開されます。 それぞれの代表的なテストに対して最低2つの相互運用可能な実装を表示しています。 詳しくは、実装報告にあります。
MathML 3.0 仕様書と非常に関連の高いものに、同じく勧告として承認されたCSSのためのMathMLプロファイルがあります。 これはカスケーディングスタイルシートを用いて書式設定が可能なMathML 3.0のプロファイルについて述べたものです。
MathML 2.0仕様(及びその第2版)は、2001年からW3C勧告となっていました。 その勧告以来、W3C数学関連部会は、MathMLの利用及び改善可能な問題点についての体験報告を集めました。 数学作業部会の再設立は、MathMLの全体的な設計を変更する目的ではありません。 MathML 3における主な追加事項は、双方向レイアウト、よりよい改行や明確な位置指定、初等算術表記、及びよく定義されたセマンティクスにおける新たなコンテンツMathMLボキャブラリーです。 MathML 3では、仕様書の構造も見直されました。
本文書は、 W3C特許ポリシー(2004年2月5日)の下で活動する部会によって作成されました。 W3Cは、当該部会の成果物と関連して作成された特許開示公開リストを保守しています。 同ページは、また、特許開示のための手続きについても触れています。 Essential Claim(s)を含むと信じられる特許について知識を有するいかなる人も、当該情報について、W3C特許ポリシー第6節に基づき開示しなければなりません。
MathML及びW3Cを通じた支援に関する問題についての議論は、数学作業部会の公開メーリングリスト (リストアーカイブ) で行われています。
購読するには、件名にsubscribe
を含めたメールをwww-math-request@w3.orgへ送信してください。
本文書の基本的な章構成は、以前のMathML 2.0勧告 [MathML2]の構成に基づいています。 MathML 2.0はW3C勧告MathML 1.01 [MathML1]の、MathML 3.0はW3C勧告MathML 2.0の、それぞれ改訂となっています。 すべての章が更新され、新しい要素と属性が追加されるとともに、廃止されたものがあります。 説明資料や文字及び実体についての資料、MathML DOMについての資料等などが、別文書に移動しました。 文字実体に関する議論は、別のW3C勧告 XML文字実体定義 [Entities] としてまとめられました。 MathMLのCSSとの併用に関する問題については、別文書CSSのためのMathMLプロファイル [MathMLforCSS]としてまとめられ、これも付随するW3C勧告となっています。
MathML 2.0 第2版からの最大の違いは第4章及び第5章ですが、仕様書を通して細かな修正が加えられています。 前勧告からの変更点の詳細は、以下の通りです。
かつて第1章及び第2章に含まれていた非標準的な解説や過去のMathML仕様書に含まれていた例の多くはMathML 3の仕様書から削除され、MathML Primerに含まれ、別文書として扱われる予定です。 このことにより、この正式なMathML3仕様書は実装における参考文書となり、MathMLの展開についての理解を支援するための一助となることでしょう。 第1章及び第2章の残りの内容は、文書のその他の部分の変更点や急速に発展するウェブ環境を反映して編集されました。 一部の文章は、ウェブ及びXMLの黎明期に遡って解説をしていましたが、こうした説明も一般的となりましたので本仕様では特別に扱わないことにしました。
第3章は、プレゼンテーションマークアップについて述べたもので、改行や多くの国々で使われる初等算術表記(mstack
やmlongdiv
等)のためのマークアップについて追加しています。
その他の変更点として、mglyph
、mpadded
及びmaction
要素の改訂及び属性値の大規模な統合と整理が行われました。
また、W3Cノート「Arabic mathematical notation」に記録されているように、これまでの作業により、双方向テキストとの関連づけの明確化とRTLテキストの例が追加されました。
第4章は、コンテンツマークアップに関するもので、大規模な変更及び追加を含みます。 実際のコンテンツの意味づけについては原則としてこれまでのままですが、よりよい表現のために様々な変更がなされました。 また、新しい要素がいくつか追加されました。
第5章は、マークアップ言語の混在の処理という目標が明確になったことから、さらに改良されました。 この章では、特にMathML仕様の各部分---特にプレゼンテーションマークアップとコンテンツマークアップ---の相互関係について、取り上げます。
第6章は新しく追加された章で、MathMLとそのホスト環境との相互作用について取り扱っています。 この章では、ウェブ上での展開の観点から、MathML仕様とXMLやHTMLの相互関係について取り扱います。 特に、MathMLとCSSの相互作用について議論しています。
第7章は、以前の第6章を引き継いだもので、Unicode及びW3Cにおける名前付き文字実体にまつわる新たな状況を反映し、書き換え及び再構成されました。 W3Cの新たなXML Entity Definitions for Charactersは、これまで数学に用いられていた文字実体を取り込み、新たなW3C勧告[Entities]となりました。
8つの付録についても、改訂が行われました。 付録Aは、新しくRelaxNGスキーマを加え、またMathML3のDTD問題について議論しています。 付録Bは、MathMLに関連づけられるメディアタイプについて言及し、W3Cの現在の標準的手続きに則り、新しく3つのメディアタイプを登録することについて暗に要求しています。 付録Cは、演算子ディクショナリーについて、単純化し再検討を行っています。 付録D、E、F、G及びHは、以前の仕様に含まれていた非標準的内容を含み、適宜更新されています。
本文書の変更点についての詳細な議論は、付録F 変更点にあります。
1 はじめに 翻訳済
1.1 数学とその表記
1.2 起源と目標
1.2.1 MathMLの設計目標
1.3 概要
1.4 最初の例
2 MathMLの基礎
2.1 MathMLの構文と文法
2.1.1 一般的な考察
2.1.2 MathMLと名前空間
2.1.3 子と引数
2.1.4 MathMLとレンダリング
2.1.5 MathMLの属性値
2.1.6 すべてのMathML要素に共通の属性
2.1.7 入力における空白の折りたたみ
2.2 The Top-Level math
Element
2.2.1 Attributes
2.2.2 廃止された属性
2.3 Conformance
2.3.1 MathML適合
2.3.2 エラーの取り扱い
2.3.3 Attributes for unspecified data
3 プレゼンテーションマークアップ
3.1 はじめに
3.1.1 What Presentation Elements Represent
3.1.2 Terminology Used In This Chapter
3.1.3 必須引数
3.1.4 Elements with Special Behaviors
3.1.5 方向
3.1.6 Displaystyle and Scriptlevel
3.1.7 Linebreaking of Expressions
3.1.8 Warning about fine-tuning of presentation
3.1.9 Summary of Presentation Elements
3.1.10 Mathematics style attributes common to presentation elements
3.2 Token Elements
3.2.1 MathML characters in token elements
3.2.2 Mathematics style attributes common to token elements
3.2.3 Identifier <mi>
3.2.4 Number <mn>
3.2.5 Operator, Fence, Separator or Accent <mo>
3.2.6 Text <mtext>
3.2.7 Space <mspace/>
3.2.8 String Literal <ms>
3.3 General Layout Schemata
3.3.1 Horizontally Group Sub-Expressions <mrow>
3.3.2 Fractions <mfrac>
3.3.3 Radicals <msqrt>
, <mroot>
3.3.4 Style Change <mstyle>
3.3.5 Error Message <merror>
3.3.6 Adjust Space Around Content <mpadded>
3.3.7 Making Sub-Expressions Invisible <mphantom>
3.3.8 Expression Inside Pair of Fences
<mfenced>
3.3.9 Enclose Expression Inside Notation
<menclose>
3.4 Script and Limit Schemata
3.4.1 Subscript <msub>
3.4.2 Superscript <msup>
3.4.3 Subscript-superscript Pair <msubsup>
3.4.4 Underscript <munder>
3.4.5 Overscript <mover>
3.4.6 Underscript-overscript Pair
<munderover>
3.4.7 Prescripts and Tensor Indices
<mmultiscripts>
3.5 Tabular Math
3.5.1 Table or Matrix
<mtable>
3.5.2 Row in Table or Matrix <mtr>
3.5.3 Labeled Row in Table or Matrix
<mlabeledtr>
3.5.4 Entry in Table or Matrix <mtd>
3.5.5 Alignment Markers
<maligngroup/>
, <malignmark/>
3.6 Elementary Math
3.6.1 Stacks of Characters <mstack>
3.6.2 Long Division <mlongdiv>
3.6.3 Group Rows with Similiar Positions <msgroup>
3.6.4 Rows in Elementary Math <msrow>
3.6.5 Carries, Borrows, and Crossouts <mscarries>
3.6.6 A Single Carry <mscarry>
3.6.7 Horizontal Line <msline/>
3.6.8 Elementary Math Examples
3.7 Enlivening Expressions
3.7.1 Bind Action to Sub-Expression
<maction>
3.8 Semantics and Presentation
4 コンテンツマークアップ
4.1 はじめに
4.1.1 コンテンツマークアップの意図
4.1.2 The Structure and Scope of Content MathML Expressions
4.1.3 Strict Content MathML
4.1.4 Content Dictionaries
4.1.5 Content MathML Concepts
4.2 式構造を符号化するコンテンツMathML要素
4.2.1 Numbers <cn>
4.2.2 Content Identifiers <ci>
4.2.3 Content Symbols <csymbol>
4.2.4 String Literals <cs>
4.2.5 Function Application <apply>
4.2.6 Bindings and Bound Variables <bind>
and <bvar>
4.2.7 Structure Sharing <share>
4.2.8 Attribution via semantics
4.2.9 Error Markup <cerror>
4.2.10 Encoded Bytes <cbytes>
4.3 Content MathML for Specific Structures
4.3.1 Container Markup
4.3.2 Bindings with <apply>
4.3.3 Qualifiers
4.3.4 Operator Classes
4.3.5 Non-strict Attributes
4.4 Content MathML for Specific Operators and Constants
4.4.1 Functions and Inverses
4.4.2 Arithmetic, Algebra and Logic
4.4.3 Relations
4.4.4 Calculus and Vector Calculus
4.4.5 Theory of Sets
4.4.6 Sequences and Series
4.4.7 Elementary classical functions
4.4.8 Statistics
4.4.9 Linear Algebra
4.4.10 Constant and Symbol Elements
4.5 Deprecated Content Elements
4.5.1 Declare <declare>
4.6 The Strict Content MathML Transformation
5 数式のマークアップ言語の混在
5.1 Annotation Framework
5.1.1 Annotation elements
5.1.2 Annotation keys
5.1.3 Alternate representations
5.1.4 Content equivalents
5.1.5 Annotation references
5.2 Elements for Semantic Annotations
5.2.1 The semantics
element
5.2.2 The annotation
element
5.2.3 The annotation-xml
element
5.3 プレゼンテーションマークアップとコンテンツマークアップの併用
5.3.1 コンテンツマークアップ中のプレゼンテーションマークアップ
5.3.2 プレゼンテーションマークアップ中のコンテンツマークアップ
5.4 Parallel Markup
5.4.1 Top-level Parallel Markup
5.4.2 Parallel Markup via Cross-References
6 ホスト環境との相互作用
6.1 はじめに
6.2 MathMLプロセッサーの起動
6.2.1 XMLにおけるMathMLの認識
6.2.2 MathML文書のリソースタイプ
6.2.3 MathMLエンコーディング名
6.3 MathMLの移動
6.3.1 Basic Transfer Flavor Names and Contents
6.3.2 Recommended Behaviors when Transferring
6.3.3 Discussion
6.3.4 Examples
6.4 Combining MathML and Other Formats
6.4.1 Mixing MathML and XHTML
6.4.2 Mixing MathML and HTML, and other non-XML contexts
6.4.3 Linking
6.4.4 MathML and Graphical Markup
6.5 Using CSS with MathML
6.5.1 Order of processing attributes versus style sheets
6.5.2 Layout engines that lack native MathML support
7 文字、実体及び書体
7.1 はじめに
7.2 Unicode文字データ
7.3 実体宣言
7.4 Unicodeにない特殊文字
7.5 Mathematical Alphanumeric Symbols
7.6 Non-Marking Characters
7.7 Anomalous Mathematical Characters
7.7.1 Keyboard Characters
7.7.2 Pseudo-scripts
7.7.3 Combining Characters
A MathMLのパース
A.1 Use of MathML as Well-Formed
XML
A.2 Using the RelaxNG Schema for MathML3
A.2.1 Full MathML
A.2.2 Elements Common to Presentation and Content MathML
A.2.3 The Grammar for Presentation MathML
A.2.4 The Grammar for Strict Content MathML3
A.2.5 The Grammar for Content MathML
A.2.6 MathML as a module in a RelaxNG Schema
A.3 Using the MathML DTD
A.3.1 Document Validation Issues
A.3.2 Attribute values in the MathML DTD
A.3.3 DOCTYPE declaration for MathML
A.4 Using the MathML XML Schema
A.4.1 Associating the MathML schema with MathML fragments
B メディアタイプ登録
B.1 Selection of Media Types for
MathML Instances
B.2 Media type for Generic MathML
B.3 Media type for Presentation MathML
B.4 Media type for Content MathML
C 演算子ディクショナリー (非標準)
C.1 Indexing of the operator dictionary
C.2 Format of operator dictionary entries
C.3 Notes on lspace and
rspace attributes
C.4 Operator dictionary entries
D 用語集 (非標準)
E 作業部会メンバー及び謝辞 (非標準) 翻訳済
E.1 数学作業部会メンバー
E.2 謝辞
F 変更点 (非標準) 翻訳済
F.1 MathML 2.0第2版からの変更点
G 標準文献 翻訳済
H 参考文献 (非標準) 翻訳済
I 索引 (非標準) 翻訳済
I.1 MathML要素
I.2 MathML属性