I just updated to MacTex 2020, and I get the following error, on a document that was compiling fine yesterday, and without having made any change to the document.

I compile with:

xelatex test.tex

and get:

This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020) (preloaded format=xelatex)
 restricted \write18 enabled.
entering extended mode
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-03-06>
Document Class: scrartcl 2020/01/24 v3.29 KOMA-Script document class (article)
))) (/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty

Package fontspec Warning: AAT feature
(fontspec)                'Ligatures=Common,Rare,Historic,Contextual' (1,2)
(fontspec)                not available in font 'Hoefler Text'.

Package fontspec Warning: AAT feature
(fontspec)                'Ligatures=Common,Rare,Historic,Contextual' (1,4)
(fontspec)                not available in font 'Hoefler Text'.

! LaTeX3 Error: Key 'fontspec-aat/Ligatures' accepts only a fixed set of
(LaTeX3)        choices.

For immediate help type H <return>.



where test.tex is:

\usepackage{fontspec, xltxtra}
\setmainfont[Mapping=tex-text, ItalicFeatures={Alternate = 0}, 
Ligatures={Common,Rare,Historic,Contextual},Contextuals=Inner,Alternate=1]{Hoefler Text}

ff fi ffi ct st

What should I do to fix this?

Addendum Adding Renderer=OpenType removes the error messages when compiling but the ct and st ligatures are lost.

Addendum 2 The .tex files on this (old) page don't compile anymore either, and when using Renderer=OpenType, do not show the ligatures and swashes it used to. So, something has been lost/is not backward compatible, apparently.

Addendum 3 This related post doesn't seem to help either.

  • 1
    the first step is a small but complete document that can be used for a test. May 27, 2020 at 19:10
  • @UlrikeFischer - changed document to be complete and small.
    – Frank
    May 27, 2020 at 19:21
  • 1
    Hm, I don't have a mac and so also not your font. But ligatures Historic and Contextual are not defined as aat-features and as far as I can see never were. It looks as if fontspec is now using the aat renderer for your font but previously didn't. But I'm not sure why. Are you using xelatex? May 27, 2020 at 19:48
  • 1
    Try to force the opentype renderer with Renderer=OpenType. May 27, 2020 at 19:52
  • 1
    I used \setmainfont[Renderer=OpenType, Mapping=tex-text, ItalicFeatures={Alternate = 0}, Ligatures={Common,Rare,Historic,Contextual},Contextuals=Inner,Alternate=1]{Hoefler Text} and all went well. Fully updated TeX Live 2020, via MacTeX, under macOS Catalina 10.15.5. May 27, 2020 at 21:02

1 Answer 1


I don't think the AAT renderer works properly any more with XeTeX and/or the old AAT fonts distributed in macOS are no longer functional like they used to be.

On top of that I suspect Hoefler Text is not set up with proper OpenType font tables (it's not the same version as what you would buy from Hoefler).

Without being definitive about it, I think the best option is to look for a new font…

  • 1
    I've been analysing this a bit. The problem is that \XeTeXfeaturename etc. don't yield any string result anymore: \font\1="Hoefler Text" \1 ct st Qu \par \def\aatfeatures{\XeTeXfeaturename\1 1 =\XeTeXselectorname\1 1 4; \XeTeXfeaturename\1 17=\XeTeXselectorname\1 17 1} \aatfeatures\par \font\2="Hoefler Text/AAT:\aatfeatures" \2 ct st Qu \bye This works for me with TL18, but not with TL20
    – Robert
    Jun 2, 2020 at 14:22
  • 1
    ... Strangely, you can still select the features manually, if you know their names: \def\aatfeatures{Ligatures=Rare Ligatures;Character Alternates=Alternates} \font\3="Hoefler Text/AAT:\aatfeatures" \3 ct st Qu \bye (The feature names are font- and system-dependent, e.g. on a German Mac it's Ligaturen=Seltene Ligaturen; Zeichen-Varianten=Alternativen)
    – Robert
    Jun 2, 2020 at 14:25
  • 1
    But apart from the warning in the fontspec doc (in the section "macOS’s AAT fonts") I couldn't find any official notice of depreciation. Would a bug report be worthwhile?
    – Robert
    Jun 2, 2020 at 14:34
  • 1
    @Frank you could try with lualatex + harfmode (Renderer=AAT). Jun 4, 2020 at 8:57
  • 1
    @Frank Exploiting the fact that you can still select the features by name, the following works for me (yielding ct and st ligatures as well as a Q with a swash): \setmainfont[RawFeature={Ligatures=Rare Ligatures;Character Alternates=Alternates}]{Hoefler Text}
    – Robert
    Jun 6, 2020 at 3:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .