recursal/MDN huggingface dataset:
TRACE
=====

**HTTP の `TRACE` メソッド**は、対象リソースまでのパスに沿ってメッセージのループバックテストを行い、便利なデバッグの仕組みを提供します。

リクエストの最終受信者は受信したメッセージを、以下に示すいくつかのフィールドを除いて、クライアントに `200` (`OK`) レスポンスを `Content-Type` を `message/http` に設定した本文として返送します。最終受信者はオリジンのサーバーか、リクエストで `Max-Forwards` (en-US) の値が 0 で受け取った最初のサーバーのどちらかです。

|  |  |
| --- | --- |
| リクエストの本文 | なし |
| 成功時のレスポンスの本文 | なし |
| 安全性 | なし |
| べき等性 | あり |
| キャッシュ | 不可 |
| HTML フォームの使用 | 不可 |

構文
--
```

TRACE /index.html
```

仕様書
---

| Specification |
| --- |
| HTTP Semantics # TRACE |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* HTTP メソッド
リソース URL
========

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

`resource:` というスキームのプレフィックスが付いたリソース URL は、Firefox と Firefox のブラウザー拡張機能によってリソースを内部的に読み込むために使用されますが、情報の一部はブラウザーが接続するサイトでも利用できます。

構文
--

リソース URL は、接頭辞 (`resource:`) とロードするリソースを指す URL の 2 つの部分で構成されます。
```

resource://<url>
```


例
```

resource://gre/res/svg.css
```


リソース URL ('->') に矢印がある場合は、最初のファイルが次のファイルにロードされたことを意味します。
```

resource://<File-loader> -> <File-loaded>
```


より一般的な詳細については、ウェブ上のリソースの識別を参照してください。

この記事では、組み込みのリソースを指すために Firefox が内部的に使用するリソース URI に焦点を当てます。

脅威
--

`resource:` URL によって共有される情報の一部はウェブサイトで利用できるため、ウェブページは内部スクリプトを実行し、デフォルトの設定を含む Firefox の内部リソースを調べることができます。

