При использовании темы «Метрополис» для Beamer я получаю текст и математику в Fira Sans,кромедля математических операторов. Я компилирую следующий MWE с помощью LuaTeX.
\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. (Буква 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}