XeLaTeX 中带有 Neo Euler 的数学运算符名称

XeLaTeX 中带有 Neo Euler 的数学运算符名称

我正在使用 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=uprightNeo 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

我认为这是最直接的方法,尽管这个界面是在原帖者提出问题几年后才引入的。

相关内容