✍️ 田冬冬 , lxrat • 📅 2024-09-12

# 文字

文字，也称文本或字符串。主要由三个属性控制：文字大小、字体、颜色。三个属性 之间用逗号分隔，即：size,fonttype,fill。

在模块的语法介绍中，通常使用 font 表示需要用户指定文字属性，用户应自行将其 脑补为 size,fonttype,fill。

三者均是可选的，但先后顺序不可乱。若其中任意一个属性被省略，则使用该属性的 默认值。

## 文字大小

文字大小，即常说的字号，可以用数字加单位表示。在不指定单位的情况下默认单位为 p，也可加上 c、p 或者 i 显式指定单位，比如 15p。

有些中文期刊可以会有类似“图片标题是四号字”这样的要求，这就需要知道GMT中的字体 大小与Microsoft Word中字号大小的对应关系。如下表所示：

Word字号与GMT中字号(p)对应关系
字号 | p | 字号 | p
--- | --- | --- | ---
初号 | 42 | 小初 | 36
一号 | 26 | 小一 | 24
二号 | 22 | 小二 | 18
三号 | 16 | 小三 | 15
四号 | 14 | 小四 | 12
五号 | 10.5 | 小五 | 9
六号 | 7.5 | 小六 | 6.5
七号 | 5.5 | 八号 | 5

## 字体

GMT默认支持35种标准字体。下图给出了GMT支持的35种字体的名字及对应的编号:

`Source Code`

GMT中可以用字体名（区分大小写）或对应的字体编号来指定字体 （比如 Helvetica-Bold 或者 1）。上图中给出了每种字体的字体编号以及字体名称。 每个字体名称使用的是自己相对应的字体，所以可以从图中直观地看出不同字体的区别。

小技巧

使用 `gmt text -L` 可以在命令行查看GMT所支持的字体及其编号。

图中大多数字体都很直观，比较特别的字体有两个，Symbol（12号）和ZapfDingbats（34号）， 前者常用于输出希腊字母，后者则用于输出特殊图案，详情见 特殊字符。

## 填充色

可以为文字指定填充色或填充图案，也就是常说的文字颜色。

在 颜色 和 填充 一节中我们已经介绍了如何设置填充色和填充图案， 其中介绍的内容均可用于设置文本颜色。

## 描边

在给文字指定填充色的同时，还可以在填充色 fill 后加上 =pen 以指定文本 轮廓（即描边）的画笔属性。画笔属性 pen 的用法见 画笔 一节。 比如 red=2p,blue 表示将文字填充为红色，并使用宽度为 2p 的蓝色线条给 文字描边。若填充色 fill 为 -，则不对文字做填充，即实现空心文字的效果。

使用 =pen 语法绘制文本轮廓时，轮廓线条有一半宽度位于文字外部，另一半 宽度会遮住字体。为了避免这一现象，可以使用 =~pen 语法，此时在绘制文字 轮廓时只绘制文字外部的半个线宽的线条。

## 小练习

text 模块可以用于添加文字。下面的命令在图上写了文字 TEXT:

    echo 2.5 0.5 TEXT | gmt text -R0/5/0/1 -JX15c/2c -F+ffont -pdf text

将 -F+f font 中的 font 修改为不同的值并查看绘图效果以理解这一节的内容。

下图给出了 font 取不同值的效果：

`Source Code`