You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
3.9 KiB
151 lines
3.9 KiB
#!/bin/sh
|
|
# original mktexmf -- make a new MF file, because one wasn't found.
|
|
#
|
|
# (If you change or delete the word `original' on the previous line,
|
|
# installation won't write this script over yours.)
|
|
#
|
|
# Originally written by Thomas Esser.
|
|
# Public domain.
|
|
|
|
version='$Id: mktexmf 53254 2019-12-29 19:18:55Z karl $'
|
|
|
|
# preferentially use subprograms from our own directory.
|
|
mydir=`echo "$0" | sed 's,/[^/]*$,,'`
|
|
mydir=`cd "$mydir" && pwd`
|
|
PATH="$mydir:$PATH"; export PATH
|
|
|
|
usage="Usage: $0 FONT.
|
|
|
|
Makes the Metafont source file for FONT, if possible. For example,
|
|
\`ecr12' or \`cmr11'.
|
|
|
|
Report bugs to: tex-k@tug.org
|
|
TeX Live home page: <http://tug.org/texlive/>
|
|
"
|
|
|
|
# Common code for all scripts.
|
|
: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
|
|
: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
|
|
test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
|
|
if test ! -f "$MT_MKTEX_OPT"; then
|
|
echo "$progname: Cannot find mktex.opt; check your installation." >&2
|
|
exit 1
|
|
fi
|
|
|
|
. "$MT_MKTEX_OPT"
|
|
|
|
(
|
|
# See comments in mktexpk.
|
|
name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`"
|
|
rootname=`echo "$name" | sed 's/[0-9]*$//'`
|
|
pointsize=`echo "$name" | sed "s/^$rootname//"`
|
|
|
|
sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null`
|
|
if test -n "$sauterroot"; then
|
|
rootfile=$sauterroot
|
|
rootname=b-$rootname
|
|
else
|
|
case $name in
|
|
# csso12[0-5][0-9] from CJK package; unsupported by mktexmf
|
|
csso12[0-5][0-9])
|
|
rootfile=;;
|
|
*)
|
|
case $rootname in
|
|
cs*|lcsss*|icscsc*|icstt*|ilcsss*)
|
|
rootfile=`kpsewhich cscode.mf`;;
|
|
wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abcdhl][bcdfiorstuvx]*)
|
|
lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'`
|
|
rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
|
|
*)
|
|
rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
|
|
esac;;
|
|
esac
|
|
fi
|
|
{ test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1
|
|
|
|
#if test -z "$MT_MFNAME"; then
|
|
OIFS=$IFS; IFS=$SEP
|
|
set x `"$MT_MKTEXNAM" $name`; shift
|
|
IFS=$OIFS
|
|
MT_MFNAME="$3"
|
|
#fi
|
|
|
|
destdir=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'`
|
|
test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1
|
|
cd "$destdir" || exit 1
|
|
|
|
case "$pointsize" in
|
|
"") echo "$progname: no pointsize."; exit 1;;
|
|
11) realsize=10.95;; # \magstephalf
|
|
14) realsize=14.4;; # \magstep2
|
|
17) realsize=17.28;; # \magstep3
|
|
20) realsize=20.74;; # \magstep4
|
|
25) realsize=24.88;; # \magstep5
|
|
30) realsize=29.86;; # \magstep6
|
|
36) realsize=35.83;; # \magstep7
|
|
# The new convention is to have three or four letters for the
|
|
# font name and four digits for the pointsize. The number is
|
|
# pointsize * 100. We effectively divide by 100 by ignoring the
|
|
# last two digits.
|
|
????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;;
|
|
*) realsize="$pointsize";;
|
|
esac
|
|
|
|
mfname="$name.mf"
|
|
if test -r "$mfname"; then
|
|
echo "$progname: $destdir/$mfname already exists."
|
|
echo "$destdir/$mfname" >$STDOUT
|
|
"$MT_MKTEXUPD" "$destdir" "$mfname"
|
|
exit 0
|
|
fi
|
|
|
|
case "$name" in
|
|
ec*|tc*)
|
|
cat > "mf$$.tmp" <<END
|
|
if unknown exbase: input exbase fi;
|
|
gensize:=$realsize;
|
|
generate $rootname;
|
|
END
|
|
;;
|
|
dc*)
|
|
cat > "mf$$.tmp" <<END
|
|
if unknown dxbase: input dxbase fi;
|
|
gensize:=$realsize;
|
|
generate $rootname;
|
|
END
|
|
;;
|
|
cs*|lcsss*|icscsc*|icstt*|ilcsss*)
|
|
cat > "mf$$.tmp" <<END
|
|
input cscode
|
|
use_driver;
|
|
END
|
|
;;
|
|
wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]*|l[abcdhl][bcdfiorstuvx]*)
|
|
cat > "mf$$.tmp" <<END
|
|
input fikparm;
|
|
END
|
|
;;
|
|
g[lmorst][bijmtwx][cilnoru]*)
|
|
# A small superset of the names of the cbgreek fonts.
|
|
cat > "mf$$.tmp" <<END
|
|
% generated by mktexmf
|
|
input cbgreek;
|
|
END
|
|
;;
|
|
*)
|
|
cat > "mf$$.tmp" <<END
|
|
design_size := $realsize;
|
|
input $rootname;
|
|
END
|
|
;;
|
|
esac
|
|
|
|
chmod `kpsestat -xst,go-w .` "mf$$.tmp"
|
|
rm -f "$mfname"
|
|
mv "mf$$.tmp" "$mfname"
|
|
|
|
echo "$destdir/$mfname" >$STDOUT
|
|
echo "$progname: $destdir/$mfname: successfully generated." >&2
|
|
"$MT_MKTEXUPD" "$destdir" "$mfname"
|
|
exit 0
|
|
) 1>&2 </dev/null
|
|
|