2 # original mktexmf -- make a new MF file, because one wasn't found.
4 # (If you change or delete the word `original' on the previous line,
5 # installation won't write this script over yours.)
7 # Originally written by Thomas Esser.
10 version
='$Id: mktexmf 34656 2014-07-18 23:38:50Z karl $'
12 # preferentially use subprograms from our own directory.
13 mydir
=`echo "$0" | sed 's,/[^/]*$,,'`
14 mydir
=`cd "$mydir" && pwd`
15 PATH
="$mydir:$PATH"; export PATH
17 usage
="Usage: $0 FONT.
19 Makes the Metafont source file for FONT, if possible. For example,
22 Report bugs to: tex-k@tug.org
23 TeX Live home page: <http://tug.org/texlive/>
26 # Common code for all scripts.
27 : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
28 : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
29 test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT
="$MT_TEXMFMAIN/web2c/mktex.opt"
30 if test ! -f "$MT_MKTEX_OPT"; then
31 echo "$progname: Cannot find mktex.opt; check your installation." >&2
38 # See comments in mktexpk.
39 name
="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`"
40 rootname
=`echo "$name" | sed 's/[0-9]*$//'`
41 pointsize
=`echo "$name" | sed "s/^$rootname//"`
43 sauterroot
=`kpsewhich b-$rootname.mf 2>/dev/null`
44 if test -n "$sauterroot"; then
49 # csso12[0-5][0-9] from CJK package; unsupported by mktexmf
54 cs
*|lcsss
*|icscsc
*|icstt
*|ilcsss
*)
55 rootfile
=`kpsewhich cscode.mf`;;
56 wn
[bcdfirstuv
]*|rx
[bcdfiorstuvx
][bcfhilmostx
]|l
[abcdhl
][bcdfiorstuvx
]*)
57 lhprefix
=`echo "$name" | sed 's/^\(..\).*/\1/'`
58 rootfile
=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
60 rootfile
=`kpsewhich $rootname.mf 2>/dev/null`;;
64 { test -z "$rootfile" ||
test ! -f "$rootfile"; } && exit 1
66 #if test -z "$MT_MFNAME"; then
68 set x
`"$MT_MKTEXNAM" $name`; shift
73 destdir
=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'`
74 test -d "$destdir" ||
"$MT_MKTEXDIR" "$destdir" ||
exit 1
75 cd "$destdir" ||
exit 1
78 "") echo "$progname: no pointsize."; exit 1;;
79 11) realsize
=10.95;; # \magstephalf
80 14) realsize
=14.4;; # \magstep2
81 17) realsize
=17.28;; # \magstep3
82 20) realsize
=20.74;; # \magstep4
83 25) realsize
=24.88;; # \magstep5
84 30) realsize
=29.86;; # \magstep6
85 36) realsize
=35.83;; # \magstep7
86 # The new convention is to have three or four letters for the
87 # font name and four digits for the pointsize. The number is
88 # pointsize * 100. We effectively divide by 100 by ignoring the
90 ????|?????
) realsize
=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;;
91 *) realsize
="$pointsize";;
95 if test -r "$mfname"; then
96 echo "$progname: $destdir/$mfname already exists."
97 echo "$destdir/$mfname" >$STDOUT
98 "$MT_MKTEXUPD" "$destdir" "$mfname"
104 cat > "mf$$.tmp" <<END
105 if unknown exbase: input exbase fi;
111 cat > "mf$$.tmp" <<END
112 if unknown dxbase: input dxbase fi;
117 cs
*|lcsss
*|icscsc
*|icstt
*|ilcsss
*)
118 cat > "mf$$.tmp" <<END
123 wn
[bcdfirstuv
]*|rx
[bcdfiorstuvx
][bcfhilmostx
]*|l
[abcdhl
][bcdfiorstuvx
]*)
124 cat > "mf$$.tmp" <<END
128 g
[lmorst
][bijmtwx
][cilnoru
]*)
129 # A small superset of the names of the cbgreek fonts.
130 cat > "mf$$.tmp" <<END
131 % generated by mktexmf
136 cat > "mf$$.tmp" <<END
137 design_size := $realsize;
143 chmod `kpsestat -xst,go-w .` "mf$$.tmp"
145 mv "mf$$.tmp" "$mfname"
147 echo "$destdir/$mfname" >$STDOUT
148 echo "$progname: $destdir/$mfname: successfully generated." >&2
149 "$MT_MKTEXUPD" "$destdir" "$mfname"