GNUPLOT 日本語化・機能拡張パッチに関する
FAQ (Frequently Asked Questions)

最終更新日:2001/04/21


目次


このパッチをあてると何ができるようになるの?

このパッチをあてるとオリジナルの gnuplot に次の4点の機能が加わります。

特に一番目の「LaTeX like なテキスト処理」がとても便利です。 LaTeX がインストールされていない計算機上でも 本パッチのあたった gnuplot を使えば グラフのタイトルやラベルに LaTeX とほぼ同じ文法でギリシャ文字や 添え字を付けることが出来ます。

この「LaTeX like なテキスト処理」機能を利用する場合は

        set term postscript plus
のように postscript terminal に plus オプションを付けるだけです。 またこの場合、矢印も非常に美しいものになります。

但し、この機能は enhanced オプションとは背反です。

目次へ


X11で日本語が表示されない

本パッチをあてた後の gnuplot における X11 表示では X11R5 から導入された国際化機能の一つ 「フォントセット」を用いて日本語を表示します。 そのため locale を調べて、それが日本語に指定されている場合のみ 日本語を表示します。

まず環境変数 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 ベースの LinuxCygwin、日本語版でない SunOS など) では日本語の表示が基本的にはできないのですが、 その場合も使用している X11 が -DX_LOCALE オプション付きで コンパイルされたものであれば日本語の表示が出来ます。

-DX_LOCALE オプション付きでコンパイルされた X11 のライブラリを使えば、 OS の locale ではなく X11 自体が持っている locale を利用することができます。

また Cygwin 用の XFree86-DX_LOCALE オプション付きでコンパイルされているので、 日本語の表示ができることを確認しています (2001/04/21 現在)。

あなたの使っている X11 が -DX_LOCALE オプション付きでコンパイルされているか否かは configure スクリプトがチェックして、そうである場合は config.h
     #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 付きで再コンパイルするしかないでしょう。 (^^;

目次へ


X11表示をしようとすると can't load font というエラーメッセージが出て 表示できない

このエラーメッセージは現在指定されている 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 に「補助漢字」が存在しないので、 フォントを用意する必要はありません。

目次へ


PostScript出力で日本語が表示されない

PostScript 出力では
        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 に設定されているためです。 妙な仕様ですね。

目次へ


PostScript出力での日本語処理はどうやっているの?

本パッチをあてた後の gnuplot における PostScript出力では 入力された日本語の漢字コード(EUC, SJIS, ISO2022-JP)を自動判別し、 一度内部コードとして EUC に変換してからテキスト処理を行います。 処理終了後、エスケープシーケンスを抜いた JIS (=8ビット目をストリップした EUC)として出力します。 そのため、コンパイル時に Makefile で指定する PostScript の日本語フォントは JIS を認識するもの(例えば Ryumin-Light-H など)でなければいけないのです。

また、UNIX/LINUX 版では漢字コード自動判別アルゴリズムの性質上、 いわゆる「半角カナ」が含まれていると誤動作しますので注意して下さい。

Windows 95/NT 版では、 入力される漢字コードは SJIS か ISO2022-JP であると仮定し、 EUC との判別を行なわずに無条件で「半角カナ」を「全角カナ」に変換します。
上記の日本語処理は PostScript出力だけでなく、 pbm や png、epson* などの出力でも全く同様に行なわれます。

目次へ


明朝体とゴシック体以外の日本語フォントも使いたい

残念ながら PostScript 出力では 明朝体とゴシック体以外の日本語フォントを使うことはできません。 将来的には使えるようにするかも知れませんが、 現在のバージョンではできません。

しかし pbm, png, epson*, hp* などの出力では使うことができます。 これらの出力では日本語文字を VFlib を用いてビットマップに展開することで 日本語文字列の表示を可能にしています。 したがって VFlib で使えるフォントは全て使うことができます。 default では min が使われますが、 VFlib の設定ファイル vfontcap に指定されたフォント名を 環境変数 GP_KANJIFONT に指定することでフォントを変更することができます。 また gnuplot のコマンドとして、

        set kanjifont "vfontcap に指定されたフォント名"
と指定してもフォントを切り替えることができます。

是非お試し下さい。

目次へ


本パッチパッケージの利用条件

本パッチパッケージは version 3.7.1+1.1.9 までは、 いわゆる「ハッカー条項」と呼ばれる厳しい利用条件がありました。 しかし version 3.7.1+1.2.0 からは この利用条件を「作者からのお願い」に緩め、 本パッチパッケージの利用そのものに対する一切の制限を外しました。 詳細な利用条件については添付の Copyright.plus を参照してください。

目次へ


E-mail to ma@yama-ga.com

戻る