5
\documentclass{article}

\usepackage{fontspec}
\setmainfont{Libertinus Serif}

\begin{document}
    Affine finance

    \itshape Affine finance
\end{document}

enter image description here

Why is no ffi ligature applied in the italic text?

Inspecting libertinusserif-italic.otf with FontForge I see that it actually has a ffi ligature in the same block as the fi ligature:

enter image description here

I compiled with LuaLaTeX from TeXLive2018. I updated to TL2018 yesterday and deleted the old distribution, so I can't try with an older version, but if I remember correctly, I already observed this behaviour in TL2017.

  • 1
    I can reproduce this behaviour with LuaLaTeX (1.07.0, MikTeX on Win 10). With XeLaTeX (0.99999, ditto) it is even worse: I don't even get the italic 'ff' ligature there in 'ffi'. The stand-alone 'ff' ligature works fine everywhere. But the italic 'fi' ligature fails with XeLaTeX, while LuaLaTeX is fine with it. (Possibly related: https://tex.stackexchange.com/q/430054/35864) – moewe May 06 '18 at 07:38

2 Answers2

12

That is a font bug. The glyphs are there but they are unmapped. Reported here: https://github.com/khaledhosny/libertinus/issues/174

Screenshots from Font Forge.

enter image description here

enter image description here

There are a few oddities though. How does LuaTeX find the f_i ligature even though it is unmapped? Why can't XeTeX at least resolve the f_f ligature? I don't know.

Henri Menke
  • 109,596
5

With lualatex you can use mode=base:

\documentclass{article}

\usepackage{fontspec}
\setmainfont{Libertinus Serif}[Renderer=Basic]

\begin{document}
    Affine finance

    \itshape Affine finance ff ffl

\end{document}

enter image description here

Ulrike Fischer
  • 327,261
  • Could you elaborate a bit on the Renderer feature? I've looked into the fontspec manual, but I did not really find any description of this. What does it mean and why does it changes something like ligatures? I've also read your comment https://github.com/libertinus-fonts/libertinus/issues/174, where you change the mode to base or node. Again, what do these mean? It seems to me they are related to Renderer. – pschulz Feb 28 '19 at 08:29