6

I am writing a document in XeLaTeX using Libertine and Neo Euler as fonts:

\usepackage[math-style=upright]{unicode-math}
\setmainfont{Linux Libertine G}
\setsansfont[Scale=MatchLowercase]{Liberation Sans}
\setmathfont[Scale=MatchLowercase]{Neo Euler}

Now when I use operators like \log or \cos, XeLaTeX typesets them with Neo Euler instead of Libertine (because of the option math-style=upright, required for Neo Euler). How can I keep Libertine, or set an other font (for example Liberation Sans, my sans serif font), as the font for operator names?

Jouasse
  • 387

2 Answers2

2

This seems to work (I don't have Linux Libertine G, though):

\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}

enter image description here

egreg
  • 1,121,712
2

As described in Changing the operator font with unicode-math loaded you can use text font specifically for operators:

\usepackage{amsmath}
\usepackage[math-style=upright]{unicode-math}
\setmainfont{Palatino  Linotype}
\setmathfont{Neo Euler}

\setmathfontface\mathOpFont{Palatino Linotype}
\setoperatorfont\mathOpFont

I think, this is the most straightforward way, though this interface was introduced years later after the OP's question.

Yrogirg
  • 313