![beamer/metropolis 中的操作员字体](https://linux22.com/image/391128/beamer%2Fmetropolis%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E5%91%98%E5%AD%97%E4%BD%93.png)
当使用 Metpolis 主题的 Beamer 时,我得到的是 Fira Sans 格式的文本和数学公式,除了用于数学运算符。我使用 LuaTeX 编译了以下 MWE。
\documentclass{beamer}
\usetheme{metropolis}
\begin{document}
\begin{frame}
Ordinary text.
\[ a^2 + b^2 = \sin^2(x) - \mathsf{y} + \mathrm{z} \]
\end{frame}
\end{document}
对我来说,结果是 a、b、2 和 x 设置为 Fira Sans Light Italic,y 设置为 Fira Sans Light,但 sin 设置为 (我猜) Latin Modern 的 sans 字体。(z 也是 Latin Modern,但这是 beamer 的预期行为。)
\usetheme{metropolis}
毫不奇怪,如果我用替换,我会得到相同的结果
\usepackage[no-math]{fontspec}
\setsansfont[ItalicFont={Fira Sans Light Italic},
BoldFont={Fira Sans},
BoldItalicFont={Fira Sans Italic}]%
{Fira Sans Light}
我猜想这与 beamer 修补数学字体的部分内容以匹配文本字体有关(请参阅先前这个问题)。但是,我对字体系统了解不够,无法修改它。
有之前问过类似的问题,但我不知道在使用时如何应用该答案fontspec
,或者这是否可能。
有没有办法将操作员字体更改为匹配直立/无数学字体(即 Fira Sans Light)?
答案1
也许改变操作员字体可能是一个解决方法:
% !TeX TS-program = xelatex
\documentclass{beamer}
\usetheme{metropolis}
\DeclareSymbolFont{sfoperators}{OT1}{FiraSans-LF}{l}{n}
\makeatletter
\renewcommand{\operator@font}{\mathgroup\symsfoperators}
\makeatother
\begin{document}
\begin{frame}
Ordinary text.
\[ a^2 + b^2 = \sin^2(x) - \mathsf{y} + \mathrm{z} \]
\end{frame}
\end{document}
或者,您可以使用moloch
主题,这是主题的更现代的分支metropolis
。moloch
不会改变字体,因此您将默认获得一致的设置(计算机现代 sans):
\documentclass{beamer}
\usetheme{moloch}% modern fork of the metropolis theme
\begin{document}
\begin{frame}
Ordinary text.
\[ a^2 + b^2 = \sin^2(x) - \mathsf{y} + \mathrm{z} \]
\end{frame}
\end{document}