W3C

数学マークアップ言語 (MathML) バージョン 3.0

W3C 勧告 2010年10月21日

このバージョン:
http://www.w3.org/TR/2010/REC-MathML3-20101021/
MathML 3の最新バージョン:
http://www.w3.org/TR/MathML3/
MathML の最新の勧告:
http://www.w3.org/TR/MathML/
前のバージョン:
http://www.w3.org/TR/2010/PR-MathML3-20100810/
編集者:
David Carlisle, NAG
Patrick Ion, Mathematical Reviews, American Mathematical Society
Robert Miner, Design Science, Inc.
主執筆者:
Ron Ausbrooks, Stephen Buswell, David Carlisle, Giorgi Chavchanidze, Stéphane Dalmas, Stan Devitt, Angel Diaz, Sam Dooley, Roger Hunter, Patrick Ion, Michael Kohlhase, Azzeddine Lazrek, Paul Libbrecht, Bruce Miller, Robert Miner, Chris Rowley, Murray Sargent, Bruce Smith, Neil Soiffer, Robert Sutor, Stephen Watt

本文書には、標準的な修正が加えられている場合があるので、正誤表も参照してください。

本文書は、HTML版に加え、標準ではない次の形態でも用意されています: 差分付きHTMLXHTML+MathML版、及びPDF版 訳注: いずれも英語のみ

翻訳もご覧ください.


要旨

この仕様書は、数学マークアップ言語、すなわち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 はじめに 翻訳済
    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

Appendices

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属性