Copyright © 2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
この仕様は、ブラウザー実装に適した数式マークアップ言語(MathML)のコアサブセットを定義します。 MathMLは数式表記を記述し、その構造と内容の両方を保持するためのマークアップ言語です。 MathMLの目標は、HTMLがテキストに対して可能にしたように、数学をワールドワイドウェブで配信・受信・処理できるようにすることです。
このセクションは、本書が公開された時点の文書のステータスを説明します。現在のW3C刊行物一覧と本技術レポートの最新改訂版は W3C 標準およびドラフト一覧の https://www.w3.org/TR/ で確認できます。
この文書は Math作業グループ により、 勧告トラックを使用して 候補勧告スナップショットとして公開されました。
候補勧告としての公開は、W3Cおよびそのメンバーによる支持を示すものではありません。 候補勧告スナップショットは 幅広いレビューを受けており、 実装経験 の収集を目的とし、 ワーキンググループメンバーによる ロイヤリティフリーライセンス での実装のコミットメントがあります。
この候補勧告は、2025年9月30日より早く提案勧告に進むことはありません。
この文書は、 W3C 特許ポリシー に基づいて活動するグループによって作成されました。 W3Cは、 グループの成果品に関して提出された特許開示の公開リスト を管理しています;そのページには特許開示方法についての手順も記載されています。 特定の特許が 必須クレーム を含むと認識した場合は、 W3C特許ポリシー第6節に従い開示が必要です。
この文書は 2023年11月3日W3Cプロセス文書 により管理されています。
このセクションは規範的ではありません。
[MATHML3] 仕様には、ウェブレンダリングエンジン間で一貫して実装したり、ユーザー定義の構成で拡張したりすることを困難にするいくつかの欠点があります。例としては次のようなものがあります:
本MathML Core仕様は、TeXBookの付録G [TEXBOOK] およびOpen Font Format [OPEN-FONT-FORMAT] や [OPEN-TYPE-MATH-ILLUMINATED] からの追加規則を用いて、数学式の視覚的レンダリングを可能な限り正確に定義することでこれらの問題に対処することを目的としています。また、現代のブラウザー実装やウェブ技術 [HTML] [SVG] [CSS2] [DOM] に依存し、必要に応じてそれらとの相互作用を明確にしたり、ウェブプラットフォームのレイヤリングを改善するための新しい低レベルのプリミティブを導入したりします。
このフレームワークに適合しない、またはそれほど基本的でないMathML3の部分は省略され、代わりに別のより大きな [MATHML4] 仕様で説明されています。どの数学機能が将来のMathML Coreに含まれるか、またはポリフィルとして実装されるかの詳細はまだ未確定です。この問題やその他の潜在的な改善はGitHubで追跡されています。
実装の詳細レベルを高め、実用的なサブセットに注力し、ブラウザー主導の設計に従い、自動化されたウェブプラットフォームテストに依拠することにより、本仕様はMathMLの相互運用性を大幅に向上させると期待されます。さらに、MathMLのレイヤリングに関する取り組みにより、ユーザーは shadow trees, custom elements、あるいは[HOUDINI] のAPIなどの現代的なウェブ技術を用いて、 MathML 4仕様の残りの部分を実装したり、より一般的にMathML Coreを拡張したりできるようになります。
用語 MathML 要素 は MathML 名前空間 の任意の要素を指します。 この仕様で定義される MathML 要素は MathML コア要素 と呼ばれており、以下に一覧があります。 下記以外の MathML 要素は 未知の MathML 要素 と呼びます。
annotation
annotation-xml
maction
math
merror
mfrac
mi
mmultiscripts
mn
mo
mover
mpadded
mphantom
mprescripts
mroot
mrow
ms
mspace
msqrt
mstyle
msub
msubsup
msup
mtable
mtd
mtext
mtr
munder
munderover
semantics
グループ化要素 は
maction,
math,
merror,
mphantom,
mprescripts,
mrow,
mstyle,
semantics
および 未知の MathML 要素 です。
スクリプト要素 は
mmultiscripts,
mover,
msub,
msubsup,
msup,
munder
および
munderover
です。
この仕様で定義される属性には名前空間がなく、 MathML属性 と呼ばれます:
maction 属性mo 属性mpadded 属性mspace 属性munderover 属性mtd 属性encoding
display
linethickness
MathML は、文書内の各 MathML マークアップのインスタンスをカプセル化する単一の最上位(ルート) math 要素を指定します。他のすべての
MathML コンテンツは <math> 要素内になければなりません。
<math> 要素は 2.1.3
グローバル属性 および
以下の属性を受け入れます:
display
属性がある場合、
ASCII 大文字・小文字を区別せず
block または inline と一致する必要があります。
A.
ユーザーエージェントスタイルシート で
この属性のデフォルト値に影響するルール(block math または inline math)
および math-style
(normal または compact)プロパティが記述されています。
属性が無い場合や無効な値の場合、ユーザーエージェントスタイルシートはそれを inline と同じように扱います。
この仕様は alttext 属性に固有の可観測な動作を定義しません。
alttext
属性は数式レイアウトを実装していない一部のレガシーシステムで代替テキストとして用いられる場合があります。
<math> 要素で計算される
display
プロパティが block math や inline math でない場合は、CSS
仕様で記述された該当の値によりレイアウトされます。そうでない場合は
mrow
要素のレイアウトアルゴリズムで
math content box
を生成します。その math content box
が、要素のレイアウト内容として利用されます(CSS の display: block や display: inline の場合)。
さらに、計算結果が block math の場合は、その math content box は
コンテナ内で水平中央にレンダリングされます。
$$...$$ と inline mode $...$ は、
それぞれ display="block" および display="inline" に対応します。
次の例では、math
数式が新しい行に display モードで描画され、コンテナ内で数式内容が中央揃えとなります:
<div style="width: 15em;">
This mathematical formula with a big summation and the number pi
<math display="block" style="border: 1px dotted black;">
<mrow>
<munderover>
<mo>∑</mo>
<mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow>
<mrow><mo>+</mo><mn>∞</mn></mrow>
</munderover>
<mfrac>
<mn>1</mn>
<msup><mi>n</mi><mn>2</mn></msup>
</mfrac>
</mrow>
<mo>=</mo>
<mfrac>
<msup><mi>π</mi><mn>2</mn></msup>
<mn>6</mn>
</mfrac>
</math>
is easy to prove.
</div>
比較として、同じ数式をインラインモードで表示した場合、強制改行なしでテキスト段落内に埋め込まれます。
mrow
のレイアウトアルゴリズムにより指定されたベースラインが垂直方向の揃えに使われます。和記号、イコール記号、分数の中央が互いに揃っていますが、周囲のテキストのアルファベットのベースラインとは一致しません。
適切な数学レンダリングには数学フォントの利用が必要なため、
ユーザーエージェントスタイルシート
では <math> 要素で font-family を
親要素から継承せず math
に設定すべきです。また親コンテナで設定されることのある font-style、font-weight、
direction、text-indent などの CSS
プロパティは数式自体には適用されないため、ユーザーエージェントスタイルシートでそれらをデフォルトでリセットする規則があります。
math {
direction: ltr;
text-indent: 0;
letter-spacing: normal;
line-height: normal;
word-spacing: normal;
font-family: math;
font-size: inherit;
font-style: normal;
font-weight: normal;
display: inline math;
math-shift: normal;
math-style: compact;
math-depth: 0;
}
math[display="block" i] {
display: block math;
math-style: normal;
}
math[display="inline" i] {
display: inline math;
math-style: compact;
}
CSSデータ型に加え、いくつかのMathML属性は次のMathML固有型に依存します。
true か false に一致する文字列。
以下の属性はすべてのMathML要素に共通で指定できます。
id、
class、
style、
data-*、
autofocus、および
nonce、
tabindex
属性は、HTML要素で定義されているものと同じ構文と意味です。
dir 属性が存在する場合、
ASCII大文字小文字区別なしで ltr または rtl と一致していなければなりません。
その場合、ユーザーエージェントはその属性を
呈示用ヒントとして要素の
direction
プロパティに対応付けて扱うこととなります。
具体的には、rtl との一致は rtl に、
ltr との一致は ltr にマップされます。
rtl が多く使われます。
しかし右から左に書く言語でも数式自体は左から右の場合が多く、ユーザーエージェントスタイルシートが対応して
direction
プロパティを
math
要素上でリセットします。
次の例では、dir 属性を使い「𞸎 + 𞸑 のべき(٢ 分の 𞸟 + ١)」を 右から左にレンダリングしています。
<math dir="rtl">
<mrow>
<mi>𞸎</mi>
<mo>+</mo>
<msup>
<mi>𞸑</mi>
<mfrac>
<mn>٢</mn>
<mrow>
<mi>𞸟</mi>
<mo>+</mo>
<mn>١</mn>
</mrow>
</mfrac>
</msup>
</mrow>
</math>
すべてのMathML要素は、HTMLのイベントハンドラー属性同様にイベントハンドラー属性をサポートします。
すべてのイベントハンドラー属性は HTMLで HTMLElements がサポートするものと同様に、MathML要素でも MathMLElement IDL によりサポートされます。
mathcolor、
mathbackground
属性がある場合、値は
<color>型でなければなりません。
この場合、ユーザーエージェントは属性を
呈示用ヒントとして、要素の
colorおよび
background-color
プロパティに対応する値として設定します。
mathcolor属性はMathMLのテキストやバーなどの前景色を、
mathbackground属性は要素の背景色を示します。
mathsize
属性がある場合、有効な
<length-percentage>
でなければなりません。
この場合、ユーザーエージェントは属性を
呈示用ヒントとして
要素のfont-sizeプロパティに設定します。
mathsizeプロパティは数式中のグリフの高さを示し、それに応じて他の要素(スペーシングやシフト、バーの線の太さなど)も拡縮されます。
displaystyle
属性がある場合、値はboolean型でなければなりません。
この場合、ユーザーエージェントは属性を
呈示用ヒントとして要素の
math-style
プロパティに設定します。
具体的には、ASCII大文字小文字区別なしでtrueはnormalに、falseはcompactにマップされます。
この属性は、数式の論理的高さ(値がfalseの場合に内容サイズやスクリプト配置を変更することで高さを最小化)を最小化するか否かを示します。
scriptlevel
属性がある場合、値は
+<U>、-<U>、<U>
のいずれかで、<U>は
unsigned-integer型です。
この場合、ユーザーエージェントは
scriptlevel属性を
呈示用ヒントとして要素の
math-depth
プロパティに対応する値で設定します。
具体的には +<U>、-<U>、<U> はそれぞれ
add(<U>)、
add(<-U>)、
<U> にマップされます。
displaystyleおよびscriptlevel値は、MathML要素内で自動調整されます。
これら属性を完全に実装するには、
A.
ユーザーエージェントスタイルシートに追加CSSプロパティの指定が必要です。
とりわけ全てのMathML要素には font-size: math がデフォルト指定され、scriptlevel の変化が反映されます。
この例では、munder
要素でベース「∑」にスクリプト「A」を付与しています。デフォルトではΣが親から継承した
フォントサイズで描画され、「A」は小さくスクリプト配置されます。displaystyleがtrueだとΣが大きく描画され「A」は下付きとなり、scriptlevelを「A」に0指定すると最上位math要素と同じフォントサイズになります。
<math>
<munder>
<mo>∑</mo>
<mi>A</mi>
</munder>
<munder displaystyle="true">
<mo>∑</mo>
<mi>A</mi>
</munder>
<munder>
<mo>∑</mo>
<mi scriptlevel="0">A</mi>
</munder>
</math>
\displaystyle、\textstyle、
\scriptstyle、\scriptscriptstyleはそれぞれ
displaystyle(true/false)・
scriptlevel(0/1/2)の組み合わせに対応します。
intent、 arg 属性は有効として予約されています。
この仕様ではintentおよびarg属性に固有の可観測動作は定義されていません。
MathMLはHTMLやSVGと混在して使用できます。詳細は各仕様 [HTML] [SVG] を参照してください。
SVGのrequiredExtensions
属性の評価時、ユーザーエージェントは
MathML名前空間で識別される言語拡張をサポートする必要があります。
この例では、インラインMathMLとSVG要素がHTML文書内で利用されています。SVG要素<switch>や<foreignObject>(<requiredExtensions>属性指定あり)は、図内にテキストフォールバック付きMathML数式を埋め込むために使用されています。さらに、HTMLinput要素も
mtext
内で使われており、数式内のインタラクティブな入力フィールドを実現しています。3.7
Semantics and
Presentationではannotation-xml
要素内でSVGやHTMLを使う例も参照できます。
...(コード部分は翻訳不要)...
ユーザーエージェントは本仕様で言及されているCSSの各機能や、 4. 数式レイアウトのためのCSS拡張 で新しく定義されたものをサポートしなければなりません。 また、display: contentsの計算ルールも適用されます。
MathMLコア要素を含むすべての文書は
A.
ユーザーエージェントスタイルシート
で記述されたCSSルールをユーザーエージェントレベルのスタイルシートのデフォルトとして含める必要があります。
特に、すべてのMathML要素は!importantルールで
writing mode
をhorizontal-lrに強制されます。
float
プロパティは親の計算済み表示値が
block mathまたはinline mathの場合、要素を浮動させたり、アウト・オブ・フローにしません。
::first-lineや
::first-letter
疑似要素は、計算済み表示値がblock mathまたはinline mathの要素には適用されず、
それら要素は祖先の最初のフォーマット済み行や最初の文字に寄与しません。
以下のCSS機能はサポートされず、無視しなければなりません:
white-spaceはすべてのMathML要素でnowrap扱いとなります。
align-content,justify-content,
align-self,justify-selfはMathML要素に効果を持ちません。
WebアプリケーションAPIをサポートするユーザーエージェントは Web application APIsに従い、 MathMLの視覚的レンダリングが[DOM]ツリーと同期されるようにしなければなりません。特に MathML属性が動的に変更された場合、必要な更新を行う必要があります。
DOM内でMathML要素を表すすべてのノードは、次の
MathMLElementインターフェースを実装し、スクリプトに公開しなければなりません。
...(コード部分は翻訳不要)...
GlobalEventHandlersおよび
HTMLOrForeignElement
インターフェースは[HTML]で定義されています。
この例では、MathML数式によって「α over 2」が表示されており、赤いαをクリックすると青いβに変わります。
...(コード部分は翻译不要)...
数学用フォントには一般に大きな積分記号など背の高いグリフが含まれるため、過度なテキスト行間を防ぐためにタイポグラフィメトリクスの使用が重要です。そのため、ユーザーエージェントはレイアウト時に OS/2テーブルのUSE_TYPO_METRICSフラグも考慮しなければなりません。[OPEN-FONT-FORMAT]
MathMLは著者がインタラクティブなユーザーエージェントでインタラクティブ性を提供するために、HTMLで説明されている
Focus
と同じコンセプト・アプローチ・ガイダンスを、MathML固有の調整や補足とともに提供します。
要素がフォーカスされた場合、Selectors Level 3 で定義される、適用されるCSSフォーカス関連疑似クラスが全て適用されます。
埋め込まれた
math
要素の内容
(トークン要素内のHTML要素を含む)は、所有者HTML文書(結合された順次フォーカス順序)の順次フォーカス順序に寄与します。
既定の
display
プロパティは A.
User Agent Stylesheet に記載されています:
<math> ルートに対しては、
display 属性の値に応じて inline math または block math
と等しくなります。
mtable,
mtr,
mtd
についてはそれぞれ inline-table, table-row および table-cell
と等しくなります。
maction
と
semantics
要素に対しては、none と等しくなります。
block math と等しくなります。
異なる writing modes での数式レイアウトを指定するために、 本仕様では [CSS-WRITING-MODES-4] の概念を使用します:
horizontal-lr および ltr
を使用しています。
他の書字方向の例については、図
4,
図
5 および
図
6 を参照してください。これらは数式レイアウトで使用されることのある他の書字方向の例です。
MathML 要素に使用されるボックスは、CSS と互換性を保ちながら、 数式内の非常に正確な位置や間隔を考慮してレイアウトを行うために、いくつかのパラメータに依存します:
ブロックメトリクス。 block size、 first baseline set および last baseline set。 MathML ボックスに対して以下の基線が定義されます:
MathML ボックスに対して、次のオフセットが定義されます:
horizontal-tb および
rtl のボックスモデル(例:アラビア語の数式で使用されることがある)
vertical-lr および ltr
のボックスモデル(例:モンゴル語の数式で使用されることがある)
vertical-rl および ltr
のボックスモデル(例:日本語の数式で使用されることがある)
以下は行相対メトリクスから得られるオフセットの例です:
ltr の場合は
line-left offset と一致し、
そうでない場合はボックスの inline size −(line-left offset + 子ボックスの
inline size)となります。
horizontal-lr、vertical-rl または sideways-rl の場合は
line-ascent となり、
それ以外の場合は line-descent となります。
各 MathML 要素には関連する math content box があり、 本章のレイアウトアルゴリズムで説明されるように、次の構造を用いて計算されます:
以下の追加手順を実行する必要があります:
line-ascent と line-descent を math content box のために計算した後、その block size はこれらの和に設定されます。
padding box のボックスメトリクスとオフセットは、 CSS に記載されている対応する padding プロパティを考慮して content box から取得されます。
padding box の baselines は content box と同じです。
もし content box に top accent attachment がある場合、 padding box も同じプロパティを持ち、inline-start padding によって増加します。 もし content box に italic correction がある場合、padding box も同じプロパティを持ち、inline-end padding によって増加します。
border box のボックスメトリクスとオフセットは、 CSS に記載されている対応する border-width プロパティを考慮して padding box から取得されます。
一般に、border box の baselines は padding box と同じです。 しかし、もし line-over のボーダーが正であれば ink-over baseline は border box の line-over 辺に設定され、 もし line-under のボーダーが正であれば ink-under baseline は border box の line-under 辺に設定されます。
もし padding box に top accent attachment がある場合、 border box も同じプロパティを持ち、inline-start 辺の border-width によって増加します。 もし padding box に italic correction がある場合、border box も同じプロパティを持ち、inline-end 辺の border-width によって増加します。
margin box のボックスメトリクスとオフセットは、 CSS に記載されている対応する margin プロパティを考慮して border box から取得されます。
margin box の baselines は border box と同じです。
もし padding box に top accent attachment がある場合、 margin box も同じプロパティを持ち、inline-start margin によって増加します。 もし padding box に italic correction がある場合、margin box も同じプロパティを持ち、inline-end margin によって増加します。
ボックスレイアウト中、オプションで inline stretch size constraint および block stretch size constraint パラメータが embellished operators に対して使用されることがあります。前者は、core operator が inline axis に沿って伸長される際に目標とすべきサイズを示します。 後者は、ink line-ascent および ink line-descent を示し、core operator が block axis に沿って伸長される際に覆うべき範囲を示します。 特に指定がない限り、これらのパラメータはボックスレイアウト中には無視され、子ボックスは伸長サイズ制約なしにレイアウトされます。
anonymous
box は DOM
ツリー内に関連付けられた要素を持たず、レイアウト目的のみに生成されるボックスです。匿名ボックスのプロパティは包む非匿名ボックスから継承され、非継承プロパティは初期値を持ちます。
anonymous
<mrow> box は
anonymous box であり、display が
block math に等しく、
セクション 3.3.1.2
<mrow> のレイアウト に記載されているようにレイアウトされます。
もし MathML 要素が anonymous <mrow> ボックスを生成する ならば、その要素は子を匿名の <mrow> ボックスで包みます。つまり、その要素の視覚的フォーマットモデル内のサブツリーは匿名の <mrow> ボックスで構成され、その匿名ボックスが当該 MathML 要素の子に関連付けられたボックスを含みます。
次の例では、
math
と
mrow
要素はセクション
3.3.1.2 <mrow>
のレイアウト に記載されているようにレイアウトされます。特に、
<math> 要素はその <mo>≠</mo> 子の周りに適切な間隔を追加し、
<mrow> 要素はその <mo>|</mo> 子を垂直方向に伸長します。
また、
mtd
要素は display: table-cell を持ち、
msqrt
要素はその子の周りに根記号を表示します。しかし、これらの要素もセクション
3.3.1.2 <mrow>
のレイアウト に記載されているものと類似した方法で子を配置します:<msqrt> 要素はその
<mo>+</mo> 子の周りに適切な間隔を追加し、一方 <mtd> 要素はその
<mo> 子を垂直方向に伸長します。
これを可能にするために、これら二つの要素のそれぞれが
anonymous <mrow>
box を生成します。
<math>
<mrow>
<mo>|</mo>
<mtable>
<mtr>
<mtd>
<mi>x</mi>
</mtd>
<mtd>
<mo>(</mo>
<mfrac linethickness="0">
<mn>5</mn>
<mn>3</mn>
</mfrac>
<mo>)</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<msqrt>
<mn>7</mn>
<mo>+</mo>
<mn>2</mn>
</msqrt>
</mtd>
<mtd>
<mi>y</mi>
</mtd>
</mtr>
</mtable>
<mo>|</mo>
</mrow>
<mo>≠</mo>
<mn>0</mn>
</math>
MathML 要素は様々な間隔規則のために重なり合うことがあります。また、追加のグラフィカル要素(バー、根記号など)を含むこともあります。
計算後のスタイルが display: block math または display: inline math の MathML
要素は新しいスタッキングコンテキストを生成します。これらの MathML 要素の 描画順序
は、ブロック要素とまったく同じです。追加のグラフィカル要素はテキストと背景の後に描画されます(display: inline math の場合はステップ 7.2.4
の直後、display: block math の場合はステップ 7.2 の直後)。
表示マークアップにおけるトークン要素は、意味を持つ数学記法の最小単位を表現することを広く意図しています。トークンは大まかに言えば、テキスト中の単語に相当します。しかし、数学記法の厳密かつ記号的な性質のため、さまざまなカテゴリやトークン要素のプロパティが MathML マークアップにおいて重要な役割を果たします。対照的に、テキストデータでは、個々の単語が特別にマークアップされたりスタイル付けされる必要はほとんどありません。
mtext
要素は、そのままレンダリングすべき任意のテキストを表現するために使用します。一般的に、<mtext> 要素は注釈テキストを示すことを意図しています。
<mtext> 要素は 2.1.3
グローバル属性 で説明されている属性を受け入れます。
次の例では、
mtext
を定義内の条件語句として使っています:
<math>
<mi>y</mi>
<mo>=</mo>
<mrow>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mtext> if </mtext>
<mrow>
<mi>x</mi>
<mo>≥</mo>
<mn>1</mn>
</mrow>
<mtext> and </mtext>
<mn>2</mn>
<mtext> otherwise.</mtext>
</mrow>
</math>
この要素の算出
display
プロパティが block math または inline math でない場合、対応する値が記述されている CSS
仕様に従ってレイアウトされます。それ以外の場合は、以下のレイアウトが行われます。
<mtext> 要素が
強制改行 や ソフトラップの機会 を含まないテキストコンテンツのみから成る場合は、そのテキストのために生成される匿名子ノードが該当する CSS
仕様で定められた通りにレイアウトされ、かつ次の通りです:
<mtext> 要素の top accent attachment として使用されます。
それ以外の場合、mtext 要素は ブロックボックス としてレイアウトされ、対応する min-content inline
size、max-content inline size、inline size、block size、first
baseline set および last baseline set が math content
box のために用いられます。
mi 要素は、記号名や 任意のテキスト を識別子としてレンダリングするために使用します。識別子には変数、関数名、記号定数などが含まれます。
<mi> 要素は 2.1.3
グローバル属性 で説明されている属性に加えて、次の属性を受け入れます。
レイアウトアルゴリズムは
mtext
要素と同じです。
ユーザーエージェントスタイルシート
には、自動イタリックを 4.2
math-auto 変換 で導入された text-transform 値で実装するために、次のプロパティを含める必要があります。
mi {
text-transform: math-auto;
}
mathvariant
属性が存在する場合は
ASCII大文字・小文字を区別しない
形で normal と一致しなければなりません。
その場合、ユーザーエージェントはこの属性をプレゼンテーションヒントとみなし、
要素の
text-transform
プロパティを none に設定します。それ以外の場合、この属性は効果を持ちません。
[MathML3]
では、
mathvariant
属性はトークン要素の論理クラスを定義するために使用され、それぞれのクラスは特定の意味を持つ書体的に関連した記号トークンの集合を提供していました。
MathML Core では、この属性は
mi
要素の自動イタリックを解除する場合にのみ使われます。他の用途については、適切な
数学用英数字記号 [UNICODE] を使用してください。セクション C.
数理用英数字記号 も参照してください。
次の例では、
mi
は変数や関数名をレンダリングするために使われています。
4.2
math-auto 変換 によるデフォルトスタイル text-transform: math-auto の効果は、
最初の <mi> にはありません("cos" は3文字で構成されるため)、
2番目の <mi> は数学イタリック体でレンダリングされます("c" は1文字、U+0063 ラテン小文字 c で、
イタリック テーブルに従い U+1D450 数学イタリック小文字 c にマッピングされます)、
3番目の <mi> には効果がありません(mathvariant="normal" により、
text-transform が none になる)、4番目の
<mi> にも効果がありません(U+221E 無限大のイタリックテーブルにマッピングが定義されていない)。
<math>
<mi>cos</mi>
<mo>,</mo>
<mi>c</mi>
<mo>,</mo>
<mi mathvariant="normal">c</mi>
<mo>,</mo>
<mi>∞</mi>
</math>
mn 要素は「数値リテラル」や 数値リテラルとしてレンダリングされるべき他のデータを表します。一般的に、数値リテラルは桁(数字)の並びであり、おそらく小数点を含む、符号なし整数または実数を表します。
<mn> 要素は 2.1.3
グローバル属性 で説明されている属性を受け入れます。そのレイアウトアルゴリズムは
mtext
要素と同じです。
mo
要素は、演算子または演算子としてレンダリングされるべきもの全般を表します。
一般に、数学演算子の記法上の慣習は非常に複雑であるため、MathMLは<mo>要素のレンダリング動作を指定するために比較的高度な仕組みを提供します。
その結果、MathMLにおいて「演算子としてレンダリングされるべきもの」には、通常意味での数学演算子以外の記号も多く含まれます。中置・前置・後置の通常の演算子のほか、波括弧や括弧、絶対値バーといったフェンス記号、カンマやセミコロン等のセパレータ、シンボル上のバーやチルダなどの数学アクセントも該当します。本章では「演算子」という用語をこの広い意味で用います。
<mo>要素は2.1.3
グローバル属性に加え、以下の属性を受け入れます:
本仕様はfence属性及びseparator属性に対して特有の可観測な動作は定義しません。
fence
および
separator
を用いて演算子の特定のセマンティクスを記述できます。
デフォルト値はOperators_fenceやOperators_separator
テーブル、または演算子辞書の人間可読版により決まります。
以下の例では、
mo
要素が 2項演算子 +
のために使われています。デフォルトの間隔はその演算子の周りで対称になります。form属性によって前置演算子として扱うよう強制すると、より狭い間隔が使われます。
また、
lspace
属性や
rspace
属性を使って間隔を明示的に指定することもできます。
<math>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<mo form="prefix">+</mo>
<mn>3</mn>
<mo lspace="2em">+</mo>
<mn>4</mn>
<mo rspace="3em">+</mo>
<mn>5</mn>
</math>
他の用途は、和記号のような大きい演算子です。
displaystyle が true の場合、その演算子は大きく描画されますが、
largeop
属性で変更可能です。
displaystyle が false の場合、下付きが実際には下付き文字として描画されますが、
movablelimits
属性で変更可能です。
<math>
<mrow displaystyle="true">
<munder>
<mo>∑</mo>
<mn>5</mn>
</munder>
<munder>
<mo largeop="false">∑</mo>
<mn>6</mn>
</munder>
</mrow>
<mrow>
<munder>
<mo>∑</mo>
<mn>5</mn>
</munder>
<munder>
<mo movablelimits="false">∑</mo>
<mn>7</mn>
</munder>
</mrow>
</math>
演算子は、フェンスやアクセント、矢印などの伸縮可能な記号としても使われます。次の例では、縦の矢印が
mspace
要素の高さまで伸びています。
stretchy
属性で、例えば伸縮しない矢印にするなどデフォルトの伸縮動作を上書きできます。
symmetric
属性では、演算子を数式軸(分数線)を挟んで対称に伸ばすかどうかを示します。
さらに
minsize
や
maxsize
属性で
伸縮サイズをさらに制約できます。
<math>
<mfrac>
<mspace height="50px" depth="50px" width="10px" style="background: blue"/>
<mspace height="25px" depth="25px" width="10px" style="background: green"/>
</mfrac>
<mo>↑</mo>
<mo stretchy="false">↑</mo>
<mo symmetric="true">↑</mo>
<mo minsize="250px">↑</mo>
<mo maxsize="50px">↑</mo>
</math>
演算子のデフォルトプロパティは3.2.4.2 辞書ベース属性で説明されているように辞書ベースです。たとえば 2項演算子は通常、デフォルトの対称間隔を持ち、フェンスは通常デフォルトで伸縮します。
MathML Core 要素は、次の場合に 装飾付き演算子 となります:
mo
要素である場合。
mfrac
であって、最初のin-flow子が存在し、それが
装飾付き演算子である場合。
mpadded
であって、in-flow子が(順不同で)1つの装飾付き演算子と0個以上の
空白様(space-like)要素からなる場合。
コア演算子とは、装飾付き演算子(embellished
operator)に対して、次のように再帰的に定義される<mo>要素です:
mo
要素のコア演算子は、その当該要素自身です。
mfrac
要素のコア演算子は、その最初のin-flow子のコア演算子です。
mpadded
のコア演算子は、その固有の装飾付き演算子
in-flow子のコア演算子です。
伸長軸(stretch axis)は、装飾付き演算子(embellished operator)に対し、
その
コア演算子が
1文字だけから成るテキスト内容cを持ち、かつ
その文字がインライン固有伸長軸を持つ場合はinlineです。
それ以外の場合、装飾付き演算子の伸長軸はblockです。
同じ定義は、「 匿名<mrow>ボックス」を グループ化要素として扱う視覚的フォーマットモデルのボックスにも適用されます。
装飾付き演算子(embellished operator)のform
プロパティは
infix・prefix・postfix
のいずれかです。
対応するform属性を
mo
要素に持たせる場合、その値は
ASCII大文字小文字区別なし
でいずれかに一致しなければなりません。
装飾付き演算子のform判定アルゴリズム
は次の通りです:
form属性がcore operatorに存在し正しい場合、そのASCII小文字値を使う。
mpadded
または
msqrt
の最初のin-flow子(すべてのspace-like子を無視)であり、かつ子が2つ以上ある場合はprefix。
mpadded
または
msqrt
の最後のin-flow子(すべてのspace-like子を無視)であり、かつ子が2つ以上ある場合はpostfix。
infix。
stretchy・
symmetric・
largeop・
movablelimits
いずれも装飾付き演算子(embellished operator)
のプロパティとなり、
false か true のいずれかの値を持ちます。trueの場合、「そのプロパティを持つ」とされます。
対応する
stretchy、
symmetric、
largeop、
movablelimits属性は
mo
要素で使用する場合は
boolean でなければなりません。
lspace・
rspace・
minsize
は全て装飾付き演算子(embellished operator)のプロパティであり、
<length-percentage>
です。
maxsize プロパティは
装飾付き演算子に対し
<length-percentage>
または ∞ を取ります。
lspace・
rspace・
minsize・
maxsize 属性も
mo
要素で使用する場合は
<length-percentage>型でなければなりません。
装飾付き演算子のプロパティ判定アルゴリズムは次の通りです:
stretchy・
symmetric・
largeop・
movablelimits・
lspace・
rspace・
maxsize・
minsize
属性がcore operatorに存在しかつ有効な場合は、そのプロパティのASCII小文字化した値を使う。
core operatorにテキストコンテンツContentのみが含まれる場合、
Category を
演算子のカテゴリ判定アルゴリズム
(Content, Form)(Formは前ステップで算出)で設定。
Category が Default で
かつform
がcore operator属性に明示的に与えられていなかった場合:
Formをinfixとして
演算子のカテゴリ判定アルゴリズム
(Content, Form)の結果でCategoryを設定。
Category が Default の場合は
Form = postfix で再度行う。
Category が Default の場合は
Form = prefix で再度行う。
レイアウト処理で使用する際、
stretchy・
symmetric・
largeop・
movablelimits・
lspace・
rspace・
minsize の値は
装飾付き演算子のプロパティ判定アルゴリズム
で、以下に挙げる追加規則も含めて得られます:
lspace、rspaceのパーセント値は
辞書から読んだ値や上記fallback値に対する割合として解釈されます。
minsize や maxsizeのパーセント値の解釈は
3.2.4.3
演算子のレイアウト で説明します。
lspace・rspace・
minsize・maxsize のフォント相対長さは
コア演算子のフォントスタイルに依存し、装飾付き演算子自身のものではないことに注意します。
<mo> 要素の算出
display
プロパティが block math または inline math でない場合は、対応する値が述べられている CSS
仕様に従ってレイアウトされます。そうでない場合、以下のレイアウトが実行されます。
演算子のテキストは、<mo> 要素の visibility が
visible の場合にのみ描画されなければなりません。その場合は <mo> 要素の color で描画されなければなりません。
演算子は次のようにレイアウトされます:
<mo> 要素の内容が 1 文字 c でない場合、3.2.1.1<mtext>
のレイアウトのアルゴリズムにフォールバックします。
stretchy プロパティをもつ場合:
c に対して生成できなければ、3.2.1.1
<mtext> のレイアウトアルゴリズムにフォールバックします。
Tinline がなければ、3.2.1.1 <mtext>
のレイアウトアルゴリズムにフォールバックします。
Tinline に対して適用したものとなります。
Tinlineまでストレッチしたグリフで行います。
c に対して生成できなければ、3.2.1.1
<mtext> のレイアウトアルゴリズムにフォールバックします。
(Uascent, Udescent)がなければ3.2.1.1
<mtext> のレイアウトアルゴリズムにフォールバックします。
symmetric プロパティを持つ場合は、
目標サイズを
Tascent、Tdescent とし、それぞれ
Sascent、Sdescent に設定:
Sascent =
max(
Uascent − AxisHeight,
Udescent + AxisHeight
) + AxisHeight
Sdescent =
max(
Uascent − AxisHeight,
Udescent + AxisHeight
) − AxisHeight
Uascent・
Udescent に設定する。
Tascent − AxisHeight =
Tdescent + AxisHeight は,
演算子がベースラインより上に正確に Tascent、
下に Tdescent
だけ伸びる場合、数式軸の上下で対称にストレッチされたことを意味します。
Sascent・Sdescent
はこの条件を満たし、それぞれ
Uascent・Udescent
以上となる最小値です。
minsize・maxsize を演算子の minsize・maxsize
プロパティとします。パーセント値はグリフ c の高さに対する割合です。
T =
Tascent + Tdescent
をターゲットサイズとします。
minsize < 0 なら minsize を 0
に、maxsize < minsize の場合は maxsize を
minsize にします。
0 ≤ minsize ≤ maxsize の場合:
T ≤ 0 の場合
Tascent を minsize / 2 + AxisHeight として
Tdescent
を minsize − Tascent にする。
T < minsize の場合は
Tascent を
max(0, (Tascent−AxisHeight) ×
minsize / T + AxisHeight )
Tdescent
を minsize − Tascent にする。
maxsize < T の場合は
Tascent を
max(0, (Tascent−AxisHeight) ×
maxsize / T + AxisHeight )
Tdescent
を maxsize − Tascent にする。
maxsize で値 ∞
は、他のどんなサイズよりも大きいものとして扱われます。すなわち、minsize ≤ maxsize
は常に真、maxsize < minsize および
maxsize < T は常に偽です。
minsize ≤ T ≤
maxsize が成り立つことが保証されます。さらにターゲット値が数式軸に対して対称ストレッチとなる場合、
math axis に関して
Tascent − AxisHeight =
Tdescent + AxisHeight も維持されます。
Tascent + Tdescent
にストレッチしたものから得られます。
数式内容の inline size はストレッチグリフの幅です。ストレッチグリフは line-under 方向へ Δ
ずらして、その中心がターゲットの中心に合うようにします。内容のインクアセントはストレッチグリフの ascent −
Δ、インクディセントはストレッチグリフの descent + Δ になります。これらの中心座標は「½ (ascent − descent)」なので、Δ
= [(ascent of stretchy glyph − descent of stretchy glyph) −
(Tascent − Tdescent)]/2 です。
Tascent +
Tdescent までストレッチしたグリフで行われ、さらに Δ だけ line-over
方向にずらされます。
largeop プロパティを持ち、
<mo> 要素の math-style が
normal のとき:
MathVariants テーブルを使い、高さが
DisplayOperatorMinHeight
以上のグリフを探します。
なければ、一番大きいベース以外のグリフ、それもなければ
3.2.1.1
<mtext> のレイアウトアルゴリズムにフォールバックします。
上記のいずれかのステップで ストレッチグリフのシェイプ アルゴリズムが使われた場合は、数式内容の italic correction はそのアルゴリズムで返された値に設定されます。
mspace 空要素は、その属性によって設定された任意のサイズの空白を表す。
<mspace> 要素は、
2.1.3 グローバル属性
で説明されている属性と、以下の属性を受け入れる:
width, height, depth が存在する場合、 その値は有効な <length-percentage> でなければならない。
width 属性が存在し、有効でありパーセントでない場合、
その属性は要素の 表示ヒント
として、その要素の width
プロパティに対応する値を設定するために使われる。
height 属性が存在せず、有効でないかパーセントの場合、要求された line-ascent は 0 となる。
それ以外の場合は height 属性の解決値で負の値は 0 に丸める。
height 属性と depth 属性の両方が存在し、有効でかつパーセントでない場合、
それらは 表示ヒント
として使われ、要素の height
プロパティに "calc(", height 属性値, " + ", depth
属性値, ")" を連結した値を設定する。
どちらか一方だけが存在し有効かつパーセントでない場合、それは
表示ヒント
としてその要素の height
プロパティに対応する値を設定する。
次の例では
mspace
を使って式内のスペースを強制的に設けている(スペースを視覚化しやすくするために 1px の青いボーダーが追加されている):
<math>
<mn>1</mn>
<mspace width="1em"
style="border-top: 1px solid blue"/>
<mfrac>
<mrow>
<mn>2</mn>
<mspace depth="1em"
style="border-left: 1px solid blue"/>
</mrow>
<mrow>
<mn>3</mn>
<mspace height="2em"
style="border-left: 1px solid blue"/>
</mrow>
</mfrac>
</math>
<mspace> 要素の計算された
display
プロパティ値が
block math または inline math と等しくない場合、
対応する値が記述されている CSS 仕様に従ってレイアウトされる。
それ以外の場合、
<mspace> 要素は
図 9 のようにレイアウトされる。
min-content inline size、
max-content inline size および inline size は
width プロパティの解決値と等しい。
block size は height プロパティの解決値と等しい。
line-ascent は上記で決定された要求された line-ascent と等しい。
<mspace> 要素のボックスモデル
多くの MathML 表示要素は「スペース類似(space-like)」であり、通常は空白としてレンダリングされ、 それが現れる式の数学的意味には影響しない。 そのため、これらの要素は他の MathML 式の中でもやや例外的な動作をする場合が多い。
MathML コア要素は もし次のいずれかであれば、 スペース類似要素 となる:
同じ定義がビジュアルフォーマットモデルのボックスにも適用され、 匿名 <mrow> ボックス は グループ化要素 として扱われる。
mphantom
は、その内容がスペース類似でない限り、自動的にスペース類似とは見なされない点に注意。
これは、隣接する要素がスペース類似かどうかで演算子スペースが影響を受けるためである。
<mphantom> 要素は主として式の整列の補助を意図しており、
<mphantom> の隣の演算子は
<mphantom> の内容があるかのように挙動するべきであり、
等しい大きさの空白領域の隣であるかのように振る舞うべきではない。
ms 要素は、コンピュータ代数システムや「プログラム言語」を含む他のシステムによって解釈されるような式内の 「文字列リテラル」を表す用途で使う。
<ms> 要素は
2.1.3 グローバル属性
で説明されている属性を受け付ける。そのレイアウトアルゴリズムは
mtext
要素と同じである。
lquote 属性や rquote 属性で
それぞれ開き引用符と閉じ引用符として使う文字列を指定できたが、
これらはサポートされなくなり、
引用符は <ms> 要素内部のテキストとして指定しなければならない。
レガシードキュメントの視覚表現を保持するためには CSS ルールを追加できる。
例えば左から右方向の場合:
ms:before, ms:after {
content: "\0022";
}
ms[lquote]:before {
content: attr(lquote);
}
ms[rquote]:after {
content: attr(rquote);
}
トークン以外にも、いくつかの MathML 表示要素のファミリーが存在する。一つのファミリーは添字や上付き文字などの各種「スクリプト」記法を扱う。もう一つのファミリーは行列やテーブルに関係する。本節で述べるその他の要素は、分数や根号などの基本記法や、スタイルプロパティの設定やエラー処理などの汎用的な機能を扱う。
mrow
要素は、一つ以上の部分式をまとめてグループ化するために使う。通常、演算子として働く <mo> 要素一つ以上と、それらの「オペランド」となる式から構成される。
次の例では
mrow
を用いて、「1 + 2/3」和を分数の分子(
mfrac
の1番目の子)としてグループ化し、さらに冪乗式(
msup
の1番目の子)を構成し、それを5乗している。
mrow
単独では、グループ化した内容の周囲に視覚的な囲いは追加しないことに注意。これらを明示的に追加するには
mo
要素を用いる必要がある。
mrow
要素内では、子要素の垂直位置合わせ(
アルファベットベースラインまたは数学ベースラインに従う)が適切に行われ、囲い記号は垂直方向に伸長され、+演算子の前後のスペースも自動的に調整される。
<math>
<msup>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mn>2</mn>
<mn>3</mn>
</mfrac>
</mrow>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mn>5</mn>
</msup>
</math>
<mrow> 要素は
2.1.3 グローバル属性
で説明されている属性を受け付ける。 <mrow> 要素の フロー内 子要素 child1,
child2, …, childN
は 図 10 の通りにレイアウトされる。子ボックスは横一列に順次配置され、そのすべての
アルファベットベースライン
が揃えられる。
<mrow> 要素のボックスモデル
ブロック軸方向の演算子伸長アルゴリズム は、以下の手順から成る:
LToStretch(装飾演算子 かつ
stretchy プロパティおよびブロック
stretch axisがある)と
LNotToStretch に分割する。
LNotToStretch のすべてに伸長サイズ制約なしでレイアウトを行う。
LToStretch が空なら終了。
LNotToStretch が空の場合は
LToStretch のすべてに
ブロック伸長サイズ制約
(0, 0) でレイアウトを行う。
Uascent,
Udescent として求める。
LToStretch の全要素を
ブロック伸長サイズ制約
(Uascent, Udescent) で(再)レイアウト。
このボックスが 匿名 <mrow> ボックス でなく、紐付く要素の計算した
display
プロパティが
block math または inline math でない場合は
対応する値が記述されている CSS 仕様に従ってレイアウトされる。
それ以外の場合は以下のレイアウトが行われる。
子ボックスが 装飾演算子 でなく、かつ イタリック補正が0でなければ それは 斜体となる。
min-content インラインサイズ(max-content インラインサイズも同様)は、 以下のアルゴリズムで計算される:
math
要素であるか、装飾演算子でなければ add-space を true に、そうでなければ false に設定。
inline-offset に0を設定する。previous-italic-correction に0を設定する。inline-offset に previous-italic-correction
を加算。
add-space が true なら
inline-offset に lspace を加算。
inline-offset に加算。
previous-italic-correction に イタリック補正 を設定。
そうでなければ0を設定。
add-space が true なら
inline-offset に rspace を加算。
inline-offset に previous-italic-correction を加算。
inline-offset を返す。
フロー内 子は ブロック軸方向の演算子伸長アルゴリズム でレイアウトされる。
数式コンテンツの inline size は、 数式コンテンツの min-content inline size および max-content inline size と同じ計算法で、 フロー内 子の margin box の inline size を使って計算される。
数式コンテンツの インク・ラインアセント(または ラインアセント)は、 すべての フロー内 子の margin box の インク・ラインアセント(または ラインアセント)の最大値となる。同様に、 インク・ラインディセント(または ラインディセント)は すべての フロー内 子の margin box の インク・ラインディセント(または インク・ラインアセント)の最大値となる。
フロー内 子の位置決めは次のアルゴリズムで行われる:
math
要素であるか、装飾演算子でなければ add-space を true に、そうでなければ false に設定。
inline-offset に0を設定。previous-italic-correction に0を設定。inline-offsetにprevious-italic-correctionを加算。add-spaceがtrueならinline-offsetに lspace を加算。inline-offsetに設定し、ブロックオフセットは子のアルファベットベースラインが全体のアルファベットベースラインに合わせられるように設定。inline-offsetに加算。previous-italic-correctionにイタリック補正を設定し、そうでなければ0を設定。add-spaceがtrueならinline-offsetにrspaceを加算。数式コンテンツのイタリック補正は、最後のフロー内子(previous-italic-correctionの最終値)とする。
mfrac 要素は分数に用いられる。二項係数やルジャンドル記号など分数型オブジェクトもマークアップ可能。
<mfrac> 要素の計算された
display
プロパティが block math
または inline math でない場合、該当するCSS仕様に従ってレイアウトされる。
それ以外は以下のレイアウトになる。
<mfrac> 要素は
2.1.3 グローバル属性
加えて、次の属性を受け付ける:
linethickness 属性は、分数バーとして用いる 分数線の太さ を示す。指定がある場合、その値は有効な <length-percentage> でなければならない。 属性がない場合や無効な値なら FractionRuleThickness がデフォルト値となる。 パーセント値はデフォルト値に相対的に解釈。 負の値は0と解釈される。
次の例は 4 つの異なる
linethickness
の分数を示す。バーは常に + や − の中央に揃い、分子分母は水平方向に中央揃え。
displaystyle
でない分数は、隙間やフォントサイズが小さい。
<math>
<mn>0</mn>
<mo>+</mo>
<mfrac displaystyle="true">
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mo>−</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mo>+</mo>
<mfrac linethickness="200%">
<mn>1</mn>
<mn>234</mn>
</mfrac>
<mo>−</mo>
<mrow>
<mo>(</mo>
<mfrac linethickness="0">
<mn>123</mn>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
</math>
<mfrac> 要素は
displaystyle を false に、
もしくは既に false なら
scriptlevel を子内部で1増やす。
2番目の子内部で math-shift を
compact に設定。
分数線と周辺要素(例えばマイナス記号や他の分数線等)の混同を避けるため、デフォルトで1ピクセルのスペースを要素の周囲に追加する。
ユーザーエージェントスタイルシート
には次のルールが必須:
mfrac {
padding-inline: 1px;
}
mfrac > * {
math-depth: auto-add;
math-style: compact;
}
mfrac > :nth-child(2) {
math-shift: compact;
}
<mfrac> 要素の フロー内 子が2つでない場合、そのレイアウトは
mrow
要素と同様となる。
2つの場合、1番目の フロー内 子を
分子、
2番目は
分母
とし、下記のレイアウトアルゴリズムとなる。
<mfrac> 要素は2つの フロー内 子を持つ。
従って CSS ルールは
scriptlevel,
displaystyle,
math-shift
の分子・分母ごとの切り替え操作を行うことになる。
分数線の太さが非ゼロの場合、
<mfrac>
要素は 図 12 のようにレイアウトされる。
分数線は visibility が visible の場合のみ描画される。
このとき分数線の色は要素の color を使う。
<mfrac> 要素のボックスモデル
min-content インラインサイズ (max-content インラインサイズも同様)は、分子の margin box のそれと 分母の margin box のどちらか大きい方。
inline 伸長サイズ制約 または block 伸長サイズ制約 がある場合、 分子 も同じ伸長サイズ制約でレイアウトし、 そうでなければ制約なしでレイアウト。分母 は常に制約なしでレイアウト。
数式コンテンツの inline size は、 分子 と 分母 の margin box の inline size の大きい方。
NumeratorShift は以下の最大値:
compact(normal)の時)。
compact
(normal)の時)。
DenominatorShift は以下の最大値:
compact(normal)の時)。
compact
(normal)の時)。
数式コンテンツの line-ascent は、以下の最大値:
Numerator Shift+
分子のline-ascent
Denominator Shift+
分母のline-ascent
数式コンテンツの line-descent は、以下の最大値:
Numerator Shift+
分子のline-descent
Denominator Shift+
分母のline-descent
分子(分母も同様)の inline offset は、数式コンテンツの inline size の半分− 分子(分母)の margin box の inline size の半分。
分子(分母も同様)の アルファベットベースライン は
基準ベースラインから NumeratorShift(DenominatorShift)だけ
line-over(line-under)方向にずらす。
math content box は content box 内でブロック開始端が揃い、エッジ中央も揃うよう配置する。
分数線の inline size は content box の inline size で、 inline-start は content box の inline-start と一致。 分数線中心は math content box の アルファベットベースライン から AxisHeight だけ line-over 側にシフトする。 block size は 分数線の太さ になる。
分数線の太さがゼロの場合、
<mfrac> 要素は
図 13
のようにレイアウトされる。
<mfrac>
要素(分数線なし)のボックスモデル数式コンテンツの min-content inline size、max-content inline size、 inline size は 3.3.2.1 分数線が非ゼロの場合 と同様に計算される。
inline 伸長サイズ制約 または block 伸長サイズ制約 がある場合、 分子 も同じ制約でレイアウト、 そうでなければ制約なし。分母 は常に制約なし。
math-style が compact なら
TopShift と
BottomShift はそれぞれ
StackTopShiftUp、StackBottomShiftDown を用いる。
それ以外(normal)は
StackTopDisplayStyleShiftUp
と StackBottomDisplayStyleShiftDown
を使う。
Gap は
(BottomShift −
分母のインクアセント)
+(TopShift −
分子のインクディセント)
と定義。
math-style が compact なら
GapMin は StackGapMin。
それ以外は StackDisplayStyleGapMin。
Δ = GapMin−Gap が正なら
TopShift と BottomShift をそれぞれ Δ/2、Δ−Δ/2 増やす。
数式コンテンツの line-ascent は、以下の最大値:
TopShift+
分子のline-ascent
BottomShift+
分母のline-ascent
数式コンテンツの line-descent は、以下の最大値:
TopShift+
分子のline-descent
BottomShift+
分母のline-descent
分子・分母のinline offset 計算は、 3.3.2.1 分数線が非ゼロの場合と同じ。
分子(分母も同様)の アルファベットベースライン は
基準ベースラインから TopShift(−BottomShift)だけ
line-over(line-under)方向にずらす。
math content box は content box 内でブロック開始端が揃い、中央も揃うよう配置する。
根号要素は、内容の上に線を持つ根号記号√を使った式を構成する。 msqrt 要素は 平方根に用いられ、mroot 要素は たとえば立方根のように添字付きの根号に使われる。
<msqrt> および <mroot>
要素は
2.1.3 グローバル属性
で説明されている属性を受け付ける。
次の例は
msqrt
で書かれた平方根と
mroot
で書かれた立方根を含むもの。
msqrt
は子要素が複数あり、平方根が全てに適用されていること、
mroot
は必ず2つの子要素を持ち、2番目の子(数字3)が添字として1番目の子(平方根)全体にかかっていることに注意。
またこれらの要素では
mroot
の指数部は、分数の分子分母より小さくスケールダウンされつつ、フォントサイズが変わるだけであることも示す。
<math>
<mroot>
<msqrt>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mo>+</mo>
<mn>4</mn>
</msqrt>
<mn>3</mn>
</mroot>
<mo>+</mo>
<mn>0</mn>
</math>
<msqrt> および <mroot>
要素は math-shift を
compact に設定する。
<mroot> 要素は全ての子のうち最初の子以外に
scriptlevel を2増やし、displaystyle を "false" にする。
ユーザーエージェントスタイルシート
にはその挙動を実現するため次のルールが必須:
mroot > :not(:first-child) {
math-depth: add(2);
math-style: compact;
}
mroot, msqrt {
math-shift: compact;
}
<msqrt> や <mroot>
要素の計算された
display
プロパティが block math
または inline math でない場合、対応するCSS仕様に従ってレイアウトされる。
それ以外は以下レイアウトとなる。
<mroot> の フロー内 子が2つでない場合は
mrow
要素と同様のアルゴリズムでレイアウトされる。
2つの場合、最初の フロー内 子を
mroot の基底
、2番目を
mroot の指数
と呼び、そのレイアウトアルゴリズムは下記。
<msqrt> 要素は
匿名 <mrow> ボックス
(msqrt
の基底)を生成する。
根号記号は
<msqrt> や <mroot>
要素の visibility が visible の場合のみ描画される。
その場合、記号はその要素の color で描画。
根号グリフ は、 U+221A SQUARE ROOT 文字で得られるグリフ。
根号ギャップ は
RadicalVerticalGap
(math-style が compact の時)
または RadicalDisplayStyleVerticalGap
(math-style が normal の時)。
伸縮する根号グリフのターゲットサイズは RadicalRuleThickness、 根号ギャップ、 基底のインク高さの合計。
根号グリフのボックスメトリクス および 根号の描画 は、 伸縮グリフの字形化アルゴリズム(ターゲットサイズを block dimension とする)に従う。
<msqrt> 要素は
図
14 のようにレイアウトされる。
<msqrt> 要素のボックスモデル
数式コンテンツの min-content inline size (max-content inline sizeも同様)は 根号グリフの ブロック軸方向に伸ばした場合の好ましいインラインサイズ と、msqrt の基底の margin box の min-content inline size(max-content inline size)との和。
数式コンテンツの inline size は、 根号グリフのボックスメトリクス のアドバンス幅と msqrt の基底の margin box の inline sizeの和。
数式コンテンツの line-ascent は以下の最大値:
数式コンテンツの line-descent は以下の最大値:
オーバーバーの inline size は msqrt の基底の margin box の inline size。 msqrt の基底および オーバーバーの inline offset も同じで、 値は 根号グリフのボックスメトリクスの幅。
msqrt の基底 の アルファベットベースライン は全体のベースラインと揃う。 オーバーバーの block size は RadicalRuleThickness。 その垂直中心は、数式コンテンツの line-ascent − RadicalExtraAscender − RadicalRuleThickness÷2 だけ ベースラインから line-over 方向にオフセット。
最後に 根号記号の描画 を行う:
<mroot> 要素は
図
15 のようにレイアウトされる。
mroot の指数を一旦無視して、
mroot の基底
と根号グリフを
図 14
と同様のアルゴリズムでレイアウトし緑で示す margin box B を構成する。
<mroot> 要素のボックスモデル
数式コンテンツの min-content inline size (max-content inline sizeも同様)は max(0, RadicalKernBeforeDegree)、 mroot の指数の margin box の同サイズ、 max(−そのサイズ, RadicalKernAfterDegree) 、B の 同サイズ の合計。
同じ値域制限で、 AdjustedRadicalKernBeforeDegree および AdjustedRadicalKernAfterDegree はそれぞれ max(0, RadicalKernBeforeDegree) および max(−指数 margin box のinline size, RadicalKernAfterDegree) と定義。
数式コンテンツの inline size は AdjustedRadicalKernBeforeDegree、 指数の margin box の inline size、 AdjustedRadicalKernAfterDegree、 B の inline size の合計。
数式コンテンツの line-ascent は以下の最大値:
数式コンテンツの line-descent は以下の最大値:
指数の inline offset は AdjustedRadicalKernBeforeDegree。 mroot の基底も同じ位置+指数 margin box の inline size。
B の アルファベットベースライン は 全体の アルファベットベースライン と揃える。 指数の アルファベットベースラインは line-under エッジから RadicalDegreeBottomRaisePercent × B の block size+ 指数 margin box の line-descent だけオフセットされる。
歴史的に、 mstyle 要素は、その内容のレンダリングに影響するスタイル変更を行うために導入された。
<mstyle> 要素は
2.1.3 グローバル属性
で説明されている属性を受け付ける。
レイアウトアルゴリズムは
mrow
要素と同じである。
<mstyle> はフルMathMLとの互換性のために実装されている。MathML
Coreのみをターゲットとする場合は、スタイリングにCSSの利用が推奨される。
次の例では、
mstyle
を使ってscriptlevel
およびdisplaystyle
の設定を行う。
これによって、それぞれ子孫のフォントサイズおよび添字の配置に影響が出ることがわかる。
MathML Core では
mrow
だけでもよい。
<math>
<munder>
<mo movablelimits="true">*</mo>
<mi>A</mi>
</munder>
<mstyle scriptlevel="1">
<mstyle displaystyle="true">
<munder>
<mo movablelimits="true">*</mo>
<mi>B</mi>
</munder>
<munder>
<mo movablelimits="true">*</mo>
<mi>C</mi>
</munder>
</mstyle>
<munder>
<mo movablelimits="true">*</mo>
<mi>D</mi>
</munder>
</mstyle>
</math>
merror 要素は内容を「エラーメッセージ」として表示する。この要素の意図は、他の入力からMathMLを生成するプログラムが入力の構文エラーを通知するための標準的な方法を提供することである。
次の例では
merror
を使い、LaTeXのような入力のパースエラーを示している:
<math>
<mfrac>
<merror>
<mtext>Syntax error: \frac{1}</mtext>
</merror>
<mn>3</mn>
</mfrac>
</math>
<merror> 要素は
2.1.3 グローバル属性
で説明されている属性を受け付ける。
レイアウトアルゴリズムは
mrow
要素と同じである。
ユーザーエージェントスタイルシート
にはエラーメッセージを視覚的に強調するため次のルールが必須:
merror {
border: 1px solid red;
background-color: lightYellow;
}
mpadded
要素は フロー内 子の内容と同じように描画されるが、
<mpadded> の属性に従い、その内容のサイズおよび相対位置の基準点が変更される。
<mpadded> 要素は
2.1.3 グローバル属性
で説明されている属性の他、以下の属性を受け付ける:
width、 height、 depth、 lspace および voffset が存在する場合、その値は有効な <length-percentage> でなければならない。
次の例では
mpadded
を使って分数の周りのスペースを調整している
(青色背景で視覚化)。
属性なしでは
mrow
と同じ振る舞いだが、
属性でボックスのサイズ(width・height・depth)や分数の配置(lspace・voffset)が指定できる。
<math>
<mrow>
<mn>1</mn>
<mpadded style="background: lightblue;">
<mfrac>
<mn>23456</mn>
<mn>78</mn>
</mfrac>
</mpadded>
<mn>9</mn>
</mrow>
<mo>+</mo>
<mrow>
<mn>1</mn>
<mpadded lspace="2em" voffset="-1em" height="1em" depth="3em" width="7em"
style="background: lightblue;">
<mfrac>
<mn>23456</mn>
<mn>78</mn>
</mfrac>
</mpadded>
<mn>9</mn>
</mrow>
</math>
mpadded
要素は
匿名 <mrow> ボックス(
mpadded
内部ボックス)を生成し、
inner inline size・inner line-ascent・inner line-descent というパラメータを持つ。
指定パラメータの決定方法:
width 属性が存在し有効かつパーセントでなければ、
その値で表示ヒントとして
要素の width プロパティに設定。
height 属性が存在せず無効またはパーセントなら指定高さは
inner line-ascent。
そうでなければheight属性の解決値(負値は0に丸める)。
depth 属性が存在せず無効またはパーセントなら指定depthは
inner line-ascent。
そうでなければdepth属性の解決値(負値は0に丸める)。
lspace 属性が存在せず無効またはパーセントなら指定lspaceは0。そうでなければ解決値(負値は0に丸める)。
voffset 属性が存在せず無効またはパーセントなら指定voffsetは0。そうでなければ解決値。
voffset の負値は 0 に丸められない。
<mpadded> 要素の計算された
display
プロパティが block math
または inline math でない場合、対応するCSS仕様に従ってレイアウトされる。
それ以外の場合、図
16 のようにレイアウトされる。
<mpadded> 要素のボックスモデル
数式コンテンツの min-content inline size・max-content inline sizeは、 3.3.6.1 内側ボックスと要求パラメータ で計算される値("inner inline size" の代わりに mpadded 内部ボックスの値を使う)。
数式コンテンツの inline size は 3.3.6.1 内側ボックスと要求パラメータで計算される指定幅。
数式コンテンツの line-ascent は指定高さ、 line-descent は指定depth。
mpadded 内部ボックス は、 その アルファベットベースライン を 指定voffsetだけ line-over 方向にシフトして配置される。
歴史的には、 mphantom 要素は、その内容を不可視状態で描画するが、内容を通常通りレンダリングした場合と同じ計量サイズや他の寸法(アルファベットベースラインの位置等を含む)を保持するために導入された。
次の例では
mphantom
を使うことで、分数の分子と分母の対応部分の整列が確実になるようにしている:
<math>
<mfrac>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mi>y</mi>
<mo>+</mo>
<mi>z</mi>
</mrow>
<mrow>
<mi>x</mi>
<mphantom>
<mo form="infix">+</mo>
<mi>y</mi>
</mphantom>
<mo>+</mo>
<mi>z</mi>
</mrow>
</mfrac>
</math>
<mphantom> 要素は
2.1.3
グローバル属性で説明されている属性を受け付ける。
レイアウトアルゴリズムは
mrow
要素と同じである。
ユーザーエージェントスタイルシート
では内容を不可視化するために、次のルールが必須である:
mphantom {
visibility: hidden;
}
<mphantom> はフルMathMLとの互換性のために実装されている。MathML
Coreのみをターゲットとする場合は、スタイリングにはCSS利用が推奨される。
このセクションで説明する要素は、基底の周囲に一つまたは複数のスクリプト(添え書き)を配置する。記号にさまざまな種類の添字や装飾を付けることは数学では非常に一般的な記法装置である。純粋な視覚的レイアウトだけなら、与えられた基底の周囲すべての伝統的なスクリプト位置にスクリプト・装飾を配置できる汎用要素ひとつで十分であろう。しかし一般的な記法の抽象構造をより明確に表現するため、MathMLではより専門化された複数のスクリプティング要素を提供している。
下付き・上付き要素に加えて、MathML には基底の上下にスクリプトを配置する overscript/underscript 要素がある。これらは大型演算子へのリミット設置や、基底の上・下へのアクセントやラインの配置に使うことができる。
msub, msup および msubsup 要素は、 MathML式に添字(下付きや上付き)を付加するために使う。 これらは 2.1.3 グローバル属性で説明されている属性を受け付ける。
次の例は下付き添字と上付き添字の基本的な利用例。スクリプト内部では自動的にフォントサイズが縮小される。
<math>
<msub>
<mn>1</mn>
<mn>2</mn>
</msub>
<mo>+</mo>
<msup>
<mn>3</mn>
<mn>4</mn>
</msup>
<mo>+</mo>
<msubsup>
<mn>5</mn>
<mn>6</mn>
<mn>7</mn>
</msubsup>
</math>
<msub>,
<msup> または
<msubsup> 要素の計算された
display
プロパティが block math
または inline math でない場合は、対応するCSS仕様に従ってレイアウトされる。
それ以外は以下のレイアウトとなる。
<msub> 要素の フロー内 子が2つでない場合、
mrow
要素と同じレイアウトアルゴリズムになる。
2つの場合、1番目の フロー内 子が
msub の基底、
2番目が
msub
下付き と呼び、
レイアウトアルゴリズムは
3.4.1.2 下付き付き基底
で説明されている。
<msup> 要素の フロー内 子が2つでない場合、
mrow
要素と同じレイアウトアルゴリズムになる。
2つの場合、1番目の フロー内 子が
msup の基底、
2番目が
msup
上付き と呼び、
レイアウトアルゴリズムは
3.4.1.3 上付き付き基底
で説明されている。
<msubsup> 要素の フロー内 子が3つでない場合、
mrow
要素と同じレイアウトアルゴリズムになる。
3つの場合、1番目の フロー内 子が
msubsup
の基底、
2番目が msubsup 下付き、
3番目が msubsup 上付き と呼び、
レイアウトアルゴリズムは
3.4.1.4
下付き・上付き付き基底 で説明されている。
<msub> 要素は
図 17 のようにレイアウトされる。
LargeOpItalicCorrection
は msub の基底
が 装飾演算子 で、
largeop プロパティがある場合はその
イタリック補正
であり、それ以外は0。
<msub> 要素のボックスモデル
数式コンテンツの
min-content inline size(max-content inline sizeも同様)は、
msub の基底 の margin box の
min-content inline size −
LargeOpItalicCorrection +
msub 下付き の margin box の
min-content inline size + SpaceAfterScript。
inline 伸長サイズ制約 または block 伸長サイズ制約 があれば msub の基底 も同じ制約でレイアウトされ、 そうでない場合は制約なしでレイアウト。スクリプトは常に制約なしでレイアウトされる。
数式コンテンツの inline size は
msub の基底 の margin box の inline size
− LargeOpItalicCorrection +
msub 下付き
の margin box の inline size + SpaceAfterScript。
SubShift は次の最大値:
数式コンテンツの line-ascent は次の最大値:
SubShift
数式コンテンツの line-descent は次の最大値:
SubShift
msub の基底 の inline offset は0、
msub 下付き の inline offset
は
msub の基底 の margin box の inline size −
LargeOpItalicCorrection。
msub の基底 はその アルファベットベースライン を
全体のベースラインに一致させて配置し、
msub 下付き はその アルファベットベースライン を
基準ベースラインから SubShift だけ line-under 側にシフトして配置される。
<msup> 要素は
図 18 のようにレイアウトされる。
ItalicCorrection
は
msup の基底
が 装飾演算子 かつ
largeop プロパティがない場合 0、それ以外は
イタリック補正。
<msup> 要素のボックスモデル
数式コンテンツの
min-content inline size(max-content inline sizeも同様)は
msup の基底 の margin box の
min-content inline size +
ItalicCorrection +
msup 上付き の margin box の
min-content inline size + SpaceAfterScript。
inline 伸長サイズ制約 または block 伸長サイズ制約 があれば msup の基底 も同じ制約でレイアウトされ、 そうでなければ制約なしでレイアウト。スクリプトは常に制約なしでレイアウトされる。
数式コンテンツの inline size は
msup の基底 の margin box の inline size
+ ItalicCorrection +
msup 上付き
の margin box の inline size + SpaceAfterScript。
SuperShift は次の最大値:
compactなら
SuperscriptShiftUpCramped の値、
それ以外なら
SuperscriptShiftUp の値
数式コンテンツの line-ascent は次の最大値:
SuperShift
数式コンテンツの line-descent は次の最大値:
SuperShift
msup の基底 の inline offset は0、
msup 上付き の inline offset
は
msup の基底 の margin box の inline size
+ ItalicCorrection。
msup の基底 はその アルファベットベースライン を
全体のベースラインに一致させて配置し、
msup 上付き はその アルファベットベースライン を
基準ベースラインから SuperShift だけ line-over 側にシフトして配置される。
<msubsup> 要素は
図 18 のようにレイアウトされる。
LargeOpItalicCorrectionおよびSubShiftは3.4.1.2
下付き付き基底に従い、
ItalicCorrection・SuperShiftは3.4.1.3
上付き付き基底に従う。
<msubsup> 要素のボックスモデル
数式コンテンツの min-content inline size(max-content inline size・ inline sizeも同様)は、 3.4.1.2 下付き付き基底 と 3.4.1.3 上付き付き基底 の計算値のうち最大のものになる。
inline 伸長サイズ制約 または block 伸長サイズ制約 があれば msubsup の基底 も同じ制約でレイアウトされ、 そうでなければ制約なしでレイアウト。スクリプトは常に制約なしでレイアウトされる。
inline 伸長サイズ制約 または block 伸長サイズ制約 があれば msubsup の基底 も同じ制約でレイアウトされ、 そうでなければ制約なしでレイアウト。スクリプトは常に制約なしでレイアウトされる。
SubSuperGap は2つのスクリプト間のblock axis方向の隙間であり、
(SubShift − msubsup 下付き の
インクアセント)
+ (SuperShift − msubsup 上付き の
インクディセント)
で定義される。
SubSuperGap が SubSuperscriptGapMin
に満たない場合、次の手順で保証される:
SuperShift − msubsup 上付き の インクディセント) とする。
Δ > 0 なら Δ を {Δと SubSuperscriptGapMin −
SubSuperGap}
の小さい方にし、SuperShift(従って SubSuperGap も)を Δ だけ増やす。
SubSuperGap とする。
Δ > 0 なら SubscriptShift(および SubSuperGap)をΔだけ増やす。
数式コンテンツの インクアセント(line-ascent、インクディセント、
line-descentも同様)は、
3.4.1.2 下付き付き基底
と 3.4.1.3 上付き付き基底
の計算結果(上記調整済みの SubShift, SuperShiftを使う)いずれか大きい値となる。
msubsup の基底・スクリプトの inline offset および block offset は 3.4.1.2 下付き付き基底 および 3.4.1.3 上付き付き基底に準ずる。
msubsup 下付き(msubsup 上付きでも同様)が空ボックスであっても、
<msubsup> のレンダリングは
3.4.1.3
上付き付き基底
や
3.4.1.2
下付き付き基底
と必ずしも同一にはならない。これは
SubSuperGap
の追加制約があるためである。
また、空の msubsup 下付き
(または msubsup 上付き)の位置も
全体サイズに影響しうる。
アルゴリズムを単純に保つため、特に空スクリプトを特別に処理することは行わない。
The munder, mover and munderover elements are used to attach accents or limits placed under or over a MathML expression.
<munderover> 要素は
2.1.3
グローバル属性で説明されている属性に加えて、次の属性を受け付ける:
同様に、<mover> 要素(それぞれ <munder> 要素)は
2.1.3
グローバル属性で説明されている属性に加え、
accent
属性(それぞれ
accentunder
属性)を受け付ける。
accent,
accentunder
属性は、存在する場合、その値が ブール値 でなければならない。
これらの属性が存在しないか無効な場合は false と見なされる。
ユーザーエージェントはこれらを
3.4.4
Displaystyle, scriptlevel and math-shift in scripts に記載された通りに実装しなければならない。
The following example shows basic use of under- and overscripts. The font-size is automatically scaled down within the scripts, unless they are meant to be accents.
<math>
<munder>
<mn>1</mn>
<mn>2</mn>
</munder>
<mo>+</mo>
<mover>
<mn>3</mn>
<mn>4</mn>
</mover>
<mo>+</mo>
<munderover>
<mn>5</mn>
<mn>6</mn>
<mn>7</mn>
</munderover>
<mo>+</mo>
<munderover accent="true">
<mn>8</mn>
<mn>9</mn>
<mn>10</mn>
</munderover>
<mo>+</mo>
<munderover accentunder="true">
<mn>11</mn>
<mn>12</mn>
<mn>13</mn>
</munderover>
</math>
If the
<munder>,
<mover> or
<munderover> elements do not have their
computed
display
property equal to block math
or inline math
then they are laid out according to the CSS specification where
the corresponding value is described.
Otherwise, the layout below is performed.
<munder> 要素の フロー内 子が2つでない場合、そのレイアウトアルゴリズムは
mrow
要素と同じになる。2つであれば、最初の フロー内 子を
munder
base、
2番目を
munder
underscript と呼ぶ。
<mover> 要素の フロー内 子が2つでない場合、そのレイアウトアルゴリズムは
mrow
要素と同じになる。2つであれば、最初の フロー内 子を
mover
base、
2番目を
mover
overscript と呼ぶ。
<munderover> 要素の フロー内 子が3つでない場合、そのレイアウトアルゴリズムは
mrow
要素と同じになる。3つであれば、最初の子を
munderover
base、
2番目を
munderover underscript、
3番目を
munderover overscript と呼ぶ。
もし <munder>, <mover> または <munderover> の
math-style プロパティが compact に設定され、
かつ基底が embellished operator で
movablelimits プロパティを持つ場合、
それぞれのレイアウトアルゴリズムは
<msub>, <msup>, <msubsup> の
説明と同じになる(3.4.1.2 Base
with
subscript, 3.4.1.3
Base with
superscript など)。
それ以外の場合、<munder>, <mover>, <munderover>
のレイアウトアルゴリズムはそれぞれ
3.4.2.3 Base with
underscript,
3.4.2.4 Base with
overscript および
3.4.2.5
Base with underscript and overscript に記載されている通りである。
インライン軸に沿った演算子の伸長アルゴリズム は次の通りである。
LToStretch containing
embellished operators with
a stretchy property and inline stretch axis;
and a second list LNotToStretch.
LNotToStretch.
If LToStretch is empty then stop.
If LNotToStretch is empty, perform
layout with inline stretch
size constraint 0 for
all the items of LToStretch.
T to
the maximum inline size of the
margin boxes of child boxes that have been laid out in the
previous step.
LToStretch
with inline stretch size constraint
T.
<munder> 要素は
図
20 のようにレイアウトされる。
LargeOpItalicCorrection
は、munder base が
embellished operator かつ
largeop プロパティを持つ場合の
イタリック補正 であり、そうでなければ0である。
<munder> 要素のボックスモデル
数式コンテンツの min-content inline size(および max-content inline size) は以下の方法で計算されるが、ここでは下記のインラインサイズ計算における munder base の margin box と munder underscript の margin box をそれぞれの min-content inline size(あるいは max-content inline size)で置き換えて計算する。
フロー内 の子要素は インライン軸に沿った演算子の伸長アルゴリズム を使ってレイアウトされる。
数式コンテンツの inline size は、次の差の絶対値を決定することで計算される:
LargeOpItalicCorrection を差し引いた値。LargeOpItalicCorrection を差し引いた値。
上記の第2項で計算された最小値を m とすると、
inline offset は次のようになる:
munder base の inline offset は −m − 基底の margin box
の半分、
munder underscript の inline offset は
−m − underscript の margin box の半分 − 半分の LargeOpItalicCorrection である。
パラメータ UnderShift と UnderExtraDescender は、以下の3つの場合をこの順に検討して決定する:
munder base が
embellished operator で
largeop プロパティを持つ場合、
UnderShift は次の最大値である:
UnderExtraDescender は 0 である。
munder base が
embellished operator で
stretchy を持ち、
インライン方向が stretch axis である場合、
UnderShift は次の最大値である:
UnderExtraDescender は 0 である。
上記のいずれにも当てはまらない場合、
UnderShift は
UnderbarVerticalGap
(accentunder
属性が true と ASCII 大小区別なしで一致しない場合)、
そうでなければ 0 と等しい。
UnderExtraAscender は
UnderbarExtraDescender である。
数式コンテンツの line-ascent は次の最大値である:
UnderShift。
数式コンテンツの line-descent は次の最大値である:
UnderShift + UnderExtraAscender。
アルファベットベースライン は、
munder base のアルファベットベースラインが基準と一致するよう揃えられる。
munder underscript のアルファベットベースラインは、
基準ベースラインから インクラインディセント(munder base の margin box の)+
UnderShift だけ line-under 方向に移動される。
math content box は content box 内に配置され、そのブロック開始端が揃えられ、これらのエッジの中央が同じ位置になるようにされる。
<mover> 要素は
図
21 のようにレイアウトされる。
LargeOpItalicCorrection
は、mover base が
embellished operator で
largeop プロパティを持つ場合の
イタリック補正 であり、そうでなければ0である。
<mover> 要素のボックスモデル
min-content inline size(および max-content inline size)は、 以下のインラインサイズの計算と同様だが、ここでは mover base の margin box と mover overscript の margin box を それぞれの min-content inline size(または max-content inline size)で置き換えて計算する。
フロー内 の子要素は インライン軸に沿った演算子の伸長アルゴリズム を使ってレイアウトされる。
TopAccentAttachment は
top accent attachment(mover overscript のもの)か、
定義されていない場合は mover overscript の margin box の半分のいずれかとなる。
数式コンテンツの inline size は、 インライン軸に沿った演算子の伸長アルゴリズム を適用してレイアウトを行い、次の差の絶対値を求めることで計算される:
TopAccentAttachment + 半分の LargeOpItalicCorrection。
TopAccentAttachment + 半分の LargeOpItalicCorrection。
上記の第2項で計算された最小値を m とすると、
inline offset は次のようになる:
mover base の inline offset は −m − 基底の margin box
の半分、
mover overscript の inline offset は
−m − overscript の margin box の半分 + 半分の LargeOpItalicCorrection である。
パラメータ OverShift と OverExtraDescender は、以下の3つの場合をこの順に検討して決定する:
mover base が
embellished operator で
largeop プロパティを持つ場合、
OverShift は次の最大値である:
OverExtraAscender は 0 である。
mover base が
embellished operator で
stretchy を持ち、
インライン方向が stretch axis である場合、
OverShift は次の最大値である:
OverExtraDescender は 0 である。
それ以外の場合、OverShift は次のいずれかである:
accent
属性が ASCII 大小区別なしで true と一致しない場合)、
OverExtraAscender は OverbarExtraAscender である。
数式コンテンツの line-ascent は次の最大値である:
OverShift + OverExtraAscender。
数式コンテンツの line-descent は次の最大値である:
OverShift。
アルファベットベースライン は、
mover base のアルファベットベースラインが基準と一致するよう揃えられる。
mover overscript のアルファベットベースラインは、
基準ベースラインから基底の インクラインアセント + OverShift だけ
line-over 方向に移動される。
math content box は content box 内に配置され、そのブロック開始端が揃えられ、これらのエッジの中央が同じ位置になるようにされる。
<munderover> の一般的なレイアウトは
図 22 に示される。
LargeOpItalicCorrection,
UnderShift,
UnderExtraDescender,
OverShift,
OverExtraDescender の各パラメータは、
3.4.2.3 Base with
underscript と
3.4.2.4 Base with
overscript と同様に計算される。
<munderover> 要素のボックスモデル
数式コンテンツの min-content inline size、max-content inline size、 および inline size は、最大の inline offset と最小の inline offset の 絶対差として計算される。これらの極値は 3.4.2.3 Base with underscript と 3.4.2.4 Base with overscript で計算される対応する極値を取り、それらの極値の極端値を用いて計算される。 inline offsets は、それぞれ munderover base, munderover underscript, munderover overscript について、対応する節と同様に計算されるが、新しい最小値 m(対応する最小値の最小値)を用いる点が異なる。
これらの節と同様に、フロー内 子要素は インライン軸に沿った演算子の伸長アルゴリズム を使ってレイアウトされる。
数式コンテンツの line-ascent および line-descent は、3.4.2.3 Base with underscript と 3.4.2.4 Base with overscript で計算される極値のうち極端な値を取ることで計算される。
最後に、アルファベットベースライン は munderover base, munderover underscript、 munderover overscript に対して、 それぞれ 3.4.2.3 Base with underscript および 3.4.2.4 Base with overscript と同様に計算される。
math content box は content box 内に配置され、そのブロック開始端が揃えられ、これらのエッジの中央が同じ位置になるようにされる。
underscript(あるいは overscript)が空ボックスである場合、基底と overscript(あるいは underscript)は 3.4.2.4 Base with overscript (あるいは 3.4.2.3 Base with underscript) と同様にレイアウトされるが、 空の underscript(あるいは overscript)の位置が追加の空白を生じさせる可能性がある。 アルゴリズムを単純に保つため、空スクリプトを特別扱いする試みは行っていない。
プレサブスクリプトおよびテンソル表記は mmultiscripts 要素で表される。 mprescripts 要素は、 ポストスクリプトとプレスクリプトの間の区切りとして使用される。 これら2つの要素は 2.1.3 グローバル属性で説明されている属性を受け付ける。
次の例は、mprescripts
を含む
プレスクリプトとポストスクリプトの基本的な使用例を示す。
スクリプトが表示されない位置には空の
mrow
要素が使用されている。
スクリプト内ではフォントサイズが自動的に縮小される。
<math>
<mmultiscripts>
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
<mrow></mrow>
<mn>5</mn>
<mprescripts/>
<mn>6</mn>
<mrow></mrow>
<mn>8</mn>
<mn>9</mn>
</mmultiscripts>
</math>
<mmultiscripts> または
<mprescripts>
要素の計算された
display
プロパティが block math
または inline math でない場合、それらは対応する値が記述された CSS 仕様に従ってレイアウトされる。
それ以外の場合は以下のレイアウトが行われる。
<mprescripts>
要素は
mrow
要素としてレイアウトされる。
有効な <mmultiscripts> 要素は、次の フロー内 子を含む:
mprescripts
要素であってはならない。
mprescripts
要素ではない。
これらのスクリプトは(空であってもよい)リストを形成し、
subscript, superscript, subscript, superscript, … の順に並ぶ。
連続する子2つ(subscript, superscript)の各組を
下付き/上付きペア と呼ぶ。
mprescripts
要素と偶数個の フロー内 子が続き、これらは
mmultiscripts プレサクリプト と呼ばれ、いずれも
mprescripts
要素ではない。
これらのスクリプトも(空であってもよい)下付き/上付きペア のリストを形成する。
もし <mmultiscripts> 要素が有効でない場合、そのレイアウトは
mrow
要素と同じになる。
それ以外の場合、レイアウトアルゴリズムは
3.4.3.1
Base with prescripts and postscripts に記載された通りに実行される。
<mmultiscripts> 要素は
図 23
に示すようにレイアウトされる。
各 下付き/上付きペア に対して、
ItalicCorrection および
LargeOpItalicCorrection は
3.4.1.2 Base with
subscript
および 3.4.1.3 Base with
superscript に記載されたように定義される。
<mmultiscripts> 要素のボックスモデル数式コンテンツの min-content inline size(および max-content inline size)は、 以下に述べる数式コンテンツの inline size の計算と同じ方法で求められるが、 mmultiscripts 基底 の margin box とスクリプトの margin boxes については "inline size" の代わりに "min-content inline size" (それぞれ "max-content inline size") を用いる。
もし inline 伸長サイズ制約 または block 伸長サイズ制約 があれば、 mmultiscripts 基底 も同じ制約でレイアウトされる。 それ以外の場合は制約なしでレイアウトされる。他の要素は常に制約なしでレイアウトされる。
数式コンテンツの inline size は次のアルゴリズムで計算される:
inline-offset を 0 に設定する。
mmultiscripts プレサクリプト の各
下付き/上付きペアについて、
inline-offset を SpaceAfterScript
と、次のうち大きい方を加算する:
次に inline-offset に mmultiscripts 基底 の
margin box の
inline size を加え、inline-size を inline-offset に設定する。
mmultiscripts ポストスクリプト の各
下付き/上付きペアについて、
inline-size を少なくとも次の値に修正する:
LargeOpItalicCorrection
ItalicCorrection
また inline-offset を次の最大値に更新する:
さらに inline-offset に SpaceAfterScript を加算する。
inline-size を返す。
SubShift(および SuperShift)は、
各 下付き/上付きペア に対して
3.4.1.4
Base with subscript and superscript で記述された各下付き・上付きシフト値の最大値を取ることで算出される。
数式コンテンツの line-ascent は、上で算出した SubShift と
SuperShift の値を用いて、各ペアについて
3.4.1.4
Base with subscript and superscript に記載された
line-ascent の最大値を取ることで計算される。
数式コンテンツの line-descent は、同様に上で算出した SubShift と
SuperShift の値を用いて、各ペアについて
3.4.1.4
Base with subscript and superscript に記載された
line-descent の最大値を取ることで計算される。
最後に、フロー内 子要素の配置は次のアルゴリズムで実行される:
inline-offset を 0 に設定する。まず mmultiscripts プレサクリプト の各 下付き/上付きペア について:
inline-offset に SpaceAfterScript を加算する。
pair-inline-size を次の最大値に設定する:
下付きは inline-start 位置 inline-offset + pair-inline-size −
下付きの margin box の inline size に配置する。
上付きは inline-start 位置 inline-offset + pair-inline-size −
上付きの margin box の inline size に配置する。
下付き(および上付き)の alphabetic
baseline を、基準の alphabetic
baseline から
SubShift(それぞれ SuperShift)だけ
line-under(それぞれ line-over)方向にシフトして配置する。
inline-offset に pair-inline-size を加算する。
mmultiscripts 基底 と
<mprescripts> のボックスを
inline offsets の位置 inline-offset
に配置し、
それらの alphabetic baselines を基準の
alphabetic baseline と揃える。
次に mmultiscripts ポストスクリプト の各 下付き/上付きペア について:
pair-inline-size を次の最大値に設定する:
下付きは inline-start 位置 inline-offset −
LargeOpItalicCorrection に配置する。
上付きは inline-start 位置 inline-offset + ItalicCorrection
に配置する。
下付き(上付き)の alphabetic
baseline を、基準の
alphabetic baseline から
SubShift(それぞれ SuperShift)だけ
line-under(それぞれ line-over)方向にシフトして配置する。
inline-offset に pair-inline-size を加算する。
inline-offset に SpaceAfterScript を加算する。
<mmultiscripts> にポストスクリプトが1組だけ含まれる場合、
そのレイアウトは同じ フロー内 子を持つ <msubsup> と同じになる。
しかし msubsup の節 で指摘されている通り、
さらにその下付き(または上付き)が空ボックスである場合は、
<msub>(または <msup>) と同一にはならないことがある。
アルゴリズムを単純に保つため、空スクリプトを特別扱いすることは行わない。
すべての スクリプト要素 について、基本ルールは
1番目以外のすべての子要素に
displaystyle を false に設定し、
scriptlevel をインクリメントすること。
ただし
mover
(または
munderover)
要素で
accent
属性が
ASCII 大文字・小文字問わず
true に一致する場合は
2番目(または3番目)の子内部で scriptlevel をインクリメントしない。さらに
mover
および
munderover
要素で
accentunder
属性が
ASCII 大文字・小文字問わず
true に一致する場合も
2番目の子内部で scriptlevel をインクリメントしない。
<mmultiscripts> は
math-shift を
compact に、mprescripts の前なら偶数番目の子に、mprescripts 後なら奇数番目の子に適用。
<msub> および <msubsup>
は2番目の子に
math-shift
を compact に設定。
mover
および
munderover
要素で
accent
属性が
ASCII 大文字・小文字問わず true の場合
1番目の子に math-shift も compact を設定。
A. ユーザーエージェント スタイルシート にはこれを実現するため、次のCSSが必須:
msub > :not(:first-child),
msup > :not(:first-child),
msubsup > :not(:first-child),
mmultiscripts > :not(:first-child),
munder > :not(:first-child),
mover > :not(:first-child),
munderover > :not(:first-child) {
math-depth: add(1);
math-style: compact;
}
munder[accentunder="true" i] > :nth-child(2),
mover[accent="true" i] > :nth-child(2),
munderover[accentunder="true" i] > :nth-child(2),
munderover[accent="true" i] > :nth-child(3) {
font-size: inherit;
}
msub > :nth-child(2),
msubsup > :nth-child(2),
mmultiscripts > :nth-child(even),
mmultiscripts > mprescripts ~ :nth-child(odd),
mover[accent="true" i] > :first-child,
munderover[accent="true" i] > :first-child {
math-shift: compact;
}
mmultiscripts > mprescripts ~ :nth-child(even) {
math-shift: inherit;
}
<mprescripts> は空となる。
したがって各CSSルールは、実質的にスクリプトに対し
displaystyle や
scriptlevel の自動切り替え、
および下付きや基底への
math-shift
切り替えを行うことになる。
行列・配列その他表状の数式記法は
mtable
mtr
mtd
要素を使ってマークアップする。これらの要素は
table,
tr
td
([HTML])に似ている。
以下の例は、表形式レイアウトにより行列を書けることを示す。分数の横棒や等号の中央と垂直に揃えられていることにも注目。
<math>
<mfrac>
<mi>A</mi>
<mn>2</mn>
</mfrac>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mtable>
<mtr>
<mtd><mn>1</mn></mtd>
<mtd><mn>2</mn></mtd>
<mtd><mn>3</mn></mtd>
</mtr>
<mtr>
<mtd><mn>4</mn></mtd>
<mtd><mn>5</mn></mtd>
<mtd><mn>6</mn></mtd>
</mtr>
<mtr>
<mtd><mn>7</mn></mtd>
<mtd><mn>8</mn></mtd>
<mtd><mn>9</mn></mtd>
</mtr>
</mtable>
<mo>)</mo>
</mrow>
</math>
mtable は
inline-table としてレイアウトされ、
displaystyle を false に設定する。
ユーザーエージェントスタイルシートには
この性質を実現するため以下のルールが必須:
mtable {
display: inline-table;
math-style: compact;
}
mtable 要素はCSSの
table として扱われ、
min-content inline size, max-content inline size,
inline size, block size, first baseline set, last baseline set
などが決定される。
テーブルの中央は 数式軸と揃う。
<mtable> は
2.1.3 グローバル属性
で説明されている属性を受け付ける。
mtr は
table-row としてレイアウトされる。
ユーザーエージェントスタイルシート には
この振る舞いを実現するため次のルールが必須:
mtr {
display: table-row;
}
<mtr> は
2.1.3 グローバル属性
で説明されている属性を受け付ける。
mtd は内容を中央揃えと既定のパディングにした
table-cell としてレイアウトされる。
ユーザーエージェントスタイルシート には
次のルールが必須:
mtd {
display: table-cell;
/* Centering inside table cells should rely on box alignment properties.
See https://github.com/w3c/mathml-core/issues/156 */
text-align: center;
padding: 0.5ex 0.4em;
}
<mtd> は
2.1.3
グローバル属性の他、以下の属性を受け付ける:
columnspan(および
rowspan)属性は
colspan
(および
)
と同じ構文と意味を持ち、 [HTML] の rowspan<td> 属性を踏襲。
特にパース方法は
行処理アルゴリズムに従い、
常に "colspan" を
"columnspan" と読替える。
columnspan であり、後方互換性保持のため残っている。
<mtd> 要素は
匿名 <mrow> ボックスを生成する。
歴史的に maction 要素は、式にアクションをバインドする仕組みを提供する。
<maction> 要素は
2.1.3
グローバル属性で説明されている属性のほか、以下の属性を受け付ける。
本仕様では、actiontype および selection 属性に特有の可観測な挙動を定義しない。
以下の例は [MathML3] での "toggle" アクションタイプ例であり、 レンダラーは選択された部分式(初期値は「1/3」)を順にトグル表示する。選択部分式をクリックすると "1/4"、"1/2"、"1/3" ... と巡回する。 これはMathML Coreの一部ではなく、JavaScriptやCSSポリフィルで実装できるが、デフォルトでは最初の子だけが描画される。
<math>
<maction actiontype="toggle" selection="2">
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mfrac>
<mn>1</mn>
<mn>3</mn>
</mfrac>
<mfrac>
<mn>1</mn>
<mn>4</mn>
</mfrac>
</maction>
</math>
<maction> のレイアウトアルゴリズムは <mrow> と同じである。
ユーザーエージェントスタイルシート
には、デフォルト動作(すなわち最初の子以外を隠す)を実装するため次のルールが必須:
maction > :not(:first-child) {
display: none;
}
<maction> はフルMathMLとの互換性のために実装されている。MathML Core のみを対象とする著者は
独自アクション実装には他のHTML, CSS, JavaScript手法を推奨。
必要があれば [MathML3]
で定義された maction 属性にも依拠できる。
semantics
要素は、MathML式に注釈を結びつけるためのコンテナ要素である。通常、
<semantics> 要素の最初の子は注釈対象となるMathML式であり、それ以降の子要素は
annotation
要素内のテキスト注釈、または
annotation-xml 要素内のより複雑なマークアップ注釈となる。
以下の例では分数「1/2」に一つはテキスト注釈(LaTeX)、もう一つはXML注釈(Content MathML)、さらにSVGやHTML注釈が加えられている。 これらはユーザーエージェントによる描画対象ではない。対応するSVGやHTMLマークアップも注釈として加えられている。
<math>
<semantics>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<annotation encoding="application/x-tex">\frac{1}{2}</annotation>
<annotation-xml encoding="application/mathml-content+xml">
<apply>
<divide/>
<cn>1</cn>
<cn>2</cn>
</apply>
</annotation-xml>
<annotation-xml>
<svg width="25" height="75" xmlns="http://www.w3.org/2000/svg">
<path stroke-width="5.8743"
d="m5.9157 27.415h6.601v-22.783l-7.1813 1.4402v-3.6805l7.1408
-1.4402h4.0406v26.464h6.601v3.4005h-17.203z"/>
<path stroke="#000000" stroke-width="2.3409"
d="m0.83496 39.228h23.327"/>
<path stroke-width="5.8743"
d="m8.696 70.638h14.102v3.4005h-18.963v-3.4005q2.3004-2.3804
6.2608-6.3813 3.9806-4.0206 5.0007-5.1808 1.9403-2.1803
2.7004-3.6805 0.78011-1.5202 0.78011-2.9804 0-2.3804
-1.6802-3.8806-1.6603-1.5002-4.3406-1.5002-1.9003 0-4.0206
0.6601-2.1003 0.6601-4.5007 2.0003v-4.0806q2.4404-0.98013
4.5607-1.4802 2.1203-0.50007 3.8806-0.50007 4.6407 0 7.401
2.3203 2.7604 2.3203 2.7604 6.2009 0 1.8403-0.7001 3.5006
-0.68013 1.6402-2.5004 3.8806-0.50007 0.58009-3.1805 3.3605
-2.6804 2.7604-7.5614 7.7412z"/>
</svg>
</annotation-xml>
<annotation-xml encoding="application/xhtml+xml">
<div style="display: inline-flex;
flex-direction: column; align-items: center;">
<div>1</div>
<div>―</div>
<div>2</div>
</div>
</annotation-xml>
</semantics>
</math>
<semantics> 要素は
2.1.3 グローバル属性
で説明されている属性を受け付ける。レイアウトアルゴリズムは
mrow
要素と同じ。
ユーザーエージェントスタイルシート
には、注釈付きのMathML式(最初の子)のみ描画対象とするため次のルールが必須:
semantics > :not(:first-child) {
display: none;
}
<annotation-xml> および
<annotation> 要素は
2.1.3 グローバル属性 のほか以下の属性を受け付ける。
本仕様では encoding 属性に特有の可観測な挙動を定義しない。
<annotation-xml> および <annotation> の
レイアウトアルゴリズムは
mtext
要素と同じ。
encoding
属性を使い、HTMLインテグレーションポイントやクリップボードコピー、代替レンダリングなど用途で注釈を区別できる。
特にCSSで代替注釈を描画可能。例:
/* Hide the annotated child. */
semantics > :first-child { display: none; }
/* Show all text annotations. */
semantics > annotation { display: inline; }
/* Show all HTML annotations. */
semantics > annotation-xml[encoding="text/html" i],
semantics > annotation-xml[encoding="application/xhtml+xml" i] {
display: inline-block;
}
display プロパティ
CSS Display Module Level 3
に新しい inner display type が追加される:
| Name: | display |
|---|---|
| New values: | <display-outside> || [ <display-inside> | math ] |
MathML要素でない要素の場合、
指定値が display: block math や
display: inline math なら、計算値は
block flow、inline flow となる。
mtable
要素の計算値は
block table、
inline table。
mtr
要素の場合、計算値は
table-row。
mtd
要素の場合、計算値は
table-cell。
計算済 display 値が
block math や inline math の
MathML要素は、
タグ名等に応じたボックス生成・レイアウトを行う。
未知のMathML要素
は
mrow
要素と同じ挙動になる。
display: block math と
display: inline math はMathML要素のデフォルトレイアウトを提供する一方、
ネイティブdisplay値や
カスタム値
でこれを上書き可能。
これにより記法拡張やPolyfill等のカスタム表記も実現できる。
以下の例は、MathML
mrow
要素の標準レイアウトをグリッド表示に上書きしたもの。
<math>
<msup>
<mrow>
<mo symmetric="false">[</mo>
<mrow style="display: block; width: 4.5em;">
<mrow style="display: grid;
grid-template-columns: 1.5em 1.5em 1.5em;
grid-template-rows: 1.5em 1.5em;
justify-items: center;
align-items: center;">
<mn>12</mn>
<mn>34</mn>
<mn>56</mn>
<mn>7</mn>
<mn>8</mn>
<mn>9</mn>
</mrow>
</mrow>
<mo symmetric="false">]</mo>
</mrow>
<mi>α</mi>
</msup>
</math>
text-transform プロパティ
CSS Text Module Level 4
に新しい値 math-auto が追加される。
テキストノードが1文字だけを含み、計算値が math-auto かつ文字が
C.1
italic mappings
「Original」列にある場合、対応する「italic」列の文字に変換される。
一般的な記法として複数文字の識別子(例:"exp"関数名)は標準書体、1文字の変数(例:"n")はイタリック書体にすることがある。
math-auto プロパティはこのデフォルト挙動を実現するためのもの。必要なら上書きも可能。
数学フォントでは、イタリックスタイル化によるグリフ変形とは異なる、Unicode上の
C.1 italic
mappings に格納されたイタリック体グリフが用意されている点に注意。
左:font-style: italic 右:text-transform: math-auto
でのレンダリング例(Latin Modern Math フォント):
| Name: | math-style |
|---|---|
| Value: | normal | compact |
| Initial: | normal |
| Applies to: | すべての要素 |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | 指定キーワード |
| Canonical order: | n/a |
| Animation type: | 非アニメーション |
| Media: | ビジュアル |
math-style が compact の場合、子孫の数式レイアウトは
logical height の最小化を目指し、以下を適用する:
math 且つ
math-depth 計算値が
auto-add(mfracの既定)なら
4.5
math-depth プロパティで定義される縮小が適用される
largeop プロパティを持つ演算子は
3.2.4.3
Layout of operators
の巨大化規則に従わない
movablelimits を持つ演算子への上下スクリプトは
3.4.2.1
Children of <munder>,
<mover>, <munderover> の通り下付き・上付きとして描画
次の例は
math
ルートに
math-style: compact(左)と
math-style: normal(右)を設定した数式レンダ例。
前者では分数内フォント縮小とΣの制限が下付き・上付きとして描画され、後者ではΣが大型化、分数内空きも増加した。
2つの math-style 値は、典型的にインライン(compact)/ディスプレイ(normal)モード式に対応
[TeXBook]。
ディスプレイ式は内部でスクリプトや行列成分/分子分母等をインラインにしたりなど自動切替があり、上書きしたい場合もある。
math-style プロパティでユーザエージェントスタイルシートや
displaystyle 属性から
簡単にこの挙動を制御・Polyfill等で拡張できる。
| Name: | math-shift |
|---|---|
| Value: | normal | compact |
| Initial: | normal |
| Applies to: | すべての要素 |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | 指定キーワード |
| Canonical order: | n/a |
| Animation type: | 非アニメーション |
| Media: | ビジュアル |
math-shift が compact の場合、
子孫の上付き配置には
superscriptShiftUpCramped パラメータを用いる。
normal の場合は
superscriptShiftUp パラメータを用いる。
このプロパティはMathMLの
スクリプト要素 レイアウト時の上付き配置などに用いる。
§ 3.4.1
Subscripts and Superscripts <msub>, <msup>,
<msubsup>,
3.4.3
Prescripts and Tensor Indices <mmultiscripts>,
3.4.2
Underscripts and Overscripts <munder>, <mover>,
<munderover> 参照。
次例は2つの“xの2乗”を同じfont-size・compact math-styleで表示しつつ、
片方は√内につきcompact math-shift、もう片方は normal math-shift で
上付き“2”の位置が微妙に異なる例。
[TeXBook]によれば、 数式は標準でnormal(通常)スタイルを使うが 部分式(根号・分母等)でcompact(TeXでは "cramped")に切り替える場合も。 math-shift で MathMLユーザーエージェントスタイルシート等でこれらの制御が容易。 Polyfill作者もこのプロパティでデフォルト実装の細かな調整が可能。
数式各要素についてトップレベルからの「深さ」を記述する
math-depth プロパティが導入される。これは
font-size 指定値が math の場合の
計算値決定等に使われる。
| Name: | math-depth |
|---|---|
| Value: | auto-add | add(<integer>) | <integer> |
| Initial: | 0 |
| Applies to: | すべての要素 |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | 整数値、下記参照 |
| Canonical order: | n/a |
| Animation type: | 非アニメーション |
| Media: | ビジュアル |
math-depth の計算値判定手順:
auto-add かつ
継承 math-style
が compact なら、計算値は継承値+1add(<integer>) なら、計算値は継承値+指定整数
font-size 指定値が math の場合、
計算値は継承 font-size × 下記手順のスケールファクタとなる:
InvertScaleFactor=trueInvertScaleFactor=falseInvertScaleFactor=falseならS、trueなら1/Sを返す下例は 通常 math-style の数式がLatin Modern Mathフォントで表示される例。 スクリプトや分数などの部分式でフォントサイズが自動縮小されていく。 上付きでは縮小、ルート内部(prescript)ではさらに急速に縮小、分数も内側は縮小だが外側は math-style自動切替のため縮小しない等がわかる。
[TeXBook]準拠のこれら規則は微妙な差があり、専用の math-depth
機構で実装可能なことは重要。
MathMLなら ユーザーエージェントスタイルシートでも適用できる。
Polyfill等の調整にも有用。 MathMLの scriptlevel 属性
で math-depth 変更も可能。
本章ではOpenTypeフォントの MATH テーブル
[OPEN-FONT-FORMAT]
で提供される機能について説明する。
本章全体で、
Cライクな表記
Table.Subtable1[index].Subtable2.Parameter
を用いてOpenTypeパラメータを指す。
こうしたパラメータは(サブテーブルが無い・オフセット不正など)利用できない場合もあるため、フォールバック手段が準備されている。
OpenType値(間接的にMathValueRecord経由も含む)がデザイン単位で与えられる場合、レイアウト用途で
head.unitsPerEm、CSS
font-size
またはズーム値を加味して適切な値にスケーリングされる。
以下は 最初に利用可能なフォントに対する全体のレイアウト定数である。
post.underlineThickness もしくは
デフォルト・フォールバック定数(定数未定義時)。
MATH.MathConstants.scriptPercentScaleDown / 100 もしくは
MATH.MathConstants.scriptPercentScaleDown が null/無い場合は0.71
MATH.MathConstants.scriptScriptPercentScaleDown / 100 または
null/値なしの時は0.5041
MATH.MathConstants.displayOperatorMinHeight もしくは
定数未定義時はデフォルト・フォールバック定数
MATH.MathConstants.axisHeight または 定数未定義時 OS/2.sxHeight の半分MATH.MathConstants.accentBaseHeight または無い場合 OS/2.sxHeightMATH.MathConstants.subscriptShiftDown または無い場合 OS/2.ySubscriptYOffsetMATH.MathConstants.subscriptTopMax または 無い場合 ⅘ × OS/2.sxHeightMATH.MathConstants.subscriptBaselineDropMin またはデフォルト・フォールバック定数
MATH.MathConstants.superscriptShiftUp または OS/2.ySuperscriptYOffset(無い時)
MATH.MathConstants.superscriptShiftUpCramped またはデフォルト・フォールバック定数
MATH.MathConstants.superscriptBottomMin または無い時 ¼ × OS/2.sxHeightMATH.MathConstants.superscriptBaselineDropMax またはデフォルト・フォールバック定数
MATH.MathConstants.subSuperscriptGapMin または未定義時は4 × デフォルト罫線太さ
MATH.MathConstants.superscriptBottomMaxWithSubscript または未定義時 ⅘ ×
OS/2.sxHeight
MATH.MathConstants.spaceAfterScript または未定義時 1/24emMATH.MathConstants.upperLimitGapMin または未定義時デフォルト・フォールバック定数
MATH.MathConstants.upperLimitBaselineRiseMin または未定義時デフォルト・フォールバック定数MATH.MathConstants.lowerLimitGapMin または未定義時デフォルト・フォールバック定数
MATH.MathConstants.lowerLimitBaselineDropMin または未定義時デフォルト・フォールバック定数MATH.MathConstants.stackTopShiftUp または未定義時デフォルト・フォールバック定数MATH.MathConstants.stackTopDisplayStyleShiftUp またはデフォルト・フォールバック定数MATH.MathConstants.stackBottomShiftDown またはデフォルト・フォールバック定数MATH.MathConstants.stackBottomDisplayStyleShiftDown またはデフォルト・フォールバック定数MATH.MathConstants.stackGapMin または未定義時 3 × デフォルト罫線太さ
MATH.MathConstants.stackDisplayStyleGapMin または未定義時 7 × デフォルト罫線太さMATH.MathConstants.stretchStackTopShiftUp またはデフォルト・フォールバック定数MATH.MathConstants.stretchStackBottomShiftDown またはデフォルト・フォールバック定数MATH.MathConstants.stretchStackGapAboveMin またはデフォルト・フォールバック定数MATH.MathConstants.stretchStackGapBelowMin またはデフォルト・フォールバック定数MATH.MathConstants.fractionNumeratorShiftUp またはデフォルト・フォールバック定数(未定義時)MATH.MathConstants.fractionNumeratorDisplayStyleShiftUp またはデフォルト・フォールバック定数MATH.MathConstants.fractionDenominatorShiftDown またはデフォルト・フォールバック定数MATH.MathConstants.fractionDenominatorDisplayStyleShiftDown またはデフォルト・フォールバック定数MATH.MathConstants.fractionNumeratorGapMin またはデフォルト罫線太さ
MATH.MathConstants.fractionNumDisplayStyleGapMin または未定義時 3 × デフォルト罫線太さMATH.MathConstants.fractionRuleThickness またはデフォルト罫線太さ
MATH.MathConstants.fractionDenominatorGapMin またはデフォルト罫線太さ
MATH.MathConstants.fractionDenomDisplayStyleGapMin または未定義時 3 × デフォルト罫線太さMATH.MathConstants.overbarVerticalGap または未定義時 3 × デフォルト罫線太さ
MATH.MathConstants.overbarExtraAscender またはデフォルト罫線太さMATH.MathConstants.underbarVerticalGap または未定義時 3 × デフォルト罫線太さMATH.MathConstants.underbarExtraDescender またはデフォルト罫線太さMATH.MathConstants.radicalVerticalGap または未定義時 1¼ × デフォルト罫線太さMATH.MathConstants.radicalDisplayStyleVerticalGap またはデフォルト罫線太さ + ¼
OS/2.sxHeight(未定義時)
MATH.MathConstants.radicalRuleThickness またはデフォルト罫線太さMATH.MathConstants.radicalExtraAscender またはデフォルト罫線太さMATH.MathConstants.radicalKernBeforeDegree または未定義時 5/18emMATH.MathConstants.radicalKernAfterDegree または未定義時 −10/18emMATH.MathConstants.radicalDegreeBottomRaisePercent / 100.0 または未定義時 0.6以下は 最初に利用可能なフォントのグリフ単位のテーブルである。
MATH.MathGlyphInfo.MathItalicsCorrectionInfo。
対象グリフに値があれば
MATH.MathGlyphInfo.MathItalicsCorrectionInfo.italicsCorrection の値を、
なければ 0 を使う。
MATH.MathGlyphInfo.MathTopAccentAttachment サブテーブル。
対象グリフに値があれば
MATH.MathGlyphInfo.MathTopAccentAttachment.topAccentAttachment を、
なければグリフ進行幅の半分を使う。
このセクションでは MATH.MathVariants テーブルを用いた任意サイズのストレッチグリフ処理について説明する。
本節は [OPEN-TYPE-MATH-IN-HARFBUZZ] を元にする。 定義簡素化のため、以下を採用する:
MATH.MathVariant.minConnectorOverlap
GlyphPartRecord が fExtender フラグ有なら extender である。
MathVariant.horizGlyphConstructionOffsets より得たら横組、それ以外は縦組
GlyphAssembly について、
NExt
(および
NNonExt)は
extender(およびextenderでない)数
以下成立しない場合、user agentはGlyphAssemblyを無効とみなす:
GlyphPartRecord で
startConnectorLength, endConnectorLength ≥ omin
本仕様では各extenderをr回繰り返し、各グリフ間overlapをoとして組み立てる。 glyph数は AssemblyGlyphCount(r) = NNonExt + r NExt 伸長サイズは AssembySize(o, r) = SNonExt + r SExt − o(AssemblyGlyphCount(r) − 1)
rminは 要求サイズ T に到達するためのrepetition数の最小値: AssembySize(omin, r) ≥ T となる最小r。max(0, ceil((T − SNonExt + omin(NNonExt−1))/SExt,NonOverlapping)
omax,theorical = (AssembySize(0, rmin) − T)/(AssemblyGlyphCount(rmin) − 1)
omax は extenderをrmin回繰返すことで T以上のサイズを作る最大overlap値: AssemblyGlyphCount(rmin) ≤ 1 なら overlap値は何でも良い。それ以外は以下最小:
GlyphPartRecord.startConnectorLength 各値(最後の非extenderを除く)
GlyphPartRecord.endConnectorLength 各値(最初の非extenderを除く)
指定サイズ Tに対する glyph assembly stretch size は AssembySize(omax, rmin)
glyph assembly width、 glyph assembly ascent glyph assembly descent は以下の通り:
GlyphPartRecord.glyphID の進行幅最大値
ascent=stretch size
descent=0
glyph assembly height = glyph assembly ascent+ glyph assembly descent
glyph assembly の shaping アルゴリズムは以下:
block軸伸長グリフの望ましいインラインサイズ はこのアルゴリズムで決定:
S=グリフの進行幅
MathGlyphConstructionテーブルが MathVariants.vertGlyphConstructionOffsets
にあれば
MathGlyphVariantRecordについて、SをvariantGlyphの進行幅最大値に
GlyphAssemblyがあれば
Sを assembly width 以上に
グリフをインライン/ブロック方向Tにストレッチ成形するアルゴリズムは以下:
MathGlyphConstructionテーブルが無い場合は失敗で終了
MathGlyphVariantRecordにadvanceMeasurementがT以上のものがあれば
そのvariantGlyph・MathItalicsCorrectionInfo・通常成形で成功
GlyphAssemblyがあれば、指定b.box・GlyphAssembly.italicsCorrectionで shaping を行い成功
@namespace url(http://www.w3.org/1998/Math/MathML);
/* 全体ルール */
* {
font-size: math;
display: block math;
writing-mode: horizontal-tb !important;
}
/* <math> 要素 */
math {
direction: ltr;
text-indent: 0;
letter-spacing: normal;
line-height: normal;
word-spacing: normal;
font-family: math;
font-size: inherit;
font-style: normal;
font-weight: normal;
display: inline math;
math-shift: normal;
math-style: compact;
math-depth: 0;
}
math[display="block" i] {
display: block math;
math-style: normal;
}
math[display="inline" i] {
display: inline math;
math-style: compact;
}
/* <mrow>系 要素 */
semantics > :not(:first-child) {
display: none;
}
maction > :not(:first-child) {
display: none;
}
merror {
border: 1px solid red;
background-color: lightYellow;
}
mphantom {
visibility: hidden;
}
/* トークン要素 */
mi {
text-transform: math-auto;
}
/* 表系 */
mtable {
display: inline-table;
math-style: compact;
}
mtr {
display: table-row;
}
mtd {
display: table-cell;
/* セル内中央揃えは box alignment プロパティに依存
See https://github.com/w3c/mathml-core/issues/156 */
text-align: center;
padding: 0.5ex 0.4em;
}
/* 分数 */
mfrac {
padding-inline: 1px;
}
mfrac > * {
math-depth: auto-add;
math-style: compact;
}
mfrac > :nth-child(2) {
math-shift: compact;
}
/* その他 scriptlevel, displaystyle, math-shift のためのルール */
mroot > :not(:first-child) {
math-depth: add(2);
math-style: compact;
}
mroot, msqrt {
math-shift: compact;
}
msub > :not(:first-child),
msup > :not(:first-child),
msubsup > :not(:first-child),
mmultiscripts > :not(:first-child),
munder > :not(:first-child),
mover > :not(:first-child),
munderover > :not(:first-child) {
math-depth: add(1);
math-style: compact;
}
munder[accentunder="true" i] > :nth-child(2),
mover[accent="true" i] > :nth-child(2),
munderover[accentunder="true" i] > :nth-child(2),
munderover[accent="true" i] > :nth-child(3) {
font-size: inherit;
}
msub > :nth-child(2),
msubsup > :nth-child(2),
mmultiscripts > :nth-child(even),
mmultiscripts > mprescripts ~ :nth-child(odd),
mover[accent="true" i] > :first-child,
munderover[accent="true" i] > :first-child {
math-shift: compact;
}
mmultiscripts > mprescripts ~ :nth-child(even) {
math-shift: inherit;
}
カテゴリから演算子のプロパティを設定するアルゴリズムは次の通り:
minsize を 100% に設定。maxsize を ∞ に設定。lspace および rspace を対応列で指定された値に設定。stretchy、symmetric、largeop、movablelimits)について、最後の列に列挙されていればtrue、なければfalseを設定。
演算子のカテゴリ決定アルゴリズム
(Content, Form) は以下の通り:
Content(UTF-16文字列)の長さが1または2でなければ、カテゴリDefaultで打ち切り。
ContentがU+0320–U+03FFの範囲内1文字なら、カテゴリDefaultで打ち切り。2文字の場合は:
Contentが
U+1EEF0 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
または U+1EEF1 ARABIC MATHEMATICAL OPERATOR HAH WITH DAL のサロゲートペアで
且つ Form が postfix なら、カテゴリIで打ち切り。
Content を1文字目に置き換え、手順3へ。
Content が
Operators_2_ascii_chars
にあれば、Contentを
「U+0320 + インデックス」に置換え手順3へ。
Defaultで打ち切り。Formがinfixで ContentがU+007C またはU+223C ならカテゴリForceDefaultで打ち切り。
(Content, Form)のカテゴリが
図
25
でN/A符号化(カテゴリL/M)なら、そのカテゴリで打ち切り。
それ以外は:
| 特殊表 | エントリ数 |
|---|---|
Operators_2_ascii_chars |
18エントリ(2文字ASCII):'!!', '!=', '&&', '**', '*=', '++', '+=', '--', '-=', '->', '//', '/=', ':=', '<=', '<>', '==', '>=', '||',
|
Operators_fence |
61エントリ(16範囲):[U+0028–U+0029], {U+005B}, {U+005D}, [U+007B–U+007D], {U+0331}, {U+2016}, [U+2018–U+2019], [U+201C–U+201D], [U+2308–U+230B], [U+2329–U+232A], [U+2772–U+2773], [U+27E6–U+27EF], {U+2980}, [U+2983–U+2999], [U+29D8–U+29DB], [U+29FC–U+29FD},
|
Operators_separator |
3エントリ:U+002C, U+003B, U+2063, |
| (Content, Form)キー | カテゴリ |
|---|---|
中置(infix)313件(35範囲):[U+2190–U+2195], [U+219A–U+21AE], [U+21B0–U+21B5], {U+21B9}, ...
|
A |
中置108件(31範囲):{U+002B}, {U+002D}, ... |
B |
中置64件(33範囲):{U+0025}, {U+002A}, ... |
C |
前置(prefix)52件(22範囲):{U+0021}, ... |
D |
後置(postfix)40件(21範囲):[U+0021–U+0022], ... |
E |
前置30件:U+0028, U+005B, ... |
F |
後置30件:U+0029, U+005D, ... |
G |
前置27件(2範囲):[U+222B–U+2233], ... |
H |
後置22件(13範囲):[U+005E–U+005F], ... |
I |
前置22件(6範囲):[U+220F–U+2211], ... |
J |
中置8件(5範囲):{U+002F}, {U+005C}, ... |
K |
前置6件(3範囲):[U+2145–U+2146], ... |
L |
中置3件:U+002C, U+003A, U+003B, |
M |
| カテゴリ | 形式 | 符号 | lspace | rspace | プロパティ |
|---|---|---|---|---|---|
| Default | N/A | N/A | 0.2777777777777778em |
0.2777777777777778em |
N/A |
| ForceDefault | N/A | N/A | 0.2777777777777778em |
0.2777777777777778em |
N/A |
| A | 中置 | 0x0 | 0.2777777777777778em |
0.2777777777777778em |
stretchy |
| B | 中置 | 0x4 | 0.2222222222222222em |
0.2222222222222222em |
N/A |
| C | 中置 | 0x8 | 0.16666666666666666em |
0.16666666666666666em |
N/A |
| D | 前置 | 0x1 | 0 |
0 |
N/A |
| E | 後置 | 0x2 | 0 |
0 |
N/A |
| F | 前置 | 0x5 | 0 |
0 |
stretchy symmetric |
| G | 後置 | 0x6 | 0 |
0 |
stretchy symmetric |
| H | 前置 | 0x9 | 0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| I | 後置 | 0xA | 0 |
0 |
stretchy |
| J | 前置 | 0xD | 0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| K | 中置 | 0xC | 0 |
0 |
N/A |
| L | 前置 | N/A | 0.16666666666666666em |
0 |
N/A |
| M | 中置 | N/A | 0 |
0.16666666666666666em |
N/A |
{0x8025}, {0x802A}, {0x402B}, ...
文字cの本来のストレッチ軸は下記リストの文字ならインライン軸。 それ以外はブロック軸。
U+003D,
U+005E,
U+005F,
U+007E,
U+00AF,
U+02C6,
U+02C7,
U+02C9,
U+02CD,
U+02DC,
U+02F7,
U+0302,
U+0332,
U+203E,
U+20D0,
U+20D1,
U+20D6,
U+20D7,
U+20E1,
U+2190,
U+2192,
U+2194,
U+2198,
U+2199,
U+219A,
U+219B,
U+219C,
U+219D,
U+219E,
U+21A0,
U+21A2,
U+21A3,
U+21A4,
U+21A6,
U+21A9,
U+21AA,
U+21AB,
U+21AC,
U+21AD,
U+21AE,
U+21B4,
U+21B9,
U+21BC,
U+21BD,
U+21C0,
U+21C1,
U+21C4,
U+21C6,
U+21C7,
U+21C9,
U+21CB,
U+21CC,
U+21CD,
U+21CE,
U+21CF,
U+21D0,
U+21D2,
U+21D4,
U+21DA,
U+21DB,
U+21DC,
U+21DD,
U+21E0,
U+21E2,
U+21E4,
U+21E5,
U+21E6,
U+21E8,
U+21F0,
U+21F4,
U+21F6,
U+21F7,
U+21F8,
U+21F9,
U+21FA,
U+21FB,
U+21FC,
U+21FD,
U+21FE,
U+21FF,
U+2322,
U+2323,
U+23B4,
U+23B5,
U+23DC,
U+23DD,
U+23DE,
U+23DF,
U+23E0,
U+23E1,
U+2500,
U+2794,
U+2799,
U+279B,
U+279C,
U+279D,
U+279E,
U+279F,
U+27A0,
U+27A1,
U+27A5,
U+27A6,
U+27A8,
U+27A9,
U+27AA,
U+27AB,
U+27AC,
U+27AD,
U+27AE,
U+27AF,
U+27B1,
U+27B3,
U+27B5,
U+27B8,
U+27BA,
U+27BB,
U+27BC,
U+27BD,
U+27BE,
U+27F4,
U+27F5,
U+27F6,
U+27F7,
U+27F8,
U+27F9,
U+27FA,
U+27FB,
U+27FC,
U+27FD,
U+27FE,
U+27FF,
U+2900,
U+2901,
U+2902,
U+2903,
U+2904,
U+2905,
U+2906,
U+2907,
U+290C,
U+290D,
U+290E,
U+290F,
U+2910,
U+2911,
U+2914,
U+2915,
U+2916,
U+2917,
U+2918,
U+2919,
U+291A,
U+291B,
U+291C,
U+291D,
U+291E,
U+291F,
U+2920,
U+2942,
U+2943,
U+2944,
U+2945,
U+2946,
U+2947,
U+2948,
U+294A,
U+294B,
U+294E,
U+2950,
U+2952,
U+2953,
U+2956,
U+2957,
U+295A,
U+295B,
U+295E,
U+295F,
U+2962,
U+2964,
U+2966,
U+2967,
U+2968,
U+2969,
U+296A,
U+296B,
U+296C,
U+296D,
U+2970,
U+2971,
U+2972,
U+2973,
U+2974,
U+2975,
U+297C,
U+297D,
U+2B04,
U+2B05,
U+2B0C,
U+2B30,
U+2B31,
U+2B32,
U+2B33,
U+2B34,
U+2B35,
U+2B36,
U+2B37,
U+2B38,
U+2B39,
U+2B3A,
U+2B3B,
U+2B3C,
U+2B3D,
U+2B3E,
U+2B40,
U+2B41,
U+2B42,
U+2B43,
U+2B44,
U+2B45,
U+2B46,
U+2B47,
U+2B48,
U+2B49,
U+2B4A,
U+2B4B,
U+2B4C,
U+2B60,
U+2B62,
U+2B64,
U+2B6A,
U+2B6C,
U+2B70,
U+2B72,
U+2B7A,
U+2B7C,
U+2B80,
U+2B82,
U+2B84,
U+2B86,
U+2B95,
U+FE35,
U+FE36,
U+FE37,
U+FE38,
U+1EEF0,
U+1EEF1,
このセクションは規範的ではありません。
以下の辞書はB.1
演算子辞書の人間可読バージョンを提供します。
3.2.4.2 辞書ベース属性 で
この辞書の使い方や、
Content と Form の値の特定方法について説明していますので参照してください。
rspace および lspace の値は
対応する列に示されています。
また、
stretchy、
symmetric、
largeop、
movablelimits
の値は、
"properties" 列に列挙されていれば true となります。
| Content | ストレッチ軸 | form | lspace | rspace | プロパティ |
|---|---|---|---|---|---|
| < U+003C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| = U+003D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| > U+003E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| | U+007C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
fence |
| ↖ U+2196 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↗ U+2197 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↘ U+2198 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↙ U+2199 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↯ U+21AF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↶ U+21B6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↷ U+21B7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↸ U+21B8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↺ U+21BA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ↻ U+21BB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⇖ U+21D6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⇗ U+21D7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⇘ U+21D8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⇙ U+21D9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⇱ U+21F1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⇲ U+21F2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∈ U+2208 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∉ U+2209 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∊ U+220A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∋ U+220B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∌ U+220C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∍ U+220D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∝ U+221D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∣ U+2223 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∤ U+2224 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∥ U+2225 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∦ U+2226 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∷ U+2237 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∹ U+2239 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∺ U+223A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∻ U+223B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∼ U+223C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∽ U+223D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ∾ U+223E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≁ U+2241 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≂ U+2242 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≃ U+2243 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≄ U+2244 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≅ U+2245 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≆ U+2246 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≇ U+2247 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≈ U+2248 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≉ U+2249 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≊ U+224A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≋ U+224B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≌ U+224C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≍ U+224D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≎ U+224E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≏ U+224F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≐ U+2250 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≑ U+2251 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≒ U+2252 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≓ U+2253 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≔ U+2254 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≕ U+2255 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≖ U+2256 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≗ U+2257 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≘ U+2258 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≙ U+2259 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≚ U+225A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≛ U+225B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≜ U+225C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≝ U+225D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≞ U+225E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≟ U+225F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≠ U+2260 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≡ U+2261 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≢ U+2262 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≣ U+2263 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≤ U+2264 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≥ U+2265 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≦ U+2266 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≧ U+2267 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≨ U+2268 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≩ U+2269 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≪ U+226A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≫ U+226B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≬ U+226C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≭ U+226D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≮ U+226E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≯ U+226F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≰ U+2270 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≱ U+2271 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≲ U+2272 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≳ U+2273 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≴ U+2274 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≵ U+2275 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≶ U+2276 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≷ U+2277 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≸ U+2278 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≹ U+2279 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≺ U+227A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≻ U+227B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≼ U+227C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≽ U+227D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≾ U+227E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ≿ U+227F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊀ U+2280 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊁ U+2281 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊂ U+2282 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊃ U+2283 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊄ U+2284 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊅ U+2285 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊆ U+2286 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊇ U+2287 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊈ U+2288 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊉ U+2289 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊊ U+228A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊋ U+228B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊏ U+228F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊐ U+2290 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊑ U+2291 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊒ U+2292 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊜ U+229C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊢ U+22A2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊣ U+22A3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊦ U+22A6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊧ U+22A7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊨ U+22A8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊩ U+22A9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊪ U+22AA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊫ U+22AB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊬ U+22AC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊭ U+22AD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊮ U+22AE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊯ U+22AF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊰ U+22B0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊱ U+22B1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊲ U+22B2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊳ U+22B3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊴ U+22B4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊵ U+22B5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊶ U+22B6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊷ U+22B7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⊸ U+22B8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋈ U+22C8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋍ U+22CD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋐ U+22D0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋑ U+22D1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋔ U+22D4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋕ U+22D5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋖ U+22D6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋗ U+22D7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋘ U+22D8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋙ U+22D9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋚ U+22DA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋛ U+22DB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋜ U+22DC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋝ U+22DD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋞ U+22DE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋟ U+22DF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋠ U+22E0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋡ U+22E1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋢ U+22E2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋣ U+22E3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋤ U+22E4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋥ U+22E5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋦ U+22E6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋧ U+22E7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋨ U+22E8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋩ U+22E9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋪ U+22EA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋫ U+22EB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋬ U+22EC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋭ U+22ED | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋲ U+22F2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋳ U+22F3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋴ U+22F4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋵ U+22F5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋶ U+22F6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋷ U+22F7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋸ U+22F8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋹ U+22F9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋺ U+22FA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋻ U+22FB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋼ U+22FC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋽ U+22FD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋾ U+22FE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⋿ U+22FF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⌁ U+2301 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⍼ U+237C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⎋ U+238B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➘ U+2798 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➚ U+279A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➧ U+27A7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➲ U+27B2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➴ U+27B4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➶ U+27B6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➷ U+27B7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ➹ U+27B9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⟂ U+27C2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⟲ U+27F2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⟳ U+27F3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤡ U+2921 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤢ U+2922 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤣ U+2923 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤤ U+2924 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤥ U+2925 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤦ U+2926 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤧ U+2927 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤨ U+2928 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤩ U+2929 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤪ U+292A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤫ U+292B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤬ U+292C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤭ U+292D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤮ U+292E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤯ U+292F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤰ U+2930 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤱ U+2931 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤲ U+2932 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤳ U+2933 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤸ U+2938 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤹ U+2939 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤺ U+293A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤻ U+293B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤼ U+293C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤽ U+293D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤾ U+293E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⤿ U+293F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥀ U+2940 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥁ U+2941 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥶ U+2976 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥷ U+2977 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥸ U+2978 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥹ U+2979 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥺ U+297A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⥻ U+297B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⦁ U+2981 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⦂ U+2982 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⦶ U+29B6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⦷ U+29B7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⦹ U+29B9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧀ U+29C0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧁ U+29C1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧎ U+29CE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧏ U+29CF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧐ U+29D0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧑ U+29D1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧒ U+29D2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧓ U+29D3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧟ U+29DF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧡ U+29E1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧣ U+29E3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧤ U+29E4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧥ U+29E5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧦ U+29E6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⧴ U+29F4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩦ U+2A66 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩧ U+2A67 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩨ U+2A68 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩩ U+2A69 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩪ U+2A6A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩫ U+2A6B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩬ U+2A6C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩭ U+2A6D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩮ U+2A6E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩯ U+2A6F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩰ U+2A70 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩱ U+2A71 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩲ U+2A72 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩳ U+2A73 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩴ U+2A74 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩵ U+2A75 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩶ U+2A76 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩷ U+2A77 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩸ U+2A78 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩹ U+2A79 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩺ U+2A7A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩻ U+2A7B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩼ U+2A7C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩽ U+2A7D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩾ U+2A7E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⩿ U+2A7F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪀ U+2A80 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪁ U+2A81 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪂ U+2A82 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪃ U+2A83 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪄ U+2A84 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪅ U+2A85 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪆ U+2A86 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪇ U+2A87 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪈ U+2A88 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪉ U+2A89 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪊ U+2A8A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪋ U+2A8B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪌ U+2A8C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪍ U+2A8D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪎ U+2A8E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪏ U+2A8F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪐ U+2A90 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪑ U+2A91 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪒ U+2A92 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪓ U+2A93 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪔ U+2A94 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪕ U+2A95 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪖ U+2A96 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪗ U+2A97 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪘ U+2A98 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪙ U+2A99 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪚ U+2A9A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪛ U+2A9B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪜ U+2A9C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪝ U+2A9D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪞ U+2A9E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪟ U+2A9F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪠ U+2AA0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪡ U+2AA1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪢ U+2AA2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪣ U+2AA3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪤ U+2AA4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪥ U+2AA5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪦ U+2AA6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪧ U+2AA7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪨ U+2AA8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪩ U+2AA9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪪ U+2AAA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪫ U+2AAB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪬ U+2AAC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪭ U+2AAD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪮ U+2AAE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪯ U+2AAF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪰ U+2AB0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪱ U+2AB1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪲ U+2AB2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪳ U+2AB3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪴ U+2AB4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪵ U+2AB5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪶ U+2AB6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪷ U+2AB7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪸ U+2AB8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪹ U+2AB9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪺ U+2ABA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪻ U+2ABB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪼ U+2ABC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪽ U+2ABD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪾ U+2ABE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⪿ U+2ABF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫀ U+2AC0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫁ U+2AC1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫂ U+2AC2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫃ U+2AC3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫄ U+2AC4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫅ U+2AC5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫆ U+2AC6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫇ U+2AC7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫈ U+2AC8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫉ U+2AC9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫊ U+2ACA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫋ U+2ACB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫌ U+2ACC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫍ U+2ACD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫎ U+2ACE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫏ U+2ACF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫐ U+2AD0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫑ U+2AD1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫒ U+2AD2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫓ U+2AD3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫔ U+2AD4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫕ U+2AD5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫖ U+2AD6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫗ U+2AD7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫘ U+2AD8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫙ U+2AD9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫚ U+2ADA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫞ U+2ADE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫟ U+2ADF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫠ U+2AE0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫡ U+2AE1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫢ U+2AE2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫣ U+2AE3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫤ U+2AE4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫥ U+2AE5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫦ U+2AE6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫧ U+2AE7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫨ U+2AE8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫩ U+2AE9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫪ U+2AEA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫫ U+2AEB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫮ U+2AEE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫲ U+2AF2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫳ U+2AF3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫴ U+2AF4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫵ U+2AF5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫷ U+2AF7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫸ U+2AF8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫹ U+2AF9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⫺ U+2AFA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬀ U+2B00 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬁ U+2B01 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬂ U+2B02 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬃ U+2B03 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬈ U+2B08 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬉ U+2B09 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬊ U+2B0A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬋ U+2B0B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⬿ U+2B3F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭍ U+2B4D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭎ U+2B4E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭏ U+2B4F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭚ U+2B5A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭛ U+2B5B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭜ U+2B5C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭝ U+2B5D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭞ U+2B5E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭟ U+2B5F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭦ U+2B66 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭧ U+2B67 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭨ U+2B68 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭩ U+2B69 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭮ U+2B6E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭯ U+2B6F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭶ U+2B76 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭷ U+2B77 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭸ U+2B78 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⭹ U+2B79 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮈ U+2B88 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮉ U+2B89 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮊ U+2B8A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮋ U+2B8B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮌ U+2B8C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮍ U+2B8D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮎ U+2B8E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮏ U+2B8F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮔ U+2B94 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮰ U+2BB0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮱ U+2BB1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮲ U+2BB2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮳ U+2BB3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮴ U+2BB4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮵ U+2BB5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮶ U+2BB6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⮷ U+2BB7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| ⯑ U+2BD1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String != U+0021 U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String *= U+002A U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String += U+002B U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String -= U+002D U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String -> U+002D U+003E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String // U+002F U+002F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String /= U+002F U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String := U+003A U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String <= U+003C U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String == U+003D U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String >= U+003E U+003D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
N/A |
| String || U+007C U+007C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
fence |
| ← U+2190 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↑ U+2191 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| → U+2192 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↓ U+2193 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↔ U+2194 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↕ U+2195 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↚ U+219A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↛ U+219B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↜ U+219C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↝ U+219D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↞ U+219E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↟ U+219F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↠ U+21A0 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↡ U+21A1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↢ U+21A2 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↣ U+21A3 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↤ U+21A4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↥ U+21A5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↦ U+21A6 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↧ U+21A7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↨ U+21A8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↩ U+21A9 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↪ U+21AA | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↫ U+21AB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↬ U+21AC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↭ U+21AD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↮ U+21AE | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↰ U+21B0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↱ U+21B1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↲ U+21B2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↳ U+21B3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↴ U+21B4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↵ U+21B5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↹ U+21B9 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↼ U+21BC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↽ U+21BD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↾ U+21BE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ↿ U+21BF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇀ U+21C0 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇁ U+21C1 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇂ U+21C2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇃ U+21C3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇄ U+21C4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇅ U+21C5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇆ U+21C6 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇇ U+21C7 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇈ U+21C8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇉ U+21C9 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇊ U+21CA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇋ U+21CB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇌ U+21CC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇍ U+21CD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇎ U+21CE | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇏ U+21CF | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇐ U+21D0 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇑ U+21D1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇒ U+21D2 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇓ U+21D3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇔ U+21D4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇕ U+21D5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇚ U+21DA | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇛ U+21DB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇜ U+21DC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇝ U+21DD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇞ U+21DE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇟ U+21DF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇠ U+21E0 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇡ U+21E1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇢ U+21E2 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇣ U+21E3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇤ U+21E4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇥ U+21E5 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇦ U+21E6 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇧ U+21E7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇨ U+21E8 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇩ U+21E9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇪ U+21EA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇫ U+21EB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇬ U+21EC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇭ U+21ED | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇮ U+21EE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇯ U+21EF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇰ U+21F0 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇳ U+21F3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇴ U+21F4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇵ U+21F5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇶ U+21F6 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇷ U+21F7 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇸ U+21F8 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇹ U+21F9 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇺ U+21FA | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇻ U+21FB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇼ U+21FC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇽ U+21FD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇾ U+21FE | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⇿ U+21FF | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➔ U+2794 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➙ U+2799 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➛ U+279B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➜ U+279C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➝ U+279D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➞ U+279E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➟ U+279F | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➠ U+27A0 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➡ U+27A1 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➥ U+27A5 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➦ U+27A6 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➨ U+27A8 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➩ U+27A9 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➪ U+27AA | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➫ U+27AB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➬ U+27AC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➭ U+27AD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➮ U+27AE | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➯ U+27AF | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➱ U+27B1 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➳ U+27B3 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➵ U+27B5 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➸ U+27B8 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➺ U+27BA | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➻ U+27BB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➼ U+27BC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➽ U+27BD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ➾ U+27BE | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟰ U+27F0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟱ U+27F1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟴ U+27F4 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟵ U+27F5 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟶ U+27F6 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟷ U+27F7 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟸ U+27F8 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟹ U+27F9 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟺ U+27FA | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟻ U+27FB | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟼ U+27FC | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟽ U+27FD | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟾ U+27FE | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⟿ U+27FF | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤀ U+2900 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤁ U+2901 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤂ U+2902 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤃ U+2903 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤄ U+2904 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤅ U+2905 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤆ U+2906 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤇ U+2907 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤈ U+2908 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤉ U+2909 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤊ U+290A | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤋ U+290B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤌ U+290C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤍ U+290D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤎ U+290E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤏ U+290F | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤐ U+2910 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤑ U+2911 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤒ U+2912 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤓ U+2913 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤔ U+2914 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤕ U+2915 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤖ U+2916 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤗ U+2917 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤘ U+2918 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤙ U+2919 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤚ U+291A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤛ U+291B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤜ U+291C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤝ U+291D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤞ U+291E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤟ U+291F | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤠ U+2920 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤴ U+2934 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤵ U+2935 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤶ U+2936 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⤷ U+2937 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥂ U+2942 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥃ U+2943 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥄ U+2944 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥅ U+2945 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥆ U+2946 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥇ U+2947 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥈ U+2948 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥉ U+2949 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥊ U+294A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥋ U+294B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥌ U+294C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥍ U+294D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥎ U+294E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥏ U+294F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥐ U+2950 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥑ U+2951 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥒ U+2952 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥓ U+2953 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥔ U+2954 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥕ U+2955 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥖ U+2956 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥗ U+2957 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥘ U+2958 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥙ U+2959 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥚ U+295A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥛ U+295B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥜ U+295C | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥝ U+295D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥞ U+295E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥟ U+295F | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥠ U+2960 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥡ U+2961 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥢ U+2962 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥣ U+2963 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥤ U+2964 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥥ U+2965 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥦ U+2966 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥧ U+2967 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥨ U+2968 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥩ U+2969 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥪ U+296A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥫ U+296B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥬ U+296C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥭ U+296D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥮ U+296E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥯ U+296F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥰ U+2970 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥱ U+2971 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥲ U+2972 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥳ U+2973 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥴ U+2974 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥵ U+2975 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥼ U+297C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥽ U+297D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥾ U+297E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⥿ U+297F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬄ U+2B04 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬅ U+2B05 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬆ U+2B06 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬇ U+2B07 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬌ U+2B0C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬍ U+2B0D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬎ U+2B0E | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬏ U+2B0F | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬐ U+2B10 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬑ U+2B11 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬰ U+2B30 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬱ U+2B31 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬲ U+2B32 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬳ U+2B33 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬴ U+2B34 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬵ U+2B35 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬶ U+2B36 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬷ U+2B37 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬸ U+2B38 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬹ U+2B39 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬺ U+2B3A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬻ U+2B3B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬼ U+2B3C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬽ U+2B3D | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⬾ U+2B3E | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭀ U+2B40 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭁ U+2B41 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭂ U+2B42 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭃ U+2B43 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭄ U+2B44 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭅ U+2B45 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭆ U+2B46 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭇ U+2B47 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭈ U+2B48 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭉ U+2B49 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭊ U+2B4A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭋ U+2B4B | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭌ U+2B4C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭠ U+2B60 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭡ U+2B61 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭢ U+2B62 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭣ U+2B63 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭤ U+2B64 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭥ U+2B65 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭪ U+2B6A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭫ U+2B6B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭬ U+2B6C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭭ U+2B6D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭰ U+2B70 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭱ U+2B71 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭲ U+2B72 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭳ U+2B73 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭺ U+2B7A | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭻ U+2B7B | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭼ U+2B7C | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⭽ U+2B7D | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮀ U+2B80 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮁ U+2B81 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮂ U+2B82 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮃ U+2B83 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮄ U+2B84 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮅ U+2B85 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮆ U+2B86 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮇ U+2B87 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮕ U+2B95 | inline | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮠ U+2BA0 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮡ U+2BA1 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮢ U+2BA2 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮣ U+2BA3 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮤ U+2BA4 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮥ U+2BA5 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮦ U+2BA6 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮧ U+2BA7 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮨ U+2BA8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮩ U+2BA9 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮪ U+2BAA | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮫ U+2BAB | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮬ U+2BAC | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮭ U+2BAD | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮮ U+2BAE | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮯ U+2BAF | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| ⮸ U+2BB8 | block | infix |
0.2777777777777778em |
0.2777777777777778em |
stretchy |
| + U+002B | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| - U+002D | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ± U+00B1 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ÷ U+00F7 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⁄ U+2044 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| − U+2212 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∓ U+2213 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∔ U+2214 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∕ U+2215 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∖ U+2216 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∧ U+2227 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∨ U+2228 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∩ U+2229 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∪ U+222A | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∶ U+2236 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ∸ U+2238 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊌ U+228C | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊍ U+228D | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊎ U+228E | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊓ U+2293 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊔ U+2294 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊕ U+2295 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊖ U+2296 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊘ U+2298 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊝ U+229D | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊞ U+229E | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊟ U+229F | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊻ U+22BB | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊼ U+22BC | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⊽ U+22BD | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⋎ U+22CE | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⋏ U+22CF | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⋒ U+22D2 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⋓ U+22D3 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ➕ U+2795 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ➖ U+2796 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ➗ U+2797 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⦸ U+29B8 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⦼ U+29BC | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧄ U+29C4 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧅ U+29C5 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧵ U+29F5 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧶ U+29F6 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧷ U+29F7 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧸ U+29F8 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧹ U+29F9 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧺ U+29FA | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⧻ U+29FB | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨟ U+2A1F | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨠ U+2A20 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨡ U+2A21 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨢ U+2A22 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨣ U+2A23 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨤ U+2A24 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨥ U+2A25 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨦ U+2A26 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨧ U+2A27 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨨ U+2A28 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨩ U+2A29 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨪ U+2A2A | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨫ U+2A2B | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨬ U+2A2C | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨭ U+2A2D | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨮ U+2A2E | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨸ U+2A38 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨹ U+2A39 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨺ U+2A3A | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⨾ U+2A3E | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩀ U+2A40 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩁ U+2A41 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩂ U+2A42 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩃ U+2A43 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩄ U+2A44 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩅ U+2A45 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩆ U+2A46 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩇ U+2A47 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩈ U+2A48 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩉ U+2A49 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩊ U+2A4A | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩋ U+2A4B | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩌ U+2A4C | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩍ U+2A4D | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩎ U+2A4E | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩏ U+2A4F | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩑ U+2A51 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩒ U+2A52 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩓ U+2A53 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩔ U+2A54 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩕ U+2A55 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩖ U+2A56 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩗ U+2A57 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩘ U+2A58 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩙ U+2A59 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩚ U+2A5A | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩛ U+2A5B | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩜ U+2A5C | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩝ U+2A5D | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩞ U+2A5E | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩟ U+2A5F | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩠ U+2A60 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩡ U+2A61 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩢ U+2A62 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⩣ U+2A63 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⫛ U+2ADB | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⫶ U+2AF6 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⫻ U+2AFB | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| ⫽ U+2AFD | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| String && U+0026 U+0026 | block | infix |
0.2222222222222222em |
0.2222222222222222em |
N/A |
| % U+0025 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| * U+002A | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| . U+002E | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ? U+003F | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| @ U+0040 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ^ U+005E | inline | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| · U+00B7 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| × U+00D7 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| • U+2022 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⁃ U+2043 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ∗ U+2217 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ∘ U+2218 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ∙ U+2219 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ≀ U+2240 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊗ U+2297 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊙ U+2299 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊚ U+229A | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊛ U+229B | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊠ U+22A0 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊡ U+22A1 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⊺ U+22BA | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋄ U+22C4 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋅ U+22C5 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋆ U+22C6 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋇ U+22C7 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋉ U+22C9 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋊ U+22CA | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋋ U+22CB | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⋌ U+22CC | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⌅ U+2305 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⌆ U+2306 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⟋ U+27CB | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⟍ U+27CD | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧆ U+29C6 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧇ U+29C7 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧈ U+29C8 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧔ U+29D4 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧕ U+29D5 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧖ U+29D6 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧗ U+29D7 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⧢ U+29E2 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨝ U+2A1D | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨞ U+2A1E | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨯ U+2A2F | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨰ U+2A30 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨱ U+2A31 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨲ U+2A32 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨳ U+2A33 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨴ U+2A34 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨵ U+2A35 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨶ U+2A36 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨷ U+2A37 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨻ U+2A3B | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨼ U+2A3C | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨽ U+2A3D | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⨿ U+2A3F | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⩐ U+2A50 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⩤ U+2A64 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⩥ U+2A65 | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⫝̸ U+2ADC | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⫝ U+2ADD | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ⫾ U+2AFE | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| String ** U+002A U+002A | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| String <> U+003C U+003E | block | infix |
0.16666666666666666em |
0.16666666666666666em |
N/A |
| ! U+0021 | block | prefix |
0 |
0 |
N/A |
| + U+002B | block | prefix |
0 |
0 |
N/A |
| - U+002D | block | prefix |
0 |
0 |
N/A |
| ¬ U+00AC | block | prefix |
0 |
0 |
N/A |
| ± U+00B1 | block | prefix |
0 |
0 |
N/A |
| ‘ U+2018 | block | prefix |
0 |
0 |
fence |
| “ U+201C | block | prefix |
0 |
0 |
fence |
| ∀ U+2200 | block | prefix |
0 |
0 |
N/A |
| ∁ U+2201 | block | prefix |
0 |
0 |
N/A |
| ∃ U+2203 | block | prefix |
0 |
0 |
N/A |
| ∄ U+2204 | block | prefix |
0 |
0 |
N/A |
| ∇ U+2207 | block | prefix |
0 |
0 |
N/A |
| − U+2212 | block | prefix |
0 |
0 |
N/A |
| ∓ U+2213 | block | prefix |
0 |
0 |
N/A |
| ∟ U+221F | block | prefix |
0 |
0 |
N/A |
| ∠ U+2220 | block | prefix |
0 |
0 |
N/A |
| ∡ U+2221 | block | prefix |
0 |
0 |
N/A |
| ∢ U+2222 | block | prefix |
0 |
0 |
N/A |
| ∴ U+2234 | block | prefix |
0 |
0 |
N/A |
| ∵ U+2235 | block | prefix |
0 |
0 |
N/A |
| ∼ U+223C | block | prefix |
0 |
0 |
N/A |
| ⊾ U+22BE | block | prefix |
0 |
0 |
N/A |
| ⊿ U+22BF | block | prefix |
0 |
0 |
N/A |
| ⌐ U+2310 | block | prefix |
0 |
0 |
N/A |
| ⌙ U+2319 | block | prefix |
0 |
0 |
N/A |
| ➕ U+2795 | block | prefix |
0 |
0 |
N/A |
| ➖ U+2796 | block | prefix |
0 |
0 |
N/A |
| ⟀ U+27C0 | block | prefix |
0 |
0 |
N/A |
| ⦛ U+299B | block | prefix |
0 |
0 |
N/A |
| ⦜ U+299C | block | prefix |
0 |
0 |
N/A |
| ⦝ U+299D | block | prefix |
0 |
0 |
N/A |
| ⦞ U+299E | block | prefix |
0 |
0 |
N/A |
| ⦟ U+299F | block | prefix |
0 |
0 |
N/A |
| ⦠ U+29A0 | block | prefix |
0 |
0 |
N/A |
| ⦡ U+29A1 | block | prefix |
0 |
0 |
N/A |
| ⦢ U+29A2 | block | prefix |
0 |
0 |
N/A |
| ⦣ U+29A3 | block | prefix |
0 |
0 |
N/A |
| ⦤ U+29A4 | block | prefix |
0 |
0 |
N/A |
| ⦥ U+29A5 | block | prefix |
0 |
0 |
N/A |
| ⦦ U+29A6 | block | prefix |
0 |
0 |
N/A |
| ⦧ U+29A7 | block | prefix |
0 |
0 |
N/A |
| ⦨ U+29A8 | block | prefix |
0 |
0 |
N/A |
| ⦩ U+29A9 | block | prefix |
0 |
0 |
N/A |
| ⦪ U+29AA | block | prefix |
0 |
0 |
N/A |
| ⦫ U+29AB | block | prefix |
0 |
0 |
N/A |
| ⦬ U+29AC | block | prefix |
0 |
0 |
N/A |
| ⦭ U+29AD | block | prefix |
0 |
0 |
N/A |
| ⦮ U+29AE | block | prefix |
0 |
0 |
N/A |
| ⦯ U+29AF | block | prefix |
0 |
0 |
N/A |
| ⫬ U+2AEC | block | prefix |
0 |
0 |
N/A |
| ⫭ U+2AED | block | prefix |
0 |
0 |
N/A |
| String || U+007C U+007C | block | prefix |
0 |
0 |
fence |
| ! U+0021 | block | postfix |
0 |
0 |
N/A |
| " U+0022 | block | postfix |
0 |
0 |
N/A |
| % U+0025 | block | postfix |
0 |
0 |
N/A |
| & U+0026 | block | postfix |
0 |
0 |
N/A |
| ' U+0027 | block | postfix |
0 |
0 |
N/A |
| ` U+0060 | block | postfix |
0 |
0 |
N/A |
| ¨ U+00A8 | block | postfix |
0 |
0 |
N/A |
| ° U+00B0 | block | postfix |
0 |
0 |
N/A |
| ² U+00B2 | block | postfix |
0 |
0 |
N/A |
| ³ U+00B3 | block | postfix |
0 |
0 |
N/A |
| ´ U+00B4 | block | postfix |
0 |
0 |
N/A |
| ¸ U+00B8 | block | postfix |
0 |
0 |
N/A |
| ¹ U+00B9 | block | postfix |
0 |
0 |
N/A |
| ˊ U+02CA | block | postfix |
0 |
0 |
N/A |
| ˋ U+02CB | block | postfix |
0 |
0 |
N/A |
| ˘ U+02D8 | block | postfix |
0 |
0 |
N/A |
| ˙ U+02D9 | block | postfix |
0 |
0 |
N/A |
| ˚ U+02DA | block | postfix |
0 |
0 |
N/A |
| ˝ U+02DD | block | postfix |
0 |
0 |
N/A |
| ̑ U+0311 | block | postfix |
0 |
0 |
N/A |
| ’ U+2019 | block | postfix |
0 |
0 |
fence |
| ‚ U+201A | block | postfix |
0 |
0 |
N/A |
| ‛ U+201B | block | postfix |
0 |
0 |
N/A |
| ” U+201D | block | postfix |
0 |
0 |
fence |
| „ U+201E | block | postfix |
0 |
0 |
N/A |
| ‟ U+201F | block | postfix |
0 |
0 |
N/A |
| ′ U+2032 | block | postfix |
0 |
0 |
N/A |
| ″ U+2033 | block | postfix |
0 |
0 |
N/A |
| ‴ U+2034 | block | postfix |
0 |
0 |
N/A |
| ‵ U+2035 | block | postfix |
0 |
0 |
N/A |
| ‶ U+2036 | block | postfix |
0 |
0 |
N/A |
| ‷ U+2037 | block | postfix |
0 |
0 |
N/A |
| ⁗ U+2057 | block | postfix |
0 |
0 |
N/A |
| ⃛ U+20DB | block | postfix |
0 |
0 |
N/A |
| ⃜ U+20DC | block | postfix |
0 |
0 |
N/A |
| ⏍ U+23CD | block | postfix |
0 |
0 |
N/A |
| String !! U+0021 U+0021 | block | postfix |
0 |
0 |
N/A |
| String ++ U+002B U+002B | block | postfix |
0 |
0 |
N/A |
| String -- U+002D U+002D | block | postfix |
0 |
0 |
N/A |
| String || U+007C U+007C | block | postfix |
0 |
0 |
fence |
| ( U+0028 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| [ U+005B | block | prefix |
0 |
0 |
stretchy symmetric fence |
| { U+007B | block | prefix |
0 |
0 |
stretchy symmetric fence |
| | U+007C | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ‖ U+2016 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⌈ U+2308 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⌊ U+230A | block | prefix |
0 |
0 |
stretchy symmetric fence |
| 〈 U+2329 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ❲ U+2772 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⟦ U+27E6 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⟨ U+27E8 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⟪ U+27EA | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⟬ U+27EC | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⟮ U+27EE | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦀ U+2980 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦃ U+2983 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦅ U+2985 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦇ U+2987 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦉ U+2989 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦋ U+298B | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦍ U+298D | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦏ U+298F | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦑ U+2991 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦓ U+2993 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦕ U+2995 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦗ U+2997 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⦙ U+2999 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⧘ U+29D8 | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⧚ U+29DA | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ⧼ U+29FC | block | prefix |
0 |
0 |
stretchy symmetric fence |
| ) U+0029 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ] U+005D | block | postfix |
0 |
0 |
stretchy symmetric fence |
| | U+007C | block | postfix |
0 |
0 |
stretchy symmetric fence |
| } U+007D | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ‖ U+2016 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⌉ U+2309 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⌋ U+230B | block | postfix |
0 |
0 |
stretchy symmetric fence |
| 〉 U+232A | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ❳ U+2773 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⟧ U+27E7 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⟩ U+27E9 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⟫ U+27EB | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⟭ U+27ED | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⟯ U+27EF | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦀ U+2980 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦄ U+2984 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦆ U+2986 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦈ U+2988 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦊ U+298A | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦌ U+298C | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦎ U+298E | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦐ U+2990 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦒ U+2992 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦔ U+2994 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦖ U+2996 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦘ U+2998 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⦙ U+2999 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⧙ U+29D9 | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⧛ U+29DB | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ⧽ U+29FD | block | postfix |
0 |
0 |
stretchy symmetric fence |
| ∫ U+222B | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∬ U+222C | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∭ U+222D | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∮ U+222E | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∯ U+222F | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∰ U+2230 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∱ U+2231 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∲ U+2232 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ∳ U+2233 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨋ U+2A0B | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨌ U+2A0C | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨍ U+2A0D | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨎ U+2A0E | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨏ U+2A0F | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨐ U+2A10 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨑ U+2A11 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨒ U+2A12 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨓ U+2A13 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨔ U+2A14 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨕ U+2A15 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨖ U+2A16 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨗ U+2A17 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨘ U+2A18 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨙ U+2A19 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨚ U+2A1A | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨛ U+2A1B | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ⨜ U+2A1C | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop |
| ^ U+005E | inline | postfix |
0 |
0 |
stretchy |
| _ U+005F | inline | postfix |
0 |
0 |
stretchy |
| ~ U+007E | inline | postfix |
0 |
0 |
stretchy |
| ¯ U+00AF | inline | postfix |
0 |
0 |
stretchy |
| ˆ U+02C6 | inline | postfix |
0 |
0 |
stretchy |
| ˇ U+02C7 | inline | postfix |
0 |
0 |
stretchy |
| ˉ U+02C9 | inline | postfix |
0 |
0 |
stretchy |
| ˍ U+02CD | inline | postfix |
0 |
0 |
stretchy |
| ˜ U+02DC | inline | postfix |
0 |
0 |
stretchy |
| ˷ U+02F7 | inline | postfix |
0 |
0 |
stretchy |
| ̂ U+0302 | inline | postfix |
0 |
0 |
stretchy |
| ‾ U+203E | inline | postfix |
0 |
0 |
stretchy |
| ⌢ U+2322 | inline | postfix |
0 |
0 |
stretchy |
| ⌣ U+2323 | inline | postfix |
0 |
0 |
stretchy |
| ⎴ U+23B4 | inline | postfix |
0 |
0 |
stretchy |
| ⎵ U+23B5 | inline | postfix |
0 |
0 |
stretchy |
| ⏜ U+23DC | inline | postfix |
0 |
0 |
stretchy |
| ⏝ U+23DD | inline | postfix |
0 |
0 |
stretchy |
| ⏞ U+23DE | inline | postfix |
0 |
0 |
stretchy |
| ⏟ U+23DF | inline | postfix |
0 |
0 |
stretchy |
| ⏠ U+23E0 | inline | postfix |
0 |
0 |
stretchy |
| ⏡ U+23E1 | inline | postfix |
0 |
0 |
stretchy |
| 𞻰 U+1EEF0 | inline | postfix |
0 |
0 |
stretchy |
| 𞻱 U+1EEF1 | inline | postfix |
0 |
0 |
stretchy |
| ∏ U+220F | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ∐ U+2210 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ∑ U+2211 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⋀ U+22C0 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⋁ U+22C1 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⋂ U+22C2 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⋃ U+22C3 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨀ U+2A00 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨁ U+2A01 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨂ U+2A02 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨃ U+2A03 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨄ U+2A04 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨅ U+2A05 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨆ U+2A06 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨇ U+2A07 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨈ U+2A08 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨉ U+2A09 | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨊ U+2A0A | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨝ U+2A1D | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⨞ U+2A1E | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⫼ U+2AFC | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| ⫿ U+2AFF | block | prefix |
0.16666666666666666em |
0.16666666666666666em |
symmetric largeop movablelimits |
| / U+002F | block | infix |
0 |
0 |
N/A |
| \ U+005C | block | infix |
0 |
0 |
N/A |
| _ U+005F | inline | infix |
0 |
0 |
N/A |
| U+2061 | block | infix |
0 |
0 |
N/A |
| U+2062 | block | infix |
0 |
0 |
N/A |
| U+2063 | block | infix |
0 |
0 |
separator |
| U+2064 | block | infix |
0 |
0 |
N/A |
| ∆ U+2206 | block | infix |
0 |
0 |
N/A |
| ⅅ U+2145 | block | prefix |
0.16666666666666666em |
0 |
N/A |
| ⅆ U+2146 | block | prefix |
0.16666666666666666em |
0 |
N/A |
| ∂ U+2202 | block | prefix |
0.16666666666666666em |
0 |
N/A |
| √ U+221A | block | prefix |
0.16666666666666666em |
0 |
N/A |
| ∛ U+221B | block | prefix |
0.16666666666666666em |
0 |
N/A |
| ∜ U+221C | block | prefix |
0.16666666666666666em |
0 |
N/A |
| , U+002C | block | infix |
0 |
0.16666666666666666em |
separator |
| : U+003A | block | infix |
0 |
0.16666666666666666em |
N/A |
| ; U+003B | block | infix |
0 |
0.16666666666666666em |
separator |
この節は非規範的です。
次の表は、MathML のアクセント構成で使用される場合の、空白を取る文字(spacing)と結合文字(non-spacing)の間の対応を示します。
| 非結合 (Non Combining) | スタイル | 結合 (Combining) | ||
|---|---|---|---|---|
| U+002B | プラス記号 | 下 | U+031F | 結合プラス記号(下付き) |
| U+002D | ハイフンマイナス | 上 | U+0305 | 結合オーバーライン |
| U+002D | ハイフンマイナス | 下 | U+0320 | 結合マイナス記号(下付き) |
| U+002D | ハイフンマイナス | 下 | U+0332 | 結合ローライン |
| U+002E | ピリオド(full stop) | 上 | U+0307 | 結合ドット(上付き) |
| U+002E | ピリオド(full stop) | 下 | U+0323 | 結合ドット(下付き) |
| U+005E | サーカムフレックス(circumflex accent) | 上 | U+0302 | 結合サーカムフレックス |
| U+005E | サーカムフレックス(circumflex accent) | 下 | U+032D | 結合サーカムフレックス(下付き) |
| U+005F | 下線(low line) | 下 | U+0332 | 結合ローライン |
| U+0060 | グレイヴアクセント(grave accent) | 上 | U+0300 | 結合グレイヴアクセント |
| U+0060 | グレイヴアクセント(grave accent) | 下 | U+0316 | 結合グレイヴアクセント(下付き) |
| U+007E | チルダ(tilde) | 上 | U+0303 | 結合チルダ |
| U+007E | チルダ(tilde) | 下 | U+0330 | 結合チルダ(下付き) |
| U+00A8 | ダイアレシス(diaeresis) | 上 | U+0308 | 結合ダイアレシス |
| U+00A8 | ダイアレシス(diaeresis) | 下 | U+0324 | 結合ダイアレシス(下付き) |
| U+00AF | マクロン(macron) | 上 | U+0304 | 結合マクロン |
| U+00AF | マクロン(macron) | 上 | U+0305 | 結合オーバーライン |
| U+00B4 | アキュートアクセント(acute accent) | 上 | U+0301 | 結合アキュートアクセント |
| U+00B4 | アキュートアクセント(acute accent) | 下 | U+0317 | 結合アキュートアクセント(下付き) |
| U+00B8 | セディーユ(cedilla) | 下 | U+0327 | 結合セディーユ |
| U+02C6 | 修飾字サーカムフレックス(modifier letter circumflex accent) | 上 | U+0302 | 結合サーカムフレックス |
| U+02C7 | カーロン(caron) | 上 | U+030C | 結合カーロン |
| U+02C7 | カーロン(caron) | 下 | U+032C | 結合カーロン(下付き) |
| U+02D8 | ブレーヴ(breve) | 上 | U+0306 | 結合ブレーヴ |
| U+02D8 | ブレーヴ(breve) | 下 | U+032E | 結合ブレーヴ(下付き) |
| U+02D9 | 上点(dot above) | 上 | U+0307 | 結合ドット(上付き) |
| U+02D9 | 上点(dot above) | 下 | U+0323 | 結合ドット(下付き) |
| U+02DB | オゴネク(ogonek) | 下 | U+0328 | 結合オゴネク |
| U+02DC | 小チルダ(small tilde) | 上 | U+0303 | 結合チルダ |
| U+02DC | 小チルダ(small tilde) | 下 | U+0330 | 結合チルダ(下付き) |
| U+02DD | 二重アキュート(double acute accent) | 上 | U+030B | 結合二重アキュート |
| U+203E | オーバーライン(overline) | 上 | U+0305 | 結合オーバーライン |
| U+2190 | 左向き矢印(leftwards arrow) | 上 | U+20D6 | |
| U+2192 | 右向き矢印(rightwards arrow) | 上 | U+20D7 | 結合右矢印(上付き) |
| U+2192 | 右向き矢印(rightwards arrow) | 上 | U+20EF | 結合右矢印(下付き) |
| U+2212 | マイナス記号(minus sign) | 上 | U+0305 | 結合オーバーライン |
| U+2212 | マイナス記号(minus sign) | 下 | U+0332 | 結合ローライン |
| U+27F6 | 長い右向き矢印(long rightwards arrow) | 上 | U+20D7 | 結合右矢印(上付き) |
| U+27F6 | 長い右向き矢印(long rightwards arrow) | 上 | U+20EF | 結合右矢印(下付き) |
| 結合 (Combining) | スタイル | 非結合 (Non Combining) | ||
|---|---|---|---|---|
| U+0300 | 結合グレイヴアクセント | 上 | U+0060 | グレイヴアクセント |
| U+0301 | 結合アキュートアクセント | 上 | U+00B4 | アキュートアクセント |
| U+0302 | 結合サーカムフレックス | 上 | U+005E | サーカムフレックス |
| U+0302 | 結合サーカムフレックス | 上 | U+02C6 | 修飾字サーカムフレックス |
| U+0303 | 結合チルダ | 上 | U+007E | チルダ |
| U+0303 | 結合チルダ | 上 | U+02DC | 小チルダ |
| U+0304 | 結合マクロン | 上 | U+00AF | マクロン |
| U+0305 | 結合オーバーライン | 上 | U+002D | ハイフンマイナス |
| U+0305 | 結合オーバーライン | 上 | U+00AF | マクロン |
| U+0305 | 結合オーバーライン | 上 | U+203E | オーバーライン |
| U+0305 | 結合オーバーライン | 上 | U+2212 | マイナス記号 |
| U+0306 | 結合ブレーヴ | 上 | U+02D8 | ブレーヴ |
| U+0307 | 結合ドット(上付き) | 上 | U+02E | |
| U+0307 | 結合ドット(上付き) | 上 | U+002E | ピリオド(full stop) |
| U+0307 | 結合ドット(上付き) | 上 | U+02D9 | 上点(dot above) |
| U+0308 | 結合ダイアレシス | 上 | U+00A8 | ダイアレシス |
| U+030B | 結合二重アキュート | 上 | U+02DD | 二重アキュート |
| U+030C | 結合カーロン | 上 | U+02C7 | カーロン |
| U+0312 | 結合反転カンマ上 | 上 | U+0B8 | |
| U+0316 | 結合グレイヴアクセント(下付き) | 下 | U+0060 | グレイヴアクセント |
| U+0317 | 結合アキュートアクセント(下付き) | 下 | U+00B4 | アキュートアクセント |
| U+031F | 結合プラス記号(下付き) | 下 | U+002B | プラス記号 |
| U+0320 | 結合マイナス記号(下付き) | 下 | U+002D | ハイフンマイナス |
| U+0323 | 結合ドット(下付き) | 下 | U+002E | ピリオド(full stop) |
| U+0323 | 結合ドット(下付き) | 下 | U+02D9 | 上点(dot above) |
| U+0324 | 結合ダイアレシス(下付き) | 下 | U+00A8 | ダイアレシス |
| U+0327 | 結合セディーユ(下付き) | 下 | U+00B8 | セディーユ |
| U+0328 | 結合オゴネク(下付き) | 下 | U+02DB | オゴネク |
| U+032C | 結合カーロン(下付き) | 下 | U+02C7 | カーロン |
| U+032D | 結合サーカムフレックス(下付き) | 下 | U+005E | サーカムフレックス |
| U+032E | 結合ブレーヴ(下付き) | 下 | U+02D8 | ブレーヴ |
| U+0330 | 結合チルダ(下付き) | 下 | U+007E | チルダ |
| U+0330 | 結合チルダ(下付き) | 下 | U+02DC | 小チルダ |
| U+0332 | 結合ローライン(下付き) | 下 | U+002D | ハイフンマイナス |
| U+0332 | 結合ローライン(下付き) | 下 | U+005F | 下線(low line) |
| U+0332 | 結合ローライン(下付き) | 下 | U+2212 | マイナス記号 |
| U+0338 | 結合ロングソリダスオーバーレイ | over | U+02F | |
| U+20D7 | 結合右矢印(上付き) | 上 | U+2192 | 右向き矢印 |
| U+20D7 | 結合右矢印(上付き) | 上 | U+27F6 | 長い右向き矢印 |
| U+20EF | 結合右矢印(下付き) | 上 | U+2192 | 右向き矢印 |
| U+20EF | 結合右矢印(下付き) | 上 | U+27F6 | 長い右向き矢印 |
この節は非規範的です。
次の表は、フォントに MATH.MathVariants テーブルが存在しない場合に、ユーザーエージェントが特定の
基底文字 を伸長するために使用できるフォールバックを提供する。
5.3
演算子のサイズバリアント(MathVariants)
のアルゴリズムは同様に機能するが、いくつか調整がある:
MathVariants.horizGlyphConstructionOffsets[] の項目に対応し、
縦方向であれば
MathVariants.vertGlyphConstructionOffsets[] の項目に対応する。
MathGlyphConstruction.mathGlyphVariantRecord は常に空である。
MathVariants.minConnectorOverlap、
GlyphPartRecord.startConnectorLength および
GlyphPartRecord.endConnectorLength は 0 と見なされる。
MathGlyphConstruction.GlyphAssembly.partRecords の配列は各表の行から次のように構築される:
| 基底文字 | グリフ構築 | エクステンダ文字 | 下/左 文字 | 中間文字 | 上/右 文字 |
|---|---|---|---|---|---|
| U+0028 ( | 縦 | U+239C ⎜ | U+239D ⎝ | N/A | U+239B ⎛ |
| U+0029 ) | 縦 | U+239F ⎟ | U+23A0 ⎠ | N/A | U+239E ⎞ |
| U+003D = | 横 | U+003D = | U+003D = | N/A | N/A |
| U+005B [ | 縦 | U+23A2 ⎢ | U+23A3 ⎣ | N/A | U+23A1 ⎡ |
| U+005D ] | 縦 | U+23A5 ⎥ | U+23A6 ⎦ | N/A | U+23A4 ⎤ |
| U+005F _ | 横 | U+005F _ | U+005F _ | N/A | N/A |
| U+007B { | 縦 | U+23AA ⎪ | U+23A9 ⎩ | U+23A8 ⎨ | U+23A7 ⎧ |
| U+007C | | 縦 | U+007C | | U+007C | | N/A | N/A |
| U+007D } | 縦 | U+23AA ⎪ | U+23AD ⎭ | U+23AC ⎬ | U+23AB ⎫ |
| U+00AF ¯ | 横 | U+00AF ¯ | U+00AF ¯ | N/A | N/A |
| U+2016 ‖ | 縦 | U+2016 ‖ | U+2016 ‖ | N/A | N/A |
| U+203E ‾ | 横 | U+203E ‾ | U+203E ‾ | N/A | N/A |
| U+2190 ← | 横 | U+23AF ⎯ | U+2190 ← | N/A | U+23AF ⎯ |
| U+2191 ↑ | 縦 | U+23D0 ⏐ | U+23D0 ⏐ | N/A | U+2191 ↑ |
| U+2192 → | 横 | U+23AF ⎯ | U+23AF ⎯ | N/A | U+2192 → |
| U+2193 ↓ | 縦 | U+23D0 ⏐ | U+2193 ↓ | N/A | U+23D0 ⏐ |
| U+2194 ↔ | 横 | U+23AF ⎯ | U+2190 ← | N/A | U+2192 → |
| U+2195 ↕ | 縦 | U+23D0 ⏐ | U+2193 ↓ | N/A | U+2191 ↑ |
| U+21A4 ↤ | 横 | U+23AF ⎯ | U+2190 ← | N/A | U+22A3 ⊣ |
| U+21A6 ↦ | 横 | U+23AF ⎯ | U+22A2 ⊢ | N/A | U+2192 → |
| U+21BC ↼ | 横 | U+23AF ⎯ | U+21BC ↼ | N/A | U+23AF ⎯ |
| U+21BD ↽ | 横 | U+23AF ⎯ | U+21BD ↽ | N/A | U+23AF ⎯ |
| U+21C0 ⇀ | 横 | U+23AF ⎯ | U+23AF ⎯ | N/A | U+21C0 ⇀ |
| U+21C1 ⇁ | 横 | U+23AF ⎯ | U+23AF ⎯ | N/A | U+21C1 ⇁ |
| U+2223 ∣ | 縦 | U+2223 ∣ | U+2223 ∣ | N/A | N/A |
| U+2225 ∥ | 縦 | U+2225 ∥ | U+2225 ∥ | N/A | N/A |
| U+2308 ⌈ | 縦 | U+23A2 ⎢ | U+23A2 ⎢ | N/A | U+23A1 ⎡ |
| U+2309 ⌉ | 縦 | U+23A5 ⎥ | U+23A5 ⎥ | N/A | U+23A4 ⎤ |
| U+230A ⌊ | 縦 | U+23A2 ⎢ | U+23A3 ⎣ | N/A | N/A |
| U+230B ⌋ | 縦 | U+23A5 ⎥ | U+23A6 ⎦ | N/A | N/A |
| U+23B0 ⎰ | 縦 | U+23AA ⎪ | U+23AD ⎭ | N/A | U+23A7 ⎧ |
| U+23B1 ⎱ | 縦 | U+23AA ⎪ | U+23A9 ⎩ | N/A | U+23AB ⎫ |
| U+27F5 ⟵ | 横 | U+23AF ⎯ | U+2190 ← | N/A | U+23AF ⎯ |
| U+27F6 ⟶ | 横 | U+23AF ⎯ | U+23AF ⎯ | N/A | U+2192 → |
| U+27F7 ⟷ | 横 | U+23AF ⎯ | U+2190 ← | N/A | U+2192 → |
| U+294E ⥎ | 横 | U+23AF ⎯ | U+21BC ↼ | N/A | U+21C0 ⇀ |
| U+2950 ⥐ | 横 | U+23AF ⎯ | U+21BD ↽ | N/A | U+21C1 ⇁ |
| U+295A ⥚ | 横 | U+23AF ⎯ | U+21BC ↼ | N/A | U+22A3 ⊣ |
| U+295B ⥛ | 横 | U+23AF ⎯ | U+22A2 ⊢ | N/A | U+21C0 ⇀ |
| U+295E ⥞ | 横 | U+23AF ⎯ | U+21BD ↽ | N/A | U+22A3 ⊣ |
| U+295F ⥟ | 横 | U+23AF ⎯ | U+22A2 ⊢ | N/A | U+21C1 ⇁ |
この節は非規範的です。
[xml-entity-names] に詳述されている通り、太字、イタリック、フラクチュール、等幅、ダブルストラック等の形式を持つ数学的英数字記号は Unicode に用意されています。
これらの英数字記号には Unicode のコードポイントを使ってアクセスすべきです。MATHEMATICAL SCRIPT 文字については Chancery と Roundhand
の書体を区別する必要が生じることがあります。これらは LaTeX の \mathcal や \mathscr
コマンドで特に使われます。その方法の一つとして、特定のグリフバリアントを選択する手段を説明する Unicode の第23章第4節 Variation Selectors を利用することが挙げられます[UNICODE]。実際、Unicode Character Database の
StandardizedVariants.txt ファイルは、大文字のスクリプトに対してバリアントセレクタ U+FE00 と U+FE01 をそれぞれ Chancery と
Roundhand を指定するために使用できることを示しています。
salt or
ssXY properties from [OPEN-FONT-FORMAT]
to provide both styles. Page authors may use the
font-variant-alternates property with corresponding OpenType font features
to access these glyphs.
さらに、上記の方法でアクセスできるイタリック体の数学用英数字文字は、デフォルトで単一文字の <mi> 要素に適用される CSS の
text-transform: math-auto 変換を用いても利用できます。便宜上、math italic へのマッピングを下に示します。
| 元の文字 | italic | Δコードポイント |
|---|---|---|
| A U+0041 | 𝐴 U+1D434 | 1D3F3 |
| B U+0042 | 𝐵 U+1D435 | 1D3F3 |
| C U+0043 | 𝐶 U+1D436 | 1D3F3 |
| D U+0044 | 𝐷 U+1D437 | 1D3F3 |
| E U+0045 | 𝐸 U+1D438 | 1D3F3 |
| F U+0046 | 𝐹 U+1D439 | 1D3F3 |
| G U+0047 | 𝐺 U+1D43A | 1D3F3 |
| H U+0048 | 𝐻 U+1D43B | 1D3F3 |
| I U+0049 | 𝐼 U+1D43C | 1D3F3 |
| J U+004A | 𝐽 U+1D43D | 1D3F3 |
| K U+004B | 𝐾 U+1D43E | 1D3F3 |
| L U+004C | 𝐿 U+1D43F | 1D3F3 |
| M U+004D | 𝑀 U+1D440 | 1D3F3 |
| N U+004E | 𝑁 U+1D441 | 1D3F3 |
| O U+004F | 𝑂 U+1D442 | 1D3F3 |
| P U+0050 | 𝑃 U+1D443 | 1D3F3 |
| Q U+0051 | 𝑄 U+1D444 | 1D3F3 |
| R U+0052 | 𝑅 U+1D445 | 1D3F3 |
| S U+0053 | 𝑆 U+1D446 | 1D3F3 |
| T U+0054 | 𝑇 U+1D447 | 1D3F3 |
| U U+0055 | 𝑈 U+1D448 | 1D3F3 |
| V U+0056 | 𝑉 U+1D449 | 1D3F3 |
| W U+0057 | 𝑊 U+1D44A | 1D3F3 |
| X U+0058 | 𝑋 U+1D44B | 1D3F3 |
| Y U+0059 | 𝑌 U+1D44C | 1D3F3 |
| Z U+005A | 𝑍 U+1D44D | 1D3F3 |
| a U+0061 | 𝑎 U+1D44E | 1D3ED |
| b U+0062 | 𝑏 U+1D44F | 1D3ED |
| c U+0063 | 𝑐 U+1D450 | 1D3ED |
| d U+0064 | 𝑑 U+1D451 | 1D3ED |
| e U+0065 | 𝑒 U+1D452 | 1D3ED |
| f U+0066 | 𝑓 U+1D453 | 1D3ED |
| g U+0067 | 𝑔 U+1D454 | 1D3ED |
| h U+0068 | ℎ U+0210E | 20A6 |
| i U+0069 | 𝑖 U+1D456 | 1D3ED |
| j U+006A | 𝑗 U+1D457 | 1D3ED |
| k U+006B | 𝑘 U+1D458 | 1D3ED |
| l U+006C | 𝑙 U+1D459 | 1D3ED |
| m U+006D | 𝑚 U+1D45A | 1D3ED |
| n U+006E | 𝑛 U+1D45B | 1D3ED |
| o U+006F | 𝑜 U+1D45C | 1D3ED |
| p U+0070 | 𝑝 U+1D45D | 1D3ED |
| q U+0071 | 𝑞 U+1D45E | 1D3ED |
| r U+0072 | 𝑟 U+1D45F | 1D3ED |
| s U+0073 | 𝑠 U+1D460 | 1D3ED |
| t U+0074 | 𝑡 U+1D461 | 1D3ED |
| u U+0075 | 𝑢 U+1D462 | 1D3ED |
| v U+0076 | 𝑣 U+1D463 | 1D3ED |
| w U+0077 | 𝑤 U+1D464 | 1D3ED |
| x U+0078 | 𝑥 U+1D465 | 1D3ED |
| y U+0079 | 𝑦 U+1D466 | 1D3ED |
| z U+007A | 𝑧 U+1D467 | 1D3ED |
| ı U+0131 | 𝚤 U+1D6A4 | 1D573 |
| ȷ U+0237 | 𝚥 U+1D6A5 | 1D46E |
| Α U+0391 | 𝛢 U+1D6E2 | 1D351 |
| Β U+0392 | 𝛣 U+1D6E3 | 1D351 |
| Γ U+0393 | 𝛤 U+1D6E4 | 1D351 |
| Δ U+0394 | 𝛥 U+1D6E5 | 1D351 |
| Ε U+0395 | 𝛦 U+1D6E6 | 1D351 |
| Ζ U+0396 | 𝛧 U+1D6E7 | 1D351 |
| Η U+0397 | 𝛨 U+1D6E8 | 1D351 |
| Θ U+0398 | 𝛩 U+1D6E9 | 1D351 |
| Ι U+0399 | 𝛪 U+1D6EA | 1D351 |
| Κ U+039A | 𝛫 U+1D6EB | 1D351 |
| Λ U+039B | 𝛬 U+1D6EC | 1D351 |
| Μ U+039C | 𝛭 U+1D6ED | 1D351 |
| Ν U+039D | 𝛮 U+1D6EE | 1D351 |
| Ξ U+039E | 𝛯 U+1D6EF | 1D351 |
| Ο U+039F | 𝛰 U+1D6F0 | 1D351 |
| Π U+03A0 | 𝛱 U+1D6F1 | 1D351 |
| Ρ U+03A1 | 𝛲 U+1D6F2 | 1D351 |
| ϴ U+03F4 | 𝛳 U+1D6F3 | 1D2FF |
| Σ U+03A3 | 𝛴 U+1D6F4 | 1D351 |
| Τ U+03A4 | 𝛵 U+1D6F5 | 1D351 |
| Υ U+03A5 | 𝛶 U+1D6F6 | 1D351 |
| Φ U+03A6 | 𝛷 U+1D6F7 | 1D351 |
| Χ U+03A7 | 𝛸 U+1D6F8 | 1D351 |
| Ψ U+03A8 | 𝛹 U+1D6F9 | 1D351 |
| Ω U+03A9 | 𝛺 U+1D6FA | 1D351 |
| ∇ U+2207 | 𝛻 U+1D6FB | 1B4F4 |
| α U+03B1 | 𝛼 U+1D6FC | 1D34B |
| β U+03B2 | 𝛽 U+1D6FD | 1D34B |
| γ U+03B3 | 𝛾 U+1D6FE | 1D34B |
| δ U+03B4 | 𝛿 U+1D6FF | 1D34B |
| ε U+03B5 | 𝜀 U+1D700 | 1D34B |
| ζ U+03B6 | 𝜁 U+1D701 | 1D34B |
| η U+03B7 | 𝜂 U+1D702 | 1D34B |
| θ U+03B8 | 𝜃 U+1D703 | 1D34B |
| ι U+03B9 | 𝜄 U+1D704 | 1D34B |
| κ U+03BA | 𝜅 U+1D705 | 1D34B |
| λ U+03BB | 𝜆 U+1D706 | 1D34B |
| μ U+03BC | 𝜇 U+1D707 | 1D34B |
| ν U+03BD | 𝜈 U+1D708 | 1D34B |
| ξ U+03BE | 𝜉 U+1D709 | 1D34B |
| ο U+03BF | 𝜊 U+1D70A | 1D34B |
| π U+03C0 | 𝜋 U+1D70B | 1D34B |
| ρ U+03C1 | 𝜌 U+1D70C | 1D34B |
| ς U+03C2 | 𝜍 U+1D70D | 1D34B |
| σ U+03C3 | 𝜎 U+1D70E | 1D34B |
| τ U+03C4 | 𝜏 U+1D70F | 1D34B |
| υ U+03C5 | 𝜐 U+1D710 | 1D34B |
| φ U+03C6 | 𝜑 U+1D711 | 1D34B |
| χ U+03C7 | 𝜒 U+1D712 | 1D34B |
| ψ U+03C8 | 𝜓 U+1D713 | 1D34B |
| ω U+03C9 | 𝜔 U+1D714 | 1D34B |
| ∂ U+2202 | 𝜕 U+1D715 | 1B513 |
| ϵ U+03F5 | 𝜖 U+1D716 | 1D321 |
| ϑ U+03D1 | 𝜗 U+1D717 | 1D346 |
| ϰ U+03F0 | 𝜘 U+1D718 | 1D328 |
| ϕ U+03D5 | 𝜙 U+1D719 | 1D344 |
| ϱ U+03F1 | 𝜚 U+1D71A | 1D329 |
| ϖ U+03D6 | 𝜛 U+1D71B | 1D345 |
この節は規範的ではありません。
MathML CoreはMathML3をベースとしている。 付録 E [MathML3] で その仕様に貢献した人々のリストを見ることができる。
MathML Coreは当初MathML Community Groupによって開発され、 その後Math Working Groupが引き継いだ。本仕様の策定期間中、 MathML Core会合に定期的に参加したWorking GroupやCommunity Groupのメンバーは以下のとおり: Brian Kardell、 Bruce Miller、 Daniel Marques、 David Carlisle、 David Farmer、 Deyan Ginev、 Frédéric Wang、 Louis Mahler、 Moritz Schubotz、 Murray Sargent、 Neil Soiffer、 Patrick Ion、 Rob Buis、 Steve Noble、 Sam Dooley。
さらに編集作業で Brian Kardell、 Neil Soiffer、 Rob Buis 各氏に特に感謝したい。
テストスイート作成にも大変多くの方々にご協力頂いた: Brian Kardell、 Frédéric Wang、 Neil Soiffer、 Rob Buis。 いくつかのテストはブラウザリポジトリのMathMLテストをもとにしており、 MozillaとWebKitのコントリビュータにも感謝する。
また、公開コミュニケーションチャネルで貴重なご意見・フィードバックをくださった André Greiner-Petter、 Anne van Kesteren、 Boris Zbarsky、 Brian Smith、 Elika Etemad、 Emilio Cobos Álvarez、 ExE Boss、 Ian Kilpatrick、 Koji Ishii、 L. David Baron、 Michael Kohlhase、 Michael Smith、 Ryosuke Niwa、 Sergey Malkin、 Tab Atkins Jr., Viktor Yaffle、 frankvel 各氏にも感謝します。
この節は規範的ではありません。
本仕様は 2.1.3 グローバル属性 で述べたMathMLイベントハンドラ属性を通じてスクリプト実行機構を追加している。UAはHTMLやSVG要素と同様の セキュリティ制限を適用し、これら属性中のスクリプト実行を抑止してもよい。
[MathML3]
では、
href や xlink:href 属性により任意要素をリンク可能であり、
URLを信頼できないリソースや javascript: 実行へも向けられた。
これら属性はMathML Coreには存在しない。
ただし 2.2.1 HTMLとSVG で述べたように
MathML内にHTMLやSVGコンテンツ(HTMLやSVGリンクを含む)を埋め込むことは可能である。
[MathML3]
では、
maction
要素の
actiontype に "statusline"
を指定することでブラウザのステータスラインを上書き可能だった。
これにより攻撃者が安全でないリンクのURLテキスト表示を隠蔽できた。
<math>
<maction actiontype="statusline">
<mtext><a href="javascript:alert('JS execution')">Click me!</a></mtext>
<mtext>./this-is-a-safe-link.html</mtext>
</maction>
</math>
この機能はMathML Coreでは廃止されており、
maction
要素は本質的に
mrow
コンテナ+追加スタイル挙動になる。
攻撃者は非常に大きなストレッチ演算子を挿入してUAをフリーズさせようとするおそれがある。
これは glyph assembly shaping アルゴリズムに
極端多数のグリフ処理を強いるためである。UAは
rmin や
GlyphAssembly.partCount
に上限を設けてこれを緩和できる。
CSS Fonts Module で述べたように 攻撃者は不正・悪意のあるフォントを使いブラウザ実装の脆弱性を突くおそれがある。 本仕様では OpenType MATH table の利用範囲が広いため、UAはこのテーブルもフォントサニタイザで適切に扱うべき。
最後に、攻撃面縮小のため一部UAは Webプラットフォームの一部無効化オプションも備える。MathMLレイアウトを無効にするには DOMツリーの要素をHTML名前空間に強制し 4. 数式レイアウト用CSS拡張 を無効にすればよい。
この節は規範的ではありません。
2.2.1 HTMLとSVG で説明したように、
MathMLは
<foreignObject>
要素を通じてSVG画像内に埋め込むことができ、これは
canvas
要素でも利用できる。
UAは、潜在的
情報漏えい
防止のためにcanvasを汚染(taint)したり、JavaScript API経由のcanvas内容取得時に
"SecurityError"
を返す等の施策を選択できる。
下記例はcanvas画像にMathML内容+HTMLリンク(https://example.org/)を含めた場合である。
攻撃者がピクセルを
context.
経由で読んでも、そのリンクが既訪問かどうか判定できてはならない。
MathML内リンクについては
E. セキュリティの考慮事項
も参照。
getImageData()
let svg = `
<svg xmlns="http://www.w3.org/2000/svg" width="100px" height="100px">
<foreignObject width="100" height="100"
requiredExtensions="http://www.w3.org/1998/Math/MathML">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msqrt style="font-size: 25px">
<mtext>■</mtext>
<mtext><a href="https://example.org/">■</a></mtext>
</msqrt>
</math>
</foreignObject>
</svg>`;
let image = new Image();
image.width = 100;
image.height = 100;
image.onload = () => {
let canvas = document.createElement('canvas');
canvas.width = 100;
canvas.height = 100;
canvas.style = "border: 1px solid black";
document.body.appendChild(canvas);
let context = canvas.getContext("2d");
context.drawImage(image, 0, 0);
};
image.src = `data:image/svg+xml;base64,${window.btoa(svg)}`;
本仕様はDOM
要素のレイアウトを記述し、これにシステムフォントが関与しうる。HTML/CSSレイアウト同様、
JavaScript API(例:
context.
や
getImageData()getBoundingClientRect() など)
でボックス寸法・位置を測定し、システムフォント情報を間接推定できる。
上記のような計測試験と一般的な既知フォント比較で、攻撃者がユーザーのデフォルトフォントを推定可能である。
以下の
HTML+CSS+JavaScript ドキュメントは、特異なメトリクスを持つWebフォントを利用し既定システムフォント
A Well Known System Font
が存在するかどうかを判定しようとする。
<style>
@font-face {
font-family: MyWebFontWithVeryWideGlyphs;
src: url("/fonts/my-web-fonts-with-very-wide-glyphs.woff");
}
#container {
font-family: AWellKnownSystemFont, MyWebFontWithVeryWideGlyphs;
}
</style>
<div id="container">SOMETEXT</div>
<div id="reference">SOMETEXT</div>
<script>
document.fonts.ready.then(() => {
let containerWidth =
document.getElementById("container").getBoundingClientRect().width;
let referenceWidth =
document.getElementById("reference").getBoundingClientRect().width;
let isWellKnownSystemFontAvailable =
Math.abs(containerWidth - referenceWidth) < 1;
});
</script>
次の HTML+CSS+JavaScript ドキュメントは UI serif フォントがアジア系グリフを持つかどうかを判定しようとする:
<style>
@font-face {
font-family: MyWebFontWithVeryWideAsianGlyphs;
src: url("/fonts/my-web-fonts-with-very-wide-asian-glyphs.woff");
}
#container {
font-family: ui-serif, MyWebFontWithVeryWideAsianGlyphs
}
#reference {
font-family: MyWebFontWithVeryWideAsianGlyphs;
}
</style>
<div id="container">王</div>
<div id="reference">王</div>
<script>
document.fonts.ready.then(() => {
let containerWidth =
document.getElementById("container").getBoundingClientRect().width;
let referenceWidth =
document.getElementById("reference").getBoundingClientRect().width;
let uiSerifFontDoesNotContainAsianGlyph =
Math.abs(containerWidth - referenceWidth) < 1;
});
</script>
以下は同一テキストを
text-decoration-thickness を from-font と
1em
(ここでは100ピクセル)で描画し、高さ比較から PostScript Table の
underlineThickness
値近似を求める手法例である
[OPEN-FONT-FORMAT]。
<style>
#test {
font-size: 100px;
}
#container {
text-decoration-line: underline;
text-decoration-thickness: from-font;
}
#reference {
text-decoration-line: underline;
text-decoration-thickness: 1em;
}
</style>
<div id="test">
<div id="container">SOMETEXT</div>
<div id="reference">SOMETEXT</div>
</div>
本仕様は
5. OpenType MATH
table の情報を使いMathML内容を描画する。
MathConstants および
MathGlyphInfoの多くのレイアウトパラメータは
上述のような計測法でよい近似値を得られる。
MathVariants テーブルの利用もストレッチ演算子のサイズ違いを
canvasに描画するなどで判定できる。
これらのパラメータ自体は個人情報でないが、 本仕様の実装によりフォント情報露出が増え、攻撃者がフィンガープリント技術を用いる危険も高まる。 一般に、利用可能・好みの数学フォント特定などが可能となる。
適合要件は記述的な断定およびRFC 2119用語を組み合わせて表現している。規範テキストの中のキーワード “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” はRFC 2119に従って解釈する。 ただし読みやすさのため本仕様ではこれら語句は全大文字にはなっていない。
本仕様の文章は特に非規範的と明示されている節、例、注記を除き全て規範的である。 [RFC2119]
本仕様の例は「for example」や
class="example" 指定で区別され、例えば以下のように示す:
これは情報提供目的の例です。
補足的な注記は“Note”という語で始まり、
class="note"で区別される。例えば次の通り:
Note, これは情報提供目的の注記です。
勧告(advisement)は他規範テキストから目立つように
<strong class="advisement"> でマークアップされ、例えば次のようになる:
UAは MUST アクセシブルな代替手段を提供しなければならない。
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: