I used to set an specific font for greek text using polyglossia with \newfontfamily{\textgreek}[Ligatures=TeX]{Vusillus Old Face}
.
After I updated to TeX Live 2018 all my documents wouldn't compile anymore throwing the error:
LaTeX error: "xparse/command-already-defined" Command '\textgreek' already defined! For immediate help type H .
This is truly unfortunate, because that means the update breaks compatibility to a couple of hundred of my documents. However, my questions are:
- What happened in polyglossia, that I cant use the above mentioned
command anymore, to set the font for a specific language? - How am I supposed to do this now?
- How could I make my old documents compile again the easiest way?
By the way, I am using polyglossia due to its compatibility with XeLaTeX. Here is a minimal not working example:
\documentclass[a4paper,10pt,twoside]{memoir}
\usepackage{polyglossia}
\setmainlanguage[spelling=old,babelshorthands=true,script=latin]{german}
\setotherlanguage[variant=polytonic]{greek}
\newfontfamily{\textgreek}[Ligatures=TeX]{Vusillus Old Face}
\begin{document}
textgreek{πάντα ῥεῖ} – Alles fließt.
\end{document}
\text<language>
commands are defined by polyglossia to define language switches, so you shouldn't define them to be font commands,fontspec
changed the behaviour of\newfontfamily{\cmd}
recently, earlier the command would not check if\cmd
was already defined, it would simply overwrite the command. Now\newfontfamily{\cmd}
checks if\cmd
is defined and errors if that is the case. Sincepolyglossia
defines\textgreek
you get an error now.\newfontfamily{\greekfont}
to specify a font for Greek text.\textgreek
is (and has always been) a bad name for a font family selection command, because generally\text...
commands require an argument, whereas the syntax for choosing a font family defined with\newfontfamily{\foo}{Font}
is{\foo text}
, not\foo{text}
.Scale=
on font families loaded withfontspec
, or as a default feature.