]> code.delx.au - gnu-emacs/blobdiff - lisp/calc/calc-aent.el
(math-read-token): Read LaTeX matrices.
[gnu-emacs] / lisp / calc / calc-aent.el
index bf4f5c382e7b6f7768765d3c84b2dc0be5b6ced6..49aae82a950665005112f134794a07812688836e 100644 (file)
@@ -763,8 +763,22 @@ in Calc algebraic input.")
                     ((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))
+                     ((and (eq (nth 1 code) 'begenv)
+                           (string-match " *{\\([^}]*\\)}" math-exp-str math-exp-pos))
+                      (setq math-exp-pos (match-end 0)
+                            envname (match-string 1 math-exp-str)
+                            math-exp-token 'punc
+                            math-expr-data "[")
+                      (cond ((or (string= envname "matrix")
+                                 (string= envname "bmatrix")
+                                 (string= envname "pmatrix"))
+                             (if (setq j (string-match (concat "\\\\end{" envname "}")
+                                               math-exp-str math-exp-pos))
+                                 (setq math-exp-str 
+                                       (replace-match "]" t t math-exp-str))
+                               (error "%s" (concat "No closing \\end{" envname "}"))))))
+                      ((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 "[")