The procedure followed for creating the Ablbeebl font for use in LaTeX (Ubunto distribution of Linux, TeX Live) is given below.
- Create .pfb files for each character set of AblBeebl using FontForge. Place these in a working folder (e.g. AblBeebl_r006) in the Home directory. There are two font faces AblBeebl Serif and AblBeel Sans. For each font face there are four character sets: Regular (the default face), Italic, Bold and Bold Italic. Adobe Standard Encoding is used. Only the upper and lower case letters are contained in each character set. The file names are ABLSR, ABLSRBD, ABLSRBI, ABLSRI, ABLSS, ABLSSBD, ABLSSBI, ABLSSI.
- Process the Type1 files using CrossFont under Windows to produce files that can be installed under Windows (pfb and pfm) and the afm files that will be used for generating the TeX fonts.
- Take the modified Type1 pfb and the new afm files back into the Linux system and rename the files according to the TeX convention. The new file names are: farr8a, farb8a, farbi8a, farri8a, fasr8a, fasb8a, fasbi8a, fasri8a.
- Create a file far-drv.tex to install the AblBeebl Serif fonts when run through TeX. The fonts are re-encoded from Adobe Standard (Font name code 8a) to Tex Base 1 encoding (8r). The fonts are generated by fontinst. The transformations that are made by running far-drv.tex are recorded to a file, far-rec.tex, for later use. All of these actions are implemented in the Bash terminal by the command: tex far-drv.tex . The content of the far-drv.tex file is given in full below.
- Create a file fas-drv.tex to install the AblBeebl Sans fonts when run through TeX. The fonts are re-encoded from Adobe Standard (Font name code 8a) to Tex Base 1 encoding (8r). The fonts are generated by fontinst. The transformations that are made by running fas-drv.tex are recorded to a file, fas-rec.tex, for later use. All of these actions are implemented in the Bash terminal by the command: tex fas-drv.tex . The content of the fas-drv.tex file is given in full below.
- Run the property list files (pl) created by fontinst through pltotf to generate Tex font metric files (tfm), according to the Lehman document. Likewise run the virtual property list files (vpl) files through vptovf to create virtual fonts (vf). This is easily done using the Bash shell using the commands provided:
- Prepare a local directory tree for TeX Live. This local tree is intended to contain all files that is not part of standard TeX Live distribution but should be available system-wide. This tree starts within /usr/local/share . Within Bash it is necessary to switch to root user in order to be able to create these directories or copy files into them. the first directory to be created is texmf.
- Create a file far-map.tex for AblBeebl Serif according to the Lehman document that will prepare a far.map file by using the recorded data stored in far-rec.tex. Run far-map.tex through TeX to produce the map file for dvips.
- Similarly create a file fas-map.tex (for AblBeebl Sans) according to the Lehman document that will prepare a far.map file by using the recorded data stored in fas-rec.tex. Run fas-map.tex through TeX to produce the map file for dvips.
- Copy far.map and fas.map files to the branch /usr/local/share/texmf/dvips/config/ in the local TeX tree.
- Copy the original file xdvi.cfg from /etc/texmf/xdvi/ to the local branch /usr/local/share/texmf/dvips/config/ and make the additions detailed in the Lehman document. This is the configuration file for the Type 1 rendering module of xdvi. These two lines are added at the end:
- Update file locations by running the command texhash in the Bash shell. Remember to switch to the root user by using su root before texhash.
input fontinst.styneedsfontinstversion{1.926}
substitutesilent{bx}{b}
substitutesilent{m}{l}
substitutesilent{bx}{db}
setint{smallcapsscale}{800}
setint{slant}{167}
recordtransforms{far-rec.tex}
transformfont{farr8r}{reencodefont{8r}{fromafm{farr8a}}}
transformfont{farb8r}{reencodefont{8r}{fromafm{farb8a}}}
transformfont{farbi8r}{reencodefont{8r}{fromafm{farbi8a}}}
transformfont{farri8r}{reencodefont{8r}{fromafm{farri8a}}}
installfonts
installfamily{T1}{far}{}
installfont{farr8t}{farr8r,newlatin}{t1}{T1}{far}{m}{n}{}
installfont{farb8t}{farb8r,newlatin}{t1}{T1}{far}{b}{n}{}
installfont{farbi8t}{farbi8r,newlatin}{t1}{T1}{far}{b}{it}{}
installfont{farri8t}{farri8r,newlatin}{t1}{T1}{far}{m}{it}{}
endinstallfonts
endrecordtransforms
bye
input fontinst.sty
needsfontinstversion{1.926}
substitutesilent{bx}{b}
substitutesilent{m}{l}
substitutesilent{bx}{db}
setint{smallcapsscale}{800}
setint{slant}{167}
recordtransforms{fas-rec.tex}
transformfont{fasr8r}{reencodefont{8r}{fromafm{fasr8a}}}
transformfont{fasb8r}{reencodefont{8r}{fromafm{fasb8a}}}
transformfont{fasbi8r}{reencodefont{8r}{fromafm{fasbi8a}}}
transformfont{fasri8r}{reencodefont{8r}{fromafm{fasri8a}}}
installfonts
installfamily{T1}{fas}{}
installfont{fasr8t}{fasr8r,newlatin}{t1}{T1}{fas}{m}{n}{}
installfont{fasb8t}{fasb8r,newlatin}{t1}{T1}{fas}{b}{n}{}
installfont{fasbi8t}{fasbi8r,newlatin}{t1}{T1}{fas}{b}{it}{}
installfont{fasri8t}{fasri8r,newlatin}{t1}{T1}{fas}{m}{it}{}
endinstallfonts
endrecordtransforms
bye
for file in *.pl; do pltotf $file; done
for file in *.vpl; do vptovf $file; done
/usr/local/share/texmf/dvips/config/
/usr/local/share/texmf/tex/latex/public/ablbeebl/
/usr/local/share/texmf/fonts/afm/public/ablbeebl/
/usr/local/share/texmf/fonts/tfm/public/ablbeebl/
/usr/local/share/texmf/fonts/type1/public/ablbeebl/
/usr/local/share/texmf/fonts/vf/public/ablbeebl/
The various files are copied into their directories using the following Bash shell commands:
cp *.afm /usr/local/share/texmf/fonts/afm/public/ablbeebl/
cp *.tfm /usr/local/share/texmf/fonts/tfm/public/ablbeebl/
cp *.pfb /usr/local/share/texmf/fonts/type1/public/ablbeebl/
cp *.vf /usr/local/share/texmf/fonts/vf/public/ablbeebl/
cp *.fd /usr/local/share/texmf/tex/latex/public/ablbeebl/
input finstmsc.sty
resetstr{PSfontsuffix}{.pfb}
adddriver{dvips}{far.map}
input far-rec.tex
donedrivers
bye
input finstmsc.sty
resetstr{PSfontsuffix}{.pfb}
adddriver{dvips}{fas.map}
input fas-rec.tex
donedrivers
bye
dvipsmap +far.map
dvipsmap +fas.map