What OpenType math fonts are there available for usage in TeX/LaTeX, e.g. with the unicode-math package?
Here is a MWE which you can use to show off the font.
\documentclass{article}
\pagestyle{empty}
\usepackage{amsmath}
\DeclareMathOperator\Res{Res}
\newcommand*\diff{\mathop{}\!\mathup{d}}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}
\usepackage{unicode-math}
%%%
% Set up your text and math fonts
%%%
\begin{document}
\begin{theorem}[Residue theorem]
Let $f$ be analytic in the region $G$ except for the isolated
singularities $a_1,a_2,\dots,a_m$. If $\gamma$ is a closed
rectifiable curve in $G$ which does not pass through any of the
points $a_k$ and if $\gamma\approx 0$ in $G$, then
\[
\frac{1}{2\pi i} \int\limits_\gamma f\Bigl(x^{\mathbf{N}\in\mathbb{C}^{N\times 10}}\Bigr)
= \sum_{k=1}^m n(\gamma;a_k)\Res(f;a_k)\,.
\]
\end{theorem}
\begin{theorem}[Maximum modulus]
Let $G$ be a bounded open set in $\BbbC$ and suppose that $f$ is a
continuous function on $G^-$ which is analytic in $G$. Then
\[
\max\{\, |f(z)|:z\in G^- \,\} = \max\{\, |f(z)|:z\in \partial G \,\}\,.
\]
\end{theorem}
First some large operators both in text:
$\iiint\limits_{Q}f(x,y,z) \diff x \diff y \diff z$
and
$\prod_{\gamma\in\Gamma_{\bar{C}}}\partial(\tilde{X}_\gamma)$;\
and also on display
\[
\iiiint\limits_{Q}f(w,x,y,z) \diff w \diff x \diff y \diff z
\leq
\oint_{\partial Q} f'\Biggl(\max\Biggl\{
\frac{\Vert w\Vert}{\vert w^2+x^2\vert};
\frac{\Vert z\Vert}{\vert y^2+z^2\vert};
\frac{\Vert w\oplus z\Vert}{\vert x\oplus y\vert}
\Biggr\}\Biggr)\,.
\]
\end{document}
Here is a similar MWE for ConTeXt. The images in the answer will only be shown for LaTeX output but the ConTeXt output looks very similar.
%%%
% Set up your text and math fonts
%%%
\setupmathlabeltext[Res=Res]
\definemathcommand[Res][nolop]{\mfunctionlabeltext{Res}}
\definemathcommand[diff]{\mathop{}\!\mfunctionlabeltext{diff}}
\defineenumeration
[theorem]
[text={Theorem},
style=italic,
title=yes,
titlestyle=normal,
distance=0pt,
titleleft={(},
titleright={).~},
alternative=serried,
width=fit]
\starttext
\starttheorem[title={Residue theorem}]
Let $f$ be analytic in the region $G$ except for the isolated
singularities $a_1,a_2,\dots,a_m$. If $\gamma$ is a closed
rectifiable curve in $G$ which does not pass through any of the
points $a_k$ and if $\gamma\approx 0$ in $G$, then
\startformula
\frac{1}{2\pi i} \int\limits_\gamma f\Bigl(x^{{\mathbf N}\in\mathbb{C}^{N\times 10}}\Bigr)
= \sum_{k=1}^m n(\gamma;a_k)\Res(f;a_k)\,.
\stopformula
\stoptheorem
\starttheorem[title={Maximum modulus}]
Let $G$ be a bounded open set in $\mathbb{C}$ and suppose that $f$ is a
continuous function on $G^-$ which is analytic in $G$. Then
\startformula
\max\{\, |f(z)|:z\in G^- \,\} = \max\{\, |f(z)|:z\in \partial G \,\}\,.
\stopformula
\stoptheorem
First some large operators both in text:
$\iiint\limits_{Q}f(x,y,z) \diff x \diff y \diff z$
and
$\prod_{\gamma\in\Gamma_{\bar{C}}}\partial(\tilde{X}_\gamma)$;\
and also on display
\startformula
\iiiint\limits_{Q}f(w,x,y,z) \diff w \diff x \diff y \diff z
\leq
\oint_{\partial Q} f'\Biggl(\max\Biggl\{
\frac{\Vert w\Vert}{\vert w^2+x^2\vert};
\frac{\Vert z\Vert}{\vert y^2+z^2\vert};
\frac{\Vert w\oplus z\Vert}{\vert x\oplus y\vert}
\Biggr\}\Biggr)\,.
\stopformula
\stoptext
ACCEPTED]
This is the default font family loaded by unicode-math, but can also be set up explicitly. It is an OpenType version of Latin Modern, a clone of DEK’s Computer Modern, based on Monotype Modern, and of the AMS symbol fonts. The default fonts are therefore nearly identical to those of classic LaTeX.
This conversion is the work of the GUST project, which later created the TeX Gyre fonts from the free URW fonts, which were based on the Adobe PostScript fonts. All of these fonts (except TeX Gyre DejaVu Math, a conversion of an existing OpenType font into a math font) have similar repertoires and features. They support all European languages as well as Romanizations of other languages. They (and TeX Gyre DejaVu Math) do not provide a bold variant (so \boldsymbol remains without effect).
The vast majority of the fonts on this page similarly cloned an existing font, but changed the name to avoid confusion or to comply with the license. Some have gone through three or four iterations of this.
GUST is the Polish TeX users’ group. Many of the people most motivated to extend existing fonts were from Southern or Eastern Europe, since fonts that already covered Western European languages and Greek letters for math were almost able to support their native languages.
% LaTeX
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}
% ConTeXt
\setupbodyfont[modern]

