ramsdell@linus.UUCP (John D. Ramsdell) (03/01/90)
Here is an awk program that generates the makefile for PK fonts. To install, follow the instructions in Makefile.fake. John #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # Makefile.fake # font-list.text # pk-maker.sh # This archive created: Thu Mar 1 08:08:11 1990 export PATH; PATH=/bin:$PATH if test -f 'Makefile.fake' then echo shar: will not over-write existing file "'Makefile.fake'" else cat << \SHAR_EOF > 'Makefile.fake' # Fake makefile. # Installation: # 1. Place pk-maker.sh and font-list.text in the directory # above the ones used to hold the fonts. # 2. Place this file in the font directory. # 3. Edit parameters below. # 4. Type "make -f Makefile.fake". # 5. The new make file knows how to make itself, # so you can delete this file. MFINPUT=/usr/local/lib/mf/inputs DPI=300 MODE=localfont SAVE_TFM= Makefile: /bin/sh ../pk-maker.sh $(MFINPUT) $(DPI) $(MODE) $(SAVE_TFM)\ < ../font-list.text > Makefile SHAR_EOF fi # end of overwriting check if test -f 'font-list.text' then echo shar: will not over-write existing file "'font-list.text'" else cat << \SHAR_EOF > 'font-list.text' cmb10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmbsy10 0.0 0.5 1.0 cmbx10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmbx12 0.0 0.5 1.0 cmbx5 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmbx6 0.0 0.5 1.0 cmbx7 0.0 0.5 1.0 2.0 3.0 4.0 5.0 5/7 6/7 cmbx8 0.0 0.5 1.0 cmbx9 0.0 0.5 1.0 cmbxsl10 0.0 0.5 1.0 cmbxti10 0.0 0.5 1.0 cmcsc10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 8/10 9/10 cmdunh10 0.0 0.5 1.0 cmex10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmff10 0.0 0.5 1.0 cmfi10 0.0 0.5 1.0 cmfib8 0.0 0.5 1.0 cminch 0.0 cmitt10 0.0 0.5 1.0 cmmi10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmmi12 0.0 0.5 1.0 cmmi5 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmmi6 0.0 0.5 1.0 cmmi7 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmmi8 0.0 0.5 1.0 cmmi9 0.0 0.5 1.0 cmmib10 0.0 0.5 1.0 9/10 cmr10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmr12 0.0 0.5 1.0 cmr17 0.0 0.5 1.0 cmr5 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmr6 0.0 0.5 1.0 cmr7 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmr8 0.0 0.5 1.0 cmr9 0.0 0.5 1.0 cmsl10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmsl12 0.0 0.5 1.0 cmsl8 0.0 0.5 1.0 cmsl9 0.0 0.5 1.0 cmsltt10 0.0 0.5 1.0 cmss10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 8/10 9/10 cmss12 0.0 0.5 1.0 cmss17 0.0 0.5 1.0 cmss8 0.0 0.5 1.0 cmss9 0.0 0.5 1.0 cmssbx10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmssdc10 0.0 0.5 1.0 cmssi10 0.0 0.5 1.0 cmssi12 0.0 0.5 1.0 cmssi17 0.0 0.5 1.0 cmssi8 0.0 0.5 1.0 cmssi9 0.0 0.5 1.0 cmssq8 0.0 0.5 1.0 cmssqi8 0.0 0.5 1.0 cmsy10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmsy5 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmsy6 0.0 0.5 1.0 cmsy7 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmsy8 0.0 0.5 1.0 cmsy9 0.0 0.5 1.0 cmtcsc10 0.0 0.5 1.0 cmtex10 0.0 0.5 1.0 cmtex8 0.0 0.5 1.0 cmtex9 0.0 0.5 1.0 cmti10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmti12 0.0 0.5 1.0 cmti7 0.0 0.5 1.0 5/7 cmti8 0.0 0.5 1.0 cmti9 0.0 0.5 1.0 cmtt10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 cmtt12 0.0 0.5 1.0 cmtt8 0.0 0.5 1.0 cmtt9 0.0 0.5 1.0 cmu10 0.0 0.5 1.0 cmvtt10 0.0 0.5 1.0 lasy10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 lasy5 0.0 0.5 1.0 2.0 3.0 4.0 5.0 lasy6 0.0 0.5 1.0 lasy7 0.0 0.5 1.0 2.0 3.0 4.0 5.0 lasy8 0.0 0.5 1.0 lasy9 0.0 0.5 1.0 lasyb10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 lcircle10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 lcirclew10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 lcmss8 3.0 4.0 5.0 6.0 7.0 lcmssb8 3.0 4.0 5.0 6.0 7.0 lcmssi8 3.0 4.0 5.0 6.0 7.0 line10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 linew10 0.0 0.5 1.0 2.0 3.0 4.0 5.0 logo10 0.0 0.5 1.0 SHAR_EOF fi # end of overwriting check if test -f 'pk-maker.sh' then echo shar: will not over-write existing file "'pk-maker.sh'" else cat << \SHAR_EOF > 'pk-maker.sh' #!/bin/sh # Makefile generator for PK fonts. John D. Ramsdell --- March 1990 # Usage: $ME MFINPUT DPI MODE < font-list.text # where MFINPUT is the directory which contains the METAFONT sources. # DPI is the dots-per-inch of the device, # MODE is the METAFONT mode used to generate fonts, # and font-list is a sequence of records in the form # font-name size_1 ... size_n # where size is the magstep if it has no "/", otherwise it is # a fraction which gives the magnification. # # Place this file and the font-list in the parent directory of the # directory which is to hold the fonts. After the first Makefile # has been generated, updates are are made by simply typing # "make Makefile". # To create fonts, type "make -k > make.log 2>&1 &" to /bin/sh, or # "make -k >& make.log &" to /bin/csh. If all looks fine in make.log, # type "make clean". MFINPUT=$1 DPI=$2 MODE=${3-localfont} SAVE_TFM=$4 ME=`basename $0` USAGE="$ME MFINPUT DPI [MODE] [SAVE_TFM]" if test ! "$MFINPUT" then echo Missing MFINPUT. 1>&2 echo Usage: "$USAGE" 1>&2 exit 1 fi if test ! "$DPI" then echo Missing DPI. 1>&2 echo Usage: "$USAGE" 1>&2 exit 1 fi echo $ME MFINPUT DPI and MODE: ${MFINPUT} ${DPI} ${MODE} 1>&2 awk ' BEGIN { dpi = int('$DPI'+0.5) mode = "'$MODE'" base = log(1.2) type = "pk" font_data = 0 } { for (i = 2; i <= NF; i++) { basename[font_data] = $1 if ($i == "0.0") scale[font_data] = 1.0 else if ($i !~ /\//) scale[font_data] = exp($i*base) else if (split($i, fraction, "/") == 2) scale[font_data] = fraction[1] / fraction[2] else scale[font_data] = 0.0 if (scale[font_data] > 0.0) font[$1 "." int(dpi*scale[font_data]+0.5)] = font_data else print "'$ME': Bad input record \"" $0 "\"." | "cat 1>&2" font_data += 1 } } END { # basename[font_data] is the font basename. # scale[font_data] is the font scale (with 1.0 as no scaling). # font[filename] is the font_data associated with filename. # The use of the font array eliminates duplicates print "# Makefile for " dpi " lines per inch fonts using mode " mode "." print "# Fake targets are all and clean." print "# Set \"SAVE_TFM=true\" to save tfm files." print "" print "MFINPUT='$MFINPUT'" print "DPI=" dpi print "MODE=" mode print "SAVE_TFM='$SAVE_TFM'" print "" printf("all:") # all is the default target. for (filename in font) { print " \\" printf(" %s", filename type) } print "" print "" print "Makefile:\t../font-list.text ../'$ME'" print "\trm -f Makefile.bak; mv Makefile Makefile.bak" print "\t/bin/sh ../'$ME' $(MFINPUT) $(DPI) $(MODE) $(SAVE_TFM) < ../font-list.text > Makefile" print "" print "clean:" print "\t-rm -f *gf *.log" for (filename in font) { bn = basename[font[filename]] print "" print filename type ":\t$(MFINPUT)/" bn ".mf" printf("\tmf '\''\\mode:=%s;'\'' \"batchmode;\" ", mode) if (scale[font[filename]] != 1.0) printf("\"mag:=%s;\" ", scale[font[filename]]) print "input " bn ".mf" printf("\t-rm -f %s.log\n", bn) printf("\t-if test ! \"$(SAVE_TFM)\"; then rm -f %s.tfm; fi\n", bn) printf("\tgftopk %sgf\n", filename) printf("\t-rm -f %sgf\n", filename) } } ' SHAR_EOF fi # end of overwriting check # End of shell archive exit 0
rcpt@tuegate.tue.nl (Piet Tutelaers) (03/02/90)
I have designed a set of tools (UMFT: Unix MetaFont Tools) which can be used to generate PK-fonts too! Instead of providing people with the `nitty gritty details' of make, I have designed a set of tools that makes the generation of fonts more userfriendly. Here is an short introduction to UMFT: Unix MetaFont Tools (version 1.0) ================================= Here is a collection of Unix tools that can be used to generate MetaFonts in a user friendly way. For a comprehensive description of all offered features you can read umft/man/umft.man.te (a troff manual page that can be printed with `tbl umft.man.te | eqn | psroff -man' or something equivalent). For installation instructions and a short description of its usage you can read the umft/README file. Here is how you install the `basic+extra+slitex' set of fonts (after some preparation): - generatefonts -s "basic extra slitex" cheapo | sh - installfonts -m cheapo | sh if `cheapo' is the printer of your choice. The `basic+extra+slitex' fonts were suggested by Bart Childs (TUGboat, aug'88) and Joachim Schrod (TUGboat, dec'88) as their working set for TeX and LaTeX. To generate your favourite set of fonts you only need to provide the names of the fonts and the wanted magsteps into an ASCIIfile. For further information see subject `UMFT: Unix MetaFont Tools v1.0' in this discussion group. Piet Tutelaers rcpt@urc.tue.nl