# Using Linux Libertine in math mode with unicode-math (XeLaTeX)

I'm trying to use the Linux Libertine font for my thesis. Libertine in fact does have mathematical symbols, but I didn't manage to use them properly in unicode-math. The following example sums up my attempts to progressively add symbols from the font, and highlights the failures. I'm aware that some of the issues could not be solved because the OTF font does not fully support math, but maybe some of the issues could be solved using advanced TeX trickery. The two main problems are the accents and brackets; I can tolerate other symbols being taken from another font.

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\setlength{\parindent}{0pt}
\usepackage{fontspec}
\usepackage[partial=upright,nabla=upright]{unicode-math}

\newcommand{\sample}{$\underbrace{\frac{\partial y}{\partial x}R(x)^2}_{\text{Foo}} = \left[ \sum_{i=0}^\infty \tilde{f}_i \arcsin\left( \alpha_i^3 x \right) \right]^{-1} \sqrt[6]{\int \nabla y\times\mathbf{\theta}(y) \mathrm{d}\phi} \geq \mathring{\Omega}_\ell [d]$}

\begin{document}
\sample
This is a correct rendering using Latin Modern. Let's try to add some Libertine\ldots

\setmainfont[Mapping=tex-text]{Linux Libertine O}
\setmathfont[range=\mathit/{latin,Latin,num,Greek,greek}]{Linux Libertine O Italic}
\setmathfont[range=\mathup/{latin,Latin,num,Greek,greek}]{Linux Libertine O}
\setmathfont[range=\mathbfup/{latin,Latin,num,Greek,greek}]{Linux Libertine O Bold}
\setmathfont[range=\mathbfit/{latin,Latin,num,Greek,greek}]{Linux Libertine O Bold Italic}
\setmathfont[range={"0300-"036F}]{Linux Libertine O}% Accents - won't compile correctly without this line
\setmathfont[range={"003D,"00D7,"2202,"2207,"2212,"221E,"2265}]{Linux Libertine O} % some more symbols, they work properly
% U+003D    Equal sign
% U+00D7    Cross
% U+2202    Partial
% U+2207    Nabla
% U+2212    Minus
% U+221E    Infinity
% U+2265    Greater or equal

\sample

\textcolor{red}{Problem 1:} accents are off (ugly hack: use \texttt{\backslash skew})\\
\textcolor{red}{Problem 2:} brackets are still in LM; at least the normal sized brackets must match the text, so let's add parentheses \& square brackets:

\setmathfont[range={"0028,"0029,"005B,"005D}]{Linux Libertine O}

\sample

\textcolor{red}{Problem 3:} only the right parenthesis extends\\
\textcolor{red}{Problem 4:} the underbrace became gibberish\\
Possible fix to 3 \& 4: include the extending brackets from  Miscellaneous Technical' unicode block (\texttt{U+239B}--\texttt{U+23AA}); unfortunately it doesn't change anything.
\medskip

Libertine has a summation and integral symbol, let's try to use them:

\setmathfont[range={"2211,"222B}]{Linux Libertine O}

\sample

\textcolor{red}{Problem 5:} the summation symbol is too small; Note that the integral symbol was broken to an top and bottom parts (both exist in the font), but there are no top and bottom parts of the summation symbol in this font.
\end{document}


Don't use anything but alphanumeric symbols from non-OpenType math fonts like Linux Libertine. Parenthesis, big operators (summation, integrals, etc.), wide accents, roots and so on, all need special considerations only enviable in full OpenType math fonts.

In general, if you want the highest quality of math typesetting, use only full math fonts, as you can see even in the first Libertine example the accents and the root degree are off.

XITS Math might be a better match than the lighter Latin Modern font.

• Hi Kaled, XITS is indeed a better match but using it (with Libertine for the alphanumeric only), the accents are still misplaced. And as I said having the parentheses in the same font as the alphanumerics is really important for me. Aug 24, 2012 at 14:27
• Sorry, but nothing can be done about this (to my knowledge at least), math typesetting is hard and many things need to be done on the font side, so any solution short of a complete OpenType math support in Libertine is a limited hack. Aug 24, 2012 at 14:34

Things might have changed since this question was asked and it only addresses a part of it, I believe, but I was in a similar situation (wanting to use Linux Libertine in a thesis), and I felt a massive relief when I found the package newtx, which provides numerous enhancements for setting math in a large array of fonts, with focus on Linux Libertine in particular.

I use XeLaTeX and in short (the preamble in the true document is more than 100 lines at this point…) put the following in the preamble:

\usepackage[libertine]{newtxmath}
\usepackage[no-math]{fontspec}
\setmainfont{Linux Libertine O}


and suddenly more or less all kerning issues and more in math mode were resolved by default.

I would go as far as to say that Linux Libertine is practically unusable for documents including math without the newtx effort. One can spend hours and hours on adding manual skips, spaces and kerns, or one can load newtxmath.

I am not aware of the internals of defining metrics for fonts in math mode so I might be technically mistaken, but I do believe that it would be a massive enhancement to Linux Libertine if it could include the kerning features from this external package in the mainline font. Almost every character set in math mode are problematic without it.

I hope those who find this question will explore this package thoroughly.

• Unfortunately, using luatex with newtxmath produces PDFs that are missing /ToUnicode annotations for all of the math symbols, which is a showstopper for me (among other things, it means you cannot reliably copy equations out of the PDF).
– zwol
Jun 15, 2021 at 14:59

try the new TeX Gyre Pagella Math which is part of TL 2012:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\setlength{\parindent}{0pt}
\usepackage[partial=upright,nabla=upright]{unicode-math}
\setmainfont{Linux Libertine O}
\setmonofont{LinMonoO}
\setmathfont{TG Pagella Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}

\def\Macro#1{\texttt{\textbackslash#1}}
\begin{document}

$\underbrace{\frac{\partial y}{\partial x}R(x)^2}_{\text{Foo}} = \left[ \sum_{i=0}^\infty \tilde{f}_i \arcsin\left( \alpha_i^3 x \right) \right]^{-1} \sqrt[6]{\int \nabla y\times\mathbf{\theta}(y) \mathrm{d}\phi} \geq \mathring{\Omega}_\ell [d]$

\Macro{mathscr}: $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Macro{mathscr}: $\mathscr{abcdefghijklmnopqrstuvwxyz}$\\
\Macro{mathbfscr}: $\mathbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Macro{mathbfscr}: $\mathbfscr{abcdefghijklmnopqrstuvwxyz}$

\bigskip
\Macro{mathcal} and \Macro{mathbfcal}

\texttt{StylisticSet=1}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\texttt{StylisticSet=1}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=2]{XITS Math}
\texttt{StylisticSet=2}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\texttt{StylisticSet=2}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

\end{document}


• Thanks again for all the font suggestions, however I did not ask for an alternative math font. My thesis and the figures in it are in Libertine, and I want the equations to look as close as possible. I understand that not all features will are available in Libertine, but it does have glyphs like accents and parenthesis which work in text mode but not so well in math mode. Aug 24, 2012 at 15:04

The maintainer of the libertine CTAN package, who is also the de facto maintainer of the Libertine fonts, recommends using

\usepackage{unicode-math}
\setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf}
`

for "compatible mathematics" in XeTeX or LuaTeX. The font libertinusmath-regular.otf belongs to the libertinus-fonts CTAN package. If I had full control over font choices in the document that I'm tinkering with right now, I would probably switch over to those altogether; Libertinus is a fork of the Libertine family with "many bugs fixed" and a bunch more stylistic bling.