这是对以下内容的跟进:使用 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但该项目看上去已被放弃,唉……