diff options
Diffstat (limited to 'Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm')
-rw-r--r-- | Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm b/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm new file mode 100644 index 00000000000..1c2857b8d07 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm @@ -0,0 +1,151 @@ +#!/bin/sh +# mktextfm -- make a new TFM 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.) +# +# te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. +# Public domain. + +version='$Id: mktextfm,v 1.17 1998/02/16 08:56:13 olaf Exp $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname [--destdir DESTDIR] FONT. + +Makes a TFM file for FONT, if possible. Use DESTDIR for the root of where +to install into, either the absolute directory name to use (if it starts +with a /) or relative to the default DESTDIR (if not)." + +# Handle non-positional options, except for --version/--help +while test $# -gt 0; do + case "$1" in + --destdir) shift; DEST="$1"; shift ;; + --destdir=*) DEST="`echo \"$1\" | sed 's/--destdir=//'`"; shift ;; + --version|-version) break ;; + --help|-help) break ;; + *) break ;; + esac +done + +# 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" + +# start of redirection stdout -> stderr, stdin <- /dev/null +( + +NAME=`basename "$1" .tfm` +MAG=1 +#DEST="$2" +DPI=$BDPI + +OIFS=$IFS; IFS=$SEP +set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift +IFS=$OIFS + +PKDEST="$1" +TFMDEST="$2" +PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname +TFMDESTDIR=`echo "$TFMDEST" | sed 's%/[^/][^/]*$%%'` +PKNAME=`basename "$PKDEST"` +TFMNAME=$NAME.tfm +GFNAME=$NAME.$DPI'gf' + +if test -r "$TFMDESTDIR/$TFMNAME"; then + echo "$progname: $TFMDESTDIR/$TFMNAME already exists." >&2 + echo "$TFMDESTDIR/$TFMNAME" >$STDOUT + "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME + exit +fi + +# Try to create the destdir first. Do not create fonts, if this fails. +"$MT_MKTEXDIR" "$TFMDESTDIR" +if test ! -d "$TFMDESTDIR"; then + echo "$progname: mktexdir $TFMDESTDIR failed." + exit 1 +fi + +case "$NAME" in +cm*[+-][0-9]*|cs*[+-][0-9]*|vn*[+-][0-9]*) + BASE_MFNAME=`expr $NAME : '\(.*\)[+-][0-9]*$'` + EXPANSION=`expr $NAME : '.*\([+-][0-9]*\)$'` + echo "/^u#:=[0-9.]*\/[0-9.]*pt#;/a\\" > $NAME.sed + echo "u#:=u#$EXPANSION/1000u#;" >> $NAME.sed + sed -f $NAME.sed `kpsewhich $BASE_MFNAME.mf` > $NAME.mf + MFDESTDIR=`echo "$TFMDESTDIR" | sed 's%/tfm/%/source/%'` + "$MT_MKTEXDIR" "$MFDESTDIR" && mv -f $NAME.mf $MFDESTDIR + ;; +tq*[+-][0-9]*) + BASE_MFNAME=`expr $NAME : '\(.*\)[+-][0-9]*$'` + EXPANSION=`expr $NAME : '.*\([+-][0-9]*\)$'` + echo "expansion_ratio := $EXPANSION;" > $NAME.mf + echo "input $BASE_MFNAME.mf" >> $NAME.mf + MFDESTDIR=`echo "$TFMDESTDIR" | sed 's%/tfm/%/source/%'` + "$MT_MKTEXDIR" "$MFDESTDIR" && mv -f $NAME.mf $MFDESTDIR + ;; +*[+-][0-9]*) + EXPANSION_TAG=`expr $NAME : '.*\([+-][0-9]*\)$'` + ;; +esac + +if test "x$EXPANSION_TAG" = x; then +cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME.mf" +echo "$progname: Running $cmd" + +$cmd </dev/null || { + grep '^!' $NAME.log >$$.errs 2>/dev/null + grep '^! Strange path' $$.errs >$$.strange 2>/dev/null + if cmp $$.errs $$.strange >/dev/null 2>&1 \ + && test -s $$.strange >/dev/null 2>&1; then + echo "$progname: warning: \`$cmd' caused strange path errors." >&2 + else + echo "$progname: \`$cmd' failed." >&2 + test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT" + exit 1; + fi +} + +else +mktextfm.ext $NAME $TFMDESTDIR $STDOUT +exit 0 +fi + +test -r $TFMNAME || { echo "$progname: \`$cmd' failed to make $TFMNAME."; exit 1; } + +# Install the TFM file carefully, since others may be working simultaneously. +# Use cp when mv fails, since DOS will fail mv for deeply-nested directories. +mv $TFMNAME "$TFMDESTDIR/tfm$$.tmp" 2>/dev/null \ + || cp $TFMNAME "$TFMDESTDIR/tfm$$.tmp" || exit 1 +cd "$TFMDESTDIR" || exit 1 +chmod `kpsestat -xst,go-w .` tfm$$.tmp +test -r $TFMNAME || mv tfm$$.tmp $TFMNAME || exit 1 + +# OK, success with the TFM. +"$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME +echo "$TFMDESTDIR/$TFMNAME" >$STDOUT +echo "$progname: $TFMDESTDIR/$TFMNAME: successfully generated." >&2 + +# Since we probably made a GF(->PK) file, too, may as well install it if +# it's needed. +cd $TEMPDIR +if test -r $GFNAME && test ! -f "$PKDESTDIR/$PKNAME"; then + gftopk ./$GFNAME $PKNAME || exit 1 + "$MT_MKTEXDIR" "$PKDESTDIR" + mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ + || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 + cd "$PKDESTDIR" || exit 1 + if test -f $PKNAME; then + rm -f pk$$.tmp + else + chmod `kpsestat -xst,go-w .` pk$$.tmp + mv pk$$.tmp $PKNAME + "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + fi +fi +) 1>&2 </dev/null |