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}
  • Is it a problem with the font? Does it have a feature which lets you access 'regular' ligatures without triggering things like ae becoming 'æ'? – cfr Dec 6 '17 at 23:57
  • In general, you can locally suppress any ligature by interposing curly braces: a{}e. – user139954 Dec 7 '17 at 0:26
  • Why do you want to suppress ligatures? – Bernard Dec 7 '17 at 0:43
  • @Bernard The problem is that this font, by default, produces “Michæl” and other odditities. – Thérèse Dec 7 '17 at 0:46
  • 1
    @Mico - OK, question edited. – ss1789 Dec 8 '17 at 19:42
10

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

  • Thanks, this works fine. A followup question for you: why does use of the Baskervaldx package work? – ss1789 Dec 8 '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 8 '17 at 19:58
  • 1
    tex.stackexchange.com/q/180429 is relevant to the font package vs. fontspec issue. – Thérèse Dec 8 '17 at 20:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.