Ultimately, you need /path/to/FontAwesome.otf
to be produced by \newfontfamily\FA[Path=/path/to/,Extension=.otf]{FontAwesome}
.
Note this answer assumes you didn't add the TeX Live fonts to the system environment variables such that they are found when fontspec searches the system fonts. (either because you don't know how or because it isn't practical e.g. multi-client Version Control System situation where you can't guarantee that every client has the same system environment variables).
Assuming you are using XeLaTeX: To minimize maintenance with each sequential TeX Live release (2015,2016, etc.), I chose to add \defaultfontfeatures{Extension = .otf}
rather than provide an explicit path.
This is because XeLaTeX automatically loads $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf
into its path.
texlive-fontconfig.conf from TeX Live 2015
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/usr/local/texlive/2015/texmf-dist/fonts/opentype</dir>
<dir>/usr/local/texlive/2015/texmf-dist/fonts/truetype</dir>
<dir>/usr/local/texlive/2015/texmf-dist/fonts/type1</dir>
</fontconfig>
With each release, this gets updated, so you don't have any maintenance costs ;)
So you only need to add the extension parameter to \newfontfamily{\FA}{FontAwesome}
indirectly this way. This is of course provided that the fonts you're using are OTF.
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Extension = .otf}% adds .otf to end of path when font loaded without ext parameter e.g. \newfontfamily{\FA}{FontAwesome} > \newfontfamily{\FA}{FontAwesome.otf}
\usepackage{fontawesome} % Relevant path loaded (TeX Live 2015 expansion): /usr/local/texlive/2015/texmf-dist/fonts/opentype/FontAwesome causing missing font
\begin{document}
\faTwitter This is a test.
\end{document}
As a fun exercise to prove your understanding, you could create a document like this:
\listfiles
\documentclass{article}
\usepackage{fontspec}
%\defaultfontfeatures{
% Extension = .otf
%}
%\usepackage{fontawesome}
\newfontfamily\fatest{FontAwesome.otf} % Explicitly provide .otf
%or
%\newfontfamily\fatest[Extension=.otf]{FontAwesome}
\begin{document}
%\faTwitter This is a test
{\fatest\char"F099} This is a test
\end{document}
This works because the following are equivalent:
\newfontfamily\fatest{FontAwesome.otf}
\newfontfamily\fatest[Extension=.otf]{FontAwesome}
\defaultfontfeatures{Extension = .otf}\newfontfamily{\fatest}{FontAwesome}
because they all yield a platform-independent paths.
e.g. Unix-based:
/usr/local/texlive/2015/texmf-dist/fonts/opentype/FontAwesome.otf
and fontspec
will try to load a font by adding each prefix listed in this xml file:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
ANYTHING IN HERE GETS PREFIXED to the font file
</fontconfig>
See tex.stackexchange.com/a/313886/13552
~/Library/Fonts
directory doesn't activate it, at least not in a way suitable for use under MacOSX. Under MacOSX, the easiest way I know to "activate" a font is to load it in theFontBook
application and click on the "Install Font" button. Doing so also copies the font file to~/Library/Fonts
...luaotfload-tool --update
and retry.