A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.w3.org/TR/2022/WD-mathml-core-20220504/ below:

MathML Core

Abstract

This specification defines a core subset of Mathematical Markup Language, or MathML, that is suitable for browser implementation. MathML is a markup language for describing mathematical notation and capturing both its structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the World Wide Web, just as HTML has enabled this functionality for text.

Status of This Document

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

This document was published by the Math Working Group as a Working Draft using the Recommendation track.

Publication as a Working Draft does not imply endorsement by W3C and its Members.

This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 2 November 2021 W3C Process Document.

Table of Contents
  1. Abstract
  2. Status of This Document
  3. 1. Introduction
  4. 2. MathML Fundamentals
    1. 2.1 Elements and attributes
      1. 2.1.1 The Top-Level <math> Element
      2. 2.1.2 Types for MathML Attribute Values
      3. 2.1.3 Global Attributes
      4. 2.1.4 Attributes common to HTML and MathML elements
      5. 2.1.5 Legacy MathML Style Attributes
      6. 2.1.6 The mathvariant attribute
      7. 2.1.7 The displaystyle and scriptlevel attributes
    2. 2.2 Integration in the Web Platform
      1. 2.2.1 HTML and SVG
      2. 2.2.2 CSS styling
      3. 2.2.3 DOM and Javascript
      4. 2.2.4 Text layout
      5. 2.2.5 Focus
  5. 3. Presentation Markup
    1. 3.1 Visual formatting model
      1. 3.1.1 Box Model
      2. 3.1.2 Layout Algorithms
      3. 3.1.3 Stacking contexts
    2. 3.2 Token Elements
      1. 3.2.1 Text <mtext>
        1. 3.2.1.1 Layout of <mtext>
      2. 3.2.2 Identifier <mi>
      3. 3.2.3 Number <mn>
      4. 3.2.4 Operator, Fence, Separator or Accent <mo>
        1. 3.2.4.1 Embellished operators
        2. 3.2.4.2 Dictionary-based attributes
        3. 3.2.4.3 Layout of operators
      5. 3.2.5 Space <mspace>
        1. 3.2.5.1 Definition of space-like elements
      6. 3.2.6 String Literal <ms>
    3. 3.3 General Layout Schemata
      1. 3.3.1 Group Sub-Expressions <mrow>
        1. 3.3.1.1 Algorithm for stretching operators along the block axis
        2. 3.3.1.2 Layout of <mrow>
      2. 3.3.2 Fractions <mfrac>
        1. 3.3.2.1 Fraction with nonzero line thickness
        2. 3.3.2.2 Fraction with zero line thickness
      3. 3.3.3 Radicals <msqrt>, <mroot>
        1. 3.3.3.1 Radical symbol
        2. 3.3.3.2 Square root
        3. 3.3.3.3 Root with index
      4. 3.3.4 Style Change <mstyle>
      5. 3.3.5 Error Message <merror>
      6. 3.3.6 Adjust Space Around Content <mpadded>
        1. 3.3.6.1 Inner box and requested parameters
        2. 3.3.6.2 Layout of <mpadded>
      7. 3.3.7 Making Sub-Expressions Invisible <mphantom>
    4. 3.4 Script and Limit Schemata
      1. 3.4.1 Subscripts and Superscripts <msub>, <msup>, <msubsup>
        1. 3.4.1.1 Children of <msub>, <msup>, <msubsup>
        2. 3.4.1.2 Base with subscript
        3. 3.4.1.3 Base with superscript
        4. 3.4.1.4 Base with subscript and superscript
      2. 3.4.2 Underscripts and Overscripts <munder>, <mover>, <munderover>
        1. 3.4.2.1 Children of <munder>, <mover>, <munderover>
        2. 3.4.2.2 Algorithm for stretching operators along the inline axis
        3. 3.4.2.3 Base with underscript
        4. 3.4.2.4 Base with overscript
        5. 3.4.2.5 Base with underscript and overscript
      3. 3.4.3 Prescripts and Tensor Indices <mmultiscripts>
        1. 3.4.3.1 Base with prescripts and postscripts
      4. 3.4.4 Displaystyle, scriptlevel and math-shift in scripts
    5. 3.5 Tabular Math
      1. 3.5.1 Table or Matrix <mtable>
      2. 3.5.2 Row in Table or Matrix <mtr>
      3. 3.5.3 Entry in Table or Matrix <mtd>
    6. 3.6 Enlivening Expressions
    7. 3.7 Semantics and Presentation
  6. 4. CSS Extensions for Math Layout
    1. 4.1 The display: block math and display: inline math value
    2. 4.2 New text-transform values
    3. 4.3 The math-style property
    4. 4.4 The math-shift property
    5. 4.5 New value math-depth property
  7. 5. OpenType MATH table
    1. 5.1 Layout constants (MathConstants)
    2. 5.2 Glyph information (MathGlyphInfo)
    3. 5.3 Size variants for operators (MathVariants)
      1. 5.3.1 The GlyphAssembly table
      2. 5.3.2 Algorithms for glyph stretching
  8. A. User Agent Stylesheet
  9. B. Operator Tables
    1. B.1 Operator Dictionary
    2. B.2 Operator Dictionary (human-readable)
    3. B.3 Combining Character Equivalences
    4. B.4 Unicode-based Glyph Assemblies
  10. C. New text-transform Mappings
    1. C.1 bold-script mappings
    2. C.2 bold-italic mappings
    3. C.3 tailed mappings
    4. C.4 bold mappings
    5. C.5 fraktur mappings
    6. C.6 script mappings
    7. C.7 monospace mappings
    8. C.8 initial mappings
    9. C.9 sans-serif mappings
    10. C.10 double-struck mappings
    11. C.11 looped mappings
    12. C.12 stretched mappings
    13. C.13 italic mappings
    14. C.14 bold-fraktur mappings
    15. C.15 sans-serif-bold-italic mappings
    16. C.16 sans-serif-italic mappings
    17. C.17 bold-sans-serif mappings
  11. D. Acknowledgments
  12. E. Security Considerations
  13. F. Privacy Considerations
  14. G. Conformance
    1. G.1 Conformance
      1. G.1.1 Document conventions
  15. H. References
    1. H.1 Normative references
    2. H.2 Informative references

This section is non-normative.

The [MATHML3] specification has several shortcomings that make it hard to implement consistently across web rendering engines or to extend with user-defined constructions e.g.

This MathML Core specification intends to address these issues by being as accurate as possible on the visual rendering of mathematical formulas using additional rules from the TeXBookโ€™s Appendix G [TEXBOOK] and from the Open Font Format [OPEN-FONT-FORMAT], [OPEN-TYPE-MATH-ILLUMINATED]. It also relies on modern browser implementations and web technologies [HTML] clarifying interactions with them when needed or introducing new low-level primitives to improve the web platform layering.

Parts of MathML3 that do not fit well in this framework or are less fundamental have been omitted. Instead, they are described in a separate and larger [MATHML4] specification. The details of which math feature will be included in future versions of MathML Core or implemented as polyfills is still open. This question and other potential improvements are tracked on GitHub.

By increasing the level of implementation details, focusing on a workable subset, following a browser-driven design and relying on automated web platform tests, this specification is expected to greatly improve MathML interoperability. Moreover, effort on MathML layering will enable users to implement the rest of the MathML 4 specification, or more generally to extend MathML Core, using modern web technologies such as shadow DOM, custom elements, CSS layout API or other Houdini APIs.

The term MathML element refers to any element in the MathML namespace. The MathML element defined in this specification are called the MathML Core elements and are listed below. Any MathML element that is not listed below is called an Unknown MathML element.

  1. <annotation>
  2. <annotation-xml>
  3. <maction>
  4. <math>
  5. <merror>
  6. <mfrac>
  7. <mi>
  8. <mmultiscripts>
  9. <mn>
  10. <mo>
  11. <mover>
  12. <mpadded>
  13. <mphantom>
  14. <mprescripts>
  15. <mroot>
  16. <mrow>
  17. <ms>
  18. <mspace>
  19. <msqrt>
  20. <mstyle>
  21. <msub>
  22. <msubsup>
  23. <msup>
  24. <mtable>
  25. <mtd>
  26. <mtext>
  27. <mtr>
  28. <munder>
  29. <munderover>
  30. <none>
  31. <semantics>

The grouping elements are <maction>, <math>, <merror> <mphantom>, <mprescripts>, <mrow>, <mstyle>, <none>, <semantics> and unknown MathML elements.

The scripted elements are <mmultiscripts>, <mover>, <msub>, <msubsup>, <msup>, <munder> and <munderover>.

The radical elements are <mroot> and <msqrt>.

The attributes defined in this specification have no namespace and are called MathML attributes:

MathML specifies a single top-level or root <math> element, which encapsulates each instance of MathML markup within a document. All other MathML content must be contained in a <math> element.

The <math> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attribute:

The display attribute, if present, must be an ASCII case-insensitive match to block or inline. The user agent stylesheet described in A. User Agent Stylesheet contains rules for this attribute that affect the default values for the display (block math or inline math) and math-style (normal or compact) properties. If the display attribute is absent or has an invalid value, the User Agent stylesheet treats it the same as inline.

If the element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise the layout algorithm of the <mrow> element is used to produce a box. That MathML box is used as the content for the layout of the element, as described by CSS for display: block (if the computed value is block math) or display: inline (if the computed value is inline math). Additionally, if the computed display property is equal to block math then that MathML box is rendered horizontally centered within the content box.

Note

TEX's display mode $$...$$ and inline mode $...$ correspond to display="block" and display="inline" respectively.

In the following example, a <math> formula is rendered in display mode on a new line and taking full width, with the math content centered within the container:

<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>

As a comparison, the same formula would look as follows in inline mode. The formula is embedded in the paragraph of text without forced line breaking. The baselines specified by the layout algorithm of the <mrow> are used for vertical alignement. Note that the middle of sum and equal symbols or fractions are all aligned, but not with the alphabetical baseline of the surrounding text.

Because good mathematical rendering requires use of mathematical fonts, the user agent stylesheet should set the font-family to the math value on the <math> element instead of inheriting it. Additionally, several CSS properties that can be set on a parent container such as font-style, font-weight, direction or text-indent etc are not expected to apply to the math formula and so the user agent stylesheet has rules to reset them by default.

math {
  direction: ltr;
  writing-mode:  horizontal-tb;
  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-style: compact;
  math-shift: normal;
  math-level: 0;
}
math[display="block" i] {
  display: block math;
  math-style: normal;
}
math[display="inline" i] {
  display: inline math;
  math-style: compact;
}
unsigned-integer
An <integer> value as defined in [CSS-VALUES-3], whose first character is neither U+002D HYPHEN-MINUS character (-) nor U+002B PLUS SIGN (+).
length-percentage
A <length-percentage> value as defined in [CSS-VALUES-3]
color
A <color> value as defined in [CSS-COLOR-3]
boolean
A string that is an ASCII case-insensitive match to true or false.

The following attributes are common to and may be specified on all MathML elements:

The id, class, style, data-*, nonce and tabindex attributes have the same syntax and semantic as defined for id, class, style, data-*, nonce and tabindex attributes on HTML elements.

The dir attribute, if present, must be an ASCII case-insensitive match to ltr or rtl. In that case, the user agent is expected to treat the attribute as a presentational hint setting the element's direction property to the corresponding value. More precisely, an ASCII case-insensitive match to rtl is mapped to rtl while an ASCII case-insensitive match to ltr is mapped to ltr.

Note

The

dir

attribute is used to set the directionality of math formulas, which is often

rtl

in Arabic speaking world. However, languages written from right to left often embed math written from left to right and so the

user agent stylesheet

resets the

direction

property accordingly on the

<math>

elements.

In the following example, the dir attribute is used to render "๐žธŽ plus ๐žธ‘ raised to the power of (ูข over, ๐žธŸ plus ูก)" from right-to-left.

<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>

All MathML elements support event handler content attributes, as described in event handler content attributes in HTML.

All event handler content attributes noted by HTML as being supported by all HTMLElements are supported by all MathML elements as well, as defined in the MathMLElement IDL.

The mathcolor and mathbackground attributes, if present, must have a value that is a color. In that case, the user agent is expected to treat these attributes as a presentational hint setting the element's color and background-color properties to the corresponding values. The mathcolor attribute describes the foreground fill color of MathML text, bars etc while the mathbackground attribute describes the background color of an element.

The mathsize attribute, if present, must have a value that is a valid length-percentage. In that case, the user agent is expected to treat the attribute as a presentational hint setting the element's font-size property to the corresponding value. The mathsize property indicates indicates the desired height of glyphs in math formulas but also scale other parts (spacing, shifts, line thickness of bars etc) accordingly.

Note

The above attributes are implemented for compatibility with full MathML. Authors whose only target is MathML Core are encouraged to use CSS for styling.

The mathvariant attribute, if present, must be an ASCII case-insensitive match to one of: normal, bold, italic, bold-italic, double-struck, bold-fraktur, script, bold-script, fraktur, sans-serif, bold-sans-serif, sans-serif-italic, sans-serif-bold-italic, monospace, initial, tailed, looped, or stretched. In that case, the user agent is expected to treat the attribute as a presentational hint setting the element's text-transform property to the corresponding value. More precisely, an ASCII case-insensitive match to normal is mapped to none while any other valid value is mapped to its ASCII lowercased value, prefixed with math-.

The mathvariant attribute defines logical classes of token elements. Each class provides a collection of typographically-related symbolic tokens with specific meaning within a given mathematical expression. For mathvariant values other than normal, this is done by using glyphs of Mathematical Alphanumeric Symbols [UNICODE].

In the following example, the mathvariant attribute is used to render different A letters. Note that by default variables use mathematical italic.

<math>
  <mi>A</mi>
  <mi mathvariant="normal">A</mi>
  <mi mathvariant="fraktur">A</mi>
  <mi mathvariant="double-struck">A</mi>
</math>

Note

mathvariant

values other than

normal

are implemented for compatibility with full MathML and legacy editors that can't access characters in Plane 1 of Unicode. Authors are encouraged to use the corresponding Unicode characters. The

normal

value is still important to cancel automatic italic of the

<mi>

element.

Note

It is sometimes needed to distinguish between Chancery and Roundhand style for MATHEMATICAL SCRIPT characters. These are notably used in LaTeX for the \mathcal and \mathscr commands.

One way to do that is to rely on Chapter 23.4 Variation Selectors of Unicode which describes a way to specify selection of particular glyph variants [UNICODE]. Indeed, the StandardizedVariants.txt file from the Unicode Character Database indicates that variant selectors U+FE00 and U+FE01 can be used on capital script to specify Chancery and Roundhand respectively.

Alternatively, some mathematical fonts rely on 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.

The displaystyle attribute, if present, must have a value that is a boolean. In that case, the user agent is expected to treat the attribute as a presentational hint setting the element's math-style property to the corresponding value. More precisely, an ASCII case-insensitive match to true is mapped to normal while an ASCII case-insensitive match to false is mapped to compact. This attribute indicates whether formulas should try to minimize the logical height (value is false) or not (value is true) e.g. by changing the size of content or the layout of scripts.

The scriptlevel attribute, if present, must have value +<U>, -<U> or <U> where <U> is an unsigned-integer. In that case the user agent is expected to treat the scriptlevel attribute as a presentational hint setting the element's math-depth property to the corresponding value. More precisely, +<U>, -<U> and <U> are respectively mapped to add(<U>) add(<-U>) and <U>.

displaystyle and scriptlevel values are automatically adjusted within MathML elements. To fully implement these attributes, additional CSS properties must be specified in the user agent stylesheet as described in A. User Agent Stylesheet. In particular, for all MathML elements a default font-size: math is specified to ensure that scriptlevel changes are taken into account.

In this example, a <munder> element is used to attach a script "A" to a base "โˆ‘". By default, the summation symbol is rendered with the font-size inherited from its parent and the A as a scaled down subscript. If displaystyle is true, the summation symbol is drawn bigger and the "A" becomes an underscript. If scriptlevel is reset to 0 on the "A", then it will use the same font-size as the top-level math root.

<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>

Note

T

E

X's

\displaystyle

,

\textstyle

,

\scriptstyle

, and

\scriptscriptstyle

correspond to

displaystyle

and

scriptlevel

as

true

and

0

,

false

and

0

,

false

and

1

, and

false

and 2, respectively.

When parsing HTML documents user agents must treat any tag name corresponding to a MathML Core Element as belonging to the MathML namespace.

Users agents must allow mixing HTML, SVG and MathML elements as allowed by sections HTML integration point, MathML integration point, tree construction dispatcher, MathML and SVG from [HTML].

When evaluating the SVG requiredExtensions attribute, user agents must claim support for the language extension identified by the MathML namespace.

In this example, inline MathML and SVG elements are used inside a HTML document. SVG elements <switch> and <foreignObject> (with proper <requiredExtensions>) are used to embed a MathML formula with a text fallback, inside a diagram. HTML input element is used within the <mtext> include an interactive input field inside a mathematical formula.

<svg style="font-size: 20px" width="400px" height="220px" viewBox="0 0 200 110">
  <g transform="translate(10,80)">
    <path d="M 0 0 L 150 0 A 75 75 0 0 0 0 0
             M 30 0 L 30 -60 M 30 -10 L 40 -10 L 40 0"
          fill="none" stroke="black"></path>
    <text transform="translate(10,20)">1</text>
    <switch transform="translate(35,-40)">
      <foreignObject width="200" height="50"
                     requiredExtensions="http://www.w3.org/1998/Math/MathML">
        <math>
          <msqrt>
            <mn>2</mn>
            <mi>r</mi>
            <mo>โˆ’</mo>
            <mn>1</mn>
          </msqrt>
        </math>
      </foreignObject>
      <text>\sqrt{2r - 1}</text>
    </switch>
  </g>
</svg>

<p>
  Fill the blank:
  <math>
    <msqrt>
      <mn>2</mn>
      <mtext><input onchange="..." size="2" type="text"></mtext>
      <mo>โˆ’</mo>
      <mn>1</mn>
    </msqrt>
    <mo>=</mo>
    <mn>3</mn>
  </math>
</p>

User agents must support various CSS features mentioned in this specification, including new ones described in 4. CSS Extensions for Math Layout. They must follow the computation rule for display: contents.

In this example, the MathML formula inherits the CSS color of its parent and uses the font-family specified via the style attribute.

<div style="width: 15em; color: blue">
  This mathematical formula with a big summation and the number pi
  <math display="block" style="font-family: STIX Two">
    <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>

All documents containing MathML Core elements must include CSS rules described in A. User Agent Stylesheet as part of user-agent level style sheet defaults.

The following CSS features are not supported and must be ignored:

Note

These features might be handled in future versions of this document. For now, authors are discouraged from setting a different value for these properties as that might lead to backward incompatibility issues.

User agents supporting Web application APIs must ensure that they keep the visual rendering of MathML synchronized with the [DOM] tree, in particular perform necessary updates when MathML attributes are modified dynamically.

All the nodes representing MathML elements in the DOM must implement, and expose to scripts, the following MathMLElement interface.

[Exposed=Window]
interface MathMLElement : Element { };
MathMLElement includes GlobalEventHandlers;
MathMLElement includes DocumentAndElementEventHandlers;
MathMLElement includes HTMLOrForeignElement;

The GlobalEventHandlers, DocumentAndElementEventHandlers and HTMLOrForeignElement interfaces are defined in [HTML].

Each IDL attribute of the MathMLElement interface reflects the corresponding MathML content attribute.

In the following example, a MathML formula is used to render the fraction "ฮฑ over 2". When clicking the red ฮฑ, it is changed into a blue ฮฒ.

<script>
  function ModifyMath(mi) {
      mi.style.color = 'blue';
      mi.textContent = 'ฮฒ';
  }
</script>
<math>
  <mrow>
    <mfrac>
      <mi style="color: red" onclick="ModifyMath(this)">ฮฑ</mi>
      <mn>2</mn>
    </mfrac>
  </mrow>
</math>

Because math fonts generally contain very tall glyphs such as big integrals, using typographic metrics is important to avoid excessive line spacing of text. As a consequence, user agents must take into account the USE_TYPO_METRICS flag from the OS/2 table [OPEN-FONT-FORMAT] when performing text layout.

MathML provides the ability for authors to allow for interactivity in supporting interactive user agents using the same concepts, approach and guidance to Focus as described in HTML, with modifications or clarifications regarding application for MathML as described in this section.

When an element is focused, all applicable CSS focus-related pseudo-classes as defined in Selectors Level 3 apply, as defined in that specification.

The contents of embedded <math> elements (including HTML elements inside token elements), contribute to the sequential focus order of the containing owner HTML document (combined sequential focus order).

The default display property is described in A. User Agent Stylesheet:

In order to specify math layout in different writing modes, this specification uses concepts from [CSS-WRITING-MODES-3]:

Note

Unless specified otherwise, the figures in this specification use a

writing mode

of

horizontal-lr

and

ltr

. See

Figure 4

,

Figure 5

and

Figure 6

for examples of other writing modes that are sometimes used for math layout.

MathML boxes have several parameters in order to perform layout in a way that is compatible with CSS but also to take into account very accurate positions and spacing within math formulas. Each math box has the following parameters:

  1. Inline metrics. min-content inline size, max-content inline size and inline size from CSS. See Figure 1. Figure 1 Generic Box Model for MathML elements
  2. Block metrics. The block size, first baseline set and last baseline set. The following baselines are defined for MathML boxes:

    1. The alphabetic baseline which typically aligns with the bottom of uppercase Latin glyphs. The algebric distance from the alphabetic baseline to the line-over edge of the box is the called line-ascent. The algebric distance from the line-under edge to the alphabetic baseline of the box is the called line-descent.
    2. The mathematical baseline also called math axis which typically aligns with the fraction bar, middle of fences and binary operators. It is shifted away from the alphabetic baseline by AxisHeight towards the line-over.
    3. The ink-over baseline, indicating the line-over theorical limit of the content drawn, excluding any extra space. If not specified, it is aligned with the line-over edge. The algebric distance from the alphabetic baseline to the ink-over baseline is called the ink line-ascent.
    4. The ink-under baseline, indicating the line-under theorical limit of the content drawn, excluding any extra space. If not specified, it is aligned with the line-under edge. The algebric distance from the ink-under baseline to the alphabetic baseline is called the ink line-descent.

    Note

    For math layout, it is very important to rely on the ink extent when positioning text. This is not the case for more complex notations (e.g. square root). Although ink-ascent and ink-descent are defined for all MathML elements they are really only used for the token elements. In other cases, they just match normal ascent and descent.

    Unless specified otherwise, the last baseline set is equal to the first baseline set for MathML boxes.
  3. An optional italic correction which provides a measure of how much the text of a box is slanted along the inline axis. See Figure 2. Figure 2 Examples of italic correction for italic f and large integral If it is requested during calculation of min-content inline size and max-content inline size or during layout then 0 is used as a fallback value.
  4. An optional top accent attachment which provides a reference offset on the inline axis of a box that should be used when positioning that box as an accent. See Figure 3. Figure 3 Example of top accent attachment for a circumflex accent If it is requested during calculation of min-content inline size (respectively max-content inline size) then half the min-content inline size (respectively max-content inline size) is used as a fallback value. If it is requested during layout then half the inline size of the box is used as a fallback value.

Given a MathML box, the following offsets are defined:

Figure 4 Box model for writing mode horizontal-tb and rtl that may be used in e.g. Arabic math. Figure 5 Box model for writing mode vertical-lr and ltr that may be used in e.g. Mongolian math. Figure 6 Box model for writing mode vertical-rl and ltr that may be used in e.g. Japanese math.

Note

The position of child boxes and graphical items inside a MathML box are expressed using the

inline offset

and

block offset

. For convenience, the layout algorithms may describe offsets using flow-relative directions, line-relative directions or the

alphabetic baseline

. It is always possible to pass from one description to the other because position of child boxes are always performed after the metrics of the box and of its child boxes are calculated.

Improve definition of ink ascent/descent?

The layout algorithms described in this chapter for MathML boxes have the following structure:

  1. Calculation of min-content inline size and max-content inline size of the content.
  2. Box layout:
    1. Layout of in-flow child boxes.
    2. Calculation of inline size, ink line-ascent, ink line-descent, line-ascent and line-ascent of the content.
    3. Calculation of offsets of child boxes within the content box as well as sizes and offsets of extra graphical items (bars, radical symbol, etc).
    4. Layout and positioning of out-of-flow child boxes.

During box layout, the following extra steps must be performed:

