FontForge has a number of features built in to it to deal with TeX.
It can read "pk" and "gf" bitmap files and autotrace them to generate outline fonts. It can even invoke metafont directly on a ".mf" file, generate a "gf" bitmap from that, autotrace it and generate an outline font.
It can read ligature, kerning information from a ".tfm" file. It can create a tfm file.
The encodings file has a number of standard TeX encodings built in to it.
For large CJK truetype fonts it can read a sub-font definition file as defined in the ttf2tfm man page and generate a series of postscript type-1 fonts based on those two.
Before you generate a tfm file you should perform some of the following
Italic Correction from the pulldown list
TeX Glyphlist from the pulldown list
TeX Extension list from the pulldown list
Note: When FontForge does a File->Merge Kern Info on a tfm file, it will set these values appropriately.
Having done this to your satisfaction you are ready to generate a tfm file. Go to File->Generate Fonts, select one of the postscript encodings from the pulldown list, press the [Options] button and turn on the [*] Tfm & Enc check box.
I'm not sure what you do with these files yet, but this should create them.
I am a novice TeX/LaTeX user so my comments should be taken with a grain of salt. I did manage to get this process to work on my own system.
Installing a PostScript font for TeX is more complicated than one would hope (and so far I've only figured out how to install a Latin font). Instead of just moving the font file to some standard directory you must:
I suggest that before you read further you look at the following resources on the web:
I did the following:
#!/bin/bash
# You will need to change the next two lines to suit your font.
# You may need to change the two after that as well.
BASE=fcu
PACKAGE=cupola
VENDOR=public
LOCALTEXMF=/usr/local/share/texmf
# remove any old files that might be lying around and might confuse us later on
csh -c "rm fi.tex *.mtx *.pl *.vpl"
# create a little script to get TeX to create various useful files it needs
echo "\\input fontinst.sty" >fi.tex
echo "\\latinfamily{$BASE}{}" >>fi.tex
echo "\\bye" >>fi.tex
#execute that script
tex fi
# But we need to do a bit more processing on some of those files
for file in *.pl ; do
pltotf $file
done
for file in *.vpl ; do
vptovf $file
done
# Get rid of stuff we don't need any more
rm fi.tex *.mtx *.pl *.vpl
# create the directories we need for the various components
mkdir -p $LOCALTEXMF/fonts/type1/$VENDOR/$PACKAGE \
$LOCALTEXMF/fonts/afm/$VENDOR/$PACKAGE \
$LOCALTEXMF/fonts/tfm/$VENDOR/$PACKAGE \
$LOCALTEXMF/fonts/vf/$VENDOR/$PACKAGE \
$LOCALTEXMF/tex/latex/$VENDOR/$PACKAGE
# move everything into its expected directory
cp $BASE*.pfb $LOCALTEXMF/fonts/type1/$VENDOR/$PACKAGE
cp $BASE*.afm $LOCALTEXMF/fonts/afm/$VENDOR/$PACKAGE
mv $BASE*.tfm $LOCALTEXMF/fonts/tfm/$VENDOR/$PACKAGE
mv $BASE*.vf $LOCALTEXMF/fonts/vf/$VENDOR/$PACKAGE
mv *$BASE*.fd $LOCALTEXMF/tex/latex/$VENDOR/$PACKAGE
# finally create the LaTeX package for this font (and put it in the right place)
echo "\\ProvidesPackage{$PACKAGE}" > $LOCALTEXMF/tex/latex/$VENDOR/$PACKAGE/$PACKAGE.sty
echo "\\renewcommand{\\rmdefault}{$BASE}" >> $LOCALTEXMF/tex/latex/$VENDOR/$PACKAGE/$PACKAGE.sty
echo "\\endinput" >> $LOCALTEXMF/tex/latex/$VENDOR/$PACKAGE/$PACKAGE.sty
# but updating the map files required a bit more knowlege than this script has
# so I left that to be done by hand
echo "*********************************************************************"
echo You need to create your own map files
echo One should be called $LOCALTEXMF/dvips/config/$BASE.map and should
echo " contain a line for each file in the family. One might look like this:"
echo "${BASE}r8a $PACKAGE-Regular \"TexBase1Encoding ReEncodeFont\" <8r.enc <${BASE}r8a.pfb"
echo Then change the config.ps file by looking for the location defining the
echo " standard map file and adding:"
echo "p +$BASE.map"
echo " after it."
echo Then go to $LOCALTEXMF/pdftex/config/
echo Make a copy "(or a link)" of $LOCALTEXMF/dvips/config/$BASE.map
echo and edit pdftex.cfg and insert
echo "p +$BASE.map"
echo at the appropriate place in it too.