LaTeX Support in Microsoft 365

Microsoft 365 applications (Word, Excel, and PowerPoint) can convert between LaTeX math notation and Office Math Markup Language (OMML). This document describes the LaTeX commands and symbols supported during import (LaTeX to OMML) and export (OMML to LaTeX).


Import (LaTeX → Office Math)

When you type or paste LaTeX in a math zone and convert to Office Math, the following commands are recognized.

LaTeX delimiters

When pasting text into Microsoft 365 apps, it will only be recognized as LaTeX if it is enclosed in one of these delimiter pairs:

Delimiter style Example
$...$ Inline math
$$...$$ Display math
\(...\) Inline math (LaTeX2e)
\[...\] Display math (LaTeX2e)
\begin{environment}...\end{environment} Inline or display math depending on the environment

When using Insert Equation, Convert to Professional format, or LaTeX to Math, the LaTeX delimiters are not required, but are processed if specified.

Fractions and binomials

Command Description Package
\frac{num}{den} Standard fraction LaTeX
\dfrac{num}{den} Display-style fraction amsmath
\tfrac{num}{den} Text-style fraction amsmath
\cfrac{num}{den} Continued fraction amsmath
\cfrac[l]{num}{den} Left-aligned continued fraction amsmath
\cfrac[r]{num}{den} Right-aligned continued fraction amsmath
\ifrac{num}{den} Inline (skewed) fraction
\binom{n}{k} Binomial coefficient amsmath
\dbinom{n}{k} Display-style binomial coefficient amsmath
\tbinom{n}{k} Text-style binomial coefficient amsmath
\genfrac{left}{right}{thick}{style}{num}{den} Generalized fraction amsmath
num \over den TeX-style fraction TeX
num \atop den Stacked (no bar) TeX
{n \choose k} TeX-style binomial coefficient TeX
{n \brace k} Stirling subset number (curly-brace delimiters) TeX
{n \brack k} Stirling cycle number (square-bracket delimiters) TeX

Roots

Command Description Package
\sqrt{expr} Square root LaTeX
\sqrt[n]{expr} n-th root LaTeX
\root n \of{expr} n-th root (TeX primitive) TeX

Superscripts, subscripts, and pre-scripts

Syntax Description
x^{a} Superscript
x_{b} Subscript
x_{b}^{a} Combined sub/superscript
_{a}^{b}x Pre-scripts (left-side sub/super)

Delimiters and brackets

Delimiter pairs

Command Description
\left( ... \right) Auto-sizing parentheses
\left[ ... \right] Auto-sizing square brackets
\left\{ ... \right\} or \left\lbrace ... \right\rbrace Auto-sizing braces
\left\langle ... \right\rangle Auto-sizing angle brackets
\left\lfloor ... \right\rfloor Auto-sizing floor
\left\lceil ... \right\rceil Auto-sizing ceiling
\left\lvert ... \right\rvert Auto-sizing single bars
\left\lVert ... \right\rVert Auto-sizing double bars
\left. ... \right) Invisible left delimiter (. = invisible)
\middle\| Middle delimiter in \left...\right

\left...\right delimiters always create a delimiter node. A missing \right produces a delimiter with an invisible closer.

Bare bracket pairs (expr) and [expr] and delimiter command pairs without \left...\right are matched using speculative parsing: the converter saves its position, tries to find a matching closer, and rolls back if none is found (emitting the opener as a plain character instead). Speculative parsing is done for the following delimiter pairs:

Opener Closer Notes
( ) Bare parentheses
[ ] Bare square brackets
\| \| Double vertical bars
\langle \rangle Angle brackets
\lceil \rceil Ceiling
\lfloor \rfloor Floor
\lvert \rvert Single bars
\lVert \rVert Double bars
\lbrace \rbrace Braces
\lbrack \rbrack Square brackets
\{ \} Braces (shorthand)

Double-struck (white square) brackets

