W3C

CSSに対応するMathMLの概要書
A MathML for CSS Profile

W3C勧告2011年 6月 7日
W3C Recommendation 07 June 2011

このヴァージョン:
This version:
http://www.w3.org/TR/2011/REC-mathml-for-css-20110607/
最新のヴァージョン:
Latest version:
http://www.w3.org/TR/mathml-for-css/
一つ前のヴァージョン:
Previous version:
http://www.w3.org/TR/2010/PR-mathml-for-css-20100810/
編集者
Editors:
Bert Bos, W3C
David Carlisle, NAG
George Chavchanidze, Opera Software
Patrick D. F. Ion, Mathematical Reviews, American Mathematical Society
Bruce R. Miller, National Institute of Standards and Technology

この文書の正誤表 を参照してください. 正誤表は規範となる訂正を含んでいることもあるでしょう.

Please refer to the errata for this document, which may include some normative corrections.

についても見て下さい.

See also translations.

Copyright © 1998-2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.


概要
Abstract

この文書は, CSSを利用して表示することを組み込んだMathML 3.0の概要について述べています.

This document describes a profile of MathML 3.0 that admits formatting with Cascading Style Sheets.

この文書の位置付け
Status of this Document

この節では, 公表された時点でのこの文書の位置付けについて述べます. 他の文書がこの文書に取って代わるかもしれません. 現時点でのW3Cの公表した文書のリストとこの技術的な記事の最新版は, W3C technical reports index(訳注:"W3Cの技術的な記事の索引"という意味)(http://www.w3.org/TR/)で見つけることができます.

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

この文書は, W3C 数学事業の一部としてW3C数学ワーキンググループにより作成されたW3C勧告です. W3C数学ワーキンググループの目的は, W3C数学ワーキンググループ憲章の中で述べています. この文書の著者は, W3C数学ワーキンググループのメンバーです.

This document is a W3C Recommendation produced by the W3C Math Working Group as part of W3C Math Activity. The goals of the W3C Math Working Group are discussed in the W3C Math WG Charter. The authors of this document are W3C Math Working Group members.

この文書は, W3Cのメンバー, ソフトウェア開発者, 他のW3Cのグループや興味を持った団体によって検討され, 責任者によりW3C勧告とされました. この文書は, 完成版であり, 他の文書から, 資料として参照されたり, 引用されたりします. 勧告を行う上でのW3Cの役割は, 仕様書に注意を引くことと, 広範囲に普及させることです. このことにより, ウェブの機能性や使用性を高めます.

This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.

この文書は, 広く検討され実装可能なように閲覧されてきて完成したのもです. W3Cは, 全ての方に対しこの仕様書を実装することを奨励しています. 意見は, 公式なメーリングリストwww-math@w3.org (履歴一覧)に送信して下さい. (訳注:この文書(日本語版)に対する意見や間違いの報告は, soco__kankyo@hotmail.comに報告して下さい.)

This is is a mature document that has been widely reviewed and has been shown to be implementable. W3C encourages everybody to implement this specification. Comments may be sent to the (archived) public mailing list www-math@w3.org.

この文書の一つ前のヴァージョンは勧告案です. その案とこの文書の違いは, 位置付けの節が更新されたことと参考文献がいくつか更新されたことのみです.

The previous version of this document was a Proposed Recomendation. The only differences between that draft and this are the updated status section, and some updated references.

この勧告は, MathML 3.0[mathml]W3C勧告の概要を明記し, 現在のCSS[css]と調和させようとするものです.

This Recommendation specifies a profile of the W3C Recommendation, MathML 3.0 [mathml], and is intended to accord with current CSS [css].

勧告候補の期間を通して, ワーキンググループは, 以前の2つの独立したCSS実装を利用するCSSに対応するMathMLの概要書を試みました. この概要書は, 仕様書の中に適切なCSSスタイルシートを含んでいます. この試みの結果は, CSSに対応するMathMLの概要書試験結果で公表されています. この試みは, 総合的なMathML試験ツールの一部を利用して行われました. このツールも公開され利用できます. 詳しくは, MathML3実装のレポートで見ることができます.

During the Candidate Recommendation phase, the Working Group tested the MathML for CSS Profile using at least two independent CSS implementations. The Profile contains a suitable CSS stylesheet within the specification itself. The results of testing, MathML for CSS Profile Test Results, have been made public. The testing used parts of the comprehensive MathML Test Suite. This is also publicly available. Further details may be found in the MathML3 Implementation Report

この文書は2004年2月5日のW3Cの特許指針の基での, グループの運営により作成されました. W3Cは, グループ間で相互に情報交換できる連携の中で判明した特許について明確に露見した事実の公式一覧を整備しています. この一覧のページには, 特許について露見した場合の指示書きを含んでいます. 特許について実際の情報を持っている方は, その情報が本質的な主張にあたると思われる場合, W3C特許指針の第6節に従って, 必ずその情報を公表してください.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

MathMLについての公式な議論やウェブ上の数学についてのW3Cを介したサポートの問題点については, 数学ワーキンググループの公式なメーリングリスト (履歴一覧)で交わされています. 寄付をされたい場合, 題名にsubscribeという語句を記入してwww-math-request@w3.orgにメールを送付して下さい.

Public discussion of MathML and issues of support through the W3C for mathematics on the Web takes place on the public mailing list of the Math Working Group (list archives). To subscribe send an email to www-math-request@w3.org with the word subscribe in the subject line.

目次
Table of Contents

1 導入
Introduction
    1.1 表現モデルにおける違い
    Differences in formatting models
2 数学要素
Math Elements
    2.1 ルート要素
    Root element
    2.2 素子要素と配置要素
    Token elements and layout schemata
    2.3 必要な引数
    Required Arguments
    2.4 共通の属性
    Common attributes
3 素子要素
Token Elements
    3.1 識別子 <mi>
    Identifier <mi>
    3.2 数字 <mn>
    Number <mn>
    3.3 演算子 <mo>
    Operator <mo>
    3.4 文章 <mtext>
    Text <mtext>
    3.5 空白 <mspace>
    Space <mspace>
    3.6 文字列 <ms>
    String Literal <ms>
4 一般的な配置要素
General Layout Schemata
    4.1 水平に式をまとめる <mrow>
    Horizontally Group Sub-Expressions <mrow>
    4.2 分数 <mfrac>
    Fractions <mfrac>
    4.3 根号 <msqrt>, <mroot>
    Radicals <msqrt>, <mroot>
    4.4 エラーメッセージ <merror>
    Error Message <merror>
    4.5 見えない式を作る <mphantom>
    Making Sub-Expressions Invisible <mphantom>
    4.6 かっこの組で囲まれた式 <mfenced>
    Expression Inside Pair of Fences <mfenced>
    4.7 囲まれた式 <menclose>
    Enclose Expression Inside Notation <menclose>
5 添字等の配置要素
Script and Limit Schemata
    5.1 下付きの式 <msub>
    Subscript <msub>
    5.2 上付きの式 <msup>
    Superscript <msup>
    5.3 下付きの式と上付きの式の組 <msubsup>
    Subscript-superscript Pair <msubsup>
    5.4 下側の式 <munder>
    Underscript <munder>
    5.5 上側の式 <mover>
    Overscript <mover>
    5.6 下側の式と上側の式の組 <munderover>
    Underscript-overscript Pair <munderover>
    5.7 左側の添字 <mmultiscripts>
    Prescripts <mmultiscripts>
6 表と行列
Tables and Matrices
    6.1 表または行列 <mtable>
    Table or Matrix <mtable>
    6.2 表や行列の行 <mtr>
    Row in a Table or Matrix <mtr>
    6.3 表や行列の要素 <mtd>
    Entry in a Table or Matrix <mtd>
7 初等数学
Elementary Math
    7.1 足し算や引き算や掛け算の筆算 <mstack>
    2D addition, subtraction and multiplication <mstack>
    7.2 水平の行 <msrow>
    Horizontal rows <mrow>
    7.3 割り算の筆算 <mlongdiv>
    Long division <mlongdiv>
8 注釈
Annotations
    8.1 式と動作を結び付ける <maction>
    Bind Action to a Sub-Expression <maction>
    8.2 意味情報を対応させる <semantics>
    Add semantic mapping <semantics>
9 拡張と一致
Extensibility and Conformance
    9.1 拡張
    Extensibility
    9.2 一致
    Conformance
10 MathMLプレゼンテーションマークアップと概要書の違い
Differences between MathML presentational markup and present profile
11 文書型定義
Document Type Definition
12 既定のCSSスタイルシート
Default CSS style sheet
13 参考文献
References


1 導入
Introduction

現在の概要書は, CSSによる表現に対応する方法で数式の構造をうまく再現するために利用できるよう, MathML 3.0 [mathml]の一部となるものを意図しています. この概要書はウェブブラウザやCSSを表現するソフトウェアにおいてMathMLの採用を促進することを期待されています. 具体的には, プレゼンテーションMathMLの配置構成を表現するため, 数学に適応したちょっとした拡張によって強化した, 既存のCSS [css]視覚表現モデルをそれらのソフトウェアで再利用することによって採用の促進を期待されています. CSSに対応する概要書の開発は, CSSで進行中の作業と調整が図られていると仮定しています. この文書で明記されているように, 適切に利用されるよう制限されたMathML3の内容は, CSS 2.1までの現在実装されているCSSとともにうまく表現されるべきです. 記述された機能の中には, CSS3に追加される限られた新しいプロパティの集合によって, より良くなるものもあるでしょう.

The current profile is intended to be subset of MathML 3.0 [mathml] that could be used to capture structure of mathematical formulae in the way suitable for further CSS formatting. This profile is expected to facilitate adoption of MathML in web browsers and CSS formatters, allowing them to reuse existing CSS [css] visual formatting model, enhanced with a few mathematics-oriented extensions, for rendering of the layout schemata of presentational MathML. Development of the CSS profile is assumed to be coordinated with ongoing work on CSS. As specified in this document a restricted part of MathML3 properly used should render well with currently implemented CSS up to CSS 2.1. Some descriptions are offered of what might be done better were a limited set of new properties to be added to CSS3 modules.

この概要書が必要になった背景について, 有用かもしれないので記述します. CSS2仕様書[css2]は, 最初のMathML仕様書[mathml1]と同じぐらいの時期に開発され改善されました. 現在, MathMLとCSS両方の新しいヴァージョンが作られています. ゆえに, この概要書は, ウェブに提供されるW3C勧告の調和を実現するために行われている努力の一部です.

It may be useful to note, in connection with the need for this profile, that the CSS2 specification [css2] was developed and refined at about the same time as the first MathML specification [mathml1]. Now new versions of both MathML and CSS are being created. This profile is thus part of the ongoing effort to realize the synergy that W3C Recommendations offer to the Web.

1.1 表現モデルにおける違い
Differences in formatting models

数学ワーキンググループが特定した, 完全に一貫したMathML/CSSの統合を遅らせる主な障害と考えられる問題点は次のとおりです.

The Math Working Group has identified the following issues, which are considered to be the main obstacles delaying fully consistent MathML/CSS integration.

  • 複数の行を持つ表のような, 文書途中の複雑な式の縦方向の位置添えを制御することが不十分.

    Insufficient control over vertical alignment of complex inline expressions such as inline tables with multiple rows.

  • 数学の区切り記号や引き伸ばされた演算子の大きさを変えるために利用できるグリフを引き伸ばして制御する仕組みやそれに相当する機能の欠如.

    Lack of a mechanism to control stretching of glyphs, or any equivalent functionality, that could be used for sizing of mathematical delimiters and stretchy operators.

  • セレクタの利用や内容の階層における制御の適用範囲が限られることから, 基本的構造の記述に対して,複雑な書式を適用することが困難.

    Limited scope in the use of selectors and generation of content, which makes it difficult to apply complex formatting to basic structural markup.

  • mover, munderover, mmultiscripts, mrootのようなプレゼンテーション要素の子要素の順番によって, それらが表示される位置が異なるため, これらのような要素の描画が困難.

    The order of children in presentational elements such as mover, munderover, mmultiscripts and mroot does not match their in-flow positions; this makes formatting of such elements more difficult.

  • 演算子, 区切り文字, アクセントの処理が, 詳細な記述ではなく(属性値ではなく要素の内容による)演算子の辞書により決定されることから, CSSセレクタを利用してそのような演算子を特定することが不可能.

    Handling of operators, delimiters and accents governed by an operator dictionary (that is by element content rather than attribute values) rather than by explicit markup makes matching of such operators using CSS selectors impossible.

  • mpadded, mspace, mstyleのようなプレゼンテーション要素の利用は, それらに相当する書式のCSSプロパティと矛盾.

    Usage of some presentational elements such as mpadded, mspace, mstyle might conflict with corresponding CSS formatting properties.

2 数学要素
Math Elements

2.1 ルート要素
Root element

MathMLは, 文書中のMathMLの記述部分を内包する単一の最上位のmathルート要素を規定しています. 全てのそれ以外のMathMLの要素は, MathMLの式の常に最も外側の要素となる, いくつでも子要素を含むことのできるmath要素に含まれる必要があります. math要素は, 囲まれたMathMLの要素をディスプレイに表示するか, 行の途中に表示するかを明示するdisplay属性を持ちます. 取り得る値は, "block"か"inline"(既定値)です. math要素は, MathMLの描画を実装していないソフトウェアに別の描画方法を提供するためのaltimg属性とalttext属性を持つことができます. altimg属性とalttext属性の値はそれぞれURIと文字データ(CDATA)です. 全てのMathML要素は, MathML名前空間http://www.w3.org/1998/Math/MathML[rec-xmlns]の中に置くべきです. これは, math要素に既定の名前空間宣言を加えるか, MathML名前空間に限定する名前空間接頭辞を利用することで実現できます.

MathML specifies a single top-level or root math element, which encapsulates each instance of MathML markup within a document. All other MathML markup must be contained in a math element, which must always be the outermost element of a MathML expression and can contain an arbitrary number of children. The math element carries the display attribute that specifies whether the enclosed MathML expression should be rendered in a display style or an in-line style. Allowed values are "block" and "inline" (default). It also accepts altimg and alttext attributes that provide fall-back for User Applications (UAs) that do not support MathML layout schemata. The values of altimg and alttext attributes are URI and CDATA respectively. All MathML elements should be in the MathML namespace http://www.w3.org/1998/Math/MathML [rec-xmlns]. This can be ensured by adding a default namespace declaration to math elements, or by using namespace prefixes bound to the MathML namespace.

2.2 素子要素と配置要素
Token elements and layout schemata

この概要書に含まれるMathML要素は, 2つの集合に分けられます. 素子要素は, 個々の記号, 名前, 数字, ラベル等を表します. 一般に, 素子要素は, 内容として文字のみのデータを持つことができます. 配置要素は, 部分部分から式を組み立てるもので, 内容として無視される空白を除いて, 要素を持つことだけができます. また, 特定の配置要素と連携して用いられる要素もあります.

MathML elements included in the current profile can be divided into two classes. Token elements represent individual symbols, names, numbers, labels, etc. In general, tokens can have only character data as content. Layout schemata build expressions out of parts, and can only have elements as content except for whitespace, which they ignore. There are also a few empty elements used only in conjunction with specific layout schemata.

数式の個々の"記号"は全て, MathML素子要素として表現されるべきです. 基本的なMathML素子要素の分類は, 識別子(例えば, 変数や関数名), 数字, 演算子(丸がっこのようなかっこやコンマのような区切り文字を含む)です. 数学的意味よりもより美しい表現を持つ文字や空白を表す素子要素や, 数値解析システムとの互換性のための"文字列"を表す素子要素もあります. 素子要素は, 単一の意味のある"記号"(名前, 数字, ラベル, 数学記号等)を表すにもかかわらず, そのような記号は, 1より多い数の文字から構成されることもあることに注意して下さい. 例えば, sin24は, それぞれ単一の素子要素<mi>sin</mi><mn>24</mn>で表されます.

All individual "symbols" in a mathematical expression should be represented by MathML token elements. The primary MathML token element types are identifiers (e.g. variables or function names), numbers, and operators (including fences, such as parentheses, and separators, such as commas). There are also token elements for representing text or whitespace that has more aesthetic than mathematical significance, and for representing "string literals" for compatibility with computer algebra systems. Note that although a token element represents a single meaningful "symbol" (name, number, label, mathematical symbol, etc.), such symbols may be comprised of more than one character. For example sin and 24 are represented by the single tokens <mi>sin</mi> and <mn>24</mn> respectively.

この概要書に含まれる素子要素は下の表に要約されます.

Token elements included in the current profile are summarized in the table below.

mi識別子
identifier
mn数字
number
mo演算子, かっこ, 区切り
operator, fence or separator
mtext文章
text
mspace空白
space
ms文字列
string literal

伝統的な数学の表記法では, 式は, 小さな式, 究極には単一の記号から構成されて描かれています. そして, "式の構成要素"と考えられる表現構成の小さな集合1つ1つを用いて, それをまとめたり, 位置を決めたりした部分部分から構成されます. MathMLにおいて, 式の構成要素として振る舞う配置要素を用いて同じ方法で式が構成されます. 配置要素は, 小さな式を大きな式に組み立てる方法を特定します. 配置要素という用語は, 個々の配置要素が, 伝統的な数学植字における大きな式を形作る, 小さい式を"配置する"個々の方法に対応することに由来しています.

In traditional mathematical notation, expressions are recursively constructed out of smaller expressions, and ultimately out of single symbols, with the parts grouped and positioned using one of a small set of notational structures, which can be thought of as "expression constructors". In MathML, expressions are constructed in the same way, with the layout schemata playing the role of the expression constructors. The layout schemata specify the way in which sub-expressions are built into larger expressions. The terminology derives from the fact that each layout schema corresponds to a different way of "laying out" its sub-expressions to form a larger expression in traditional mathematical typesetting.

この概要書に含まれる基本的な式の構成は下の表に示すとおりです.

Basic expression constructions included in the current profile are listed in the table below.

mrow水平に任意の数の式をまとめる.
groups any number of sub-expressions horizontally
mfrac2つの式から分数を構成する
forms a fraction from two sub-expressions
msqrt平方根(指数なしの根号)を構成する
forms a square root (radical without an index)
mroot特定の指数の根を構成する
forms a radical with specified index
merror処理前のエラーメッセージ構文を囲む
encloses a syntax error message from a preprocessor
mphantom内容を大きさを保ったまま見えなくする
makes content invisible but preserve its size
mfenced内容をかっこの組で囲む
surrounds content with a pair of fences
menclose内容を引き伸ばした記号で囲む
encloses content with a stretching symbol
msub下付きの式を基となる式に付け加える
attaches a subscript to a base
msup上付きの式を基となる式に付け加える
attaches a superscript to a base
msubsup下付きの式と上付きの式を基となる式に付け加える
attaches a subscript-superscript pair to a base
munder基となる式の下に式を付け加える
attaches an underscript to a base
mover基となる式の上に式を付け加える
attaches an overscript to a base
munderover基となる式の上下両方に式を付け加える
attaches an underscript-overscript pair to a base
mmultiscripts基となる式の左上と左下に式を付け加える
attaches prescripts to a base
mtable表や行列を示す
marks a table or matrix
mtr表や行列の行を示す
marks a row in a table or matrix
mtd表や行列の要素を示す
marks a one entry in a table or matrix
mstack足し算や引き算や掛け算の2次元で描かれる筆算のような初等数学の表記に用いる
used for elementary math notations such as 2D addition, subtraction and multiplication
mlongdiv割り算の筆算のような初等数学の表記に用いる
used for elementary math notations for long division
msline初等数学の配置における水平線を示す
marks horizontal line in elementary math layouts
msrow初等数学の配置における行を示す
marks row in elementary math layouts
maction式に動作を結び付ける
binds actions to a sub-expression

2.3 必要な引数
Required Arguments

配置要素の中には特定の数の引数を必要とするものもあり, 例えば, mfracは分子と分母を表す2つの子要素を持つことになっています. この概要書では, 必要とする子要素の数が決まっている要素は, 配置要素mrow, maction, merror, mphantomと素子要素mi, mn, mo, ms, mtextのみを子要素として持つことしかできません. この制限は, 配置要素それぞれ自身が式の集合部分を含む際に, DOMにおいての表現が1つであることを保証するためのものです. 例えば, 分子分母それ自身が分数である, 入れ子になった分数

Some layout schemata require a specific number of arguments, for example mfrac is supposed to have two child elements representing numerator and denominator. In the current profile, layout schemata with fixed number of required arguments accept only elements mrow, maction, merror, mphantom and tokens mi, mn, mo, ms, mtext as child elements. This restrictions is imposed to ensure that each part of layout schemata has its own containing block and is uniquely represented in the document object model. For example nested fractions where the numerator or denominator are themselves fractions

<mfrac>
	<mfrac>
		<mi>a</mi>
		<mi>b</mi>
	</mfrac>
	<mfrac>
		<mi>c</mi>
		<mi>d</mi>
	</mfrac>
</mfrac>

は, MathML 3.0で認められているにもかかわらず, CSSに対応するMathMLの概要書では認められていません. mrow要素で入れ子になった分数を囲むことで, 概要書のこの要件に対処することができます.

are not allowed in the MathML for CSS profile, although they are allowed in MathML 3.0. It is easy to meet the profile requirements by wrapping nested fractions in mrow elements:

<mfrac>
	<mrow>
		<mfrac>
			<mi>a</mi>
			<mi>b</mi>
		</mfrac>
	</mrow>
	<mrow>
		<mfrac>
			<mi>c</mi>
			<mi>d</mi>
		</mfrac>
	</mrow>
</mfrac>

特定の配置要素で必要になる引数の数は, 下の表のとおり決められています. この概要書において, mfencedmactionの内容は, MathML 3.0仕様書で認められていたものと比べて厳密になっていることに注意して下さい.

The number of arguments required by a particular layout schemata element is specified in the table below. Note that in the current profile, the content model of mfenced and maction is stricter compared to what is allowed by MathML 3.0 specification.

要素
Element
必要な引数の数
Required argument count
引数の役割
Argument roles
mfrac2分子 分母
numerator denominator
mroot2基となる式 指数
base index
mfenced1基となる式
base
msub2基となる式 下付きの式
base subscript
msup2基となる式 上付きの式
base superscript
msubsup3基となる式 下付きの式 上付きの式
base subscript superscript
munder2基となる式 下にくる式
base underscript
mover2基となる式 上にくる式
base overscript
munderover3基となる式 下にくる式 上にくる式
base underscript overscript
mmultiscripts4基となる式 mprescripts 左下にくる式 右下にくる式
base mprescripts presubscript presuperscript
mtable1+1つ以上のmtr要素
one or more mtr elements
mtr1+1つ以上のmtd要素
one or more mtd elements
mstack4+1つ以上のmn素子要素, それに続くmsrow要素, msline要素, 1つ以上のmn素子要素と必要に応じてそれに続くmsline要素から構成される集合
one or more mn tokens followed by msrow element, msline and groups consisting of one or more mn tokens followed by optional msline
mlongdiv3+割り算の商, それに続く除数, 1つ以上のmn素子要素と必要に応じて俺に続くmsline要素から構成される集合
result of the division followed by divisor and groups consisting of one or more mn tokens followed by optional msline
msrow2mo素子要素とそれに続くmn素子要素
mo token element followed by mn token
maction2基となる式 ツールティップボックスの内容
base tooltip

mrow, msqrt, merror, mphantom, menclose, mtd, math要素は任意の数の引数を受け入れ, また, 子要素としてこの概要書の全ての配置要素と素子要素を受け入れます.

The elements mrow, msqrt, merror, mphantom, menclose, mtd and math admit any number of arguments and accept any layout schemata or token elements from current profile as children.

2.4 共通の属性
Common attributes

id, class, style属性は, この概要書に含まれる全ての要素に用いることができます. idは, 要素に重複の無い識別子を付ける仕組みを提供します. classは, 要素に1つ以上の集合の名前を割り当てます. styleは, 要素の書式情報を明示します. mathvariant属性は, 空でない素子要素に認められており, CSSを処理できないソフトウェアにフォントの変更を検知させることを保証する互換性のためにこの概要書に含まれています.

The attributes id, class and style can be used on any element included in the current profile: id provides a mechanism for annotating elements with unique identifiers, class assigns one or more class names to an element and style specifies style information for the current element. The attribute mathvariant is allowed on nonempty token elements, attribute is included in the profile for interoperability reasons to ensure that font changes are transparent for CSS unaware UAs.

次の表は, 共通の属性を一覧にしており, それらの値や要素として利用可能なものを示しています.

The following table lists common attributes, their values and the elements on which they can be used.

名前
Name

values
既定値
default
有効な要素
valid on
idID全ての要素
all elements
classNMTOKENS全ての要素
all elements
styleCDATA全ての要素
all elements
mathvariantnormal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospacenormalmn, mo, ms, mtext
mathvariantnormal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospaceitalicmi

3 素子要素
Token Elements

プレゼンテーションマークアップの素子要素は, おおまかに言うと, 意味を伝える最小の表記を表すのものです. 素子要素は, おおよそ文章の中の言葉に類似したものです. しかし, 数学表記の正確性や抽象性のために, 素子要素の様々な種類や特性をMathMLの記述の中ではっきりと表します. 対照的に, 文章の中で個々の言葉は, まれに特別に表現されたり装飾されたりします.

Token elements in presentation markup are, broadly speaking, intended to represent the smallest units of mathematical notation which carry meaning. Tokens are roughly analogous to words in text. However, because of the precise, symbolic nature of mathematical notation, the various categories and properties of token elements figure prominently in MathML markup. By contrast, in textual data, individual words rarely need to be marked up or styled specially.

しばしば素子要素は, 数学記号を示す単一の文字で構成されます. その他に, 例えば, 関数名のように複数の文字を伴うこともあります. それ以上に, 伝統的な数学表記が印刷特性から区別される記号の広範囲に及ぶ利用を行ってきたために, 意味を伝える印刷上の特性を尊重した描画手法が実現されるよう注意をはらわなければなりません. そのために, 文字と素子要素と記号の印刷特性は, MathMLにおいて互いに綿密に関係します.

Frequently tokens consist of a single character denoting a mathematical symbol. Other cases, e.g., function names, involve multi-character tokens. Further, because traditional mathematical notation makes extensive use of symbols distinguished by their typographical properties, care must be taken to ensure that styling mechanisms respect typographical properties which carry meaning. Consequently, characters, tokens, and typographical properties of symbols are closely related to one another in MathML.

3.1 識別子 <mi>
Identifier <mi>

mi要素は, 数学の識別子を表します. その描画はmathvariant属性に応じた字体で表示される文字列の内容によって構成されます. 使用される字体によって似た文字が区別できることから, 字体はよく重要な意味を区別する機能を提供します.

An mi element represents a mathematical identifier; its rendering consists of the text content displayed in a typeface corresponding to the mathvariant attribute. Since the typeface used can distinguish similar identifiers, it often serves an important semantic function.

MathML 3.0では, mathvariantの既定値は, 要素の内容に依存し, 単一の文字の内容(例えば, <mi>x</mi>)に対しては"italic", それ以外(例えば, <mi>sin</mi>)に対しては"normal"です. このような振る舞いはCSSの機能とうまく合致しないため, この概要書では, 表示の内容によらず"italic"が既定値で, 斜体でない字体と決められている数学の識別子(例えば, 複数の文字から成る識別子)は, はっきりとmathvariant属性を明示する必要があります.

In MathML 3.0, the default value of mathvariant depends on the content of the element, it is "italic" for single character content (e.g., <mi>x</mi>) and "normal" otherwise (e.g., <mi>sin</mi>). Such behavior does not fit well in the scope of CSS, therefore in current profile "italic" is the default value regardless of the element content and mathematical identifiers for which a non-italic typeface is desired (e.g., multi-character identifiers), must explicitly specify the mathvariant attribute.

3.2 数字 <mn>
Number <mn>

mn要素は, "数字列"や数字列として表現されるべき他のデータを表します. 一般に言って, 数字列は数字の並びで, 場合によっては小数点を含み, 正の整数や実数を表します.

An mn element represents a "numeric literal" or other data that should be rendered as a numeric literal. Generally speaking, a numeric literal is a sequence of digits, perhaps including a decimal point, representing an unsigned integer or real number.

典型的な描画ソフトウェアは, mn要素を(moのような隣接する要素との間の空白以外の)周りの余計な空白を伴わずに, その内容の文字として表すでしょう.

A typical graphical renderer would render an mn element as the characters of its content, with no extra spacing around them (except spacing from neighboring elements such as mo).

3.3 演算子 <mo>
Operator <mo>

mo要素は, 演算子や演算子として表されるべきもの全てを表します. MathMLにおいて"演算子として表される"べきものの一覧は, 広く言って全てを含みます. 前や間や後ろに置く形の通常の演算子に加えて, 大かっこや小かっこのようなかっこ, コンマやセミコロンのような区切り文字を含みます. この概要書では, mo要素は, 縦に引き伸ばされる記号を提供すること期待されていません. その代わりに, mfenced要素が, 引き伸ばされた角がっこや大かっこや丸かっこ, 縦線のような縦に引き伸ばされた記号のために用いられるべきです.

An mo element represents an operator or anything that should be rendered as an operator. In MathML the list of things that should "render as an operator" is widely inclusive. Besides ordinary operators with infix, prefix, or postfix forms, fence characters such as braces, parentheses, and separators such as comma and semicolon are included. In the current profile the mo element is not expected to produce vertically stretchable delimiters; instead the mfenced element should be used for vertically stretchy delimiters such as stretchy brackets, braces, parentheses and vertical bars.

この概要書は, 演算子の辞書を頼りにしていないことにも注意して下さい. その代わり, 明示的にfence属性, separator属性, largeop属性を使用して, かっこ, 区切り, 大きい演算子を示すことが推奨されています. 加えて, form属性を用いて, 前や間や後ろに置く演算子を区別するかもしれません. この概要書において, この属性の既定値は, moが多くの子要素を持つ親要素の最初の子要素であれば"prefix", mo要素が複数の子要素を持つ親要素の最後の子要素であれば"postfix", それ以外の場合は"infix"です. 角がっこ, 大がっこ, 丸かっこ, 縦線のようなかっこを表すmo素子要素はfence属性を用いて, コンマやセミコロンのような区切りはseparator属性を用いて示されるべきです. 合計や積や積分記号のような大きな演算子はlargeop属性を用いて表されるべきかもしれません. また, ソフトウェアは, 演算子の周りの空白の大きさを推定するのにこれらの属性に頼るかもしれません.

Note also that this profile does not rely on an operator dictionary, but instead it is recommended to mark fences, separators and large operators explicitly using fence, separator and largeop attributes. In addition, prefix, infix and postfix operators may be distinguished using the form attribute. In the present profile, the default value of this attribute is "prefix" if the mo element is the first child of a parent element that has many children, and "postfix" if mo element is the last child of a parent with multiple children; the value is "infix" in all other cases. Those mo tokens that represent fences such as brackets, braces, parens and vertical bars should be marked using the fence attribute, separators such as comma and semicolon should be marked using the separator attribute, while large operators such as sums, products and integrals may be labeled using the largeop attribute. UAs may rely on these attribute to infer default spacing around operators.

この概要書において, 引き伸ばされた演算子は, stretchar属性によって特定されるmo要素の内容を置き換える引き伸ばされた文字によって決められます. この特定された文字は, 許容される領域(縦に引き伸ばされる記号の場合は行の高さ, 水平に引き伸ばされる記号の場合は許容される幅)を埋めるように引き伸ばされると想定されています. 引き伸ばされるべきとstretchar属性によって特定される文字を見分けられないソフトウェアは, 属性を無視して代わりにmo要素の内容を表示すべきです.

In the present profile stretchy operators are defined by the stretchar attribute's specifying a stretchy character to replaces the content of an mo element. The specified character is supposed to stretch to fill the available space (height of line box in case of vertically stretchy delimiters and the available width in case of horizontally stretchy delimiters). UAs that do not recognize a character specified by an stretchar attribute as stretchy should ignore the attribute and display the content of the mo element instead.

名前
Name

values
既定値
default
formprefix | infix | postfixmo要素の位置に依存します. 正確な規則は上を参照して下さい.
depends on position of mo element, see exact rules above
fencetrue | falsefalse
separatortrue | falsefalse
largeoptrue | falsefalse
stretchar文字
character
none

3.4 文章 <mtext>
Text <mtext>

mtext要素は, コメント文を示すことを意図しています.

An mtext element is intended to denote commentary text.

3.5 空白 <mspace>
Space <mspace>

mspace空要素は, 属性の設定によって任意の決められた大きさの空白を表します. また, この要素は, 改行の提案を表示ソフトウェアにすることができます.

An mspace empty element represents a blank space of any desired size, as set by its attributes. It can also be used to make linebreaking suggestions to a visual renderer.

名前
Name

values
既定値
default
widthverythinmathspace | thinmathspace | mediummathspace | thickmathspace | verythickmathspace0
linebreakauto | newline | goodbreakauto

width属性は, mspace要素によって作られるべき空白の幅を定義します. 既定値は0です. 空白の名前は, 下の表で述べているとおりです.

The width attribute defines the width of the space produced by an mspace element. The default value is zero. Named values are described in table below.

空白の名前
Named space
値(em)
value (em)
verythinmathspace1/9
thinmathspace1/6
mediummathspace2/9
thickmathspace5/12
verythickmathspace1/3

linebreak属性は, 表示ソフトウェアに改行するヒントを与えるために使われます. 属性の値は下の表で定義されているとおりです.

The linebreak attribute is used to give a linebreaking hint to a visual renderer. Attribute values are defined in table below.


Value
説明
Description
auto既定の改行はアルゴリズムによります(実装に依存します)
default linebreaking algorithm (implementation dependent)
newline新しい行を始めます
start a new line
goodbreak行の中で改行が必要になった場合にふさわしい場所です
if a linebreak is needed on the line, here is a good spot

width属性とlinebreak属性の両方が設定されている場合, linebreak 属性は無視されます.

In the case when both the width attribute and the linebreak attribute are set, the linebreak attribute is ignored.

3.6 文字列 <ms>
String Literal <ms>

ms要素は, 数値解析システムや他の"プログラミング言語"を含むシステムによって解釈されること意図する, 式の中の"文字列"を表すために用いられます. 通常, 文字列は二重引用符で囲まれて表示されます.

The ms element is used to represent "string literals" in expressions meant to be interpreted by computer algebra systems or other systems containing "programming languages". By default, string literals are displayed surrounded by double quotes.

表示ソフトウェアにおいて, ms要素の内容は, 典型的に, 文字の周りに加えられた余分な空白を無視し, 文字の最初と最後に引用符を付けて表示します. 通常, 左と右の引用符は両方とも標準的な二重引用符"です. しかしながら, これらの文字は下のように定義されるlquote属性やrquote属性によって変えることができます.

In visual renderers, the content of an ms element is typically rendered with no extra spacing added around the string, and quote characters at the beginning and the end of the string. By default, the left and right quote characters are both the standard double quote character ". However, these characters can be changed with the lquote and rquote attributes defined below.

名前
Name

values
既定値
default
lquote文字
string
"
rquote文字
string
"

4 一般的な配置要素
General Layout Schemata

素子要素のほかにも, 様々な種類のMathMLプレゼンテーション要素があります. 要素の種類の1つは, 上付き文字や下付き文字のような"添字"表記を取り扱います. 他の種類は行列や表に関係します. この節で述べられている他の要素は, 分数や根号のような他の基本的な表を示すものや動きを結びつけたりエラーを処理する一般的な機能を取り扱います.

Besides tokens there are several families of MathML presentation elements. One family of elements deals with various "scripting" notations, such as subscript and superscript. Another family is concerned with matrices and tables. The remainder of the elements, discussed in this section, describe other basic notations such as fractions and radicals, or deal with general functions such as action binding and error handling.

4.1 水平に式をまとめる <mrow>
Horizontally Group Sub-Expressions <mrow>

mrow要素は, 通常, "演算子"として働く1つ以上のmo要素と"被演算子"となる式から構成される任意の数の式を一緒にまとめるのに用いられます.

An mrow element is used to group together any number of sub-expressions, usually consisting of one or more mo elements acting as "operators" on one or more other expressions that are their "operands".

4.2 分数 <mfrac>
Fractions <mfrac>

mfrac要素は, 分数に用いられます. また, 分子分母からなる式やルジャンドル記号のような分数に似た表現を記述するのにも用いられます. mfracの構文は次のとおりです.

The mfrac element is used for fractions. It can also be used to mark up the presentation of fraction-like objects such as binomial coefficients and Legendre symbols. The syntax for mfrac is:

<mfrac> numerator denominator </mfrac>

共通の属性に加えて, mfracは分子分母の水平方向の位置添えや分数の線の太さを制御するために利用される追加の属性を持ちます.

In addition to common attributes, mfrac has additional attributes that could be used to control horizontal alignment of numerator and denominator and thickness of fraction bar.

名前
Name

values
既定値
default
linethickness0 | 1 | 2 | medium | thick1
numalignleft | center | rightcenter
denomalignleft | center | rightcenter

linethickness属性は, 分数を描画するのに典型的に用いられる, 水平の"分数の線"や"罫線"の太さを表します. 値"0"は線が描画されないことを示し, 値"1"("medium"と同じ)は分数の線の既定の幅を示し, "2"("thick")は太い分数の線を示します.

The linethickness attribute indicates the thickness of the horizontal "fraction bar", or "rule", typically used to render fractions. Value "0" indicates that no bar should be rendered, value "1" (the same as "medium") refers to default width of fraction bar and "2" ("thick") produces bold fraction bar.

numalign属性とdenomalign属性は, 分子分母それぞれの水平方向の位置添えを制御します. 典型的に分子と分母は中央添えされます.

The numalign and denomalign attributes control the horizontal alignment of the numerator and denominator, respectively. Typically, numerators and denominators are centered.

4.3 根号 <msqrt>, <mroot>
Radicals <msqrt>, <mroot>

これらの要素は根号を構成します. msqrt要素は平方根に用いられ, mroot要素は, 例えば立方根のような, 指数の付いた根号を描くのに用いられます. これらの要素の構文は次のとおりです.

These elements construct radicals. The msqrt element is used for square roots, while the mroot element is used to draw radicals with indices, e.g., a cube root. The syntax for these elements is:

<msqrt> base </msqrt>
<mroot> base index </mroot>

mroot要素はちょうど2つの引数を必要とします. ただし, msqrtは任意の数の引数を受け付けます.

The mroot element requires exactly 2 arguments. However, msqrt accepts any number of arguments.

4.4 エラーメッセージ <merror>
Error Message <merror>

merror要素は, その内容を"エラーメッセージ"として描画します. 内容は, 任意の式や式の集合とすることができます.

The merror element displays its contents as an "error message". The contents can be any expression or expression sequence.

4.5 見えない式を作る <mphantom>
Making Sub-Expressions Invisible <mphantom>

mphantom要素は, その内容を見えないように, ただし, それらが普通に描画されたときに占めるであろう, 位置を含めて高さや幅等の寸法を保ったまま描画します. mphantomは, 見えないように式を複製することで, 式の位置添えに利用できます.

The mphantom element renders its content as invisible, but with the same size and other dimensions, including baseline position, that its contents would have if they were rendered normally; mphantom can be used to align parts of an expression by invisibly duplicating sub-expressions.

4.6 かっこの組で囲まれた式 <mfenced>
Expression Inside Pair of Fences <mfenced>

mfenced要素は, かっこ(例えば, 大かっこ, 角がっこ, 丸かっこ)に関係した構成を表現するのに便利な方法を提供します. かっこの大きさは, かっこで囲まれた式の大きさに依存します. 開始と終了のかっこは, 下に定義されているopen属性とclose属性を用いて明示します. この概要書は, mfenced要素が複数の子を持つことを認めていません. 複数の子要素を持つためには, それらをmrow要素でまとめることが推奨されています.

The mfenced element provides a convenient way of expressing common constructs involving fences (i.e., braces, brackets, and parentheses). The size of the fences depends on the size of the expression enclosed by the fence element. Opening and closing fences are specified using the open and close attributes defined below. This profile does not allow an mfenced element to have multiple children; authors are encouraged to group multiple children into one mrow element if this can be done.

名前
Name

values
既定値
default
openCDATA(
closeCDATA)

4.7 囲まれた式 <menclose>
Enclose Expression Inside Notation <menclose>

menclose要素は, その内容をnotation属性で特定される表現で囲んで表現します. mencloseは任意の数の引数を受け付けます.

The menclose element renders its content inside the enclosing notation specified by its notation attribute, menclose accepts any number of arguments.

notation属性で認められている値には制限がありません. 描画ソフトウェアは, 最終的に下の一覧の値を認識しますが, 処理できない値を無視するように対応するかもしれません.

The values allowed for notation are open-ended. Conforming renderers may ignore any value they do not handle, although renderers are supposed to recognize at least the values listed below.

名前
Name

values
notationbox | left | right | top | bottom | horizontalstrike

値"box"は, 枠で要素の内容を囲むのに用いられます. 値"left", "right", "top", "bottom"は内容の関係する側面に線を引き, "horizontalstrike"はmencloseの内容の上に重ねて取消線を引きます.

The value "box" can be used to enclose content of the element in a frame. The values "left", "right", "top" and "bottom" should result in lines drawn on the corresponding sides of the contents, "horizontalstrike" should result in strikeout lines being superimposed over the content of the menclose.

5 添字等の配置要素
Script and Limit Schemata

この節で述べている要素は, 基となる式の周りに1つ以上の添字を配置します. 下付きの式要素や上付きの式要素に加えて, MathMLには基の式の上や下に添字を配置する上側の式要素や下側の式要素があります.

The elements described in this section position one or more scripts around a base. In addition to subscript and superscript elements, MathML has overscript and underscript elements that place scripts above and below the base.

プレゼンテーション要素は, 式の抽象的な表現構造を述べるために用いられるべきであることから, 全ての"添字"要素における基となる式(つまり, 最初の引数の式)は, 添字が付く, ただ共通に右端にくる文字ではなく, 完全な式であるべきことが重要です.

Because presentation elements should be used to describe the abstract notational structure of expressions, it is important that the base expression in all "scripting" elements (i.e., the first argument expression) should be the entire expression that is being scripted, not just, as has been common, the rightmost character.

5.1 下付きの式 <msub>
Subscript <msub>

msub要素の構文は次のとおりです.

The syntax for the msub element is:

 <msub> 基となる式 下付きの式 </msub>
 <msub> base subscript </msub>

この要素は基となる式に下付きの式を付け加えるために用いられます.

The element is used to attach a subscript to a base.

5.2 上付きの式 <msup>
Superscript <msup>

msup要素の構文は次のとおりです.

The syntax for the msup element is:

<msup> 基となる式 上付きの式 </msup>
<msup> base superscript </msup>

この要素は基となる式に上付きの式を付け加えるために用いられます.

The element is used to attach a superscript to a base.

5.3 下付きの式と上付きの式の組 <msubsup>
Subscript-superscript Pair <msubsup>

msubsup要素は, 基となる式に下付きの式と上付きの式両方を付け加えるために用いられます.

The msubsup element is used to attach both a subscript and a superscript to a base expression.

msubsup要素の構文は次のとおりです.

The syntax for the msubsup element is:

<msubsup> 基となる式 下付きの式 上付きの式 </msubsup>
<msubsup> base subscript superscript </msubsup>

5.4 下側の式 <munder>
Underscript <munder>

munder要素の構文は次のとおりです.

The syntax for the munder element is:

<munder> 基となる式 下にくる式 </munder>
<munder> base underscript </munder>

この要素は, 基となる式の下側に式を付け加えるために用いられます.

The element is used to attach an underscript below a base.

5.5 上側の式 <mover>
Overscript <mover>

mover要素の構文は次のとおりです.

The syntax for the mover element is:

<mover> 基となる式 上にくる式 </mover>
<mover> base overscript </mover>

この要素は, 基となる式の上側に式を付け加えます.

The element is used to attach an overscript over a base.

5.6 下側の式と上側の式の組 <munderover>
Underscript-overscript Pair <munderover>

munderover要素の構文は次のとおりです.

The syntax for the munderover element is:

 <munderover> 基となる式 下にくる式 上にくる式</munderover>
 <munderover> base underscript overscript</munderover>

この要素は, 基となる式の下側と上側両方に式を付け加えるために用いられます.

The element is used to attach both an underscript and an overscript to a base.

5.7 左側の添字 <mmultiscripts>
Prescripts <mmultiscripts>

この概要書において, mmultiscripts要素の構文は次のとおりです.

In the current profile the syntax for the mmultiscripts element is:

<mmultiscripts> 基となる式 <mprescripts/> 左下にくる式 左上にくる式</mmultiscripts>
<mmultiscripts> base <mprescripts/> presubscript presuperscript</mmultiscripts>

この要素は, 1つの基となる式に左側の添字の組を加えることを可能にしています. 省略された添字は空要素noneで表現することができます.

This element allows adding pairs of prescripts to one base expression. Missing scripts can be represented by the empty element none.

引数は, 基となる式, それに続く空要素mprescriptsと縦に並ぶ左下の式と左上の式で構成されます.

The argument sequence consists of the base followed by an empty element mprescripts and a pair of, vertically aligned, a presubscript and a presuperscript.

6 表と行列
Tables and Matrices

行列や配列やその他の表のような数学表現は, mtable要素やmtr要素やmtd要素を用いて表現します. これらの要素は, XHTMLのtable要素やtr要素やtd要素と同じようなものです.

Matrices, arrays and other table-like mathematical notation are marked up using mtable, mtr, and mtd elements. These elements are similar to the table, tr and td elements of XHTML.

6.1 表または行列 <mtable>
Table or Matrix <mtable>

表または行列はmtable要素を用いて表現します.

A matrix or table is specified using the mtable element.

次に示す属性は, 位置添えを明示したり, 枠や罫線を表に加えたりするのに使われるでしょう.

The following attributes may be used to specify alignment and to add frames and rules to the table.

名前
Name

values
既定値
default
rowaligntop | bottom | center | baselinebaseline
columnalignleft | center | rightcenter
rowlinesnone | solid | dashednone
columnlinesnone | solid | dashednone
framenone | solid | dashednone

rowlinescolumnlinesframeそれぞれの既定値は, 既定値がないという意味でなく, 既定では線を引かないことを意味する文字列noneです.

Note that the default value for each of rowlines, columnlines and frame is the literal string none, meaning that the default is to render no lines, rather than that there is no default.

rowalign属性は, それぞれの行の要素がどのように位置添えされるべきかを明示します. 例えば, "top"はそれぞれの行の要素の上端をその行の他の要素の上端に合わせることを意味します. columnalign属性は, それぞれの行の要素がどのように位置添えされるべきかを明示します.

The rowalign attribute specifies how the entries in each row should be aligned. For example, "top" means that the tops of each entry in each row should be aligned with the tops of the other entries in that row. The columnalign attribute specifies how the entries in each column should be aligned.

6.2 表や行列の行 <mtr>
Row in a Table or Matrix <mtr>

mtr要素は, 表や行列の1つの行を表します. mtr要素は, 唯一mtable要素の直接の子要素として認められており, その内容は表の1つの行を形作ります. mtrの引数はそれぞれ表の左端から始まる別々の列を表します.

An mtr element represents one row in a table or matrix. An mtr element is only allowed as a direct sub-expression of an mtable element, and specifies that its contents should form one row of the table. Each argument of mtr is placed in a different column of the table, starting at the leftmost column.

次の属性は, 位置添えを特定するために用いられます.

The following attributes may be used to specify alignment

名前
Name

values
既定値
default
rowaligntop | bottom | center | baseline継承する(訳注:親要素と同じになる)
inherited
columnalignleft | center | right継承する
inherited

rowalign属性とcolumnalign属性は, 特定の行について, 外側のmtable要素の同じ属性によって明示される位置添えを上書きできます.

The rowalign and columnalign attributes allow a specific row to override the alignment specified by the same attributes in the surrounding mtable element.

6.3 表や行列の要素 <mtd>
Entry in a Table or Matrix <mtd>

mtd要素は, 表や行列の1つの要素またはセル(訳注:表の1つのマスを表す)を表します. mtd要素は, 唯一mtrの直接の子要素として認められています.

An mtd element represents one entry, or cell, in a table or matrix. An mtd element is only allowed as a direct sub-expression of an mtr.

次の属性は, 位置添えを特定するために用いられるでしょう.

The following attributes may be used to specify alignment

名前
Name

values
既定値
default
rowaligntop | bottom | center | baseline継承する
inherited
columnalignleft | center | right継承する
inherited

rowalign属性とcolumnalign属性は, 特定の行列の要素について, 外側のmtable要素やmtr要素で明示されている位置添えと上書きできます.

The rowalign and columnalign attributes allow a specific matrix element to override the alignment specified by a surrounding mtable or mtr element.

7 初等数学
Elementary Math

7.1 足し算や引き算や掛け算の筆算 <mstack>
2D addition, subtraction and multiplication <mstack>

足し算や引き算や掛け算の筆算のような初等数学の表記における表に似た構造は, mstack配置要素を用いて表すことができます. mstackの縦の位置添えは, align属性によって明示します. この概要書において, mstackにおける数字の水平の位置添えは既定では単にrightのみです. これは, 現在のCSSの実装では, mstack配置要素に対して, より洗練された位置添えの仕組みを処理することが見込めないためです.

Table like structures in elementary math notations such as 2D addition, subtraction and multiplication can be produced using mstack layout schemata. Vertical alignment of mstack is specified by align attribute. In current profile horizontal alignment of numbers within mstack simply defaults to right, as current CSS implementations are unlikely to handle more sophisticated alignment mechanisms for mstack layout schemata.

名前
Name

values
既定値
default
aligntop | bottom | center | baselinebaseline
stackalignright属性が必要です
attribute is required

この要素は, 1つ以上のmn素子要素とそれに続くmsrow要素と, msline, そして1つ以上のmn素子要素と必要に応じてそれに続くmslineの集合から構成されます.

Element contains one or more mn tokens followed by msrow element, msline and groups consisting of one or more mn tokens followed by optional msline.

mstack要素の構文は次のとおりです.

The syntax for the mstack element is:

<mstack stackalign="right"> (1つ以上のmn素子要素) (msrow要素) <msline/> (1つ以上のmn素子要素と必要に応じてそれに続くmslineの集合)+ </mstack>

<mstack stackalign="right"> (one or more mn tokens) (msrow element) <msline/> (one or more mn tokens followed by optional msline)+ </mstack>

7.2 水平の行 <msrow>
Horizontal rows <mrow>

この概要書において, msrow要素は, 足し算や引き算や掛け算の筆算のような初等数学の表記において, 演算子を最後の被演算子の前に付け加えるのに用いられます.

In the present profile msrow element is used to add operator before last operand in elementary math notations such as 2D addition, subtraction and multiplication.

この要素は, mo素子要素とそれに続くmn素子要素から構成されます.

Element contains mo token followed by mn token

msrow要素の構文は次のとおりです.

The syntax for the msrow element is:

<msrow><mo>演算子</mo><mn>被演算子</mn></msrow>

<msrow><mo>operator</mo><mn>operand</mn></msrow>

7.3 割り算の筆算 <mlongdiv>
Long division <mlongdiv>

割り算の筆算に対する初等数学の表記は, mlongdiv配置要素を用いて提供されます. mlongdivの縦の位置添えはalign属性によって明示されます. この概要書において, mlongdivにおける数字の水平の位置添えは, 既定では単にleftのみです. これは, 現在のCSSの実装では, mlongdiv要素に対して, より洗練された位置添えの仕組みを処理することが見込めないためです.

Elementary math notations for long division can be produced using mlongdiv layout schemata. Vertical alignment of mlongdiv is specified by align attribute. In current profile horizontal alignment of numbers within mlongdiv simply defaults to left, as current CSS implementations are unlikely to handle more sophisticated alignment mechanisms for mlongdiv layout schemata.

名前
Name

values
既定値
default
aligntop | bottom | center | baselinebaseline
stackalignleft属性が必要です
attribute is required

この要素は, 割り算の商を表すmn素子要素とそれに続く除数を表すmn素子要素, そして1つ以上のmn素子要素と必要に応じてそれに続くmsline要素の集合から構成されます.

Element contains mn token representing result of the division followed by mn token representing divisor and groups consisting of one or more mn tokens followed by optional msline element.

mlongdiv要素の構文は次のとおりです.

The syntax for the mlongdiv element is:

<mlongdiv stackalign="left"> (割り算の商) (除数) (1つ以上のmn素子要素と必要に応じてそれに続くmslineの集合)+ </mlongdiv>

<mlongdiv stackalign="left"> (result of the division) (divisor) (one or more mn tokens followed by optional msline)+ </mlongdiv>

8 注釈
Annotations

8.1 式と動作を結び付ける <maction>
Bind Action to a Sub-Expression <maction>

式に動作を結び付ける仕組みを提供するために, MathMLはmaction要素を提供します. 動作の種類はactiontype属性によって明示されます. この概要書は, "tooltip"のみ種類を定義しています.

To provide a mechanism for binding actions to expressions, MathML provides the maction element. The action type is specified by the actiontype attribute. Current profile defines only "tooltip" actiontype.

名前
Name

values
既定値
default
actiontypetooltip(必要な属性, 既定値なし)
(required attribute, no default value)

<maction actiontype="tooltip"> 基となる式 ツールティップボックスの内容 </maction>

<maction actiontype="tooltip"> base tooltip </maction>

マウスカーソルが式の上に重なったとき, この種類の動作を処理するソフトウェアは, 2番目の子要素の内容を"ツールティップ"ボックスに表示すべきです.

When a mouse cursor is placed over an expression UAs that support this action type should display the content of the second child in a "tooltip" box.

8.2 意味情報を対応させる <semantics>
Add semantic mapping <semantics>

この概要書は, 配置要素を数式の視覚的構造を表すものとして処理します. 式の内容について述べたり, 数式の代替の表記方法を提供する等の追加の意味情報を付け加えるために, コンテントMathMLのsemantics要素を用いることができます. この概要書において, semantics要素の内容は, annotation要素やannotation-xml要素に続くプレゼンテーションMathMLに限られます.

The current profile deals with layout schemata that reflect the visual structure of mathematical formulae. To attach extra semantic information that describes the content of formulae or provide an alternative encoding of a mathematical expression one can use the Content MathML semantics element. In current profile content model of semantics element is limited to presentational MathML followed by annotation and/or annotation-xml elements.

9 拡張と一致
Extensibility and Conformance

9.1 拡張
Extensibility

この概要書がXML/CSS環境の利用に合致するように設計されるまで, 概要書を拡張することは, DTDに新しい要素や属性[rec-xml]を加えることやスタイルシートで既定の書式を明示することで比較的簡単でした. しかしながら, 新しい要素はそれ自身の名前空間に位置すべきで, 存在するMathML要素に加えられた新しい属性は名前空間の接頭辞を持つべきです. 著作者や実装者は可能な限り標準的な記述を用いることが強く推奨されます. 同じように, MathMLの式の仕組みを用いる文書の更新者は, 関係のある標準化活動を観察し, 可能な限りより標準化された記述を用いるよう文書を更新することが推奨されます.

Since the current profile is designed to be suitable for use in an XML/CSS environment, it is relatively easy to extend it by adding new elements or attributes [rec-xml] to a DTD and specifying the default formatting in a style sheet. However any new elements should be placed in their own namespace and any new attributes added to existing MathML elements should have a namespace prefix; authors and implementers are strongly encouraged to use standard markup whenever possible. Similarly, maintainers of documents employing MathML extension mechanisms are encouraged to monitor relevant standards activity and to update documents to use more standardized markup as it becomes available.

9.2 一致
Conformance

CSSに対応するMathMLの概要書に従う文書はMathML 3.0文書と一致すべきで, また, この概要書に含まれるMathML要素と属性のみを用いるべきです. 決まった数の引数を持つ配置要素の内容は, 必要とされる引数の一覧やこの概要書のDTDで明示される内容構造と一致すべきです.

Documents that conform to this MathML for CSS profile should be conformant MathML 3.0 documents and should use only those MathML elements and attributes included in the current profile. The content of layout schemata with a fixed number of arguments should match the content model specified in the list of required arguments and the profile's DTD.

CSSに対応するMathMLの概要書に従うソフトウェアは, この概要書に含まれる全てのMathML要素と属性に対応すべきです. これらのソフトウェアは, 認識できない要素に出くわしたとき, その要素を無視するかもしれませんが, その内容は処理すべきです. 標準的なDOMに対応するソフトウェアは, 一般的なDOMインターフェイスを介してそのような要素を処理することが推奨されています. スタイルシートに対応したソフトウェアは, そのような要素にスタイルシートで明示されている書式を適用することが推奨されています.

UAs that conform to the MathML for CSS profile should support all MathML elements and attributes included in profile. When a conformant UA encounters an element that it does not recognize it may ignore that element, but should process its content. UAs that support the standard DOM are encouraged to expose such elements through generic DOM Element interface. UAs that support style sheets are encouraged to apply formatting specified in style sheets to such elements.

10 MathMLプレゼンテーションマークアップと概要書の違い
Differences between MathML presentational markup and present profile

CSSに対応するMathMLの概要書は, 数々の点でMathMLプレゼンテーションマークアップと異なります. この節は主な違いを整理することを意図しています.

The MathML for CSS profile differs from full MathML presentational markup in a number of ways. The present section is intended to highlight the main differences.

11 文書型定義
Document Type Definition

<!ENTITY % common "class NMTOKENS #IMPLIED id ID #IMPLIED style CDATA #IMPLIED">
<!ENTITY % math "(maction | menclose | merror | mfenced | mfrac | mi | mlongdiv | mmultiscripts | mn | mo | 
		mover | mphantom | mroot | mrow | ms | mspace | msqrt | mstack | msub | msubsup | msup |
		mtable | mtext | munder | munderover | semantics)+">