This is a clone of Bookman.
% LaTeX
\setmainfont{TeX Gyre Bonum}
\setmathfont{TeX Gyre Bonum Math}
% ConTeXt
\setupbodyfont[bonum]

This is a clone of Palatino.
% LaTeX
\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}
% ConTeXt
\setupbodyfont[pagella]

This is a clone of Century Schoolbook.
% LaTeX
\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
% ConTeXt
\setupbodyfont[schola]

This is a clone of Times.
% LaTeX
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
% ConTeXt
\setupbodyfont[termes]

This font is an extension of the DejaVu Serif font, which is based on Arev, which is based on Bitstream Vera, which is based on Bitstream Prima.
It is significantly different from the other TeX Gyre fonts, as they were conversions of legacy fonts to Unicode, and this turns an existing, comprehensive Unicode font by someone else into a math font. The DejaVu project was started by Štěpán Roh of the Czech Republic.
% LaTeX
\setmainfont{DejaVu Serif}
\setmathfont{TeX Gyre DejaVu Math}
% ConTeXt
\setupbodyfont[dejavu]

The version of the same font distributed by the DejaVu project [1] rather than the TeX Gyre project.
% LaTeX
\setmainfont{DejaVu Serif}
\setmathfont[Scale=MatchLowercase]{DejaVu Math TeX Gyre}
This is an fork by Khaled Hosny of the STIX font. it was one of the first free OpenType math fonts to come in both a regular and a bold weight, meaning that \boldmath, \mathversion{bold} and \boldsymbol will all work with it.
% LaTeX
\setmainfont{XITS}
\setmathfont{XITS Math}
% ConTeXt
\setupbodyfont[xits]

Libertinus is a fork by Khaled Hosny of the Linux Libertine font family by Philipp Poll. It comes in a bold weight, like his font XITS Math.
Dr. Hosny is also an expert on typesetting math in the Arabic script, so his fonts Libertinus Math and Amiri make excellent companions if you are writing in a language such as Arabic, Persian or Urdu.
% LaTeX
\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}
% ConTeXt
\setupbodyfont[libertinus]

Asana is a close match for Palatino, and therefore its clones, such as Pagella. You should use one of them as the text font. If you try to make Asana the text font, you will not get either styles or ligatures.
It was created by Apostolos Syropoulos, based on Type 1 fonts by Young Ryu, and is similar in appearance to the pxfonts package.
% LaTeX
\setmainfont[Ligatures={Common,Rare,TeX}]{TeX Gyre Pagella}
\setmathfont[Scale=MatchUppercase]{Asana Math}
This is the successor to the STIX font of which XITS is a clone. It was added to CTAN, TeX Live and MikTeX in 2018.
% LaTeX
\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}
% ConTeXt
\setupbodyfont[stixtwo]

This font has only minor slab serifs, making it a good choice for presentations. It is based on the public-domain font New Hellenic, inspired by a Greek font from Renaissance Venice.
The math version was commissioned from the Greek Fonts Society by the Department of Mathematics at the University of the Aegean.
% LaTeX
\setmainfont{GFS Neohellenic}
\setmathfont{GFS Neohellenic Math}
% ConTeXt (no ready-made typescript available)
\definefontfamily [mainface] [serif] [Latin Modern Roman]
\definefontfamily [mainface] [sans] [GFS Neohellenic]
\definefontfamily [mainface] [mono] [Latin Modern Mono]
\definefontfamily [mainface] [math] [GFS Neohellenic Math]
\setupbodyfont[mainface]

