OS X用にはフリーの数式画像出力ツールはあるのですが、どうもWindowsとかではみつかりません。某T沢さんに「ないの?」って言われたんで作ってみました。Javaです。

MathImageとはなんぞや

Javaでつくられた簡易な数式エディタ+画像出力ツールです。 TeXスタイルで数式コマンドを入力して、CreateImageボタンを押すだけの簡易操作を実現しました。

みため

  • Mac OS Xでの実行イメージ

 
  • Windows Server2003での実行イメージ

動作に必要なツール

  • latex

TeXの実行環境が必要です。 MathImage は外部ツールとしてこれを利用します。

  • dvips

dviファイルをpsファイルに変換する為にデフォルトではdvipsを利用します。 設定次第でその他のツールを利用することもできます。

 .properties内
 dvipsPath, dvipsOpt
  • ghostscript(gs/gswin32c)

psファイルを画像ファイルに変換する為にデフォルトではgsを利用します。 設定次第でその他のツールを利用することもできます。

 .properties内
 gsPath, gsOpt

簡単なの?

簡単です。アプリケーション自体は1ファイル、設定ファイルをいれても2ファイルです。既にTeX環境があるならばそのPath設定をするだけです。ないときは最初にちょっとした苦労が必要です。

インストール

TeX環境が整っている場合は 初期設定 の項まで飛んでください。びよーん。

で、TeXのインストールは Windows 用 TeX のインストール , Windows 用 Ghostscript と GSview のインストール

等を参考にインストールしてください。

Windowsで動作確認を行った環境は 簡易インストーラ(texinst753.zip)を利用して、

  • latex
  • dvips

等をインストールし、

GhostScriptはver8.14を角藤さんがmakeしたgs814w32full.zipを利用してインストールしました。

Blueskyフォント

Blueskyのサイト から、フォントをダウンロードします。

gsのフォントディレクトリ(環境変数GS_LIBに記述されているディレクトリ)に.pfbファイルを全てコピーします。

FONTMAPに以下を追加します。

 
 /CMB10       (cmb10.pfb)     ;
 /CMBSY10     (cmbsy10.pfb)     ;
 /CMBSY5      (cmbsy5.pfb)     ;
 /CMBSY7      (cmbsy7.pfb)     ;
 /CMBX10      (cmbx10.pfb)     ;
 /CMBX12      (cmbx12.pfb)     ;
 /CMBX5       (cmbx5.pfb)     ;
 /CMBX6       (cmbx6.pfb)     ;
 /CMBX7       (cmbx7.pfb)     ;
 /CMBX8       (cmbx8.pfb)     ;
 /CMBX9       (cmbx9.pfb)     ;
 /CMBXSL10    (cmbxsl10.pfb)     ;
 /CMBXTI10    (cmbxti10.pfb)     ;
 /CMCSC10     (cmcsc10.pfb)     ;
 /CMDUNH10    (cmdunh10.pfb)     ;
 /CMEX10      (cmex10.pfb)     ;
 /CMFF10      (cmff10.pfb)     ;
 /CMFI10      (cmfi10.pfb)     ;
 /CMFIB8      (cmfib8.pfb)     ;
 /CMINCH      (cminch.pfb)     ;
 /CMITT10     (cmitt10.pfb)     ;
 /CMMI10      (cmmi10.pfb)     ;
 /CMMI12      (cmmi12.pfb)     ;
 /CMMI5       (cmmi5.pfb)     ;
 /CMMI6       (cmmi6.pfb)     ;
 /CMMI7       (cmmi7.pfb)     ;
 /CMMI8       (cmmi8.pfb)     ;
 /CMMI9       (cmmi9.pfb)     ;
 /CMMIB10     (cmmib10.pfb)     ;
 /CMMIB5      (cmmib5.pfb)     ;
 /CMMIB7      (cmmib7.pfb)     ;
 /CMR10       (cmr10.pfb)     ;
 /CMR12       (cmr12.pfb)     ;
 /CMR17       (cmr17.pfb)     ;
 /CMR5        (cmr5.pfb)     ;
 /CMR6        (cmr6.pfb)     ;
 /CMR7        (cmr7.pfb)     ;
 /CMR8        (cmr8.pfb)     ;
 /CMR9        (cmr9.pfb)     ;
 /CMSL10      (cmsl10.pfb)     ;
 /CMSL12      (cmsl12.pfb)     ;
 /CMSL8       (cmsl8.pfb)     ;
 /CMSL9       (cmsl9.pfb)     ;
 /CMSLTT10    (cmsltt10.pfb)     ;
 /CMSS10      (cmss10.pfb)     ;
 /CMSS12      (cmss12.pfb)     ;
 /CMSS17      (cmss17.pfb)     ;
 /CMSS8       (cmss8.pfb)     ;
 /CMSS9       (cmss9.pfb)     ;
 /CMSSBX10    (cmssbx10.pfb)     ;
 /CMSSDC10    (cmssdc10.pfb)     ;
 /CMSSI10     (cmssi10.pfb)     ;
 /CMSSI12     (cmssi12.pfb)     ;
 /CMSSI17     (cmssi17.pfb)     ;
 /CMSSI8      (cmssi8.pfb)     ;
 /CMSSI9      (cmssi9.pfb)     ;
 /CMSSQ8      (cmssq8.pfb)     ;
 /CMSSQI8     (cmssqi8.pfb)     ;
 /CMSY10      (cmsy10.pfb)     ;
 /CMSY5       (cmsy5.pfb)     ;
 /CMSY6       (cmsy6.pfb)     ;
 /CMSY7       (cmsy7.pfb)     ;
 /CMSY8       (cmsy8.pfb)     ;
 /CMSY9       (cmsy9.pfb)     ;
 /CMTCSC10    (cmtcsc10.pfb)     ;
 /CMTEX10     (cmtex10.pfb)     ;
 /CMTEX8      (cmtex8.pfb)     ;
 /CMTEX9      (cmtex9.pfb)     ;
 /CMTI10      (cmti10.pfb)     ;
 /CMTI12      (cmti12.pfb)     ;
 /CMTI7       (cmti7.pfb)     ;
 /CMTI8       (cmti8.pfb)     ;
 /CMTI9       (cmti9.pfb)     ;
 /CMTT10      (cmtt10.pfb)     ;
 /CMTT12      (cmtt12.pfb)     ;
 /CMTT8       (cmtt8.pfb)     ;
 /CMTT9       (cmtt9.pfb)     ;
 /CMU10       (cmu10.pfb)     ;
 /CMVTT10     (cmvtt10.pfb)     ;
 /EUEX10      (euex10.pfb)     ;
 /EUFB10      (eufb10.pfb)     ;
 /EUFB5       (eufb5.pfb)     ;
 /EUFB7       (eufb7.pfb)     ;
 /EUFM10      (eufm10.pfb)     ;
 /EUFM5       (eufm5.pfb)     ;
 /EUFM7       (eufm7.pfb)     ;
 /EURB10      (eurb10.pfb)     ;
 /EURB5       (eurb5.pfb)     ;
 /EURB7       (eurb7.pfb)     ;
 /EURM10      (eurm10.pfb)     ;
 /EURM5       (eurm5.pfb)     ;
 /EURM7       (eurm7.pfb)     ;
 /EUSB10      (eusb10.pfb)     ;
 /EUSB5       (eusb5.pfb)     ;
 /EUSB7       (eusb7.pfb)     ;
 /EUSM10      (eusm10.pfb)     ;
 /EUSM5       (eusm5.pfb)     ;
 /EUSM7       (eusm7.pfb)     ;
 /LASY10      (lasy10.pfb)     ;
 /LASY5       (lasy5.pfb)     ;
 /LASY6       (lasy6.pfb)     ;
 /LASY7       (lasy7.pfb)     ;
 /LASY8       (lasy8.pfb)     ;
 /LASY9       (lasy9.pfb)     ;
 /LASYB10     (lasyb10.pfb)     ;
 /LCIRCLE10   (lcircle10.pfb)     ;
 /LCIRCLEW10  (lcirclew10.pfb)     ;
 /LCMSS8      (lcmss8.pfb)     ;
 /LCMSSB8     (lcmssb8.pfb)     ;
 /LCMSSI8     (lcmssi8.pfb)     ;
 /LINE10      (line10.pfb)     ;
 /LINEW10     (linew10.pfb)     ;
 /MSAM10      (msam10.pfb)     ;
 /MSAM5       (msam5.pfb)     ;
 /MSAM7       (msam7.pfb)     ;
 /MSBM10      (msbm10.pfb)     ;
 /MSBM5       (msbm5.pfb)     ;
 /MSBM7       (msbm7.pfb)     ;
 /WNCYB10     (wncyb10.pfb)     ;
 /WNCYI10     (wncyi10.pfb)     ;
 /WNCYR10     (wncyr10.pfb)     ;
 /WNCYSC10    (wncysc10.pfb)     ;
 /WNCYSS10    (wncyss10.pfb)     ;

