Before you start make sure, that there is really no possibility for an installation with the package manager of your TeX distribution. For TeX Live see also the script getnonfreefonts (here on TeX.SX user dcmt wrote a nice answer as well) and this question and answer: Error in TeX Live – Font ... not loadable: Metric (TFM) file not found .
In wide parts already described in short in TeX Users Group: Installing TeX fonts.
Siep Kroonenberg describes a different method in Font installation the shallow way (PDF, website of Dutch TeX users group NTG; the same as TUGboat article: tb86kroonenberg-fonts.pdf.)
You have to install the font files into a local texmf tree.
For MiKTeX you perhaps have to create such a local texmf tree.
In TeX Live you somewhere have already a directory
texmf-local for a system-wide local installation (system variable
TEXMFLOCAL), but you can also create a user specific path (
TEXMFHOME). To find out the actual paths or whether they already exist you can input
kpsewhich --var-value=TEXMFLOCAL or with
Installing of fonts in
TEXMFHOME is not recommended, because afterwards you must do a manual update everytime any Type1 font (see below) related stuff is updated!
If the font package comes in a packed file, you can in most cases safely extract with subdirectories into this local texmf tree, but you should control this before doing so by comparing with the following tree structure. For instance perhaps all needed subdirectories are packed under a needless
map files are twice included there. In recent TeX distributions you only need the ones, which are found as mentioned below in
<local-texmf>/fonts/map/<engine-name>/..., not these in
<local-texmf>/<engine-name>/... – mostly
dvips, but sometimes also
pdftex, and rarely just another one.
If there is no subdirectory structure in the packed file, you have to create it under
<local-texmf> copying the structure of the according main texmf tree (known as TDS, the TeX Directory Structure) – here an almost full structure is shown (in the main texmf tree[s] it is actually more complex), for a single font package very likely only parts are necessary:
| +--<*.afm files>
| +--<*.enc files>
| +--<*.map files>
| +--<*.ofm files>
| +--<*.otf files>
| +--<*.ovf files>
| +--<*.ovp files>
| +--<*.pfm files>
| +--<*.pk files>
| +--<*.sfd files>
| +--<*.mf files>
| +--<*.tfm files>
| +--<*.ttf files>
| +--<*.pfa/*.pfb files>
In the main texmf
fonts tree(s) instead of
<font-package-name> actually in almost all directories comes an additional
public in between.
Also most fonts nowadays are shipped out as packages with documentation and style files. These come in
| |--<document files and their *.tex sources>
| +--<example files>
| |--<*.fd files>
| |--<*.sty files>
| +--<*.tex files [no document sources and examples]>
+--<*.tex files [no document sources and examples]>
Be careful that
tex are at the same level
After copying the files you must update the file name data base of your TeX distribution:
For MetaFont files (
*.mf) this is enough.
For Open-/TrueType font files (
*.otf/*.ttf, the directory names are misleading here, as the file extension does not say anything about OpenType abilities) you should additionally run
fc-cache (MiKTeX and TeX Live Windows) or
sudo fc-cache (TeX Live Linux and MacOSX) on the command prompt, but then you are ready as well. Nothing more needed for these fonts.
But note, that as long as you do not work with a portable TeX distribution it is quite probably better to install Open- or TrueType fonts into the system wide font directory since this is anyway searched and the fonts are added to the font cache with
MiKTeX portable users read also External font with portable MiKTeX, Version 2.9, please.
For Type1 fonts (see Wikipedia, PostScript fonts) further steps are required:
In MiKTeX (for MiKTeX portable read also External font with portable MiKTeX, Version 2.9!)
On command prompt (here no GUI possible) execute
initexmf --edit-config-file=updmap.cfg (or
initexmf --edit-config-file updmap). This will open your default text editor with the file
updmap.cfg in your user profile under
%AppData%\MiKTeX\<version>\miktex\config\. If it did not exist yet, it will be created.
If you add the switch
--admin, the file will be created/opened in
%AllUsersProfile%\MiKTeX\<version>\miktex\config\ (since Windows Vista) or
%AllUsersProfile%\<Application Data>\MiKTeX\<version>\miktex\config\ (until Windows XP, the string
<Application Data> is language dependent) and will be valid for all users without an own file name data base.
Add there at least the following (line with
# is a comment, we assume here, the Map file has the name
# <font name> or <package name> or what fits better for you
Save and exit. If there is more to do, this should to be read in a readme file. For information you could also open the online help page updmap.cfg or the
updmap.cfg in your main
MiKTeX\miktex\config installation tree and read the comments in it (but do not edit, as every edit will be lost on a later update!).
initexmf -u, this updates the font name data base only for the active user (you can leave this out, if you are sure, your local
updmap.cfg already existed).
initexmf --mkmaps (or shorter
In TeX Live (assuming the according map file name is
In Linux and MacOSX execute
sudo updmap-sys --enable Map=fontname.map, in Windows
updmap-sys --enable Map=fontname.map.
Make again an update of the file name data base, see second step above.
If you still have problems, you could try the approach given in this answer: Problems installing MathTime Professional 2 font on TexLive.