home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / texlatex.zip / web2c72.zip / bin / mktexmf < prev    next >
Text File  |  1999-09-14  |  3KB  |  120 lines

  1. #!sh
  2. # original mktexmf -- make a new MF file, because one wasn't found.
  3. # (If you change or delete the word `original' on the previous line,
  4. # installation won't write this script over yours.)
  5. # te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl.
  6. # Public domain.
  7.  
  8. version='$Id: mktexmf,v 1.13 1998/02/20 16:26:17 olaf Exp $'
  9. progname=`echo $0 | sed 's%.*/%%'`
  10. usage="Usage: $progname FONT.
  11.  
  12. Makes the Metafont source file for FONT, if possible. For example,
  13. \`ecr12' or \`cmr11'."
  14.  
  15. # Common code for all scripts.
  16. : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
  17. : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
  18. test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
  19. if test ! -f "$MT_MKTEX_OPT"; then
  20.   echo "$progname: Cannot find mktex.opt; check your installation." >&2
  21.   exit 1
  22. fi
  23.  
  24. . "$MT_MKTEX_OPT"
  25.  
  26. (
  27. # See comments in mktexpk.
  28. name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`"
  29. rootname=`echo "$name" | sed 's/[0-9]*$//'`
  30. pointsize=`echo "$name" | sed "s/^$rootname//"`
  31.  
  32. sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null`
  33. if test -n "$sauterroot"; then
  34.   rootfile=$sauterroot
  35. else
  36.   case $rootname in
  37.     wn*)
  38.        lhname=`echo $name | sed 's/^wn/lh/'`
  39.        rootfile=`kpsewhich $lhname.mf 2>/dev/null`;;
  40.     *)
  41.        rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
  42.   esac
  43. fi
  44. { test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1
  45.  
  46. #if test -z "$MT_MFNAME"; then
  47. OIFS=$IFS; IFS=$SEP
  48. set x `"$MT_MKTEXNAM" $name`; shift
  49. IFS=$OIFS
  50. MT_MFNAME="$3"
  51. #fi
  52.  
  53. destdir=`echo "$MT_MFNAME" | sed -e 's%/[^/][^/]*$%%'-e 's%^.:%%'`
  54. test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1
  55. cd "$destdir" >/dev/null 2>&1 || exit 1
  56.  
  57. case "$pointsize" in
  58.   "") echo "$progname: no pointsize."; exit 1;;
  59.   11) realsize=10.95444;;      # \magstephalf
  60.   14) realsize=14.4;;  # \magstep2
  61.   17) realsize=17.28;; # \magstep3
  62.   20) realsize=20.74;; # \magstep4
  63.   25) realsize=24.88;; # \magstep5
  64.         # The new convention is to have three or four letters for the
  65.         # font name and four digits for the pointsize. The number is
  66.         # pointsize * 100. We effectively divide by 100 by ignoring the
  67.         # last two digits.
  68.   ????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;;
  69.   *) realsize="$pointsize";;
  70. esac
  71.  
  72. mfname="$name.mf"
  73. if test -r "$mfname"; then
  74.   echo "$progname: $destdir/$mfname already exists."
  75.   echo "$destdir/$mfname" >$STDOUT
  76.   "$MT_MKTEXUPD" "$destdir" "$mfname"
  77.   exit 0
  78. fi
  79.  
  80. case "$name" in
  81.   ec*|tc*)
  82.     cat > "mf$$.tmp" <<END
  83. if unknown exbase: input exbase fi;
  84. gensize:=$realsize;
  85. generate $rootname;
  86. END
  87.     ;;
  88.   dc*)
  89.     cat > "mf$$.tmp" <<END
  90. if unknown dxbase: input dxbase fi;
  91. gensize:=$realsize;
  92. generate $rootname;
  93. END
  94.     ;;
  95.   wn*)
  96.     cat > "mf$$.tmp" <<END
  97. wncoding:=1;
  98. input $lhname;
  99. END
  100.     ;;
  101.   *)
  102.     cat > "mf$$.tmp" <<END
  103. design_size := $realsize;
  104. input b-$rootname;
  105. END
  106.     ;;
  107. esac
  108.  
  109. chmod `kpsestat -xst,go-w .` "mf$$.tmp"
  110. rm -f "$mfname"
  111. mv "mf$$.tmp" "$mfname"
  112.  
  113. echo "$destdir/$mfname" >$STDOUT
  114. echo "$progname: $destdir/$mfname: successfully generated." >&2
  115. "$MT_MKTEXUPD" "$destdir" "$mfname"
  116. exit 0
  117. ) 1>&2 </dev/null
  118.