emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/calc/calc-lang.el


From: Jay Belanger
Subject: [Emacs-diffs] Changes to emacs/lisp/calc/calc-lang.el
Date: Mon, 31 Jan 2005 01:25:17 -0500

Index: emacs/lisp/calc/calc-lang.el
diff -c emacs/lisp/calc/calc-lang.el:1.11 emacs/lisp/calc/calc-lang.el:1.12
*** emacs/lisp/calc/calc-lang.el:1.11   Tue Nov 30 17:14:06 2004
--- emacs/lisp/calc/calc-lang.el        Mon Jan 31 06:25:17 2005
***************
*** 36,41 ****
--- 36,42 ----
  (defun calc-set-language (lang &optional option no-refresh)
    (setq math-expr-opers (or (get lang 'math-oper-table) math-standard-opers)
        math-expr-function-mapping (get lang 'math-function-table)
+       math-expr-special-function-mapping (get lang 
'math-special-function-table)
        math-expr-variable-mapping (get lang 'math-variable-table)
        calc-language-input-filter (get lang 'math-input-filter)
        calc-language-output-filter (get lang 'math-output-filter)
***************
*** 296,301 ****
--- 297,322 ----
                  "TeX language mode with \\func{\\hbox{var}}")
              "TeX language mode"))))
  
+ (defun calc-latex-language (n)
+   (interactive "P")
+   (calc-wrapper
+    (and n (setq n (prefix-numeric-value n)))
+    (calc-set-language 'latex n)
+    (cond ((not n)
+           (message "LaTeX language mode"))
+          ((= n 0)
+           (message "LaTeX language mode with multiline matrices"))
+          ((= n 1)
+           (message "LaTeX language mode with \\text{func}(\\text{var})"))
+          ((> n 1)
+           (message 
+            "LaTeX language mode with \\text{func}(\\text{var}) and multiline 
matrices"))
+          ((= n -1)
+           (message "LaTeX language mode with \\func(\\text{var})"))
+          ((< n -1)
+           (message 
+            "LaTeX language mode with \\func(\\text{var}) and multiline 
matrices")))))
+ 
  (put 'tex 'math-oper-table
    '( ( "u+"       ident                  -1 1000 )
       ( "u-"       neg            -1 1000 )
***************
*** 406,411 ****
--- 427,578 ----
    str)
  (put 'tex 'math-input-filter 'math-tex-input-filter)
  
+ (put 'latex 'math-oper-table
+   '( ( "u+"       ident                  -1 1000 )
+      ( "u-"       neg            -1 1000 )
+      ( "\\hat"    calcFunc-hat     -1  950 )
+      ( "\\check"  calcFunc-check   -1  950 )
+      ( "\\tilde"  calcFunc-tilde   -1  950 )
+      ( "\\acute"  calcFunc-acute   -1  950 )
+      ( "\\grave"  calcFunc-grave   -1  950 )
+      ( "\\dot"    calcFunc-dot     -1  950 )
+      ( "\\ddot"   calcFunc-dotdot  -1  950 )
+      ( "\\breve"  calcFunc-breve   -1  950 )
+      ( "\\bar"    calcFunc-bar     -1  950 )
+      ( "\\vec"    calcFunc-Vec     -1  950 )
+      ( "\\underline" calcFunc-under -1  950 )
+      ( "\\Hat"    calcFunc-Hat     -1  950 )
+      ( "\\Check"  calcFunc-Check   -1  950 )
+      ( "\\Tilde"  calcFunc-Tilde   -1  950 )
+      ( "\\Acute"  calcFunc-Acute   -1  950 )
+      ( "\\Grave"  calcFunc-Grave   -1  950 )
+      ( "\\Dot"    calcFunc-Dot     -1  950 )
+      ( "\\Ddot"   calcFunc-Dotdot  -1  950 )
+      ( "\\Breve"  calcFunc-Breve   -1  950 )
+      ( "\\Bar"    calcFunc-Bar     -1  950 )
+      ( "\\Vec"    calcFunc-VEC     -1  950 )
+      ( "\\dddot"  calcFunc-dddot   -1  950 )
+      ( "\\ddddot" calcFunc-ddddot  -1  950 )
+      ( "u|"       calcFunc-abs           -1    0 )
+      ( "|"        closing         0   -1 )
+      ( "\\lfloor" calcFunc-floor   -1    0 )
+      ( "\\rfloor" closing           0   -1 )
+      ( "\\lceil"  calcFunc-ceil    -1    0 )
+      ( "\\rceil"  closing           0   -1 )
+      ( "\\pm"   sdev             300 300 )
+      ( "!"        calcFunc-fact          210  -1 )
+      ( "^"      ^                201 200 )
+      ( "_"      calcFunc-subscr  201 200 )
+      ( "\\times"  *              191 190 )
+      ( "*"        *              191 190 )
+      ( "2x"     *                191 190 )
+      ( "+"      +                180 181 )
+      ( "-"      -                180 181 )
+      ( "\\over"         /                170 171 )
+      ( "/"      /                170 171 )
+      ( "\div"     /                170 171 )
+      ( "\\choose" calcFunc-choose  170 171 )
+      ( "\\mod"          %                170 171 )
+      ( "<"      calcFunc-lt      160 161 )
+      ( ">"      calcFunc-gt      160 161 )
+      ( "\\leq"          calcFunc-leq     160 161 )
+      ( "\\le"           calcFunc-leq     160 161 )
+      ( "\\leqq"         calcFunc-leq     160 161 )
+      ( "\\leqsland" calcFunc-leq   160 161 )
+      ( "\\geq"          calcFunc-geq     160 161 )
+      ( "\\ge"   calcFunc-geq     160 161 )
+      ( "\\geqq"         calcFunc-geq     160 161 )
+      ( "\\geqslant" calcFunc-geq   160 161 )
+      ( "="      calcFunc-eq      160 161 )
+      ( "\\neq"          calcFunc-neq     160 161 )
+      ( "\\ne"   calcFunc-neq     160 161 )
+      ( "\\lnot"   calcFunc-lnot     -1 121 )
+      ( "\\land"         calcFunc-land    110 111 )
+      ( "\\lor"          calcFunc-lor     100 101 )
+      ( "?"      (math-read-if)    91  90 )
+      ( "!!!"    calcFunc-pnot     -1  85 )
+      ( "&&&"    calcFunc-pand     80  81 )
+      ( "|||"    calcFunc-por      75  76 )
+      ( "\\gets"         calcFunc-assign   51  50 )
+      ( ":="     calcFunc-assign   51  50 )
+      ( "::"       calcFunc-condition 45 46 )
+      ( "\\to"   calcFunc-evalto   40  41 )
+      ( "\\to"   calcFunc-evalto   40  -1 )
+      ( "=>"     calcFunc-evalto   40  41 )
+      ( "=>"     calcFunc-evalto   40  -1 )))
+ 
+ (put 'latex 'math-function-table
+   '( ( \\arccos          . calcFunc-arccos )
+      ( \\arcsin          . calcFunc-arcsin )
+      ( \\arctan          . calcFunc-arctan )
+      ( \\arg     . calcFunc-arg )
+      ( \\cos     . calcFunc-cos )
+      ( \\cosh    . calcFunc-cosh )
+      ( \\det     . calcFunc-det )
+      ( \\exp     . calcFunc-exp )
+      ( \\gcd     . calcFunc-gcd )
+      ( \\ln      . calcFunc-ln )
+      ( \\log     . calcFunc-log10 )
+      ( \\max     . calcFunc-max )
+      ( \\min     . calcFunc-min )
+      ( \\tan     . calcFunc-tan )
+      ( \\sin     . calcFunc-sin )
+      ( \\sinh    . calcFunc-sinh )
+      ( \\sqrt    . calcFunc-sqrt )
+      ( \\tanh    . calcFunc-tanh )
+      ( \\frac      . (math-latex-parse-frac /))
+      ( \\tfrac      . (math-latex-parse-frac /))
+      ( \\dfrac      . (math-latex-parse-frac /))
+      ( \\binom     . (math-latex-parse-frac calcFunc-choose))
+      ( \\tbinom     . (math-latex-parse-frac calcFunc-choose))
+      ( \\dbinom     . (math-latex-parse-frac calcFunc-choose))
+      ( \\phi     . calcFunc-totient )
+      ( \\mu      . calcFunc-moebius )))
+ 
+ (put 'latex 'math-special-function-table
+      '((/               . (math-latex-print-frac "\\frac"))
+        (calcFunc-choose . (math-latex-print-frac "\\binom"))))
+ 
+ (put 'latex 'math-variable-table
+   '( ( \\pi      . var-pi )
+      ( \\infty           . var-inf )
+      ( \\infty           . var-uinf )
+      ( \\phi       . var-phi )
+      ( \\gamma     . var-gamma )
+      ( \\sum       . (math-parse-tex-sum calcFunc-sum) )
+      ( \\prod      . (math-parse-tex-sum calcFunc-prod) )))
+ 
+ (put 'latex 'math-complex-format 'i)
+ 
+ (defun math-latex-parse-frac (f val)
+   (let (numer denom)
+     (setq args (math-read-expr-list))
+     (math-read-token)
+     (setq margs (math-read-factor))
+     (list (nth 2 f) (car args) margs)))
+ 
+ (defun math-latex-print-frac (a fn)
+   (list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1)
+                "}{"
+                (math-compose-expr (nth 2 a) -1)
+                "}"))
+ 
+ (defun math-latex-input-filter (str)   ; allow parsing of 123\,456\,789.
+   (while (string-match "[0-9]\\\\,[0-9]" str)
+     (setq str (concat (substring str 0 (1+ (match-beginning 0)))
+                     (substring str (1- (match-end 0))))))
+   (while (string-match "\\\\begin{\\(small\\|[bp]\\)?matrix}" str)
+     (setq str (concat (substring str 0 (match-beginning 0))
+                       "\\matrix{"
+                     (substring str (match-end 0)))))
+   (while (string-match "\\\\end{\\(small\\|[bp]\\)?matrix}" str)
+     (setq str (concat (substring str 0 (match-beginning 0))
+                       "}"
+                     (substring str (match-end 0)))))
+ 
+   str)
+ 
+ (put 'latex 'math-input-filter 'math-latex-input-filter)
  
  (defun calc-eqn-language (n)
    (interactive "P")




reply via email to

[Prev in Thread] Current Thread [Next in Thread]