转义序列

前面介绍了如何设置文字的文字大小、字体和颜色以及如何输入特殊字符。在此基础上,GMT提供了转义字符,以实现上标、下标等功能,并可以在一个字符串内随意切换字体、字号和颜色,给文本加入了更丰富的效果。

转义字符

GMT用 @ 符号实现转义的功能。将 @ 符号与某些字符结合起来,即构成了一系列可以实现特殊效果的转义字符。

GMT可以识别的转义字符在下表列出:

GMT转义字符

转义字符

说明

@+

打开/关闭上标

@-

打开/关闭下标

@_

打开/关闭下划线

@#

打开/关闭小型大写字母(small caps)

@%fontno%

切换至另一字体;@%% 重置回前一字体

@:size:

切换至另一文本尺寸;@:: 重置回前一尺寸

@;color;

切换至另一文本颜色;@;; 重置回前一颜色

@~

打开/关闭Symbol(12号)字体

@!

用接下来的两个字符创建组合字符

@.

输出 ° 符号

@@

输出 @ 符号自身

除此之外,GMT还为一些常用的欧洲字母专门定义了转义字符。如下表:

欧洲特殊字母

代码

效果

代码

效果

@E

Æ

@e

æ

@O

Ø

@o

ø

@A

Å

@a

å

@C

Ç

@c

ç

@N

Ñ

@n

ñ

@U

Ü

@u

ü

@s

ß

@i

í

小练习

下面给出了一些使用转义字符的示例,左边Input是命令中的输入,右边Output是图上显示的效果:

Source Code

../../_images/escape-character-gmtplot-0.png

读者可以将下面命令中的 TEXTLabel 修改为不同的值,以体验转义字符的效果:

echo 5 2 TEXT | gmt text -R0/10/0/3 -Jx1c -Bxaf+l"Label" -BWSen -F+f20p -pdf test

注意事项

  1. 上标/下标不支持嵌套,即只支持一层上标/下标

  2. text 命令中有选项可以在文本周围加上文本框,该选项对转义序列无效

  3. 转义序列需要成对存在,与括号类似,开启转义之后必须关闭转义

  4. 在Windows下,由于bat脚本中 % 表示变量,因此当你需要在GMT中使用百分号时,应使用 %% 来表示一个百分号,即bat脚本中的 %% 相当于字符 %;切换字体时 @%%15%% 相当于正常情况下的 @%15%