5.9 转义序列

前面已经介绍了如何设置字体属性以及如何输出特殊字符,但是这还不够,无法实现上标、下标,无法在一个字符串内随意切换字体和颜色。由此,GMT引入了转义字符,给文本加入了更丰富的效果。

在C语言中,转义字符是 \ ;在GMT中,转义字符是 @ 。转义字符与一般字符合在一起构成了转义序列。GMT可以识别的转义字符在下表列出:

表 5.3 GMT转义字符
转义字符 说明
@~ 打开/关闭Symbol(12号)字体
@+ 打开/关闭上标
@- 打开/关闭下标
@# 打开/关闭大型小写字母
@_ 打开/关闭下划线
@%<fontno>% 切换至另一字体; @%% 重置回前一字体
@:<size>: 切换至另一文本尺寸; @:: 重置回前一尺寸
@;<color>; 切换至另一文本颜色; @;; 重置回前一颜色
@! 用接下来的两个字符创建组合字符
@@ 输出 @ 符号自身

对于一些常用的欧洲特殊字符,可以通过设置 PS_CHAR_ENCODING 来实现,GMT为其中的部分常见字符提供了转义序列,如下表:

表 5.4 欧洲特殊字符
Code Effect Code Effect
@E Æ @e æ
@O Ø @o ø
@A Å @a å
@C Ç @c ç
@N Ñ @n ñ
@U Ü @u ü
@s ß @i í

5.9.1 转义字符示例

../../_images/GMT_escape_examples.png

图 5.10 GMT转义序列示例

5.9.2 注意事项

  1. 上标/下标不支持嵌套,即只支持一层上标/下标
  2. pstext 命令中有选项可以在文本周围加上矩形框,该选项对转义序列无效
  3. 转义序列需要成对存在,与括号类似,开启转义之后必须关闭转义;
  4. 在Windows下,由于bat脚本中 % 表示变量,因此当你需要在GMT中使用百分号时,应使用 %% 来表示一个百分号,即bat脚本中的 %% 相当于字符 % ;切换字体时 @%%15%% 相当于正常情况下的 @%15%