10

I'm using Baskervaldx font with fontspec and LuaLaTeX, but I can't suppress 'ae' and 'oe' ligatures using either

\defaultfontfeatures{Ligatures={NoCommon,NoContextual,NoHistoric,NoDiscretionary}}

or microtype and \DisableLigatures[a]{encoding = *, family = * }

(Actually, I don't know if this is the right way.)

\usepackage{Baskervaldx} works, as does \usepackage{selnolig} \nolig{ae}{a|e} \nolig{oe}{o|e}.

Is there a way of suppressing these ligatures using either fontspec or microtype?

MWEs that don't work:

\documentclass{article}

\usepackage{fontspec}
\defaultfontfeatures{Ligatures={NoCommon,NoContextual, NoHistoric,NoDiscretionary},
    Numbers={OldStyle,Proportional}}
\setmainfont{baskervaldx}

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}

\begin{document}  
Michael doesn’t finalize.    
\end{document}

This one doesn't work either:

\documentclass{article}

\usepackage{fontspec}
\setmainfont{baskervaldx}

\usepackage{microtype}
\DisableLigatures[a]{encoding = *, family = * }

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}

\begin{document}
Michael doesn’t finalize.   
\end{document}

The next two MWEs do work:

\documentclass{article}    
\usepackage{fontspec}
\setmainfont{baskervaldx}

\usepackage{selnolig}
\nolig{ae}{a|e}
\nolig{oe}{o|e}

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}

\begin{document} 
Michael doesn’t finalize.  
\end{document}

\documentclass{article}
\usepackage{Baskervaldx}

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}

\begin{document}  
Michael doesn’t finalize.   
\end{document}
Mico
  • 506,678
ss1789
  • 559

1 Answers1

11

As expected, Baskervaldx defines its f-ligatures in the liga feature, and its ‘ct,’ ‘sp,’ and ‘st’ ligatures in dlig; bizarrely, it puts ‘ae’ and ‘oe’ ligatures, both upper- and lowercase, in rlig, i.e., Required Ligatures, which are on by default. This is almost always a problem, even in languages where these ligatures are sometimes mandatory.

The solution, apart from finding a better Baskerville, is to turn off required ligatures. This will leave your f-ligatures in place, and when you need ‘æ’ or ‘œ,’ you can still get it by typing it (by whatever methods your text editor or operating system allows) or by using \ae, \oe, etc.:

\documentclass{article}
\usepackage{fontspec,polyglossia}
\setmainfont{baskervaldx}[
  Ligatures=NoRequired,
  Numbers={OldStyle,Proportional}]
\setdefaultlanguage[variant=american]{english}
\begin{document}
Michael hasn’t finalized his translation of the \textit{De cælo.}
\end{document}

output

Thérèse
  • 12,679
  • Thanks, this works fine. A followup question for you: why does use of the Baskervaldx package work? – ss1789 Dec 08 '17 at 19:44
  • Reading .sty files isn’t my forte, but it looks as if Baskervaldx.sty is designed to support pdftex rather than xetex or luatex. So it provides ways for pdftex to get f-ligatures, real superiors, lowercase figures, and other desirable glyphs, but doesn’t try to create an implementation of the counterproductive rlig. – Thérèse Dec 08 '17 at 19:58
  • 1
    https://tex.stackexchange.com/q/180429/ is relevant to the font package vs. fontspec issue. – Thérèse Dec 08 '17 at 20:06