この文書の正誤表 を参照して下さい. 正誤表は規範となる訂正を含んでいることもあるでしょう.
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の責任範囲, 商標, そして文書の利用に関する規則が適用されます.
Copyright © 1998-2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
この文書は, CSSを利用して表示することを組み込んだMathML 3.0の概要について述べています.
This document describes a profile of MathML 3.0 that admits formatting with Cascading Style Sheets.
この節では, 公表された時点でのこの文書の位置付けについて述べます. 他の文書がこの文書に取って代わってもよいです. 現時点でのW3Cの公表した文書の一覧とこの技術報告書の最新版は, 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は, この作業部会の成果に関連して作成された特許開示の公開一覧を管理しています. この一覧のページには, 特許を開示する場合の指示書きを含んでいます. 特許について実際に生じている情報を持っている方は, その情報が本質的な主張(訳注:当該日本語訳では"Essential Claim"の日本語訳に"本質的な主張"を当てていますが, "Essential Claim"という用語は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.
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
この仕様概要書は, 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.
数学作業部会が特定した, 完全に一貫した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.
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.
この仕様概要書に含まれる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より多い数の文字から構成されることもあることに注意して下さい. 例えば, sin
や24
は, それぞれ単一の素子要素<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 |
mfrac | 2つの式から分数を構成する 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 | 足し算や引き算や掛け算の筆算のような初等数学の表記に用いられる 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 |
配置要素の中には特定の数の引数を必要とするものもあり, 例えば, 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>
特定の配置要素で必要になる引数の数は, 下の表のとおり決められています. この仕様概要書において, mfenced
とmaction
の中身は, 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 |
mfrac | 2 | 分子 分母 numerator denominator |
mroot | 2 | 基となる式 指数 base index |
mfenced | 1 | 基となる式 base |
msub | 2 | 基となる式 下付き添え字 base subscript |
msup | 2 | 基となる式 上付き添え字 base superscript |
msubsup | 3 | 基となる式 下付き添え字 上付き添え字 base subscript superscript |
munder | 2 | 基となる式 下側添え字 base underscript |
mover | 2 | 基となる式 上側添え字 base overscript |
munderover | 3 | 基となる式 下側添え字 上側添え字 base underscript overscript |
mmultiscripts | 4 | 基となる式 mprescripts 前置の下付き添え字 前置の上付き添え字base mprescripts presubscript presuperscript |
mtable | 1+ | 1つ以上のmtr 要素one or more mtr elements |
mtr | 1+ | 1つ以上のmtd 要素one or more mtd elements |
mstack | 4+ | 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 |
mlongdiv | 3+ | 割り算の商, それに続く除数, 1つ以上のmn 素子要素とそれに続く必須でないmsline 要素から構成される集合result of the division followed by divisor and groups consisting of one or more mn tokens followed by optional msline |
msrow | 2 | mo 素子要素とそれに続くmn 素子要素mo token element followed by mn token |
maction | 2 | 基となる式 ツールティップボックスの内容 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.
属性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 |
id | ID | 全ての要素 all elements | |
class | NMTOKENS | 全ての要素 all elements | |
style | CDATA | 全ての要素 all elements | |
mathvariant | normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace | normal | mn , mo , ms , mtext |
mathvariant | normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace | italic | mi |
プレゼンテーションマークアップの素子要素は, おおまかに言うと, 意味を伝える最小の表記を表すのものです. 素子要素は, おおよそ文章の中の言葉に類似したものです. しかし, 数学表記の正確性や抽象性のために, 素子要素の様々な種類や特性を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.
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.
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
).
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 |
form | prefix | infix | postfix | mo 要素の位置に依存します. 正確な規則は上を参照して下さい.depends on position of mo element, see exact rules above |
fence | true | false | false |
separator | true | false | false |
largeop | true | false | false |
stretchar | 文字 character | none |
mtext
要素は, コメント文を示すことを意図しています.
An mtext
element is intended to denote commentary text.
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 |
width | verythinmathspace | thinmathspace | mediummathspace | thickmathspace | verythickmathspace | 0 |
linebreak | auto | newline | goodbreak | auto |
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) |
verythinmathspace | 1/9 |
thinmathspace | 1/6 |
mediummathspace | 2/9 |
thickmathspace | 5/12 |
verythickmathspace | 1/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.
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 | " |
素子要素のほかにも, 様々な種類の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.
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".
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> 分子 分母 </mfrac>
<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 |
---|---|---|
linethickness | 0 | 1 | 2 | medium | thick | 1 |
numalign | left | center | right | center |
denomalign | left | center | right | center |
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.
これらの要素は根号を構成します. 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> 基となる式 </msqrt> <msqrt> base </msqrt> <mroot> 基となる式 指数 </mroot> <mroot> base index </mroot>
mroot
要素はちょうど2つの引数を必要とします. ただし, msqrt
は任意の数の引数を受け付けます.
The mroot
element requires exactly 2 arguments. However, msqrt
accepts any number of arguments.
merror
要素は, その内容を"エラーメッセージ"として描画します. 中身は, 任意の式や式の集合とすることができます.
The merror
element displays its contents as an "error message". The contents can be any expression or expression sequence.
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.
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 |
open | CDATA | ( |
close | CDATA | ) |
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 |
notation | box | 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
.
この節で述べている要素は, 基となる式の周りに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.
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.
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.
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>
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.
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.
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.
この仕様概要書において, 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.
行列や配列やその他の表のような数学表現は, 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.
表または行列は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 |
rowalign | top | bottom | center | baseline | baseline |
columnalign | left | center | right | center |
rowlines | none | solid | dashed | none |
columnlines | none | solid | dashed | none |
frame | none | solid | dashed | none |
rowlines
とcolumnlines
とframe
それぞれの既定値は, 既定値がないという意味でなく, 既定では線を引かないことを意味する文字列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.
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 |
rowalign | top | bottom | center | baseline | 継承する(訳注:親要素と同じになる) inherited |
columnalign | left | 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.
mtd
要素は, 表や行列の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 |
rowalign | top | bottom | center | baseline | 継承する inherited |
columnalign | left | 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.
足し算や引き算や掛け算の筆算のような初等数学の表記における表に似た構造は, 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 |
align | top | bottom | center | baseline | baseline |
stackalign | right | 属性が必要です 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>
この仕様概要書において, 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>
割り算の筆算に対する初等数学の表記は, 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 |
align | top | bottom | center | baseline | baseline |
stackalign | left | 属性が必要です 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>
式に動作を結び付ける仕組みを提供するために, 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 |
actiontype | tooltip | (必要な属性, 既定値無し) (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.
この仕様概要書は, 配置要素を数式の視覚的構造を表すものとして処理します. 式の内容について述べたり, 数式の代替の表記方法を提供する等の追加の意味情報を付け加えるために, コンテントMathMLのsemantics
要素を用いることができます. この仕様概要書において, semantics
要素の中身は, プレゼンテーションMathMLとそれに続くannotation
要素やannotation-xml
要素に限られます.
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.
この仕様概要書が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.
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.
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.
この仕様概要書は, いくつかの書式のための要素や属性が省略されています. 具体的には, mstyle
(書式に特化した要素でCSSと両立しない方法でいくつかのCSSと同じ機能を提供します),
mpadded
(CSSと両立しない方法でいくつかのCSSと同じ機能を提供します), mglyph
(仕様概要書の将来版に含まれるかもしれません),
mlabeledtr
(CSSの表のモデルと合致しません), malign
, maligngroup
, malignmark
, malignscope
,
msgroup
, mscarry
, mscarries
の要素です.
省略されたプレゼンテーション属性の一覧は,
accent
,
accentunder
,
align
,
alignmentscope
,
columnspacing
,
columnspan
,
columnwidth
,
depth
,
displaystyle
,
equalcolumns
,
equalrows
,
fontfamily
,
fontsize
,
fontstyle
,
fontweight
,
framespacing
,
groupalign
,
height
,
indentalign
,
indentalignfirst
,
indentalignlast
,
indentshift
,
indentshiftfirst
,
indentshiftlast
,
indenttarget
,
longdivstyle
,
lspace
,
mathbackground
,
mathcolor
,
mathsize
,
maxsize
,
minlabelspacing
,
minsize
,
mode
,
movablelimits
,
rowspacing
,
rowspan
,
rspace
,
side
,
subscriptshift
,
superscriptshift
,
symmetric
,
(mtableの) width
です.
また, 対応する名前空間が限られます.
The profile drops several formatting oriented elements and attributes, including
mstyle
(an element explicitly formatting oriented and which duplicates some CSS functionality is a CSS-incompatible way),
mpadded
(also now duplicating CSS functionality is CSS incompatible way), mglyph
(might be included in future versions of profile),
mlabeledtr
(which does not fit in the CSS table model), malign
, maligngroup
, malignmark
, malignscope
,
msgroup
, mscarry
and mscarries
elements.
The list of dropped presentational attributes includes
accent
,
accentunder
,
align
,
alignmentscope
,
columnspacing
,
columnspan
,
columnwidth
,
depth
,
displaystyle
,
equalcolumns
,
equalrows
,
fontfamily
,
fontsize
,
fontstyle
,
fontweight
,
framespacing
,
groupalign
,
height
,
indentalign
,
indentalignfirst
,
indentalignlast
,
indentshift
,
indentshiftfirst
,
indentshiftlast
,
indenttarget
,
longdivstyle
,
lspace
,
mathbackground
,
mathcolor
,
mathsize
,
maxsize
,
minlabelspacing
,
minsize
,
mode
,
movablelimits
,
rowspacing
,
rowspan
,
rspace
,
side
,
subscriptshift
,
superscriptshift
,
symmetric
,
width (on mtable)
.
Also list of supported named spaces is limited.
違いは, mi
素子要素の処理方法に及んでいます. CSSに対応したMathML仕様概要書において, 要素の内容に関わらず, mathvariant
属性の既定値は"italic"です. 互換性のために, mi
素子要素が2文字以上の文字を含む場合は, この属性の値をはっきりと明示すべきです.
The changes affect the handling of an mi
token element. In this MathML for CSS profile,
the default value of the mathvariant
attribute is "italic",
regardless of the content of the element.
For interoperability reasons, authors should specify the value of this attribute explicitly if an mi
token contains more then one character.
CSSセレクタはmo
要素をその中身に基づいて区別することができないため, CSSに対応したMathML仕様概要書は, 演算子辞書に頼りません. そのため, 可能な限り演算子の種類を特定できる表記を用いることが推奨されます. 例えば, 縦に引き伸ばされる記号はmfenced
構造を用いて記述することが望ましいです. また, 引き伸ばされる上線や下線や取消線はmenclose
要素を用いて記述することが望ましいです. 加えて, 演算子のグループ分けをするために利用できるform
, fence
, separator
, largeop
, stretchar
の属性があります.
The MathML for CSS profile does not rely on an operator dictionary because CSS selectors can not differentiate between mo
tokens based on their content.
Therefore authors are encouraged to use more explicit markup when applicable: for example, stretchy vertical delimiters are better marked
using the mfenced
construction, and stretchy over or under bars and strikes are better marked using the menclose
element.
In addition, there are form
, fence
, separator
, largeop
, stretchar
attributes that
can be used to specify the class of an operator.
CSSに対応したMathML仕様概要書ではmfenced
配置要素は簡略化されています. 現在のCSSの枠組はseparators
属性を処理する方法がないので, mfenced
属性のseparators
属性は省略されています. 互換性のため, その属性は空の既定値を持たないことから, 内容モデルは1つの子要素のみとなるよう制限されています.
In the MathML for CSS profile the mfenced
schema is simplified. In particular, the separators
attribute of an mfenced
element is dropped,
as there is no way to handle the separator
attribute in the present CSS framework. For interoperability reasons,
since the attribute does not have an empty default value, the content model was restricted to allow only one child element.
複数の添え字の配置要素は, この仕様概要書に含まれますが, 添え字の数は2つの前置添え字に制限されています. mmultiscripts
要素の子要素の順番は, それらの描かれる順番と異なることから, 複数の添え字の構造を処理することは困難です.
Multiscripts schemata is included in the profile but number of scripts is limited to at most two prescripts. It is difficult to handle mmultiscripts construction as the order of child elements inside a mmultiscripts
element does not match their in-flow order.
表のモデルが簡略化されています. CSSと合致しないため, mlabeledtr
要素は省略され, また, 多くの属性が省略されています.
The table model is simplified: the mlabeledtr
element is dropped as it does not fit in the CSS table model,
and many attributes have been removed.
筆算の配置要素mstack
とmlongdiv
は相当簡略化されています. 水平の位置揃えの選択肢は制限され, mscarries
構造は省略されました.
The 2D elementary math layouts mstack
and mlongdiv
are significantly simplified.
Horizontal alignment options are limited and mscarries
construction is dropped.
必要な引数の数が決まっている配置要素は, 要素mrow
, maction
, merror
, mphantom
と素子要素mi
, mn
, mo
, ms
, mtext
のみを子要素として持つことしかできません. この制限は, 配置要素それぞれ自身が式の集合部分を含む際に, DOMにおいての表現が1つであることを保証するためのものです.
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
document object model.
<!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>
(この節は規範となるものではありません.)
(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;}