トップページ Maxima とは リンク集 関数と変数 ちっぷす imaxima 数独
imaxima

imaxima は、TeX と Ghostscript を用いて Maxima の出力を美しく表示させることを目的とした Emacs Lisp で、デンマークにある Aarhus 大学の Jesper Harder 氏が作成したものです。

要するにこういうものです → クリック(Mac OS X) クリック(Windows)

TeX と Ghostscript を利用するのでたいそう遅いだろうと思われるかもしれませんが、実際に使ってみると最近の CPU パワーのおかげもあり割と実用的に使えます。特に、長大な式を扱う場合などは非常に便利です。

なお、imaxima-0.9 以降しばらくメンテナンスが止まっていたため、独自パッチを作ったりもしていましたが、その後、本田康晃氏が開発を引き継いだそうで、現在パッチは不要になっていると思います。

Meadow で使う imaxima

UNIX や Cygwin 環境では普通に ./configure; make; make install でインストールできるようですので、Meadow(Windows)で使うための設定をまとめてみました。なお、以下の記述は Meadow-3.00 + imaxima-imath-0.98.tar.gz 用のものです。

【TeX と Ghostscript】

まず、TeX と Ghostscript をインストールします。特別な事情がない限り角藤亮氏によるバイナリをインストールします。どちらも基本的に PATH を通す(環境変数 PATH に例えば C:\W32TeX\bin;C:\gs\gs8.61\bin;C:\gs\gs8.61\lib; を追加)だけですが、W32TeX についてはココに少しまとめてあります。

【breqn】 ..... W32TeX では不要かもしれません。

Morten Høgholm 氏による breqn 関連ファイル mh.zip を入手し、インストールします。mh.zip は CTANRING から入手できます。まず、mh.zip に含まれる 7 個ほどの dtx ファイルを tex でコンパイルします。次のようにすると、一度に処理できます。

for %i in (*.dtx) do tex %i
生成されたファイルのうち、拡張子が sty のファイルと sym のファイル(全部で 11 個ほど)を TeX が見つけられる場所(例えば、\texmf-local\tex\latex\mh)に入れます。ls-R ファイルを作っている場合は mktexlsr を実行して完了です。

【imaxima】

imaxima を手動でインストールするには、imaxima-imath-0.98.tar.gz に入っているファイル

  1. imath.el(必須ではありません)
  2. imaxima-autoconf-variables.el
  3. imaxima.el
  4. imaxima.lisp
を適当なフォルダに入れます(下記【おまけA】参照)。例えば、C:\meadow\lisp あたりに imaxima という名前のフォルダを作ってその中に入れればよいでしょう。 次に、stereocat さんの「猫が逃げ惑う日記」に従い imaxima.el の 824、825 行目
          (list imaxima-initex-option "&latex" "mylatex.ltx"
                (format "\\input{%s}" "format.tex")))))
          (list imaxima-initex-option "&latex" "mylatex.ltx" "format"))))
のように書き換えます。

