51.54.1 Enhanced postscript

いくつかの出力形式では拡張文字列処理モード (enhanced text mode) をサポ ートしていて、これは文字列に追加の書式情報を埋め込みます。

拡張文字列制御記号
制御記号 説明
^ a^x 上付き文字
_ a_x 下付き文字
@ @x or a@^b_c 空ボックス (幅がない)
& &{space} 指定した長さのスペースを挿入
~ ~a{.8-} 'a' の上に '-' を、現在のフォントサイズの
.8 倍持ち上げた位置に重ね書き

中カッコは一文字が期待される箇所に複数の文字を書く場合に使われます (例 えば 2^{10})。フォント、およびそのサイズを変更するには、以下の形式を使ってください: {/[fontname][=fontsize | *fontscale] text} よって、例えば {/Symbol=20 G} は 20 ポイントのガンマに、{/*0.75 K} は現在の有効なフォントサイズの 3/4 の大きさの K になります (文字 '/' は、必ず '{' の後ろの最初の文字でなくてはなりません)。

set encoding によって文字エンコード系が変更されている場合、'/' の次 に '-' を書くとデフォルトの文字エンコード系が代わりに使われます。しか し、これは Symbol フォントを使う場合は必要ありません。それは /Symbol は自分自身のエンコード系を使い、gnuplot は他のエンコーディング系をそ れには適用しないからです。

空ボックス (phantom box) は a@^b_c の上付き文字と下付き文字を揃えると きに有用ですが、文字にアクセント記号を重ねる場合にはうまく働きません (後者を行なうには set encoding iso_8859_1 で ISO Latin-1 エンコーデ ィング系に変更し、そこに含まれるたくさんの種類のアクセントや他のダイア クリティカルマークのついた文字を利用する方がいいでしょう)。そのボック スはスペーシングが行なわれないので、ボックス内 (つまり @ の後ろ) の上 付き文字や下付き文字を短く出力するのに適しています。

ある文字列と同じ長さのスペースを文字 '&' を使うことで入れることができ ます。すなわち、

       'abc&{def}ghi'

は以下を生成します (abc と ghi の間は 3 文字分の空白):
       'abc   ghi'

文字 '~ ' は、次の文字、またはカッコで囲まれた文字列に、それに続く文字 またはカッコで囲まれた文字列を重ね書きします。2 番目の文字は最初の文字 にあわせて水平方向にセンタリングされます。よって '~ a/' は 'a' を貫くよ うなスラッシュが得られます。2 番目の文字は、その前に数字を置くことで垂 直方向に移動させることができます。その数字は現在のフォントサイズに対す る割合を意味し、それに従って文字が上がったり下がったりします。この場合 数字と文字列は 1 文字より長くなるのでカッコで囲む必要があります。重ね 書きされる文字列が数字から始まっている場合は、垂直にずらす値と文字列と の間にスペースを入れてください ('~ {abc}{.5 000}')。それ以外はスペースは不要です ('~ {abc}{.5 -- }')。一方、あるいは両方のフォントを変更するこ ともできます ('~ a{.5 /*.2 o}' -- 'a' その 1/5 の大きさの 'o' -- この 場合数字とスラッシュの間のスペースは必要です) が、その文字列が始まった 後で変更することはできません。それぞれの文字列内で、他の特殊な書式を使 うこともできません。もちろん、'~ a{ \ ^}' のように特殊な文字をエスケープ すること (下記参照) は可能です。

\ 文字コード (8 進数) を指定することで特殊な記号を指定することができま す。例えば、{/Symbol \ 245} は無限大の記号になります。

制御文字は、 \ \ \ { などのように \ を使ってエスケープできます。

しかし、二重引用符内の文字列は単一引用符内の文字列とは異なって解釈され ることを知っておいてください。主な違いは、二重引用符内の文字列ではバッ クスラッシュは 2 つ重ねる必要があることです。

例 (これらは言葉で説明するのは難しいのでとりあえずやってみてください):

     set xlabel 'Time (10^6 {/Symbol m}s)'
     set title '{/Symbol=18 \362@_{/=9.6 0}^{/=12 x}} \
                {/Helvetica e^{-{/Symbol m}^2/2} d}{/Symbol m}'

gnuplot ソース配布物内の /docs/psdoc サブディレクトリにあるファイル "ps_guide.ps" に、拡張された書式に関する例が更に載っています。

竹野茂治@新潟工科大学
2009年9月7日