请考虑以下 MWE:
\documentclass{beamer}
\usepackage{unicode-math}
\usepackage{fontspec}
\setsansfont{some-font.otf}
\usefonttheme[onlymath]{serif}
\begin{document}
\begin{frame}
Some text with the number \textit{two} in text mode (2) and math mode ($2$).
\begin{equation*}
\vec{s}(t) = \frac{\vec{a}}{2} t^2 + \vec{v}_0 t + \vec{s}_0
\end{equation*}
\end{frame}
\end{document}
如何将所有数学数字的字体更改为定义的 sans 字体fontspec
的\setsansfont
命令(与字体无关)?
我尝试使用\Umathcode
XeTeX 原语以及\setmathfont
提供的unicode-math
然而,我没有成功。
我知道包裹mathspec
及其\setmathfont(digits)
命令,但我意识到beamer
类文档和fontspec
/mathspec
或导致数学元素放错位置(参见图 1 和图 2 进行比较;对于图 2,\usepackage{unicode-math}
包已在 MWE 中被注释掉)。
更新:\setmainfont{Arial}
在我的设置中,此 MWE 编译时没有任何错误。但是,如果注释掉 该行,则会抛出错误。如果我将字体指定为文件(*.ttf 或 *.otf)而不是系统安装的字体,情况也是如此。
\documentclass{beamer}
\usefonttheme{professionalfonts}
\usepackage{unicode-math}
\usepackage{fontspec}
\setmainfont{Arial}
\setmathfont[range={\mathup}]{Lucida Sans}
\begin{document}
\begin{frame}
\begin{equation}
x = \int\limits_0^\infty f(q) \,\mathrm{d} q
\end{equation}
\end{frame}
\end{document}
答案1
禁用字体设置beamer
:
\documentclass{beamer}
\usefonttheme{professionalfonts}% use own font handling
\usepackage{unicode-math}
\setmainfont{Lucida Sans}
\setmathfont{XITS Math}
\setmathfont[range={\mathit}]{Lucida Sans Italic}
\setmathfont[range={\mathup}]{Lucida Sans}
\begin{document}
\begin{frame}
Some text with the number \textit{two} in text mode (2) and math mode ($2$).
\begin{equation*}
\vec{s}(t) = \frac{\vec{a}}{2} t^2 + \vec{v}_0 t + \vec{s}_0
\end{equation*}
\end{frame}
\end{document}