#!/bin/csh -f
# Will also work with tcsh

cat <<EOF
This script runs metafont and gftopk to produce the
following fonts / families / shapes:

  *********************************************************
  computer modern, as to LaTeX2e's cmfonts.fdd
  Also required:
  extracm, from the amsfonts distribution
  *********************************************************

Give metafont mode as first argument (default = localfont)

Note: some fonts are needed from the AMSfonts distribution.

Michael Cree, Volker Kuhlmann
   9 July 94
   Volker 1 Jan 95; 8 Apr 95; 26 Mar 96; 8 Apr 96; 12 Aug 98
v.kuhlmann@elec.canterbury.ac.nz

EOF

# CHANGELOG
#
# 12 Aug 98 (VK)
#	Changed cmmf to mf.
#	Replaced echo with cat, introduced $MF.
# 22 Oct 96 (VK)
#	Removed comment about missing LaTeX slide fonts.
#	Added cmtex fonts.
# 8 Apr 96 (VK)
#	Added \scrollmode. Fixed docs.
# 26 Mar 96 (VK)
#	Added cmex10 magstep 2 (needed for amsldoc.tex).
# 8 Apr 95 (VK)
#	Metafont mode can now be given as $1.
# 1 Jan 95 (VK)
#	Checked that all cm fonts are generated.
#	(Also generated are the AMSfonts extracm fonts.)
#
# 8 Dec 94 (VK)
#       Added cmssq8, cmssqi8 because make of TeX 3.1415 C version 6.1 
#	failed to create the plain format.
#	These 2 fonts are preloaded by plain, but not by LaTeX.
#
# 21 Nov 94 (VK)
#       Added cminch because it is a standard TeX font. Other standard
#	TeX fonts probably missing as well.


