#!/bin/sh

# "mifch_la"	P. C. Hsu, K. J. Turner	04/05/97

# Translate FrameMaker characters into their LaTeX equivalent. The file is
# broken up into a number of translations since some versions of "sed" have a
# limit on the number of commands. The translation has not been fully
# debugged.

prog="`basename $0`"
tmpfile="/tmp/$prog$$"

if [ $# -eq 0 ]
  then
    infile=""
  else
    if [ $# -ne 1 ]
      then
        echo "usage: $prog [file]"
	exit 1
      else
        infile="$1"
    fi
fi

sed '
:RtnTab
/\\HardReturn }/{
  s//}\\HardReturn /
  b RtnTab
}
/\\Tab }/{
  s//}\\Tab /
  b RtnTab
}
s/\\\*/\$\\backslash\$/g
s/\\>/>/g
s/#/\\#/g
s/~/\\~/g
s/%/\\%/g
s/\\%\\%/%/g
s/&/\\&/g
s/_/\\_\\,/g
s/\\_\\,\\_\\,/_/g
s/\^/\\^{}/g
s/\\And /\& /g
s/\\Bullet /\$\\bullet\$/g
s/\\Cent /\$\\not c\$/g
s/\\Dagger /\$\\dagger\$/g
s/\\DiscHyphen /\\-/g
s/\\DoubleDagger /\$\\ddagger\$/g
s/\\EmDash /---/g
s/\\EnDash /--/g
s/\\EnSpace /\;/g
s/\\HardReturn /\\\\\
/g
s/\\HardSpace /~/g
s/\\NoHyphen //g
s/\\NumberSpace /\:/g
s/\\Pound /\$\\pounds\$/g
s/\\SoftHyphen //g
s/\\Tab /\\>/g
s/\\ThinSpace /\,/g
s/\\Yen /Yen/g
s/{\\\([a-zA-Z][a-zA-Z]*\)   */ {\\\1 /g
' $infile | sed '
s/\\X41 /A/g
s/\\X42 /B/g
s/\\X43 /X/g
s/\\X44 /\$\\Delta\$/g
s/\\X45 /E/g
s/\\X46 /\$\\Phi\$/g
s/\\X47 /\$\\Gamma\$/g
s/\\X48 /H/g
s/\\X49 /I/g
s/\\X4a /\$\\vartheta\$/g
s/\\X4b /K/g
s/\\X4c /\$\\Lambda\$/g
s/\\X4d /M/g
s/\\X4e /N/g
s/\\X4f /O/g
s/\\X50 /\$\\Pi\$/g
s/\\X51 /\$\\Theta\$/g
s/\\X52 /P/g
s/\\X53 /\$\\Sigma\$/g
s/\\X54 /T/g
s/\\X55 /\$\\Upsilon\$/g
s/\\X56 /\$\\varsigma\$/g
s/\\X57 /\$\\Omega\$/g
s/\\X58 /\$\\Xi\$/g
s/\\X59 /\$\\Psi\$/g
s/\\X5a /Z/g
s/\\X5b /\$[$/g
s/\\X5c /therefore/g
s/\\X5d /\$]$/g
s/\\X5e /\$\\perp\$/g
s/\\X61 /\$\\alpha\$/g
s/\\X62 /\$\\beta\$/g
s/\\X63 /\$\\chi\$/g
s/\\X64 /\$\\delta\$/g
s/\\X65 /\$\\epsilon\$/g
s/\\X66 /\$\\phi\$/g
s/\\X67 /\$\\gamma\$/g
s/\\X68 /\$\\eta\$/g
s/\\X69 /\$\\iota\$/g
s/\\X6a /\$\\varphi\$/g
s/\\X6b /\$\\kappa\$/g
s/\\X6c /\$\\lambda\$/g
s/\\X6d /\$\\mu\$/g
s/\\X6e /\$\\nu\$/g
s/\\X6f /\$\\omicron\$/g
s/\\X70 /\$\\pi\$/g
s/\\X71 /\$\\theta\$/g
s/\\X72 /\$\\rho\$/g
s/\\X73 /\$\\sigma\$/g
s/\\X74 /\$\\tau\$/g
s/\\X75 /Y/g
s/\\X76 /\$\\varpi\$/g
s/\\X77 /\$\\omega\$/g
s/\\X78 /\$\\xi\$/g
s/\\X79 /\$\\psi\$/g
s/\\X7a /\$\\zeta\$/g
s/\\X7b /\$\{$/g
s/\\X7c /\$|$/g
s/\\X7d /\$\}$/g
s/\\X7e /\$\\sim\$/g
' | sed '
s/\\Xa1 /\$\\upsilon\$/g
s/\\Xa2 /\$'"'"'$/g
s/\\Xa3 /\$\\leq\$/g
s/\\Xa4 /\$\/\$/g
s/\\Xa5 /\$\\infty\$/g
s/\\Xa6 /f/g
s/\\Xa7 /\$\\clubsuit\$/g
s/\\Xa8 /\$\\diamondsuit\$/g
s/\\Xa9 /\$\\heartsuit\$/g
s/\\Xaa /\$\\spadesuit\$/g
s/\\Xab /\$\\leftrightarrow\$/g
s/\\Xac /\$\\leftarrow\$/g
s/\\Xad /\$\\uparrow\$/g
s/\\Xae /\$\\rightarrow\$/g
s/\\Xaf /\$\\downarrow\$/g
s/\\Xb0 /\$\\deg\$/g
s/\\Xb1 /\$\\pm\$/g
s/\\Xb2 /\$'"''"'$/g
s/\\Xb3 /\$\\geq\$/g
s/\\Xb4 /\$\\times\$/g
s/\\Xb5 /\$\\propto\$/g
s/\\Xb6 /\$\\partial\$/g
s/\\Xb7 /\$\\bullet\$/g
s/\\Xb8 /\$\\div\$/g
s/\\Xb9 /\$\\neq\$/g
s/\\Xba /\$\\equiv\$/g
s/\\Xbb /\$\\approx\$/g
s/\\Xbc /\\ldots/g
s/\\Xbd /\$|\$/g
s/\\Xbe /---/g
s/\\Xbf /return/g
s/\\Xc0 /\$\\aleph\$/g
s/\\Xc1 /\$\\Im\$/g
s/\\Xc2 /\$\\Re\$/g
s/\\Xc3 /\$\\wp\$/g
s/\\Xc4 /\$\\otimes\$/g
s/\\Xc5 /\$\\oplus\$/g
s/\\Xc6 /\$\\emptyset\$/g
s/\\Xc7 /\$\\cap\$/g
s/\\Xc8 /\$\\cup\$/g
s/\\Xc9 /\$\\supset\$/g
s/\\Xca /\$\\supseteq\$/g
s/\\Xcb /\$\\not\\subset\$/g
s/\\Xcc /\$\\subset\$/g
s/\\Xcd /\$\\subseteq\$/g
s/\\Xce /\$\\in\$/g
s/\\Xcf /\$\\not\\in\$/g
s/\\Xd0 /\$\\angle\$/g
s/\\Xd1 /\$\\nabla\$/g
s/\\Xd2 /registered/g
s/\\Xd3 /\\copyright/g
s/\\Xd4 /\$^{TM}$/g
s/\\Xd5 /\$\\prod\$/g
s/\\Xd6 /\$\\surd\$/g
s/\\Xd7 /\$\\cdot\$/g
s/\\Xd8 /\$\\neg\$/g
s/\\Xd9 /\$\\wedge\$/g
s/\\Xda /\$\\vee\$/g
s/\\Xdb /\$\\Leftrightarrow\$/g
s/\\Xdc /\$\\Leftarrow\$/g
s/\\Xdd /\$\\Uparrow\$/g
s/\\Xde /\$\\Rightarrow\$/g
s/\\Xdf /\$\\Downarrow\$/g
s/\\Xe0 /\$\\Diamond\$/g
s/\\Xe1 /\$\\langle\$/g
s/\\Xe2 /registered/g
s/\\Xe3 /\\copyright/g
s/\\Xe4 /\$^{TM}$/g
s/\\Xe5 /\$\\sum\$/g
s/\\Xe6 /paren_left_top/g
s/\\Xe7 /\$|\$/g
s/\\Xe8 /paren_left_bot/g
s/\\Xe9 /\$\\lceil\$/g
s/\\Xea /\$|\$/g
s/\\Xeb /\$\\lfloor\$/g
s/\\Xec /brace_left_top/g
s/\\Xed /brace_left_mid/g
s/\\Xee /brace_left_bot/g
s/\\Xef /\$|\$/g
s/\\Xf1 /\$\\rangle\$/g
s/\\Xf2 /\$\\int\$/g
s/\\Xf3 /integ_top/g
s/\\Xf4 /\$|\$/g
s/\\Xf5 /integ_bot/g
s/\\Xf6 /paren_right_top/g
s/\\Xf7 /\$|\$/g
s/\\Xf8 /paren_right_bot/g
s/\\Xf9 /\$\\rceil\$/g
s/\\Xfa /\$|\$/g
s/\\Xfb /\$\\rfloor\$/g
s/\\Xfc /brace_right_top/g
s/\\Xfd /brace_right_mid/g
s/\\Xfe /brace_right_bot/g
' | sed '
s/\\x80 /\\"{A}/g
s/\\x81 /\\AA /g
s/\\x82 /\\c{C}/g
s/\\x83 /\\'"'"'{E}/g
s/\\x84 /\\~{N}/g
s/\\x85 /\\"{O}/g
s/\\x86 /\\"{U}/g
s/\\x87 /\\'"'"'{a}/g
s/\\x88 /\\`{a}/g
s/\\x89 /\\^{a}/g
s/\\x8a /\\"{a}/g
s/\\x8b /\\~{a}/g
s/\\x8c /\\aa /g
s/\\x8d /\\c{c}/g
s/\\x8e /\\'"'"'{e}/g
s/\\x8f /\\`{e}/g
s/\\x90 /\\^{e}/g
s/\\x91 /\\"{e}/g
s/\\x92 /\\'"'"'{i}/g
s/\\x93 /\\`{i}/g
s/\\x94 /\\^{i}/g
s/\\x95 /\\"{i}/g
s/\\x96 /\\~{n}/g
s/\\x97 /\\'"'"'{o}/g
s/\\x98 /\\`{o}/g
s/\\x99 /\\^{o}/g
s/\\x9a /\\"{o}/g
s/\\x9b /\\~{o}/g
s/\\x9c /\\'"'"'{u}/g
s/\\x9d /\\`{u}/g
s/\\x9e /\\^{u}/g
s/\\x9f /\\"{u}/g
s/\\xa4 /\\S/g
s/\\xa6 /\\P/g
s/\\xa7 /\\ss/g
s/\\xa9 /\\copyright/g
s/\\xaa /\$^{TM}$/g
s/\\xab /'"'"'/g
s/\\xac /\\"{}/g
s/\\xae /\\AE/g
s/\\xaf /{\\O}/g
s/\\xbb /\\b{a}/g
s/\\xbc /\\b{o}/g
s/\\xbe /{\\ae}/g
s/\\xbf /{\\o}/g
s/\\xc0 /?`/g
s/\\xc1 /!`/g
s/\\xc2 /\$\\neg\$/g
s/\\xc4 /\$f\$/g
s/\\xc7 /\$\\ll\$/g
s/\\xc8 /\$\\gg\$/g
s/\\xc9 /\$\\ldots\$/g
s/\\xcb /\\`{A}/g
s/\\xcc /\\~{A}/g
s/\\xcd /\\~{O}/g
s/\\xce /\\0E/g
s/\\xcf /\\oe/g
s/\\xd0 /--/g
s/\\xd1 /---/g
s/\\xd2 /``/g
s/\\xd3 /"/g
s/\\xd4 /`/g
s/\\xd5 /'"'"'/g
s/\\xd8 /\\"{y}/g
s/\\xd9 /\\"{Y}/g
s/\\xda /\//g
s/\\xdc /\$<\$/g
s/\\xdd /\$>\$/g
s/\\xde /fi/g
s/\\xdf /fl/g
s/\\xe1 /\$\\cdot\$/g
s/\\xe2 /,/g
s/\\xe3 /\$_{"}\$/g
s/\\xe4 /\$_{o}\$/g
s/\\xe5 /\\^{A}/g
s/\\xe6 /\\^{E}/g
s/\\xe7 /\\'"'"'{A}/g
s/\\xe8 /\\"{E}/g
s/\\xe9 /\\`{E}/g
s/\\xea /\\'"'"'{I}/g
s/\\xeb /\\^{I}/g
s/\\xec /\\"{I}/g
s/\\xed /\\`{I}/g
s/\\xee /\\'"'"'{O}/g
s/\\xef /\\^{O}/g
s/\\xf1 /\\`{O}/g
s/\\xf2 /\\'"'"'{U}/g
s/\\xf3 /\\^{U}/g
s/\\xf4 /\\`{U}/g
s/\\xf5 /\\i/g
s/\\xf6 /\\^{}/g
s/\\xf7 /\$^{~}$/g
s/\\xf8 /\$^{-}$/g
s/\\xfa /\$^{.}$/g
s/\\xfb /\$^{o}$/g
s/\\xfc /\\c{}/g
s/\\xfd /\$'"'"''"'"'$/g
s/  *}/} /g
'> $tmpfile

if [ $# -eq 0 ]
  then cat $tmpfile
  else mv $tmpfile $infile
fi

exit 0