During box layout, optional inline stretch size constraint and block stretch size constraint parameters may be used on embellished operators. The former indicates a target size that a core operator stretched along the inline axis should cover. The latter indicates an ink line-ascent and ink line-descent that a core operator stretched along the block axis should cover. Unless specified otherwise, these parameters are ignored during box layout and child boxes are laid out without any stretch size constraint.

Explain how out-of-flow elements are positioned.

Interpret width/height/inline-size/block-size?

Define what inline percentages resolve against

Define what block percentages resolve against

MathML elements can overlap due to various spacing rules. They can as well contain extra graphical items (bars, radical symbol, etc). A MathML element with computed style display: block math or display: inline math generates a new stacking context. The painting order of in-flow children of such a MathML element is exactly the same as block elements. The extra graphical items are painted after text and background (right after step 7.2.4 for display: inline math and right after step 7.2 for display: block math).

Token elements in presentation markup are broadly intended to represent the smallest units of mathematical notation which carry meaning. Tokens are roughly analogous to words in text. However, because of the precise, symbolic nature of mathematical notation, the various categories and properties of token elements figure prominently in MathML markup. By contrast, in textual data, individual words rarely need to be marked up or styled specially.

Note

In practice, most MathML token elements just contain simple text for variables, numbers, operators etc and don't need sophisticated layout. However, it can contain contain text with line breaks or arbitrary HTML5 phrasing elements.

The <mtext> element is used to represent arbitrary text that should be rendered as itself. In general, the <mtext> element is intended to denote commentary text.

The <mtext> element accepts the attributes described in 2.1.3 Global Attributes.

In the following example, <mtext> is used to put conditional words in a definition:

<math>
  <mi>y</mi>
  <mo>=</mo>
  <mrow>
    <msup>
      <mi>x</mi>
      <mn>2</mn>
    </msup>
    <mtext>&nbsp;if&nbsp;</mtext>
    <mrow>
      <mi>x</mi>
      <mo>โ‰ฅ</mo>
      <mn>1</mn>
    </mrow>
    <mtext>&nbsp;and&nbsp;</mtext>
    <mn>2</mn>
    <mtext>&nbsp;otherwise.</mtext>
  </mrow>
</math>

If the element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise, the layout below is performed.

The mtext element is laid out as a block box and the min-content inline size, max-content inline size, inline size, block size, first baseline set and last baseline set are determined accordingly.

If the <mtext> element contains only text content without forced line break or soft wrap opportunity then in addition:

The <mi> element represents a symbolic name or arbitrary text that should be rendered as an identifier. Identifiers can include variables, function names, and symbolic constants.

The <mi> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mtext> element. The user agent stylesheet must contain the following property in order to implement automatic italic:

mi {
  text-transform: math-auto;
}

In the following example, <mi> is used to render variables and function names. Note that identifiers containing a single letter are italic by default.

<math>
  <mi>cos</mi>
  <mo>,</mo>
  <mi>c</mi>
  <mo>,</mo>
  <mi mathvariant="normal">c</mi>
</math>

The <mn> element represents a "numeric literal" or other data that should be rendered as a numeric literal. Generally speaking, a numeric literal is a sequence of digits, perhaps including a decimal point, representing an unsigned integer or real number.

The <mn> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mtext> element.

In the following example, <mn> is used to write a decimal number.

<math>
  <mn>3.141592653589793</mn>
</math>

The <mo> element represents an operator or anything that should be rendered as an operator. In general, the notational conventions for mathematical operators are quite complicated, and therefore MathML provides a relatively sophisticated mechanism for specifying the rendering behavior of an <mo> element.

As a consequence, in MathML the list of things that should "render as an operator" includes a number of notations that are not mathematical operators in the ordinary sense. Besides ordinary operators with infix, prefix, or postfix forms, these include fence characters such as braces, parentheses, and "absolute value" bars; separators such as comma and semicolon; and mathematical accents such as a bar or tilde over a symbol. This chapter uses the term "operator" to refer to operators in this broad sense.

The <mo> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attributes:

This specification does not define any observable behavior that is specific to the fence and separator attributes.

In the following example, the <mo> element is used for the binary operator +. Default spacing is symmetric around that operator. A tigher spacing is used if you rely on the form attribute to force it to be treated as a prefix operator. Spacing can also be specified explicitly using the lspace and rspace attributes.

<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>

Another use case is for big operator such as summation. When displaystyle is true, such an operator are drawn larger but one can change that with the largeop attribute. When displaystyle is false, underscript are actually rendered as subscript but one can change that with the movablelimits attribute.

<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>

Operators are also used for stretchy symbols such as fences, accents, arrows etc. In the following example, the vertical arrow stretches to the height of the <mspace> element. One can override default stretch behavior with the stretchy attribute e.g. to force an unstretched arrow. The symmetric attribute allows to indicate whether the operator should stretchy symmetrically above and below the baseline. Finally the minsize and maxsize attributes add additional constraints over the stretch size.

<math>
  <mspace height="100px" width="10px" style="background: blue"/>
  <mo>โ†‘</mo>
  <mo stretchy="false">โ†‘</mo>
  <mo symmetric="true">โ†‘</mo>
  <mo minsize="150px">โ†‘</mo>
  <mo maxsize="50px">โ†‘</mo>
</math>

Note that the default properties of operators are dictionary-based, as explained in 3.2.4.2 Dictionary-based attributes. For example a binary operator typically has default symmetric spacing around it while a fence is generally stretchy by default.

A MathML Core element is an embellished operator if it is:

  1. An <mo> element;
  2. A scripted element or an <mfrac>, whose first in-flow child exists and is an embellished operator;
  3. A grouping element or <mpadded>, whose in-flow children consist (in any order) of one embellished operator and zero or more space-like elements.

The core operator of an embellished operator is the <mo> element defined recursively as follows:

  1. The core operator of an <mo> element; is the element itself.
  2. The core operator of an embellished scripted element or <mfrac> element is the core operator of its first in-flow child.
  3. The core operator of an embellished grouping element or <mpadded> is the core operator of its unique embellished operator in-flow child.

The stretch axis of an embellished operator is inline if its core operator contains only text content made of a unique character c, and that character has inline intrinsic stretch axis. Otherwise, the stretch axis of the embellished operator is block.

The form property of an embellished operator is either infix, prefix or postfix. The corresponding form attribute on the <mo> element, if present, must be an ASCII case-insensitive match to one of these values.

The algorithm for determining the form of an embellished operator is as follows:

  1. If the form attribute is present and valid on the core operator, then its ASCII lowercased value is used;
  2. If the embellished operator is the first in-flow child of a grouping element, <mpadded> or <msqrt> with more than one in-flow child (ignoring all space-like children) then it has form prefix;
  3. Or, if the embellished operator is the last in-flow child of a grouping element, <mpadded> or <msqrt> with more than one in-flow child (ignoring all space-like children) then it has form postfix;
  4. Or, if the embellished operator is an in-flow child of a scripted element, other than the first in-flow child, then it has form postfix;
  5. Otherwise, the embellished operator has form infix.

The stretchy, symmetric, largeop, movablelimits, properties of an embellished operator are either false or true. In the latter case, it is said that the embellished operator has the property. The corresponding attributes on the <mo> element, if present, must be a boolean.

The lspace, rspace, minsize properties of an embellished operator are length-percentage. The maxsize property of an embellished operator is either a length-percentage or โˆž. The lspace, rspace, minsize and maxsize attributes on the <mo> element, if present, must be a length-percentage.

The algorithm for determining the properties of an embellished operator is as follows:

  1. If the corresponding stretchy, symmetric, largeop, movablelimits, lspace, rspace, maxsize or minsize attribute is present and valid on the core operator, then the ASCII lowercased value of this property is used;
  2. Otherwise, run the algorithm for determining the form of an embellished operator;
  3. If the core operator contains only text content Content, then set Category to the result of the algorithm to determine the category of an operator (Content, Form) where Form is the form calculated at the previous step.
  4. If Category is Default and the form of embellished operator was not explicitly specified as an attribute on its core operator, then
    1. Set Category to the result of the algorithm to determine the category of an operator (Content, Form) where Form is infix.
    2. If Category is Default, then run the algorithm again with Form set to prefix.
    3. If Category is Default, then run the algorithm again with Form set to postfix.
  5. Run the algorithm to set the properties of an operator from its category Category.

When used during layout, the values of stretchy, symmetric, largeop, movablelimits, lspace, rspace, minsize are obtained by the algorithm for determining the properties of an embellished operator with the following extra resolutions:

If the <mo> element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise, the layout below is performed.

The text of the operator must only be painted if the visibility of the <mo> element is visible. In that case, it must be painted with the color of the <mo> element.

Operators are laid out as follows:

  1. If the content of the <mo> element is not made of a single character c then fallback to the layout algorithm of 3.2.1.1 Layout of <mtext>.
  2. If the operator has the stretchy property:
  3. If the operator has the largeop property and if math-style on the <mo> element is normal, then:
    1. Use the MathVariants table to try and find a glyph of height at least DisplayOperatorMinHeight If none is found, fallback to the largest non-base glyph. If none is found, fallback to the layout algorithm of 3.2.1.1 Layout of <mtext>.

    2. The min-content inline size, max-content inline size, inline size and block metrics of the content are given by the glyph found.
    3. Paint the glyph.
    Figure 8 Base and displaystyle sizes of the summation symbol
  4. Other fallback to the layout algorithm of 3.2.1.1 Layout of <mtext>.

If the algorithm to shape a stretchy glyph has been used for one of the step above, then the italic correction of the content is set to the value returned by that algorithm.

Note

If maxsize is equal to its default value โˆž then minsize โ‰ค maxsize is satisfied but maxsize < T is not.

The <mspace> empty element represents a blank space of any desired size, as set by its attributes.

The <mspace> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attributes:

The mspace@width, mspace@height, mspace@depth, if present, must have a value that is a valid length-percentage. An unspecified attribute, a percentage value, or an invalid value is interpreted as 0. If one of the requested values calculated is negative then it is treated as 0.

In the following example, <mspace> is used to force spacing within the formula (a 1px blue border is added to easily visualize the space):

<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>

If the <mspace> element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise, the <mspace> element is laid out as shown on Figure 9. The min-content inline size and max-content inline size of the content are equal to the requested inline size. The inline size, line-ascent and line-descent of the content are respectively the requested inline size, line-ascent and line-descent.

Figure 9 Box model for the <mspace> element

Note

The terminology height/depth comes from [

MATHML3

], itself inspired from [

TEXBOOK

].

A number of MathML presentation elements are "space-like" in the sense that they typically render as whitespace, and do not affect the mathematical meaning of the expressions in which they appear. As a consequence, these elements often function in somewhat exceptional ways in other MathML expressions.

A MathML Core element is a space-like element if it is:

  1. An <mtext> or <mspace>;
  2. Or a grouping element or <mpadded> all of whose in-flow children are space-like.

Note

Note that an

<mphantom>

is not automatically defined to be space-like, unless its content is space-like. This is because operator spacing is affected by whether adjacent elements are space-like. Since the

<mphantom>

element is primarily intended as an aid in aligning expressions, operators adjacent to an

<mphantom>

should behave as if they were adjacent to the contents of the

<mphantom>

, rather than to an equivalently sized area of whitespace.

<ms> element is used to represent "string literals" in expressions meant to be interpreted by computer algebra systems or other systems containing "programming languages".

The <ms> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mtext> element.

In the following example, <ms> is used to write a literal string of characters:

<math>
  <mi>s</mi>
  <mo>=</mo>
  <ms>"hello world"</ms>
</math>

Note

In MathML3, it was possible to use the

lquote

and

rquote

attributes to respectively specify the strings to use as opening and closing quotes. These are no longer supported and the quotes must instead be specified as part of the text of the

<ms>

element. One can add CSS rules to legacy documents in order to preserve visual rendering. For example, in left-to-right direction:

ms:before, ms:after {
  content: "\0022";
}
ms[lquote]:before {
  content: attr(lquote);
}
ms[rquote]:after {
  content: attr(rquote);
}

Besides tokens there are several families of MathML presentation elements. One family of elements deals with various "scripting" notations, such as subscript and superscript. Another family is concerned with matrices and tables. The remainder of the elements, discussed in this section, describe other basic notations such as fractions and radicals, or deal with general functions such as setting style properties and error handling.

The <mrow> element is used to group together any number of sub-expressions, usually consisting of one or more <mo> elements acting as "operators" on one or more other expressions that are their "operands".

In the following example, <mrow> is used to group a sum "1 + 2/3" as a fraction numerator (first child of <mfrac>) and to construct a fenced expression (first child of <msup>) that is raised to the power of 5. Note that <mrow> alone does not add visual fences around its grouped content, one has to explicitly specify them using the <mo> element.

Within the <mrow> elements, one can see that vertical alignment of children (according to the alphabetic baseline or the mathematical baseline) is properly performed, fences are vertically stretched and spacing around the binary + operator automatically calculated.

<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>

The <mrow> element accepts the attributes described in 2.1.3 Global Attributes. An <mrow> element with in-flow children child1, child2, โ€ฆ childN is laid out as show on Figure 10. The child boxes are put in a row one after the other with all their alphabetic baselines aligned.

Figure 10 Box model for the <mrow> element Figure 11 Symmetric and non-symmetric stretching of operators along the block axis

The algorithm for stretching operators along the block axis consists in the following steps:

  1. If there is a block stretch size constraint or an inline stretch size constraint then the element being laid out is an embellished operator. Layout the one in-flow child that is an embellished operator with the same stretch size constraint and all the other in-flow children without any stretch size constraint and stop.
  2. Otherwise, split the list of in-flow children into a first list LToStretch containing embellished operators with a stretchy property and block stretch axis ; and a second list LNotToStretch.
  3. Perform layout without any stretch size constraint on all the items of LNotToStretch. If LToStretch is empty then stop. If LNotToStretch is empty, perform layout with stretch size constraint 0 on all the items of LToStretch.
  4. Calculate the unconstrained target sizes Uascent and Udescent as respectively the maximum ink ascent and maximum ink descent of the margin boxes of in-flow children that have been laid out in the previous step.
  5. Layout or relayout all the elements of LToStretch with block stretch size constraint (Uascent, Udescent).

If the element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise, the layout below is performed.

A child box is slanted if it is not an embellished operator and has nonzero italic correction.

The min-content inline size (respectively max-content inline size) are calculated using the following algorithm:

  1. Set add-space to true if the element is a <math> or is not an embellished operator; and to false otherwise.
  2. Set inline-offset to 0.
  3. Set previous-italic-correction to 0.
  4. For each in-flow child:
    1. If the child is not slanted, then increment inline-offset by previous-italic-correction.
    2. If the child is an embellished operators and add-space is true then increment inline-offset by its lspace property.
    3. Increment inline-offset by the min-content inline size (respectively max-content inline size) of the child's margin box.
    4. If the child is slanted then set previous-italic-correction to its italic correction. Otherwise set it to 0.
    5. If the child is an embellished operators and add-space is true then increment inline-offset by its rspace property.
  5. Increment inline-offset by previous-italic-correction.
  6. Return inline-offset.

The in-flow children are laid out using the algorithm for stretching operators along the block axis.

The inline size of the content is calculated like the min-content inline size and max-content inline size of the content, using the inline size of the in-flow children's margin boxes instead.

The ink line-ascent (respectively line-ascent) of the content is the maximum of the ink line-ascents (respectively line-ascents) of all the in-flow children's margin boxes. Similarly, the ink line-descent (respectively line-descent) of the content is the maximum of the ink line-descents (respectively ink line-ascents) of all the in-flow children's margin boxes.

The in-flow children are positioned using the following algorithm:

  1. Set add-space to true if the element is a <math> or is not an embellished operator; and to false otherwise.
  2. Set inline-offset to 0.
  3. Set previous-italic-correction to 0.
  4. For each in-flow child:
    1. If the child is not slanted, then increment inline-offset by previous-italic-correction.
    2. If the child is an embellished operators and add-space is true then increment inline-offset by its lspace property.
    3. Set the inline offset of the child to inline-offset and its block offset such that the alphabetic baseline of the child is aligned with the alphabetic baseline.
    4. Increment inline-offset by the inline size of the child's margin box.
    5. If the child is slanted then set previous-italic-correction to its italic correction. Otherwise set it to 0.
    6. If the child is an embellished operators and add-space is true then increment inline-offset by its rspace property.

The italic correction of the content is set to the italic correction of the last in-flow child, which is the final value of previous-italic-correction.

The <mfrac> element is used for fractions. It can also be used to mark up fraction-like objects such as binomial coefficients and Legendre symbols.

If the <mfrac> element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise, the layout below is performed.

The <mfrac> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attribute:

The linethickness attribute indicates the fraction line thickness to use for the fraction bar. If present, it must have a value that is a valid length-percentage. If the attribute is absent or has an invalid value, FractionRuleThickness is used as the default value. A percentage is interpreted relative to that default value. A negative value is interpreted as 0.

The following example contains four fractions with different linethickness values. The bars are always aligned with the middle of plus and minus signs. The numerator and denominator are horizontally centered. The fractions that are not in displaystyle use smaller gaps and font-size.

<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>

The <mfrac> element sets displaystyle to false, or if it was already false increments scriptlevel by 1, within its children. It sets math-shift to compact within its second child. To avoid visual confusion between the fraction bar and another adjacent items (e.g. minus sign or another fraction's bar), a default 1-pixel space is added around the element. The user agent stylesheet must contain the following rules:

mfrac {
  padding-inline-start: 1px;
  padding-inline-end: 1px;
}
mfrac > * {
  math-depth: auto-add;
  math-style: compact;
}
mfrac > :nth-child(2) {
  math-shift: compact;
}

If the <mfrac> element has less or more than two in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called numerator, the second in-flow child is called denominator and the layout algorithm is explained below.

If the fraction line thickness is nonzero, the <mfrac> element is laid out as shown on Figure 12. The fraction bar must only be painted if the visibility of the <mfrac> element is visible. In that case, the fraction bar must be painted with the color of the <mfrac> element.

Figure 12 Box model for the <mfrac> element

The min-content inline size (respectively max-content inline size) of content is the maximum between the min-content inline size (respectively max-content inline size) of the numerator's margin box and the min-content inline size (respectively max-content inline size) of the denominator's margin box.

If there is an inline stretch size constraint or a block stretch size constraint then the numerator is also laid out with the same stretch size constraint otherwise it is laid out without any stretch size constraint. The denominator is always laid out without any stretch size constraint.

The inline size of the content is the maximum between the inline size of the numerator's margin box and the inline size of the denominator's margin box.

NumeratorShift is the maximum between:

DenominatorShift is the maximum between:

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The inline offset of the numerator (respectively denominator) is the half the inline size of the content โˆ’ half the inline size of the numerator's margin box (respectively denominator's margin box).

The alphabetic baseline of the numerator (respectively denominator) is shifted away from the alphabetic baseline by a distance of NumeratorShift (respectively DenominatorShift ) towards the line-over (respectively line-under).

The inline size of the fraction bar is the inline size of the content and its inline offset is 0. The center of the fraction bar is shifted away from the alphabetic baseline by a distance of AxisHeight towards the line-over. Its block size is the fraction line thickness.

If the fraction line thickness is zero, the <mfrac> element is instead laid out as shown on Figure 13.

Figure 13 Box model for the <mfrac> element without bar

The min-content inline size, max-content inline size and inline size of the content are calculated the same as in 3.3.2.1 Fraction with nonzero line thickness.

If there is an inline stretch size constraint or a block stretch size constraint then the numerator is also laid out with the same stretch size constraint and otherwise it is laid out without any stretch size constraint. The denominator is always laid out without any stretch size constraint.

If the math-style is compact then TopShift and BottomShift are respectively set to StackTopShiftUp and StackBottomShiftDown. Otherwise math-style is normal and they are respectively set to StackTopDisplayStyleShiftUp and StackBottomDisplayStyleShiftDown.

The Gap is defined to be (BottomShift โˆ’ the ink line-ascent of the denominator's margin box) + (TopShift โˆ’ the ink line-descent of the numerator's margin box). If math-style is compact then GapMin is StackGapMin otherwise math-style is normal and it is StackDisplayStyleGapMin. If ฮ” = GapMin โˆ’ Gap is positive then TopShift and BottomShift are respectively increased by ฮ”/2 and ฮ” โˆ’ ฮ”/2.

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The inline offsets of the numerator and denominator are calculated the same as in 3.3.2.1 Fraction with nonzero line thickness.

The alphabetic baseline of the numerator (respectively denominator) is shifted away from the alphabetic baseline by a distance of TopShift (respectively โˆ’ BottomShift) towards the line-over (respectively line-under).

The radical elements construct an expression with a root symbol โˆš with a line over the content. The <msqrt> element is used for square roots, while the <mroot> element is used to draw radicals with indices, e.g. a cube root.

The <msqrt> and <mroot> elements accept the attributes described in 2.1.3 Global Attributes.

The following example contains a square root written with <msqrt> and a cube root written with <mroot>. Note that <msqrt> has several children and the square root applies to all of them. <mroot> has exactly two children: it is a root of index the second child (the number 3), applied to the first child (the square root). Also note these elements only change the font-size within the <mroot> index, but it is scaled down more than within the numerator and denumerator of the fraction.

<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>

The <msqrt> and <mroot> elements sets math-shift to compact. The <mroot> element sets increments scriptlevel by 2, and sets displaystyle to "false" in all but its first child. The user agent stylesheet must contain the following rule in order to implement that behavior:

mroot > :not(:first-child) {
  math-depth: add(2);
  math-style: compact;
}
mroot, msqrt {
  math-shift: compact;
}

If the <msqrt> or <mroot> element 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.

If the <mroot> has less or more than two in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called mroot base and the second in-flow child is called mroot index and its layout algorithm is explained below.

Note

In practice, an

<mroot>

element has two children that are

in-flow

. Hence the CSS rules basically performs

scriptlevel

and

displaystyle

changes for the index.

The children of the <msqrt> element are laid out using the algorithm of the <mrow> element to produce a box that is also called the msqrt base. In particular, the algorithm for stretching operators along the block axis is used.

The radical symbol must only be painted if the visibility of the <msqrt> or <mroot> element is visible. In that case, the radical symbol must be painted with the color of that element.

The radical glyph is the glyph obtained for the character U+221A SQUARE ROOT.

The radical gap is given by RadicalVerticalGap if the math-style is compact and RadicalDisplayStyleVerticalGap if the math-style is normal.

The radical target size for the stretchy radical glyph is the sum of RadicalRuleThickness, radical gap and the ink height of the base.

The box metrics of the radical glyph and painting of the surd are given by the algorithm to shape a stretchy glyph to block dimension the target size for the radical glyph.

The <msqrt> element is laid out as shown on Figure 14.

Figure 14 Box model for the <msqrt> element

The min-content inline size (respectively max-content inline size) of the content is the sum of the preferred inline size of a glyph stretched along the block axis for the radical glyph and of the min-content inline size (respectively max-content inline size) of the msqrt base's margin box.

The inline size of the content is the sum of the advance width of the box metrics of the radical glyph and of the inline size of the msqrt base's margin's box.

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The inline size of the overbar is the inline size of the msqrt base's margin's box. The inline offsets of the msqrt base and overbar are also the same and equal to the width of the box metrics of the radical glyph.

The alphabetic baseline of the msqrt base is aligned with the alphabetic baseline. The block size of the overbar is RadicalRuleThickness. Its vertical center is shifted away from the alphabetic baseline by a distance towards the line-over equal to the line-ascent of the content, minus the RadicalExtraAscender, minus half the RadicalRuleThickness.

Finally, the painting of the surd is performed:

The <mroot> element is laid out as shown on Figure 15. The mroot index is first ignored and the mroot base and radical glyph are laid out as shown on figure Figure 14 using the same algorithm as in 3.3.3.2 Square root in order to produce a margin box B (represented in green).

Figure 15 Box model for the <mroot> element

The min-content inline size (respectively max-content inline size) of the content is the sum of max(0, RadicalKernBeforeDegree), the mroot index's min-content inline size (respectively max-content inline size) of the mroot index's margin box, max(โˆ’min-content inline size, RadicalKernAfterDegree) (respectively max(โˆ’max-content inline size, RadicalKernAfterDegree)) and of the min-content inline size (respectively max-content inline size) of B.

