beamer/metropolis 中的操作员字体

beamer/metropolis 中的操作员字体

当使用 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主题,这是主题的更现代的分支metropolismoloch不会改变字体,因此您将默认获得一致的设置(计算机现代 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}

在此处输入图片描述

相关内容