Date UT
[elisp/mu-cite.git] / latex-math-symbol.el
index b8970ef..d5dd915 100644 (file)
@@ -1,11 +1,11 @@
 ;;; latex-math-symbol.el --- LaTeX math symbol decoder
 
-;; Copyright (C) 1996 MORIOKA Tomohiko
+;; Copyright (C) 1996,1997 MORIOKA Tomohiko
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1996/7/1
 ;; Version:
-;;    $Id: latex-math-symbol.el,v 1.2 1996/09/02 16:03:43 morioka Exp $
+;;    $Id: latex-math-symbol.el,v 1.3 1997/01/14 11:30:27 morioka Exp morioka $
 ;; Keywords: LaTeX, math, mule
 
 ;; This file is part of MU (Message Utilities).
@@ -21,9 +21,9 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 ;;; Code:
 
 (defvar latex-math-symbol-table-alist
-  '(("\\pi"            . "\e$B&P\e(B")
+  '(("\\alpha"         . "\e,Fa\e(B")
+    ("\\beta"          . "\e,Fb\e(B")
+    ("\\gamma"         . "\e,Fc\e(B")("\\Gamma"  . "\e$B&#\e(B")
+    ("\\delta"         . "\e,Fd\e(B")("\\Delta"  . "\e$B&$\e(B")
+    ("\\epsilon"       . "\e,Fe\e(B")("\\varepsilon"     . "\e$B&E\e(B")
+    ("\\zeta"          . "\e,Ff\e(B")
+    ("\\eta"           . "\e,Fg\e(B")
+    ("\\theta"         . "\e,Fh\e(B")("\\Theta"  . "\e$B&(\e(B")
+    ("\\iota"          . "\e,Fi\e(B")
+    ("\\kappa"         . "\e,Fj\e(B")
+    ("\\lambda"                . "\e,Fk\e(B")("\\Lambda" . "\e$B&+\e(B")
+    ("\\mu"            . "\e,Fl\e(B")
+    ("\\nu"            . "\e,Fm\e(B")
+    ("\\xi"            . "\e,Fn\e(B")("\\Xi"             . "\e$B&.\e(B")
+    ("\\pi"            . "\e,Fp\e(B")("\\Pi"             . "\e$B&0\e(B")
+    ("\\rho"           . "\e,Fq\e(B")
+    ("\\sigma"         . "\e,Fs\e(B")("\\Sigma"  . "\e$B&2\e(B")
+    ("\\varsigma"      . "\e,Fr\e(B")
+    ("\\tau"           . "\e,Ft\e(B")
+    ("\\upsilon"       . "\e,Fu\e(B")("\\Upsilon"        . "\e$B&4\e(B")
+    ("\\phi"           . "\e$B&U\e(B")("\\Phi"           . "\e$B&5\e(B")
+    ("\\varphi"                . "\e,Fv\e(B")
+    ("\\chi"           . "\e,Fw\e(B")
+    ("\\psi"           . "\e,Fx\e(B")("\\Psi"            . "\e$B&7\e(B")
+    ("\\omega"         . "\e,Fy\e(B")("\\Omega"  . "\e$B&8\e(B")
     
     ("\\{"             . "\e$B!P\e(B")("\\}"             . "\e$B!Q\e(B")
+    ("\\langle\\!\\langle" . "\e$B!T\e(B")("\\rangle\\!\\rangle" . "\e$B!U\e(B")
+    ("\\langle"                . "\e$B!R\e(B")("\\rangle"        . "\e$B!S\e(B")
     
+    ("\\cdots"         . "\e$B!D\e(B")
+    
+    ("\\ln"            . "\e$(G"L\e(B")
+    ("\\log"           . "\e$(G"K\e(B")
+    
+    ("\\pm"            . "\e$B!^\e(B")
     ("\\cdot"          . "\e$B!&\e(B")
-    ("\\times"         . "\e$B!_\e(B")
+    ("\\times"         . "\e$B!_\e(B")("\\ast"           . "\e$B!v\e(B")
+    ("\\star"          . "\e$B!z\e(B")
+    ("\\bullet"                . "\e$B!&\e(B")
+    ("\\div"           . "\e$B!`\e(B")
     ("\\cap"           . "\e$B"A\e(B")("\\cup"           . "\e$B"@\e(B")
+    ("\\lhd"           . "\e$(C"7\e(B")("\\rhd"          . "\e$(C"9\e(B")
+    ("\\bigcirc"       . "\e$B"~\e(B")
+    ("\\vee"           . "\e$B"K\e(B")("\\lor"           . "\e$B"K\e(B")
+    ("\\wedge"         . "\e$B"J\e(B")("\\land"  . "\e$B"J\e(B")
+    ("\\oplus"         . "\e$(G"S\e(B")
+    ("\\odot"          . "\e$(G"T\e(B")
+    ("\\dagger"                . "\e$B"w\e(B")("\\ddagger"       . "\e$B"x\e(B")
     
     ("\\leq"           . "\e$(C!B\e(B")("\\geq"          . "\e$(C!C\e(B")
     ("\\le"            . "\e$(C!B\e(B")("\\ge"           . "\e$(C!C\e(B")
+    ("\\ll"            . "\e$B"c\e(B")("\\gg"            . "\e$B"d\e(B")
     ("\\subseteq"      . "\e$B"<\e(B")("\\supseteq"      . "\e$B"=\e(B")
     ("\\subset"                . "\e$B">\e(B")("\\supset"        . "\e$B"?\e(B")
-    ("\\in"            . "\e$B":\e(B")("\\ni"            . "\e$B";\e(B")
-    ("\\mid"           . "\e$B!C\e(B")
+    ("\\in"            . "\e$B":\e(B")
+    ("\\ni"            . "\e$B";\e(B")("\\owns"  . "\e$B";\e(B")
+    ("\\frown"         . "\e$B"^\e(B")
+    ("\\mid"           . "\e$B!C\e(B")("\\parallel"      . "\e$B!B\e(B")
+    ("\\sim"           . "\e$B!A\e(B")
+    ("\\equiv"         . "\e$B"a\e(B")
+    ("\\approx"                . "\e$A!V\e(B")
+    ("\\not="          . "\e$B!b\e(B")
     ("\\neq"           . "\e$B!b\e(B")("\\ne"            . "\e$B!b\e(B")
+    ("\\perp"          . "\e$B"]\e(B")
+    
+    ("\\triangleup"    . "\e$B"$\e(B")
+    ("\\forall"                . "\e$B"O\e(B")
     
+    ("\\hbar"          . "\e,C1\e(B")("\\imath"  . "\e,C9\e(B")
+    ("\\ell"           . "\e$(C'$\e(B")
+    ("\\partial"       . "\e$B"_\e(B")
+    ("\\infty"         . "\e$B!g\e(B")
+    ("\\smallint"      . "\e$B"i\e(B")
+    ("\\P"             . "\e$B"y\e(B")
+    ("\\prime"         . "\e$B!l\e(B")
+    ("\\nabla"         . "\e$B"`\e(B")
+    ("\\top"           . "\e$(D0#\e(B")("\\bot"          . "\e$(D0"\e(B")
+    ("\\vert"          . "\e$B!C\e(B")("\\Vert"  . "\e$B!B\e(B")
+    ("\\angle"         . "\e$B"\\e(B")
+    ("\\triangle"      . "\e$B"$\e(B")
+    ("\\backslash"     . "\e$B!@\e(B")
+    ("\\S"             . "\e$B!x\e(B")
     ("\\forall"                . "\e$B"O\e(B")
+    ("\\exists"                . "\e$B"P\e(B")
+    ("\\neg"           . "\e$B"L\e(B")("\\lnot"  . "\e$B"L\e(B")
+    ("\\flat"          . "\e$B"u\e(B")("\\sharp" . "\e$B"t\e(B")
+    ("\\clubsuit"      . "\e$(C"@\e(B")
+    ("\\diamondsuit"   . "\e$B!~\e(B")
+    ("\\heartsuit"     . "\e$(C"=\e(B")
+    ("\\spadesuit"     . "\e$(C"<\e(B")
     
     ("\\leftarrow"     . "\e$B"+\e(B")("\\rightarrow"    . "\e$B"*\e(B")
     ("\\gets"          . "\e$B"+\e(B")("\\to"            . "\e$B"*\e(B")
     
-    ("^1"              . "\e,A9\e(B")
-    ("^2"              . "\e,A2\e(B")
-    ("^3"              . "\e,A3\e(B")
+    ("^1"              . "\e,A9\e(B")("^{1}"             . "\e,A9\e(B")
+    ("^2"              . "\e,A2\e(B")("^{2}"             . "\e,A2\e(B")
+    ("^3"              . "\e,A3\e(B")("^{3}"             . "\e,A3\e(B")
+    ("^4"              . "\e$(C)y\e(B")("^{4}"           . "\e$(C)y\e(B")
+    ("^n"              . "\e$(C)z\e(B")("^{n}"           . "\e$(C)z\e(B")
+    ("_1"              . "\e$(C){\e(B")("_{1}"           . "\e$(C){\e(B")
+    ("_2"              . "\e$(C)|\e(B")("_{2}"           . "\e$(C)|\e(B")
+    ("_3"              . "\e$(C)}\e(B")("_{3}"           . "\e$(C)}\e(B")
+    ("_4"              . "\e$(C)~\e(B")("_{4}"           . "\e$(C)~\e(B")
     ))
 
+;;;###autoload
 (defun latex-math-decode-region (beg end)
   (interactive "r")
   (save-restriction
     (narrow-to-region beg end)
     (let ((rest latex-math-symbol-table-alist)
+         (case-fold-search nil)
          cell)
       (while rest
        (setq cell (car rest))
        (goto-char beg)
-       (while (search-forward (car cell) nil t)
-         (replace-match (cdr cell))
+       (while (re-search-forward
+               (concat "\\("
+                       (regexp-quote (car cell))
+                       "\\)\\([^a-zA-Z]\\|$\\)")
+               nil t)
+         (delete-region (match-beginning 1)(match-end 1))
+         (goto-char (match-beginning 0))
+         (insert (cdr cell))
          )
        (setq rest (cdr rest))
        ))))
 
+;;;###autoload
 (defun latex-math-decode-buffer ()
   (interactive)
   (latex-math-decode-region (point-min)(point-max))