The following patterns all produce ⟦ and ⟧ (U+27E6, U+27E7):

  • [\![ and ]\!] — negative-thin-space trick with bracket tokens
  • \lbrack\!\lbrack and \rbrack\!\rbrack — command form
  • \left[\!\left[ and \right]\!\right] — with \left/\right
  • Any mixture of [ / \lbrack with or without \left / \right

Accents

Command Symbol Unicode
\hat{x} U+02C6
\widehat{x} U+0302
\check{x} U+030C
\tilde{x} U+02DC
\widetilde{x} U+0303
\acute{x} U+0301
\grave{x} U+0300
\dot{x} U+0307
\ddot{x} U+0308
\dddot{x} U+20DB
\ddddot{x} U+20DC
\breve{x} U+0306
\bar{x} U+0305
\vec{x} U+20D7
\mathring{x} U+030A

Over and under constructs

Command Description Package
\overline{x} Overline (bar above) LaTeX
\underline{x} Underline (bar below) LaTeX
\overbrace{x} Horizontal brace above LaTeX
\underbrace{x} Horizontal brace below LaTeX
\overrightarrow{x} Right arrow above LaTeX
\overleftarrow{x} Left arrow above LaTeX
\overleftrightarrow{x} Left-right arrow above amsmath
\underrightarrow{x} Right arrow below amsmath
\underleftarrow{x} Left arrow below amsmath
\underleftrightarrow{x} Left-right arrow below amsmath
\xrightarrow[below]{above} Extensible right arrow amsmath
\xleftarrow[below]{above} Extensible left arrow amsmath

Overset and underset

Command Description Package
\overset{top}{base} Place top above base amsmath
\underset{bot}{base} Place bot below base amsmath
\stackrel{top}{base} Same as \overset LaTeX
\buildrel top \over base TeX-style overset TeX

N-ary (large) operators

All of the following accept optional \limits and \nolimits modifiers, and optional subscript/superscript for bounds.

Command Symbol Unicode Package
\sum U+2211 LaTeX
\prod U+220F LaTeX
\coprod U+2210 LaTeX
\int U+222B LaTeX
\iint U+222C amsmath
\iiint U+222D amsmath
\iiiint U+2A0C amsmath
\idotsint ∫⋯∫ U+222B amsmath
\oint U+222E LaTeX
\oiint U+222F esint
\oiiint U+2230 esint
\pvint U+2A0D
\bigcap U+22C2 LaTeX
\bigcup U+22C3 LaTeX
\bigvee U+22C1 LaTeX
\bigwedge U+22C0 LaTeX
\bigoplus U+2A01 LaTeX
\bigotimes U+2A02 LaTeX
\bigodot U+2A00 LaTeX
\biguplus U+2A04 LaTeX
\bigsqcup U+2A06 LaTeX
\bigsqcap U+2A05

Standard function names

These are set in upright (roman) type automatically:

\arccos, \arcsin, \arctan, \arg, \cos, \cosh, \cot, \coth, \csc, \deg, \det, \dim, \exp, \gcd, \hom, \ker, \lg, \ln, \log, \Pr, \sec, \sin, \sinh, \tan, \tanh

\operatorname{name} produces a custom operator name in roman type.

Limit-style functions

These place subscripts/superscripts as limits in display mode:

\lim, \liminf, \limsup, \sup, \inf, \min, \max, \injlim, \projlim, \varinjlim, \varprojlim, \varliminf, \varlimsup

With \limits modifier: \lim\limits_{x \to 0}.

Compound names like \limsup and \liminf that convert as separate runs (lim + sup) are automatically reconstructed during export.

Substack

Command Description Package
\substack{a \\ b \\ c} Stacked limits for n-ary operators amsmath

Modular arithmetic

Command Description Package
\bmod Binary mod operator (a mod b) LaTeX
\pmod{n} Parenthesized mod (a (mod n)) LaTeX
\mod{n} Spaced mod (a mod n) amsmath

Font commands

Math-mode fonts

Command Style Package
\mathrm{x} Roman (upright) LaTeX
\mathbf{x} Bold LaTeX
\mathit{x} Italic LaTeX
\mathsf{x} Sans-serif LaTeX
\mathtt{x} Monospace LaTeX
\mathbb{x} or \Bbb{x} Double-struck (blackboard bold) amssymb
\mathcal{x} or \mathscr{x} Script / Calligraphic LaTeX / mathrsfs
\mathfrak{x} Fraktur amssymb
\boldsymbol{x} or \bm{x} Bold italic amsmath / bm

Text-mode fonts

Command Style Package
\text{...} Normal text amsmath
\textrm{...} or \textnormal{...} Roman text LaTeX
\textbf{...} Bold text LaTeX
\textit{...} or \emph{...} Italic text LaTeX
\textsf{...} Sans-serif text LaTeX
\texttt{...} Monospace text LaTeX
\mbox{...} or \hbox{...} Text box LaTeX / TeX

Within \text{...}, $...$ and \(...\) switch back to math mode.

Declaration-style font

Command Description
\rm Switch to roman within current group
\bf Switch to bold within current group
\it Switch to italic within current group
\cal Switch to script/calligraphic within current group
\frak Switch to Fraktur within current group
\sf Switch to sans-serif within current group
\tt Switch to monospace within current group

Color

Command Description Package
\color{name}{expr} Set color by name xcolor
\textcolor{name}{expr} Set color by name xcolor
\color{#RRGGBB}{expr} Set color by hex xcolor

Recognized color names: black, blue, brown, cyan, darkgray, gray, green, grey, lightgray, lime, magenta, maroon, navy, olive, orange, pink, purple, red, teal, violet, white, yellow.

Boxed and phantom

Command Description Package
\boxed{expr} Box around expression (math mode) amsmath
\cancel{expr} Diagonal strikethrough (bottom-left to top-right) cancel
\bcancel{expr} Back diagonal strikethrough (top-left to bottom-right) cancel
\xcancel{expr} X-shaped strikethrough (both diagonals) cancel
\fbox{text}, \framebox{text} Box around text LaTeX
\phantom{expr} Invisible with width and height LaTeX
\hphantom{expr} Invisible with width only amsmath
\vphantom{expr} Invisible with height only amsmath

Negation

Command Description
\not= Produces ≠ (U+2260)
\not\in Produces ∉ (U+2209)
\not\subset Produces ⊄ (U+2284)

\not applied to any supported relation produces the corresponding negated Unicode character. See the negation table below for the full list of supported negations. When no dedicated negated codepoint exists, a combining long solidus overlay (U+0338) accent is applied.

Environments

Matrix environments

Environment Delimiters Package
\begin{matrix} None amsmath
\begin{pmatrix} ( ) amsmath
\begin{bmatrix} [ ] amsmath
\begin{Bmatrix} { } amsmath
\begin{vmatrix} | | amsmath
\begin{Vmatrix} ‖ ‖ amsmath
\begin{smallmatrix} None (small) amsmath
\begin{array}{cols} None, with column spec LaTeX

Use & as column separator and \\ as row separator.

Equation array and alignment

Environment Description Package
\begin{cases} Left-brace case analysis amsmath
\begin{rcases} Right-brace case analysis mathtools
\begin{align} / \begin{align*} Aligned equations amsmath
\begin{aligned} Aligned block within math amsmath
\begin{gathered} Centred block within math amsmath
\begin{eqnarray} / \begin{eqnarray*} Equation array LaTeX
\begin{equation} / \begin{equation*} Single equation amsmath
\begin{gather} / \begin{gather*} Gathered equations amsmath
\begin{multline} / \begin{multline*} Multi-line equation amsmath
\begin{split} Split equation amsmath
\begin{alignat} / \begin{alignat*} Alignat amsmath
\begin{alignedat} Alignedat block amsmath
\begin{subarray} Sub-array for limits amsmath
\eqalign{...} Equation alignment (TeX primitive; uses & and \cr) TeX

\cr is accepted as a row separator (synonym for \\) in all environments and in \eqalign.

Commutative diagrams

\begin{CD} — supports @>>>, @<<<, @VVV, @AAA arrow syntax (amscd).

User-defined commands

The converter supports \newcommand, \renewcommand, and \def for user-defined macros. Definitions are processed in a pre-pass before parsing begins.

Supported syntax

\newcommand{\name}{body}
\newcommand{\name}[n]{body}      % n parameters (1-9)
\renewcommand{\name}[n]{body}
\def\name{body}                  % TeX-style (parameter count auto-detected)

Parameters in the body are referenced as #1, #2, ..., #9.

Example

\newcommand{\RR}{\mathbb{R}}
\newcommand{\norm}[1]{\left\| #1 \right\|}
f : \RR \to \RR, \quad \norm{x} \leq 1

Limitations

  • Parameter count: Up to 9 parameters (#1 through #9).
  • Expansion limit: A maximum of 500 total macro expansions are performed per input. This guards against infinite recursion from self-referential macros. If the limit is reached, remaining macro invocations are left unexpanded.
  • No optional parameters: The optional first-argument syntax \newcommand{\name}[n][default]{body} is not supported. All parameters are required.
  • No \let or \DeclareMathOperator: Only \newcommand, \renewcommand, and \def are recognized. Package-level commands like \DeclareMathOperator, \let, and \providecommand are not supported.
  • Scope: All definitions are global within the input. There is no group-based scoping — a \def inside {...} is visible everywhere.
  • Definition order: Macros defined later in the input are available for invocations earlier in the input (the pre-pass collects all definitions first).
  • No expansion during definition: Macro bodies are stored as token lists and expanded at invocation time (\def style), not at definition time (\edef style).

Chemical equations and formulas

Command Description Package
\ce{H2O} Chemical formula mhchem

Supports subscript numbers, superscripts for charges, -> for reaction arrows, + between species, and other mhchem notation. See LaTeX mhchem Support in Microsoft 365 for details.

Dirac notation

Command Description Package
\bra{x} ⟨x| braket
\ket{x} |x⟩ braket

Spacing commands

Command Size Unicode Package
\! Negative thin (−3mu) U+200B LaTeX
\, Thin (3mu) U+2009 LaTeX
\: or \medspace Medium (4mu) U+205F LaTeX / amsmath
\; or \thickspace Thick (5mu) U+2004 LaTeX / amsmath
\enspace Half em (9mu) U+2002 LaTeX
\quad Em space (18mu) U+2003 LaTeX
\qquad Double em (36mu) U+2003×2 LaTeX
\mkern <amount>mu Explicit kern in mu TeX
\mskip <amount>mu Explicit skip in mu TeX
\hspace{length} Horizontal space LaTeX
~ Non-breaking space U+00A0 LaTeX
\ (backslash-space) Normal space U+0020 LaTeX
\space Normal space U+0020 LaTeX

\mkern and \mskip accept mu, em, ex, and pt units. Units are converted to mu internally (1 em = 18 mu, 1 ex ≈ 9 mu, 1 pt ≈ 1.8 mu).

Limitation — spacing approximation: OMML does not have an arbitrary math-spacing primitive. \mkern and \mskip values are approximated by mapping to the closest available Unicode space character:

Range Space character used
≥ 14 mu Em space U+2003 (18 mu)
9–13 mu En space U+2002 (~9 mu)
4.5–8 mu Three-per-em space U+2004 (~6 mu)
3.5–4.5 mu Medium mathematical space U+205F (~4 mu)
2–3.5 mu Thin space U+2009 (~3 mu)
< 2 mu Zero-width space U+200B

For values larger than 18 mu, multiple em spaces are emitted for the whole-em portion, and the fractional remainder is mapped using the table above. Values are capped at 2160 mu (approximately 1200 pt).

Negative spacing is not supported. OMML has no negative-width space characters. Any zero or negative value (including \mskip -3mu) is mapped to a zero-width space (U+200B). This is also why \! (negative thin space, −3 mu in LaTeX) maps to U+200B rather than producing actual negative spacing.

Style commands

Command Description
\displaystyle Switch to display style
\textstyle Switch to text style
\scriptstyle Switch to script style
\scriptscriptstyle Switch to scriptscript style
\limits Force limits placement
\nolimits Force subscript placement
\footnotesize, \tiny, \scriptsize, \small, \normalsize, \large, \Large, \LARGE, \huge, \Huge Font size

Math operators (custom)

Command Description Package
\mathrel{x} Treat x as a relation LaTeX
\mathop{x} Treat x as a large operator (can use \limits) LaTeX

Greek Letters

Lowercase

Command Symbol Unicode
\alpha α U+03B1
\beta β U+03B2
\gamma γ U+03B3
\delta δ U+03B4
\epsilon ϵ U+03F5
\varepsilon ε U+03B5
\zeta ζ U+03B6
\eta η U+03B7
\theta θ U+03B8
\vartheta ϑ U+03D1
\iota ι U+03B9
\kappa κ U+03BA
\varkappa ϰ U+03F0
\lambda λ U+03BB
\mu μ U+03BC
\nu ν U+03BD
\xi ξ U+03BE
\omicron ο U+03BF
\pi π U+03C0
\varpi ϖ U+03D6
\rho ρ U+03C1
\varrho ϱ U+03F1
\sigma σ U+03C3
\varsigma ς U+03C2
\tau τ U+03C4
\upsilon υ U+03C5
\phi ϕ U+03D5
\varphi φ U+03C6
\chi χ U+03C7
\psi ψ U+03C8
\omega ω U+03C9

Uppercase

Command Symbol Unicode
\Gamma Γ U+0393
\Delta Δ U+0394
\Theta Θ U+0398
\Lambda Λ U+039B
\Xi Ξ U+039E
\Pi Π U+03A0
\Sigma Σ U+03A3
\Upsilon Υ U+03A5
\Phi Φ U+03A6
\Psi Ψ U+03A8
\Omega Ω U+03A9

Variant uppercase forms (\varGamma, \varDelta, etc.) from the amsmath package are also accepted, mapping to the same codepoints.


Symbols

Binary operators

Command Symbol Unicode Command Symbol Unicode
\pm ± U+00B1 \mp U+2213
\times × U+00D7 \div ÷ U+00F7
\cdot U+22C5 \ast U+2217
\star U+22C6 \circ U+2218
\bullet U+2219 \diamond U+22C4
\oplus U+2295 \ominus U+2296
\otimes U+2297 \oslash U+2298
\odot U+2299 \cap U+2229
\cup U+222A \uplus U+228E
\sqcap U+2293 \sqcup U+2294
\vee U+2228 \wedge U+2227
\setminus U+2216 \wr U+2240
\dagger U+2020 \ddagger U+2021
\amalg ⨿ U+2A3F \barwedge U+22BC
\veebar U+22BB \dotplus U+2214
\ltimes U+22C9 \rtimes U+22CA
\leftthreetimes U+22CB \rightthreetimes U+22CC
\curlyvee U+22CE \curlywedge U+22CF
\circledast U+229B \circledcirc U+229A
\circleddash U+229D \boxplus U+229E
\boxminus U+229F \boxtimes U+22A0
\boxdot U+22A1 \intercal U+22BA
\divideontimes U+22C7 \doublebarwedge U+2A5E
\triangleleft U+25C1 \triangleright U+25B7

Relations

Command Symbol Unicode Command Symbol Unicode
\leq or \le U+2264 \geq or \ge U+2265
\neq or \ne U+2260 \equiv U+2261
\sim U+223C \simeq U+2243
\approx U+2248 \cong U+2245
\ll U+226A \gg U+226B
\subset U+2282 \supset U+2283
\subseteq U+2286 \supseteq U+2287
\in U+2208 \ni U+220B
\notin U+2209 \mid U+2223
\parallel U+2225 \perp U+22A5
\vdash U+22A2 \dashv U+22A3
\prec U+227A \succ U+227B
\preceq U+2AAF \succeq U+2AB0
\propto U+221D \therefore U+2234
\because U+2235 \bowtie U+22C8
\smile U+2323 \frown U+2322
\models U+22A8 \doteq U+2250

Many more relations from amssymb are supported, including \leqq, \leqslant, \eqslantless, \lesssim, \lessapprox, \lll, \lessdot, \lessgtr, \lesseqgtr, \geqq, \geqslant, \eqslantgtr, \gtrsim, \ggg, \gtrdot, \gtrless, \gtreqless, \sqsubset, \sqsupset, \sqsubseteq, \sqsupseteq, \subsetneq, \supsetneq, \subsetneqq, \supsetneqq, \Subset, \Supset, \Vdash, \Vvdash, \precapprox, \succapprox, \precnapprox, \succnapprox, \precneqq, \succneqq, \precnsim, \succnsim, \precsim, \succsim, \trianglelefteq, \trianglerighteq, \vartriangleleft, \vartriangleright, \circeq, \eqcirc, \triangleq, \bumpeq, \Bumpeq, \doteqdot, \risingdotseq, \fallingdotseq, \backsim, \backsimeq, \between, \pitchfork, and their negated forms (\ncong, \nsim, \nleq, \ngeq, \nprec, \nsucc, \nvdash, \nvDash, \nVdash, \nVDash, \ntriangleleft, \ntriangleright, \ntrianglelefteq, \ntrianglerighteq, etc.).

Arrows

Command Symbol Unicode Command Symbol Unicode
\leftarrow U+2190 \rightarrow or \to U+2192
\Leftarrow U+21D0 \Rightarrow U+21D2
\leftrightarrow U+2194 \Leftrightarrow U+21D4
\uparrow U+2191 \downarrow U+2193
\Uparrow U+21D1 \Downarrow U+21D3
\updownarrow U+2195 \Updownarrow U+21D5
\mapsto U+21A6 \longmapsto U+27FC
\longleftarrow U+27F5 \longrightarrow U+27F6
\longleftrightarrow U+27F7 \Longleftarrow U+27F8
\implies U+27F9 \iff U+27FA
\hookrightarrow U+21AA \hookleftarrow U+21A9
\nearrow U+2197 \searrow U+2198
\nwarrow U+2196 \swarrow U+2199
\rightharpoonup U+21C0 \rightharpoondown U+21C1
\leftharpoonup U+21BC \leftharpoondown U+21BD
\rightleftharpoons U+21CC \leftrightharpoons U+21CB
\rightrightarrows U+21C9 \leftleftarrows U+21C7
\rightleftarrows U+21C4 \leftrightarrows U+21C6
\Lsh U+21B0 \Rsh ↱ U+21B1
\twoheadleftarrow U+219E \twoheadrightarrow U+21A0
\rightsquigarrow U+21DD \leftrightsquigarrow U+21AD
\circlearrowleft U+21BA \circlearrowright U+21BB
\curvearrowleft U+21B6 \curvearrowright U+21B7
\dashleftarrow U+21E0 \dashrightarrow U+21E2
\upuparrows U+21C8 \downdownarrows U+21CA
\upharpoonleft U+21BF \upharpoonright U+21BE
\downharpoonleft U+21C3 \downharpoonright U+21C2

Negated arrows (\nleftarrow, \nrightarrow, \nleftrightarrow, \nLeftarrow, \nRightarrow, \nLeftrightarrow) are also supported.

Dots

Command Symbol Unicode
\ldots or \dots U+2026
\cdots U+22EF
\vdots U+22EE
\ddots U+22F1
\iddots U+22F0

Semantic dot commands \dotsb, \dotsc, \dotsi, \dotsm, \dotso are accepted and mapped to or as appropriate.

Miscellaneous symbols

Command Symbol Unicode Command Symbol Unicode
\infty U+221E \partial U+2202
\nabla U+2207 \forall U+2200
\exists U+2203 \nexists U+2204
\emptyset U+2205 \aleph U+2135
\beth U+2136 \gimel U+2137
\daleth U+2138 \ell U+2113
\wp U+2118 \Re U+211C
\Im U+2111 \hbar U+210F
\imath ı U+0131 \jmath ȷ U+0237
\prime U+2032 \angle U+2220
\measuredangle U+2221 \sphericalangle U+2222
\top U+22A4 \bot U+22A5
\neg ¬ U+00AC \complement U+2201
\square U+25A1 \blacksquare U+25A0
\triangle U+25B3 \triangledown U+25BD
\blacktriangle U+25B4 \blacktriangledown U+25BE
\lozenge U+25CA \blacklozenge U+29EB
\bigstar U+2605 \Diamond U+25C7
\clubsuit U+2663 \diamondsuit U+2662
\heartsuit U+2661 \spadesuit U+2660
\flat U+266D \natural U+266E
\sharp U+266F \checkmark U+2713
\maltese U+2720 \mho U+2127
\Finv U+2132 \Game U+2141
\backslash \ U+005C \Vert U+2016
\bigcirc U+25EF

Negation table

The \not prefix converts these relations to their negated Unicode form:

Base Negated Base Negated
< → ≮ = → ≠ > → ≯ \leq → ≰
\geq → ≱ \sim → ≁ \simeq → ≄ \cong → ≇
\approx → ≉ \equiv → ≢ \prec → ⊀ \succ → ⊁
\subset → ⊄ \supset → ⊅ \subseteq → ⊈ \supseteq → ⊉
\sqsubseteq → ⋢ \sqsupseteq → ⋣ \vdash → ⊬ \models → ⊭
\mid → ∤ \parallel → ∦ \in → ∉ \ni → ∌
\exists → ∄ \trianglelefteq → ⋬ \trianglerighteq → ⋭
\leftarrow → ↚ \rightarrow → ↛ \leftrightarrow → ↮
\Leftarrow → ⇍ \Rightarrow → ⇏ \Leftrightarrow → ⇎

Alphabetics and Math-Alphanumeric Variants

How alphabetics work during import

Latin letters (az, AZ) in math mode are rendered in math italic by default — this is standard LaTeX and OMML behavior. Font commands change the style:

Command Example Result
\mathbf{A} Bold A Mapped to U+1D400 block (Mathematical Bold)
\mathbb{R} Double-struck R Mapped to U+1D538 block (Mathematical Double-Struck)
\mathcal{L} Script L Mapped to U+1D49C block (Mathematical Script)
\mathfrak{g} Fraktur g Mapped to U+1D504 block (Mathematical Fraktur)
\mathsf{x} Sans-serif x Mapped to U+1D5A0 block (Mathematical Sans-Serif)
\mathtt{x} Monospace x Mapped to U+1D670 block (Mathematical Monospace)

How alphabetics work during export

When exporting OMML to LaTeX, characters from the Unicode Mathematical Alphanumeric Symbols block (U+1D400–U+1D7FF) are folded back to their base ASCII/Greek equivalents. The font style encoded in the codepoint determines which \math*{...} command wraps the character:

Unicode block Starting codepoint Export command
Bold U+1D400 \mathbf{x}
Italic U+1D434 (default, no wrapper)
Bold Italic U+1D468 \boldsymbol{x}
Script U+1D49C \mathcal{x}
Fraktur U+1D504 \mathfrak{x}
Double-Struck U+1D538 \mathbb{x}
Sans-Serif U+1D5A0 \mathsf{x}
Monospace U+1D670 \mathtt{x}

Greek letters in the supplementary plane (Bold Greek at U+1D6A8, Italic Greek at U+1D6E2, etc.) are similarly folded back to BMP Greek characters with appropriate font wrappers.

BMP letterlike symbols (ℂ, ℍ, ℕ, ℙ, ℚ, ℝ, ℤ, ℓ, ℏ, etc.) are also recognized and folded to \mathbb{C}, \mathbb{H}, etc.


Export (Office Math → LaTeX)

When you build down an equation or export to LaTeX, the converter produces LaTeX that re-imports to the same OMML structure.

Structural pattern matching

The export performs pattern matching on the OMML tree to produce idiomatic LaTeX:

OMML pattern LaTeX output
<m:f> (fraction) \frac{num}{den}
<m:f> with no bar \binom{n}{k} (if in parentheses) or \genfrac
<m:rad> \sqrt{x} or \sqrt[n]{x}
<m:d> (delimiter) \left( ... \right) with appropriate delimiters
<m:d> with ⟦ ⟧ \lbrack\!\lbrack ... \rbrack\!\rbrack
<m:func> with "mod" \bmod x
<m:d> with (\mod ...) \pmod{x}
<m:acc> (accent) \hat{x}, \vec{x}, etc.
<m:bar> top \overline{x}
<m:bar> bottom \underline{x}
<m:groupChr> with ⏞ \overbrace{x}
<m:groupChr> with ⏟ \underbrace{x}
<m:groupChr> with → \xrightarrow[below]{above}
<m:limLow> / <m:limUpp> \overset, \underset, \lim_{x}
<m:nary> \int_{a}^{b}, \sum_{n=1}^{\infty}, etc.
<m:m> (matrix) \begin{pmatrix}, \begin{bmatrix}, etc.
<m:eqArr> \begin{aligned} or \begin{cases} (with left brace)
<m:sSup>, <m:sSub>, <m:sSubSup> x^{a}, x_{b}, x_{b}^{a}
<m:sPre> {}_{a}^{b}x
<m:phant> \phantom, \hphantom, or \vphantom
<m:borderBox> \boxed{x}, \cancel{x}, \bcancel{x}, or \xcancel{x}

Function name reconstruction

Consecutive \mathrm{s}\mathrm{i}\mathrm{n} sequences (produced by character-by-character upright formatting) are collapsed back into \sin, \cos, \log, \mod, and other known function names.

Compound limit functions

Compound names like \limsup and \liminf are reconstructed from their component parts (e.g., "lim" + thin-space + "sup") during export.

Unicode space mapping

Unicode math space characters in OMML text are converted to their corresponding LaTeX spacing commands:

Unicode LaTeX command
U+00A0 (NBSP) \
U+2001 (em quad) \quad
U+2002 (en space) \enspace
U+2003 (em space) \quad
U+2004 (three-per-em) \;
U+2005 (four-per-em) \;
U+2009 (thin space) \,
U+200A (hair space) \,
U+200B (zero-width) \!
U+205F (medium math space) \:

Symbol and character export

All symbols, operators, delimiters, accents, and n-ary operators listed in the import section are exported using their primary LaTeX command name. When a Unicode character has multiple LaTeX aliases (e.g., \le and \leq), the primary form is used.

Vulgar fraction characters (½, ⅓, ⅔, ¼, ¾) are exported as \tfrac{n}{d}.


Clipboard support

Operating systems do not have a clipboard format for LaTeX. LaTeX is often copied into Microsoft 365 using the CF_UNICODETEXT or CF_TEXT clipboard format. If the text can be unambiguously recognized as LaTeX since it is enclosed in $...$, $$...$$, \(...\), or \[...\] delimiters, then it is automatically imported as LaTeX and converted to Office Math. Otherwise it is inserted as regular text and can then be converted to Office Math by selecting it and then performing the Insert > Equation command.


Round-trip fidelity

Most LaTeX expressions round-trip faithfully (LaTeX → OMML → LaTeX produces equivalent output). However, some normalization occurs: aliases are canonicalized to primary forms (e.g., \le\leq), and spacing may be simplified.


Limitations

  1. Fraction and binomial sizes: \dfrac and \tfrac are imported identically to \frac and \dbinom, and \tbinom are imported identically to \binom. OMML does not support per-element display-style or text-style overrides, so the sizing distinction is lost.

  2. Continued fraction alignment: \cfrac[l]{num}{den} and \cfrac[r]{num}{den} are imported identically to \cfrac{num}{den}. Left and right alignment are not preserved.

  3. Big delimiter sizes: \big, \Big, \bigg, \Bigg and their directional variants (\bigl, \bigr, etc.) are all converted to auto-sizing \left...\right delimiters. The explicit size grades are not preserved.

  4. Calligraphic style: \mathcal{...} and \cal are only supported for uppercase letters. For other characters such as lowercase letters and digits default styling is applied.

  5. Script style: \mathscr{...} is imported identically to \mathcal{...}.

  6. Color: Color information is stored in OMML but not exported back to LaTeX during build-down. Color is preserved within the document but lost on LaTeX export.

  7. Matrix sizes: \begin{smallmatrix}...\end{smallmatrix} is handled the same as \begin{matrix}...\end{matrix}.

  8. Array column alignment: In PowerPoint and Excel, alignment of columns in an array is not supported. All columns are center-aligned.

  9. Equation numbering: \tag{...}, \label{...}, \ref{...}, \eqref{...}, \notag, and \nonumber are parsed and silently discarded during import (they do not cause errors, but the information is not preserved).

  10. Multi-line display: \begin{align} and similar environments produce an equation array. Alignment points are preserved, but the visual layout may differ from LaTeX rendering.

  11. Style commands: \displaystyle, \textstyle, \scriptstyle, and \scriptscriptstyle are parsed during import but do not affect the OMML output.

  12. Font sizes: \footnotesize, \tiny, \scriptsize, \small, \normalsize, \large, \Large, \LARGE, \huge, and \Huge are parsed and skipped. The sizes are not preserved.

Unsupported Commands

Commands not listed in this document are passed through as literal text during import (e.g., \smash{x} appears as the text "\smash{x}" in the equation). The following is a summary of notable commands that are not supported.

Core LaTeX math commands not supported

Command Description
\smash{x} Collapse height and/or depth
\ensuremath{x} Ensure math mode
\mathnormal{x} Reset to default math font
\mathord{x}, \mathbin{x}, \mathopen{x} Atom-type overrides
\mathclose{x}, \mathpunct{x}, \mathinner{x} Atom-type overrides
\strut, \mathstrut Invisible struts for spacing
\rule{w}{h} Horizontal rule
\raisebox{lift}{x} Raise or lower content
\above, \overwithdelims, \atopwithdelims TeX primitives for delimited fractions
\abovewithdelims TeX primitive for delimited fractions with bar
\let, \providecommand, \edef TeX/LaTeX macro definitions (only \newcommand, \renewcommand, \def are supported)

amsmath commands not supported

Command Description
\DeclareMathOperator{cmd}{name} Define a new operator name
\sideset{_a^b}{_c^d}{\sum} Side scripts on large operators
\smash[t]{x}, \smash[b]{x} Selective vertical smash
\intertext{text}, \shortintertext{text} Text between aligned rows
\shoveleft{x}, \shoveright{x} Shift lines within multline
\hdotsfor{n} Dots spanning matrix columns
\xleftrightarrow[below]{above} Extensible left-right arrow (only \xleftarrow and \xrightarrow are supported)
\xhookleftarrow, \xhookrightarrow Extensible hooked arrows
\xmapsto[below]{above} Extensible mapsto arrow
\nobreakdash Non-breaking dash
\allowdisplaybreaks, \displaybreak Page break control
\numberwithin{counter}{section} Numbering configuration
\raisetag{length} Adjust tag position

Other packages — commands not supported

Command Package Description
\sout{x}, \uline{x}, \uuline{x} ulem Underline/strikeout
\underbracket{x}, \overbracket{x} mathtools Bracket-style braces
\prescript{^a_b}{}{X} mathtools Prescripts
\coloneqq, \eqqcolon mathtools Colon-equals relations
\dv{f}{x}, \pdv{f}{x} physics Derivative operators
\braket{x\|y} braket Bra-ket inner product (\bra and \ket individually are supported)
\SI{value}{unit} siunitx SI units
\tensor{T}{^a_b} tensor Tensor notation

Requirements

Unless otherwise noted, the features described here are supported in Microsoft 365 Version 2606 (Build 20131.xxxxx) for Windows and Version 16.110 for Mac and later. Earlier versions support some, but not all of the features described here.