#!/bin/sh
#Author: Michael Marte, marte@informatik.uni-muenchen.de

#This is a very simple - but therefore understandable and working - shell
#script for generating a complete font set for an arbitrary device and
#arbitrary magnifications. Just edit the lists and variables.


#a list of all standard TeX and LaTeX fonts
FONTS='cmr5 cmr6 cmr7 cmr8 cmr9 cmr10 cmr12 cmr17 
cmcsc10 
cmsl8 cmsl9 cmsl10 cmsl12 
cmti7 cmti8 cmti9 cmti10 cmti12 
cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbx10 cmbx12 
cmb10 
cmfib8
cmbxsl10 
cmbxti10 
cminch 
cmssq8 
cmss8 cmss9 cmss10 cmss12 cmss17 
cmssqi8 
cmssi8 cmssi9 cmssi10 cmssi12 cmssi17 
cmssdc10 
cmssbx10 
cmvtt10 
cmu10 
cmff10 
cmfi10 
cmdunh10 
cmtt8 cmtt9 cmtt10 cmtt12 
cmtcsc10 
cmsltt10 
cmitt10 
cmtex8 cmtex9 cmtex10 
cmex10 
cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmi10 cmmi12 cmmib10 
cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 cmsy10 cmbsy10
lasy5 lasy6 lasy7 lasy8 lasy9 lasy10 ilasy8 lasyb10
line10 lcircle10 linew10 lcirclew10 logosl10 logo8 logo9 logo10
icmcsc10 icmex10 icmmi8 icmsy8 icmtt8
ilcmss8 ilcmssb8 ilcmssi8
lcmss8 lcmssb8 lcmssi8'



#magnifications: 1.0, sqr (1.2), 1.2, 1.2^2, 1.2^3, 1.2^4
MAGSTEPS='1000 1095 1200 1440 1728 2074'


BASEDPI=100		#NeXTscreen is a 100dpi device
DEVICE=NeXTscreen
MF=mf


if [ ! -d $DEVICE ]
then
	echo Creating directory $DEVICE
	mkdir $DEVICE
fi
echo Stepping into $DEVICE
cd $DEVICE
for mag in $MAGSTEPS
do
	dpi=$(expr \( $BASEDPI '*' $mag + 500 \) / 1000)
	dir=pk${dpi}
	echo Making fonts for magnification $mag
	if [ ! -d $dir ]
	then
		echo Creating directory $dir
		mkdir $dir
	fi
	echo Stepping into $dir
	cd $dir
	for font in $FONTS
	do
		pkFile=${font}.${dpi}pk
		if [ ! -f $pkFile ]
		then
			echo Making $pkFile
			gfFile=${font}.${dpi}gf
			magStep=$(expr substr $mag 1 1).$(expr substr $mag 2 3)
			echo Invoking MetaFont
			$MF "\mode:=$DEVICE; mag:=$magStep; scrollmode; input $font"
			if [ ! -r $gfFile ]
			then
				echo Metafont failed for some reason on $gfFile
				exit 1
			fi
			gftopk $gfFile $pkFile
			rm -f $gfFile *.log *.tfm
		fi
	done
	echo Leaving $dir
	cd ..
done
echo Leaving $DEVICE
cd ..
