✍️ 王亮 , 田冬冬

# 设置配置参数

本节介绍 GMT 的配置参数及其设置方法。GMT 提供了 150 多个配置参数， 用于控制图形的外观和数据的处理方式。这些配置参数一般都有默认值。有时，这些默认值并不合适。 例如，下面这幅图的标题相对于底图大了一些，显得不协调。遇到类似的情况， 可以自行设置相关配置参数，以细致地调节图形的外观或数据的处理方式。

    gmt begin conf0
        gmt basemap -JX2c -R0/1/0/1 -Bwsen+t'Title'
    gmt end show

要设置配置参数，就需要依次解决两个问题：第一个问题是确定需要修改的配置参数的名称， 第二个问题是如何修改。所以，本节先介绍如何确定配置参数的名称，再介绍配置参数的设置方法。

## 确定配置参数的名称

使用 defaults 模块可以列出所有配置参数及其默认值。 配置参数的名称是由它控制的元素的属性决定的，所以根据元素或属性的名称，即可找到对应的配置参数。 上面的例子中的问题是标题的字体太大，因此需要修改的配置参数的元素是标题（TITLE)， 而属性是字体（FONT)。执行 `gmt defaults` 命令并用 `grep` 命令进行筛选，可以找到所有与标题（TITLE）有关的参数:

    $ gmt defaults | grep TITLE
    FONT_TITLE                     = 24p,Helvetica,black
    MAP_TITLE_OFFSET               = 14p

下面的命令可以找到和字体（FONT）有关的参数:

    $ gmt defaults | grep FONT
    # FONT Parameters
    FONT_ANNOT_PRIMARY             = 12p,Helvetica,black
    FONT_ANNOT_SECONDARY           = 14p,Helvetica,black
    FONT_HEADING                   = 32p,Helvetica,black
    FONT_LABEL                     = 16p,Helvetica,black
    FONT_LOGO                      = 8p,Helvetica,black
    FONT_TAG                       = 20p,Helvetica,black
    FONT_TITLE                     = 24p,Helvetica,black

下图展示了 GMT 绘图时底图中各个元素的英文名称以及本手册中对应的中文名称。 建议读者记住底图各个元素的中英文名称以方便查找和修改。

## 配置参数的设置方法

配置参数的设置有两种方法：一种为全局设置，对设置以后的所有命令都有效。另一种为临时设置， 只对该条命令有效。下面以配置参数 FONT_TITLE 为例， 介绍全局和临时设置标题（TITLE）的字体（FONT）的方法。

全局设置需要使用 set 模块。用 set 模块 做的设置对之后的所有命令都有效。在下面的例子中， 使用 set 模块全局设置了标题的字体为 `12p,Times-Bold,red`， 所以两个标题的字体都发生了相应的改变。

    gmt begin conf1
        gmt set FONT_TITLE 12p,Times-Bold,red # 全局设置标题的字体
        gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title One'
        gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title Two' -X6c
    gmt end show

标题字体的全局设置

临时设置则是通过为命令添加选项 --KEY=value 的形式实现的， 其中 KEY 是配置参数的名称，value 是配置参数的值。在下面的例子中， 在绘制左边的底图时使用了选项 `--FONT_TITLE=12p,Times-Bold,red`， 所以该底图的标题的字体是红色的。由于临时设置仅对当前命令有效，其不会影响到 接下来的其它命令。因而右边的底图的标题属性依然是 FONT_TITLE 的 默认值。

    gmt begin conf2
        gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title One' --FONT_TITLE=12p,Times-Bold,red
        gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title Two' -X6c
    gmt end show

标题字体的临时设置