I had a similar problem, and I solved it as follows. Note that I use a Mac, so the directories and commands are appropriate for Unix-like machines.
Suppose that the document you wish to use in a vector graphics program is called test.pdf
and located in /Users/me/Desktop/
. Enter the following commands into the terminal:
cd /Users/me/Desktop
gs -sDEVICE=pswrite -dNOCACHE -sOutputFile=test-out.ps -q -dbatch -dNOPAUSE test.pdf -c quit
You will get a file called test-out.ps
on the Desktop that has all the letters and symbols in test.pdf
traced out with vectors. This approach uses ghostscript
, a nice little tool on Unix and Unix-like machines. I found this script somewhere on the internet, and I wish I could give credit for it, but I can't remember which forum I found it on.
This works fine if you want to use a few symbols and words to manipulate, but (I think) definitely not if you want to use the fonts to type text.
Here's an example of the input pdf and the result viewed in Illustrator. You can see that we've got nice vector paths.

And zoomed in on one part of the vectorized file:

Wow. I didn't think this would have such a huge effect.
Reading this,
In these two systems, ConTEXt first attempts to find the font using
the official font name. If that doesn't work, then it tries to use the
font by file name as a fallback. Since this is not very efficient and
also because it may generate —harmless, but alarming looking— warnings
it is possible to force ConTEXt into one or the other mode by using a
prefix, so you will most often see synonym definitions like this:
\definefontsynonym [MSTimes] [name:TimesNewRoman] [features=default]
\definefontsynonym [Iwona-Regular] [file:Iwona-Regular] [features=default]
I decided to try [name:GentiumBookBasic ...]
instead of just [GentiumBookBasic ...]
. (As shown in my edited question, I had already tried [file:GenBkBasR ...]
, with no success.) I didn't think using name:
would make much difference, if any, since according to the above, the official font name is tried first anyway.
But it made all the difference in the world.
All the warning messages I had seen disappeared. I searched the output in vain for any mention of mktexnam, mktextmf, etc.
And more importantly, the render time went from 9 minutes down to 13.5 seconds!

I'm still puzzled as to why I was having the "not very efficient" (i.e. 40 to 60x slowdown!) problem before I started using name:
. I suppose ConTEXt was searching for the font by filename first instead of by official font name first, contrary to the documentation (which might refer to a different version). Still, should it have taken that long?
Lessons learned:
The warnings I was seeing were apparently due to the fact that ConTeXt was first trying to look up the font by filename--and trying to create auxiliary files for a font with that filename, which didn't exist--before looking for a font with that official font name. The latter worked as a fallback, but the former took a huge amount of time.
Always (or at least when these warnings appear) specify, in font definitions, whether you're trying to describe the font by font name or by file name.
Yes, XeTeX really does work with fonts that are just installed in the OS, if you reference the font by official name, but apparently not if you try to reference the font by filename.
If you need to add attributes like 'italic' to the name of a font in \definefont
, you can do it like this: \definefont[SerifLI][name:GentiumBookBasic-Italic at \largefontsize]
, even though there is no font whose name is "GentiumBookBasic-Italic". This corresponds to a font face that fc-list
lists as Gentium Book Basic:style=Italic
. This syntax is not unexpected, but the draft fonts chapter didn't seem to explain whether Palatino-Italic
was more than just a monolithic font name. So the question of whether I had it right or not was an additional dimension of uncertainty during debugging.
Best Answer
As stated in this tutorial, there are several ways to design a font. In any case, you will need a software for font editing. FontForge is a powerful and free font editor. In particular, it can generate TeX font metrics, in order to use the fonts with TeX. Moreover, it can auto-hint the fonts, which is essential for good on-screen viewing.
Another way to design a font is to describe the glyphs in a special programming language like Metafont. This has the advantage that you can use parameters to generate different weights and styles using the same program. For example, the Computer Modern fonts have been designed this way. One drawback of MetaFont is that it only generate bitmap fonts, which do not scale well. MetaType1 on the other hand can generate PostScript Type 1 fonts directly, but imposes some limitations on the constructs you can use.
Finally, remember Knuth's words from the Metafont book (page 9):