以下は雑多な修正で本質的ではありませんが、修正しておくことをお勧めします。

  1. 【L. 337】余分な引数をコメントアウト
    変更前 ""
    変更後 ;; ""
  2. 【L. 593】タイポを修正
    変更前 Thic command does not work in XEmacs."
    変更後 This command does not work in XEmacs."
  3. 【L. 602-603】古い Maxima 用の記述を修正
    変更前 (search-forward "(C1)" nil t 2)
    (search-backward "(C1)" nil t)
    変更後 (search-forward "(%i1)" nil t 1)
    (search-backward "(%i1)" nil t)
  4. 【L. 764】タイポを修正
    変更前 (let* ((msg "LaTex error in: ")
    変更後 (let* ((msg "LaTeX error in: ")
  5. 【L. 1109-1112】余分な設定をコメントアウト
    変更前 (when (eq system-type 'windows-nt)
    (comint-send-string
    mbuf
    (format "block(load(\"%s\"), linenum:0)$\n" imaxima-lisp-file)))
    変更後 ;; (when (eq system-type 'windows-nt)
    ;; (comint-send-string
    ;; mbuf
    ;; (format "block(load(\"%s\"), linenum:0)$\n" imaxima-lisp-file)))
ついでに、黄金比 %phi がφと表示されず、そのまま「%phi」と出力されてしまう問題を修正しておきます。imaxima.lisp の 380 行目あたりに (defprop $%phi "\\phi" texword) と追記します。

補足 万一、動作がものすごく遅くなるような現象が現れたら、imaxima-image-creators を下表の通り変更します。以前はこの作業が必須でしたが、現在は不要かもしれません。また、imaxima-image-creators を変更する代わりに、下記「設定例」における imaxima-image-type を、png から jpeg に変更してもよいでしょう。

変更前(L. 348)   (png ("-sDEVICE=png16m"))
変更後(L. 348)   (png ("-sDEVICE=pngalpha"))

【設定例】

例えば、.emacs に以下のように設定します。

;; imaxima.el などを入れたフォルダ
(setq load-path (cons "C:/meadow/lisp/imaxima" load-path))
;; maxima.bat の在処(半角スペースを避けるのがポイント)
(setq exec-path (cons "C:/Progra~1/Maxima-5.14.0/bin" exec-path))
;; [Alt]+x → imaxima[Enter] で imaxima が起動
(autoload 'imaxima "imaxima" "Image support for Maxima." t)
;; Ghostscript の実行ファイル名
(setq imaxima-gs-program "gswin32c.exe")
;; 一時保存フォルダを指定
(setq imaxima-tmp-dir "C:/Temp")
;; 利用したいパッケージ等プリアンブルに追記したい内容を書く
;; (setq imaxima-latex-preamble "\\usepackage{concrete,euler}")
;; デフォルトが png。他に jpeg が選べる。Meadow では tiff は ダメ。
(setq imaxima-image-type 'png)
;; 文字の大きさを指定
;; (setq imaxima-scale-factor 1.2)
時々、終了時に一時ファイル(画像等)の削除に失敗するので、手動で削除しやすいように一時保存フォルダをわかりやすいところに設定しておくとよいでしょう(下記【おまけB】参照)。

【おまけA】

imaxima.el を修正した後、バイトコンパイルしておくと多少早くなるかもしれません。[Alt]+x → byte-compile-file[Enter] を実行し、imaxima.el を指定すればバイトコンパイルされます(4 つほど警告が出るようです)。

【おまけB】

一時ファイルが削除されず残ってしまう場合があり、わずかなサイズとはいえやはりディスクの無駄遣いであることにかわりありませんし、 かと言って手動で削除するのも手間ですので、現在私は AR RAM DISK を試しています。 AR RAM DISK はすでに開発が停止してしまっていますが、インストールが簡単で、しかも無料で、しかも 2GB まで Ram Disk 化出来るようです。 imaxima-tmp-dir に Ram Disk を指定しておけば、Windows を終了すると自動的に消えてくれます。 なお、容量 128MB の Ram Disk を作成し、IE キャッシュ用に 64MB 確保してみたところ、なかなか快適に使えています。

補遺(2006/6/30) 別のパソコンに AR RAM DISK をインストールしたところ Windows が正しく起動しなくなりました。しかも、AR RAM DISK にはアンインストーラは付属していません。自力で復旧できる自身のある人以外は試さないことを強くお勧めします。

補遺(2008/11/03)

最近の imaxima(imaxima-imath-1.0b 以降)では、Emacs の中にグラフを出力することが出来るようになっています。このインラインプロット機能を使うには、例えば次のように実行します。

wxplot2d(sin(x), [x, -%pi, %pi], [gnuplot_preamble, "set size 1"]);

最終更新日 2007/12/29 頃