Unicode-math and declaring symbol font
It doesn't work because unicode-math
sets the font tables at begin document.
You should use the range
feature instead:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage[math-style=ISO, bold-style=ISO]{unicode-math}
\setmathfont{Garamond-Math.otf}
\setmathfont{latinmodern-math.otf}[
Scale=MatchLowercase,
range=it/{greek,Greek},
]
\setmathfont{Garamond-Math.otf}[range=\int]
\begin{document}
\[2a\alpha=\theta\]
\end{document}
unicode-math
does many things \AtBeginDocument
, you can delay your declarations:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Garamond-Math.otf}
\DeclareSymbolFont{gs}{OML}{cmm}{m}{it}
\newcommand*\RedeclareMathSymbol[4]{%
\let#1\relax
\DeclareMathSymbol{#1}{#2}{#3}{#4}%
}
\AtBeginDocument{%
\RedeclareMathSymbol{\alpha}{\mathalpha}{gs}{11}%
\RedeclareMathSymbol{\beta}{\mathalpha}{gs}{12}%
}
\begin{document}
\[2a\alpha=\beta\theta\]
\end{document}