Imaxima

提供: MacWiki
移動: 案内検索

Imaxima とは?[編集]

ImaximaMaxima の出力結果を美しく表示するための Emacs Lisp です。 2005年から、本田康晃さんがメンテナンスを担当なさっています。

利用にはインライン画像表示に対応した Emacs のほか、Maxima および TeXGhostscript が必要です。

インストール方法[編集]

Carbon Emacs パッケージ をお使いの場合には、Imaxima (imaxima.el) は既に同梱されていますので、Maxima および TeX + breqn と Ghostscript を追加導入するだけで使えるようになります。

MacOSX_WorkShop では Maxima なども含めた全ファイルを以下のコマンド一つだけで一括してインストール出来ます。

$ sudo apt-get install imaxima

Maxima のインストール[編集]

Maxima のページをご覧ください。

TeX + breqn (mh) のインストール[編集]

Mac OS X に TeX 環境を導入し、加えて breqn パッケージをインストールします。

TeX Live 2010 や MacPorts の pTeX (@20110103 以降) をお使いの場合には、breqn パッケージは同梱されていますので、追加の作業は必要ありません。

TeX を独自にインストールしている場合には、以下のような手順で breqn パッケージをインストールして下さい。

$ mkdir ~/Sources
$ cd ~/Sources
$ curl -O http://distfiles.macports.org/tex-mh/mh.zip
$ openssl rmd160 mh.zip
RIPEMD160(mh.zip)= 1d6bb18d7a25c537c86ae94981b10449cc97c8bd
$ unzip mh.zip
$ cd mh
$ find . -name "*.dtx" | xargs -L1 tex

$ sudo install -m 0755 -d /usr/local/share/texmf-local/tex/latex/mh
$ sudo install -m 0755 -d /usr/local/share/texmf-local/doc/latex/mh
$ sudo install -m 0755 -d /usr/local/share/texmf-local/source/latex/mh
$ sudo install -m 0644 *.sty *.sym /usr/local/share/texmf-local/tex/latex/mh
$ sudo install -m 0644 *.pdf README /usr/local/share/texmf-local/doc/latex/mh
$ sudo install -m 0644 *.dtx *.tex /usr/local/share/texmf-local/source/latex/mh

$ sudo mktexlsr
  • CTAN から得られる最新版 (breqn 0.98a) は expl3 を必要とするため、ptetex3 ベースのディストリビューションでは動かせません。ここでは代わりに 0.97a を用いています。

kpsewhich を実行して、TeX に認識されているかどうかを確認した方がよいでしょう。

$ kpsewhich breqn.sty
/opt/local/share/texmf-dist/tex/latex/mh/breqn.sty

Ghostscript のインストール[編集]

Imaxima で数式を画像表示できるようにするため、Ghostscript を導入してください。

MacPorts をお使いの場合には、

$ sudo port install ghostscript

などとします。

Imaxima のインストール[編集]

Carbon Emacs パッケージ をお使いの場合には、既にインストール済みなので、この項は読み飛ばしてください。

Imaxima のサイトから imaxima-imath-0.99.tar.gz を取得し、適当なディレクトリに展開します。

$ cd ~/Sources
$ curl -O http://members3.jcom.home.ne.jp/imaxima/Site/Download_and_Install_files/imaxima-imath-0.99.tar.gz
$ tar xvfz imaxima-imath-0.99.tar.gz
$ cd imaxima-imath-0.99

$ ./configure
$ make
$ sudo make install

Carbon Emacs を Applications フォルダにインストールした場合:
$ env EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs \
  ./configure --with-lispdir=/Applications/Emacs.app/Contents/Resources/site-lisp/imaxima \
  --infodir=/Applications/Emacs.app/Contents/Resources/info
$ make
$ make install

~/.emacs の設定[編集]

Carbon Emacs パッケージ をお使いの場合には、既に設定済みなので、この項は読み飛ばしてください。

ホームディレクトリの .emacs ファイルに以下のような行を追加。

