<semantics>

MathMLにおいては,数学をタグ付けるには二つの方法があり,表示 (presentation)MathMLが数式の配置を制御するのに用いられる一方,内容 (content)MathMLは数式の論理的意味の符号化及び数式処理系 (computer algebra system)に適するような数式の変換を念頭に設計されています。MathML要素<semantics><annotation>及び<annotation-xml>を用いることで,表示MathMLと内容MathMLを組み合せ,数式の配置情報及び論理的意味の双方を記述できます。

<semantics>要素は注釈に関連したコンテナ要素として振舞い,子要素を持たなくてはなりません(そうでない場合,無効なタグ付けとして誤り報告されます)。<annotation>要素には非XML形式の論理的情報が含まれ,対して<annotaiton-xml>要素にはXML形式の情報(例: 内容MathMLやOpenMath)が含まれます。

<semantics>要素における可視子要素を決定する規則を次に挙げます。

  • 適用すべき規則がない場合: 既定では最初の子要素のみ描画しますが,当要素は表示MathMLでなくてはなりません。
  • 最初の子要素が<annotation>又は<annotation-xml>以外の表示MathML要素の場合,当要素が描画されます。
  • 表示MathMLが見当らない場合,<semantics>要素の最初の<annotation>又は<annotation-xml>子要素を描画します。
    encoding属性で次の孰れかが指定されている場合,<annotation-xml>要素のみが認識されることに気を付けてください。
    • application/mathml-presentation+xml
    • MathML-Presentation
    • SVG1.1
    • text/html
    • image/svg+xml
    • application/xml
    ここに「application/mathml+xml」を挙げていないことに留意してください,というのもこれでは内容MathMLか表示MathMLかを区別できないからです。

属性

<annotation>及び<annotation-xml>要素には次の属性が設定できます。

definitionURL
The location of the annotation key symbol.
encoding
当注釈における論理的情報の符号化方法(例: 「MathML-Content」,「MathML-Presentation」,「application/openmath+xml」,「image/png」)。
cd
The content dictionary that contains the annotation key symbol.
name
The name of the annotation key symbol.
src
論理的情報の為の外部資源の場所。

<math>
  <semantics>

    <!-- 表示MathML -->
    <mrow>
      <msup>
        <mi>x</mi>
        <mn>2</mn>
      </msup>
      <mo>+</mo>
      <mi>y</mi>
    </mrow>

    <!-- 内容MathML -->
    <annotation-xml encoding="MathML-Content">
      <apply>
        <plus/>
        <apply>
          <power/>
          <ci>x</ci>
          <cn type="integer">2</cn>
        </apply>
        <ci>y</ci>
      </apply>
    </annotation-xml>

    <!-- 画像注釈 -->
    <annotation encoding="image/png" src="some/path/formula.png"/>

    <!-- TeX形式の注釈 -->
    <annotation encoding="application/x-tex">
      x^{2} + y 
    </annotation> 
   
  </semantics>
</math>

仕様

仕様 状態 備考
MathML 3.0
Mixing Markup Languages for Mathematical Expressions の定義
勧告 現在の仕様
MathML 2.0
Combining Presentation and Content Markup の定義
勧告 初期の仕様

ブラウザー互換機

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
semanticsChrome 未対応 なしEdge 未対応 なしFirefox 完全対応 1IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 完全対応 4Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応

Gecko固有の注記

  • (Firefox 23 / Thunderbird 23 / SeaMonkey 2.20)において,semantics要素下の可視子要素を決定する算法がMathML仕様に準じるよう修正されました。以前では,最初の子要素が〔無条件に〕描画されていました。
  • Geckoでは,src属性が指定されている場合,<annotation>及び<annotation-xml>は無視されます。