diff options
Diffstat (limited to 'fonts/utilities/mm/mmfont')
-rw-r--r-- | fonts/utilities/mm/mmfont | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/fonts/utilities/mm/mmfont b/fonts/utilities/mm/mmfont new file mode 100644 index 0000000000..0b9570ce76 --- /dev/null +++ b/fonts/utilities/mm/mmfont @@ -0,0 +1,183 @@ +#!/usr/bin/bash +# +#make a Minion or Myriad font instance +#------------------------------------------------- +#there are 3 axes in Minion: +#the weight ranges from 345 to 620 +#the width ranges from 450 to 600 +#the size varies from 6 to 72 +# +#there are 2 axes in Myriad: +#the weight ranges from 215 to 830 +#the width ranges from 300 to 750 +# +TDS=/home/spqr/tds +MMHOME=/home/spqr/psfonts/mmafm +MMDEST=$TDS/dvips/mm +TFMDEST=$TDS/fonts/tfm/adobe/mm +VFDEST=$TDS/fonts/vf/adobe/mm +# +#option allows us just to generate the AFM files, not run fontinst +# +AFM= +while true; do + case $1 in + -afm) shift ; AFM=y ; break;; + *) break;; + esac +done +FNAME=$1 +FAM=`expr $FNAME : '^z\(..\).*$'` +IWEIGHT=`expr $FNAME : '^zm.\(.*\)[78]t.*$'` +WIDTH=`expr $FNAME : '^[a-z]*[78]t\([^0-9]*\).*$'` +SIZE=`expr $FNAME : '^.*[78]t[^0-9]*\([0-9]*\)$'` +ENCODING=`expr $FNAME : '^.*\([78]t\).*$'` +USESIZE=`echo $SIZE \* 1.095 | bc` +WEIGHT=`expr $IWEIGHT : '\(.\).*'` +SHAPE=`expr $IWEIGHT : '.\(.*\)'` +EXTRA= +case $FAM in + mn) FULLFAM=Minion ; EXPERT=y;; + my) FULLFAM=Myriad; EXPERT=;; + *) echo Unknown MM family $FAM >&2; exit 1;; +esac + +if test "${SHAPE}" = "i" +then + PFA=${FULLFAM}MM-It + EPFA=${FULLFAM}MM-ItEp + LSHAPE="it" +else + PFA=${FULLFAM}MM + EPFA=${FULLFAM}MM-Ep + if test "${SHAPE}" = "c" + then + LSHAPE="sc" + IWEIGHT=$WEIGHT + EXTRA="c" + else + LSHAPE="n" + fi +fi +if test "${WIDTH}x" = "x" +then + REALWIDTH="r" +else + REALWIDTH=$WIDTH +fi +case $WEIGHT in + h) LWEIGHT="ul"; MINWEIGHT=345; MYWEIGHT=215;; #hairline + j) LWEIGHT="el"; MINWEIGHT=360; MYWEIGHT=291;; #extralight + l) LWEIGHT="l"; MINWEIGHT=380; MYWEIGHT=367;; #light + k) LWEIGHT="sl"; MINWEIGHT=400; MYWEIGHT=443;; #book + m) LWEIGHT="m"; MINWEIGHT=415; MYWEIGHT=519;; #Medium + s) LWEIGHT="sb"; MINWEIGHT=500; MYWEIGHT=595;; #semibold + b) LWEIGHT="b"; MINWEIGHT=580; MYWEIGHT=671;; #bold + x) LWEIGHT="eb"; MINWEIGHT=600; MYWEIGHT=747;; #ExtraBold + u) LWEIGHT="ub"; MINWEIGHT=620; MYWEIGHT=830;; #UltraBlack + *) echo BAD WEIGHT >&2; exit 1;; +esac +case $REALWIDTH in + o) LWIDTH="uc"; MINWIDTH=450; MYWIDTH=300;; #UltraCondensed + q) LWIDTH="ec"; MINWIDTH=468; MYWIDTH=350;; #ExtraCondensed + c) LWIDTH="c"; MINWIDTH=490; MYWIDTH=400;; #Condensed + n) LWIDTH="sc"; MINWIDTH=510; MYWIDTH=450;; #Narrow + r) LWIDTH="m"; MINWIDTH=535; MYWIDTH=500;; #Regular + x) LWIDTH="sx"; MINWIDTH=550; MYWIDTH=550;; #Extended + e) LWIDTH="x"; MINWIDTH=565; MYWIDTH=600;; #Expanded + v) LWIDTH="ex"; MINWIDTH=584; MYWIDTH=650;; #Extra Expanded + w) LWIDTH="ux"; MINWIDTH=600; MYWIDTH=700;; #Wide + *) echo BAD WIDTH >&2; exit 1;; +esac +ORID=`pwd` +cd $MMHOME +if test "$LWIDTH$LWEIGHT" = "mm" +then + LSERIES="m" +else + if test "$LWIDTH" = "m" + then + LWIDTH="" + fi + if test "$LWEIGHT" = "m" + then + LWEIGHT="" + fi + LSERIES=$LWEIGHT$LWIDTH +fi +if test "$ENCODING" = "8t" +then + LATEXENC=T1 + SUFFIX=8t +else + LATEXENC=OT1 + SUFFIX=7t +fi +EFNAME=z$FAM${IWEIGHT}8x${WIDTH}${SIZE} +RNAME=z$FAM${IWEIGHT}8r${WIDTH}${SIZE} +FINALNAME=z$FAM${IWEIGHT}${EXTRA}${SUFFIX}${WIDTH}${SIZE} +RAWNAME=z$FAM${IWEIGHT}8a${WIDTH}${SIZE} +echo $RAWNAME: $EFNAME, $RNAME, $FINALNAME +#echo $FNAME: $FAM / $WEIGHT [ $IWEIGHT ] / $WIDTH / $SIZE / $SHAPE: $LSERIES / $LSHAPE >&2 +if test "${SHAPE}" != "c" +then + echo "$RNAME $RAWNAME \" TeXBase1Encoding ReEncodeFont \" <8r.enc <$PFA.PFA <$RAWNAME.pro" > $RAWNAME.map +fi +makeinstance.sh $PFA $RAWNAME $MINWEIGHT $MINWIDTH $USESIZE +if test "$EXPERT"x != "x" +then + echo "$EFNAME $EFNAME <$EPFA.PFA <$EFNAME.pro" > $EFNAME.map + makeinstance.sh $EPFA $EFNAME $MINWEIGHT $MINWIDTH $USESIZE >& /dev/null +fi +if test "$AFM"x != "x" +then + exit 0 +fi +cat > _min$$.tex <<HERE +\input fontinst.sty +\needsfontinstversion{1.5} +\installfonts +\installfamily{${LATEXENC}}{foo}{} + \transformfont{$RNAME}{\reencodefont{8r}{\fromafm{$RAWNAME}}} +HERE +if test "$EXPERT"x != "x" +then + if test "${SHAPE}" = "c" + then +echo "\\installfont{$FINALNAME}{$RNAME,$EFNAME,latin}{${LATEXENC}c}{${LATEXENC}}{foo}{$LSERIES}{$LSHAPE}{}" >> _min$$.tex + else + echo "\\installfont{$FINALNAME}{$RNAME,$EFNAME,latin}{${LATEXENC}}{${LATEXENC}}{foo}{$LSERIES}{$LSHAPE}{}" >> _min$$.tex + fi +else + if test "${SHAPE}" = "c" + then + echo " \\installfont{$FINALNAME}{$RNAME,latin}{${LATEXENC}c}{${LATEXENC}}{foo}{$LSERIES}{$LSHAPE}{}" >> _min$$.tex + else + echo "\\installfont{$FINALNAME}{$RNAME,latin}{${LATEXENC}}{${LATEXENC}}{foo}{$LSERIES}{$LSHAPE}{}" >> _min$$.tex + fi +fi +cat >> _min$$.tex <<THERE +\endinstallfonts +\bye +THERE +tex _min$$ +rm _min$$.* +pltotf $RNAME.pl $RNAME.tfm >& /dev/null +vptovf $FINALNAME.vpl $FINALNAME.vf $FINALNAME.tfm >& /dev/null +rm $RNAME.pl $FINALNAME.vpl +rm ${LATEXENC}foo.fd +rm $RAWNAME.afm +mv $RNAME.tfm $FINALNAME.tfm $TFMDEST +mv $FINALNAME.vf $VFDEST +mv $RAWNAME.pro $MMDEST +cat z$FAM${IWEIGHT}8*${WIDTH}${SIZE}.map $MMDEST/mm.map | sort | uniq > $$.map +mv $$.map $MMDEST/mm.map +rm $RAWNAME.* +if test "$EXPERT"x != "x" +then + pltotf $EFNAME.pl $EFNAME.tfm >& /dev/null + mv $EFNAME.pro $MMDEST + mv $EFNAME.tfm $TFMDEST + rm $EFNAME.* +fi +cd $ORID |