初期設定

MathImageを初めて起動すると、以下のような設定ファイルが自動的に生成されます。
 .properties

というのがそれです。このファイルをテキストエディタで開くと以下のような内容が書いてあるはずです。(ほかに#で始まる行がありますがそれはコメント行です)


 gsPath=%gs path%
 outputImage=output.png
 dvipsOpt=-x 3000 -Ppdf -E temp -o temp.eps
 latexOpt=temp
 tempString=temp
 latexPath=%latex path%
 gsOpt=-dEPSCrop -dSAFER -dBATCH -dNOPAUSE -sDEVICE\=png16m -sOutputFile\=output.png temp.eps
 dvipsPath=%dvips path%

最小限必要な設定は3つです。

latexPath* にlatexへのパスを設定します。この指定はディレクトリを設定するのではなく、実行ファイルまで指定します。

 latexPath=c:/usr/local/bin/latex

dvipsPath にdvipsもしくはそれに変わるアプリケーションを設定します。dvips以外を設定したときは、 dvipsOpt の設定も必要でしょう。

 dvipsPath=C:/usr/local/bin/dvips

gsPath にgsもしくはそれに変わるアプリケーションを設定します。gs, gswin32c以外を設定したときは、 gsOpt の設定も必要でしょう。

 gsPath=C:/gs/gs8.14/bin/gswin32c

設定ファイルはこんな感じでしょうか。

ダウンロード:MathImage.jar

れっつえんじょいはっきんぐらいふ!

更新履歴

  • build 5

初公開バージョン 2004/12/01

  • build 5.1

latexのコンパイルエラーが起こるとフリーズする重大なバグをfix 2004/12/02

  • build 5.2

build5.1で解決しなかったlatexのコンパイルエラーが起こるとフリーズする重大なバグをfix 2004/12/04

バージョンアップ予定

  • SplitPaneの実装

リサイズの際、各ペインが適切に配置されない仕様を解消する。 これにともない、設定ファイルにリサイズの項目を設ける。

build 6で実装予定