FAQ(良く質問されること)

Q1 WindowsでMaTXを使用しています。グラフをプリンターへ印刷する 方法を教えてください。
A1 MaTX は gnuplot をグラフの出力に利用しているので,gnuplot の プリンタへの出力方法がそのまま使えます。

具体的には,グラフのウィンドウ上で「右クリック」でメニューを表示し, 「Print」を選択します。すると,出力先のプリンタとグラフのサイズが 尋ねられるので,適当に指定すればプリンタへ出力できます。

また,関数 mgplot_psout() でグラフをポストスクリプトファイルに 出力し,Adobe Acrobat Distiller 等で PDF ファイルに変換すれば, Windows のコマンドでプリンタに出力できます。

Q2 一旦インストールしたDJGPP版をアンインストールした後, VC++をインストールしたが,matxとmatcが正しく起動できない。
A2 DJGPP版をインストールすると,MaTXに関する環境変数の記述が autoexec.bat に追加されます。また,MaTXをアンインストール しても,autoexec.bat の記述は削除されません。したがって, DJGPP版をアンインストールする場合,手動で削除する必要があります。

さて,autoexec.bat 中に

set MATXDIR=c:\MaTX-DJ

という記述がありますが,これは,MaTXがインストールされている ディレクトリを示し,ヘッダファイル,ライブラリ,MM-ファイル がこのディレクトリ以下から参照されます。

したがって,VC++版を使えるようにするには,環境変数MATXDIRに VC++版をインストールしたディレクトリを設定すれば良いです。 ただし,VC++版は環境変数が設定されていなければ, レジストリを参照するので,環境変数を削除する方がお勧めです。

Q3 gnuplotという名前のフォルダーを空けたまま,mgplot()を使用すると, Can't find wgnuplot_text というエラーが発生する。
A3 mgplot()は,pgnuplot.exeを介してwgnuplot.exeを呼び出すが, pgnuplot.exeは,"gnuplot"という名前のウィンドウを探そうとするので, 同じ名前のフォルダーが空いていると,そちらを間違えて参照してしまい, エラーが発生する。

ちなみに pgnuplot.exe (pipe gnuplot)は,

(1) gnuplot.exe を起動する
(2) データを標準入力から受取り,wgnuplot_textという名前のウィンドウ
  (gnuplot のコマンドを受け付けるウィンドウ)に張り付ける
(3) gnuplot.exe を終了する

という仕事をしています。
Q4 Windows NT/2000/XP で MaTX を使用すると,画面が乱れます。対処方法を教えて下さ い。
A4 Windows NT/2000/XP のWindowsディレクトリの system32 にある CONFIG.NT の中に ansi.sys ドライバーの設定を追加してください。 例えば

device=%SystemRoot%\system32\ansi.sys

あるいは,

devicehigh=%SystemRoot%\system32\ansi.sys

として下さい
Q5 Windowsで,コピー&ペースト(張り付け)を行うと, 文字の取りこぼしが起きる。
A5 VC版をWin98で動かしている場合, プロパティの「その他」で「高速に張りつけ」が ONになっていると貼りつけられない様です。 なお,DOS窓の左上のアイコン(コントロールメニュー)をクリックすると プロパティを変更する画面が現れます。
Q6 DJGPP版でhelpを実行すると,文字化けが発生する。
A6 コマンド help は,ぺージャー(less や more)を使用して

MaTX/inputs/ja/matx.fnc

を表示します。DJGPP版MaTXの場合,Win32版の less を使用するため 画面が乱れてしまいます。対処の方法は

(1) スペースキーで画面をスクロールした後,'b' キーでバックスクロールする。
(2) 環境変数 pager に less の代わりに more を設定する。バックスクロール は出来なくなりますが,文字化けはなくなります。

具体的には,Windows95/98 の場合,autoexec.bat 内の

set PAGER=less



set PAGER=more

に変更します。WindowsNTの場合は,環境変数を設定するコマンドを利用 します。
Q7 コマンドhelpで画面に表示される内容をプリントアウトする 方法を教えてください。
A7 コマンド help は MaTX/inputs/ja/matx.fnc を画面に表示するだけなので,このファイルをプリントアウトすれば 画面に表示されるものと同じ出力が得られます。
Q8 constやvolatileなどC言語の予約語を含むプログラムをmatcで コンパイルすると,エラーが発生するのですが,理由を教えてください。
A8 constやvolatileはMaTXの予約語ではないので,これらを変数名として使用できます。 matcはそのままCファイルに出力しますが,当然Cコンパイラは,予約語が 変数名として使用されていると,エラーメッセージを出力します。 C言語の予約語をMaTXの変数や関数名として使用することは、避けましょう。