在带有 sans 字体的 beamer 中使用 eulervm 和 LuaLaTeX 进行强调

在带有 sans 字体的 beamer 中使用 eulervm 和 LuaLaTeX 进行强调

这是对以下内容的跟进:使用 eulervm 和 LuaLaTeX 进行重音

我正在将 lualatex 与 beamer 一起使用,并且undefined control sequence在使用\dot或时出现错误\ddot

指定选项OT1有效,但如果使用,数学字体将是衬线字体,或者如果没有使用,\usefonttheme{professionalfonts}则无法获得欧拉字体x\usefonttheme{professionalfonts}

% !TeX program = lualatex
% !TeX encoding = UTF-8
% !TeX spellcheck = en_US
% !BIB program = biber
\documentclass[lualatex, aspectratio=169, 10pt, english]{beamer}
\usetheme[subsectionpage=simple]{metropolis} 
\usefonttheme{professionalfonts}
\usepackage[OT1,euler-digits]{eulervm}

\begin{document}
    \begin{frame}
Text
\begin{align}
E &= \sin(x)\\
\dot{y}
\end{align}

    \end{frame}
\end{document}

我怎样才能解决这个问题?

答案1

我遇到了同样的问题,并使用这个问题找到了答案Eulervm 和 LuaLaTeX 导致数学运算符前端错误。这不是很优雅,但它也适用于 Windows 字体(我在这里使用 Corbel)。

我的解决方案:

\documentclass[12pt,t]{beamer}

\usepackage{amsmath}   
\usepackage{eulervm}
\usepackage[no-math]{fontspec}

\usetheme{default}

\usefonttheme{professionalfonts}
\usefonttheme[onlymath]{serif}
\setsansfont{Corbel}

% this simply redefines all the accents and keeps the operators in Corbel font
\DeclareSymbolFont{operators}{\encodingdefault}{\familydefault}{m}{n}
\DeclareSymbolFont{accents}{OT1}{eur}{m}{n}

\DeclareMathAccent{\acute}{\mathalpha}{accents}{"13}
\DeclareMathAccent{\grave}{\mathalpha}{accents}{"12}
\DeclareMathAccent{\ddot}{\mathalpha}{accents}{"7F}
\DeclareMathAccent{\tilde}{\mathalpha}{accents}{"7E}
\DeclareMathAccent{\bar}{\mathalpha}{accents}{"16}
\DeclareMathAccent{\breve}{\mathalpha}{accents}{"15}
\DeclareMathAccent{\check}{\mathalpha}{accents}{"14}
\DeclareMathAccent{\hat}{\mathalpha}{accents}{"5E}
\DeclareMathAccent{\dot}{\mathalpha}{accents}{"5F}
\DeclareMathAccent{\mathring}{\mathalpha}{accents}{"17}

\DeclareMathOperator{\foo}{foo}

\begin{document}

\begin{frame}
\begin{equation*}
  1+ \hat{\sin} \hat{x} \tilde{x} \foo \quad \text{sin}
\end{equation*}
\end{frame}

\end{document}

希望这对您或下一个想要使用 eulervm 和 luatex(甚至可能是 Windows 字体)的人有所帮助。

答案2

在 TeXLive(linux)上编译您的示例,我得到了用于文本的 Fira Sans(轻量级)字体和用于数学的 CM(衬线)字体。

您可以选择匹配的 Fira 数学字体(无衬线字体仅适用于常规粗细),而不是 8 位字体,方法是添加

\usepackage{unicode-math}
\setmainfont{Fira Sans} % for math operators
\setsansfont{Fira Sans} % for text (instead of the light version)
\setmathfont{Fira Math}

输出: 在此处输入图片描述 或者如果你更喜欢欧拉字体(没有数学斜体),你可以尝试

\usepackage[math-style=upright]{unicode-math}
\setmainfont{Fira Sans Light}[Scale=0.88] % for math operators
\setmathfont{euler.otf}

输出: 在此处输入图片描述 后者(euler.otf)不包含在 TeXLive 中,但可用github.com/khaledhosny/euler-otf但该项目看上去已被放弃,唉……

相关内容