この「LaTeX like なテキスト処理」機能を利用する場合は
set term postscript plus
のように postscript terminal に plus オプションを付けるだけです。
またこの場合、矢印も非常に美しいものになります。
但し、この機能は enhanced オプションとは背反です。
まず環境変数 LANG または LC_CTYPE に日本語が指定されているかどうかを調べてみましょう。 例えば、Solaris 2.x の場合は ja、SunOS 4.1.x JLE の場合は japanese です。 その他の OS でも ja_JP.ujis、ja_JP.EUC、ja_JP.SJIS などの OS が認識する 適切な値に LANG を指定すれば日本語の表示が出来るはずです。
そのような訳で、日本語の locale を持っていない OS (例えば NetBSD、OpenBSD、libc5 ベースの Linux や Cygwin、日本語版でない SunOS など) では日本語の表示が基本的にはできないのですが、 その場合も使用している X11 が -DX_LOCALE オプション付きで コンパイルされたものであれば日本語の表示が出来ます。
-DX_LOCALE オプション付きでコンパイルされた X11 のライブラリを使えば、 OS の locale ではなく X11 自体が持っている locale を利用することができます。あなたの使っている X11 が -DX_LOCALE オプション付きでコンパイルされているか否かは configure スクリプトがチェックして、そうである場合は config.h にまた Cygwin 用の XFree86 は -DX_LOCALE オプション付きでコンパイルされているので、 日本語の表示ができることを確認しています (2001/04/21 現在)。
#define X_LOCALE 1
と書き込んでくれます。
もし -DX_LOCALE オプション付きでコンパイルした X11
であるにも関わらず、この記述がない場合は書き足してください。
この記述を確認した上で make し、
/usr/lib/X11/locale もしくは
/usr/X11R6/lib/X11/locale などの下にある locale.alias
に記されている日本語の値に環境変数 LANG を指定すれば
日本語が表示できます。
X11R6 の場合は ja, ja_JP, ja_JP.ujis, ja_JP.eucJP, ja_JP.EUC などで EUC を、 ja_JP.JIS, ja_JP.jis7 などで JIS を、また ja_JP.SJIS, ja_JP.mscode などで SJIS を認識します。もし日本語 locale を持たない上に X11 が -DX_LOCALE 付きでコンパイルされていない場合は、 日本語の表示をあきらめるか X11 を -DX_LOCALE 付きで再コンパイルするしかないでしょう。 (^^;
これは OS 付属の X11 (しかもそのベンダが余計な手を加えているもの) を使った場合や、 特にそれらのメーカとは異なるメーカの Xサーバに表示させようとする場合に、 良く見られる現象です。
デフォルトでは、はじめに
-*-fixed-medium-r-normal--14-*, -*-medium-r-normal-*-14-*
というフォントセットを使おうとしますが、
それが使えない場合は
-*-fixed-medium-r-normal--16-*, -*-medium-r-normal-*-16-*
を使うようになっています。
そこで、このデフォルトのフォントセットを変更して、 表示させる Xサーバが持っているフォントを使うようにすれば 多くの場合正しく表示できるようになります。 例えば、 ~/.Xdefaults に
gnuplot*font: -*-helvetica-*-r-*-16-*, -*-gothic-medium-r-normal--16-*
と記述するか、起動時に
gnuplot -font '-*-helvetica-*-r-*-16-*, -*-gothic-medium-r-normal--16-*'
のように指定します。
しかし、このようにしてもうまく行かない場合があります。 例えば、HP-UX で OS 付属の X11 を使う場合です。
HP-UX 上でプログラムを実行して HP 以外の X サーバに表示させるには 日本語を使わない場合でも環境変数LANGまたはLC_CTYPEを 必ず日本語 (japanese, japanese.euc, ja_JP.SJIS, ja_JP.eucJP) に指定してください。
LANGにもLC_CTYPEにも日本語が指定されていない場合、 HP-UX 付属の X11 では他のメーカのXサーバが使えないフォント (charset: HP-ROMAN8) を使おうとするのです。 このような独自の拡張は、 いい加減やめてほしいですね。更に HP-UX 10.x の場合、locale として「日本語 EUC」を指定すると 「補助漢字」 (jisx0212) のフォントを必要とします。 そのため、表示させる Xサーバは この「補助漢字」のフォントが使えるようになっていなくてはいけません。
Shift JIS を指定した場合は、 そもそも Shift JIS に「補助漢字」が存在しないので、 フォントを用意する必要はありません。
set term postscript "Helvetica-Gothic"
のようにフォント名を "(ASCII文字のフォント名)-(日本語のフォント名)"
と指定すれば日本語を表示します。
またこのように日本語のフォントを指定するのが面倒な場合は環境変数 LANG を日本語に指定してください。 ここでいう「日本語」とは LANG で指定されたものの頭二文字が "ja" であるということです。 または gnuplot のコマンドとして
set locale "ja"
のように
LANG に指定できる日本語の locale を設定しても同じ動作をします。
こうすると
set term postscript "Times-Roman"
のように明示的に日本語のフォント名を指定しない場合でも
常に日本語を明朝体で表示します。
もちろんゴシック体で表示したい場合は
set term postscript "Helvetica-Gothic"
のように明示的に日本語のフォント名を指定すればOKです。
但し、フォント名を指定する場合はどのような場合も 必ず ASCII文字のフォントは指定してください。 もし
set term postscript "Gothic"
のように日本語のフォントのみを指定すると文字が表示されなくなります。
以上の日本語表示機能はラベルやタイトルの font オプションによるフォント指定に 対しても同様に動作します。
逆に環境変数 LANG が日本語に設定してある場合に 日本語フォントを一切含まない PostScript ファイルを出力させたい場合は
set locale ""
のように locale を空に設定してください。
C に設定しても日本語の設定が生きてしまうことに注意してください。
これはオリジナルの gnuplot の default の locale が何故か
空ではなく C に設定されているためです。
妙な仕様ですね。
また、UNIX/LINUX 版では漢字コード自動判別アルゴリズムの性質上、 いわゆる「半角カナ」が含まれていると誤動作しますので注意して下さい。
Windows 95/NT 版では、 入力される漢字コードは SJIS か ISO2022-JP であると仮定し、 EUC との判別を行なわずに無条件で「半角カナ」を「全角カナ」に変換します。上記の日本語処理は PostScript出力だけでなく、 pbm や png、epson* などの出力でも全く同様に行なわれます。
しかし pbm, png, epson*, hp* などの出力では使うことができます。 これらの出力では日本語文字を VFlib を用いてビットマップに展開することで 日本語文字列の表示を可能にしています。 したがって VFlib で使えるフォントは全て使うことができます。 default では min が使われますが、 VFlib の設定ファイル vfontcap に指定されたフォント名を 環境変数 GP_KANJIFONT に指定することでフォントを変更することができます。 また gnuplot のコマンドとして、
set kanjifont "vfontcap に指定されたフォント名"
と指定してもフォントを切り替えることができます。
是非お試し下さい。