#!/bin/sh ### ==================================================================== ### @UNIX-shell-file{ ### author = "Ulrik Vieth", ### email = "vieth@thphy.uni-duesseldorf.de", ### filename = "mpt", ### version = "0.05", ### date = "29 January 1996", ### time = "02:28:37 MET", ### codetable = "ISO/ASCII", ### checksum = "21388 85 335 2331", ### keywords = "MFT, MetaPost, pretty-printing", ### supported = "yes", ### abstract = "", ### docstring = "", ### } ### ==================================================================== # # Process METAPOST sources with MFT, converting them to a form # suitable for MFT processing using a sed script if necessary. # # This file assumes that some standard Unix utilities like # echo, grep, sed, and basename are available. # # The source file (file.mp) is assumed to exist and to be found # in the current directory. The target file (file.mf) will be # overwritten if it already exists. It is necessary to use the # file extension `.mf' for the target file, since newer versions # of MFT might produce unpredictable file names otherwise. # # Usage: # # mpt file[.mp] # # Code: # if [ $# != 1 ]; then echo "Usage: mpt file[.mp]"; exit 1 fi # Standard Unix utilities: GREP=grep SED=sed # Standard TeXware/METAFONTware utiltities: MFT=mft # The SED script for preprocessing: MP2SED=mp2mft.sed #MP2SED=$TEXMF/mft/mp2mft.sed # The MFT style file (without .mft): MP2MFT=mp2 # The source and target files: # MPFILE=`basename $1 .mp`.mp MFFILE=`basename $1 .mp`.mf if [ ! -f "$MPFILE" -o ! -r "$MPFILE" ]; then echo "mpt: Can't read from source file \"$MPFILE\"!"; exit 1 fi if [ -f "$MFFILE" -a ! -w "$MFFILE" ]; then echo "mpt: Can't write to target file \"$MFFILE\"!"; exit 1 fi # Check if preprocessing $MPFILE with sed is needed: # $GREP "\(btex\|etex\|verbatimtex\)" $MPFILE > /dev/null case $? in 0) # there were matches, so convert it # $SED -f $MP2SED < $MPFILE > $MFFILE $MFT $MFFILE -s $MP2MFT exit 0 ;; 1) # there were no matches, so copy it # $SED $MPFILE $MFFILE $MFT $MPFILE -s $MP2MFT exit 0 ;; esac