Variable: calc-modes-menu

calc-modes-menu is a variable defined in calc-menu.el.gz.

Value

Large value
("Modes"
 ["Precision"
  (progn (require 'calc-ext) (call-interactively 'calc-precision))
  :keys "p" :help "Set the precision for floating point calculations"]
 ["Fraction mode"
  (progn (require 'calc-frac) (call-interactively 'calc-frac-mode))
  :keys "m f" :style toggle :selected calc-prefer-frac :help
  "Leave integer quotients as fractions"]
 ["Symbolic mode"
  (lambda nil (interactive)
    (require 'calc-mode) (calc-symbolic-mode nil))
  :keys "m s" :style toggle :selected calc-symbolic-mode :help
  "Leave functions producing inexact answers in symbolic form"]
 ["Infinite mode"
  (lambda nil (interactive)
    (require 'calc-mode) (calc-infinite-mode nil))
  :keys "m i" :style toggle :selected calc-infinite-mode :help
  "Let expressions like 1/0 produce infinite results"]
 ["Abbreviate long vectors"
  (progn (require 'calc-mode) (call-interactively 'calc-full-vectors))
  :keys "v ." :style toggle :selected (not calc-full-vectors)]
 ("Simplification"
  ["No simplification mode"
   (progn (require 'calc-mode) (calc-no-simplify-mode t)) :keys "m O"
   :style radio :selected (eq calc-simplify-mode 'none) :help
   "No simplifications are done automatically"]
  ["Numeric simplification mode"
   (progn (require 'calc-mode) (calc-num-simplify-mode t)) :keys "m N"
   :style radio :selected (eq calc-simplify-mode 'num) :help
   "Only numeric simplifications are done automatically"]
  ["Basic simplification mode"
   (progn (require 'calc-mode) (calc-basic-simplify-mode t)) :keys
   "m I" :style radio :selected (eq calc-simplify-mode nil) :help
   "Only basic simplifications are done automatically"]
  ["Binary simplification mode"
   (progn (require 'calc-mode) (calc-bin-simplify-mode t)) :keys "m B"
   :style radio :selected (eq calc-simplify-mode 'binary) :help
   "Basic simplifications with binary clipping are done automatically"]
  ["Algebraic simplification mode"
   (progn (require 'calc-mode) (calc-alg-simplify-mode t)) :keys "m A"
   :style radio :selected (eq calc-simplify-mode 'alg) :help
   "Standard algebraic simplifications are done automatically"]
  ["Extended simplification mode"
   (progn (require 'calc-mode) (calc-ext-simplify-mode t)) :keys "m E"
   :style radio :selected (eq calc-simplify-mode 'ext) :help
   "Extended (unsafe) simplifications are done automatically"]
  ["Units simplification mode"
   (progn (require 'calc-mode) (calc-units-simplify-mode t)) :keys
   "m U" :style radio :selected (eq calc-simplify-mode 'units) :help
   "Algebraic and unit simplifications are done automatically"])
 ("Angle Measure"
  ["Radians"
   (progn
     (require 'calc-math) (call-interactively 'calc-radians-mode))
   :keys "m r" :style radio :selected (eq calc-angle-mode 'rad)]
  ["Degrees"
   (progn
     (require 'calc-math) (call-interactively 'calc-degrees-mode))
   :keys "m d" :style radio :selected (eq calc-angle-mode 'deg)]
  ["HMS"
   (progn (require 'calc-math) (call-interactively 'calc-hms-mode))
   :keys "m h" :style radio :selected (eq calc-angle-mode 'hms)])
 ("Radix"
  ["Decimal"
   (progn
     (require 'calc-bin) (call-interactively 'calc-decimal-radix))
   :keys "d 0" :style radio :selected
   (and (= calc-number-radix 10) (not calc-twos-complement-mode))]
  ["Binary"
   (progn (require 'calc-bin) (call-interactively 'calc-binary-radix))
   :keys "d 2" :style radio :selected
   (and (= calc-number-radix 2) (not calc-twos-complement-mode))]
  ["Octal"
   (progn (require 'calc-bin) (call-interactively 'calc-octal-radix))
   :keys "d 8" :style radio :selected
   (and (= calc-number-radix 8) (not calc-twos-complement-mode))]
  ["Hexadecimal"
   (progn (require 'calc-bin) (call-interactively 'calc-hex-radix))
   :keys "d 6" :style radio :selected
   (and (= calc-number-radix 16) (not calc-twos-complement-mode))]
  ["Other"
   (progn (require 'calc-bin) (call-interactively 'calc-radix)) :keys
   "d r" :style radio :selected
   (and (not calc-twos-complement-mode)
	(not
	 (or (= calc-number-radix 10) (= calc-number-radix 2)
	     (= calc-number-radix 8) (= calc-number-radix 16))))]
  ["--Two's Complement--" (lambda nil nil) :style radio :selected nil]
  ["Binary"
   (progn
     (require 'calc-bin)
     (call-interactively
      (lambda nil (interactive) (calc-binary-radix t))))
   :keys "C-u d 2" :style radio :selected
   (and (= calc-number-radix 2) calc-twos-complement-mode)]
  ["Octal"
   (progn
     (require 'calc-bin)
     (call-interactively
      (lambda nil (interactive) (calc-octal-radix t))))
   :keys "C-u d 8" :style radio :selected
   (and (= calc-number-radix 8) calc-twos-complement-mode)]
  ["Hexadecimal"
   (progn
     (require 'calc-bin)
     (call-interactively (lambda nil (interactive) (calc-hex-radix t))))
   :keys "C-u d 6" :style radio :selected
   (and (= calc-number-radix 16) calc-twos-complement-mode)])
 ("Float Format"
  ["Normal"
   (progn
     (require 'calc-mode) (call-interactively 'calc-normal-notation))
   :keys "d n" :style radio :selected
   (eq (car-safe calc-float-format) 'float)]
  ["Fixed point"
   (progn
     (require 'calc-mode) (call-interactively 'calc-fix-notation))
   :keys "d f" :style radio :selected
   (eq (car-safe calc-float-format) 'fix)]
  ["Scientific notation"
   (progn
     (require 'calc-mode) (call-interactively 'calc-sci-notation))
   :keys "d s" :style radio :selected
   (eq (car-safe calc-float-format) 'sci)]
  ["Engineering notation"
   (progn
     (require 'calc-mode) (call-interactively 'calc-eng-notation))
   :keys "d e" :style radio :selected
   (eq (car-safe calc-float-format) 'eng)])
 ("Complex Format"
  ["Default" (progn (require 'calc-cplx) (calc-complex-notation))
   :style radio :selected (not calc-complex-format) :keys "d c" :help
   "Display complex numbers as ordered pairs."]
  ["i notation" (progn (require 'calc-cplx) (calc-i-notation)) :style
   radio :selected (eq calc-complex-format 'i) :keys "d i" :help
   "Display complex numbers as a+bi."]
  ["j notation" (progn (require 'calc-cplx) (calc-i-notation)) :style
   radio :selected (eq calc-complex-format 'j) :keys "d j" :help
   "Display complex numbers as a+bj."]
  ["Other" (calc-complex-notation) :style radio :selected
   (and calc-complex-format (not (eq calc-complex-format 'i))
	(not (eq calc-complex-format 'j)))
   :active nil]
  "----"
  ["Polar mode" (progn (require 'calc-cplx) (calc-polar-mode nil))
   :style toggle :selected (eq calc-complex-mode 'polar) :keys "m p"
   :help "Prefer polar form for complex numbers."])
 ("Algebraic"
  ["Normal"
   (progn
     (require 'calc-mode)
     (cond (calc-incomplete-algebraic-mode (calc-algebraic-mode t))
	   (calc-algebraic-mode (calc-algebraic-mode nil))))
   :style radio :selected (not calc-algebraic-mode)]
  ["Algebraic mode"
   (progn
     (require 'calc-mode)
     (if (or calc-incomplete-algebraic-mode (not calc-algebraic-mode))
	 (calc-algebraic-mode nil)))
   :keys "m a" :style radio :selected
   (and calc-algebraic-mode (not calc-incomplete-algebraic-mode))
   :help "Keys which start numeric entry also start algebraic entry"]
  ["Incomplete algebraic mode"
   (progn
     (require 'calc-mode)
     (unless calc-incomplete-algebraic-mode (calc-algebraic-mode t)))
   :keys "C-u m a" :style radio :selected
   calc-incomplete-algebraic-mode :help
   "Only ( and [ begin algebraic entry"]
  ["Total algebraic mode"
   (progn
     (require 'calc-mode)
     (unless (eq calc-algebraic-mode 'total)
       (calc-total-algebraic-mode nil)))
   :keys "m t" :style radio :selected (eq calc-algebraic-mode 'total)
   :help "All regular letters and punctuation begin algebraic entry"])
 ("Matrix"
  ["Off" (progn (require 'calc-mode) (calc-matrix-mode -1)) :style
   radio :selected (eq calc-matrix-mode nil) :help
   "Variables are not assumed to be matrix or scalar"]
  ["Matrix mode" (progn (require 'calc-mode) (calc-matrix-mode -2))
   :style radio :selected (eq calc-matrix-mode 'matrix) :help
   "Variables are assumed to be matrices"]
  ["Square matrix mode"
   (progn (require 'calc-mode) (calc-matrix-mode '(4))) :style radio
   :selected (eq calc-matrix-mode 'sqmatrix) :help
   "Variables are assumed to be square matrices"]
  ["Dimensioned matrix mode"
   (let
       ((dim (string-to-number (read-from-minibuffer "Dimension: "))))
     (if (natnump dim)
	 (progn (require 'calc-mode) (calc-matrix-mode dim))
       (error "The dimension must be a positive integer")))
   :style radio :selected
   (and (integerp calc-matrix-mode) (> calc-matrix-mode 0)) :help
   "Variables are assumed to be NxN matrices"]
  ["Scalar mode" (progn (require 'calc-mode) (calc-matrix-mode 0))
   :style radio :selected (eq calc-matrix-mode 'scalar) :help
   "Variables are assumed to be scalars"])
 ("Language"
  ["Normal"
   (progn
     (require 'calc-lang) (call-interactively 'calc-normal-language))
   :keys "d N" :style radio :selected (eq calc-language nil)]
  ["Big"
   (progn
     (require 'calc-lang) (call-interactively 'calc-big-language))
   :keys "d B" :style radio :selected (eq calc-language 'big) :help
   "Use textual approximations to various mathematical notations"]
  ["Flat"
   (progn
     (require 'calc-lang) (call-interactively 'calc-flat-language))
   :keys "d O" :style radio :selected (eq calc-language 'flat) :help
   "Write matrices on a single line"]
  ["C"
   (progn (require 'calc-lang) (call-interactively 'calc-c-language))
   :keys "d C" :style radio :selected (eq calc-language 'c)]
  ["Pascal"
   (progn
     (require 'calc-lang) (call-interactively 'calc-pascal-language))
   :keys "d P" :style radio :selected (eq calc-language 'pascal)]
  ["Fortran"
   (progn
     (require 'calc-lang) (call-interactively 'calc-fortran-language))
   :keys "d F" :style radio :selected (eq calc-language 'fortran)]
  ["TeX"
   (progn
     (require 'calc-lang) (call-interactively 'calc-tex-language))
   :keys "d T" :style radio :selected (eq calc-language 'tex)]
  ["LaTeX"
   (progn
     (require 'calc-lang) (call-interactively 'calc-latex-language))
   :keys "d L" :style radio :selected (eq calc-language 'latex)]
  ["Eqn"
   (progn
     (require 'calc-lang) (call-interactively 'calc-eqn-language))
   :keys "d E" :style radio :selected (eq calc-language 'eqn)]
  ["Yacas"
   (progn
     (require 'calc-lang) (call-interactively 'calc-yacas-language))
   :keys "d Y" :style radio :selected (eq calc-language 'yacas)]
  ["Maxima"
   (progn
     (require 'calc-lang) (call-interactively 'calc-maxima-language))
   :keys "d X" :style radio :selected (eq calc-language 'maxima)]
  ["Giac"
   (progn
     (require 'calc-lang) (call-interactively 'calc-giac-language))
   :keys "d A" :style radio :selected (eq calc-language 'giac)]
  ["Mma"
   (progn
     (require 'calc-lang)
     (call-interactively 'calc-mathematica-language))
   :keys "d M" :style radio :selected (eq calc-language 'math)]
  ["Maple"
   (progn
     (require 'calc-lang) (call-interactively 'calc-maple-language))
   :keys "d W" :style radio :selected (eq calc-language 'maple)])
 "----" ["Save mode settings" calc-save-modes :keys "m m"] "----"
 ["Help on Modes" (calc-info-goto-node "Mode settings")])

Documentation

Menu for Calc's mode settings.

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-menu.el.gz
(defvar calc-modes-menu
  (list "Modes"
        ["Precision"
         (progn
           (require 'calc-ext)
           (call-interactively 'calc-precision))
         :keys "p"
         :help "Set the precision for floating point calculations"]
        ["Fraction mode"
         (progn
           (require 'calc-frac)
           (call-interactively 'calc-frac-mode))
         :keys "m f"
         :style toggle
         :selected calc-prefer-frac
         :help "Leave integer quotients as fractions"]
        ["Symbolic mode"
         (lambda ()
           (interactive)
           (require 'calc-mode)
           (calc-symbolic-mode nil))
         :keys "m s"
         :style toggle
         :selected calc-symbolic-mode
         :help "Leave functions producing inexact answers in symbolic form"]
        ["Infinite mode"
         (lambda ()
           (interactive)
           (require 'calc-mode)
           (calc-infinite-mode nil))
         :keys "m i"
         :style toggle
         :selected calc-infinite-mode
         :help "Let expressions like 1/0 produce infinite results"]
        ["Abbreviate long vectors"
         (progn
           (require 'calc-mode)
           (call-interactively 'calc-full-vectors))
         :keys "v ."
         :style toggle
         :selected (not calc-full-vectors)]
        (list "Simplification"
              ["No simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-no-simplify-mode t))
               :keys "m O"
               :style radio
               :selected (eq calc-simplify-mode 'none)
               :help "No simplifications are done automatically"]
              ["Numeric simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-num-simplify-mode t))
               :keys "m N"
               :style radio
               :selected (eq calc-simplify-mode 'num)
               :help "Only numeric simplifications are done automatically"]
              ["Basic simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-basic-simplify-mode t))
               :keys "m I"
               :style radio
               :selected (eq calc-simplify-mode nil)
               :help "Only basic simplifications are done automatically"]
              ["Binary simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-bin-simplify-mode t))
               :keys "m B"
               :style radio
               :selected (eq calc-simplify-mode 'binary)
               :help "Basic simplifications with binary clipping are done automatically"]
              ["Algebraic simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-alg-simplify-mode t))
               :keys "m A"
               :style radio
               :selected (eq calc-simplify-mode 'alg)
               :help "Standard algebraic simplifications are done automatically"]
              ["Extended simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-ext-simplify-mode t))
               :keys "m E"
               :style radio
               :selected (eq calc-simplify-mode 'ext)
               :help "Extended (unsafe) simplifications are done automatically"]
              ["Units simplification mode"
               (progn
                 (require 'calc-mode)
                 (calc-units-simplify-mode t))
               :keys "m U"
               :style radio
               :selected (eq calc-simplify-mode 'units)
               :help "Algebraic and unit simplifications are done automatically"])
        (list "Angle Measure"
              ["Radians"
               (progn
                 (require 'calc-math)
                 (call-interactively 'calc-radians-mode))
               :keys "m r"
               :style radio
               :selected (eq calc-angle-mode 'rad)]
              ["Degrees"
               (progn
                 (require 'calc-math)
                 (call-interactively 'calc-degrees-mode))
               :keys "m d"
               :style radio
               :selected (eq calc-angle-mode 'deg)]
              ["HMS"
               (progn
                 (require 'calc-math)
                 (call-interactively 'calc-hms-mode))
               :keys "m h"
               :style radio
               :selected (eq calc-angle-mode 'hms)])
        (list "Radix"
              ["Decimal"
               (progn
                 (require 'calc-bin)
                 (call-interactively 'calc-decimal-radix))
               :keys "d 0"
               :style radio
               :selected (and (= calc-number-radix 10)
                              (not calc-twos-complement-mode))]
              ["Binary"
               (progn
                 (require 'calc-bin)
                 (call-interactively 'calc-binary-radix))
               :keys "d 2"
               :style radio
               :selected (and (= calc-number-radix 2)
                              (not calc-twos-complement-mode))]
              ["Octal"
               (progn
                 (require 'calc-bin)
                 (call-interactively 'calc-octal-radix))
               :keys "d 8"
               :style radio
               :selected (and (= calc-number-radix 8)
                              (not calc-twos-complement-mode))]
              ["Hexadecimal"
               (progn
                 (require 'calc-bin)
                 (call-interactively 'calc-hex-radix))
               :keys "d 6"
               :style radio
               :selected (and (= calc-number-radix 16)
                              (not calc-twos-complement-mode))]
              ["Other"
               (progn
                 (require 'calc-bin)
                 (call-interactively 'calc-radix))
               :keys "d r"
               :style radio
               :selected (and
                          (not calc-twos-complement-mode)
                          (not
                           (or
                            (= calc-number-radix 10)
                            (= calc-number-radix 2)
                            (= calc-number-radix 8)
                            (= calc-number-radix 16))))]
              ["--Two's Complement--"
               (lambda () ())
               :style radio
               :selected nil]
              ["Binary"
               (progn
                 (require 'calc-bin)
                 (call-interactively
                  (lambda () (interactive) (calc-binary-radix t))))
               :keys "C-u d 2"
               :style radio
               :selected (and (= calc-number-radix 2)
                              calc-twos-complement-mode)]
              ["Octal"
               (progn
                 (require 'calc-bin)
                 (call-interactively
                  (lambda () (interactive) (calc-octal-radix t))))
               :keys "C-u d 8"
               :style radio
               :selected (and (= calc-number-radix 8)
                              calc-twos-complement-mode)]
              ["Hexadecimal"
               (progn
                 (require 'calc-bin)
                 (call-interactively
                  (lambda () (interactive) (calc-hex-radix t))))
               :keys "C-u d 6"
               :style radio
               :selected (and (= calc-number-radix 16)
                              calc-twos-complement-mode)])
        (list "Float Format"
              ["Normal"
               (progn
                 (require 'calc-mode)
                 (call-interactively 'calc-normal-notation))
               :keys "d n"
               :style radio
               :selected (eq (car-safe calc-float-format) 'float)]
              ["Fixed point"
               (progn
                 (require 'calc-mode)
                 (call-interactively 'calc-fix-notation))
               :keys "d f"
               :style radio
               :selected (eq (car-safe calc-float-format) 'fix)]
              ["Scientific notation"
               (progn
                 (require 'calc-mode)
                 (call-interactively 'calc-sci-notation))
               :keys "d s"
               :style radio
               :selected (eq (car-safe calc-float-format) 'sci)]
              ["Engineering notation"
               (progn
                 (require 'calc-mode)
                 (call-interactively 'calc-eng-notation))
               :keys "d e"
               :style radio
               :selected (eq (car-safe calc-float-format) 'eng)])
        (list "Complex Format"
              ["Default"
               (progn
                 (require 'calc-cplx)
                 (calc-complex-notation))
               :style radio
               :selected (not calc-complex-format)
               :keys "d c"
               :help "Display complex numbers as ordered pairs."]
              ["i notation"
               (progn
                 (require 'calc-cplx)
                 (calc-i-notation))
               :style radio
               :selected (eq calc-complex-format 'i)
               :keys "d i"
               :help "Display complex numbers as a+bi."]
              ["j notation"
               (progn
                 (require 'calc-cplx)
                 (calc-i-notation))
               :style radio
               :selected (eq calc-complex-format 'j)
               :keys "d j"
               :help "Display complex numbers as a+bj."]
              ["Other"
               (calc-complex-notation)
               :style radio
               :selected (and calc-complex-format
                              (not (eq calc-complex-format 'i))
                              (not (eq calc-complex-format 'j)))
               :active nil]
              "----"
              ["Polar mode"
               (progn
                 (require 'calc-cplx)
                 (calc-polar-mode nil))
               :style toggle
               :selected (eq calc-complex-mode 'polar)
               :keys "m p"
               :help "Prefer polar form for complex numbers."])
        (list "Algebraic"
              ["Normal"
               (progn
                 (require 'calc-mode)
                 (cond
                  (calc-incomplete-algebraic-mode
                   (calc-algebraic-mode t))
                  (calc-algebraic-mode
                   (calc-algebraic-mode nil))))
               :style radio
               :selected (not calc-algebraic-mode)]
              ["Algebraic mode"
               (progn
                 (require 'calc-mode)
                 (if (or
                      calc-incomplete-algebraic-mode
                      (not calc-algebraic-mode))
                     (calc-algebraic-mode nil)))
               :keys "m a"
               :style radio
               :selected (and calc-algebraic-mode
                              (not calc-incomplete-algebraic-mode))
               :help "Keys which start numeric entry also start algebraic entry"]
              ["Incomplete algebraic mode"
               (progn
                 (require 'calc-mode)
                 (unless calc-incomplete-algebraic-mode
                   (calc-algebraic-mode t)))
               :keys "C-u m a"
               :style radio
               :selected calc-incomplete-algebraic-mode
               :help "Only ( and [ begin algebraic entry"]
              ["Total algebraic mode"
               (progn
                 (require 'calc-mode)
                 (unless (eq calc-algebraic-mode 'total)
                   (calc-total-algebraic-mode nil)))
               :keys "m t"
               :style radio
               :selected (eq calc-algebraic-mode 'total)
               :help "All regular letters and punctuation begin algebraic entry"])
        (list "Matrix"
              ["Off"
               (progn
                 (require 'calc-mode)
                 (calc-matrix-mode -1))
               :style radio
               :selected (eq calc-matrix-mode nil)
               :help "Variables are not assumed to be matrix or scalar"]
              ["Matrix mode"
               (progn
                 (require 'calc-mode)
                 (calc-matrix-mode -2))
               :style radio
               :selected (eq calc-matrix-mode 'matrix)
               :help "Variables are assumed to be matrices"]
              ["Square matrix mode"
               (progn
                 (require 'calc-mode)
                 (calc-matrix-mode '(4)))
               :style radio
               :selected (eq calc-matrix-mode 'sqmatrix)
               :help "Variables are assumed to be square matrices"]
              ["Dimensioned matrix mode"
               (let ((dim (string-to-number (read-from-minibuffer "Dimension: "))))
                 (if (natnump dim)
                     (progn
                       (require 'calc-mode)
                       (calc-matrix-mode dim))
                   (error "The dimension must be a positive integer")))
               :style radio
               :selected (and (integerp calc-matrix-mode) (> calc-matrix-mode 0))
               :help "Variables are assumed to be NxN matrices"]
              ["Scalar mode"
               (progn
                 (require 'calc-mode)
                 (calc-matrix-mode 0))
               :style radio
               :selected (eq calc-matrix-mode 'scalar)
               :help "Variables are assumed to be scalars"])
        (list "Language"
              ["Normal"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-normal-language))
               :keys "d N"
               :style radio
               :selected (eq calc-language nil)]
              ["Big"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-big-language))
               :keys "d B"
               :style radio
               :selected (eq calc-language 'big)
               :help "Use textual approximations to various mathematical notations"]
              ["Flat"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-flat-language))
               :keys "d O"
               :style radio
               :selected (eq calc-language 'flat)
               :help "Write matrices on a single line"]
              ["C"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-c-language))
               :keys "d C"
               :style radio
               :selected (eq calc-language 'c)]
              ["Pascal"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-pascal-language))
               :keys "d P"
               :style radio
               :selected (eq calc-language 'pascal)]
              ["Fortran"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-fortran-language))
               :keys "d F"
               :style radio
               :selected (eq calc-language 'fortran)]
              ["TeX"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-tex-language))
               :keys "d T"
               :style radio
               :selected (eq calc-language 'tex)]
              ["LaTeX"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-latex-language))
               :keys "d L"
               :style radio
               :selected (eq calc-language 'latex)]
              ["Eqn"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-eqn-language))
               :keys "d E"
               :style radio
               :selected (eq calc-language 'eqn)]
              ["Yacas"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-yacas-language))
               :keys "d Y"
               :style radio
               :selected (eq calc-language 'yacas)]
              ["Maxima"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-maxima-language))
               :keys "d X"
               :style radio
               :selected (eq calc-language 'maxima)]
              ["Giac"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-giac-language))
               :keys "d A"
               :style radio
               :selected (eq calc-language 'giac)]
              ["Mma"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-mathematica-language))
               :keys "d M"
               :style radio
               :selected (eq calc-language 'math)]
              ["Maple"
               (progn
                 (require 'calc-lang)
                 (call-interactively 'calc-maple-language))
               :keys "d W"
               :style radio
               :selected (eq calc-language 'maple)])
        "----"
        ["Save mode settings" calc-save-modes :keys "m m"]
        "----"
        ["Help on Modes"
         (calc-info-goto-node "Mode settings")])
  "Menu for Calc's mode settings.")