if ( $#argv > 0 ) set MODE="$1"
if ( ! $?MODE ) set MODE=localfont
set MF="cmmf \mode=$MODE; \scrollmode; "
set MF="mf \mode=$MODE; \scrollmode; "
cat <<EOF

**********************************
metafont mode is set to: $MODE
running metafont as: $MF
**********************************

EOF


# COMPUTER MODERN ROMAN
$MF '\mag=magstep(0);'		input cmr5
$MF '\mag=magstep(0);'		input cmr6
$MF '\mag=magstep(0);'		input cmr7
$MF '\mag=magstep(0);'		input cmr8
$MF '\mag=magstep(0);'		input cmr9
$MF '\mag=magstep(0);'		input cmr10
$MF '\mag=magstep(0.5);'	input cmr10	# 10.95pt
$MF '\mag=magstep(0);'		input cmr12
$MF '\mag=magstep(1);'		input cmr12	# 14.4pt
$MF '\mag=magstep(0);'		input cmr17
$MF '\mag=magstep(1);'		input cmr17	# 20.74pt
$MF '\mag=magstep(2);'		input cmr17	# 24.88pt

# COMPUTER MODERN SLANTED
$MF '\mag=magstep(-2.58);'	input cmsl8	# 5pt
$MF '\mag=magstep(-1.58);'	input cmsl8	# 6pt
$MF '\mag=magstep(-0.732);'	input cmsl8	# 7pt
$MF '\mag=magstep(0);'		input cmsl8
$MF '\mag=magstep(0);'		input cmsl9
$MF '\mag=magstep(0);'		input cmsl10
$MF '\mag=magstep(0.5);'	input cmsl10	# 10.95pt
$MF '\mag=magstep(0);'		input cmsl12
$MF '\mag=magstep(1);'		input cmsl12	# 14.4pt
$MF '\mag=magstep(2);'		input cmsl12	# 17.28pt
$MF '\mag=magstep(3);'		input cmsl12	# 20.74pt
$MF '\mag=magstep(4);'		input cmsl12	# 24.88pt

# COMPUTER MODERN ITALICS
$MF '\mag=magstep(-1.85);'	input cmti7	# 5pt
$MF '\mag=magstep(-0.845);'	input cmti7	# 6pt
$MF '\mag=magstep(0);'		input cmti7
$MF '\mag=magstep(0);'		input cmti8
$MF '\mag=magstep(0);'		input cmti9
$MF '\mag=magstep(0);'		input cmti10
$MF '\mag=magstep(0.5);'	input cmti10	# 10.95pt
$MF '\mag=magstep(0);'		input cmti12
$MF '\mag=magstep(1);'		input cmti12	# 14.4pt
$MF '\mag=magstep(2);'		input cmti12	# 17.28pt
$MF '\mag=magstep(3);'		input cmti12	# 20.74pt
$MF '\mag=magstep(4);'		input cmti12	# 24.88pt

# COMPUTER MODERN SMALL CAPS
$MF '\mag=magstep(-3.8);'	input cmcsc10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmcsc10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmcsc10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmcsc10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmcsc10	# 9pt
$MF '\mag=magstep(0);'		input cmcsc10
$MF '\mag=magstep(0.5);'	input cmcsc10	# 10.95pt
$MF '\mag=magstep(1);'		input cmcsc10	# 12pt
$MF '\mag=magstep(2);'		input cmcsc10	# 14.4pt
$MF '\mag=magstep(3);'		input cmcsc10	# 17.28pt
$MF '\mag=magstep(4);'		input cmcsc10	# 20.74pt
$MF '\mag=magstep(5);'		input cmcsc10	# 24.88pt
# (size 8-9 come from the AMSfonts! not loaded by standard fd file)
$MF '\mag=magstep(0);'		input cmcsc8
$MF '\mag=magstep(0);'		input cmcsc9

# COMPUTER MODERN UPRIGHT 
# (this is to get the pound symbol)
$MF '\mag=magstep(-3.8);'	input cmu10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmu10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmu10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmu10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmu10	# 9pt
$MF '\mag=magstep(0);'		input cmu10
$MF '\mag=magstep(0.5);'	input cmu10	# 10.95pt
$MF '\mag=magstep(1);'		input cmu10	# 12pt
$MF '\mag=magstep(2);'		input cmu10	# 14.4pt
$MF '\mag=magstep(3);'		input cmu10	# 17.28pt
$MF '\mag=magstep(4);'		input cmu10	# 20.74pt
$MF '\mag=magstep(5);'		input cmu10	# 24.88pt

# COMPUTER MODERN BOLD
$MF '\mag=magstep(-3.8);'	input cmb10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmb10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmb10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmb10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmb10	# 9pt
$MF '\mag=magstep(0);'		input cmb10
$MF '\mag=magstep(0.5);'	input cmb10	# 10.95pt
$MF '\mag=magstep(1);'		input cmb10	# 12pt
$MF '\mag=magstep(2);'		input cmb10	# 14.4pt
$MF '\mag=magstep(3);'		input cmb10	# 17.28pt
$MF '\mag=magstep(4);'		input cmb10	# 20.74pt
$MF '\mag=magstep(5);'		input cmb10	# 24.88pt

# COMPUTER MODERN BOLD EXTENDED
$MF '\mag=magstep(0);'		input cmbx5
$MF '\mag=magstep(0);'		input cmbx6
$MF '\mag=magstep(0);'		input cmbx7
$MF '\mag=magstep(0);'		input cmbx8
$MF '\mag=magstep(0);'		input cmbx9
$MF '\mag=magstep(0);'		input cmbx10
$MF '\mag=magstep(0.5);'	input cmbx10	# 10.95pt
$MF '\mag=magstep(0);'		input cmbx12
$MF '\mag=magstep(1);'		input cmbx12	# 14.4pt
$MF '\mag=magstep(2);'		input cmbx12	# 17.28pt
$MF '\mag=magstep(3);'		input cmbx12	# 20.74pt
$MF '\mag=magstep(4);'		input cmbx12	# 24.88pt

# COMPUTER MODERN BOLD EXTENDED SLANTED
$MF '\mag=magstep(-3.8);'	input cmbxsl10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmbxsl10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmbxsl10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmbxsl10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmbxsl10	# 9pt
$MF '\mag=magstep(0);'		input cmbxsl10
$MF '\mag=magstep(0.5);'	input cmbxsl10	# 10.95pt
$MF '\mag=magstep(1);'		input cmbxsl10	# 12pt
$MF '\mag=magstep(2);'		input cmbxsl10	# 14.4pt
$MF '\mag=magstep(3);'		input cmbxsl10	# 17.28pt
$MF '\mag=magstep(4);'		input cmbxsl10	# 20.74pt
$MF '\mag=magstep(5);'		input cmbxsl10	# 24.88pt

# COMPUTER MODERN BOLD EXTENDED ITALICS
$MF '\mag=magstep(-3.8);'	input cmbxti10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmbxti10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmbxti10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmbxti10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmbxti10	# 9pt
$MF '\mag=magstep(0);'		input cmbxti10
$MF '\mag=magstep(0.5);'	input cmbxti10	# 10.95pt
$MF '\mag=magstep(1);'		input cmbxti10	# 12pt
$MF '\mag=magstep(2);'		input cmbxti10	# 14.4pt
$MF '\mag=magstep(3);'		input cmbxti10	# 17.28pt
$MF '\mag=magstep(4);'		input cmbxti10	# 20.74pt
$MF '\mag=magstep(5);'		input cmbxti10	# 24.88pt

# COMPUTER MODERN SANS SERIF
$MF '\mag=magstep(-2.58);'	input cmss8	# 5pt
$MF '\mag=magstep(-1.58);'	input cmss8	# 6pt
$MF '\mag=magstep(-0.732);'	input cmss8	# 7pt
$MF '\mag=magstep(0);'		input cmss8
$MF '\mag=magstep(0);'		input cmss9
$MF '\mag=magstep(0);'		input cmss10
$MF '\mag=magstep(0.5);'	input cmss10	# 10.95pt
$MF '\mag=magstep(0);'		input cmss12
$MF '\mag=magstep(1);'		input cmss12	# 14.4pt
$MF '\mag=magstep(0);'		input cmss17
$MF '\mag=magstep(1);'		input cmss17	# 20.74pt
$MF '\mag=magstep(2);'		input cmss17	# 24.88pt

# COMPUTER MODERN SANS SERIF ITALICS (SLANTED as of OT1cmss.fd?)
$MF '\mag=magstep(-2.58);'	input cmssi8	# 5pt
$MF '\mag=magstep(-1.58);'	input cmssi8	# 6pt
$MF '\mag=magstep(-0.732);'	input cmssi8	# 7pt
$MF '\mag=magstep(0);'		input cmssi8
$MF '\mag=magstep(0);'		input cmssi9
$MF '\mag=magstep(0);'		input cmssi10
$MF '\mag=magstep(0.5);'	input cmssi10	# 10.95pt
$MF '\mag=magstep(0);'		input cmssi12
$MF '\mag=magstep(1);'		input cmssi12	# 14.4pt
$MF '\mag=magstep(0);'		input cmssi17
$MF '\mag=magstep(1);'		input cmssi17	# 20.74pt
$MF '\mag=magstep(2);'		input cmssi17	# 24.88pt

# COMPUTER MODERN SANS SERIF SEMI BOLD CONDENSED
# Note: cmssdc10 at 5pt bombs out metafont!
$MF '\mag=magstep(-3.8);'	input cmssdc10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmssdc10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmssdc10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmssdc10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmssdc10	# 9pt
$MF '\mag=magstep(0);'		input cmssdc10
$MF '\mag=magstep(0.5);'	input cmssdc10	# 10.95pt
$MF '\mag=magstep(1);'		input cmssdc10	# 12pt
$MF '\mag=magstep(2);'		input cmssdc10	# 14.4pt
$MF '\mag=magstep(3);'		input cmssdc10	# 17.28pt
$MF '\mag=magstep(4);'		input cmssdc10	# 20.74pt
$MF '\mag=magstep(5);'		input cmssdc10	# 24.88pt

# COMPUTER MODERN SANS SERIF BOLD EXTENDED
$MF '\mag=magstep(-3.8);'	input cmssbx10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmssbx10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmssbx10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmssbx10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmssbx10	# 9pt
$MF '\mag=magstep(0);'		input cmssbx10
$MF '\mag=magstep(0.5);'	input cmssbx10	# 10.95pt
$MF '\mag=magstep(1);'		input cmssbx10	# 12pt
$MF '\mag=magstep(2);'		input cmssbx10	# 14.4pt
$MF '\mag=magstep(3);'		input cmssbx10	# 17.28pt
$MF '\mag=magstep(4);'		input cmssbx10	# 20.74pt
$MF '\mag=magstep(5);'		input cmssbx10	# 24.88pt

# COMPUTER MODERN TYPEWRITER
$MF '\mag=magstep(-2.58);'	input cmtt8	# 5pt
$MF '\mag=magstep(-1.58);'	input cmtt8	# 6pt
$MF '\mag=magstep(-0.732);'	input cmtt8	# 7pt
$MF '\mag=magstep(0);'		input cmtt8
$MF '\mag=magstep(0);'		input cmtt9
$MF '\mag=magstep(0);'		input cmtt10
$MF '\mag=magstep(0.5);'	input cmtt10	# 10.95pt
$MF '\mag=magstep(0);'		input cmtt12
$MF '\mag=magstep(1);'		input cmtt12	# 14.4pt
$MF '\mag=magstep(2);'		input cmtt12	# 17.28pt
$MF '\mag=magstep(3);'		input cmtt12	# 20.74pt
$MF '\mag=magstep(4);'		input cmtt12	# 24.88pt

# COMPUTER MODERN TYPEWRITER SLANTED
$MF '\mag=magstep(-3.8);'	input cmsltt10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmsltt10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmsltt10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmsltt10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmsltt10	# 9pt
$MF '\mag=magstep(0);'		input cmsltt10
$MF '\mag=magstep(0.5);'	input cmsltt10	# 10.95pt
$MF '\mag=magstep(1);'		input cmsltt10	# 12pt
$MF '\mag=magstep(2);'		input cmsltt10	# 14.4pt
$MF '\mag=magstep(3);'		input cmsltt10	# 17.28pt
$MF '\mag=magstep(4);'		input cmsltt10	# 20.74pt
$MF '\mag=magstep(5);'		input cmsltt10	# 24.88pt

# COMPUTER MODERN TYPEWRITER ITALICS
$MF '\mag=magstep(-3.8);'	input cmitt10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmitt10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmitt10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmitt10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmitt10	# 9pt
$MF '\mag=magstep(0);'		input cmitt10
$MF '\mag=magstep(0.5);'	input cmitt10	# 10.95pt
$MF '\mag=magstep(1);'		input cmitt10	# 12pt
$MF '\mag=magstep(2);'		input cmitt10	# 14.4pt
$MF '\mag=magstep(3);'		input cmitt10	# 17.28pt
$MF '\mag=magstep(4);'		input cmitt10	# 20.74pt
$MF '\mag=magstep(5);'		input cmitt10	# 24.88pt

# COMPUTER MODERN TYPEWRITER SMALL CAPS
$MF '\mag=magstep(-3.8);'	input cmtcsc10	# 5pt
$MF '\mag=magstep(-2.8);'	input cmtcsc10	# 6pt
$MF '\mag=magstep(-1.96);'	input cmtcsc10	# 7pt
$MF '\mag=magstep(-1.22);'	input cmtcsc10	# 8pt
$MF '\mag=magstep(-0.578);'	input cmtcsc10	# 9pt
$MF '\mag=magstep(0);'		input cmtcsc10
$MF '\mag=magstep(0.5);'	input cmtcsc10	# 10.95pt
$MF '\mag=magstep(1);'		input cmtcsc10	# 12pt
$MF '\mag=magstep(2);'		input cmtcsc10	# 14.4pt
$MF '\mag=magstep(3);'		input cmtcsc10	# 17.28pt
$MF '\mag=magstep(4);'		input cmtcsc10	# 20.74pt
$MF '\mag=magstep(5);'		input cmtcsc10	# 24.88pt

# COMPUTER MODERN MATH ITALICS
$MF '\mag=magstep(0);'		input cmmi5
$MF '\mag=magstep(0);'		input cmmi6
$MF '\mag=magstep(0);'		input cmmi7
$MF '\mag=magstep(0);'		input cmmi8
$MF '\mag=magstep(0);'		input cmmi9
$MF '\mag=magstep(0);'		input cmmi10
$MF '\mag=magstep(0.5);'	input cmmi10	# 10.95pt
$MF '\mag=magstep(0);'		input cmmi12
$MF '\mag=magstep(1);'		input cmmi12	# 14.4pt
$MF '\mag=magstep(2);'		input cmmi12	# 17.28pt
$MF '\mag=magstep(3);'		input cmmi12	# 20.74pt
$MF '\mag=magstep(4);'		input cmmi12	# 24.88pt

# COMPUTER MODERN MATH BOLD ITALICS
# (size 5-9 come from the AMSfonts!)
# N.B. Size 5-9 are required by LaTeX2e. 
#      If not available they could be scaled down from cmmib10, but
#      better is to get the AMSfonts distribution.
$MF '\mag=magstep(0);'		input cmmib5
$MF '\mag=magstep(0);'		input cmmib6
$MF '\mag=magstep(0);'		input cmmib7
$MF '\mag=magstep(0);'		input cmmib8
$MF '\mag=magstep(0);'		input cmmib9
$MF '\mag=magstep(0);'		input cmmib10
$MF '\mag=magstep(0.5);'	input cmmib10	# 10.95pt
$MF '\mag=magstep(1);'		input cmmib10	# 12pt
$MF '\mag=magstep(2);'		input cmmib10	# 14.4pt
$MF '\mag=magstep(3);'		input cmmib10	# 17.28pt
$MF '\mag=magstep(4);'		input cmmib10	# 20.74pt
$MF '\mag=magstep(5);'		input cmmib10	# 24.88pt

# COMPUTER MODERN MATH SYMBOLS
$MF '\mag=magstep(0);'		input cmsy5
$MF '\mag=magstep(0);'		input cmsy6
$MF '\mag=magstep(0);'		input cmsy7
$MF '\mag=magstep(0);'		input cmsy8
$MF '\mag=magstep(0);'		input cmsy9
$MF '\mag=magstep(0);'		input cmsy10
$MF '\mag=magstep(0.5);'	input cmsy10	# 10.95pt
$MF '\mag=magstep(1);'		input cmsy10	# 12pt
$MF '\mag=magstep(2);'		input cmsy10	# 14.4pt
$MF '\mag=magstep(3);'		input cmsy10	# 17.28pt
$MF '\mag=magstep(4);'		input cmsy10	# 20.74pt
$MF '\mag=magstep(5);'		input cmsy10	# 24.88pt

# COMPUTER MODERN MATH BOLD SYMBOLS
# (size 5-9 come from the AMSfonts!)
# N.B. Size 5-9 are required by LaTeX2e. 
#      If not available they could be scaled down from cmbsy10, but
#      better is to get the AMSfonts distribution.
$MF '\mag=magstep(0);'		input cmbsy5
$MF '\mag=magstep(0);'		input cmbsy6
$MF '\mag=magstep(0);'		input cmbsy7
$MF '\mag=magstep(0);'		input cmbsy8
$MF '\mag=magstep(0);'		input cmbsy9
$MF '\mag=magstep(0);'		input cmbsy10
$MF '\mag=magstep(0.5);'	input cmbsy10	# 10.95pt
$MF '\mag=magstep(1);'		input cmbsy10	# 12pt
$MF '\mag=magstep(2);'		input cmbsy10	# 14.4pt
$MF '\mag=magstep(3);'		input cmbsy10	# 17.28pt
$MF '\mag=magstep(4);'		input cmbsy10	# 20.74pt
$MF '\mag=magstep(5);'		input cmbsy10	# 24.88pt

# COMPUTER MODERN LARGE SYMBOLS
# (size 7-9 come from the AMSfonts! not loaded by standard fd file)
$MF '\mag=magstep(0);'		input cmex7
$MF '\mag=magstep(0);'		input cmex8
$MF '\mag=magstep(0);'		input cmex9
$MF '\mag=magstep(0);'		input cmex10
$MF '\mag=magstep(2);'		input cmex10
  # the last is needed to typeset the amslatex documentation (amsldoc.tex)

# COMPUTER MODERN FUNNY
# The fd file only defines 10pt!
$MF '\mag=magstep(0);'		input cmff10
$MF '\mag=magstep(0.5);'	input cmff10	# 10.95pt
$MF '\mag=magstep(1);'		input cmff10	# 12pt

# COMPUTER MODERN FUNNY ITALICS
# The fd file only defines 10pt!
$MF '\mag=magstep(0);'		input cmfi10
$MF '\mag=magstep(0.5);'	input cmfi10	# 10.95pt
$MF '\mag=magstep(1);'		input cmfi10	# 12pt

# COMPUTER MODERN DUNHILL
# The fd file only defines 10pt!
$MF '\mag=magstep(0);'		input cmdunh10
$MF '\mag=magstep(0.5);'	input cmdunh10	# 10.95pt
$MF '\mag=magstep(1);'		input cmdunh10	# 12pt

# COMPUTER MODERN FIBONACCI
# The fd file only defines 8pt!
$MF '\mag=magstep(0);'		input cmfib8
$MF '\mag=magstep(1.22);'	input cmfib8	# 10pt

# COMPUTER MODERN OTHER STUFF
#
$MF '\mag=magstep(0);'		input cminch
$MF '\mag=magstep(0);'		input cmssq8
$MF '\mag=magstep(0);'		input cmssqi8

# COMPUTER MODERN TeX extended ASCII
#
$MF '\mag=magstep(0);'		input cmtex8
$MF '\mag=magstep(0);'		input cmtex9
$MF '\mag=magstep(0);'		input cmtex10


echo "\
Metafont finished.\
"


echo "Now running GFtoPK."

# note this requires csh or tcsh
foreach file ( *gf )
  gftopk $file
end

cat <<EOF
GFtoPK finished."

To complete the font installation, do the following:
  copy all .tfm-files into the tfm directory
  copy all .pk-files into the pk-directory
  delete all .gf files.

Have a nice day."

EOF