This font was added to CTAN in 2019. It is based on EB Garamond.
% LaTeX
\setmainfont{EBGaramond-Regular}[
BoldFont = EBGaramond-Bold,
ItalicFont = EBGaramond-Italic,
BoldItalicFont = EBGaramond-BoldItalic
]
\setmathfont{Garamond Math}[Scale=MatchUppercase]
This font is based on the Fira Go sans-serif font. It was added to CTAN in November 2018.
% LaTeX
\setmainfont{FiraGO}
\setmathfont{FiraMath-Regular}
Erewhon Math is based on Utopia, via Heuristica and Erewhon. Its math symbols are based on the fourier package. It was added to CTAN in December 2019.
The recommended way to load it is with
\usepackage{fourier-otf}
But \setmainfont{Erewhon} and \setmathfont{Erewhon-Math} also work. As of February 2020, I needed the following workaround before fourier-otf to enable bold text:
% Workaround for the definition of theorem headers:
\usepackage{fontspec}
\defaultfontfeatures[Erewhon]{FontFace = {bx}{n}{Erewhon-Bold.otf}}
This is an OpenType version of kpfonts by Christophe Caignaert.
% LaTeX
\usepackage{kpfonts-otf}
KpMath fonts provide 5 styles, and can be set via math versions:
\setmathfont{KpMath-Regular.otf}[version=regular]
\setmathfont{KpMath-Bold.otf}[version=bold]
\setmathfont{KpMath-Semibold.otf}[version=semibold]
\setmathfont{KpMath-Sans.otf}[version=sans]
\setmathfont{KpMath-Light.otf}[version=light]
The \boldmath and \boldsymbol commands switch to the bold math version, so most authors will want to pick one of these weights as the default and the other as bold, e.g.
\setmathfont{KPMath-Light.otf}
\setmathfont{KPMath-Semibold.otf}[
version=bold]
might better match the weights of the text fonts. This lets you format headers with \bfseries\boldmath to have the math match the text.
If you truly need to switch between three or more math styles in the same document, you can adapt the \boldsymbol code from amsbsy.sty to other math styles.
A fork of Latin Modern that adds support for more script and math symbols, including Greek, Cyrillic, Hebrew, Cherokee and all the symbols in the STIX fonts. It also comes in a slightly-heavier Book weight and supplies a sans font with math support. As of 2020, there are some features of Latin Modern it does not yet support, such as optical sizes and upright italics.
In book weight:
\usepackage[default]{fontsetup}
And in regular weight:
\usepackage[olddefault]{fontsetup}
Sans serif:
\usepackage[sansdefault]{fontsetup}
The concmath-otf package offers an Opentype version of the Concrete Math font created by Ulrik Vieth in MetaFont. concmath-otf.sty is a replacement for the original concmath.sty package.
% LaTeX
\usepackage{concmath-otf}
XCharter-Math is an Opentype mathematical font based on Bitstream Charter meant to be used with XCharter text fonts.
% LaTeX
\usepackage{xcharter-otf}
A sans math font (formerly called Lato Math) meant to be used with the Lato [2] text fonts.
% LaTeX
\usepackage[default]{lato}
\usepackage{lete-sans-math}
An extension of the Neo Euler math font with a mostly complete symbol set. It is shown with both CMU Concrete and TeX Gyre Pagella (Palatino) as text fonts.
% LaTeX
\usepackage{euler-math}
\setmainfont{CMU Concrete}
% LaTeX
\usepackage{euler-math}
\setmainfont{TeX Gyre Pagella}
A conversion by Khaled Hosny of the AMS Euler font designed by Hermann Zapf for the book DEK co-authored, Concrete Mathematics: A Foundation for Computer Science.
The code @davislor wrote below is now available in a package, although you will still need to
download
euler.otf
from its repository.
[3] You can now write either
\usepackage[neoeuler]{fontsetup}
or
\usepackage{fspneoeulerot}
But here is the explanation of what they do:
AMS Euler was originally matched with the font Concrete Roman, which is now available from the Computer Modern Unicode project as CMU Concrete. Euler goes well with Zapf’s other famous fonts, the serif font Palatino (and therefore its many clones, including Pagella and Asana) and the sans-serif font Optima (which has an OpenType clone, URW Classico). Linux Libertine and its extension Libertinus are also good matches for it, and Libertinus Math, also by Khaled Hosny, shows some similarities.
Neo Euler was abandoned in 2010 and has a smaller repertoire of glyphs than the other fonts (nor will Zapf, who passed away in 2015, draw any more), so if it is missing any glyph you need, you might want to load it with the range= option, to use it with a fallback font that contains the glyphs it’s missing. The following loads all glyphs defined in Neo Euler, loads CMU Concrete as the text font, and uses Libertinus Math as the fallback for the rest (such as the ratio).
Since Neo Euler has upright glyphs and no italic glyphs, it requires the math-style=upright option of unicode-math. Unfortunately, the font metrics for subscripts and superscripts appear to be broken, so this example turns off script style for letters and numerals. It also makes sure to load the Greek lowercase letters as upright. If you want to use it with the full range of math alphabets, see below for a demo of how to fill in the missing pieces from other fonts.
% LaTeX
\unimathsetup{math-style=upright}
\setmainfont{CMU Concrete}
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont{Libertinus Math}
\setmathfont[range={"0000-"0001,"0020-"007E,
"00A0,"00A7-"00A8,"00AC,"00AF,"00B1,"00B4-"00B5,"00B7,
"00D7,"00F7,
"0131,
"0237,"02C6-"02C7,"02D8-"02DA,"02DC,
"0300-"030C,"030F,"0311,"0323-"0325,"032E-"0332,"0338,
"0391-"0393,"0395-"03A1,"03A3-"03A8,"03B1-"03BB,
"03BD-"03C1,"03C3-"03C9,"03D1,"03D5-"03D6,"03F5,
"2016,"2018-"2019,"2021,"2026-"202C,"2032-"2037,"2044,
"2057,"20D6-"20D7,"20DB-"20DD,"20E1,"20EE-"20EF,
"210B-"210C,"210E-"2113,"2118,"211B-"211C,"2126-"2128,
"212C-"212D,"2130-"2131,"2133,"2135,"2190-"2199,
"21A4,"21A6,"21A9-"21AA,"21BC-"21CC,"21D0-"21D5,
"2200,"2202-"2209,"220B-"220C,"220F-"2213,"2215-"221E,
"2223,"2225,"2227-"222E,"2234-"2235,"2237-"223D,
"2240-"224C,"2260-"2269,"226E-"2279,"2282-"228B,"228E,
"2291-"2292,"2295-"2299,"22A2-"22A5,"22C0-"22C5,
"22DC-"22DD,"22EF,"22F0-"22F1,
"2308-"230B,"2320-"2321,"2329-"232A,"239B-"23AE,
"23DC-"23DF,
"27E8-"27E9,"27F5-"27FE,"2A0C,"2B1A,
"1D400-"1D433,"1D49C,"1D49E-"1D49F,"1D4A2,"1D4A5-"1D4A6,
"1D4A9-"1D4AC,"1D4AE-"1D4B5,"1D4D0-"1D4E9,"1D504-"1D505,
"1D507-"1D50A,"1D50D-"1D514,"1D516-"1D51C,"1D51E-"1D537,
"1D56C-"1D59F,"1D6A8-"1D6B8,"1D6BA-"1D6D2,"1D6D4-"1D6DD,
"1D6DF,"1D6E1,"1D7CE-"1D7D7
}]{Neo Euler}
\setmathfont[range=up/{greek,Greek}, script-features={}, sscript-features={}
]{Neo Euler}
\setmathfont[range=up/{latin,Latin,num}, script-features={}, sscript-features={}
]{Neo Euler}
Another popular set-up is to use the upright letters from Neo Euler in combination with Palatino.
\usepackage[math-style=upright]{unicode-math}
\setmainfont{Palatino Linotype}[ % Or TeX Gyre Pagella, etc.
Scale=1.0,
Ligatures={Common,Rare,TeX}]
\setmathfont{TeX Gyre Pagella Math}[
Scale=MatchLowercase]
\setmathfont{euler.otf}[
range={up/{Latin,latin,Greek,Greek},
bfup/{Latin,latin,Greek,Greek},
cal, bfcal, frak, bffrak},
Scale=MatchLowercase,
script-features={},
sscript-features={}]
One of the first attempts to create a comprehensive set of all scientific, technical and mathematical symbols. STIX was based on Elsevier’s Esstix, and inspired by Monotype’s Times 4-Line Mathematics Series 569, a font from the middle of the century that simplified typesetting mathematics on mechanical printing presses. The OpenType math support is not complete, which led to the XITS Math project being created.
% LaTeX
\setmainfont{STIX}
\setmathfont{STIX Math}
% ConTeXt
\setupbodyfont[stix]
This font is available from the Noto Math fonts GitHub page. [4] Starting from version 3.000, it fully implements OpenType math features and privides an all-sans math font.
\setmainfont{Noto Sans}
\setmathfont{Noto Sans Math}
This is an incomplete font not included with TeX Live. It is available gratis from the foundry [5]. The text font also contains rare ligatures not shown here, as they look out of place in a mathematical text.
Whether this should be considered an “OpenType math font” is debatable. It lacks an OpenType math table, and unicode-math 0.81 will not consider it valid as the main math font. This sample falls back to Latin Modern Math as the default math font, then loads every glyph this font defines over that, which you can do for any TrueType or OpenType font. It contains only upright symbols, so it will only work with the math-style=upright option of unicode-math (or if you kitbash it to import symbols from the text fonts; see below).
Despite being licensed under the GPL2, it does not come with any source files.
% LaTeX
\unimathsetup{math-style=upright}
\setmainfont[Ligatures={Common,TeX}]{Berenis ADF Pro}
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont{Latin Modern Math}
\setmathfont[range={"0020-"007E,"00A0-"021F,"0237,"0259,"02C6,"02C7,
"02D8-"02DD,"0311,"0326,"037B-"037E,"0384-"038A,"038C-"045F,"0490-"0491,
"1E10-"1E11,"1E80-"1E85,"1EF2-"1EF3,"2000-"2026,"2030,"2039-"203A,"2044,
"2070,"2074-"207A,"207D-"208A,"208D-"208E,"20AC,"20DD-"20DF,"2102-"2103,
"2109,"210E-"210F,"2113,"2116,"2122,"2126,"212A,"212C-"212E,"2133,"213D,
"2153-"215E,"2190-"219D,"21A4-"21A8,"21AE-"21CA,"21D1-"21EA,"2202-"2212,
"2216-"221E,"2223-"222D,"223C="223D,"2241,"2248-"2249,"224D,"2260,
"2264-"2265,"226A-"226B,"226D-"2275,"227A-"227B,"2280-"2281,"2290-"2294,
"22C4-"22C5,"22E2-"22E3,"22EF,"2302-"2303,"25CA,"FB00-"FB06}
]{Berenis ADF Pro Math Regular}
Distributed by the TeX User Group. https://tug.org/store/lucida/index.html
% LaTeX
\setmainfont[
UprightFont = *,
ItalicFont = *-Italic,
BoldFont = *-Demi,
BoldItalicFont = *-DemiItalic,
Extension = .otf
]{LucidaBrightOT}
\setmathfont{LucidaBrightMathOT}
\setmathfont[version=bold]{LucidaBrightMathOT-Demi}
% ConTeXt
\setupbodyfont[lucidaot]