(setq exec-path (cons "/opt/local/bin" exec-path))
(autoload 'imaxima "imaxima" "Image support for Maxima." t)

起動方法[編集]

M-x imaxima で起動します。下の図は Carbon Emacs パッケージ 2005/2/16 版で cmucl + Maxima を使っているところです。 なお、テキストベースに変更するには、変数 display2d に maxima を代入します。デフォルトは display2d:imaxima です。

imaxima.png

各種設定[編集]

普通は必要ありませんが、マニュアルに書いてある設定のうち、主なものをまとめておきます。

imaxima-fnt-size[編集]

LaTeX の命令に準拠した名前(tiny から Huge まで)で、フォントの大きさを設定します。

(setq imaxima-fnt-size "large")

imaxima-latex-preamble[編集]

Imaxima が出力画像を生成する際に利用する LaTeX 文書のプリアンブルを設定します。

(setq imaxima-latex-preamble "\\usepackage{concrete}")

数式フォントの変更は

(setq imaxima-latex-preamble "\\usepackage{concrete}")

などとします。ただし、数学記号(インテグラルとか)は変更されないようです。

数学記号も(例えば、 txfonts に)変える場合は,上のプリアンブルの変更をせずに以下のようにします。(バックアップコピーをお忘れなく)

1.Emacsの中で

M-x locate-buffer [ret] imaxima [ret]

あるいは

M-x locate-library [ret] imaxima [ret]

としてimaxima.elの場所を確認して下さい。[ret]はリターンキーです。 そのimaxima.elを編集します。

2.imaxima.elの中に2カ所、

\\usepackage[cmbase]{flexisym}

という行がありますから、それらを

\\usepackage{txfonts}
\\usepackage[txfonts]{flexisym}

という2行に置き換えます。

3.続いて、mhフォルダ内の flexisym.sty に

\DeclareOption{txfonts}{\usesymbols{txfonts}}

と書き加えます。場所は、\DeclareOption{cmbase}{\usesymbols{cmbase}} と書かれている辺りでよいでしょう。

4.さらにmhフォルダ内の cmbase.sym をコピーして、ファイル内の cmbase を全て txfonts で置き換えます。 編集したファイルを txfonts.sym と名前を付けて同じフォルダ内に保存します。

5.ls-Rファイルがある場合は、コマンドラインから

mktexlsr 

とします。

以上です。

imaxima-image-type[編集]

画像形式(png、tiff、jpeg)を指定します。ただし、jpeg だとあまり美しくないようです。

(setq imaxima-image-type 'tiff)

imaxima-maxima-options[編集]

maxima に渡すオプション引数を指定します。例えば、複数の lisp を共存させている場合に、利用する lisp を指定することが出来ます。

(setq imaxima-maxima-options "--lisp=clisp")

複数のcommon lisp 処理利用して切り替えを行いたい時は~/.emacsの(require 'imaxima)の後に

(setq imaxima-lisp-file imaxima-maxima-options)
(defmacro defmaxima-exec (name lisp-options)
  `(defun ,name ()
     (interactive)
  (setq imaxima-maxima-options
	(concatenate 'string imaxima-lisp-file " " ,lisp-options))
  (let ((maxima-buf (get-buffer "*imaxima*")))
    (if (bufferp maxima-buf)
	(let ((maxima-proc (get-process "imaxima")))
	  (if maxima-proc
	    (message "imaxima is working now")  
	    (progn
	      (kill-buffer maxima-buf)
	      (imaxima))))
         (imaxima)))))
(defmaxima-exec imaxima-sbcl "-l sbcl")
(defmaxima-exec imaxima-cmucl "-l cmucl")

と付け加えてください。(defmaxima-exec 関数名 オプション(文字列) )となっています。clispも同様に記述できます。これでimaxima-sbclでsbclを使ったimaxima , imaxima-cmuclでcmuclをつかったimaximaが起動します。他のimaximaが起動している時は動かないようになっています。また、処理系に関係ないデフォルトのオプションは imaxima-lisp-fileに記述すればいいです。(ここではデフォルトのimaxima-maxima-optionsに割り当てています。(imaxima.lispを最初に読み込むようにオプションが設定されているようです。)

各種色の設定[編集]

(setq imaxima-bg-color "PaleGreen4")
(setq imaxima-fg-color "LightGoldenrod1")
(setq imaxima-equation-color "DarkOrange1")
(setq imaxima-label-color "DarkOrange1")

数式イメージの拡大率[編集]

(setq imaxima-scale-factor 1.2)

トラブルシューティング[編集]

FreeType2 を有効にした gs 8.15 を使っている場合、正しく機能しない[編集]

FreeType2 を有効にした gs 8.15 を使っている場合、正しく機能しないかもしれません。 その場合は、とりあえず imaxima.el の 478 行目を次のように変更すれば問題を回避できます。

修正前:(string-match "\\(GNU\\|ESP\\) Ghostscript 7.05"
修正後:(string-match "GPL Ghostscript 8.15"

注意 7.05 や素の 8.15 などを使っている場合は変更しないで下さい。