GMT中文字体显示配置

您所在的位置:网站首页 ps字体中文显示 GMT中文字体显示配置

GMT中文字体显示配置

2024-06-01 01:53| 来源: 网络整理| 查看: 265

GMT绘图软件默认情况下是不支持中文显示的,近期由于工作的需求,需要使用gmt进行中文的显示。自己在网上查了一些资料,但是说的都是模棱两可,一些具体的细节有必要说明,下面进入正文。

GMT中文配置的过程主要分为三部分,第一部分是GMT的配置;第二部分是Ghostscript的配置;第三部分为具体的实现细节。本文实现环境:Win10+GMT6.1

一、GMT的中文配置 1.1 GMT安装注意事项

GMT需要使用 Ghostscript 生成PDF、JPG等格式的图片,因而 Ghostscript 是必须的。GMT安装包中自带了Ghostscript,但其并不支持在GMT图片中添加中文。

即GMT在默认情况下是附带安装Ghostscript组件的,故我们需要重新安装GMT,然后安装过程中选择不安装Ghostscript组件,如下图所示(后面会讲到Ghostscript的安装)。 GMT6.1的下载链接为GMT v6.1.0

GMT6安装设置

1.2 GMT字体配置

在自己电脑的 C:\Users\用户名.gmt\ 目录下新建名为PSL_custom_fonts.txt的文本文件。 (若不存在 C:\Users\用户名.gmt 目录则需新建该目录。Windows的文件管理器无法新建以 . 开头的文件夹,因而需要打开CMD,然后执行命令 mkdir .gmt 以创建该文件夹)。

向 GMT自定义字体配置文件 C:\Users\用户名.gmt\PSL_custom_fonts.txt 中加入如下内容:

STSong-Light--GB-EUC-H 0.700 1 STFangsong-Light--GB-EUC-H 0.700 1 STHeiti-Regular--GB-EUC-H 0.700 1 STKaiti-Regular--GB-EUC-H 0.700 1 STSong-Light--GB-EUC-V 0.700 1 STFangsong-Light--GB-EUC-V 0.700 1 STHeiti-Regular--GB-EUC-V 0.700 1 STKaiti-Regular--GB-EUC-V 0.700 1

然后在cmd中使用 gmt text -L 查看 GMT 字体,正常情况下会显示如下内容:

$ gmt text -L Font # Font Name ------------------------------------ 0 Helvetica 1 Helvetica-Bold ... ...... 39 STSong-Light--GB-EUC-H 40 STFangsong-Light--GB-EUC-H 41 STHeiti-Regular--GB-EUC-H 42 STKaiti-Regular--GB-EUC-H 43 STSong-Light--GB-EUC-V 44 STFangsong-Light--GB-EUC-V 45 STHeiti-Regular--GB-EUC-V 46 STKaiti-Regular--GB-EUC-V

新添加的四种中文字体对应的字体编号为 39 到 46。其中 STSong-Light-GB-EUC-H 即为宋体,GB-EUC 是文字编码方式, H 表示文字水平排列,V 表示竖排文字。强烈建议在执行测试脚本前确认自己的中文字体编号。

至此,GMT的相关配置已完成,下面进行Ghostscript 的中文配置。

二、Ghostscript的中文配置 2.1 Ghostscript的安装

由于我们在上一步安装GMT时取消了Ghostscript的安装,故此处需要重新安装Ghostscript,安装包下载链接为:Ghostscript 9.50

下载后安装一直点下一步即可,不要修改默认配置,如下图所示,确保第一个选项勾选即可。 在这里插入图片描述

2.2 配置Ghostscript环境变量

为了能够在将PS文件转换为其他图片格式时也支持中文,需要设置环境变量 GS_FONTPATH。具体步骤如下:

点击“计算机”->“属性”->“高级系统设置”->“环境变量”打开“环境变量”编辑工具

在“系统变量”部分中,新建变量 GS_FONTPATH 并设置其值为 C:\Windows\fonts

至此,所有的配置均已完成。网上还有一些教程是gsview的中文配置,在此说明一下,由于我们一般不需要生成*.ps格式的图片,故可不进行gsview的中文配置。

三、实例演示 新建一个文本文档test.txt,输入以下代码:

gmt begin map pdf,png gmt set PS_CHAR_ENCODING Standard+ gmt set FONT_TITLE 25p,41,black gmt set FONT_LABEL 15p,39,black echo 2 3.5 25p,39,black 中文宋体 > tmp echo 2 2.5 25p,40,blue 中文仿宋 >> tmp echo 2 1.5 25p,41,red 中文黑体 >> tmp echo 2 0.5 25p,42,green 中文楷体 >> tmp echo 4 3.5 25p,43,black 中文宋体 >> tmp echo 5 3.5 25p,44,blue 中文仿宋 >> tmp echo 6 3.5 25p,45,red 中文黑体 >> tmp echo 7 3.5 25p,46,green 中文楷体 >> tmp gmt text tmp -R0/8/0/4 -JX12c/4c -Bxaf+l"X轴" -Byaf+l"Y轴" -BWSen+t"中文标题" -F+f gmt end

然后将文件名修改为test.bat,双击该文件,理论上即可在文件目录下生成如下内容的图片,说明中文配置成功,后面的内容无需再看! 在这里插入图片描述 但也有可能会生成如下图所示图片(反正本人是遇到过!) 在这里插入图片描述 此处呢,也生成了中文,但是内容不符,当时被这个问题困扰的心态崩了。最后发现是脚本编码的问题,需要将脚本的编码方式设置成ANSI !!!

我实现的方式是用notepad++ 打开前面新建的test.txt空白文档,然后在工具栏中选择【编码】,点击【使用ANSI编码】,如下图所示: 在这里插入图片描述 然后再将代码粘贴至该文档中,保存,后缀修改成.bat即可!

注意事项:

该说的我差不多已经说完了,没有说的内容说明是可有可无的。在具体写入中文是仍需注意以下事项:

(1)MT 6.x 目前在Windows下处理中文时存在BUG,可能会出现某些中文正常显示,某些不正常显示的情况。使用:

gmt set PS_CHAR_ENCODING Standard+

可临时避免这一BUG(我暂时还没遇到过)。

(2)在使用gmt写入中文时必要设置字号!!(就是上面第一节添加的39-46号对应八种不同的中文字体)。否则中文字体不能正常显示!

例如使用text命令添加中文

echo 160 0 断层 | gmt text -F+f6p,39,red

在位置(160,0)处写入“断层”两字,需设置字号,此处设置的是39,对应宋体。

写到这,我遇到的问题以全部总结完毕,希望对大家有所帮助!有误的地方可给我留言指出(虽然不咋看留言哈哈)。

参考文档:https://docs.gmt-china.org/6.1/intro/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3