<!ENTITY % mrow "(mi | mn | mo | mphantom | maction | merror | mrow | ms | mtext)">
<!ATTLIST maction actiontype (tooltip) #REQUIRED %common;>
<!ELEMENT maction (%mrow;,%mrow;)>
<!ATTLIST math display (block | inline) #IMPLIED xmlns CDATA #REQUIRED
		alttext CDATA #IMPLIED altimage CDATA #IMPLIED %common;>
<!ELEMENT math %math;>
<!ATTLIST menclose notation (bottom | box | left | right | top | horizontalstrike) #REQUIRED %common;>
<!ELEMENT menclose %math;>
<!ATTLIST merror %common;>
<!ELEMENT merror %math;>
<!ATTLIST mfenced open CDATA #IMPLIED close CDATA #IMPLIED %common;>
<!ELEMENT mfenced %mrow;>
<!ATTLIST mfrac linethickness (0 | 1 | 2 | medium | thick) #IMPLIED 
		numalign (center | left | right) #IMPLIED denalign (center | left | right) #IMPLIED %common;>
<!ELEMENT mfrac (%mrow;,%mrow;)>
<!ATTLIST mi mathvariant (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | 
		sans-serif-italic | sans-serif-bold-italic | monospace) #IMPLIED %common;>
<!ELEMENT mi (#PCDATA)>
<!ATTLIST mmultiscripts %common;>
<!ELEMENT mmultiscripts (%mrow;,mprescripts,((none,%mrow;)|(%mrow;,(none|%mrow;))))>
<!ATTLIST mn mathvariant (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | 
		sans-serif-italic | sans-serif-bold-italic | monospace) #IMPLIED %common;>
<!ELEMENT mn (#PCDATA)>
<!ATTLIST mo largeop (true | false) #IMPLIED separator (true | false) #IMPLIED fence (true | false) #IMPLIED
		form (prefix | infix | postfix) #IMPLIED stretchar CDATA #IMPLIED
		mathvariant (normal | bold | italic | bold-italic | sans-serif | 
		bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace) #IMPLIED %common;>
<!ELEMENT mo (#PCDATA)>
<!ATTLIST mover %common;>
<!ELEMENT mover (%mrow;,%mrow;)>
<!ATTLIST mphantom %common;>
<!ELEMENT mphantom %math;>
<!ATTLIST mprescripts %common;>
<!ELEMENT mprescripts EMPTY>
<!ATTLIST mroot %common;>
<!ELEMENT mroot (%mrow;,%mrow;)>
<!ATTLIST mrow %common;>
<!ELEMENT mrow %math;>
<!ELEMENT ms (#PCDATA)>
<!ATTLIST ms lquote CDATA #IMPLIED rquote CDATA #IMPLIED %common;>
<!ATTLIST msqrt %common;>
<!ELEMENT msqrt %math;>
<!ATTLIST msub %common;>
<!ELEMENT msub (%mrow;,%mrow;)>
<!ATTLIST msubsup %common;>
<!ELEMENT msubsup (%mrow;,%mrow;,%mrow;)>
<!ATTLIST msup %common;>
<!ELEMENT msup (%mrow;,%mrow;)>
<!ATTLIST mtable 
	rowalign (top | bottom | center | baseline) #IMPLIED
	columnalign (left | center | right) #IMPLIED
	rowlines (none | solid | dashed) #IMPLIED
	columnlines (none | solid | dashed) #IMPLIED
	frame (none | solid | dashed) #IMPLIED %common;>
<!ELEMENT mtable (mtr+)>
<!ATTLIST mtd 
	rowalign (top | bottom | center | baseline) #IMPLIED
	columnalign (left | center | right) #IMPLIED %common;>
<!ELEMENT mtd %math;>
<!ATTLIST mtext mathvariant (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | 
		sans-serif-italic | sans-serif-bold-italic | monospace) #IMPLIED %common;>
<!ELEMENT mtext (#PCDATA)>
<!ATTLIST mtr 
	rowalign (top | bottom | center | baseline) #IMPLIED 
	columnalign (left | center | right) #IMPLIED %common;>
<!ELEMENT mtr (mtd+)>
<!ATTLIST munder %common;>
<!ELEMENT munder (%mrow;,%mrow;)>
<!ATTLIST munderover %common;>
<!ELEMENT munderover (%mrow;,%mrow;,%mrow;)>
<!ATTLIST mspace width (verythinmathspace | thinmathspace | mediummathspace | thickmathspace | verythickmathspace) #IMPLIED 
		linebreak (auto | newline | goodbreak) #IMPLIED %common;>
<!ELEMENT mstack (mn+, msrow, msline, (mn+, msline?)+)>
<!ATTLIST mstack align (top | bottom | center | baseline) #IMPLIED stackalign (right) #REQUIRED %common;>
<!ELEMENT mlongdiv (mn, mn, (mn+, msline?)+)>
<!ATTLIST mlongdiv align (top | bottom | center | baseline) #IMPLIED stackalign (left) #REQUIRED %common;>
<!ATTLIST msrow %common;>
<!ELEMENT msrow (mo, mn)>
<!ELEMENT msline EMPTY>
<!ELEMENT mspace EMPTY>
<!ATTLIST none %common;>
<!ELEMENT none EMPTY>
<!ELEMENT semantics (%math;,(annotation|annotation-xml)*)>
<!ATTLIST annotation definitionURL CDATA #IMPLIED encoding CDATA #REQUIRED>
<!ELEMENT annotation (#PCDATA)>
<!ATTLIST annotation-xml definitionURL CDATA #IMPLIED encoding CDATA #REQUIRED>
<!ELEMENT annotation-xml ANY>


12 既定のCSSスタイルシート
Default CSS style sheet

(この節は基準となるものではありません.)

(this section is non normative)

この概要書は, 既定のスタイルシートをCSSに対応したソフトウェアでMathMLを表現するのに利用できるものと認めています. 長期にわたる将来の展望としては, 特定の数学の特性に対応するようCSS3を拡張することが適切でしょうが, それまでの間, この概要書で定義されているMathMLを表現するための次の囲まれたスタイルシートを利用することができます.

This profile admits a default CSS style sheet that could be used to render MathML in CSS aware UAs. In the long term perspective it would be appropriate to extend CSS3 with a few math specific properties, until then one can use style sheet enclosed below for formatting of MathML defined in the current profile.

@namespace "http://www.w3.org/1998/Math/MathML";
math
	{line-height:1.3em;
	text-indent:0;}
math[display="block"]
	{display:block;
	text-align:center;
	page-break-inside:avoid;}
mfrac
	{display:inline-table;
	white-space:nowrap;
	border-collapse:collapse;
	text-align:center;
	vertical-align:0.9em;
	margin:0 2px;
	font-size:1em;}
mfrac > *
	{line-height:1.3em;
	font-size:0.9em;}
mfrac > *:first-child
	{display:inline-table;
	vertical-align:text-bottom;}
mfrac > * + *
	{border-top:solid thin;
	display:table-row;}
mfrac[linethickness="0"] > * + *
	{border-top:none;}
mfrac[linethickness="2"] > * + *, mfrac[linethickness="thick"] > * + *
	{border-top:solid medium;}
mfrac[numalign="left"] > *:first-child, mfrac[denalign="left"] > * + *
	{text-align:left;}
mfrac[numalign="right"] > *:first-child, mfrac[denalign="right"] > * + *
	{text-align:right;}
msub, msup, msubsup, mmultiscripts
	{display:inline-table;
	line-height:0.4em;}
msubsup, msup, mmultiscripts
	{margin-top:0.4ex;
	table-baseline:2;}
msubsup, msub, mmultiscripts
	{margin-bottom:0.4ex;}
msubsup, msup
	{direction:rtl;}
msub > *
	{display:table-row;}
none
	{content:"\A0";}
msubsup > *, msup > *
	{display:table-row;
	direction:ltr;
	text-align:left;}
mmultiscripts > *
	{display:none;}
mmultiscripts > *:first-child, mmultiscripts > mprescripts + *
	{display:table-row;}
mmultiscripts > mprescripts + * + *
	{display:table-header-group;}
msub > *:first-child:after, msub > * + *:before, 
msubsup > *:first-child:before, msup > *:first-child:before,
mmultiscripts > *:first-child:before
	{display:table-cell;
	content:"\A0";}
msubsup > * + * + *, msup > * + *
	{display:table-header-group;}
msub > * + *, msup > * + *, msubsup > * + *, munder > * + *, mover > * + *, munderover > * + *,
mmultiscripts > * + *
	{font-size:0.7em;}
munder, munderover, mover
	{display:inline-table;
	margin:1px;
	text-align:center;}
munder > *, munderover > *, mover > *
	{display:table-row;}
mover > * + *, munderover > * + * + *
	{display:table-header-group;}
mover, munderover
	{table-baseline:2;}
msqrt
	{display:inline-block;
	margin:1px 0 1px 22px;
	border-top:solid 1px;
	border-left:groove 2px;
	padding:2px 5px 0 0;}
msqrt:before
	{display:inline-block;
	vertical-align:bottom;
	content:'';
	width:22px;
	height:14px;
	background-repeat:no-repeat;
	margin:0 3px 0 -22px;}
msqrt:before, mroot > * + *:after
	{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAOCAYAAAArMezNAAAArklEQVR42mNgIAzkgJiRgYpAGIgnAfFvIF4JxKyUGsgOxKVA/ASI5wCxHRBvA+K9QMxHrqGRQLweiDOBmBdJnAWI5wPxeSAWJ8VAPSBOAWJTAuo6gPguEKsQY6gQEPOQ4Ih8IH4JxCYMNABhQPwOiN1pYbgzEL8C4hhaGG4AxM+BuJgWhisB8W0g7qOF4SJAfBqIl1EjI6EDbiDeAcQ7SUxlRAGQa5cA8RkGGoFeACG1GGdqegJfAAAAAElFTkSuQmCC");}
mroot
	{display:inline-table;
	direction:rtl;}
mroot > *
	{display:table-cell;
	direction:ltr;
	text-align:left;}
mroot > *:first-child
	{border-top:solid 1px;
	border-left:groove 2px;
	padding:2px 5px 0 3px;}
mroot > * + *
	{vertical-align:bottom;
	text-align:right;
	font-size:0.7em;
	line-height:1em;}
mroot > * + *:after
	{display:block;
	content:"";
	width:22px;
	height:14px;
	margin-right:-1px;
	margin-left:auto;}
mfenced
	{display:inline-table;
	border-collapse:separate;
	border-spacing:0.2ex 0;
	white-space:nowrap;
	margin:1px;}
mfenced > *:first-child
	{display:table-row;}
mfenced > * + *
	{display:none;}
mfenced > *:before, mfenced > *:after
	{display:table-cell;
	content:"\A0";
	background-repeat:no-repeat;
	background-size:100% 100%;}
mfenced > *:before
	{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAYAAAAZQFV3AAABtElEQVR42s2ZK0hEURCGr8UiPhYVRJAFoxssFtsafDXRKLogNpNNDDazTSxiMYhoMdtWsAibtKhssCj4ALWIoM4s58Awdb7gD3+45eO8z5z/FgWnfnEfAWoTz4tHCJhCdsQDBGxKXBd3EbBl8a14kIBtiF+pMdsS/4pnCNic+Ed8SMAq4g/xM7HWetIEaFdrROtOEuySgE0kmHqB2FKNBLtP3yGtmtatRWGd4scEexF3RIHrpnV7xGRcG+BsFDZuYO/i9ihw3wCPicn4NMDFKHDJwNS9UeCBgTWJ2W0a4GkUVnbd3YwCaw44TY6fOnyQ3hjYE3FUfRngVRQ45Lp7FgVWHXA3Clyhl8y2A4ZvtyMHnIwCzx1wLAq8cMDRKLDhgMNR4J0DlqPABwcsRYFvDtgdBX47YPHvgHiX8UnBlw2+sPGthx8O+PGFH7D4FVAt4EsKv0bxi16FliIqvFjCyzm84FShJbEfR6Rox58V+MNHhT7NVPjjUYU+b1X4AxyPCFRoiKHCYxYVGgRloVGVCg/TVGjcl4UGklloZJqFhrpZaOychQbjWWh0b7co9nPBqvX74w/Kju1j59IjnwAAAABJRU5ErkJggg==");}
mfenced > *:after
	{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAYAAAAZQFV3AAABl0lEQVR42s3ZPyhFYRjH8ddiEa5cJaVbd2SwWGwM/m1yR3FKNpNNBpvZJossBonFbKMs6k4s6A4Wyp/CIoXfqXd4etbnOzj1Wz+97znv3+eklFJV6UvwM6TMK20k2q9sZxx7upRzZYpEB5RbZYl+p6/KOonOKL/KJokeKD/KHAWWY/RZ+VCGKbTIXS8/VIVCLzN6TIGNDJaZIMBySt5nsElN0VXTyhUC7FBeMviodBLormnlGgHOGvCaANuVd4OOEeiRAfcIcMGAn8TH6TVgmUWilS0D7hPgiQFbBLjhul2LgtMOLKJg1YHIe3wy4A0BXhnwKwFL2qnr9mAU3HHgOD10lqNg4cCtKDjpwMMoOOrAsyg44sCLKFh3YDMK1hx4FwV7HPgQBbsd+EbMZwt+/zsQ7zL+UfBhgw9sfOrhiwO+fOELLL4F4JsUvo3iGz16FMEPS/hxDj9w4kdi9NCOXyvwiw96NcMvj/j1Fr2A4yUCtIiBl1nwQhBaqkKLaXi5Dy1IoiVTtKiLlp3Rwjhaukd/LqC/P/4AwHbtY0GeJ20AAAAASUVORK5CYII=");}
mfenced[open="["] > *:before
	{border-style:solid;
	border-width:1px 0 1px 1px;
	background-image:none;}
mfenced[close="]"] > *:after
	{border-style:solid;
	border-width:1px 1px 1px 0;
	background-image:none;}
mfenced[open="\2016"] > *:before
	{border-style:double;
	border-width:0 0 0 3px;
	background-image:none;}
mfenced[close="\2016"] > *:after
	{border-style:double;
	border-width:0 3px 0 0;
	background-image:none;}
mfenced[open="\27e6"] > *:before
	{border-style:double;
	border-width:2px 0 2px 3px;
	background-image:none;}
mfenced[close="\27e7"] > *:after
	{border-style:double;
	border-width:2px 3px 2px 0;
	background-image:none;}
mfenced[open="|"] > *:before
	{border-style:solid;
	border-width:0 0 0 1px;
	background-image:none;}
mfenced[close="|"] > *:after
	{border-style:solid;
	border-width:0 1px 0 0;
	background-image:none;}
mfenced[open="\230a"] > *:before
	{border-style:solid;
	border-width:0 0 1px 1px;
	background-image:none;}
mfenced[close="\230b"] > *:after
	{border-style:solid;
	border-width:0 1px 1px 0;
	background-image:none;}
mfenced[open="\2308"] > *:before
	{border-style:solid;
	border-width:1px 0 0 1px;
	background-image:none;}
mfenced[close="\2309"] > *:after
	{border-style:solid;
	border-width:1px 1px 0 0;
	background-image:none;}
mfenced[open="{"] > *:before
	{content:"\A0\A0";
	background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAYAAAAZQFV3AAABuklEQVR42rWZuy9EURCHj0c8Qta7pRMh0WgUqBQqG4leNGRL2VZpO6GiIYobHf+DhIiSf8AjFBIkmwiNRNZvsmdjtM53J/naL+fec+7MnLkhpMeoWBZDoi1F1C12REW0pK6qQ1yIY+AJQ5M4ES+inxCWRU2UCFmXeBWfokAIN+PqMkJmG1GNwnlCWIyyL9FJCI+i8IqQNcfNMOE2IZyNMmOJPHvGGCHMouw7NQE04iYKHwlZazwqJjwjhJPu/R0SwkUn3CKEa05YJhOCsUoI95ywSAhPnXCGEF464QQhvHbCEUJ4SwvvnXCQED47YQ8hrNLCdydEUlfNkRwFJ3sjhONOeE4IF5zwgBD61LVBCPfDb3GaSpUNiI8o3CVWV4myu1Bv45J3176QBzGdKlsRT6FeP9r/I7DPqU8MizmxLnpTVoQL8UfOfVNyOTa5HGz808slOeDpC0+weAkIAS5SFngZxQs93orgzRLezuENJ94S4007fq3ALz741Qy/POLXW/wCboGOCCzwIQY+ZsEHQfioygIdpoWQw7gPH0j6RJFRQnyo689kiRLig/HGBmGj+0agPxd8/Pn98QMoXcSZw6bNQwAAAABJRU5ErkJggg==");}
mfenced[close="}"] > *:after
	{content:"\A0\A0";
	background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAYAAAAZQFV3AAABoklEQVR42sWZvUpDQRBGxx+iosS/2GoXJIKNjYVapbAyCPbBRrEMaS1NJ1ppo1gEO30HQZGU+gIxooWgQkC0ESR+iwOZBzjghdMe9t7dnZ39rplZRkyJDZE38OkTNXEgRkjxubgRg5RwQryKC9FDSXdER1QpYVZ8iTcxTEnrPspdSlh0YZuaoCHx7dISNcqGC88o4b4L0+T0EsJ1FyaWCeFsECJrMhWOHxfWqe/45MJ7SnjlwrSE+gnhafiO84RwLwjXCGE1CLcI4WYQIoWiFIRHhHApCC8J4VwQ3hLCmSC8o4VNQpgLwhYhHA3CF1rYJoSZIPygKk4ngDzvQZglhNdBWCCEJ0G4SggrBpewBeseVsfUxBy68FNMEsLU1j24tEaNclE8+o4pUNIB+ztnnkXZwGdMbIsVMS3GfZv+vxB9ZXRS8GWDLmx86+HFAS9feIHFjwD0kMKPUfygx1sRvFnC2zm84cRbYrxpx68V+MUHv5rhl0f8eotfwNGIAA8x8JgFD4LwqAoN0/C4Dw8k0cgUD3XR2BkPxrHoHvu5gP7++AUnfMSZodLInwAAAABJRU5ErkJggg==");}
mfenced[open="\27e8"] > *:before, mfenced[open="\2329"] > *:before
	{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABZCAYAAAA+TwS/AAAB50lEQVR42s2ZPyiFURiHj7+Lrkhks0goEqtFWSilW8oqg5GULExWk5K6g26ZrFI3i24Go8kkkWQwSPkTA673lzOcvu7kfZSnfuvTe77vnO+c834hsORgX+gjZR2WIVI4T8oaLGukcNYyTgoPLfWUbNiyR1ZXtOQpWbvl0dJECfVmDyhZneXWMkcJZywfljZKeGIpUzKt2YplkRLuRmEXIdMze7OcUdWtxurWqalyE4UDhDAfZZfUcMtRuEnIBqNMGSWEhSi7t9R4Za2W1ygsENWtJMOd9MpqLddR9mRp9Aqnk+r2ieEeJ8JZr6zf8hVl75Zmr3Anqa7klbVYXhLhgle4nMg+LZ0emVbCVSI89VY3lcgqcWK7OMoIuz2y3mSqKOfe6rYz1W14ZJq4zxnhiEe4lJHdeKfKRUa45RFOZGTKmEdYysgews+2+St6MlNFKXqq26oy3GmP8K6KsPVfVYg/Q/wt/8k8xFcKvpb/5GuDfw8F/sUW6J4i8F0P35cFenIQ+NlGoKcvgZ8PBXqCFfgZG78FhADfUwR+kwoBvusJ/DYqygG8Lwv8Ro/3HATaFRF430agnSWB974E2p0TeP8Q73AKtAcr8C6xKAawjy3wTrtA/wUI/G8F/j9FzNNC/J+U6KOFuW87Lt0vtp6NAwAAAABJRU5ErkJggg==");}
mfenced[close="\27e9"] > *:after, mfenced[close="\232A"] > *:after
	{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABZCAYAAAA+TwS/AAAByElEQVR42s2ZPSjFURiH/z4XkZvIZpFQJFaLslDqdkvdVQYjqZuFyWq6JXUH3TJZpW4WyWA0mSS6yWCQ8hGDr9+pdzid7vY+g1PP+vSe//89H+97sizLOjN4jNDCCdFHS5dp4aZoI4WzokgKW8UxPe0DMUkKC6JKCjvEs+glpUf2x7GxJO5FCyXsEV9ikYzyTJyTwlXxa2scGQMm3CejvBQf9k2RsWVRblDCMRPWyRS6MWmBEu6Y8IwSTpswME4Im8SjCStUlBUTvoscIZyPpl0ihO3ixYR3opmQHkZR5glhMRKeEsIu8WnCHzFKSGtRlHuEcCUSvolur7BffEfSdSLKi0h4ayvJNUqRMLDgFQ4mwhNi2leRMKTQsFe4nUS56xVOJcJXS3zXqCfSNa+wnAivvSk0kwgDcx5hOFafEmHNO+1qIgwpNOQR5htMu+wR5hoIH/5VhOg3xP8ynof4SkHXMr7b4PshumPjZwp+6qHnMn5zwO826O0Lvx/iN1j0jo1XAXidglZSeK2HV6N4vYxW9HjPAe+KoH0bvLOE975CmmDdObx/iHc40R4s3iXG+9hopx1/C8BfK/D3FPTFB3+Twl/N0He9P0bV3S+iamc2AAAAAElFTkSuQmCC");}
mfenced[open=""] > *:before, mfenced[close=""] > *:after
	{content:normal;}
mover > * + mo[fence="true"], munder > * + mo[fence="true"]
	{content:"\A0";
	line-height:1ex;
	background-size:100% 100%;
	background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAUCAYAAAAa2LrXAAABxElEQVR42u2YsUsCURzHnxlncmJlttYWkeDi4pBNDU6J0C4tRmPc2phb2KSL0iBt9T8EhTjWP2CFDoInCFKLINe3+gaH1ekdZ6S8L3yWd+/d7/v7+t5xpxD/WwqRcqhlIuVQa0TKoXaIlANlwCHJyDjsaQs0wRJpckxqhFZADnSBZhrXOJbjHCkoyF2VBFlQBC/AAM/AZ5rr45jBOUWuSfIewWkNYR5EwR4bOgEFcA2q4B7UwRNocRf1GMRvPIL4D7XivGa1tscaLdas00OVngr0mKXnKHv4E82BBI9TBTyA/oiG7DAA50C18KByzsDFun32UmFvCfbqihZAClwA3UXT73TALSiBYxCz4SvGNSXeo+OyN509p5iBbanc6l2L3dIAN6AMTvnrHbDoNoiAdRIGi2SSn2aKqU7YVD9CTyl61Oi5zB4aFru6yyzUcQx4eHN9aIvXwBlIg00xm9+nCntLs9fa0CNKZzYeq+N6xcmvfCbsAv8MhjWu/MygwkwMZvTtWAfAHWiDIzHFrwUTVJDZtJlVwHwxDy5BSOY0UiFmlf8a2BCfb/hS9pRjdmIfeGUetuVldmJVZuFYH9nJv8ydS3kDn8bEmYaXZFsAAAAASUVORK5CYII=");}
munder > * + mo[fence="true"]
	{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAUCAYAAAAa2LrXAAABzElEQVR42u2Xv0tCURzFrxlPRbEyW2uLSHBxccimBqdEaJcWozFcG3MLm3RRGqSt/oegEEf7B6zQQVBBkFoEsfPsCA8zX+9m0Y974LNc773f7znvPrlPCCE0oSSrYXYrKgdpDbPbA3aVhWXZmZ1YB2mVh2Wlmd1QGXABfCoXU/mYVcY46AG3oAkOgVfl9EZeZtNkVp7xCU5wCQbgGRTBDnD949BczKDITAbMyPneAhtIgRYn6/RAGZyCONgQf/Pqo9FbnF7L9D7KocVsbB/ZzA2OQcewgZE+qIFrUAAn3HwfxMAWCIA14gcLRPviEEZ1/Ib6AfYUY48p9lyghxo9TfLaYRZumYacLHo+dipnQRvcgDw4AiELfYW4Js892jPurUXPsWmvq1XNgQifnv6fcDd2xD+LfgLOTJ60m3P6M6zbo5civUXo9Vs0D4JgFyR51LPgCpRABVTBA2jwdeiaGLoH4Qm1wvxt2touazRYs8oeSuwpyx6T7DlID79S+rVgE0RpKAeeGMQjcBjmOjg24Jwc10S5h7p2Ucvi9Ybf4es0Uopjac5RMpF+qupgkdQ5pmRBCXBAEioOOW0TJUmtEiVJLRElSWnih393vwCZOsSZn592GQAAAABJRU5ErkJggg==");}
menclose
	{display:inline-table;
	border-collapse:separate;
	border-spacing:0.4ex 0;}
menclose[notation="top"]
	{border-top:solid thin;}
menclose[notation="bottom"]
	{border-bottom:solid thin;}
menclose[notation="right"]
	{border-right:solid thin;}
menclose[notation="left"]
	{border-left:solid thin;}
menclose[notation="box"]
	{border:solid thin;}
menclose[notation="horizontalstrike"]
	{text-decoration:line-through;}
mtable
	{display:inline-table;
	line-height:1.5em;
	text-align:center;
	vertical-align:middle;}
mtr
	{display:table-row;}
mtd
	{display:table-cell;
	padding:0 0.5ex;}
mtable[columnalign="left"], mtr[columnalign="left"], mtd[columnalign="left"]
	{text-align:left;}
mtable[columnalign="right"], mtr[columnalign="right"], mtd[columnalign="right"]
	{text-align:right;}
mtable[rowalign="top"] mtd, mtable mtr[rowalign="top"] mtd, 
math mtable mtr mtd[rowalign="top"]
	{vertical-align:top}
mtable[rowalign="bottom"] mtd, mtable mtr[rowalign="bottom"] mtd, 
math mtable mtr mtd[rowalign="bottom"]
	{vertical-align:bottom}
mtable[rowalign="center"] mtd, mtable mtr[rowalign="center"] mtd, 
math mtable mtr mtd[rowalign="center"]
	{vertical-align:middle}
mtable[frame="solid"]
	{border:solid thin;}
mtable[frame="dashed"]
	{border:dashed thin;}
mtable[rowlines="solid"], mtable[rowlines="dashed"], 
mtable[columnlines="solid"], mtable[columnlines="dashed"]
	{border-collapse:collapse;}
mtable[rowlines="solid"] > mtr + mtr
	{border-top:solid thin;}
mtable[rowlines="dashed"] > mtr + mtr
	{border-top:dashed thin;}
mtable[columnlines="solid"] > mtr > mtd + mtd
	{border-left:solid thin;}
mtable[columnlines="dashed"] > mtr > mtd + mtd
	{border-left:dashed thin;}
mspace[linebreak="goodbreak"]:before
	{content:"\200B";
	white-space:normal;}
mspace[linebreak="newline"]:before, mspace[linebreak="indentingnewline"]:before 
	{content:"\000A";
	white-space:pre;}
mspace[width]:before
	{content:normal;}
mspace[width="verythinmathspace"]
	{padding:0 0.05em;}
mspace[width="thinmathspace"]
	{padding:0 0.08em;}
mspace[width="mediummathspace"]
	{padding:0 0.11em;}
mspace[width="thickmathspace"]
	{padding:0 0.14em;}
mspace[width="verythickmathspace"]
	{padding:0 0.17em;}
mo[largeop="true"]
	{font-size:1.3em;
	vertical-align:-0.1ex;}
mo[form="infix"], * + mo
	{padding:0 0.3ex;}
mo[form="prefix"]
	{padding:0 0 0 0.5ex;}
mo[form="postfix"]
	{padding:0 0.5ex 0 0;}
mo[fence="true"], mo[separator="true"]
	{padding:0;}
mi[mathvariant="bold"], mi[mathvariant="bold-italic"], mi[mathvariant="bold-sans-serif"], 
mi[mathvariant="sans-serif-bold-italic"],mn[mathvariant="bold"], mn[mathvariant="bold-italic"], 
mn[mathvariant="bold-sans-serif"], mn[mathvariant="sans-serif-bold-italic"],mo[mathvariant="bold"], 
mo[mathvariant="bold-italic"], mo[mathvariant="bold-sans-serif"], mo[mathvariant="sans-serif-bold-italic"],
ms[mathvariant="bold"], ms[mathvariant="bold-italic"], ms[mathvariant="bold-sans-serif"], 
ms[mathvariant="sans-serif-bold-italic"],mtext[mathvariant="bold"], mtext[mathvariant="bold-italic"], 
mtext[mathvariant="bold-sans-serif"], mtext[mathvariant="sans-serif-bold-italic"]
	{font-weight:bold;
	font-style:normal;}
mi[mathvariant="monospace"], mn[mathvariant="monospace"],mo[mathvariant="monospace"], 
ms[mathvariant="monospace"],mtext[mathvariant="monospace"]
	{font-family:monospace;
	font-style:normal;}
mi[mathvariant="sans-serif"], mi[mathvariant="bold-sans-serif"], mi[mathvariant="bold-sans-serif"], 
mi[mathvariant="sans-serif-italic"], mi[mathvariant="sans-serif-bold-italic"],mn[mathvariant="bold-sans-serif"],
mn[mathvariant="sans-serif"], mn[mathvariant="bold-sans-serif"], mn[mathvariant="sans-serif-italic"],
mn[mathvariant="sans-serif-bold-italic"], mo[mathvariant="sans-serif"], mo[mathvariant="bold-sans-serif"], 
mo[mathvariant="bold-sans-serif"], mo[mathvariant="sans-serif-italic"], mo[mathvariant="sans-serif-bold-italic"], 
ms[mathvariant="sans-serif"], ms[mathvariant="bold-sans-serif"], ms[mathvariant="bold-sans-serif"], 
ms[mathvariant="sans-serif-italic"], ms[mathvariant="sans-serif-bold-italic"], mtext[mathvariant="sans-serif"], 
mtext[mathvariant="bold-sans-serif"], mtext[mathvariant="bold-sans-serif"], mtext[mathvariant="sans-serif-italic"], 
mtext[mathvariant="sans-serif-bold-italic"]
	{font-family:sans-serif;
	font-style:normal;}
mi, mi[mathvariant="italic"], mi[mathvariant="bold-italic"],mi[mathvariant="sans-serif-italic"], 
mi[mathvariant="sans-serif-bold-italic"],mn[mathvariant="italic"], mn[mathvariant="bold-italic"],
mn[mathvariant="sans-serif-italic"], mn[mathvariant="sans-serif-bold-italic"],mo[mathvariant="italic"], 
mo[mathvariant="bold-italic"],mo[mathvariant="sans-serif-italic"], mo[mathvariant="sans-serif-bold-italic"],
ms[mathvariant="italic"], ms[mathvariant="bold-italic"],ms[mathvariant="sans-serif-italic"], 
ms[mathvariant="sans-serif-bold-italic"],mtext[mathvariant="italic"], mtext[mathvariant="bold-italic"],
mtext[mathvariant="sans-serif-italic"], mtext[mathvariant="sans-serif-bold-italic"]
	{font-style:italic;}
mi[mathvariant="normal"], mn[mathvariant="normal"], mo[mathvariant="normal"], 
ms[mathvariant="normal"], mtext[mathvariant="normal"]
	{font-style:normal;}
ms:before, ms:after 
	{content:"\0022"}
ms[lquote]:before 
	{content:attr(lquote)}
ms[rquote]:after 
	{content:attr(rquote)}
mphantom 
	{visibility:hidden}
merror
	{outline:solid thin red}
merror:before
	{content:"Error: "}
mrow
	{white-space:nowrap;}
math[display='block']
	{display:block;
	margin:1em 0 1em 3em;}
mstack, mlongdiv
	{display:inline-table;
	font-family:monospace;}
mstack
	{text-align:right;
	border-collapse:collapse;}
mstack[align='top'], mlongdiv[align='top']
	{vertical-align:top;}
mstack[align='bottom'], mlongdiv[align='bottom'] 
	{vertical-align:bottom;}
mstack[align='center'], mlongdiv[align='center']
	{vertical-align:middle;}
msline
	{display:block;
	border-bottom:solid thin;}
mstack > *, mlongdiv > mn:first-child
	{display:table-row;}
mlongdiv > *:first-child + *
	{display:table-cell;}
mlongdiv > *:first-child + * + *
	{border-top:solid thin;}
mlongdiv > *:first-child:before
	{display:table-cell;
	content:'\a0';}
mlongdiv > *:first-child + *:after
	{content:')';}
mlongdiv > *
	{display:block;}
mscarry
	{display:none;}
maction > * + *
	{display:none;}
maction[actiontype="tooltip"]:focus > * + *,
maction[actiontype="tooltip"]:hover > * + *
	{position:fixed;
	display:block;
	top:0;
	left:0;
	background-color:InfoBackground;
	color:InfoText;
	padding:0.5ex;
	border:solid 1px;}
annotation, annotation-xml
	{display:none;}



13 参考文献
References

css
Cascading Style Sheets, level 2 revision 1, Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie. W3C Recommendation 7 June 2011.
css2
Cascading Style Sheets, level 2 CSS2 Specification, Bert Bos, Håkon Wium Lie, Chris Lilley, Ian Jacobs. May 1998.
rec-xml
Extensible Markup Language (XML) 1.0 (Fifth Edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau (editors). W3C Recommendation 26 November 2008.
rec-xmlns
Namespaces in XML 1.0 (Third Edition), Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin, Henry S. Thompson. W3C Recommendation 8 December 2009.
mathml
Mathematical Markup Language (MathML) Version 3.0, David Carlisle, Patrick Ion, Robert Miner. W3C Recommendation, 21 October 2010.
mathml1
Mathematical Markup Language (MathML) 1.0 Specification, Patrick Ion, Robert Miner. April 1998.
roadmap
Math Working Group Roadmap 2007/8, Patrick Ion, Robert Miner. March 2007, document subject to update. [See especially 2.2.1]