GMT中文字体显示配置 |
您所在的位置:网站首页 › 新罗马字体中文不能用吗 › GMT中文字体显示配置 |
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 在自己电脑的 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 下载后安装一直点下一步即可,不要修改默认配置,如下图所示,确保第一个选项勾选即可。 为了能够在将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,双击该文件,理论上即可在文件目录下生成如下内容的图片,说明中文配置成功,后面的内容无需再看! 我实现的方式是用notepad++ 打开前面新建的test.txt空白文档,然后在工具栏中选择【编码】,点击【使用ANSI编码】,如下图所示: 该说的我差不多已经说完了,没有说的内容说明是可有可无的。在具体写入中文是仍需注意以下事项: (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 |