Copyright © 2022 W3C^{®} (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
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.
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.
This section is nonnormative.
The [MATHML3] specification has several shortcomings that make it hard to implement consistently across web rendering engines or to extend with userdefined 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 [OPENFONTFORMAT], [OPENTYPEMATHILLUMINATED]. It also relies on modern browser implementations and web technologies [HTML] clarifying interactions with them when needed or introducing new lowlevel 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 browserdriven 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.
<annotation>
<annotationxml>
<maction>
<math>
<merror>
<mfrac>
<mi>
<mmultiscripts>
<mn>
<mo>
<mover>
<mpadded>
<mphantom>
<mprescripts>
<mroot>
<mrow>
<ms>
<mspace>
<msqrt>
<mstyle>
<msub>
<msubsup>
<msup>
<mtable>
<mtd>
<mtext>
<mtr>
<munder>
<munderover>
<none>
<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:
maction
attributesmo
attributesmpadded
attributesmspace
attributesmunderover
attributesmtd
attributesencoding
display
linethickness
MathML specifies a single toplevel 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 caseinsensitive
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
(mathstyle
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
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 <mrow>
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.
$$...$$
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
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.<mrow>
Because good mathematical rendering requires use of mathematical
fonts, the
user agent stylesheet
should set the
fontfamily
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
fontstyle
, fontweight
,
direction
or textindent
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;
writingmode: horizontaltb;
textindent: 0;
letterspacing: normal;
lineheight: normal;
wordspacing: normal;
fontfamily: math;
fontsize: inherit;
fontstyle: normal;
fontweight: normal;
display: inline math;
mathstyle: compact;
mathshift: normal;
mathlevel: 0;
}
math[display="block" i] {
display: block math;
mathstyle: normal;
}
math[display="inline" i] {
display: inline math;
mathstyle: compact;
}
<integer>
value as defined in
[CSSVALUES3], whose first character is neither
U+002D HYPHENMINUS character () nor
U+002B PLUS SIGN (+).
<lengthpercentage>
value as defined in
[CSSVALUES3]
<color>
value as defined in [CSSCOLOR3]
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 caseinsensitive 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 caseinsensitive match
to rtl
is mapped to rtl
while
an ASCII caseinsensitive match to ltr
is mapped to ltr
.
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 righttoleft.
<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
backgroundcolor
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 lengthpercentage.
In that case, the user agent is expected to treat the attribute as a
presentational hint setting the element's
fontsize
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.
The
mathvariant
attribute,
if present, must be an
ASCII caseinsensitive
match to one of:
normal
,
bold
,
italic
,
bolditalic
,
doublestruck
,
boldfraktur
,
script
,
boldscript
,
fraktur
,
sansserif
,
boldsansserif
,
sansserifitalic
,
sansserifbolditalic
,
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
property to the corresponding value.
More precisely, an
ASCII caseinsensitive match
to texttransform
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 typographicallyrelated
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="doublestruck">A</mi>
</math>
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.
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 [OPENFONTFORMAT]
to provide both styles. Page authors may use the
fontvariantalternates
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
property to the corresponding value.
More precisely, an
ASCII caseinsensitive match
to mathstyle
true
is mapped to normal
while
an ASCII caseinsensitive 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
unsignedinteger.
In that case
the user agent is expected to treat the scriptlevel
attribute as a
presentational hint setting the element's
property to the corresponding value.
More precisely,
mathdepth
+<U>
, <U>
and
<U>
are respectively mapped to
add(<U>)
add(<U>)
and <U>
.
and displaystyle
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
scriptlevel
fontsize: 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 fontsize 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 fontsize as the toplevel 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>
\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="fontsize: 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>
<math>
element can be used at
position permitted for
flow content
(e.g. a
<foreignObject>
element)
or phrasing content.
<mi>
,
<mo>
,
<mn>
,
<ms>
and
<mtext>
elements.
<svg>
element can be used inside
<annotationxml>
elements.
<annotationxml>
elements with
encoding
application/xhtml+xml
or text/html
.
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 fontfamily
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="fontfamily: 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 useragent level style sheet defaults.
The following CSS features are not supported and must be ignored:
writingmode
is treated as horizontaltb
on all MathML
elements.whitespace
is treated as nowrap
on all MathML elements.
width
,
height
,
inlinesize
and
blocksize
are treated as auto
on elements
with computed display value
block math
or
inline math
.
float
and clear
are treated as none
on all MathML elements.
aligncontent
, justifycontent
,
alignself
, justifyself
have
no effect on MathML elements.
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.
WebIDL[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 [OPENFONTFORMAT] 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 focusrelated pseudoclasses as defined in Selectors Level 3 apply, as defined in that specification.
The contents of embedded
elements
(including HTML elements inside token elements),
contribute to the sequential focus order of the containing owner HTML
document (combined sequential focus order).
<math>
The default display
property
is described in A. User Agent Stylesheet:
<math>
root,
it is equal to inline math
or block math
according to the value of the display
attribute.
<mtable>
,
<mtr>
,
<mtd>
it is respectively equal to
inlinetable
,
tablerow
and
tablecell
.
<maction>
and <semantics>
elements, it is equal to
none
.
block math
.
In order to specify math layout in different writing modes, this specification uses concepts from [CSSWRITINGMODES3]:
horizontallr
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:
Block metrics. The block size, first baseline set and last baseline set. The following baselines are defined for MathML boxes:
Given a MathML box, the following offsets are defined:
Here are examples of offsets obtained from linerelative metrics:
ltr
and
is the inline size of the box −
(lineleft offset + inline size of
the child box) otherwise.
horizontallr
,
verticalrl
or sidewaysrl
and is the linedescent otherwise.
The layout algorithms described in this chapter for MathML boxes have the following structure:
During box layout, the following extra steps must be performed:
The box metrics and offsets of the
padding box
are obtained from the
content box
by taking into account the corresponding
padding
properties as described in CSS.
The baselines of the padding box are the same as the one of the content box.
If the content box has a top accent attachment then the padding box has the same property, increased by the inlinestart padding. If the content box has an italic correction then the padding box has the same property, increased by the inlineend padding.
The box metrics and offsets of the
border box
are obtained from the
padding box
by taking into account the corresponding
borderwidth
property as described in CSS.
In general, the baselines of the border box are the same as the one of the padding box. However, if the lineover border is positive then the inkover baseline is set to the lineover edge of the border box and if the lineunder border is positive then the inkunder baseline is set to the lineunder edge of the border box.
If the padding box has a top accent attachment then the border box has the same property, increased by the borderwidth of its inlinestart egde. If the padding box has an italic correction then the border box has the same property, increased by the borderwidth of its inlineend egde.
The box metrics and offsets of the
margin box
are obtained from the
border box
by taking into account the corresponding
margin
properties as described in CSS.
The baselines of the margin box are the same as the one of the border box.
If the padding box has a top accent attachment then the margin box has the same property, increased by the inlinestart margin. If the padding box has an italic correction then the margin box has the same property, increased by the inlineend margin.
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 lineascent and ink linedescent 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.
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 inflow 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.
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> if </mtext>
<mrow>
<mi>x</mi>
<mo>≥</mo>
<mn>1</mn>
</mrow>
<mtext> and </mtext>
<mn>2</mn>
<mtext> 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 mincontent inline size,
maxcontent 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:
<mtext>
element.
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 {
texttransform: mathauto;
}
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
element.
<mtext>
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.
fence
and separator
to describe specific semantics of operators.
The default values may be determined from the
Operators_fence
and Operators_separator
tables, or equivalently
the humanreadable version
of the operator dictionary.
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
attribute to force it to be
treated as a prefix operator.
Spacing can also be specified explicitly using the
form
and
lspace
attributes.
rspace
<math>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<mo form="prefix">+</mo>
<mn>3</mn>
<mo lspace="2em">+</mo>
<mn>4</mn>
<mo rspace="3em">+</mo>
<mn>5</mn>
</math>
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 dictionarybased, as explained in 3.2.4.2 Dictionarybased 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:
<mo>
element;<mfrac>
,
whose first inflow child exists and is an
embellished operator;
<mpadded>
,
whose inflow children consist (in any order) of one
embellished operator and zero or more
spacelike elements.
The core operator of an embellished operator
is the <mo>
element defined recursively as
follows:
<mo>
element; is the element itself.<mfrac>
element is the core operator of its first inflow child.
<mpadded>
is the core operator of its unique embellished operator
inflow 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
element, if present, must be an
ASCII caseinsensitive
match to one of these values.
<mo>
The algorithm for determining the form
of an embellished operator is as follows:
form
attribute is present and valid
on the core operator, then its
ASCII lowercased value
is used;
<mpadded>
or
<msqrt>
with more than one inflow child
(ignoring all spacelike children) then it has
form prefix
;
<mpadded>
or
<msqrt>
with more than one inflow child
(ignoring all spacelike children) then it has
form postfix
;
postfix
;
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
element, if present, must be a
boolean.
<mo>
The
lspace
,
rspace
,
minsize
properties of an embellished operator are
lengthpercentage.
The maxsize
property
of an embellished operator is either a
lengthpercentage or ∞.
The
lspace
,
rspace
,
minsize
and
maxsize
attributes on the
element, if present,
must be a lengthpercentage.
<mo>
The algorithm for determining the properties of an embellished operator is as follows:
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;form
of an embellished operator;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.
Category
is Default
and
the form
of embellished operator was not explicitly specified
as an attribute on its core operator, then
Category
to the result of the
algorithm to determine the category of an operator
(Content, Form)
where Form
is
infix
.Category
is Default
, then
run the algorithm again with Form
set to
prefix
.Category
is Default
, then
run the algorithm again with Form
set to
postfix
.Category
.
When used during layout,
the values of
,
stretchy
,
symmetric
,
largeop
,
movablelimits
,
lspace
,
rspace
are
obtained by the
algorithm for determining the properties of an embellished operator with the following extra resolutions:minsize
lspace
,
rspace
are interpreted
relative to the value read from the dictionary
or to the fallback value above.
minsize
and maxsize
are described in
3.2.4.3 Layout of operators.
lspace
, rspace
,
minsize
and maxsize
rely on the
font style of the core operator, not the one of the
embellished operator.
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:
<mo>
element is not
made
of a single character c
then fallback to the
layout algorithm of 3.2.1.1 Layout of <mtext>
.
stretchy
property:
c
in the inline direction
with the
first available font
then fallback to the
layout algorithm of 3.2.1.1 Layout of <mtext>
.
<mtext>
.
T_{inline}
then
fallback to the
layout algorithm of 3.2.1.1 Layout of <mtext>
.
T_{inline}
.
T_{inline}
and
at position determined by the previous box metrics.
c
in the block direction
with the
first available font
then fallback to the
layout algorithm of 3.2.1.1 Layout of <mtext>
.
(U_{ascent}, U_{descent})
then
fallback to the
layout algorithm of 3.2.1.1 Layout of <mtext>
.
symmetric
property
then set the target sizes
T_{ascent}
and
T_{descent}
to
S_{ascent}
and
S_{descent}
respectively:
S_{ascent}
=
max(
U_{ascent}
− AxisHeight,
U_{descent}
+ AxisHeight
) + AxisHeight
S_{descent}
=
max(
U_{ascent}
− AxisHeight,
U_{descent}
+ AxisHeight
) − AxisHeight
U_{ascent}
and
U_{descent}
respectively.
minsize
and maxsize
be the minsize
and maxsize
properties on the
operator. Percentage values are intepreted relative
to T
=
T_{ascent}
+
T_{descent}
.
If minsize
< 0 then set minsize
to 0.
If maxsize
< minsize
then
set maxsize
to minsize
.
Then 0 ≤ minsize
≤ maxsize
:
T
≤ 0 then set
T_{ascent}
to minsize
/ 2 and
then set T_{descent}
to minsize
−
T_{ascent}
T
< minsize
then first
multiply
T_{ascent}
by minsize
/ T
and then set T_{descent}
to minsize

T_{ascent}
.
maxsize
< T
then first multiply
T_{ascent}
by
maxsize
/ T
and
then set T_{descent}
to maxsize
−
T_{ascent}
.
T_{ascent}
+
T_{descent}
.
The inline size of the content is the width of
the stretchy glyph. The stretchy glyph is shifted
towards the lineunder by a value Δ so that its
center aligns with the center of the target:
the ink ascent of the content is
the ascent of the stretchy glyph − Δ
and the ink descent of the content is
the descent of the stretchy glyph + Δ.
These centers have coordinates "½(ascent − descent)"
so Δ = [(ascent of stretchy glyph − descent of stretchy glyph) − (T_{ascent}
− T_{descent}
)] / 2.
T_{ascent}
+
T_{descent}
and at position determined by the previous box metrics
shifted by Δ towards the lineover.
largeop
property and
if mathstyle
on
the <mo>
element is normal
,
then:
Use the
MathVariants
table to try and find a glyph of height at least
DisplayOperatorMinHeight
If none is found, fallback to the
largest nonbase glyph. If none is found, fallback to
the layout algorithm of 3.2.1.1 Layout of <mtext>
.
<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.
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 lengthpercentage.
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="bordertop: 1px solid blue"/>
<mfrac>
<mrow>
<mn>2</mn>
<mspace depth="1em"
style="borderleft: 1px solid blue"/>
</mrow>
<mrow>
<mn>3</mn>
<mspace height="2em"
style="borderleft: 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 mincontent inline size and
maxcontent inline size of the content are
equal to the requested inline size.
The inline size, lineascent and linedescent of the content
are respectively
the requested inline size, lineascent and linedescent.
A number of MathML presentation elements are "spacelike" 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 spacelike element if it is:
<mtext>
or
<mspace>
;
<mpadded>
all of whose inflow children are spacelike.
<mphantom>
is not
automatically defined to be spacelike, unless its content is
spacelike. This is because operator spacing is affected by
whether adjacent elements are spacelike.
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
element.
<mtext>
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>
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 lefttoright 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 subexpressions, 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 inflow children
child_{1}, child_{2}, … child_{N}
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.
The algorithm for stretching operators along the block axis consists in the following steps:
L_{ToStretch}
containing
embellished operators with
a stretchy
property and block stretch axis ;
and a second list L_{NotToStretch}
.
L_{NotToStretch}
.
If L_{ToStretch}
is empty then stop.
If L_{NotToStretch}
is empty, perform
layout with stretch size constraint 0 on
all the items of L_{ToStretch}
.
U_{ascent}
and U_{descent}
as respectively the maximum
ink ascent and maximum ink descent of the margin boxes of
inflow children that
have been laid out in the previous step.
L_{ToStretch}
with
block stretch size constraint
(U_{ascent}, U_{descent})
.
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.
lspace
and
rspace
.
The mincontent inline size (respectively maxcontent inline size) are calculated using the following algorithm:
addspace
to true if
the element is a <math>
or is not an
embellished operator; and to false otherwise.
inlineoffset
to 0.previousitaliccorrection
to 0.inlineoffset
by
previousitaliccorrection
.
addspace
is true then
increment inlineoffset
by
its lspace
property.
inlineoffset
by
the mincontent inline size
(respectively maxcontent inline size) of
the child's margin box.
previousitaliccorrection
to
its italic correction. Otherwise set it to 0.
addspace
is true then
increment inlineoffset
by
its rspace
property.
inlineoffset
by
previousitaliccorrection
.
inlineoffset
.
The inflow children are laid out using the algorithm for stretching operators along the block axis.
The inline size of the content is calculated like the mincontent inline size and maxcontent inline size of the content, using the inline size of the inflow children's margin boxes instead.
The ink lineascent (respectively lineascent) of the content is the maximum of the ink lineascents (respectively lineascents) of all the inflow children's margin boxes. Similarly, the ink linedescent (respectively linedescent) of the content is the maximum of the ink linedescents (respectively ink lineascents) of all the inflow children's margin boxes.
The inflow children are positioned using the following algorithm:
addspace
to true if
the element is a <math>
or is not an
embellished operator; and to false otherwise.
inlineoffset
to 0.previousitaliccorrection
to 0.inlineoffset
by
previousitaliccorrection
.
addspace
is true then
increment inlineoffset
by
its lspace
property.
inlineoffset
and its block offset such
that the alphabetic baseline of the child is aligned with the alphabetic baseline.
inlineoffset
by
the inline size of the child's margin box.
previousitaliccorrection
to
its italic correction. Otherwise set it to 0.
addspace
is true then
increment inlineoffset
by
its rspace
property.
The italic correction of the content is set to the italic
correction of the last inflow child, which is
the final value of previousitaliccorrection
.
The
<mfrac>
element is used for fractions. It can also be used to mark up
fractionlike 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 lengthpercentage.
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 fontsize.
<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
to displaystyle
false
,
or if it was already false
increments
by 1, within its children.
It sets scriptlevel
mathshift
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 1pixel space is added around the element.
The user agent stylesheet
must contain the following rules:
mfrac {
paddinginlinestart: 1px;
paddinginlineend: 1px;
}
mfrac > * {
mathdepth: autoadd;
mathstyle: compact;
}
mfrac > :nthchild(2) {
mathshift: compact;
}
If the <mfrac>
element
has less or more than two inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called
numerator, the second inflow child is called
denominator and the layout algorithm is explained below.
<mrow>
<mfrac>
element has two children
that are inflow. Hence the CSS rules basically performs
scriptlevel
, displaystyle
and mathshift
changes for the numerator and
denominator.
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.
The mincontent inline size (respectively maxcontent inline size) of content is the maximum between the mincontent inline size (respectively maxcontent inline size) of the numerator's margin box and the mincontent inline size (respectively maxcontent 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:
mathstyle
is compact
(respectively normal
).
mathstyle
is compact
(respectively normal
) +
the ink linedescent of the numerator's margin box.
DenominatorShift
is the maximum between:
mathstyle
is compact
(respectively normal
).
mathstyle
is compact
(respectively normal
) +
the ink lineascent of the denominator's margin box −
the AxisHeight.
The lineascent of the content is the maximum between:
Numerator Shift
+
the lineascent of the numerator's margin box.
Denominator Shift
+
the lineascent of the denominator's margin box
The linedescent of the content is the maximum between:
Numerator Shift
+ the linedescent of the numerator's margin box.
Denominator Shift
+ the linedescent of the denominator's margin box.
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 lineover (respectively lineunder).
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 lineover. 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.
The mincontent inline size, maxcontent 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 mathstyle
is compact
then
TopShift
and
BottomShift
are respectively
set to StackTopShiftUp and StackBottomShiftDown.
Otherwise mathstyle
is normal
and
they are respectively set to StackTopDisplayStyleShiftUp
and StackBottomDisplayStyleShiftDown.
The Gap
is defined to be
(BottomShift
−
the ink lineascent of the denominator's margin box) +
(TopShift
−
the ink linedescent of the numerator's margin box).
If mathstyle
is compact
then GapMin
is StackGapMin
otherwise mathstyle
is normal
and it is StackDisplayStyleGapMin.
If Δ = GapMin
− Gap
is positive then
TopShift
and BottomShift
are respectively increased by Δ/2 and Δ − Δ/2.
The lineascent of the content is the maximum between:
TopShift
+
the lineascent of the numerator's margin box.
BottomShift
+ the lineascent of the denominator's margin box.
The linedescent of the content is the maximum between:
TopShift
+ the linedescent of the numerator's margin box.
BottomShift
+ the linedescent of the denominator's margin box.
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
lineover (respectively lineunder).
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 fontsize 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 mathshift
to
compact
.
The <mroot>
element sets
increments
by 2, and sets scriptlevel
to "false" in all
but its first child.
The user agent stylesheet
must contain the following rule in order to implement that behavior:
displaystyle
mroot > :not(:firstchild) {
mathdepth: add(2);
mathstyle: compact;
}
mroot, msqrt {
mathshift: 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
inflow children,
its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called
mroot base and
the second inflow child is called
mroot index
and its layout algorithm is explained below.
<mrow>
<mroot>
element has two children
that are inflow. 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
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.
<mrow>
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 mathstyle
is compact
and
RadicalDisplayStyleVerticalGap
if the mathstyle
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.
The mincontent inline size (respectively maxcontent 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 mincontent inline size (respectively maxcontent 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 lineascent of the content is the maximum between:
The linedescent 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 lineover equal to the lineascent 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).
The mincontent inline size (respectively maxcontent inline size) of the content is the sum of max(0, RadicalKernBeforeDegree), the mroot index's mincontent inline size (respectively maxcontent inline size) of the mroot index's margin box, max(−mincontent inline size, RadicalKernAfterDegree) (respectively max(−maxcontent inline size, RadicalKernAfterDegree)) and of the mincontent inline size (respectively maxcontent 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 lineascent of the content is the maximum between:
The linedescent of the content is the maximum between:
The inline offset of the index is AdjustedRadicalKernBeforeDegree. The inlineoffset 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 lineunder edge by a distance of RadicalDegreeBottomRaisePercent × the block size of B + the linedescent of the index's margin box.
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
element.
<mrow>
<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
fontsize 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 LaTeXlike 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
element.
The user agent stylesheet
must contain the following rule in order to visually highlight the error
message:
<mrow>
merror {
border: 1px solid red;
backgroundcolor: lightYellow;
}
The
<mpadded>
element renders the same as its inflow 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 lengthpercentage.
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>
Inflow children
of the <mpadded>
element are laid out
using the algorithm of the
element
to produce the
mpadded inner box for the content with parameters called
inner inline size, inner lineascent and inner linedescent.
The requested <mrow>
<mpadded>
parameters are determined as follows:
width
(respectively height
,
depth
, lspace
, voffset
)
attribute is absent, invalid or a
lengthpercentage
then the requested width
(respectively height, depth, lspace, voffset)
is the inner inline size
(respectively inner lineascent, inner linedescent,
0
,
0
).
width
attribute
(respectively height
, depth
,
lspace
, voffset
attributes).
If one of the requested width, depth, height or lspace values
is negative then it is treated as 0
.
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.
The mincontent inline size (respectively maxcontent inline size) of the content is the requested width calculated in 3.3.6.1 Inner box and requested parameters but using the mincontent inline size (respectively maxcontent 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 lineascent of the content is the requested height. The linedescent 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 lineover.
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
element.
The user agent stylesheet
must contain the following rule in order to hide the content:
<mrow>
mphantom {
visibility: hidden;
}
<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 generalpurpose 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 fontsize 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 inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called the
msub base, the second inflow child is called the
msub subscript and the layout algorithm is explained
in 3.4.1.2 Base with subscript.
<mrow>
If the <msup>
element
has less or more than two inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called the
msup base, the second inflow child is called the
msup superscript and the layout algorithm is explained
in 3.4.1.3 Base with superscript.
<mrow>
If the <msubsup>
element
has less or more than three inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called the
msubsup base, the second inflow child
is called the msubsup subscript,
its third inflow child is called
the msubsup superscript and the layout algorithm is explained
in 3.4.1.4 Base with subscript and superscript.
<mrow>
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
property and 0 otherwise.
largeop
The
mincontent inline size (respectively maxcontent inline size) of the content is the
mincontent inline size (respectively maxcontent inline size) inline size of the msub base's margin box −
LargeOpItalicCorrection
+
mincontent inline size (respectively maxcontent 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 lineascent of the content is the maximum between:
SubShift
.The linedescent of the content is the maximum between:
SubShift
.
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 lineunder.
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
property and 0 otherwise.
largeop
The
mincontent inline size (respectively maxcontent inline size) of
the content
is the
mincontent inline size (respectively maxcontent inline size) of
the msup base's margin box +
ItalicCorrection
+
the mincontent inline size (respectively maxcontent 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:
mathshift
property equal to
compact
, or
SuperscriptShiftUp otherwise.The lineascent of the content is the maximum between:
SuperShift
.The linedescent of the content is the maximum between:
SuperShift
.
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 lineover.
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.
The mincontent inline size (respectively maxcontent inline size and inline size) of the content is the maximum between the mincontent inline size (respectively maxcontent 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 lineascent of the msubsup subscript's
margin box) +
(SuperShift
− the ink linedescent 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:
SuperShift
− the ink linedescent 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 Δ.
SubSuperGap
.
If Δ > 0 then
increase SubscriptShift
(and so
SubSuperGap
too) by Δ.
The ink lineascent (respectively lineascent, ink linedescent,
linedescent) of the content
is set to the maximum
of the
ink lineascent (respectively lineascent, ink linedescent,
linedescent) 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.
Even when the msubsup subscript (respectively msubsup superscript) is an empty
box, <msubsup>
does not generally render the same as
3.4.1.3 Base with superscript
(respectively 3.4.1.2 Base with subscript)
because of the additional constraint on
SubSuperGap
.
Moreover, positioning the empty msubsup subscript
(respectively msubsup superscript)
may also change the total size.
In order to keep the algorithm simple, no attempt is made to handle empty scripts in a special way.
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
attribute (respectively the
accent
attribute).
accentunder
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 mathshift in scripts.
The following example, shows basic use of under and over scripts. The fontsize 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 inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called the
munder base and the second inflow child is called the
munder underscript.
<mrow>
If the <mover>
element
has less or more than two inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called the
mover base and the second inflow child is called the
mover overscript.
<mrow>
If the <munderover>
element
has less or more than three inflow children, its layout algorithm
is the same as the
element.
Otherwise, the first inflow child is called the
munderover base, the second inflow child
is called the munderover underscript
and its third inflow child is called
the munderover overscript.
<mrow>
If the
<munder>
, <mover>
or
<munderover>
elements have a computed
mathstyle
property equal to compact
and their base is an embellished operator with the
property, then
their layout algorithms are respectively
the same as the ones described for
movablelimits
<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.
L_{ToStretch}
containing
embellished operators with
a stretchy
property and inline stretch axis ;
and a second list L_{NotToStretch}
.
L_{NotToStretch}
.
If L_{ToStretch}
is empty then stop.
If L_{NotToStretch}
is empty, perform
layout with stretch size constraint 0 on
all the items of L_{ToStretch}
.
T
to
the maximum inline size of the
margin boxes of child boxes that have been laid out in the
previous step.
L_{ToStretch}
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
property and 0 otherwise.
largeop
The mincontent inline size (respectively maxcontent 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 mincontent inline size (respectively maxcontent inline size) of the munder base's margin box and munder underscript's margin box.
The inflow 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:
LargeOpItalicCorrection
.LargeOpItalicCorrection
.
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:
The munder base is an
embellished operator with the
property.
largeop
UnderShift
is the maximum of
UnderExtraDescender
is 0.
The munder base is an
embellished operator with the
property
and stretch axis inline.
stretchy
UnderShift
is the maximum of:
UnderExtraDescender
is 0.
UnderShift
is equal to UnderbarVerticalGap
if the accentunder
attribute is not an
ASCII caseinsensitive match to true
and to zero otherwise.
UnderExtraAscender
is
UnderbarExtraDescender.
The lineascent of the content is the maximum between:
UnderShift
.The linedescent of the content is the maximum between:
UnderShift
+ UnderExtraAscender
.
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 lineunder by a distance equal to
the ink linedescent 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
property and 0 otherwise.
largeop
The mincontent inline size (respectively maxcontent 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 mincontent inline size (respectively maxcontent inline size) of the mover base's margin box and mover overscript's margin box.
The inflow 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:
TopAccentAttachment
+
half LargeOpItalicCorrection
.TopAccentAttachment
+
half LargeOpItalicCorrection
.
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:
The mover base is an
embellished operator with the
property.
largeop
OverShift
is the maximum of
OverExtraAscender
is 0.
The mover base is an
embellished operator with the
property and
stretch axis inline.
stretchy
OverShift
is the maximum of:
OverExtraDescender
is 0.
Otherwise, OverShift
is equal to
accent
attribute is not an
ASCII caseinsensitive match to true
.
OverExtraAscender
is OverbarExtraAscender.
The lineascent of the content is the maximum between:
OverShift
+ OverExtraAscender
.The linedescent of the content is the maximum between:
OverShift
.
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 lineover by a distance equal to
the ink lineascent 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.
The mincontent inline size, maxcontent 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 inflow children are laid out using the algorithm for stretching operators along the inline axis.
The lineascent and linedescent 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.
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 fontsize 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
element.
<mrow>
A valid <mmultiscripts>
element contains the
following inflow children:
<mprescripts>
element.
<mprescripts>
element.
These scripts form a (possibly empty) list
subscript, superscript, subscript, superscript,
subscript, superscript, etc.
Each consecutive couple of children subscript, superscript
is called a
subscript/superscript pair.
<mprescripts>
element and
an even number of inflow children called
mmultiscripts prescripts, none of them being a
<mprescripts>
element.
These scripts form a (possibly empty) list of
subscript/superscript pair.
If an <mmultiscripts>
element is not valid then
it is laid out the same as the
element.
Otherwise the layout algorithm is explained below.
<mrow>
<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.
The mincontent inline size (respectively maxcontent inline size) of the content is calculated the same as the inline size of the content below, but replacing "inline size" with "mincontent inline size" (respectively "maxcontent 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:
inlineoffset
to 0.
For each subscript/superscript pair of
mmultiscripts prescripts, increment
inlineoffset
by SpaceAfterScript + the
maximum of
inlineoffset
by the inline size of the
mmultiscripts base's margin box and
set inlinesize
to inlineoffset
.
For each subscript/superscript pair of
mmultiscripts postscripts, modify
inlinesize
to be at least:
LargeOpItalicCorrection
.
ItalicCorrection
.
Increment inlineoffset
to the maximum of:
Increment inlineoffset
by
SpaceAfterScript.
inlinesize
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 lineascent of the content is calculated
by taking the maximum of all the lineascent
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 linedescent of the content is calculated
by taking the maximum of all the linedescent
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 inflow children is performed using the following algorithm:
inlineoffset
to 0.For each subscript/superscript pair of mmultiscripts prescripts:
inlineoffset
by
SpaceAfterScript.
pairinlinesize
to the maximum of
inlineoffset
+ pairinlinesize
− the inline size of the subscript's margin box.
inlineoffset
+ pairinlinesize
− the inline size of the superscript's margin box.
SubShift
(respectively SuperShift
)
towards the lineunder (respectively lineover).
inlineoffset
by
pairinlinesize
.
<mprescripts>
boxes
at inline offsets
inlineoffset
and with their alphabetic baselines
aligned with the alphabetic baseline.
For each subscript/superscript pair of mmultiscripts postscripts:
pairinlinesize
to the maximum of
inlineoffset
− LargeOpItalicCorrection
.
inlineoffset
+ ItalicCorrection
.
SubShift
(respectively SuperShift
)
towards the lineunder (respectively lineover).
inlineoffset
by
pairinlinesize
inlineoffset
by
SpaceAfterScript.
An <mmultiscripts>
with only one
subscript/superscript pair of
mmultiscripts postscripts is laid out the same as a
<msubsup>
with the same inflow 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
to displaystyle
false
and
to increment
in all child
elements but the first one.
However, an scriptlevel
(respectively
<mover>
)
element with an <munderover>
attribute that is an
ASCII caseinsensitive
match to accent
true
does not increment scriptlevel within
its second child (respectively third child). Similarly,
and
<mover>
elements
with an <munderover>
attribute that is an
ASCII caseinsensitive
match to accentunder
true
do not increment scriptlevel within
their second child.
<mmultiscripts>
sets
to
mathshift
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
to
mathshift
compact
on their second child.
An
and
<mover>
elements with an <munderover>
attribute that is an
ASCII caseinsensitive
match to accent
true
also sets
to
mathshift
compact
within their first child.
The A. User Agent Stylesheet must contain the following style in order to implement this behavior:
msub > :not(:firstchild),
msup > :not(:firstchild),
msubsup > :not(:firstchild),
mmultiscripts > :not(:firstchild),
munder > :not(:firstchild),
mover > :not(:firstchild),
munderover > :not(:firstchild) {
mathdepth: add(1);
mathstyle: compact;
}
munder[accentunder="true" i] > :nthchild(2),
mover[accent="true" i] > :nthchild(2),
munderover[accentunder="true" i] > :nthchild(2),
munderover[accent="true" i] > :nthchild(3) {
fontsize: inherit;
}
msub > :nthchild(2),
msubsup > :nthchild(2),
mmultiscripts > :nthchild(even),
mmultiscripts > mprescripts ~ :nthchild(odd),
mover[accent="true" i] > :firstchild,
munderover[accent="true" i] > :firstchild {
mathshift: compact;
}
mmultiscripts > mprescripts ~ :nthchild(even) {
mathshift: inherit;
}
<mprescripts>
is empty.
Hence the CSS rules essentially performs automatic displaystyle
and
scriptlevel
changes for the scripts ; and
mathshift
changes for
subscripts and sometimes the base.
Matrices, arrays and other tablelike mathematical notation are marked up
using
<mtable>
<mtr>
elements. These elements are similar to the
<mtd>
<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
inlinetable
and sets
displaystyle
to false
. The
user agent stylesheet must contain
the following rules in order to implement these properties:
mtable {
display: inlinetable;
mathstyle: compact;
}
The mtable
element is as a CSS
table
and the
mincontent inline size, maxcontent 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
tablerow
. The
user agent stylesheet must contain
the following rules in order to implement that behavior:
mtr {
display: tablerow;
}
The <mtr>
accepts the attributes described
in 2.1.3 Global Attributes.
The <mtd>
is laid out as
a tablecell
with content centered in the cell and
a default padding. The
user agent stylesheet must contain
the following rules:
mtd {
display: tablecell;
textalign: 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].
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(:firstchild) {
display: none;
}
<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 <annotationxml>
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/xtex">\frac{1}{2}</annotation>
<annotationxml encoding="application/mathmlcontent+xml">
<apply>
<divide/>
<cn>1</cn>
<cn>2</cn>
</apply>
</annotationxml>
</semantics>
</math>
The <semantics>
element accepts the attributes
described in 2.1.3 Global Attributes. Its layout algorithm
is the same as the
element.
The user agent stylesheet
must contain the following rule in order to only render the annotated
MathML expression:
<mrow>
semantics > :not(:firstchild) {
display: none;
}
The <annotationxml>
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 <annotationxml>
and <annotation>
element is the same as the
element.
<mtext>
/* Hide the annotated child. */
semantics > :firstchild { display: none; }
/* Show all text annotations. */
semantics > annotation { display: inline; }
/* Show all HTML annotations. */
semantics > annotationxml[encoding="text/html" i],
semantics > annotationxml[encoding="application/xhtml+xml" i] {
display: inlineblock;
}
The display
property
from CSS Display Module Level 3
is extended with a new inner display type:
<display> = <displayinsideold>  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
element
the computed value is <mtable>
block table
and
inline table
respectively.
For the
element, the computed value
is <mtr>
tablerow
.
For the
element, the computed value
is <mtd>
tablecell
.
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
element.
<mrow>
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;
gridtemplatecolumns: 1.5em 1.5em 1.5em;
gridtemplaterows: 1.5em 1.5em;
justifyitems: center;
alignitems: 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 texttransform
property
from CSS Text Module Level 3
is extended with new values:
<texttransform> = <texttransformold>  mathauto  mathbold  mathitalic  mathbolditalic  mathdoublestruck  mathboldfraktur  mathscript  mathboldscript  mathfraktur  mathsansserif  mathboldsansserif  mathsansserifitalic  mathsansserifbolditalic  mathmonospace  mathinitial  mathtailed  mathlooped  mathstretched
If the specified value of texttransform is mathauto
and the inherited value is not none
then the
computed value is the inherited value.
On text nodes containing a unique character, mathauto
has
the same effect as mathitalic
, otherwise it has no effects.
For the
mathbold
,
mathitalic
,
mathbolditalic
,
mathdoublestruck
,
mathboldfraktur
,
mathscript
,
mathboldscript
,
mathfraktur
,
mathsansserif
,
mathboldsansserif
,
mathsansserifitalic
,
mathsansserifbolditalic
,
mathmonospace
,
mathinitial
,
mathtailed
,
mathlooped
and
mathstretched
values, the transformed text is
obtained by performing conversion of each character according to
the corresponding
bold,
italic,
bolditalic,
doublestruck,
boldfraktur,
script,
boldscript,
fraktur,
sansserif,
boldsansserif,
sansserifitalic,
sansserifbolditalic,
monospace,
initial,
tailed,
looped,
stretched tables.
User agents may decide to rely on italic, bold and bolditalic
fontlevel properties when available fonts lack the proper glyphs to
perform mathauto
, mathitalic
,
mathbold
, mathbolditalic
characterlevel
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 doublestruck variant.
Values other than mathauto
are intended to infer
specific contextdependent 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 doublestruck
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 texttransform
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
mathauto
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
fontstyle: italic
(left) and
texttransform: mathauto
(right):
Name: 
mathstyle


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 mathstyle
is compact
,
the math layout on descendants try to minimize the
logical height by
applying the following rules:
fontsize
is scaled down when
its specified value is math
and
the computed value of mathdepth
is
autoadd
(default for <mfrac>
)
as described in 4.5 New value mathdepth
property.largeop
property
do not follow rules from 3.2.4.3 Layout of operators
to make them bigger.movablelimits
property are actually drawn as sub/super
scripts as described in 3.4.2.1 Children of <munder>
,
<mover>
, <munderover>
.The following example shows a
mathematical formula renderered with
its
root styled with
<math>
mathstyle: compact
(left) and
mathstyle: normal
(right).
In the former case, the fontsize 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
fontsize) is larger.
These two mathstyle
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 mathstyle
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: 
mathshift


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 mathshift
is compact
, the math layout on descendants will use the
superscriptShiftUpCramped parameter to place superscript.
If the value of mathshift
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 mathstyle
and the same fontsize
.
However, the one within the square root is rendered with
compact mathshift
while
the other one is rendered with
normal mathshift
, 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 mathshift
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 mathdepth
property is introduced to describe a notion
of "depth" for each element of a mathematical formula, with respect to
the toplevel container of that formula. Concretely, this is used to
determine the computed value of the
fontsize
property when its specified value is math
.
Name: 
mathdepth


Value:  autoadd  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 mathdepth
value is
determined as follows:
mathdepth
is
autoadd
and
the inherited value of mathstyle
is compact
then the computed value of
mathdepth
of the element is its inherited value plus one.
mathdepth
is of
the form add(<integer>)
then the computed value
of mathdepth
of the element is its inherited value plus
the specified integer.
mathdepth
is of the form
<integer>
then the computed value
of mathdepth
of the element is the specified integer.
mathdepth
of the element is the inherited one.
If the specified value
fontsize
is math
then the
computed value of
fontsize
is obtained by multiplying the inherited value of
fontsize
by a nonzero scale factor calculated by the
following procedure:
mathdepth
value,
B the computed mathdepth
value,
C be 0.71 and S be 1.0InvertScaleFactor
to true.InvertScaleFactor
to false.InvertScaleFactor
is false and 1/S otherwise.The following example shows a mathematical formula
with normal mathstyle
rendered with the Latin Modern Math font.
When entering subexpressions like scripts or fractions,
the fontsize is automatically scaled down according to the
values of MATH table contained in that font.
Note that fontsize 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 mathstyle
in fractions.
These rules from [TeXBook] are subtle and it's worth having a
separate mathdepth
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 mathdepth
changes.
This chapter describes features provided by MATH
table
of an OpenType font [OPENFONTFORMAT]. Throughout this chapter,
a Clike 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.
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
fontsize
or zoom level.
These are global layout constants for the first available font:
post.underlineThickness
or
Default fallback constant if the constant is not available.
MATH.MathConstants.scriptPercentScaleDown / 100
or
0.71 if MATH.MathConstants.scriptPercentScaleDown
is
null or not available.
MATH.MathConstants.scriptScriptPercentScaleDown / 100
or
0.5041 if
MATH.MathConstants.scriptScriptPercentScaleDown
is
null or not available.
MATH.MathConstants.displayOperatorMinHeight
or
Default fallback constant
if the constant is not available.MATH.MathConstants.axisHeight
or half
OS/2.sxHeight
if the constant is not available.MATH.MathConstants.accentBaseHeight
or OS/2.sxHeight
if the constant is not available.MATH.MathConstants.subscriptShiftDown
or OS/2.ySubscriptYOffset
if the constant is not available.MATH.MathConstants.subscriptTopMax
or ⅘ × OS/2.sxHeight
if the constant is not available.MATH.MathConstants.subscriptBaselineDropMin
or
Default fallback constant if the constant is not available.MATH.MathConstants.superscriptShiftUp
or OS/2.ySuperscriptYOffset
if the constant is not available.MATH.MathConstants.superscriptShiftUpCramped
or
Default fallback constant if the constant is not available.MATH.MathConstants.superscriptBottomMin
or ¼ × OS/2.sxHeight
if the constant is not available.MATH.MathConstants.superscriptBaselineDropMax
or
Default fallback constant if the constant is not available.MATH.MathConstants.subSuperscriptGapMin
or 4 × default rule thickness if the constant is not available.MATH.MathConstants.superscriptBottomMaxWithSubscript
or ⅘ × OS/2.sxHeight
if the constant is not available.MATH.MathConstants.spaceAfterScript
or 1/24em if the constant is not available.MATH.MathConstants.upperLimitGapMin
or
Default fallback constant if the constant is not available.MATH.MathConstants.upperLimitBaselineRiseMin
or Default fallback constant if the constant is not available.MATH.MathConstants.lowerLimitGapMin
or Default fallback constant if the constant is not available.MATH.MathConstants.lowerLimitBaselineDropMin
or Default fallback constant if the constant is not available.MATH.MathConstants.stackTopShiftUp
or Default fallback constant if the constant is not available.MATH.MathConstants.stackTopDisplayStyleShiftUp
or Default fallback constant if the constant is not available.MATH.MathConstants.stackBottomShiftDown
or Default fallback constant if the constant is not available.MATH.MathConstants.stackBottomDisplayStyleShiftDown
or Default fallback constant if the constant is not available.MATH.MathConstants.stackGapMin
or 3 × default rule thickness if the constant is not available.MATH.MathConstants.stackDisplayStyleGapMin
or 7 × default rule thickness if the constant is not available.MATH.MathConstants.stretchStackTopShiftUp
or Default fallback constant if the constant is not available.MATH.MathConstants.stretchStackBottomShiftDown
or Default fallback constant if the constant is not available.MATH.MathConstants.stretchStackGapAboveMin
or Default fallback constant if the constant is not available.MATH.MathConstants.stretchStackGapBelowMin
or Default fallback constant if the constant is not available.MATH.MathConstants.fractionNumeratorShiftUp
or Default fallback constant if the constant is not available.MATH.MathConstants.fractionNumeratorDisplayStyleShiftUp
or Default fallback constant if the constant is not available.MATH.MathConstants.fractionDenominatorShiftDown
or Default fallback constant if the constant is not available.MATH.MathConstants.fractionDenominatorDisplayStyleShiftDown
or Default fallback constant if the constant is not available.MATH.MathConstants.fractionNumeratorGapMin
or default rule thickness if the constant is not available.MATH.MathConstants.fractionNumDisplayStyleGapMin
or 3 × default rule thickness if the constant is not available.MATH.MathConstants.fractionRuleThickness
or default rule thickness if the constant is not available.MATH.MathConstants.fractionDenominatorGapMin
or default rule thickness if the constant is not available.MATH.MathConstants.fractionDenomDisplayStyleGapMin
or 3 × default rule thickness if the constant is not available.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.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.MATH.MathConstants.radicalVerticalGap
or 1¼ × default rule thickness if the constant is not available.MATH.MathConstants.radicalDisplayStyleVerticalGap
or default rule thickness + ¼ OS/2.sxHeight
if the constant is not available.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.MATH.MathConstants.radicalKernBeforeDegree
or 5/18em if the constant is not available.MATH.MathConstants.radicalKernAfterDegree
or −10/18em if the constant is not available.MATH.MathConstants.radicalDegreeBottomRaisePercent / 100.0
or 0.6 if the constant is not available.These are perglyph tables for the first available font:
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.
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 [OPENTYPEMATHINHARFBUZZ]. For convenience, the following definitions are used:
MATH.MathVariant.minConnectorOverlap
.
GlyphPartRecord
is an extender
if and only if
GlyphPartRecord.partFlags
has the
fExtender
flag set.
GlyphAssembly
is horizontal
if it is obtained from
MathVariant.horizGlyphConstructionOffsets
.
Otherwise it is vertical (and obtained from
MathVariant.vertGlyphConstructionOffsets
).
GlyphAssembly
table,
N_{Ext} (respectively
N_{NonExt}) is the number of extenders
(respectively nonextenders) in
GlyphAssembly.partRecords
.
GlyphAssembly
table,
S_{Ext} (respectively
S_{NonExt}) is the sum of
GlyphPartRecord.fullAdvance
for all extenders (respectively nonextenders) in
GlyphAssembly.partRecords
.
User agents must treat the GlyphAssembly
as invalid
if the following conditions are not satisfied:
GlyphPartRecord
in GlyphAssembly.partRecords
,
the values of
GlyphPartRecord.startConnectorLength
and
GlyphPartRecord.endConnectorLength
must be at least o_{min}.
Otherwise, it is not possible to satisfy the condition of
MathVariant.minConnectorOverlap
.
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) = N_{NonExt} + r N_{Ext} while the stretch size is AssembySize(o, r) = S_{NonExt} + r S_{Ext} − o (AssemblyGlyphCount(r) − 1).
r_{min} is the minimal number of repetitions needed to obtain an assembly of size at least T i.e. the minimal r such that AssembySize(o_{min}, r)) ≥ T. It is defined as the maximum between 0 and the ceiling of ((T − S_{NonExt} + o_{min} (N_{NonExt} − 1)) / S_{Ext,NonOverlapping}).
o_{max,theorical} = (AssembySize(0, r_{min}) − T) / (AssemblyGlyphCount(r_{min}) − 1) is the theorical overlap obtained by splitting evenly the extra size of an assembly built with null overlap.
o_{max} is the maximum overlap possible to build an assembly of size at least T by repeating each extender r_{min} times. If AssemblyGlyphCount(r_{min}) ≤ 1, then the actual overlap value is irrelevant. Otherwise, o_{max} is defined to be the minimum of:
GlyphPartRecord.startConnectorLength
for all
the entries in
GlyphAssembly.partRecords
, excluding the
last one if it is not an extender.
GlyphPartRecord.endConnectorLength
for all
the entries in
GlyphAssembly.partRecords
, excluding the
first one if it is not an extender.
The glyph assembly stretch size for a target size T is AssembySize(o_{max}, r_{min}).
The glyph assembly width, glyph assembly ascent and glyph assembly descent are defined as follows:
GlyphAssembly
is vertical,
the width is the maximum advance width of the glyphs of id
GlyphPartRecord.glyphID
for all the
GlyphPartRecord
in
GlyphAssembly.partRecords
,
the ascent is the
glyph assembly stretch size
for a given target size T
and the descent is 0.
GlyphAssembly
is horizontal,
the width is glyph assembly stretch size
for a given target size T
while
the ascent (respectively descent) is the
maximum ascent (respectively descent) of the glyphs of id
GlyphPartRecord.glyphID
for all the
GlyphPartRecord
in
GlyphAssembly.partRecords
.
The glyph assembly height is the sum of the glyph assembly ascent and glyph assembly descent.
T
.
The shaping of the glyph assembly is performed with the following algorithm:
(x, y)
to (0, 0)
,
RepetitionCounter
to 0 and
PartIndex
to 1.
RepetitionCounter
is 0, then
PartIndex
.PartIndex
is
GlyphAssembly.partCount
then stop.Part
to
GlyphAssembly.partRecords[PartIndex]
.
Set RepetitionCounter
to
r_{min} if
Part
is an extender and to 1 otherwise.
Part.glyphID
so that its (left, baseline) coordinates
are at position (x, y)
.
Set x
to
x + Part.fullAdvance −
o_{max}
Part.glyphID
so that its (left, bottom) coordinates
are at position (x, y)
.
Set y
to
y − Part.fullAdvance +
o_{max}
RepetitionCounter
.The preferred inline size of a glyph stretched along the block axis is calculated using the following algorithm:
S
to the glyph's advance width.
MathGlyphConstruction
table
in the MathVariants.vertGlyphConstructionOffsets
table for the given glyph:
MathGlyphVariantRecord
in
MathGlyphConstruction.mathGlyphVariantRecord
,
ensure that S
is at least
the advance width of the glyph of id
MathGlyphVariantRecord.variantGlyph
.
GlyphAssembly
subtable,
then ensure
that S
is at least the
glyph assembly width.
S
.
The algorithm to shape a stretchy glyph to inline
(respectively block) dimension T
is the following:
MathGlyphConstruction
table
in the MathVariants.horizGlyphConstructionOffsets
table (respectively
MathVariants.vertGlyphConstructionOffsets
table)
for the given glyph the exit with failure.
T
then use normal shaping and bounding box for that glyph,
the MathItalicsCorrectionInfo for that glyph as
italic correction and exit with success.
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.
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.
T
, then choose last one that was tried and exit
with success.
@namespace url(http://www.w3.org/1998/Math/MathML);
/* Universal rules */
* {
fontsize: math;
display: block math;
}
/* The <math> element */
math {
direction: ltr;
writingmode: horizontaltb;
textindent: 0;
letterspacing: normal;
lineheight: normal;
wordspacing: normal;
fontfamily: math;
fontsize: inherit;
fontstyle: normal;
fontweight: normal;
display: inline math;
mathstyle: compact;
mathshift: normal;
mathlevel: 0;
}
math[display="block" i] {
display: block math;
mathstyle: normal;
}
math[display="inline" i] {
display: inline math;
mathstyle: compact;
}
/* <mrow>like elements */
semantics > :not(:firstchild) {
display: none;
}
maction > :not(:firstchild) {
display: none;
}
merror {
border: 1px solid red;
backgroundcolor: lightYellow;
}
mphantom {
visibility: hidden;
}
/* Token elements */
mi {
texttransform: mathauto;
}
/* Tables */
mtable {
display: inlinetable;
mathstyle: compact;
}
mtr {
display: tablerow;
}
mtd {
display: tablecell;
textalign: center;
padding: 0.5ex 0.4em;
}
/* Fractions */
mfrac {
paddinginlinestart: 1px;
paddinginlineend: 1px;
}
mfrac > * {
mathdepth: autoadd;
mathstyle: compact;
}
mfrac > :nthchild(2) {
mathshift: compact;
}
/* Other rules for scriptlevel, displaystyle and mathshift */
mroot > :not(:firstchild) {
mathdepth: add(2);
mathstyle: compact;
}
mroot, msqrt {
mathshift: compact;
}
msub > :not(:firstchild),
msup > :not(:firstchild),
msubsup > :not(:firstchild),
mmultiscripts > :not(:firstchild),
munder > :not(:firstchild),
mover > :not(:firstchild),
munderover > :not(:firstchild) {
mathdepth: add(1);
mathstyle: compact;
}
munder[accentunder="true" i] > :nthchild(2),
mover[accent="true" i] > :nthchild(2),
munderover[accentunder="true" i] > :nthchild(2),
munderover[accent="true" i] > :nthchild(3) {
fontsize: inherit;
}
msub > :nthchild(2),
msubsup > :nthchild(2),
mmultiscripts > :nthchild(even),
mmultiscripts > mprescripts ~ :nthchild(odd),
mover[accent="true" i] > :firstchild,
munderover[accent="true" i] > :firstchild {
mathshift: compact;
}
mmultiscripts > mprescripts ~ :nthchild(even) {
mathshift: inherit;
}
The algorithm to set the properties of an operator from its category is as follows:
minsize
to 1em
.maxsize
to ∞
.lspace
and rspace
to the
value specified in the corresponding column.stretchy
,
symmetric
, largeop
,
movablelimits
, set that property to true
if it is listed in the last column or to false
otherwise.The algorithm to determine the category of an operator
(Content
, Form
) is as folllows:
Content
as an UTF16 string does not have length
or 1 or 2 then exit with category Default
.
Content
is a single character in the
range U+0320–U+03FF
then exit with category Default
. Otherwise,
if it has two characters:
Content
is the surrogate pairs corresponding
to
U+1EEF0 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
or U+1EEF1 ARABIC MATHEMATICAL OPERATOR HAH WITH DAL and
Form
is postfix
, exit with category
I
.Content
with the first character and move to step
3.Content
it is listed in
Operators_2_ascii_chars
then
replace Content
with the
Unicode character
"U+0320 plus the index of Content
in
Operators_2_ascii_chars
" and move to step
3.
Default
.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,
Key
to Content
if it is in
range U+0000–U+03FF ; or to Content
− 0x1C00
if it is in range U+2000–U+2BFF. Otherwise, exit with
category Default
.
Key
according to whether Form
is infix
, prefix
,
postfix
respectively.
Key
is at most 0x2FFF.Entry
in table
Figure 27
such that Entry
% 0x4000 is equal to
Key
. If one is found then return the category
corresponding to encoding Entry
/ 0x1000 in
Figure 26.
Otherwise, return category Default
.
Special Table  Entries 

Operators_2_ascii_chars  18 entries (2characters 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, 
(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 
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 
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.
This section is nonnormative.
The following dictionary provides a humanreadable version
of B.1 Operator Dictionary. Please refer to
3.2.4.2 Dictionarybased 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
,
are movablelimits
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 
This section is nonnormative.
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  hyphenminus  above  U+0305  combining overline 
U+002D  hyphenminus  below  U+0320  combining minus sign below 
U+002D  hyphenminus  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  hyphenminus 
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  hyphenminus 
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  hyphenminus 
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 nonnormative.
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:
MathVariants.horizGlyphConstructionOffsets[]
item ;
if it is vertical it corresponds to
a MathVariants.vertGlyphConstructionOffsets[]
item.
MathGlyphConstruction.mathGlyphVariantRecord
is
always empty.
MathVariants.minConnectorOverlap
,
GlyphPartRecord.startConnectorLength
and
GlyphPartRecord.endConnectorLength
are treated as 0.
MathGlyphConstruction.GlyphAssembly.partRecords
is built
from each table row as follows:
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  boldscript  Δ_{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  bolditalic  Δ_{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  sansserif  Δ_{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  doublestruck  Δ_{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  boldfraktur  Δ_{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  sansserifbolditalic  Δ_{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  sansserifitalic  Δ_{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  boldsansserif  Δ_{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 nonnormative.
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é GreinerPetter, 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 nonnormative.
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.
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.
In [MathML3], it was possible to use the
element with
the <maction>
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>./thisisasafelink.html</mtext>
</maction>
</math>
This feature is not available in MathML Core, where
the
element essentially behaves
like an <maction>
container with extra style.
<mrow>
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 r_{min} 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 nonnormative.
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="fontsize: 25px">
<mtext>■</mtext>
<mtext><a href="https://example.org/">■</a></mtext>
</msqrt>
</math>
</foreignObject>
</svg>`;
let image = new Image();
image.width = 100;
image.height = 100;
image.onload = () => {
let canvas = document.createElement('canvas');
canvas.width = 100;
canvas.height = 100;
canvas.style = "border: 1px solid black";
document.body.appendChild(canvas);
let context = canvas.getContext("2d");
context.drawImage(image, 0, 0);
};
image.src = `data:image/svg+xml;base64,${window.btoa(svg)}`;
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 wellknown 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>
@fontface {
fontfamily: MyWebFontWithVeryWideGlyphs;
src: url("/fonts/mywebfontswithverywideglyphs.woff");
}
#container {
fontfamily: 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>
@fontface {
fontfamily: MyWebFontWithVeryWideAsianGlyphs;
src: url("/fonts/mywebfontswithverywideasianglyphs.woff");
}
#container {
fontfamily: uiserif, MyWebFontWithVeryWideAsianGlyphs
}
#reference {
fontfamily: 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
textdecorationthickness set to fromfont
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
[OPENFONTFORMAT].
<style>
#test {
fontsize: 100px;
}
#container {
textdecorationline: underline;
textdecorationthickness: fromfont;
}
#reference {
textdecorationline: underline;
textdecorationthickness: 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 nonnormative, all authoring guidelines, diagrams, examples, and notes in this specification are nonnormative. 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 nonnormative, 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, 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.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: