![XeLaTeX 中带有 Neo Euler 的数学运算符名称](https://linux22.com/image/271149/XeLaTeX%20%E4%B8%AD%E5%B8%A6%E6%9C%89%20Neo%20Euler%20%E7%9A%84%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97%E7%AC%A6%E5%90%8D%E7%A7%B0.png)
我正在使用 Libertine 和 Neo Euler 作为字体在 XeLaTeX 中编写文档:
\usepackage[math-style=upright]{unicode-math}
\setmainfont{Linux Libertine G}
\setsansfont[Scale=MatchLowercase]{Liberation Sans}
\setmathfont[Scale=MatchLowercase]{Neo Euler}
现在,当我使用\log
或 之类的运算符时\cos
,XeLaTeX 会使用 Neo Euler 而不是 Libertine 来排版它们(因为math-style=upright
Neo Euler 需要 选项)。我如何保留 Libertine,或将其他字体(例如 Liberation Sans,我的无衬线字体)设置为运算符名称的字体?
答案1
这似乎有效(但我没有 Linux Libertine G):
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Linux Libertine O}
\setsansfont[Scale=MatchLowercase]{Liberation Sans}
\setmathfont[Scale=MatchLowercase]{Neo Euler}
\setmathfont[Scale=MatchLowercase,range=\mathit]{Neo Euler}
\setmathfont[range=\mathup]{Linux Libertine O}
\setmathfont[range=\mathbfup]{Linux Libertine O Bold}
\begin{document}
log $\log \mathrm{log}\mathbf{log}a+b\sum\int\alpha$
\end{document}
答案2
正如所述加载 unicode-math 后更改运算符字体您可以使用专门为操作员提供的文本字体:
\usepackage{amsmath}
\usepackage[math-style=upright]{unicode-math}
\setmainfont{Palatino Linotype}
\setmathfont{Neo Euler}
\setmathfontface\mathOpFont{Palatino Linotype}
\setoperatorfont\mathOpFont
我认为这是最直接的方法,尽管这个界面是在原帖者提出问题几年后才引入的。