Maximamode Starts Imaxima
(autoload 'imaxima "imaxima" "Image support for Maxima." t)
(autoload 'maxima-mode "maxima" "Maxima mode" t)
(autoload 'maxima "maxima" "Maxima interaction" t)
(setq auto-mode-alist (cons '("\\.max" . maxima-mode) auto-mode-alist))
(setq imaxima-use-maxima-mode-flag t)
(setq maxima-use-dynamic-complete t)
(setq imaxima-fnt-size "Large")
(setq imaxima-scale-factor 1.0)
(setq imaxima-label-color "red")
(setq imaxima-equation-color "white")
(setq imaxima-max-scale 0.5)
(setq imaxima-linearize-flag t)
(setq maxima-info-dir "/usr/share/info/")
(defun wy-maxima-mode-hook ()
(setq wy-starting-imaxima nil)
(defun maxima-start ()
"Start the Maxima process."
(interactive)
(if (not (processp inferior-maxima-process))
(if (not wy-starting-imaxima)
(let ((origbuffer (current-buffer)))
(setq wy-starting-imaxima t)
(imaxima)
(setq wy-starting-imaxima nil)
(switch-to-buffer origbuffer))))
(if (processp inferior-maxima-process)
(unless (eq (process-status inferior-maxima-process) 'run)
(delete-process inferior-maxima-process)
(save-excursion
(set-buffer "*maxima*")
(erase-buffer))
(setq inferior-maxima-process nil)))
(unless (processp inferior-maxima-process)
(setq maxima-input-end 0)
(let ((mbuf)
(cmd))
(if maxima-args
(setq cmd
(append (list 'make-comint "maxima" maxima-command
nil) (split-string maxima-args)))
(setq cmd (list 'make-comint "maxima" maxima-command)))
(setq mbuf (eval cmd))
(save-excursion
(set-buffer mbuf)
(setq inferior-maxima-process (get-buffer-process mbuf))
(if maxima-fix-double-prompt
(add-to-list 'comint-output-filter-functions
'maxima-remove-double-prompt))
(accept-process-output inferior-maxima-process)
(while (not (maxima-new-prompt-p))
(accept-process-output inferior-maxima-process))
(inferior-maxima-mode)))
(sit-for 0 maxima-after-output-wait))))
(add-hook 'maxima-mode-hook 'wy-maxima-mode-hook)