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