Using the same clamping, AdjustedRadicalKernBeforeDegree and AdjustedRadicalKernAfterDegree are respectively defined as max(0, RadicalKernBeforeDegree) and is max(โˆ’inline size of the index's margin box, RadicalKernAfterDegree).

The inline size of the content is the sum of AdjustedRadicalKernBeforeDegree, the inline size of the index's margin box, AdjustedRadicalKernAfterDegree and of the inline size of B.

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The inline offset of the index is AdjustedRadicalKernBeforeDegree. The inline-offset of the mroot base is the same + the inline size of the index's margin box.

The alphabetic baseline of B is aligned with the alphabetic baseline. The alphabetic baseline of the index is shifted away from the line-under edge by a distance of RadicalDegreeBottomRaisePercent ร— the block size of B + the line-descent of the index's margin box.

Note

In general, the kerning before the root index is positive while the kerning after it is negative, which means that the root element will have some inline-start space and that the root index will overlap the surd.

Historically, the <mstyle> element was introduced to make style changes that affect the rendering of its contents.

The <mstyle> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mrow> element.

Note

<mstyle> is implemented for compatibility with full MathML. Authors whose only target is MathML Core are encouraged to use CSS for styling.

In the following example, <mstyle> is used to set the scriptlevel and displaystyle. Observe this is respectively affecting the font-size and placement of subscripts of their descendants. In MathML Core, one could just have used <mrow> elements instead.

<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>

The <merror> element displays its contents as an โ€error messageโ€. The intent of this element is to provide a standard way for programs that generate MathML from other input to report syntax errors in their input.

In the following example, <merror> is used to indicate a parsing error for some LaTeX-like input:

<math>
  <mfrac>
    <merror>
      <mtext>Syntax error: \frac{1}</mtext>
    </merror>
    <mn>3</mn>
  </mfrac>
</math>

The <merror> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mrow> element. The user agent stylesheet must contain the following rule in order to visually highlight the error message:

merror {
 border: 1px solid red;
 background-color: lightYellow;
}

The <mpadded> element renders the same as its in-flow child content, but with the size and relative positioning point of its content modified according to <mpadded>โ€™s attributes.

The <mpadded> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attributes:

The mpadded@width, mpadded@height, mpadded@depth, mpadded@lspace and mpadded@voffset if present, must have a value that is a valid length-percentage.

In the following example, <mpadded> is used to tweak spacing around a fraction (a blue background is used to visualize it). Without attributes, it behaves like an <mrow> but the attributes allow to specify the size of the box (width, height, depth) and position of the fraction within that box (lspace and 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>

In-flow children of the <mpadded> element are laid out using the algorithm of the <mrow> element to produce the mpadded inner box for the content with parameters called inner inline size, inner line-ascent and inner line-descent. The requested <mpadded> parameters are determined as follows:

Note

Negative voffset values are not clamped to 0.

If the <mpadded> element does not have its computed display property equal to block math or inline math then it is laid out according to the CSS specification where the corresponding value is described. Otherwise, it is laid out as shown on Figure 16.

Figure 16 Box model for the <mpadded> element

The min-content inline size (respectively max-content inline size) of the content is the requested width calculated in 3.3.6.1 Inner box and requested parameters but using the min-content inline size (respectively max-content inline size) of the mpadded inner box instead of the "inner inline size".

The inline size of the content is the requested width calculated in 3.3.6.1 Inner box and requested parameters.

The line-ascent of the content is the requested height. The line-descent of the content is the requested depth.

The mpadded inner box is placed so that its alphabetic baseline is shifted away from the alphabetic baseline by the requested voffset towards the line-over.

Historically, the <mphantom> element was introduced to render its content invisibly, but with the same metrics size and other dimensions, including alphabetic baseline position that its contents would have if they were rendered normally.

In the following example, <mphantom> is used to ensure alignment of corresponding parts of the numerator and denominator of a fraction:

<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>

The <mphantom> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mrow> element. The user agent stylesheet must contain the following rule in order to hide the content:

mphantom {
  visibility: hidden;
}

Note

<mphantom> is implemented for compatibility with full MathML. Authors whose only target is MathML Core are encouraged to use CSS for styling.

The elements described in this section position one or more scripts around a base. Attaching various kinds of scripts and embellishments to symbols is a very common notational device in mathematics. For purely visual layout, a single general-purpose element could suffice for positioning scripts and embellishments in any of the traditional script locations around a given base. However, in order to capture the abstract structure of common notation better, MathML provides several more specialized scripting elements.

In addition to sub/superscript elements, MathML has overscript and underscript elements that place scripts above and below the base. These elements can be used to place limits on large operators, or for placing accents and lines above or below the base.

The <msub>, <msup> and <msubsup> elements are used to attach subscript and superscript to a MathML expression. They accept the attributes described in 2.1.3 Global Attributes.

The following example, shows basic use of subscripts and superscripts. The font-size is automatically scaled down within the scripts.

<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>

If the <msub>, <msup> or <msubsup> 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.

If the <msub> element has less or more than two in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called the msub base, the second in-flow child is called the msub subscript and the layout algorithm is explained in 3.4.1.2 Base with subscript.

If the <msup> element has less or more than two in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called the msup base, the second in-flow child is called the msup superscript and the layout algorithm is explained in 3.4.1.3 Base with superscript.

If the <msubsup> element has less or more than three in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called the msubsup base, the second in-flow child is called the msubsup subscript, its third in-flow child is called the msubsup superscript and the layout algorithm is explained in 3.4.1.4 Base with subscript and superscript.

The <msub> element is laid out as shown on Figure 17. LargeOpItalicCorrection is the italic correction of the msub base if it is an embellished operator with the largeop property and 0 otherwise.

Figure 17 Box model for the <msub> element

The min-content inline size (respectively max-content inline size) of the content is the min-content inline size (respectively max-content inline size) inline size of the msub base's margin box โˆ’ LargeOpItalicCorrection + min-content inline size (respectively max-content inline size) of the msub subscript's margin box + SpaceAfterScript.

If there is an inline stretch size constraint or a block stretch size constraint then the msub base is also laid out with the same stretch size contraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.

The inline size of the content is the inline size of the msub base's margin box โˆ’ LargeOpItalicCorrection + the inline size of the msub subscript's margin box + SpaceAfterScript.

SubShift is the maximum between:

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The inline offset of the msub base is 0 and the inline offset of the msub subscript is the inline size of the msub base's margin box โˆ’ LargeOpItalicCorrection.

The msub base is placed so that its alphabetic baseline matches the alphabetic baseline. The msub subscript is placed so that its alphabetic baseline is shifted away from the alphabetic baseline by SubShift towards the line-under.

The <msup> element is laid out as shown on Figure 18. ItalicCorrection is the italic correction of the msup base if it is not an embellished operator with the largeop property and 0 otherwise.

Figure 18 Box model for the <msup> element

The min-content inline size (respectively max-content inline size) of the content is the min-content inline size (respectively max-content inline size) of the msup base's margin box + ItalicCorrection + the min-content inline size (respectively max-content inline size) of the msup superscript's margin box + SpaceAfterScript.

If there is an inline stretch size constraint or a block stretch size constraint then the msup base is also laid out with the same stretch size contraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.

The inline size of the content is the inline size of the msup base's margin box + ItalicCorrection + the inline size of the msup superscript's margin box + SpaceAfterScript.

SuperShift is the maximum between:

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The inline offset of the msup base is 0 and the inline offset of msup superscript is the inline size of the msup base's margin box + ItalicCorrection.

The msup base is placed so that its alphabetic baseline matches the alphabetic baseline. The msup superscript is placed so that its alphabetic baseline is shifted away from the alphabetic baseline by SuperShift towards the line-over.

The <msubsup> element is laid out as shown on Figure 18. LargeOpItalicCorrection and SubShift are set as in 3.4.1.2 Base with subscript. ItalicCorrection and SuperShift are set as in 3.4.1.3 Base with superscript.

Figure 19 Box model for the <msubsup> element

The min-content inline size (respectively max-content inline size and inline size) of the content is the maximum between the min-content inline size (respectively max-content inline size and inline size) of the content calculated in 3.4.1.2 Base with subscript and 3.4.1.3 Base with superscript.

If there is an inline stretch size constraint or a block stretch size constraint then the msubsup base is also laid out with the same stretch size contraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.

If there is an inline stretch size constraint or a block stretch size constraint then the msubsup base is also laid out with the same stretch size contraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.

SubSuperGap is the gap between the two scripts along the block axis and is defined by (SubShift โˆ’ the ink line-ascent of the msubsup subscript's margin box) + (SuperShift โˆ’ the ink line-descent of the msubsup superscript's margin box). If SubSuperGap is not at least SubSuperscriptGapMin then the following steps are performed to ensure that the condition holds:

  1. Let ฮ” be SuperscriptBottomMaxWithSubscript โˆ’ (SuperShift โˆ’ the ink line-descent of the msubsup superscript's margin box). If ฮ” > 0 then set ฮ” to the minimum between ฮ” set SubSuperscriptGapMin โˆ’ SubSuperGap and increase SuperShift (and so SubSuperGap too) by ฮ”.
  2. Let ฮ” be SubSuperscriptGapMin โˆ’ SubSuperGap. If ฮ” > 0 then increase SubscriptShift (and so SubSuperGap too) by ฮ”.

The ink line-ascent (respectively line-ascent, ink line-descent, line-descent) of the content is set to the maximum of the ink line-ascent (respectively line-ascent, ink line-descent, line-descent) of the content calculated in in 3.4.1.2 Base with subscript and 3.4.1.3 Base with superscript but using the adjusted values SubShift and SuperShift above.

The inline offset and block offset of the msubsup base and scripts are performed the same as described in 3.4.1.2 Base with subscript and 3.4.1.3 Base with superscript.

The <munder>, <mover> and <munderover> elements are used to attach accents or limits placed under or over a MathML expression.

The <munderover> element accepts the attribute described in 2.1.3 Global Attributes as well as the following attributes:

Similarly, the <mover> element (respectively <munder> element) accepts the attribute described in 2.1.3 Global Attributes as well as the accent attribute (respectively the accentunder attribute).

accent, accentunder, attributes, if present, must have values that are booleans. If these attributes are absent or invalid, they are treated as equal to false. User agents must implement them as described in 3.4.4 Displaystyle, scriptlevel and math-shift in scripts.

The following example, shows basic use of under and over scripts. 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.

If the <munder> element has less or more than two in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called the munder base and the second in-flow child is called the munder underscript.

If the <mover> element has less or more than two in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called the mover base and the second in-flow child is called the mover overscript.

If the <munderover> element has less or more than three in-flow children, its layout algorithm is the same as the <mrow> element. Otherwise, the first in-flow child is called the munderover base, the second in-flow child is called the munderover underscript and its third in-flow child is called the munderover overscript.

If the <munder>, <mover> or <munderover> elements have a computed math-style property equal to compact and their base is an embellished operator with the movablelimits property, then their layout algorithms are respectively the same as the ones described for <msub>, <msup> and <msubsup> in 3.4.1.2 Base with subscript, 3.4.1.3 Base with superscript and 3.4.1.4 Base with subscript and superscript.

Otherwise, the <mover>, <mover> and <munderover> layout algorithms are respectively described in 3.4.2.3 Base with underscript, 3.4.2.4 Base with overscript and 3.4.2.5 Base with underscript and overscript

The algorithm for stretching operators along the inline axis is as follows.

  1. If there is an inline stretch size constraint or block stretch size constraint then the element being laid out is an embellished operator. Layout the base with the same stretch size constraint.
  2. Split the list of in-flow children that have not been laid out yet into a first list LToStretch containing embellished operators with a stretchy property and inline stretch axis ; and a second list LNotToStretch.
  3. Perform layout without any stretch size constraint on all the items of LNotToStretch. If LToStretch is empty then stop. If LNotToStretch is empty, perform layout with stretch size constraint 0 on all the items of LToStretch.
  4. Calculate the target size T to the maximum inline size of the margin boxes of child boxes that have been laid out in the previous step.
  5. Layout or relayout all the elements of LToStretch with inline stretch size constraint T.

The <munder> element is laid out as shown on Figure 20. LargeOpItalicCorrection is the italic correction of the munder base if it is an embellished operator with the largeop property and 0 otherwise.

Figure 20 Box model for the <munder> element

The min-content inline size (respectively max-content inline size) of the content are calculated like the inline size of the content below but replacing the inline sizes of the munder base's margin box and munder underscript's margin box with the min-content inline size (respectively max-content inline size) of the munder base's margin box and munder underscript's margin box.

The in-flow children are laid out using the algorithm for stretching operators along the inline axis.

The inline size of the content is calculated by determining the absolute difference between:

If m is the minimum calculated in the second item above then the inline offset of the munder base is โˆ’m โˆ’ half the inline size of the base's margin box. The inline offset of the munder underscript is โˆ’m โˆ’ half the inline size of the munder underscript's margin box โˆ’ half LargeOpItalicCorrection.

Parameters UnderShift and UnderExtraDescender are determined by considering three cases in the following order:

  1. The munder base is an embellished operator with the largeop property. UnderShift is the maximum of

    UnderExtraDescender is 0.

  2. The munder base is an embellished operator with the stretchy property and stretch axis inline. UnderShift is the maximum of:

    UnderExtraDescender is 0.
  3. Otherwise, UnderShift is equal to UnderbarVerticalGap if the accentunder attribute is not an ASCII case-insensitive match to true and to zero otherwise. UnderExtraAscender is UnderbarExtraDescender.

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The alphabetic baseline of the munder base is aligned with the alphabetic baseline. The alphabetic baseline of the munder underscript is shifted away from the alphabetic baseline and towards the line-under by a distance equal to the ink line-descent of the munder base's margin box + UnderShift.

The <mover> element is laid out as shown on Figure 21. LargeOpItalicCorrection is the italic correction of the mover base if it is an embellished operator with the largeop property and 0 otherwise.

Figure 21 Box model for the <mover> element

The min-content inline size (respectively max-content inline size) of the content are calculated like the inline size of the content below but replacing the inline sizes of the mover base's margin box and mover overscript's margin box with the min-content inline size (respectively max-content inline size) of the mover base's margin box and mover overscript's margin box.

The in-flow children are laid out using the algorithm for stretching operators along the inline axis.

The TopAccentAttachment is the top accent attachment of the mover overscript or half the inline size of the mover overscript's margin box if it is undefined.

The inline size of the content is calculated by applying the algorithm for stretching operators along the inline axis for layout and determining the absolute difference between:

If m is the minimum calculated in the second item above then the inline offset of the mover base is โˆ’m โˆ’ half the inline size of the base's margin. The inline offset of the mover overscript is โˆ’m โˆ’ half the inline size of the mover overscript's margin box + half LargeOpItalicCorrection.

Parameters OverShift and OverExtraDescender are determined by considering three cases in the following order:

  1. The mover base is an embellished operator with the largeop property. OverShift is the maximum of

    OverExtraAscender is 0.

  2. The mover base is an embellished operator with the stretchy property and stretch axis inline. OverShift is the maximum of:

    OverExtraDescender is 0.
  3. Otherwise, OverShift is equal to

    1. OverbarVerticalGap if the accent attribute is not an ASCII case-insensitive match to true.
    2. Or AccentBaseHeight minus the line-ascent of the mover base's margin box if this difference is nonnegative.
    3. Or 0 otherwise.

    OverExtraAscender is OverbarExtraAscender.

Note

For accent overscripts and bases with

line-ascents

that are at most

AccentBaseHeight

, the rule from [

OPEN-FONT-FORMAT

] [

TEXBOOK

] is actually to align the

alphabetic baselines

of the overscripts and of the bases. This assumes that accent glyphs are designed in such a way that their ink bottoms are more or less

AccentBaseHeight

above their

alphabetic baselines

. Hence, the previous rule will guarantee that all the overscript bottoms are aligned while still avoiding collision with the bases. However, MathML can have arbitrary accent overscripts a more general and simpler rule is provided above: Ensure that the bottom of overscript is at least

AccentBaseHeight

above the

alphabetic baseline

of the base.

The line-ascent of the content is the maximum between:

The line-descent of the content is the maximum between:

The alphabetic baseline of the mover base is aligned with the alphabetic baseline. The alphabetic baseline of the mover overscript is shifted away from the alphabetic baseline and towards the line-over by a distance equal to the ink line-ascent of the base + OverShift.

The general layout of <munderover> is shown on Figure 22. The LargeOpItalicCorrection, UnderShift, UnderExtraDescender, OverShift, OverExtraDescender parameters are calculated the same as in 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript.

Figure 22 Box model for the <munderover> element

The min-content inline size, max-content inline size and inline size of the content are calculated as an absolute difference between a maximum inline offset and minimum inline offset. These extrema are calculated by taking the extremum value of the corresponding extrema calculated in 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript. The inline offsets of the munderover base, munderover underscript and munderover overscript are calculated as in these sections but using the new minimum m (minimum of the corresponding minima).

Like in these sections, the in-flow children are laid out using the algorithm for stretching operators along the inline axis.

The line-ascent and line-descent of the content are also calculated by taking the extremum value of the extrema calculated in 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript.

Finally, the alphabetic baselines of the munderover base, munderover underscript and munderover overscript are calculated as in sections 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript.

Note

When the underscript (respectively overscript) is an empty box, the base and overscript (respectively underscript) are laid out similarly to 3.4.2.4 Base with overscript (respectively 3.4.2.3 Base with underscript) but the position of the empty underscript (respectively overscript) may add extra space. In order to keep the algorithm simple, no attempt is made to handle empty scripts in a special way.

Presubscripts and tensor notations are represented the <mmultiscripts> with hints given by the <mprescripts> (to distinguish postscripts and prescripts) and <none> elements (to indicate empty scripts). These element accept the attributes described in 2.1.3 Global Attributes.

The following example, shows basic use of prescripts and postscripts, involving <none> and <mprescripts>. The font-size is automatically scaled down within the scripts.

<math>
  <mmultiscripts>
    <mn>1</mn>
    <mn>2</mn>
    <mn>3</mn>
    <none/>
    <mn>5</mn>
    <mprescripts/>
    <mn>6</mn>
    <none/>
    <mn>8</mn>
    <mn>9</mn>
  </mmultiscripts>
</math>

If the <mmultiscripts>, <mprescripts> or <none> 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.

The empty <mprescripts> and <none> elements are laid out as an <mrow> element.

A valid <mmultiscripts> element contains the following in-flow children:

If an <mmultiscripts> element is not valid then it is laid out the same as the <mrow> element. Otherwise the layout algorithm is explained below.

Note

The <none> element is preserved for backward compatibility reasons but is actually not taken into account in the layout algorithm.

The <mmultiscripts> element is laid out as shown on Figure 23. For each subscript/superscript pair of mmultiscripts postscripts, the ItalicCorrection LargeOpItalicCorrection are defined as in 3.4.1.2 Base with subscript and 3.4.1.3 Base with superscript.

Figure 23 Box model for the <mmultiscripts> element

The min-content inline size (respectively max-content inline size) of the content is calculated the same as the inline size of the content below, but replacing "inline size" with "min-content inline size" (respectively "max-content inline size") for the mmultiscripts base's margin box and scripts's margin boxes.

If there is an inline stretch size constraint or a block stretch size constraint the mmultiscripts base is also laid out with the same stretch size constraint. Otherwise it is laid out without any stretch size constraint. The other elements are always laid out without any stretch size constraint.

The inline size of the content is calculated with the following algorithm:

  1. Set inline-offset to 0.
  2. For each subscript/superscript pair of mmultiscripts prescripts, increment inline-offset by SpaceAfterScript + the maximum of

  3. Increment inline-offset by the inline size of the mmultiscripts base's margin box and set inline-size to inline-offset.
  4. For each subscript/superscript pair of mmultiscripts postscripts, modify inline-size to be at least:

    Increment inline-offset to the maximum of:

    Increment inline-offset by SpaceAfterScript.

  5. Return inline-size

SubShift (respectively SuperShift) is calculated by taking the maximum of all subshifts (respectively supershifts) of each subscript/superscript pair as described in 3.4.1.4 Base with subscript and superscript.

The line-ascent of the content is calculated by taking the maximum of all the line-ascent of each subscript/superscript pair as described in 3.4.1.4 Base with subscript and superscript but using the SubShift and SuperShift values calculated above.

The line-descent of the content is calculated by taking the maximum of all the line-descent of each subscript/superscript pair as described in 3.4.1.4 Base with subscript and superscript but using the SubShift and SuperShift values calculated above.

Finally, the placement of the in-flow children is performed using the following algorithm:

  1. Set inline-offset to 0.
  2. For each subscript/superscript pair of mmultiscripts prescripts:

    1. Increment inline-offset by SpaceAfterScript.
    2. Set pair-inline-size to the maximum of
    3. Place the subscript at inline-start position inline-offset + pair-inline-size โˆ’ the inline size of the subscript's margin box.
    4. Place the superscript at inline-start position inline-offset + pair-inline-size โˆ’ the inline size of the superscript's margin box.
    5. Place the subscript (respectively superscript) so its alphabetic baseline is shifted away from the alphabetic baseline by SubShift (respectively SuperShift) towards the line-under (respectively line-over).
    6. Increment inline-offset by pair-inline-size.
  3. Place the mmultiscripts base and <mprescripts> boxes at inline offsets inline-offset and with their alphabetic baselines aligned with the alphabetic baseline.
  4. For each subscript/superscript pair of mmultiscripts postscripts:

    1. Set pair-inline-size to the maximum of
    2. Place the subscript at inline-start position inline-offset โˆ’ LargeOpItalicCorrection.
    3. Place the superscript at inline-start position inline-offset + ItalicCorrection.
    4. Place the subscript (superscript) so its alphabetic baseline is shifted away from the alphabetic baseline by SubShift (respectively SuperShift) towards the line-under (respectively line-over).
    5. Increment inline-offset by pair-inline-size
    6. Increment inline-offset by SpaceAfterScript.

Note

An <mmultiscripts> with only one subscript/superscript pair of mmultiscripts postscripts is laid out the same as a <msubsup> with the same in-flow children. However, as noticed for <msubsup>, if additionally the subscript (respectively superscript) is an empty box then it is not necessarily laid out the same as an <msub> (respectively <msup>) element. In order to keep the algorithm simple, no attempt is made to handle empty or <none> scripts in a special way.

For all scripted elements, the rule of thumb is to set displaystyle to false and to increment scriptlevel in all child elements but the first one. However, an <mover> (respectively <munderover>) element with an accent attribute that is an ASCII case-insensitive match to true does not increment scriptlevel within its second child (respectively third child). Similarly, <mover> and <munderover> elements with an accentunder attribute that is an ASCII case-insensitive match to true do not increment scriptlevel within their second child.

<mmultiscripts> sets math-shift to compact on its children at even position if they are before an <mprescripts>, and on those at odd position if they are after an <mprescripts>. The <msub> and <msubsup> elements set math-shift to compact on their second child. An <mover> and <munderover> elements with an accent attribute that is an ASCII case-insensitive match to true also sets math-shift to compact within their first child.

The A. User Agent Stylesheet must contain the following style in order to implement this behavior:

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;
}

Note

In practice, all the children of the MathML elements described in this section are

in-flow

and the

<mprescripts>

is empty. Hence the CSS rules essentially performs automatic

displaystyle

and

scriptlevel

changes for the scripts ; and

math-shift

changes for subscripts and sometimes the base.

Matrices, arrays and other table-like mathematical notation are marked up using <mtable> <mtr> <mtd> elements. These elements are similar to the <table>, <tr> and <td> elements of [HTML].

The following example, how tabular layout allows to write a matrix. Note that it is vertically centered with the fraction bar and the middle of the equal sign.

<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>

The <mtable> is laid out as an inline-table and sets displaystyle to false. The user agent stylesheet must contain the following rules in order to implement these properties:

mtable {
  display: inline-table;
  math-style: compact;
}

The mtable element is as a CSS table and the min-content inline size, max-content inline size, inline size, block size, first baseline set and last baseline set sets are determined accordingly. The center of the table is aligned with the math axis.

The <mtr> is laid out as table-row. The user agent stylesheet must contain the following rules in order to implement that behavior:

mtr {
  display: table-row;
}

The <mtr> accepts the attributes described in 2.1.3 Global Attributes.

The <mtd> is laid out as a table-cell with content centered in the cell and a default padding. The user agent stylesheet must contain the following rules:

mtd {
  display: table-cell;
  text-align: center;
  padding: 0.5ex 0.4em;
}

The <mtd> accepts the attributes described in 2.1.3 Global Attributes as well as the following attributes:

The columnspan (respectively rowspan) attribute has the same syntax and semantic as the colspan (respectively rowspan) attribute on the <td> element from [HTML].

Note

The name for the column spanning attribute is

columnspan

as in [

MathML3

] and not

colspan

as in [

HTML

].

Historically, the <maction> element provides a mechanism for binding actions to expressions.

The <maction> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attributes:

This specification does not define any observable behavior that is specific to the actiontype and selection attributes.

The following example, shows the "toggle" action type from [MathML3] where the renderer alternately displays the selected subexpression, starting from "one third" and cycling through them when there is a click on the selected subexpression ("one quarter", "one half", "one third", etc). This is not part of MathML Core but can be implemented using JavaScript and CSS polyfills. The default behavior is just to render the first child.

<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>

The layout algorithm of the <maction> element the same as the <mrow> element. The user agent stylesheet must contain the following rules in order to hide all but its first child element, which is the default behavior for the legacy actiontype values:

maction > :not(:first-child) {
  display: none;
}

Note

<maction>

is implemented for compatibility with full MathML. Authors whose only target is MathML Core are encouraged to use other HTML, CSS and JavaScript mechanisms to implement custom actions. They may rely on maction attributes defined in [

MathML3

].

The <semantics> element is the container element that associates annotations with a MathML expression. Typically, the <semantics> element has as its first child element a MathML expression to be annotated while subsequent child elements represent text annotations within an <annotation> element, or more complex markup annotations within an <annotation-xml> element.

The following example, shows how the fraction "one half" can be annotated with a textual annotation (LaTeX) or an XML annotation (content MathML). These annotations are not intended to be rendered by the user agent.

<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>
  </semantics>
</math>

The <semantics> element accepts the attributes described in 2.1.3 Global Attributes. Its layout algorithm is the same as the <mrow> element. The user agent stylesheet must contain the following rule in order to only render the annotated MathML expression:

semantics > :not(:first-child) {
  display: none;
}

The <annotation-xml> and <annotation> element accepts the attributes described in 2.1.3 Global Attributes as well as the following attribute:

This specification does not define any observable behavior that is specific to the encoding attribute.

The layout algorithm of the <annotation-xml> and <annotation> element is the same as the <mtext> element.

Note

Authors can use the

encoding

attribute to distinguish annotations for

HTML integration point

, clipboard copy, alternative rendering, etc. In particular, CSS can be used to render alternative annotations e.g.


semantics > :first-child { display: none; }
 
semantics > annotation { display: inline; }

semantics > annotation-xml[encoding="text/html" i],
semantics > annotation-xml[encoding="application/xhtml+xml" i] {
  display: inline-block;
}

The display property from CSS Display Module Level 3 is extended with a new inner display type:

<display> = <display-inside-old> | math

For elements that are not MathML elements, if the specified value of display is inline math or block math then the computed value is block flow and inline flow respectively. For the <mtable> element the computed value is block table and inline table respectively. For the <mtr> element, the computed value is table-row. For the <mtd> element, the computed value is table-cell.

MathML elements with a computed display value equal to block math or inline math control box generation and layout according to their tag name, as described in the relevant sections. Unknown MathML elements behave the same as the <mrow> element.

Note

The

display: block math

and

display: inline math

values provide a default layout for MathML elements while at the same time allowing to override it with either native display values or

custom values

. This allows authors or polyfills to define their own custom notations to tweak or extend MathML Core.

In the following example, the default layout of the MathML <mrow> element is overriden to render its content as a grid.

<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>

The text-transform property from CSS Text Module Level 3 is extended with new values:

<text-transform> = <text-transform-old> | math-auto | math-bold | math-italic | math-bold-italic | math-double-struck | math-bold-fraktur | math-script | math-bold-script | math-fraktur | math-sans-serif | math-bold-sans-serif | math-sans-serif-italic | math-sans-serif-bold-italic | math-monospace | math-initial | math-tailed | math-looped | math-stretched

If the specified value of text-transform is math-auto and the inherited value is not none then the computed value is the inherited value.

On text nodes containing a unique character, math-auto has the same effect as math-italic, otherwise it has no effects.

For the math-bold, math-italic, math-bold-italic, math-double-struck, math-bold-fraktur, math-script, math-bold-script, math-fraktur, math-sans-serif, math-bold-sans-serif, math-sans-serif-italic, math-sans-serif-bold-italic, math-monospace, math-initial, math-tailed, math-looped and math-stretched values, the transformed text is obtained by performing conversion of each character according to the corresponding bold, italic, bold-italic, double-struck, bold-fraktur, script, bold-script, fraktur, sans-serif, bold-sans-serif, sans-serif-italic, sans-serif-bold-italic, monospace, initial, tailed, looped, stretched tables.

User agents may decide to rely on italic, bold and bold-italic font-level properties when available fonts lack the proper glyphs to perform math-auto, math-italic, math-bold, math-bold-italic character-level transforms.

The following example shows a mathematical formula where "exp" is rendered with normal variant, "A" with bold variant, "gl" with fraktur variant, "n" using italic variant and and "R" using double-struck variant.

Values other than math-auto are intended to infer specific context-dependent mathematical meaning. In the previous example, one can guess that the author decided to use the convention of bold variables for matrices, fraktur variables for Lie algebras and double-struck variables for set of numbers. Although the corresponding Unicode characters could have been used directly in these cases, it may be helpful for authoring tools or polyfills to support these transformations via the text-transform property.

A common style convention is to render identifiers with multiple letters (e.g. the function name "exp") with normal style and identifiers with a single letter (e.g. the variable "n") with italic style. The math-auto property is intended to implement this default behavior, which can be overriden by authors if necessary. Note that mathematical fonts are designed with special kind of italic glyphs located at the Unicode positions of C.13 italic mappings, which differ from the shaping obtained via italic font style. Compare this mathematical formula rendered with the Latin Modern Math font using font-style: italic (left) and text-transform: math-auto (right):

Name: math-style Value: normal | compact Initial: normal Applies to: All elements Inherited: yes Percentages: n/a Media: visual Computed value: specified keyword Canonical order: n/a Animation type: not animatable

When math-style is compact, the math layout on descendants try to minimize the logical height by applying the following rules:

The following example shows a mathematical formula renderered with its <math> root styled with math-style: compact (left) and math-style: normal (right). In the former case, the font-size is automatically scaled down within the fractions and the summation limits are rendered as subscript and superscript of the โˆ‘. In the latter case, the โˆ‘ is drawn bigger than normal text and vertical gaps within fractions (even relative to current font-size) is larger.

These two math-style values typically correspond to mathematical expressions in inline and display mode respectively [TeXBook]. A mathematical formula in display mode may automatically switch to inline mode within some subformulas (e.g. scripts, matrix elements, numerators and denominators, etc) and it is sometimes desirable to override this default behavior. The math-style property allows to easily implement these features for MathML in the User Agent Stylesheet and with the displaystyle attribute ; and also exposes them to polyfills.

Name: math-shift Value: normal | compact Initial: normal Applies to: All elements Inherited: yes Percentages: n/a Media: visual Computed value: specified keyword Canonical order: n/a Animation type: not animatable

If the value of math-shift is compact, the math layout on descendants will use the superscriptShiftUpCramped parameter to place superscript. If the value of math-shift is normal, the math will use the superscriptShiftUp parameter instead.

This property is used for positioning superscript during the layout of MathML scripted elements. See ยง 3.4.1 Subscripts and Superscripts <msub>, <msup>, <msubsup> 3.4.3 Prescripts and Tensor Indices <mmultiscripts> and 3.4.2 Underscripts and Overscripts <munder>, <mover>, <munderover>.

In the following example, the two "x squared" are rendered with compact math-style and the same font-size. However, the one within the square root is rendered with compact math-shift while the other one is rendered with normal math-shift, leading to subtle different shift of the superscript "2".

Per [TeXBook], a mathematical formula uses normal style by default but may switch to compact style ("cramped" in TeX's terminology) within some subformulas (e.g. radicals, fraction denominators, etc). The math-shift property allows to easily implement these rules for MathML in the User Agent Stylesheet. Page authors or developers of polyfills may also benefit from having access to this property to tweak or refine the default implementation.

A new math-depth property is introduced to describe a notion of "depth" for each element of a mathematical formula, with respect to the top-level container of that formula. Concretely, this is used to determine the computed value of the font-size property when its specified value is math.

Name: math-depth Value: auto-add | add(<integer>) | <integer> Initial: 0 Applies to: All elements Inherited: yes Percentages: n/a Media: visual Computed value: an integer, see below Canonical order: n/a Animation type: not animatable

The computed value of the math-depth value is determined as follows:

If the specified value font-size is math then the computed value of font-size is obtained by multiplying the inherited value of font-size by a nonzero scale factor calculated by the following procedure:

  1. Let A be the inherited math-depth value, B the computed math-depth value, C be 0.71 and S be 1.0
  2. Let E be B - A > 0.
  3. If the inherited first available font has an OpenType MATH table:
  4. Multiply S by CE
  5. Return S if InvertScaleFactor is false and 1/S otherwise.

The following example shows a mathematical formula with normal math-style rendered with the Latin Modern Math font. When entering subexpressions like scripts or fractions, the font-size is automatically scaled down according to the values of MATH table contained in that font. Note that font-size is scaled down when entering the superscripts but even faster when entering a root's prescript. Also it is scaled down when entering the inner fraction but not when entering the outer one, due to automatic change of math-style in fractions.

These rules from [TeXBook] are subtle and it's worth having a separate math-depth mechanism to express and handle them. They can be implemented in MathML using the User Agent Stylesheet. Page authors or developers of polyfills may also benefit from having access to this property to tweak or refine the default implementation. In particular, the scriptlevel attribute from MathML provides a way to perform math-depth changes.

This chapter describes features provided by MATH table of an OpenType font [OPEN-FONT-FORMAT]. Throughout this chapter, a C-like notation Table.Subtable1[index].Subtable2.Parameter is used to denote OpenType parameters. Such parameters may not be available (e.g. if the font lack one of the subtable, has an invalid offset, etc) and so fallback options are provided.

Note

It is strongly encouraged to render MathML with a math font with the proper OpenType features. There is no guarantee that the fallback options provided will provide good enough rendering.

OpenType values expressed in design units (perhaps indirectly via a MathValueRecord entry) are scaled to appropriate values for layout purpose, taking into account head.unitsPerEm, CSS font-size or zoom level.

These are global layout constants for the first available font:

Default fallback constant
0
Default rule thickness
post.underlineThickness or Default fallback constant if the constant is not available.
scriptPercentScaleDown
MATH.MathConstants.scriptPercentScaleDown / 100 or 0.71 if MATH.MathConstants.scriptPercentScaleDown is null or not available.
scriptScriptPercentScaleDown
MATH.MathConstants.scriptScriptPercentScaleDown / 100 or 0.5041 if MATH.MathConstants.scriptScriptPercentScaleDown is null or not available.
displayOperatorMinHeight
MATH.MathConstants.displayOperatorMinHeight or Default fallback constant if the constant is not available.
axisHeight
MATH.MathConstants.axisHeight or half OS/2.sxHeight if the constant is not available.
accentBaseHeight
MATH.MathConstants.accentBaseHeight or OS/2.sxHeight if the constant is not available.
subscriptShiftDown
MATH.MathConstants.subscriptShiftDown or OS/2.ySubscriptYOffset if the constant is not available.
subscriptTopMax
MATH.MathConstants.subscriptTopMax or โ…˜ ร— OS/2.sxHeight if the constant is not available.
subscriptBaselineDropMin
MATH.MathConstants.subscriptBaselineDropMin or Default fallback constant if the constant is not available.
superscriptShiftUp
MATH.MathConstants.superscriptShiftUp or OS/2.ySuperscriptYOffset if the constant is not available.
superscriptShiftUpCramped
MATH.MathConstants.superscriptShiftUpCramped or Default fallback constant if the constant is not available.
superscriptBottomMin
MATH.MathConstants.superscriptBottomMin or ยผ ร— OS/2.sxHeight if the constant is not available.
superscriptBaselineDropMax
MATH.MathConstants.superscriptBaselineDropMax or Default fallback constant if the constant is not available.
subSuperscriptGapMin
MATH.MathConstants.subSuperscriptGapMin or 4 ร— default rule thickness if the constant is not available.
superscriptBottomMaxWithSubscript
MATH.MathConstants.superscriptBottomMaxWithSubscript or โ…˜ ร— OS/2.sxHeight if the constant is not available.
spaceAfterScript
MATH.MathConstants.spaceAfterScript or 1/24em if the constant is not available.
upperLimitGapMin
MATH.MathConstants.upperLimitGapMin or Default fallback constant if the constant is not available.
upperLimitBaselineRiseMin
MATH.MathConstants.upperLimitBaselineRiseMin or Default fallback constant if the constant is not available.
lowerLimitGapMin
MATH.MathConstants.lowerLimitGapMin or Default fallback constant if the constant is not available.
lowerLimitBaselineDropMin
MATH.MathConstants.lowerLimitBaselineDropMin or Default fallback constant if the constant is not available.
stackTopShiftUp
MATH.MathConstants.stackTopShiftUp or Default fallback constant if the constant is not available.
stackTopDisplayStyleShiftUp
MATH.MathConstants.stackTopDisplayStyleShiftUp or Default fallback constant if the constant is not available.
stackBottomShiftDown
MATH.MathConstants.stackBottomShiftDown or Default fallback constant if the constant is not available.
stackBottomDisplayStyleShiftDown
MATH.MathConstants.stackBottomDisplayStyleShiftDown or Default fallback constant if the constant is not available.
stackGapMin
MATH.MathConstants.stackGapMin or 3 ร— default rule thickness if the constant is not available.
stackDisplayStyleGapMin
MATH.MathConstants.stackDisplayStyleGapMin or 7 ร— default rule thickness if the constant is not available.
stretchStackTopShiftUp
MATH.MathConstants.stretchStackTopShiftUp or Default fallback constant if the constant is not available.
stretchStackBottomShiftDown
MATH.MathConstants.stretchStackBottomShiftDown or Default fallback constant if the constant is not available.
stretchStackGapAboveMin
MATH.MathConstants.stretchStackGapAboveMin or Default fallback constant if the constant is not available.
stretchStackGapBelowMin
MATH.MathConstants.stretchStackGapBelowMin or Default fallback constant if the constant is not available.
fractionNumeratorShiftUp
MATH.MathConstants.fractionNumeratorShiftUp or Default fallback constant if the constant is not available.
fractionNumeratorDisplayStyleShiftUp
MATH.MathConstants.fractionNumeratorDisplayStyleShiftUp or Default fallback constant if the constant is not available.
fractionDenominatorShiftDown
MATH.MathConstants.fractionDenominatorShiftDown or Default fallback constant if the constant is not available.
fractionDenominatorDisplayStyleShiftDown
MATH.MathConstants.fractionDenominatorDisplayStyleShiftDown or Default fallback constant if the constant is not available.
fractionNumeratorGapMin
MATH.MathConstants.fractionNumeratorGapMin or default rule thickness if the constant is not available.
fractionNumDisplayStyleGapMin
MATH.MathConstants.fractionNumDisplayStyleGapMin or 3 ร— default rule thickness if the constant is not available.
fractionRuleThickness
MATH.MathConstants.fractionRuleThickness or default rule thickness if the constant is not available.
fractionDenominatorGapMin
MATH.MathConstants.fractionDenominatorGapMin or default rule thickness if the constant is not available.
fractionDenomDisplayStyleGapMin
MATH.MathConstants.fractionDenomDisplayStyleGapMin or 3 ร— default rule thickness if the constant is not available.
overbarVerticalGap
MATH.MathConstants.overbarVerticalGap or 3 ร— default rule thickness if the constant is not available.
MATH.MathConstants.overbarExtraAscender or default rule thickness if the constant is not available.
underbarVerticalGap
MATH.MathConstants.underbarVerticalGap or 3 ร— default rule thickness if the constant is not available.
MATH.MathConstants.underbarExtraDescender or default rule thickness if the constant is not available.
radicalVerticalGap
MATH.MathConstants.radicalVerticalGap or 1ยผ ร— default rule thickness if the constant is not available.
radicalDisplayStyleVerticalGap
MATH.MathConstants.radicalDisplayStyleVerticalGap or default rule thickness + ยผ OS/2.sxHeight if the constant is not available.
radicalRuleThickness
MATH.MathConstants.radicalRuleThickness or default rule thickness if the constant is not available.
MATH.MathConstants.radicalExtraAscender or default rule thickness if the constant is not available.
radicalKernBeforeDegree
MATH.MathConstants.radicalKernBeforeDegree or 5/18em if the constant is not available.
radicalKernAfterDegree
MATH.MathConstants.radicalKernAfterDegree or โˆ’10/18em if the constant is not available.
radicalDegreeBottomRaisePercent
MATH.MathConstants.radicalDegreeBottomRaisePercent / 100.0 or 0.6 if the constant is not available.

Note

MathTopAccentAttachment is at risk.

These are per-glyph tables for the first available font:

MathItalicsCorrectionInfo
The subtable MATH.MathGlyphInfo.MathItalicsCorrectionInfo of italics correction values. Use the corresponding value in MATH.MathGlyphInfo.MathItalicsCorrectionInfo.italicsCorrection if there is one for the requested glyph or or 0 otherwise.
MathTopAccentAttachment
The subtable MATH.MathGlyphInfo.MathTopAccentAttachment of positioning top math accents along the inline axis. Use the corresponding value in MATH.MathGlyphInfo.MathTopAccentAttachment.topAccentAttachment if there is one for the requested glyph or or half the advance width of the glyph otherwise.

This section describes how to handle stretchy glyphs of arbitrary size using the MATH.MathVariants table.

This section is based on [OPEN-TYPE-MATH-IN-HARFBUZZ]. For convenience, the following definitions are used:

User agents must treat the GlyphAssembly as invalid if the following conditions are not satisfied:

In this specification, a glyph assembly is built by repeating each extender r times and using the same overlap value o between each glyph. The number of glyphs in such an assembly is AssemblyGlyphCount(r) = NNonExt + r NExt while the stretch size is AssembySize(o, r) = SNonExt + r SExt โˆ’ o (AssemblyGlyphCount(r) โˆ’ 1).

rmin is the minimal number of repetitions needed to obtain an assembly of size at least T i.e. the minimal r such that AssembySize(omin, r)) โ‰ฅ T. It is defined as the maximum between 0 and the ceiling of ((T โˆ’ SNonExt + omin (NNonExt โˆ’ 1)) / SExt,NonOverlapping).

omax,theorical = (AssembySize(0, rmin) โˆ’ T) / (AssemblyGlyphCount(rmin) โˆ’ 1) is the theorical overlap obtained by splitting evenly the extra size of an assembly built with null overlap.

omax is the maximum overlap possible to build an assembly of size at least T by repeating each extender rmin times. If AssemblyGlyphCount(rmin) โ‰ค 1, then the actual overlap value is irrelevant. Otherwise, omax is defined to be the minimum of:

The glyph assembly stretch size for a target size T is AssembySize(omax, rmin).

The glyph assembly width, glyph assembly ascent and glyph assembly descent are defined as follows:

The glyph assembly height is the sum of the glyph assembly ascent and glyph assembly descent.

Note

The horizontal (respectively vertical) metrics for a vertical (respectively horizontal) glyph assembly do not depend on the target size T.

The shaping of the glyph assembly is performed with the following algorithm:

  1. Calculate rmin and omax.
  2. Set (x, y) to (0, 0), RepetitionCounter to 0 and PartIndex to -1.
  3. Repeat the following steps:
    1. If RepetitionCounter is 0, then
      1. Increment PartIndex.
      2. If PartIndex is GlyphAssembly.partCount then stop.
      3. Otherwise, set Part to GlyphAssembly.partRecords[PartIndex]. Set RepetitionCounter to rmin if Part is an extender and to 1 otherwise.
      • If the glyph assembly is horizontal then draw the glyph of id Part.glyphID so that its (left, baseline) coordinates are at position (x, y). Set x to x + Part.fullAdvance โˆ’ omax
      • Otherwise (if the glyph assembly is vertical), then draw the glyph of id Part.glyphID so that its (left, bottom) coordinates are at position (x, y). Set y to y โˆ’ Part.fullAdvance + omax
    2. Decrement RepetitionCounter.

The preferred inline size of a glyph stretched along the block axis is calculated using the following algorithm:

  1. Set S to the glyph's advance width.
  2. If there is a MathGlyphConstruction table in the MathVariants.vertGlyphConstructionOffsets table for the given glyph:
    1. For each MathGlyphVariantRecord in MathGlyphConstruction.mathGlyphVariantRecord, ensure that S is at least the advance width of the glyph of id MathGlyphVariantRecord.variantGlyph.
    2. If there is valid GlyphAssembly subtable, then ensure that S is at least the glyph assembly width.
  3. Return S.

The algorithm to shape a stretchy glyph to inline (respectively block) dimension T is the following:

  1. If there is not any MathGlyphConstruction table in the MathVariants.horizGlyphConstructionOffsets table (respectively MathVariants.vertGlyphConstructionOffsets table) for the given glyph the exit with failure.
  2. If the glyph's advance width (respectively height) is at least T then use normal shaping and bounding box for that glyph, the MathItalicsCorrectionInfo for that glyph as italic correction and exit with success.
  3. Browse the list of MathGlyphVariantRecord in MathGlyphConstruction.mathGlyphVariantRecord. If one MathGlyphVariantRecord.advanceMeasurement is at least T then use normal shaping and bounding box for MathGlyphVariantRecord.variantGlyph, the MathItalicsCorrectionInfo for that glyph as italic correction and exit with success.
  4. If there is valid GlyphAssembly subtable then use the bounding box given by glyph assembly width, glyph assembly height, glyph assembly ascent, glyph assembly descent, the value GlyphAssembly.italicsCorrection as italic correction, perform shaping of the glyph assembly and exit with success.
  5. If none of the stretch option above allowed to cover the target size T, then choose last one that was tried and exit with success.

Note

If a font does not provide tables for stretchy constructions, User Agents may use their own internal constructions as a fallback such that the one suggested in

B.4 Unicode-based Glyph Assemblies

.

@namespace url(http://www.w3.org/1998/Math/MathML);


* {
    font-size: math;
    display: block math;
}


math {
  direction: ltr;
  writing-mode:  horizontal-tb;
  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-style: compact;
  math-shift: normal;
  math-level: 0;
}
math[display="block" i] {
  display: block math;
  math-style: normal;
}
math[display="inline" i] {
  display: inline math;
  math-style: compact;
}


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;
  text-align: center;
  padding: 0.5ex 0.4em;
}


mfrac {
  padding-inline-start: 1px;
  padding-inline-end: 1px;
}
mfrac > * {
  math-depth: auto-add;
  math-style: compact;
}
mfrac > :nth-child(2) {
  math-shift: compact;
}


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;
}

The algorithm to set the properties of an operator from its category is as follows:

The algorithm to determine the category of an operator (Content, Form) is as folllows:

  1. If Content as an UTF-16 string does not have length or 1 or 2 then exit with category Default.
  2. If Content is a single character in the range U+0320โ€“U+03FF then exit with category Default. Otherwise, if it has two characters:
  3. If Form is infix and Content corresponds to one of U+007C VERTICAL LINE or U+223C TILDE OPERATOR then exit with category ForceDefault. If the category of (Content, Form) provided by table Figure 25 has N/A encoding in table Figure 26 (namely if it has category L or M), then exit with that category. Otherwise,
Special Table Entries Operators_2_ascii_chars 18 entries (2-characters ASCII strings): '!!', '!=', '&&', '**', '*=', '++', '+=', '--', '-=', '->', '//', '/=', ':=', '<=', '<>', '==', '>=', '||', Operators_fence 61 entries (16 Unicode ranges): [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 entries: U+002C, U+003B, U+2063, Figure 24 Special tables for the operator dictionary.
Total size: 82 entries, 90 bytes.
(assuming characters are UTF-16 and 1-byte range lengths)
(Content, Form) keys Category 313 entries (35 Unicode ranges) in infix form: [U+2190โ€“U+2195], [U+219Aโ€“U+21AE], [U+21B0โ€“U+21B5], {U+21B9}, [U+21BCโ€“U+21D5], [U+21DAโ€“U+21F0], [U+21F3โ€“U+21FF], {U+2794}, {U+2799}, [U+279Bโ€“U+27A1], [U+27A5โ€“U+27A6], [U+27A8โ€“U+27AF], {U+27B1}, {U+27B3}, {U+27B5}, {U+27B8}, [U+27BAโ€“U+27BE], [U+27F0โ€“U+27F1], [U+27F4โ€“U+27FF], [U+2900โ€“U+2920], [U+2934โ€“U+2937], [U+2942โ€“U+2975], [U+297Cโ€“U+297F], [U+2B04โ€“U+2B07], [U+2B0Cโ€“U+2B11], [U+2B30โ€“U+2B3E], [U+2B40โ€“U+2B4C], [U+2B60โ€“U+2B65], [U+2B6Aโ€“U+2B6D], [U+2B70โ€“U+2B73], [U+2B7Aโ€“U+2B7D], [U+2B80โ€“U+2B87], {U+2B95}, [U+2BA0โ€“U+2BAF], {U+2BB8}, A 109 entries (32 Unicode ranges) in infix form: {U+002B}, {U+002D}, {U+002F}, {U+00B1}, {U+00F7}, {U+0322}, {U+2044}, [U+2212โ€“U+2216], [U+2227โ€“U+222A], {U+2236}, {U+2238}, [U+228Cโ€“U+228E], [U+2293โ€“U+2296], {U+2298}, [U+229Dโ€“U+229F], [U+22BBโ€“U+22BD], [U+22CEโ€“U+22CF], [U+22D2โ€“U+22D3], [U+2795โ€“U+2797], {U+29B8}, {U+29BC}, [U+29C4โ€“U+29C5], [U+29F5โ€“U+29FB], [U+2A1Fโ€“U+2A2E], [U+2A38โ€“U+2A3A], {U+2A3E}, [U+2A40โ€“U+2A4F], [U+2A51โ€“U+2A63], {U+2ADB}, {U+2AF6}, {U+2AFB}, {U+2AFD}, B 64 entries (33 Unicode ranges) in infix form: {U+0025}, {U+002A}, {U+002E}, [U+003Fโ€“U+0040], {U+005E}, {U+00B7}, {U+00D7}, {U+0323}, {U+032E}, {U+2022}, {U+2043}, [U+2217โ€“U+2219], {U+2240}, {U+2297}, [U+2299โ€“U+229B], [U+22A0โ€“U+22A1], {U+22BA}, [U+22C4โ€“U+22C7], [U+22C9โ€“U+22CC], [U+2305โ€“U+2306], {U+27CB}, {U+27CD}, [U+29C6โ€“U+29C8], [U+29D4โ€“U+29D7], {U+29E2}, [U+2A1Dโ€“U+2A1E], [U+2A2Fโ€“U+2A37], [U+2A3Bโ€“U+2A3D], {U+2A3F}, {U+2A50}, [U+2A64โ€“U+2A65], [U+2ADCโ€“U+2ADD], {U+2AFE}, C 52 entries (22 Unicode ranges) in prefix form: {U+0021}, {U+002B}, {U+002D}, {U+00AC}, {U+00B1}, {U+0331}, {U+2018}, {U+201C}, [U+2200โ€“U+2201], [U+2203โ€“U+2204], {U+2207}, [U+2212โ€“U+2213], [U+221Fโ€“U+2222], [U+2234โ€“U+2235], {U+223C}, [U+22BEโ€“U+22BF], {U+2310}, {U+2319}, [U+2795โ€“U+2796], {U+27C0}, [U+299Bโ€“U+29AF], [U+2AECโ€“U+2AED], D 40 entries (21 Unicode ranges) in postfix form: [U+0021โ€“U+0022], [U+0025โ€“U+0027], {U+0060}, {U+00A8}, {U+00B0}, [U+00B2โ€“U+00B4], [U+00B8โ€“U+00B9], [U+02CAโ€“U+02CB], [U+02D8โ€“U+02DA], {U+02DD}, {U+0311}, {U+0320}, {U+0325}, {U+0327}, {U+0331}, [U+2019โ€“U+201B], [U+201Dโ€“U+201F], [U+2032โ€“U+2037], {U+2057}, [U+20DBโ€“U+20DC], {U+23CD}, E 30 entries in prefix form: U+0028, U+005B, U+007B, U+007C, U+2016, U+2308, U+230A, U+2329, U+2772, U+27E6, U+27E8, U+27EA, U+27EC, U+27EE, U+2980, U+2983, U+2985, U+2987, U+2989, U+298B, U+298D, U+298F, U+2991, U+2993, U+2995, U+2997, U+2999, U+29D8, U+29DA, U+29FC, F 30 entries in postfix form: U+0029, U+005D, U+007C, U+007D, U+2016, U+2309, U+230B, U+232A, U+2773, U+27E7, U+27E9, U+27EB, U+27ED, U+27EF, U+2980, U+2984, U+2986, U+2988, U+298A, U+298C, U+298E, U+2990, U+2992, U+2994, U+2996, U+2998, U+2999, U+29D9, U+29DB, U+29FD, G 27 entries (2 Unicode ranges) in prefix form: [U+222Bโ€“U+2233], [U+2A0Bโ€“U+2A1C], H 22 entries (13 Unicode ranges) in postfix form: [U+005Eโ€“U+005F], {U+007E}, {U+00AF}, [U+02C6โ€“U+02C7], {U+02C9}, {U+02CD}, {U+02DC}, {U+02F7}, {U+0302}, {U+203E}, [U+2322โ€“U+2323], [U+23B4โ€“U+23B5], [U+23DCโ€“U+23E1], I 22 entries (6 Unicode ranges) in prefix form: [U+220Fโ€“U+2211], [U+22C0โ€“U+22C3], [U+2A00โ€“U+2A0A], [U+2A1Dโ€“U+2A1E], {U+2AFC}, {U+2AFF}, J 7 entries (4 Unicode ranges) in infix form: {U+005C}, {U+005F}, [U+2061โ€“U+2064], {U+2206}, K 6 entries (3 Unicode ranges) in prefix form: [U+2145โ€“U+2146], {U+2202}, [U+221Aโ€“U+221C], L 3 entries in infix form: U+002C, U+003A, U+003B, M Figure 25 Mapping from operator (Content, Form) to a category.
Total size: 725 entries, 639 bytes.
(assuming characters are UTF-16 and 1-byte range lengths)
Category Form Encoding rspace lspace properties Default N/A N/A 0.2777777777777778em 0.2777777777777778em N/A A infix 0x0 0.2777777777777778em 0.2777777777777778em stretchy B infix 0x4 0.2222222222222222em 0.2222222222222222em N/A C infix 0x8 0.16666666666666666em 0.16666666666666666em N/A D prefix 0x1 0 0 N/A E postfix 0x2 0 0 N/A F prefix 0x5 0 0 stretchy symmetric G postfix 0x6 0 0 stretchy symmetric H prefix 0x9 0.16666666666666666em 0.16666666666666666em symmetric largeop I postfix 0xA 0 0 stretchy J prefix 0xD 0.16666666666666666em 0.16666666666666666em symmetric largeop movablelimits K infix 0xC 0 0 N/A L prefix N/A 0.16666666666666666em 0 N/A M infix N/A 0 0.16666666666666666em N/A Figure 26 Operators values for each category.
The third column provides a 4bits encoding of the categories
where the 2 least significant bits encodes the form infix (0), prefix (1) and postfix (2).
716 entries (236 ranges of length at most 16): {0x8025}, {0x802A}, {0x402B}, {0x402D}, {0x802E}, {0x402F}, [0x803Fโ€“0x8040], {0xC05C}, {0x805E}, {0xC05F}, {0x40B1}, {0x80B7}, {0x80D7}, {0x40F7}, {0x4322}, {0x8323}, {0x832E}, {0x8422}, {0x8443}, {0x4444}, [0xC461โ€“0xC464], [0x0590โ€“0x0595], [0x059Aโ€“0x05A9], [0x05AAโ€“0x05AE], [0x05B0โ€“0x05B5], {0x05B9}, [0x05BCโ€“0x05CB], [0x05CCโ€“0x05D5], [0x05DAโ€“0x05E9], [0x05EAโ€“0x05F0], [0x05F3โ€“0x05FF], {0xC606}, [0x4612โ€“0x4616], [0x8617โ€“0x8619], [0x4627โ€“0x462A], {0x4636}, {0x4638}, {0x8640}, [0x468Cโ€“0x468E], [0x4693โ€“0x4696], {0x8697}, {0x4698}, [0x8699โ€“0x869B], [0x469Dโ€“0x469F], [0x86A0โ€“0x86A1], {0x86BA}, [0x46BBโ€“0x46BD], [0x86C4โ€“0x86C7], [0x86C9โ€“0x86CC], [0x46CEโ€“0x46CF], [0x46D2โ€“0x46D3], [0x8705โ€“0x8706], {0x0B94}, [0x4B95โ€“0x4B97], {0x0B99}, [0x0B9Bโ€“0x0BA1], [0x0BA5โ€“0x0BA6], [0x0BA8โ€“0x0BAF], {0x0BB1}, {0x0BB3}, {0x0BB5}, {0x0BB8}, [0x0BBAโ€“0x0BBE], {0x8BCB}, {0x8BCD}, [0x0BF0โ€“0x0BF1], [0x0BF4โ€“0x0BFF], [0x0D00โ€“0x0D0F], [0x0D10โ€“0x0D1F], {0x0D20}, [0x0D34โ€“0x0D37], [0x0D42โ€“0x0D51], [0x0D52โ€“0x0D61], [0x0D62โ€“0x0D71], [0x0D72โ€“0x0D75], [0x0D7Cโ€“0x0D7F], {0x4DB8}, {0x4DBC}, [0x4DC4โ€“0x4DC5], [0x8DC6โ€“0x8DC8], [0x8DD4โ€“0x8DD7], {0x8DE2}, [0x4DF5โ€“0x4DFB], [0x8E1Dโ€“0x8E1E], [0x4E1Fโ€“0x4E2E], [0x8E2Fโ€“0x8E37], [0x4E38โ€“0x4E3A], [0x8E3Bโ€“0x8E3D], {0x4E3E}, {0x8E3F}, [0x4E40โ€“0x4E4F], {0x8E50}, [0x4E51โ€“0x4E60], [0x4E61โ€“0x4E63], [0x8E64โ€“0x8E65], {0x4EDB}, [0x8EDCโ€“0x8EDD], {0x4EF6}, {0x4EFB}, {0x4EFD}, {0x8EFE}, [0x0F04โ€“0x0F07], [0x0F0Cโ€“0x0F11], [0x0F30โ€“0x0F3E], [0x0F40โ€“0x0F4C], [0x0F60โ€“0x0F65], [0x0F6Aโ€“0x0F6D], [0x0F70โ€“0x0F73], [0x0F7Aโ€“0x0F7D], [0x0F80โ€“0x0F87], {0x0F95}, [0x0FA0โ€“0x0FAF], {0x0FB8}, {0x1021}, {0x5028}, {0x102B}, {0x102D}, {0x505B}, [0x507Bโ€“0x507C], {0x10AC}, {0x10B1}, {0x1331}, {0x5416}, {0x1418}, {0x141C}, [0x1600โ€“0x1601], [0x1603โ€“0x1604], {0x1607}, [0xD60Fโ€“0xD611], [0x1612โ€“0x1613], [0x161Fโ€“0x1622], [0x962Bโ€“0x9633], [0x1634โ€“0x1635], {0x163C}, [0x16BEโ€“0x16BF], [0xD6C0โ€“0xD6C3], {0x5708}, {0x570A}, {0x1710}, {0x1719}, {0x5729}, {0x5B72}, [0x1B95โ€“0x1B96], {0x1BC0}, {0x5BE6}, {0x5BE8}, {0x5BEA}, {0x5BEC}, {0x5BEE}, {0x5D80}, {0x5D83}, {0x5D85}, {0x5D87}, {0x5D89}, {0x5D8B}, {0x5D8D}, {0x5D8F}, {0x5D91}, {0x5D93}, {0x5D95}, {0x5D97}, {0x5D99}, [0x1D9Bโ€“0x1DAA], [0x1DABโ€“0x1DAF], {0x5DD8}, {0x5DDA}, {0x5DFC}, [0xDE00โ€“0xDE0A], [0x9E0Bโ€“0x9E1A], [0x9E1Bโ€“0x9E1C], [0xDE1Dโ€“0xDE1E], [0x1EECโ€“0x1EED], {0xDEFC}, {0xDEFF}, [0x2021โ€“0x2022], [0x2025โ€“0x2027], {0x6029}, {0x605D}, [0xA05Eโ€“0xA05F], {0x2060}, [0x607Cโ€“0x607D], {0xA07E}, {0x20A8}, {0xA0AF}, {0x20B0}, [0x20B2โ€“0x20B4], [0x20B8โ€“0x20B9], [0xA2C6โ€“0xA2C7], {0xA2C9}, [0x22CAโ€“0x22CB], {0xA2CD}, [0x22D8โ€“0x22DA], {0xA2DC}, {0x22DD}, {0xA2F7}, {0xA302}, {0x2311}, {0x2320}, {0x2325}, {0x2327}, {0x2331}, {0x6416}, [0x2419โ€“0x241B], [0x241Dโ€“0x241F], [0x2432โ€“0x2437], {0xA43E}, {0x2457}, [0x24DBโ€“0x24DC], {0x6709}, {0x670B}, [0xA722โ€“0xA723], {0x672A}, [0xA7B4โ€“0xA7B5], {0x27CD}, [0xA7DCโ€“0xA7E1], {0x6B73}, {0x6BE7}, {0x6BE9}, {0x6BEB}, {0x6BED}, {0x6BEF}, {0x6D80}, {0x6D84}, {0x6D86}, {0x6D88}, {0x6D8A}, {0x6D8C}, {0x6D8E}, {0x6D90}, {0x6D92}, {0x6D94}, {0x6D96}, [0x6D98โ€“0x6D99], {0x6DD9}, {0x6DDB}, {0x6DFD}, Figure 27 List of entries for the largest categories, sorted by key.
Key is Entry % 0x4000, category encoding is Entry / 0x1000.
Total size: 716 entries, 590 bytes
(assuming 4 bits for range lengths).

Note

The intrinsic stretch axis a Unicode character c is inline if it belongs to the list below. Otherwise, the intrinsic stretch axis of c is block.

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, Figure 28 Sorted list of unicode code points corresponding to operators with inline stretch axis.
Total size: 246 entries, 492 bytes (assuming 16bits for all but the non-BMP entries)

Note

The intrinsic stretch axis could be included as a boolean property of the operator dictionary. But since it does not depend on the form and since very few operators can stretch along the

inline axis

, it is better implemented as a separate sorted array. Each entry can be encoded with 16 bytes if U+1EEF0 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL and U+1EEF1 ARABIC MATHEMATICAL OPERATOR HAH WITH DAL are tested separately.

This section is non-normative.

The following dictionary provides a human-readable version of B.1 Operator Dictionary. Please refer to 3.2.4.2 Dictionary-based attributes for explanation about how to use this dictionary and how to determine the values Content and Form indexing together the dictionary.

The values for rspace and lspace are indicated in the corresponding columns. The values of stretchy, symmetric, largeop, movablelimits, are true if they are listed in the "properties" column.

Content Stretch Axis form rspace lspace properties < 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+002F 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+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 Figure 29 Mapping from operator (Content, Form) to properties.
Total size: 1177 entries, โ‰ฅ 3679 bytes
(assuming 'Content' uses at least one UTF-16 character, 'Stretch Axis' 1 bit, 'Form' 2 bits,the different combinations of 'rspace' and 'space' at least 3 bits, and the different combinations of properties 3 bits).

This section is non-normative.

The following table gives mappings between spacing and non spacing characters when used in MathML accent constructs.

Non Combining Style Combining U+002B plus sign below U+031F combining plus sign below U+002D hyphen-minus above U+0305 combining overline U+002D hyphen-minus below U+0320 combining minus sign below U+002D hyphen-minus below U+0332 combining low line U+002E full stop above U+0307 combining dot above U+002E full stop below U+0323 combining dot below U+005E circumflex accent above U+0302 combining circumflex accent U+005E circumflex accent below U+032D combining circumflex accent below U+005F low line below U+0332 combining low line U+0060 grave accent above U+0300 combining grave accent U+0060 grave accent below U+0316 combining grave accent below U+007E tilde above U+0303 combining tilde U+007E tilde below U+0330 combining tilde below U+00A8 diaeresis above U+0308 combining diaeresis U+00A8 diaeresis below U+0324 combining diaeresis below U+00AF macron above U+0304 combining macron U+00AF macron above U+0305 combining overline U+00B4 acute accent above U+0301 combining acute accent U+00B4 acute accent below U+0317 combining acute accent below U+00B8 cedilla below U+0327 combining cedilla U+02C6 modifier letter circumflex accent above U+0302 combining circumflex accent U+02C7 caron above U+030C combining caron U+02C7 caron below U+032C combining caron below U+02D8 breve above U+0306 combining breve U+02D8 breve below U+032E combining breve below U+02D9 dot above above U+0307 combining dot above U+02D9 dot above below U+0323 combining dot below U+02DB ogonek below U+0328 combining ogonek U+02DC small tilde above U+0303 combining tilde U+02DC small tilde below U+0330 combining tilde below U+02DD double acute accent above U+030B combining double acute accent U+203E overline above U+0305 combining overline U+2190 leftwards arrow above U+20D6 U+2192 rightwards arrow above U+20D7 combining right arrow above U+2192 rightwards arrow above U+20EF combining right arrow below U+2212 minus sign above U+0305 combining overline U+2212 minus sign below U+0332 combining low line U+27F6 long rightwards arrow above U+20D7 combining right arrow above U+27F6 long rightwards arrow above U+20EF combining right arrow below Combining Style Non Combining U+0300 combining grave accent above U+0060 grave accent U+0301 combining acute accent above U+00B4 acute accent U+0302 combining circumflex accent above U+005E circumflex accent U+0302 combining circumflex accent above U+02C6 modifier letter circumflex accent U+0303 combining tilde above U+007E tilde U+0303 combining tilde above U+02DC small tilde U+0304 combining macron above U+00AF macron U+0305 combining overline above U+002D hyphen-minus U+0305 combining overline above U+00AF macron U+0305 combining overline above U+203E overline U+0305 combining overline above U+2212 minus sign U+0306 combining breve above U+02D8 breve U+0307 combining dot above above U+02E U+0307 combining dot above above U+002E full stop U+0307 combining dot above above U+02D9 dot above U+0308 combining diaeresis above U+00A8 diaeresis U+030B combining double acute accent above U+02DD double acute accent U+030C combining caron above U+02C7 caron U+0312 combining turned comma above above U+0B8 U+0316 combining grave accent below below U+0060 grave accent U+0317 combining acute accent below below U+00B4 acute accent U+031F combining plus sign below below U+002B plus sign U+0320 combining minus sign below below U+002D hyphen-minus U+0323 combining dot below below U+002E full stop U+0323 combining dot below below U+02D9 dot above U+0324 combining diaeresis below below U+00A8 diaeresis U+0327 combining cedilla below U+00B8 cedilla U+0328 combining ogonek below U+02DB ogonek U+032C combining caron below below U+02C7 caron U+032D combining circumflex accent below below U+005E circumflex accent U+032E combining breve below below U+02D8 breve U+0330 combining tilde below below U+007E tilde U+0330 combining tilde below below U+02DC small tilde U+0332 combining low line below U+002D hyphen-minus U+0332 combining low line below U+005F low line U+0332 combining low line below U+2212 minus sign U+0338 combining long solidus overlay over U+02F U+20D7 combining right arrow above above U+2192 rightwards arrow U+20D7 combining right arrow above above U+27F6 long rightwards arrow U+20EF combining right arrow below above U+2192 rightwards arrow U+20EF combining right arrow below above U+27F6 long rightwards arrow

This section is non-normative.

The following table provide fallback that user agents may use for stretching a given base character when the font does not provide a MATH.MathVariants table. The algorithms of 5.3 Size variants for operators (MathVariants) works the same except with some adjustments:

Base Character Glyph Construction Extender Character Bottom/Left Character Middle Character Top/Right Character U+0028 ( Vertical U+239C โŽœ U+239D โŽ N/A U+239B โŽ› U+0029 ) Vertical U+239F โŽŸ U+23A0 โŽ  N/A U+239E โŽž U+003D = Horizontal U+003D = U+003D = N/A N/A U+005B [ Vertical U+23A2 โŽข U+23A3 โŽฃ N/A U+23A1 โŽก U+005D ] Vertical U+23A5 โŽฅ U+23A6 โŽฆ N/A U+23A4 โŽค U+005F _ Horizontal U+005F _ U+005F _ N/A N/A U+007B { Vertical U+23AA โŽช U+23A9 โŽฉ U+23A8 โŽจ U+23A7 โŽง U+007C | Vertical U+007C | U+007C | N/A N/A U+007D } Vertical U+23AA โŽช U+23AD โŽญ U+23AC โŽฌ U+23AB โŽซ U+00AF ยฏ Horizontal U+00AF ยฏ U+00AF ยฏ N/A N/A U+2016 โ€– Vertical U+2016 โ€– U+2016 โ€– N/A N/A U+203E โ€พ Horizontal U+203E โ€พ U+203E โ€พ N/A N/A U+2190 โ† Horizontal U+23AF โŽฏ U+2190 โ† N/A U+23AF โŽฏ U+2191 โ†‘ Vertical U+23D0 โ U+23D0 โ N/A U+2191 โ†‘ U+2192 โ†’ Horizontal U+23AF โŽฏ U+23AF โŽฏ N/A U+2192 โ†’ U+2193 โ†“ Vertical U+23D0 โ U+2193 โ†“ N/A U+23D0 โ U+2194 โ†” Horizontal U+23AF โŽฏ U+2190 โ† N/A U+2192 โ†’ U+2195 โ†• Vertical U+23D0 โ U+2193 โ†“ N/A U+2191 โ†‘ U+21A4 โ†ค Horizontal U+23AF โŽฏ U+2190 โ† N/A U+22A3 โŠฃ U+21A6 โ†ฆ Horizontal U+23AF โŽฏ U+22A2 โŠข N/A U+2192 โ†’ U+21BC โ†ผ Horizontal U+23AF โŽฏ U+21BC โ†ผ N/A U+23AF โŽฏ U+21BD โ†ฝ Horizontal U+23AF โŽฏ U+21BD โ†ฝ N/A U+23AF โŽฏ U+21C0 โ‡€ Horizontal U+23AF โŽฏ U+23AF โŽฏ N/A U+21C0 โ‡€ U+21C1 โ‡ Horizontal U+23AF โŽฏ U+23AF โŽฏ N/A U+21C1 โ‡ U+2223 โˆฃ Vertical U+2223 โˆฃ U+2223 โˆฃ N/A N/A U+2225 โˆฅ Vertical U+2225 โˆฅ U+2225 โˆฅ N/A N/A U+2308 โŒˆ Vertical U+23A2 โŽข U+23A2 โŽข N/A U+23A1 โŽก U+2309 โŒ‰ Vertical U+23A5 โŽฅ U+23A5 โŽฅ N/A U+23A4 โŽค U+230A โŒŠ Vertical U+23A2 โŽข U+23A3 โŽฃ N/A N/A U+230B โŒ‹ Vertical U+23A5 โŽฅ U+23A6 โŽฆ N/A N/A U+23B0 โŽฐ Vertical U+23AA โŽช U+23AD โŽญ N/A U+23A7 โŽง U+23B1 โŽฑ Vertical U+23AA โŽช U+23A9 โŽฉ N/A U+23AB โŽซ U+27F5 โŸต Horizontal U+23AF โŽฏ U+2190 โ† N/A U+23AF โŽฏ U+27F6 โŸถ Horizontal U+23AF โŽฏ U+23AF โŽฏ N/A U+2192 โ†’ U+27F7 โŸท Horizontal U+23AF โŽฏ U+2190 โ† N/A U+2192 โ†’ U+294E โฅŽ Horizontal U+23AF โŽฏ U+21BC โ†ผ N/A U+21C0 โ‡€ U+2950 โฅ Horizontal U+23AF โŽฏ U+21BD โ†ฝ N/A U+21C1 โ‡ U+295A โฅš Horizontal U+23AF โŽฏ U+21BC โ†ผ N/A U+22A3 โŠฃ U+295B โฅ› Horizontal U+23AF โŽฏ U+22A2 โŠข N/A U+21C0 โ‡€ U+295E โฅž Horizontal U+23AF โŽฏ U+21BD โ†ฝ N/A U+22A3 โŠฃ U+295F โฅŸ Horizontal U+23AF โŽฏ U+22A2 โŠข N/A U+21C1 โ‡ Original bold-script ฮ”code point A U+0041 ๐“ U+1D4D0 1D48F B U+0042 ๐“‘ U+1D4D1 1D48F C U+0043 ๐“’ U+1D4D2 1D48F D U+0044 ๐““ U+1D4D3 1D48F E U+0045 ๐“” U+1D4D4 1D48F F U+0046 ๐“• U+1D4D5 1D48F G U+0047 ๐“– U+1D4D6 1D48F H U+0048 ๐“— U+1D4D7 1D48F I U+0049 ๐“˜ U+1D4D8 1D48F J U+004A ๐“™ U+1D4D9 1D48F K U+004B ๐“š U+1D4DA 1D48F L U+004C ๐“› U+1D4DB 1D48F M U+004D ๐“œ U+1D4DC 1D48F N U+004E ๐“ U+1D4DD 1D48F O U+004F ๐“ž U+1D4DE 1D48F P U+0050 ๐“Ÿ U+1D4DF 1D48F Q U+0051 ๐“  U+1D4E0 1D48F R U+0052 ๐“ก U+1D4E1 1D48F S U+0053 ๐“ข U+1D4E2 1D48F T U+0054 ๐“ฃ U+1D4E3 1D48F U U+0055 ๐“ค U+1D4E4 1D48F V U+0056 ๐“ฅ U+1D4E5 1D48F W U+0057 ๐“ฆ U+1D4E6 1D48F X U+0058 ๐“ง U+1D4E7 1D48F Y U+0059 ๐“จ U+1D4E8 1D48F Z U+005A ๐“ฉ U+1D4E9 1D48F a U+0061 ๐“ช U+1D4EA 1D489 b U+0062 ๐“ซ U+1D4EB 1D489 c U+0063 ๐“ฌ U+1D4EC 1D489 d U+0064 ๐“ญ U+1D4ED 1D489 e U+0065 ๐“ฎ U+1D4EE 1D489 f U+0066 ๐“ฏ U+1D4EF 1D489 g U+0067 ๐“ฐ U+1D4F0 1D489 h U+0068 ๐“ฑ U+1D4F1 1D489 i U+0069 ๐“ฒ U+1D4F2 1D489 j U+006A ๐“ณ U+1D4F3 1D489 k U+006B ๐“ด U+1D4F4 1D489 l U+006C ๐“ต U+1D4F5 1D489 m U+006D ๐“ถ U+1D4F6 1D489 n U+006E ๐“ท U+1D4F7 1D489 o U+006F ๐“ธ U+1D4F8 1D489 p U+0070 ๐“น U+1D4F9 1D489 q U+0071 ๐“บ U+1D4FA 1D489 r U+0072 ๐“ป U+1D4FB 1D489 s U+0073 ๐“ผ U+1D4FC 1D489 t U+0074 ๐“ฝ U+1D4FD 1D489 u U+0075 ๐“พ U+1D4FE 1D489 v U+0076 ๐“ฟ U+1D4FF 1D489 w U+0077 ๐”€ U+1D500 1D489 x U+0078 ๐” U+1D501 1D489 y U+0079 ๐”‚ U+1D502 1D489 z U+007A ๐”ƒ U+1D503 1D489 Original bold-italic ฮ”code point A U+0041 ๐‘จ U+1D468 1D427 B U+0042 ๐‘ฉ U+1D469 1D427 C U+0043 ๐‘ช U+1D46A 1D427 D U+0044 ๐‘ซ U+1D46B 1D427 E U+0045 ๐‘ฌ U+1D46C 1D427 F U+0046 ๐‘ญ U+1D46D 1D427 G U+0047 ๐‘ฎ U+1D46E 1D427 H U+0048 ๐‘ฏ U+1D46F 1D427 I U+0049 ๐‘ฐ U+1D470 1D427 J U+004A ๐‘ฑ U+1D471 1D427 K U+004B ๐‘ฒ U+1D472 1D427 L U+004C ๐‘ณ U+1D473 1D427 M U+004D ๐‘ด U+1D474 1D427 N U+004E ๐‘ต U+1D475 1D427 O U+004F ๐‘ถ U+1D476 1D427 P U+0050 ๐‘ท U+1D477 1D427 Q U+0051 ๐‘ธ U+1D478 1D427 R U+0052 ๐‘น U+1D479 1D427 S U+0053 ๐‘บ U+1D47A 1D427 T U+0054 ๐‘ป U+1D47B 1D427 U U+0055 ๐‘ผ U+1D47C 1D427 V U+0056 ๐‘ฝ U+1D47D 1D427 W U+0057 ๐‘พ U+1D47E 1D427 X U+0058 ๐‘ฟ U+1D47F 1D427 Y U+0059 ๐’€ U+1D480 1D427 Z U+005A ๐’ U+1D481 1D427 a U+0061 ๐’‚ U+1D482 1D421 b U+0062 ๐’ƒ U+1D483 1D421 c U+0063 ๐’„ U+1D484 1D421 d U+0064 ๐’… U+1D485 1D421 e U+0065 ๐’† U+1D486 1D421 f U+0066 ๐’‡ U+1D487 1D421 g U+0067 ๐’ˆ U+1D488 1D421 h U+0068 ๐’‰ U+1D489 1D421 i U+0069 ๐’Š U+1D48A 1D421 j U+006A ๐’‹ U+1D48B 1D421 k U+006B ๐’Œ U+1D48C 1D421 l U+006C ๐’ U+1D48D 1D421 m U+006D ๐’Ž U+1D48E 1D421 n U+006E ๐’ U+1D48F 1D421 o U+006F ๐’ U+1D490 1D421 p U+0070 ๐’‘ U+1D491 1D421 q U+0071 ๐’’ U+1D492 1D421 r U+0072 ๐’“ U+1D493 1D421 s U+0073 ๐’” U+1D494 1D421 t U+0074 ๐’• U+1D495 1D421 u U+0075 ๐’– U+1D496 1D421 v U+0076 ๐’— U+1D497 1D421 w U+0077 ๐’˜ U+1D498 1D421 x U+0078 ๐’™ U+1D499 1D421 y U+0079 ๐’š U+1D49A 1D421 z U+007A ๐’› U+1D49B 1D421 ฮ‘ U+0391 ๐œœ U+1D71C 1D38B ฮ’ U+0392 ๐œ U+1D71D 1D38B ฮ“ U+0393 ๐œž U+1D71E 1D38B ฮ” U+0394 ๐œŸ U+1D71F 1D38B ฮ• U+0395 ๐œ  U+1D720 1D38B ฮ– U+0396 ๐œก U+1D721 1D38B ฮ— U+0397 ๐œข U+1D722 1D38B ฮ˜ U+0398 ๐œฃ U+1D723 1D38B ฮ™ U+0399 ๐œค U+1D724 1D38B ฮš U+039A ๐œฅ U+1D725 1D38B ฮ› U+039B ๐œฆ U+1D726 1D38B ฮœ U+039C ๐œง U+1D727 1D38B ฮ U+039D ๐œจ U+1D728 1D38B ฮž U+039E ๐œฉ U+1D729 1D38B ฮŸ U+039F ๐œช U+1D72A 1D38B ฮ  U+03A0 ๐œซ U+1D72B 1D38B ฮก U+03A1 ๐œฌ U+1D72C 1D38B ฯด U+03F4 ๐œญ U+1D72D 1D339 ฮฃ U+03A3 ๐œฎ U+1D72E 1D38B ฮค U+03A4 ๐œฏ U+1D72F 1D38B ฮฅ U+03A5 ๐œฐ U+1D730 1D38B ฮฆ U+03A6 ๐œฑ U+1D731 1D38B ฮง U+03A7 ๐œฒ U+1D732 1D38B ฮจ U+03A8 ๐œณ U+1D733 1D38B ฮฉ U+03A9 ๐œด U+1D734 1D38B โˆ‡ U+2207 ๐œต U+1D735 1B52E ฮฑ U+03B1 ๐œถ U+1D736 1D385 ฮฒ U+03B2 ๐œท U+1D737 1D385 ฮณ U+03B3 ๐œธ U+1D738 1D385 ฮด U+03B4 ๐œน U+1D739 1D385 ฮต U+03B5 ๐œบ U+1D73A 1D385 ฮถ U+03B6 ๐œป U+1D73B 1D385 ฮท U+03B7 ๐œผ U+1D73C 1D385 ฮธ U+03B8 ๐œฝ U+1D73D 1D385 ฮน U+03B9 ๐œพ U+1D73E 1D385 ฮบ U+03BA ๐œฟ U+1D73F 1D385 ฮป U+03BB ๐€ U+1D740 1D385 ฮผ U+03BC ๐ U+1D741 1D385 ฮฝ U+03BD ๐‚ U+1D742 1D385 ฮพ U+03BE ๐ƒ U+1D743 1D385 ฮฟ U+03BF ๐„ U+1D744 1D385 ฯ€ U+03C0 ๐… U+1D745 1D385 ฯ U+03C1 ๐† U+1D746 1D385 ฯ‚ U+03C2 ๐‡ U+1D747 1D385 ฯƒ U+03C3 ๐ˆ U+1D748 1D385 ฯ„ U+03C4 ๐‰ U+1D749 1D385 ฯ… U+03C5 ๐Š U+1D74A 1D385 ฯ† U+03C6 ๐‹ U+1D74B 1D385 ฯ‡ U+03C7 ๐Œ U+1D74C 1D385 ฯˆ U+03C8 ๐ U+1D74D 1D385 ฯ‰ U+03C9 ๐Ž U+1D74E 1D385 โˆ‚ U+2202 ๐ U+1D74F 1B54D ฯต U+03F5 ๐ U+1D750 1D35B ฯ‘ U+03D1 ๐‘ U+1D751 1D380 ฯฐ U+03F0 ๐’ U+1D752 1D362 ฯ• U+03D5 ๐“ U+1D753 1D37E ฯฑ U+03F1 ๐” U+1D754 1D363 ฯ– U+03D6 ๐• U+1D755 1D37F Original tailed ฮ”code point ุฌ U+062C ๐žน‚ U+1EE42 1E816 ุญ U+062D ๐žน‡ U+1EE47 1E81A ูŠ U+064A ๐žน‰ U+1EE49 1E7FF ู„ U+0644 ๐žน‹ U+1EE4B 1E807 ู† U+0646 ๐žน U+1EE4D 1E807 ุณ U+0633 ๐žนŽ U+1EE4E 1E81B ุน U+0639 ๐žน U+1EE4F 1E816 ุต U+0635 ๐žน‘ U+1EE51 1E81C ู‚ U+0642 ๐žน’ U+1EE52 1E810 ุด U+0634 ๐žน” U+1EE54 1E820 ุฎ U+062E ๐žน— U+1EE57 1E829 ุถ U+0636 ๐žน™ U+1EE59 1E823 ุบ U+063A ๐žน› U+1EE5B 1E821 ฺบ U+06BA ๐žน U+1EE5D 1E7A3 ูฏ U+066F ๐žนŸ U+1EE5F 1E7F0 Original bold ฮ”code point A U+0041 ๐€ U+1D400 1D3BF B U+0042 ๐ U+1D401 1D3BF C U+0043 ๐‚ U+1D402 1D3BF D U+0044 ๐ƒ U+1D403 1D3BF E U+0045 ๐„ U+1D404 1D3BF F U+0046 ๐… U+1D405 1D3BF G U+0047 ๐† U+1D406 1D3BF H U+0048 ๐‡ U+1D407 1D3BF I U+0049 ๐ˆ U+1D408 1D3BF J U+004A ๐‰ U+1D409 1D3BF K U+004B ๐Š U+1D40A 1D3BF L U+004C ๐‹ U+1D40B 1D3BF M U+004D ๐Œ U+1D40C 1D3BF N U+004E ๐ U+1D40D 1D3BF O U+004F ๐Ž U+1D40E 1D3BF P U+0050 ๐ U+1D40F 1D3BF Q U+0051 ๐ U+1D410 1D3BF R U+0052 ๐‘ U+1D411 1D3BF S U+0053 ๐’ U+1D412 1D3BF T U+0054 ๐“ U+1D413 1D3BF U U+0055 ๐” U+1D414 1D3BF V U+0056 ๐• U+1D415 1D3BF W U+0057 ๐– U+1D416 1D3BF X U+0058 ๐— U+1D417 1D3BF Y U+0059 ๐˜ U+1D418 1D3BF Z U+005A ๐™ U+1D419 1D3BF a U+0061 ๐š U+1D41A 1D3B9 b U+0062 ๐› U+1D41B 1D3B9 c U+0063 ๐œ U+1D41C 1D3B9 d U+0064 ๐ U+1D41D 1D3B9 e U+0065 ๐ž U+1D41E 1D3B9 f U+0066 ๐Ÿ U+1D41F 1D3B9 g U+0067 ๐  U+1D420 1D3B9 h U+0068 ๐ก U+1D421 1D3B9 i U+0069 ๐ข U+1D422 1D3B9 j U+006A ๐ฃ U+1D423 1D3B9 k U+006B ๐ค U+1D424 1D3B9 l U+006C ๐ฅ U+1D425 1D3B9 m U+006D ๐ฆ U+1D426 1D3B9 n U+006E ๐ง U+1D427 1D3B9 o U+006F ๐จ U+1D428 1D3B9 p U+0070 ๐ฉ U+1D429 1D3B9 q U+0071 ๐ช U+1D42A 1D3B9 r U+0072 ๐ซ U+1D42B 1D3B9 s U+0073 ๐ฌ U+1D42C 1D3B9 t U+0074 ๐ญ U+1D42D 1D3B9 u U+0075 ๐ฎ U+1D42E 1D3B9 v U+0076 ๐ฏ U+1D42F 1D3B9 w U+0077 ๐ฐ U+1D430 1D3B9 x U+0078 ๐ฑ U+1D431 1D3B9 y U+0079 ๐ฒ U+1D432 1D3B9 z U+007A ๐ณ U+1D433 1D3B9 ฮ‘ U+0391 ๐šจ U+1D6A8 1D317 ฮ’ U+0392 ๐šฉ U+1D6A9 1D317 ฮ“ U+0393 ๐šช U+1D6AA 1D317 ฮ” U+0394 ๐šซ U+1D6AB 1D317 ฮ• U+0395 ๐šฌ U+1D6AC 1D317 ฮ– U+0396 ๐šญ U+1D6AD 1D317 ฮ— U+0397 ๐šฎ U+1D6AE 1D317 ฮ˜ U+0398 ๐šฏ U+1D6AF 1D317 ฮ™ U+0399 ๐šฐ U+1D6B0 1D317 ฮš U+039A ๐šฑ U+1D6B1 1D317 ฮ› U+039B ๐šฒ U+1D6B2 1D317 ฮœ U+039C ๐šณ U+1D6B3 1D317 ฮ U+039D ๐šด U+1D6B4 1D317 ฮž U+039E ๐šต U+1D6B5 1D317 ฮŸ U+039F ๐šถ U+1D6B6 1D317 ฮ  U+03A0 ๐šท U+1D6B7 1D317 ฮก U+03A1 ๐šธ U+1D6B8 1D317 ฯด U+03F4 ๐šน U+1D6B9 1D2C5 ฮฃ U+03A3 ๐šบ U+1D6BA 1D317 ฮค U+03A4 ๐šป U+1D6BB 1D317 ฮฅ U+03A5 ๐šผ U+1D6BC 1D317 ฮฆ U+03A6 ๐šฝ U+1D6BD 1D317 ฮง U+03A7 ๐šพ U+1D6BE 1D317 ฮจ U+03A8 ๐šฟ U+1D6BF 1D317 ฮฉ U+03A9 ๐›€ U+1D6C0 1D317 โˆ‡ U+2207 ๐› U+1D6C1 1B4BA ฮฑ U+03B1 ๐›‚ U+1D6C2 1D311 ฮฒ U+03B2 ๐›ƒ U+1D6C3 1D311 ฮณ U+03B3 ๐›„ U+1D6C4 1D311 ฮด U+03B4 ๐›… U+1D6C5 1D311 ฮต U+03B5 ๐›† U+1D6C6 1D311 ฮถ U+03B6 ๐›‡ U+1D6C7 1D311 ฮท U+03B7 ๐›ˆ U+1D6C8 1D311 ฮธ U+03B8 ๐›‰ U+1D6C9 1D311 ฮน U+03B9 ๐›Š U+1D6CA 1D311 ฮบ U+03BA ๐›‹ U+1D6CB 1D311 ฮป U+03BB ๐›Œ U+1D6CC 1D311 ฮผ U+03BC ๐› U+1D6CD 1D311 ฮฝ U+03BD ๐›Ž U+1D6CE 1D311 ฮพ U+03BE ๐› U+1D6CF 1D311 ฮฟ U+03BF ๐› U+1D6D0 1D311 ฯ€ U+03C0 ๐›‘ U+1D6D1 1D311 ฯ U+03C1 ๐›’ U+1D6D2 1D311 ฯ‚ U+03C2 ๐›“ U+1D6D3 1D311 ฯƒ U+03C3 ๐›” U+1D6D4 1D311 ฯ„ U+03C4 ๐›• U+1D6D5 1D311 ฯ… U+03C5 ๐›– U+1D6D6 1D311 ฯ† U+03C6 ๐›— U+1D6D7 1D311 ฯ‡ U+03C7 ๐›˜ U+1D6D8 1D311 ฯˆ U+03C8 ๐›™ U+1D6D9 1D311 ฯ‰ U+03C9 ๐›š U+1D6DA 1D311 โˆ‚ U+2202 ๐›› U+1D6DB 1B4D9 ฯต U+03F5 ๐›œ U+1D6DC 1D2E7 ฯ‘ U+03D1 ๐› U+1D6DD 1D30C ฯฐ U+03F0 ๐›ž U+1D6DE 1D2EE ฯ• U+03D5 ๐›Ÿ U+1D6DF 1D30A ฯฑ U+03F1 ๐›  U+1D6E0 1D2EF ฯ– U+03D6 ๐›ก U+1D6E1 1D30B ฯœ U+03DC ๐ŸŠ U+1D7CA 1D3EE ฯ U+03DD ๐Ÿ‹ U+1D7CB 1D3EE 0 U+0030 ๐ŸŽ U+1D7CE 1D79E 1 U+0031 ๐Ÿ U+1D7CF 1D79E 2 U+0032 ๐Ÿ U+1D7D0 1D79E 3 U+0033 ๐Ÿ‘ U+1D7D1 1D79E 4 U+0034 ๐Ÿ’ U+1D7D2 1D79E 5 U+0035 ๐Ÿ“ U+1D7D3 1D79E 6 U+0036 ๐Ÿ” U+1D7D4 1D79E 7 U+0037 ๐Ÿ• U+1D7D5 1D79E 8 U+0038 ๐Ÿ– U+1D7D6 1D79E 9 U+0039 ๐Ÿ— U+1D7D7 1D79E Original fraktur ฮ”code point A U+0041 ๐”„ U+1D504 1D4C3 B U+0042 ๐”… U+1D505 1D4C3 C U+0043 โ„ญ U+0212D 20EA D U+0044 ๐”‡ U+1D507 1D4C3 E U+0045 ๐”ˆ U+1D508 1D4C3 F U+0046 ๐”‰ U+1D509 1D4C3 G U+0047 ๐”Š U+1D50A 1D4C3 H U+0048 โ„Œ U+0210C 20C4 I U+0049 โ„‘ U+02111 20C8 J U+004A ๐” U+1D50D 1D4C3 K U+004B ๐”Ž U+1D50E 1D4C3 L U+004C ๐” U+1D50F 1D4C3 M U+004D ๐” U+1D510 1D4C3 N U+004E ๐”‘ U+1D511 1D4C3 O U+004F ๐”’ U+1D512 1D4C3 P U+0050 ๐”“ U+1D513 1D4C3 Q U+0051 ๐”” U+1D514 1D4C3 R U+0052 โ„œ U+0211C 20CA S U+0053 ๐”– U+1D516 1D4C3 T U+0054 ๐”— U+1D517 1D4C3 U U+0055 ๐”˜ U+1D518 1D4C3 V U+0056 ๐”™ U+1D519 1D4C3 W U+0057 ๐”š U+1D51A 1D4C3 X U+0058 ๐”› U+1D51B 1D4C3 Y U+0059 ๐”œ U+1D51C 1D4C3 Z U+005A โ„จ U+02128 20CE a U+0061 ๐”ž U+1D51E 1D4BD b U+0062 ๐”Ÿ U+1D51F 1D4BD c U+0063 ๐”  U+1D520 1D4BD d U+0064 ๐”ก U+1D521 1D4BD e U+0065 ๐”ข U+1D522 1D4BD f U+0066 ๐”ฃ U+1D523 1D4BD g U+0067 ๐”ค U+1D524 1D4BD h U+0068 ๐”ฅ U+1D525 1D4BD i U+0069 ๐”ฆ U+1D526 1D4BD j U+006A ๐”ง U+1D527 1D4BD k U+006B ๐”จ U+1D528 1D4BD l U+006C ๐”ฉ U+1D529 1D4BD m U+006D ๐”ช U+1D52A 1D4BD n U+006E ๐”ซ U+1D52B 1D4BD o U+006F ๐”ฌ U+1D52C 1D4BD p U+0070 ๐”ญ U+1D52D 1D4BD q U+0071 ๐”ฎ U+1D52E 1D4BD r U+0072 ๐”ฏ U+1D52F 1D4BD s U+0073 ๐”ฐ U+1D530 1D4BD t U+0074 ๐”ฑ U+1D531 1D4BD u U+0075 ๐”ฒ U+1D532 1D4BD v U+0076 ๐”ณ U+1D533 1D4BD w U+0077 ๐”ด U+1D534 1D4BD x U+0078 ๐”ต U+1D535 1D4BD y U+0079 ๐”ถ U+1D536 1D4BD z U+007A ๐”ท U+1D537 1D4BD Original script ฮ”code point A U+0041 ๐’œ U+1D49C 1D45B B U+0042 โ„ฌ U+0212C 20EA C U+0043 ๐’ž U+1D49E 1D45B D U+0044 ๐’Ÿ U+1D49F 1D45B E U+0045 โ„ฐ U+02130 20EB F U+0046 โ„ฑ U+02131 20EB G U+0047 ๐’ข U+1D4A2 1D45B H U+0048 โ„‹ U+0210B 20C3 I U+0049 โ„ U+02110 20C7 J U+004A ๐’ฅ U+1D4A5 1D45B K U+004B ๐’ฆ U+1D4A6 1D45B L U+004C โ„’ U+02112 20C6 M U+004D โ„ณ U+02133 20E6 N U+004E ๐’ฉ U+1D4A9 1D45B O U+004F ๐’ช U+1D4AA 1D45B P U+0050 ๐’ซ U+1D4AB 1D45B Q U+0051 ๐’ฌ U+1D4AC 1D45B R U+0052 โ„› U+0211B 20C9 S U+0053 ๐’ฎ U+1D4AE 1D45B T U+0054 ๐’ฏ U+1D4AF 1D45B U U+0055 ๐’ฐ U+1D4B0 1D45B V U+0056 ๐’ฑ U+1D4B1 1D45B W U+0057 ๐’ฒ U+1D4B2 1D45B X U+0058 ๐’ณ U+1D4B3 1D45B Y U+0059 ๐’ด U+1D4B4 1D45B Z U+005A ๐’ต U+1D4B5 1D45B a U+0061 ๐’ถ U+1D4B6 1D455 b U+0062 ๐’ท U+1D4B7 1D455 c U+0063 ๐’ธ U+1D4B8 1D455 d U+0064 ๐’น U+1D4B9 1D455 e U+0065 โ„ฏ U+0212F 20CA f U+0066 ๐’ป U+1D4BB 1D455 g U+0067 โ„Š U+0210A 20A3 h U+0068 ๐’ฝ U+1D4BD 1D455 i U+0069 ๐’พ U+1D4BE 1D455 j U+006A ๐’ฟ U+1D4BF 1D455 k U+006B ๐“€ U+1D4C0 1D455 l U+006C ๐“ U+1D4C1 1D455 m U+006D ๐“‚ U+1D4C2 1D455 n U+006E ๐“ƒ U+1D4C3 1D455 o U+006F โ„ด U+02134 20C5 p U+0070 ๐“… U+1D4C5 1D455 q U+0071 ๐“† U+1D4C6 1D455 r U+0072 ๐“‡ U+1D4C7 1D455 s U+0073 ๐“ˆ U+1D4C8 1D455 t U+0074 ๐“‰ U+1D4C9 1D455 u U+0075 ๐“Š U+1D4CA 1D455 v U+0076 ๐“‹ U+1D4CB 1D455 w U+0077 ๐“Œ U+1D4CC 1D455 x U+0078 ๐“ U+1D4CD 1D455 y U+0079 ๐“Ž U+1D4CE 1D455 z U+007A ๐“ U+1D4CF 1D455 Original monospace ฮ”code point A U+0041 ๐™ฐ U+1D670 1D62F B U+0042 ๐™ฑ U+1D671 1D62F C U+0043 ๐™ฒ U+1D672 1D62F D U+0044 ๐™ณ U+1D673 1D62F E U+0045 ๐™ด U+1D674 1D62F F U+0046 ๐™ต U+1D675 1D62F G U+0047 ๐™ถ U+1D676 1D62F H U+0048 ๐™ท U+1D677 1D62F I U+0049 ๐™ธ U+1D678 1D62F J U+004A ๐™น U+1D679 1D62F K U+004B ๐™บ U+1D67A 1D62F L U+004C ๐™ป U+1D67B 1D62F M U+004D ๐™ผ U+1D67C 1D62F N U+004E ๐™ฝ U+1D67D 1D62F O U+004F ๐™พ U+1D67E 1D62F P U+0050 ๐™ฟ U+1D67F 1D62F Q U+0051 ๐š€ U+1D680 1D62F R U+0052 ๐š U+1D681 1D62F S U+0053 ๐š‚ U+1D682 1D62F T U+0054 ๐šƒ U+1D683 1D62F U U+0055 ๐š„ U+1D684 1D62F V U+0056 ๐š… U+1D685 1D62F W U+0057 ๐š† U+1D686 1D62F X U+0058 ๐š‡ U+1D687 1D62F Y U+0059 ๐šˆ U+1D688 1D62F Z U+005A ๐š‰ U+1D689 1D62F a U+0061 ๐šŠ U+1D68A 1D629 b U+0062 ๐š‹ U+1D68B 1D629 c U+0063 ๐šŒ U+1D68C 1D629 d U+0064 ๐š U+1D68D 1D629 e U+0065 ๐šŽ U+1D68E 1D629 f U+0066 ๐š U+1D68F 1D629 g U+0067 ๐š U+1D690 1D629 h U+0068 ๐š‘ U+1D691 1D629 i U+0069 ๐š’ U+1D692 1D629 j U+006A ๐š“ U+1D693 1D629 k U+006B ๐š” U+1D694 1D629 l U+006C ๐š• U+1D695 1D629 m U+006D ๐š– U+1D696 1D629 n U+006E ๐š— U+1D697 1D629 o U+006F ๐š˜ U+1D698 1D629 p U+0070 ๐š™ U+1D699 1D629 q U+0071 ๐šš U+1D69A 1D629 r U+0072 ๐š› U+1D69B 1D629 s U+0073 ๐šœ U+1D69C 1D629 t U+0074 ๐š U+1D69D 1D629 u U+0075 ๐šž U+1D69E 1D629 v U+0076 ๐šŸ U+1D69F 1D629 w U+0077 ๐š  U+1D6A0 1D629 x U+0078 ๐šก U+1D6A1 1D629 y U+0079 ๐šข U+1D6A2 1D629 z U+007A ๐šฃ U+1D6A3 1D629 0 U+0030 ๐Ÿถ U+1D7F6 1D7C6 1 U+0031 ๐Ÿท U+1D7F7 1D7C6 2 U+0032 ๐Ÿธ U+1D7F8 1D7C6 3 U+0033 ๐Ÿน U+1D7F9 1D7C6 4 U+0034 ๐Ÿบ U+1D7FA 1D7C6 5 U+0035 ๐Ÿป U+1D7FB 1D7C6 6 U+0036 ๐Ÿผ U+1D7FC 1D7C6 7 U+0037 ๐Ÿฝ U+1D7FD 1D7C6 8 U+0038 ๐Ÿพ U+1D7FE 1D7C6 9 U+0039 ๐Ÿฟ U+1D7FF 1D7C6 Original initial ฮ”code point ุจ U+0628 ๐žธก U+1EE21 1E7F9 ุฌ U+062C ๐žธข U+1EE22 1E7F6 ู‡ U+0647 ๐žธค U+1EE24 1E7DD ุญ U+062D ๐žธง U+1EE27 1E7FA ูŠ U+064A ๐žธฉ U+1EE29 1E7DF ูƒ U+0643 ๐žธช U+1EE2A 1E7E7 ู„ U+0644 ๐žธซ U+1EE2B 1E7E7 ู… U+0645 ๐žธฌ U+1EE2C 1E7E7 ู† U+0646 ๐žธญ U+1EE2D 1E7E7 ุณ U+0633 ๐žธฎ U+1EE2E 1E7FB ุน U+0639 ๐žธฏ U+1EE2F 1E7F6 ู U+0641 ๐žธฐ U+1EE30 1E7EF ุต U+0635 ๐žธฑ U+1EE31 1E7FC ู‚ U+0642 ๐žธฒ U+1EE32 1E7F0 ุด U+0634 ๐žธด U+1EE34 1E800 ุช U+062A ๐žธต U+1EE35 1E80B ุซ U+062B ๐žธถ U+1EE36 1E80B ุฎ U+062E ๐žธท U+1EE37 1E809 ุถ U+0636 ๐žธน U+1EE39 1E803 ุบ U+063A ๐žธป U+1EE3B 1E801 Original sans-serif ฮ”code point A U+0041 ๐–  U+1D5A0 1D55F B U+0042 ๐–ก U+1D5A1 1D55F C U+0043 ๐–ข U+1D5A2 1D55F D U+0044 ๐–ฃ U+1D5A3 1D55F E U+0045 ๐–ค U+1D5A4 1D55F F U+0046 ๐–ฅ U+1D5A5 1D55F G U+0047 ๐–ฆ U+1D5A6 1D55F H U+0048 ๐–ง U+1D5A7 1D55F I U+0049 ๐–จ U+1D5A8 1D55F J U+004A ๐–ฉ U+1D5A9 1D55F K U+004B ๐–ช U+1D5AA 1D55F L U+004C ๐–ซ U+1D5AB 1D55F M U+004D ๐–ฌ U+1D5AC 1D55F N U+004E ๐–ญ U+1D5AD 1D55F O U+004F ๐–ฎ U+1D5AE 1D55F P U+0050 ๐–ฏ U+1D5AF 1D55F Q U+0051 ๐–ฐ U+1D5B0 1D55F R U+0052 ๐–ฑ U+1D5B1 1D55F S U+0053 ๐–ฒ U+1D5B2 1D55F T U+0054 ๐–ณ U+1D5B3 1D55F U U+0055 ๐–ด U+1D5B4 1D55F V U+0056 ๐–ต U+1D5B5 1D55F W U+0057 ๐–ถ U+1D5B6 1D55F X U+0058 ๐–ท U+1D5B7 1D55F Y U+0059 ๐–ธ U+1D5B8 1D55F Z U+005A ๐–น U+1D5B9 1D55F a U+0061 ๐–บ U+1D5BA 1D559 b U+0062 ๐–ป U+1D5BB 1D559 c U+0063 ๐–ผ U+1D5BC 1D559 d U+0064 ๐–ฝ U+1D5BD 1D559 e U+0065 ๐–พ U+1D5BE 1D559 f U+0066 ๐–ฟ U+1D5BF 1D559 g U+0067 ๐—€ U+1D5C0 1D559 h U+0068 ๐— U+1D5C1 1D559 i U+0069 ๐—‚ U+1D5C2 1D559 j U+006A ๐—ƒ U+1D5C3 1D559 k U+006B ๐—„ U+1D5C4 1D559 l U+006C ๐—… U+1D5C5 1D559 m U+006D ๐—† U+1D5C6 1D559 n U+006E ๐—‡ U+1D5C7 1D559 o U+006F ๐—ˆ U+1D5C8 1D559 p U+0070 ๐—‰ U+1D5C9 1D559 q U+0071 ๐—Š U+1D5CA 1D559 r U+0072 ๐—‹ U+1D5CB 1D559 s U+0073 ๐—Œ U+1D5CC 1D559 t U+0074 ๐— U+1D5CD 1D559 u U+0075 ๐—Ž U+1D5CE 1D559 v U+0076 ๐— U+1D5CF 1D559 w U+0077 ๐— U+1D5D0 1D559 x U+0078 ๐—‘ U+1D5D1 1D559 y U+0079 ๐—’ U+1D5D2 1D559 z U+007A ๐—“ U+1D5D3 1D559 0 U+0030 ๐Ÿข U+1D7E2 1D7B2 1 U+0031 ๐Ÿฃ U+1D7E3 1D7B2 2 U+0032 ๐Ÿค U+1D7E4 1D7B2 3 U+0033 ๐Ÿฅ U+1D7E5 1D7B2 4 U+0034 ๐Ÿฆ U+1D7E6 1D7B2 5 U+0035 ๐Ÿง U+1D7E7 1D7B2 6 U+0036 ๐Ÿจ U+1D7E8 1D7B2 7 U+0037 ๐Ÿฉ U+1D7E9 1D7B2 8 U+0038 ๐Ÿช U+1D7EA 1D7B2 9 U+0039 ๐Ÿซ U+1D7EB 1D7B2 Original double-struck ฮ”code point A U+0041 ๐”ธ U+1D538 1D4F7 B U+0042 ๐”น U+1D539 1D4F7 C U+0043 โ„‚ U+02102 20BF D U+0044 ๐”ป U+1D53B 1D4F7 E U+0045 ๐”ผ U+1D53C 1D4F7 F U+0046 ๐”ฝ U+1D53D 1D4F7 G U+0047 ๐”พ U+1D53E 1D4F7 H U+0048 โ„ U+0210D 20C5 I U+0049 ๐•€ U+1D540 1D4F7 J U+004A ๐• U+1D541 1D4F7 K U+004B ๐•‚ U+1D542 1D4F7 L U+004C ๐•ƒ U+1D543 1D4F7 M U+004D ๐•„ U+1D544 1D4F7 N U+004E โ„• U+02115 20C7 O U+004F ๐•† U+1D546 1D4F7 P U+0050 โ„™ U+02119 20C9 Q U+0051 โ„š U+0211A 20C9 R U+0052 โ„ U+0211D 20CB S U+0053 ๐•Š U+1D54A 1D4F7 T U+0054 ๐•‹ U+1D54B 1D4F7 U U+0055 ๐•Œ U+1D54C 1D4F7 V U+0056 ๐• U+1D54D 1D4F7 W U+0057 ๐•Ž U+1D54E 1D4F7 X U+0058 ๐• U+1D54F 1D4F7 Y U+0059 ๐• U+1D550 1D4F7 Z U+005A โ„ค U+02124 20CA a U+0061 ๐•’ U+1D552 1D4F1 b U+0062 ๐•“ U+1D553 1D4F1 c U+0063 ๐•” U+1D554 1D4F1 d U+0064 ๐•• U+1D555 1D4F1 e U+0065 ๐•– U+1D556 1D4F1 f U+0066 ๐•— U+1D557 1D4F1 g U+0067 ๐•˜ U+1D558 1D4F1 h U+0068 ๐•™ U+1D559 1D4F1 i U+0069 ๐•š U+1D55A 1D4F1 j U+006A ๐•› U+1D55B 1D4F1 k U+006B ๐•œ U+1D55C 1D4F1 l U+006C ๐• U+1D55D 1D4F1 m U+006D ๐•ž U+1D55E 1D4F1 n U+006E ๐•Ÿ U+1D55F 1D4F1 o U+006F ๐•  U+1D560 1D4F1 p U+0070 ๐•ก U+1D561 1D4F1 q U+0071 ๐•ข U+1D562 1D4F1 r U+0072 ๐•ฃ U+1D563 1D4F1 s U+0073 ๐•ค U+1D564 1D4F1 t U+0074 ๐•ฅ U+1D565 1D4F1 u U+0075 ๐•ฆ U+1D566 1D4F1 v U+0076 ๐•ง U+1D567 1D4F1 w U+0077 ๐•จ U+1D568 1D4F1 x U+0078 ๐•ฉ U+1D569 1D4F1 y U+0079 ๐•ช U+1D56A 1D4F1 z U+007A ๐•ซ U+1D56B 1D4F1 0 U+0030 ๐Ÿ˜ U+1D7D8 1D7A8 1 U+0031 ๐Ÿ™ U+1D7D9 1D7A8 2 U+0032 ๐Ÿš U+1D7DA 1D7A8 3 U+0033 ๐Ÿ› U+1D7DB 1D7A8 4 U+0034 ๐Ÿœ U+1D7DC 1D7A8 5 U+0035 ๐Ÿ U+1D7DD 1D7A8 6 U+0036 ๐Ÿž U+1D7DE 1D7A8 7 U+0037 ๐ŸŸ U+1D7DF 1D7A8 8 U+0038 ๐Ÿ  U+1D7E0 1D7A8 9 U+0039 ๐Ÿก U+1D7E1 1D7A8 ุจ U+0628 ๐žบก U+1EEA1 1E879 ุฌ U+062C ๐žบข U+1EEA2 1E876 ุฏ U+062F ๐žบฃ U+1EEA3 1E874 ูˆ U+0648 ๐žบฅ U+1EEA5 1E85D ุฒ U+0632 ๐žบฆ U+1EEA6 1E874 ุญ U+062D ๐žบง U+1EEA7 1E87A ุท U+0637 ๐žบจ U+1EEA8 1E871 ูŠ U+064A ๐žบฉ U+1EEA9 1E85F ู„ U+0644 ๐žบซ U+1EEAB 1E867 ู… U+0645 ๐žบฌ U+1EEAC 1E867 ู† U+0646 ๐žบญ U+1EEAD 1E867 ุณ U+0633 ๐žบฎ U+1EEAE 1E87B ุน U+0639 ๐žบฏ U+1EEAF 1E876 ู U+0641 ๐žบฐ U+1EEB0 1E86F ุต U+0635 ๐žบฑ U+1EEB1 1E87C ู‚ U+0642 ๐žบฒ U+1EEB2 1E870 ุฑ U+0631 ๐žบณ U+1EEB3 1E882 ุด U+0634 ๐žบด U+1EEB4 1E880 ุช U+062A ๐žบต U+1EEB5 1E88B ุซ U+062B ๐žบถ U+1EEB6 1E88B ุฎ U+062E ๐žบท U+1EEB7 1E889 ุฐ U+0630 ๐žบธ U+1EEB8 1E888 ุถ U+0636 ๐žบน U+1EEB9 1E883 ุธ U+0638 ๐žบบ U+1EEBA 1E882 ุบ U+063A ๐žบป U+1EEBB 1E881 Original looped ฮ”code point ุง U+0627 ๐žบ€ U+1EE80 1E859 ุจ U+0628 ๐žบ U+1EE81 1E859 ุฌ U+062C ๐žบ‚ U+1EE82 1E856 ุฏ U+062F ๐žบƒ U+1EE83 1E854 ู‡ U+0647 ๐žบ„ U+1EE84 1E83D ูˆ U+0648 ๐žบ… U+1EE85 1E83D ุฒ U+0632 ๐žบ† U+1EE86 1E854 ุญ U+062D ๐žบ‡ U+1EE87 1E85A ุท U+0637 ๐žบˆ U+1EE88 1E851 ูŠ U+064A ๐žบ‰ U+1EE89 1E83F ู„ U+0644 ๐žบ‹ U+1EE8B 1E847 ู… U+0645 ๐žบŒ U+1EE8C 1E847 ู† U+0646 ๐žบ U+1EE8D 1E847 ุณ U+0633 ๐žบŽ U+1EE8E 1E85B ุน U+0639 ๐žบ U+1EE8F 1E856 ู U+0641 ๐žบ U+1EE90 1E84F ุต U+0635 ๐žบ‘ U+1EE91 1E85C ู‚ U+0642 ๐žบ’ U+1EE92 1E850 ุฑ U+0631 ๐žบ“ U+1EE93 1E862 ุด U+0634 ๐žบ” U+1EE94 1E860 ุช U+062A ๐žบ• U+1EE95 1E86B ุซ U+062B ๐žบ– U+1EE96 1E86B ุฎ U+062E ๐žบ— U+1EE97 1E869 ุฐ U+0630 ๐žบ˜ U+1EE98 1E868 ุถ U+0636 ๐žบ™ U+1EE99 1E863 ุธ U+0638 ๐žบš U+1EE9A 1E862 ุบ U+063A ๐žบ› U+1EE9B 1E861 Original stretched ฮ”code point ุจ U+0628 ๐žนก U+1EE61 1E839 ุฌ U+062C ๐žนข U+1EE62 1E836 ู‡ U+0647 ๐žนค U+1EE64 1E81D ุญ U+062D ๐žนง U+1EE67 1E83A ุท U+0637 ๐žนจ U+1EE68 1E831 ูŠ U+064A ๐žนฉ U+1EE69 1E81F ูƒ U+0643 ๐žนช U+1EE6A 1E827 ู… U+0645 ๐žนฌ U+1EE6C 1E827 ู† U+0646 ๐žนญ U+1EE6D 1E827 ุณ U+0633 ๐žนฎ U+1EE6E 1E83B ุน U+0639 ๐žนฏ U+1EE6F 1E836 ู U+0641 ๐žนฐ U+1EE70 1E82F ุต U+0635 ๐žนฑ U+1EE71 1E83C ู‚ U+0642 ๐žนฒ U+1EE72 1E830 ุด U+0634 ๐žนด U+1EE74 1E840 ุช U+062A ๐žนต U+1EE75 1E84B ุซ U+062B ๐žนถ U+1EE76 1E84B ุฎ U+062E ๐žนท U+1EE77 1E849 ุถ U+0636 ๐žนน U+1EE79 1E843 ุธ U+0638 ๐žนบ U+1EE7A 1E842 ุบ U+063A ๐žนป U+1EE7B 1E841 ูฎ U+066E ๐žนผ U+1EE7C 1E80E ฺก U+06A1 ๐žนพ U+1EE7E 1E7DD Original italic ฮ”code point 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 Original bold-fraktur ฮ”code point A U+0041 ๐•ฌ U+1D56C 1D52B B U+0042 ๐•ญ U+1D56D 1D52B C U+0043 ๐•ฎ U+1D56E 1D52B D U+0044 ๐•ฏ U+1D56F 1D52B E U+0045 ๐•ฐ U+1D570 1D52B F U+0046 ๐•ฑ U+1D571 1D52B G U+0047 ๐•ฒ U+1D572 1D52B H U+0048 ๐•ณ U+1D573 1D52B I U+0049 ๐•ด U+1D574 1D52B J U+004A ๐•ต U+1D575 1D52B K U+004B ๐•ถ U+1D576 1D52B L U+004C ๐•ท U+1D577 1D52B M U+004D ๐•ธ U+1D578 1D52B N U+004E ๐•น U+1D579 1D52B O U+004F ๐•บ U+1D57A 1D52B P U+0050 ๐•ป U+1D57B 1D52B Q U+0051 ๐•ผ U+1D57C 1D52B R U+0052 ๐•ฝ U+1D57D 1D52B S U+0053 ๐•พ U+1D57E 1D52B T U+0054 ๐•ฟ U+1D57F 1D52B U U+0055 ๐–€ U+1D580 1D52B V U+0056 ๐– U+1D581 1D52B W U+0057 ๐–‚ U+1D582 1D52B X U+0058 ๐–ƒ U+1D583 1D52B Y U+0059 ๐–„ U+1D584 1D52B Z U+005A ๐–… U+1D585 1D52B a U+0061 ๐–† U+1D586 1D525 b U+0062 ๐–‡ U+1D587 1D525 c U+0063 ๐–ˆ U+1D588 1D525 d U+0064 ๐–‰ U+1D589 1D525 e U+0065 ๐–Š U+1D58A 1D525 f U+0066 ๐–‹ U+1D58B 1D525 g U+0067 ๐–Œ U+1D58C 1D525 h U+0068 ๐– U+1D58D 1D525 i U+0069 ๐–Ž U+1D58E 1D525 j U+006A ๐– U+1D58F 1D525 k U+006B ๐– U+1D590 1D525 l U+006C ๐–‘ U+1D591 1D525 m U+006D ๐–’ U+1D592 1D525 n U+006E ๐–“ U+1D593 1D525 o U+006F ๐–” U+1D594 1D525 p U+0070 ๐–• U+1D595 1D525 q U+0071 ๐–– U+1D596 1D525 r U+0072 ๐–— U+1D597 1D525 s U+0073 ๐–˜ U+1D598 1D525 t U+0074 ๐–™ U+1D599 1D525 u U+0075 ๐–š U+1D59A 1D525 v U+0076 ๐–› U+1D59B 1D525 w U+0077 ๐–œ U+1D59C 1D525 x U+0078 ๐– U+1D59D 1D525 y U+0079 ๐–ž U+1D59E 1D525 z U+007A ๐–Ÿ U+1D59F 1D525 Original sans-serif-bold-italic ฮ”code point A U+0041 ๐˜ผ U+1D63C 1D5FB B U+0042 ๐˜ฝ U+1D63D 1D5FB C U+0043 ๐˜พ U+1D63E 1D5FB D U+0044 ๐˜ฟ U+1D63F 1D5FB E U+0045 ๐™€ U+1D640 1D5FB F U+0046 ๐™ U+1D641 1D5FB G U+0047 ๐™‚ U+1D642 1D5FB H U+0048 ๐™ƒ U+1D643 1D5FB I U+0049 ๐™„ U+1D644 1D5FB J U+004A ๐™… U+1D645 1D5FB K U+004B ๐™† U+1D646 1D5FB L U+004C ๐™‡ U+1D647 1D5FB M U+004D ๐™ˆ U+1D648 1D5FB N U+004E ๐™‰ U+1D649 1D5FB O U+004F ๐™Š U+1D64A 1D5FB P U+0050 ๐™‹ U+1D64B 1D5FB Q U+0051 ๐™Œ U+1D64C 1D5FB R U+0052 ๐™ U+1D64D 1D5FB S U+0053 ๐™Ž U+1D64E 1D5FB T U+0054 ๐™ U+1D64F 1D5FB U U+0055 ๐™ U+1D650 1D5FB V U+0056 ๐™‘ U+1D651 1D5FB W U+0057 ๐™’ U+1D652 1D5FB X U+0058 ๐™“ U+1D653 1D5FB Y U+0059 ๐™” U+1D654 1D5FB Z U+005A ๐™• U+1D655 1D5FB a U+0061 ๐™– U+1D656 1D5F5 b U+0062 ๐™— U+1D657 1D5F5 c U+0063 ๐™˜ U+1D658 1D5F5 d U+0064 ๐™™ U+1D659 1D5F5 e U+0065 ๐™š U+1D65A 1D5F5 f U+0066 ๐™› U+1D65B 1D5F5 g U+0067 ๐™œ U+1D65C 1D5F5 h U+0068 ๐™ U+1D65D 1D5F5 i U+0069 ๐™ž U+1D65E 1D5F5 j U+006A ๐™Ÿ U+1D65F 1D5F5 k U+006B ๐™  U+1D660 1D5F5 l U+006C ๐™ก U+1D661 1D5F5 m U+006D ๐™ข U+1D662 1D5F5 n U+006E ๐™ฃ U+1D663 1D5F5 o U+006F ๐™ค U+1D664 1D5F5 p U+0070 ๐™ฅ U+1D665 1D5F5 q U+0071 ๐™ฆ U+1D666 1D5F5 r U+0072 ๐™ง U+1D667 1D5F5 s U+0073 ๐™จ U+1D668 1D5F5 t U+0074 ๐™ฉ U+1D669 1D5F5 u U+0075 ๐™ช U+1D66A 1D5F5 v U+0076 ๐™ซ U+1D66B 1D5F5 w U+0077 ๐™ฌ U+1D66C 1D5F5 x U+0078 ๐™ญ U+1D66D 1D5F5 y U+0079 ๐™ฎ U+1D66E 1D5F5 z U+007A ๐™ฏ U+1D66F 1D5F5 ฮ‘ U+0391 ๐ž U+1D790 1D3FF ฮ’ U+0392 ๐ž‘ U+1D791 1D3FF ฮ“ U+0393 ๐ž’ U+1D792 1D3FF ฮ” U+0394 ๐ž“ U+1D793 1D3FF ฮ• U+0395 ๐ž” U+1D794 1D3FF ฮ– U+0396 ๐ž• U+1D795 1D3FF ฮ— U+0397 ๐ž– U+1D796 1D3FF ฮ˜ U+0398 ๐ž— U+1D797 1D3FF ฮ™ U+0399 ๐ž˜ U+1D798 1D3FF ฮš U+039A ๐ž™ U+1D799 1D3FF ฮ› U+039B ๐žš U+1D79A 1D3FF ฮœ U+039C ๐ž› U+1D79B 1D3FF ฮ U+039D ๐žœ U+1D79C 1D3FF ฮž U+039E ๐ž U+1D79D 1D3FF ฮŸ U+039F ๐žž U+1D79E 1D3FF ฮ  U+03A0 ๐žŸ U+1D79F 1D3FF ฮก U+03A1 ๐ž  U+1D7A0 1D3FF ฯด U+03F4 ๐žก U+1D7A1 1D3AD ฮฃ U+03A3 ๐žข U+1D7A2 1D3FF ฮค U+03A4 ๐žฃ U+1D7A3 1D3FF ฮฅ U+03A5 ๐žค U+1D7A4 1D3FF ฮฆ U+03A6 ๐žฅ U+1D7A5 1D3FF ฮง U+03A7 ๐žฆ U+1D7A6 1D3FF ฮจ U+03A8 ๐žง U+1D7A7 1D3FF ฮฉ U+03A9 ๐žจ U+1D7A8 1D3FF โˆ‡ U+2207 ๐žฉ U+1D7A9 1B5A2 ฮฑ U+03B1 ๐žช U+1D7AA 1D3F9 ฮฒ U+03B2 ๐žซ U+1D7AB 1D3F9 ฮณ U+03B3 ๐žฌ U+1D7AC 1D3F9 ฮด U+03B4 ๐žญ U+1D7AD 1D3F9 ฮต U+03B5 ๐žฎ U+1D7AE 1D3F9 ฮถ U+03B6 ๐žฏ U+1D7AF 1D3F9 ฮท U+03B7 ๐žฐ U+1D7B0 1D3F9 ฮธ U+03B8 ๐žฑ U+1D7B1 1D3F9 ฮน U+03B9 ๐žฒ U+1D7B2 1D3F9 ฮบ U+03BA ๐žณ U+1D7B3 1D3F9 ฮป U+03BB ๐žด U+1D7B4 1D3F9 ฮผ U+03BC ๐žต U+1D7B5 1D3F9 ฮฝ U+03BD ๐žถ U+1D7B6 1D3F9 ฮพ U+03BE ๐žท U+1D7B7 1D3F9 ฮฟ U+03BF ๐žธ U+1D7B8 1D3F9 ฯ€ U+03C0 ๐žน U+1D7B9 1D3F9 ฯ U+03C1 ๐žบ U+1D7BA 1D3F9 ฯ‚ U+03C2 ๐žป U+1D7BB 1D3F9 ฯƒ U+03C3 ๐žผ U+1D7BC 1D3F9 ฯ„ U+03C4 ๐žฝ U+1D7BD 1D3F9 ฯ… U+03C5 ๐žพ U+1D7BE 1D3F9 ฯ† U+03C6 ๐žฟ U+1D7BF 1D3F9 ฯ‡ U+03C7 ๐Ÿ€ U+1D7C0 1D3F9 ฯˆ U+03C8 ๐Ÿ U+1D7C1 1D3F9 ฯ‰ U+03C9 ๐Ÿ‚ U+1D7C2 1D3F9 โˆ‚ U+2202 ๐Ÿƒ U+1D7C3 1B5C1 ฯต U+03F5 ๐Ÿ„ U+1D7C4 1D3CF ฯ‘ U+03D1 ๐Ÿ… U+1D7C5 1D3F4 ฯฐ U+03F0 ๐Ÿ† U+1D7C6 1D3D6 ฯ• U+03D5 ๐Ÿ‡ U+1D7C7 1D3F2 ฯฑ U+03F1 ๐Ÿˆ U+1D7C8 1D3D7 ฯ– U+03D6 ๐Ÿ‰ U+1D7C9 1D3F3 Original sans-serif-italic ฮ”code point A U+0041 ๐˜ˆ U+1D608 1D5C7 B U+0042 ๐˜‰ U+1D609 1D5C7 C U+0043 ๐˜Š U+1D60A 1D5C7 D U+0044 ๐˜‹ U+1D60B 1D5C7 E U+0045 ๐˜Œ U+1D60C 1D5C7 F U+0046 ๐˜ U+1D60D 1D5C7 G U+0047 ๐˜Ž U+1D60E 1D5C7 H U+0048 ๐˜ U+1D60F 1D5C7 I U+0049 ๐˜ U+1D610 1D5C7 J U+004A ๐˜‘ U+1D611 1D5C7 K U+004B ๐˜’ U+1D612 1D5C7 L U+004C ๐˜“ U+1D613 1D5C7 M U+004D ๐˜” U+1D614 1D5C7 N U+004E ๐˜• U+1D615 1D5C7 O U+004F ๐˜– U+1D616 1D5C7 P U+0050 ๐˜— U+1D617 1D5C7 Q U+0051 ๐˜˜ U+1D618 1D5C7 R U+0052 ๐˜™ U+1D619 1D5C7 S U+0053 ๐˜š U+1D61A 1D5C7 T U+0054 ๐˜› U+1D61B 1D5C7 U U+0055 ๐˜œ U+1D61C 1D5C7 V U+0056 ๐˜ U+1D61D 1D5C7 W U+0057 ๐˜ž U+1D61E 1D5C7 X U+0058 ๐˜Ÿ U+1D61F 1D5C7 Y U+0059 ๐˜  U+1D620 1D5C7 Z U+005A ๐˜ก U+1D621 1D5C7 a U+0061 ๐˜ข U+1D622 1D5C1 b U+0062 ๐˜ฃ U+1D623 1D5C1 c U+0063 ๐˜ค U+1D624 1D5C1 d U+0064 ๐˜ฅ U+1D625 1D5C1 e U+0065 ๐˜ฆ U+1D626 1D5C1 f U+0066 ๐˜ง U+1D627 1D5C1 g U+0067 ๐˜จ U+1D628 1D5C1 h U+0068 ๐˜ฉ U+1D629 1D5C1 i U+0069 ๐˜ช U+1D62A 1D5C1 j U+006A ๐˜ซ U+1D62B 1D5C1 k U+006B ๐˜ฌ U+1D62C 1D5C1 l U+006C ๐˜ญ U+1D62D 1D5C1 m U+006D ๐˜ฎ U+1D62E 1D5C1 n U+006E ๐˜ฏ U+1D62F 1D5C1 o U+006F ๐˜ฐ U+1D630 1D5C1 p U+0070 ๐˜ฑ U+1D631 1D5C1 q U+0071 ๐˜ฒ U+1D632 1D5C1 r U+0072 ๐˜ณ U+1D633 1D5C1 s U+0073 ๐˜ด U+1D634 1D5C1 t U+0074 ๐˜ต U+1D635 1D5C1 u U+0075 ๐˜ถ U+1D636 1D5C1 v U+0076 ๐˜ท U+1D637 1D5C1 w U+0077 ๐˜ธ U+1D638 1D5C1 x U+0078 ๐˜น U+1D639 1D5C1 y U+0079 ๐˜บ U+1D63A 1D5C1 z U+007A ๐˜ป U+1D63B 1D5C1 Original bold-sans-serif ฮ”code point A U+0041 ๐—” U+1D5D4 1D593 B U+0042 ๐—• U+1D5D5 1D593 C U+0043 ๐—– U+1D5D6 1D593 D U+0044 ๐—— U+1D5D7 1D593 E U+0045 ๐—˜ U+1D5D8 1D593 F U+0046 ๐—™ U+1D5D9 1D593 G U+0047 ๐—š U+1D5DA 1D593 H U+0048 ๐—› U+1D5DB 1D593 I U+0049 ๐—œ U+1D5DC 1D593 J U+004A ๐— U+1D5DD 1D593 K U+004B ๐—ž U+1D5DE 1D593 L U+004C ๐—Ÿ U+1D5DF 1D593 M U+004D ๐—  U+1D5E0 1D593 N U+004E ๐—ก U+1D5E1 1D593 O U+004F ๐—ข U+1D5E2 1D593 P U+0050 ๐—ฃ U+1D5E3 1D593 Q U+0051 ๐—ค U+1D5E4 1D593 R U+0052 ๐—ฅ U+1D5E5 1D593 S U+0053 ๐—ฆ U+1D5E6 1D593 T U+0054 ๐—ง U+1D5E7 1D593 U U+0055 ๐—จ U+1D5E8 1D593 V U+0056 ๐—ฉ U+1D5E9 1D593 W U+0057 ๐—ช U+1D5EA 1D593 X U+0058 ๐—ซ U+1D5EB 1D593 Y U+0059 ๐—ฌ U+1D5EC 1D593 Z U+005A ๐—ญ U+1D5ED 1D593 a U+0061 ๐—ฎ U+1D5EE 1D58D b U+0062 ๐—ฏ U+1D5EF 1D58D c U+0063 ๐—ฐ U+1D5F0 1D58D d U+0064 ๐—ฑ U+1D5F1 1D58D e U+0065 ๐—ฒ U+1D5F2 1D58D f U+0066 ๐—ณ U+1D5F3 1D58D g U+0067 ๐—ด U+1D5F4 1D58D h U+0068 ๐—ต U+1D5F5 1D58D i U+0069 ๐—ถ U+1D5F6 1D58D j U+006A ๐—ท U+1D5F7 1D58D k U+006B ๐—ธ U+1D5F8 1D58D l U+006C ๐—น U+1D5F9 1D58D m U+006D ๐—บ U+1D5FA 1D58D n U+006E ๐—ป U+1D5FB 1D58D o U+006F ๐—ผ U+1D5FC 1D58D p U+0070 ๐—ฝ U+1D5FD 1D58D q U+0071 ๐—พ U+1D5FE 1D58D r U+0072 ๐—ฟ U+1D5FF 1D58D s U+0073 ๐˜€ U+1D600 1D58D t U+0074 ๐˜ U+1D601 1D58D u U+0075 ๐˜‚ U+1D602 1D58D v U+0076 ๐˜ƒ U+1D603 1D58D w U+0077 ๐˜„ U+1D604 1D58D x U+0078 ๐˜… U+1D605 1D58D y U+0079 ๐˜† U+1D606 1D58D z U+007A ๐˜‡ U+1D607 1D58D ฮ‘ U+0391 ๐– U+1D756 1D3C5 ฮ’ U+0392 ๐— U+1D757 1D3C5 ฮ“ U+0393 ๐˜ U+1D758 1D3C5 ฮ” U+0394 ๐™ U+1D759 1D3C5 ฮ• U+0395 ๐š U+1D75A 1D3C5 ฮ– U+0396 ๐› U+1D75B 1D3C5 ฮ— U+0397 ๐œ U+1D75C 1D3C5 ฮ˜ U+0398 ๐ U+1D75D 1D3C5 ฮ™ U+0399 ๐ž U+1D75E 1D3C5 ฮš U+039A ๐Ÿ U+1D75F 1D3C5 ฮ› U+039B ๐  U+1D760 1D3C5 ฮœ U+039C ๐ก U+1D761 1D3C5 ฮ U+039D ๐ข U+1D762 1D3C5 ฮž U+039E ๐ฃ U+1D763 1D3C5 ฮŸ U+039F ๐ค U+1D764 1D3C5 ฮ  U+03A0 ๐ฅ U+1D765 1D3C5 ฮก U+03A1 ๐ฆ U+1D766 1D3C5 ฯด U+03F4 ๐ง U+1D767 1D373 ฮฃ U+03A3 ๐จ U+1D768 1D3C5 ฮค U+03A4 ๐ฉ U+1D769 1D3C5 ฮฅ U+03A5 ๐ช U+1D76A 1D3C5 ฮฆ U+03A6 ๐ซ U+1D76B 1D3C5 ฮง U+03A7 ๐ฌ U+1D76C 1D3C5 ฮจ U+03A8 ๐ญ U+1D76D 1D3C5 ฮฉ U+03A9 ๐ฎ U+1D76E 1D3C5 โˆ‡ U+2207 ๐ฏ U+1D76F 1B568 ฮฑ U+03B1 ๐ฐ U+1D770 1D3BF ฮฒ U+03B2 ๐ฑ U+1D771 1D3BF ฮณ U+03B3 ๐ฒ U+1D772 1D3BF ฮด U+03B4 ๐ณ U+1D773 1D3BF ฮต U+03B5 ๐ด U+1D774 1D3BF ฮถ U+03B6 ๐ต U+1D775 1D3BF ฮท U+03B7 ๐ถ U+1D776 1D3BF ฮธ U+03B8 ๐ท U+1D777 1D3BF ฮน U+03B9 ๐ธ U+1D778 1D3BF ฮบ U+03BA ๐น U+1D779 1D3BF ฮป U+03BB ๐บ U+1D77A 1D3BF ฮผ U+03BC ๐ป U+1D77B 1D3BF ฮฝ U+03BD ๐ผ U+1D77C 1D3BF ฮพ U+03BE ๐ฝ U+1D77D 1D3BF ฮฟ U+03BF ๐พ U+1D77E 1D3BF ฯ€ U+03C0 ๐ฟ U+1D77F 1D3BF ฯ U+03C1 ๐ž€ U+1D780 1D3BF ฯ‚ U+03C2 ๐ž U+1D781 1D3BF ฯƒ U+03C3 ๐ž‚ U+1D782 1D3BF ฯ„ U+03C4 ๐žƒ U+1D783 1D3BF ฯ… U+03C5 ๐ž„ U+1D784 1D3BF ฯ† U+03C6 ๐ž… U+1D785 1D3BF ฯ‡ U+03C7 ๐ž† U+1D786 1D3BF ฯˆ U+03C8 ๐ž‡ U+1D787 1D3BF ฯ‰ U+03C9 ๐žˆ U+1D788 1D3BF โˆ‚ U+2202 ๐ž‰ U+1D789 1B587 ฯต U+03F5 ๐žŠ U+1D78A 1D395 ฯ‘ U+03D1 ๐ž‹ U+1D78B 1D3BA ฯฐ U+03F0 ๐žŒ U+1D78C 1D39C ฯ• U+03D5 ๐ž U+1D78D 1D3B8 ฯฑ U+03F1 ๐žŽ U+1D78E 1D39D ฯ– U+03D6 ๐ž U+1D78F 1D3B9 0 U+0030 ๐Ÿฌ U+1D7EC 1D7BC 1 U+0031 ๐Ÿญ U+1D7ED 1D7BC 2 U+0032 ๐Ÿฎ U+1D7EE 1D7BC 3 U+0033 ๐Ÿฏ U+1D7EF 1D7BC 4 U+0034 ๐Ÿฐ U+1D7F0 1D7BC 5 U+0035 ๐Ÿฑ U+1D7F1 1D7BC 6 U+0036 ๐Ÿฒ U+1D7F2 1D7BC 7 U+0037 ๐Ÿณ U+1D7F3 1D7BC 8 U+0038 ๐Ÿด U+1D7F4 1D7BC 9 U+0039 ๐Ÿต U+1D7F5 1D7BC

This section is non-normative.

MathML Core is based on MathML3. See the appendix E of [MathML3] for the people that contributed to that specification.

We would like to thank the people who, through their input and feedback on public communication channels have helped us with the creation of this specification: Andrรฉ Greiner-Petter, Anne van Kesteren, Boris Zbarsky, Brian Smith, Daniel Marques, David Carlisle, Deyan Ginev, Elika Etemad, Emilio Cobos รlvarez, ExE Boss, Ian Kilpatrick, Koji Ishii, L. David Baron, Michael Kohlhase, Michael Smith, Moritz Schubotz, Murray Sargent, Ryosuke Niwa, Sergey Malkin, Tab Atkins Jr., Viktor Yaffle and frankvel.

In addition, we would like to extend special thanks to Brian Kardell, Neil Soiffer and Rob Buis for help with the editing.

Many thanks also to the following people for their help with the test suite: Brian Kardell, Frรฉdรฉric Wang, Neil Soiffer and Rob Buis. Several tests are also based on MathML tests from browser repositories and we are grateful to the Mozilla and WebKit contributors.

Community Group members who have regularly participated to MathML Core meetings during the development of this specification: Brian Kardell, Bruce Miller, David Carlisle, Murray Sargent, Frรฉdรฉric Wang, Neil Soiffer (Chair), Patrick Ion, Rob Buis, David Farmer, Steve Noble, Daniel Marques, Sam Dooley.

This section is non-normative.

This specification adds script execution mechanisms via the MathML event handler attributes described in 2.1.3 Global Attributes. UAs may decide to prevent execution of scripts specified in these attributes, following the same security restrictions as those applying to HTML or SVG elements.

Note

In [MathML3], it was possible to make any element linkable via href or xlink:href attributes, with an URL pointing to an untrusted resource or even javascript: execution. These attributes are not available in MathML Core. However, as described in 2.2.1 HTML and SVG it is possible to embed HTML or SVG content inside MathML, including HTML or SVG links.

Note

In [MathML3], it was possible to use the <maction> element with the actiontype value set to "statusline" in order to override the text of the browser statusline. In particular, an attacker could use this to hide the URL text of an untrusted link e.g.

<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>

This feature is not available in MathML Core, where the <maction> element essentially behaves like an <mrow> container with extra style.

An attacker can try to hang the UA by inserting very large stretchy operators, effectively making the algorithm shaping of the glyph assembly deal with a huge amount of glyphs. UAs may work around this issue by limiting rmin and GlyphAssembly.partCount to maximum values.

As described in CSS Fonts Module, an attacker can try to rely on malformed or malicious fonts to exploit potential security faults in browser implementations. Because the OpenType MATH table is used extensively in this specification, UAs should ensure their font sanitization mechanisms are able to deal with that table.

Finally, in order to reduce attack surface, some UAs expose runtime options to disable part of the web platform. Disabling MathML layout can essentially be achieved by forcing elements in the DOM tree to be put in the HTML namespace and disabling 4. CSS Extensions for Math Layout.

This section is non-normative.

As explained in 2.2.1 HTML and SVG, MathML can be embedded into an SVG image via the <foreignObject> element which can thus be used in a <canvas> element. UA may decide to implement any measure to prevent potential information leakage such as tainting the canvas and returning a "SecurityError" DOMException when one tries to access the canvas' content via JavaScript APIs.

In the following example, the canvas image is set to the image of some MathML content with a HTML link to https://example.org/. It should not be possible for an attacker to determine whether that link was visited by reading pixels via context.getImageData. For more about links in MathML, see E. Security Considerations.

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>&#x25a0;</mtext>
          <mtext><a href="https://example.org/">&#x25a0;</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)}`;

This specification describes layout of a DOM elements which may involve system fonts. Like for HTML/CSS layout, it is thus possible to use JavaScript APIs (e.g. context.getImageData on content embedded in a canvas context, or even just getBoundingClientRect()) to measure box sizes and positions and infer data from system fonts. By combining miscelleneaous tests on such fonts and comparing measurements against results of well-known fonts, an attacker can try and determine the default fonts of the user.

The following HTML+CSS+JavaScript document relies on a Web font with exotic metrics to try and determine whether A Well Known System Font is available by default.

<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>

The following HTML+CSS+JavaScript document tries to determine whether the the UI serif font provide Asian glyphs:

<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>

The following HTML+CSS document contains the same text rendered with text-decoration-thickness set to from-font and 1em (here 100 pixels) respectively. By comparing the heights of the two under lines, one can calculate a good approximation of the underlineThickness value from the PostScript Table [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>

This specification relies on information from 5. OpenType MATH table to render MathML content. One can get good approximation of most layout parameters from MathConstants and MathGlyphInfo using measurement techniques similar to what is described above for HTML+CSS+JavaScript document. The use of the MathVariants table for MathML rendering can also be observed by putting stretchy operators of different sizes inside a canvas context.

Although none of these parameters taken individually are personal, implementing this specification increases the set of exposed font information that can be used by an attacker to implement fingerprinting techniques. Typically, they could help dermine available and preferred math fonts for a user.

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words โ€œMUSTโ€, โ€œMUST NOTโ€, โ€œREQUIREDโ€, โ€œSHALLโ€, โ€œSHALL NOTโ€, โ€œSHOULDโ€, โ€œSHOULD NOTโ€, โ€œRECOMMENDEDโ€, โ€œMAYโ€, and โ€œOPTIONALโ€ in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119].

Examples in this specification are introduced with the words โ€œfor exampleโ€ or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word โ€œNoteโ€ and are set apart from the normative text with class="note", like this:

Note

Note, this is an informative note.

Advisements are normative sections styled to evoke special attention and are set apart from other normative text with <strong class="advisement">, like this: UAs MUST provide an accessible alternative.

[CSS-ALIGN-3]
CSS Box Alignment Module Level 3. Elika Etemad; Tab Atkins Jr.. W3C. 24 December 2021. W3C Working Draft. URL: https://www.w3.org/TR/css-align-3/
[CSS-BACKGROUNDS-3]
CSS Backgrounds and Borders Module Level 3. Bert Bos; Elika Etemad; Brad Kemper. W3C. 26 July 2021. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BOX-3]
CSS Box Model Module Level 3. Elika Etemad. W3C. 22 December 2020. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-box-3/
[css-box-4]
CSS Box Model Module Level 4. Elika Etemad. W3C. 21 April 2020. W3C Working Draft. URL: https://www.w3.org/TR/css-box-4/
[CSS-COLOR-3]
CSS Color Module Level 3. Tantek ร‡elik; Chris Lilley; David Baron. W3C. 18 January 2022. W3C Recommendation. URL: https://www.w3.org/TR/css-color-3/
[CSS-DISPLAY-3]
CSS Display Module Level 3. Tab Atkins Jr.; Elika Etemad. W3C. 3 September 2021. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-display-3/
[CSS-FONTS-4]
CSS Fonts Module Level 4. John Daggett; Myles Maxfield; Chris Lilley. W3C. 21 December 2021. W3C Working Draft. URL: https://www.w3.org/TR/css-fonts-4/
[CSS-SIZING-3]
CSS Box Sizing Module Level 3. Tab Atkins Jr.; Elika Etemad. W3C. 17 December 2021. W3C Working Draft. URL: https://www.w3.org/TR/css-sizing-3/
[CSS-TEXT-3]
CSS Text Module Level 3. Elika Etemad; Koji Ishii; Florian Rivoal. W3C. 22 April 2021. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-text-3/
[CSS-VALUES-3]
CSS Values and Units Module Level 3. Tab Atkins Jr.; Elika Etemad. W3C. 6 June 2019. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-values-3/
[CSS-WRITING-MODES-3]
CSS Writing Modes Level 3. Elika Etemad; Koji Ishii. W3C. 10 December 2019. W3C Recommendation. URL: https://www.w3.org/TR/css-writing-modes-3/
[CSS2]
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. Bert Bos; Tantek ร‡elik; Ian Hickson; Hรฅkon Wium Lie. W3C. 7 June 2011. W3C Recommendation. URL: https://www.w3.org/TR/CSS21/
[DOM]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[HTML]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jรคgenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[INFRA]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[OPEN-FONT-FORMAT]
Information technology โ€” Coding of audio-visual objects โ€” Part 22: Open Font Format. International Organization for Standardization. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c052136_ISO_IEC_14496-22_2009%28E%29.zip
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[SELECT]
Selectors Level 3. Tantek ร‡elik; Elika Etemad; Daniel Glazman; Ian Hickson; Peter Linss; John Williams. W3C. 6 November 2018. W3C Recommendation. URL: https://www.w3.org/TR/selectors-3/
[SVG]
Scalable Vector Graphics (SVG) 1.0 Specification. Jon Ferraiolo. W3C. 4 September 2001. W3C Recommendation. URL: https://www.w3.org/TR/SVG/
[UNICODE]
The Unicode Standard. Unicode Consortium. URL: https://www.unicode.org/versions/latest/
[WEBIDL]
Web IDL Standard. Edgar Chen; Timothy Gu. WHATWG. Living Standard. URL: https://webidl.spec.whatwg.org/
[CSS-LAYOUT-API-1]
CSS Layout API Level 1. Greg Whitworth; Ian Kilpatrick; Tab Atkins Jr.; Shane Stephens; Robert O'Callahan; Rossen Atanassov. W3C. 12 April 2018. W3C Working Draft. URL: https://www.w3.org/TR/css-layout-api-1/
[CSS-TEXT-DECOR-4]
CSS Text Decoration Module Level 4. Elika Etemad; Koji Ishii. W3C. 6 May 2020. W3C Working Draft. URL: https://www.w3.org/TR/css-text-decor-4/
[MATHML3]
Mathematical Markup Language (MathML) Version 3.0 2nd Edition. David Carlisle; Patrick D F Ion; Robert R Miner. W3C. 10 April 2014. W3C Recommendation. URL: https://www.w3.org/TR/MathML3/
[MATHML4]
Mathematical Markup Language (MathML) Version 4.0. David Carlisle et al.. W3C Editor's Draft. URL: https://w3c.github.io/mathml/
[OPEN-TYPE-MATH-ILLUMINATED]
OpenType Math Illuminated. Ulrik Vieth. 2009. URL: https://www.tug.org/TUGboat/tb30-1/tb94vieth.pdf
[OPEN-TYPE-MATH-IN-HARFBUZZ]
OpenType MATH in HarfBuzz. Frรฉdรฉric Wang. URL: https://frederic-wang.fr/opentype-math-in-harfbuzz.html
[TEXBOOK]
The TeXBook. Knuth, Donald E.. Addison-Wesley Professional. 1984.

โ†‘


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4