Distributed by its designer, [6] Johannes Küster. It comes in four weights and five optical sizes, the most of any OpenType math font (as of 2019).
% LaTeX
\setmainfont{Minion Pro}
\setmathfont[
SizeFeatures = {
{Size = -6, Font = MinionMath-Tiny, Style = MathScriptScript},
{Size = 6-8.4, Font = MinionMath-Capt, Style = MathScript},
{Size = 8.4-13, Font = MinionMath-Regular},
}]{MinionMath-Regular}
\setmathfont{MinionMath-Bold}[range={bfup->up,bfit->it}]
% ConTeXt
\setupbodyfont[minion]

This is the font Microsoft Office uses for its equations. The font ships with Microsoft Windows Vista and later, with MS Office, and an early version was bundled with some versions of the MS Office viewers. Monotype sells licenses to use it on workstations and embed it in webpages, but the most likely way to have a legal copy of it on Linux is with a symbolic link in /usr/local/share/fonts/ or ~/.fonts to cambria_01.ttf on a Windows partition.
% LaTeX
\setmainfont{Cambria}
\setmathfont{Cambria Math}
% ConTeXt
\setupbodyfont[cambria]
Many of these fonts contain either stylistic sets or stylistic alternates that allow you to select between different versions of some of the symbols in the font. STIX Two has an especially large number, and actually documents them [7]. If a font doesn’t, you can still check what it currently supports by opening it in FontForge. This is in addition to the choices you can make with package options.
For example, both XITS and STIX Two include a Stylistic Set 8 with alternative upright integrals. (In fact, STIX Two supports every stylistic set XITS Math does.) You can select them as follows:
% LaTeX
\setmainfont{XITS}
\setmathfont{XITS Math}
\setmathfont[range={"222B-"2233,"2A0B-"2A1C},StylisticSet=8]{XITS Math}
For comparison, here is the vanilla XITS example again:

A common use of these alternative styles is on the script alphabet. Traditionally, LaTeX had separate alphabets for \mathcal and \mathscr. However, the Unicode consortium decided that no mathematical texts use both of these with different meanings, so they were different presentation forms assigned to the same codepoints.
However, unicode-math allows you to load different alphabets as \mathcal and \mathscr, and also \mathbfcal and \mathbfscr. Some fonts, such as XITS, implement this as a stylistic set, some, such as Asana Math, implement it as a stylistic alternative, and others require you to load a different font of you want to do that. For example, to do it with Asana Math:
% LaTeX
\documentclass[preview,varwidth]{standalone}
\usepackage{microtype}
\usepackage{unicode-math}
\setmainfont[Ligatures={Common,Rare,TeX}]{Palatino Linotype}
% You might have Palatino or Palatino Linotype installed.
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont[Scale=MatchLowercase]{Asana Math}
\setmathfont[range={cal,bfcal},
Alternate,
Scale=MatchUppercase]
{Asana Math}
\begin{document}
Calligraphic: \(\mathcal{ABC}\) \qquad Script: \(\mathscr{ABC}\)
\end{document}
It is possible to load symbols from any font into a math style, and use them as symbols with \symup. For example, nearly all fonts include a QED symbol at U+220E, but what it looks like varies considerably. To get the version in XITS Math (the black tombstone that matches the 1997 edition of The Art of Computer Programming), you can use the commands:
% LaTeX
\documentclass[preview,varwidth]{standalone}
\usepackage{amsmath,amsthm}
\usepackage{unicode-math}
\setmathfont[range=`∎]{XITS Math}
\DeclareRobustCommand\qedsymbol{\ensuremath{\symup{∎}}}
\begin{document}
\begin{proof}[Tautology]
True
\end{proof}
\end{document}
Another common request is to combine the letters of a text font family with the symbols of a math font. Since Neo Euler is the math font lacking italic letters at all, it makes a good example. A frequent recommendation is to combine Euler with Hermann Zapf’s other creation, Palatino. Since both Pagella and Asana are clones of Palatino, we can use Pagella as the text fonts and take all the missing glyphs, including italic math letters, from Asana.
This gives us the repertoire to convert the sample to ISO style (a great excuse to show off upright and italic math letters together). Constants such as π and i remain upright (written 2 \symup{\pi i}, the denominator still shows Euler math letters). Uppercase Greek letters, such as the Gamma function, are now italic rather than upright, but symbols based on Greek letters, such as summation and product, remain the same.
Essentially, this adds a few lines to the bottom of the preamble filling in all the remaining math alphabets and setting up digits to match the text font.
% LaTeX
\unimathsetup{math-style=ISO, partial=upright, nabla=upright}
\setmainfont{TeX Gyre Pagella}
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont{Asana Math}
\setmathfont[range={"0000-"0001,"0020-"007E,
"00A0,"00A7-"00A8,"00AC,"00AF,"00B1,"00B4-"00B5,"00B7,
"00D7,"00F7,
"0131,
"0237,"02C6-"02C7,"02D8-"02DA,"02DC,
"0300-"030C,"030F,"0311,"0323-"0325,"032E-"0332,"0338,
"0391-"0393,"0395-"03A1,"03A3-"03A8,"03B1-"03BB,
"03BD-"03C1,"03C3-"03C9,"03D1,"03D5-"03D6,"03F5,
"2016,"2018-"2019,"2021,"2026-"202C,"2032-"2037,"2044,
"2057,"20D6-"20D7,"20DB-"20DD,"20E1,"20EE-"20EF,
"210B-"210C,"210E-"2113,"2118,"211B-"211C,"2126-"2128,
"212C-"212D,"2130-"2131,"2133,"2135,"2190-"2199,
"21A4,"21A6,"21A9-"21AA,"21BC-"21CC,"21D0-"21D5,
"2200,"2202-"2209,"220B-"220C,"220F-"2213,"2215-"221E,
"2223,"2225,"2227-"222E,"2234-"2235,"2237-"223D,
"2240-"224C,"2260-"2269,"226E-"2279,"2282-"228B,"228E,
"2291-"2292,"2295-"2299,"22A2-"22A5,"22C0-"22C5,
"22DC-"22DD,"22EF,"22F0-"22F1,
"2308-"230B,"2320-"2321,"2329-"232A,"239B-"23AE,
"23DC-"23DF,
"27E8-"27E9,"27F5-"27FE,"2A0C,"2B1A,
"1D400-"1D433,"1D49C,"1D49E-"1D49F,"1D4A2,"1D4A5-"1D4A6,
"1D4A9-"1D4AC,"1D4AE-"1D4B5,"1D4D0-"1D4E9,"1D504-"1D505,
"1D507-"1D50A,"1D50D-"1D514,"1D516-"1D51C,"1D51E-"1D537,
"1D56C-"1D59F,"1D6A8-"1D6B8,"1D6BA-"1D6D2,"1D6D4-"1D6DD,
"1D6DF,"1D6E1,"1D7CE-"1D7D7
}]{Neo Euler}
\setmathfont[range=up/{greek,Greek}, script-features={}, sscript-features={}
]{Neo Euler}
\setmathfont[range=up/{latin,Latin}, script-features={}, sscript-features={}
]{Neo Euler}
\setmathfont[range={bfup/{latin, Latin, greek, Greek}, frak, bffrak, cal},
script-features={}, sscript-features={}
]{Neo Euler}
\setmathfont[range={up/num, bfup/num, it, bfit, scr, bfscr,
sfup, sfit, bfsfup, bfsfit, tt}
]{Asana Math}
\setmathfont[range=bfcal, Scale=MatchUppercase, Alternate]{Asana Math}
\setmathfont[range=bb, Scale=MatchUppercase]{Latin Modern Math}
Here again is the example with Neo Euler as the math font:
(The eagle-eyed will have noticed one more unexplained line of code, which sets the partial and nabla package options to upright. Neo Euler contains the upright ∂ symbol in U+2202, but not the cursive ∂ symbol at U+1D715, which confuses unicode-math. Otherwise, load U+1D715 from another math font.)
It is often a good idea to set up subscripts, superscripts, sub-subscripts and super-superscripts to use a smaller optical size, to make it more legible at smaller sizes. There are three methods. There might be a companion font designed for smaller sizes. which you would load with script-font=. (The commercial font Aldus is intended as this for Palatino.) Many fonts, including Latin Modern and all the TeX Gyre fonts, come with different optical sizes and you can select a smaller one, e.g. script-features={OpticalSize=8}, sscript-features={OpticalSize=6}. Finally, math fonts support the font features script-features={Script=Math, Style=MathScript}, sscript-features={Script=Math, Style=MathScriptScript}.
For more information, see the documentation of the
unicode-math
[8] and
fontspec
[9] packages.
fontspec complains that OpenType feature Style=MathScript (ssty) not available for font BerenisADFProMath with script Math and language Default and the PDF output uses Berenis only for the text fonts, substituting Latin Modern for the math. Someone who knows about making math fonts may want to look into fixing this one (and whether it’s worth fixing). - Thérèse
convert -density 120 -background white -compose src-in -alpha Remove -trim +repage -gravity center -extent 636 -frame 2 residue-template.pdf residue-template.png. The -density argument will vary by the metrics of the font so as to get take up the correct amount of horizontal space, and should be between 120 and 130. If you want a lowest common denominator, use 120. - Davislor
-alpha Remove myself as well but apparently that turns off anti-aliasing for fonts. That is why I switched to mutool. - Henri Menke
png24:residue-template.png, still works. However, since the R,G and B values of every shade of gray are still equal, there are only 256 shades of gray being used. At a glance, all the workaround appears to do is increase the file sizes by 50%. - Davislor
magick convert rather than convert. On further testing, ImageMagick 7 will determine the minimum color depth needed for the image, so I sometimes see it give me a monochrome bit depth of 4. - Davislor
mathastext provides since 2013 a macro \MTsetmathskips to fix glyph collisions with letters such as f coming from text fonts and used in math mode. With it results of using traditional TeX-prepared fonts in math can be made to look definitily better than the samples here with the TeX Gyre Math fonts such as Bonum, Pagella, Schola and Termes (see the |f(z)| e.g.). I wonder if some more Unicode native package should provide that. I recall \XeTeXintercharclass is off in math mode, sadly. Maybe I am wrong. - user4686
some and operators. - user157036
mutool solution might work better, but as a quick workaround, I substituted Pagella. - Davislor
unicode-math allows you to use OpenType math fonts, and mathspec lets you use letters and numerals from an OpenType font along with a legacy math font. They cannot be combined. Since this question is about OpenType math fonts, all answers will use unicode-math and not mathspec, and use \setmathfont rather than \setmathsfont. (You know this, but I thought it worth leaving a comment about.) - Davislor
Package fontspec Error: The font "FiraGO" cannot be found.. Compiled using your specs with lualatex. \usepackage[mathit=sym,bold-style=ISO]{unicode-math} \setmainfont{FiraGO} \setmathfont{FiraMath-Regular} - Nasser
IBM Plex Math is finally getting out of beta: github.com/IBM/plex/tree/master/packages/plex-math (the README says it will be available in Q2 2024) - DG'
Several new fonts have recently appeared: NagwaTK, Old Standard Math, IBM Plex, Luciole and Pennstander.
The fonts can be downloaded from here as they are not available on CTAN yet: https://fonts.nagwa.com/tk/
\usepackage{unicode-math}
\setmainfont{NagwaTKText}
\setmathfont{NagwaTKMath-Regular.otf}
\usepackage[oldstandard]{fontsetup}
Erewhon Math (fourier-otf), XCharter Math (xcharter-otf) and Concete Math (concmath-otf) offer limited bold math variants, which are loaded automatically by invoking the appropriate package, e.g. \usepackage{concmath-otf} to load the Concrete text, math and bold math fonts. The bold math fonts can be loaded manually as well using \setmathfont{Concrete-Math-Bold.otf}[version=bold] or \setmathfont{Concrete-Math-Regular.otf}[BoldFont=Concrete-Math-Bold.otf].
One can adjust the adjust the DisplayOperatorMinHeight font parameter using \everydisplay{\Umathoperatorsize\displaystyle=4ex} as explained in
this answer
[1], to get longer integrals for TeX Gyre fonts.
ConTeXt provides goodie files, which solve some long-standing bugs from the TeX Gyre (and other) fonts, such as integral height. Loading the fonts in the standard way loads these goodie files as well.
The font does not seem to be available on CTAN. GitHub repo link: https://github.com/IBM/plex.
\setmainfont{IBM Plex Serif}
\setmathfont{IBM Plex Math}
There exists a supporting package
plex-otf
[2] on CTAN.
A set of OpenType text and math fonts developed explicitly for visually impaired people. Link: https://www.luciole-vision.com/en/math.html. The font is available on CTAN as well.
A limited bold math font is available as well (as with other Daniel Flipo's fonts).
% LaTeX
\usepackage{luciole-math}
\setmainfont{Luciole}
An informal/handwritten font which comes in 9 weights--Thin, ExtraLight, Light, Regular, Medium, SemiBold, Bold, ExtraBold, Black (yikes!). I am pretty sure this is the MATH font with the highest number of weights. Some weights are shown below.
The font does not seem to be available on CTAN as of now. GitHub link: https://github.com/juliusross1/Pennstander.
Pennstander Thin:
Pennstander Regular:
Pennstander Bold:
%For LuaLaTeX/XeLaTeX (copied from the GitHub repo README file)
\setmainfont[
BoldFont =Pennstander-Light.otf,
ItalicFont = Pennstander-ItalicThin.otf,
BoldItalicFont = Pennstander-ItalicLight.otf
]
{Pennstander-Thin.otf}
%% Replace 'Thin'/'Light' in the above with one of the following to match the
%% mathematics font below
%% 'ExtraLight'/'Regular'
%% 'Light'/'Medium'
%% 'Regular'/'SemiBold'
%% 'Medium'/'Bold'
%% 'SemiBold'/'ExtraBold'
%% 'Bold'/'Black' (some math symbols do not look good at Bold/ExtraBold/Black so use with care)
%% 'ExtraBold'/'Black'
%% 'Black'/'Black'
\setmathfont[
script-font = PennstanderMath-Thin-script.otf, % optional, acts as cheap optical sizing
sscript-font = PennstanderMath-Thin-sscript.otf, % optional, acts as cheap optical sizing
]{PennstanderMath-Thin.otf}
%% Replace 'Thin' with 'ExtraLight'/'Light'/... to match the text font above
Arsenal text fonts are available from Google Fonts: https://fonts.google.com/specimen/Arsenal.
Arsenal Math CTAN Link: https://ctan.org/pkg/arsenal-math. (By Rajeesh KV)
\usepackage{unicode-math}
\setmainfont[BoldFont=Arsenal-Bold.ttf, BoldItalicFont=Arsenal-BoldItalic.ttf, ItalicFont=Arsenal-Italic.ttf]{Arsenal-Regular.ttf}
\setmathfont[BoldFont=ArsenalMath-SansBold]{ArsenalMath-Sans}
[1] https://tex.stackexchange.com/a/489878/128462
fwith|in|f(z)|in all four of TeX Gyre {Termes,Pagella,Schola,Bonum} Math. (and near glyph collision of again thefwith the subscriptedQin bottom display, possibly because the multiple integrals look definitely text and not display style in thsse math fonts) - user4686