Можно воспользоваться услугами пакета
mathspec (попроще) или
unicode-math (посложнее).
1) Если используете
mathspec, то пакет
fontspec загружать нужно с опцией
no-math (или вообще не загружать:
mathspec сделает это сам). Простенький пример (я убрал из преамбулы большую часть не относящегося к делу мусора; к слову, если используете xelatex, то пакет
inputenc вообще не нужен):
\documentclass{article}
\usepackage{mathtools,amssymb}
\usepackage{mathspec}
\newcommand*{\myfont}{Georgia}
\setmainfont{\myfont}[Ligatures=TeX]
\setsansfont{\myfont}[Scale=0.975]
\setmonofont{\myfont}
\setmathfont(Digits){\myfont}
\usepackage[english,russian]{babel}
\begin{document}
\noindent
$0123456789AaBbCcfi$\\
$\textnormal{0123456789}\textit{AaBbCcfi}$
\begin{gather}
\int_{0}^{1}x^{-x}\mathrm{d}x=\sum_{n=1}^{\infty}n^{-n}\\
A\setminus A=\varnothing\ne\emptyset
\end{gather}
\end{document}
2) Аналогичный пример с
unicode-math (всякие математические пакеты типа
amsmath и
amssymb нужно подключать раньше
unicode-math):
\documentclass{article}
\usepackage{mathtools,amssymb}
\usepackage{fontspec}
\newcommand*{\myfont}{Georgia}
\setmainfont{\myfont}[Ligatures=TeX]
\setsansfont{\myfont}[Scale=0.975]
\setmonofont{\myfont}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range={"0030-"0039}]{\myfont}
\usepackage[english,russian]{babel}
\begin{document}
\noindent
$0123456789AaBbCcfi$\\
$\textnormal{0123456789}\textit{AaBbCcfi}$
\begin{gather}
\int_{0}^{1}x^{-x}\mathrm{d}x=\sum_{n=1}^{\infty}n^{-n}\\
A\setminus A=\varnothing=\emptyset
\end{gather}
\end{document}
При взгляде на последнюю формулу можно заметить 2 проблемы:
1) Вместо значка
(разность множеств) — просто пустое место. Дело в том, что соответствующий символ отсутствует в шрифте
Latin Modern Math. Можно взять его из другого шрифта или использовать вместо него
\smallsetminus. (Можно переопределить команду
\setminus, но нужно иметь в виду, что пакет
unicode-math творит значительную часть своей магии после
\begin{document}, поэтому и переопределять нужно после.)
2) Вместо красивого значка пустого множества
используется
. Это из-за того, что в Юникоде есть лишь один символ пустого множества, поэтому обе команды
\emptyset и
\varnothing выдают одно и то же (результат зависит от шрифта). Можно позаимствовать нужный символ из другого шрифта, например
Asana Math (пакет
asana-math), с помощью опции
range.
Подправленный с учётом этих замечаний пример:
\documentclass{article}
\usepackage{mathtools,amssymb}
\usepackage{fontspec}
\newcommand*{\myfont}{Georgia}
\setmainfont{\myfont}[Ligatures=TeX]
\setsansfont{\myfont}[Scale=0.975]
\setmonofont{\myfont}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range={"0030-"0039}]{\myfont}
\setmathfont[range={\varnothing}]{Asana Math}
\AtBeginDocument{
\renewcommand*{\setminus}{\smallsetminus}
}
\usepackage[english,russian]{babel}
\begin{document}
\noindent
$0123456789AaBbCcfi$\\
$\textnormal{0123456789}\textit{AaBbCcfi}$
\begin{gather}
\int_{0}^{1}x^{-x}\mathrm{d}x=\sum_{n=1}^{\infty}n^{-n}\\
A\setminus A=\varnothing=\emptyset
\end{gather}
\end{document}
А можно вместо
Latin Modern Math использовать шрифт
STIX Two Math (
http://www.stixfonts.org/), который лишён упомянутых двух недостатков. (Или тот же
Asana Math.)