# Can fontspec use fonts from SkyFonts?

On my Windows 7 system I installed via SkyFonts from Fonts.com: Sabon Next Display

The font does not appear in C:\Windows\Fonts. However, it shows up in certain desktop applications, for example Xara Designer Pro as: Sabon Next Com Display

My intention was to use the font in a LaTeX document test.tex:

\documentclass{article}
\usepackage{polyglossia}
\setromanfont{Sabon Next Com Display}

\begin{document}
Hello World!
\end{document}


Unfortunately, xelatex test.tex fails:

[…]
Couldn't find Sabon Next Com Displ.cfg'
miktex-maketfm: No creation rule for font "Sabon Next Com Display".

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "Sabon Next Com Display" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................

l.4 \setromanfont{Sabon Next Com Display}
% Sabon Next Com Display, SabonNex...

?


Can XeLaTeX even work with fonts installed via SkyFonts? If not, what could be a workaround?

Please consider this a ›temporary‹ answer (maybe Will Robertson can provide more info). I'm still in the process of investigating that problem myself (I'm testing SkyFonts + Monotype Library Subscription + LuaLaTeX). But all the data I have so far points in the same direction:

fontspec is not able to load a font installed via SkyFonts unless the font license you purchased includes a physical installation of the font file on your system.

We're talking about the difference between ›bought‹ and ›rented‹ fonts here. You can (1) ›buy‹ a font from, say, MyFonts, install it via SkyFonts, and you'll get a physical font file somewhere on your harddrive (so that, IMHO, there isn't much point in using SkyFonts in the first place). Or you can (2) subscribe to a ›rental‹ plan such as the Monotype Library Subscription, for a monthly, yearly, or 3-yearly fee. In that case, the font files will remain in the cloud. The SkyFonts application provides the link between the cloud and your system, so that the applications you're working with can access them. However, fontspec, as of yet, doesn't seem to be prepared for such a constellation. It still requires physical files on your system.

I tested both scenario 1 and 2. Scenario 1 got me physical files in ...AppData\Roaming\Monotype\skyfonts-myfonts. I was too lazy to add that path to the Lua font search path list, so I just copied those files to the standard Windows fonts dir (making loading SkyFonts obsolete). No problems in TeX. Scenario 2: same as with your post...

But considering that cloud services like this are becoming more and more common (like 'em or not), and considering that the TeX world has always been at the forefront of technical innovation, I'm confident that there'll be a solution in the near future.

PS: while I'm not able to find the fonts from my Monotype subscription on my hard drive as proper font files, the fonts, once installed, still remain available with internet connection cut off. SkyFonts caches them in a huge file called skyfonts.db.

• Maybe this is off-topic, but it is slightly related:I am using a AdobeTypeKit subscription -- a similar service to the SkyFonts subscription (but you can also use most fonts on the web) -- with which you can also sync fonts to your computer. And those do work with XeLaTeX / fontspec without a problem (using OS X El Capitan and MacTex 2015). – Daniel Apr 9 '16 at 5:17
• good to know. Have you spotted your fonts as actual font files on your computer (as in my scenario 1 above) or does it work the same way as the Monotype subscription? – Nils L Apr 10 '16 at 15:20

I’m using the Monotype Library Subscription via SkyFonts on macOS (10.14.5). fontspec is able to access the fonts provided by SkyFonts if you address them by their PostScript name. For instance, I have the “FF Meta Pro” family installed and can use it with XeLaTeX as follows:

\documentclass{article}

\usepackage{fontspec}
\setsansfont{MetaPro-Norm}[
Numbers={Proportional, OldStyle},
ItalicFont = {MetaPro-NormIta},
BoldFont = {MetaPro-Bold},
BoldItalicFont = {MetaPro-BoldIta}
]

\begin{document}

\sffamily Hello -- \textit{world} --- \textbf{1234} \textit{\textbf{äöüßffi}}

\end{document}


Just a little more detail on and official confirmation of @nils-l's answer.

You can use xetex with SkyFonts, provided it installs the font files in your regular font folder.

For the fonts that Google distributes via SkyFonts, this folder is (on my Mac) ~/Library/Fonts/skyfonts-google/. SkyFonts works with xetex without adjustment for these.

Fonts distributed by the Monotype Subscription Library are tucked away in encrypted form in an sqlite database (skyfonts.db) residing in ~/Library/Application Support/sf/ and are (presumably) decrypted on the fly before reaching privileged Mac applications. Monotype support has confirmed that nothing requiring a direct path to a regular font file will work with the Subscription service.

• But the question is if xelatex (or lualatex) do require a direct path or if they can make use of the same api as the other applications. There is actually a feature request about this on the xetex list: sourceforge.net/p/xetex/feature-requests/23. For luatex one could ask on the context or luatex mailing list. – Ulrike Fischer Dec 15 '17 at 9:34
• Then I suppose there needs to be another separate request for OSX. Practically speaking the public key encryption arrangement in /sf seems tractable but, not knowing enough about Mac innards I don't yet know if that's something we'd have to deal with on the latex side or something that NSFontManager or somesuch would do for us. I shall inquire if Monotype have developer docs available (hahaha). – conjugateprior Dec 15 '17 at 16:33

If the fonts aren’t showing up in %WINDIR%\fonts\, but are available in other applications, it’s likely that you installed them only for yourself, not for all users. I believe the Microsoft Store does this by default. If so, they might be in %USERPROFILE%\appdata\local\microsoft\windows\fonts\ instead.

As of July 2019, neither XeTeX nor LuaTeX (luaotfload) can see fonts installed for the current user on Windows 10. There is no such limitation on Linux. (The commands fc-match and luaotfload-tool should be able to test which font files XeTeX and LuaTeX, respectively, can locate.) You can work around this in a couple of ways: copy the fonts into a subdirectory of your project folder and tell fontspec their relative Path=, or install the fonts for all users (which requires Administrator privileges). If you do the latter, you can remove the redundant copy from your user directory in the Fonts control panel.

• Skyfonts is a DRM system for getting access to rented fonts. If it would install fonts to %WINDIR%\fonts` then circumventing copy protection would be all to easy. I assume these fonts are made available to applications through a dedicated Windows API. In the meantime I'm running LaTeX on Linux and we bought a perpetual license for Sabon Next, the font family in question. – feklee Jul 20 '19 at 19:28