I have started to use an enterprise specific class for LaTeX, but have got a problem with usage system fonts in Ubuntu. The class uses the fontspec package, I have therefore been instructed to use XeTeX (i.e. the command xelatex instead of latex or pdflatex). However, the command xelatex testfile.tex
results in the following message:
! Package xkeyval Error: `TeX' undefined in families `Ligatures'.
See the xkeyval package documentation for explanation.
Type H <return> for immediate help.
...
l.61 \newfontfamily\headfont{Arial}
?
The class has previously been used on Mac and Windows and the font setup is as follows:
\newfontfamily\headfont{Arial}
\newcommand\texthead[1]{\headfont #1}
\setromanfont{Georgia}
\setmainfont{Georgia}
\setsansfont[Scale=MatchLowercase]{Verdana}
It has been suggested that since XeTeX makes use of system fonts and the class file has worked flawlessly on Mac and Windows, the problem might be that Arial is not a name used in Ubuntu. I have tried to exchange Arial
with Ubuntu Light
in the setup code above, but that have not been any improvement.
Any suggestions please on how to move forward?
UPDATE
Due to the comment from Joseph Wright, I started investigate the class file in more detail. I managed to get the command xelatex quickstart.tex
to result in a PDF-file after having commented the line
\defaultfontfeatures{Ligatures=TeX,Mapping=tex-text}
and having replaced Helvetica with Arial in the following line
\newfontfamily\enterprisetitlefont{Helvetica}
(The parameter enterprisetitlefont is used in a re-definition of the maketitle command.)
After having seen the comment by egreg, I removed Ligatures=TeX
from the defaultfonfeatures
line and it worked fine.
I am using the latest TeX Live distribution available in the Ubuntu Software Center and the version is called "texlive 2009-15".
New questions:
- Has
Ligatures=TeX
replacedMapping=tex-text
in the very latest TeX distribution? - Is there a better way to modify the original
defaultfonfeatures
line instead of simply removingLigatures=TeX
? - How to get the
newfontfamily
command to work with Helvetica instead of Arial? What should be added to the class file?
Best Answer
The oldest
fontspec.sty
I have on my machine is dated 2011-02-26 (part of TeX Live 2010) and it already allowsLigatures=TeX
as a better substitute ofMapping=tex-text
(actually the two options do the same thing with XeLaTeX; the former was added for makingfontspec
compatible with LuaLaTeX).Note that
\setromanfont
and\setmainfont
are synonyms (the former is deprecated).You can only use fonts you have available on your system, so if you don't own Arial on your machine, you're out of luck and can only try with a substitute or install Arial yourself.
But first of all you should think to upgrade your TeX Live: there have been many advances and bug fixes in XeTeX and the related packages. Look at the TeX Live installation page.
Note: I'm making this answer CW, feel free to add suggestions on how to proceed for installing Arial