]> git.eshelyaron.com Git - emacs.git/commitdiff
(math-read-token): Separate the TeX and LaTeX parts.
authorJay Belanger <jay.p.belanger@gmail.com>
Mon, 31 Jan 2005 21:51:34 +0000 (21:51 +0000)
committerJay Belanger <jay.p.belanger@gmail.com>
Mon, 31 Jan 2005 21:51:34 +0000 (21:51 +0000)
lisp/calc/calc-aent.el

index 2b0cf9a004a74f12ffff8207fc7672630c54559a..9a693a184662330b35ad6dd23888fe9fcbb3c2b0 100644 (file)
@@ -746,7 +746,7 @@ in Calc algebraic input.")
               (setq math-exp-token 'string
                     math-expr-data (math-match-substring math-exp-str 1)
                     math-exp-pos (match-end 0))))
-           ((and (= ch ?\\) (memq calc-language '(tex latex))
+           ((and (= ch ?\\) (eq calc-language 'tex)
                  (< math-exp-pos (1- (length math-exp-str))))
             (or (string-match "\\\\hbox *{\\([a-zA-Z0-9]+\\)}" 
                                math-exp-str math-exp-pos)
@@ -756,6 +756,34 @@ in Calc algebraic input.")
                   math-exp-pos (match-end 0)
                   math-expr-data (math-restore-dashes
                             (math-match-substring math-exp-str 1)))
+            (let ((code (assoc math-expr-data math-latex-ignore-words)))
+              (cond ((null code))
+                    ((null (cdr code))
+                     (math-read-token))
+                    ((eq (nth 1 code) 'punc)
+                     (setq math-exp-token 'punc
+                           math-expr-data (nth 2 code)))
+                      ((and (eq (nth 1 code) 'mat)
+                            (string-match " *{" math-exp-str math-exp-pos))
+                     (setq math-exp-pos (match-end 0)
+                           math-exp-token 'punc
+                           math-expr-data "[")
+                     (let ((right (string-match "}" math-exp-str math-exp-pos)))
+                       (and right
+                            (setq math-exp-str (copy-sequence math-exp-str))
+                            (aset math-exp-str right ?\])))))))
+           ((and (= ch ?\\) (eq calc-language 'latex)
+                 (< math-exp-pos (1- (length math-exp-str))))
+            (or (string-match "\\\\hbox *{\\([a-zA-Z0-9]+\\)}" 
+                               math-exp-str math-exp-pos)
+                 (string-match "\\\\text *{\\([a-zA-Z0-9]+\\)}" 
+                               math-exp-str math-exp-pos)
+                (string-match "\\(\\\\\\([a-zA-Z]+\\|[^a-zA-Z]\\)\\)" 
+                               math-exp-str math-exp-pos))
+            (setq math-exp-token 'symbol
+                  math-exp-pos (match-end 0)
+                  math-expr-data (math-restore-dashes
+                            (math-match-substring math-exp-str 1)))
             (let ((code (assoc math-expr-data math-tex-ignore-words)))
               (cond ((null code))
                     ((null (cdr code))