# XeLaTex: 'Font Shape undefined'

I'm trying to use custom fonts, but I can't get it to work. Compiling with XeLaTex

\documentclass[a4paper]{article}

\usepackage{fontspec}
\usepackage[T1]{fontenc}
\usepackage[usenames,dvipsnames]{xcolor}

\definecolor{primary}{HTML}{2b2b2b}

\setmainfont[Color=primary,
Path = fonts/lato/,
BoldItalicFont=Lato-RegIta,
BoldFont=Lato-Reg,
ItalicFont=Lato-LigIta]{Lato-Lig}

\begin{document}

Test example

\end{document}


Build Log Output:

LaTeX Font Warning: Font shape T1/Lato-Lig(0)/m/n' undefined
(Font)              using T1/cmr/m/n' instead on input line 13.


Folder Structure (ls -R)

fonts  test.tex
./fonts: lato
./fonts/lato: Lato-BlaIta.ttf  Lato-Bol.ttf     Lato-LigIta.ttf  Lato-Reg.ttf Lato-Bla.ttf     Lato-HaiIta.ttf  Lato-Lig.ttf Lato-BolIta.ttf  Lato-Hai.ttf     Lato-RegIta.ttf

• don't use fontenc with xetex just use fontspec Dec 7 '14 at 20:56
• @DavidCarlisle It seems to be sometimes necessary: see tex.stackexchange.com/q/115627/18401. Apr 20 '16 at 8:47
• @DenisBitouzé well maybe I should have said don't use legacy 8bit text fonts with xetex. (hyphenation will be wrong if you set text in T1 encoding, for a start) Apr 20 '16 at 13:33
• @DavidCarlisle Same arguments as Joseph's ones, here :) Apr 20 '16 at 13:52
• Are you intentionally trying to load Lato-Lig.ttf with the T1 encoding, rather than TU? If not, remove \usepackage{T1}[fontenc]. Apr 13 '19 at 22:00

Deedy Resume issue(s) as addressed in 2018 4Q. There may be some changes during the past 4 yrs to one or more of the relevant packages. To address related questions, I've had to edit the .cls file for (a) font access and (b) compiling, generally [e,g., there are two \\} that should be \\ } in the openfont .cls file].

Regarding font specific matters, using the openfont .cls file as an example, editing the .cls file by

• (A) removing all Path = segments, and
• (B) using the specific fontfilename, e.g., {Lato-Lig.ttf}, {Lato-Bol.ttf}, {Raleway-ExtraLight.otf}, and {Raleway-Medium.otf} with similar specifics in the fontface assignments, e.g., BoldItalicFont=Lato-RegIta.ttf,

then

• (C) manually adding the font into the known texlive structure (if not already there) [it's good to put .ttf files in the truetype folder and .otf files in the opentype folder [followed, of course by mktexlsr and fc-cache -fv from the command line]],

rendered the .cls file productive. There's also a \custombold command that may be defined elsewhere. Replacing that with \bfseries works.

Yes, xelatex is supposed to have capability of finding the system's font files [/System/Library/Fonts and /Library/Fonts] (mac structure). xelatex also may still have a preference of "once and only once defined fonts," as well.

If the Deedy Resume activity was a phase, then this is an academic exercise. Where interest may (still) exist, the specific code can always be added.

Old question, but I’ll expand on the comments for a real answer.

You shouldn’t use fontenc with fontspec. Simply remove the line \usepackage[T1]{fontenc}.

You don’t clarify why you need to load an 8-bit legacy font in addition to the Unicode font. Unicode is a strict superset of all legacy encodings and any character in them is also in Unicode.

If, for whatever reason, you do need to use legacy 8-bit font and a modern font in the same document, you would need to install the 8-bit version of the font, look up its NFSS font family, for example lmr, and then add the option NFSSFamily=lmr to the Fontspec-style font definition. Another alternative is substitutefont to select a replacement font when you tell LaTeX to switch to an encoding that your main font does not come in. In these cases, you would want to set up the T1 encoding first and then load Unicode (TU) as your default encoding. Use \textencoding{T1} to switch.