たとえば、Browserleaks のスクリプトは、サイトで実行されている簡単なスクリプトでクエリが実行されたときに Firefox が表示する内容を強調表示します (コードは https://browserleaks.com/firefox#more にあります)。

ファイル firefox.js は、プリファレンス名と値を pref() 関数に渡します。 例えば、
```

http://searchfox.org/mozilla-central/rev/48ea452803907f2575d81021e8678634e8067fc2/browser/app/profile/firefox.js#575
```


ウェブサイトではこの `pref()` 関数をオーバーライドし、スクリプト`resource:///defaults/preferences/firefox.js` を使用して、 Firefox のデフォルト設定を簡単に収集できます。

さらに、プラットフォームやロケールなどのビルド構成によっては、ウェブサイトがこの情報を使用して個々のユーザーを識別できるという意味で、いくつかのデフォルト設定値が異なります。

解決方法
----

この問題を解決するために、 Mozilla は Firefox バグ 863246 のリソースを読み込む動作を変更しました。これは Firefox 57 (Quantum) で登場しました。

過去には、ウェブコンテンツは、 Firefox の内部リソースだけでなく、拡張機能の資産も含め、URI が必要とするあらゆるリソースにアクセスすることができました。 現在、この動作はデフォルトでは禁止されています。

しかし、特定の状況下で Firefox がウェブコンテンツにリソースを読み込む必要があります。 たとえば、ビュー・ソース・ページ (ビュー・ソースまたはビュー選択ソース) を開くと、 `resource:` URI を介して `viewsource.css` が必要です。ウェブコンテンツに公開する必要があるリソースは、 `resource://content-accessible/`という名前の新しい場所に移動されました。これは隔離されており、重要ではないリソースのみが含まれています。 このようにして、重要なリソースを公開し、ほとんどの脅威を排除できます。

**メモ:** ウェブと拡張機能の開発者がリソース URL をもう使用しようとしないことをお勧めします。彼らの使い方はうまくいきませんでした。そしてほとんどの使用法はこれ以上動作しません。

仕様
--

resource: はどの仕様書にも定義されていません。

ブラウザーの対応
--------

resource: は Firefox のみ対応

関連情報
----

* ウェブ上のリソースの識別
* URL とは何か
* IANA list of URI schemes (`resource:` is covered here)
www 付きと www なしの URL の選択
=======================

ウェブサイトの管理者の間で繰り返される質問が、www URL と非 www URL のどちらを選択するかです。このページでは、何が最良かについてアドバイスを提供します。

ドメイン名とは何か
---------

HTTP の URL では、先頭の `http://` または `https://` に続く部分文字列をドメインと呼びます。ドメイン名は、文書が存在するサーバーにホスティングされています。

サーバーは物理的な装置である必要はありません。同じ物理的な装置上に複数のサーバーを配置できます。あるいは複数の装置がひとつのサーバーとして扱われることもあり、協力して回答を生成したり、サーバー間でリクエストの負荷を分散したりします。重要なことは、意味的に*ひとつのドメイン名がひとつのサーバーを表す*ことです。

では、自身のウェブサイトでどちらかを選択しなければならないのか
-------------------------------

* **はい**、ひとつを選択して維持しなければなりません。基準となる場所に応じてどちらを選択するかはあなた次第ですが、どちらかを選択したら、それを維持してください。それにより、ユーザーや検索エンジンから見てウェブサイトが首尾一貫したものになります。これは、常に選択したドメインにリンクする (ウェブサイト内で相対 URL を使用すれば、難しくはないでしょう)、および常に同じドメインへのリンクを (電子メールやソーシャルネットワークなどで) 共有することを含みます。
* **いいえ**、二つ持つことができます。どちらが公式なドメインであるかについて、一貫性を持って矛盾しないことが重要です。**この公式なドメインは*正規名*と呼ばれます。** すべての絶対パスリンクで正規名を使用するべきです。しかし、それでも他のドメインを機能させることができます。HTTP ではどちらのドメインが正規のものであるかをユーザーや検索エンジンに対して明らかにするとともに、非正規のドメインが機能して想定したページを提供できるようにするための技術が 2 つあります。

従って、正規なドメインとしてひとつ選択してください! 以下の 2 つの技術によって、非正規のドメインも機能させることができます。

非正規の URL のための技術
---------------

どのウェブサイトが*正規*であるかを選択するための、さまざまな方法があります。

### HTTP 301 リダイレクトを使用する

この場合は非正規ドメインへのリクエストに対して適切な HTTP `301` レスポンスを返すために、HTTP リクエストを受けるサーバー (おそらく、www URL 向けと非 www URL 向けは同じでしょう) の設定が必要です。これは、非正規 URL へアクセスしようとしたブラウザーを正規な同等 URL へリダイレクトします。例えば非 www URL を正規なものとして使用することを選択した場合は、すべての www URL を、www をつけない同等の URL にリダイレクトします。

例:

1. サーバーが `http://www.example.org/whaddup` へのリクエストを受けます (正規のドメインが example.org であるとき)。
2. サーバーは ``Location`: http://example.org/whaddup` ヘッダーを伴う `301` コードのレスポンスを返します。
3. クライアントは正規ドメイン `http://example.org/whatddup` へのリクエストを発行します。

HTML5 boilerplate project に、あるドメインから別のドメインへリダイレクトするように Apache を設定する方法 の例があります。

### <link rel="canonical"> を使用する

ページの正規のアドレスは何かを示す、専用の HTML `<link>` 要素をページに追加できます。これは人間向けのページリーダーには影響がありませんが、検索エンジンのクローラーに対してページが実際はどこにあるかを示します。この方法では検索エンジンが同じページで何度もインデックスを作成したり、重複したコンテンツやスパムであると判断されたり、検索エンジンの結果ページでページが排除されたりランクが下がったりすることがなくなります。

このようなタグを追加するときは両方のドメインで同じコンテンツを提供して、どの URL が正規であるかを検索エンジンに示します。先ほどの例では `http://www.example.org/whaddup` が `http://example.org/whaddup` と同じコンテンツを提供していますが、head に `<link>` 要素を追加します:

`<link href="http://example.org/whaddup" rel="canonical">`

リダイレクトの場合と異なり、ブラウザーの履歴では非 www URL と www URL が独立した項目であるとみなします。

どちらでもページを動作させる
--------------

これらの技術と併せて、 www つきドメインと www なしドメインの両方で正しく応答するようにサーバーを設定しましょう。ユーザーがブラウザーの URL バーにどちらの URL を入力するかは予測できませんので、これを行うことはよい助言になります。これは正式な場所としてどちらを使用したいかを選択するという問題であり、その結果に応じて他の URL をリダイレクトします。

状況を判断する
-------

これは自転車置き場問題と考えられる、とても主観的な話題です。もっと深く読んでみたいと思ったら、この件に関する多くの記事をご覧ください。

関連情報
----

* Stats on what people type in the URL bar (2011)
オーディオとビデオのストリーミングガイド
====================

このガイドでは、Web 上のオーディオあるいはビデオメディアをストリーミングするために使用されるテクニックと、可能な限り最高の品質とパフォーマンスを引き出すためにストリーミングを実行する際に使用するコード、メディア、サーバー、およびオプションをどのように最適化するかを検討します。

プロトコル
-----

サーバとストリーミングコードの設定に加えて、パフォーマンスを最適化するために使用できる特別なプロトコルが存在することがあります。

### HTTPS Live Streaming

**HTTPS Live Streaming** (**HLS**) は、Apple が開発したプロトコルで、Safari はそのすべてのプラットフォームでサポートしています。HLS は他の環境でもサポートされている場合がありますが、条件付きでサポートされている場合もあります。

例えば、多くの Web サイトのモバイル専用コンテンツでは、モバイルブラウザが HLS に対応していることを前提としているため、この前提が間違っているために変な互換性エラーが発生することを避けるために、Android 版の Firefox も同様に対応しています。ただし、Android のデスクトップ版は HLS をサポートしていません。

HLS ではプレイリストを利用して、ストリーミングするメディアを選択するだけでなく、同じメディアのバージョンや形式を選択することができます。例えば、HLS では、ユーザーが自分の言語を聞くために、複数の音声ストリームを含むビデオをストリーミングすることができます。さらに、異なるネットワーク条件に最適化されたストリームの形式を提供することもできます。このようにして、ライブストリームを柔軟かつ高パフォーマンスにすることができます。

2017 年半ば現在、HLS は RFC 8216 として標準化されています。

あわせて参照
------

* Web メディア技術
* Web 上のメディアタイプとフォーマットのガイド
* `<audio>` と `<video>`
メディアの種類と形式のガイド: 画像、音声、動画コンテンツ
=============================

ほぼ最初の頃から、ウェブは何らかの形で視覚メディアのプレゼンテーションに対応してきました。当初、これらの機能は制限されていましたが、さまざまなブラウザーがウェブ上の静止画や動画の画像を含むことに関する問題に対して独自の解決策を見つけたため、有機的に拡張されました。現代のウェブは、メディアのプレゼンテーションや操作をサポートする強力な機能を備えており、さまざまな種類のコンテンツに対応するいくつかのメディア関連 API を備えています。一般的に、ブラウザーが対応するメディア形式は、ブラウザーの作成者に委ねられており、ウェブ開発者の作業を複雑にしています。

このガイドでは、ウェブ上で使用されるメディアを構成する可能性のあるメディアファイルの種類、コーデック、アルゴリズムの概要を説明します。また、これらの様々な組み合わせに対するブラウザーの対応情報や、ファイル形式の優先順位の提案、特定の種類のコンテンツに適したファイル形式の提案も提供しています。

リファレンス
------

### 画像

画像ファイルの種類と形式のガイド

主要なウェブブラウザーが対応している画像ファイルの種類とコンテンツ形式をカバーし、それぞれの種類についての基本的な情報を提供しています。利点、制限、使用例など、ウェブデザイナーや開発者が興味を持つ情報を提供します。

ウェブデザイナーのための画像ファイル形式

ウェブデザイナーにとって有用な様々な画像ファイルの種類についての基本的な情報であり、各種類のベストプラクティスや使用例、特定のコンテンツの種類に適した画像ファイル形式を選択するためのガイドラインなどが含まれています。

### メディアファイルの種類とコーデック

メディアコンテナー (ファイルの種類)

メディアデータを含むファイルの種類のガイド。オーディオに特化したものもあれば、オーディオや映画などの複合視聴覚コンテンツに使われるものもあります。主要なウェブブラウザーが対応している各ファイル種別の概要と、ブラウザーの対応情報、対応している機能が含まれています。


ウェブ音声コーデックガイド (en-US)

一般的なメディアコンテナーや主要なブラウザーで許可されているオーディオコーデックのガイド。メリット、制限、主要な仕様と機能、ユースケースが含まれています。また、与えられたコンテナーでコーデックを使用するための各ブラウザーのサポートもカバーしています。

ウェブ動画コーデックガイド

この記事では、主要なブラウザーが対応してている動画コーデックについての基本的な情報と、一般的には対応されていないが、まだ遭遇する可能性のあるいくつかの情報を提供します。また、コーデックの機能、利点、制限、ブラウザーの対応レベルと制限についても説明します。

一般的なメディアタイプの "codecs" 引数 (en-US)

メディア形式を記述する MIME タイプを指定するときは、 type 文字列の一部として `codecs` 引数を使用して詳細を提供できます。このガイドでは、一般的なメディアタイプの `codecs` 引数の形式と可能な値について説明します。

WebRTC で使われるコーデック (en-US)

WebRTC はコンテナーを使用せず、 `MediaStreamTrack` オブジェクトを使用して音声や動画の各トラックを表現し、エンコードされたメディア自体をピアからピアにストリームします。このガイドでは、WebRTC で一般的に使用されるコーデックについて説明します。

ガイド
---

### 概要

デジタル音声の概要 (en-US)

音声がどのようにデジタル形式に変換され、コンピュータで使用するために保存されるかを紹介します。音声がどのようにサンプリングされるかについての基本的な概念、サンプルレート、音声フレーム、音声圧縮などの概念を説明しています。

デジタル動画の概要 (en-US)

ウェブ上で使用されるデジタルビデオの基本的な概念、例えばカラーフォーマット、クロマサブサンプリング、人間の知覚がビデオコーディングにどのように影響するかなどを解説しています。

### チュートリアルと how-to

学習: 動画と音声のコンテンツ

このチュートリアルでは、ウェブ上でのメディアの利用方法を紹介し、詳細を説明します。

ウェブコンテンツにおけるメディア対応の課題への対応 (en-US)

このガイドでは、メディア形式を賢く選択し、フォールバックや代替形式を提供することで、可能な限り幅広い互換性を提供しながら、品質やパフォーマンスを最大化するウェブコンテンツを構築する方法を見ていきます。

その他のトピック
--------

Media Capabilities API (en-US)

Media Capabilities API を使用すると、アプリやサイトが実行されている端末のエンコーディングおよびデコーディング機能を検出することができます。これにより、どの形式をいつ使用するかをリアルタイムで判断することができます。
HTML での画像の使用
============

HTML の `<img>` 要素で HTML 文書に画像を埋め込むことができ、 `<picture>` 要素を使用するとレスポンシブ画像を使用することができます。このガイドでは、ウェブサイトへの画像の追加を扱うリソースへのリンクを紹介します。

リファレンス
------

これらの記事では、ウェブ上での画像の表示方法を制御するために使用される HTML 要素と CSS プロパティのいくつかを取り上げています。

### HTML

`<img>`

**HTML の `<img>` 要素**は、ウェブページに画像を埋め込むために使用されます。画像の振る舞いを制御する幅広い属性に対応しており、画像を見られない人のために `alt` テキストのような重要な情報を追加することができます。

`<picture>`

**HTML の `<picture>` 要素**は、 0 個以上の `<source>` 要素と 1 個の `<img>` 要素を含み、様々な画面や端末のシナリオのために画像の別な版を提供します。ブラウザーは、子要素であるそれぞれの `<source>` 要素を考慮して、それらの中から最適なものを選択します。

### CSS

`object-fit`

**`object-fit`** は CSS のプロパティで、置換要素、例えば `<img>` や `<video>` の中身をコンテナーに合わせるために、どのようにリサイズする可を設定します。

`object-position`

**`object-position`** は CSS のプロパティで、要素のボックス内で選択された置換要素内のコンテンツの配置を指定します。ボックス内の領域のうちで置換要素のオブジェクトに覆われていない部分には、要素の背景が表示されます。

`background-image`

**`background-image`** は CSS のプロパティで、 1 つまたは複数の要素の背景画像を設定します。

ガイド
---

これらの記事では、画像の種類を選択して構成するためのガイダンスを提供しています。

画像ファイルの種類と形式ガイド

ウェブブラウザーが一般的に対応ている様々な画像ファイルの種類について、それぞれの使用例、機能、互換性の要素などの詳細を含めて解説しています。さらに、この記事では、与えられた状況に最適な画像ファイルタイプを選択するためのガイダンスを提供します。

メディアのコンテナー要素の width および height 属性をアスペクト比に対応付ける

これにより、ブラウザーが画像を読み込む方法が変更され、アスペクト比がブラウザーによって初期段階で計算され、後で読み込まれる前に画像の表示サイズを修正することができます。

その他のトピック
--------

興味がありそうな関連トピック

HTML の学習: レスポンシブ画像

この記事ではレスポンシブ画像の概念、つまり画面サイズや解像度などが大きく異なる端末でも動作する画像について学び、レスポンシブ画像を実装するために HTML が提供するツールについて見ていきます。
HTML での音声と動画の使用
===============

HTML の `<audio>` および `<video>` 要素により、ウェブページに音声や動画のコンテンツを埋め込むことができます。さらに言えば、その基盤となるインターフェイスは、画面の外でもメディアを全般的に操作し、再生するためのキーとなるものです。このガイドでは、メディア要素を復習し、HTML コンテンツで使用する方法について説明します。

**メモ:** このガイドは、MDNで散在している様々な場所のコンテンツを、1つのまとまった文書やその集合に統合するために計画された更新です。この作業物はまだ予定されていませんが、近いうちに来ることを期待しています。今のところ、お探しの重要な情報の一部は、このトピックに関する学習領域の記事で得ることができます。

音声と動画の操作は始めるにはよいかもしれませんが、現時点ではこれらのオブジェクトを画面外で使用するための具体的なガイドはありません。

関連情報
----

* ウェブメディア技術
MathML 要素リファレンス
===============

これは MathML 要素のアルファベット順リストです。これらはすべて `MathMLElement` (en-US) クラスを実装しています。

**メモ:** MathML のメインページで説明されているように、 MDN は MathML Core を参照仕様として使用しています。しかし、一部のブラウザーでまだ実装されている古い機能も文書化しています。 MathML 4には、これらの機能やその他の機能の詳細が記載されています。

MathML 要素（アルファベット順）
-------------------

### math

* `<math>` （最上位要素）
### A

* `<maction> (en-US)` 
非推奨
 （部分式にバインドされたアクション）
* `<annotation> (en-US)` （データ注釈）
* `<annotation-xml> (en-US)` （XML 注釈）
### E

* `<menclose>` 
Non-standard
 （囲みコンテンツ）
* `<merror>` ）（囲み構文エラーメッセージ）
### F

* `<mfenced>` 
Non-standard

非推奨
 （括弧）
* `<mfrac>` （分数）
### I

* `<mi>` （識別子）
### M

* `<mmultiscripts>` （前置字とテンソル添字）
### N

* `<mn>` （数字）
### O

* `<mo>` （演算子）
* `<mover>` （真上付き）
### P

* `<mpadded> (en-US)` （コンテンツまわりの空白）
* `<mphantom>` （予約スペースを持つ不可視コンテンツ）
* `<mprescripts> (en-US)` （前置文字の区切り文字）
### R

* `<mroot>` （累乗根）
* `<mrow> (en-US)` （グループ化された部分式）
### S

* `<ms> (en-US)` （文字列リテラル）
* `<semantics>` （意味的注釈用のコンテナー）
* `<mspace>` （空白）
* `<msqrt>` （平方根）
* `<mstyle> (en-US)` （書式変更）
* `<msub>` （下付き）
* `<msup>` （上付き）
* `<msubsup>` （下付き上付きの組）
### T

* `<mtable>` （表または行列）
* `<mtd>` （表または行列のセル）
* `<mtext>` （テキスト）
* `<mtr>` （表または行列の列）
### U

* `<munder>` （真下付き）
* `<munderover> (en-US)` （真下付きと真上付きの組）
MathML 要素（カテゴリー別）
-----------------

### 最上位要素

* `<math>` （最上位要素）
### トークン要素

* `<mi>` （識別子）
* `<mn>` （数字）
* `<mo>` （演算子）
* `<ms> (en-US)` （文字列リテラル）
* `<mspace>` （空白）
* `<mtext>` （テキスト）
### 一般レイアウト

* `<menclose>` 
Non-standard
 （囲みコンテンツ）
* `<merror>` ）（囲み構文エラーメッセージ）
* `<mfenced>` 
Non-standard

非推奨
 （括弧）
* `<mfrac>` （分数）
* `<mpadded> (en-US)` （コンテンツまわりの空白）
* `<mphantom>` （予約スペースを持つ不可視コンテンツ）
* `<mroot>` （累乗根）
* `<mrow> (en-US)` （グループ化された部分式）
* `<msqrt>` （平方根）
* `<mstyle> (en-US)` （書式変更）
### スクリプトと制限要素

* `<mmultiscripts>` （前置字とテンソル添字）
* `<mover>` （真上付き）
* `<mprescripts> (en-US)` （前置文字の区切り文字）
* `<msub>` （下付き）
* `<msubsup>` （下付き上付きの組）
* `<msup>` （上付き）
* `<munder>` （真下付き）
* `<munderover> (en-US)` （真下付きと真上付きの組）
### 表形式の数式

* `<mtable>` （表または行列）
* `<mtd>` （表または行列のセル）
* `<mtr>` （表または行列の列）
### カテゴリー外の要素

* `<maction> (en-US)` 
非推奨
 （部分式にバインドされたアクション）
意味的注釈
-----

* `<annotation> (en-US)` （データ注釈）
* `<annotation-xml> (en-US)` （XML 注釈）
* `<semantics>` （意味的注釈用のコンテナー）
関連情報
----

* MathML
* MathML 属性リファレンス
例
=

以下のリンクでは、複雑な数学の概念をウェブコンテンツで表示するための MathML の使い方を理解するのに役立つ例がいくつかあります。

ピタゴラスの定理

ピタゴラスの定理の証明を表示する簡単な例です。

二次方程式の解の公式の導出

二次方程式の解の導出の概要です。

MathML 耐久テスト

大量のテストマークアップです。
MathML の属性値
===========

MathML 固有の型
-----------

CSS データ型に加え、一部の MathML 属性は以下の型を受け入れます。

* `<unsigned-integer>`: `<integer>` で、最初の文字が U+002D HYPHEN-MINUS character (-) でも U+002B PLUS SIGN (+) でもないものです。例えば `1234` です。
* `<boolean>`: `true` または `false` の文字列で、論理値を表します。
MathML における古い長さ
---------------

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

`<length-percentage>` の代わりに、 MathML は独自の長さを記述するための型を定義していました。受け入れられる値には、単位のないゼロ以外の長さの値（例えば、 `500%` を意味する `5`）、ドットで終わる数字を含む値（例えば、 `34.px`）、名前付きの空間（例えば、 `thinmathspace`）が含まれていました。互換性のために、等価な `<percentage>` 値でゼロでない単位なしの長さの値を置き換えること、数字で不要なドットを削除すること、名前付きの長さには以下の置き換えを使用することが推奨されています。
```

veryverythinmathspace  => 0.05555555555555555em
verythinmathspace      => 0.1111111111111111em
thinmathspace          => 0.16666666666666666em
mediummathspace        => 0.2222222222222222em
thickmathspace         => 0.2777777777777778em
verythickmathspace     => 0.3333333333333333em
veryverythickmathspace => 0.3888888888888889em
```

### 単位

| 単位 | 説明 |
| --- | --- |
| `em` | `Font-relative` 単位 |
| `ex` | `Font-relative` 単位（その要素の "x" 高、多くのフォントでは `1ex ≈ 0.5em`） |
| `px` | ピクセル |
| `in` | インチ（1 インチ = 2.54 センチメートル） |
| `cm` | センチメートル |
| `mm` | ミリメートル |
| `pt` | ポイント (1 point = 1/72 inch) |
| `pc` | パイカ (1 pica = 12 points) |
| `%` | 既定値のパーセント値 |

### 定数

| 定数 | 値 |
| --- | --- |
| `veryverythinmathspace` | 1/18`em` |
| `verythinmathspace` | 2/18`em` |
| `thinmathspace` | 3/18`em` |
| `mediummathspace` | 4/18`em` |
| `thickmathspace` | 5/18`em` |
| `verythickmathspace` | 6/18`em` |
| `veryverythickmathspace` | 7/18`em` |
| `negativeveryverythinmathspace` | -1/18`em` |
| `negativeverythinmathspace` | -2/18`em` |
| `negativethinmathspace` | -3/18`em` |
| `negativemediummathspace` | -4/18`em` |
| `negativethickmathspace` | -5/18`em` |
| `negativeverythickmathspace` | -6/18`em` |
| `negativeveryverythickmathspace` | -7/18`em` |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
グローバル属性
=======

**グローバル属性**は、すべての MathML 要素で共通の属性です。これらはすべての要素に使用することができますが、一部の要素には効果がないことがあります。

グローバル属性はすべての MathML要素 に指定することができます。すなわち、たとえそれらの要素を使用することが、その文書が MathML に準拠しなくなったとしても、標準外の要素はこれらの属性を許可しなければなりません。

基本的な MathML のグローバル属性に加え、以下のグローバル属性も存在します。

* イベントハンドラー属性、例えば **`onclick`**、**`onfocus`**、など。
* `href` (en-US) 属性、 MathML 要素をハイパーリンクにします。
グローバル属性の一覧
----------

`class`

要素のクラスの空白区切りのリスト。クラスによって、CSS や JavaScript はクラスセレクターや、 `Document.getElementsByClassName()` メソッドのような関数を通して、特定の要素を選択してアクセスすることができます。

`data-*`

MathML と DOM 表現との間でスクリプトが使用する独自の情報を交換することができるようにする、カスタムデータ属性と呼ばれる属性のクラスを形成します。このようなカスタムデータはすべて、属性が設定されている要素の `MathMLElement` (en-US) インターフェイスを通して利用できます。 `HTMLElement.dataset`プロパティは、それらにアクセスします。

`dir` (en-US)

MathML 要素の書字方向を示す列挙属性。取ることができるのは以下の値です。

* `ltr` は *left to right* を意味しており、左から右へ数式を表示するために使用します（例：イギリスやモロッコスタイル）
* `rtl` は *right to left* を意味しており、右から左に数式を表示するために使用します（例：マグレブやマッハレックスタイル）

`displaystyle` (en-US):

論理値で、要素の math-style を設定します。

* `true`: `normal` を意味します。
* `false`: `compact` を意味します。

`id`

文書内で固有の識別子 (ID) を定義します。その目的は、（フラグメント識別子を使用して）リンクしたり、スクリプトを実行したり、（CSS を使用して）スタイル設定したりするときに要素を識別することです。

`mathbackground` (en-US)

要素の背景色です。

`mathcolor` (en-US)

要素の色です。

`mathsize` (en-US)

要素の font-size として使用される `<length-percentage>` です。

`nonce`

コンテンツセキュリティポリシーが指定されたフェッチを許可するかどうかを決定するために使用できる暗号化ノンス（「一度だけ使用する番号」）です。

`scriptlevel` (en-US)

要素の math-depth を指定します。受け入れられる値と地図は scriptlevel ページ (en-US)を参照してください。

`style`

要素に適用するCSSスタイル設定を格納します。スタイルは別個のファイルで定義することを推奨します。この属性と `<style>` 要素の主な目的は、例えばテストのため、すばやくスタイル設定ができるようにすることです。

`tabindex`

要素が入力フォーカスを受け取ることができるかどうか（*focusable* であるかどうか）、順次キーボードナビゲーションに参加するかどうか、参加する場合はどの位置かを示す整数属性です。いくつかの値を取ることができます。

* *負の値* は、その要素がフォーカス可能であるべきであるが、キーボードナビゲーションによって順次到達可能であってはならないことを意味しています。
* `0` はその要素がフォーカス可能で、キーボードナビゲーションで順次到達可能であることを意味しますが、その相対的な順序はプラットフォームの規約によって定義されます。
* *正の値* は、要素がフォーカス可能で、順次キーボードナビゲーションで到達可能であることを意味します。要素がフォーカスされる順序は、 **tabindex** の増加値です。複数の要素が同じ tabindex を共有する場合、それらの相対順序は文書内の相対位置に従います。

仕様書
---

| Specification |
| --- |
| MathML Core # dfn-dir |
| MathML Core # dfn-displaystyle |
| MathML Core # dfn-mathbackground |
| MathML Core # dfn-mathcolor |
| MathML Core # dfn-mathsize |
| MathML Core # dfn-scriptlevel |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Element` インターフェイスで、ほとんどのグローバル属性を問い合わせることができます。
ピタゴラスの定理の証明
===========

ピタゴラスの定理を証明します。

**命題**: 直角三角形では、斜辺の 2 乗は他の 2 辺の 2 乗の和に等しい。

すなわち、 a と b を脚とし、c を斜辺とすると、


a 
2

+ 

b 
2

= 

c 
2



**証明:** 大きな正方形の面積は、内側の正方形の面積（斜辺の 2 乗）に 4 つの三角形の面積を加えたものに等しいことを示すことで、定理を代数的に証明することができます。



( 
a 
+ 
b 
) 

2 

= 

c 
2

+ 
4 
⋅ 
(

1 
2 

a 
b 
)


a 
2

+ 
2 
a 
b 
+ 

b 
2

= 

c 
2

+ 
2 
a 
b


a 
2

+ 

b 
2

= 

c 
2
MathML: 二次方程式の解の公式を導く
=====================

このページでは、二次方程式の解の公式の導出について概説します。

二次方程式の一般形をとり、 x について解きます。



a
⁢

x
2

+ 
b
⁢
x

+ 
c

=
0



a
⁢

x
2

+ 
b
⁢
x

=
-
c



x
2

+ 

b

a

⁤
x

=

-
c

a

首位係数で両辺を割る。




x
2

+ 

b

a

⁤
x
+ 

(

b

2
a

)

2

=

-
c
(
4
a
)

a
(
4
a
)

+ 

b
2

4

a
2


平方完成。



(
x
+ 

b

2
a

)
(
x
+ 

b

2
a

)
=

b
2

- 
4
a
c

4

a
2



判別式が現れる。



(
x
+ 

b

2
a

)

2

=

b
2

- 
4
a
c

4

a
2






x
+ 

b

2
a

=

b
2

- 
4
a
c

4

a
2







x

=

-
b

2
a

±

{
C
}


b
2

- 
4
a
c

4

a
2


頂点を求める公式。




x

=

-
b
±

{
C
}

b
2

- 
4
a
c

2
a
<semantics>
===========

**`<semantics>`** は MathML の要素で、 MathML 表現に注釈を付けます。例えば、軽量マークアップ言語としてのテキストソース、または特別な XML 方言で表現されている数学的意味などです。一般的に、その構造は以下の通りです。

* 注釈を付けるべき MathML 式である最初の子。
* 続く `<annotation>` または `<annotation-xml>` 要素。後者は OpenMath のような XML 形式のために予約されています。

既定では、`<semantics>`要素の最初の子要素だけがレンダリングされ、他の子要素は display に `none` を設定した状態で保有されます。

**メモ:** 古い MathML 仕様では、レンダラーが利用できる注釈に従って既定のレンダリングを決定することができました。可視の子を決定する以下のルールは、いくつかのブラウザーで実装されています。表示する MathML とコンテンツ MathML の区別については、 MathML 4 を参照してください。

* 適用すべき規則が他にない場合、既定では最初の子要素のみ描画され、これが表示 MathML と見なされます。
* 最初の子要素が `<annotation>` または `<annotation-xml>` 以外の表示 MathML 要素の場合、当要素が描画されます。
* 表示 MathML が見当らない場合、 `src` 属性のない `<semantics>` 要素の最初の `<annotation>` または `<annotation-xml>` 子要素を描画します。 `<annotation-xml>` 要素については、 `encoding` 属性が以下のいずれかの値と等しくなければいけません。
    + `"application/mathml-presentation+xml"`
    + `"MathML-Presentation"`
    + `"SVG1.1"`
    + `"text/html"`
    + `"image/svg+xml"`
    + `"application/xml`".

ここに `"application/mathml+xml"` を挙げて*いない*ことに留意してください、というのもこれでは内容 MathML か表示 MathML かを区別できないからです。

属性
--

`<semantics>`、`<annotation>`、`<annotation-xml>` の各要素はグローバル MathML 属性を受け入れます。さらに、`<annotation>` と `<annotation-xml>` 要素には、以下の属性を設定することができます。

`encoding`

この注釈における意味的情報の符号化方法（例: `"MathML-Content"`, `"MathML-Presentation"`, `"application/openmath+xml"`, `"image/png"`）。

`src` 
非推奨

意味的情報の外部ソースの場所。

例
-


```html
<math display="block">
  <semantics>
    <!-- 最初の子は、既定でレンダリングされる MathML 式です。 -->
    <mrow>
      <msup>
        <mi>x</mi>
        <mn>2</mn>
      </msup>
      <mo>+</mo>
      <mi>y</mi>
    </mrow>

    <!-- 数式の意味を表現するための専用 XML 方言 "Content 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>

    <!-- 数式の PNG 画像で注釈を付けます。 -->
    <annotation encoding="image/png" src="some/path/formula.png" />

    <!-- 数式を書くための軽量なマークアップ言語である LaTeX で
 注釈をつけることができます。 -->
    <annotation encoding="application/x-tex"> x^{2} + y </annotation>
  </semantics>
</math>
```

仕様書
---

| Specification |
| --- |
| MathML Core # semantics-and-presentation |

ブラウザー互換機
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
<msubsup>
=========

**`<msubsup>`** は MathML の要素で、式に下付き文字と上付き文字の両方を一緒に付けるために使用されます。

`<msubsup> ベース 下付き文字 上付き文字 </msubsup>` という構文を使用します。

属性
--

この要素の属性には、グローバル MathML 属性の他、以下の非推奨属性があります。

`subscriptshift` 
非推奨

Non-standard

`<length-percentage>`として、下付き文字を式のベースラインより下にシフトするための最小量。

`superscriptshift` 
非推奨

Non-standard

`<length-percentage>`として、上付き文字を式のベースラインより上にシフトするための最小量。


**メモ:** `subscriptshift` および `superscriptshift` 属性については、ブラウザーによっては古い MathML の長さも受け入れられるかもしれません。

例
-


```html
<math display="block">
  <msubsup>
    <mo>&#x222B;<!--Integral --></mo>
    <mn>0</mn>
    <mn>1</mn>
  </msubsup>
</math>
```

仕様書
---

| Specification |
| --- |
| MathML Core # subscripts-and-superscripts-msub-msup-msubsup |

ブラウザー互換性
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `<msub>` (上付き文字)
* `<msup>` (下付き文字)
* `<mmultiscripts>` (前付き文字とテンソルインデックス)
<mn>
====

**`<mn>`** は MathML の要素で、通常は区切り記号（ピリオドかカンマ）をもつ可能性がある数字列である、**数値**リテラルを表します。ただし、 "eleven" のように、実際には数値である任意のテキストを保持することも可能です。

属性
--

この要素はグローバル MathML 属性を受け入れます。

例
-


```html
<math display="block">
  <mn>0</mn>
</math>

<math display="block">
  <mn>1.337</mn>
</math>

<math display="block">
  <mn>twelve</mn>
</math>

<math display="block">
  <mn>XVI</mn>
</math>

<math display="block">
  <mn>2e10</mn>
</math>
```

仕様
--

| Specification |
| --- |
| MathML Core # number-mn |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
<msup>
======

**`<msup>`** は MathML の要素で、式に上付き文字を付けるために用います。

`<msup> ベース 上付き文字 </msup>` という構文を使用します。

属性
--

この要素の属性には、グローバル MathML 属性の他、以下の非推奨属性があります。

`superscriptshift` 
非推奨

Non-standard

`<length-percentage>`で、上付き文字のベースラインを上に移動させる最小量を示します。


**メモ:** `superscriptshift` 属性については、ブラウザーによっては古い MathML の長さも受け入れられるかもしれません。

例
-
```

<link
 rel="stylesheet"
 href="https://fred-wang.github.io/MathFonts/LatinModern/mathfonts.css" />
```



```html
<math display="block">
  <msup>
    <mi>X</mi>
    <mn>2</mn>
  </msup>
</math>
```

仕様書
---

| Specification |
| --- |
| MathML Core # subscripts-and-superscripts-msub-msup-msubsup |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `<msub>` （下付き文字）
* `<msubsup>` （上付き文字と下付き文字の組）
* `<mmultiscripts>` (前付き文字とテンソルインデックス)
<merror>
========

MathML `<merror>` 要素は、エラーメッセージとしてコンテンツを表示するために使用されます。Firefox でこのエラーメッセージは、典型的な XML エラーメッセージのようにレンダリングされます。MathML マークアップが間違っているか整形式でない XML のときに、このエラーがスロー**されない**ことに注意してください。`<merror>` とは何の関係もない、（MathML の XHTML 表記の場合に）依然として XML 解析エラーが発生します。

属性
--

class, id, style

スタイルシートと一緒に用いて提供されます。

href

指定された URI へのハイパーリンクの設定に使用されます。

mathbackground

背景色。`#rgb`、`#rrggbb`およびHTML 色名を使用できます。

mathcolor

文字色と分数の線の色。`#rgb`、`#rrggbb`およびHTML 色名を使用できます。

例
-


```html
<math>
  <merror>
    <mrow>
      <mtext> Division by zero: </mtext>
      <mfrac>
        <mn> 1 </mn>
        <mn> 0 </mn>
      </mfrac>
    </mrow>
  </merror>
</math>
```

仕様
--

| Specification |
| --- |
| MathML Core # error-message-merror |

ブラウザー互換性
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.