無理しないでゆっくり休んでね!

HTML5 MathML

ウェブページ上で数式を正確かつ美しく表示するために、HTML5ではMathMLという標準が導入されました。

MathMLとは

Mathematical Markup Language(MathML)は、webページ上で数学的な記述や数式を表示するためのXMLベースの言語です。MathMLは、ブラウザが数式を正確にレンダリングし、スクリーンリーダーが適切に数式を読み上げることを可能にします。

MathMLの基本構造

MathMLでは、<math>タグを使用して数式を囲みます。

その中に、様々な子要素を入れることで数式を構成していきます。

サンプルコード①

<math xmlns="http://www.w3.org/1998/Math/MathML">
               
         <mrow>
            <msup><mi>a</mi><mn>2</mn></msup>
            <mo>+</mo>
                               
            <msup><mi>b</mi><mn>2</mn></msup>
            <mo>=</mo>
                               
            <msup><mi>c</mi><mn>2</mn></msup>
         </mrow>
                       
      </math>

表示例①

a2 + b2 = c2

サンプルコード②

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>x</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
        <mo>±</mo>
        <msqrt>
          <mrow>
            <msup>
              <mi>b</mi>
              <mn>2</mn>
            </msup>
            <mo>-</mo>
            <mrow>
              <mn>4</mn>
              <mo>×</mo>
              <mi>a</mi>
              <mo>×</mo>
              <mi>c</mi>
            </mrow>
          </mrow>
        </msqrt>
      </mrow>
      <mrow>
        <mn>2</mn>
        <mo>×</mo>
        <mi>a</mi>
      </mrow>
    </mfrac>
  </mrow>
</math>

表示例②

x = b ± b 2 4 × a × c 2 × a

この例②では、二次方程式の解の公式をMathMLで表現しています。

MathMLの主な要素

  1. <mi>:変数や関数名を表現するための要素です。
  2. <mo>:演算子(+、-、* など)を表現するための要素です。
  3. <mn>:数値を表現するための要素です。
  4. <mfrac>:分数を表現するための要素です。子要素として分子と分母を持ちます。
  5. <msqrt>および<msup>:平方根や冪乗を表現するための要素です。

    ブラウザのサポート

    MathMLは、ほとんどの主要なブラウザでサポートされていますが、Internet ExplorerやMicrosoft Edge(旧バージョン)ではサポートされていません。そのため、MathJaxなどのJavaScriptライブラリを使用して、これらのブラウザでもMathMLを表示できるようにすることが一般的です。

    MathJaxの利用

    MathJaxは、MathMLを含むHTMLページをすべての主要なブラウザで表示できるようにするためのJavaScriptライブラリです。

    MathJaxを使用することで、MathMLの表示を改善し、非対応のブラウザでも適切なレンダリングができます。以下のスクリプトをHTMLの<head>タグ内に追加することで、MathJaxを利用できます。

    <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

    コメント

    タイトルとURLをコピーしました