テキストを入れてみましょう

 プロットに文字列を入れたくなることはよくあることです.GMTでは,これはpstextコマンドを用いて実現できます.pstextには,次のような7つの特に有益な固有オプションがあります(表2.4).

表 2.4: pstextで多く使われるオプション類
オプション 機能
-Cdx/dy テキストとテキストボックスの間の距離を指定します ( -Wも参照)
-Ddx/dy 投影される位置のオフセットを指定します
-Gfill テキストの色を指定します
-L フォントIDの出力だけをして終了します.
-N 境界でのクリッピングを無効にします.
-S pen アウトラインフォントを選択し,ペン属性を指定します.
-W[fill][o[pen]] テキストボックスをペイントします.さらに,oが付いている場合にはテキストボックスの外枠も描きます(-Cも参照)
 


 
図2.1: テキストボックスとテキストの間の関係
\begin{figure}\centering\epsfig{figure=eps/GMT_pstext_clearance.eps}\end{figure}

 pstextコマンド の入力データは,以下に示すフォーマットと内容である必要があります:

x   y   size   angle   fontno   justify   text

 図2.2はこれらの間の関係と,justifyのモードを表す文字を示しています.

 
Figure 2.2: 文字列の位置合わせおよびそれに対応した文字コード
\begin{figure}\centering\epsfig{figure=eps/GMT_pstext_justify.eps}\end{figure}

 テキストは1語でも数語(文)でも構いません.また,特殊文字を表す8進数表記や,サブスクリプトやシンボルを表すエスケープシークエンスを含むことができます.エスケープシークエンスは,以下のものが用意されています:

表 2.5: GMTテキストエスケープシークエンス
コード 機能・エフェクト
@~ シンボルフォントの開始/終了
@%fontno% 他のフォントに変える. @%% でもとのフォントに戻る.
@+ スーパースクリプトの開始/終了
@- サブスクリプトの開始/終了
@# スモールキャップの開始/終了
@! 続く2文字を1文字の組み文字とする.
@@ @自体を出力する
@E @e Æ æ
@O @o Ø ø
@A @a Å å
 

注記:これらのエスケープシークエンスは,GMTの至るところで使用可能です.たとえば,-Bオプションの文字列指定でも用いることができます.8進数表記の表については,テクニカルリファレンスの付録Aを参照してください.また,ヨーロッパ系のアクセント記号つき文字の使用については,.gmtdefaultsにおいて,WANT_EURO_FONTをTRUEに設定する必要があります.

 それでは,pstextの使用例を示します:

% cat << EOF | pstext -R0/7/0/7 -JX7i -P -B1g1 -G255/128/0  | ghostview -
1  1  30  0  4  BL  It's P@al, not Pal!
1  2  30  0  4  BL  Try @%33%ZapfChancery@%% today
1  3  30  0  4  BL  @~D@~g@-b@- = 2@~pr@~G@~D@~h.
1  4  30  0  4  BL  University of Hawaii at M@!a\305noa
EOF

注記:Version3.0の場合は「BL」のかわりに「1」としなければいけないようです.そのようにして描いたのが下図です.

 ここでは,UNIXシェルの「ヒアドキュメント」と呼ばれるテクニックを使用しています.「<<EOF」があると,それに続く行(EOFという行が出てくるまで)をすべて標準入力への入力として取り扱うのです.また,pstextの出力結果(PostScriptファイル)を直接ghostviewにパイプでつないでいます(ghostviewの-オプションは,入力がstdinで与えられることを明示的に示しています)

Original Text by Dr. Paul Wessel
Translated by AGATASHI.